@skaile/workspaces 2.1.0 → 2.2.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.
Files changed (153) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +26 -0
  3. package/dist/{asset-feeds-FBGBQEYD.js → asset-feeds-D2LOXTOS.js} +9 -9
  4. package/dist/{asset-feeds-FBGBQEYD.js.map → asset-feeds-D2LOXTOS.js.map} +1 -1
  5. package/dist/asset-manager/catalog-deployer.js +5 -5
  6. package/dist/asset-manager/index.js +9 -9
  7. package/dist/asset-manager/installer.js +6 -6
  8. package/dist/bridge/drivers/claude-sdk.js +6 -6
  9. package/dist/bridge/drivers/codex.js +1 -1
  10. package/dist/bridge/drivers/continue.js +2 -2
  11. package/dist/bridge/drivers/echo.js +1 -1
  12. package/dist/bridge/drivers/gemini.js +3 -3
  13. package/dist/bridge/drivers/goose.js +2 -2
  14. package/dist/bridge/drivers/omp.js +1 -1
  15. package/dist/bridge/drivers/opencode.js +2 -2
  16. package/dist/bridge/drivers/qwen.js +3 -3
  17. package/dist/bridge/index.js +2 -2
  18. package/dist/{chunk-MLYV6WEM.js → chunk-5BH6ZEGC.js} +9 -9
  19. package/dist/{chunk-MLYV6WEM.js.map → chunk-5BH6ZEGC.js.map} +1 -1
  20. package/dist/{chunk-RTLQAZAE.js → chunk-63ZPKREA.js} +3 -3
  21. package/dist/{chunk-RTLQAZAE.js.map → chunk-63ZPKREA.js.map} +1 -1
  22. package/dist/{chunk-ZWFLEMI4.js → chunk-6HPTB6KT.js} +4 -4
  23. package/dist/{chunk-ZWFLEMI4.js.map → chunk-6HPTB6KT.js.map} +1 -1
  24. package/dist/{chunk-43TAGQ3Z.js → chunk-6I5VRIX3.js} +8 -8
  25. package/dist/{chunk-43TAGQ3Z.js.map → chunk-6I5VRIX3.js.map} +1 -1
  26. package/dist/{chunk-HOL5KD7U.js → chunk-6QSGCHE5.js} +5 -5
  27. package/dist/{chunk-HOL5KD7U.js.map → chunk-6QSGCHE5.js.map} +1 -1
  28. package/dist/{chunk-XSIXGVH6.js → chunk-A67FJ4YT.js} +4 -4
  29. package/dist/{chunk-XSIXGVH6.js.map → chunk-A67FJ4YT.js.map} +1 -1
  30. package/dist/{chunk-XQVP6XWR.js → chunk-BFIK6NPZ.js} +3 -3
  31. package/dist/{chunk-XQVP6XWR.js.map → chunk-BFIK6NPZ.js.map} +1 -1
  32. package/dist/{chunk-SGLGA2AZ.js → chunk-BUPFJFGP.js} +3 -3
  33. package/dist/{chunk-SGLGA2AZ.js.map → chunk-BUPFJFGP.js.map} +1 -1
  34. package/dist/{chunk-CTWE7I7Z.js → chunk-CERGXDGG.js} +4 -4
  35. package/dist/{chunk-CTWE7I7Z.js.map → chunk-CERGXDGG.js.map} +1 -1
  36. package/dist/{chunk-N6TYW6EB.js → chunk-DHGMYXOY.js} +4 -4
  37. package/dist/{chunk-N6TYW6EB.js.map → chunk-DHGMYXOY.js.map} +1 -1
  38. package/dist/{chunk-VPXBAEWE.js → chunk-GPMIXOJJ.js} +8 -8
  39. package/dist/{chunk-VPXBAEWE.js.map → chunk-GPMIXOJJ.js.map} +1 -1
  40. package/dist/{chunk-GUKMNUQK.js → chunk-I5ESMJMW.js} +2 -2
  41. package/dist/{chunk-GUKMNUQK.js.map → chunk-I5ESMJMW.js.map} +1 -1
  42. package/dist/{chunk-Y6VSFX2A.js → chunk-IR6VPAVH.js} +3 -3
  43. package/dist/{chunk-Y6VSFX2A.js.map → chunk-IR6VPAVH.js.map} +1 -1
  44. package/dist/{chunk-WVPL4OGD.js → chunk-KGIVZOLU.js} +2 -2
  45. package/dist/{chunk-WVPL4OGD.js.map → chunk-KGIVZOLU.js.map} +1 -1
  46. package/dist/{chunk-L26NGI43.js → chunk-MAIKGYFR.js} +2 -2
  47. package/dist/{chunk-L26NGI43.js.map → chunk-MAIKGYFR.js.map} +1 -1
  48. package/dist/{chunk-YODP3STD.js → chunk-Q26C5GLO.js} +3 -3
  49. package/dist/{chunk-YODP3STD.js.map → chunk-Q26C5GLO.js.map} +1 -1
  50. package/dist/{chunk-PYYL5XMA.js → chunk-RKMXBOIO.js} +3 -3
  51. package/dist/{chunk-PYYL5XMA.js.map → chunk-RKMXBOIO.js.map} +1 -1
  52. package/dist/{chunk-2BSXXTUP.js → chunk-SZJCUC52.js} +5 -5
  53. package/dist/{chunk-2BSXXTUP.js.map → chunk-SZJCUC52.js.map} +1 -1
  54. package/dist/{chunk-RBOPTTTK.js → chunk-TQIU4HQG.js} +10 -10
  55. package/dist/{chunk-RBOPTTTK.js.map → chunk-TQIU4HQG.js.map} +1 -1
  56. package/dist/{chunk-5BGEYZ7I.js → chunk-UFY2HFLO.js} +3 -3
  57. package/dist/{chunk-5BGEYZ7I.js.map → chunk-UFY2HFLO.js.map} +1 -1
  58. package/dist/{chunk-BTR3ZJ7S.js → chunk-VSSAJYFK.js} +4 -4
  59. package/dist/{chunk-BTR3ZJ7S.js.map → chunk-VSSAJYFK.js.map} +1 -1
  60. package/dist/{chunk-PSVF3LDU.js → chunk-WA7ADYSA.js} +4 -4
  61. package/dist/{chunk-PSVF3LDU.js.map → chunk-WA7ADYSA.js.map} +1 -1
  62. package/dist/{chunk-BHLNQ4L5.js → chunk-ZNIHTT22.js} +3 -3
  63. package/dist/{chunk-BHLNQ4L5.js.map → chunk-ZNIHTT22.js.map} +1 -1
  64. package/dist/cli/index.js +49 -49
  65. package/dist/connectors/config.js +6 -6
  66. package/dist/connectors/index.js +8 -8
  67. package/dist/core/index.js +5 -5
  68. package/dist/core/runtime-assets.js +3 -3
  69. package/dist/core/workspace-config.js +2 -2
  70. package/dist/deploy/index.js +5 -5
  71. package/dist/{ensure-sources-AVCVX7CV.js → ensure-sources-6QMXRI6D.js} +12 -12
  72. package/dist/{ensure-sources-AVCVX7CV.js.map → ensure-sources-6QMXRI6D.js.map} +1 -1
  73. package/dist/factory-assets/connectors/box.js +8 -8
  74. package/dist/factory-assets/connectors/deploy.js +8 -8
  75. package/dist/factory-assets/connectors/devserver.js +8 -8
  76. package/dist/factory-assets/connectors/flow/adapter.js +8 -8
  77. package/dist/factory-assets/connectors/flow/contract/expression.d.ts +46 -0
  78. package/dist/factory-assets/connectors/flow/contract/expression.d.ts.map +1 -0
  79. package/dist/factory-assets/connectors/flow/contract/flow.v2.schema.json +948 -0
  80. package/dist/factory-assets/connectors/flow/contract/hash.d.ts +6 -0
  81. package/dist/factory-assets/connectors/flow/contract/hash.d.ts.map +1 -0
  82. package/dist/factory-assets/connectors/flow/contract/index.d.ts +6 -0
  83. package/dist/factory-assets/connectors/flow/contract/index.d.ts.map +1 -0
  84. package/dist/factory-assets/connectors/flow/contract/json-schema.d.ts +6 -0
  85. package/dist/factory-assets/connectors/flow/contract/json-schema.d.ts.map +1 -0
  86. package/dist/factory-assets/connectors/flow/contract/normalize.d.ts +35 -0
  87. package/dist/factory-assets/connectors/flow/contract/normalize.d.ts.map +1 -0
  88. package/dist/factory-assets/connectors/flow/contract/schema.d.ts +364 -0
  89. package/dist/factory-assets/connectors/flow/contract/schema.d.ts.map +1 -0
  90. package/dist/factory-assets/connectors/flow/contract.d.ts +2 -0
  91. package/dist/factory-assets/connectors/flow/contract.js +1027 -0
  92. package/dist/factory-assets/connectors/flow/contract.js.map +1 -0
  93. package/dist/factory-assets/connectors/flow/engine.js +5 -5
  94. package/dist/factory-assets/connectors/flow/run-flow.js +9 -9
  95. package/dist/factory-assets/connectors/flow.js +8 -8
  96. package/dist/factory-assets/connectors/git.js +8 -8
  97. package/dist/factory-assets/connectors/gmail.js +8 -8
  98. package/dist/factory-assets/connectors/googledrive.js +8 -8
  99. package/dist/factory-assets/connectors/local.js +8 -8
  100. package/dist/factory-assets/connectors/mattermost.js +8 -8
  101. package/dist/factory-assets/connectors/memory.js +8 -8
  102. package/dist/factory-assets/connectors/minio.js +8 -8
  103. package/dist/factory-assets/connectors/postgres.js +8 -8
  104. package/dist/factory-assets/connectors/s3.js +8 -8
  105. package/dist/factory-assets/connectors/sharepoint.js +8 -8
  106. package/dist/factory-assets/connectors/sqlite.js +8 -8
  107. package/dist/factory-assets/connectors/static-server.js +8 -8
  108. package/dist/factory-assets/connectors/tunnel.js +8 -8
  109. package/dist/factory-assets/connectors/webdav.js +8 -8
  110. package/dist/factory-assets/connectors/xstate-store.js +8 -8
  111. package/dist/factory-assets/connectors/xstate.js +8 -8
  112. package/dist/{flows-CXVFGR27.js → flows-TDDBCLNF.js} +8 -8
  113. package/dist/{flows-CXVFGR27.js.map → flows-TDDBCLNF.js.map} +1 -1
  114. package/dist/{helpers-M5SXB4LL.js → helpers-COQ7TDD4.js} +12 -12
  115. package/dist/{helpers-M5SXB4LL.js.map → helpers-COQ7TDD4.js.map} +1 -1
  116. package/dist/library/index.js +7 -7
  117. package/dist/library/install.js +5 -5
  118. package/dist/{library-publish-HVIIQMI6.js → library-publish-SNPER6PO.js} +15 -15
  119. package/dist/{library-publish-HVIIQMI6.js.map → library-publish-SNPER6PO.js.map} +1 -1
  120. package/dist/{open-library-EJQISBWV.js → open-library-VH2VEYQ7.js} +13 -13
  121. package/dist/{open-library-EJQISBWV.js.map → open-library-VH2VEYQ7.js.map} +1 -1
  122. package/dist/{paths-2HMHL25W.js → paths-XZA22IB4.js} +10 -10
  123. package/dist/{paths-2HMHL25W.js.map → paths-XZA22IB4.js.map} +1 -1
  124. package/dist/{plugin-store-TLBQ5XRS.js → plugin-store-CYSNVZIX.js} +7 -7
  125. package/dist/{plugin-store-TLBQ5XRS.js.map → plugin-store-CYSNVZIX.js.map} +1 -1
  126. package/dist/{project-M2COJFPZ.js → project-FKL7PMJV.js} +13 -13
  127. package/dist/{project-M2COJFPZ.js.map → project-FKL7PMJV.js.map} +1 -1
  128. package/dist/resolver/index.js +5 -5
  129. package/dist/runner/index.js +13 -13
  130. package/dist/sdk/asset-manager.js +9 -9
  131. package/dist/sdk/bridge.js +2 -2
  132. package/dist/sdk/core.js +5 -5
  133. package/dist/sdk/flow.js +5 -5
  134. package/dist/sdk/index.js +13 -13
  135. package/dist/sdk/resolver.js +5 -5
  136. package/dist/sdk/runner.js +13 -13
  137. package/dist/sdk/transport/ws.js +1 -1
  138. package/dist/sdk/transport.js +1 -1
  139. package/dist/{setup-GWXEG3G2.js → setup-BM6HMYJJ.js} +9 -9
  140. package/dist/{setup-GWXEG3G2.js.map → setup-BM6HMYJJ.js.map} +1 -1
  141. package/dist/{skills-YTMGG23D.js → skills-LHS4TOKK.js} +7 -7
  142. package/dist/{skills-YTMGG23D.js.map → skills-LHS4TOKK.js.map} +1 -1
  143. package/dist/{source-WMXH2OBW.js → source-JIUBJC4F.js} +14 -14
  144. package/dist/{source-WMXH2OBW.js.map → source-JIUBJC4F.js.map} +1 -1
  145. package/dist/{source-manifest-publish-MTHUGBAY.js → source-manifest-publish-TLH6UWWU.js} +16 -16
  146. package/dist/{source-manifest-publish-MTHUGBAY.js.map → source-manifest-publish-TLH6UWWU.js.map} +1 -1
  147. package/dist/transport/index.js +1 -1
  148. package/dist/transport/ws.js +1 -1
  149. package/dist/tui/index.js +13 -13
  150. package/dist/workspace-plugin/adapters/mcp.js +6 -6
  151. package/dist/workspace-plugin/adapters/omp.js +7 -7
  152. package/dist/workspace-plugin/index.js +1 -1
  153. package/package.json +18 -1
@@ -0,0 +1,6 @@
1
+ import type { ParsedFlowDefinition } from "./normalize.js";
2
+ /** Gives equivalent definitions identical bytes while preserving content-significant array order. */
3
+ export declare function canonicalizeFlowDefinition(definition: ParsedFlowDefinition): string;
4
+ /** Creates a browser-safe content identity for caching, pinning, and change detection. */
5
+ export declare function hashFlowDefinition(definition: ParsedFlowDefinition): Promise<string>;
6
+ //# sourceMappingURL=hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../../../../factory-assets/connectors/flow/contract/hash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAwE3D,qGAAqG;AACrG,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,oBAAoB,GAAG,MAAM,CAEnF;AAED,0FAA0F;AAC1F,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAI1F"}
@@ -0,0 +1,6 @@
1
+ export { FlowDefinitionSchema, type FlowAssetRef, type FlowDefinition, type FlowEdge, type FlowInputContract, type FlowNode, type FlowNodeBindings, type FlowNodeContract, type FlowNodeControl, type FlowNodeKind, type FlowNodePrecondition, type FlowNodeRun, type FlowOutputContract, type FlowRoute, } from "./schema.js";
2
+ export { normalizeV1, parseFlowDefinition, type FlowDefinitionIssue, type FlowDefinitionParseResult, type LegacyCompatibilityEdge, type ParsedFlowDefinition, } from "./normalize.js";
3
+ export { evaluate, evaluateFlowExpression, FLOW_EXPRESSION_LIMITS, FlowExpressionError, type FlowExpressionContext, } from "./expression.js";
4
+ export { canonicalizeFlowDefinition, hashFlowDefinition } from "./hash.js";
5
+ export { FLOW_DEFINITION_JSON_SCHEMA_ID, generateFlowDefinitionJsonSchema, } from "./json-schema.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../factory-assets/connectors/flow/contract/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,SAAS,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,QAAQ,EACR,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,qBAAqB,GAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,EACL,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import * as z from "zod";
2
+ /** Canonical URI editors can use to identify the published Flow v2 vocabulary. */
3
+ export declare const FLOW_DEFINITION_JSON_SCHEMA_ID = "https://skaile.ai/schemas/flow/v2.json";
4
+ /** Keeps editor tooling downstream of Zod so the checked-in artifact cannot become an authority. */
5
+ export declare function generateFlowDefinitionJsonSchema(): z.core.JSONSchema.JSONSchema;
6
+ //# sourceMappingURL=json-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../../../../../factory-assets/connectors/flow/contract/json-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAGzB,kFAAkF;AAClF,eAAO,MAAM,8BAA8B,2CAA2C,CAAC;AAEvF,oGAAoG;AACpG,wBAAgB,gCAAgC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAS/E"}
@@ -0,0 +1,35 @@
1
+ import { type FlowDefinition } from "./schema.js";
2
+ /** Stable authored-path failure returned without exposing Zod as part of the public boundary. */
3
+ export interface FlowDefinitionIssue {
4
+ /** Dot-separated authored-data path; the empty string identifies the root. */
5
+ path: string;
6
+ /** Human-readable reason the value failed contract validation. */
7
+ message: string;
8
+ }
9
+ /** Inert legacy edge retained for round-tripping outside the closed authored-v2 vocabulary. */
10
+ export type LegacyCompatibilityEdge = {
11
+ id: string;
12
+ source: string;
13
+ target: string;
14
+ type: string;
15
+ } & Record<string, unknown>;
16
+ /** Normalized content whose nodes are strict v2 while inert legacy edges remain lossless. */
17
+ export type ParsedFlowDefinition = Omit<FlowDefinition, "edges"> & {
18
+ edges: Array<FlowDefinition["edges"][number] | LegacyCompatibilityEdge>;
19
+ };
20
+ /** Normalized authoring or compatibility content, or complete authored-path failures. */
21
+ export type FlowDefinitionParseResult = {
22
+ ok: true;
23
+ data: ParsedFlowDefinition;
24
+ } | {
25
+ ok: false;
26
+ errors: FlowDefinitionIssue[];
27
+ };
28
+ /**
29
+ * Converts a recognized v1 definition to strict v2 without mutating the authored input.
30
+ * Non-executable legacy nodes become inert placeholders so dependency and terminal semantics survive.
31
+ */
32
+ export declare function normalizeV1(data: unknown): FlowDefinitionParseResult;
33
+ /** Protects version intent: only an absent own schema version permits compatibility normalization. */
34
+ export declare function parseFlowDefinition(data: unknown): FlowDefinitionParseResult;
35
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../../../factory-assets/connectors/flow/contract/normalize.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAqDrB,iGAAiG;AACjG,MAAM,WAAW,mBAAmB;IAClC,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,+FAA+F;AAC/F,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B,6FAA6F;AAC7F,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG;IACjE,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,uBAAuB,CAAC,CAAC;CACzE,CAAC;AAEF,yFAAyF;AACzF,MAAM,MAAM,yBAAyB,GACjC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,oBAAoB,CAAA;CAAE,GACxC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,mBAAmB,EAAE,CAAA;CAAE,CAAC;AAgFjD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,yBAAyB,CAuHpE;AAED,sGAAsG;AACtG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,yBAAyB,CAM5E"}
@@ -0,0 +1,364 @@
1
+ import * as z from "zod";
2
+ /** Validates normalized field shapes without applying authored-v2 graph semantics. */
3
+ export declare function parseFlowDefinitionStructure(data: unknown): z.ZodSafeParseResult<{
4
+ schemaVersion: 2;
5
+ id: string;
6
+ version: string;
7
+ name: string;
8
+ nodes: {
9
+ id: string;
10
+ label: string;
11
+ description: string;
12
+ run: {
13
+ kind: "agent";
14
+ instruction: string;
15
+ assets?: string[] | undefined;
16
+ } | {
17
+ kind: "subprompt";
18
+ instruction: string;
19
+ assets?: string[] | undefined;
20
+ model?: string | undefined;
21
+ } | {
22
+ command: string;
23
+ kind: "function";
24
+ assets?: string[] | undefined;
25
+ runtime?: "node" | "shell" | "python" | undefined;
26
+ cwd?: string | undefined;
27
+ successExit?: number[] | undefined;
28
+ capture?: {
29
+ stdout?: string | undefined;
30
+ stderr?: string | undefined;
31
+ } | undefined;
32
+ } | {
33
+ command: string;
34
+ kind: "check";
35
+ onFail: "fail" | "escalate";
36
+ assets?: string[] | undefined;
37
+ runtime?: "node" | "shell" | "python" | undefined;
38
+ cwd?: string | undefined;
39
+ successExit?: number[] | undefined;
40
+ capture?: {
41
+ stdout?: string | undefined;
42
+ stderr?: string | undefined;
43
+ } | undefined;
44
+ } | {
45
+ kind: "gate";
46
+ prompt: string;
47
+ schema: {
48
+ kind: "text";
49
+ multiline?: boolean | undefined;
50
+ } | {
51
+ kind: "choice";
52
+ options: {
53
+ id: string;
54
+ label: string;
55
+ description?: string | undefined;
56
+ }[];
57
+ multiple?: boolean | undefined;
58
+ } | {
59
+ kind: "form";
60
+ fields: {
61
+ id: string;
62
+ label: string;
63
+ type: "number" | "boolean" | "text" | "file" | "choice" | "textarea" | "date";
64
+ required?: boolean | undefined;
65
+ options?: {
66
+ id: string;
67
+ label: string;
68
+ description?: string | undefined;
69
+ }[] | undefined;
70
+ accept?: string[] | undefined;
71
+ }[];
72
+ } | {
73
+ kind: "file";
74
+ accept?: string[] | undefined;
75
+ maxSize?: number | undefined;
76
+ multiple?: boolean | undefined;
77
+ };
78
+ assets?: string[] | undefined;
79
+ } | {
80
+ kind: "router";
81
+ routes: {
82
+ when: string;
83
+ target: string | null;
84
+ }[];
85
+ assets?: string[] | undefined;
86
+ };
87
+ phase?: string | undefined;
88
+ contract?: {
89
+ requires?: {
90
+ expr: string;
91
+ message?: string | undefined;
92
+ }[] | undefined;
93
+ input?: Record<string, z.core.util.JSONType> | undefined;
94
+ output?: {
95
+ fields?: Record<string, z.core.util.JSONType> | undefined;
96
+ artifacts?: {
97
+ kind: string;
98
+ lifetime: "session" | "persistent";
99
+ }[] | undefined;
100
+ } | undefined;
101
+ } | undefined;
102
+ gate?: {
103
+ approval: "none" | "optional" | "mandatory";
104
+ } | undefined;
105
+ control?: {
106
+ optional?: boolean | undefined;
107
+ retries?: number | undefined;
108
+ timeoutSec?: number | undefined;
109
+ parallelGroup?: string | undefined;
110
+ } | undefined;
111
+ }[];
112
+ edges: {
113
+ id: string;
114
+ source: string;
115
+ target: string;
116
+ type: "flow" | "optional" | "parallel";
117
+ }[];
118
+ $schema?: string | undefined;
119
+ description?: string | undefined;
120
+ input?: {
121
+ schema: Record<string, z.core.util.JSONType>;
122
+ example?: z.core.util.JSONType | undefined;
123
+ } | undefined;
124
+ output?: {
125
+ schema: Record<string, z.core.util.JSONType>;
126
+ } | undefined;
127
+ defaults?: {
128
+ approval?: "manual" | "auto" | "checkpoint" | undefined;
129
+ researchDepth?: string | undefined;
130
+ autoReview?: boolean | undefined;
131
+ subagentMode?: boolean | undefined;
132
+ verbosity?: string | undefined;
133
+ cliMode?: boolean | undefined;
134
+ run_input?: z.core.util.JSONType | undefined;
135
+ parameters?: Record<string, z.core.util.JSONType> | undefined;
136
+ } | undefined;
137
+ entry?: string | undefined;
138
+ meta?: {
139
+ icon?: string | undefined;
140
+ category?: string | undefined;
141
+ tags?: string[] | undefined;
142
+ stage?: string | undefined;
143
+ onboarding?: {
144
+ input_style: "repo" | "freeform" | "structured";
145
+ placeholder?: string | undefined;
146
+ fields?: string[] | undefined;
147
+ } | undefined;
148
+ } | undefined;
149
+ }>;
150
+ /** Authoritative strict runtime schema for authored, acyclic Flow v2 definitions. */
151
+ export declare const FlowDefinitionSchema: z.ZodObject<{
152
+ $schema: z.ZodOptional<z.ZodString>;
153
+ schemaVersion: z.ZodLiteral<2>;
154
+ id: z.ZodString;
155
+ version: z.ZodString;
156
+ name: z.ZodString;
157
+ description: z.ZodOptional<z.ZodString>;
158
+ input: z.ZodOptional<z.ZodObject<{
159
+ schema: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
160
+ example: z.ZodOptional<z.ZodJSONSchema>;
161
+ }, z.core.$strict>>;
162
+ output: z.ZodOptional<z.ZodObject<{
163
+ schema: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
164
+ }, z.core.$strict>>;
165
+ defaults: z.ZodOptional<z.ZodObject<{
166
+ approval: z.ZodOptional<z.ZodEnum<{
167
+ manual: "manual";
168
+ auto: "auto";
169
+ checkpoint: "checkpoint";
170
+ }>>;
171
+ researchDepth: z.ZodOptional<z.ZodString>;
172
+ autoReview: z.ZodOptional<z.ZodBoolean>;
173
+ subagentMode: z.ZodOptional<z.ZodBoolean>;
174
+ verbosity: z.ZodOptional<z.ZodString>;
175
+ cliMode: z.ZodOptional<z.ZodBoolean>;
176
+ run_input: z.ZodOptional<z.ZodJSONSchema>;
177
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
178
+ }, z.core.$strict>>;
179
+ entry: z.ZodOptional<z.ZodString>;
180
+ nodes: z.ZodArray<z.ZodObject<{
181
+ id: z.ZodString;
182
+ label: z.ZodString;
183
+ description: z.ZodString;
184
+ phase: z.ZodOptional<z.ZodString>;
185
+ run: z.ZodDiscriminatedUnion<[z.ZodObject<{
186
+ assets: z.ZodOptional<z.ZodArray<z.ZodString>>;
187
+ kind: z.ZodLiteral<"agent">;
188
+ instruction: z.ZodString;
189
+ }, z.core.$strict>, z.ZodObject<{
190
+ assets: z.ZodOptional<z.ZodArray<z.ZodString>>;
191
+ kind: z.ZodLiteral<"subprompt">;
192
+ instruction: z.ZodString;
193
+ model: z.ZodOptional<z.ZodString>;
194
+ }, z.core.$strict>, z.ZodObject<{
195
+ assets: z.ZodOptional<z.ZodArray<z.ZodString>>;
196
+ runtime: z.ZodOptional<z.ZodEnum<{
197
+ node: "node";
198
+ shell: "shell";
199
+ python: "python";
200
+ }>>;
201
+ command: z.ZodString;
202
+ cwd: z.ZodOptional<z.ZodString>;
203
+ successExit: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
204
+ capture: z.ZodOptional<z.ZodObject<{
205
+ stdout: z.ZodOptional<z.ZodString>;
206
+ stderr: z.ZodOptional<z.ZodString>;
207
+ }, z.core.$strict>>;
208
+ kind: z.ZodLiteral<"function">;
209
+ }, z.core.$strict>, z.ZodObject<{
210
+ assets: z.ZodOptional<z.ZodArray<z.ZodString>>;
211
+ runtime: z.ZodOptional<z.ZodEnum<{
212
+ node: "node";
213
+ shell: "shell";
214
+ python: "python";
215
+ }>>;
216
+ command: z.ZodString;
217
+ cwd: z.ZodOptional<z.ZodString>;
218
+ successExit: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
219
+ capture: z.ZodOptional<z.ZodObject<{
220
+ stdout: z.ZodOptional<z.ZodString>;
221
+ stderr: z.ZodOptional<z.ZodString>;
222
+ }, z.core.$strict>>;
223
+ kind: z.ZodLiteral<"check">;
224
+ onFail: z.ZodDefault<z.ZodEnum<{
225
+ fail: "fail";
226
+ escalate: "escalate";
227
+ }>>;
228
+ }, z.core.$strict>, z.ZodObject<{
229
+ assets: z.ZodOptional<z.ZodArray<z.ZodString>>;
230
+ kind: z.ZodLiteral<"gate">;
231
+ prompt: z.ZodString;
232
+ schema: z.ZodDiscriminatedUnion<[z.ZodObject<{
233
+ kind: z.ZodLiteral<"text">;
234
+ multiline: z.ZodOptional<z.ZodBoolean>;
235
+ }, z.core.$strict>, z.ZodObject<{
236
+ kind: z.ZodLiteral<"choice">;
237
+ options: z.ZodArray<z.ZodObject<{
238
+ id: z.ZodString;
239
+ label: z.ZodString;
240
+ description: z.ZodOptional<z.ZodString>;
241
+ }, z.core.$strict>>;
242
+ multiple: z.ZodOptional<z.ZodBoolean>;
243
+ }, z.core.$strict>, z.ZodObject<{
244
+ kind: z.ZodLiteral<"form">;
245
+ fields: z.ZodArray<z.ZodObject<{
246
+ id: z.ZodString;
247
+ label: z.ZodString;
248
+ type: z.ZodEnum<{
249
+ number: "number";
250
+ boolean: "boolean";
251
+ text: "text";
252
+ file: "file";
253
+ choice: "choice";
254
+ textarea: "textarea";
255
+ date: "date";
256
+ }>;
257
+ required: z.ZodOptional<z.ZodBoolean>;
258
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
259
+ id: z.ZodString;
260
+ label: z.ZodString;
261
+ description: z.ZodOptional<z.ZodString>;
262
+ }, z.core.$strict>>>;
263
+ accept: z.ZodOptional<z.ZodArray<z.ZodString>>;
264
+ }, z.core.$strict>>;
265
+ }, z.core.$strict>, z.ZodObject<{
266
+ kind: z.ZodLiteral<"file">;
267
+ accept: z.ZodOptional<z.ZodArray<z.ZodString>>;
268
+ maxSize: z.ZodOptional<z.ZodNumber>;
269
+ multiple: z.ZodOptional<z.ZodBoolean>;
270
+ }, z.core.$strict>], "kind">;
271
+ }, z.core.$strict>, z.ZodObject<{
272
+ assets: z.ZodOptional<z.ZodArray<z.ZodString>>;
273
+ kind: z.ZodLiteral<"router">;
274
+ routes: z.ZodArray<z.ZodObject<{
275
+ when: z.ZodString;
276
+ target: z.ZodNullable<z.ZodString>;
277
+ }, z.core.$strict>>;
278
+ }, z.core.$strict>], "kind">;
279
+ contract: z.ZodOptional<z.ZodObject<{
280
+ requires: z.ZodOptional<z.ZodArray<z.ZodObject<{
281
+ expr: z.ZodString;
282
+ message: z.ZodOptional<z.ZodString>;
283
+ }, z.core.$strict>>>;
284
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
285
+ output: z.ZodOptional<z.ZodObject<{
286
+ fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
287
+ artifacts: z.ZodOptional<z.ZodArray<z.ZodObject<{
288
+ kind: z.ZodString;
289
+ lifetime: z.ZodEnum<{
290
+ session: "session";
291
+ persistent: "persistent";
292
+ }>;
293
+ }, z.core.$strict>>>;
294
+ }, z.core.$strict>>;
295
+ }, z.core.$strict>>;
296
+ gate: z.ZodOptional<z.ZodObject<{
297
+ approval: z.ZodEnum<{
298
+ none: "none";
299
+ optional: "optional";
300
+ mandatory: "mandatory";
301
+ }>;
302
+ }, z.core.$strict>>;
303
+ control: z.ZodOptional<z.ZodObject<{
304
+ optional: z.ZodOptional<z.ZodBoolean>;
305
+ retries: z.ZodOptional<z.ZodNumber>;
306
+ timeoutSec: z.ZodOptional<z.ZodNumber>;
307
+ parallelGroup: z.ZodOptional<z.ZodString>;
308
+ }, z.core.$strict>>;
309
+ }, z.core.$strict>>;
310
+ edges: z.ZodArray<z.ZodObject<{
311
+ id: z.ZodString;
312
+ source: z.ZodString;
313
+ target: z.ZodString;
314
+ type: z.ZodEnum<{
315
+ flow: "flow";
316
+ optional: "optional";
317
+ parallel: "parallel";
318
+ }>;
319
+ }, z.core.$strict>>;
320
+ meta: z.ZodOptional<z.ZodObject<{
321
+ icon: z.ZodOptional<z.ZodString>;
322
+ category: z.ZodOptional<z.ZodString>;
323
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
324
+ stage: z.ZodOptional<z.ZodString>;
325
+ onboarding: z.ZodOptional<z.ZodObject<{
326
+ input_style: z.ZodEnum<{
327
+ repo: "repo";
328
+ freeform: "freeform";
329
+ structured: "structured";
330
+ }>;
331
+ placeholder: z.ZodOptional<z.ZodString>;
332
+ fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
333
+ }, z.core.$strict>>;
334
+ }, z.core.$strict>>;
335
+ }, z.core.$strict>;
336
+ /** Validated authoring content that is strict, acyclic, and always schema version 2. */
337
+ export type FlowDefinition = z.infer<typeof FlowDefinitionSchema>;
338
+ /** Graph vertex whose execution identity comes only from its `run.kind`. */
339
+ export type FlowNode = FlowDefinition["nodes"][number];
340
+ /** Directed dependency link whose authored array position remains content-significant. */
341
+ export type FlowEdge = FlowDefinition["edges"][number];
342
+ /** Closed execution-owner declaration with no dispatch or conversation-mode switches. */
343
+ export type FlowNodeRun = FlowNode["run"];
344
+ /** Closed vocabulary of the six supported execution-owner identities. */
345
+ export type FlowNodeKind = FlowNodeRun["kind"];
346
+ /** Validation boundary applied to values entering a Flow run. */
347
+ export type FlowInputContract = NonNullable<FlowDefinition["input"]>;
348
+ /** Validation boundary applied to values leaving a Flow run. */
349
+ export type FlowOutputContract = NonNullable<FlowDefinition["output"]>;
350
+ /** Node admission and data contract; output typing is paid only when downstream consumers need it. */
351
+ export type FlowNodeContract = NonNullable<FlowNode["contract"]>;
352
+ /** Availability and failure policy that never changes execution ownership. */
353
+ export type FlowNodeControl = NonNullable<FlowNode["control"]>;
354
+ /** Named values resolved at the consumer boundary before admission. */
355
+ export type FlowNodeBindings = NonNullable<FlowNode["contract"]>["input"];
356
+ /** Bounded deterministic admission condition; arbitrary calls and property access are invalid. */
357
+ export type FlowNodePrecondition = NonNullable<FlowNode["contract"]>["requires"] extends Array<infer T> | undefined ? T : never;
358
+ /** Ordered router branch; the first matching condition owns the routing decision. */
359
+ export type FlowRoute = Extract<FlowNodeRun, {
360
+ kind: "router";
361
+ }>["routes"][number];
362
+ /** Asset requirement independent of node identity and available on every run kind. */
363
+ export type FlowAssetRef = NonNullable<FlowNodeRun["assets"]>[number];
364
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../factory-assets/connectors/flow/contract/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAyMzB,sFAAsF;AACtF,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAEzD;AA6CD,qFAAqF;AACrF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAgL/B,CAAC;AAEH,wFAAwF;AACxF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,4EAA4E;AAC5E,MAAM,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,0FAA0F;AAC1F,MAAM,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,yFAAyF;AACzF,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAE1C,yEAAyE;AACzE,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAE/C,iEAAiE;AACjE,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AAErE,gEAAgE;AAChE,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEvE,sGAAsG;AACtG,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAEjE,8EAA8E;AAC9E,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAE/D,uEAAuE;AACvE,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAE1E,kGAAkG;AAClG,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,SAC5E,KAAK,CAAC,MAAM,CAAC,CAAC,GACd,SAAS,GACT,CAAC,GACD,KAAK,CAAC;AAEV,qFAAqF;AACrF,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnF,sFAAsF;AACtF,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ // Auto-generated by _scripts/emit-dts-sidecars.ts — do not edit by hand.
2
+ export * from "./contract/index.js";