@quantiya/codevibe-core 2.0.1 → 2.0.3

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 (284) hide show
  1. package/dist/__tests__/prompt-parser.test.d.ts +1 -0
  2. package/dist/adapter/registry.d.ts +69 -2
  3. package/dist/appsync/__tests__/appsync-client-event-source-filter.test.d.ts +1 -0
  4. package/dist/appsync/__tests__/appsync-client-task-group.test.d.ts +1 -0
  5. package/dist/appsync/__tests__/cleanup-subscription.test.d.ts +1 -0
  6. package/dist/appsync/__tests__/coerce-awsjson-and-review-summary.test.d.ts +1 -0
  7. package/dist/appsync/__tests__/cp1f-quorum-sdk.test.d.ts +1 -0
  8. package/dist/appsync/__tests__/event-throttle.test.d.ts +1 -0
  9. package/dist/appsync/appsync-client.d.ts +621 -10
  10. package/dist/appsync/event-throttle.d.ts +28 -0
  11. package/dist/appsync/index.d.ts +3 -0
  12. package/dist/appsync/queries.d.ts +19 -0
  13. package/dist/audit-keys/index.d.ts +32 -0
  14. package/dist/auth/auth-service.d.ts +32 -2
  15. package/dist/auth/auth-telemetry.d.ts +19 -1
  16. package/dist/auth/index.d.ts +1 -0
  17. package/dist/companion-mode/__tests__/detect-parallel.test.d.ts +1 -0
  18. package/dist/companion-mode/index.d.ts +4 -3
  19. package/dist/companion-mode/persist-preference.d.ts +1 -1
  20. package/dist/config/config.d.ts +8 -1
  21. package/dist/continuation/__tests__/dirty-state-collector.test.d.ts +1 -0
  22. package/dist/continuation/__tests__/integration.test.d.ts +1 -0
  23. package/dist/continuation/__tests__/packet-reader.test.d.ts +1 -0
  24. package/dist/continuation/__tests__/packet-writer.test.d.ts +1 -0
  25. package/dist/continuation/__tests__/parity.test.d.ts +1 -0
  26. package/dist/continuation/__tests__/status-cli.test.d.ts +1 -0
  27. package/dist/continuation/dirty-state-collector.d.ts +46 -0
  28. package/dist/continuation/index.d.ts +8 -0
  29. package/dist/continuation/packet-reader.d.ts +33 -0
  30. package/dist/continuation/packet-writer.d.ts +86 -0
  31. package/dist/continuation/types.d.ts +239 -0
  32. package/dist/credential-broker/__tests__/broker.test.d.ts +1 -0
  33. package/dist/credential-broker/__tests__/canonical.test.d.ts +1 -0
  34. package/dist/credential-broker/__tests__/scrubber.test.d.ts +1 -0
  35. package/dist/credential-broker/__tests__/upstream-client.test.d.ts +1 -0
  36. package/dist/credential-broker/__tests__/vendor-key-store.test.d.ts +1 -0
  37. package/dist/credential-broker/audit-sink.d.ts +69 -0
  38. package/dist/credential-broker/broker-config.d.ts +39 -0
  39. package/dist/credential-broker/broker-token.d.ts +123 -0
  40. package/dist/credential-broker/broker.d.ts +165 -0
  41. package/dist/credential-broker/canonical.d.ts +119 -0
  42. package/dist/credential-broker/index.d.ts +15 -0
  43. package/dist/credential-broker/scrubber.d.ts +45 -0
  44. package/dist/credential-broker/types.d.ts +141 -0
  45. package/dist/credential-broker/upstream-client.d.ts +20 -0
  46. package/dist/credential-broker/vendor-key-store.d.ts +54 -0
  47. package/dist/index.d.ts +6 -1
  48. package/dist/index.js +427 -124
  49. package/dist/keychain/__tests__/keychain-backend.test.d.ts +1 -0
  50. package/dist/keychain/keychain-backend.d.ts +82 -0
  51. package/dist/local-executor/__tests__/agentic-disposable-repo.test.d.ts +1 -0
  52. package/dist/local-executor/__tests__/agentic-resolve.test.d.ts +1 -0
  53. package/dist/local-executor/__tests__/agentic-resolver-flag.test.d.ts +1 -0
  54. package/dist/local-executor/__tests__/class-a-sign.test.d.ts +1 -0
  55. package/dist/local-executor/__tests__/class1-reconcilers.test.d.ts +1 -0
  56. package/dist/local-executor/__tests__/class2-resolver.test.d.ts +1 -0
  57. package/dist/local-executor/__tests__/confined-model-caller.test.d.ts +1 -0
  58. package/dist/local-executor/__tests__/conflict-classifier.test.d.ts +1 -0
  59. package/dist/local-executor/__tests__/conflict-resolution-durable-store.test.d.ts +1 -0
  60. package/dist/local-executor/__tests__/conflict-resolution-store.test.d.ts +1 -0
  61. package/dist/local-executor/__tests__/cp1f-quorum-consumer.test.d.ts +1 -0
  62. package/dist/local-executor/__tests__/cp7-audit-writer.test.d.ts +1 -0
  63. package/dist/local-executor/__tests__/durable-store.test.d.ts +1 -0
  64. package/dist/local-executor/__tests__/git-lock-retry.test.d.ts +1 -0
  65. package/dist/local-executor/__tests__/implementor-argv.test.d.ts +1 -0
  66. package/dist/local-executor/__tests__/local-executor-teams.test.d.ts +1 -0
  67. package/dist/local-executor/__tests__/merge-conflict-extract.test.d.ts +1 -0
  68. package/dist/local-executor/__tests__/merge-conflict-git.integration.test.d.ts +1 -0
  69. package/dist/local-executor/__tests__/merge-conflict-resolve-agentic.integration.test.d.ts +1 -0
  70. package/dist/local-executor/__tests__/merge-conflict-resolve.integration.test.d.ts +1 -0
  71. package/dist/local-executor/__tests__/merge-journal-store.test.d.ts +1 -0
  72. package/dist/local-executor/__tests__/merge-train-agentic-recovery.integration.test.d.ts +1 -0
  73. package/dist/local-executor/__tests__/merge-train-w3.integration.test.d.ts +1 -0
  74. package/dist/local-executor/__tests__/merge-train-waveb.integration.test.d.ts +1 -0
  75. package/dist/local-executor/__tests__/merge-train.test.d.ts +1 -0
  76. package/dist/local-executor/__tests__/promote-wal-store.test.d.ts +1 -0
  77. package/dist/local-executor/__tests__/revert-reconcile.test.d.ts +1 -0
  78. package/dist/local-executor/__tests__/revert-runner.test.d.ts +1 -0
  79. package/dist/local-executor/__tests__/shared-contract-detector.test.d.ts +1 -0
  80. package/dist/local-executor/__tests__/substrate-engage.test.d.ts +1 -0
  81. package/dist/local-executor/__tests__/team-execution-flag.test.d.ts +1 -0
  82. package/dist/local-executor/__tests__/track-registry.test.d.ts +1 -0
  83. package/dist/local-executor/__tests__/wb2-review-bundle.test.d.ts +1 -0
  84. package/dist/local-executor/__tests__/wb2-substrate-spawn.live.test.d.ts +1 -0
  85. package/dist/local-executor/__tests__/workspace-shadow.test.d.ts +1 -0
  86. package/dist/local-executor/__tests__/worktree-merge.test.d.ts +1 -0
  87. package/dist/local-executor/agentic-disposable-repo.d.ts +52 -0
  88. package/dist/local-executor/agentic-resolve.d.ts +54 -0
  89. package/dist/local-executor/agentic-resolver-flag.d.ts +9 -0
  90. package/dist/local-executor/authority.d.ts +33 -1
  91. package/dist/local-executor/class-a-emit.d.ts +3 -1
  92. package/dist/local-executor/class-a-sign.d.ts +57 -0
  93. package/dist/local-executor/class-b-consumer.d.ts +159 -4
  94. package/dist/local-executor/class-b-verify.d.ts +30 -0
  95. package/dist/local-executor/class1-reconcilers.d.ts +58 -0
  96. package/dist/local-executor/class2-resolver.d.ts +74 -0
  97. package/dist/local-executor/confined-model-caller.d.ts +39 -0
  98. package/dist/local-executor/conflict-classifier.d.ts +21 -0
  99. package/dist/local-executor/conflict-resolution-durable-store.d.ts +61 -0
  100. package/dist/local-executor/conflict-resolution-store.d.ts +210 -0
  101. package/dist/local-executor/conflict-types.d.ts +86 -0
  102. package/dist/local-executor/cp7-audit-writer.d.ts +152 -0
  103. package/dist/local-executor/durable-store.d.ts +334 -0
  104. package/dist/local-executor/git-lock-retry.d.ts +40 -0
  105. package/dist/local-executor/hook-bridge.d.ts +1 -1
  106. package/dist/local-executor/implementor-argv.d.ts +183 -0
  107. package/dist/local-executor/index.d.ts +44 -3
  108. package/dist/local-executor/local-executor-impl.d.ts +645 -4
  109. package/dist/local-executor/merge-conflict-extract.d.ts +34 -0
  110. package/dist/local-executor/merge-conflict-resolve.d.ts +101 -0
  111. package/dist/local-executor/merge-journal-store.d.ts +311 -0
  112. package/dist/local-executor/merge-train.d.ts +713 -0
  113. package/dist/local-executor/promote-wal-store.d.ts +301 -0
  114. package/dist/local-executor/resolution-set-index.d.ts +51 -0
  115. package/dist/local-executor/revert-reconcile.d.ts +89 -0
  116. package/dist/local-executor/revert-runner.d.ts +17 -0
  117. package/dist/local-executor/shared-contract-detector.d.ts +57 -0
  118. package/dist/local-executor/spawn.d.ts +29 -1
  119. package/dist/local-executor/task-group-types.d.ts +346 -0
  120. package/dist/local-executor/team-execution-flag.d.ts +21 -0
  121. package/dist/local-executor/track-registry.d.ts +50 -0
  122. package/dist/local-executor/types.d.ts +238 -4
  123. package/dist/local-executor/wb2-review-bundle.d.ts +59 -0
  124. package/dist/local-executor/workspace-shadow.d.ts +290 -0
  125. package/dist/local-executor/worktree-merge.d.ts +601 -0
  126. package/dist/local-model/__tests__/installer.test.d.ts +1 -0
  127. package/dist/local-model/__tests__/manager.test.d.ts +1 -0
  128. package/dist/local-model/__tests__/ollama.test.d.ts +1 -0
  129. package/dist/local-model/__tests__/runtime.test.d.ts +1 -0
  130. package/dist/local-model/__tests__/state.test.d.ts +1 -0
  131. package/dist/local-model/manager.d.ts +119 -0
  132. package/dist/local-model/ollama.d.ts +27 -0
  133. package/dist/local-model/runtime.d.ts +27 -0
  134. package/dist/local-model/state.d.ts +32 -0
  135. package/dist/orchestration/detect-agents.d.ts +15 -2
  136. package/dist/orchestration/setup-types.d.ts +2 -1
  137. package/dist/orchestration-shell/__tests__/attachments.test.d.ts +1 -0
  138. package/dist/orchestration-shell/__tests__/audit-browser.test.d.ts +1 -0
  139. package/dist/orchestration-shell/__tests__/audited-path-fixes.test.d.ts +1 -0
  140. package/dist/orchestration-shell/__tests__/bracketed-paste.test.d.ts +1 -0
  141. package/dist/orchestration-shell/__tests__/cli-group-halt-wiring.test.d.ts +1 -0
  142. package/dist/orchestration-shell/__tests__/cli-orchestration-session-bootstrap.test.d.ts +1 -0
  143. package/dist/orchestration-shell/__tests__/cli-probe-group-status.test.d.ts +1 -0
  144. package/dist/orchestration-shell/__tests__/cli-quorum-loop-tier.test.d.ts +1 -0
  145. package/dist/orchestration-shell/__tests__/cli-verdict-classifier-wiring.test.d.ts +1 -0
  146. package/dist/orchestration-shell/__tests__/context-store.test.d.ts +1 -0
  147. package/dist/orchestration-shell/__tests__/cp10-585-accept-echo-target.test.d.ts +1 -0
  148. package/dist/orchestration-shell/__tests__/cp10-585-loop.test.d.ts +1 -0
  149. package/dist/orchestration-shell/__tests__/cp10-585-prompts.test.d.ts +1 -0
  150. package/dist/orchestration-shell/__tests__/cp12-w2b-team-loop.test.d.ts +1 -0
  151. package/dist/orchestration-shell/__tests__/cp12-w4-team-recovery.test.d.ts +1 -0
  152. package/dist/orchestration-shell/__tests__/cp1f-quorum-loop.test.d.ts +1 -0
  153. package/dist/orchestration-shell/__tests__/cp606-team-track-user-resolved.test.d.ts +1 -0
  154. package/dist/orchestration-shell/__tests__/cp7-reviewer-substrate.test.d.ts +1 -0
  155. package/dist/orchestration-shell/__tests__/declared-test-runner.test.d.ts +1 -0
  156. package/dist/orchestration-shell/__tests__/familiarize-routing.test.d.ts +1 -0
  157. package/dist/orchestration-shell/__tests__/gate-decision-submit.test.d.ts +1 -0
  158. package/dist/orchestration-shell/__tests__/gate-details-panel.test.d.ts +1 -0
  159. package/dist/orchestration-shell/__tests__/gate-verdict-details-dispatch.test.d.ts +1 -0
  160. package/dist/orchestration-shell/__tests__/group-decision-submit.test.d.ts +1 -0
  161. package/dist/orchestration-shell/__tests__/image-attach-e2e.test.d.ts +1 -0
  162. package/dist/orchestration-shell/__tests__/input-bar-autocomplete.test.d.ts +1 -0
  163. package/dist/orchestration-shell/__tests__/live-region-cap.test.d.ts +1 -0
  164. package/dist/orchestration-shell/__tests__/live-static-order.test.d.ts +1 -0
  165. package/dist/orchestration-shell/__tests__/model-cli.test.d.ts +1 -0
  166. package/dist/orchestration-shell/__tests__/non-gate-prompt-routing.test.d.ts +1 -0
  167. package/dist/orchestration-shell/__tests__/orchestration-app-group-decision-transport.test.d.ts +1 -0
  168. package/dist/orchestration-shell/__tests__/orchestration-app-layout.test.d.ts +1 -0
  169. package/dist/orchestration-shell/__tests__/reissue-team-retained-spec.test.d.ts +1 -0
  170. package/dist/orchestration-shell/__tests__/review-summary-render.test.d.ts +1 -0
  171. package/dist/orchestration-shell/__tests__/reviewer-wizard.test.d.ts +1 -0
  172. package/dist/orchestration-shell/__tests__/reviewers-format.test.d.ts +1 -0
  173. package/dist/orchestration-shell/__tests__/root-discovery.test.d.ts +1 -0
  174. package/dist/orchestration-shell/__tests__/serialize-submissions.test.d.ts +1 -0
  175. package/dist/orchestration-shell/__tests__/slash-suggest.test.d.ts +1 -0
  176. package/dist/orchestration-shell/__tests__/status-format.test.d.ts +1 -0
  177. package/dist/orchestration-shell/__tests__/task-progress.test.d.ts +1 -0
  178. package/dist/orchestration-shell/__tests__/team-decompose-routing.test.d.ts +1 -0
  179. package/dist/orchestration-shell/__tests__/team-decompose-types.test.d.ts +1 -0
  180. package/dist/orchestration-shell/__tests__/team-decompose.test.d.ts +1 -0
  181. package/dist/orchestration-shell/__tests__/team-e2e-smoke.test.d.ts +1 -0
  182. package/dist/orchestration-shell/__tests__/tier2-reviewer-selection.test.d.ts +1 -0
  183. package/dist/orchestration-shell/__tests__/web-browsing.test.d.ts +1 -0
  184. package/dist/orchestration-shell/attachments.d.ts +152 -0
  185. package/dist/orchestration-shell/audit-browser.d.ts +115 -0
  186. package/dist/orchestration-shell/audit-runner.d.ts +59 -0
  187. package/dist/orchestration-shell/bracketed-paste.d.ts +26 -0
  188. package/dist/orchestration-shell/cli.d.ts +336 -1
  189. package/dist/orchestration-shell/cli.js +40580 -4692
  190. package/dist/orchestration-shell/components/AuditLogPanel.d.ts +11 -0
  191. package/dist/orchestration-shell/components/ConversationPane.d.ts +7 -1
  192. package/dist/orchestration-shell/components/GateDetailsPanel.d.ts +57 -0
  193. package/dist/orchestration-shell/components/GatePanelEntry.d.ts +9 -0
  194. package/dist/orchestration-shell/components/GatePromptEntry.d.ts +7 -0
  195. package/dist/orchestration-shell/components/InputBar.d.ts +17 -3
  196. package/dist/orchestration-shell/components/LiveProgressLine.d.ts +8 -0
  197. package/dist/orchestration-shell/components/MultiTrackStatusNode.d.ts +8 -0
  198. package/dist/orchestration-shell/components/OrchestrationApp.d.ts +81 -15
  199. package/dist/orchestration-shell/components/ReviewerSetupWizard.d.ts +24 -0
  200. package/dist/orchestration-shell/components/StatusBar.d.ts +15 -2
  201. package/dist/orchestration-shell/context-store.d.ts +389 -0
  202. package/dist/orchestration-shell/declared-test-runner.d.ts +84 -0
  203. package/dist/orchestration-shell/emit-shell-event.d.ts +1 -1
  204. package/dist/orchestration-shell/gate-decision-submit.d.ts +245 -0
  205. package/dist/orchestration-shell/gate-prompts.d.ts +361 -3
  206. package/dist/orchestration-shell/index.d.ts +613 -1
  207. package/dist/orchestration-shell/ink-runtime.d.ts +21 -1
  208. package/dist/orchestration-shell/live-region-cap.d.ts +70 -0
  209. package/dist/orchestration-shell/live-static-order.d.ts +22 -0
  210. package/dist/orchestration-shell/non-tty-fallback.d.ts +21 -0
  211. package/dist/orchestration-shell/quorum-loop.d.ts +1900 -0
  212. package/dist/orchestration-shell/root-discovery.d.ts +25 -0
  213. package/dist/orchestration-shell/route-browse.d.ts +20 -0
  214. package/dist/orchestration-shell/slash-router.d.ts +20 -1
  215. package/dist/orchestration-shell/slash-routes/continuation.d.ts +71 -0
  216. package/dist/orchestration-shell/slash-routes/reviewers.d.ts +41 -0
  217. package/dist/orchestration-shell/slash-suggest.d.ts +29 -0
  218. package/dist/orchestration-shell/status-format.d.ts +59 -0
  219. package/dist/orchestration-shell/task-progress.d.ts +122 -0
  220. package/dist/orchestration-shell/team-decompose.d.ts +196 -0
  221. package/dist/orchestration-shell/types.d.ts +363 -3
  222. package/dist/orchestration-shell/vendor/ink-parse-keypress.d.ts +42 -0
  223. package/dist/orchestration-shell/web/extract.d.ts +11 -0
  224. package/dist/orchestration-shell/web/fetch.d.ts +15 -0
  225. package/dist/orchestration-shell/web/ip.d.ts +26 -0
  226. package/dist/orchestration-shell/web/sanitize.d.ts +14 -0
  227. package/dist/orchestration-shell/web/search.d.ts +16 -0
  228. package/dist/planner/__tests__/local-gemma.test.d.ts +1 -0
  229. package/dist/planner/index.d.ts +2 -0
  230. package/dist/planner/local-advisory.d.ts +84 -0
  231. package/dist/planner/local-gemma.d.ts +23 -0
  232. package/dist/planner/types.d.ts +16 -6
  233. package/dist/reviewer/__tests__/antigravity-provider.test.d.ts +1 -0
  234. package/dist/reviewer/__tests__/claude-provider-json.test.d.ts +1 -0
  235. package/dist/reviewer/__tests__/cp7-reviewer-sandbox.test.d.ts +1 -0
  236. package/dist/reviewer/__tests__/output-parser-classifier-helpers.test.d.ts +1 -0
  237. package/dist/reviewer/__tests__/verdict-classifier.test.d.ts +1 -0
  238. package/dist/reviewer/index.d.ts +2 -0
  239. package/dist/reviewer/output-parser.d.ts +48 -12
  240. package/dist/reviewer/provider.d.ts +107 -3
  241. package/dist/reviewer/providers/__tests__/failure-classifier.test.d.ts +1 -0
  242. package/dist/reviewer/providers/antigravity.d.ts +49 -0
  243. package/dist/reviewer/providers/claude.d.ts +19 -4
  244. package/dist/reviewer/providers/codex.d.ts +47 -5
  245. package/dist/reviewer/providers/failure-classifier.d.ts +26 -0
  246. package/dist/reviewer/providers/gemini.d.ts +5 -4
  247. package/dist/reviewer/registry.d.ts +5 -5
  248. package/dist/reviewer/subprocess.d.ts +37 -0
  249. package/dist/reviewer/token-usage.d.ts +32 -0
  250. package/dist/reviewer/types.d.ts +5 -5
  251. package/dist/reviewer/verdict-classifier.d.ts +62 -0
  252. package/dist/session/__tests__/prepare-event-timestamp.test.d.ts +1 -0
  253. package/dist/session/index.d.ts +1 -0
  254. package/dist/session/prepare-event-timestamp.d.ts +30 -0
  255. package/dist/substrate/__tests__/docker.test.d.ts +1 -0
  256. package/dist/substrate/__tests__/forwarder.test.d.ts +1 -0
  257. package/dist/substrate/__tests__/git-proxy.test.d.ts +1 -0
  258. package/dist/substrate/__tests__/sandbox-exec.test.d.ts +1 -0
  259. package/dist/substrate/__tests__/substrate-e2e.integration.test.d.ts +1 -0
  260. package/dist/substrate/command-runner.d.ts +19 -0
  261. package/dist/substrate/docker.d.ts +134 -0
  262. package/dist/substrate/errors.d.ts +33 -0
  263. package/dist/substrate/forwarder.d.ts +67 -0
  264. package/dist/substrate/git-proxy.d.ts +35 -0
  265. package/dist/substrate/index.d.ts +12 -0
  266. package/dist/substrate/relay-script.d.ts +27 -0
  267. package/dist/substrate/sandbox-exec.d.ts +116 -0
  268. package/dist/substrate/types.d.ts +218 -0
  269. package/dist/substrate-launch/__tests__/apikey-bootstrap.test.d.ts +1 -0
  270. package/dist/substrate-launch/__tests__/creditless-loop.integration.test.d.ts +1 -0
  271. package/dist/substrate-launch/__tests__/engage-substrate.test.d.ts +1 -0
  272. package/dist/substrate-launch/__tests__/fallback-ladder.test.d.ts +1 -0
  273. package/dist/substrate-launch/__tests__/le-env-scrub.test.d.ts +1 -0
  274. package/dist/substrate-launch/__tests__/sanitized-env.test.d.ts +1 -0
  275. package/dist/substrate-launch/apikey-bootstrap.d.ts +84 -0
  276. package/dist/substrate-launch/engage-substrate.d.ts +102 -0
  277. package/dist/substrate-launch/fallback-ladder.d.ts +49 -0
  278. package/dist/substrate-launch/index.d.ts +12 -0
  279. package/dist/substrate-launch/le-env-scrub.d.ts +77 -0
  280. package/dist/substrate-launch/sanitized-env.d.ts +73 -0
  281. package/dist/types/auth.d.ts +6 -1
  282. package/dist/types/events.d.ts +3 -1
  283. package/dist/types/reviewer.d.ts +6 -6
  284. package/package.json +7 -3
@@ -0,0 +1,25 @@
1
+ export declare const DEFAULT_DISCOVERY_MAX_DEPTH = 2;
2
+ export declare const DEFAULT_DISCOVERY_MAX_ROOTS = 25;
3
+ type DiscoveryReason = 'git' | 'manifest' | 'fallback';
4
+ export interface DiscoveredRepositoryRoot {
5
+ rootPath: string;
6
+ reason: DiscoveryReason;
7
+ manifestFile?: string;
8
+ }
9
+ export interface RepositoryRootDiscoveryResult {
10
+ launchDir: string;
11
+ rootPaths: string[];
12
+ roots: DiscoveredRepositoryRoot[];
13
+ maxDepth: number;
14
+ maxRoots: number;
15
+ omittedRootCount: number;
16
+ omittedAncestorRoots: string[];
17
+ prunedDirectoryCount: number;
18
+ capped: boolean;
19
+ }
20
+ export declare function discoverRepositoryRoots(deps?: {
21
+ launchDir?: string;
22
+ maxDepth?: number;
23
+ maxRoots?: number;
24
+ }): Promise<RepositoryRootDiscoveryResult>;
25
+ export {};
@@ -0,0 +1,20 @@
1
+ import type { OrchestrationStore } from './store';
2
+ import type { LocalGemmaAdvisoryRunner } from '../planner/local-advisory';
3
+ export interface RouteBrowseDeps {
4
+ store: OrchestrationStore;
5
+ /** Undefined when the local model isn't installed/enabled → no-model advisory. */
6
+ localAdvisoryRunner?: LocalGemmaAdvisoryRunner;
7
+ userPrompt: string;
8
+ browseUrls?: string[];
9
+ browseQuery?: string;
10
+ /** Recent conversation turns (for context-aware search-query formulation). */
11
+ priorTurns?: string[];
12
+ /** Esc-abort signal (shell-owned AbortController). */
13
+ signal?: AbortSignal;
14
+ }
15
+ /**
16
+ * Orchestrate a `browse` route. Fetch an explicit URL, or run a keyless web
17
+ * search and read the top result, then answer via local Gemma. Mirrors
18
+ * routeBrainstorm/routeFamiliarize (no-model advisory, clean failures, no crash).
19
+ */
20
+ export declare function routeBrowse(deps: RouteBrowseDeps): Promise<void>;
@@ -1,4 +1,4 @@
1
- import { OrchestrationAction } from './types';
1
+ import { OrchestrationAction, Tier } from './types';
2
2
  /**
3
3
  * Side effects a handler can request the entrypoint to dispatch.
4
4
  * The router itself never touches the store — keeps slash handling
@@ -26,12 +26,31 @@ export interface SlashOutput {
26
26
  /** Optional side effect; only `/quit` populates it in CP-1.a. */
27
27
  sideEffect?: ShellAction;
28
28
  }
29
+ /**
30
+ * Public, render-safe view of a catalog row for the autocomplete dropdown
31
+ * (`<InputBar>`). Carries no handler — keeps the UI decoupled from dispatch.
32
+ */
33
+ export interface SlashCommandInfo {
34
+ name: string;
35
+ blurb: string;
36
+ }
37
+ /** True if `command` is a shell-exit command (`/quit` / `/exit`). */
38
+ export declare function isExitCommand(command: string): boolean;
29
39
  /**
30
40
  * §16 LOCK #10 + §5.1.5 + §11 row. Routes user input that starts with
31
41
  * `/`. Per §17 Q3 RESOLVED disposition: EXACT-MATCH only. Unknown
32
42
  * commands return a help hint.
33
43
  */
34
44
  export declare function routeSlashCommand(input: string): SlashOutput;
45
+ /**
46
+ * Render-safe catalog view for the autocomplete dropdown (TUI redesign
47
+ * 2026-06-29). Returns `{ name, blurb }` in `/help` order, filtered to the
48
+ * commands the given `tier` can RUN (so a Pro user isn't suggested Max-only
49
+ * `/audit` or `/team`). `tier` omitted → the full catalog. The deferred
50
+ * `/attach` is excluded (it is not a runnable command). The orchestration TUI
51
+ * only renders for Pro/Max, so FREE is effectively unreachable here.
52
+ */
53
+ export declare function listSlashCommands(tier?: Tier): SlashCommandInfo[];
35
54
  /**
36
55
  * Convenience helper for callers that wire the side effect directly
37
56
  * into the store. CP-1.a's `cli.ts` uses this; CP-1.b/c may dispatch
@@ -0,0 +1,71 @@
1
+ import type { ContinuationPacketReader } from '../../continuation/packet-reader';
2
+ import type { AgentKind } from '../../continuation/types';
3
+ export interface ContinuationCliResult {
4
+ exitCode: 0 | 1 | 2 | 3 | 4 | 5 | 6;
5
+ stdout: string;
6
+ }
7
+ /**
8
+ * Valid `CONTINUE_WITH` target agents (#585 #C10M-1) — the closed enum the CLI
9
+ * validates user input against. Exported so the local `/continue accept` path in
10
+ * `index.ts` can validate the SERVER echo's `target_agent` through the SAME
11
+ * gate (first-wins: the echo's agent is authoritative, fail closed on anything
12
+ * outside this set).
13
+ */
14
+ export declare const VALID_TARGET_AGENTS: ReadonlyArray<AgentKind>;
15
+ /**
16
+ * PHASE-CP-10-MIN (#585) — the active-task context the `/continue request`
17
+ * subcommand needs to build the `PacketWriteInput`. Resolved by the entrypoint
18
+ * from the QuorumLoop's active loop state. `null` when no task is active.
19
+ */
20
+ export interface ActiveContinuationRequestContext {
21
+ taskId: string;
22
+ gateId: string;
23
+ roundNumber: number;
24
+ brief: string;
25
+ sourceAgent: AgentKind;
26
+ }
27
+ /**
28
+ * PHASE-CP-10-MIN (#585) — the active continuation-handoff PROMPT context the
29
+ * `/continue accept` subcommand needs. Resolved by the entrypoint via Option A
30
+ * (the most-recent unresolved `continuation_offer_handoff` gate-prompt — from
31
+ * the store, or a `listEvents` piggyback). `null` when no offer is active.
32
+ */
33
+ export interface ActiveContinuationOfferContext {
34
+ taskId: string;
35
+ gateId: string;
36
+ sessionId: string;
37
+ currentRound: number;
38
+ offerId: string;
39
+ }
40
+ export interface ContinuationCliDeps {
41
+ reader: ContinuationPacketReader;
42
+ /**
43
+ * PHASE-CP-10-MIN (#585) #C10M-9/16 — `/continue request <target?>`: fire the
44
+ * `user_requested` continuation trigger for the active task. The entrypoint
45
+ * wires this to abort the running implementor (Codex-H1) THEN call
46
+ * `QuorumLoop.requestContinuation()` (the §3.5 H1 path — `writer.write()` →
47
+ * server stamps + emits the prompt). Resolves the minted `offerId` (or null
48
+ * on failure). ABSENT → `request` reports "unavailable".
49
+ */
50
+ request?: (ctx: ActiveContinuationRequestContext, targetAgent: AgentKind | undefined) => Promise<{
51
+ offerId: string;
52
+ } | null>;
53
+ /** Resolve the active-task request context (loop state). `null` if no active task. */
54
+ getActiveRequestContext?: () => ActiveContinuationRequestContext | null;
55
+ /**
56
+ * PHASE-CP-10-MIN (#585) #C10M-9/11 — `/continue accept <target>`: the
57
+ * rescue/headless path. The entrypoint wires this to call
58
+ * `applyUserDecision({decision:'continue_with', notes: encrypt(target)})` AND
59
+ * drive the local `resumeFromContinuation` (with the `resumedOffers` dedupe).
60
+ * Resolves true on success. ABSENT → `accept` reports "unavailable".
61
+ */
62
+ accept?: (ctx: ActiveContinuationOfferContext, targetAgent: AgentKind) => Promise<boolean>;
63
+ /** Resolve the active continuation-handoff offer context. `null` if none. */
64
+ getActiveOfferContext?: () => ActiveContinuationOfferContext | null;
65
+ }
66
+ /**
67
+ * Dispatch a single `/continuation` invocation. Returns the exit code
68
+ * + stdout the shell should render. Caller wires `exitCode` into the
69
+ * `codevibe status` top-level binary's `process.exit(...)`.
70
+ */
71
+ export declare function runContinuationCli(deps: ContinuationCliDeps, args: string[]): Promise<ContinuationCliResult>;
@@ -0,0 +1,41 @@
1
+ import type { AppSyncClient } from '../../appsync';
2
+ import type { ReviewerAgentSpec, UserReviewerPolicySnapshot } from '../../types/reviewer';
3
+ import { detectInstalledAgents } from '../../orchestration';
4
+ /**
5
+ * Human-readable, ANSI-free rendering of a reviewer-policy snapshot. Renders ONLY
6
+ * the readable+writable policy surface (detected agents + the reviewer panel). The
7
+ * legacy `orchestrationEnabledDefault` opt-in was removed in CP-1 (2.0
8
+ * orchestration is shell-driven, not a stored flag — `queries.ts` does not select
9
+ * it: selecting it 401s on a post-CP-1 schema), so it is intentionally NOT shown
10
+ * (it would always render a misleading default).
11
+ */
12
+ export declare function formatReviewerPolicy(snapshot: UserReviewerPolicySnapshot): string;
13
+ /**
14
+ * Fetches + formats the user's reviewer panel. Re-pushes the locally detected
15
+ * agents (idempotent) and renders the returned snapshot. Never throws — returns
16
+ * a friendly error line so `/reviewers` can't crash the shell turn.
17
+ */
18
+ export declare function runReviewersCli(client: AppSyncClient): Promise<string>;
19
+ /**
20
+ * Tier-agnostic payload for opening the `/reviewer-setup` wizard: the host's
21
+ * detected agents + the user's current policy. The caller folds in the session
22
+ * `tier` to build the full `ReviewerWizardState`.
23
+ */
24
+ export interface ReviewerWizardData {
25
+ installedAgents: ReturnType<typeof detectInstalledAgents>;
26
+ currentSeats: ReviewerAgentSpec[] | null;
27
+ }
28
+ /**
29
+ * Gathers everything the interactive wizard needs to render synchronously:
30
+ * detects installed agents (the only valid reviewer choices) and reads back the
31
+ * current policy via the idempotent `updateAvailableAgents` round-trip. Never
32
+ * throws — returns a `{ ok:false, message }` the caller surfaces as an advisory
33
+ * (no agents installed, or a transport error) instead of opening an empty modal.
34
+ */
35
+ export declare function loadReviewerWizardData(client: AppSyncClient, detectFn?: typeof detectInstalledAgents): Promise<{
36
+ ok: true;
37
+ data: ReviewerWizardData;
38
+ } | {
39
+ ok: false;
40
+ message: string;
41
+ }>;
@@ -0,0 +1,29 @@
1
+ import type { SlashCommandInfo } from './slash-router';
2
+ /**
3
+ * True when the current input is a slash COMMAND still being typed — a `/`
4
+ * followed by zero or more NON-space chars (no space yet). Once a space is
5
+ * typed the command is complete and the user is entering args, so the
6
+ * dropdown hides. A bare `/` qualifies (shows the full list).
7
+ */
8
+ export declare function isSlashCommandInProgress(value: string): boolean;
9
+ /**
10
+ * Prefix-filters the (already tier-filtered) catalog by the in-progress
11
+ * command token, case-insensitively, preserving catalog order. Returns `[]`
12
+ * when the value is not a command-in-progress (so the caller hides the
13
+ * dropdown). A bare `/` returns the whole list.
14
+ */
15
+ export declare function filterSlashSuggestions(value: string, commands: SlashCommandInfo[]): SlashCommandInfo[];
16
+ /**
17
+ * Builds a single dropdown row as ONE physical line (≤ `maxCols`) so it can
18
+ * never wrap and inflate the dropdown's row count on a narrow terminal
19
+ * (Stage-2 r4). The marker (`❯ `/` `) + padded name come first; the blurb is
20
+ * appended ONLY if there's room (no dangling trailing space when it doesn't
21
+ * fit), and the whole row is truncated to `maxCols`.
22
+ */
23
+ export declare function formatSuggestionRow(opts: {
24
+ name: string;
25
+ blurb: string;
26
+ highlighted: boolean;
27
+ maxCols: number;
28
+ namePad: number;
29
+ }): string;
@@ -0,0 +1,59 @@
1
+ /** The planner runtime kind resolved once at boot (NOT a live probe). */
2
+ export type PlannerRuntimeKind = 'hosted' | 'local_gemma_qat' | 'local_unavailable';
3
+ /**
4
+ * Truncate `s` to at most `max` columns with a trailing ellipsis. (Uses JS
5
+ * string length as a column proxy — adequate for the width-1 glyphs we render.)
6
+ */
7
+ export declare function truncate(s: string, max: number): string;
8
+ export interface PlannerBadge {
9
+ /** User-facing badge text. */
10
+ text: string;
11
+ /** Ink color when the badge is a warning; omitted → render dim. */
12
+ color?: string;
13
+ }
14
+ /**
15
+ * Abbreviates an absolute project path for the status bar:
16
+ * - `$HOME` prefix → `~`
17
+ * - if still wider than `maxCols`, left-truncate with a leading `…` so the
18
+ * most-specific (rightmost) directories stay visible.
19
+ *
20
+ * Pure: `homedir` is injected (no `os` dependency here) so tests can pin it.
21
+ */
22
+ export declare function formatProjectPath(projectPath: string, homedir: string, maxCols: number): string;
23
+ /**
24
+ * Strips a model tag for display: `gemma4:latest` → `gemma4`. Falls back to a
25
+ * neutral label when nothing usable is provided.
26
+ */
27
+ export declare function prettyModelLabel(model: string | null | undefined): string;
28
+ /**
29
+ * Maps the boot-time planner runtime kind → the right-hand status badge.
30
+ * - `local_gemma_qat` → dim `<label> · local` (no color → caller renders dim)
31
+ * - `local_unavailable`→ yellow degraded warning (the ONE state worth surfacing —
32
+ * NL routing is off; only deterministic slash commands work)
33
+ * - `hosted` → null (hosted planner retired → no badge)
34
+ *
35
+ * The badge is a boot-time FACT, not a live health light — copy avoids implying
36
+ * liveness (see design doc "Architecture grounding").
37
+ */
38
+ export declare function plannerBadge(kind: PlannerRuntimeKind, label: string): PlannerBadge | null;
39
+ export interface StatusLayout {
40
+ /** Combined `<cwd> · <tier>` for the left, truncated to fit. */
41
+ leftText: string;
42
+ /** Badge text for the right (possibly truncated; '' when no badge). */
43
+ badgeText: string;
44
+ }
45
+ /**
46
+ * Computes the one-line status-bar layout so `leftText` + the badge ALWAYS fit
47
+ * within `columns` at ANY width (Stage-2). The badge is truncated so the
48
+ * ` · <tier>` always has room; the left (`<cwd> · <tier>`) is then truncated to
49
+ * the remaining width — on a sub-tier-width terminal the cwd vanishes and even
50
+ * the tier shrinks rather than wrapping. `.length` is the column proxy (the
51
+ * glyphs we render are width-1). Pure → unit-tested directly.
52
+ */
53
+ export declare function computeStatusLayout(args: {
54
+ cwd: string;
55
+ tier: string;
56
+ homedir: string;
57
+ columns: number;
58
+ badge: PlannerBadge | null;
59
+ }): StatusLayout;
@@ -0,0 +1,122 @@
1
+ /**
2
+ * One desktop-local progress phase. Discriminated by `phase`. Every variant is
3
+ * counts + labels + paths only — NEVER plaintext (see the module invariant).
4
+ */
5
+ export type TaskProgressEvent = ({
6
+ phase: 'shadow_created';
7
+ round: number;
8
+ } | {
9
+ phase: 'implementor_running';
10
+ round: number;
11
+ elapsedMs: number;
12
+ filesChanged?: number;
13
+ } | {
14
+ phase: 'diff_captured';
15
+ round: number;
16
+ files: number;
17
+ created: number;
18
+ modified: number;
19
+ deleted: number;
20
+ } | {
21
+ phase: 'submitting_diff';
22
+ round: number;
23
+ } | {
24
+ phase: 'reviewers_dispatched';
25
+ gateId: string;
26
+ seats: number;
27
+ } | {
28
+ phase: 'seat_update';
29
+ gateId: string;
30
+ seatId: number;
31
+ seatLabel: string;
32
+ state: 'running' | 'verdict_submitted';
33
+ } | {
34
+ phase: 'verdicts_progress';
35
+ gateId: string;
36
+ received: number;
37
+ expected: number;
38
+ } | {
39
+ phase: 'revise_round';
40
+ round: number;
41
+ feedbackSummary?: string;
42
+ } | {
43
+ phase: 'round_failed';
44
+ round: number;
45
+ reason: string;
46
+ } | {
47
+ phase: 'continuation_offered';
48
+ round: number;
49
+ reason: string;
50
+ } | {
51
+ phase: 'declared_tests_skipped';
52
+ round: number;
53
+ paths: string[];
54
+ } | {
55
+ phase: 'promoting';
56
+ files: number;
57
+ } | {
58
+ phase: 'promoted';
59
+ files: number;
60
+ } | {
61
+ phase: 'discarding';
62
+ } | {
63
+ phase: 'discarded';
64
+ } | {
65
+ phase: 'waiting_user';
66
+ } | {
67
+ phase: 'planner_classifying';
68
+ } | {
69
+ phase: 'familiarizing';
70
+ } | {
71
+ phase: 'progress_cleared';
72
+ }) & {
73
+ epoch?: number;
74
+ tokens?: number;
75
+ };
76
+ /** The callback the QuorumLoop invokes on each progress phase. */
77
+ export type OnProgress = (event: TaskProgressEvent) => void;
78
+ /**
79
+ * Format an elapsed-ms duration for the live timer: `M:SS` under an hour,
80
+ * `H:MM:SS` at/over an hour (design §6; matches Codex/Claude). Floored at 0 so an
81
+ * NTP backward step shows `0:00`, never a negative/huge value.
82
+ */
83
+ export declare function formatElapsed(elapsedMs: number): string;
84
+ export { finiteToken, unwrapClaudeJson } from '../reviewer/token-usage';
85
+ /**
86
+ * [Phase 2 · P2-5] Humanize a token COUNT for the ` · ↓ <tokens>` segment. Pure;
87
+ * the input is an already-finite-non-negative integer (from `finiteToken`/
88
+ * `tokensFor`), defensively re-clamped so a stray caller can never render `NaN`.
89
+ * • `n >= 999500` → `(n/1e6).toFixed(1)+'M'` (the 999500 boundary avoids
90
+ * `999999 → "1000k"`).
91
+ * • `n >= 1000` → `v=n/1000`; `(v>=10 ? v.toFixed(0) : v.toFixed(1))+'k'`
92
+ * (so `1.0k`/`9.9k` carry one decimal but `10k`/`57k`/`999k` carry none).
93
+ * • else → `String(n)`.
94
+ * The caller renders ONLY when `tokens && tokens > 0` (a `0`/absent count omits
95
+ * the whole segment), so `formatTokens(0)` is never surfaced.
96
+ */
97
+ export declare function formatTokens(n: number): string;
98
+ /**
99
+ * Whether a phase is a transient/spinner phase (an ephemeral live status line)
100
+ * vs a milestone that persists in scrollback. `implementor_running` (a ticking
101
+ * line) is the canonical spinner phase; `promoting`/`discarding` show a spinner
102
+ * while in flight. Everything else is a one-shot milestone.
103
+ *
104
+ * TODO(cleanup): production-UNUSED after the live-task-timer reducer rewrite (the
105
+ * reducer now classifies via the OPENER/REFRESH-ONLY/CLOSER trichotomy, not this
106
+ * helper). Kept + unit-tested for now; remove once single-track progress is stable.
107
+ */
108
+ export declare function isSpinnerPhase(phase: TaskProgressEvent['phase']): boolean;
109
+ /**
110
+ * Render the user-facing ONE-LINE text for a progress event. Pure (no plaintext
111
+ * — only counts/labels/paths/elapsed). The TUI shows spinner phases as an
112
+ * ephemeral live line and milestone phases as persisted scrollback entries.
113
+ */
114
+ export declare function renderProgressLine(event: TaskProgressEvent): string;
115
+ /**
116
+ * The BOUNDED label for the ephemeral LIVE line (design §5). Identical to
117
+ * `renderProgressLine` for the short phases, but path-bearing phases collapse to a
118
+ * count so the live line stays short (the FULL path list still persists in
119
+ * scrollback via `renderProgressLine`). The component additionally truncates this
120
+ * to the terminal width, timer-last, so the clock is never clipped.
121
+ */
122
+ export declare function liveLabel(event: TaskProgressEvent): string;
@@ -0,0 +1,196 @@
1
+ import { z } from 'zod';
2
+ import { buildImplementorArgv } from '../local-executor/implementor-argv';
3
+ import type { LocalExecutor } from '../local-executor';
4
+ import type { AgentKind } from '../local-executor/types';
5
+ import type { WorkItemInput } from '../local-executor/task-group-types';
6
+ /**
7
+ * The full decomposer-output shape pre-check (§3.E): `decompose:true` with ≥2
8
+ * well-shaped work items, OR `decompose:false` with a reason. ≥2 is the
9
+ * "a team is ≥2 tracks" contract (mirrors `parseTeamWorkItems`).
10
+ */
11
+ export declare const WorkItemInputSchema: z.ZodDiscriminatedUnion<"decompose", [z.ZodObject<{
12
+ decompose: z.ZodLiteral<true>;
13
+ workItems: z.ZodArray<z.ZodObject<{
14
+ ownershipScope: z.ZodObject<{
15
+ write_paths: z.ZodArray<z.ZodString, "many">;
16
+ shared_contracts: z.ZodArray<z.ZodObject<{
17
+ path: z.ZodString;
18
+ access: z.ZodEnum<["write", "read"]>;
19
+ }, "strip", z.ZodTypeAny, {
20
+ path: string;
21
+ access: "write" | "read";
22
+ }, {
23
+ path: string;
24
+ access: "write" | "read";
25
+ }>, "many">;
26
+ test_surfaces: z.ZodArray<z.ZodString, "many">;
27
+ auto_modified_files: z.ZodArray<z.ZodString, "many">;
28
+ }, "strip", z.ZodTypeAny, {
29
+ shared_contracts: {
30
+ path: string;
31
+ access: "write" | "read";
32
+ }[];
33
+ write_paths: string[];
34
+ test_surfaces: string[];
35
+ auto_modified_files: string[];
36
+ }, {
37
+ shared_contracts: {
38
+ path: string;
39
+ access: "write" | "read";
40
+ }[];
41
+ write_paths: string[];
42
+ test_surfaces: string[];
43
+ auto_modified_files: string[];
44
+ }>;
45
+ implementorAgent: z.ZodEffects<z.ZodEnum<["CLAUDE", "CODEX", "GEMINI", "ANTIGRAVITY"]>, "CLAUDE" | "GEMINI" | "CODEX" | "ANTIGRAVITY", unknown>;
46
+ isSharedTestOwner: z.ZodBoolean;
47
+ description: z.ZodString;
48
+ }, "strip", z.ZodTypeAny, {
49
+ description: string;
50
+ ownershipScope: {
51
+ shared_contracts: {
52
+ path: string;
53
+ access: "write" | "read";
54
+ }[];
55
+ write_paths: string[];
56
+ test_surfaces: string[];
57
+ auto_modified_files: string[];
58
+ };
59
+ implementorAgent: "CLAUDE" | "GEMINI" | "CODEX" | "ANTIGRAVITY";
60
+ isSharedTestOwner: boolean;
61
+ }, {
62
+ description: string;
63
+ ownershipScope: {
64
+ shared_contracts: {
65
+ path: string;
66
+ access: "write" | "read";
67
+ }[];
68
+ write_paths: string[];
69
+ test_surfaces: string[];
70
+ auto_modified_files: string[];
71
+ };
72
+ isSharedTestOwner: boolean;
73
+ implementorAgent?: unknown;
74
+ }>, "many">;
75
+ }, "strip", z.ZodTypeAny, {
76
+ decompose: true;
77
+ workItems: {
78
+ description: string;
79
+ ownershipScope: {
80
+ shared_contracts: {
81
+ path: string;
82
+ access: "write" | "read";
83
+ }[];
84
+ write_paths: string[];
85
+ test_surfaces: string[];
86
+ auto_modified_files: string[];
87
+ };
88
+ implementorAgent: "CLAUDE" | "GEMINI" | "CODEX" | "ANTIGRAVITY";
89
+ isSharedTestOwner: boolean;
90
+ }[];
91
+ }, {
92
+ decompose: true;
93
+ workItems: {
94
+ description: string;
95
+ ownershipScope: {
96
+ shared_contracts: {
97
+ path: string;
98
+ access: "write" | "read";
99
+ }[];
100
+ write_paths: string[];
101
+ test_surfaces: string[];
102
+ auto_modified_files: string[];
103
+ };
104
+ isSharedTestOwner: boolean;
105
+ implementorAgent?: unknown;
106
+ }[];
107
+ }>, z.ZodObject<{
108
+ decompose: z.ZodLiteral<false>;
109
+ reason: z.ZodString;
110
+ }, "strip", z.ZodTypeAny, {
111
+ reason: string;
112
+ decompose: false;
113
+ }, {
114
+ reason: string;
115
+ decompose: false;
116
+ }>]>;
117
+ /** One work item the decomposer emits — the real wire `WorkItemInput` field
118
+ * `implementorAgent` plus a desktop-local `description` brief. */
119
+ export type DecomposerWorkItem = WorkItemInput & {
120
+ description: string;
121
+ };
122
+ export type DecomposerResult = {
123
+ decompose: true;
124
+ workItems: DecomposerWorkItem[];
125
+ } | {
126
+ decompose: false;
127
+ reason: string;
128
+ };
129
+ /**
130
+ * Read the implementor's FINAL message text per-agent (§3.B / L9). Unlike
131
+ * `extractAgentSummary` (which returns '' for Codex because the diff is the
132
+ * single-impl contract), the DECOMPOSER needs the actual reply text — so for
133
+ * Codex we read AND unlink the `--output-last-message` temp file. A Codex
134
+ * decomposer would otherwise always parse-fail on its `--json` JSONL stdout.
135
+ * - Claude → `capture.kind === 'stdout'` → `handle.stdout()`.
136
+ * - Codex → `capture.kind === 'file'` → read+unlink the temp file.
137
+ * - Gemini → stdout, unwrap the `{ response }` JSON envelope.
138
+ * NEVER throws — a capture error returns '' (→ the caller's parse-fail →
139
+ * single-task fallback).
140
+ */
141
+ export declare function readImplementorFinalMessage(plan: ReturnType<typeof buildImplementorArgv>, handle: {
142
+ stdout: () => string;
143
+ }, agent: AgentKind, exitCode: number): Promise<string>;
144
+ /**
145
+ * Build the decomposition prompt fed to the local decomposer on stdin (§3.B).
146
+ * `brief` is the composed lossless implementation brief (§3.D step 0).
147
+ * `availableAgents` is the DETECTED set (§3.C) — the strengths list is filtered
148
+ * to it, and the decomposer is told to pick `implementorAgent` from it.
149
+ */
150
+ export declare function buildDecomposerPrompt(brief: string, availableAgents: AgentKind[]): string;
151
+ /**
152
+ * #590 — append a deterministic "allowed test files" line to a track's brief so
153
+ * the implementor agent writes its own-module tests at the EXACT declared
154
+ * `test_surfaces` paths (which `filesOutsideWriteScope` then accepts in-lane).
155
+ * Belt-and-suspenders to the decomposer-prompt instruction: even if the model's
156
+ * `description` prose omits the test paths, the agent is told them verbatim, so a
157
+ * test write lands inside the declared lane rather than tripping out_of_scope_write.
158
+ * No-op (returns the brief unchanged) when the track declares no test surfaces.
159
+ */
160
+ export declare function appendTestSurfaceGuidance(brief: string, testSurfaces: string[]): string;
161
+ /**
162
+ * Parse + shape-validate a decomposer reply into a `DecomposerResult`. Returns
163
+ * null when the text contains no parseable/valid JSON (the caller retries once,
164
+ * then falls back to single). The full `WorkItemInputSchema` (§3.E) is applied
165
+ * here so a deep-malformed shape fails the parse LOCALLY (NOT later as an
166
+ * `unknown_create_error`).
167
+ */
168
+ export declare function parseDecomposerResult(text: string): DecomposerResult | null;
169
+ export interface RunLocalDecomposerDeps {
170
+ localExecutor: LocalExecutor;
171
+ /** Canonicalized real working dir (the repo) — the decomposer reads the tree. */
172
+ workingDir: string;
173
+ }
174
+ /**
175
+ * Run the local decomposition pass (§3.B). Spawns the FIRST available agent in
176
+ * read-only `plan` mode via the PRODUCTION `LocalExecutor.spawnImplementor` path
177
+ * (NOT `AdapterRegistry.launchImplementor`, which has no prompt/capture). The
178
+ * decomposition prompt rides stdin; output is captured per-agent via
179
+ * `readImplementorFinalMessage` and tolerant-parsed. On a parse failure it
180
+ * retries ONCE with a "JSON only" suffix; a second failure → `{ decompose:false }`
181
+ * (the caller treats that as the single-task fallback).
182
+ *
183
+ * `availableAgents` is the DETECTED set (§3.C). The decomposer itself runs as
184
+ * the first detected agent; CP-7 engages because `role:'implementor'` + a
185
+ * (synthetic) `taskId` are passed.
186
+ */
187
+ export declare function runLocalDecomposer(deps: RunLocalDecomposerDeps, brief: string, availableAgents: AgentKind[]): Promise<DecomposerResult>;
188
+ /**
189
+ * Validate + normalize each work item's `implementorAgent` against the DETECTED
190
+ * agent set (§3.C — v1 is DETECTED-ONLY; NO capability-health filtering, NO
191
+ * per-spawn auth-recheck). For each item: `.toUpperCase()`-normalize the
192
+ * suggested agent; keep it if detected; else SUBSTITUTE the first detected
193
+ * agent. If NO agent is detected → `null` (the caller falls back to single).
194
+ * Returns NEW work items (does not mutate the inputs).
195
+ */
196
+ export declare function validateAgentAvailability(workItems: DecomposerWorkItem[], detected: AgentKind[]): DecomposerWorkItem[] | null;