@xemahq/dsl 0.1.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/LICENSE +201 -0
- package/dist/deliverable-spec/index.d.ts +3 -0
- package/dist/deliverable-spec/index.d.ts.map +1 -0
- package/dist/deliverable-spec/index.js +19 -0
- package/dist/deliverable-spec/index.js.map +1 -0
- package/dist/deliverable-spec/lib/schema.d.ts +151 -0
- package/dist/deliverable-spec/lib/schema.d.ts.map +1 -0
- package/dist/deliverable-spec/lib/schema.js +139 -0
- package/dist/deliverable-spec/lib/schema.js.map +1 -0
- package/dist/deliverable-spec/lib/types.d.ts +8 -0
- package/dist/deliverable-spec/lib/types.d.ts.map +1 -0
- package/dist/deliverable-spec/lib/types.js +3 -0
- package/dist/deliverable-spec/lib/types.js.map +1 -0
- package/dist/payload-codec/index.d.ts +8 -0
- package/dist/payload-codec/index.d.ts.map +1 -0
- package/dist/payload-codec/index.js +27 -0
- package/dist/payload-codec/index.js.map +1 -0
- package/dist/payload-codec/lib/blob-store.d.ts +37 -0
- package/dist/payload-codec/lib/blob-store.d.ts.map +1 -0
- package/dist/payload-codec/lib/blob-store.js +0 -0
- package/dist/payload-codec/lib/blob-store.js.map +1 -0
- package/dist/payload-codec/lib/codec-context.d.ts +6 -0
- package/dist/payload-codec/lib/codec-context.d.ts.map +1 -0
- package/dist/payload-codec/lib/codec-context.js +16 -0
- package/dist/payload-codec/lib/codec-context.js.map +1 -0
- package/dist/payload-codec/lib/codec.d.ts +51 -0
- package/dist/payload-codec/lib/codec.d.ts.map +1 -0
- package/dist/payload-codec/lib/codec.js +330 -0
- package/dist/payload-codec/lib/codec.js.map +1 -0
- package/dist/payload-codec/lib/enums.d.ts +18 -0
- package/dist/payload-codec/lib/enums.d.ts.map +1 -0
- package/dist/payload-codec/lib/enums.js +23 -0
- package/dist/payload-codec/lib/enums.js.map +1 -0
- package/dist/payload-codec/lib/errors.d.ts +18 -0
- package/dist/payload-codec/lib/errors.d.ts.map +1 -0
- package/dist/payload-codec/lib/errors.js +39 -0
- package/dist/payload-codec/lib/errors.js.map +1 -0
- package/dist/payload-codec/lib/http-blob-store.d.ts +21 -0
- package/dist/payload-codec/lib/http-blob-store.d.ts.map +1 -0
- package/dist/payload-codec/lib/http-blob-store.js +139 -0
- package/dist/payload-codec/lib/http-blob-store.js.map +1 -0
- package/dist/payload-codec/lib/lru-cache.d.ts +12 -0
- package/dist/payload-codec/lib/lru-cache.d.ts.map +1 -0
- package/dist/payload-codec/lib/lru-cache.js +59 -0
- package/dist/payload-codec/lib/lru-cache.js.map +1 -0
- package/dist/schema/action.schema.json +181 -0
- package/dist/schema/reusable-workflow.schema.json +46 -0
- package/dist/schema/workflow.schema.json +373 -0
- package/dist/workflow/index.d.ts +14 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +49 -0
- package/dist/workflow/index.js.map +1 -0
- package/dist/workflow/lib/action-input-validator.d.ts +10 -0
- package/dist/workflow/lib/action-input-validator.d.ts.map +1 -0
- package/dist/workflow/lib/action-input-validator.js +69 -0
- package/dist/workflow/lib/action-input-validator.js.map +1 -0
- package/dist/workflow/lib/compiler/action-shape.d.ts +5 -0
- package/dist/workflow/lib/compiler/action-shape.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/action-shape.js +43 -0
- package/dist/workflow/lib/compiler/action-shape.js.map +1 -0
- package/dist/workflow/lib/compiler/canonical-json.d.ts +3 -0
- package/dist/workflow/lib/compiler/canonical-json.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/canonical-json.js +45 -0
- package/dist/workflow/lib/compiler/canonical-json.js.map +1 -0
- package/dist/workflow/lib/compiler/compile.d.ts +4 -0
- package/dist/workflow/lib/compiler/compile.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/compile.js +794 -0
- package/dist/workflow/lib/compiler/compile.js.map +1 -0
- package/dist/workflow/lib/compiler/concurrency.d.ts +5 -0
- package/dist/workflow/lib/compiler/concurrency.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/concurrency.js +104 -0
- package/dist/workflow/lib/compiler/concurrency.js.map +1 -0
- package/dist/workflow/lib/compiler/dag.d.ts +10 -0
- package/dist/workflow/lib/compiler/dag.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/dag.js +74 -0
- package/dist/workflow/lib/compiler/dag.js.map +1 -0
- package/dist/workflow/lib/compiler/index.d.ts +6 -0
- package/dist/workflow/lib/compiler/index.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/index.js +14 -0
- package/dist/workflow/lib/compiler/index.js.map +1 -0
- package/dist/workflow/lib/compiler/inputs.d.ts +4 -0
- package/dist/workflow/lib/compiler/inputs.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/inputs.js +108 -0
- package/dist/workflow/lib/compiler/inputs.js.map +1 -0
- package/dist/workflow/lib/compiler/installation-resource-validator.d.ts +9 -0
- package/dist/workflow/lib/compiler/installation-resource-validator.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/installation-resource-validator.js +76 -0
- package/dist/workflow/lib/compiler/installation-resource-validator.js.map +1 -0
- package/dist/workflow/lib/compiler/manifest-source.d.ts +4 -0
- package/dist/workflow/lib/compiler/manifest-source.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/manifest-source.js +100 -0
- package/dist/workflow/lib/compiler/manifest-source.js.map +1 -0
- package/dist/workflow/lib/compiler/matrix.d.ts +4 -0
- package/dist/workflow/lib/compiler/matrix.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/matrix.js +76 -0
- package/dist/workflow/lib/compiler/matrix.js.map +1 -0
- package/dist/workflow/lib/compiler/mount-plan.d.ts +4 -0
- package/dist/workflow/lib/compiler/mount-plan.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/mount-plan.js +96 -0
- package/dist/workflow/lib/compiler/mount-plan.js.map +1 -0
- package/dist/workflow/lib/compiler/payload-reach-in.d.ts +14 -0
- package/dist/workflow/lib/compiler/payload-reach-in.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/payload-reach-in.js +273 -0
- package/dist/workflow/lib/compiler/payload-reach-in.js.map +1 -0
- package/dist/workflow/lib/compiler/permissions.d.ts +6 -0
- package/dist/workflow/lib/compiler/permissions.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/permissions.js +43 -0
- package/dist/workflow/lib/compiler/permissions.js.map +1 -0
- package/dist/workflow/lib/compiler/retry-timeout.d.ts +6 -0
- package/dist/workflow/lib/compiler/retry-timeout.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/retry-timeout.js +64 -0
- package/dist/workflow/lib/compiler/retry-timeout.js.map +1 -0
- package/dist/workflow/lib/compiler/review-step.d.ts +18 -0
- package/dist/workflow/lib/compiler/review-step.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/review-step.js +247 -0
- package/dist/workflow/lib/compiler/review-step.js.map +1 -0
- package/dist/workflow/lib/compiler/types.d.ts +42 -0
- package/dist/workflow/lib/compiler/types.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/types.js +3 -0
- package/dist/workflow/lib/compiler/types.js.map +1 -0
- package/dist/workflow/lib/compiler/variable-requirements.d.ts +5 -0
- package/dist/workflow/lib/compiler/variable-requirements.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/variable-requirements.js +119 -0
- package/dist/workflow/lib/compiler/variable-requirements.js.map +1 -0
- package/dist/workflow/lib/deliverable-spec-keys.d.ts +3 -0
- package/dist/workflow/lib/deliverable-spec-keys.d.ts.map +1 -0
- package/dist/workflow/lib/deliverable-spec-keys.js +90 -0
- package/dist/workflow/lib/deliverable-spec-keys.js.map +1 -0
- package/dist/workflow/lib/dispatch-inputs/index.d.ts +23 -0
- package/dist/workflow/lib/dispatch-inputs/index.d.ts.map +1 -0
- package/dist/workflow/lib/dispatch-inputs/index.js +106 -0
- package/dist/workflow/lib/dispatch-inputs/index.js.map +1 -0
- package/dist/workflow/lib/dispatch-inputs/to-json-schema.d.ts +3 -0
- package/dist/workflow/lib/dispatch-inputs/to-json-schema.d.ts.map +1 -0
- package/dist/workflow/lib/dispatch-inputs/to-json-schema.js +43 -0
- package/dist/workflow/lib/dispatch-inputs/to-json-schema.js.map +1 -0
- package/dist/workflow/lib/duration.d.ts +2 -0
- package/dist/workflow/lib/duration.d.ts.map +1 -0
- package/dist/workflow/lib/duration.js +26 -0
- package/dist/workflow/lib/duration.js.map +1 -0
- package/dist/workflow/lib/errors.d.ts +9 -0
- package/dist/workflow/lib/errors.d.ts.map +1 -0
- package/dist/workflow/lib/errors.js +28 -0
- package/dist/workflow/lib/errors.js.map +1 -0
- package/dist/workflow/lib/expression/ast.d.ts +61 -0
- package/dist/workflow/lib/expression/ast.d.ts.map +1 -0
- package/dist/workflow/lib/expression/ast.js +34 -0
- package/dist/workflow/lib/expression/ast.js.map +1 -0
- package/dist/workflow/lib/expression/context.d.ts +63 -0
- package/dist/workflow/lib/expression/context.d.ts.map +1 -0
- package/dist/workflow/lib/expression/context.js +32 -0
- package/dist/workflow/lib/expression/context.js.map +1 -0
- package/dist/workflow/lib/expression/evaluator.d.ts +5 -0
- package/dist/workflow/lib/expression/evaluator.d.ts.map +1 -0
- package/dist/workflow/lib/expression/evaluator.js +291 -0
- package/dist/workflow/lib/expression/evaluator.js.map +1 -0
- package/dist/workflow/lib/expression/index.d.ts +9 -0
- package/dist/workflow/lib/expression/index.d.ts.map +1 -0
- package/dist/workflow/lib/expression/index.js +26 -0
- package/dist/workflow/lib/expression/index.js.map +1 -0
- package/dist/workflow/lib/expression/interpolation.d.ts +9 -0
- package/dist/workflow/lib/expression/interpolation.d.ts.map +1 -0
- package/dist/workflow/lib/expression/interpolation.js +51 -0
- package/dist/workflow/lib/expression/interpolation.js.map +1 -0
- package/dist/workflow/lib/expression/parser.d.ts +4 -0
- package/dist/workflow/lib/expression/parser.d.ts.map +1 -0
- package/dist/workflow/lib/expression/parser.js +203 -0
- package/dist/workflow/lib/expression/parser.js.map +1 -0
- package/dist/workflow/lib/expression/template.d.ts +18 -0
- package/dist/workflow/lib/expression/template.d.ts.map +1 -0
- package/dist/workflow/lib/expression/template.js +63 -0
- package/dist/workflow/lib/expression/template.js.map +1 -0
- package/dist/workflow/lib/expression/tokenizer.d.ts +3 -0
- package/dist/workflow/lib/expression/tokenizer.d.ts.map +1 -0
- package/dist/workflow/lib/expression/tokenizer.js +153 -0
- package/dist/workflow/lib/expression/tokenizer.js.map +1 -0
- package/dist/workflow/lib/expression/tokens.d.ts +25 -0
- package/dist/workflow/lib/expression/tokens.d.ts.map +1 -0
- package/dist/workflow/lib/expression/tokens.js +24 -0
- package/dist/workflow/lib/expression/tokens.js.map +1 -0
- package/dist/workflow/lib/expression/walk-artifact-refs.d.ts +5 -0
- package/dist/workflow/lib/expression/walk-artifact-refs.d.ts.map +1 -0
- package/dist/workflow/lib/expression/walk-artifact-refs.js +138 -0
- package/dist/workflow/lib/expression/walk-artifact-refs.js.map +1 -0
- package/dist/workflow/lib/installation-resource-kind.d.ts +14 -0
- package/dist/workflow/lib/installation-resource-kind.d.ts.map +1 -0
- package/dist/workflow/lib/installation-resource-kind.js +59 -0
- package/dist/workflow/lib/installation-resource-kind.js.map +1 -0
- package/dist/workflow/lib/schemas-loader.d.ts +4 -0
- package/dist/workflow/lib/schemas-loader.d.ts.map +1 -0
- package/dist/workflow/lib/schemas-loader.js +36 -0
- package/dist/workflow/lib/schemas-loader.js.map +1 -0
- package/dist/workflow/lib/serializer.d.ts +3 -0
- package/dist/workflow/lib/serializer.d.ts.map +1 -0
- package/dist/workflow/lib/serializer.js +15 -0
- package/dist/workflow/lib/serializer.js.map +1 -0
- package/dist/workflow/lib/types.d.ts +179 -0
- package/dist/workflow/lib/types.d.ts.map +1 -0
- package/dist/workflow/lib/types.js +3 -0
- package/dist/workflow/lib/types.js.map +1 -0
- package/dist/workflow/lib/validate.d.ts +8 -0
- package/dist/workflow/lib/validate.d.ts.map +1 -0
- package/dist/workflow/lib/validate.js +119 -0
- package/dist/workflow/lib/validate.js.map +1 -0
- package/dist/workspace-manifest/index.d.ts +6 -0
- package/dist/workspace-manifest/index.d.ts.map +1 -0
- package/dist/workspace-manifest/index.js +22 -0
- package/dist/workspace-manifest/index.js.map +1 -0
- package/dist/workspace-manifest/lib/compile.d.ts +8 -0
- package/dist/workspace-manifest/lib/compile.d.ts.map +1 -0
- package/dist/workspace-manifest/lib/compile.js +439 -0
- package/dist/workspace-manifest/lib/compile.js.map +1 -0
- package/dist/workspace-manifest/lib/interpolate.d.ts +12 -0
- package/dist/workspace-manifest/lib/interpolate.d.ts.map +1 -0
- package/dist/workspace-manifest/lib/interpolate.js +81 -0
- package/dist/workspace-manifest/lib/interpolate.js.map +1 -0
- package/dist/workspace-manifest/lib/resolve-extends.d.ts +10 -0
- package/dist/workspace-manifest/lib/resolve-extends.d.ts.map +1 -0
- package/dist/workspace-manifest/lib/resolve-extends.js +108 -0
- package/dist/workspace-manifest/lib/resolve-extends.js.map +1 -0
- package/dist/workspace-manifest/lib/schema.d.ts +710 -0
- package/dist/workspace-manifest/lib/schema.d.ts.map +1 -0
- package/dist/workspace-manifest/lib/schema.js +355 -0
- package/dist/workspace-manifest/lib/schema.js.map +1 -0
- package/dist/workspace-manifest/lib/types.d.ts +153 -0
- package/dist/workspace-manifest/lib/types.d.ts.map +1 -0
- package/dist/workspace-manifest/lib/types.js +10 -0
- package/dist/workspace-manifest/lib/types.js.map +1 -0
- package/package.json +79 -0
- package/schema/action.schema.json +181 -0
- package/schema/reusable-workflow.schema.json +46 -0
- package/schema/workflow.schema.json +373 -0
- package/src/deliverable-spec/index.ts +19 -0
- package/src/deliverable-spec/lib/schema.ts +248 -0
- package/src/deliverable-spec/lib/types.ts +26 -0
- package/src/payload-codec/index.ts +40 -0
- package/src/payload-codec/lib/blob-store.ts +0 -0
- package/src/payload-codec/lib/codec-context.ts +38 -0
- package/src/payload-codec/lib/codec.ts +593 -0
- package/src/payload-codec/lib/enums.ts +58 -0
- package/src/payload-codec/lib/errors.ts +54 -0
- package/src/payload-codec/lib/http-blob-store.ts +257 -0
- package/src/payload-codec/lib/lru-cache.ts +81 -0
- package/src/workflow/index.ts +98 -0
- package/src/workflow/lib/action-input-validator.ts +160 -0
- package/src/workflow/lib/compiler/action-shape.ts +71 -0
- package/src/workflow/lib/compiler/canonical-json.ts +53 -0
- package/src/workflow/lib/compiler/compile.ts +1518 -0
- package/src/workflow/lib/compiler/concurrency.ts +223 -0
- package/src/workflow/lib/compiler/dag.ts +108 -0
- package/src/workflow/lib/compiler/index.ts +10 -0
- package/src/workflow/lib/compiler/inputs.ts +199 -0
- package/src/workflow/lib/compiler/installation-resource-validator.ts +114 -0
- package/src/workflow/lib/compiler/manifest-source.ts +176 -0
- package/src/workflow/lib/compiler/matrix.ts +135 -0
- package/src/workflow/lib/compiler/mount-plan.ts +202 -0
- package/src/workflow/lib/compiler/payload-reach-in.ts +497 -0
- package/src/workflow/lib/compiler/permissions.ts +64 -0
- package/src/workflow/lib/compiler/retry-timeout.ts +105 -0
- package/src/workflow/lib/compiler/review-step.ts +517 -0
- package/src/workflow/lib/compiler/types.ts +170 -0
- package/src/workflow/lib/compiler/variable-requirements.ts +208 -0
- package/src/workflow/lib/deliverable-spec-keys.ts +109 -0
- package/src/workflow/lib/dispatch-inputs/index.ts +160 -0
- package/src/workflow/lib/dispatch-inputs/to-json-schema.ts +60 -0
- package/src/workflow/lib/duration.ts +48 -0
- package/src/workflow/lib/errors.ts +37 -0
- package/src/workflow/lib/expression/ast.ts +108 -0
- package/src/workflow/lib/expression/context.ts +148 -0
- package/src/workflow/lib/expression/evaluator.ts +492 -0
- package/src/workflow/lib/expression/index.ts +28 -0
- package/src/workflow/lib/expression/interpolation.ts +84 -0
- package/src/workflow/lib/expression/parser.ts +264 -0
- package/src/workflow/lib/expression/template.ts +117 -0
- package/src/workflow/lib/expression/tokenizer.ts +200 -0
- package/src/workflow/lib/expression/tokens.ts +30 -0
- package/src/workflow/lib/expression/walk-artifact-refs.ts +232 -0
- package/src/workflow/lib/installation-resource-kind.ts +107 -0
- package/src/workflow/lib/schemas-loader.ts +64 -0
- package/src/workflow/lib/serializer.ts +30 -0
- package/src/workflow/lib/types.ts +361 -0
- package/src/workflow/lib/validate.ts +199 -0
- package/src/workspace-manifest/index.ts +27 -0
- package/src/workspace-manifest/lib/compile.ts +608 -0
- package/src/workspace-manifest/lib/interpolate.ts +140 -0
- package/src/workspace-manifest/lib/resolve-extends.ts +260 -0
- package/src/workspace-manifest/lib/schema.ts +612 -0
- package/src/workspace-manifest/lib/types.ts +392 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../../../src/workflow/lib/serializer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAkBhD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CASvE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializeWorkflowDocument = serializeWorkflowDocument;
|
|
4
|
+
const js_yaml_1 = require("js-yaml");
|
|
5
|
+
function serializeWorkflowDocument(doc) {
|
|
6
|
+
return (0, js_yaml_1.dump)(doc, {
|
|
7
|
+
indent: 2,
|
|
8
|
+
lineWidth: 120,
|
|
9
|
+
noRefs: true,
|
|
10
|
+
sortKeys: false,
|
|
11
|
+
quotingType: '"',
|
|
12
|
+
forceQuotes: false,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=serializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../../src/workflow/lib/serializer.ts"],"names":[],"mappings":";;AAoBA,8DASC;AA7BD,qCAA2C;AAoB3C,SAAgB,yBAAyB,CAAC,GAAqB;IAC7D,OAAO,IAAA,cAAQ,EAAC,GAAyC,EAAE;QACzD,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,GAAG;QACd,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,KAAK;KACnB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import type { ConcurrencyMode, PermissionScope } from '@xemahq/kernel-contracts/workflow';
|
|
2
|
+
export interface WorkflowDocument {
|
|
3
|
+
readonly apiVersion: 'xema.dev/workflow/v1alpha1';
|
|
4
|
+
readonly kind: 'Workflow';
|
|
5
|
+
readonly metadata: WorkflowMetadata;
|
|
6
|
+
readonly on: WorkflowTriggerDeclarations;
|
|
7
|
+
readonly concurrency?: WorkflowConcurrencyDeclaration;
|
|
8
|
+
readonly defaults?: WorkflowDefaults;
|
|
9
|
+
readonly permissions?: WorkflowPermissions;
|
|
10
|
+
readonly vars?: Readonly<Record<string, unknown>>;
|
|
11
|
+
readonly requires?: WorkflowRequiresDeclaration;
|
|
12
|
+
readonly jobs: Readonly<Record<string, WorkflowJobDeclaration>>;
|
|
13
|
+
readonly outputs?: Readonly<Record<string, WorkflowOutputDeclaration>>;
|
|
14
|
+
}
|
|
15
|
+
export type WorkflowOutputDeclaration = WorkflowDeliverableOutputDeclaration | WorkflowStructuredOutputDeclaration | WorkflowTextOutputDeclaration;
|
|
16
|
+
interface WorkflowOutputDeclarationBase {
|
|
17
|
+
readonly slug: string;
|
|
18
|
+
readonly fromJob: string;
|
|
19
|
+
readonly fromOutput: string;
|
|
20
|
+
readonly description?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface WorkflowDeliverableOutputDeclaration extends WorkflowOutputDeclarationBase {
|
|
23
|
+
readonly kind: 'deliverable';
|
|
24
|
+
readonly deliverableSpecRef: string;
|
|
25
|
+
}
|
|
26
|
+
export interface WorkflowStructuredOutputDeclaration extends WorkflowOutputDeclarationBase {
|
|
27
|
+
readonly kind: 'structured';
|
|
28
|
+
readonly schemaRef?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface WorkflowTextOutputDeclaration extends WorkflowOutputDeclarationBase {
|
|
31
|
+
readonly kind: 'text';
|
|
32
|
+
}
|
|
33
|
+
export interface WorkflowRequiresDeclaration {
|
|
34
|
+
readonly wallets?: readonly string[];
|
|
35
|
+
readonly integrations?: readonly WorkflowIntegrationRequirement[];
|
|
36
|
+
}
|
|
37
|
+
export interface WorkflowIntegrationRequirement {
|
|
38
|
+
readonly adapterKind: string;
|
|
39
|
+
readonly capabilities: readonly string[];
|
|
40
|
+
readonly optional?: boolean;
|
|
41
|
+
}
|
|
42
|
+
export interface WorkflowMetadata {
|
|
43
|
+
readonly name: string;
|
|
44
|
+
readonly version: string;
|
|
45
|
+
readonly title?: string;
|
|
46
|
+
readonly description?: string;
|
|
47
|
+
readonly category?: string;
|
|
48
|
+
readonly tags?: readonly string[];
|
|
49
|
+
}
|
|
50
|
+
export interface WorkflowTriggerDeclarations {
|
|
51
|
+
readonly workflow_dispatch?: WorkflowDispatchDeclaration;
|
|
52
|
+
readonly schedule?: readonly ScheduleDeclaration[];
|
|
53
|
+
readonly webhook?: readonly WebhookDeclaration[];
|
|
54
|
+
readonly workflow_call?: WorkflowCallDeclaration;
|
|
55
|
+
}
|
|
56
|
+
export interface WorkflowDispatchDeclaration {
|
|
57
|
+
readonly inputs?: Readonly<Record<string, WorkflowInputDeclaration>>;
|
|
58
|
+
}
|
|
59
|
+
export interface ScheduleDeclaration {
|
|
60
|
+
readonly cron: string;
|
|
61
|
+
readonly timezone?: string;
|
|
62
|
+
readonly inputs?: Readonly<Record<string, unknown>>;
|
|
63
|
+
}
|
|
64
|
+
export interface WebhookDeclaration {
|
|
65
|
+
readonly event: string;
|
|
66
|
+
readonly secretRef?: string;
|
|
67
|
+
readonly filters?: Readonly<Record<string, string>>;
|
|
68
|
+
}
|
|
69
|
+
export interface WorkflowCallDeclaration {
|
|
70
|
+
readonly inputs?: Readonly<Record<string, WorkflowInputDeclaration>>;
|
|
71
|
+
readonly outputs?: Readonly<Record<string, string>>;
|
|
72
|
+
}
|
|
73
|
+
export interface WorkflowInputDeclaration {
|
|
74
|
+
readonly type: 'string' | 'number' | 'integer' | 'boolean' | 'object' | 'array';
|
|
75
|
+
readonly required?: boolean;
|
|
76
|
+
readonly default?: unknown;
|
|
77
|
+
readonly description?: string;
|
|
78
|
+
readonly enum?: readonly unknown[];
|
|
79
|
+
readonly items?: Readonly<Record<string, unknown>>;
|
|
80
|
+
}
|
|
81
|
+
export interface WorkflowConcurrencyDeclaration {
|
|
82
|
+
readonly group: string;
|
|
83
|
+
readonly mode: ConcurrencyMode;
|
|
84
|
+
}
|
|
85
|
+
export interface WorkflowDefaults {
|
|
86
|
+
readonly retry?: WorkflowRetryDeclaration;
|
|
87
|
+
readonly timeout?: string;
|
|
88
|
+
}
|
|
89
|
+
export interface WorkflowRetryDeclaration {
|
|
90
|
+
readonly maxAttempts?: number;
|
|
91
|
+
readonly initialInterval?: string;
|
|
92
|
+
readonly backoffCoefficient?: number;
|
|
93
|
+
readonly maximumInterval?: string;
|
|
94
|
+
readonly nonRetryableErrorTypes?: readonly string[];
|
|
95
|
+
}
|
|
96
|
+
export type WorkflowPermissions = Partial<Record<'repos' | 'kb' | 'backlog' | 'integrations' | 'artifacts' | 'memory', PermissionScope>>;
|
|
97
|
+
export interface WorkflowJobDeclaration {
|
|
98
|
+
readonly title?: string;
|
|
99
|
+
readonly needs?: readonly string[];
|
|
100
|
+
readonly if?: string;
|
|
101
|
+
readonly strategy?: WorkflowStrategyDeclaration;
|
|
102
|
+
readonly matrixGather?: readonly string[];
|
|
103
|
+
readonly uses: string;
|
|
104
|
+
readonly with?: Readonly<Record<string, unknown>>;
|
|
105
|
+
readonly outputs?: Readonly<Record<string, string>>;
|
|
106
|
+
readonly retry?: WorkflowRetryDeclaration;
|
|
107
|
+
readonly timeout?: string;
|
|
108
|
+
readonly permissions?: WorkflowPermissions;
|
|
109
|
+
}
|
|
110
|
+
export type WorkflowStrategyDeclaration = {
|
|
111
|
+
readonly matrix: Readonly<Record<string, readonly unknown[]>>;
|
|
112
|
+
readonly maxParallel?: number;
|
|
113
|
+
} | {
|
|
114
|
+
readonly dynamic: WorkflowDynamicStrategyDeclaration;
|
|
115
|
+
readonly maxParallel?: number;
|
|
116
|
+
};
|
|
117
|
+
export interface WorkflowDynamicStrategyDeclaration {
|
|
118
|
+
readonly from: string;
|
|
119
|
+
readonly as: string;
|
|
120
|
+
readonly maxEntries?: number;
|
|
121
|
+
readonly keyBy?: string;
|
|
122
|
+
}
|
|
123
|
+
export interface ActionManifest {
|
|
124
|
+
readonly apiVersion: 'xema.dev/workflow/v1alpha1';
|
|
125
|
+
readonly kind: 'Action';
|
|
126
|
+
readonly metadata: ActionManifestMetadata;
|
|
127
|
+
readonly spec: ActionManifestSpec;
|
|
128
|
+
}
|
|
129
|
+
export interface ActionManifestMetadata {
|
|
130
|
+
readonly id: string;
|
|
131
|
+
readonly version: string;
|
|
132
|
+
readonly title?: string;
|
|
133
|
+
readonly description?: string;
|
|
134
|
+
}
|
|
135
|
+
export interface ActionManifestSpec {
|
|
136
|
+
readonly executionKind: 'activity' | 'child_workflow';
|
|
137
|
+
readonly taskQueue: 'xema_default' | 'xema_agent' | 'xema_human';
|
|
138
|
+
readonly actionKind?: 'agent' | 'review' | 'wait' | 'timer' | 'aggregate' | 'dispatch' | 'branch' | 'loop' | 'publish' | 'notify' | 'inquiry' | 'fetch' | 'transform' | 'validate' | 'terminate' | 'generic';
|
|
139
|
+
readonly inputs: Readonly<Record<string, unknown>>;
|
|
140
|
+
readonly outputs: Readonly<Record<string, unknown>>;
|
|
141
|
+
readonly outputBindings?: Readonly<Record<string, ActionOutputBinding>>;
|
|
142
|
+
readonly permissions?: WorkflowPermissions;
|
|
143
|
+
readonly allowedMounts?: readonly string[];
|
|
144
|
+
readonly retryDefaults: ActionManifestRetryDefaults;
|
|
145
|
+
readonly timeoutDefaults: ActionManifestTimeoutDefaults;
|
|
146
|
+
readonly auditEventMapping?: Partial<{
|
|
147
|
+
started: string;
|
|
148
|
+
succeeded: string;
|
|
149
|
+
failed: string;
|
|
150
|
+
}>;
|
|
151
|
+
readonly consumes?: readonly ActionContract[];
|
|
152
|
+
}
|
|
153
|
+
export interface ActionOutputBinding {
|
|
154
|
+
readonly deliverableSpecRef?: string;
|
|
155
|
+
}
|
|
156
|
+
export type ActionContract = WorkspaceManifestActionContract | AgentCompositionActionContract;
|
|
157
|
+
export interface WorkspaceManifestActionContract {
|
|
158
|
+
readonly kind: 'workspace-manifest';
|
|
159
|
+
readonly version: 'v1';
|
|
160
|
+
readonly surfaces?: readonly ('workflow' | 'agent-session')[];
|
|
161
|
+
readonly roleHint?: string;
|
|
162
|
+
}
|
|
163
|
+
export interface AgentCompositionActionContract {
|
|
164
|
+
readonly kind: 'agent-composition';
|
|
165
|
+
readonly version: 'v1';
|
|
166
|
+
}
|
|
167
|
+
export interface ActionManifestRetryDefaults {
|
|
168
|
+
readonly maxAttempts: number;
|
|
169
|
+
readonly initialInterval: string;
|
|
170
|
+
readonly backoffCoefficient: number;
|
|
171
|
+
readonly maximumInterval: string;
|
|
172
|
+
readonly nonRetryableErrorTypes?: readonly string[];
|
|
173
|
+
}
|
|
174
|
+
export interface ActionManifestTimeoutDefaults {
|
|
175
|
+
readonly startToClose: string;
|
|
176
|
+
readonly heartbeat?: string;
|
|
177
|
+
}
|
|
178
|
+
export {};
|
|
179
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/workflow/lib/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/workflow/lib/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ActionManifest, WorkflowDocument } from './types';
|
|
2
|
+
export declare function parseAndValidateWorkflowYaml(yaml: string): WorkflowDocument;
|
|
3
|
+
export declare function parseAndValidateReusableWorkflowYaml(yaml: string): WorkflowDocument;
|
|
4
|
+
export declare function parseAndValidateActionYaml(yaml: string): ActionManifest;
|
|
5
|
+
export declare function validateWorkflowDocument(doc: unknown): WorkflowDocument;
|
|
6
|
+
export declare function validateReusableWorkflowDocument(doc: unknown): WorkflowDocument;
|
|
7
|
+
export declare function validateActionManifest(doc: unknown): ActionManifest;
|
|
8
|
+
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/workflow/lib/validate.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAmEhE,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAE3E;AAMD,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAEnF;AAGD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAEvE;AAOD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAKvE;AAED,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAK/E;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAEnE"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.parseAndValidateWorkflowYaml = parseAndValidateWorkflowYaml;
|
|
7
|
+
exports.parseAndValidateReusableWorkflowYaml = parseAndValidateReusableWorkflowYaml;
|
|
8
|
+
exports.parseAndValidateActionYaml = parseAndValidateActionYaml;
|
|
9
|
+
exports.validateWorkflowDocument = validateWorkflowDocument;
|
|
10
|
+
exports.validateReusableWorkflowDocument = validateReusableWorkflowDocument;
|
|
11
|
+
exports.validateActionManifest = validateActionManifest;
|
|
12
|
+
const _2020_1 = __importDefault(require("ajv/dist/2020"));
|
|
13
|
+
const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
14
|
+
const js_yaml_1 = require("js-yaml");
|
|
15
|
+
const workflow_1 = require("@xemahq/kernel-contracts/workflow");
|
|
16
|
+
const errors_1 = require("./errors");
|
|
17
|
+
const schemas_loader_1 = require("./schemas-loader");
|
|
18
|
+
const ajv = new _2020_1.default({
|
|
19
|
+
strict: true,
|
|
20
|
+
strictSchema: true,
|
|
21
|
+
strictTypes: true,
|
|
22
|
+
strictRequired: false,
|
|
23
|
+
strictTuples: true,
|
|
24
|
+
allErrors: true,
|
|
25
|
+
allowUnionTypes: false,
|
|
26
|
+
useDefaults: false,
|
|
27
|
+
validateFormats: true,
|
|
28
|
+
});
|
|
29
|
+
(0, ajv_formats_1.default)(ajv);
|
|
30
|
+
ajv.addSchema(schemas_loader_1.WORKFLOW_SCHEMA);
|
|
31
|
+
ajv.addSchema(schemas_loader_1.REUSABLE_WORKFLOW_SCHEMA);
|
|
32
|
+
ajv.addSchema(schemas_loader_1.ACTION_SCHEMA);
|
|
33
|
+
const validateWorkflow = compile('https://xema.dev/schemas/workflow/v1alpha1/Workflow.json');
|
|
34
|
+
const validateReusableWorkflow = compile('https://xema.dev/schemas/workflow/v1alpha1/ReusableWorkflow.json');
|
|
35
|
+
const validateAction = compile('https://xema.dev/schemas/workflow/v1alpha1/Action.json');
|
|
36
|
+
function compile(schemaId) {
|
|
37
|
+
const fn = ajv.getSchema(schemaId);
|
|
38
|
+
if (!fn) {
|
|
39
|
+
throw new errors_1.WorkflowDslError(workflow_1.WorkflowErrorCode.COMPILE_INTERNAL, `Ajv failed to compile schema ${schemaId}. Schema registration order is wrong.`, { schemaId });
|
|
40
|
+
}
|
|
41
|
+
return fn;
|
|
42
|
+
}
|
|
43
|
+
function parseAndValidateWorkflowYaml(yaml) {
|
|
44
|
+
return parseAndValidate(yaml, validateWorkflow, 'workflow');
|
|
45
|
+
}
|
|
46
|
+
function parseAndValidateReusableWorkflowYaml(yaml) {
|
|
47
|
+
return parseAndValidate(yaml, validateReusableWorkflow, 'reusable-workflow');
|
|
48
|
+
}
|
|
49
|
+
function parseAndValidateActionYaml(yaml) {
|
|
50
|
+
return parseAndValidate(yaml, validateAction, 'action');
|
|
51
|
+
}
|
|
52
|
+
function validateWorkflowDocument(doc) {
|
|
53
|
+
if (doc !== null && typeof doc === 'object' && !Array.isArray(doc)) {
|
|
54
|
+
normalizeJobNeedsShorthand(doc);
|
|
55
|
+
}
|
|
56
|
+
return runValidator(doc, validateWorkflow, 'workflow');
|
|
57
|
+
}
|
|
58
|
+
function validateReusableWorkflowDocument(doc) {
|
|
59
|
+
if (doc !== null && typeof doc === 'object' && !Array.isArray(doc)) {
|
|
60
|
+
normalizeJobNeedsShorthand(doc);
|
|
61
|
+
}
|
|
62
|
+
return runValidator(doc, validateReusableWorkflow, 'reusable-workflow');
|
|
63
|
+
}
|
|
64
|
+
function validateActionManifest(doc) {
|
|
65
|
+
return runValidator(doc, validateAction, 'action');
|
|
66
|
+
}
|
|
67
|
+
function parseAndValidate(yaml, validator, kind) {
|
|
68
|
+
let parsed;
|
|
69
|
+
try {
|
|
70
|
+
parsed = (0, js_yaml_1.load)(yaml, { schema: undefined, json: false });
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
throw new errors_1.WorkflowDslError(workflow_1.WorkflowErrorCode.DSL_SCHEMA_INVALID, `YAML parse failure in ${kind} document: ${err.message}`, { kind });
|
|
74
|
+
}
|
|
75
|
+
if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
76
|
+
throw new errors_1.WorkflowDslError(workflow_1.WorkflowErrorCode.DSL_SCHEMA_INVALID, `Top-level YAML value in ${kind} document must be a mapping.`, { kind });
|
|
77
|
+
}
|
|
78
|
+
if (kind !== 'action') {
|
|
79
|
+
normalizeJobNeedsShorthand(parsed);
|
|
80
|
+
}
|
|
81
|
+
return runValidator(parsed, validator, kind);
|
|
82
|
+
}
|
|
83
|
+
function normalizeJobNeedsShorthand(doc) {
|
|
84
|
+
const jobs = doc.jobs;
|
|
85
|
+
if (!jobs || typeof jobs !== 'object' || Array.isArray(jobs))
|
|
86
|
+
return;
|
|
87
|
+
for (const job of Object.values(jobs)) {
|
|
88
|
+
if (!job || typeof job !== 'object' || Array.isArray(job))
|
|
89
|
+
continue;
|
|
90
|
+
const rec = job;
|
|
91
|
+
if (typeof rec.needs === 'string') {
|
|
92
|
+
rec.needs = [rec.needs];
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function runValidator(doc, validator, kind) {
|
|
97
|
+
if (validator(doc)) {
|
|
98
|
+
return doc;
|
|
99
|
+
}
|
|
100
|
+
const errors = validator.errors ?? [];
|
|
101
|
+
throw new errors_1.WorkflowDslError(workflow_1.WorkflowErrorCode.DSL_SCHEMA_INVALID, `Schema validation failed for ${kind} document: ${formatErrors(errors)}`, { kind, issues: errors.map(formatIssue) });
|
|
102
|
+
}
|
|
103
|
+
function formatIssue(err) {
|
|
104
|
+
return {
|
|
105
|
+
instancePath: err.instancePath,
|
|
106
|
+
schemaPath: err.schemaPath,
|
|
107
|
+
keyword: err.keyword,
|
|
108
|
+
message: err.message ?? '',
|
|
109
|
+
params: err.params,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
function formatErrors(errors) {
|
|
113
|
+
if (errors.length === 0)
|
|
114
|
+
return '(no detail)';
|
|
115
|
+
return errors
|
|
116
|
+
.map((e) => `${e.instancePath || '/'} ${e.message ?? ''} [${e.keyword}]`.trim())
|
|
117
|
+
.join('; ');
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/workflow/lib/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workspace-manifest/index.ts"],"names":[],"mappings":"AAsBA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./lib/types"), exports);
|
|
18
|
+
__exportStar(require("./lib/schema"), exports);
|
|
19
|
+
__exportStar(require("./lib/interpolate"), exports);
|
|
20
|
+
__exportStar(require("./lib/compile"), exports);
|
|
21
|
+
__exportStar(require("./lib/resolve-extends"), exports);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workspace-manifest/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAsBA,8CAA4B;AAC5B,+CAA6B;AAC7B,oDAAkC;AAClC,gDAA8B;AAC9B,wDAAsC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CompileResult } from './types';
|
|
2
|
+
export declare function compileManifest(input: string | unknown, bindInputs?: Readonly<Record<string, unknown>>, options?: Readonly<CompileManifestOptions>): CompileResult;
|
|
3
|
+
type InputResolutionMode = 'strict' | 'deferred';
|
|
4
|
+
export interface CompileManifestOptions {
|
|
5
|
+
readonly inputResolutionMode?: InputResolutionMode;
|
|
6
|
+
}
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=compile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../../src/workspace-manifest/lib/compile.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EACV,aAAa,EAQd,MAAM,SAAS,CAAC;AAiCjB,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,GAAG,OAAO,EACvB,UAAU,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM,EAClD,OAAO,GAAE,QAAQ,CAAC,sBAAsB,CAAM,GAC7C,aAAa,CAqEf;AAiQD,KAAK,mBAAmB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEjD,MAAM,WAAW,sBAAsB;IAMrC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CACpD"}
|