@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,47 @@
|
|
|
1
|
+
import type { EdgeTransfer, NodeAttempt, NodeAttemptId, WorkflowCheckpoint, WorkflowErrorSummary, WorkflowEventRecord, WorkflowHumanActionRecord, WorkflowRun, WorkflowRunId, WorkflowWaitToken, WorkflowWakeup } from "../types/index.js";
|
|
2
|
+
import type { WorkflowCheckpointStore, WorkflowEdgeTransferStore, WorkflowEventStore, WorkflowHumanActionStore, WorkflowNodeAttemptStore, WorkflowRunStore, WorkflowWaitTokenStore, WorkflowWakeupStore } from "../store/index.js";
|
|
3
|
+
export type WorkflowRunInspectionStore = WorkflowRunStore & Partial<WorkflowEventStore> & Partial<WorkflowNodeAttemptStore> & Partial<WorkflowEdgeTransferStore> & Partial<WorkflowCheckpointStore> & Partial<WorkflowWakeupStore> & Partial<WorkflowWaitTokenStore> & Partial<WorkflowHumanActionStore>;
|
|
4
|
+
export type WorkflowRunInspectionOptions = {
|
|
5
|
+
limit?: number;
|
|
6
|
+
};
|
|
7
|
+
export type WorkflowRunInspectionSummary = {
|
|
8
|
+
runId: WorkflowRunId;
|
|
9
|
+
workflowId: string;
|
|
10
|
+
workflowVersion: string;
|
|
11
|
+
status: WorkflowRun["status"];
|
|
12
|
+
piboSessionId?: string;
|
|
13
|
+
currentNodeId?: string;
|
|
14
|
+
currentEdgeId?: string;
|
|
15
|
+
createdAt: string;
|
|
16
|
+
updatedAt: string;
|
|
17
|
+
completedAt?: string;
|
|
18
|
+
failedAt?: string;
|
|
19
|
+
cancelledAt?: string;
|
|
20
|
+
nodeAttempts: number;
|
|
21
|
+
completedNodeAttempts: number;
|
|
22
|
+
failedNodeAttempts: number;
|
|
23
|
+
waitingNodeAttempts: number;
|
|
24
|
+
pendingWaitTokens: number;
|
|
25
|
+
edgeTransfers: number;
|
|
26
|
+
events: number;
|
|
27
|
+
latestCheckpointId?: string;
|
|
28
|
+
failedNodeId?: string;
|
|
29
|
+
failedNodeAttemptId?: NodeAttemptId;
|
|
30
|
+
error?: WorkflowErrorSummary;
|
|
31
|
+
};
|
|
32
|
+
export type WorkflowRunInspection = {
|
|
33
|
+
kind: "workflowRunInspection";
|
|
34
|
+
schemaVersion: 1;
|
|
35
|
+
summary: WorkflowRunInspectionSummary;
|
|
36
|
+
run: WorkflowRun;
|
|
37
|
+
nodeAttempts: NodeAttempt[];
|
|
38
|
+
edgeTransfers: EdgeTransfer[];
|
|
39
|
+
checkpoints: WorkflowCheckpoint[];
|
|
40
|
+
wakeups: WorkflowWakeup[];
|
|
41
|
+
waitTokens: WorkflowWaitToken[];
|
|
42
|
+
humanActions: WorkflowHumanActionRecord[];
|
|
43
|
+
events: WorkflowEventRecord[];
|
|
44
|
+
};
|
|
45
|
+
export declare function inspectWorkflowRun(store: WorkflowRunInspectionStore, runId: WorkflowRunId, options?: WorkflowRunInspectionOptions): Promise<WorkflowRunInspection | undefined>;
|
|
46
|
+
export declare function formatWorkflowRunInspection(inspection: WorkflowRunInspection): string;
|
|
47
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/inspection/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,0BAA0B,GAAG,gBAAgB,GACrD,OAAO,CAAC,kBAAkB,CAAC,GAC3B,OAAO,CAAC,wBAAwB,CAAC,GACjC,OAAO,CAAC,yBAAyB,CAAC,GAClC,OAAO,CAAC,uBAAuB,CAAC,GAChC,OAAO,CAAC,mBAAmB,CAAC,GAC5B,OAAO,CAAC,sBAAsB,CAAC,GAC/B,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAEtC,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,aAAa,CAAC;IACpC,KAAK,CAAC,EAAE,oBAAoB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,aAAa,EAAE,CAAC,CAAC;IACjB,OAAO,EAAE,4BAA4B,CAAC;IACtC,GAAG,EAAE,WAAW,CAAC;IACjB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,YAAY,EAAE,yBAAyB,EAAE,CAAC;IAC1C,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B,CAAC;AAEF,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,0BAA0B,EACjC,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAgC5C;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,qBAAqB,GAAG,MAAM,CAsBrF"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
export async function inspectWorkflowRun(store, runId, options = {}) {
|
|
2
|
+
const run = await store.getRun(runId);
|
|
3
|
+
if (!run)
|
|
4
|
+
return undefined;
|
|
5
|
+
const limit = normalizeInspectionLimit(options.limit);
|
|
6
|
+
const nodeAttempts = sortNodeAttempts(await listOptional(store, store.listNodeAttempts, { workflowRunId: run.id, limit }));
|
|
7
|
+
const edgeTransfers = await listOptional(store, store.listEdgeTransfers, { workflowRunId: run.id, limit });
|
|
8
|
+
const checkpoints = await listOptional(store, store.listCheckpoints, { workflowRunId: run.id, limit });
|
|
9
|
+
const wakeups = await listOptional(store, store.listWakeups, { workflowRunId: run.id, limit });
|
|
10
|
+
const waitTokens = await listOptional(store, store.listWaitTokens, { workflowRunId: run.id, limit });
|
|
11
|
+
const humanActions = await listOptional(store, store.listHumanActions, { workflowRunId: run.id, limit });
|
|
12
|
+
const events = await listOptional(store, store.listEvents, { workflowRunId: run.id, limit });
|
|
13
|
+
return {
|
|
14
|
+
kind: "workflowRunInspection",
|
|
15
|
+
schemaVersion: 1,
|
|
16
|
+
summary: createInspectionSummary(run, {
|
|
17
|
+
nodeAttempts,
|
|
18
|
+
edgeTransfers,
|
|
19
|
+
checkpoints,
|
|
20
|
+
waitTokens,
|
|
21
|
+
events,
|
|
22
|
+
}),
|
|
23
|
+
run,
|
|
24
|
+
nodeAttempts,
|
|
25
|
+
edgeTransfers,
|
|
26
|
+
checkpoints,
|
|
27
|
+
wakeups,
|
|
28
|
+
waitTokens,
|
|
29
|
+
humanActions,
|
|
30
|
+
events,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function formatWorkflowRunInspection(inspection) {
|
|
34
|
+
const { summary } = inspection;
|
|
35
|
+
const lines = [
|
|
36
|
+
`run\t${summary.runId}`,
|
|
37
|
+
`workflow\t${summary.workflowId}@${summary.workflowVersion}`,
|
|
38
|
+
`status\t${summary.status}`,
|
|
39
|
+
];
|
|
40
|
+
if (summary.piboSessionId)
|
|
41
|
+
lines.push(`pibo_session\t${summary.piboSessionId}`);
|
|
42
|
+
if (summary.currentNodeId)
|
|
43
|
+
lines.push(`current_node\t${summary.currentNodeId}`);
|
|
44
|
+
if (summary.currentEdgeId)
|
|
45
|
+
lines.push(`current_edge\t${summary.currentEdgeId}`);
|
|
46
|
+
if (summary.latestCheckpointId)
|
|
47
|
+
lines.push(`checkpoint\t${summary.latestCheckpointId}`);
|
|
48
|
+
if (summary.failedNodeId)
|
|
49
|
+
lines.push(`failed_node\t${summary.failedNodeId}`);
|
|
50
|
+
if (summary.failedNodeAttemptId)
|
|
51
|
+
lines.push(`failed_attempt\t${summary.failedNodeAttemptId}`);
|
|
52
|
+
if (summary.error)
|
|
53
|
+
lines.push(`error\t${summary.error.code}\t${summary.error.message}`);
|
|
54
|
+
lines.push(`attempts\t${summary.nodeAttempts}\tcompleted=${summary.completedNodeAttempts}\tfailed=${summary.failedNodeAttempts}\twaiting=${summary.waitingNodeAttempts}`, `wait_tokens\t${summary.pendingWaitTokens} pending`, `edge_transfers\t${summary.edgeTransfers}`, `events\t${summary.events}`, `updated\t${summary.updatedAt}`);
|
|
55
|
+
return lines.join("\n");
|
|
56
|
+
}
|
|
57
|
+
function createInspectionSummary(run, facts) {
|
|
58
|
+
const failedAttempt = latestNodeAttempt(facts.nodeAttempts.filter((attempt) => attempt.status === "failed"));
|
|
59
|
+
const latestCheckpoint = latestCheckpointByCreatedAt(facts.checkpoints);
|
|
60
|
+
const failedEventError = latestWorkflowFailedEventError(facts.events);
|
|
61
|
+
return {
|
|
62
|
+
runId: run.id,
|
|
63
|
+
workflowId: run.workflowId,
|
|
64
|
+
workflowVersion: run.workflowVersion,
|
|
65
|
+
status: run.status,
|
|
66
|
+
...(run.piboSessionId ? { piboSessionId: run.piboSessionId } : {}),
|
|
67
|
+
...(run.current.nodeId ? { currentNodeId: run.current.nodeId } : {}),
|
|
68
|
+
...(run.current.edgeId ? { currentEdgeId: run.current.edgeId } : {}),
|
|
69
|
+
createdAt: run.createdAt,
|
|
70
|
+
updatedAt: run.updatedAt,
|
|
71
|
+
...(run.completedAt ? { completedAt: run.completedAt } : {}),
|
|
72
|
+
...(run.failedAt ? { failedAt: run.failedAt } : {}),
|
|
73
|
+
...(run.cancelledAt ? { cancelledAt: run.cancelledAt } : {}),
|
|
74
|
+
nodeAttempts: facts.nodeAttempts.length,
|
|
75
|
+
completedNodeAttempts: facts.nodeAttempts.filter((attempt) => attempt.status === "completed").length,
|
|
76
|
+
failedNodeAttempts: facts.nodeAttempts.filter((attempt) => attempt.status === "failed").length,
|
|
77
|
+
waitingNodeAttempts: facts.nodeAttempts.filter((attempt) => attempt.status === "waiting").length,
|
|
78
|
+
pendingWaitTokens: facts.waitTokens.filter((token) => token.status === "pending").length,
|
|
79
|
+
edgeTransfers: facts.edgeTransfers.length,
|
|
80
|
+
events: facts.events.length,
|
|
81
|
+
...(latestCheckpoint ? { latestCheckpointId: latestCheckpoint.id } : {}),
|
|
82
|
+
...(failedAttempt ? { failedNodeId: failedAttempt.nodeId, failedNodeAttemptId: failedAttempt.id } : {}),
|
|
83
|
+
...(failedAttempt?.error ?? failedEventError ? { error: failedAttempt?.error ?? failedEventError } : {}),
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
async function listOptional(store, list, filter) {
|
|
87
|
+
if (!list)
|
|
88
|
+
return [];
|
|
89
|
+
return list.call(store, filter);
|
|
90
|
+
}
|
|
91
|
+
function normalizeInspectionLimit(limit) {
|
|
92
|
+
if (limit === undefined)
|
|
93
|
+
return 1000;
|
|
94
|
+
if (!Number.isInteger(limit) || limit < 1)
|
|
95
|
+
throw new Error("Workflow inspection limit must be a positive integer");
|
|
96
|
+
return Math.min(limit, 1000);
|
|
97
|
+
}
|
|
98
|
+
function sortNodeAttempts(attempts) {
|
|
99
|
+
return [...attempts].sort((left, right) => compareNullableStrings(attemptSortKey(left), attemptSortKey(right)) || left.id.localeCompare(right.id));
|
|
100
|
+
}
|
|
101
|
+
function latestNodeAttempt(attempts) {
|
|
102
|
+
return [...attempts].sort((left, right) => compareNullableStrings(attemptSortKey(right), attemptSortKey(left)) || right.id.localeCompare(left.id))[0];
|
|
103
|
+
}
|
|
104
|
+
function latestCheckpointByCreatedAt(checkpoints) {
|
|
105
|
+
return [...checkpoints].sort((left, right) => compareNullableStrings(right.createdAt, left.createdAt) || right.id.localeCompare(left.id))[0];
|
|
106
|
+
}
|
|
107
|
+
function attemptSortKey(attempt) {
|
|
108
|
+
return attempt.startedAt ?? attempt.availableAt ?? attempt.completedAt ?? attempt.failedAt;
|
|
109
|
+
}
|
|
110
|
+
function compareNullableStrings(left, right) {
|
|
111
|
+
if (left === right)
|
|
112
|
+
return 0;
|
|
113
|
+
if (left === undefined)
|
|
114
|
+
return 1;
|
|
115
|
+
if (right === undefined)
|
|
116
|
+
return -1;
|
|
117
|
+
return left.localeCompare(right);
|
|
118
|
+
}
|
|
119
|
+
function latestWorkflowFailedEventError(events) {
|
|
120
|
+
const failedEvent = [...events]
|
|
121
|
+
.filter((event) => event.type === "workflow.failed")
|
|
122
|
+
.sort((left, right) => compareNullableStrings(right.createdAt, left.createdAt) || right.id.localeCompare(left.id))[0];
|
|
123
|
+
const payload = failedEvent?.payload;
|
|
124
|
+
if (!payload || typeof payload !== "object" || !("error" in payload))
|
|
125
|
+
return undefined;
|
|
126
|
+
const error = payload.error;
|
|
127
|
+
if (!error || typeof error !== "object" || !("code" in error) || !("message" in error))
|
|
128
|
+
return undefined;
|
|
129
|
+
return error;
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/inspection/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { AdapterHandler, AdapterRef, AgentProfileDefinition, CodeNodeHandler, GuardHandler, PromptBuilderHandler, PromptBuilderRef, RegistryRefId, WorkflowDefinition, WorkflowHumanActionDefinition, WorkflowProviders, WorkflowPublishedVersionRecord, WorkflowRegistry, WorkflowRegistryEntry, WorkflowRegistration, WorkflowRegistrationOptions, JsonSchema } from "../types/index.js";
|
|
2
|
+
export type WorkflowRegistryEntryOptions = WorkflowRegistrationOptions & {
|
|
3
|
+
title?: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
tags?: string[];
|
|
6
|
+
paramsSchema?: JsonSchema;
|
|
7
|
+
};
|
|
8
|
+
export declare function createWorkflowRegistry(providers?: WorkflowProviders): WorkflowRegistry;
|
|
9
|
+
export declare function registerProviders(registry: WorkflowRegistry, providers: WorkflowProviders, options?: WorkflowRegistrationOptions): WorkflowRegistry;
|
|
10
|
+
export declare function registerWorkflowDefinition(registry: WorkflowRegistry, definition: WorkflowDefinition, options?: WorkflowRegistrationOptions): void;
|
|
11
|
+
export declare function resolveWorkflowDefinition(registry: Pick<WorkflowRegistry, "workflows">, id: string, version?: string): WorkflowDefinition | undefined;
|
|
12
|
+
export declare function registerWorkflowPublishedVersion(registry: WorkflowRegistry, record: WorkflowPublishedVersionRecord, options?: WorkflowRegistrationOptions): WorkflowRegistration;
|
|
13
|
+
export declare function registerWorkflowPublishedVersions(registry: WorkflowRegistry, records: Iterable<WorkflowPublishedVersionRecord>, options?: WorkflowRegistrationOptions): WorkflowRegistration[];
|
|
14
|
+
export declare function registerWorkflowAgentProfile(registry: WorkflowRegistry, id: RegistryRefId, profile: AgentProfileDefinition, options?: WorkflowRegistryEntryOptions): WorkflowRegistryEntry<AgentProfileDefinition>;
|
|
15
|
+
export declare function registerWorkflowHandler(registry: WorkflowRegistry, id: RegistryRefId, handler: CodeNodeHandler, options?: WorkflowRegistryEntryOptions): WorkflowRegistryEntry<CodeNodeHandler>;
|
|
16
|
+
export declare function registerWorkflowAdapter(registry: WorkflowRegistry, id: RegistryRefId, adapter: AdapterHandler, options?: WorkflowRegistryEntryOptions): WorkflowRegistryEntry<AdapterHandler>;
|
|
17
|
+
export declare function registerWorkflowGuard(registry: WorkflowRegistry, id: RegistryRefId, guard: GuardHandler, options?: WorkflowRegistryEntryOptions): WorkflowRegistryEntry<GuardHandler>;
|
|
18
|
+
export declare function registerWorkflowPromptBuilder(registry: WorkflowRegistry, id: RegistryRefId, promptBuilder: PromptBuilderHandler, options?: WorkflowRegistryEntryOptions): WorkflowRegistryEntry<PromptBuilderHandler>;
|
|
19
|
+
export declare function registerWorkflowHumanAction(registry: WorkflowRegistry, id: RegistryRefId, humanAction: WorkflowHumanActionDefinition, options?: WorkflowRegistrationOptions): WorkflowHumanActionDefinition;
|
|
20
|
+
export declare function resolveWorkflowHumanAction(registry: Pick<WorkflowRegistry, "humanActions">, ref: RegistryRefId): WorkflowHumanActionDefinition | undefined;
|
|
21
|
+
export declare function hasWorkflowHumanAction(registry: Pick<WorkflowRegistry, "humanActions">, ref: RegistryRefId): boolean;
|
|
22
|
+
export declare function resolveWorkflowAgentProfile(registry: Pick<WorkflowRegistry, "profiles">, ref: RegistryRefId): WorkflowRegistryEntry<AgentProfileDefinition> | undefined;
|
|
23
|
+
export declare function hasWorkflowAgentProfile(registry: Pick<WorkflowRegistry, "profiles">, ref: RegistryRefId): boolean;
|
|
24
|
+
export declare function resolveWorkflowHandler(registry: Pick<WorkflowRegistry, "handlers">, ref: RegistryRefId): WorkflowRegistryEntry<CodeNodeHandler> | undefined;
|
|
25
|
+
export declare function hasWorkflowHandler(registry: Pick<WorkflowRegistry, "handlers">, ref: RegistryRefId): boolean;
|
|
26
|
+
export declare function resolveWorkflowAdapter(registry: Pick<WorkflowRegistry, "adapters">, ref: AdapterRef | RegistryRefId): WorkflowRegistryEntry<AdapterHandler> | undefined;
|
|
27
|
+
export declare function hasWorkflowAdapter(registry: Pick<WorkflowRegistry, "adapters">, ref: AdapterRef | RegistryRefId): boolean;
|
|
28
|
+
export declare function resolveWorkflowPromptBuilder(registry: Pick<WorkflowRegistry, "promptBuilders">, ref: PromptBuilderRef): WorkflowRegistryEntry<PromptBuilderHandler> | undefined;
|
|
29
|
+
export declare function hasWorkflowPromptBuilder(registry: Pick<WorkflowRegistry, "promptBuilders">, ref: PromptBuilderRef): boolean;
|
|
30
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { hashWorkflowDefinition } from "../definition-hash.js";
|
|
2
|
+
export function createWorkflowRegistry(providers = {}) {
|
|
3
|
+
const registry = {
|
|
4
|
+
workflows: new Map(),
|
|
5
|
+
profiles: new Map(),
|
|
6
|
+
handlers: new Map(),
|
|
7
|
+
adapters: new Map(),
|
|
8
|
+
guards: new Map(),
|
|
9
|
+
promptBuilders: new Map(),
|
|
10
|
+
humanActions: new Map(),
|
|
11
|
+
};
|
|
12
|
+
registerProviders(registry, providers, { override: true });
|
|
13
|
+
return registry;
|
|
14
|
+
}
|
|
15
|
+
export function registerProviders(registry, providers, options = {}) {
|
|
16
|
+
for (const [id, profile] of Object.entries(providers.profiles ?? {})) {
|
|
17
|
+
registerWorkflowAgentProfile(registry, id, profile, options);
|
|
18
|
+
}
|
|
19
|
+
for (const [id, handler] of Object.entries(providers.handlers ?? {})) {
|
|
20
|
+
registerWorkflowHandler(registry, id, handler, options);
|
|
21
|
+
}
|
|
22
|
+
for (const [id, adapter] of Object.entries(providers.adapters ?? {})) {
|
|
23
|
+
registerWorkflowAdapter(registry, id, adapter, options);
|
|
24
|
+
}
|
|
25
|
+
for (const [id, guard] of Object.entries(providers.guards ?? {})) {
|
|
26
|
+
registerWorkflowGuard(registry, id, guard, options);
|
|
27
|
+
}
|
|
28
|
+
for (const [id, promptBuilder] of Object.entries(providers.promptBuilders ?? {})) {
|
|
29
|
+
registerWorkflowPromptBuilder(registry, id, promptBuilder, options);
|
|
30
|
+
}
|
|
31
|
+
for (const [id, humanAction] of Object.entries(providers.humanActions ?? {})) {
|
|
32
|
+
registerWorkflowHumanAction(registry, id, humanAction, options);
|
|
33
|
+
}
|
|
34
|
+
return registry;
|
|
35
|
+
}
|
|
36
|
+
export function registerWorkflowDefinition(registry, definition, options = {}) {
|
|
37
|
+
const versions = registry.workflows.get(definition.id) ?? [];
|
|
38
|
+
const existingIndex = versions.findIndex((item) => item.version === definition.version);
|
|
39
|
+
if (existingIndex >= 0) {
|
|
40
|
+
if (!options.override) {
|
|
41
|
+
throw new Error(`Workflow '${definition.id}@${definition.version}' is already registered.`);
|
|
42
|
+
}
|
|
43
|
+
versions[existingIndex] = definition;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
versions.push(definition);
|
|
47
|
+
}
|
|
48
|
+
registry.workflows.set(definition.id, versions);
|
|
49
|
+
}
|
|
50
|
+
export function resolveWorkflowDefinition(registry, id, version) {
|
|
51
|
+
const versions = registry.workflows.get(id);
|
|
52
|
+
if (!versions || versions.length === 0) {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
if (version !== undefined) {
|
|
56
|
+
return versions.find((definition) => definition.version === version);
|
|
57
|
+
}
|
|
58
|
+
return [...versions].sort((left, right) => right.version.localeCompare(left.version))[0];
|
|
59
|
+
}
|
|
60
|
+
export function registerWorkflowPublishedVersion(registry, record, options = {}) {
|
|
61
|
+
assertRegistryPublishedWorkflowVersionRecord(record);
|
|
62
|
+
registerWorkflowDefinition(registry, record.definition, options);
|
|
63
|
+
return { id: record.workflowId, version: record.version, hash: record.definitionHash };
|
|
64
|
+
}
|
|
65
|
+
export function registerWorkflowPublishedVersions(registry, records, options = {}) {
|
|
66
|
+
const registrations = [];
|
|
67
|
+
for (const record of records) {
|
|
68
|
+
registrations.push(registerWorkflowPublishedVersion(registry, record, options));
|
|
69
|
+
}
|
|
70
|
+
return registrations;
|
|
71
|
+
}
|
|
72
|
+
function assertRegistryPublishedWorkflowVersionRecord(record) {
|
|
73
|
+
if (record.source !== "ui" || record.status !== "published") {
|
|
74
|
+
throw new Error(`Workflow '${record.workflowId}@${record.version}' is not a UI published version record.`);
|
|
75
|
+
}
|
|
76
|
+
if (record.definition.id !== record.workflowId || record.definition.version !== record.version) {
|
|
77
|
+
throw new Error(`Workflow '${record.workflowId}@${record.version}' published record does not match its definition id/version.`);
|
|
78
|
+
}
|
|
79
|
+
const computedHash = hashWorkflowDefinition(record.definition);
|
|
80
|
+
if (record.definitionHash !== computedHash) {
|
|
81
|
+
throw new Error(`Workflow '${record.workflowId}@${record.version}' published record has an invalid definition hash.`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export function registerWorkflowAgentProfile(registry, id, profile, options = {}) {
|
|
85
|
+
return registerRegistryEntry(registry.profiles, "agent profile", id, profile, options);
|
|
86
|
+
}
|
|
87
|
+
export function registerWorkflowHandler(registry, id, handler, options = {}) {
|
|
88
|
+
return registerRegistryEntry(registry.handlers, "handler", id, handler, options);
|
|
89
|
+
}
|
|
90
|
+
export function registerWorkflowAdapter(registry, id, adapter, options = {}) {
|
|
91
|
+
return registerRegistryEntry(registry.adapters, "adapter", id, adapter, options);
|
|
92
|
+
}
|
|
93
|
+
export function registerWorkflowGuard(registry, id, guard, options = {}) {
|
|
94
|
+
return registerRegistryEntry(registry.guards, "guard", id, guard, options);
|
|
95
|
+
}
|
|
96
|
+
export function registerWorkflowPromptBuilder(registry, id, promptBuilder, options = {}) {
|
|
97
|
+
return registerRegistryEntry(registry.promptBuilders, "promptBuilder", id, promptBuilder, options);
|
|
98
|
+
}
|
|
99
|
+
export function registerWorkflowHumanAction(registry, id, humanAction, options = {}) {
|
|
100
|
+
if (registry.humanActions.has(id) && !options.override) {
|
|
101
|
+
throw new Error(`Workflow human action '${id}' is already registered.`);
|
|
102
|
+
}
|
|
103
|
+
registry.humanActions.set(id, humanAction);
|
|
104
|
+
return humanAction;
|
|
105
|
+
}
|
|
106
|
+
export function resolveWorkflowHumanAction(registry, ref) {
|
|
107
|
+
return registry.humanActions.get(ref);
|
|
108
|
+
}
|
|
109
|
+
export function hasWorkflowHumanAction(registry, ref) {
|
|
110
|
+
return resolveWorkflowHumanAction(registry, ref) !== undefined;
|
|
111
|
+
}
|
|
112
|
+
export function resolveWorkflowAgentProfile(registry, ref) {
|
|
113
|
+
return registry.profiles.get(ref);
|
|
114
|
+
}
|
|
115
|
+
export function hasWorkflowAgentProfile(registry, ref) {
|
|
116
|
+
return resolveWorkflowAgentProfile(registry, ref) !== undefined;
|
|
117
|
+
}
|
|
118
|
+
export function resolveWorkflowHandler(registry, ref) {
|
|
119
|
+
return registry.handlers.get(ref);
|
|
120
|
+
}
|
|
121
|
+
export function hasWorkflowHandler(registry, ref) {
|
|
122
|
+
return resolveWorkflowHandler(registry, ref) !== undefined;
|
|
123
|
+
}
|
|
124
|
+
export function resolveWorkflowAdapter(registry, ref) {
|
|
125
|
+
const id = typeof ref === "string" ? ref : ref.id;
|
|
126
|
+
return registry.adapters.get(id);
|
|
127
|
+
}
|
|
128
|
+
export function hasWorkflowAdapter(registry, ref) {
|
|
129
|
+
return resolveWorkflowAdapter(registry, ref) !== undefined;
|
|
130
|
+
}
|
|
131
|
+
export function resolveWorkflowPromptBuilder(registry, ref) {
|
|
132
|
+
return registry.promptBuilders.get(getPromptBuilderRefId(ref));
|
|
133
|
+
}
|
|
134
|
+
export function hasWorkflowPromptBuilder(registry, ref) {
|
|
135
|
+
return resolveWorkflowPromptBuilder(registry, ref) !== undefined;
|
|
136
|
+
}
|
|
137
|
+
function getPromptBuilderRefId(ref) {
|
|
138
|
+
return typeof ref === "string" ? ref : ref.id;
|
|
139
|
+
}
|
|
140
|
+
function registerRegistryEntry(entries, kind, id, value, options) {
|
|
141
|
+
if (entries.has(id) && !options.override) {
|
|
142
|
+
throw new Error(`Workflow ${kind} '${id}' is already registered.`);
|
|
143
|
+
}
|
|
144
|
+
const entry = withOptionalEntryMetadata({
|
|
145
|
+
id,
|
|
146
|
+
value,
|
|
147
|
+
}, options);
|
|
148
|
+
entries.set(id, entry);
|
|
149
|
+
return entry;
|
|
150
|
+
}
|
|
151
|
+
function withOptionalEntryMetadata(entry, options) {
|
|
152
|
+
return {
|
|
153
|
+
...entry,
|
|
154
|
+
...(options.pluginId ? { pluginId: options.pluginId } : {}),
|
|
155
|
+
...(options.title ? { title: options.title } : {}),
|
|
156
|
+
...(options.description ? { description: options.description } : {}),
|
|
157
|
+
...(options.tags ? { tags: options.tags } : {}),
|
|
158
|
+
...(options.paramsSchema ? { paramsSchema: options.paramsSchema } : {}),
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { AdapterResult, NodeAttempt, NodeAttemptId, WorkflowDefinition, WorkflowDiagnostic, WorkflowErrorSummary, WorkflowEventEmitter, WorkflowRegistry, WorkflowRun, WorkflowRuntimeEvent, WorkflowValue } from "../types/index.js";
|
|
2
|
+
import type { WorkflowRunStore } from "../store/index.js";
|
|
3
|
+
export type WorkflowAdapterNodeDispatchOptions = {
|
|
4
|
+
registry: Pick<WorkflowRegistry, "adapters">;
|
|
5
|
+
now?: () => Date | string;
|
|
6
|
+
createNodeAttemptId?: () => NodeAttemptId;
|
|
7
|
+
store?: WorkflowRunStore;
|
|
8
|
+
emitEvent?: WorkflowEventEmitter;
|
|
9
|
+
};
|
|
10
|
+
export type WorkflowAdapterNodeDispatchSuccess = {
|
|
11
|
+
ok: true;
|
|
12
|
+
run: WorkflowRun;
|
|
13
|
+
nodeAttempt: NodeAttempt;
|
|
14
|
+
events: WorkflowRuntimeEvent[];
|
|
15
|
+
output: WorkflowValue;
|
|
16
|
+
result: AdapterResult;
|
|
17
|
+
};
|
|
18
|
+
export type WorkflowAdapterNodeDispatchFailure = {
|
|
19
|
+
ok: false;
|
|
20
|
+
run: WorkflowRun;
|
|
21
|
+
nodeAttempt?: NodeAttempt;
|
|
22
|
+
events: WorkflowRuntimeEvent[];
|
|
23
|
+
diagnostics: WorkflowDiagnostic[];
|
|
24
|
+
error: WorkflowErrorSummary;
|
|
25
|
+
};
|
|
26
|
+
export type WorkflowAdapterNodeDispatchResult = WorkflowAdapterNodeDispatchSuccess | WorkflowAdapterNodeDispatchFailure;
|
|
27
|
+
export declare function dispatchWorkflowAdapterNode(definition: WorkflowDefinition, run: WorkflowRun, nodeId: string, input: WorkflowValue, options: WorkflowAdapterNodeDispatchOptions): Promise<WorkflowAdapterNodeDispatchResult>;
|
|
28
|
+
//# sourceMappingURL=adapter-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-node.d.ts","sourceRoot":"","sources":["../../src/runtime/adapter-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAgB1D,MAAM,MAAM,kCAAkC,GAAG;IAC/C,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAC7C,GAAG,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,aAAa,CAAC;IAC1C,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,SAAS,CAAC,EAAE,oBAAoB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,EAAE,EAAE,IAAI,CAAC;IACT,GAAG,EAAE,WAAW,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,EAAE,EAAE,KAAK,CAAC;IACV,GAAG,EAAE,WAAW,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,KAAK,EAAE,oBAAoB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,iCAAiC,GACzC,kCAAkC,GAClC,kCAAkC,CAAC;AAEvC,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,kBAAkB,EAC9B,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,iCAAiC,CAAC,CAsK5C"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { resolveWorkflowAdapter } from "../registry/index.js";
|
|
2
|
+
import { validateNodeOutput, validateWorkflowPortValue } from "../validation/index.js";
|
|
3
|
+
import { adapterNodeDispatchFailure, failAdapterNodeDispatch, } from "./dispatch-failures.js";
|
|
4
|
+
import { createWorkflowRuntimeId as createId } from "./ids.js";
|
|
5
|
+
import { emitWorkflowRuntimeEvent, persistWorkflowNodeAttempt, persistWorkflowRun, } from "./persistence.js";
|
|
6
|
+
import { createNodeScopedWorkflowRun, localStateSnapshotForNode } from "./state.js";
|
|
7
|
+
import { createTimestampFactory } from "./time.js";
|
|
8
|
+
export async function dispatchWorkflowAdapterNode(definition, run, nodeId, input, options) {
|
|
9
|
+
const events = [];
|
|
10
|
+
const timestamp = createTimestampFactory(options.now);
|
|
11
|
+
const node = definition.nodes[nodeId];
|
|
12
|
+
if (!node) {
|
|
13
|
+
return adapterNodeDispatchFailure({
|
|
14
|
+
run,
|
|
15
|
+
events,
|
|
16
|
+
diagnostics: [
|
|
17
|
+
{
|
|
18
|
+
code: "WorkflowRuntimeError.unknownNode",
|
|
19
|
+
message: `Workflow node '${nodeId}' does not exist, so it cannot be dispatched as an adapter node.`,
|
|
20
|
+
severity: "error",
|
|
21
|
+
nodeId,
|
|
22
|
+
path: `$.nodes.${nodeId}`,
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
error: {
|
|
26
|
+
code: "WorkflowRuntimeError.unknownNode",
|
|
27
|
+
message: "Adapter node dispatch failed because the node is not declared.",
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
if (node.kind !== "adapter") {
|
|
32
|
+
return adapterNodeDispatchFailure({
|
|
33
|
+
run,
|
|
34
|
+
events,
|
|
35
|
+
diagnostics: [
|
|
36
|
+
{
|
|
37
|
+
code: "WorkflowRuntimeError.adapterNodeRequired",
|
|
38
|
+
message: `Workflow node '${nodeId}' is '${node.kind}', but adapter node dispatch requires an adapter node.`,
|
|
39
|
+
severity: "error",
|
|
40
|
+
nodeId,
|
|
41
|
+
path: `$.nodes.${nodeId}.kind`,
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
error: {
|
|
45
|
+
code: "WorkflowRuntimeError.adapterNodeRequired",
|
|
46
|
+
message: "Adapter node dispatch failed because the selected node is not an adapter node.",
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
const adapterNode = node;
|
|
51
|
+
const startedAt = timestamp();
|
|
52
|
+
const nodeAttempt = {
|
|
53
|
+
id: options.createNodeAttemptId?.() ?? createId("wna"),
|
|
54
|
+
workflowRunId: run.id,
|
|
55
|
+
nodeId,
|
|
56
|
+
attempt: 1,
|
|
57
|
+
kind: "adapter",
|
|
58
|
+
status: "running",
|
|
59
|
+
input,
|
|
60
|
+
startedAt,
|
|
61
|
+
...localStateSnapshotForNode(run, nodeId),
|
|
62
|
+
metadata: { adapterId: adapterNode.handler.id },
|
|
63
|
+
};
|
|
64
|
+
run.current = { nodeId, status: "running" };
|
|
65
|
+
run.updatedAt = startedAt;
|
|
66
|
+
await emitWorkflowRuntimeEvent(events, options.store, options.emitEvent, {
|
|
67
|
+
type: "node.started",
|
|
68
|
+
runId: run.id,
|
|
69
|
+
nodeAttemptId: nodeAttempt.id,
|
|
70
|
+
nodeId,
|
|
71
|
+
});
|
|
72
|
+
await persistWorkflowNodeAttempt(options.store, nodeAttempt);
|
|
73
|
+
await persistWorkflowRun(options.store, run);
|
|
74
|
+
const adapter = resolveWorkflowAdapter(options.registry, adapterNode.handler);
|
|
75
|
+
const diagnostics = [];
|
|
76
|
+
if (!adapter) {
|
|
77
|
+
diagnostics.push({
|
|
78
|
+
code: "WorkflowGraphError.unknownAdapterRef",
|
|
79
|
+
message: `Workflow adapter node '${nodeId}' references adapter '${adapterNode.handler.id}', but it is not registered in the Workflow Registry.`,
|
|
80
|
+
severity: "error",
|
|
81
|
+
nodeId,
|
|
82
|
+
path: `$.nodes.${nodeId}.handler.id`,
|
|
83
|
+
hint: "Register the adapter before dispatching the adapter node.",
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
if (adapterNode.input) {
|
|
87
|
+
diagnostics.push(...validateWorkflowPortValue(adapterNode.input, input, { path: `$.nodes.${nodeId}.input` }).diagnostics.map((diagnostic) => ({ ...diagnostic, nodeId })));
|
|
88
|
+
}
|
|
89
|
+
if (diagnostics.some((diagnostic) => diagnostic.severity === "error")) {
|
|
90
|
+
return failAdapterNodeDispatch({
|
|
91
|
+
run,
|
|
92
|
+
nodeAttempt,
|
|
93
|
+
events,
|
|
94
|
+
diagnostics,
|
|
95
|
+
timestamp,
|
|
96
|
+
store: options.store,
|
|
97
|
+
emitEvent: options.emitEvent,
|
|
98
|
+
error: {
|
|
99
|
+
code: "WorkflowRuntimeError.adapterNodeDispatchFailed",
|
|
100
|
+
message: "Adapter node dispatch failed before adapter execution.",
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
const adapterResult = await adapter.value({ input, run: createNodeScopedWorkflowRun(run, nodeId) });
|
|
106
|
+
const nodeOutputResult = validateNodeOutput(definition, nodeId, adapterResult.output);
|
|
107
|
+
if (!nodeOutputResult.ok) {
|
|
108
|
+
return failAdapterNodeDispatch({
|
|
109
|
+
run,
|
|
110
|
+
nodeAttempt,
|
|
111
|
+
events,
|
|
112
|
+
diagnostics: nodeOutputResult.diagnostics,
|
|
113
|
+
timestamp,
|
|
114
|
+
store: options.store,
|
|
115
|
+
emitEvent: options.emitEvent,
|
|
116
|
+
error: {
|
|
117
|
+
code: "WorkflowRuntimeError.invalidNodeOutput",
|
|
118
|
+
message: "Adapter node output failed validation before downstream use.",
|
|
119
|
+
},
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
const completedAt = timestamp();
|
|
123
|
+
nodeAttempt.status = "completed";
|
|
124
|
+
nodeAttempt.output = adapterResult.output;
|
|
125
|
+
nodeAttempt.completedAt = completedAt;
|
|
126
|
+
Object.assign(nodeAttempt, localStateSnapshotForNode(run, nodeId));
|
|
127
|
+
nodeAttempt.metadata = { adapterId: adapterNode.handler.id };
|
|
128
|
+
run.current = { nodeId, status: run.status };
|
|
129
|
+
run.updatedAt = completedAt;
|
|
130
|
+
await emitWorkflowRuntimeEvent(events, options.store, options.emitEvent, {
|
|
131
|
+
type: "node.completed",
|
|
132
|
+
runId: run.id,
|
|
133
|
+
nodeAttemptId: nodeAttempt.id,
|
|
134
|
+
output: adapterResult.output,
|
|
135
|
+
});
|
|
136
|
+
await persistWorkflowNodeAttempt(options.store, nodeAttempt);
|
|
137
|
+
await persistWorkflowRun(options.store, run);
|
|
138
|
+
return {
|
|
139
|
+
ok: true,
|
|
140
|
+
run,
|
|
141
|
+
nodeAttempt,
|
|
142
|
+
events,
|
|
143
|
+
output: adapterResult.output,
|
|
144
|
+
result: adapterResult,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
catch (caught) {
|
|
148
|
+
return failAdapterNodeDispatch({
|
|
149
|
+
run,
|
|
150
|
+
nodeAttempt,
|
|
151
|
+
events,
|
|
152
|
+
diagnostics: [],
|
|
153
|
+
timestamp,
|
|
154
|
+
store: options.store,
|
|
155
|
+
emitEvent: options.emitEvent,
|
|
156
|
+
error: adapterErrorSummaryFromCaught(caught),
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function adapterErrorSummaryFromCaught(caught) {
|
|
161
|
+
if (caught instanceof Error) {
|
|
162
|
+
return {
|
|
163
|
+
code: "WorkflowRuntimeError.adapterFailed",
|
|
164
|
+
message: caught.message,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
return {
|
|
168
|
+
code: "WorkflowRuntimeError.adapterFailed",
|
|
169
|
+
message: "Workflow adapter failed with a non-Error value.",
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=adapter-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-node.js","sourceRoot":"","sources":["../../src/runtime/adapter-node.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,uBAAuB,IAAI,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAgCnD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,UAA8B,EAC9B,GAAgB,EAChB,MAAc,EACd,KAAoB,EACpB,OAA2C;IAE3C,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAEtC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,0BAA0B,CAAC;YAChC,GAAG;YACH,MAAM;YACN,WAAW,EAAE;gBACX;oBACE,IAAI,EAAE,kCAAkC;oBACxC,OAAO,EAAE,kBAAkB,MAAM,kEAAkE;oBACnG,QAAQ,EAAE,OAAO;oBACjB,MAAM;oBACN,IAAI,EAAE,WAAW,MAAM,EAAE;iBAC1B;aACF;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,kCAAkC;gBACxC,OAAO,EAAE,gEAAgE;aAC1E;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,0BAA0B,CAAC;YAChC,GAAG;YACH,MAAM;YACN,WAAW,EAAE;gBACX;oBACE,IAAI,EAAE,0CAA0C;oBAChD,OAAO,EAAE,kBAAkB,MAAM,SAAS,IAAI,CAAC,IAAI,wDAAwD;oBAC3G,QAAQ,EAAE,OAAO;oBACjB,MAAM;oBACN,IAAI,EAAE,WAAW,MAAM,OAAO;iBAC/B;aACF;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,0CAA0C;gBAChD,OAAO,EAAE,gFAAgF;aAC1F;SACF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,IAA6B,CAAC;IAClD,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;IAC9B,MAAM,WAAW,GAAgB;QAC/B,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC;QACtD,aAAa,EAAE,GAAG,CAAC,EAAE;QACrB,MAAM;QACN,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,KAAK;QACL,SAAS;QACT,GAAG,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC;QACzC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE;KAChD,CAAC;IACF,GAAG,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC5C,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAE1B,MAAM,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE;QACvE,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,GAAG,CAAC,EAAE;QACb,aAAa,EAAE,WAAW,CAAC,EAAE;QAC7B,MAAM;KACP,CAAC,CAAC;IACH,MAAM,0BAA0B,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC7D,MAAM,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE7C,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAyB,EAAE,CAAC;IAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,sCAAsC;YAC5C,OAAO,EAAE,0BAA0B,MAAM,yBAAyB,WAAW,CAAC,OAAO,CAAC,EAAE,uDAAuD;YAC/I,QAAQ,EAAE,OAAO;YACjB,MAAM;YACN,IAAI,EAAE,WAAW,MAAM,aAAa;YACpC,IAAI,EAAE,2DAA2D;SAClE,CAAC,CAAC;IACL,CAAC;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,WAAW,CAAC,IAAI,CACd,GAAG,yBAAyB,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,MAAM,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CACzG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,CAAC,CAC5C,CACF,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;QACtE,OAAO,uBAAuB,CAAC;YAC7B,GAAG;YACH,WAAW;YACX,MAAM;YACN,WAAW;YACX,SAAS;YACT,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,KAAK,EAAE;gBACL,IAAI,EAAE,gDAAgD;gBACtD,OAAO,EAAE,wDAAwD;aAClE;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,OAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACrG,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACtF,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC;YACzB,OAAO,uBAAuB,CAAC;gBAC7B,GAAG;gBACH,WAAW;gBACX,MAAM;gBACN,WAAW,EAAE,gBAAgB,CAAC,WAAW;gBACzC,SAAS;gBACT,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,KAAK,EAAE;oBACL,IAAI,EAAE,wCAAwC;oBAC9C,OAAO,EAAE,8DAA8D;iBACxE;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,WAAW,GAAG,SAAS,EAAE,CAAC;QAChC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC;QACjC,WAAW,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;QAC1C,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QACnE,WAAW,CAAC,QAAQ,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAC7D,GAAG,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;QAC7C,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC;QAE5B,MAAM,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE;YACvE,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,aAAa,EAAE,WAAW,CAAC,EAAE;YAC7B,MAAM,EAAE,aAAa,CAAC,MAAM;SAC7B,CAAC,CAAC;QACH,MAAM,0BAA0B,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC7D,MAAM,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE7C,OAAO;YACL,EAAE,EAAE,IAAI;YACR,GAAG;YACH,WAAW;YACX,MAAM;YACN,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,MAAM,EAAE,aAAa;SACtB,CAAC;IACJ,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,OAAO,uBAAuB,CAAC;YAC7B,GAAG;YACH,WAAW;YACX,MAAM;YACN,WAAW,EAAE,EAAE;YACf,SAAS;YACT,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,KAAK,EAAE,6BAA6B,CAAC,MAAM,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CAAC,MAAe;IACpD,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;QAC5B,OAAO;YACL,IAAI,EAAE,oCAAoC;YAC1C,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,oCAAoC;QAC1C,OAAO,EAAE,iDAAiD;KAC3D,CAAC;AACJ,CAAC"}
|