@acpus/core 0.5.6 → 0.7.0-alpha.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/README.md +128 -4
- package/dist/.tsbuildinfo +1 -0
- package/dist/graph/builder.d.ts +103 -0
- package/dist/graph/builder.d.ts.map +1 -0
- package/dist/graph/builder.js +209 -0
- package/dist/graph/builder.js.map +1 -0
- package/dist/graph/lowering.d.ts +8 -0
- package/dist/graph/lowering.d.ts.map +1 -0
- package/dist/graph/lowering.js +45 -0
- package/dist/graph/lowering.js.map +1 -0
- package/dist/graph/refs.d.ts +11 -0
- package/dist/graph/refs.d.ts.map +1 -0
- package/dist/graph/refs.js +12 -0
- package/dist/graph/refs.js.map +1 -0
- package/dist/graph/scope.d.ts +21 -0
- package/dist/graph/scope.d.ts.map +1 -0
- package/dist/graph/scope.js +22 -0
- package/dist/graph/scope.js.map +1 -0
- package/dist/index.d.ts +11 -25
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -15
- package/dist/index.js.map +1 -1
- package/dist/internal/symbols.d.ts +9 -0
- package/dist/internal/symbols.d.ts.map +1 -0
- package/dist/internal/symbols.js +9 -0
- package/dist/internal/symbols.js.map +1 -0
- package/dist/internal/type-utils.d.ts +7 -0
- package/dist/internal/type-utils.d.ts.map +1 -0
- package/dist/internal/type-utils.js +8 -0
- package/dist/internal/type-utils.js.map +1 -0
- package/dist/ir/types.d.ts +218 -0
- package/dist/ir/types.d.ts.map +1 -0
- package/dist/ir/types.js.map +1 -0
- package/dist/ir/validator.d.ts +3 -0
- package/dist/ir/validator.d.ts.map +1 -0
- package/dist/ir/validator.js +671 -0
- package/dist/ir/validator.js.map +1 -0
- package/dist/ir.d.ts +3 -0
- package/dist/ir.d.ts.map +1 -0
- package/dist/ir.js +2 -0
- package/dist/ir.js.map +1 -0
- package/dist/nodes/composite/fanout.d.ts +24 -0
- package/dist/nodes/composite/fanout.d.ts.map +1 -0
- package/dist/nodes/composite/fanout.js +24 -0
- package/dist/nodes/composite/fanout.js.map +1 -0
- package/dist/nodes/composite/if.d.ts +12 -0
- package/dist/nodes/composite/if.d.ts.map +1 -0
- package/dist/nodes/composite/if.js +13 -0
- package/dist/nodes/composite/if.js.map +1 -0
- package/dist/nodes/composite/loop.d.ts +17 -0
- package/dist/nodes/composite/loop.d.ts.map +1 -0
- package/dist/nodes/composite/loop.js +22 -0
- package/dist/nodes/composite/loop.js.map +1 -0
- package/dist/nodes/composite/parallel.d.ts +29 -0
- package/dist/nodes/composite/parallel.d.ts.map +1 -0
- package/dist/nodes/composite/parallel.js +18 -0
- package/dist/nodes/composite/parallel.js.map +1 -0
- package/dist/nodes/composite/shared.d.ts +38 -0
- package/dist/nodes/composite/shared.d.ts.map +1 -0
- package/dist/nodes/composite/shared.js +2 -0
- package/dist/nodes/composite/shared.js.map +1 -0
- package/dist/nodes/composite/switch.d.ts +22 -0
- package/dist/nodes/composite/switch.d.ts.map +1 -0
- package/dist/nodes/composite/switch.js +12 -0
- package/dist/nodes/composite/switch.js.map +1 -0
- package/dist/nodes/control/assert.d.ts +10 -0
- package/dist/nodes/control/assert.d.ts.map +1 -0
- package/dist/nodes/control/assert.js +14 -0
- package/dist/nodes/control/assert.js.map +1 -0
- package/dist/nodes/leaf/agent.d.ts +63 -0
- package/dist/nodes/leaf/agent.d.ts.map +1 -0
- package/dist/nodes/leaf/agent.js +56 -0
- package/dist/nodes/leaf/agent.js.map +1 -0
- package/dist/nodes/leaf/shared.d.ts +11 -0
- package/dist/nodes/leaf/shared.d.ts.map +1 -0
- package/dist/nodes/leaf/shared.js +2 -0
- package/dist/nodes/leaf/shared.js.map +1 -0
- package/dist/nodes/leaf/signal.d.ts +27 -0
- package/dist/nodes/leaf/signal.d.ts.map +1 -0
- package/dist/nodes/leaf/signal.js +18 -0
- package/dist/nodes/leaf/signal.js.map +1 -0
- package/dist/nodes/leaf/task.d.ts +71 -0
- package/dist/nodes/leaf/task.d.ts.map +1 -0
- package/dist/nodes/leaf/task.js +88 -0
- package/dist/nodes/leaf/task.js.map +1 -0
- package/dist/runtime/dollar.d.ts +42 -0
- package/dist/runtime/dollar.d.ts.map +1 -0
- package/dist/runtime/dollar.js +82 -0
- package/dist/runtime/dollar.js.map +1 -0
- package/dist/runtime/secret.d.ts +10 -0
- package/dist/runtime/secret.d.ts.map +1 -0
- package/dist/runtime/secret.js +12 -0
- package/dist/runtime/secret.js.map +1 -0
- package/dist/runtime/task-context.d.ts +28 -0
- package/dist/runtime/task-context.d.ts.map +1 -0
- package/dist/runtime/task-context.js +2 -0
- package/dist/runtime/task-context.js.map +1 -0
- package/dist/runtime.d.ts +5 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +3 -0
- package/dist/runtime.js.map +1 -0
- package/dist/schema/index.d.ts +6 -2
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +3 -2
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/lower.d.ts +25 -0
- package/dist/schema/lower.d.ts.map +1 -0
- package/dist/schema/lower.js +198 -0
- package/dist/schema/lower.js.map +1 -0
- package/dist/schema/validate.d.ts +18 -0
- package/dist/schema/validate.d.ts.map +1 -0
- package/dist/schema/validate.js +22 -0
- package/dist/schema/validate.js.map +1 -0
- package/dist/schema/zod.d.ts +17 -0
- package/dist/schema/zod.d.ts.map +1 -0
- package/dist/schema/zod.js +15 -0
- package/dist/schema/zod.js.map +1 -0
- package/dist/schema.d.ts +3 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +2 -0
- package/dist/schema.js.map +1 -0
- package/dist/template/template.d.ts +5 -0
- package/dist/template/template.d.ts.map +1 -0
- package/dist/template/template.js +10 -0
- package/dist/template/template.js.map +1 -0
- package/dist/workflow.d.ts +3 -0
- package/dist/workflow.d.ts.map +1 -0
- package/dist/workflow.js +2 -0
- package/dist/workflow.js.map +1 -0
- package/package.json +35 -20
- package/dist/agent-overrides.d.ts +0 -33
- package/dist/agent-overrides.d.ts.map +0 -1
- package/dist/agent-overrides.js +0 -178
- package/dist/agent-overrides.js.map +0 -1
- package/dist/cel-ast.d.ts +0 -39
- package/dist/cel-ast.d.ts.map +0 -1
- package/dist/cel-ast.js +0 -157
- package/dist/cel-ast.js.map +0 -1
- package/dist/cel-environment.d.ts +0 -6
- package/dist/cel-environment.d.ts.map +0 -1
- package/dist/cel-environment.js +0 -44
- package/dist/cel-environment.js.map +0 -1
- package/dist/compiler.d.ts +0 -4
- package/dist/compiler.d.ts.map +0 -1
- package/dist/compiler.js +0 -651
- package/dist/compiler.js.map +0 -1
- package/dist/composite-contract.d.ts +0 -46
- package/dist/composite-contract.d.ts.map +0 -1
- package/dist/composite-contract.js +0 -89
- package/dist/composite-contract.js.map +0 -1
- package/dist/diagnostics.d.ts +0 -9
- package/dist/diagnostics.d.ts.map +0 -1
- package/dist/diagnostics.js +0 -16
- package/dist/diagnostics.js.map +0 -1
- package/dist/duration.d.ts +0 -13
- package/dist/duration.d.ts.map +0 -1
- package/dist/duration.js +0 -32
- package/dist/duration.js.map +0 -1
- package/dist/expression-scope.d.ts +0 -23
- package/dist/expression-scope.d.ts.map +0 -1
- package/dist/expression-scope.js +0 -545
- package/dist/expression-scope.js.map +0 -1
- package/dist/expressions-shared.d.ts +0 -19
- package/dist/expressions-shared.d.ts.map +0 -1
- package/dist/expressions-shared.js +0 -25
- package/dist/expressions-shared.js.map +0 -1
- package/dist/expressions.d.ts +0 -9
- package/dist/expressions.d.ts.map +0 -1
- package/dist/expressions.js +0 -95
- package/dist/expressions.js.map +0 -1
- package/dist/hash.d.ts +0 -19
- package/dist/hash.d.ts.map +0 -1
- package/dist/hash.js +0 -120
- package/dist/hash.js.map +0 -1
- package/dist/hook-validation.d.ts +0 -9
- package/dist/hook-validation.d.ts.map +0 -1
- package/dist/hook-validation.js +0 -73
- package/dist/hook-validation.js.map +0 -1
- package/dist/hooks.d.ts +0 -150
- package/dist/hooks.d.ts.map +0 -1
- package/dist/hooks.js +0 -18
- package/dist/hooks.js.map +0 -1
- package/dist/schedule.d.ts +0 -3
- package/dist/schedule.d.ts.map +0 -1
- package/dist/schedule.js +0 -21
- package/dist/schedule.js.map +0 -1
- package/dist/schema/dsl.d.ts +0 -34
- package/dist/schema/dsl.d.ts.map +0 -1
- package/dist/schema/dsl.js +0 -231
- package/dist/schema/dsl.js.map +0 -1
- package/dist/schema/helpers.d.ts +0 -24
- package/dist/schema/helpers.d.ts.map +0 -1
- package/dist/schema/helpers.js +0 -61
- package/dist/schema/helpers.js.map +0 -1
- package/dist/schema-validator.d.ts +0 -29
- package/dist/schema-validator.d.ts.map +0 -1
- package/dist/schema-validator.js +0 -622
- package/dist/schema-validator.js.map +0 -1
- package/dist/source-resolver.d.ts +0 -22
- package/dist/source-resolver.d.ts.map +0 -1
- package/dist/source-resolver.js +0 -43
- package/dist/source-resolver.js.map +0 -1
- package/dist/types.d.ts +0 -125
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/workflow-schema.d.ts +0 -10
- package/dist/workflow-schema.d.ts.map +0 -1
- package/dist/workflow-schema.js +0 -485
- package/dist/workflow-schema.js.map +0 -1
- /package/dist/{types.js → ir/types.js} +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type TemplateInput } from "../../template/template.js";
|
|
2
|
+
import { type Schema } from "../../schema/index.js";
|
|
3
|
+
import type { DiagnosticIR, SignalNodeIR } from "../../ir/types.js";
|
|
4
|
+
export type SignalRunSpec = {
|
|
5
|
+
prompt: TemplateInput;
|
|
6
|
+
};
|
|
7
|
+
type SignalTimeoutSpec = {
|
|
8
|
+
timeout: string;
|
|
9
|
+
onTimeout?: {
|
|
10
|
+
action: "fail";
|
|
11
|
+
message?: string;
|
|
12
|
+
};
|
|
13
|
+
} | {
|
|
14
|
+
timeout?: undefined;
|
|
15
|
+
onTimeout?: never;
|
|
16
|
+
};
|
|
17
|
+
/** Authoring spec for a Signal node that waits for operator input. */
|
|
18
|
+
export type SignalStepSpec<OutSchema extends Schema<any> | undefined = Schema<any> | undefined> = (OutSchema extends Schema<any> ? {
|
|
19
|
+
outputSchema: OutSchema;
|
|
20
|
+
run: SignalRunSpec;
|
|
21
|
+
} : {
|
|
22
|
+
outputSchema?: undefined;
|
|
23
|
+
run: SignalRunSpec;
|
|
24
|
+
}) & SignalTimeoutSpec;
|
|
25
|
+
export declare function buildSignalNode<OutSchema extends Schema<any> | undefined>(id: string, spec: SignalStepSpec<OutSchema>, diagnostics: DiagnosticIR[]): SignalNodeIR;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=signal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal.d.ts","sourceRoot":"","sources":["../../../src/nodes/leaf/signal.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAe,MAAM,mBAAmB,CAAC;AAEjF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,KAAK,iBAAiB,GAClB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACrE;IAAE,OAAO,CAAC,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAE/C,sEAAsE;AACtE,MAAM,MAAM,cAAc,CAAC,SAAS,SAAS,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,IAC5F,CAAC,SAAS,SAAS,MAAM,CAAC,GAAG,CAAC,GAC1B;IACE,YAAY,EAAE,SAAS,CAAC;IACxB,GAAG,EAAE,aAAa,CAAC;CACpB,GACD;IACE,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,GAAG,EAAE,aAAa,CAAC;CACpB,CAAC,GAAG,iBAAiB,CAAC;AAM7B,wBAAgB,eAAe,CAAC,SAAS,SAAS,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,EACvE,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,EAC/B,WAAW,EAAE,YAAY,EAAE,GAC1B,YAAY,CAUd"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { assertStableId, stripUndefined } from "../../graph/lowering.js";
|
|
2
|
+
import { templateToIR } from "../../template/template.js";
|
|
3
|
+
import { toSchemaIR } from "../../schema/index.js";
|
|
4
|
+
function signalRunToIR(spec) {
|
|
5
|
+
return { kind: "signal_run", prompt: templateToIR(spec.prompt) };
|
|
6
|
+
}
|
|
7
|
+
export function buildSignalNode(id, spec, diagnostics) {
|
|
8
|
+
assertStableId(id, diagnostics);
|
|
9
|
+
return stripUndefined({
|
|
10
|
+
id,
|
|
11
|
+
kind: "signal",
|
|
12
|
+
outputSchema: spec.outputSchema ? toSchemaIR(spec.outputSchema) : undefined,
|
|
13
|
+
run: signalRunToIR(spec.run),
|
|
14
|
+
timeout: spec.timeout,
|
|
15
|
+
onTimeout: spec.onTimeout,
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=signal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal.js","sourceRoot":"","sources":["../../../src/nodes/leaf/signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAsB,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAe,MAAM,uBAAuB,CAAC;AAuBhE,SAAS,aAAa,CAAC,IAAmB;IACxC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,EAAU,EACV,IAA+B,EAC/B,WAA2B;IAE3B,cAAc,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IAChC,OAAO,cAAc,CAAC;QACpB,EAAE;QACF,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;QAC3E,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAiB,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { TASK } from "../../internal/symbols.js";
|
|
2
|
+
import type { Simplify } from "../../internal/type-utils.js";
|
|
3
|
+
import { type InferSchema, type Schema } from "../../schema/index.js";
|
|
4
|
+
import type { WorkflowValue } from "@acpus/expression";
|
|
5
|
+
import type { DiagnosticIR, TaskNodeIR } from "../../ir/types.js";
|
|
6
|
+
import type { TaskFunction } from "../../runtime/task-context.js";
|
|
7
|
+
import type { EnvInput, RuntimeInput, StepInput } from "./shared.js";
|
|
8
|
+
type BaseTaskToken<Input, Output> = {
|
|
9
|
+
readonly [TASK]: true;
|
|
10
|
+
readonly fn: TaskFunction<Input, Output>;
|
|
11
|
+
readonly source: string;
|
|
12
|
+
};
|
|
13
|
+
export type InlineTaskToken<Input, Output> = BaseTaskToken<Input, Output> & {
|
|
14
|
+
readonly kind: "inline";
|
|
15
|
+
readonly inputSchema?: undefined;
|
|
16
|
+
readonly outputSchema?: undefined;
|
|
17
|
+
};
|
|
18
|
+
export type ReusableTaskToken<Input, Output> = BaseTaskToken<Input, Output> & {
|
|
19
|
+
readonly kind: "external";
|
|
20
|
+
readonly inputSchema: Schema<Input>;
|
|
21
|
+
};
|
|
22
|
+
export type TaskToken<Input, Output> = InlineTaskToken<Input, Output> | ReusableTaskToken<Input, Output>;
|
|
23
|
+
type TaskStepOptions = {
|
|
24
|
+
cwd?: WorkflowValue<string>;
|
|
25
|
+
env?: EnvInput;
|
|
26
|
+
execution?: {
|
|
27
|
+
shell?: "bash" | "powershell" | "pwsh";
|
|
28
|
+
defaultCommandTimeout?: string;
|
|
29
|
+
commandRunner?: "acpus-zx-core" | "custom";
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
type TaskNodeOptions = {
|
|
33
|
+
timeout?: string;
|
|
34
|
+
retry?: never;
|
|
35
|
+
};
|
|
36
|
+
export type InlineTaskStepSpec<Input extends StepInput, Exec extends TaskFunction<RuntimeInput<Input>, any> = TaskFunction<RuntimeInput<Input>, any>> = Simplify<TaskNodeOptions & {
|
|
37
|
+
outputSchema?: never;
|
|
38
|
+
run: TaskStepOptions & {
|
|
39
|
+
input: Input;
|
|
40
|
+
exec: Exec;
|
|
41
|
+
};
|
|
42
|
+
}>;
|
|
43
|
+
export type ReusableTaskStepSpec<Input extends StepInput, TaskInput, Output> = Simplify<TaskNodeOptions & {
|
|
44
|
+
outputSchema?: never;
|
|
45
|
+
run: TaskStepOptions & {
|
|
46
|
+
input: Input;
|
|
47
|
+
task: ReusableTaskToken<TaskInput, Output>;
|
|
48
|
+
};
|
|
49
|
+
}>;
|
|
50
|
+
export type TaskStepSpec<Input extends StepInput> = InlineTaskStepSpec<Input> | ReusableTaskStepSpec<Input, any, any>;
|
|
51
|
+
export declare function createInlineTaskToken<Input, Output>(fn: TaskFunction<Input, Output>): InlineTaskToken<Input, Output>;
|
|
52
|
+
export interface TaskFactory {
|
|
53
|
+
/**
|
|
54
|
+
* Defines a reusable Task token for workflow modules.
|
|
55
|
+
*
|
|
56
|
+
* The task definition owns its input schema and executable body. Workflow
|
|
57
|
+
* call sites pass values through `run.input` and reference the token through
|
|
58
|
+
* `run.task`.
|
|
59
|
+
*/
|
|
60
|
+
define<InputSchema extends Schema<any>, Exec extends TaskFunction<InferSchema<InputSchema>, any>>(config: {
|
|
61
|
+
inputSchema: InputSchema;
|
|
62
|
+
outputSchema?: never;
|
|
63
|
+
exec: Exec;
|
|
64
|
+
}): ReusableTaskToken<InferSchema<InputSchema>, Awaited<ReturnType<Exec>>>;
|
|
65
|
+
/** Returns true when a value is an Acpus Task token. */
|
|
66
|
+
isToken(value: unknown): value is TaskToken<any, any>;
|
|
67
|
+
}
|
|
68
|
+
export declare const task: TaskFactory;
|
|
69
|
+
export declare function buildTaskNode<const Input extends StepInput>(id: string, spec: TaskStepSpec<Input>, diagnostics: DiagnosticIR[]): TaskNodeIR;
|
|
70
|
+
export {};
|
|
71
|
+
//# sourceMappingURL=task.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../src/nodes/leaf/task.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { TASK } from "../../internal/symbols.js";
|
|
2
|
+
import { envToIR, bindingsToIR, assertStableId, stripUndefined } from "../../graph/lowering.js";
|
|
3
|
+
import { valueToExprIR } from "@acpus/expression/ir";
|
|
4
|
+
import {} from "../../schema/index.js";
|
|
5
|
+
function makeTaskToken(args) {
|
|
6
|
+
const source = args.fn.toString();
|
|
7
|
+
return {
|
|
8
|
+
[TASK]: true,
|
|
9
|
+
kind: args.kind,
|
|
10
|
+
inputSchema: args.inputSchema,
|
|
11
|
+
fn: args.fn,
|
|
12
|
+
source,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export function createInlineTaskToken(fn) {
|
|
16
|
+
return makeTaskToken({ kind: "inline", fn });
|
|
17
|
+
}
|
|
18
|
+
export const task = {
|
|
19
|
+
define(config) {
|
|
20
|
+
return makeTaskToken({
|
|
21
|
+
kind: "external",
|
|
22
|
+
inputSchema: config.inputSchema,
|
|
23
|
+
fn: config.exec,
|
|
24
|
+
});
|
|
25
|
+
},
|
|
26
|
+
isToken(value) {
|
|
27
|
+
return Boolean(value && typeof value === "object" && value[TASK]);
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
export function buildTaskNode(id, spec, diagnostics) {
|
|
31
|
+
assertStableId(id, diagnostics);
|
|
32
|
+
if (spec.retry !== undefined) {
|
|
33
|
+
diagnostics.push({ code: "IR001", severity: "error", message: `Task node '${id}' does not support workflow-level automatic retry.`, path: `root.nodes.${id}.retry` });
|
|
34
|
+
}
|
|
35
|
+
const parsed = taskSpecParts(spec);
|
|
36
|
+
if (!parsed) {
|
|
37
|
+
diagnostics.push({ code: "T000", severity: "error", message: `Task node '${id}' must use inline { run: { input, exec } } or reusable { run: { input, task } }.` });
|
|
38
|
+
}
|
|
39
|
+
return stripUndefined({
|
|
40
|
+
id,
|
|
41
|
+
kind: "task",
|
|
42
|
+
run: parsed ? {
|
|
43
|
+
kind: "task_run",
|
|
44
|
+
input: bindingsToIR(parsed.inputBindings),
|
|
45
|
+
target: taskTarget(parsed.run),
|
|
46
|
+
cwd: parsed.runOptions.cwd === undefined ? undefined : valueToExprIR(parsed.runOptions.cwd),
|
|
47
|
+
env: envToIR(parsed.runOptions.env),
|
|
48
|
+
execution: parsed.runOptions.execution,
|
|
49
|
+
} : {
|
|
50
|
+
kind: "task_run",
|
|
51
|
+
input: {},
|
|
52
|
+
target: { kind: "inline", runtime: "node", source: "" },
|
|
53
|
+
},
|
|
54
|
+
timeout: spec.timeout,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function taskSpecParts(spec) {
|
|
58
|
+
const maybeRun = spec.run;
|
|
59
|
+
if (maybeRun && typeof maybeRun === "object" && "exec" in maybeRun) {
|
|
60
|
+
const inlineSpec = spec;
|
|
61
|
+
return {
|
|
62
|
+
run: createInlineTaskToken(inlineSpec.run.exec),
|
|
63
|
+
inputBindings: inlineSpec.run.input,
|
|
64
|
+
runOptions: inlineSpec.run,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
else if (maybeRun && typeof maybeRun === "object" && "task" in maybeRun && task.isToken(maybeRun.task)) {
|
|
68
|
+
const reusableSpec = spec;
|
|
69
|
+
return {
|
|
70
|
+
run: reusableSpec.run.task,
|
|
71
|
+
inputBindings: reusableSpec.run.input,
|
|
72
|
+
runOptions: reusableSpec.run,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
function taskTarget(run) {
|
|
78
|
+
if (run.kind === "inline")
|
|
79
|
+
return { kind: "inline", runtime: "node", source: run.source };
|
|
80
|
+
return {
|
|
81
|
+
kind: "module",
|
|
82
|
+
runtime: "node",
|
|
83
|
+
specifier: "",
|
|
84
|
+
exportName: "",
|
|
85
|
+
referrer: { kind: "workflow", path: "" },
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/nodes/leaf/task.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Options as ZxOptions, ProcessPromise } from "zx/core";
|
|
2
|
+
import type { ArtifactRef } from "./task-context.js";
|
|
3
|
+
export type CommandResult = {
|
|
4
|
+
stdout: string;
|
|
5
|
+
stderr: string;
|
|
6
|
+
exitCode: number;
|
|
7
|
+
signal?: string;
|
|
8
|
+
durationMs: number;
|
|
9
|
+
command: string;
|
|
10
|
+
stdoutArtifact?: ArtifactRef;
|
|
11
|
+
stderrArtifact?: ArtifactRef;
|
|
12
|
+
};
|
|
13
|
+
type ZxReaders = Pick<ProcessPromise, "text" | "json" | "lines">;
|
|
14
|
+
type ZxChain = {
|
|
15
|
+
[K in "nothrow" | "timeout"]: (...args: Parameters<ProcessPromise[K]>) => CommandBuilder;
|
|
16
|
+
};
|
|
17
|
+
export type CommandBuilder = Promise<CommandResult> & ZxReaders & ZxChain & {
|
|
18
|
+
allowExitCode(codes: number[]): CommandBuilder;
|
|
19
|
+
};
|
|
20
|
+
export type DollarConfig = Partial<Pick<ZxOptions, "cwd" | "env" | "timeout" | "nothrow">> & {
|
|
21
|
+
allowExitCode?: number[];
|
|
22
|
+
};
|
|
23
|
+
export type Dollar = {
|
|
24
|
+
(strings: TemplateStringsArray, ...values: unknown[]): CommandBuilder;
|
|
25
|
+
(config: DollarConfig): Dollar;
|
|
26
|
+
};
|
|
27
|
+
export type CommandSpan = {
|
|
28
|
+
command: string;
|
|
29
|
+
startedAt: string;
|
|
30
|
+
endedAt?: string;
|
|
31
|
+
exitCode?: number;
|
|
32
|
+
durationMs?: number;
|
|
33
|
+
};
|
|
34
|
+
export type DollarOptions = {
|
|
35
|
+
cwd?: string;
|
|
36
|
+
env?: Record<string, string | undefined>;
|
|
37
|
+
onSpan?: (span: CommandSpan) => void;
|
|
38
|
+
redact?: (text: string) => string;
|
|
39
|
+
};
|
|
40
|
+
export declare function createDollar(options?: DollarOptions, config?: DollarConfig): Dollar;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=dollar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dollar.d.ts","sourceRoot":"","sources":["../../src/runtime/dollar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,IAAI,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,cAAc,CAAC,EAAE,WAAW,CAAC;CAC9B,CAAC;AAEF,KAAK,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAEjE,KAAK,OAAO,GAAG;KACZ,CAAC,IAAI,SAAS,GAAG,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,cAAc;CACzF,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,GAAG,OAAO,GAAG;IAC1E,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC,GAAG;IAC3F,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;IACtE,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACnC,CAAC;AAEF,wBAAgB,YAAY,CAAC,OAAO,GAAE,aAAkB,EAAE,MAAM,GAAE,YAAiB,GAAG,MAAM,CAmB3F"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { $ as zxDollar, quote as zxQuote } from "zx/core";
|
|
2
|
+
export function createDollar(options = {}, config = {}) {
|
|
3
|
+
const dollar = ((arg, ...values) => {
|
|
4
|
+
if (!Array.isArray(arg))
|
|
5
|
+
return createDollar(options, { ...config, ...arg });
|
|
6
|
+
const strings = arg;
|
|
7
|
+
const startedAt = new Date().toISOString();
|
|
8
|
+
const command = renderCommand(strings, values, options.redact);
|
|
9
|
+
const span = { command, startedAt };
|
|
10
|
+
options.onSpan?.(span);
|
|
11
|
+
const cwd = config.cwd ?? options.cwd;
|
|
12
|
+
const env = config.env ?? options.env;
|
|
13
|
+
const shell = cwd || env ? zxDollar({ ...(cwd ? { cwd } : {}), ...(env ? { env: env } : {}) }) : zxDollar;
|
|
14
|
+
const proc = shell(strings, ...values);
|
|
15
|
+
const builder = wrapProcess(proc, command, span);
|
|
16
|
+
if (config.timeout !== undefined)
|
|
17
|
+
builder.timeout(config.timeout);
|
|
18
|
+
if (config.nothrow)
|
|
19
|
+
builder.nothrow();
|
|
20
|
+
if (config.allowExitCode)
|
|
21
|
+
builder.allowExitCode(config.allowExitCode);
|
|
22
|
+
return builder;
|
|
23
|
+
});
|
|
24
|
+
return dollar;
|
|
25
|
+
}
|
|
26
|
+
function wrapProcess(proc, command, span) {
|
|
27
|
+
let allowCodes;
|
|
28
|
+
let nothrow = false;
|
|
29
|
+
let promise;
|
|
30
|
+
const run = async () => {
|
|
31
|
+
if (promise)
|
|
32
|
+
return promise;
|
|
33
|
+
promise = (async () => {
|
|
34
|
+
const started = Date.now();
|
|
35
|
+
const p = allowCodes || nothrow ? proc.nothrow() : proc;
|
|
36
|
+
const out = await p;
|
|
37
|
+
const exitCode = Number(out.exitCode ?? 0);
|
|
38
|
+
const durationMs = Date.now() - started;
|
|
39
|
+
span.endedAt = new Date().toISOString();
|
|
40
|
+
span.exitCode = exitCode;
|
|
41
|
+
span.durationMs = durationMs;
|
|
42
|
+
if (allowCodes && !allowCodes.includes(exitCode)) {
|
|
43
|
+
throw new Error(`Command exited with ${exitCode}; expected one of ${allowCodes.join(", ")}: ${command}`);
|
|
44
|
+
}
|
|
45
|
+
const result = {
|
|
46
|
+
stdout: String(out.stdout ?? ""),
|
|
47
|
+
stderr: String(out.stderr ?? ""),
|
|
48
|
+
exitCode,
|
|
49
|
+
durationMs,
|
|
50
|
+
command,
|
|
51
|
+
};
|
|
52
|
+
if (out.signal !== undefined && out.signal !== null)
|
|
53
|
+
result.signal = String(out.signal);
|
|
54
|
+
return result;
|
|
55
|
+
})();
|
|
56
|
+
return promise;
|
|
57
|
+
};
|
|
58
|
+
const builder = {
|
|
59
|
+
then: ((onfulfilled, onrejected) => run().then(onfulfilled, onrejected)),
|
|
60
|
+
catch: ((onrejected) => run().catch(onrejected)),
|
|
61
|
+
finally: ((onfinally) => run().finally(onfinally)),
|
|
62
|
+
allowExitCode(codes) { allowCodes = codes; return builder; },
|
|
63
|
+
nothrow(v = true) { nothrow = v; return builder; },
|
|
64
|
+
timeout(duration, signal) { if (typeof proc.timeout === "function")
|
|
65
|
+
proc.timeout(duration, signal); return builder; },
|
|
66
|
+
async text() { return (await run()).stdout; },
|
|
67
|
+
async json() { return JSON.parse((await run()).stdout); },
|
|
68
|
+
async lines() { return (await run()).stdout.split(/\r?\n/).filter(Boolean); },
|
|
69
|
+
[Symbol.toStringTag]: "AcpusCommandBuilder",
|
|
70
|
+
};
|
|
71
|
+
return builder;
|
|
72
|
+
}
|
|
73
|
+
function renderCommand(strings, values, redact) {
|
|
74
|
+
let out = "";
|
|
75
|
+
for (let i = 0; i < strings.length; i += 1) {
|
|
76
|
+
out += strings[i] ?? "";
|
|
77
|
+
if (i < values.length)
|
|
78
|
+
out += zxQuote(String(values[i]));
|
|
79
|
+
}
|
|
80
|
+
return redact ? redact(out) : out;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=dollar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dollar.js","sourceRoot":"","sources":["../../src/runtime/dollar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SECRET } from "../internal/symbols.js";
|
|
2
|
+
import type { ExprIR, SecretRefIR } from "../ir/types.js";
|
|
3
|
+
export type SecretToken = {
|
|
4
|
+
readonly [SECRET]: true;
|
|
5
|
+
readonly ir: SecretRefIR;
|
|
6
|
+
};
|
|
7
|
+
export declare function secret(name: string): SecretToken;
|
|
8
|
+
export declare function isSecret(value: unknown): value is SecretToken;
|
|
9
|
+
export declare function secretOrExprToIR(value: unknown): ExprIR | SecretRefIR;
|
|
10
|
+
//# sourceMappingURL=secret.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../src/runtime/secret.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAEhD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAE7D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,WAAW,CAErE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { valueToExprIR } from "@acpus/expression/ir";
|
|
2
|
+
import { SECRET } from "../internal/symbols.js";
|
|
3
|
+
export function secret(name) {
|
|
4
|
+
return { [SECRET]: true, ir: { kind: "secret", name } };
|
|
5
|
+
}
|
|
6
|
+
export function isSecret(value) {
|
|
7
|
+
return Boolean(value && typeof value === "object" && value[SECRET]);
|
|
8
|
+
}
|
|
9
|
+
export function secretOrExprToIR(value) {
|
|
10
|
+
return isSecret(value) ? value.ir : valueToExprIR(value);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=secret.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret.js","sourceRoot":"","sources":["../../src/runtime/secret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAQhD,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAa,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAK,KAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Dollar } from "./dollar.js";
|
|
2
|
+
export type ArtifactRef = {
|
|
3
|
+
readonly kind: "artifact";
|
|
4
|
+
readonly uri: string;
|
|
5
|
+
readonly mediaType?: string;
|
|
6
|
+
};
|
|
7
|
+
export type ArtifactApi = {
|
|
8
|
+
writeText(name: string, content: string, options?: {
|
|
9
|
+
mediaType?: string;
|
|
10
|
+
}): Promise<ArtifactRef>;
|
|
11
|
+
writeJson(name: string, value: unknown): Promise<ArtifactRef>;
|
|
12
|
+
writeBytes(name: string, value: Uint8Array, options?: {
|
|
13
|
+
mediaType?: string;
|
|
14
|
+
}): Promise<ArtifactRef>;
|
|
15
|
+
fromFile(path: string, options?: {
|
|
16
|
+
name?: string;
|
|
17
|
+
mediaType?: string;
|
|
18
|
+
}): Promise<ArtifactRef>;
|
|
19
|
+
};
|
|
20
|
+
export type TaskContext<Input> = {
|
|
21
|
+
input: Input;
|
|
22
|
+
$: Dollar;
|
|
23
|
+
artifact: ArtifactApi;
|
|
24
|
+
env: Record<string, string>;
|
|
25
|
+
abortSignal: AbortSignal;
|
|
26
|
+
};
|
|
27
|
+
export type TaskFunction<Input, Output> = (ctx: TaskContext<Input>) => Promise<Output> | Output;
|
|
28
|
+
//# sourceMappingURL=task-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-context.d.ts","sourceRoot":"","sources":["../../src/runtime/task-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9D,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACpG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC/F,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,KAAK,IAAI;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,WAAW,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-context.js","sourceRoot":"","sources":["../../src/runtime/task-context.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { createDollar } from "./runtime/dollar.js";
|
|
2
|
+
export type { Dollar, DollarConfig, CommandResult, CommandBuilder, CommandSpan } from "./runtime/dollar.js";
|
|
3
|
+
export type { ArtifactRef, TaskContext, TaskFunction } from "./runtime/task-context.js";
|
|
4
|
+
export { secret } from "./runtime/secret.js";
|
|
5
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC5G,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/runtime.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/schema/index.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export type {
|
|
1
|
+
export { z, s, isSchema } from "./zod.js";
|
|
2
|
+
export type { InferSchema, Schema } from "./zod.js";
|
|
3
|
+
export { parseSchema, safeParseSchema, validateValue } from "./validate.js";
|
|
4
|
+
export type { ValidationIssue, ParseResult } from "./validate.js";
|
|
5
|
+
export { toSchemaIR, tryToSchemaIR, toJSONSchema, schemaToJsonSchema, assertBoundarySchema } from "./lower.js";
|
|
6
|
+
export type { SchemaLoweringError } from "./lower.js";
|
|
3
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC/G,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/schema/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export {
|
|
1
|
+
export { z, s, isSchema } from "./zod.js";
|
|
2
|
+
export { parseSchema, safeParseSchema, validateValue } from "./validate.js";
|
|
3
|
+
export { toSchemaIR, tryToSchemaIR, toJSONSchema, schemaToJsonSchema, assertBoundarySchema } from "./lower.js";
|
|
3
4
|
//# sourceMappingURL=index.js.map
|
package/dist/schema/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type Result } from "neverthrow";
|
|
2
|
+
import type { JsonValue, SchemaIR } from "../ir/types.js";
|
|
3
|
+
import type { Schema } from "./zod.js";
|
|
4
|
+
export declare function toJSONSchema(schema: Schema<any>): JsonValue;
|
|
5
|
+
export declare function assertBoundarySchema(schema: Schema<any>, path?: string): void;
|
|
6
|
+
export type SchemaLoweringError = {
|
|
7
|
+
type: "invalid-literal";
|
|
8
|
+
path: string;
|
|
9
|
+
valueType: string;
|
|
10
|
+
message: string;
|
|
11
|
+
} | {
|
|
12
|
+
type: "invalid-default";
|
|
13
|
+
path: string;
|
|
14
|
+
valueType: string;
|
|
15
|
+
message: string;
|
|
16
|
+
} | {
|
|
17
|
+
type: "unsupported-schema";
|
|
18
|
+
path: string;
|
|
19
|
+
schemaKind: string;
|
|
20
|
+
message: string;
|
|
21
|
+
};
|
|
22
|
+
export declare function toSchemaIR(schema: Schema<any>, path?: string): SchemaIR;
|
|
23
|
+
export declare function tryToSchemaIR(schema: Schema<any>, path?: string): Result<SchemaIR, SchemaLoweringError>;
|
|
24
|
+
export declare function schemaToJsonSchema(schema: SchemaIR): JsonValue;
|
|
25
|
+
//# sourceMappingURL=lower.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lower.d.ts","sourceRoot":"","sources":["../../src/schema/lower.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAiB,SAAS,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAE3D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,SAAY,GAAG,IAAI,CAEhF;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC7E;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC7E;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAUtF,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,SAAY,GAAG,QAAQ,CAO1E;AAOD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,SAAY,GAAG,MAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAE1G;AA+ID,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAmB9D"}
|