---
title: WorkspaceMachine
description: A type that the Authoring surface names.
---

# `WorkspaceMachine`

Type, in `@jr2/orchestrator/src/workspace.ts`. It is type plumbing: it computes a type from the types of a Machine or of its parts, and a workflow module does not write it. The signature of an export, or a type that it names, names this type, so its declaration is here. The [Authoring surface](../authoring-surface.md) page lists each export.

```ts
type WorkspaceMachine<TInput, TOutput, TBody extends AnyStateMachine, TSlots extends string> = StateMachine<
  any,
  any,
  any,
  WrapperActors<"body", TBody, "place" | "provision" | "attach" | "registrar" | "lease" | "destroy" | "fail">,
  any,
  any,
  any,
  any,
  any,
  TInput,
  TOutput,
  any,
  any,
  any
> &
  JR2Wrapper<TBody> &
  JR2Repos<TSlots>;
```
