@mcoda/codali 0.1.133 → 0.1.135-codali.2

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 (232) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/ORCHESTRATION.md +387 -0
  3. package/README.md +103 -1
  4. package/config/alternate-local.example.json +49 -0
  5. package/config/docdex-runtime.json +21 -0
  6. package/config/orchestration.schema.json +548 -0
  7. package/config/raijin-suku.example.json +172 -0
  8. package/config/terminal-long-scenarios.v1.json +70 -0
  9. package/dist/agents/RoleResolution.d.ts.map +1 -1
  10. package/dist/agents/RoleResolution.js +4 -4
  11. package/dist/api/CodaliApi.d.ts +16 -0
  12. package/dist/api/CodaliApi.d.ts.map +1 -1
  13. package/dist/api/CodaliApi.js +39 -10
  14. package/dist/cli/AskCommand.d.ts +3 -0
  15. package/dist/cli/AskCommand.d.ts.map +1 -1
  16. package/dist/cli/AskCommand.js +76 -13
  17. package/dist/cli/RunCommand.d.ts +4 -0
  18. package/dist/cli/RunCommand.d.ts.map +1 -1
  19. package/dist/cli/RunCommand.js +110 -24
  20. package/dist/cli/TerminalCommand.d.ts +35 -0
  21. package/dist/cli/TerminalCommand.d.ts.map +1 -0
  22. package/dist/cli/TerminalCommand.js +616 -0
  23. package/dist/cli/TerminalCredentials.d.ts +3 -0
  24. package/dist/cli/TerminalCredentials.d.ts.map +1 -0
  25. package/dist/cli/TerminalCredentials.js +89 -0
  26. package/dist/cli/TerminalInput.d.ts +24 -0
  27. package/dist/cli/TerminalInput.d.ts.map +1 -0
  28. package/dist/cli/TerminalInput.js +98 -0
  29. package/dist/cli/TerminalText.d.ts +10 -0
  30. package/dist/cli/TerminalText.d.ts.map +1 -0
  31. package/dist/cli/TerminalText.js +53 -0
  32. package/dist/cli.d.ts.map +1 -1
  33. package/dist/cli.js +33 -4
  34. package/dist/cognitive/ConfiguredPipeline.d.ts +34 -0
  35. package/dist/cognitive/ConfiguredPipeline.d.ts.map +1 -0
  36. package/dist/cognitive/ConfiguredPipeline.js +50 -0
  37. package/dist/cognitive/ValidationRunner.d.ts +4 -0
  38. package/dist/cognitive/ValidationRunner.d.ts.map +1 -1
  39. package/dist/cognitive/ValidationRunner.js +18 -41
  40. package/dist/config/NodeOrchestration.d.ts +21 -0
  41. package/dist/config/NodeOrchestration.d.ts.map +1 -0
  42. package/dist/config/NodeOrchestration.js +54 -0
  43. package/dist/config/OrchestrationConfig.d.ts +100 -0
  44. package/dist/config/OrchestrationConfig.d.ts.map +1 -0
  45. package/dist/config/OrchestrationConfig.js +245 -0
  46. package/dist/connectors/mcp/McpClient.d.ts +3 -1
  47. package/dist/connectors/mcp/McpClient.d.ts.map +1 -1
  48. package/dist/connectors/mcp/McpClient.js +3 -2
  49. package/dist/connectors/mcp/McpServerRegistry.d.ts +2 -2
  50. package/dist/connectors/mcp/McpServerRegistry.d.ts.map +1 -1
  51. package/dist/connectors/mcp/McpServerRegistry.js +39 -16
  52. package/dist/connectors/mcp/McpToolAdapter.js +2 -2
  53. package/dist/connectors/media/ConfiguredMediaTools.d.ts +6 -0
  54. package/dist/connectors/media/ConfiguredMediaTools.d.ts.map +1 -0
  55. package/dist/connectors/media/ConfiguredMediaTools.js +41 -0
  56. package/dist/connectors/media/ImageGenerationTool.js +3 -3
  57. package/dist/connectors/media/MediaArtifactReceipt.d.ts +5 -0
  58. package/dist/connectors/media/MediaArtifactReceipt.d.ts.map +1 -0
  59. package/dist/connectors/media/MediaArtifactReceipt.js +65 -0
  60. package/dist/connectors/media/MediaJobStore.d.ts +68 -0
  61. package/dist/connectors/media/MediaJobStore.d.ts.map +1 -0
  62. package/dist/connectors/media/MediaJobStore.js +199 -0
  63. package/dist/connectors/media/MediaJobWorker.d.ts +2 -0
  64. package/dist/connectors/media/MediaJobWorker.d.ts.map +1 -0
  65. package/dist/connectors/media/MediaJobWorker.js +65 -0
  66. package/dist/connectors/media/RemoteMediaJob.d.ts +6 -0
  67. package/dist/connectors/media/RemoteMediaJob.d.ts.map +1 -0
  68. package/dist/connectors/media/RemoteMediaJob.js +80 -0
  69. package/dist/docdex/DocdexClient.d.ts +18 -1
  70. package/dist/docdex/DocdexClient.d.ts.map +1 -1
  71. package/dist/docdex/DocdexClient.js +135 -19
  72. package/dist/docdex/ManagedDocdex.d.ts +29 -0
  73. package/dist/docdex/ManagedDocdex.d.ts.map +1 -0
  74. package/dist/docdex/ManagedDocdex.js +215 -0
  75. package/dist/docdex/ManagedRuntime.d.ts +28 -0
  76. package/dist/docdex/ManagedRuntime.d.ts.map +1 -0
  77. package/dist/docdex/ManagedRuntime.js +212 -0
  78. package/dist/eval/EvaluationProcess.d.ts +13 -0
  79. package/dist/eval/EvaluationProcess.d.ts.map +1 -0
  80. package/dist/eval/EvaluationProcess.js +76 -0
  81. package/dist/eval/LongWorkflowJourney.d.ts +34 -0
  82. package/dist/eval/LongWorkflowJourney.d.ts.map +1 -0
  83. package/dist/eval/LongWorkflowJourney.js +243 -0
  84. package/dist/eval/PlanningCorpus.d.ts +45 -0
  85. package/dist/eval/PlanningCorpus.d.ts.map +1 -0
  86. package/dist/eval/PlanningCorpus.js +189 -0
  87. package/dist/eval/PlanningCorpusRunner.d.ts +13 -0
  88. package/dist/eval/PlanningCorpusRunner.d.ts.map +1 -0
  89. package/dist/eval/PlanningCorpusRunner.js +89 -0
  90. package/dist/eval/TerminalCorpusRunner.d.ts +36 -0
  91. package/dist/eval/TerminalCorpusRunner.d.ts.map +1 -0
  92. package/dist/eval/TerminalCorpusRunner.js +222 -0
  93. package/dist/eval/TerminalTaskCorpus.d.ts +26 -0
  94. package/dist/eval/TerminalTaskCorpus.d.ts.map +1 -0
  95. package/dist/eval/TerminalTaskCorpus.js +105 -0
  96. package/dist/eval/TerminalWorkflowCorpus.d.ts +11 -0
  97. package/dist/eval/TerminalWorkflowCorpus.d.ts.map +1 -0
  98. package/dist/eval/TerminalWorkflowCorpus.js +116 -0
  99. package/dist/eval/fixtures/TerminalRecoveryJourney.d.ts +4 -0
  100. package/dist/eval/fixtures/TerminalRecoveryJourney.d.ts.map +1 -0
  101. package/dist/eval/fixtures/TerminalRecoveryJourney.js +132 -0
  102. package/dist/gateway/CodaliGateway.d.ts +2 -0
  103. package/dist/gateway/CodaliGateway.d.ts.map +1 -1
  104. package/dist/gateway/CodaliGateway.js +16 -4
  105. package/dist/gateway/ConfiguredGateway.d.ts +23 -0
  106. package/dist/gateway/ConfiguredGateway.d.ts.map +1 -0
  107. package/dist/gateway/ConfiguredGateway.js +44 -0
  108. package/dist/gateway/GatewayTracer.d.ts +1 -1
  109. package/dist/gateway/GatewayTracer.d.ts.map +1 -1
  110. package/dist/gateway/GatewayTracer.js +2 -27
  111. package/dist/gateway/LocalGatewayTaskRunner.d.ts.map +1 -1
  112. package/dist/gateway/LocalGatewayTaskRunner.js +13 -1
  113. package/dist/index.d.ts +23 -0
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +12 -0
  116. package/dist/permissions/PermissionGate.d.ts +44 -0
  117. package/dist/permissions/PermissionGate.d.ts.map +1 -0
  118. package/dist/permissions/PermissionGate.js +97 -0
  119. package/dist/providers/ConfiguredEmbeddings.d.ts +43 -0
  120. package/dist/providers/ConfiguredEmbeddings.d.ts.map +1 -0
  121. package/dist/providers/ConfiguredEmbeddings.js +87 -0
  122. package/dist/providers/ConfiguredModelScope.d.ts +69 -0
  123. package/dist/providers/ConfiguredModelScope.d.ts.map +1 -0
  124. package/dist/providers/ConfiguredModelScope.js +113 -0
  125. package/dist/providers/ConfiguredProvider.d.ts +79 -0
  126. package/dist/providers/ConfiguredProvider.d.ts.map +1 -0
  127. package/dist/providers/ConfiguredProvider.js +238 -0
  128. package/dist/providers/ModelServiceError.d.ts +10 -0
  129. package/dist/providers/ModelServiceError.d.ts.map +1 -0
  130. package/dist/providers/ModelServiceError.js +45 -0
  131. package/dist/providers/MswarmWorkerProvider.d.ts.map +1 -1
  132. package/dist/providers/MswarmWorkerProvider.js +4 -0
  133. package/dist/providers/OpenAiCompatibleProvider.d.ts.map +1 -1
  134. package/dist/providers/OpenAiCompatibleProvider.js +134 -52
  135. package/dist/providers/ProviderTypes.d.ts +14 -0
  136. package/dist/providers/ProviderTypes.d.ts.map +1 -1
  137. package/dist/runtime/CodaliJobRuntime.d.ts +6 -0
  138. package/dist/runtime/CodaliJobRuntime.d.ts.map +1 -1
  139. package/dist/runtime/CodaliJobRuntime.js +36 -1
  140. package/dist/runtime/CodaliRuntime.d.ts +30 -0
  141. package/dist/runtime/CodaliRuntime.d.ts.map +1 -1
  142. package/dist/runtime/CodaliRuntime.js +71 -1
  143. package/dist/runtime/CompletionReport.d.ts +5 -0
  144. package/dist/runtime/CompletionReport.d.ts.map +1 -0
  145. package/dist/runtime/CompletionReport.js +12 -0
  146. package/dist/runtime/ProgressTracker.d.ts +17 -0
  147. package/dist/runtime/ProgressTracker.d.ts.map +1 -0
  148. package/dist/runtime/ProgressTracker.js +27 -0
  149. package/dist/runtime/RequestedTestEvidence.d.ts +12 -0
  150. package/dist/runtime/RequestedTestEvidence.d.ts.map +1 -0
  151. package/dist/runtime/RequestedTestEvidence.js +16 -0
  152. package/dist/runtime/RequiredRetrieval.d.ts +13 -0
  153. package/dist/runtime/RequiredRetrieval.d.ts.map +1 -0
  154. package/dist/runtime/RequiredRetrieval.js +25 -0
  155. package/dist/runtime/ReviewSource.d.ts +6 -0
  156. package/dist/runtime/ReviewSource.d.ts.map +1 -0
  157. package/dist/runtime/ReviewSource.js +38 -0
  158. package/dist/runtime/Runner.d.ts +13 -0
  159. package/dist/runtime/Runner.d.ts.map +1 -1
  160. package/dist/runtime/Runner.js +220 -158
  161. package/dist/runtime/SecretRedaction.d.ts +11 -0
  162. package/dist/runtime/SecretRedaction.d.ts.map +1 -0
  163. package/dist/runtime/SecretRedaction.js +85 -0
  164. package/dist/runtime/SessionController.d.ts +148 -0
  165. package/dist/runtime/SessionController.d.ts.map +1 -0
  166. package/dist/runtime/SessionController.js +1356 -0
  167. package/dist/runtime/StructuralEvidence.d.ts +22 -0
  168. package/dist/runtime/StructuralEvidence.d.ts.map +1 -0
  169. package/dist/runtime/StructuralEvidence.js +87 -0
  170. package/dist/runtime/TaskReviewContext.d.ts +34 -0
  171. package/dist/runtime/TaskReviewContext.d.ts.map +1 -0
  172. package/dist/runtime/TaskReviewContext.js +34 -0
  173. package/dist/runtime/ValidationOutput.d.ts +5 -0
  174. package/dist/runtime/ValidationOutput.d.ts.map +1 -0
  175. package/dist/runtime/ValidationOutput.js +32 -0
  176. package/dist/runtime/VerificationCommand.d.ts +3 -0
  177. package/dist/runtime/VerificationCommand.d.ts.map +1 -0
  178. package/dist/runtime/VerificationCommand.js +48 -0
  179. package/dist/runtime/WorkStatusPage.d.ts +15 -0
  180. package/dist/runtime/WorkStatusPage.d.ts.map +1 -0
  181. package/dist/runtime/WorkStatusPage.js +58 -0
  182. package/dist/runtime/WorkspaceLedger.d.ts +13 -0
  183. package/dist/runtime/WorkspaceLedger.d.ts.map +1 -0
  184. package/dist/runtime/WorkspaceLedger.js +145 -0
  185. package/dist/runtime/WorkspaceLock.d.ts.map +1 -1
  186. package/dist/runtime/WorkspaceLock.js +20 -17
  187. package/dist/runtime/WorkspaceSnapshot.d.ts +13 -0
  188. package/dist/runtime/WorkspaceSnapshot.d.ts.map +1 -0
  189. package/dist/runtime/WorkspaceSnapshot.js +88 -0
  190. package/dist/session/AtomicState.d.ts +13 -0
  191. package/dist/session/AtomicState.d.ts.map +1 -0
  192. package/dist/session/AtomicState.js +109 -0
  193. package/dist/session/SessionStoragePath.d.ts +15 -0
  194. package/dist/session/SessionStoragePath.d.ts.map +1 -0
  195. package/dist/session/SessionStoragePath.js +89 -0
  196. package/dist/session/SessionStore.d.ts +9 -0
  197. package/dist/session/SessionStore.d.ts.map +1 -1
  198. package/dist/session/SessionStore.js +181 -47
  199. package/dist/session/WorkState.d.ts +23 -0
  200. package/dist/session/WorkState.d.ts.map +1 -0
  201. package/dist/session/WorkState.js +367 -0
  202. package/dist/session/WorkTypes.d.ts +94 -0
  203. package/dist/session/WorkTypes.d.ts.map +1 -0
  204. package/dist/session/WorkTypes.js +1 -0
  205. package/dist/tools/ToolRegistry.d.ts +2 -0
  206. package/dist/tools/ToolRegistry.d.ts.map +1 -1
  207. package/dist/tools/ToolRegistry.js +12 -2
  208. package/dist/tools/ToolTypes.d.ts +16 -0
  209. package/dist/tools/ToolTypes.d.ts.map +1 -1
  210. package/dist/tools/docdex/DocdexTools.d.ts +2 -0
  211. package/dist/tools/docdex/DocdexTools.d.ts.map +1 -1
  212. package/dist/tools/docdex/DocdexTools.js +17 -2
  213. package/dist/tools/filesystem/FileTools.d.ts.map +1 -1
  214. package/dist/tools/filesystem/FileTools.js +30 -10
  215. package/dist/tools/shell/AsyncProcess.d.ts +16 -0
  216. package/dist/tools/shell/AsyncProcess.d.ts.map +1 -0
  217. package/dist/tools/shell/AsyncProcess.js +94 -0
  218. package/dist/tools/shell/DarwinRuntimeLibraries.d.ts +13 -0
  219. package/dist/tools/shell/DarwinRuntimeLibraries.d.ts.map +1 -0
  220. package/dist/tools/shell/DarwinRuntimeLibraries.js +130 -0
  221. package/dist/tools/shell/HostToolchain.d.ts +19 -0
  222. package/dist/tools/shell/HostToolchain.d.ts.map +1 -0
  223. package/dist/tools/shell/HostToolchain.js +264 -0
  224. package/dist/tools/shell/IsolatedExecutor.d.ts +15 -0
  225. package/dist/tools/shell/IsolatedExecutor.d.ts.map +1 -0
  226. package/dist/tools/shell/IsolatedExecutor.js +134 -0
  227. package/dist/tools/shell/ShellTool.d.ts.map +1 -1
  228. package/dist/tools/shell/ShellTool.js +9 -29
  229. package/dist/tools/shell/ShellWorkingDirectory.d.ts +3 -0
  230. package/dist/tools/shell/ShellWorkingDirectory.d.ts.map +1 -0
  231. package/dist/tools/shell/ShellWorkingDirectory.js +30 -0
  232. package/package.json +27 -24
@@ -0,0 +1,70 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "corpusId": "codali-terminal-long-v1",
4
+ "kind": "deterministic-fault-coverage",
5
+ "liveModelQualification": "separate; not established by these fixtures",
6
+ "scenarios": [
7
+ {
8
+ "id": "L01-goal-continuity",
9
+ "invariant": "Original intent and mandatory criteria survive five compactions and two real process restarts.",
10
+ "test": "eval/__tests__/TerminalRecoveryJourney.test.ts"
11
+ },
12
+ {
13
+ "id": "L02-requirement-coverage",
14
+ "invariant": "Missing criteria, orphan tasks and cyclic dependencies cannot replace an accepted plan.",
15
+ "test": "session/__tests__/WorkState.test.ts"
16
+ },
17
+ {
18
+ "id": "L03-architecture-supersession",
19
+ "invariant": "A superseded decision fences affected and transitive dependent work while retaining its history.",
20
+ "test": "session/__tests__/WorkState.test.ts"
21
+ },
22
+ {
23
+ "id": "L04-dependency-ordering",
24
+ "invariant": "Tasks and phases cannot start before prerequisites are verified, including after restart.",
25
+ "test": "eval/__tests__/TerminalRecoveryJourney.test.ts"
26
+ },
27
+ {
28
+ "id": "L05-scope-and-user-edits",
29
+ "invariant": "Pre-existing and concurrent user edits survive bounded writes, cancellation and recovery.",
30
+ "tests": ["runtime/__tests__/WorkspaceLedger.test.ts", "runtime/__tests__/SessionController.test.ts", "eval/__tests__/TerminalRecoveryJourney.test.ts"]
31
+ },
32
+ {
33
+ "id": "L06-bad-helper-handoff",
34
+ "invariant": "Invented helper sources are rejected; a poisoned transcript cannot cancel canonical criteria.",
35
+ "test": "eval/__tests__/TerminalRecoveryJourney.test.ts"
36
+ },
37
+ {
38
+ "id": "L07-stale-evidence",
39
+ "invariant": "Changed source invalidates acceptance and reopens affected downstream work, including completed goals.",
40
+ "tests": ["session/__tests__/WorkState.test.ts", "runtime/__tests__/StructuralEvidence.test.ts"]
41
+ },
42
+ {
43
+ "id": "L08-premature-completion",
44
+ "invariant": "Missing receipts, skipped verification and an unsupported completion claim cannot finish the goal.",
45
+ "tests": ["runtime/__tests__/SessionController.test.ts", "eval/__tests__/TerminalRecoveryJourney.test.ts"]
46
+ },
47
+ {
48
+ "id": "L09-steering-and-ownership",
49
+ "invariant": "User steering adds required work and fences previous attempts without erasing the original objective.",
50
+ "test": "eval/__tests__/TerminalRecoveryJourney.test.ts"
51
+ },
52
+ {
53
+ "id": "L10-duplicate-delivery",
54
+ "invariant": "Duplicate project handoff or media admission recovery cannot create duplicate accepted work.",
55
+ "tests": ["runtime/__tests__/SessionController.test.ts", "connectors/media/__tests__/RemoteMediaJob.test.ts"],
56
+ "serverTests": ["/srv/mswarm/tests/durable-media.test.ts", "/srv/mswarm/tests/openai-proxy.test.ts"]
57
+ },
58
+ {
59
+ "id": "L11-stalls-and-cancellation",
60
+ "invariant": "Expired leases, unavailable services, interrupted status reads and process descendants have bounded outcomes.",
61
+ "tests": ["session/__tests__/WorkState.test.ts", "tools/shell/__tests__/AsyncProcess.test.ts", "connectors/media/__tests__/RemoteMediaJob.test.ts"]
62
+ },
63
+ {
64
+ "id": "L12-media-crash-boundaries",
65
+ "invariant": "Lost admission or acknowledgement, corrupt payloads and incomplete local receipts never silently resubmit or claim success.",
66
+ "tests": ["connectors/media/__tests__/RemoteMediaJob.test.ts", "connectors/media/__tests__/MediaJobStore.test.ts"],
67
+ "remainingLiveCase": "Mixed code/media journey against the deployed durable API, including server expiry and tenant isolation."
68
+ }
69
+ ]
70
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"RoleResolution.d.ts","sourceRoot":"","sources":["../../src/agents/RoleResolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,EAClC,MAAM,iCAAiC,CAAC;AAKzC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,sBAAsB,GAC9B,cAAc,GACd,QAAQ,GACR,aAAa,GACb,OAAO,CAAC;AAuBZ,wEAAwE;AACxE,eAAO,MAAM,eAAe,EAAE,sBAAsB,EAInD,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,kFAAkF;IAClF,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,KAAK,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,mBAAmB,CAAC;IAChC,8DAA8D;IAC9D,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,4BAA4B,CAAC,CAAC,CAAC;IACnF,uEAAuE;IACvE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1D;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,4BAA4B,CAAC;IAC3C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAmFD,eAAO,MAAM,wBAAwB,GACnC,OAAO,mBAAmB,KACzB,oBA8FF,CAAC"}
1
+ {"version":3,"file":"RoleResolution.d.ts","sourceRoot":"","sources":["../../src/agents/RoleResolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,EAClC,MAAM,iCAAiC,CAAC;AAKzC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,sBAAsB,GAC9B,cAAc,GACd,QAAQ,GACR,aAAa,GACb,OAAO,CAAC;AAuBZ,wEAAwE;AACxE,eAAO,MAAM,eAAe,EAAE,sBAAsB,EAInD,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,kFAAkF;IAClF,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,KAAK,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,mBAAmB,CAAC;IAChC,8DAA8D;IAC9D,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,4BAA4B,CAAC,CAAC,CAAC;IACnF,uEAAuE;IACvE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1D;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,4BAA4B,CAAC;IAC3C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAmFD,eAAO,MAAM,wBAAwB,GACnC,OAAO,mBAAmB,KACzB,oBA4FF,CAAC"}
@@ -153,13 +153,13 @@ export const resolveConfigurableRoles = (input) => {
153
153
  continue;
154
154
  warnings.push(`agent_resolution_error:${error.code}${error.role ? `:${error.role}` : ""}`);
155
155
  }
156
- const toolCapable = findToolCapableAssignment(resolution,
157
- // An explicitly bound worker wins; otherwise fall back to the orchestrator.
158
- assignments.worker ?? assignments.orchestrator);
156
+ // An explicitly bound worker wins; otherwise prefer the orchestrator.
157
+ const preferredToolWorker = assignments.worker ?? assignments.orchestrator;
158
+ const toolCapable = findToolCapableAssignment(resolution, preferredToolWorker);
159
159
  if (!toolCapable) {
160
160
  warnings.push("no_tool_capable_agent");
161
161
  }
162
- else if (toolCapable !== assignments.orchestrator) {
162
+ else if (toolCapable !== preferredToolWorker) {
163
163
  warnings.push(`tool_worker_substituted:${toolCapable.candidate.slug}`);
164
164
  }
165
165
  return { resolution, assignments, bindings: bindingsOut, toolCapable, warnings };
@@ -1,3 +1,6 @@
1
+ import type { EffortLevel, ResolvedOrchestrationConfig } from "../config/OrchestrationConfig.js";
2
+ import { type ScopedModelUsage } from "../providers/ConfiguredModelScope.js";
3
+ import type { ModelCallerContext, ModelInvocation } from "../providers/ConfiguredProvider.js";
1
4
  import { attachMcpTools } from "../connectors/mcp/McpToolSource.js";
2
5
  import { type ImageGenerationConfig } from "../connectors/media/ImageGenerationTool.js";
3
6
  import { createProviderForAssignment } from "../gateway/LocalGatewayProvider.js";
@@ -80,6 +83,12 @@ export interface CodaliToolCallRecord {
80
83
  errorCode?: string;
81
84
  }
82
85
  export interface CodaliResult {
86
+ orchestration?: {
87
+ configHash: string;
88
+ usage: ScopedModelUsage;
89
+ toolCalls: number;
90
+ routes: ModelInvocation[];
91
+ };
83
92
  status: CodaliGatewayStatus;
84
93
  /** Text answer, or the clarifying question when status is needs_clarification. */
85
94
  answer: string;
@@ -104,6 +113,13 @@ export interface CodaliResult {
104
113
  /** Flattens a message list into the single query the gateway plans against. */
105
114
  export declare const messagesToQuery: (messages: readonly CodaliMessage[]) => string;
106
115
  export interface CodaliRunDependencies {
116
+ /** Trusted host policy, never copied from a tenant's request payload. */
117
+ orchestration?: {
118
+ resolved: ResolvedOrchestrationConfig;
119
+ effort?: EffortLevel;
120
+ caller?: ModelCallerContext;
121
+ };
122
+ signal?: AbortSignal;
107
123
  loadInventory?: typeof getAgentInventory;
108
124
  resolveRunContext?: (workspaceRoot: string) => Promise<RunContext>;
109
125
  buildRegistry?: (workspaceRoot: string, context: RunContext) => ToolRegistry;
@@ -1 +1 @@
1
- {"version":3,"file":"CodaliApi.d.ts","sourceRoot":"","sources":["../../src/api/CodaliApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CodaliApi.d.ts","sourceRoot":"","sources":["../../src/api/CodaliApi.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { randomUUID } from "node:crypto";
2
+ import { ConfiguredModelScope } from "../providers/ConfiguredModelScope.js";
2
3
  import { attachHttpTools } from "../connectors/http/HttpToolSource.js";
3
4
  import { attachMcpTools } from "../connectors/mcp/McpToolSource.js";
4
5
  import { createImageGenerationTool, } from "../connectors/media/ImageGenerationTool.js";
@@ -62,6 +63,27 @@ const toolCallRecords = (tracer) => tracer.snapshot().toolCalls.map((call) => ({
62
63
  * The same code path the CLI uses, so a product and the terminal cannot drift.
63
64
  */
64
65
  export const runCodali = async (request, deps = {}) => {
66
+ if (!deps.orchestration)
67
+ return runCodaliWithinScope(request, deps);
68
+ if (deps.createProvider)
69
+ throw new Error("Configured Codali API cannot accept a legacy provider override");
70
+ if (request.media)
71
+ throw new Error("Configured Codali API media must be registered by the host using approved bindings; request media overrides are not allowed");
72
+ const routes = [];
73
+ const scope = new ConfiguredModelScope(deps.orchestration.resolved, { effort: deps.orchestration.effort, signal: deps.signal, caller: deps.orchestration.caller,
74
+ onEvent: event => { if (event.type === "intent" && event.route)
75
+ routes.push(event.route); } });
76
+ try {
77
+ for (const binding of ["planner", "synthesizer", "worker"])
78
+ scope.models(binding);
79
+ const result = await runCodaliWithinScope(request, deps, scope);
80
+ return { ...result, orchestration: { configHash: scope.configHash, usage: scope.snapshot(), toolCalls: scope.toolsUsed, routes } };
81
+ }
82
+ finally {
83
+ scope.close();
84
+ }
85
+ };
86
+ const runCodaliWithinScope = async (request, deps, scope) => {
65
87
  const workspaceRoot = request.workspaceRoot ?? process.cwd();
66
88
  const query = messagesToQuery(request.messages);
67
89
  const tracer = new GatewayTracer(query);
@@ -106,7 +128,7 @@ export const runCodali = async (request, deps = {}) => {
106
128
  const context = resolvedContext;
107
129
  for (const warning of context.warnings ?? [])
108
130
  tracer.addWarning(warning);
109
- const inventory = await (deps.loadInventory ?? getAgentInventory)();
131
+ const inventory = scope ? { agents: [], warnings: [] } : await (deps.loadInventory ?? getAgentInventory)();
110
132
  const drivable = filterLocallyDrivable(inventory.agents);
111
133
  const roles = resolveConfigurableRoles({
112
134
  inventory: drivable,
@@ -117,7 +139,7 @@ export const runCodali = async (request, deps = {}) => {
117
139
  tracer.addWarning(warning);
118
140
  const orchestrator = roles.assignments.orchestrator;
119
141
  const synthesizer = roles.assignments.synthesizer;
120
- if (!orchestrator && !synthesizer) {
142
+ if (!scope && !orchestrator && !synthesizer) {
121
143
  return {
122
144
  status: "failed",
123
145
  answer: "No usable model agent could be resolved for this run.",
@@ -139,10 +161,10 @@ export const runCodali = async (request, deps = {}) => {
139
161
  const clientProduct = resolveMswarmClientProduct(context.tenant?.product);
140
162
  const baseProvider = deps.createProvider ?? createProviderForAssignment;
141
163
  const makeProvider = (assignment, options) => baseProvider(assignment, { clientIdentity, clientProduct, ...options });
142
- const primary = makeProvider((synthesizer ?? orchestrator));
143
- const orchestratorProvider = orchestrator ? makeProvider(orchestrator) : undefined;
164
+ const primary = scope ? scope.provider("synthesizer") : makeProvider((synthesizer ?? orchestrator));
165
+ const orchestratorProvider = scope ? scope.provider("planner") : orchestrator ? makeProvider(orchestrator) : undefined;
144
166
  const workerCandidates = [roles.toolCapable, orchestrator, synthesizer].filter(Boolean);
145
- let worker = primary;
167
+ let worker = scope ? scope.provider("worker") : primary;
146
168
  for (const candidate of workerCandidates) {
147
169
  const provider = makeProvider(candidate);
148
170
  if (providerSupportsToolCalls(provider)) {
@@ -153,7 +175,7 @@ export const runCodali = async (request, deps = {}) => {
153
175
  const toolsExecutable = providerSupportsToolCalls(worker);
154
176
  const min = (a, b) => (b === undefined ? a : Math.min(a, b));
155
177
  // ---- Tools ------------------------------------------------------------
156
- const registry = deps.buildRegistry?.(workspaceRoot, context) ?? buildDefaultRegistry(workspaceRoot, context);
178
+ const registry = deps.buildRegistry?.(workspaceRoot, context) ?? buildDefaultRegistry(workspaceRoot, context, scope);
157
179
  const mcp = await (deps.attachMcp ?? attachMcpTools)({ context, toolRegistry: registry });
158
180
  for (const warning of mcp.warnings)
159
181
  tracer.addWarning(warning);
@@ -184,7 +206,7 @@ export const runCodali = async (request, deps = {}) => {
184
206
  // A run with no tool budget is a run without tools. Offering them anyway
185
207
  // produced tasks that could not execute, and a failed job where the honest
186
208
  // outcome was an answer given without them.
187
- const toolBudget = min(request.budgets?.maxToolCalls ?? DEFAULTS.maxToolCalls, context.limits?.maxToolCalls);
209
+ const toolBudget = Math.min(scope?.budget().maxToolCalls ?? Infinity, min(request.budgets?.maxToolCalls ?? DEFAULTS.maxToolCalls, context.limits?.maxToolCalls));
188
210
  const allowedTools = toolsExecutable && toolBudget > 0
189
211
  ? (context.allowedTools ?? defaultAllowed).filter((tool) => registered.includes(tool))
190
212
  : [];
@@ -205,8 +227,9 @@ export const runCodali = async (request, deps = {}) => {
205
227
  // ---- Budgets ----------------------------------------------------------
206
228
  const maxRounds = min(request.budgets?.maxRounds ?? DEFAULTS.maxRounds, context.limits?.maxRounds);
207
229
  const maxToolCalls = toolBudget;
208
- const deadlineMs = min(request.budgets?.deadlineMs ?? DEFAULTS.deadlineMs, context.limits?.deadlineMs);
230
+ const deadlineMs = Math.min(scope?.budget().timeoutMs ?? Infinity, min(request.budgets?.deadlineMs ?? DEFAULTS.deadlineMs, context.limits?.deadlineMs));
209
231
  const gatewayRequest = {
232
+ metadata: scope ? { orchestration: { configHash: scope.configHash, effort: scope.effort, scopeId: scope.id } } : undefined,
210
233
  id: runId,
211
234
  query,
212
235
  mode: request.mode ?? "balanced",
@@ -227,7 +250,7 @@ export const runCodali = async (request, deps = {}) => {
227
250
  maxIterations: maxRounds,
228
251
  maxRuntimeMs: deadlineMs,
229
252
  maxToolCalls,
230
- maxModelCalls: request.budgets?.maxModelCalls ?? DEFAULTS.maxModelCalls,
253
+ maxModelCalls: Math.min(request.budgets?.maxModelCalls ?? DEFAULTS.maxModelCalls, scope?.budget().maxModelCalls ?? Infinity),
231
254
  maxEvidenceItems: 40,
232
255
  maxImageArtifacts: request.media ? 4 : 0,
233
256
  maxContextPackTokens: 16000,
@@ -257,6 +280,8 @@ export const runCodali = async (request, deps = {}) => {
257
280
  provider: worker,
258
281
  registry,
259
282
  toolContext: {
283
+ signal: scope?.signal ?? deps.signal,
284
+ beforeTool: scope ? async () => scope.reserveTool() : undefined,
260
285
  workspaceRoot,
261
286
  allowShell: false,
262
287
  allowDestructiveOperations: false,
@@ -286,6 +311,7 @@ export const runCodali = async (request, deps = {}) => {
286
311
  });
287
312
  try {
288
313
  const result = await gateway.run(gatewayRequest);
314
+ scope?.signal.throwIfAborted();
289
315
  return {
290
316
  status: result.status,
291
317
  answer: result.answer,
@@ -322,9 +348,12 @@ export const runCodali = async (request, deps = {}) => {
322
348
  await mcp.registry?.close();
323
349
  }
324
350
  };
325
- const buildDefaultRegistry = (workspaceRoot, context) => {
351
+ const buildDefaultRegistry = (workspaceRoot, context, scope) => {
326
352
  const registry = new ToolRegistry();
327
353
  const client = new DocdexClient({
354
+ signal: () => scope?.signal,
355
+ beforeRequest: scope ? () => scope.reserveTool() : undefined,
356
+ localSearchOnly: Boolean(scope),
328
357
  baseUrl: context.docdex?.baseUrl ?? "http://127.0.0.1:28491",
329
358
  repoRoot: docdexRepoRootFor(context.repo?.root, context.docdex?.repoId, workspaceRoot),
330
359
  repoId: context.docdex?.repoId,
@@ -1,3 +1,4 @@
1
+ import { type EffortLevel } from "../config/OrchestrationConfig.js";
1
2
  import { getAgentInventory } from "../agents/AgentInventory.js";
2
3
  import { attachMcpTools } from "../connectors/mcp/McpToolSource.js";
3
4
  import { createProviderForAssignment } from "../gateway/LocalGatewayProvider.js";
@@ -32,6 +33,8 @@ export declare const DEFAULT_DEADLINE_MS = 600000;
32
33
  */
33
34
  export declare const DEFAULT_MAX_PARALLEL_WORKERS = 3;
34
35
  export interface AskOptions {
36
+ orchestrationConfig?: string;
37
+ effort?: EffortLevel;
35
38
  query: string;
36
39
  workspaceRoot: string;
37
40
  mode: CodaliGatewayMode;
@@ -1 +1 @@
1
- {"version":3,"file":"AskCommand.d.ts","sourceRoot":"","sources":["../../src/cli/AskCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGvF,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAIpE,OAAO,EACL,2BAA2B,EAE5B,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,KAAK,EACV,iBAAiB,EAEjB,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAG9D;;;;;;GAMG;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C;;;GAGG;AACH,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAe9C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB;AA+BD,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,KAAG,UAuE7C,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,OAAO,iBAAiB,CAAC;IACzC,iBAAiB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACnE,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,KAAK,YAAY,CAAC;IAC3E,cAAc,CAAC,EAAE,CACf,UAAU,EAAE,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC,CAAC,CAAC,KAC1D,QAAQ,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,cAAc,CAAC;IAClC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AA8BD,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,MAAM,GACjB,MAAM,MAAM,EAAE,EACd,OAAM,eAAoB,KACzB,OAAO,CAAC,UAAU,CAsZpB,CAAC;AAEF,eAAO,MAAM,UAAU;cACL,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAMzC,CAAC"}
1
+ {"version":3,"file":"AskCommand.d.ts","sourceRoot":"","sources":["../../src/cli/AskCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE7F,OAAO,EAAyB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGvF,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAIpE,OAAO,EACL,2BAA2B,EAE5B,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,KAAK,EACV,iBAAiB,EAEjB,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAG9D;;;;;;GAMG;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C;;;GAGG;AACH,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAe9C,MAAM,WAAW,UAAU;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB;AAkCD,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,KAAG,UAiF7C,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,OAAO,iBAAiB,CAAC;IACzC,iBAAiB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACnE,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,KAAK,YAAY,CAAC;IAC3E,cAAc,CAAC,EAAE,CACf,UAAU,EAAE,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC,CAAC,CAAC,KAC1D,QAAQ,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,cAAc,CAAC;IAClC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAkCD,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,MAAM,GACjB,MAAM,MAAM,EAAE,EACd,OAAM,eAAoB,KACzB,OAAO,CAAC,UAAU,CAyBpB,CAAC;AA6ZF,eAAO,MAAM,UAAU;cACL,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAMzC,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import path from "node:path";
2
+ import { loadOrchestrationConfig } from "../config/OrchestrationConfig.js";
3
+ import { ConfiguredModelScope } from "../providers/ConfiguredModelScope.js";
2
4
  import { filterLocallyDrivable, getAgentInventory } from "../agents/AgentInventory.js";
3
5
  import { resolveConfigurableRoles } from "../agents/RoleResolution.js";
4
6
  import { attachHttpTools } from "../connectors/http/HttpToolSource.js";
@@ -55,6 +57,9 @@ const DEFAULT_ALLOWED_TOOLS = [
55
57
  ];
56
58
  const HELP = `Usage: codali ask "<question>" [options]
57
59
 
60
+ Configured routing: --orchestration-config PATH --effort low|medium|high|max
61
+ Deployment default: CODALI_ORCHESTRATION_CONFIG
62
+
58
63
  Ask Codali a question. The orchestrator routes the request, gathers evidence
59
64
  with the tools available to it, and returns a cited answer.
60
65
 
@@ -94,10 +99,24 @@ export const parseAskArgs = (argv) => {
94
99
  let responseSchemaPath;
95
100
  let responseFormat;
96
101
  let noTools = false;
102
+ let orchestrationConfig;
103
+ let effort;
97
104
  for (let index = 0; index < argv.length; index += 1) {
98
105
  const arg = argv[index];
99
106
  const next = argv[index + 1];
100
- if (arg === "--workspace-root" && next) {
107
+ if (arg === "--orchestration-config") {
108
+ if (!next || next.startsWith("--"))
109
+ throw new Error("--orchestration-config requires a file path");
110
+ orchestrationConfig = next;
111
+ index += 1;
112
+ }
113
+ else if (arg === "--effort") {
114
+ if (!["low", "medium", "high", "max"].includes(next ?? ""))
115
+ throw new Error("--effort requires low|medium|high|max");
116
+ effort = next;
117
+ index += 1;
118
+ }
119
+ else if (arg === "--workspace-root" && next) {
101
120
  workspaceRoot = path.resolve(next);
102
121
  index += 1;
103
122
  }
@@ -147,6 +166,8 @@ export const parseAskArgs = (argv) => {
147
166
  throw new Error("codali ask requires a question.\n\n" + HELP);
148
167
  }
149
168
  return {
169
+ orchestrationConfig,
170
+ effort,
150
171
  query,
151
172
  workspaceRoot,
152
173
  mode,
@@ -161,11 +182,14 @@ export const parseAskArgs = (argv) => {
161
182
  noTools,
162
183
  };
163
184
  };
164
- const buildDefaultRegistry = (options, context, judgeProvider) => {
185
+ const buildDefaultRegistry = (options, context, judgeProvider, scope) => {
165
186
  const registry = new ToolRegistry();
166
187
  if (options.noTools)
167
188
  return registry;
168
189
  const client = new DocdexClient({
190
+ signal: () => scope?.signal,
191
+ beforeRequest: scope ? () => scope.reserveTool() : undefined,
192
+ localSearchOnly: Boolean(scope),
169
193
  baseUrl: options.docdexBaseUrl ?? context.docdex?.baseUrl ?? "http://127.0.0.1:28491",
170
194
  repoRoot: docdexRepoRootFor(context.repo?.root, context.docdex?.repoId, options.workspaceRoot),
171
195
  repoId: context.docdex?.repoId,
@@ -189,6 +213,35 @@ export const runAsk = async (argv, deps = {}) => {
189
213
  return { tracer: new GatewayTracer(""), exitCode: 0 };
190
214
  }
191
215
  const options = parseAskArgs(argv);
216
+ const file = options.orchestrationConfig ?? process.env.CODALI_ORCHESTRATION_CONFIG;
217
+ if (!file) {
218
+ if (options.effort)
219
+ throw new Error("Legacy ask requires --orchestration-config to select an effort budget");
220
+ return runAskWithOptions(options, deps);
221
+ }
222
+ if (deps.createProvider)
223
+ throw new Error("Configured ask cannot accept a legacy provider override");
224
+ const resolved = await loadOrchestrationConfig(file);
225
+ const context = deps.resolveRunContext ? await deps.resolveRunContext(options.workspaceRoot)
226
+ : await new LocalConfigRunContextResolver().resolve({ workspaceRoot: options.workspaceRoot });
227
+ const abort = new AbortController();
228
+ const stop = () => abort.abort(new Error("Configured ask cancelled"));
229
+ const scope = new ConfiguredModelScope(resolved, { effort: options.effort, signal: abort.signal,
230
+ caller: { clientIdentity: context.tenant?.slug ?? context.tenant?.id, clientProduct: resolveMswarmClientProduct(context.tenant?.product) ?? "codali" } });
231
+ process.once("SIGINT", stop);
232
+ process.once("SIGTERM", stop);
233
+ try {
234
+ for (const binding of options.noTools ? ["planner", "synthesizer"] : ["planner", "synthesizer", "worker"])
235
+ scope.models(binding);
236
+ return await runAskWithOptions(options, { ...deps, resolveRunContext: async () => context }, scope);
237
+ }
238
+ finally {
239
+ scope.close();
240
+ process.removeListener("SIGINT", stop);
241
+ process.removeListener("SIGTERM", stop);
242
+ }
243
+ };
244
+ const runAskWithOptions = async (options, deps, scope) => {
192
245
  const write = deps.write ?? ((line) => process.stdout.write(`${line}\n`));
193
246
  const tracer = new GatewayTracer(options.query, { verbose: options.trace });
194
247
  // ---- Resolve what this run may touch --------------------------------
@@ -200,7 +253,7 @@ export const runAsk = async (argv, deps = {}) => {
200
253
  for (const warning of context.warnings ?? [])
201
254
  tracer.addWarning(warning);
202
255
  // ---- Resolve models (inventory is loaded once per process) -----------
203
- const inventory = await (deps.loadInventory ?? getAgentInventory)();
256
+ const inventory = scope ? { agents: [], warnings: [] } : await (deps.loadInventory ?? getAgentInventory)();
204
257
  for (const warning of inventory.warnings)
205
258
  tracer.addWarning(warning);
206
259
  // Only consider agents this process can actually call. Selecting one it
@@ -216,9 +269,11 @@ export const runAsk = async (argv, deps = {}) => {
216
269
  for (const warning of roles.warnings)
217
270
  tracer.addWarning(warning);
218
271
  tracer.setRoleBindings(roles.bindings);
272
+ if (scope)
273
+ tracer.setRoleBindings({ orchestrator: "configured:planner", synthesizer: "configured:synthesizer", worker: "configured:worker" });
219
274
  const orchestrator = roles.assignments.orchestrator;
220
275
  const synthesizer = roles.assignments.synthesizer;
221
- if (!orchestrator && !synthesizer) {
276
+ if (!scope && !orchestrator && !synthesizer) {
222
277
  write("No usable mcoda agent was found for the orchestrator or synthesizer role.\n" +
223
278
  "Check `mcoda agent list --json` and bind roles in ~/.codali/config.json.");
224
279
  tracer.finish({ status: "failed", completionReason: "no_agents_resolved" });
@@ -232,12 +287,12 @@ export const runAsk = async (argv, deps = {}) => {
232
287
  const clientProduct = resolveMswarmClientProduct(context.tenant?.product);
233
288
  const baseProvider = deps.createProvider ?? createProviderForAssignment;
234
289
  const makeProvider = (assignment, options) => baseProvider(assignment, { clientIdentity, clientProduct, ...options });
235
- const orchestratorProvider = orchestrator ? makeProvider(orchestrator) : undefined;
236
- const synthesizerProvider = synthesizer ? makeProvider(synthesizer) : undefined;
290
+ const orchestratorProvider = scope ? scope.provider("planner") : orchestrator ? makeProvider(orchestrator) : undefined;
291
+ const synthesizerProvider = scope ? scope.provider("synthesizer") : synthesizer ? makeProvider(synthesizer) : undefined;
237
292
  // Either role can stand in for the other if only one resolved; the trace
238
293
  // records which, so a degraded run is visible rather than silent.
239
294
  const primary = (synthesizerProvider ?? orchestratorProvider);
240
- if (!orchestrator || !synthesizer) {
295
+ if (!scope && (!orchestrator || !synthesizer)) {
241
296
  tracer.addWarning("agent_role_substituted");
242
297
  }
243
298
  // Worker tasks need a provider that can emit structured tool calls. The
@@ -246,7 +301,7 @@ export const runAsk = async (argv, deps = {}) => {
246
301
  // through text and can never surface a call. So probe the built provider.
247
302
  const workerCandidates = [roles.toolCapable, roles.assignments.worker, orchestrator, synthesizer].filter((assignment) => Boolean(assignment));
248
303
  let workerAssignment = workerCandidates[0];
249
- let worker = workerAssignment ? makeProvider(workerAssignment) : primary;
304
+ let worker = scope && !options.noTools ? scope.provider("worker") : workerAssignment ? makeProvider(workerAssignment) : primary;
250
305
  for (const candidate of workerCandidates) {
251
306
  const provider = makeProvider(candidate);
252
307
  if (providerSupportsToolCalls(provider)) {
@@ -269,7 +324,7 @@ export const runAsk = async (argv, deps = {}) => {
269
324
  // ---- Tools -----------------------------------------------------------
270
325
  const registry = deps.buildRegistry
271
326
  ? deps.buildRegistry(options, context)
272
- : buildDefaultRegistry(options, context, orchestratorProvider ?? worker);
327
+ : buildDefaultRegistry(options, context, orchestratorProvider ?? worker, scope);
273
328
  // Connect the run's MCP servers and register what they expose into the same
274
329
  // registry the built-in and docdex tools live in. A failing server degrades
275
330
  // its own tools to unavailable and is reported; it never fails the run.
@@ -311,9 +366,9 @@ export const runAsk = async (argv, deps = {}) => {
311
366
  const toolDescriptors = gatewayToolDescriptorsFromRegistry(registry, allowedTools);
312
367
  // ---- Build the request ------------------------------------------------
313
368
  const limits = context.limits ?? {};
314
- const maxToolCalls = Math.min(options.maxToolCalls, limits.maxToolCalls ?? Infinity);
369
+ const maxToolCalls = Math.min(options.maxToolCalls, limits.maxToolCalls ?? Infinity, scope?.budget().maxToolCalls ?? Infinity);
315
370
  const maxRounds = Math.min(options.maxRounds, limits.maxRounds ?? Infinity);
316
- const deadlineMs = Math.min(options.deadlineMs, limits.deadlineMs ?? Infinity);
371
+ const deadlineMs = Math.min(options.deadlineMs, limits.deadlineMs ?? Infinity, scope?.budget().timeoutMs ?? Infinity);
317
372
  // Every tool must be declared to the capability compiler, which otherwise
318
373
  // discards it as `not_declared`. That includes docdex tools outside the
319
374
  // compiler's hardcoded backing-tool set — `docdex_web_research` among them,
@@ -326,6 +381,7 @@ export const runAsk = async (argv, deps = {}) => {
326
381
  responseSchema = JSON.parse(await readFile(path.resolve(options.responseSchemaPath), "utf8"));
327
382
  }
328
383
  const request = {
384
+ metadata: scope ? { orchestration: { configHash: scope.configHash, effort: scope.effort, scopeId: scope.id } } : undefined,
329
385
  query: options.query,
330
386
  mode: options.mode,
331
387
  product: { name: "codali-cli" },
@@ -350,7 +406,7 @@ export const runAsk = async (argv, deps = {}) => {
350
406
  maxIterations: maxRounds,
351
407
  maxRuntimeMs: deadlineMs,
352
408
  maxToolCalls,
353
- maxModelCalls: DEFAULT_MAX_MODEL_CALLS,
409
+ maxModelCalls: Math.min(DEFAULT_MAX_MODEL_CALLS, scope?.budget().maxModelCalls ?? Infinity),
354
410
  maxEvidenceItems: 40,
355
411
  maxContextPackTokens: 16000,
356
412
  allowWrites: false,
@@ -381,6 +437,8 @@ export const runAsk = async (argv, deps = {}) => {
381
437
  provider: worker,
382
438
  registry,
383
439
  toolContext: {
440
+ signal: scope?.signal,
441
+ beforeTool: scope ? async () => scope.reserveTool() : undefined,
384
442
  workspaceRoot: options.workspaceRoot,
385
443
  allowShell: false,
386
444
  allowDestructiveOperations: false,
@@ -417,6 +475,7 @@ export const runAsk = async (argv, deps = {}) => {
417
475
  });
418
476
  try {
419
477
  const planning = await gateway.plan(request);
478
+ scope?.signal.throwIfAborted();
420
479
  tracer.setRunId(planning.runId);
421
480
  tracer.recordPlan({
422
481
  capabilities: planning.classifier.capabilities,
@@ -448,6 +507,7 @@ export const runAsk = async (argv, deps = {}) => {
448
507
  return { result: clarified, tracer, exitCode: 0 };
449
508
  }
450
509
  const workers = await gateway.executePlannedWorkerTasks(request, planning);
510
+ scope?.signal.throwIfAborted();
451
511
  tracer.recordRound(1);
452
512
  // Surface worker failures. Without this a run whose every task failed still
453
513
  // reaches the synthesizer, which correctly reports it cannot answer — and
@@ -459,12 +519,15 @@ export const runAsk = async (argv, deps = {}) => {
459
519
  }
460
520
  for (const error of workers.workers.errors)
461
521
  tracer.addWarning(`worker_error:${error}`);
462
- const result = await gateway.synthesizeFinalAnswer({
522
+ const synthesized = await gateway.synthesizeFinalAnswer({
463
523
  runId: planning.runId,
464
524
  request,
465
525
  planning,
466
526
  workers: workers.workers,
467
527
  });
528
+ scope?.signal.throwIfAborted();
529
+ const result = { ...synthesized, telemetry: { ...synthesized.telemetry,
530
+ ...(scope ? { orchestration: { configHash: scope.configHash, usage: scope.snapshot(), toolCalls: scope.toolsUsed } } : {}) } };
468
531
  tracer.finish({
469
532
  status: result.status,
470
533
  finalizerMode: String(result.telemetry.finalizerMode ?? "synthesizer"),
@@ -1,8 +1,11 @@
1
+ import { type EffortLevel } from "../config/OrchestrationConfig.js";
1
2
  import type { ToolConfig } from "../config/Config.js";
2
3
  import type { ProviderConfig } from "../providers/ProviderTypes.js";
3
4
  import { type PipelinePhase } from "../cognitive/ProviderRouting.js";
4
5
  import { type PhaseAgentSelection } from "../agents/PhaseAgentSelector.js";
5
6
  interface ParsedArgs {
7
+ orchestrationConfig?: string;
8
+ effort?: EffortLevel;
6
9
  workspaceRoot?: string;
7
10
  project?: string;
8
11
  command?: string;
@@ -88,6 +91,7 @@ export declare const assessPhaseFallbackSuitability: (phase: PipelinePhase, buil
88
91
  };
89
92
  export declare class RunCommand {
90
93
  static run(argv: string[]): Promise<void>;
94
+ private static runParsed;
91
95
  }
92
96
  export {};
93
97
  //# sourceMappingURL=RunCommand.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RunCommand.d.ts","sourceRoot":"","sources":["../../src/cli/RunCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RunCommand.d.ts","sourceRoot":"","sources":["../../src/cli/RunCommand.ts"],"names":[],"mappings":"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"}