@skaile/workspaces 4.28.2 → 4.29.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.
Files changed (118) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/{asset-feeds-3P3XWCCZ.js → asset-feeds-46K7CTW2.js} +4 -4
  3. package/dist/{asset-feeds-3P3XWCCZ.js.map → asset-feeds-46K7CTW2.js.map} +1 -1
  4. package/dist/asset-manager/index.js +1 -1
  5. package/dist/{chunk-2ZFE2R7S.js → chunk-3LIUBF5P.js} +2 -2
  6. package/dist/{chunk-2ZFE2R7S.js.map → chunk-3LIUBF5P.js.map} +1 -1
  7. package/dist/{chunk-LFZEN3XG.js → chunk-6X4DHKHP.js} +3 -3
  8. package/dist/{chunk-LFZEN3XG.js.map → chunk-6X4DHKHP.js.map} +1 -1
  9. package/dist/{chunk-7P6OPPG4.js → chunk-7NC3VL6Z.js} +3 -3
  10. package/dist/{chunk-7P6OPPG4.js.map → chunk-7NC3VL6Z.js.map} +1 -1
  11. package/dist/{chunk-TFH6Z4KZ.js → chunk-7SLRVWKR.js} +3 -3
  12. package/dist/{chunk-TFH6Z4KZ.js.map → chunk-7SLRVWKR.js.map} +1 -1
  13. package/dist/{chunk-AMJSC6SU.js → chunk-C56FCYFU.js} +3 -3
  14. package/dist/{chunk-AMJSC6SU.js.map → chunk-C56FCYFU.js.map} +1 -1
  15. package/dist/{chunk-PZL6BEWG.js → chunk-DIQDYNXZ.js} +3 -3
  16. package/dist/{chunk-PZL6BEWG.js.map → chunk-DIQDYNXZ.js.map} +1 -1
  17. package/dist/{chunk-RPZ6ZE7S.js → chunk-G3YTK6UI.js} +79 -23
  18. package/dist/chunk-G3YTK6UI.js.map +1 -0
  19. package/dist/{chunk-3TZECMBB.js → chunk-GYBCW4S7.js} +6 -6
  20. package/dist/{chunk-3TZECMBB.js.map → chunk-GYBCW4S7.js.map} +1 -1
  21. package/dist/{chunk-DQ64NLMC.js → chunk-K3IBZ2UZ.js} +3 -3
  22. package/dist/{chunk-DQ64NLMC.js.map → chunk-K3IBZ2UZ.js.map} +1 -1
  23. package/dist/{chunk-FUKJ4IU6.js → chunk-LIEOC4JE.js} +34 -15
  24. package/dist/chunk-LIEOC4JE.js.map +1 -0
  25. package/dist/{chunk-Y42A2ZBB.js → chunk-NGQVRFQJ.js} +4 -4
  26. package/dist/{chunk-Y42A2ZBB.js.map → chunk-NGQVRFQJ.js.map} +1 -1
  27. package/dist/{chunk-KPRZHEEI.js → chunk-ORH2BZEM.js} +155 -85
  28. package/dist/chunk-ORH2BZEM.js.map +1 -0
  29. package/dist/{chunk-I4C4AHZB.js → chunk-PJY4J37J.js} +3 -3
  30. package/dist/{chunk-I4C4AHZB.js.map → chunk-PJY4J37J.js.map} +1 -1
  31. package/dist/{chunk-YU2CVP3M.js → chunk-SZEICOXM.js} +6 -6
  32. package/dist/{chunk-YU2CVP3M.js.map → chunk-SZEICOXM.js.map} +1 -1
  33. package/dist/{chunk-BGSM22L6.js → chunk-T57M3SST.js} +6 -6
  34. package/dist/{chunk-BGSM22L6.js.map → chunk-T57M3SST.js.map} +1 -1
  35. package/dist/{chunk-ULLMVMAN.js → chunk-UDFWBALP.js} +3 -3
  36. package/dist/{chunk-ULLMVMAN.js.map → chunk-UDFWBALP.js.map} +1 -1
  37. package/dist/{chunk-YNJRENVU.js → chunk-UQ3JFN4N.js} +2 -2
  38. package/dist/{chunk-YNJRENVU.js.map → chunk-UQ3JFN4N.js.map} +1 -1
  39. package/dist/{chunk-YO654LTQ.js → chunk-YVWUHPQW.js} +43 -66
  40. package/dist/chunk-YVWUHPQW.js.map +1 -0
  41. package/dist/{chunk-2MD6TJWZ.js → chunk-YYH5EVPM.js} +3 -3
  42. package/dist/{chunk-2MD6TJWZ.js.map → chunk-YYH5EVPM.js.map} +1 -1
  43. package/dist/{chunk-LZRA54EP.js → chunk-ZKX5KY2K.js} +2 -2
  44. package/dist/{chunk-LZRA54EP.js.map → chunk-ZKX5KY2K.js.map} +1 -1
  45. package/dist/cli/index.js +37 -37
  46. package/dist/connectors/index.js +7 -7
  47. package/dist/{ensure-sources-3NKAGEBJ.js → ensure-sources-HH4CCGY5.js} +4 -4
  48. package/dist/{ensure-sources-3NKAGEBJ.js.map → ensure-sources-HH4CCGY5.js.map} +1 -1
  49. package/dist/factory-assets/connectors/box.js +7 -7
  50. package/dist/factory-assets/connectors/deploy.js +7 -7
  51. package/dist/factory-assets/connectors/devserver.js +7 -7
  52. package/dist/factory-assets/connectors/flow/CONNECTOR.md +6 -2
  53. package/dist/factory-assets/connectors/flow/adapter.js +7 -7
  54. package/dist/factory-assets/connectors/flow/contract/index.d.ts +1 -1
  55. package/dist/factory-assets/connectors/flow/contract/index.d.ts.map +1 -1
  56. package/dist/factory-assets/connectors/flow/contract/output-fields.d.ts +28 -0
  57. package/dist/factory-assets/connectors/flow/contract/output-fields.d.ts.map +1 -0
  58. package/dist/factory-assets/connectors/flow/contract/schema.d.ts +5 -0
  59. package/dist/factory-assets/connectors/flow/contract/schema.d.ts.map +1 -1
  60. package/dist/factory-assets/connectors/flow/contract.js +4 -4
  61. package/dist/factory-assets/connectors/flow/engine/output-schema.d.ts +2 -7
  62. package/dist/factory-assets/connectors/flow/engine/output-schema.d.ts.map +1 -1
  63. package/dist/factory-assets/connectors/flow/engine.js +4 -4
  64. package/dist/factory-assets/connectors/flow/prompt-fragments.js +3 -3
  65. package/dist/factory-assets/connectors/flow/run-flow.js +8 -8
  66. package/dist/factory-assets/connectors/flow.js +7 -7
  67. package/dist/factory-assets/connectors/git/CONNECTOR.md +2 -0
  68. package/dist/factory-assets/connectors/git/driver.d.ts +3 -2
  69. package/dist/factory-assets/connectors/git/driver.d.ts.map +1 -1
  70. package/dist/factory-assets/connectors/git.js +7 -7
  71. package/dist/factory-assets/connectors/gmail.js +7 -7
  72. package/dist/factory-assets/connectors/googledrive.js +7 -7
  73. package/dist/factory-assets/connectors/local.js +7 -7
  74. package/dist/factory-assets/connectors/mattermost.js +7 -7
  75. package/dist/factory-assets/connectors/memory.js +7 -7
  76. package/dist/factory-assets/connectors/minio.js +7 -7
  77. package/dist/factory-assets/connectors/postgres.js +7 -7
  78. package/dist/factory-assets/connectors/s3.js +7 -7
  79. package/dist/factory-assets/connectors/sharepoint.js +7 -7
  80. package/dist/factory-assets/connectors/sqlite.js +7 -7
  81. package/dist/factory-assets/connectors/static-server.js +7 -7
  82. package/dist/factory-assets/connectors/tunnel.js +7 -7
  83. package/dist/factory-assets/connectors/webdav.js +7 -7
  84. package/dist/factory-assets/connectors/xstate-store.js +7 -7
  85. package/dist/factory-assets/connectors/xstate.js +7 -7
  86. package/dist/{flows-4X6PVPPH.js → flows-6WUQ2J4X.js} +3 -3
  87. package/dist/{flows-4X6PVPPH.js.map → flows-6WUQ2J4X.js.map} +1 -1
  88. package/dist/{helpers-WHBQSVBQ.js → helpers-BKOX66EA.js} +4 -4
  89. package/dist/{helpers-WHBQSVBQ.js.map → helpers-BKOX66EA.js.map} +1 -1
  90. package/dist/{library-publish-4APUZRJV.js → library-publish-PCY3ULAA.js} +10 -10
  91. package/dist/{library-publish-4APUZRJV.js.map → library-publish-PCY3ULAA.js.map} +1 -1
  92. package/dist/{open-library-QTC5PH7Y.js → open-library-R73XWQNW.js} +9 -9
  93. package/dist/{open-library-QTC5PH7Y.js.map → open-library-R73XWQNW.js.map} +1 -1
  94. package/dist/{project-3K6VBQIV.js → project-7RHUAYUZ.js} +5 -5
  95. package/dist/{project-3K6VBQIV.js.map → project-7RHUAYUZ.js.map} +1 -1
  96. package/dist/runner/index.js +13 -13
  97. package/dist/runner/src/pending-turns.d.ts +28 -0
  98. package/dist/runner/src/pending-turns.d.ts.map +1 -0
  99. package/dist/runner/src/serve.d.ts.map +1 -1
  100. package/dist/sdk/asset-manager.js +1 -1
  101. package/dist/sdk/flow.js +4 -4
  102. package/dist/sdk/index.js +13 -13
  103. package/dist/sdk/runner.js +13 -13
  104. package/dist/{setup-K37IWBVQ.js → setup-MYJDFOCG.js} +5 -5
  105. package/dist/{setup-K37IWBVQ.js.map → setup-MYJDFOCG.js.map} +1 -1
  106. package/dist/{source-DMSYJIY6.js → source-SKGXVE7I.js} +10 -10
  107. package/dist/{source-DMSYJIY6.js.map → source-SKGXVE7I.js.map} +1 -1
  108. package/dist/{source-manifest-publish-VJSEWCG7.js → source-manifest-publish-QSZRNMSM.js} +11 -11
  109. package/dist/{source-manifest-publish-VJSEWCG7.js.map → source-manifest-publish-QSZRNMSM.js.map} +1 -1
  110. package/dist/tui/index.js +13 -13
  111. package/dist/workspace-plugin/adapters/mcp.js +2 -2
  112. package/dist/workspace-plugin/adapters/omp.js +3 -3
  113. package/dist/workspace-plugin/index.js +1 -1
  114. package/package.json +1 -1
  115. package/dist/chunk-FUKJ4IU6.js.map +0 -1
  116. package/dist/chunk-KPRZHEEI.js.map +0 -1
  117. package/dist/chunk-RPZ6ZE7S.js.map +0 -1
  118. package/dist/chunk-YO654LTQ.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../factory-assets/connectors/flow/contract/normalize.ts"],"names":["data","assets","parameters","control"],"mappings":"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","file":"chunk-PZL6BEWG.js","sourcesContent":["import * as z from \"zod\";\nimport {\n FlowDefinitionSchema,\n parseFlowDefinitionStructure,\n type FlowDefinition,\n} from \"./schema.js\";\n\nconst successfullyParsedDefinitions = new WeakMap<object, string>();\n\nfunction valueFingerprint(value: unknown, ancestors: Set<object>): string | null {\n if (value === null) return \"null\";\n if (value === undefined) return \"undefined\";\n if (typeof value === \"string\") return `string:${JSON.stringify(value)}`;\n if (typeof value === \"boolean\") return `boolean:${value}`;\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) return null;\n return `number:${Object.is(value, -0) ? \"-0\" : value}`;\n }\n if (typeof value !== \"object\" || ancestors.has(value)) return null;\n\n ancestors.add(value);\n try {\n if (Array.isArray(value)) {\n if (Object.getPrototypeOf(value) !== Array.prototype) return null;\n if (Object.getOwnPropertySymbols(value).length > 0) return null;\n const names = Object.getOwnPropertyNames(value);\n if (names.length !== value.length + 1 || !names.includes(\"length\")) return null;\n const items: string[] = [];\n for (let index = 0; index < value.length; index += 1) {\n const descriptor = Object.getOwnPropertyDescriptor(value, String(index));\n if (!descriptor || !(\"value\" in descriptor) || !descriptor.enumerable) return null;\n const item = valueFingerprint(descriptor.value, ancestors);\n if (item === null) return null;\n items.push(item);\n }\n return `array:[${items.join(\",\")}]`;\n }\n\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) return null;\n if (Object.getOwnPropertySymbols(value).length > 0) return null;\n const entries: string[] = [];\n for (const key of Object.getOwnPropertyNames(value).sort()) {\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (!descriptor || !(\"value\" in descriptor) || !descriptor.enumerable) return null;\n const nested = valueFingerprint(descriptor.value, ancestors);\n if (nested === null) return null;\n entries.push(`${JSON.stringify(key)}:${nested}`);\n }\n return `object:{${entries.join(\",\")}}`;\n } finally {\n ancestors.delete(value);\n }\n}\n\nfunction definitionFingerprint(data: object): string | null {\n return valueFingerprint(data, new Set());\n}\n\nconst LegacyRouteSchema = z.looseObject({\n condition: z.string().min(1),\n target: z.string().min(1).nullable(),\n});\n\nconst LegacyNodeDataSchema = z.looseObject({\n skill: z.string().min(1).optional(),\n version: z.string().min(1).optional(),\n label: z.string().min(1).optional(),\n description: z.string().min(1).optional(),\n optional: z.boolean().optional(),\n approval: z.looseObject({ mandatory: z.boolean().optional() }).optional(),\n parameters: z.record(z.string(), z.unknown()).optional(),\n phase: z.string().min(1).optional(),\n parallel_group: z.string().min(1).optional(),\n flow: z.string().min(1).optional(),\n pass_context: z.boolean().optional(),\n message: z.string().min(1).optional(),\n routes: z.array(LegacyRouteSchema).optional(),\n assets: z.array(z.string().min(1)).optional(),\n});\n\nconst LegacyNodeSchema = z.looseObject({\n id: z.string().min(1),\n type: z.string().min(1).optional(),\n skill: z.string().min(1).optional(),\n label: z.string().min(1).optional(),\n description: z.string().min(1).optional(),\n data: LegacyNodeDataSchema.optional(),\n});\n\nconst LegacyEdgeSchema = z.looseObject({\n id: z.string().min(1).optional(),\n source: z.string().min(1),\n target: z.string().min(1),\n type: z.string().min(1).optional(),\n});\n\nconst LegacyFlowSchema = z.looseObject({\n id: z.string().min(1),\n version: z.string().min(1).optional(),\n name: z.string().min(1),\n description: z.string().min(1).optional(),\n requires: z.array(z.string().min(1)).optional(),\n globals: z.record(z.string(), z.unknown()).optional(),\n entry: z.string().min(1).optional(),\n nodes: z.array(LegacyNodeSchema).optional(),\n edges: z.array(LegacyEdgeSchema).optional(),\n meta: z.record(z.string(), z.unknown()).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\n/** Stable authored-path failure returned without exposing Zod as part of the public boundary. */\nexport interface FlowDefinitionIssue {\n /** Dot-separated authored-data path; the empty string identifies the root. */\n path: string;\n /** Human-readable reason the value failed contract validation. */\n message: string;\n}\n\n/** Inert legacy edge retained for round-tripping outside the closed authored-v2 vocabulary. */\nexport type LegacyCompatibilityEdge = {\n id: string;\n source: string;\n target: string;\n type: string;\n} & Record<string, unknown>;\n\n/** Normalized content whose nodes are strict v2 while inert legacy edges remain lossless. */\nexport type ParsedFlowDefinition = Omit<FlowDefinition, \"edges\"> & {\n edges: Array<FlowDefinition[\"edges\"][number] | LegacyCompatibilityEdge>;\n};\n\n/** Normalized authoring or compatibility content, or complete authored-path failures. */\nexport type FlowDefinitionParseResult =\n | { ok: true; data: ParsedFlowDefinition }\n | { ok: false; errors: FlowDefinitionIssue[] };\n\nfunction success(data: ParsedFlowDefinition): FlowDefinitionParseResult {\n const fingerprint = definitionFingerprint(data);\n if (fingerprint !== null) successfullyParsedDefinitions.set(data, fingerprint);\n return { ok: true, data };\n}\n\nfunction failure(error: z.ZodError): FlowDefinitionParseResult {\n return {\n ok: false,\n errors: error.issues.map((issue) => ({\n path: issue.path.map(String).join(\".\"),\n message: issue.message,\n })),\n };\n}\n\nconst LEGACY_DEFAULT_KEYS: Record<string, string> = {\n approval_mode: \"approval\",\n research_depth: \"researchDepth\",\n auto_review: \"autoReview\",\n verbosity: \"verbosity\",\n cli_mode: \"cliMode\",\n run_input: \"run_input\",\n};\n\n/**\n * v1 default keys that are dropped outright rather than carried through.\n * Deleting a key from {@link LEGACY_DEFAULT_KEYS} alone does not remove it —\n * `parameters` is an open passthrough bag, so an unmapped key survives under\n * `parameters.<key>`. Dropping has to be explicit.\n */\nconst DROPPED_LEGACY_DEFAULT_KEYS = new Set([\"subagent_mode\"]);\n\nfunction normalizeDefaults(globals: Record<string, unknown> | undefined): unknown {\n if (!globals) return undefined;\n const known: Record<string, unknown> = {};\n const parameters: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(globals)) {\n if (DROPPED_LEGACY_DEFAULT_KEYS.has(key)) continue;\n const normalizedKey = LEGACY_DEFAULT_KEYS[key];\n if (normalizedKey) {\n known[normalizedKey] = key === \"approval_mode\" && value === \"auto_approve\" ? \"auto\" : value;\n } else {\n parameters[key] = value;\n }\n }\n\n if (Object.keys(parameters).length > 0) known.parameters = parameters;\n return Object.keys(known).length > 0 ? known : undefined;\n}\n\nfunction normalizeMeta(value: Record<string, unknown> | undefined): unknown {\n if (!value) return undefined;\n const meta: Record<string, unknown> = {};\n if (typeof value.icon === \"string\") meta.icon = value.icon;\n if (typeof value.category === \"string\") meta.category = value.category;\n if (Array.isArray(value.tags)) meta.tags = value.tags;\n if (typeof value.stage === \"string\") meta.stage = value.stage;\n if (typeof value.onboarding === \"object\" && value.onboarding !== null) {\n const onboarding = value.onboarding as Record<string, unknown>;\n if (\n onboarding.input_style === \"freeform\" ||\n onboarding.input_style === \"structured\" ||\n onboarding.input_style === \"repo\"\n ) {\n meta.onboarding = {\n input_style: onboarding.input_style,\n ...(typeof onboarding.placeholder === \"string\"\n ? { placeholder: onboarding.placeholder }\n : {}),\n ...(Array.isArray(onboarding.fields) ? { fields: onboarding.fields } : {}),\n };\n }\n }\n return Object.keys(meta).length > 0 ? meta : undefined;\n}\n\nfunction normalizeLegacyBinding(value: unknown): unknown {\n if (typeof value === \"string\") {\n return value.replace(/\\$\\{([A-Za-z_][A-Za-z0-9_]*)\\}/g, (_match, key: string) => {\n const normalized = LEGACY_DEFAULT_KEYS[key];\n return `\\${defaults.${normalized ?? `parameters.${key}`}}`;\n });\n }\n if (Array.isArray(value)) return value.map(normalizeLegacyBinding);\n if (typeof value !== \"object\" || value === null) return value;\n return Object.fromEntries(\n Object.entries(value).map(([key, nested]) => [key, normalizeLegacyBinding(nested)]),\n );\n}\n\n/** Renders a non-string v1 check for display; a cyclic value must not escape as a throw. */\nfunction renderLegacyCheck(check: unknown): string {\n try {\n return JSON.stringify(check) ?? String(check);\n } catch {\n return String(check);\n }\n}\n\n/** The only v1 `on_fail` a gate can keep: a v2 gate always pauses for a human. */\nconst LEGACY_GATE_ON_FAIL = \"pause-for-human\";\n\ntype LegacyNode = z.infer<typeof LegacyNodeSchema>;\n\n/**\n * Converts a v1 `type: gate` into a first-class v2 gate that parks for a human.\n * A v1 `check` is legacy syntax the v2 evaluator cannot run, so the gate pauses\n * unconditionally and shows the criterion to the approver — pausing too often is\n * recoverable, silently never pausing is not. Shapes a v2 gate cannot honour are refused.\n */\nfunction normalizeLegacyGate(\n node: LegacyNode,\n index: number,\n label: string,\n description: string,\n):\n | { ok: true; node: { id: string } & Record<string, unknown> }\n | { ok: false; error: FlowDefinitionIssue } {\n const data = node.data ?? {};\n const raw = data as Record<string, unknown>;\n const refuse = (field: string, message: string) => ({\n ok: false as const,\n error: { path: `nodes.${index}.data.${field}`, message },\n });\n\n if (data.optional === true) {\n return refuse(\"optional\", `gate ${node.id} cannot be optional — a skippable gate never gates`);\n }\n if (raw.on_fail !== undefined && raw.on_fail !== LEGACY_GATE_ON_FAIL) {\n return refuse(\n \"on_fail\",\n `gate ${node.id} has unsupported on_fail ${JSON.stringify(raw.on_fail)}; only \"${LEGACY_GATE_ON_FAIL}\" can be preserved`,\n );\n }\n\n // The check is only ever shown, never evaluated, so an odd shape is rendered, not refused.\n const check =\n raw.check === undefined || raw.check === null || raw.check === \"\"\n ? undefined\n : typeof raw.check === \"string\"\n ? raw.check\n : renderLegacyCheck(raw.check);\n const basePrompt = data.message ?? description;\n const prompt =\n check !== undefined\n ? `${basePrompt}\\n\\nApproval criterion (not evaluated automatically): ${check}`\n : basePrompt;\n return {\n ok: true,\n node: {\n id: node.id,\n label,\n description,\n phase: data.phase,\n run: {\n kind: \"gate\",\n prompt,\n schema: { kind: \"text\" },\n assets: data.assets && data.assets.length > 0 ? [...new Set(data.assets)] : undefined,\n },\n // No `contract.input`: a gate resolves no bindings, so v1 parameters would be dead weight.\n control: data.parallel_group ? { parallelGroup: data.parallel_group } : undefined,\n },\n };\n}\n\n/**\n * Converts a recognized v1 definition to strict v2 without mutating the authored input.\n * A v1 gate becomes a real v2 gate; other non-executable legacy nodes become inert\n * placeholders so dependency and terminal semantics survive.\n */\nexport function normalizeV1(data: unknown): FlowDefinitionParseResult {\n const legacyResult = LegacyFlowSchema.safeParse(data);\n if (!legacyResult.success) return failure(legacyResult.error);\n const legacy = legacyResult.data;\n\n const contradiction = (legacy.nodes ?? []).findIndex(\n (node) => node.data?.optional === true && node.data.approval?.mandatory === true,\n );\n if (contradiction !== -1) {\n return {\n ok: false,\n errors: [\n {\n path: `nodes.${contradiction}.data`,\n message: \"a node cannot be both optional and a mandatory approval gate\",\n },\n ],\n };\n }\n\n const nodes: Array<{ id: string } & Record<string, unknown>> = [];\n for (const [index, node] of (legacy.nodes ?? []).entries()) {\n const data = node.data ?? {};\n const kind = node.type;\n\n const label = data.label ?? node.label ?? data.skill ?? node.skill ?? node.id;\n const description = node.description ?? data.description ?? data.message ?? label;\n if (kind === \"sub-flow\" && data.flow) {\n const delegatedAsset = `flow:${data.flow}`;\n const assets = [...new Set([delegatedAsset, ...(data.assets ?? [])])];\n const parameters = data.parameters ?? {};\n const control = {\n optional: data.optional,\n parallelGroup: data.parallel_group,\n };\n nodes.push({\n id: node.id,\n label,\n description,\n phase: data.phase,\n run: {\n kind: \"sub-flow\",\n flow: data.flow,\n passContext: data.pass_context,\n assets,\n },\n contract:\n Object.keys(parameters).length > 0\n ? { input: normalizeLegacyBinding(parameters) }\n : undefined,\n control: Object.values(control).some((value) => value !== undefined) ? control : undefined,\n });\n continue;\n }\n\n if (kind === \"gate\") {\n const gateResult = normalizeLegacyGate(node, index, label, description);\n if (!gateResult.ok) return { ok: false, errors: [gateResult.error] };\n nodes.push(gateResult.node);\n continue;\n }\n\n if (kind !== \"skill\") {\n const delegatedAsset = kind === \"sub-flow\" && data.flow ? `flow:${data.flow}` : undefined;\n const assets = [\n ...new Set([...(delegatedAsset ? [delegatedAsset] : []), ...(data.assets ?? [])]),\n ];\n const parameters = data.parameters ?? {};\n nodes.push({\n id: node.id,\n label,\n description,\n phase: data.phase,\n run: {\n kind: \"router\",\n routes: [{ when: \"default\", target: null }],\n assets: assets.length > 0 ? assets : undefined,\n },\n contract: {\n requires: [{ expr: \"false\" }],\n input:\n Object.keys(parameters).length > 0 ? normalizeLegacyBinding(parameters) : undefined,\n },\n control: { optional: true, parallelGroup: data.parallel_group },\n });\n continue;\n }\n\n const parameters = { ...(data.parameters ?? {}) };\n const authoredInstruction = parameters.instructions;\n delete parameters.instructions;\n const instruction =\n typeof authoredInstruction === \"string\" && authoredInstruction.length > 0\n ? authoredInstruction\n : description;\n const skill = data.skill ?? node.skill;\n const skillAsset = skill\n ? `skill:${skill}${data.version !== undefined ? `#${data.version}` : \"\"}`\n : undefined;\n const assets = [...(skillAsset ? [skillAsset] : []), ...(data.assets ?? [])];\n const control = {\n optional: data.optional,\n parallelGroup: data.parallel_group,\n };\n\n nodes.push({\n id: node.id,\n label,\n description,\n phase: data.phase,\n run: {\n kind: \"agent\",\n instruction,\n assets: assets.length > 0 ? assets : undefined,\n },\n contract:\n Object.keys(parameters).length > 0\n ? { input: normalizeLegacyBinding(parameters) }\n : undefined,\n gate: data.approval?.mandatory === true ? { approval: \"mandatory\" } : undefined,\n control: Object.values(control).some((value) => value !== undefined) ? control : undefined,\n });\n }\n\n const nodeIds = new Set(nodes.map((node) => node.id));\n const edges = (legacy.edges ?? []).map((edge, index) => ({\n ...edge,\n id: edge.id ?? `${edge.source}-${edge.target}-${index}`,\n type: edge.type ?? \"optional\",\n }));\n\n const anchor =\n nodes.find((node) => node.id === legacy.entry) ?? (nodes.length > 0 ? nodes[0] : undefined);\n if (anchor && legacy.requires && legacy.requires.length > 0) {\n const run = anchor.run as Record<string, unknown>;\n const existingAssets = Array.isArray(run.assets) ? run.assets : [];\n run.assets = [...new Set([...existingAssets, ...legacy.requires])];\n }\n\n const candidate = {\n schemaVersion: 2,\n id: legacy.id,\n version: legacy.version ?? \"1.0.0\",\n name: legacy.name,\n description: legacy.description,\n defaults: normalizeDefaults(legacy.globals),\n entry: legacy.entry !== undefined && nodeIds.has(legacy.entry) ? legacy.entry : undefined,\n nodes,\n edges,\n meta: normalizeMeta({ ...(legacy.metadata ?? {}), ...(legacy.meta ?? {}) }),\n };\n const normalized = parseFlowDefinitionStructure({ ...candidate, edges: [] });\n if (!normalized.success) return failure(normalized.error);\n const parsed: ParsedFlowDefinition = { ...normalized.data, edges };\n return success(parsed);\n}\n\n/**\n * Parses strict v2 or normalizes v1, reusing an unchanged successful result across boundaries.\n * Only an absent own schema version permits compatibility normalization.\n */\nexport function parseFlowDefinition(data: unknown): FlowDefinitionParseResult {\n if (typeof data === \"object\" && data !== null) {\n const recorded = successfullyParsedDefinitions.get(data);\n if (recorded !== undefined && definitionFingerprint(data) === recorded) {\n return { ok: true, data: data as ParsedFlowDefinition };\n }\n }\n if (typeof data === \"object\" && data !== null && Object.hasOwn(data, \"schemaVersion\")) {\n const result = FlowDefinitionSchema.safeParse(data);\n return result.success ? success(result.data) : failure(result.error);\n }\n return normalizeV1(data);\n}\n"]}
1
+ {"version":3,"sources":["../factory-assets/connectors/flow/contract/normalize.ts"],"names":["data","assets","parameters","control"],"mappings":"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","file":"chunk-DIQDYNXZ.js","sourcesContent":["import * as z from \"zod\";\nimport {\n FlowDefinitionSchema,\n parseFlowDefinitionStructure,\n type FlowDefinition,\n} from \"./schema.js\";\n\nconst successfullyParsedDefinitions = new WeakMap<object, string>();\n\nfunction valueFingerprint(value: unknown, ancestors: Set<object>): string | null {\n if (value === null) return \"null\";\n if (value === undefined) return \"undefined\";\n if (typeof value === \"string\") return `string:${JSON.stringify(value)}`;\n if (typeof value === \"boolean\") return `boolean:${value}`;\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) return null;\n return `number:${Object.is(value, -0) ? \"-0\" : value}`;\n }\n if (typeof value !== \"object\" || ancestors.has(value)) return null;\n\n ancestors.add(value);\n try {\n if (Array.isArray(value)) {\n if (Object.getPrototypeOf(value) !== Array.prototype) return null;\n if (Object.getOwnPropertySymbols(value).length > 0) return null;\n const names = Object.getOwnPropertyNames(value);\n if (names.length !== value.length + 1 || !names.includes(\"length\")) return null;\n const items: string[] = [];\n for (let index = 0; index < value.length; index += 1) {\n const descriptor = Object.getOwnPropertyDescriptor(value, String(index));\n if (!descriptor || !(\"value\" in descriptor) || !descriptor.enumerable) return null;\n const item = valueFingerprint(descriptor.value, ancestors);\n if (item === null) return null;\n items.push(item);\n }\n return `array:[${items.join(\",\")}]`;\n }\n\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) return null;\n if (Object.getOwnPropertySymbols(value).length > 0) return null;\n const entries: string[] = [];\n for (const key of Object.getOwnPropertyNames(value).sort()) {\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (!descriptor || !(\"value\" in descriptor) || !descriptor.enumerable) return null;\n const nested = valueFingerprint(descriptor.value, ancestors);\n if (nested === null) return null;\n entries.push(`${JSON.stringify(key)}:${nested}`);\n }\n return `object:{${entries.join(\",\")}}`;\n } finally {\n ancestors.delete(value);\n }\n}\n\nfunction definitionFingerprint(data: object): string | null {\n return valueFingerprint(data, new Set());\n}\n\nconst LegacyRouteSchema = z.looseObject({\n condition: z.string().min(1),\n target: z.string().min(1).nullable(),\n});\n\nconst LegacyNodeDataSchema = z.looseObject({\n skill: z.string().min(1).optional(),\n version: z.string().min(1).optional(),\n label: z.string().min(1).optional(),\n description: z.string().min(1).optional(),\n optional: z.boolean().optional(),\n approval: z.looseObject({ mandatory: z.boolean().optional() }).optional(),\n parameters: z.record(z.string(), z.unknown()).optional(),\n phase: z.string().min(1).optional(),\n parallel_group: z.string().min(1).optional(),\n flow: z.string().min(1).optional(),\n pass_context: z.boolean().optional(),\n message: z.string().min(1).optional(),\n routes: z.array(LegacyRouteSchema).optional(),\n assets: z.array(z.string().min(1)).optional(),\n});\n\nconst LegacyNodeSchema = z.looseObject({\n id: z.string().min(1),\n type: z.string().min(1).optional(),\n skill: z.string().min(1).optional(),\n label: z.string().min(1).optional(),\n description: z.string().min(1).optional(),\n data: LegacyNodeDataSchema.optional(),\n});\n\nconst LegacyEdgeSchema = z.looseObject({\n id: z.string().min(1).optional(),\n source: z.string().min(1),\n target: z.string().min(1),\n type: z.string().min(1).optional(),\n});\n\nconst LegacyFlowSchema = z.looseObject({\n id: z.string().min(1),\n version: z.string().min(1).optional(),\n name: z.string().min(1),\n description: z.string().min(1).optional(),\n requires: z.array(z.string().min(1)).optional(),\n globals: z.record(z.string(), z.unknown()).optional(),\n entry: z.string().min(1).optional(),\n nodes: z.array(LegacyNodeSchema).optional(),\n edges: z.array(LegacyEdgeSchema).optional(),\n meta: z.record(z.string(), z.unknown()).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\n/** Stable authored-path failure returned without exposing Zod as part of the public boundary. */\nexport interface FlowDefinitionIssue {\n /** Dot-separated authored-data path; the empty string identifies the root. */\n path: string;\n /** Human-readable reason the value failed contract validation. */\n message: string;\n}\n\n/** Inert legacy edge retained for round-tripping outside the closed authored-v2 vocabulary. */\nexport type LegacyCompatibilityEdge = {\n id: string;\n source: string;\n target: string;\n type: string;\n} & Record<string, unknown>;\n\n/** Normalized content whose nodes are strict v2 while inert legacy edges remain lossless. */\nexport type ParsedFlowDefinition = Omit<FlowDefinition, \"edges\"> & {\n edges: Array<FlowDefinition[\"edges\"][number] | LegacyCompatibilityEdge>;\n};\n\n/** Normalized authoring or compatibility content, or complete authored-path failures. */\nexport type FlowDefinitionParseResult =\n | { ok: true; data: ParsedFlowDefinition }\n | { ok: false; errors: FlowDefinitionIssue[] };\n\nfunction success(data: ParsedFlowDefinition): FlowDefinitionParseResult {\n const fingerprint = definitionFingerprint(data);\n if (fingerprint !== null) successfullyParsedDefinitions.set(data, fingerprint);\n return { ok: true, data };\n}\n\nfunction failure(error: z.ZodError): FlowDefinitionParseResult {\n return {\n ok: false,\n errors: error.issues.map((issue) => ({\n path: issue.path.map(String).join(\".\"),\n message: issue.message,\n })),\n };\n}\n\nconst LEGACY_DEFAULT_KEYS: Record<string, string> = {\n approval_mode: \"approval\",\n research_depth: \"researchDepth\",\n auto_review: \"autoReview\",\n verbosity: \"verbosity\",\n cli_mode: \"cliMode\",\n run_input: \"run_input\",\n};\n\n/**\n * v1 default keys that are dropped outright rather than carried through.\n * Deleting a key from {@link LEGACY_DEFAULT_KEYS} alone does not remove it —\n * `parameters` is an open passthrough bag, so an unmapped key survives under\n * `parameters.<key>`. Dropping has to be explicit.\n */\nconst DROPPED_LEGACY_DEFAULT_KEYS = new Set([\"subagent_mode\"]);\n\nfunction normalizeDefaults(globals: Record<string, unknown> | undefined): unknown {\n if (!globals) return undefined;\n const known: Record<string, unknown> = {};\n const parameters: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(globals)) {\n if (DROPPED_LEGACY_DEFAULT_KEYS.has(key)) continue;\n const normalizedKey = LEGACY_DEFAULT_KEYS[key];\n if (normalizedKey) {\n known[normalizedKey] = key === \"approval_mode\" && value === \"auto_approve\" ? \"auto\" : value;\n } else {\n parameters[key] = value;\n }\n }\n\n if (Object.keys(parameters).length > 0) known.parameters = parameters;\n return Object.keys(known).length > 0 ? known : undefined;\n}\n\nfunction normalizeMeta(value: Record<string, unknown> | undefined): unknown {\n if (!value) return undefined;\n const meta: Record<string, unknown> = {};\n if (typeof value.icon === \"string\") meta.icon = value.icon;\n if (typeof value.category === \"string\") meta.category = value.category;\n if (Array.isArray(value.tags)) meta.tags = value.tags;\n if (typeof value.stage === \"string\") meta.stage = value.stage;\n if (typeof value.onboarding === \"object\" && value.onboarding !== null) {\n const onboarding = value.onboarding as Record<string, unknown>;\n if (\n onboarding.input_style === \"freeform\" ||\n onboarding.input_style === \"structured\" ||\n onboarding.input_style === \"repo\"\n ) {\n meta.onboarding = {\n input_style: onboarding.input_style,\n ...(typeof onboarding.placeholder === \"string\"\n ? { placeholder: onboarding.placeholder }\n : {}),\n ...(Array.isArray(onboarding.fields) ? { fields: onboarding.fields } : {}),\n };\n }\n }\n return Object.keys(meta).length > 0 ? meta : undefined;\n}\n\nfunction normalizeLegacyBinding(value: unknown): unknown {\n if (typeof value === \"string\") {\n return value.replace(/\\$\\{([A-Za-z_][A-Za-z0-9_]*)\\}/g, (_match, key: string) => {\n const normalized = LEGACY_DEFAULT_KEYS[key];\n return `\\${defaults.${normalized ?? `parameters.${key}`}}`;\n });\n }\n if (Array.isArray(value)) return value.map(normalizeLegacyBinding);\n if (typeof value !== \"object\" || value === null) return value;\n return Object.fromEntries(\n Object.entries(value).map(([key, nested]) => [key, normalizeLegacyBinding(nested)]),\n );\n}\n\n/** Renders a non-string v1 check for display; a cyclic value must not escape as a throw. */\nfunction renderLegacyCheck(check: unknown): string {\n try {\n return JSON.stringify(check) ?? String(check);\n } catch {\n return String(check);\n }\n}\n\n/** The only v1 `on_fail` a gate can keep: a v2 gate always pauses for a human. */\nconst LEGACY_GATE_ON_FAIL = \"pause-for-human\";\n\ntype LegacyNode = z.infer<typeof LegacyNodeSchema>;\n\n/**\n * Converts a v1 `type: gate` into a first-class v2 gate that parks for a human.\n * A v1 `check` is legacy syntax the v2 evaluator cannot run, so the gate pauses\n * unconditionally and shows the criterion to the approver — pausing too often is\n * recoverable, silently never pausing is not. Shapes a v2 gate cannot honour are refused.\n */\nfunction normalizeLegacyGate(\n node: LegacyNode,\n index: number,\n label: string,\n description: string,\n):\n | { ok: true; node: { id: string } & Record<string, unknown> }\n | { ok: false; error: FlowDefinitionIssue } {\n const data = node.data ?? {};\n const raw = data as Record<string, unknown>;\n const refuse = (field: string, message: string) => ({\n ok: false as const,\n error: { path: `nodes.${index}.data.${field}`, message },\n });\n\n if (data.optional === true) {\n return refuse(\"optional\", `gate ${node.id} cannot be optional — a skippable gate never gates`);\n }\n if (raw.on_fail !== undefined && raw.on_fail !== LEGACY_GATE_ON_FAIL) {\n return refuse(\n \"on_fail\",\n `gate ${node.id} has unsupported on_fail ${JSON.stringify(raw.on_fail)}; only \"${LEGACY_GATE_ON_FAIL}\" can be preserved`,\n );\n }\n\n // The check is only ever shown, never evaluated, so an odd shape is rendered, not refused.\n const check =\n raw.check === undefined || raw.check === null || raw.check === \"\"\n ? undefined\n : typeof raw.check === \"string\"\n ? raw.check\n : renderLegacyCheck(raw.check);\n const basePrompt = data.message ?? description;\n const prompt =\n check !== undefined\n ? `${basePrompt}\\n\\nApproval criterion (not evaluated automatically): ${check}`\n : basePrompt;\n return {\n ok: true,\n node: {\n id: node.id,\n label,\n description,\n phase: data.phase,\n run: {\n kind: \"gate\",\n prompt,\n schema: { kind: \"text\" },\n assets: data.assets && data.assets.length > 0 ? [...new Set(data.assets)] : undefined,\n },\n // No `contract.input`: a gate resolves no bindings, so v1 parameters would be dead weight.\n control: data.parallel_group ? { parallelGroup: data.parallel_group } : undefined,\n },\n };\n}\n\n/**\n * Converts a recognized v1 definition to strict v2 without mutating the authored input.\n * A v1 gate becomes a real v2 gate; other non-executable legacy nodes become inert\n * placeholders so dependency and terminal semantics survive.\n */\nexport function normalizeV1(data: unknown): FlowDefinitionParseResult {\n const legacyResult = LegacyFlowSchema.safeParse(data);\n if (!legacyResult.success) return failure(legacyResult.error);\n const legacy = legacyResult.data;\n\n const contradiction = (legacy.nodes ?? []).findIndex(\n (node) => node.data?.optional === true && node.data.approval?.mandatory === true,\n );\n if (contradiction !== -1) {\n return {\n ok: false,\n errors: [\n {\n path: `nodes.${contradiction}.data`,\n message: \"a node cannot be both optional and a mandatory approval gate\",\n },\n ],\n };\n }\n\n const nodes: Array<{ id: string } & Record<string, unknown>> = [];\n for (const [index, node] of (legacy.nodes ?? []).entries()) {\n const data = node.data ?? {};\n const kind = node.type;\n\n const label = data.label ?? node.label ?? data.skill ?? node.skill ?? node.id;\n const description = node.description ?? data.description ?? data.message ?? label;\n if (kind === \"sub-flow\" && data.flow) {\n const delegatedAsset = `flow:${data.flow}`;\n const assets = [...new Set([delegatedAsset, ...(data.assets ?? [])])];\n const parameters = data.parameters ?? {};\n const control = {\n optional: data.optional,\n parallelGroup: data.parallel_group,\n };\n nodes.push({\n id: node.id,\n label,\n description,\n phase: data.phase,\n run: {\n kind: \"sub-flow\",\n flow: data.flow,\n passContext: data.pass_context,\n assets,\n },\n contract:\n Object.keys(parameters).length > 0\n ? { input: normalizeLegacyBinding(parameters) }\n : undefined,\n control: Object.values(control).some((value) => value !== undefined) ? control : undefined,\n });\n continue;\n }\n\n if (kind === \"gate\") {\n const gateResult = normalizeLegacyGate(node, index, label, description);\n if (!gateResult.ok) return { ok: false, errors: [gateResult.error] };\n nodes.push(gateResult.node);\n continue;\n }\n\n if (kind !== \"skill\") {\n const delegatedAsset = kind === \"sub-flow\" && data.flow ? `flow:${data.flow}` : undefined;\n const assets = [\n ...new Set([...(delegatedAsset ? [delegatedAsset] : []), ...(data.assets ?? [])]),\n ];\n const parameters = data.parameters ?? {};\n nodes.push({\n id: node.id,\n label,\n description,\n phase: data.phase,\n run: {\n kind: \"router\",\n routes: [{ when: \"default\", target: null }],\n assets: assets.length > 0 ? assets : undefined,\n },\n contract: {\n requires: [{ expr: \"false\" }],\n input:\n Object.keys(parameters).length > 0 ? normalizeLegacyBinding(parameters) : undefined,\n },\n control: { optional: true, parallelGroup: data.parallel_group },\n });\n continue;\n }\n\n const parameters = { ...(data.parameters ?? {}) };\n const authoredInstruction = parameters.instructions;\n delete parameters.instructions;\n const instruction =\n typeof authoredInstruction === \"string\" && authoredInstruction.length > 0\n ? authoredInstruction\n : description;\n const skill = data.skill ?? node.skill;\n const skillAsset = skill\n ? `skill:${skill}${data.version !== undefined ? `#${data.version}` : \"\"}`\n : undefined;\n const assets = [...(skillAsset ? [skillAsset] : []), ...(data.assets ?? [])];\n const control = {\n optional: data.optional,\n parallelGroup: data.parallel_group,\n };\n\n nodes.push({\n id: node.id,\n label,\n description,\n phase: data.phase,\n run: {\n kind: \"agent\",\n instruction,\n assets: assets.length > 0 ? assets : undefined,\n },\n contract:\n Object.keys(parameters).length > 0\n ? { input: normalizeLegacyBinding(parameters) }\n : undefined,\n gate: data.approval?.mandatory === true ? { approval: \"mandatory\" } : undefined,\n control: Object.values(control).some((value) => value !== undefined) ? control : undefined,\n });\n }\n\n const nodeIds = new Set(nodes.map((node) => node.id));\n const edges = (legacy.edges ?? []).map((edge, index) => ({\n ...edge,\n id: edge.id ?? `${edge.source}-${edge.target}-${index}`,\n type: edge.type ?? \"optional\",\n }));\n\n const anchor =\n nodes.find((node) => node.id === legacy.entry) ?? (nodes.length > 0 ? nodes[0] : undefined);\n if (anchor && legacy.requires && legacy.requires.length > 0) {\n const run = anchor.run as Record<string, unknown>;\n const existingAssets = Array.isArray(run.assets) ? run.assets : [];\n run.assets = [...new Set([...existingAssets, ...legacy.requires])];\n }\n\n const candidate = {\n schemaVersion: 2,\n id: legacy.id,\n version: legacy.version ?? \"1.0.0\",\n name: legacy.name,\n description: legacy.description,\n defaults: normalizeDefaults(legacy.globals),\n entry: legacy.entry !== undefined && nodeIds.has(legacy.entry) ? legacy.entry : undefined,\n nodes,\n edges,\n meta: normalizeMeta({ ...(legacy.metadata ?? {}), ...(legacy.meta ?? {}) }),\n };\n const normalized = parseFlowDefinitionStructure({ ...candidate, edges: [] });\n if (!normalized.success) return failure(normalized.error);\n const parsed: ParsedFlowDefinition = { ...normalized.data, edges };\n return success(parsed);\n}\n\n/**\n * Parses strict v2 or normalizes v1, reusing an unchanged successful result across boundaries.\n * Only an absent own schema version permits compatibility normalization.\n */\nexport function parseFlowDefinition(data: unknown): FlowDefinitionParseResult {\n if (typeof data === \"object\" && data !== null) {\n const recorded = successfullyParsedDefinitions.get(data);\n if (recorded !== undefined && definitionFingerprint(data) === recorded) {\n return { ok: true, data: data as ParsedFlowDefinition };\n }\n }\n if (typeof data === \"object\" && data !== null && Object.hasOwn(data, \"schemaVersion\")) {\n const result = FlowDefinitionSchema.safeParse(data);\n return result.success ? success(result.data) : failure(result.error);\n }\n return normalizeV1(data);\n}\n"]}
@@ -1,12 +1,12 @@
1
- import { WorkspacePlugin } from './chunk-LZRA54EP.js';
2
- import { buildWorkspaceToolDefs } from './chunk-I4C4AHZB.js';
1
+ import { WorkspacePlugin } from './chunk-ZKX5KY2K.js';
2
+ import { buildWorkspaceToolDefs } from './chunk-PJY4J37J.js';
3
3
  import { findAiAssetsRoot } from './chunk-7IH3RKKK.js';
4
4
  import { WebSocketServerTransport } from './chunk-5LKOAX7I.js';
5
5
  import { assembleSystemPrompt, buildCapabilitiesPromptSection } from './chunk-W3UDISS2.js';
6
6
  import { prepareNativePolicy, codexInstanceEnvironment, parseCodexCredential, parseCodexRefreshInput, parseCodexRefreshResult } from './chunk-PE3A6FFW.js';
7
- import { resolveFlowPath } from './chunk-YU2CVP3M.js';
7
+ import { resolveFlowPath } from './chunk-SZEICOXM.js';
8
8
  import { findAiAssetsRoot as findAiAssetsRoot$1, deployCatalogEntry, undeployCatalogEntry } from './chunk-Q6NDQ6BH.js';
9
- import { registerBuiltinConnectors, buildConnectorPromptSection, findMissingPackages, installNpmPackages, ConnectorManager, buildSdkConnectorTools, buildLazySdkFlowTools, describeFlowOperations, buildConnectorToolDefs, buildFlowToolDefs, SessionNodeExecutor, SessionSubpromptRunner, ClassifierSubpromptRunner, SessionInlineSubFlowRunner, driveOrchestratorTurn, buildSdkFlowTools } from './chunk-FUKJ4IU6.js';
9
+ import { registerBuiltinConnectors, buildConnectorPromptSection, findMissingPackages, installNpmPackages, ConnectorManager, buildSdkConnectorTools, buildLazySdkFlowTools, describeFlowOperations, buildConnectorToolDefs, buildFlowToolDefs, SessionNodeExecutor, SessionSubpromptRunner, ClassifierSubpromptRunner, SessionInlineSubFlowRunner, driveOrchestratorTurn, buildSdkFlowTools } from './chunk-LIEOC4JE.js';
10
10
  import { loadYamlConnectorDeclarations, withMaterializedConnectorDeclarations, SecretProviderChain, ConnectorStartupError, PreMintedSecretProvider, InMemorySecretProvider, resolvedConfigToDeclarations, isKnownSecretRef, deriveSingleMaterializedConnectorDeclaration } from './chunk-2JANXYTJ.js';
11
11
  import { EventNormalizer } from './chunk-Q2AOHZFF.js';
12
12
  import { probeResumeTranscript, transcriptStoreForRuntime } from './chunk-6S5KL76M.js';
@@ -16,9 +16,9 @@ import { dispatchCapability } from './chunk-ERDK4ATM.js';
16
16
  import { classifyClaudeSdkError } from './chunk-BGY4KTU6.js';
17
17
  import { agentExecRequested } from './chunk-YROR332M.js';
18
18
  import { toAgentEffort, createDriver, catalogLayer, providerCredentialEnvName, toMergedRegistry, registryCredentialEnv, AI_PROVIDER_PRESETS, AgentDriver } from './chunk-H5EGBMZ5.js';
19
- import { loadFlow } from './chunk-YO654LTQ.js';
20
- import { parseFlowDefinition } from './chunk-PZL6BEWG.js';
21
- import { renderStimulusPrompt } from './chunk-DQ64NLMC.js';
19
+ import { loadFlow } from './chunk-YVWUHPQW.js';
20
+ import { parseFlowDefinition } from './chunk-DIQDYNXZ.js';
21
+ import { renderStimulusPrompt } from './chunk-K3IBZ2UZ.js';
22
22
  import { withActivityLabelJsonSchema, TOOL_ACTIVITY_PROMPT_SECTION, SESSION_ROOT_CONNECTOR_ID, PROTOCOL_VERSION } from './chunk-DJZRPPFJ.js';
23
23
  import { resolveSettings, loadProviderRegistry } from './chunk-UWU572Q6.js';
24
24
  import { resolveRuntimeAssets } from './chunk-5RHPNNWP.js';
@@ -4800,6 +4800,43 @@ var DriverSwapGate = class {
4800
4800
  }
4801
4801
  };
4802
4802
 
4803
+ // runner/src/pending-turns.ts
4804
+ var PendingTurns = class {
4805
+ constructor(emitIdle) {
4806
+ this.emitIdle = emitIdle;
4807
+ }
4808
+ emitIdle;
4809
+ count = 0;
4810
+ idleOwed = false;
4811
+ /** Count a turn as taken on. Returns an idempotent `end`; call it in a `finally`. */
4812
+ begin() {
4813
+ this.count += 1;
4814
+ let ended = false;
4815
+ return () => {
4816
+ if (ended) return;
4817
+ ended = true;
4818
+ this.count -= 1;
4819
+ if (this.count === 0 && this.idleOwed) {
4820
+ this.idleOwed = false;
4821
+ this.emitIdle();
4822
+ }
4823
+ };
4824
+ }
4825
+ /** Call at a turn's end, while that turn is still counted: whether to report idle now. */
4826
+ shouldReportIdle() {
4827
+ if (this.count > 1) {
4828
+ this.idleOwed = true;
4829
+ return false;
4830
+ }
4831
+ this.idleOwed = false;
4832
+ return true;
4833
+ }
4834
+ /** Turns taken on and not finished; for diagnostics and tests. */
4835
+ get size() {
4836
+ return this.count;
4837
+ }
4838
+ };
4839
+
4803
4840
  // runner/src/serial-lock.ts
4804
4841
  function createSerialLock() {
4805
4842
  let tail = Promise.resolve();
@@ -8822,6 +8859,9 @@ async function startAgentServer(opts) {
8822
8859
  let driverStartInFlight = null;
8823
8860
  const driverSwapGate = new DriverSwapGate();
8824
8861
  const compactionGate = new CompactionGate();
8862
+ const pendingTurns = new PendingTurns(() => {
8863
+ if (!compacting) sendEvent({ type: "status", phase: "idle" });
8864
+ });
8825
8865
  let driverRestartChain = Promise.resolve();
8826
8866
  let driver = secretsMode === "env" ? agentSession.driver : void 0;
8827
8867
  let secretsProvisioned = secretsMode === "env";
@@ -8932,7 +8972,13 @@ async function startAgentServer(opts) {
8932
8972
  if (driver !== starting) return;
8933
8973
  starting.on("agent-event", (event) => {
8934
8974
  const normalized = normalizer.normalize(event);
8935
- for (const e of normalized) forwardNormalizedEvent(e);
8975
+ const turnEnded = event.type === "agent_end";
8976
+ for (const e of normalized) {
8977
+ if (turnEnded && !compacting && e.type === "status" && e.phase === "idle" && !pendingTurns.shouldReportIdle()) {
8978
+ continue;
8979
+ }
8980
+ forwardNormalizedEvent(e);
8981
+ }
8936
8982
  });
8937
8983
  starting.on("error", (err) => {
8938
8984
  log(`[serve] driver error: ${err.message}`);
@@ -8984,18 +9030,28 @@ async function startAgentServer(opts) {
8984
9030
  return stimulusBus;
8985
9031
  }
8986
9032
  function awaitFlowAgentEnd(prompt, timeoutMs) {
8987
- return dispatchFlowTurn(
8988
- {
8989
- gate: driverSwapGate,
8990
- awaitCompactionIdle: () => awaitCompactionIdle("flow turn"),
8991
- isCompacting: () => !compactionGate.isIdle(),
8992
- ensureDriverStarted,
8993
- getDriver: () => driver
8994
- },
8995
- prompt,
8996
- timeoutMs
9033
+ return countPendingTurn(
9034
+ () => dispatchFlowTurn(
9035
+ {
9036
+ gate: driverSwapGate,
9037
+ awaitCompactionIdle: () => awaitCompactionIdle("flow turn"),
9038
+ isCompacting: () => !compactionGate.isIdle(),
9039
+ ensureDriverStarted,
9040
+ getDriver: () => driver
9041
+ },
9042
+ prompt,
9043
+ timeoutMs
9044
+ )
8997
9045
  );
8998
9046
  }
9047
+ async function countPendingTurn(run) {
9048
+ const end = pendingTurns.begin();
9049
+ try {
9050
+ return await run();
9051
+ } finally {
9052
+ end();
9053
+ }
9054
+ }
8999
9055
  function ensureResourceManagerForFlow() {
9000
9056
  if (!resourceManager) {
9001
9057
  registerBuiltinConnectors();
@@ -10041,7 +10097,7 @@ async function startAgentServer(opts) {
10041
10097
  log(`[serve] flow user-message turn failed: ${errMsg}`);
10042
10098
  sendEvent({ type: "error", message: `Flow turn failed: ${errMsg}`, fatal: false });
10043
10099
  } finally {
10044
- sendEvent({ type: "status", phase: "idle" });
10100
+ if (pendingTurns.shouldReportIdle()) sendEvent({ type: "status", phase: "idle" });
10045
10101
  }
10046
10102
  return;
10047
10103
  }
@@ -10366,10 +10422,10 @@ async function startAgentServer(opts) {
10366
10422
  await handleSessionInit(cmd);
10367
10423
  break;
10368
10424
  case "prompt":
10369
- await handlePrompt(cmd);
10425
+ await countPendingTurn(() => handlePrompt(cmd));
10370
10426
  break;
10371
10427
  case "reply":
10372
- await handleReply(cmd);
10428
+ await countPendingTurn(() => handleReply(cmd));
10373
10429
  break;
10374
10430
  case "cancel":
10375
10431
  await handleCancel();
@@ -10679,5 +10735,5 @@ function touchSession(state) {
10679
10735
  }
10680
10736
 
10681
10737
  export { CLAUDE_CODE_CREDENTIALS_KEY, COMPILE_MANIFEST_FILENAME, CapabilityRegistry, DEFAULT_CAPABILITY_CALL_TIMEOUT_MS, DEFAULT_COALESCE_MS, DEFAULT_FLOW_MUTATE_CONNECTOR_WAIT_MS, MOUNT_LIST_MAX_DEPTH, MOUNT_LIST_MAX_ENTRIES, MOUNT_READ_DEADLINE_FACTOR, MOUNT_STAT_BUDGET_MS, MOUNT_STAT_MAX_ENTRIES, MOUNT_TREE_OP_DEADLINE_FACTOR, MarkdownStreamer, PreInitRingSink, ResourceOperationError, SESSION_ROOT_WRITABLE_DIRS, SESSION_ROOT_WRITABLE_FILES, WS_AUTH_TOKEN_ENV, WS_AUTH_TOKEN_FILE_ENV, agentDefinitionExists, bootstrapCapabilityRegistry, bootstrapRunnerLogStore, buildAgentResources, buildClientCapabilityHandler, buildConnectorTokenMediator, buildContextSection, buildEnvironmentSection, buildResourcesAvailablePayload, buildStoreSnapshotReplay, builtinCapabilities, capabilityLogInstance, clearPreInitRingSink, clearSession, compileComposition, computeCapabilitySignature, computeDirectoryTotals, connectorRefreshKind, createAgentSession, createFlowConnectorReadiness, createManagedCodexSubpromptDriver, createSessionStimulusBus, defineCapability, deleteSession, dispatchResourceRequest, dispatchRunnerCapabilityInvocation, emitSystemPromptComposed, ensureClaudeSettingsDisablesConnectors, ensureGitConfigInclude, executeConnectorMutate, extractClaudeAiOauthExpiresAt, flowRunDrivesTurns, flowStartNeedsDriverRestart, getPreInitRingSink, handleMountResourceRequest, handleResourceRequest, handleSessionRootResourceRequest, hasNonTerminalFlow, hostOpResumeStimulus, installPreInitRingSink, isSessionRootPathAllowed, isTerminalFlowStatus, listSessions, loadAgentManifest, loadCompileManifest, loadCompileManifestFromDir, loadManagedCodexHostConfig, loadSession, loadSessionById, mcpAuthSecretKey, newSession, nulTailPaddingLength, pickChatFlowTarget, pickFlowToolTarget, pickRepointedManager, planFlowMutate, prepareCodexTools, reconcilePendingDecisions, recreateKeepingLiveFlows, registerActiveFlow, registerCompositionCapabilities, rejectCapabilityOnApprovalDeny, rejectPendingCapabilityCallsOnDisconnect, resetRunnerLogStore, resolveAgentComposition, resolveAgentMixins, resolveBinding, resolveCapabilityCallTimeoutMs, resolveCapabilityResult, resolveComposition, resolveFlowMutateConnectorWaitMs, resolveMixin, restoredRunHasWorkToResume, runAgentChat, saveSession, setCurrentSession, setUpFlowConnector, startAgentServer, stimulusFromMetas, supportsLiveToolUpdates, takeRunnerWsAuthToken, toActiveFlowTarget, touchSession, validateInputResponse, writeClaudeCodeCredentialsFile };
10682
- //# sourceMappingURL=chunk-RPZ6ZE7S.js.map
10683
- //# sourceMappingURL=chunk-RPZ6ZE7S.js.map
10738
+ //# sourceMappingURL=chunk-G3YTK6UI.js.map
10739
+ //# sourceMappingURL=chunk-G3YTK6UI.js.map