@atom-workflow-agent/contracts 0.1.0
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/LICENSE +201 -0
- package/README.md +31 -0
- package/README.zh-CN.md +31 -0
- package/dist/atoms/agent.d.ts +29 -0
- package/dist/atoms/agent.d.ts.map +1 -0
- package/dist/atoms/agent.js +22 -0
- package/dist/atoms/agent.js.map +1 -0
- package/dist/atoms/descriptors.d.ts +88 -0
- package/dist/atoms/descriptors.d.ts.map +1 -0
- package/dist/atoms/descriptors.js +56 -0
- package/dist/atoms/descriptors.js.map +1 -0
- package/dist/atoms/host.d.ts +200 -0
- package/dist/atoms/host.d.ts.map +1 -0
- package/dist/atoms/host.js +109 -0
- package/dist/atoms/host.js.map +1 -0
- package/dist/atoms/lifecycle.d.ts +257 -0
- package/dist/atoms/lifecycle.d.ts.map +1 -0
- package/dist/atoms/lifecycle.js +201 -0
- package/dist/atoms/lifecycle.js.map +1 -0
- package/dist/atoms/manifest.d.ts +68 -0
- package/dist/atoms/manifest.d.ts.map +1 -0
- package/dist/atoms/manifest.js +144 -0
- package/dist/atoms/manifest.js.map +1 -0
- package/dist/atoms/package.d.ts +11 -0
- package/dist/atoms/package.d.ts.map +1 -0
- package/dist/atoms/package.js +11 -0
- package/dist/atoms/package.js.map +1 -0
- package/dist/errors/atom-workflow-error.d.ts +7 -0
- package/dist/errors/atom-workflow-error.d.ts.map +1 -0
- package/dist/errors/atom-workflow-error.js +21 -0
- package/dist/errors/atom-workflow-error.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/json-schema/validate-instance.d.ts +7 -0
- package/dist/json-schema/validate-instance.d.ts.map +1 -0
- package/dist/json-schema/validate-instance.js +186 -0
- package/dist/json-schema/validate-instance.js.map +1 -0
- package/dist/planner/plan-record.d.ts +194 -0
- package/dist/planner/plan-record.d.ts.map +1 -0
- package/dist/planner/plan-record.js +57 -0
- package/dist/planner/plan-record.js.map +1 -0
- package/dist/planner/planner-draft.d.ts +194 -0
- package/dist/planner/planner-draft.d.ts.map +1 -0
- package/dist/planner/planner-draft.js +102 -0
- package/dist/planner/planner-draft.js.map +1 -0
- package/dist/planner/planner-validation.d.ts +830 -0
- package/dist/planner/planner-validation.d.ts.map +1 -0
- package/dist/planner/planner-validation.js +52 -0
- package/dist/planner/planner-validation.js.map +1 -0
- package/dist/planner/planner.d.ts +456 -0
- package/dist/planner/planner.d.ts.map +1 -0
- package/dist/planner/planner.js +85 -0
- package/dist/planner/planner.js.map +1 -0
- package/dist/planner/planning-capability.d.ts +576 -0
- package/dist/planner/planning-capability.d.ts.map +1 -0
- package/dist/planner/planning-capability.js +105 -0
- package/dist/planner/planning-capability.js.map +1 -0
- package/dist/planner/planning-workspace.d.ts +1791 -0
- package/dist/planner/planning-workspace.d.ts.map +1 -0
- package/dist/planner/planning-workspace.js +279 -0
- package/dist/planner/planning-workspace.js.map +1 -0
- package/dist/runtime/diagnostics.d.ts +35 -0
- package/dist/runtime/diagnostics.d.ts.map +1 -0
- package/dist/runtime/diagnostics.js +22 -0
- package/dist/runtime/diagnostics.js.map +1 -0
- package/dist/runtime/machine.d.ts +52 -0
- package/dist/runtime/machine.d.ts.map +1 -0
- package/dist/runtime/machine.js +41 -0
- package/dist/runtime/machine.js.map +1 -0
- package/dist/runtime/records.d.ts +306 -0
- package/dist/runtime/records.d.ts.map +1 -0
- package/dist/runtime/records.js +213 -0
- package/dist/runtime/records.js.map +1 -0
- package/dist/runtime/resume.d.ts +32 -0
- package/dist/runtime/resume.d.ts.map +1 -0
- package/dist/runtime/resume.js +19 -0
- package/dist/runtime/resume.js.map +1 -0
- package/dist/workflows/ir.d.ts +117 -0
- package/dist/workflows/ir.d.ts.map +1 -0
- package/dist/workflows/ir.js +2 -0
- package/dist/workflows/ir.js.map +1 -0
- package/dist/workflows/policy.d.ts +22 -0
- package/dist/workflows/policy.d.ts.map +1 -0
- package/dist/workflows/policy.js +22 -0
- package/dist/workflows/policy.js.map +1 -0
- package/dist/workflows/revision.d.ts +187 -0
- package/dist/workflows/revision.d.ts.map +1 -0
- package/dist/workflows/revision.js +61 -0
- package/dist/workflows/revision.js.map +1 -0
- package/dist/workflows/spec.d.ts +427 -0
- package/dist/workflows/spec.d.ts.map +1 -0
- package/dist/workflows/spec.js +86 -0
- package/dist/workflows/spec.js.map +1 -0
- package/dist/workflows/topology.d.ts +58 -0
- package/dist/workflows/topology.d.ts.map +1 -0
- package/dist/workflows/topology.js +37 -0
- package/dist/workflows/topology.js.map +1 -0
- package/dist/workflows/validation.d.ts +247 -0
- package/dist/workflows/validation.d.ts.map +1 -0
- package/dist/workflows/validation.js +130 -0
- package/dist/workflows/validation.js.map +1 -0
- package/dist/workflows/visualization.d.ts +526 -0
- package/dist/workflows/visualization.d.ts.map +1 -0
- package/dist/workflows/visualization.js +132 -0
- package/dist/workflows/visualization.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type { AtomCachePolicy, AtomManifest, AtomRetryPolicy, JsonSchema, JsonValue } from "../atoms/manifest.js";
|
|
2
|
+
import type { WorkflowReference, WorkflowTerminal } from "./spec.js";
|
|
3
|
+
export type DeepReadonly<T> = T extends string | number | boolean | null ? T : T extends readonly (infer Item)[] ? readonly DeepReadonly<Item>[] : T extends object ? {
|
|
4
|
+
readonly [Key in keyof T]: DeepReadonly<T[Key]>;
|
|
5
|
+
} : T;
|
|
6
|
+
/** null timeouts mean no timer; AbortSignal cancellation and lifecycle tick-count limits still apply. */
|
|
7
|
+
export interface WorkflowIREffectivePolicy {
|
|
8
|
+
readonly attemptTimeoutMs: number | null;
|
|
9
|
+
readonly lifecycleTickTimeoutMs: number | null;
|
|
10
|
+
readonly maxLifecycleTicks: number;
|
|
11
|
+
readonly retry: DeepReadonly<AtomRetryPolicy>;
|
|
12
|
+
readonly cache: DeepReadonly<AtomCachePolicy>;
|
|
13
|
+
}
|
|
14
|
+
export interface WorkflowIRRuntimePolicy {
|
|
15
|
+
readonly maxEdgeTraversals: number;
|
|
16
|
+
readonly maxWorkflowTransitions: number;
|
|
17
|
+
readonly maxNodeActivations: number;
|
|
18
|
+
readonly maxMapItems: number;
|
|
19
|
+
}
|
|
20
|
+
export interface WorkflowIRAtom {
|
|
21
|
+
readonly key: string;
|
|
22
|
+
readonly id: string;
|
|
23
|
+
readonly version: string;
|
|
24
|
+
readonly manifest: DeepReadonly<AtomManifest>;
|
|
25
|
+
}
|
|
26
|
+
interface WorkflowIRNodeBase {
|
|
27
|
+
readonly id: string;
|
|
28
|
+
readonly dependsOn: readonly string[];
|
|
29
|
+
/** Present when this node belongs to a MapNode processor subgraph. */
|
|
30
|
+
readonly mapScope?: string;
|
|
31
|
+
}
|
|
32
|
+
/** The only IR node that executes user code. */
|
|
33
|
+
export interface WorkflowIRAtomNode extends WorkflowIRNodeBase {
|
|
34
|
+
readonly kind: "atom";
|
|
35
|
+
readonly atom: WorkflowIRAtom;
|
|
36
|
+
readonly input: DeepReadonly<JsonValue>;
|
|
37
|
+
readonly effectivePolicy: WorkflowIREffectivePolicy;
|
|
38
|
+
/** Static branch identifiers exposed to an authoring-level decision Atom. */
|
|
39
|
+
readonly decisionBranches?: readonly string[];
|
|
40
|
+
}
|
|
41
|
+
/** Pure routing. Runtime selects one frozen case; it never executes user code. */
|
|
42
|
+
export interface WorkflowIRSwitchNode extends WorkflowIRNodeBase {
|
|
43
|
+
readonly kind: "switch";
|
|
44
|
+
readonly select: DeepReadonly<WorkflowReference>;
|
|
45
|
+
readonly caseIds: readonly string[];
|
|
46
|
+
}
|
|
47
|
+
/** Durable dynamic fan-out/fan-in over one processor subgraph. */
|
|
48
|
+
export interface WorkflowIRMapNode extends WorkflowIRNodeBase {
|
|
49
|
+
readonly kind: "map";
|
|
50
|
+
readonly items: DeepReadonly<WorkflowReference>;
|
|
51
|
+
readonly maxItems: number;
|
|
52
|
+
readonly maxConcurrency: number;
|
|
53
|
+
readonly bodyEntries: readonly string[];
|
|
54
|
+
readonly bodyNodeIds: readonly string[];
|
|
55
|
+
readonly bodyExitNodeIds: readonly string[];
|
|
56
|
+
}
|
|
57
|
+
/** Explicit synchronization barrier for a statically known fan-out. */
|
|
58
|
+
export interface WorkflowIRJoinNode extends WorkflowIRNodeBase {
|
|
59
|
+
readonly kind: "join";
|
|
60
|
+
readonly dependencies: readonly string[];
|
|
61
|
+
/** Exact incoming control edges required from one fork lineage. */
|
|
62
|
+
readonly incomingEdgeIds: readonly string[];
|
|
63
|
+
}
|
|
64
|
+
/** Typed phi for one selected branch. Runtime publishes the incoming overlay as immutable output. */
|
|
65
|
+
export interface WorkflowIRMergeNode extends WorkflowIRNodeBase {
|
|
66
|
+
readonly kind: "merge";
|
|
67
|
+
readonly outputSchema: DeepReadonly<JsonSchema>;
|
|
68
|
+
}
|
|
69
|
+
export type WorkflowIRControlNode = WorkflowIRSwitchNode | WorkflowIRMapNode | WorkflowIRJoinNode | WorkflowIRMergeNode;
|
|
70
|
+
export type WorkflowIRNode = WorkflowIRAtomNode | WorkflowIRControlNode;
|
|
71
|
+
export type WorkflowIREdgeKind = "next" | "switch-case" | "switch-default" | "map-enter" | "map-return" | "map-complete" | "join-next";
|
|
72
|
+
export interface WorkflowIREdge {
|
|
73
|
+
readonly id: string;
|
|
74
|
+
readonly sourceNodeId: string;
|
|
75
|
+
readonly kind: WorkflowIREdgeKind;
|
|
76
|
+
readonly branchId?: string;
|
|
77
|
+
readonly targets: readonly string[];
|
|
78
|
+
readonly terminal?: WorkflowTerminal;
|
|
79
|
+
readonly with: DeepReadonly<Record<string, JsonValue>>;
|
|
80
|
+
readonly maxTraversals?: number;
|
|
81
|
+
readonly backEdge: boolean;
|
|
82
|
+
}
|
|
83
|
+
export interface WorkflowIRFork {
|
|
84
|
+
readonly edgeId: string;
|
|
85
|
+
readonly targets: readonly string[];
|
|
86
|
+
}
|
|
87
|
+
export interface WorkflowIRJoin {
|
|
88
|
+
readonly nodeId: string;
|
|
89
|
+
readonly dependencies: readonly string[];
|
|
90
|
+
}
|
|
91
|
+
export interface WorkflowIRReadiness {
|
|
92
|
+
readonly dependencyStages: readonly (readonly string[])[];
|
|
93
|
+
readonly forks: readonly WorkflowIRFork[];
|
|
94
|
+
readonly joins: readonly WorkflowIRJoin[];
|
|
95
|
+
}
|
|
96
|
+
export interface WorkflowIRActivationIdentity {
|
|
97
|
+
readonly strategy: "workflow-revision-node-activation-index-v1";
|
|
98
|
+
}
|
|
99
|
+
/** Immutable execution IR. High-level decision, parallel, map and repeat are compiler input constructs. */
|
|
100
|
+
export interface WorkflowIR {
|
|
101
|
+
readonly schemaVersion: "1.3";
|
|
102
|
+
readonly hash: string;
|
|
103
|
+
readonly name: string;
|
|
104
|
+
readonly inputs: DeepReadonly<Record<string, JsonValue>>;
|
|
105
|
+
readonly nodes: readonly WorkflowIRNode[];
|
|
106
|
+
readonly outputs: DeepReadonly<Record<string, WorkflowReference>>;
|
|
107
|
+
readonly control: {
|
|
108
|
+
readonly entry: readonly string[];
|
|
109
|
+
readonly terminals: readonly WorkflowTerminal[];
|
|
110
|
+
readonly edges: readonly WorkflowIREdge[];
|
|
111
|
+
};
|
|
112
|
+
readonly readiness: WorkflowIRReadiness;
|
|
113
|
+
readonly activationIdentity: WorkflowIRActivationIdentity;
|
|
114
|
+
readonly effectiveRuntimePolicy: WorkflowIRRuntimePolicy;
|
|
115
|
+
}
|
|
116
|
+
export {};
|
|
117
|
+
//# sourceMappingURL=ir.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../src/workflows/ir.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ir.js","sourceRoot":"","sources":["../../src/workflows/ir.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const RuntimePolicySchema: z.ZodObject<{
|
|
3
|
+
schemaVersion: z.ZodDefault<z.ZodLiteral<"1.1">>;
|
|
4
|
+
maxNodes: z.ZodDefault<z.ZodNumber>;
|
|
5
|
+
maxDependenciesPerNode: z.ZodDefault<z.ZodNumber>;
|
|
6
|
+
maxMapItems: z.ZodDefault<z.ZodNumber>;
|
|
7
|
+
maxEdgeTraversals: z.ZodDefault<z.ZodNumber>;
|
|
8
|
+
maxWorkflowTransitions: z.ZodDefault<z.ZodNumber>;
|
|
9
|
+
maxNodeActivations: z.ZodDefault<z.ZodNumber>;
|
|
10
|
+
maxLifecycleTicks: z.ZodDefault<z.ZodNumber>;
|
|
11
|
+
maxLifecycleTickTimeoutMs: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
|
|
12
|
+
maxAttemptDurationMs: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
|
|
13
|
+
maxRetryAttempts: z.ZodDefault<z.ZodNumber>;
|
|
14
|
+
maxRetryDelayMs: z.ZodDefault<z.ZodNumber>;
|
|
15
|
+
maxCacheTtlMs: z.ZodDefault<z.ZodNumber>;
|
|
16
|
+
allowDeprecatedAtoms: z.ZodDefault<z.ZodBoolean>;
|
|
17
|
+
allowCacheEnableOverride: z.ZodDefault<z.ZodBoolean>;
|
|
18
|
+
}, z.core.$strict>;
|
|
19
|
+
export type RuntimePolicy = z.infer<typeof RuntimePolicySchema>;
|
|
20
|
+
export type RuntimePolicyInput = z.input<typeof RuntimePolicySchema>;
|
|
21
|
+
export declare const DEFAULT_RUNTIME_POLICY: RuntimePolicy;
|
|
22
|
+
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/workflows/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;kBAkBrB,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACrE,eAAO,MAAM,sBAAsB,EAAE,aAA6C,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const RuntimePolicySchema = z.object({
|
|
3
|
+
schemaVersion: z.literal("1.1").default("1.1"),
|
|
4
|
+
maxNodes: z.number().int().min(1).max(1_000).default(128),
|
|
5
|
+
maxDependenciesPerNode: z.number().int().min(0).max(1_000).default(16),
|
|
6
|
+
maxMapItems: z.number().int().min(1).max(10_000).default(100),
|
|
7
|
+
maxEdgeTraversals: z.number().int().min(1).max(10_000).default(100),
|
|
8
|
+
maxWorkflowTransitions: z.number().int().min(1).max(1_000_000).default(1_000),
|
|
9
|
+
maxNodeActivations: z.number().int().min(1).max(100_000).default(100),
|
|
10
|
+
maxLifecycleTicks: z.number().int().min(1).max(100_000).default(100),
|
|
11
|
+
/** null means Runtime does not impose a lifecycle-tick wall-clock cap. */
|
|
12
|
+
maxLifecycleTickTimeoutMs: z.number().int().positive().max(86_400_000).nullable().default(null),
|
|
13
|
+
/** null means Runtime does not impose an Atom Attempt wall-clock cap. */
|
|
14
|
+
maxAttemptDurationMs: z.number().int().positive().max(86_400_000).nullable().default(null),
|
|
15
|
+
maxRetryAttempts: z.number().int().min(1).max(11).default(3),
|
|
16
|
+
maxRetryDelayMs: z.number().int().nonnegative().max(86_400_000).default(60_000),
|
|
17
|
+
maxCacheTtlMs: z.number().int().positive().max(31_536_000_000).default(86_400_000),
|
|
18
|
+
allowDeprecatedAtoms: z.boolean().default(false),
|
|
19
|
+
allowCacheEnableOverride: z.boolean().default(false),
|
|
20
|
+
}).strict();
|
|
21
|
+
export const DEFAULT_RUNTIME_POLICY = RuntimePolicySchema.parse({});
|
|
22
|
+
//# sourceMappingURL=policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/workflows/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC9C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACzD,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAC7D,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACnE,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC7E,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACrE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACpE,0EAA0E;IAC1E,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC/F,yEAAyE;IACzE,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1F,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/E,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAClF,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAChD,wBAAwB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACrD,CAAC,CAAC,MAAM,EAAE,CAAC;AAIZ,MAAM,CAAC,MAAM,sBAAsB,GAAkB,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const WorkflowCompletionModeSchema: z.ZodEnum<{
|
|
3
|
+
outputs: "outputs";
|
|
4
|
+
"side-effect-only": "side-effect-only";
|
|
5
|
+
}>;
|
|
6
|
+
export type WorkflowCompletionMode = z.infer<typeof WorkflowCompletionModeSchema>;
|
|
7
|
+
export declare const WorkflowReferencedAtomSchema: z.ZodObject<{
|
|
8
|
+
key: z.ZodString;
|
|
9
|
+
manifestHash: z.ZodString;
|
|
10
|
+
inputSchemaHash: z.ZodString;
|
|
11
|
+
outputSchemaHash: z.ZodString;
|
|
12
|
+
}, z.core.$strict>;
|
|
13
|
+
export declare const WorkflowRevisionSchema: z.ZodObject<{
|
|
14
|
+
schemaVersion: z.ZodLiteral<"2.0">;
|
|
15
|
+
workflowId: z.ZodString;
|
|
16
|
+
workflowRevisionId: z.ZodString;
|
|
17
|
+
revision: z.ZodNumber;
|
|
18
|
+
parentRevisionId: z.ZodOptional<z.ZodString>;
|
|
19
|
+
source: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
20
|
+
kind: z.ZodLiteral<"planner">;
|
|
21
|
+
planId: z.ZodString;
|
|
22
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
23
|
+
kind: z.ZodLiteral<"host">;
|
|
24
|
+
sourceHash: z.ZodString;
|
|
25
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
26
|
+
kind: z.ZodLiteral<"file">;
|
|
27
|
+
sourceHash: z.ZodString;
|
|
28
|
+
}, z.core.$strict>], "kind">;
|
|
29
|
+
workflowSpec: z.ZodObject<{
|
|
30
|
+
schemaVersion: z.ZodLiteral<"1.2">;
|
|
31
|
+
name: z.ZodString;
|
|
32
|
+
inputs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodType<import("../atoms/manifest.js").JsonValue, unknown, z.core.$ZodTypeInternals<import("../atoms/manifest.js").JsonValue, unknown>>>>;
|
|
33
|
+
entry: z.ZodArray<z.ZodString>;
|
|
34
|
+
nodes: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
35
|
+
next: z.ZodObject<{
|
|
36
|
+
to: z.ZodUnion<readonly [z.ZodEnum<{
|
|
37
|
+
$end: "$end";
|
|
38
|
+
$failed: "$failed";
|
|
39
|
+
$cancelled: "$cancelled";
|
|
40
|
+
}>, z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
41
|
+
maxTraversals: z.ZodOptional<z.ZodNumber>;
|
|
42
|
+
with: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodType<import("../atoms/manifest.js").JsonValue, unknown, z.core.$ZodTypeInternals<import("../atoms/manifest.js").JsonValue, unknown>>>>;
|
|
43
|
+
}, z.core.$strict>;
|
|
44
|
+
id: z.ZodString;
|
|
45
|
+
atom: z.ZodString;
|
|
46
|
+
dependsOn: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
47
|
+
input: z.ZodType<import("../atoms/manifest.js").JsonValue, unknown, z.core.$ZodTypeInternals<import("../atoms/manifest.js").JsonValue, unknown>>;
|
|
48
|
+
map: z.ZodOptional<z.ZodObject<{
|
|
49
|
+
items: z.ZodObject<{
|
|
50
|
+
$ref: z.ZodString;
|
|
51
|
+
}, z.core.$strict>;
|
|
52
|
+
maxItems: z.ZodNumber;
|
|
53
|
+
maxConcurrency: z.ZodDefault<z.ZodNumber>;
|
|
54
|
+
group: z.ZodOptional<z.ZodString>;
|
|
55
|
+
}, z.core.$strict>>;
|
|
56
|
+
policy: z.ZodOptional<z.ZodObject<{
|
|
57
|
+
attemptTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
58
|
+
lifecycleTickTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
59
|
+
maxLifecycleTicks: z.ZodOptional<z.ZodNumber>;
|
|
60
|
+
retry: z.ZodOptional<z.ZodObject<{
|
|
61
|
+
maxAttempts: z.ZodOptional<z.ZodNumber>;
|
|
62
|
+
strategy: z.ZodOptional<z.ZodEnum<{
|
|
63
|
+
fixed: "fixed";
|
|
64
|
+
exponential: "exponential";
|
|
65
|
+
}>>;
|
|
66
|
+
baseDelayMs: z.ZodOptional<z.ZodNumber>;
|
|
67
|
+
maxDelayMs: z.ZodOptional<z.ZodNumber>;
|
|
68
|
+
jitter: z.ZodOptional<z.ZodBoolean>;
|
|
69
|
+
}, z.core.$strict>>;
|
|
70
|
+
cache: z.ZodOptional<z.ZodObject<{
|
|
71
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
72
|
+
ttlMs: z.ZodOptional<z.ZodNumber>;
|
|
73
|
+
}, z.core.$strict>>;
|
|
74
|
+
}, z.core.$strict>>;
|
|
75
|
+
kind: z.ZodLiteral<"atom">;
|
|
76
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
77
|
+
select: z.ZodObject<{
|
|
78
|
+
$ref: z.ZodString;
|
|
79
|
+
}, z.core.$strict>;
|
|
80
|
+
branches: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
81
|
+
to: z.ZodUnion<readonly [z.ZodEnum<{
|
|
82
|
+
$end: "$end";
|
|
83
|
+
$failed: "$failed";
|
|
84
|
+
$cancelled: "$cancelled";
|
|
85
|
+
}>, z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
86
|
+
maxTraversals: z.ZodOptional<z.ZodNumber>;
|
|
87
|
+
with: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodType<import("../atoms/manifest.js").JsonValue, unknown, z.core.$ZodTypeInternals<import("../atoms/manifest.js").JsonValue, unknown>>>>;
|
|
88
|
+
}, z.core.$strict>>;
|
|
89
|
+
default: z.ZodObject<{
|
|
90
|
+
to: z.ZodUnion<readonly [z.ZodEnum<{
|
|
91
|
+
$end: "$end";
|
|
92
|
+
$failed: "$failed";
|
|
93
|
+
$cancelled: "$cancelled";
|
|
94
|
+
}>, z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
95
|
+
maxTraversals: z.ZodOptional<z.ZodNumber>;
|
|
96
|
+
with: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodType<import("../atoms/manifest.js").JsonValue, unknown, z.core.$ZodTypeInternals<import("../atoms/manifest.js").JsonValue, unknown>>>>;
|
|
97
|
+
}, z.core.$strict>;
|
|
98
|
+
id: z.ZodString;
|
|
99
|
+
atom: z.ZodString;
|
|
100
|
+
dependsOn: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
101
|
+
input: z.ZodType<import("../atoms/manifest.js").JsonValue, unknown, z.core.$ZodTypeInternals<import("../atoms/manifest.js").JsonValue, unknown>>;
|
|
102
|
+
map: z.ZodOptional<z.ZodObject<{
|
|
103
|
+
items: z.ZodObject<{
|
|
104
|
+
$ref: z.ZodString;
|
|
105
|
+
}, z.core.$strict>;
|
|
106
|
+
maxItems: z.ZodNumber;
|
|
107
|
+
maxConcurrency: z.ZodDefault<z.ZodNumber>;
|
|
108
|
+
group: z.ZodOptional<z.ZodString>;
|
|
109
|
+
}, z.core.$strict>>;
|
|
110
|
+
policy: z.ZodOptional<z.ZodObject<{
|
|
111
|
+
attemptTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
112
|
+
lifecycleTickTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
113
|
+
maxLifecycleTicks: z.ZodOptional<z.ZodNumber>;
|
|
114
|
+
retry: z.ZodOptional<z.ZodObject<{
|
|
115
|
+
maxAttempts: z.ZodOptional<z.ZodNumber>;
|
|
116
|
+
strategy: z.ZodOptional<z.ZodEnum<{
|
|
117
|
+
fixed: "fixed";
|
|
118
|
+
exponential: "exponential";
|
|
119
|
+
}>>;
|
|
120
|
+
baseDelayMs: z.ZodOptional<z.ZodNumber>;
|
|
121
|
+
maxDelayMs: z.ZodOptional<z.ZodNumber>;
|
|
122
|
+
jitter: z.ZodOptional<z.ZodBoolean>;
|
|
123
|
+
}, z.core.$strict>>;
|
|
124
|
+
cache: z.ZodOptional<z.ZodObject<{
|
|
125
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
126
|
+
ttlMs: z.ZodOptional<z.ZodNumber>;
|
|
127
|
+
}, z.core.$strict>>;
|
|
128
|
+
}, z.core.$strict>>;
|
|
129
|
+
kind: z.ZodLiteral<"decision">;
|
|
130
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
131
|
+
kind: z.ZodLiteral<"merge">;
|
|
132
|
+
id: z.ZodString;
|
|
133
|
+
dependsOn: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
134
|
+
outputSchema: z.ZodRecord<z.ZodString, z.ZodType<import("../atoms/manifest.js").JsonValue, unknown, z.core.$ZodTypeInternals<import("../atoms/manifest.js").JsonValue, unknown>>>;
|
|
135
|
+
next: z.ZodObject<{
|
|
136
|
+
to: z.ZodUnion<readonly [z.ZodEnum<{
|
|
137
|
+
$end: "$end";
|
|
138
|
+
$failed: "$failed";
|
|
139
|
+
$cancelled: "$cancelled";
|
|
140
|
+
}>, z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
141
|
+
maxTraversals: z.ZodOptional<z.ZodNumber>;
|
|
142
|
+
with: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodType<import("../atoms/manifest.js").JsonValue, unknown, z.core.$ZodTypeInternals<import("../atoms/manifest.js").JsonValue, unknown>>>>;
|
|
143
|
+
}, z.core.$strict>;
|
|
144
|
+
}, z.core.$strict>], "kind">>;
|
|
145
|
+
outputs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
146
|
+
$ref: z.ZodString;
|
|
147
|
+
}, z.core.$strict>>>;
|
|
148
|
+
}, z.core.$strict>;
|
|
149
|
+
workflowSpecHash: z.ZodString;
|
|
150
|
+
workflowIrHash: z.ZodString;
|
|
151
|
+
compilerVersion: z.ZodLiteral<"workflow-ir-1.3">;
|
|
152
|
+
runtimePolicyHash: z.ZodString;
|
|
153
|
+
catalogHash: z.ZodOptional<z.ZodString>;
|
|
154
|
+
referencedAtoms: z.ZodArray<z.ZodObject<{
|
|
155
|
+
key: z.ZodString;
|
|
156
|
+
manifestHash: z.ZodString;
|
|
157
|
+
inputSchemaHash: z.ZodString;
|
|
158
|
+
outputSchemaHash: z.ZodString;
|
|
159
|
+
}, z.core.$strict>>;
|
|
160
|
+
inputSchema: z.ZodRecord<z.ZodString, z.ZodType<import("../atoms/manifest.js").JsonValue, unknown, z.core.$ZodTypeInternals<import("../atoms/manifest.js").JsonValue, unknown>>>;
|
|
161
|
+
outputSchema: z.ZodRecord<z.ZodString, z.ZodType<import("../atoms/manifest.js").JsonValue, unknown, z.core.$ZodTypeInternals<import("../atoms/manifest.js").JsonValue, unknown>>>;
|
|
162
|
+
completionMode: z.ZodEnum<{
|
|
163
|
+
outputs: "outputs";
|
|
164
|
+
"side-effect-only": "side-effect-only";
|
|
165
|
+
}>;
|
|
166
|
+
scopeConstraints: z.ZodDefault<z.ZodObject<{
|
|
167
|
+
projectScope: z.ZodOptional<z.ZodString>;
|
|
168
|
+
allowedHosts: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
169
|
+
}, z.core.$strict>>;
|
|
170
|
+
validation: z.ZodObject<{
|
|
171
|
+
status: z.ZodLiteral<"valid">;
|
|
172
|
+
validatedAt: z.ZodString;
|
|
173
|
+
}, z.core.$strict>;
|
|
174
|
+
createdAt: z.ZodString;
|
|
175
|
+
}, z.core.$strict>;
|
|
176
|
+
export type WorkflowRevision = z.infer<typeof WorkflowRevisionSchema>;
|
|
177
|
+
export declare const WorkflowDefinitionSchema: z.ZodObject<{
|
|
178
|
+
schemaVersion: z.ZodLiteral<"1.0">;
|
|
179
|
+
workflowId: z.ZodString;
|
|
180
|
+
name: z.ZodString;
|
|
181
|
+
latestRevisionId: z.ZodString;
|
|
182
|
+
revisionIds: z.ZodArray<z.ZodString>;
|
|
183
|
+
createdAt: z.ZodString;
|
|
184
|
+
updatedAt: z.ZodString;
|
|
185
|
+
}, z.core.$strict>;
|
|
186
|
+
export type WorkflowDefinition = z.infer<typeof WorkflowDefinitionSchema>;
|
|
187
|
+
//# sourceMappingURL=revision.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revision.d.ts","sourceRoot":"","sources":["../../src/workflows/revision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,4BAA4B;;;EAA0C,CAAC;AACpF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,4BAA4B;;;;;kBAK9B,CAAC;AAEZ,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAsCjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,wBAAwB;;;;;;;;kBAQ1B,CAAC;AACZ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { JsonSchemaSchema } from "../atoms/manifest.js";
|
|
3
|
+
import { WorkflowSpecSchema } from "./spec.js";
|
|
4
|
+
const TimestampSchema = z.string().datetime({ offset: true });
|
|
5
|
+
const HashSchema = z.string().regex(/^sha256:[a-f0-9]{64}$/);
|
|
6
|
+
export const WorkflowCompletionModeSchema = z.enum(["outputs", "side-effect-only"]);
|
|
7
|
+
export const WorkflowReferencedAtomSchema = z.object({
|
|
8
|
+
key: z.string().trim().min(1),
|
|
9
|
+
manifestHash: HashSchema,
|
|
10
|
+
inputSchemaHash: HashSchema,
|
|
11
|
+
outputSchemaHash: HashSchema,
|
|
12
|
+
}).strict();
|
|
13
|
+
export const WorkflowRevisionSchema = z.object({
|
|
14
|
+
schemaVersion: z.literal("2.0"),
|
|
15
|
+
workflowId: z.string().trim().min(1),
|
|
16
|
+
workflowRevisionId: z.string().trim().min(1),
|
|
17
|
+
revision: z.number().int().positive(),
|
|
18
|
+
parentRevisionId: z.string().trim().min(1).optional(),
|
|
19
|
+
source: z.discriminatedUnion("kind", [
|
|
20
|
+
z.object({ kind: z.literal("planner"), planId: z.string().trim().min(1) }).strict(),
|
|
21
|
+
z.object({ kind: z.literal("host"), sourceHash: HashSchema }).strict(),
|
|
22
|
+
z.object({ kind: z.literal("file"), sourceHash: HashSchema }).strict(),
|
|
23
|
+
]),
|
|
24
|
+
workflowSpec: WorkflowSpecSchema,
|
|
25
|
+
workflowSpecHash: HashSchema,
|
|
26
|
+
workflowIrHash: HashSchema,
|
|
27
|
+
compilerVersion: z.literal("workflow-ir-1.3"),
|
|
28
|
+
runtimePolicyHash: HashSchema,
|
|
29
|
+
catalogHash: HashSchema.optional(),
|
|
30
|
+
referencedAtoms: z.array(WorkflowReferencedAtomSchema),
|
|
31
|
+
inputSchema: JsonSchemaSchema,
|
|
32
|
+
outputSchema: JsonSchemaSchema,
|
|
33
|
+
completionMode: WorkflowCompletionModeSchema,
|
|
34
|
+
scopeConstraints: z.object({
|
|
35
|
+
projectScope: z.string().trim().min(1).optional(),
|
|
36
|
+
allowedHosts: z.array(z.string().trim().min(1)).min(1).optional(),
|
|
37
|
+
}).strict().default({}),
|
|
38
|
+
validation: z.object({
|
|
39
|
+
status: z.literal("valid"),
|
|
40
|
+
validatedAt: TimestampSchema,
|
|
41
|
+
}).strict(),
|
|
42
|
+
createdAt: TimestampSchema,
|
|
43
|
+
}).strict().superRefine((revision, context) => {
|
|
44
|
+
const outputCount = Object.keys(revision.workflowSpec.outputs).length;
|
|
45
|
+
if (revision.completionMode === "outputs" && outputCount === 0) {
|
|
46
|
+
context.addIssue({ code: "custom", path: ["workflowSpec", "outputs"], message: "outputs completion requires at least one Workflow output" });
|
|
47
|
+
}
|
|
48
|
+
if (revision.completionMode === "side-effect-only" && outputCount > 0) {
|
|
49
|
+
context.addIssue({ code: "custom", path: ["completionMode"], message: "side-effect-only completion cannot declare Workflow outputs" });
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
export const WorkflowDefinitionSchema = z.object({
|
|
53
|
+
schemaVersion: z.literal("1.0"),
|
|
54
|
+
workflowId: z.string().trim().min(1),
|
|
55
|
+
name: z.string().trim().min(1),
|
|
56
|
+
latestRevisionId: z.string().trim().min(1),
|
|
57
|
+
revisionIds: z.array(z.string().trim().min(1)).min(1),
|
|
58
|
+
createdAt: TimestampSchema,
|
|
59
|
+
updatedAt: TimestampSchema,
|
|
60
|
+
}).strict();
|
|
61
|
+
//# sourceMappingURL=revision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revision.js","sourceRoot":"","sources":["../../src/workflows/revision.ts"],"names":[],"mappings":"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"}
|