@skaile/workspaces 3.9.1 → 3.10.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 (106) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/{asset-feeds-TFQDBOYM.js → asset-feeds-DT4B37Z3.js} +4 -4
  3. package/dist/{asset-feeds-TFQDBOYM.js.map → asset-feeds-DT4B37Z3.js.map} +1 -1
  4. package/dist/asset-manager/index.js +1 -1
  5. package/dist/bridge/drivers/claude-sdk.js +16 -12
  6. package/dist/bridge/drivers/claude-sdk.js.map +1 -1
  7. package/dist/bridge/drivers/codex.js +1 -1
  8. package/dist/bridge/drivers/continue.js +2 -2
  9. package/dist/bridge/drivers/echo.js +1 -1
  10. package/dist/bridge/drivers/gemini.js +3 -3
  11. package/dist/bridge/drivers/goose.js +2 -2
  12. package/dist/bridge/drivers/omp.js +1 -1
  13. package/dist/bridge/drivers/opencode.js +2 -2
  14. package/dist/bridge/drivers/qwen.js +3 -3
  15. package/dist/bridge/index.js +2 -2
  16. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
  17. package/dist/{chunk-HGFKNJA5.js → chunk-2D5BYAL6.js} +23 -4
  18. package/dist/chunk-2D5BYAL6.js.map +1 -0
  19. package/dist/{chunk-R2IQAJSU.js → chunk-4D4N2VFR.js} +6 -6
  20. package/dist/{chunk-R2IQAJSU.js.map → chunk-4D4N2VFR.js.map} +1 -1
  21. package/dist/{chunk-6OVS6IAK.js → chunk-7NRZGSTY.js} +2 -2
  22. package/dist/{chunk-6OVS6IAK.js.map → chunk-7NRZGSTY.js.map} +1 -1
  23. package/dist/{chunk-WUOHDYDH.js → chunk-7WTXE6YS.js} +2 -2
  24. package/dist/{chunk-WUOHDYDH.js.map → chunk-7WTXE6YS.js.map} +1 -1
  25. package/dist/{chunk-HASPIEOD.js → chunk-A5Y2O23Y.js} +6 -6
  26. package/dist/{chunk-HASPIEOD.js.map → chunk-A5Y2O23Y.js.map} +1 -1
  27. package/dist/{chunk-DPIOHTDD.js → chunk-DQ5MUABO.js} +3 -3
  28. package/dist/{chunk-DPIOHTDD.js.map → chunk-DQ5MUABO.js.map} +1 -1
  29. package/dist/{chunk-BO4NC4G7.js → chunk-GE3EDS2M.js} +27 -12
  30. package/dist/chunk-GE3EDS2M.js.map +1 -0
  31. package/dist/{chunk-2KANBOIO.js → chunk-H6KQB6HL.js} +53 -10
  32. package/dist/chunk-H6KQB6HL.js.map +1 -0
  33. package/dist/{chunk-ZIC7S44L.js → chunk-KBAYZ6DK.js} +3 -3
  34. package/dist/{chunk-ZIC7S44L.js.map → chunk-KBAYZ6DK.js.map} +1 -1
  35. package/dist/{chunk-BIA7TJWH.js → chunk-OT6V4IE7.js} +2 -2
  36. package/dist/{chunk-BIA7TJWH.js.map → chunk-OT6V4IE7.js.map} +1 -1
  37. package/dist/{chunk-32MHUAED.js → chunk-QRL23WVA.js} +3 -3
  38. package/dist/{chunk-32MHUAED.js.map → chunk-QRL23WVA.js.map} +1 -1
  39. package/dist/{chunk-K7W7HC3C.js → chunk-SI7WZARX.js} +4 -4
  40. package/dist/{chunk-K7W7HC3C.js.map → chunk-SI7WZARX.js.map} +1 -1
  41. package/dist/{chunk-RPZAX3II.js → chunk-UQESUYDT.js} +3 -3
  42. package/dist/{chunk-RPZAX3II.js.map → chunk-UQESUYDT.js.map} +1 -1
  43. package/dist/{chunk-NXUUNPIB.js → chunk-XDAOECL4.js} +3 -3
  44. package/dist/{chunk-NXUUNPIB.js.map → chunk-XDAOECL4.js.map} +1 -1
  45. package/dist/{chunk-HNKVHE4B.js → chunk-XDX2XJTO.js} +4 -4
  46. package/dist/{chunk-HNKVHE4B.js.map → chunk-XDX2XJTO.js.map} +1 -1
  47. package/dist/cli/index.js +30 -30
  48. package/dist/connectors/index.js +4 -4
  49. package/dist/{ensure-sources-PDAH5SAV.js → ensure-sources-HS66JB6Y.js} +4 -4
  50. package/dist/{ensure-sources-PDAH5SAV.js.map → ensure-sources-HS66JB6Y.js.map} +1 -1
  51. package/dist/factory-assets/connectors/box.js +4 -4
  52. package/dist/factory-assets/connectors/deploy.js +4 -4
  53. package/dist/factory-assets/connectors/devserver.js +4 -4
  54. package/dist/factory-assets/connectors/flow/CONNECTOR.md +14 -6
  55. package/dist/factory-assets/connectors/flow/adapter.d.ts +4 -3
  56. package/dist/factory-assets/connectors/flow/adapter.d.ts.map +1 -1
  57. package/dist/factory-assets/connectors/flow/adapter.js +4 -4
  58. package/dist/factory-assets/connectors/flow/prompt-fragments.d.ts.map +1 -1
  59. package/dist/factory-assets/connectors/flow/prompt-fragments.js +1 -1
  60. package/dist/factory-assets/connectors/flow/run-flow.js +5 -5
  61. package/dist/factory-assets/connectors/flow.js +4 -4
  62. package/dist/factory-assets/connectors/git.js +4 -4
  63. package/dist/factory-assets/connectors/gmail.js +4 -4
  64. package/dist/factory-assets/connectors/googledrive.js +4 -4
  65. package/dist/factory-assets/connectors/local.js +4 -4
  66. package/dist/factory-assets/connectors/mattermost.js +4 -4
  67. package/dist/factory-assets/connectors/memory.js +4 -4
  68. package/dist/factory-assets/connectors/minio.js +4 -4
  69. package/dist/factory-assets/connectors/postgres.js +4 -4
  70. package/dist/factory-assets/connectors/s3.js +4 -4
  71. package/dist/factory-assets/connectors/sharepoint.js +4 -4
  72. package/dist/factory-assets/connectors/sqlite.js +4 -4
  73. package/dist/factory-assets/connectors/static-server.js +4 -4
  74. package/dist/factory-assets/connectors/tunnel.js +4 -4
  75. package/dist/factory-assets/connectors/webdav.js +4 -4
  76. package/dist/factory-assets/connectors/xstate-store.js +4 -4
  77. package/dist/factory-assets/connectors/xstate.js +4 -4
  78. package/dist/{helpers-5OP6O3WS.js → helpers-GPD3WJQQ.js} +4 -4
  79. package/dist/{helpers-5OP6O3WS.js.map → helpers-GPD3WJQQ.js.map} +1 -1
  80. package/dist/{library-publish-NNGVXORH.js → library-publish-T7VSMTGZ.js} +6 -6
  81. package/dist/{library-publish-NNGVXORH.js.map → library-publish-T7VSMTGZ.js.map} +1 -1
  82. package/dist/{open-library-5CEK2TSH.js → open-library-FGHDS7AZ.js} +5 -5
  83. package/dist/{open-library-5CEK2TSH.js.map → open-library-FGHDS7AZ.js.map} +1 -1
  84. package/dist/{project-QOVJ7I6I.js → project-GU7X4WO2.js} +5 -5
  85. package/dist/{project-QOVJ7I6I.js.map → project-GU7X4WO2.js.map} +1 -1
  86. package/dist/runner/index.js +7 -7
  87. package/dist/runner/src/serve-credentials.d.ts +28 -0
  88. package/dist/runner/src/serve-credentials.d.ts.map +1 -1
  89. package/dist/runner/src/serve.d.ts +2 -2
  90. package/dist/runner/src/serve.d.ts.map +1 -1
  91. package/dist/sdk/asset-manager.js +1 -1
  92. package/dist/sdk/bridge.js +2 -2
  93. package/dist/sdk/index.js +7 -7
  94. package/dist/sdk/runner.js +7 -7
  95. package/dist/{setup-ZB6U5MSS.js → setup-TF7IP2IN.js} +4 -4
  96. package/dist/{setup-ZB6U5MSS.js.map → setup-TF7IP2IN.js.map} +1 -1
  97. package/dist/{source-O34YYH3U.js → source-5GTOJ4SD.js} +6 -6
  98. package/dist/{source-O34YYH3U.js.map → source-5GTOJ4SD.js.map} +1 -1
  99. package/dist/{source-manifest-publish-5TRCSBK7.js → source-manifest-publish-KR5MXXGD.js} +7 -7
  100. package/dist/{source-manifest-publish-5TRCSBK7.js.map → source-manifest-publish-KR5MXXGD.js.map} +1 -1
  101. package/dist/tui/index.js +7 -7
  102. package/dist/workspace-plugin/index.js +1 -1
  103. package/package.json +1 -1
  104. package/dist/chunk-2KANBOIO.js.map +0 -1
  105. package/dist/chunk-BO4NC4G7.js.map +0 -1
  106. package/dist/chunk-HGFKNJA5.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../bridge/src/drivers/gemini.ts"],"names":[],"mappings":"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","file":"chunk-HNKVHE4B.js","sourcesContent":["import type { DriverTarget } from \"@skaile/workspaces/plugin-registry\";\nimport type { Logger } from \"@skaile/workspaces/types\";\nimport * as z from \"zod\";\nimport { getBridgeLogger } from \"../logger.js\";\nimport { fetchProviderModels, getStaticModels, type ModelEntry } from \"../models.js\";\nimport { BUILTIN_DRIVER_CATALOG } from \"../registry.js\";\nimport type { AgentConfig, DriverInfo } from \"../types.js\";\nimport { extractCost, extractText, extractTokens, SubprocessCliDriver } from \"./_subprocess-cli.js\";\n\n/**\n * Shared base for the Gemini-CLI event family. Gemini CLI and Qwen Code (a fork\n * of Gemini CLI) emit the same `stream-json` event shape, so both dispatch the\n * same {@link handleJson}: `init`/`system` → session capture, `message`/\n * `assistant` → streamed assistant text, `tool_use` / `tool_result` → tool\n * events, `result` → tokens + cost.\n *\n * @docLink packages/bridge/drivers#gemini-driver\n */\nexport abstract class GeminiFamilyDriver extends SubprocessCliDriver {\n protected handleJson(json: any): void {\n switch (json?.type) {\n case \"init\":\n case \"system\":\n this.captureSession(json.sessionId ?? json.session_id ?? json.id);\n break;\n\n case \"message\":\n case \"assistant\": {\n const role = json.role ?? json.message?.role ?? \"assistant\";\n if (role !== \"assistant\") break;\n const text = extractText(json);\n if (json.done === true || json.final === true || json.finished === true) {\n this.pushAssistantEnd(text);\n } else {\n this.pushAssistantDelta(text);\n }\n break;\n }\n\n case \"tool_use\":\n case \"tool_call\":\n this.pushToolCall(json.name ?? json.tool ?? \"tool\", json.input ?? json.args ?? {});\n break;\n\n case \"tool_result\":\n this.pushToolResult(\n json.name ?? json.tool ?? \"tool\",\n json.result ?? json.output ?? json.content,\n Boolean(json.is_error ?? json.isError ?? json.error),\n );\n break;\n\n case \"error\":\n this.pushError(this.classifyMessage(String(json.message ?? json.error ?? \"error\")));\n break;\n\n case \"result\":\n this.captureSession(json.sessionId ?? json.session_id);\n this.pushResult({\n tokens: extractTokens(json),\n costUsd: extractCost(json),\n summary: extractText(json) || \"Task completed\",\n });\n break;\n }\n }\n}\n\n/**\n * Agent driver for the Google **Gemini CLI** (`gemini`).\n *\n * Spawns `gemini -p \"<prompt>\" --output-format stream-json` per turn and maps\n * the stream-json events to the unified {@link AgentEvent} stream. Google /\n * Vertex models only — uses `GEMINI_API_KEY` from `apiKeys.google` /\n * `apiKeys.gemini` / env.\n *\n * @remarks\n * - **Requires Gemini CLI ≥ v0.6.1** — earlier versions reject\n * `--output-format`. A too-old CLI surfaces as a `process`-category exit error.\n * - **Session resume is not available in headless (`-p`) mode** — the CLI errors\n * if asked to resume non-interactively, so this driver runs single-turn per\n * process and logs a warning when a resume id is present.\n * - Exit codes: `42` → input/validation error, `53` → turn-limit (treated as a\n * completed turn).\n *\n * @see https://github.com/google-gemini/gemini-cli\n * @docLink packages/bridge/drivers#gemini-driver\n */\nexport class GeminiDriver extends GeminiFamilyDriver {\n readonly driverInfo: DriverInfo = {\n id: \"gemini\",\n name: \"Gemini CLI\",\n modelAgnostic: false,\n supportsInBandAbort: false,\n };\n\n protected readonly log: Logger = getBridgeLogger(\"gemini\");\n protected readonly defaultBin = \"gemini\";\n protected readonly productName = \"Gemini CLI\";\n protected readonly envPrefix = \"GEMINI\";\n\n protected buildArgs(message: string, resumeId: string | undefined): string[] {\n if (resumeId) {\n this.log.warn(\"Gemini CLI cannot resume in headless mode; starting a fresh turn\", {\n resumeId,\n });\n }\n const args = [\"-p\", message, \"--output-format\", \"stream-json\"];\n if (this.config.model) args.push(\"-m\", this.config.model);\n return args;\n }\n\n protected buildEnv(): Record<string, string> {\n const env = this.baseEnv([\"GEMINI_API_KEY\", \"GOOGLE_API_KEY\"]);\n const key =\n this.config.apiKeys?.google ??\n this.config.apiKeys?.gemini ??\n this.config.env?.GEMINI_API_KEY ??\n process.env.GEMINI_API_KEY;\n if (key) env.GEMINI_API_KEY = key;\n return env;\n }\n\n protected installHint(): string {\n return \"Gemini CLI is not installed or not on your PATH. Install it with `npm i -g @google/gemini-cli` (≥ v0.6.1).\";\n }\n\n protected override classifyExit(code: number | null, signal: NodeJS.Signals | null) {\n if (code === 42) {\n return {\n message: \"Gemini CLI reported an input error (exit 42)\",\n category: \"validation\" as const,\n retryable: false,\n hint: \"The prompt or flags were rejected by Gemini CLI. Check the model name and arguments.\",\n };\n }\n if (code === 53) return null; // turn-limit — the result was already emitted.\n return super.classifyExit(code, signal);\n }\n\n override async listModels(): Promise<ModelEntry[]> {\n const key =\n this.config.apiKeys?.google ?? this.config.apiKeys?.gemini ?? process.env.GEMINI_API_KEY;\n if (!key) return getStaticModels(\"google\");\n const result = await fetchProviderModels(\"google\", key);\n return result.ok && result.models.length > 0 ? result.models : getStaticModels(\"google\");\n }\n}\n\n/**\n * `DriverTarget` wrapper for the gemini driver. Registered into the plugin\n * registry by `registerBuiltinDrivers()`.\n */\nexport const geminiDriverTarget: DriverTarget<AgentConfig> = {\n id: \"gemini\",\n displayName: BUILTIN_DRIVER_CATALOG.gemini?.name ?? \"Gemini CLI\",\n apiVersion: 1,\n configSchema: z.custom<AgentConfig>(() => true),\n create: async (config, _ctx) => new GeminiDriver(config),\n listModels: async (apiKeys) =>\n new GeminiDriver({ cwd: process.cwd(), sessionId: \"model-list\", apiKeys }).listModels(),\n};\n"]}
1
+ {"version":3,"sources":["../bridge/src/drivers/gemini.ts"],"names":[],"mappings":"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","file":"chunk-XDX2XJTO.js","sourcesContent":["import type { DriverTarget } from \"@skaile/workspaces/plugin-registry\";\nimport type { Logger } from \"@skaile/workspaces/types\";\nimport * as z from \"zod\";\nimport { getBridgeLogger } from \"../logger.js\";\nimport { fetchProviderModels, getStaticModels, type ModelEntry } from \"../models.js\";\nimport { BUILTIN_DRIVER_CATALOG } from \"../registry.js\";\nimport type { AgentConfig, DriverInfo } from \"../types.js\";\nimport { extractCost, extractText, extractTokens, SubprocessCliDriver } from \"./_subprocess-cli.js\";\n\n/**\n * Shared base for the Gemini-CLI event family. Gemini CLI and Qwen Code (a fork\n * of Gemini CLI) emit the same `stream-json` event shape, so both dispatch the\n * same {@link handleJson}: `init`/`system` → session capture, `message`/\n * `assistant` → streamed assistant text, `tool_use` / `tool_result` → tool\n * events, `result` → tokens + cost.\n *\n * @docLink packages/bridge/drivers#gemini-driver\n */\nexport abstract class GeminiFamilyDriver extends SubprocessCliDriver {\n protected handleJson(json: any): void {\n switch (json?.type) {\n case \"init\":\n case \"system\":\n this.captureSession(json.sessionId ?? json.session_id ?? json.id);\n break;\n\n case \"message\":\n case \"assistant\": {\n const role = json.role ?? json.message?.role ?? \"assistant\";\n if (role !== \"assistant\") break;\n const text = extractText(json);\n if (json.done === true || json.final === true || json.finished === true) {\n this.pushAssistantEnd(text);\n } else {\n this.pushAssistantDelta(text);\n }\n break;\n }\n\n case \"tool_use\":\n case \"tool_call\":\n this.pushToolCall(json.name ?? json.tool ?? \"tool\", json.input ?? json.args ?? {});\n break;\n\n case \"tool_result\":\n this.pushToolResult(\n json.name ?? json.tool ?? \"tool\",\n json.result ?? json.output ?? json.content,\n Boolean(json.is_error ?? json.isError ?? json.error),\n );\n break;\n\n case \"error\":\n this.pushError(this.classifyMessage(String(json.message ?? json.error ?? \"error\")));\n break;\n\n case \"result\":\n this.captureSession(json.sessionId ?? json.session_id);\n this.pushResult({\n tokens: extractTokens(json),\n costUsd: extractCost(json),\n summary: extractText(json) || \"Task completed\",\n });\n break;\n }\n }\n}\n\n/**\n * Agent driver for the Google **Gemini CLI** (`gemini`).\n *\n * Spawns `gemini -p \"<prompt>\" --output-format stream-json` per turn and maps\n * the stream-json events to the unified {@link AgentEvent} stream. Google /\n * Vertex models only — uses `GEMINI_API_KEY` from `apiKeys.google` /\n * `apiKeys.gemini` / env.\n *\n * @remarks\n * - **Requires Gemini CLI ≥ v0.6.1** — earlier versions reject\n * `--output-format`. A too-old CLI surfaces as a `process`-category exit error.\n * - **Session resume is not available in headless (`-p`) mode** — the CLI errors\n * if asked to resume non-interactively, so this driver runs single-turn per\n * process and logs a warning when a resume id is present.\n * - Exit codes: `42` → input/validation error, `53` → turn-limit (treated as a\n * completed turn).\n *\n * @see https://github.com/google-gemini/gemini-cli\n * @docLink packages/bridge/drivers#gemini-driver\n */\nexport class GeminiDriver extends GeminiFamilyDriver {\n readonly driverInfo: DriverInfo = {\n id: \"gemini\",\n name: \"Gemini CLI\",\n modelAgnostic: false,\n supportsInBandAbort: false,\n };\n\n protected readonly log: Logger = getBridgeLogger(\"gemini\");\n protected readonly defaultBin = \"gemini\";\n protected readonly productName = \"Gemini CLI\";\n protected readonly envPrefix = \"GEMINI\";\n\n protected buildArgs(message: string, resumeId: string | undefined): string[] {\n if (resumeId) {\n this.log.warn(\"Gemini CLI cannot resume in headless mode; starting a fresh turn\", {\n resumeId,\n });\n }\n const args = [\"-p\", message, \"--output-format\", \"stream-json\"];\n if (this.config.model) args.push(\"-m\", this.config.model);\n return args;\n }\n\n protected buildEnv(): Record<string, string> {\n const env = this.baseEnv([\"GEMINI_API_KEY\", \"GOOGLE_API_KEY\"]);\n const key =\n this.config.apiKeys?.google ??\n this.config.apiKeys?.gemini ??\n this.config.env?.GEMINI_API_KEY ??\n process.env.GEMINI_API_KEY;\n if (key) env.GEMINI_API_KEY = key;\n return env;\n }\n\n protected installHint(): string {\n return \"Gemini CLI is not installed or not on your PATH. Install it with `npm i -g @google/gemini-cli` (≥ v0.6.1).\";\n }\n\n protected override classifyExit(code: number | null, signal: NodeJS.Signals | null) {\n if (code === 42) {\n return {\n message: \"Gemini CLI reported an input error (exit 42)\",\n category: \"validation\" as const,\n retryable: false,\n hint: \"The prompt or flags were rejected by Gemini CLI. Check the model name and arguments.\",\n };\n }\n if (code === 53) return null; // turn-limit — the result was already emitted.\n return super.classifyExit(code, signal);\n }\n\n override async listModels(): Promise<ModelEntry[]> {\n const key =\n this.config.apiKeys?.google ?? this.config.apiKeys?.gemini ?? process.env.GEMINI_API_KEY;\n if (!key) return getStaticModels(\"google\");\n const result = await fetchProviderModels(\"google\", key);\n return result.ok && result.models.length > 0 ? result.models : getStaticModels(\"google\");\n }\n}\n\n/**\n * `DriverTarget` wrapper for the gemini driver. Registered into the plugin\n * registry by `registerBuiltinDrivers()`.\n */\nexport const geminiDriverTarget: DriverTarget<AgentConfig> = {\n id: \"gemini\",\n displayName: BUILTIN_DRIVER_CATALOG.gemini?.name ?? \"Gemini CLI\",\n apiVersion: 1,\n configSchema: z.custom<AgentConfig>(() => true),\n create: async (config, _ctx) => new GeminiDriver(config),\n listModels: async (apiKeys) =>\n new GeminiDriver({ cwd: process.cwd(), sessionId: \"model-list\", apiKeys }).listModels(),\n};\n"]}
package/dist/cli/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
- import { makeInstallCommand, makeCheckCommand, makeCleanCommand, reportInstalledSoftDeps } from '../chunk-HASPIEOD.js';
3
- import { makeSourceCommand, syncProjectSources } from '../chunk-R2IQAJSU.js';
2
+ import { makeInstallCommand, makeCheckCommand, makeCleanCommand, reportInstalledSoftDeps } from '../chunk-A5Y2O23Y.js';
3
+ import { makeSourceCommand, syncProjectSources } from '../chunk-4D4N2VFR.js';
4
4
  import { AI_RESOURCES } from '../chunk-M5D2QNTY.js';
5
5
  import { getStoreConfig, storeFetch, deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, isStoreAuthenticated, getStoreToken, getStoreIdentity } from '../chunk-WAFHQDLK.js';
6
- import { openCatalogSource, openLibraryManager, createFullRegistry, openLibrary } from '../chunk-ZIC7S44L.js';
7
- import { logErr, S, logOk, logInfo, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, logWarn, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth } from '../chunk-NXUUNPIB.js';
6
+ import { openCatalogSource, openLibraryManager, createFullRegistry, openLibrary } from '../chunk-KBAYZ6DK.js';
7
+ import { logErr, S, logOk, logInfo, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, logWarn, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth } from '../chunk-XDAOECL4.js';
8
8
  import { LocalSecretsProvider } from '../chunk-6BEGKO2Q.js';
9
- import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-2KANBOIO.js';
10
- import { buildClaudePluginFiles } from '../chunk-6OVS6IAK.js';
9
+ import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-H6KQB6HL.js';
10
+ import { buildClaudePluginFiles } from '../chunk-7NRZGSTY.js';
11
11
  import '../chunk-X5YPJV4N.js';
12
12
  import '../chunk-W3UDISS2.js';
13
13
  import '../chunk-O7SG5PC2.js';
@@ -15,28 +15,28 @@ import '../chunk-7QBNJTTQ.js';
15
15
  import '../chunk-GTS2FODO.js';
16
16
  import '../chunk-WQ7DE5UC.js';
17
17
  import '../chunk-32NA4TVC.js';
18
- import { runFlow, resumeFlow } from '../chunk-K7W7HC3C.js';
18
+ import { runFlow, resumeFlow } from '../chunk-SI7WZARX.js';
19
19
  import '../chunk-4R6DROGN.js';
20
20
  import { validateFlowVersions, parseSkillFrontmatter } from '../chunk-4VTBZ2MF.js';
21
21
  import '../chunk-GHWJHOYX.js';
22
22
  import '../chunk-NC5YXVZF.js';
23
- import '../chunk-BO4NC4G7.js';
23
+ import '../chunk-GE3EDS2M.js';
24
24
  import '../chunk-3UU3D2Q3.js';
25
- import '../chunk-32MHUAED.js';
25
+ import '../chunk-QRL23WVA.js';
26
26
  import '../chunk-RUFTB7QN.js';
27
27
  import '../chunk-RRVQAE5D.js';
28
28
  import '../chunk-V34ZEXSE.js';
29
29
  import '../chunk-GAH4YRCI.js';
30
- import '../chunk-BIA7TJWH.js';
30
+ import '../chunk-OT6V4IE7.js';
31
31
  import '../chunk-6E6PKKAD.js';
32
32
  import '../chunk-IFGTRL2I.js';
33
33
  import { projectAiAssetsRoots, loadFlow, loadAllFlowEntries, findFlowFileInRoots } from '../chunk-OYZIURPH.js';
34
34
  import '../chunk-AXEOG4B5.js';
35
35
  import '../chunk-HY6CIKFH.js';
36
- import '../chunk-HGFKNJA5.js';
36
+ import '../chunk-2D5BYAL6.js';
37
37
  import { nodeLabel, nodeSkillAsset, nodeIsInert, nodeIsOptional, nodeRunKind, flowSkillVersionPins } from '../chunk-ELPR5XBG.js';
38
38
  import '../chunk-2KBA5OO2.js';
39
- import { AssetManager, NON_DEPLOYABLE_KINDS, MissingManifestError, parseRefTolerant, normalizeRepoUrl, FACTORY_SOURCE_URL } from '../chunk-WUOHDYDH.js';
39
+ import { AssetManager, NON_DEPLOYABLE_KINDS, MissingManifestError, parseRefTolerant, normalizeRepoUrl, FACTORY_SOURCE_URL } from '../chunk-7WTXE6YS.js';
40
40
  import { getStoreManifestsDir, getDefaultValue, isSecretPlaceholder } from '../chunk-OCLCDB7G.js';
41
41
  import '../chunk-PW4SJE3X.js';
42
42
  import '../chunk-UKJMQZV6.js';
@@ -111,7 +111,7 @@ async function runSearch(kind, query, opts) {
111
111
  }
112
112
  }
113
113
  async function searchIndex(query, kind) {
114
- const { openLibrary: openLibrary2 } = await import('../open-library-5CEK2TSH.js');
114
+ const { openLibrary: openLibrary2 } = await import('../open-library-FGHDS7AZ.js');
115
115
  const library = await openLibrary2();
116
116
  try {
117
117
  const defs = await library.listAssetDefs(kind ? { kind } : {});
@@ -164,7 +164,7 @@ async function searchLocal(query, kind, opts, showStore, airGapped) {
164
164
  const factory = await searchFactory(projectDir, query, kind);
165
165
  let entries = unionEntries(await searchIndex(query, kind), factory);
166
166
  if (entries.length === 0 && !query && !kind && !airGapped) {
167
- const { autoSyncForSearch } = await import('../source-O34YYH3U.js');
167
+ const { autoSyncForSearch } = await import('../source-5GTOJ4SD.js');
168
168
  if (await autoSyncForSearch(projectDir)) {
169
169
  entries = unionEntries(await searchIndex(query, kind), factory);
170
170
  }
@@ -218,7 +218,7 @@ async function searchStore(query, kind, opts, airGapped) {
218
218
  logInfo("air-gapped (cache_ttl: 0) \u2014 local sources only");
219
219
  return;
220
220
  }
221
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-5CEK2TSH.js');
221
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-FGHDS7AZ.js');
222
222
  try {
223
223
  const remote = await openCatalogSource2({ projectDir: path35__default.resolve(opts.projectDir) });
224
224
  const assets = await remote.listAssets(kind ? { kind } : {});
@@ -533,7 +533,7 @@ async function resolveInfoEntry(am2, ref, opts) {
533
533
  return { entry: match ?? deployed };
534
534
  }
535
535
  const lookup = opts.storeLookup ?? (async (filter) => {
536
- const { resolveCatalogSource } = await import('../open-library-5CEK2TSH.js');
536
+ const { resolveCatalogSource } = await import('../open-library-FGHDS7AZ.js');
537
537
  const { source, close } = await resolveCatalogSource({ projectDir: opts.projectDir });
538
538
  try {
539
539
  return await source.listAssets(filter);
@@ -549,7 +549,7 @@ async function resolveInfoEntry(am2, ref, opts) {
549
549
  );
550
550
  return { entry: hit ? catalogAssetToEntry(hit) : null };
551
551
  } catch (err) {
552
- const { LocalCatalogDisabledError } = await import('../open-library-5CEK2TSH.js');
552
+ const { LocalCatalogDisabledError } = await import('../open-library-FGHDS7AZ.js');
553
553
  const storeNote = err instanceof Error ? err.message : String(err);
554
554
  const disabled = err instanceof LocalCatalogDisabledError || /catalog\.url/i.test(storeNote);
555
555
  return { entry: null, storeNote, ...disabled ? { storeDisabled: true } : {} };
@@ -1169,7 +1169,7 @@ function makeCatalogCommand() {
1169
1169
  return catalog;
1170
1170
  }
1171
1171
  async function runLocalCatalogTest(projectDir) {
1172
- const { resolveCatalogSource } = await import('../open-library-5CEK2TSH.js');
1172
+ const { resolveCatalogSource } = await import('../open-library-FGHDS7AZ.js');
1173
1173
  let resolved;
1174
1174
  try {
1175
1175
  resolved = await resolveCatalogSource({ projectDir });
@@ -3408,16 +3408,16 @@ function makeLibraryCommand() {
3408
3408
  });
3409
3409
  cmd.command("publish <lib>").description("Push + register the library's manifest atomically (needs git backend)").option("--asset <ref>", "Publish only the single asset matching this ref/name").option("--create-repo", "Provision + link a public github repo if the library has no remote").option("--ref <gitref>", "Git ref to ingest (default: the library branch or main)").option("--dry-run", "Print the plan; push nothing and call no store endpoint").action(
3410
3410
  async (lib, opts) => {
3411
- const { runLibraryPublish } = await import('../library-publish-NNGVXORH.js');
3411
+ const { runLibraryPublish } = await import('../library-publish-T7VSMTGZ.js');
3412
3412
  await withStoreErrorHandling(() => runLibraryPublish(lib, opts));
3413
3413
  }
3414
3414
  );
3415
3415
  cmd.command("register <lib>").description("Register the library's manifest without pushing (bytes already on github)").option("--asset <ref>", "Publish only the single asset matching this ref/name").option("--ref <gitref>", "Git ref to ingest (default: the library branch or main)").option("--dry-run", "Print the plan; call no store endpoint").action(async (lib, opts) => {
3416
- const { runLibraryRegister } = await import('../library-publish-NNGVXORH.js');
3416
+ const { runLibraryRegister } = await import('../library-publish-T7VSMTGZ.js');
3417
3417
  await withStoreErrorHandling(() => runLibraryRegister(lib, opts));
3418
3418
  });
3419
3419
  cmd.command("yank <lib>").description("Retract the library's published assets from the store").option("--asset <ref>", "Yank only the single asset matching this ref/name").action(async (lib, opts) => {
3420
- const { runLibraryYank } = await import('../library-publish-NNGVXORH.js');
3420
+ const { runLibraryYank } = await import('../library-publish-T7VSMTGZ.js');
3421
3421
  await withStoreErrorHandling(() => runLibraryYank(lib, opts));
3422
3422
  });
3423
3423
  return cmd;
@@ -4139,7 +4139,7 @@ function scheduleSoftDepPreview() {
4139
4139
  }
4140
4140
  async function loadAssets() {
4141
4141
  softDepPreviewCache.clear();
4142
- const { gatherAssetFeeds } = await import('../asset-feeds-TFQDBOYM.js');
4142
+ const { gatherAssetFeeds } = await import('../asset-feeds-DT4B37Z3.js');
4143
4143
  const { entries, domains, notes } = await gatherAssetFeeds(am, am.projectDir);
4144
4144
  if (notes.length > 0) {
4145
4145
  state.message = notes.map((n) => `[${n.feed}] ${n.message}`).join(" \u2022 ");
@@ -4345,7 +4345,7 @@ function reconcileCollapsedSets(rows) {
4345
4345
  async function loadSourcesAndLibraries() {
4346
4346
  try {
4347
4347
  const [{ openLibraryManager: openLibraryManager2 }, { skaileHomeDir }, { getGlobalCacheDir: getGlobalCacheDir2 }] = await Promise.all([
4348
- import('../open-library-5CEK2TSH.js'),
4348
+ import('../open-library-FGHDS7AZ.js'),
4349
4349
  import('../library/index.js'),
4350
4350
  import('../core/index.js')
4351
4351
  ]);
@@ -6779,7 +6779,7 @@ function makeServeCommand() {
6779
6779
  );
6780
6780
  }
6781
6781
  async function ensurePluginsLoadedForServe(projectDir) {
6782
- const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-5OP6O3WS.js');
6782
+ const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-GPD3WJQQ.js');
6783
6783
  try {
6784
6784
  const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
6785
6785
  const config = resolveSkWorkspaceConfig2(projectDir);
@@ -6798,7 +6798,7 @@ async function ensurePluginsLoadedForServe(projectDir) {
6798
6798
  }
6799
6799
  }
6800
6800
  async function runCompileTest(opts) {
6801
- const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-5OP6O3WS.js');
6801
+ const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-GPD3WJQQ.js');
6802
6802
  const { tmpdir } = await import('os');
6803
6803
  const { dirname: dirname4, join: join7, resolve: resolve5 } = await import('path');
6804
6804
  const { fileURLToPath: fileURLToPath2 } = await import('url');
@@ -7680,7 +7680,7 @@ function makeStoreCommand() {
7680
7680
  process.exit(2);
7681
7681
  });
7682
7682
  store.command("search <query>").description("Search the AI Asset Store catalog by name, description, or publisher").option("--kind <kind>", "Filter by asset kind (skill, agent, prompt, flow, \u2026)").option("-C, --project-dir <dir>", "Project directory (catalog config overlay)", process.cwd()).action(async (query, opts) => {
7683
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-5CEK2TSH.js');
7683
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-FGHDS7AZ.js');
7684
7684
  try {
7685
7685
  const remote = await openCatalogSource2({ projectDir: path35__default.resolve(opts.projectDir) });
7686
7686
  const assets = await remote.listAssets(opts.kind ? { kind: opts.kind } : {});
@@ -7713,8 +7713,8 @@ function makeStoreCommand() {
7713
7713
  }
7714
7714
  });
7715
7715
  store.command("show <ref>").description("Show a store asset's details + provenance (source, files, integrity)").option("-C, --project-dir <dir>", "Project directory (catalog config overlay)", process.cwd()).action(async (ref, opts) => {
7716
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-5CEK2TSH.js');
7717
- const { supportsInstallManifest } = await import('../project-QOVJ7I6I.js');
7716
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-FGHDS7AZ.js');
7717
+ const { supportsInstallManifest } = await import('../project-GU7X4WO2.js');
7718
7718
  try {
7719
7719
  const remote = await openCatalogSource2({ projectDir: path35__default.resolve(opts.projectDir) });
7720
7720
  const asset = await remote.resolve(ref);
@@ -8800,7 +8800,7 @@ async function bootstrapUserConfig() {
8800
8800
  }
8801
8801
  async function hydrateInitSources(resolved, created) {
8802
8802
  try {
8803
- const { ensureSourcesCloned } = await import('../ensure-sources-PDAH5SAV.js');
8803
+ const { ensureSourcesCloned } = await import('../ensure-sources-HS66JB6Y.js');
8804
8804
  const hydrate = ensureSourcesCloned(resolved, { quiet: true });
8805
8805
  for (const n of hydrate.cloned) created.push(`~/.skaile/cache/sources/${n}/`);
8806
8806
  if (hydrate.failed.length > 0) {
@@ -8840,7 +8840,7 @@ function printInitSummary(resolved, projectDir, created) {
8840
8840
  console.log();
8841
8841
  }
8842
8842
  program.command("setup").description("Interactive provider setup wizard").action(async () => {
8843
- const { cmdSetup } = await import('../setup-ZB6U5MSS.js');
8843
+ const { cmdSetup } = await import('../setup-TF7IP2IN.js');
8844
8844
  await cmdSetup([], { projectDir: process.cwd() });
8845
8845
  });
8846
8846
  program.addCommand(makeInstallCommand());
@@ -1,17 +1,17 @@
1
- export { AbstractConnector, BUILTIN_CONNECTOR_CATALOG, ConnectorFieldMissingError, ConnectorManager, ConnectorStartupError, FlowAdapter, LogBuffer, ManagedGitconfigCollisionError, PortPool, atomicReplaceCredential, buildConnectorPromptSection, buildSdkConnectorTools, buildSdkFlowTools, createFsWatcher, createWorktree, defaultSpawn, ensureDirMode, ensureFleetMounted, ensureRefreshAttemptStamp, findGitRoot, findMissingPackages, getConnector, installNpmPackages, isFleetManaged, isPackageResolvable, listConnectors, listWorktrees, registerBuiltinConnectors, removeMountBlock, removeUnavailableMountBlock, renderCredentialHelperScript, tryGetConnector, worktreeRegistry, writeHelperScript, writeMountBlock, writeUnavailableMountBlock } from '../chunk-BO4NC4G7.js';
1
+ export { AbstractConnector, BUILTIN_CONNECTOR_CATALOG, ConnectorFieldMissingError, ConnectorManager, ConnectorStartupError, FlowAdapter, LogBuffer, ManagedGitconfigCollisionError, PortPool, atomicReplaceCredential, buildConnectorPromptSection, buildSdkConnectorTools, buildSdkFlowTools, createFsWatcher, createWorktree, defaultSpawn, ensureDirMode, ensureFleetMounted, ensureRefreshAttemptStamp, findGitRoot, findMissingPackages, getConnector, installNpmPackages, isFleetManaged, isPackageResolvable, listConnectors, listWorktrees, registerBuiltinConnectors, removeMountBlock, removeUnavailableMountBlock, renderCredentialHelperScript, tryGetConnector, worktreeRegistry, writeHelperScript, writeMountBlock, writeUnavailableMountBlock } from '../chunk-GE3EDS2M.js';
2
2
  export { EnvSecretProvider, ForgeSecretProvider, InMemorySecretProvider, LegacyAuthGrammarError, LockedSecretProvider, OAuthRequiredError, PreMintedSecretProvider, SecretProviderChain, createCliSecretProviderChain, createForgeSecretProviderChain, deriveSingleMaterializedConnectorDeclaration, fromMaterializedConnectorMd, isKnownSecretRef, loadConnectorDeclarations, loadMaterializedConnectorDeclarations, resolveAuthRef, resolveBackendAuthFor, resolvedConfigToDeclarations } from '../chunk-3UU3D2Q3.js';
3
- import '../chunk-32MHUAED.js';
3
+ import '../chunk-QRL23WVA.js';
4
4
  import '../chunk-RUFTB7QN.js';
5
5
  import '../chunk-RRVQAE5D.js';
6
6
  import '../chunk-V34ZEXSE.js';
7
7
  import '../chunk-GAH4YRCI.js';
8
- import '../chunk-BIA7TJWH.js';
8
+ import '../chunk-OT6V4IE7.js';
9
9
  import '../chunk-6E6PKKAD.js';
10
10
  import '../chunk-IFGTRL2I.js';
11
11
  import '../chunk-OYZIURPH.js';
12
12
  import '../chunk-AXEOG4B5.js';
13
13
  import '../chunk-HY6CIKFH.js';
14
- import '../chunk-HGFKNJA5.js';
14
+ import '../chunk-2D5BYAL6.js';
15
15
  import '../chunk-ELPR5XBG.js';
16
16
  import '../chunk-AZPXCHDK.js';
17
17
  import '../chunk-F3HNW354.js';
@@ -1,5 +1,5 @@
1
- import { logErr, logOk, logInfo } from './chunk-NXUUNPIB.js';
2
- import './chunk-WUOHDYDH.js';
1
+ import { logErr, logOk, logInfo } from './chunk-XDAOECL4.js';
2
+ import './chunk-7WTXE6YS.js';
3
3
  import './chunk-OCLCDB7G.js';
4
4
  import './chunk-PW4SJE3X.js';
5
5
  import './chunk-UKJMQZV6.js';
@@ -86,5 +86,5 @@ function ensureSourcesCloned(projectDir, opts = {}) {
86
86
  }
87
87
 
88
88
  export { ensureSourcesCloned };
89
- //# sourceMappingURL=ensure-sources-PDAH5SAV.js.map
90
- //# sourceMappingURL=ensure-sources-PDAH5SAV.js.map
89
+ //# sourceMappingURL=ensure-sources-HS66JB6Y.js.map
90
+ //# sourceMappingURL=ensure-sources-HS66JB6Y.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../cli/src/ensure-sources.ts"],"names":[],"mappings":"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","file":"ensure-sources-PDAH5SAV.js","sourcesContent":["/**\n * ensure-sources.ts — hydrate the `~/.skaile/cache/sources/` clone cache from a\n * project's `skaile.yaml` `sources:` entries.\n *\n * Called by `skaile init` (idempotent: no-op when no sources declared) and\n * `skaile install` so checking out a project pulls its source clones onto\n * the local machine.\n */\n\nimport { spawnSync } from \"node:child_process\";\nimport { existsSync, mkdirSync } from \"node:fs\";\nimport * as path from \"node:path\";\nimport {\n getGlobalCacheDir,\n type SourceEntry,\n sourceCacheKey,\n sourceShortName,\n WorkspaceYamlEditor,\n} from \"@skaile/workspaces/core\";\nimport { logErr, logInfo, logOk } from \"./helpers.ts\";\n\nfunction sourceClonePath(key: string): string {\n return path.join(getGlobalCacheDir(), key);\n}\n\nexport interface EnsureResult {\n cloned: string[];\n cached: string[];\n failed: string[];\n}\n\n/** Load `sources:` from a project's `skaile.yaml`, or `null` when unavailable. */\nfunction loadProjectSources(yamlPath: string, quiet: boolean): SourceEntry[] | null {\n try {\n return WorkspaceYamlEditor.load(yamlPath).getSources();\n } catch (err) {\n if (!quiet) {\n logErr(`Could not read ${yamlPath}: ${err instanceof Error ? err.message : String(err)}`);\n }\n return null;\n }\n}\n\n/**\n * Hydrate a single source entry into `result`: skip when already cached,\n * otherwise clone and record success/failure. Mutates `result` in place.\n */\nfunction hydrateSourceEntry(entry: SourceEntry, quiet: boolean, result: EnsureResult): void {\n const key = sourceCacheKey(entry.url);\n const slug = sourceShortName(entry.url);\n const dest = sourceClonePath(key);\n if (existsSync(dest)) {\n result.cached.push(slug);\n return;\n }\n mkdirSync(path.dirname(dest), { recursive: true });\n const args = [\"clone\", entry.url, dest];\n if (entry.pin) args.splice(1, 0, \"--branch\", entry.pin);\n const clone = spawnSync(\"git\", args, { stdio: quiet ? \"pipe\" : \"inherit\" });\n if (clone.status !== 0) {\n result.failed.push(slug);\n if (quiet) {\n logErr(`git clone failed for ${entry.url}`);\n }\n return;\n }\n result.cloned.push(slug);\n}\n\n/** Log a full-hydrate summary of cloned + reused-cached entries. */\nfunction logHydrateSummary(result: EnsureResult): void {\n for (const n of result.cloned) logOk(`Cloned source \"${n}\".`);\n if (result.cached.length > 0) {\n logInfo(`Reused cached clones: ${result.cached.join(\", \")}`);\n }\n}\n\n/**\n * Walk `projectDir/skaile.yaml` `sources:` and clone any entries whose\n * clone directory does not yet exist under `~/.skaile/cache/sources/`. Existing\n * clones are left untouched — this is hydration, not sync.\n *\n * Quiet by default: when `quiet: true` the helper only prints failures.\n * On full hydrate (`quiet: false`) it logs each cloned/cached entry.\n */\nexport function ensureSourcesCloned(\n projectDir: string,\n opts: { quiet?: boolean } = {},\n): EnsureResult {\n const result: EnsureResult = { cloned: [], cached: [], failed: [] };\n const yamlPath = path.join(projectDir, \"skaile.yaml\");\n if (!existsSync(yamlPath)) return result;\n\n const quiet = opts.quiet ?? false;\n const sources = loadProjectSources(yamlPath, quiet);\n if (sources === null) return result;\n if (sources.length === 0) return result;\n\n for (const entry of sources) {\n hydrateSourceEntry(entry, quiet, result);\n }\n\n if (!quiet) {\n logHydrateSummary(result);\n }\n\n return result;\n}\n"]}
1
+ {"version":3,"sources":["../cli/src/ensure-sources.ts"],"names":[],"mappings":"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","file":"ensure-sources-HS66JB6Y.js","sourcesContent":["/**\n * ensure-sources.ts — hydrate the `~/.skaile/cache/sources/` clone cache from a\n * project's `skaile.yaml` `sources:` entries.\n *\n * Called by `skaile init` (idempotent: no-op when no sources declared) and\n * `skaile install` so checking out a project pulls its source clones onto\n * the local machine.\n */\n\nimport { spawnSync } from \"node:child_process\";\nimport { existsSync, mkdirSync } from \"node:fs\";\nimport * as path from \"node:path\";\nimport {\n getGlobalCacheDir,\n type SourceEntry,\n sourceCacheKey,\n sourceShortName,\n WorkspaceYamlEditor,\n} from \"@skaile/workspaces/core\";\nimport { logErr, logInfo, logOk } from \"./helpers.ts\";\n\nfunction sourceClonePath(key: string): string {\n return path.join(getGlobalCacheDir(), key);\n}\n\nexport interface EnsureResult {\n cloned: string[];\n cached: string[];\n failed: string[];\n}\n\n/** Load `sources:` from a project's `skaile.yaml`, or `null` when unavailable. */\nfunction loadProjectSources(yamlPath: string, quiet: boolean): SourceEntry[] | null {\n try {\n return WorkspaceYamlEditor.load(yamlPath).getSources();\n } catch (err) {\n if (!quiet) {\n logErr(`Could not read ${yamlPath}: ${err instanceof Error ? err.message : String(err)}`);\n }\n return null;\n }\n}\n\n/**\n * Hydrate a single source entry into `result`: skip when already cached,\n * otherwise clone and record success/failure. Mutates `result` in place.\n */\nfunction hydrateSourceEntry(entry: SourceEntry, quiet: boolean, result: EnsureResult): void {\n const key = sourceCacheKey(entry.url);\n const slug = sourceShortName(entry.url);\n const dest = sourceClonePath(key);\n if (existsSync(dest)) {\n result.cached.push(slug);\n return;\n }\n mkdirSync(path.dirname(dest), { recursive: true });\n const args = [\"clone\", entry.url, dest];\n if (entry.pin) args.splice(1, 0, \"--branch\", entry.pin);\n const clone = spawnSync(\"git\", args, { stdio: quiet ? \"pipe\" : \"inherit\" });\n if (clone.status !== 0) {\n result.failed.push(slug);\n if (quiet) {\n logErr(`git clone failed for ${entry.url}`);\n }\n return;\n }\n result.cloned.push(slug);\n}\n\n/** Log a full-hydrate summary of cloned + reused-cached entries. */\nfunction logHydrateSummary(result: EnsureResult): void {\n for (const n of result.cloned) logOk(`Cloned source \"${n}\".`);\n if (result.cached.length > 0) {\n logInfo(`Reused cached clones: ${result.cached.join(\", \")}`);\n }\n}\n\n/**\n * Walk `projectDir/skaile.yaml` `sources:` and clone any entries whose\n * clone directory does not yet exist under `~/.skaile/cache/sources/`. Existing\n * clones are left untouched — this is hydration, not sync.\n *\n * Quiet by default: when `quiet: true` the helper only prints failures.\n * On full hydrate (`quiet: false`) it logs each cloned/cached entry.\n */\nexport function ensureSourcesCloned(\n projectDir: string,\n opts: { quiet?: boolean } = {},\n): EnsureResult {\n const result: EnsureResult = { cloned: [], cached: [], failed: [] };\n const yamlPath = path.join(projectDir, \"skaile.yaml\");\n if (!existsSync(yamlPath)) return result;\n\n const quiet = opts.quiet ?? false;\n const sources = loadProjectSources(yamlPath, quiet);\n if (sources === null) return result;\n if (sources.length === 0) return result;\n\n for (const entry of sources) {\n hydrateSourceEntry(entry, quiet, result);\n }\n\n if (!quiet) {\n logHydrateSummary(result);\n }\n\n return result;\n}\n"]}
@@ -1,17 +1,17 @@
1
- export { BoxConnector, createConnector4 as createConnector } from '../../chunk-BO4NC4G7.js';
1
+ export { BoxConnector, createConnector4 as createConnector } from '../../chunk-GE3EDS2M.js';
2
2
  import '../../chunk-3UU3D2Q3.js';
3
- import '../../chunk-32MHUAED.js';
3
+ import '../../chunk-QRL23WVA.js';
4
4
  import '../../chunk-RUFTB7QN.js';
5
5
  import '../../chunk-RRVQAE5D.js';
6
6
  import '../../chunk-V34ZEXSE.js';
7
7
  import '../../chunk-GAH4YRCI.js';
8
- import '../../chunk-BIA7TJWH.js';
8
+ import '../../chunk-OT6V4IE7.js';
9
9
  import '../../chunk-6E6PKKAD.js';
10
10
  import '../../chunk-IFGTRL2I.js';
11
11
  import '../../chunk-OYZIURPH.js';
12
12
  import '../../chunk-AXEOG4B5.js';
13
13
  import '../../chunk-HY6CIKFH.js';
14
- import '../../chunk-HGFKNJA5.js';
14
+ import '../../chunk-2D5BYAL6.js';
15
15
  import '../../chunk-ELPR5XBG.js';
16
16
  import '../../chunk-AZPXCHDK.js';
17
17
  import '../../chunk-F3HNW354.js';
@@ -1,17 +1,17 @@
1
- export { DeployConnector, createConnector2 as createConnector } from '../../chunk-BO4NC4G7.js';
1
+ export { DeployConnector, createConnector2 as createConnector } from '../../chunk-GE3EDS2M.js';
2
2
  import '../../chunk-3UU3D2Q3.js';
3
- import '../../chunk-32MHUAED.js';
3
+ import '../../chunk-QRL23WVA.js';
4
4
  import '../../chunk-RUFTB7QN.js';
5
5
  import '../../chunk-RRVQAE5D.js';
6
6
  import '../../chunk-V34ZEXSE.js';
7
7
  import '../../chunk-GAH4YRCI.js';
8
- import '../../chunk-BIA7TJWH.js';
8
+ import '../../chunk-OT6V4IE7.js';
9
9
  import '../../chunk-6E6PKKAD.js';
10
10
  import '../../chunk-IFGTRL2I.js';
11
11
  import '../../chunk-OYZIURPH.js';
12
12
  import '../../chunk-AXEOG4B5.js';
13
13
  import '../../chunk-HY6CIKFH.js';
14
- import '../../chunk-HGFKNJA5.js';
14
+ import '../../chunk-2D5BYAL6.js';
15
15
  import '../../chunk-ELPR5XBG.js';
16
16
  import '../../chunk-AZPXCHDK.js';
17
17
  import '../../chunk-F3HNW354.js';
@@ -1,17 +1,17 @@
1
- export { DevServerConnector, createConnector3 as createConnector } from '../../chunk-BO4NC4G7.js';
1
+ export { DevServerConnector, createConnector3 as createConnector } from '../../chunk-GE3EDS2M.js';
2
2
  import '../../chunk-3UU3D2Q3.js';
3
- import '../../chunk-32MHUAED.js';
3
+ import '../../chunk-QRL23WVA.js';
4
4
  import '../../chunk-RUFTB7QN.js';
5
5
  import '../../chunk-RRVQAE5D.js';
6
6
  import '../../chunk-V34ZEXSE.js';
7
7
  import '../../chunk-GAH4YRCI.js';
8
- import '../../chunk-BIA7TJWH.js';
8
+ import '../../chunk-OT6V4IE7.js';
9
9
  import '../../chunk-6E6PKKAD.js';
10
10
  import '../../chunk-IFGTRL2I.js';
11
11
  import '../../chunk-OYZIURPH.js';
12
12
  import '../../chunk-AXEOG4B5.js';
13
13
  import '../../chunk-HY6CIKFH.js';
14
- import '../../chunk-HGFKNJA5.js';
14
+ import '../../chunk-2D5BYAL6.js';
15
15
  import '../../chunk-ELPR5XBG.js';
16
16
  import '../../chunk-AZPXCHDK.js';
17
17
  import '../../chunk-F3HNW354.js';
@@ -102,12 +102,20 @@ Once the automatic retry budget (`control.retries`) is exhausted, `onFail:
102
102
  'fail'` (the alternative) fails the node terminally, while `onFail: 'escalate'`
103
103
  (the default) parks it at `awaiting_approval` with an `Approval` naming the
104
104
  failed check, its exit status, and the provenance label when one applies.
105
- Escalation is a one-way door: `applyApproval` rejects an `"approved"` decision
106
- on a check outright rather than silently ignoring it, and a `"rejected"`
107
- decision ends the node terminally `failed` — there is no revision path and no
108
- way back to `available`. A spawn failure or a timeout produced no verdict at
109
- all, so it is always a plain node failure, carries no evidence, and never
110
- escalates regardless of `onFail`.
105
+ Escalation hands the verdict to a human, and both decisions are terminal in
106
+ their own direction. A `"rejected"` decision ends the node `failed` — there is
107
+ no revision path and no way back to `available`. An `"approved"` decision is an
108
+ override: `applyApproval` demands a non-empty `feedback` reason, then completes
109
+ the node so its dependents unblock. The override records a decision, not an
110
+ observation — the attempt's `CheckEvidence.passed` stays `false` and the
111
+ failure stays in `errorHistory`/`outputHistory`; only the node's live `error`
112
+ clears, because no `complete` node carries one. The one check the override does
113
+ not get past is its own output contract: when a downstream node consumes the
114
+ check's declared `contract.output.fields` and the failed attempt does not
115
+ satisfy them, `applyApproval` refuses, because completing the node there would
116
+ write an execution that fails to hydrate. A spawn failure or a timeout
117
+ produced no verdict at all, so it is always a plain node failure, carries no
118
+ evidence, and never escalates regardless of `onFail`.
111
119
 
112
120
  A `subprompt` is `function`-shaped for everything except how the work is
113
121
  performed and how its output provenance is classified. Instead of
@@ -201,9 +201,10 @@ export declare class FlowAdapter extends AbstractConnector {
201
201
  /**
202
202
  * Record an approval decision on a node currently `awaiting_approval`.
203
203
  * A first-class gate completes directly when approved and remains parked when rejected.
204
- * Agent-node approvals keep their existing resume behavior. A check's escalation is a
205
- * one-way door: only `rejected` is legal, and it ends the node terminally `failed` —
206
- * there is no decision that resumes or passes a check.
204
+ * Agent-node approvals keep their existing resume behavior. Approving an escalated check
205
+ * is a human override: it demands a reason and completes the node so the run continues,
206
+ * but records only the decision — the attempt's evidence stays `passed: false`.
207
+ * Rejecting a check is terminal.
207
208
  */
208
209
  applyApproval(handle: ConnectorHandle, nodeId: string, decision: "approved" | "rejected", feedback: string | undefined, decidedBy: string): void;
209
210
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../factory-assets/connectors/flow/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../factory-assets/connectors/flow/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,EAEnB,KAAK,oBAAoB,EAEzB,KAAK,eAAe,EAKpB,KAAK,QAAQ,EACd,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAIV,aAAa,EAUd,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,OAAO,EAKL,KAAK,cAAc,EAKnB,UAAU,EAKX,MAAM,mBAAmB,CAAC;AA2B3B,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,4BAA4B,EAE5B,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAqB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAK/B;;;;;;;;;GASG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,CACJ,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAC9D,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAID;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,OAAO,EAAE,cAAc,CAAC;IACxB,kFAAkF;IAClF,SAAS,EAAE,aAAa,CAAC;IACzB,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1C;;;;;OAKG;IACH,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,aAAa,CAAC;IACtC,kFAAkF;IAClF,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,4GAA4G;IAC5G,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,sFAAsF;IACtF,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,mFAAmF;IACnF,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;IAClE,2FAA2F;IAC3F,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IACnD,uEAAuE;IACvE,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,qFAAqF;IACrF,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;;;;OAMG;IACH,SAAS,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC;CACjD;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,cAAc,CAAC;IACrB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF;;;;;OAKG;IACH,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mFAAmF;IACnF,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gFAAgF;IAChF,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,0FAA0F;IAC1F,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IACnD,4EAA4E;IAC5E,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC;AA+QD;;;;;;;;GAQG;AACH,qBAAa,WAAY,SAAQ,iBAAiB;IAChD,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,SAAS,SAAS;IAE3B,KAAK,EAAE,QAAQ,CAAC;;IAeV,OAAO,CAAC,WAAW,EAAE,oBAAoB,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAmC1F,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAQ1C,mBAAmB;IAMjC,OAAO,CAAC,wBAAwB;IAyBhC,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IAIhF;;;;;OAKG;IACH,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI;YAqBlD,IAAI;YAwBJ,IAAI;YAcJ,MAAM;IAepB,OAAO,CAAC,kBAAkB;IAySpB,SAAS,CACb,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,MAAM,CAAC;IAgFlB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,OAAO;IAmCf,OAAO,CAAC,WAAW;IA+BnB,OAAO,CAAC,iBAAiB;IAqCzB,OAAO,CAAC,cAAc;IAoCtB,OAAO,CAAC,cAAc;IA8GtB,OAAO,CAAC,UAAU;IAsClB,OAAO,CAAC,UAAU;IA0ElB;;;;;;;OAOG;IACH,aAAa,CACX,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,UAAU,GAAG,UAAU,EACjC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,SAAS,EAAE,MAAM,GAChB,IAAI;IA0GP;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAoChG;;;;;;;;;;OAUG;IACH,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAqBxD,0DAA0D;IAC1D,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAOlE;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAQrC,8DAA8D;IAC9D,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa;IAIpD,gFAAgF;IAChF,wBAAwB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO;IAM1D,4FAA4F;IAC5F,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa;IASzD,iFAAiF;IACjF,gCAAgC,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,EAAE;IASnE,gEAAgE;IAChE,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,EAAE;IAIpD;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO;IA8B9E;;;;OAIG;IACG,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAIxE;;;;;;OAMG;IACG,6BAA6B,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;YAItE,0BAA0B;IAgoBxC,8FAA8F;IAC9F,OAAO,CAAC,sBAAsB;IAgH9B,OAAO,CAAC,CAAC;IAIT;;;;;;OAMG;IACH,OAAO,CAAC,MAAM;IAgDd;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAkEjB,OAAO,CAAC,cAAc;IAOtB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,cAAc;IA+BtB;;;;;;;;;OASG;YACW,0BAA0B;IAsCxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,OAAO,CAAC,kBAAkB;IA4C1B;;OAEG;IACH,OAAO,CAAC,YAAY;CA+ErB;AAuXD,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,WAAW,CAE7C"}
@@ -1,17 +1,17 @@
1
- export { FlowAdapter, createConnector } from '../../../chunk-BO4NC4G7.js';
1
+ export { FlowAdapter, createConnector } from '../../../chunk-GE3EDS2M.js';
2
2
  import '../../../chunk-3UU3D2Q3.js';
3
- import '../../../chunk-32MHUAED.js';
3
+ import '../../../chunk-QRL23WVA.js';
4
4
  import '../../../chunk-RUFTB7QN.js';
5
5
  import '../../../chunk-RRVQAE5D.js';
6
6
  import '../../../chunk-V34ZEXSE.js';
7
7
  import '../../../chunk-GAH4YRCI.js';
8
- import '../../../chunk-BIA7TJWH.js';
8
+ import '../../../chunk-OT6V4IE7.js';
9
9
  import '../../../chunk-6E6PKKAD.js';
10
10
  import '../../../chunk-IFGTRL2I.js';
11
11
  export { isBlocking } from '../../../chunk-OYZIURPH.js';
12
12
  import '../../../chunk-AXEOG4B5.js';
13
13
  import '../../../chunk-HY6CIKFH.js';
14
- import '../../../chunk-HGFKNJA5.js';
14
+ import '../../../chunk-2D5BYAL6.js';
15
15
  import '../../../chunk-ELPR5XBG.js';
16
16
  import '../../../chunk-AZPXCHDK.js';
17
17
  import '../../../chunk-F3HNW354.js';
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-fragments.d.ts","sourceRoot":"","sources":["../../../../factory-assets/connectors/flow/prompt-fragments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAUxD;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACjF;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,2BAA2B,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC;AAE9B;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAyBnE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,YAAY,GACrB,MAAM,CAoLR;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD,MAAM,CAGR;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAmB/D"}
1
+ {"version":3,"file":"prompt-fragments.d.ts","sourceRoot":"","sources":["../../../../factory-assets/connectors/flow/prompt-fragments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAWxD;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACjF;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,2BAA2B,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC;AAE9B;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAyBnE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,YAAY,GACrB,MAAM,CAgOR;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD,MAAM,CAGR;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAmB/D"}
@@ -1,4 +1,4 @@
1
- export { buildOrchestratorPrompt, describeStimulus, renderStimulusPrompt, renderSubpromptPrompt } from '../../../chunk-HGFKNJA5.js';
1
+ export { buildOrchestratorPrompt, describeStimulus, renderStimulusPrompt, renderSubpromptPrompt } from '../../../chunk-2D5BYAL6.js';
2
2
  import '../../../chunk-ELPR5XBG.js';
3
3
  import '../../../chunk-NSBPE2FW.js';
4
4
  //# sourceMappingURL=prompt-fragments.js.map
@@ -1,20 +1,20 @@
1
- export { resolveFlowPath, resumeFlow, runFlow } from '../../../chunk-K7W7HC3C.js';
1
+ export { resolveFlowPath, resumeFlow, runFlow } from '../../../chunk-SI7WZARX.js';
2
2
  import '../../../chunk-4R6DROGN.js';
3
3
  import '../../../chunk-4VTBZ2MF.js';
4
- import '../../../chunk-BO4NC4G7.js';
4
+ import '../../../chunk-GE3EDS2M.js';
5
5
  import '../../../chunk-3UU3D2Q3.js';
6
- import '../../../chunk-32MHUAED.js';
6
+ import '../../../chunk-QRL23WVA.js';
7
7
  import '../../../chunk-RUFTB7QN.js';
8
8
  import '../../../chunk-RRVQAE5D.js';
9
9
  import '../../../chunk-V34ZEXSE.js';
10
10
  import '../../../chunk-GAH4YRCI.js';
11
- import '../../../chunk-BIA7TJWH.js';
11
+ import '../../../chunk-OT6V4IE7.js';
12
12
  import '../../../chunk-6E6PKKAD.js';
13
13
  import '../../../chunk-IFGTRL2I.js';
14
14
  import '../../../chunk-OYZIURPH.js';
15
15
  import '../../../chunk-AXEOG4B5.js';
16
16
  import '../../../chunk-HY6CIKFH.js';
17
- import '../../../chunk-HGFKNJA5.js';
17
+ import '../../../chunk-2D5BYAL6.js';
18
18
  import '../../../chunk-ELPR5XBG.js';
19
19
  import '../../../chunk-AZPXCHDK.js';
20
20
  import '../../../chunk-F3HNW354.js';
@@ -1,17 +1,17 @@
1
- export { FlowAdapter, SessionInlineSubFlowRunner, SessionNodeExecutor, SessionSubpromptRunner, buildFlowPromptEvent, createConnector, driveOrchestratorTurn } from '../../chunk-BO4NC4G7.js';
1
+ export { FlowAdapter, SessionInlineSubFlowRunner, SessionNodeExecutor, SessionSubpromptRunner, buildFlowPromptEvent, createConnector, driveOrchestratorTurn } from '../../chunk-GE3EDS2M.js';
2
2
  import '../../chunk-3UU3D2Q3.js';
3
- import '../../chunk-32MHUAED.js';
3
+ import '../../chunk-QRL23WVA.js';
4
4
  import '../../chunk-RUFTB7QN.js';
5
5
  import '../../chunk-RRVQAE5D.js';
6
6
  import '../../chunk-V34ZEXSE.js';
7
7
  import '../../chunk-GAH4YRCI.js';
8
- import '../../chunk-BIA7TJWH.js';
8
+ import '../../chunk-OT6V4IE7.js';
9
9
  import '../../chunk-6E6PKKAD.js';
10
10
  import '../../chunk-IFGTRL2I.js';
11
11
  import '../../chunk-OYZIURPH.js';
12
12
  import '../../chunk-AXEOG4B5.js';
13
13
  import '../../chunk-HY6CIKFH.js';
14
- import '../../chunk-HGFKNJA5.js';
14
+ import '../../chunk-2D5BYAL6.js';
15
15
  import '../../chunk-ELPR5XBG.js';
16
16
  import '../../chunk-AZPXCHDK.js';
17
17
  import '../../chunk-F3HNW354.js';
@@ -1,17 +1,17 @@
1
- export { GitConnector, __test, createConnector5 as createConnector, readGitSyncStatus } from '../../chunk-BO4NC4G7.js';
1
+ export { GitConnector, __test, createConnector5 as createConnector, readGitSyncStatus } from '../../chunk-GE3EDS2M.js';
2
2
  import '../../chunk-3UU3D2Q3.js';
3
- import '../../chunk-32MHUAED.js';
3
+ import '../../chunk-QRL23WVA.js';
4
4
  import '../../chunk-RUFTB7QN.js';
5
5
  import '../../chunk-RRVQAE5D.js';
6
6
  import '../../chunk-V34ZEXSE.js';
7
7
  import '../../chunk-GAH4YRCI.js';
8
- import '../../chunk-BIA7TJWH.js';
8
+ import '../../chunk-OT6V4IE7.js';
9
9
  import '../../chunk-6E6PKKAD.js';
10
10
  import '../../chunk-IFGTRL2I.js';
11
11
  import '../../chunk-OYZIURPH.js';
12
12
  import '../../chunk-AXEOG4B5.js';
13
13
  import '../../chunk-HY6CIKFH.js';
14
- import '../../chunk-HGFKNJA5.js';
14
+ import '../../chunk-2D5BYAL6.js';
15
15
  import '../../chunk-ELPR5XBG.js';
16
16
  import '../../chunk-AZPXCHDK.js';
17
17
  import '../../chunk-F3HNW354.js';
@@ -1,17 +1,17 @@
1
- export { GmailConnector, createConnector6 as createConnector } from '../../chunk-BO4NC4G7.js';
1
+ export { GmailConnector, createConnector6 as createConnector } from '../../chunk-GE3EDS2M.js';
2
2
  import '../../chunk-3UU3D2Q3.js';
3
- import '../../chunk-32MHUAED.js';
3
+ import '../../chunk-QRL23WVA.js';
4
4
  import '../../chunk-RUFTB7QN.js';
5
5
  import '../../chunk-RRVQAE5D.js';
6
6
  import '../../chunk-V34ZEXSE.js';
7
7
  import '../../chunk-GAH4YRCI.js';
8
- import '../../chunk-BIA7TJWH.js';
8
+ import '../../chunk-OT6V4IE7.js';
9
9
  import '../../chunk-6E6PKKAD.js';
10
10
  import '../../chunk-IFGTRL2I.js';
11
11
  import '../../chunk-OYZIURPH.js';
12
12
  import '../../chunk-AXEOG4B5.js';
13
13
  import '../../chunk-HY6CIKFH.js';
14
- import '../../chunk-HGFKNJA5.js';
14
+ import '../../chunk-2D5BYAL6.js';
15
15
  import '../../chunk-ELPR5XBG.js';
16
16
  import '../../chunk-AZPXCHDK.js';
17
17
  import '../../chunk-F3HNW354.js';