@pasko70/pibo 3.3.0 → 3.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-runtime/capabilities.js +5 -0
- package/dist/agent-runtime/contract.js +2 -0
- package/dist/agent-runtime/routed-session.js +70 -11
- package/dist/agent-runtimes/codex-native/adapter.js +3 -0
- package/dist/agent-runtimes/codex-native/thread.js +26 -4
- package/dist/agent-runtimes/omp/adapter.js +1 -0
- package/dist/agent-runtimes/pi/adapter.js +4 -0
- package/dist/agent-runtimes/pi/routed-session.js +53 -5
- package/dist/apps/chat/chat-api-routes.js +11 -37
- package/dist/apps/chat/chat-request-normalizers.js +8 -48
- package/dist/apps/chat/data/legacy-project-migration.js +492 -0
- package/dist/apps/chat/data/room-service.js +2 -2
- package/dist/apps/chat/data/workflow-session-model.js +1 -0
- package/dist/apps/chat/data/workflow-session-service.js +352 -0
- package/dist/apps/chat/rooms.js +1 -1
- package/dist/apps/chat/types/rooms.js +30 -0
- package/dist/apps/chat/web-app.js +264 -647
- package/dist/apps/chat/workflow-catalog.js +18 -18
- package/dist/apps/chat/{project-workflow-human-actions.js → workflow-human-actions.js} +14 -14
- package/dist/apps/chat/workflow-manual-trigger-runtime.js +5 -1
- package/dist/apps/chat/workflow-persistence.js +20 -28
- package/dist/apps/chat/{project-workflow-sessions.js → workflow-sessions.js} +18 -17
- package/dist/apps/chat-ui/assets/{dist-Kc3zbvQi.js → dist-Abz605MV.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-C9a0_446.js → dist-D0md0xIR.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-CcAkJ8iv.js → dist-DHnaUMlq.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-Bd9gWCbk.js → dist-DnZL1rRp.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-BbCjOLiw.js → dist-ERKABhp3.js} +1 -1
- package/dist/apps/chat-ui/assets/index-BWVPNFjU.js +228 -0
- package/dist/apps/chat-ui/assets/index-CywOD6EF.css +1 -0
- package/dist/apps/chat-ui/index.html +2 -2
- package/dist/apps/chat-vscode-web/assets/index-CZmxeSn3.js +43 -0
- package/dist/apps/chat-vscode-web/index.html +1 -1
- package/dist/compute/pool/cli.js +1 -1
- package/dist/compute/pool/seeds.js +2 -3
- package/dist/config/config.js +1 -1
- package/dist/core/session-router.js +13 -4
- package/dist/previews/cli.js +154 -79
- package/dist/previews/compute-worker.js +37 -0
- package/dist/previews/config.js +2 -1
- package/dist/previews/migrations/session-ownership.js +7 -0
- package/dist/previews/proxy.js +4 -2
- package/dist/previews/public-setup.js +108 -0
- package/dist/previews/store.js +20 -13
- package/dist/previews/web-app.js +97 -2
- package/dist/sessions/workflow-session-kind.js +0 -3
- package/npm-shrinkwrap.json +7 -6
- package/package.json +6 -2
- package/packages/workflows/README.md +21 -0
- package/packages/workflows/dist/api/index.d.ts +48 -0
- package/packages/workflows/dist/api/index.d.ts.map +1 -0
- package/packages/workflows/dist/api/index.js +96 -0
- package/packages/workflows/dist/api/index.js.map +1 -0
- package/packages/workflows/dist/definition-hash.d.ts +4 -0
- package/packages/workflows/dist/definition-hash.d.ts.map +1 -0
- package/packages/workflows/dist/definition-hash.js +27 -0
- package/packages/workflows/dist/definition-hash.js.map +1 -0
- package/packages/workflows/dist/fixtures/index.d.ts +39 -0
- package/packages/workflows/dist/fixtures/index.d.ts.map +1 -0
- package/packages/workflows/dist/fixtures/index.js +608 -0
- package/packages/workflows/dist/fixtures/index.js.map +1 -0
- package/packages/workflows/dist/index.d.ts +16 -0
- package/packages/workflows/dist/index.d.ts.map +1 -0
- package/packages/workflows/dist/index.js +10 -0
- package/packages/workflows/dist/index.js.map +1 -0
- package/packages/workflows/dist/inspection/index.d.ts +47 -0
- package/packages/workflows/dist/inspection/index.d.ts.map +1 -0
- package/packages/workflows/dist/inspection/index.js +131 -0
- package/packages/workflows/dist/inspection/index.js.map +1 -0
- package/packages/workflows/dist/registry/index.d.ts +30 -0
- package/packages/workflows/dist/registry/index.d.ts.map +1 -0
- package/packages/workflows/dist/registry/index.js +161 -0
- package/packages/workflows/dist/registry/index.js.map +1 -0
- package/packages/workflows/dist/runtime/adapter-node.d.ts +28 -0
- package/packages/workflows/dist/runtime/adapter-node.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/adapter-node.js +172 -0
- package/packages/workflows/dist/runtime/adapter-node.js.map +1 -0
- package/packages/workflows/dist/runtime/agent-node.d.ts +32 -0
- package/packages/workflows/dist/runtime/agent-node.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/agent-node.js +231 -0
- package/packages/workflows/dist/runtime/agent-node.js.map +1 -0
- package/packages/workflows/dist/runtime/agent-runtime.d.ts +25 -0
- package/packages/workflows/dist/runtime/agent-runtime.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/agent-runtime.js +111 -0
- package/packages/workflows/dist/runtime/agent-runtime.js.map +1 -0
- package/packages/workflows/dist/runtime/code-node.d.ts +31 -0
- package/packages/workflows/dist/runtime/code-node.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/code-node.js +223 -0
- package/packages/workflows/dist/runtime/code-node.js.map +1 -0
- package/packages/workflows/dist/runtime/dispatch-failures.d.ts +36 -0
- package/packages/workflows/dist/runtime/dispatch-failures.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/dispatch-failures.js +80 -0
- package/packages/workflows/dist/runtime/dispatch-failures.js.map +1 -0
- package/packages/workflows/dist/runtime/edge-payloads.d.ts +3 -0
- package/packages/workflows/dist/runtime/edge-payloads.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/edge-payloads.js +11 -0
- package/packages/workflows/dist/runtime/edge-payloads.js.map +1 -0
- package/packages/workflows/dist/runtime/edge-transfer.d.ts +39 -0
- package/packages/workflows/dist/runtime/edge-transfer.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/edge-transfer.js +356 -0
- package/packages/workflows/dist/runtime/edge-transfer.js.map +1 -0
- package/packages/workflows/dist/runtime/human-action.d.ts +43 -0
- package/packages/workflows/dist/runtime/human-action.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/human-action.js +231 -0
- package/packages/workflows/dist/runtime/human-action.js.map +1 -0
- package/packages/workflows/dist/runtime/human-node.d.ts +27 -0
- package/packages/workflows/dist/runtime/human-node.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/human-node.js +126 -0
- package/packages/workflows/dist/runtime/human-node.js.map +1 -0
- package/packages/workflows/dist/runtime/ids.d.ts +2 -0
- package/packages/workflows/dist/runtime/ids.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/ids.js +4 -0
- package/packages/workflows/dist/runtime/ids.js.map +1 -0
- package/packages/workflows/dist/runtime/index.d.ts +23 -0
- package/packages/workflows/dist/runtime/index.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/index.js +12 -0
- package/packages/workflows/dist/runtime/index.js.map +1 -0
- package/packages/workflows/dist/runtime/manual-trigger.d.ts +51 -0
- package/packages/workflows/dist/runtime/manual-trigger.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/manual-trigger.js +403 -0
- package/packages/workflows/dist/runtime/manual-trigger.js.map +1 -0
- package/packages/workflows/dist/runtime/nested-workflow-node.d.ts +48 -0
- package/packages/workflows/dist/runtime/nested-workflow-node.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/nested-workflow-node.js +246 -0
- package/packages/workflows/dist/runtime/nested-workflow-node.js.map +1 -0
- package/packages/workflows/dist/runtime/one-node-agent.d.ts +34 -0
- package/packages/workflows/dist/runtime/one-node-agent.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/one-node-agent.js +334 -0
- package/packages/workflows/dist/runtime/one-node-agent.js.map +1 -0
- package/packages/workflows/dist/runtime/persistence.d.ts +9 -0
- package/packages/workflows/dist/runtime/persistence.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/persistence.js +67 -0
- package/packages/workflows/dist/runtime/persistence.js.map +1 -0
- package/packages/workflows/dist/runtime/pibo-routing.d.ts +126 -0
- package/packages/workflows/dist/runtime/pibo-routing.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/pibo-routing.js +96 -0
- package/packages/workflows/dist/runtime/pibo-routing.js.map +1 -0
- package/packages/workflows/dist/runtime/prompts.d.ts +20 -0
- package/packages/workflows/dist/runtime/prompts.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/prompts.js +235 -0
- package/packages/workflows/dist/runtime/prompts.js.map +1 -0
- package/packages/workflows/dist/runtime/retry.d.ts +35 -0
- package/packages/workflows/dist/runtime/retry.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/retry.js +80 -0
- package/packages/workflows/dist/runtime/retry.js.map +1 -0
- package/packages/workflows/dist/runtime/state.d.ts +14 -0
- package/packages/workflows/dist/runtime/state.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/state.js +139 -0
- package/packages/workflows/dist/runtime/state.js.map +1 -0
- package/packages/workflows/dist/runtime/time.d.ts +6 -0
- package/packages/workflows/dist/runtime/time.d.ts.map +1 -0
- package/packages/workflows/dist/runtime/time.js +42 -0
- package/packages/workflows/dist/runtime/time.js.map +1 -0
- package/packages/workflows/dist/store/catalog-records.d.ts +18 -0
- package/packages/workflows/dist/store/catalog-records.d.ts.map +1 -0
- package/packages/workflows/dist/store/catalog-records.js +59 -0
- package/packages/workflows/dist/store/catalog-records.js.map +1 -0
- package/packages/workflows/dist/store/contracts.d.ts +149 -0
- package/packages/workflows/dist/store/contracts.d.ts.map +1 -0
- package/packages/workflows/dist/store/contracts.js +2 -0
- package/packages/workflows/dist/store/contracts.js.map +1 -0
- package/packages/workflows/dist/store/draft-writes.d.ts +7 -0
- package/packages/workflows/dist/store/draft-writes.d.ts.map +1 -0
- package/packages/workflows/dist/store/draft-writes.js +18 -0
- package/packages/workflows/dist/store/draft-writes.js.map +1 -0
- package/packages/workflows/dist/store/index.d.ts +55 -0
- package/packages/workflows/dist/store/index.d.ts.map +1 -0
- package/packages/workflows/dist/store/index.js +650 -0
- package/packages/workflows/dist/store/index.js.map +1 -0
- package/packages/workflows/dist/store/list-query.d.ts +13 -0
- package/packages/workflows/dist/store/list-query.d.ts.map +1 -0
- package/packages/workflows/dist/store/list-query.js +20 -0
- package/packages/workflows/dist/store/list-query.js.map +1 -0
- package/packages/workflows/dist/store/row-mappers.d.ts +206 -0
- package/packages/workflows/dist/store/row-mappers.d.ts.map +1 -0
- package/packages/workflows/dist/store/row-mappers.js +262 -0
- package/packages/workflows/dist/store/row-mappers.js.map +1 -0
- package/packages/workflows/dist/store/schema.d.ts +13 -0
- package/packages/workflows/dist/store/schema.d.ts.map +1 -0
- package/packages/workflows/dist/store/schema.js +458 -0
- package/packages/workflows/dist/store/schema.js.map +1 -0
- package/packages/workflows/dist/store/write-values.d.ts +18 -0
- package/packages/workflows/dist/store/write-values.d.ts.map +1 -0
- package/packages/workflows/dist/store/write-values.js +227 -0
- package/packages/workflows/dist/store/write-values.js.map +1 -0
- package/packages/workflows/dist/types/index.d.ts +1202 -0
- package/packages/workflows/dist/types/index.d.ts.map +1 -0
- package/packages/workflows/dist/types/index.js +8 -0
- package/packages/workflows/dist/types/index.js.map +1 -0
- package/packages/workflows/dist/validation/diagnostics.d.ts +27 -0
- package/packages/workflows/dist/validation/diagnostics.d.ts.map +1 -0
- package/packages/workflows/dist/validation/diagnostics.js +104 -0
- package/packages/workflows/dist/validation/diagnostics.js.map +1 -0
- package/packages/workflows/dist/validation/graph-cycles.d.ts +4 -0
- package/packages/workflows/dist/validation/graph-cycles.d.ts.map +1 -0
- package/packages/workflows/dist/validation/graph-cycles.js +130 -0
- package/packages/workflows/dist/validation/graph-cycles.js.map +1 -0
- package/packages/workflows/dist/validation/graph-edges.d.ts +5 -0
- package/packages/workflows/dist/validation/graph-edges.d.ts.map +1 -0
- package/packages/workflows/dist/validation/graph-edges.js +48 -0
- package/packages/workflows/dist/validation/graph-edges.js.map +1 -0
- package/packages/workflows/dist/validation/graph-ports.d.ts +5 -0
- package/packages/workflows/dist/validation/graph-ports.d.ts.map +1 -0
- package/packages/workflows/dist/validation/graph-ports.js +55 -0
- package/packages/workflows/dist/validation/graph-ports.js.map +1 -0
- package/packages/workflows/dist/validation/index.d.ts +18 -0
- package/packages/workflows/dist/validation/index.d.ts.map +1 -0
- package/packages/workflows/dist/validation/index.js +175 -0
- package/packages/workflows/dist/validation/index.js.map +1 -0
- package/packages/workflows/dist/validation/json-schema.d.ts +12 -0
- package/packages/workflows/dist/validation/json-schema.d.ts.map +1 -0
- package/packages/workflows/dist/validation/json-schema.js +556 -0
- package/packages/workflows/dist/validation/json-schema.js.map +1 -0
- package/packages/workflows/dist/validation/registry-refs.d.ts +21 -0
- package/packages/workflows/dist/validation/registry-refs.d.ts.map +1 -0
- package/packages/workflows/dist/validation/registry-refs.js +283 -0
- package/packages/workflows/dist/validation/registry-refs.js.map +1 -0
- package/packages/workflows/dist/validation/retry-policy.d.ts +3 -0
- package/packages/workflows/dist/validation/retry-policy.d.ts.map +1 -0
- package/packages/workflows/dist/validation/retry-policy.js +114 -0
- package/packages/workflows/dist/validation/retry-policy.js.map +1 -0
- package/packages/workflows/dist/validation/schema-declarations.d.ts +5 -0
- package/packages/workflows/dist/validation/schema-declarations.d.ts.map +1 -0
- package/packages/workflows/dist/validation/schema-declarations.js +36 -0
- package/packages/workflows/dist/validation/schema-declarations.js.map +1 -0
- package/packages/workflows/dist/validation/state-access.d.ts +4 -0
- package/packages/workflows/dist/validation/state-access.d.ts.map +1 -0
- package/packages/workflows/dist/validation/state-access.js +121 -0
- package/packages/workflows/dist/validation/state-access.js.map +1 -0
- package/packages/workflows/dist/xstate/index.d.ts +73 -0
- package/packages/workflows/dist/xstate/index.d.ts.map +1 -0
- package/packages/workflows/dist/xstate/index.js +728 -0
- package/packages/workflows/dist/xstate/index.js.map +1 -0
- package/packages/workflows/package.json +23 -0
- package/dist/apps/chat/data/project-service.js +0 -1029
- package/dist/apps/chat-ui/assets/index-DWJnUye8.css +0 -1
- package/dist/apps/chat-ui/assets/index-exohEOUE.js +0 -228
- package/dist/apps/chat-vscode-web/assets/index-D1bpAUkR.js +0 -43
|
@@ -0,0 +1,1202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical TypeScript types for Pibo Workflow System V1 definitions and run facts.
|
|
3
|
+
*
|
|
4
|
+
* These types intentionally model durable IR and registry references. Runtime implementations
|
|
5
|
+
* are referenced by stable ids so persisted workflow records never need inline closures.
|
|
6
|
+
*/
|
|
7
|
+
export type JsonPrimitive = string | number | boolean | null;
|
|
8
|
+
export type JsonValue = JsonPrimitive | JsonValue[] | {
|
|
9
|
+
[key: string]: JsonValue;
|
|
10
|
+
};
|
|
11
|
+
export type JsonObject = {
|
|
12
|
+
[key: string]: JsonValue;
|
|
13
|
+
};
|
|
14
|
+
export type JsonSchemaTypeName = "string" | "number" | "integer" | "boolean" | "object" | "array" | "null";
|
|
15
|
+
export type JsonSchema = {
|
|
16
|
+
type?: JsonSchemaTypeName | JsonSchemaTypeName[];
|
|
17
|
+
title?: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
enum?: JsonValue[];
|
|
20
|
+
const?: JsonValue;
|
|
21
|
+
default?: JsonValue;
|
|
22
|
+
properties?: Record<string, JsonSchema>;
|
|
23
|
+
required?: string[];
|
|
24
|
+
additionalProperties?: false | JsonSchema;
|
|
25
|
+
items?: JsonSchema;
|
|
26
|
+
anyOf?: JsonSchema[];
|
|
27
|
+
oneOf?: JsonSchema[];
|
|
28
|
+
allOf?: JsonSchema[];
|
|
29
|
+
$defs?: Record<string, JsonSchema>;
|
|
30
|
+
$ref?: string;
|
|
31
|
+
};
|
|
32
|
+
export type WorkflowId = string;
|
|
33
|
+
export type WorkflowVersion = string;
|
|
34
|
+
export type WorkflowRunId = string;
|
|
35
|
+
export type NodeId = string;
|
|
36
|
+
export type EdgeId = string;
|
|
37
|
+
export type PortId = string;
|
|
38
|
+
export type NodeAttemptId = string;
|
|
39
|
+
export type EdgeTransferId = string;
|
|
40
|
+
export type WorkflowCheckpointId = string;
|
|
41
|
+
export type WorkflowWakeupId = string;
|
|
42
|
+
export type WorkflowWaitTokenId = string;
|
|
43
|
+
export type WorkflowEventId = string;
|
|
44
|
+
export type WorkflowDefinitionSnapshotId = string;
|
|
45
|
+
export type WorkflowHumanActionId = string;
|
|
46
|
+
export type RegistryRefId = string;
|
|
47
|
+
export type PromptTemplate = string;
|
|
48
|
+
export type DurationSpec = {
|
|
49
|
+
kind: "milliseconds";
|
|
50
|
+
value: number;
|
|
51
|
+
} | {
|
|
52
|
+
kind: "seconds";
|
|
53
|
+
value: number;
|
|
54
|
+
} | {
|
|
55
|
+
kind: "minutes";
|
|
56
|
+
value: number;
|
|
57
|
+
} | {
|
|
58
|
+
kind: "iso8601";
|
|
59
|
+
value: string;
|
|
60
|
+
};
|
|
61
|
+
export type TextWorkflowPort = {
|
|
62
|
+
kind: "text";
|
|
63
|
+
description?: string;
|
|
64
|
+
};
|
|
65
|
+
export type JsonWorkflowPort = {
|
|
66
|
+
kind: "json";
|
|
67
|
+
schema: JsonSchema;
|
|
68
|
+
description?: string;
|
|
69
|
+
};
|
|
70
|
+
export type WorkflowPort = TextWorkflowPort | JsonWorkflowPort;
|
|
71
|
+
export type WorkflowValue = string | JsonValue;
|
|
72
|
+
export type InferPortValue<TPort extends WorkflowPort | undefined> = TPort extends TextWorkflowPort ? string : TPort extends JsonWorkflowPort ? JsonValue : WorkflowValue;
|
|
73
|
+
export type WorkflowInputFrom<TWorkflow extends {
|
|
74
|
+
input: WorkflowPort;
|
|
75
|
+
}> = InferPortValue<TWorkflow["input"]>;
|
|
76
|
+
export type WorkflowOutputFrom<TWorkflow extends {
|
|
77
|
+
output: WorkflowPort;
|
|
78
|
+
}> = InferPortValue<TWorkflow["output"]>;
|
|
79
|
+
export type NodeInputFrom<TNode extends {
|
|
80
|
+
input?: WorkflowPort;
|
|
81
|
+
}> = InferPortValue<TNode["input"]>;
|
|
82
|
+
export type NodeOutputFrom<TNode extends {
|
|
83
|
+
output?: WorkflowPort;
|
|
84
|
+
}> = InferPortValue<TNode["output"]>;
|
|
85
|
+
export type AgentProfileSelection = {
|
|
86
|
+
kind: "fixed";
|
|
87
|
+
id: string;
|
|
88
|
+
};
|
|
89
|
+
export type PromptBuilderRef = RegistryRefId | {
|
|
90
|
+
kind: "promptBuilder";
|
|
91
|
+
language: "typescript";
|
|
92
|
+
id: RegistryRefId;
|
|
93
|
+
};
|
|
94
|
+
export type AgentProfileDefinition = {
|
|
95
|
+
aliases?: string[];
|
|
96
|
+
tools?: string[];
|
|
97
|
+
nativeTools?: string[];
|
|
98
|
+
skills?: string[];
|
|
99
|
+
contextFiles?: string[];
|
|
100
|
+
status?: "active" | "archived";
|
|
101
|
+
archivedAt?: string;
|
|
102
|
+
metadata?: JsonObject;
|
|
103
|
+
};
|
|
104
|
+
export type SelectionPolicy = {
|
|
105
|
+
kind: "inherit";
|
|
106
|
+
} | {
|
|
107
|
+
kind: "only";
|
|
108
|
+
ids: string[];
|
|
109
|
+
} | {
|
|
110
|
+
kind: "exclude";
|
|
111
|
+
ids: string[];
|
|
112
|
+
} | {
|
|
113
|
+
kind: "extend";
|
|
114
|
+
ids: string[];
|
|
115
|
+
};
|
|
116
|
+
export type ToolSelectionPolicy = SelectionPolicy;
|
|
117
|
+
export type SkillSelectionPolicy = SelectionPolicy;
|
|
118
|
+
export type ContextSelectionPolicy = SelectionPolicy;
|
|
119
|
+
export type SessionRoutingPolicy = {
|
|
120
|
+
parentSessionId?: string;
|
|
121
|
+
roomId?: string;
|
|
122
|
+
channel?: string;
|
|
123
|
+
};
|
|
124
|
+
export type RuntimeAgentProfileMetadata = {
|
|
125
|
+
id: string;
|
|
126
|
+
requestedId: string;
|
|
127
|
+
aliases?: string[];
|
|
128
|
+
metadata?: JsonObject;
|
|
129
|
+
};
|
|
130
|
+
export type RuntimeSelectionMetadata = {
|
|
131
|
+
profileId: string;
|
|
132
|
+
requestedProfileId?: string;
|
|
133
|
+
selectedProfile?: RuntimeAgentProfileMetadata;
|
|
134
|
+
tools?: string[];
|
|
135
|
+
skills?: string[];
|
|
136
|
+
contextFiles?: string[];
|
|
137
|
+
routing?: SessionRoutingPolicy;
|
|
138
|
+
};
|
|
139
|
+
export type StatePath = string;
|
|
140
|
+
export type StateScope = "global" | "local" | "edge";
|
|
141
|
+
export type ScopedStatePath = `${StateScope}.${string}`;
|
|
142
|
+
export type MergePolicy = {
|
|
143
|
+
kind: "replace";
|
|
144
|
+
} | {
|
|
145
|
+
kind: "append";
|
|
146
|
+
} | {
|
|
147
|
+
kind: "shallowMerge";
|
|
148
|
+
} | {
|
|
149
|
+
kind: "custom";
|
|
150
|
+
handler: RegistryRefId;
|
|
151
|
+
};
|
|
152
|
+
export type WorkflowStateFieldDefinition = {
|
|
153
|
+
schema: JsonSchema;
|
|
154
|
+
merge?: MergePolicy;
|
|
155
|
+
description?: string;
|
|
156
|
+
};
|
|
157
|
+
export type WorkflowStateDefinition = {
|
|
158
|
+
global?: Record<StatePath, WorkflowStateFieldDefinition>;
|
|
159
|
+
};
|
|
160
|
+
export type StateAccessPolicy = {
|
|
161
|
+
reads?: ScopedStatePath[];
|
|
162
|
+
writes?: ScopedStatePath[];
|
|
163
|
+
};
|
|
164
|
+
export type StatePatch = Record<string, JsonValue | undefined>;
|
|
165
|
+
export type RetryBackoffPolicy = {
|
|
166
|
+
kind: "none";
|
|
167
|
+
} | {
|
|
168
|
+
kind: "fixed";
|
|
169
|
+
delayMs: number;
|
|
170
|
+
} | {
|
|
171
|
+
kind: "linear";
|
|
172
|
+
initialMs: number;
|
|
173
|
+
stepMs: number;
|
|
174
|
+
maxMs?: number;
|
|
175
|
+
} | {
|
|
176
|
+
kind: "exponential";
|
|
177
|
+
initialMs: number;
|
|
178
|
+
factor?: number;
|
|
179
|
+
maxMs?: number;
|
|
180
|
+
};
|
|
181
|
+
export type RetryPolicy = {
|
|
182
|
+
maxAttempts: number;
|
|
183
|
+
backoff?: RetryBackoffPolicy;
|
|
184
|
+
retryOn?: string[];
|
|
185
|
+
};
|
|
186
|
+
export type BaseNodeDefinition = {
|
|
187
|
+
id?: NodeId;
|
|
188
|
+
label?: string;
|
|
189
|
+
description?: string;
|
|
190
|
+
input?: WorkflowPort;
|
|
191
|
+
output?: WorkflowPort;
|
|
192
|
+
state?: StateAccessPolicy;
|
|
193
|
+
retry?: RetryPolicy;
|
|
194
|
+
metadata?: WorkflowMetadata;
|
|
195
|
+
ui?: WorkflowNodeUiMetadata;
|
|
196
|
+
};
|
|
197
|
+
export type AgentNodeDefinition = BaseNodeDefinition & {
|
|
198
|
+
kind: "agent";
|
|
199
|
+
runtime: "pibo";
|
|
200
|
+
profile: AgentProfileSelection;
|
|
201
|
+
tools?: ToolSelectionPolicy;
|
|
202
|
+
skills?: SkillSelectionPolicy;
|
|
203
|
+
context?: ContextSelectionPolicy;
|
|
204
|
+
routing?: SessionRoutingPolicy;
|
|
205
|
+
promptTemplate?: PromptTemplate;
|
|
206
|
+
promptBuilder?: PromptBuilderRef;
|
|
207
|
+
};
|
|
208
|
+
export type TypeScriptCodeNodeDefinition = BaseNodeDefinition & {
|
|
209
|
+
kind: "code";
|
|
210
|
+
language: "typescript";
|
|
211
|
+
handler: RegistryRefId;
|
|
212
|
+
};
|
|
213
|
+
export type NestedWorkflowNodeDefinition = BaseNodeDefinition & {
|
|
214
|
+
kind: "workflow";
|
|
215
|
+
workflowId: WorkflowId;
|
|
216
|
+
workflowVersion?: WorkflowVersion;
|
|
217
|
+
namespace?: string;
|
|
218
|
+
};
|
|
219
|
+
export type HumanNodeDefinition = BaseNodeDefinition & {
|
|
220
|
+
kind: "human";
|
|
221
|
+
prompt: string;
|
|
222
|
+
schema?: JsonSchema;
|
|
223
|
+
actions?: WorkflowHumanActionRef[];
|
|
224
|
+
timeout?: DurationSpec;
|
|
225
|
+
};
|
|
226
|
+
export type AdapterRef = {
|
|
227
|
+
kind: "adapter";
|
|
228
|
+
language: "typescript";
|
|
229
|
+
id: RegistryRefId;
|
|
230
|
+
params?: JsonObject;
|
|
231
|
+
};
|
|
232
|
+
export type AdapterNodeDefinition = BaseNodeDefinition & {
|
|
233
|
+
kind: "adapter";
|
|
234
|
+
handler: AdapterRef;
|
|
235
|
+
mode: "deterministic";
|
|
236
|
+
};
|
|
237
|
+
export type ManualTriggerDefinition = {
|
|
238
|
+
kind: "manual";
|
|
239
|
+
mode?: "editor" | "api";
|
|
240
|
+
};
|
|
241
|
+
export type TriggerNodeDefinition = BaseNodeDefinition & {
|
|
242
|
+
kind: "trigger";
|
|
243
|
+
trigger: ManualTriggerDefinition;
|
|
244
|
+
};
|
|
245
|
+
export type WorkflowNodeDefinition = TriggerNodeDefinition | AgentNodeDefinition | TypeScriptCodeNodeDefinition | NestedWorkflowNodeDefinition | HumanNodeDefinition | AdapterNodeDefinition;
|
|
246
|
+
export type NodePortRef = {
|
|
247
|
+
nodeId: NodeId;
|
|
248
|
+
portId?: PortId;
|
|
249
|
+
};
|
|
250
|
+
export type EdgeKind = "data" | "control" | "error" | "resume";
|
|
251
|
+
export type JoinPolicy = "all_success" | "one_success" | "none_failed_min_one_success" | "all_done";
|
|
252
|
+
export type GuardRef = {
|
|
253
|
+
handler: RegistryRefId;
|
|
254
|
+
priority?: number;
|
|
255
|
+
params?: JsonObject;
|
|
256
|
+
};
|
|
257
|
+
export type EdgeAdapterDefinition = {
|
|
258
|
+
kind: "edgeAdapter";
|
|
259
|
+
output: WorkflowPort;
|
|
260
|
+
transform: AdapterRef;
|
|
261
|
+
};
|
|
262
|
+
export type EdgeMapDefinition = {
|
|
263
|
+
from?: StatePath;
|
|
264
|
+
to?: StatePath;
|
|
265
|
+
};
|
|
266
|
+
export type EdgeStateMapping = {
|
|
267
|
+
reads?: ScopedStatePath[];
|
|
268
|
+
writes?: ScopedStatePath[];
|
|
269
|
+
merge?: MergePolicy;
|
|
270
|
+
};
|
|
271
|
+
export type WorkflowEdgeDefinition = {
|
|
272
|
+
id: EdgeId;
|
|
273
|
+
from: NodePortRef;
|
|
274
|
+
to: NodePortRef;
|
|
275
|
+
kind?: EdgeKind;
|
|
276
|
+
event?: string;
|
|
277
|
+
guard?: GuardRef;
|
|
278
|
+
priority?: number;
|
|
279
|
+
join?: JoinPolicy;
|
|
280
|
+
map?: EdgeMapDefinition;
|
|
281
|
+
state?: EdgeStateMapping;
|
|
282
|
+
adapter?: EdgeAdapterDefinition;
|
|
283
|
+
metadata?: WorkflowMetadata;
|
|
284
|
+
ui?: WorkflowEdgeUiMetadata;
|
|
285
|
+
};
|
|
286
|
+
export type LoopPolicy = {
|
|
287
|
+
edgeId: EdgeId;
|
|
288
|
+
maxAttempts: number;
|
|
289
|
+
guard?: GuardRef;
|
|
290
|
+
};
|
|
291
|
+
export type WorkflowMetadata = {
|
|
292
|
+
useWhen?: string[];
|
|
293
|
+
notFor?: string[];
|
|
294
|
+
examples?: string[];
|
|
295
|
+
tags?: string[];
|
|
296
|
+
routingHints?: Record<string, JsonValue>;
|
|
297
|
+
promptAssetRefs?: RegistryRefId[];
|
|
298
|
+
capabilityRefs?: RegistryRefId[];
|
|
299
|
+
migration?: {
|
|
300
|
+
fromVersion?: WorkflowVersion;
|
|
301
|
+
toVersion?: WorkflowVersion;
|
|
302
|
+
notes?: string;
|
|
303
|
+
};
|
|
304
|
+
[key: string]: JsonValue | string[] | {
|
|
305
|
+
fromVersion?: string;
|
|
306
|
+
toVersion?: string;
|
|
307
|
+
notes?: string;
|
|
308
|
+
} | undefined;
|
|
309
|
+
};
|
|
310
|
+
export type WorkflowUiMetadata = {
|
|
311
|
+
layout?: "auto" | "manual";
|
|
312
|
+
positions?: Record<NodeId, {
|
|
313
|
+
x: number;
|
|
314
|
+
y: number;
|
|
315
|
+
}>;
|
|
316
|
+
collapsed?: NodeId[];
|
|
317
|
+
color?: string;
|
|
318
|
+
icon?: string;
|
|
319
|
+
};
|
|
320
|
+
export type WorkflowNodeUiMetadata = {
|
|
321
|
+
position?: {
|
|
322
|
+
x: number;
|
|
323
|
+
y: number;
|
|
324
|
+
};
|
|
325
|
+
collapsed?: boolean;
|
|
326
|
+
color?: string;
|
|
327
|
+
icon?: string;
|
|
328
|
+
};
|
|
329
|
+
export type WorkflowEdgeUiMetadata = {
|
|
330
|
+
label?: string;
|
|
331
|
+
color?: string;
|
|
332
|
+
};
|
|
333
|
+
export type WorkflowDefinition = {
|
|
334
|
+
id: WorkflowId;
|
|
335
|
+
version: WorkflowVersion;
|
|
336
|
+
title?: string;
|
|
337
|
+
description?: string;
|
|
338
|
+
input: WorkflowPort;
|
|
339
|
+
output: WorkflowPort;
|
|
340
|
+
initial: NodeId | NodeId[];
|
|
341
|
+
final?: NodeId | NodeId[];
|
|
342
|
+
nodes: Record<NodeId, WorkflowNodeDefinition>;
|
|
343
|
+
edges: Record<EdgeId, WorkflowEdgeDefinition>;
|
|
344
|
+
state?: WorkflowStateDefinition;
|
|
345
|
+
retry?: RetryPolicy;
|
|
346
|
+
loops?: LoopPolicy[];
|
|
347
|
+
metadata?: WorkflowMetadata;
|
|
348
|
+
ui?: WorkflowUiMetadata;
|
|
349
|
+
};
|
|
350
|
+
export type WorkflowDefinitionInput = Omit<WorkflowDefinition, "version"> & {
|
|
351
|
+
version?: WorkflowVersion;
|
|
352
|
+
};
|
|
353
|
+
export type WorkflowDefinitionSnapshot = {
|
|
354
|
+
id: WorkflowDefinitionSnapshotId;
|
|
355
|
+
workflowId: WorkflowId;
|
|
356
|
+
workflowVersion: WorkflowVersion;
|
|
357
|
+
hash: string;
|
|
358
|
+
definition: WorkflowDefinition;
|
|
359
|
+
createdAt: string;
|
|
360
|
+
};
|
|
361
|
+
export type WorkflowRecordSource = "code" | "ui";
|
|
362
|
+
export type WorkflowRecordStatus = "draft" | "published" | "archived";
|
|
363
|
+
export type WorkflowDraftId = string;
|
|
364
|
+
export type WorkflowVersionIntent = "patch" | "minor" | "major";
|
|
365
|
+
export type WorkflowDraftValidationState = "unknown" | "valid" | "warning" | "error";
|
|
366
|
+
export type PartialWorkflowDefinition = Partial<WorkflowDefinition> & {
|
|
367
|
+
id?: WorkflowId;
|
|
368
|
+
version?: WorkflowVersion;
|
|
369
|
+
};
|
|
370
|
+
export type WorkflowIdentityRecord = {
|
|
371
|
+
workflowId: WorkflowId;
|
|
372
|
+
source: "ui";
|
|
373
|
+
title: string;
|
|
374
|
+
description?: string;
|
|
375
|
+
tags: string[];
|
|
376
|
+
currentDraftId?: WorkflowDraftId;
|
|
377
|
+
latestVersion?: WorkflowVersion;
|
|
378
|
+
createdBy?: string;
|
|
379
|
+
createdAt: string;
|
|
380
|
+
updatedBy?: string;
|
|
381
|
+
updatedAt: string;
|
|
382
|
+
};
|
|
383
|
+
export type WorkflowDraftRecord = {
|
|
384
|
+
draftId: WorkflowDraftId;
|
|
385
|
+
workflowId: WorkflowId;
|
|
386
|
+
source: "ui";
|
|
387
|
+
status: "draft";
|
|
388
|
+
baseWorkflowId?: WorkflowId;
|
|
389
|
+
baseWorkflowVersion?: WorkflowVersion;
|
|
390
|
+
baseDefinitionHash?: string;
|
|
391
|
+
targetWorkflowVersion?: WorkflowVersion;
|
|
392
|
+
versionIntent: WorkflowVersionIntent;
|
|
393
|
+
definition: PartialWorkflowDefinition;
|
|
394
|
+
diagnostics: WorkflowDiagnostic[];
|
|
395
|
+
validationState: WorkflowDraftValidationState;
|
|
396
|
+
validation?: JsonObject;
|
|
397
|
+
revision: number;
|
|
398
|
+
createdBy?: string;
|
|
399
|
+
createdAt: string;
|
|
400
|
+
updatedBy?: string;
|
|
401
|
+
updatedAt: string;
|
|
402
|
+
};
|
|
403
|
+
export type WorkflowPublishedVersionRecord = {
|
|
404
|
+
workflowId: WorkflowId;
|
|
405
|
+
version: WorkflowVersion;
|
|
406
|
+
source: "ui";
|
|
407
|
+
status: "published";
|
|
408
|
+
definition: WorkflowDefinition;
|
|
409
|
+
definitionHash: string;
|
|
410
|
+
publishedFromDraftId?: string;
|
|
411
|
+
publishedBy?: string;
|
|
412
|
+
publishedAt: string;
|
|
413
|
+
createdAt: string;
|
|
414
|
+
};
|
|
415
|
+
export type WorkflowArchiveStateRecord = {
|
|
416
|
+
workflowId: WorkflowId;
|
|
417
|
+
source: "ui";
|
|
418
|
+
archived: boolean;
|
|
419
|
+
archivedAt?: string;
|
|
420
|
+
archivedBy?: string;
|
|
421
|
+
archiveReason?: string;
|
|
422
|
+
updatedAt: string;
|
|
423
|
+
};
|
|
424
|
+
export type WorkflowDeleteTombstoneRecord = {
|
|
425
|
+
workflowId: WorkflowId;
|
|
426
|
+
source: "ui";
|
|
427
|
+
deleted: true;
|
|
428
|
+
deletedAt?: string;
|
|
429
|
+
deletedBy?: string;
|
|
430
|
+
lastKnownTitle: string;
|
|
431
|
+
lastKnownVersion?: WorkflowVersion;
|
|
432
|
+
lastDefinitionHash?: string;
|
|
433
|
+
createdAt: string;
|
|
434
|
+
};
|
|
435
|
+
export type WorkflowCatalogRecord = {
|
|
436
|
+
id: string;
|
|
437
|
+
workflowId: WorkflowId;
|
|
438
|
+
version?: WorkflowVersion;
|
|
439
|
+
draftId?: WorkflowDraftId;
|
|
440
|
+
title: string;
|
|
441
|
+
description?: string;
|
|
442
|
+
tags: string[];
|
|
443
|
+
source: WorkflowRecordSource;
|
|
444
|
+
status: WorkflowRecordStatus;
|
|
445
|
+
versions: WorkflowVersion[];
|
|
446
|
+
currentDraftId?: WorkflowDraftId;
|
|
447
|
+
validationState?: WorkflowDraftValidationState;
|
|
448
|
+
diagnostics?: WorkflowDiagnostic[];
|
|
449
|
+
definitionHash?: string;
|
|
450
|
+
editable: boolean;
|
|
451
|
+
createdAt?: string;
|
|
452
|
+
updatedAt?: string;
|
|
453
|
+
archivedAt?: string;
|
|
454
|
+
};
|
|
455
|
+
export type DiagnosticSeverity = "info" | "warning" | "error";
|
|
456
|
+
export type WorkflowDiagnostic = {
|
|
457
|
+
code: string;
|
|
458
|
+
message: string;
|
|
459
|
+
severity: DiagnosticSeverity;
|
|
460
|
+
path?: string;
|
|
461
|
+
workflowId?: WorkflowId;
|
|
462
|
+
nodeId?: NodeId;
|
|
463
|
+
edgeId?: EdgeId;
|
|
464
|
+
statePath?: StatePath;
|
|
465
|
+
registryRef?: RegistryRefId;
|
|
466
|
+
hint?: string;
|
|
467
|
+
};
|
|
468
|
+
export type ValidationResult = {
|
|
469
|
+
ok: true;
|
|
470
|
+
diagnostics: WorkflowDiagnostic[];
|
|
471
|
+
} | {
|
|
472
|
+
ok: false;
|
|
473
|
+
diagnostics: WorkflowDiagnostic[];
|
|
474
|
+
};
|
|
475
|
+
export type CompileResult = {
|
|
476
|
+
ok: true;
|
|
477
|
+
plan: WorkflowExecutionPlan;
|
|
478
|
+
diagnostics: WorkflowDiagnostic[];
|
|
479
|
+
} | {
|
|
480
|
+
ok: false;
|
|
481
|
+
diagnostics: WorkflowDiagnostic[];
|
|
482
|
+
};
|
|
483
|
+
export type WorkflowRegistryEntry<TValue> = {
|
|
484
|
+
id: RegistryRefId;
|
|
485
|
+
pluginId?: string;
|
|
486
|
+
title?: string;
|
|
487
|
+
description?: string;
|
|
488
|
+
tags?: string[];
|
|
489
|
+
paramsSchema?: JsonSchema;
|
|
490
|
+
value: TValue;
|
|
491
|
+
};
|
|
492
|
+
export type WorkflowRegistration = {
|
|
493
|
+
id: WorkflowId;
|
|
494
|
+
version: WorkflowVersion;
|
|
495
|
+
hash?: string;
|
|
496
|
+
};
|
|
497
|
+
export type WorkflowRegistrationOptions = {
|
|
498
|
+
pluginId?: string;
|
|
499
|
+
override?: boolean;
|
|
500
|
+
};
|
|
501
|
+
export type WorkflowRegistry = {
|
|
502
|
+
workflows: Map<WorkflowId, WorkflowDefinition[]>;
|
|
503
|
+
profiles: Map<RegistryRefId, WorkflowRegistryEntry<AgentProfileDefinition>>;
|
|
504
|
+
handlers: Map<RegistryRefId, WorkflowRegistryEntry<CodeNodeHandler>>;
|
|
505
|
+
adapters: Map<RegistryRefId, WorkflowRegistryEntry<AdapterHandler>>;
|
|
506
|
+
guards: Map<RegistryRefId, WorkflowRegistryEntry<GuardHandler>>;
|
|
507
|
+
promptBuilders: Map<RegistryRefId, WorkflowRegistryEntry<PromptBuilderHandler>>;
|
|
508
|
+
humanActions: Map<RegistryRefId, WorkflowHumanActionDefinition>;
|
|
509
|
+
};
|
|
510
|
+
export type WorkflowSetupOptions = {
|
|
511
|
+
types?: Record<string, unknown>;
|
|
512
|
+
profiles?: Record<string, AgentProfileDefinition>;
|
|
513
|
+
handlers?: Record<string, CodeNodeHandler>;
|
|
514
|
+
guards?: Record<string, GuardHandler>;
|
|
515
|
+
adapters?: Record<string, AdapterHandler>;
|
|
516
|
+
promptBuilders?: Record<string, PromptBuilderHandler>;
|
|
517
|
+
humanActions?: Record<string, WorkflowHumanActionDefinition>;
|
|
518
|
+
metadata?: WorkflowMetadata;
|
|
519
|
+
};
|
|
520
|
+
export type WorkflowSetup = {
|
|
521
|
+
defineWorkflow(id: WorkflowId, definition: WorkflowDefinitionInput): WorkflowDefinition;
|
|
522
|
+
registerWorkflow(definition: WorkflowDefinition, options?: WorkflowRegistrationOptions): WorkflowRegistration;
|
|
523
|
+
};
|
|
524
|
+
export type WorkflowProviders = {
|
|
525
|
+
profiles?: Record<string, AgentProfileDefinition>;
|
|
526
|
+
handlers?: Record<string, CodeNodeHandler>;
|
|
527
|
+
adapters?: Record<string, AdapterHandler>;
|
|
528
|
+
guards?: Record<string, GuardHandler>;
|
|
529
|
+
promptBuilders?: Record<string, PromptBuilderHandler>;
|
|
530
|
+
humanActions?: Record<string, WorkflowHumanActionDefinition>;
|
|
531
|
+
};
|
|
532
|
+
export type ProvidedWorkflow = {
|
|
533
|
+
definition: WorkflowDefinition;
|
|
534
|
+
providers: WorkflowProviders;
|
|
535
|
+
};
|
|
536
|
+
export type WorkflowGlobalStateReader = {
|
|
537
|
+
get(path: StatePath): JsonValue | undefined;
|
|
538
|
+
};
|
|
539
|
+
export type NodeLocalStateReader = WorkflowGlobalStateReader;
|
|
540
|
+
export type EdgePayloadReader = {
|
|
541
|
+
get(edgeId: EdgeId): WorkflowValue | undefined;
|
|
542
|
+
all(): Record<EdgeId, WorkflowValue>;
|
|
543
|
+
};
|
|
544
|
+
export type WorkflowCommand = {
|
|
545
|
+
kind: "requestHumanInput";
|
|
546
|
+
prompt: string;
|
|
547
|
+
schema?: JsonSchema;
|
|
548
|
+
actions?: WorkflowHumanActionRef[];
|
|
549
|
+
} | {
|
|
550
|
+
kind: "cancelWorkflow";
|
|
551
|
+
reason?: string;
|
|
552
|
+
} | {
|
|
553
|
+
kind: "emitEvent";
|
|
554
|
+
event: WorkflowRuntimeEvent;
|
|
555
|
+
};
|
|
556
|
+
export type WorkflowEventEmitter = (event: WorkflowRuntimeEvent) => void | Promise<void>;
|
|
557
|
+
export type WorkflowCommandEmitter = (command: WorkflowCommand) => void | Promise<void>;
|
|
558
|
+
export type CodeNodeContext<I = WorkflowValue> = {
|
|
559
|
+
input: I;
|
|
560
|
+
global: WorkflowGlobalStateReader;
|
|
561
|
+
local: NodeLocalStateReader;
|
|
562
|
+
edge: EdgePayloadReader;
|
|
563
|
+
emit: WorkflowEventEmitter;
|
|
564
|
+
command: WorkflowCommandEmitter;
|
|
565
|
+
};
|
|
566
|
+
export type CodeNodeResult<O = WorkflowValue> = {
|
|
567
|
+
output: O;
|
|
568
|
+
globalPatch?: StatePatch;
|
|
569
|
+
localPatch?: StatePatch;
|
|
570
|
+
command?: WorkflowCommand | WorkflowCommand[];
|
|
571
|
+
};
|
|
572
|
+
export type CodeNodeHandler<I = WorkflowValue, O = WorkflowValue> = (ctx: CodeNodeContext<I>) => Promise<CodeNodeResult<O>> | CodeNodeResult<O>;
|
|
573
|
+
export type AdapterContext<I = WorkflowValue> = {
|
|
574
|
+
input: I;
|
|
575
|
+
edge?: WorkflowEdgeDefinition;
|
|
576
|
+
run?: WorkflowRun;
|
|
577
|
+
};
|
|
578
|
+
export type AdapterResult<O = WorkflowValue> = {
|
|
579
|
+
output: O;
|
|
580
|
+
};
|
|
581
|
+
export type AdapterHandler<I = WorkflowValue, O = WorkflowValue> = (ctx: AdapterContext<I>) => Promise<AdapterResult<O>> | AdapterResult<O>;
|
|
582
|
+
export type GuardContext = {
|
|
583
|
+
run?: WorkflowRun;
|
|
584
|
+
nodeAttempt?: NodeAttempt;
|
|
585
|
+
edge?: WorkflowEdgeDefinition;
|
|
586
|
+
input?: WorkflowValue;
|
|
587
|
+
output?: WorkflowValue;
|
|
588
|
+
state?: WorkflowRunState;
|
|
589
|
+
};
|
|
590
|
+
export type GuardHandler = (ctx: GuardContext) => boolean | Promise<boolean>;
|
|
591
|
+
export type PromptBuilderResult = string | {
|
|
592
|
+
prompt: string;
|
|
593
|
+
metadata?: Record<string, JsonValue>;
|
|
594
|
+
};
|
|
595
|
+
export type PromptBuilderContext<I = WorkflowValue> = {
|
|
596
|
+
input: I;
|
|
597
|
+
state: WorkflowRunState;
|
|
598
|
+
global: WorkflowGlobalStateReader;
|
|
599
|
+
local: NodeLocalStateReader;
|
|
600
|
+
edge: EdgePayloadReader;
|
|
601
|
+
node: AgentNodeDefinition;
|
|
602
|
+
nodeId: NodeId;
|
|
603
|
+
run?: WorkflowRun;
|
|
604
|
+
workflow?: WorkflowDefinition;
|
|
605
|
+
};
|
|
606
|
+
export type PromptBuilderHandler<I = WorkflowValue> = (ctx: PromptBuilderContext<I>) => PromptBuilderResult | Promise<PromptBuilderResult>;
|
|
607
|
+
export type WorkflowExecutionEnvironment = {
|
|
608
|
+
kind: "host" | "worktree" | "docker" | "remote";
|
|
609
|
+
id?: string;
|
|
610
|
+
metadata?: Record<string, JsonValue>;
|
|
611
|
+
};
|
|
612
|
+
export type WorkflowRunStatus = "pending" | "running" | "waiting" | "failed" | "completed" | "cancelled";
|
|
613
|
+
export type WorkflowRunCursor = {
|
|
614
|
+
nodeId?: NodeId;
|
|
615
|
+
edgeId?: EdgeId;
|
|
616
|
+
status?: WorkflowRunStatus;
|
|
617
|
+
};
|
|
618
|
+
export type WorkflowRunState = {
|
|
619
|
+
global: Record<string, JsonValue>;
|
|
620
|
+
local?: Record<NodeId, Record<string, JsonValue>>;
|
|
621
|
+
};
|
|
622
|
+
export type WorkflowCheckpointRef = {
|
|
623
|
+
id: WorkflowCheckpointId;
|
|
624
|
+
namespace: string;
|
|
625
|
+
};
|
|
626
|
+
export type WorkflowRun = {
|
|
627
|
+
id: WorkflowRunId;
|
|
628
|
+
workflowId: WorkflowId;
|
|
629
|
+
workflowVersion: WorkflowVersion;
|
|
630
|
+
workflowDefinitionHash?: string;
|
|
631
|
+
definitionSnapshotId?: string;
|
|
632
|
+
parentRunId?: WorkflowRunId;
|
|
633
|
+
parentNodeAttemptId?: NodeAttemptId;
|
|
634
|
+
piboSessionId?: string;
|
|
635
|
+
environment?: WorkflowExecutionEnvironment;
|
|
636
|
+
status: WorkflowRunStatus;
|
|
637
|
+
current: WorkflowRunCursor;
|
|
638
|
+
input: WorkflowValue;
|
|
639
|
+
output?: WorkflowValue;
|
|
640
|
+
state: WorkflowRunState;
|
|
641
|
+
checkpoint?: WorkflowCheckpointRef;
|
|
642
|
+
validation?: JsonObject;
|
|
643
|
+
createdAt: string;
|
|
644
|
+
updatedAt: string;
|
|
645
|
+
completedAt?: string;
|
|
646
|
+
failedAt?: string;
|
|
647
|
+
cancelledAt?: string;
|
|
648
|
+
};
|
|
649
|
+
export type WorkflowErrorSummary = {
|
|
650
|
+
code: string;
|
|
651
|
+
message: string;
|
|
652
|
+
retryable?: boolean;
|
|
653
|
+
details?: JsonObject;
|
|
654
|
+
};
|
|
655
|
+
export type WorkflowLease = {
|
|
656
|
+
holderId: string;
|
|
657
|
+
token: string;
|
|
658
|
+
acquiredAt: string;
|
|
659
|
+
expiresAt: string;
|
|
660
|
+
};
|
|
661
|
+
export type NodeAttemptStatus = "pending" | "leased" | "running" | "waiting" | "retry_scheduled" | "failed" | "completed" | "skipped" | "cancelled";
|
|
662
|
+
export type NodeAttempt = {
|
|
663
|
+
id: NodeAttemptId;
|
|
664
|
+
workflowRunId: WorkflowRunId;
|
|
665
|
+
nodeId: NodeId;
|
|
666
|
+
attempt: number;
|
|
667
|
+
kind: WorkflowNodeDefinition["kind"];
|
|
668
|
+
status: NodeAttemptStatus;
|
|
669
|
+
environment?: WorkflowExecutionEnvironment;
|
|
670
|
+
input: WorkflowValue;
|
|
671
|
+
output?: WorkflowValue;
|
|
672
|
+
localState?: Record<string, JsonValue>;
|
|
673
|
+
metadata?: NodeAttemptMetadata;
|
|
674
|
+
error?: WorkflowErrorSummary;
|
|
675
|
+
lease?: WorkflowLease;
|
|
676
|
+
startedAt?: string;
|
|
677
|
+
heartbeatAt?: string;
|
|
678
|
+
completedAt?: string;
|
|
679
|
+
failedAt?: string;
|
|
680
|
+
availableAt?: string;
|
|
681
|
+
};
|
|
682
|
+
export type RecordedAgentPromptSource = "input" | "promptTemplate" | "promptBuilder";
|
|
683
|
+
export type RecordedAgentPrompt = {
|
|
684
|
+
text: string;
|
|
685
|
+
source: RecordedAgentPromptSource;
|
|
686
|
+
tracePrivacy: {
|
|
687
|
+
kind: "workflowRun";
|
|
688
|
+
storage: "workflow-node-attempt";
|
|
689
|
+
redacted: false;
|
|
690
|
+
};
|
|
691
|
+
promptBuilderId?: RegistryRefId;
|
|
692
|
+
builderMetadata?: Record<string, JsonValue>;
|
|
693
|
+
};
|
|
694
|
+
export type NodeAttemptMetadata = {
|
|
695
|
+
runtime?: RuntimeSelectionMetadata;
|
|
696
|
+
finalPrompt?: RecordedAgentPrompt;
|
|
697
|
+
childRunId?: WorkflowRunId;
|
|
698
|
+
waitTokenId?: WorkflowWaitTokenId;
|
|
699
|
+
adapterId?: RegistryRefId;
|
|
700
|
+
[key: string]: JsonValue | RuntimeSelectionMetadata | RecordedAgentPrompt | undefined;
|
|
701
|
+
};
|
|
702
|
+
export type EdgeTransferStatus = "pending" | "transferred" | "failed";
|
|
703
|
+
export type EdgeTransfer = {
|
|
704
|
+
id: EdgeTransferId;
|
|
705
|
+
workflowRunId: WorkflowRunId;
|
|
706
|
+
edgeId: EdgeId;
|
|
707
|
+
sourceNodeAttemptId: NodeAttemptId;
|
|
708
|
+
targetNodeId: NodeId;
|
|
709
|
+
status: EdgeTransferStatus;
|
|
710
|
+
payload: WorkflowValue;
|
|
711
|
+
adapterAttemptId?: NodeAttemptId;
|
|
712
|
+
createdAt: string;
|
|
713
|
+
};
|
|
714
|
+
export type WorkflowCheckpoint = {
|
|
715
|
+
id: WorkflowCheckpointId;
|
|
716
|
+
workflowRunId: WorkflowRunId;
|
|
717
|
+
namespace: string;
|
|
718
|
+
cursor: WorkflowRunCursor;
|
|
719
|
+
globalState: Record<string, JsonValue>;
|
|
720
|
+
pendingNodeIds: NodeId[];
|
|
721
|
+
completedNodeIds: NodeId[];
|
|
722
|
+
edgePayloadRefs: EdgeTransferId[];
|
|
723
|
+
createdAt: string;
|
|
724
|
+
};
|
|
725
|
+
export type WorkflowWakeup = {
|
|
726
|
+
id: WorkflowWakeupId;
|
|
727
|
+
workflowRunId: WorkflowRunId;
|
|
728
|
+
nodeAttemptId?: NodeAttemptId;
|
|
729
|
+
kind: "retry" | "human" | "runtime" | "child_workflow";
|
|
730
|
+
availableAt: string;
|
|
731
|
+
correlationId?: string;
|
|
732
|
+
payload?: WorkflowValue;
|
|
733
|
+
createdAt: string;
|
|
734
|
+
};
|
|
735
|
+
export type WorkflowHumanActionKind = "approve" | "reject" | "resume" | "cancel" | string;
|
|
736
|
+
export type WorkflowHumanActionRef = {
|
|
737
|
+
id: RegistryRefId;
|
|
738
|
+
kind?: WorkflowHumanActionKind;
|
|
739
|
+
};
|
|
740
|
+
export type WorkflowHumanActionDefinition = {
|
|
741
|
+
id: RegistryRefId;
|
|
742
|
+
kind: WorkflowHumanActionKind;
|
|
743
|
+
title: string;
|
|
744
|
+
description?: string;
|
|
745
|
+
input?: WorkflowPort;
|
|
746
|
+
output?: WorkflowPort;
|
|
747
|
+
handler?: RegistryRefId;
|
|
748
|
+
};
|
|
749
|
+
export type WorkflowHumanActionRecord = {
|
|
750
|
+
id: WorkflowHumanActionId;
|
|
751
|
+
workflowRunId: WorkflowRunId;
|
|
752
|
+
waitTokenId: WorkflowWaitTokenId;
|
|
753
|
+
actionId?: string;
|
|
754
|
+
kind: WorkflowHumanActionKind;
|
|
755
|
+
actor?: JsonObject;
|
|
756
|
+
payload?: WorkflowValue;
|
|
757
|
+
createdAt: string;
|
|
758
|
+
};
|
|
759
|
+
export type WorkflowWaitTokenStatus = "pending" | "resumed" | "expired" | "cancelled";
|
|
760
|
+
export type WorkflowWaitToken = {
|
|
761
|
+
id: WorkflowWaitTokenId;
|
|
762
|
+
workflowRunId: WorkflowRunId;
|
|
763
|
+
nodeAttemptId?: NodeAttemptId;
|
|
764
|
+
humanNodeId?: NodeId;
|
|
765
|
+
kind?: string;
|
|
766
|
+
actions: WorkflowHumanActionRef[];
|
|
767
|
+
prompt: string;
|
|
768
|
+
schema?: JsonSchema;
|
|
769
|
+
status: WorkflowWaitTokenStatus;
|
|
770
|
+
resumePayload?: WorkflowValue;
|
|
771
|
+
createdAt: string;
|
|
772
|
+
expiresAt?: string;
|
|
773
|
+
resumedAt?: string;
|
|
774
|
+
};
|
|
775
|
+
export type WorkflowRuntimeEvent = {
|
|
776
|
+
type: "workflow.started";
|
|
777
|
+
runId: WorkflowRunId;
|
|
778
|
+
workflowId: WorkflowId;
|
|
779
|
+
} | {
|
|
780
|
+
type: "workflow.completed";
|
|
781
|
+
runId: WorkflowRunId;
|
|
782
|
+
output?: WorkflowValue;
|
|
783
|
+
} | {
|
|
784
|
+
type: "workflow.failed";
|
|
785
|
+
runId: WorkflowRunId;
|
|
786
|
+
error: WorkflowErrorSummary;
|
|
787
|
+
} | {
|
|
788
|
+
type: "workflow.cancelled";
|
|
789
|
+
runId: WorkflowRunId;
|
|
790
|
+
reason?: string;
|
|
791
|
+
} | {
|
|
792
|
+
type: "node.started";
|
|
793
|
+
runId: WorkflowRunId;
|
|
794
|
+
nodeAttemptId: NodeAttemptId;
|
|
795
|
+
nodeId: NodeId;
|
|
796
|
+
} | {
|
|
797
|
+
type: "node.completed";
|
|
798
|
+
runId: WorkflowRunId;
|
|
799
|
+
nodeAttemptId: NodeAttemptId;
|
|
800
|
+
output?: WorkflowValue;
|
|
801
|
+
} | {
|
|
802
|
+
type: "node.failed";
|
|
803
|
+
runId: WorkflowRunId;
|
|
804
|
+
nodeAttemptId: NodeAttemptId;
|
|
805
|
+
error: WorkflowErrorSummary;
|
|
806
|
+
} | {
|
|
807
|
+
type: "edge.transferred";
|
|
808
|
+
runId: WorkflowRunId;
|
|
809
|
+
edgeTransferId: EdgeTransferId;
|
|
810
|
+
edgeId: EdgeId;
|
|
811
|
+
} | {
|
|
812
|
+
type: "wait.created";
|
|
813
|
+
runId: WorkflowRunId;
|
|
814
|
+
waitTokenId: WorkflowWaitTokenId;
|
|
815
|
+
} | {
|
|
816
|
+
type: "wait.resumed";
|
|
817
|
+
runId: WorkflowRunId;
|
|
818
|
+
waitTokenId: WorkflowWaitTokenId;
|
|
819
|
+
payload?: WorkflowValue;
|
|
820
|
+
} | {
|
|
821
|
+
type: "retry.scheduled";
|
|
822
|
+
runId: WorkflowRunId;
|
|
823
|
+
nodeAttemptId: NodeAttemptId;
|
|
824
|
+
availableAt: string;
|
|
825
|
+
} | {
|
|
826
|
+
type: "checkpoint.created";
|
|
827
|
+
runId: WorkflowRunId;
|
|
828
|
+
checkpointId: WorkflowCheckpointId;
|
|
829
|
+
};
|
|
830
|
+
export type WorkflowEventRecord = {
|
|
831
|
+
id: WorkflowEventId;
|
|
832
|
+
workflowRunId: WorkflowRunId;
|
|
833
|
+
type: WorkflowRuntimeEvent["type"] | string;
|
|
834
|
+
nodeId?: NodeId;
|
|
835
|
+
edgeId?: EdgeId;
|
|
836
|
+
attemptId?: NodeAttemptId;
|
|
837
|
+
payload?: WorkflowRuntimeEvent | JsonObject;
|
|
838
|
+
createdAt: string;
|
|
839
|
+
};
|
|
840
|
+
export type WorkflowSnapshotKind = "kernel" | "xstate" | "ui";
|
|
841
|
+
export type WorkflowMachineSnapshot<TInput = WorkflowValue, TOutput = WorkflowValue> = {
|
|
842
|
+
kind: WorkflowSnapshotKind;
|
|
843
|
+
workflowId: WorkflowId;
|
|
844
|
+
runId?: WorkflowRunId;
|
|
845
|
+
status: WorkflowRunStatus;
|
|
846
|
+
current: WorkflowRunCursor;
|
|
847
|
+
input?: TInput;
|
|
848
|
+
output?: TOutput;
|
|
849
|
+
state?: WorkflowRunState;
|
|
850
|
+
version: number;
|
|
851
|
+
};
|
|
852
|
+
export type WorkflowSnapshotFrom<TWorkflow extends {
|
|
853
|
+
input: WorkflowPort;
|
|
854
|
+
output: WorkflowPort;
|
|
855
|
+
}> = WorkflowMachineSnapshot<WorkflowInputFrom<TWorkflow>, WorkflowOutputFrom<TWorkflow>>;
|
|
856
|
+
export type XStateProjectionSchemaVersion = 1;
|
|
857
|
+
export type XStateProjectionKind = "pibo.workflow.xstateProjection";
|
|
858
|
+
export type XStateProjectionStateType = "atomic" | "compound" | "parallel" | "final" | "history";
|
|
859
|
+
export type XStateProjectionRuntimeStateKind = "node" | "wait" | "retryDelay" | "terminal";
|
|
860
|
+
export type XStateProjectionTerminalKind = "completed" | "failed" | "cancelled";
|
|
861
|
+
export type XStateProjectionContextShape = {
|
|
862
|
+
/** Projection-only state shape; kernel workflow records remain the durable truth. */
|
|
863
|
+
durableTruth: "kernel";
|
|
864
|
+
global: Record<StatePath, WorkflowStateFieldDefinition>;
|
|
865
|
+
local: Record<NodeId, StateAccessPolicy | undefined>;
|
|
866
|
+
edge: Record<EdgeId, EdgeStateMapping | undefined>;
|
|
867
|
+
exposesPrivatePayloads: false;
|
|
868
|
+
};
|
|
869
|
+
export type XStateProjectionInvokeInput = {
|
|
870
|
+
kind: "workflowInput";
|
|
871
|
+
} | {
|
|
872
|
+
kind: "nodeInput";
|
|
873
|
+
nodeId: NodeId;
|
|
874
|
+
} | {
|
|
875
|
+
kind: "edgePayload";
|
|
876
|
+
edgeId: EdgeId;
|
|
877
|
+
} | {
|
|
878
|
+
kind: "snapshotRef";
|
|
879
|
+
snapshotKind: WorkflowSnapshotKind;
|
|
880
|
+
};
|
|
881
|
+
export type XStateProjectionActor = {
|
|
882
|
+
id: string;
|
|
883
|
+
src: string;
|
|
884
|
+
nodeId: NodeId;
|
|
885
|
+
kind: WorkflowNodeDefinition["kind"];
|
|
886
|
+
input: XStateProjectionInvokeInput;
|
|
887
|
+
childWorkflowId?: WorkflowId;
|
|
888
|
+
childWorkflowVersion?: WorkflowVersion;
|
|
889
|
+
metadata?: WorkflowMetadata;
|
|
890
|
+
};
|
|
891
|
+
export type XStateProjectionGuard = {
|
|
892
|
+
id: string;
|
|
893
|
+
ref: RegistryRefId;
|
|
894
|
+
edgeId?: EdgeId;
|
|
895
|
+
description?: string;
|
|
896
|
+
};
|
|
897
|
+
export type XStateProjectionActionKind = "startNode" | "completeNode" | "transferEdge" | "enterWait" | "resumeWait" | "scheduleRetry" | "recordFailure" | "cancelWorkflow";
|
|
898
|
+
export type XStateProjectionAction = {
|
|
899
|
+
id: string;
|
|
900
|
+
kind: XStateProjectionActionKind;
|
|
901
|
+
nodeId?: NodeId;
|
|
902
|
+
edgeId?: EdgeId;
|
|
903
|
+
durableEffect: boolean;
|
|
904
|
+
};
|
|
905
|
+
export type XStateProjectionDelay = {
|
|
906
|
+
id: string;
|
|
907
|
+
kind: "retry" | "humanTimeout";
|
|
908
|
+
nodeId?: NodeId;
|
|
909
|
+
edgeId?: EdgeId;
|
|
910
|
+
duration?: DurationSpec;
|
|
911
|
+
durableWakeup: true;
|
|
912
|
+
};
|
|
913
|
+
export type XStateProjectionStateMeta = {
|
|
914
|
+
pibo: {
|
|
915
|
+
kind: XStateProjectionRuntimeStateKind;
|
|
916
|
+
nodeId?: NodeId;
|
|
917
|
+
nodeKind?: WorkflowNodeDefinition["kind"];
|
|
918
|
+
actorId?: string;
|
|
919
|
+
wait?: {
|
|
920
|
+
durable: true;
|
|
921
|
+
resumeEvent: string;
|
|
922
|
+
waitTokenId?: WorkflowWaitTokenId;
|
|
923
|
+
actions?: WorkflowHumanActionRef[];
|
|
924
|
+
timeout?: DurationSpec;
|
|
925
|
+
};
|
|
926
|
+
retry?: {
|
|
927
|
+
durable: true;
|
|
928
|
+
delayId: string;
|
|
929
|
+
policy?: RetryPolicy;
|
|
930
|
+
};
|
|
931
|
+
terminal?: {
|
|
932
|
+
status: Extract<WorkflowRunStatus, "completed" | "failed" | "cancelled">;
|
|
933
|
+
};
|
|
934
|
+
ui?: WorkflowNodeUiMetadata;
|
|
935
|
+
description?: string;
|
|
936
|
+
tags?: string[];
|
|
937
|
+
};
|
|
938
|
+
};
|
|
939
|
+
export type XStateProjectionTransitionMeta = {
|
|
940
|
+
pibo: {
|
|
941
|
+
edgeId?: EdgeId;
|
|
942
|
+
edgeKind?: EdgeKind;
|
|
943
|
+
guardRef?: RegistryRefId;
|
|
944
|
+
adapterRef?: RegistryRefId;
|
|
945
|
+
join?: JoinPolicy;
|
|
946
|
+
priority?: number;
|
|
947
|
+
ui?: WorkflowEdgeUiMetadata;
|
|
948
|
+
};
|
|
949
|
+
};
|
|
950
|
+
export type XStateProjectionTransitionConfig = {
|
|
951
|
+
target?: string | string[];
|
|
952
|
+
guard?: string | {
|
|
953
|
+
type: string;
|
|
954
|
+
params?: JsonObject;
|
|
955
|
+
};
|
|
956
|
+
actions?: string[];
|
|
957
|
+
reenter?: boolean;
|
|
958
|
+
meta?: XStateProjectionTransitionMeta;
|
|
959
|
+
};
|
|
960
|
+
export type XStateProjectionInvokeConfig = {
|
|
961
|
+
id: string;
|
|
962
|
+
src: string;
|
|
963
|
+
input?: XStateProjectionInvokeInput;
|
|
964
|
+
onDone?: XStateProjectionTransitionConfig;
|
|
965
|
+
onError?: XStateProjectionTransitionConfig;
|
|
966
|
+
};
|
|
967
|
+
export type XStateProjectionStateNodeConfig = {
|
|
968
|
+
id?: string;
|
|
969
|
+
type?: XStateProjectionStateType;
|
|
970
|
+
description?: string;
|
|
971
|
+
tags?: string[];
|
|
972
|
+
entry?: string[];
|
|
973
|
+
exit?: string[];
|
|
974
|
+
invoke?: XStateProjectionInvokeConfig | XStateProjectionInvokeConfig[];
|
|
975
|
+
on?: Record<string, XStateProjectionTransitionConfig | XStateProjectionTransitionConfig[]>;
|
|
976
|
+
after?: Record<string, XStateProjectionTransitionConfig | XStateProjectionTransitionConfig[]>;
|
|
977
|
+
always?: XStateProjectionTransitionConfig | XStateProjectionTransitionConfig[];
|
|
978
|
+
states?: Record<string, XStateProjectionStateNodeConfig>;
|
|
979
|
+
meta?: XStateProjectionStateMeta;
|
|
980
|
+
};
|
|
981
|
+
export type XStateProjectionMachineMeta = {
|
|
982
|
+
pibo: {
|
|
983
|
+
schemaVersion: XStateProjectionSchemaVersion;
|
|
984
|
+
workflowId: WorkflowId;
|
|
985
|
+
workflowVersion: WorkflowVersion;
|
|
986
|
+
snapshotKinds: WorkflowSnapshotKind[];
|
|
987
|
+
contextShape: XStateProjectionContextShape;
|
|
988
|
+
actors: Record<string, XStateProjectionActor>;
|
|
989
|
+
guards: Record<string, XStateProjectionGuard>;
|
|
990
|
+
actions: Record<string, XStateProjectionAction>;
|
|
991
|
+
delays: Record<string, XStateProjectionDelay>;
|
|
992
|
+
finalStates: Record<XStateProjectionTerminalKind, string>;
|
|
993
|
+
metadata?: WorkflowMetadata;
|
|
994
|
+
ui?: WorkflowUiMetadata;
|
|
995
|
+
};
|
|
996
|
+
};
|
|
997
|
+
export type XStateProjectionMachineConfig = {
|
|
998
|
+
id: WorkflowId;
|
|
999
|
+
initial: string;
|
|
1000
|
+
context?: Record<string, JsonValue>;
|
|
1001
|
+
states: Record<string, XStateProjectionStateNodeConfig>;
|
|
1002
|
+
on?: Record<string, XStateProjectionTransitionConfig | XStateProjectionTransitionConfig[]>;
|
|
1003
|
+
meta: XStateProjectionMachineMeta;
|
|
1004
|
+
};
|
|
1005
|
+
export type XStateProjectionState = {
|
|
1006
|
+
id: string;
|
|
1007
|
+
nodeId?: NodeId;
|
|
1008
|
+
kind: XStateProjectionRuntimeStateKind;
|
|
1009
|
+
type?: XStateProjectionStateType;
|
|
1010
|
+
actorId?: string;
|
|
1011
|
+
invoke?: XStateProjectionInvokeConfig;
|
|
1012
|
+
entry?: string[];
|
|
1013
|
+
exit?: string[];
|
|
1014
|
+
after?: Record<string, XStateProjectionTransitionConfig | XStateProjectionTransitionConfig[]>;
|
|
1015
|
+
tags?: string[];
|
|
1016
|
+
meta?: XStateProjectionStateMeta;
|
|
1017
|
+
};
|
|
1018
|
+
export type XStateProjectionTransition = {
|
|
1019
|
+
id?: string;
|
|
1020
|
+
event: string;
|
|
1021
|
+
source: string;
|
|
1022
|
+
target: string;
|
|
1023
|
+
edgeId?: EdgeId;
|
|
1024
|
+
guard?: RegistryRefId;
|
|
1025
|
+
actions?: string[];
|
|
1026
|
+
meta?: XStateProjectionTransitionMeta;
|
|
1027
|
+
};
|
|
1028
|
+
export type XStateMachineProjection = {
|
|
1029
|
+
kind: XStateProjectionKind;
|
|
1030
|
+
schemaVersion: XStateProjectionSchemaVersion;
|
|
1031
|
+
id: WorkflowId;
|
|
1032
|
+
version: WorkflowVersion;
|
|
1033
|
+
initial: string;
|
|
1034
|
+
config: XStateProjectionMachineConfig;
|
|
1035
|
+
states: Record<string, XStateProjectionState>;
|
|
1036
|
+
transitions: XStateProjectionTransition[];
|
|
1037
|
+
actors: Record<string, XStateProjectionActor>;
|
|
1038
|
+
guards: Record<string, XStateProjectionGuard>;
|
|
1039
|
+
actions: Record<string, XStateProjectionAction>;
|
|
1040
|
+
delays: Record<string, XStateProjectionDelay>;
|
|
1041
|
+
contextShape: XStateProjectionContextShape;
|
|
1042
|
+
finalStates: Record<XStateProjectionTerminalKind, string>;
|
|
1043
|
+
metadata?: WorkflowMetadata;
|
|
1044
|
+
ui?: WorkflowUiMetadata;
|
|
1045
|
+
};
|
|
1046
|
+
export type WorkflowXStateUiModelSchemaVersion = 1;
|
|
1047
|
+
export type WorkflowXStateUiModelKind = "pibo.workflow.xstateUiModel";
|
|
1048
|
+
export type WorkflowXStateUiNodeStatus = "idle" | "active" | "waiting" | "retry_scheduled" | "completed" | "failed" | "cancelled";
|
|
1049
|
+
export type WorkflowXStateUiProjectionSummary = {
|
|
1050
|
+
kind: XStateProjectionKind;
|
|
1051
|
+
schemaVersion: XStateProjectionSchemaVersion;
|
|
1052
|
+
workflowId: WorkflowId;
|
|
1053
|
+
workflowVersion: WorkflowVersion;
|
|
1054
|
+
initialStateId: string;
|
|
1055
|
+
durableTruth: XStateProjectionContextShape["durableTruth"];
|
|
1056
|
+
exposesPrivatePayloads: XStateProjectionContextShape["exposesPrivatePayloads"];
|
|
1057
|
+
snapshotKinds: WorkflowSnapshotKind[];
|
|
1058
|
+
};
|
|
1059
|
+
export type WorkflowXStateUiNode = {
|
|
1060
|
+
id: string;
|
|
1061
|
+
label: string;
|
|
1062
|
+
kind: XStateProjectionRuntimeStateKind;
|
|
1063
|
+
type?: XStateProjectionStateType;
|
|
1064
|
+
nodeId?: NodeId;
|
|
1065
|
+
nodeKind?: WorkflowNodeDefinition["kind"];
|
|
1066
|
+
actorId?: string;
|
|
1067
|
+
status: WorkflowXStateUiNodeStatus;
|
|
1068
|
+
tags: string[];
|
|
1069
|
+
description?: string;
|
|
1070
|
+
position?: {
|
|
1071
|
+
x: number;
|
|
1072
|
+
y: number;
|
|
1073
|
+
};
|
|
1074
|
+
collapsed?: boolean;
|
|
1075
|
+
color?: string;
|
|
1076
|
+
icon?: string;
|
|
1077
|
+
wait?: XStateProjectionStateMeta["pibo"]["wait"];
|
|
1078
|
+
retry?: XStateProjectionStateMeta["pibo"]["retry"];
|
|
1079
|
+
terminal?: XStateProjectionStateMeta["pibo"]["terminal"];
|
|
1080
|
+
};
|
|
1081
|
+
export type WorkflowXStateUiEdge = {
|
|
1082
|
+
id: string;
|
|
1083
|
+
source: string;
|
|
1084
|
+
target: string;
|
|
1085
|
+
event: string;
|
|
1086
|
+
edgeId?: EdgeId;
|
|
1087
|
+
edgeKind?: EdgeKind;
|
|
1088
|
+
guardRef?: RegistryRefId;
|
|
1089
|
+
adapterRef?: RegistryRefId;
|
|
1090
|
+
actions: string[];
|
|
1091
|
+
label?: string;
|
|
1092
|
+
color?: string;
|
|
1093
|
+
priority?: number;
|
|
1094
|
+
};
|
|
1095
|
+
export type WorkflowXStateUiActor = {
|
|
1096
|
+
id: string;
|
|
1097
|
+
nodeId: NodeId;
|
|
1098
|
+
kind: WorkflowNodeDefinition["kind"];
|
|
1099
|
+
src: string;
|
|
1100
|
+
childWorkflowId?: WorkflowId;
|
|
1101
|
+
childWorkflowVersion?: WorkflowVersion;
|
|
1102
|
+
};
|
|
1103
|
+
export type WorkflowXStateUiCurrent = {
|
|
1104
|
+
snapshotKind?: WorkflowSnapshotKind;
|
|
1105
|
+
runId?: WorkflowRunId;
|
|
1106
|
+
status?: WorkflowRunStatus;
|
|
1107
|
+
stateIds: string[];
|
|
1108
|
+
nodeId?: NodeId;
|
|
1109
|
+
edgeId?: EdgeId;
|
|
1110
|
+
};
|
|
1111
|
+
export type WorkflowXStateUiModel = {
|
|
1112
|
+
kind: WorkflowXStateUiModelKind;
|
|
1113
|
+
schemaVersion: WorkflowXStateUiModelSchemaVersion;
|
|
1114
|
+
projection: WorkflowXStateUiProjectionSummary;
|
|
1115
|
+
current?: WorkflowXStateUiCurrent;
|
|
1116
|
+
nodes: WorkflowXStateUiNode[];
|
|
1117
|
+
edges: WorkflowXStateUiEdge[];
|
|
1118
|
+
actors: WorkflowXStateUiActor[];
|
|
1119
|
+
guards: XStateProjectionGuard[];
|
|
1120
|
+
actions: XStateProjectionAction[];
|
|
1121
|
+
delays: XStateProjectionDelay[];
|
|
1122
|
+
finalStates: Record<XStateProjectionTerminalKind, string>;
|
|
1123
|
+
ui?: WorkflowUiMetadata;
|
|
1124
|
+
};
|
|
1125
|
+
export type WorkflowInspectionEvent = {
|
|
1126
|
+
type: "@pibo.workflow.actor.created";
|
|
1127
|
+
actorId: string;
|
|
1128
|
+
nodeId?: NodeId;
|
|
1129
|
+
} | {
|
|
1130
|
+
type: "@pibo.workflow.event.sent";
|
|
1131
|
+
actorId: string;
|
|
1132
|
+
event: WorkflowRuntimeEvent;
|
|
1133
|
+
} | {
|
|
1134
|
+
type: "@pibo.workflow.transition";
|
|
1135
|
+
runId: WorkflowRunId;
|
|
1136
|
+
from: string;
|
|
1137
|
+
to: string;
|
|
1138
|
+
edgeId?: EdgeId;
|
|
1139
|
+
} | {
|
|
1140
|
+
type: "@pibo.workflow.snapshot";
|
|
1141
|
+
runId: WorkflowRunId;
|
|
1142
|
+
snapshot: WorkflowMachineSnapshot;
|
|
1143
|
+
} | {
|
|
1144
|
+
type: "@pibo.workflow.action";
|
|
1145
|
+
runId: WorkflowRunId;
|
|
1146
|
+
action: string;
|
|
1147
|
+
} | {
|
|
1148
|
+
type: "@pibo.workflow.child.output";
|
|
1149
|
+
runId: WorkflowRunId;
|
|
1150
|
+
childRunId: WorkflowRunId;
|
|
1151
|
+
output: WorkflowValue;
|
|
1152
|
+
} | {
|
|
1153
|
+
type: "@pibo.workflow.wait.entered";
|
|
1154
|
+
runId: WorkflowRunId;
|
|
1155
|
+
reason: string;
|
|
1156
|
+
} | {
|
|
1157
|
+
type: "@pibo.workflow.wait.resumed";
|
|
1158
|
+
runId: WorkflowRunId;
|
|
1159
|
+
value?: WorkflowValue;
|
|
1160
|
+
};
|
|
1161
|
+
export type WorkflowInspectionListener = (event: WorkflowInspectionEvent) => void;
|
|
1162
|
+
export type Unsubscribe = () => void;
|
|
1163
|
+
export type PersistedActorSnapshot = {
|
|
1164
|
+
actorId: string;
|
|
1165
|
+
kind: WorkflowNodeDefinition["kind"];
|
|
1166
|
+
snapshot: JsonValue;
|
|
1167
|
+
createdAt: string;
|
|
1168
|
+
};
|
|
1169
|
+
export type PiboWorkflowActor<I = unknown, O = unknown, S = unknown> = {
|
|
1170
|
+
id: string;
|
|
1171
|
+
kind: WorkflowNodeDefinition["kind"];
|
|
1172
|
+
start(input: I): Promise<void> | void;
|
|
1173
|
+
send(event: WorkflowRuntimeEvent): void;
|
|
1174
|
+
stop(reason?: string): Promise<void> | void;
|
|
1175
|
+
getSnapshot(): S;
|
|
1176
|
+
persist?(): PersistedActorSnapshot;
|
|
1177
|
+
restore?(snapshot: PersistedActorSnapshot): void;
|
|
1178
|
+
inspect?(listener: WorkflowInspectionListener): Unsubscribe;
|
|
1179
|
+
};
|
|
1180
|
+
export type CompiledNode = WorkflowNodeDefinition & {
|
|
1181
|
+
id: NodeId;
|
|
1182
|
+
};
|
|
1183
|
+
export type CompiledEdge = WorkflowEdgeDefinition;
|
|
1184
|
+
export type CompiledLoopPolicy = LoopPolicy;
|
|
1185
|
+
export type CompiledJoinPolicy = {
|
|
1186
|
+
nodeId: NodeId;
|
|
1187
|
+
policy: JoinPolicy;
|
|
1188
|
+
};
|
|
1189
|
+
export type CompiledStatePolicy = WorkflowStateDefinition;
|
|
1190
|
+
export type WorkflowExecutionPlan = {
|
|
1191
|
+
definitionId: WorkflowId;
|
|
1192
|
+
definitionVersion: WorkflowVersion;
|
|
1193
|
+
nodes: Record<NodeId, CompiledNode>;
|
|
1194
|
+
edges: Record<EdgeId, CompiledEdge>;
|
|
1195
|
+
initialNodeIds: NodeId[];
|
|
1196
|
+
terminalNodeIds: NodeId[];
|
|
1197
|
+
loops: CompiledLoopPolicy[];
|
|
1198
|
+
joins: CompiledJoinPolicy[];
|
|
1199
|
+
state: CompiledStatePolicy;
|
|
1200
|
+
xstateProjection: XStateMachineProjection;
|
|
1201
|
+
};
|
|
1202
|
+
//# sourceMappingURL=index.d.ts.map
|