@a5c-ai/agent-platform 5.0.1-staging.b436b3b3e611

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 (554) hide show
  1. package/README.md +53 -0
  2. package/dist/anycli/cache.d.ts +45 -0
  3. package/dist/anycli/cache.d.ts.map +1 -0
  4. package/dist/anycli/cache.js +118 -0
  5. package/dist/anycli/index.d.ts +10 -0
  6. package/dist/anycli/index.d.ts.map +1 -0
  7. package/dist/anycli/index.js +25 -0
  8. package/dist/anycli/types.d.ts +32 -0
  9. package/dist/anycli/types.d.ts.map +1 -0
  10. package/dist/anycli/types.js +9 -0
  11. package/dist/api/breakpoints.d.ts +93 -0
  12. package/dist/api/breakpoints.d.ts.map +1 -0
  13. package/dist/api/breakpoints.js +334 -0
  14. package/dist/api/effects.d.ts +14 -0
  15. package/dist/api/effects.d.ts.map +1 -0
  16. package/dist/api/effects.js +306 -0
  17. package/dist/api/effectsTypes.d.ts +79 -0
  18. package/dist/api/effectsTypes.d.ts.map +1 -0
  19. package/dist/api/effectsTypes.js +6 -0
  20. package/dist/api/eventStream.d.ts +34 -0
  21. package/dist/api/eventStream.d.ts.map +1 -0
  22. package/dist/api/eventStream.js +126 -0
  23. package/dist/api/index.d.ts +10 -0
  24. package/dist/api/index.d.ts.map +1 -0
  25. package/dist/api/index.js +27 -0
  26. package/dist/api/runs.d.ts +85 -0
  27. package/dist/api/runs.d.ts.map +1 -0
  28. package/dist/api/runs.js +247 -0
  29. package/dist/api/utils.d.ts +28 -0
  30. package/dist/api/utils.d.ts.map +1 -0
  31. package/dist/api/utils.js +74 -0
  32. package/dist/breakpoints/approvalChains.d.ts +68 -0
  33. package/dist/breakpoints/approvalChains.d.ts.map +1 -0
  34. package/dist/breakpoints/approvalChains.js +111 -0
  35. package/dist/breakpoints/delegation.d.ts +42 -0
  36. package/dist/breakpoints/delegation.d.ts.map +1 -0
  37. package/dist/breakpoints/delegation.js +199 -0
  38. package/dist/breakpoints/delegationTypes.d.ts +46 -0
  39. package/dist/breakpoints/delegationTypes.d.ts.map +1 -0
  40. package/dist/breakpoints/delegationTypes.js +10 -0
  41. package/dist/breakpoints/postures.d.ts +28 -0
  42. package/dist/breakpoints/postures.d.ts.map +1 -0
  43. package/dist/breakpoints/postures.js +100 -0
  44. package/dist/cli/amuxEventsFormatter.d.ts +26 -0
  45. package/dist/cli/amuxEventsFormatter.d.ts.map +1 -0
  46. package/dist/cli/amuxEventsFormatter.js +86 -0
  47. package/dist/cli/args/argFlags.d.ts +6 -0
  48. package/dist/cli/args/argFlags.d.ts.map +1 -0
  49. package/dist/cli/args/argFlags.js +72 -0
  50. package/dist/cli/args/argPositionals.d.ts +3 -0
  51. package/dist/cli/args/argPositionals.d.ts.map +1 -0
  52. package/dist/cli/args/argPositionals.js +18 -0
  53. package/dist/cli/args/index.d.ts +4 -0
  54. package/dist/cli/args/index.d.ts.map +1 -0
  55. package/dist/cli/args/index.js +75 -0
  56. package/dist/cli/args/types.d.ts +13 -0
  57. package/dist/cli/args/types.d.ts.map +1 -0
  58. package/dist/cli/args/types.js +2 -0
  59. package/dist/cli/commands/daemon.d.ts +31 -0
  60. package/dist/cli/commands/daemon.d.ts.map +1 -0
  61. package/dist/cli/commands/daemon.js +156 -0
  62. package/dist/cli/commands/harness/createRun.d.ts +3 -0
  63. package/dist/cli/commands/harness/createRun.d.ts.map +1 -0
  64. package/dist/cli/commands/harness/createRun.js +8 -0
  65. package/dist/cli/commands/harness/resumeRun.d.ts +20 -0
  66. package/dist/cli/commands/harness/resumeRun.d.ts.map +1 -0
  67. package/dist/cli/commands/harness/resumeRun.js +341 -0
  68. package/dist/cli/commands/jsonlInteractive.d.ts +35 -0
  69. package/dist/cli/commands/jsonlInteractive.d.ts.map +1 -0
  70. package/dist/cli/commands/jsonlInteractive.js +302 -0
  71. package/dist/cli/commands/mcpServe.d.ts +18 -0
  72. package/dist/cli/commands/mcpServe.d.ts.map +1 -0
  73. package/dist/cli/commands/mcpServe.js +59 -0
  74. package/dist/cli/commands/session/history.d.ts +14 -0
  75. package/dist/cli/commands/session/history.d.ts.map +1 -0
  76. package/dist/cli/commands/session/history.js +100 -0
  77. package/dist/cli/commands/tui.d.ts +23 -0
  78. package/dist/cli/commands/tui.d.ts.map +1 -0
  79. package/dist/cli/commands/tui.js +183 -0
  80. package/dist/cli/dispatch.d.ts +4 -0
  81. package/dist/cli/dispatch.d.ts.map +1 -0
  82. package/dist/cli/dispatch.js +332 -0
  83. package/dist/cli/main.d.ts +7 -0
  84. package/dist/cli/main.d.ts.map +1 -0
  85. package/dist/cli/main.js +41 -0
  86. package/dist/cli/program.d.ts +7 -0
  87. package/dist/cli/program.d.ts.map +1 -0
  88. package/dist/cli/program.js +8 -0
  89. package/dist/cli/ui.d.ts +9 -0
  90. package/dist/cli/ui.d.ts.map +1 -0
  91. package/dist/cli/ui.js +125 -0
  92. package/dist/compression/compaction.d.ts +82 -0
  93. package/dist/compression/compaction.d.ts.map +1 -0
  94. package/dist/compression/compaction.js +310 -0
  95. package/dist/cost/claudeCodeParser.d.ts +81 -0
  96. package/dist/cost/claudeCodeParser.d.ts.map +1 -0
  97. package/dist/cost/claudeCodeParser.js +232 -0
  98. package/dist/cost/collector.d.ts +42 -0
  99. package/dist/cost/collector.d.ts.map +1 -0
  100. package/dist/cost/collector.js +105 -0
  101. package/dist/cost/effectCost.d.ts +23 -0
  102. package/dist/cost/effectCost.d.ts.map +1 -0
  103. package/dist/cost/effectCost.js +26 -0
  104. package/dist/cost/index.d.ts +7 -0
  105. package/dist/cost/index.d.ts.map +1 -0
  106. package/dist/cost/index.js +28 -0
  107. package/dist/cost/journal.d.ts +40 -0
  108. package/dist/cost/journal.d.ts.map +1 -0
  109. package/dist/cost/journal.js +137 -0
  110. package/dist/cost/types.d.ts +164 -0
  111. package/dist/cost/types.d.ts.map +1 -0
  112. package/dist/cost/types.js +228 -0
  113. package/dist/daemon/automationExecutor.d.ts +16 -0
  114. package/dist/daemon/automationExecutor.d.ts.map +1 -0
  115. package/dist/daemon/automationExecutor.js +222 -0
  116. package/dist/daemon/config.d.ts +8 -0
  117. package/dist/daemon/config.d.ts.map +1 -0
  118. package/dist/daemon/config.js +209 -0
  119. package/dist/daemon/daemonLog.d.ts +13 -0
  120. package/dist/daemon/daemonLog.d.ts.map +1 -0
  121. package/dist/daemon/daemonLog.js +64 -0
  122. package/dist/daemon/fileWatcher.d.ts +9 -0
  123. package/dist/daemon/fileWatcher.d.ts.map +1 -0
  124. package/dist/daemon/fileWatcher.js +141 -0
  125. package/dist/daemon/index.d.ts +7 -0
  126. package/dist/daemon/index.d.ts.map +1 -0
  127. package/dist/daemon/index.js +21 -0
  128. package/dist/daemon/lifecycle.d.ts +12 -0
  129. package/dist/daemon/lifecycle.d.ts.map +1 -0
  130. package/dist/daemon/lifecycle.js +257 -0
  131. package/dist/daemon/loop.d.ts +21 -0
  132. package/dist/daemon/loop.d.ts.map +1 -0
  133. package/dist/daemon/loop.js +196 -0
  134. package/dist/daemon/timerScheduler.d.ts +13 -0
  135. package/dist/daemon/timerScheduler.d.ts.map +1 -0
  136. package/dist/daemon/timerScheduler.js +122 -0
  137. package/dist/daemon/types.d.ts +93 -0
  138. package/dist/daemon/types.d.ts.map +1 -0
  139. package/dist/daemon/types.js +25 -0
  140. package/dist/daemon/webhookListener.d.ts +6 -0
  141. package/dist/daemon/webhookListener.d.ts.map +1 -0
  142. package/dist/daemon/webhookListener.js +110 -0
  143. package/dist/governance/authority.d.ts +68 -0
  144. package/dist/governance/authority.d.ts.map +1 -0
  145. package/dist/governance/authority.js +136 -0
  146. package/dist/governance/bridge.d.ts +17 -0
  147. package/dist/governance/bridge.d.ts.map +1 -0
  148. package/dist/governance/bridge.js +46 -0
  149. package/dist/governance/builtins.d.ts +25 -0
  150. package/dist/governance/builtins.d.ts.map +1 -0
  151. package/dist/governance/builtins.js +67 -0
  152. package/dist/governance/categories.d.ts +58 -0
  153. package/dist/governance/categories.d.ts.map +1 -0
  154. package/dist/governance/categories.js +120 -0
  155. package/dist/governance/decisionTrail.d.ts +60 -0
  156. package/dist/governance/decisionTrail.d.ts.map +1 -0
  157. package/dist/governance/decisionTrail.js +68 -0
  158. package/dist/governance/engine.d.ts +20 -0
  159. package/dist/governance/engine.d.ts.map +1 -0
  160. package/dist/governance/engine.js +124 -0
  161. package/dist/governance/index.d.ts +20 -0
  162. package/dist/governance/index.d.ts.map +1 -0
  163. package/dist/governance/index.js +75 -0
  164. package/dist/governance/logging.d.ts +18 -0
  165. package/dist/governance/logging.d.ts.map +1 -0
  166. package/dist/governance/logging.js +83 -0
  167. package/dist/governance/mandate.d.ts +83 -0
  168. package/dist/governance/mandate.d.ts.map +1 -0
  169. package/dist/governance/mandate.js +180 -0
  170. package/dist/governance/permissionEvents.d.ts +51 -0
  171. package/dist/governance/permissionEvents.d.ts.map +1 -0
  172. package/dist/governance/permissionEvents.js +52 -0
  173. package/dist/governance/permissionPropagation.d.ts +18 -0
  174. package/dist/governance/permissionPropagation.d.ts.map +1 -0
  175. package/dist/governance/permissionPropagation.js +58 -0
  176. package/dist/governance/postureBridge.d.ts +17 -0
  177. package/dist/governance/postureBridge.d.ts.map +1 -0
  178. package/dist/governance/postureBridge.js +117 -0
  179. package/dist/governance/sandboxBridge.d.ts +49 -0
  180. package/dist/governance/sandboxBridge.d.ts.map +1 -0
  181. package/dist/governance/sandboxBridge.js +77 -0
  182. package/dist/governance/sandboxPolicy.d.ts +51 -0
  183. package/dist/governance/sandboxPolicy.d.ts.map +1 -0
  184. package/dist/governance/sandboxPolicy.js +177 -0
  185. package/dist/governance/types.d.ts +3 -0
  186. package/dist/governance/types.d.ts.map +1 -0
  187. package/dist/governance/types.js +5 -0
  188. package/dist/harness/amux/amuxBridge.d.ts +71 -0
  189. package/dist/harness/amux/amuxBridge.d.ts.map +1 -0
  190. package/dist/harness/amux/amuxBridge.js +117 -0
  191. package/dist/harness/amux/amuxClientFactory.d.ts +29 -0
  192. package/dist/harness/amux/amuxClientFactory.d.ts.map +1 -0
  193. package/dist/harness/amux/amuxClientFactory.js +90 -0
  194. package/dist/harness/amux/amuxEventEmitter.d.ts +51 -0
  195. package/dist/harness/amux/amuxEventEmitter.d.ts.map +1 -0
  196. package/dist/harness/amux/amuxEventEmitter.js +143 -0
  197. package/dist/harness/amux/amuxEventMapper.d.ts +58 -0
  198. package/dist/harness/amux/amuxEventMapper.d.ts.map +1 -0
  199. package/dist/harness/amux/amuxEventMapper.js +92 -0
  200. package/dist/harness/amux/amuxHarnessMap.d.ts +25 -0
  201. package/dist/harness/amux/amuxHarnessMap.d.ts.map +1 -0
  202. package/dist/harness/amux/amuxHarnessMap.js +55 -0
  203. package/dist/harness/amux/amuxStdinReader.d.ts +45 -0
  204. package/dist/harness/amux/amuxStdinReader.d.ts.map +1 -0
  205. package/dist/harness/amux/amuxStdinReader.js +106 -0
  206. package/dist/harness/amux/amuxTypes.d.ts +122 -0
  207. package/dist/harness/amux/amuxTypes.d.ts.map +1 -0
  208. package/dist/harness/amux/amuxTypes.js +11 -0
  209. package/dist/harness/amux/index.d.ts +17 -0
  210. package/dist/harness/amux/index.d.ts.map +1 -0
  211. package/dist/harness/amux/index.js +34 -0
  212. package/dist/harness/backgroundTracker.d.ts +64 -0
  213. package/dist/harness/backgroundTracker.d.ts.map +1 -0
  214. package/dist/harness/backgroundTracker.js +107 -0
  215. package/dist/harness/builtInHarness.d.ts +3 -0
  216. package/dist/harness/builtInHarness.d.ts.map +1 -0
  217. package/dist/harness/builtInHarness.js +18 -0
  218. package/dist/harness/capabilityRouter.d.ts +76 -0
  219. package/dist/harness/capabilityRouter.d.ts.map +1 -0
  220. package/dist/harness/capabilityRouter.js +176 -0
  221. package/dist/harness/fallbackChains.d.ts +42 -0
  222. package/dist/harness/fallbackChains.d.ts.map +1 -0
  223. package/dist/harness/fallbackChains.js +69 -0
  224. package/dist/harness/hostContract.d.ts +63 -0
  225. package/dist/harness/hostContract.d.ts.map +1 -0
  226. package/dist/harness/hostContract.js +136 -0
  227. package/dist/harness/index.d.ts +10 -0
  228. package/dist/harness/index.d.ts.map +1 -0
  229. package/dist/harness/index.js +66 -0
  230. package/dist/harness/internal/createRun/askUserQuestion.d.ts +11 -0
  231. package/dist/harness/internal/createRun/askUserQuestion.d.ts.map +1 -0
  232. package/dist/harness/internal/createRun/askUserQuestion.js +162 -0
  233. package/dist/harness/internal/createRun/index.d.ts +25 -0
  234. package/dist/harness/internal/createRun/index.d.ts.map +1 -0
  235. package/dist/harness/internal/createRun/index.js +137 -0
  236. package/dist/harness/internal/createRun/orchestration/constants.d.ts +7 -0
  237. package/dist/harness/internal/createRun/orchestration/constants.d.ts.map +1 -0
  238. package/dist/harness/internal/createRun/orchestration/constants.js +13 -0
  239. package/dist/harness/internal/createRun/orchestration/effects.d.ts +43 -0
  240. package/dist/harness/internal/createRun/orchestration/effects.d.ts.map +1 -0
  241. package/dist/harness/internal/createRun/orchestration/effects.js +490 -0
  242. package/dist/harness/internal/createRun/orchestration/effectsHelpers.d.ts +20 -0
  243. package/dist/harness/internal/createRun/orchestration/effectsHelpers.d.ts.map +1 -0
  244. package/dist/harness/internal/createRun/orchestration/effectsHelpers.js +79 -0
  245. package/dist/harness/internal/createRun/orchestration/externalPhase.d.ts +3 -0
  246. package/dist/harness/internal/createRun/orchestration/externalPhase.d.ts.map +1 -0
  247. package/dist/harness/internal/createRun/orchestration/externalPhase.js +319 -0
  248. package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.d.ts +16 -0
  249. package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.d.ts.map +1 -0
  250. package/dist/harness/internal/createRun/orchestration/externalPhaseHelpers.js +104 -0
  251. package/dist/harness/internal/createRun/orchestration/index.d.ts +14 -0
  252. package/dist/harness/internal/createRun/orchestration/index.d.ts.map +1 -0
  253. package/dist/harness/internal/createRun/orchestration/index.js +36 -0
  254. package/dist/harness/internal/createRun/orchestration/internalPhase.d.ts +3 -0
  255. package/dist/harness/internal/createRun/orchestration/internalPhase.d.ts.map +1 -0
  256. package/dist/harness/internal/createRun/orchestration/internalPhase.js +464 -0
  257. package/dist/harness/internal/createRun/orchestration/internalTools.d.ts +26 -0
  258. package/dist/harness/internal/createRun/orchestration/internalTools.d.ts.map +1 -0
  259. package/dist/harness/internal/createRun/orchestration/internalTools.js +262 -0
  260. package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.d.ts +17 -0
  261. package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.d.ts.map +1 -0
  262. package/dist/harness/internal/createRun/orchestration/internalToolsHelpers.js +23 -0
  263. package/dist/harness/internal/createRun/orchestration/taskResult.d.ts +10 -0
  264. package/dist/harness/internal/createRun/orchestration/taskResult.d.ts.map +1 -0
  265. package/dist/harness/internal/createRun/orchestration/taskResult.js +67 -0
  266. package/dist/harness/internal/createRun/orchestration/types.d.ts +46 -0
  267. package/dist/harness/internal/createRun/orchestration/types.d.ts.map +1 -0
  268. package/dist/harness/internal/createRun/orchestration/types.js +2 -0
  269. package/dist/harness/internal/createRun/orchestration/verbose.d.ts +7 -0
  270. package/dist/harness/internal/createRun/orchestration/verbose.d.ts.map +1 -0
  271. package/dist/harness/internal/createRun/orchestration/verbose.js +240 -0
  272. package/dist/harness/internal/createRun/output.d.ts +38 -0
  273. package/dist/harness/internal/createRun/output.d.ts.map +1 -0
  274. package/dist/harness/internal/createRun/output.js +415 -0
  275. package/dist/harness/internal/createRun/pi.d.ts +34 -0
  276. package/dist/harness/internal/createRun/pi.d.ts.map +1 -0
  277. package/dist/harness/internal/createRun/pi.js +216 -0
  278. package/dist/harness/internal/createRun/planProcess/agentOutput.d.ts +5 -0
  279. package/dist/harness/internal/createRun/planProcess/agentOutput.d.ts.map +1 -0
  280. package/dist/harness/internal/createRun/planProcess/agentOutput.js +113 -0
  281. package/dist/harness/internal/createRun/planProcess/delegation.d.ts +23 -0
  282. package/dist/harness/internal/createRun/planProcess/delegation.d.ts.map +1 -0
  283. package/dist/harness/internal/createRun/planProcess/delegation.js +176 -0
  284. package/dist/harness/internal/createRun/planProcess/external.d.ts +14 -0
  285. package/dist/harness/internal/createRun/planProcess/external.d.ts.map +1 -0
  286. package/dist/harness/internal/createRun/planProcess/external.js +139 -0
  287. package/dist/harness/internal/createRun/planProcess/index.d.ts +12 -0
  288. package/dist/harness/internal/createRun/planProcess/index.d.ts.map +1 -0
  289. package/dist/harness/internal/createRun/planProcess/index.js +24 -0
  290. package/dist/harness/internal/createRun/planProcess/paths.d.ts +7 -0
  291. package/dist/harness/internal/createRun/planProcess/paths.d.ts.map +1 -0
  292. package/dist/harness/internal/createRun/planProcess/paths.js +98 -0
  293. package/dist/harness/internal/createRun/planProcess/phase.d.ts +6 -0
  294. package/dist/harness/internal/createRun/planProcess/phase.d.ts.map +1 -0
  295. package/dist/harness/internal/createRun/planProcess/phase.js +361 -0
  296. package/dist/harness/internal/createRun/planProcess/phaseHelpers.d.ts +37 -0
  297. package/dist/harness/internal/createRun/planProcess/phaseHelpers.d.ts.map +1 -0
  298. package/dist/harness/internal/createRun/planProcess/phaseHelpers.js +159 -0
  299. package/dist/harness/internal/createRun/planProcess/phaseTypes.d.ts +25 -0
  300. package/dist/harness/internal/createRun/planProcess/phaseTypes.d.ts.map +1 -0
  301. package/dist/harness/internal/createRun/planProcess/phaseTypes.js +6 -0
  302. package/dist/harness/internal/createRun/planProcess/prompts.d.ts +20 -0
  303. package/dist/harness/internal/createRun/planProcess/prompts.d.ts.map +1 -0
  304. package/dist/harness/internal/createRun/planProcess/prompts.js +208 -0
  305. package/dist/harness/internal/createRun/planProcess/recovery.d.ts +18 -0
  306. package/dist/harness/internal/createRun/planProcess/recovery.d.ts.map +1 -0
  307. package/dist/harness/internal/createRun/planProcess/recovery.js +188 -0
  308. package/dist/harness/internal/createRun/planProcess/recovery.test.d.ts +2 -0
  309. package/dist/harness/internal/createRun/planProcess/recovery.test.d.ts.map +1 -0
  310. package/dist/harness/internal/createRun/planProcess/recovery.test.js +68 -0
  311. package/dist/harness/internal/createRun/planProcess/runState.d.ts +40 -0
  312. package/dist/harness/internal/createRun/planProcess/runState.d.ts.map +1 -0
  313. package/dist/harness/internal/createRun/planProcess/runState.js +179 -0
  314. package/dist/harness/internal/createRun/planProcess/understandIntent.d.ts +22 -0
  315. package/dist/harness/internal/createRun/planProcess/understandIntent.d.ts.map +1 -0
  316. package/dist/harness/internal/createRun/planProcess/understandIntent.js +65 -0
  317. package/dist/harness/internal/createRun/planProcess/validation.d.ts +2 -0
  318. package/dist/harness/internal/createRun/planProcess/validation.d.ts.map +1 -0
  319. package/dist/harness/internal/createRun/planProcess/validation.js +212 -0
  320. package/dist/harness/internal/createRun/planProcess/validationSource.d.ts +11 -0
  321. package/dist/harness/internal/createRun/planProcess/validationSource.d.ts.map +1 -0
  322. package/dist/harness/internal/createRun/planProcess/validationSource.js +328 -0
  323. package/dist/harness/internal/createRun/planProcess/validationText.d.ts +3 -0
  324. package/dist/harness/internal/createRun/planProcess/validationText.d.ts.map +1 -0
  325. package/dist/harness/internal/createRun/planProcess/validationText.js +145 -0
  326. package/dist/harness/internal/createRun/prompts.d.ts +49 -0
  327. package/dist/harness/internal/createRun/prompts.d.ts.map +1 -0
  328. package/dist/harness/internal/createRun/prompts.js +307 -0
  329. package/dist/harness/internal/createRun/resumeState.d.ts +28 -0
  330. package/dist/harness/internal/createRun/resumeState.d.ts.map +1 -0
  331. package/dist/harness/internal/createRun/resumeState.js +133 -0
  332. package/dist/harness/internal/createRun/utils.d.ts +182 -0
  333. package/dist/harness/internal/createRun/utils.d.ts.map +1 -0
  334. package/dist/harness/internal/createRun/utils.js +133 -0
  335. package/dist/harness/internal.d.ts +13 -0
  336. package/dist/harness/internal.d.ts.map +1 -0
  337. package/dist/harness/internal.js +149 -0
  338. package/dist/harness/invoker/launch.d.ts +20 -0
  339. package/dist/harness/invoker/launch.d.ts.map +1 -0
  340. package/dist/harness/invoker/launch.js +23 -0
  341. package/dist/harness/invoker/processControl.d.ts +11 -0
  342. package/dist/harness/invoker/processControl.d.ts.map +1 -0
  343. package/dist/harness/invoker/processControl.js +50 -0
  344. package/dist/harness/invoker.d.ts +43 -0
  345. package/dist/harness/invoker.d.ts.map +1 -0
  346. package/dist/harness/invoker.js +210 -0
  347. package/dist/harness/modeSelector.d.ts +50 -0
  348. package/dist/harness/modeSelector.d.ts.map +1 -0
  349. package/dist/harness/modeSelector.js +124 -0
  350. package/dist/harness/modelSelection.d.ts +37 -0
  351. package/dist/harness/modelSelection.d.ts.map +1 -0
  352. package/dist/harness/modelSelection.js +81 -0
  353. package/dist/harness/operatorCommands.d.ts +38 -0
  354. package/dist/harness/operatorCommands.d.ts.map +1 -0
  355. package/dist/harness/operatorCommands.js +118 -0
  356. package/dist/harness/piSecureSandbox.d.ts +8 -0
  357. package/dist/harness/piSecureSandbox.d.ts.map +1 -0
  358. package/dist/harness/piSecureSandbox.js +366 -0
  359. package/dist/harness/piSecureSandboxTypes.d.ts +51 -0
  360. package/dist/harness/piSecureSandboxTypes.d.ts.map +1 -0
  361. package/dist/harness/piSecureSandboxTypes.js +6 -0
  362. package/dist/harness/piWrapper/compaction.d.ts +13 -0
  363. package/dist/harness/piWrapper/compaction.d.ts.map +1 -0
  364. package/dist/harness/piWrapper/compaction.js +38 -0
  365. package/dist/harness/piWrapper/instructionPrompts.d.ts +2 -0
  366. package/dist/harness/piWrapper/instructionPrompts.d.ts.map +1 -0
  367. package/dist/harness/piWrapper/instructionPrompts.js +97 -0
  368. package/dist/harness/piWrapper/moduleSupport.d.ts +77 -0
  369. package/dist/harness/piWrapper/moduleSupport.d.ts.map +1 -0
  370. package/dist/harness/piWrapper/moduleSupport.js +204 -0
  371. package/dist/harness/piWrapper.d.ts +80 -0
  372. package/dist/harness/piWrapper.d.ts.map +1 -0
  373. package/dist/harness/piWrapper.js +389 -0
  374. package/dist/harness/piWrapper.test.d.ts +2 -0
  375. package/dist/harness/piWrapper.test.d.ts.map +1 -0
  376. package/dist/harness/piWrapper.test.js +193 -0
  377. package/dist/harness/planMode.d.ts +68 -0
  378. package/dist/harness/planMode.d.ts.map +1 -0
  379. package/dist/harness/planMode.js +145 -0
  380. package/dist/harness/selectionPolicies.d.ts +29 -0
  381. package/dist/harness/selectionPolicies.d.ts.map +1 -0
  382. package/dist/harness/selectionPolicies.js +165 -0
  383. package/dist/harness/types.d.ts +266 -0
  384. package/dist/harness/types.d.ts.map +1 -0
  385. package/dist/harness/types.js +34 -0
  386. package/dist/index.d.ts +14 -0
  387. package/dist/index.d.ts.map +1 -0
  388. package/dist/index.js +52 -0
  389. package/dist/interaction/askUserQuestion/core.d.ts +8 -0
  390. package/dist/interaction/askUserQuestion/core.d.ts.map +1 -0
  391. package/dist/interaction/askUserQuestion/core.js +112 -0
  392. package/dist/interaction/askUserQuestion/terminal.d.ts +15 -0
  393. package/dist/interaction/askUserQuestion/terminal.d.ts.map +1 -0
  394. package/dist/interaction/askUserQuestion/terminal.js +128 -0
  395. package/dist/interaction/askUserQuestion.d.ts +10 -0
  396. package/dist/interaction/askUserQuestion.d.ts.map +1 -0
  397. package/dist/interaction/askUserQuestion.js +295 -0
  398. package/dist/interaction/askUserQuestionTypes.d.ts +31 -0
  399. package/dist/interaction/askUserQuestionTypes.d.ts.map +1 -0
  400. package/dist/interaction/askUserQuestionTypes.js +6 -0
  401. package/dist/interaction/index.d.ts +4 -0
  402. package/dist/interaction/index.d.ts.map +1 -0
  403. package/dist/interaction/index.js +20 -0
  404. package/dist/interaction/interactionRouter.d.ts +25 -0
  405. package/dist/interaction/interactionRouter.d.ts.map +1 -0
  406. package/dist/interaction/interactionRouter.js +55 -0
  407. package/dist/mcp/channels/allowlist.d.ts +19 -0
  408. package/dist/mcp/channels/allowlist.d.ts.map +1 -0
  409. package/dist/mcp/channels/allowlist.js +140 -0
  410. package/dist/mcp/channels/channelManager.d.ts +64 -0
  411. package/dist/mcp/channels/channelManager.d.ts.map +1 -0
  412. package/dist/mcp/channels/channelManager.js +137 -0
  413. package/dist/mcp/channels/inboundQueue.d.ts +47 -0
  414. package/dist/mcp/channels/inboundQueue.d.ts.map +1 -0
  415. package/dist/mcp/channels/inboundQueue.js +96 -0
  416. package/dist/mcp/channels/index.d.ts +17 -0
  417. package/dist/mcp/channels/index.d.ts.map +1 -0
  418. package/dist/mcp/channels/index.js +39 -0
  419. package/dist/mcp/channels/outbound.d.ts +33 -0
  420. package/dist/mcp/channels/outbound.d.ts.map +1 -0
  421. package/dist/mcp/channels/outbound.js +94 -0
  422. package/dist/mcp/channels/permissionRelay.d.ts +62 -0
  423. package/dist/mcp/channels/permissionRelay.d.ts.map +1 -0
  424. package/dist/mcp/channels/permissionRelay.js +159 -0
  425. package/dist/mcp/channels/types.d.ts +135 -0
  426. package/dist/mcp/channels/types.d.ts.map +1 -0
  427. package/dist/mcp/channels/types.js +16 -0
  428. package/dist/mcp/client/config.d.ts +28 -0
  429. package/dist/mcp/client/config.d.ts.map +1 -0
  430. package/dist/mcp/client/config.js +142 -0
  431. package/dist/mcp/client/executor.d.ts +30 -0
  432. package/dist/mcp/client/executor.d.ts.map +1 -0
  433. package/dist/mcp/client/executor.js +60 -0
  434. package/dist/mcp/client/index.d.ts +12 -0
  435. package/dist/mcp/client/index.d.ts.map +1 -0
  436. package/dist/mcp/client/index.js +27 -0
  437. package/dist/mcp/client/manager.d.ts +74 -0
  438. package/dist/mcp/client/manager.d.ts.map +1 -0
  439. package/dist/mcp/client/manager.js +214 -0
  440. package/dist/mcp/client/toolRegistry.d.ts +50 -0
  441. package/dist/mcp/client/toolRegistry.d.ts.map +1 -0
  442. package/dist/mcp/client/toolRegistry.js +118 -0
  443. package/dist/mcp/client/types.d.ts +96 -0
  444. package/dist/mcp/client/types.d.ts.map +1 -0
  445. package/dist/mcp/client/types.js +15 -0
  446. package/dist/mcp/transport/index.d.ts +9 -0
  447. package/dist/mcp/transport/index.d.ts.map +1 -0
  448. package/dist/mcp/transport/index.js +13 -0
  449. package/dist/mcp/transport/session.d.ts +18 -0
  450. package/dist/mcp/transport/session.d.ts.map +1 -0
  451. package/dist/mcp/transport/session.js +78 -0
  452. package/dist/mcp/transport/types.d.ts +19 -0
  453. package/dist/mcp/transport/types.d.ts.map +1 -0
  454. package/dist/mcp/transport/types.js +7 -0
  455. package/dist/mcp/transport/websocket.d.ts +41 -0
  456. package/dist/mcp/transport/websocket.d.ts.map +1 -0
  457. package/dist/mcp/transport/websocket.js +271 -0
  458. package/dist/observability/health.d.ts +19 -0
  459. package/dist/observability/health.d.ts.map +1 -0
  460. package/dist/observability/health.js +129 -0
  461. package/dist/observability/index.d.ts +7 -0
  462. package/dist/observability/index.d.ts.map +1 -0
  463. package/dist/observability/index.js +22 -0
  464. package/dist/observability/runStatus.d.ts +44 -0
  465. package/dist/observability/runStatus.d.ts.map +1 -0
  466. package/dist/observability/runStatus.js +169 -0
  467. package/dist/observability/timeline.d.ts +11 -0
  468. package/dist/observability/timeline.d.ts.map +1 -0
  469. package/dist/observability/timeline.js +176 -0
  470. package/dist/observability/types.d.ts +62 -0
  471. package/dist/observability/types.d.ts.map +1 -0
  472. package/dist/observability/types.js +8 -0
  473. package/dist/observability/webhooks.d.ts +68 -0
  474. package/dist/observability/webhooks.d.ts.map +1 -0
  475. package/dist/observability/webhooks.js +132 -0
  476. package/dist/prompts/commandTemplates.d.ts +3 -0
  477. package/dist/prompts/commandTemplates.d.ts.map +1 -0
  478. package/dist/prompts/commandTemplates.js +238 -0
  479. package/dist/runtime/index.d.ts +3 -0
  480. package/dist/runtime/index.d.ts.map +1 -0
  481. package/dist/runtime/index.js +28 -0
  482. package/dist/seams/contract.d.ts +55 -0
  483. package/dist/seams/contract.d.ts.map +1 -0
  484. package/dist/seams/contract.js +120 -0
  485. package/dist/seams/contract.test.d.ts +2 -0
  486. package/dist/seams/contract.test.d.ts.map +1 -0
  487. package/dist/seams/contract.test.js +96 -0
  488. package/dist/seams/index.d.ts +3 -0
  489. package/dist/seams/index.d.ts.map +1 -0
  490. package/dist/seams/index.js +8 -0
  491. package/dist/session/context.d.ts +22 -0
  492. package/dist/session/context.d.ts.map +1 -0
  493. package/dist/session/context.js +113 -0
  494. package/dist/session/continuityState.d.ts +39 -0
  495. package/dist/session/continuityState.d.ts.map +1 -0
  496. package/dist/session/continuityState.js +164 -0
  497. package/dist/session/cost.d.ts +63 -0
  498. package/dist/session/cost.d.ts.map +1 -0
  499. package/dist/session/cost.js +194 -0
  500. package/dist/session/discovery.d.ts +22 -0
  501. package/dist/session/discovery.d.ts.map +1 -0
  502. package/dist/session/discovery.js +35 -0
  503. package/dist/session/history.d.ts +30 -0
  504. package/dist/session/history.d.ts.map +1 -0
  505. package/dist/session/history.js +143 -0
  506. package/dist/session/index.d.ts +7 -0
  507. package/dist/session/index.d.ts.map +1 -0
  508. package/dist/session/index.js +70 -0
  509. package/dist/session/memoryExtraction.d.ts +65 -0
  510. package/dist/session/memoryExtraction.d.ts.map +1 -0
  511. package/dist/session/memoryExtraction.js +201 -0
  512. package/dist/session/parse.d.ts +45 -0
  513. package/dist/session/parse.d.ts.map +1 -0
  514. package/dist/session/parse.js +170 -0
  515. package/dist/session/persistence.d.ts +46 -0
  516. package/dist/session/persistence.d.ts.map +1 -0
  517. package/dist/session/persistence.js +180 -0
  518. package/dist/session/types.d.ts +267 -0
  519. package/dist/session/types.d.ts.map +1 -0
  520. package/dist/session/types.js +45 -0
  521. package/dist/session/write.d.ts +61 -0
  522. package/dist/session/write.d.ts.map +1 -0
  523. package/dist/session/write.js +213 -0
  524. package/dist/storage/atomic.d.ts +2 -0
  525. package/dist/storage/atomic.d.ts.map +1 -0
  526. package/dist/storage/atomic.js +54 -0
  527. package/dist/storage/clock.d.ts +2 -0
  528. package/dist/storage/clock.d.ts.map +1 -0
  529. package/dist/storage/clock.js +6 -0
  530. package/dist/storage/index.d.ts +7 -0
  531. package/dist/storage/index.d.ts.map +1 -0
  532. package/dist/storage/index.js +9 -0
  533. package/dist/storage/journalWatcher.d.ts +24 -0
  534. package/dist/storage/journalWatcher.d.ts.map +1 -0
  535. package/dist/storage/journalWatcher.js +172 -0
  536. package/dist/storage/paths.d.ts +5 -0
  537. package/dist/storage/paths.d.ts.map +1 -0
  538. package/dist/storage/paths.js +26 -0
  539. package/dist/storage/snapshotState.d.ts +10 -0
  540. package/dist/storage/snapshotState.d.ts.map +1 -0
  541. package/dist/storage/snapshotState.js +15 -0
  542. package/dist/storage/storeTaskArtifacts.d.ts +6 -0
  543. package/dist/storage/storeTaskArtifacts.d.ts.map +1 -0
  544. package/dist/storage/storeTaskArtifacts.js +55 -0
  545. package/dist/storage/types.d.ts +21 -0
  546. package/dist/storage/types.d.ts.map +1 -0
  547. package/dist/storage/types.js +2 -0
  548. package/dist/tasks/crud.d.ts +33 -0
  549. package/dist/tasks/crud.d.ts.map +1 -0
  550. package/dist/tasks/crud.js +150 -0
  551. package/dist/tasks/index.d.ts +2 -0
  552. package/dist/tasks/index.d.ts.map +1 -0
  553. package/dist/tasks/index.js +9 -0
  554. package/package.json +141 -0
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ /**
3
+ * GAP-USER-012: Plan Mode with Verification
4
+ *
5
+ * Interactive plan-verify-execute loop. Generates structured plans,
6
+ * presents for approval, executes with per-step verification,
7
+ * and allows plan modification mid-execution.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.createPlan = createPlan;
11
+ exports.updateStepStatus = updateStepStatus;
12
+ exports.insertStep = insertStep;
13
+ exports.removeStep = removeStep;
14
+ exports.getNextStep = getNextStep;
15
+ exports.getPlanProgress = getPlanProgress;
16
+ exports.formatPlanForDisplay = formatPlanForDisplay;
17
+ // ---------------------------------------------------------------------------
18
+ // Plan construction
19
+ // ---------------------------------------------------------------------------
20
+ /** Create a new execution plan. */
21
+ function createPlan(id, title, description, steps) {
22
+ const now = new Date().toISOString();
23
+ return {
24
+ id,
25
+ title,
26
+ description,
27
+ steps: steps.map((s) => ({ ...s, status: "pending" })),
28
+ status: "draft",
29
+ createdAt: now,
30
+ updatedAt: now,
31
+ };
32
+ }
33
+ /** Update a step's status. */
34
+ function updateStepStatus(plan, stepId, status, feedback) {
35
+ const now = new Date().toISOString();
36
+ const steps = plan.steps.map((s) => {
37
+ if (s.id !== stepId)
38
+ return s;
39
+ return {
40
+ ...s,
41
+ status,
42
+ completedAt: status === "completed" || status === "failed" ? now : s.completedAt,
43
+ feedback: feedback ?? s.feedback,
44
+ };
45
+ });
46
+ // Derive plan status from step statuses
47
+ const allCompleted = steps.every((s) => s.status === "completed" || s.status === "skipped");
48
+ const anyFailed = steps.some((s) => s.status === "failed");
49
+ const anyInProgress = steps.some((s) => s.status === "in_progress");
50
+ let planStatus = plan.status;
51
+ if (allCompleted)
52
+ planStatus = "completed";
53
+ else if (anyFailed)
54
+ planStatus = "failed";
55
+ else if (anyInProgress)
56
+ planStatus = "executing";
57
+ return { ...plan, steps, status: planStatus, updatedAt: now };
58
+ }
59
+ /** Insert a new step into the plan at a given position. */
60
+ function insertStep(plan, step, afterStepId) {
61
+ const now = new Date().toISOString();
62
+ const newStep = { ...step, status: "pending" };
63
+ const steps = [...plan.steps];
64
+ if (afterStepId) {
65
+ const idx = steps.findIndex((s) => s.id === afterStepId);
66
+ if (idx >= 0) {
67
+ steps.splice(idx + 1, 0, newStep);
68
+ }
69
+ else {
70
+ steps.push(newStep);
71
+ }
72
+ }
73
+ else {
74
+ steps.push(newStep);
75
+ }
76
+ return { ...plan, steps, status: "modified", updatedAt: now };
77
+ }
78
+ /** Remove a step from the plan. Also removes it from other steps' dependsOn lists. */
79
+ function removeStep(plan, stepId) {
80
+ const now = new Date().toISOString();
81
+ const steps = plan.steps
82
+ .filter((s) => s.id !== stepId)
83
+ .map((s) => ({
84
+ ...s,
85
+ dependsOn: s.dependsOn.filter((dep) => dep !== stepId),
86
+ }));
87
+ return {
88
+ ...plan,
89
+ steps,
90
+ status: "modified",
91
+ updatedAt: now,
92
+ };
93
+ }
94
+ /** Get the next executable step (all dependencies satisfied). */
95
+ function getNextStep(plan) {
96
+ const completedIds = new Set(plan.steps
97
+ .filter((s) => s.status === "completed" || s.status === "skipped")
98
+ .map((s) => s.id));
99
+ return plan.steps.find((s) => s.status === "pending" &&
100
+ s.dependsOn.every((dep) => completedIds.has(dep)));
101
+ }
102
+ /** Get plan progress summary. */
103
+ function getPlanProgress(plan) {
104
+ const total = plan.steps.length;
105
+ const completed = plan.steps.filter((s) => s.status === "completed" || s.status === "skipped").length;
106
+ const failed = plan.steps.filter((s) => s.status === "failed").length;
107
+ const pending = plan.steps.filter((s) => s.status === "pending").length;
108
+ return {
109
+ total,
110
+ completed,
111
+ failed,
112
+ pending,
113
+ percentComplete: total > 0 ? Math.round((completed / total) * 100) : 0,
114
+ };
115
+ }
116
+ /** Format plan for display. */
117
+ function formatPlanForDisplay(plan) {
118
+ const progress = getPlanProgress(plan);
119
+ const lines = [
120
+ `## ${plan.title}`,
121
+ `Status: ${plan.status} | Progress: ${progress.completed}/${progress.total} (${progress.percentComplete}%)`,
122
+ "",
123
+ plan.description,
124
+ "",
125
+ "### Steps",
126
+ ];
127
+ for (const step of plan.steps) {
128
+ const statusIcon = {
129
+ pending: "[ ]",
130
+ in_progress: "[~]",
131
+ completed: "[x]",
132
+ failed: "[!]",
133
+ skipped: "[-]",
134
+ modified: "[*]",
135
+ }[step.status];
136
+ lines.push(`${statusIcon} **${step.id}**: ${step.title}`);
137
+ if (step.description)
138
+ lines.push(` ${step.description}`);
139
+ if (step.dependsOn.length > 0)
140
+ lines.push(` Depends on: ${step.dependsOn.join(", ")}`);
141
+ if (step.feedback)
142
+ lines.push(` Feedback: ${step.feedback}`);
143
+ }
144
+ return lines.join("\n");
145
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * GAP-HADAPT-008: Harness Selection Policies.
3
+ *
4
+ * Configurable policies for harness selection: cost-optimized,
5
+ * latency-optimized, capability-first, user-preferred.
6
+ * Policy evaluator scores candidates using selectHarness from capabilityRouter.
7
+ */
8
+ import { type TaskRequirements, type HarnessCandidate, type RoutingResult } from "./capabilityRouter";
9
+ export type PolicyName = "cost-optimized" | "latency-optimized" | "capability-first" | "user-preferred";
10
+ export interface SelectionPolicy {
11
+ name: PolicyName;
12
+ description: string;
13
+ evaluate(candidates: HarnessCandidate[], requirements: Partial<TaskRequirements>, options?: PolicyEvaluatorOptions): PolicyEvaluatorResult;
14
+ }
15
+ export interface PolicyEvaluatorResult {
16
+ selected: HarnessCandidate | null;
17
+ policyName: PolicyName;
18
+ score: number;
19
+ reason: string;
20
+ routingResult: RoutingResult | null;
21
+ }
22
+ export interface PolicyEvaluatorOptions {
23
+ preferredHarness?: string;
24
+ }
25
+ export declare function getDefaultPolicy(): SelectionPolicy;
26
+ export declare function getPolicyByName(name: PolicyName): SelectionPolicy;
27
+ export declare function createPolicyEvaluator(policy: SelectionPolicy): (candidates: HarnessCandidate[], requirements: Partial<TaskRequirements>, options?: PolicyEvaluatorOptions) => PolicyEvaluatorResult;
28
+ export declare function evaluatePolicy(policyName: PolicyName, candidates: HarnessCandidate[], requirements: Partial<TaskRequirements>, options?: PolicyEvaluatorOptions): PolicyEvaluatorResult;
29
+ //# sourceMappingURL=selectionPolicies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectionPolicies.d.ts","sourceRoot":"","sources":["../../src/harness/selectionPolicies.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAO5B,MAAM,MAAM,UAAU,GAClB,gBAAgB,GAChB,mBAAmB,GACnB,kBAAkB,GAClB,gBAAgB,CAAC;AAErB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CACN,UAAU,EAAE,gBAAgB,EAAE,EAC9B,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACvC,OAAO,CAAC,EAAE,sBAAsB,GAC/B,qBAAqB,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAClC,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAkKD,wBAAgB,gBAAgB,IAAI,eAAe,CAElD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAMjE;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,eAAe,GACtB,CACD,UAAU,EAAE,gBAAgB,EAAE,EAC9B,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACvC,OAAO,CAAC,EAAE,sBAAsB,KAC7B,qBAAqB,CAGzB;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,gBAAgB,EAAE,EAC9B,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACvC,OAAO,CAAC,EAAE,sBAAsB,GAC/B,qBAAqB,CAGvB"}
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ /**
3
+ * GAP-HADAPT-008: Harness Selection Policies.
4
+ *
5
+ * Configurable policies for harness selection: cost-optimized,
6
+ * latency-optimized, capability-first, user-preferred.
7
+ * Policy evaluator scores candidates using selectHarness from capabilityRouter.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.getDefaultPolicy = getDefaultPolicy;
11
+ exports.getPolicyByName = getPolicyByName;
12
+ exports.createPolicyEvaluator = createPolicyEvaluator;
13
+ exports.evaluatePolicy = evaluatePolicy;
14
+ const capabilityRouter_1 = require("./capabilityRouter");
15
+ const types_1 = require("./types");
16
+ // ---------------------------------------------------------------------------
17
+ // Policy implementations
18
+ // ---------------------------------------------------------------------------
19
+ const capabilityFirstPolicy = {
20
+ name: "capability-first",
21
+ description: "Select the harness with the highest capability score",
22
+ evaluate(candidates, requirements) {
23
+ const result = (0, capabilityRouter_1.selectHarness)(requirements, candidates);
24
+ if (!result) {
25
+ return { selected: null, policyName: "capability-first", score: 0, reason: "No candidate met threshold", routingResult: null };
26
+ }
27
+ return {
28
+ selected: result.selected,
29
+ policyName: "capability-first",
30
+ score: result.score,
31
+ reason: `Selected ${result.selected.name} with score ${result.score}`,
32
+ routingResult: result,
33
+ };
34
+ },
35
+ };
36
+ const costOptimizedPolicy = {
37
+ name: "cost-optimized",
38
+ description: "Prefer harnesses with fewer capabilities (proxy for lower cost)",
39
+ evaluate(candidates, requirements) {
40
+ const result = (0, capabilityRouter_1.selectHarness)(requirements, candidates);
41
+ if (!result) {
42
+ return { selected: null, policyName: "cost-optimized", score: 0, reason: "No candidate met threshold", routingResult: null };
43
+ }
44
+ // Among eligible candidates (those that passed the threshold), pick the one
45
+ // with the fewest capabilities — a proxy for cost
46
+ const eligible = result.scores
47
+ .filter((s) => !s.disqualified && s.total >= 50)
48
+ .map((s) => s.name);
49
+ const eligibleCandidates = candidates.filter((c) => eligible.includes(c.name));
50
+ if (eligibleCandidates.length === 0) {
51
+ return { selected: null, policyName: "cost-optimized", score: 0, reason: "No eligible candidate", routingResult: result };
52
+ }
53
+ // Sort by fewest capabilities ascending
54
+ const sorted = [...eligibleCandidates].sort((a, b) => a.capabilities.length - b.capabilities.length);
55
+ const pick = sorted[0];
56
+ const pickScore = result.scores.find((s) => s.name === pick.name);
57
+ return {
58
+ selected: pick,
59
+ policyName: "cost-optimized",
60
+ score: pickScore?.total ?? 0,
61
+ reason: `Selected ${pick.name} (fewest capabilities: ${pick.capabilities.length})`,
62
+ routingResult: result,
63
+ };
64
+ },
65
+ };
66
+ const latencyOptimizedPolicy = {
67
+ name: "latency-optimized",
68
+ description: "Prefer harnesses with Programmatic + StopHook for lowest latency",
69
+ evaluate(candidates, requirements) {
70
+ const result = (0, capabilityRouter_1.selectHarness)(requirements, candidates);
71
+ if (!result) {
72
+ return { selected: null, policyName: "latency-optimized", score: 0, reason: "No candidate met threshold", routingResult: null };
73
+ }
74
+ const eligible = result.scores
75
+ .filter((s) => !s.disqualified && s.total >= 50)
76
+ .map((s) => s.name);
77
+ const eligibleCandidates = candidates.filter((c) => eligible.includes(c.name));
78
+ if (eligibleCandidates.length === 0) {
79
+ return { selected: null, policyName: "latency-optimized", score: 0, reason: "No eligible candidate", routingResult: result };
80
+ }
81
+ // Score: +2 for StopHook, +2 for Programmatic, +1 for SessionBinding
82
+ const latencyScore = (c) => {
83
+ let s = 0;
84
+ if (c.capabilities.includes(types_1.HarnessCapability.StopHook))
85
+ s += 2;
86
+ if (c.capabilities.includes(types_1.HarnessCapability.Programmatic))
87
+ s += 2;
88
+ if (c.capabilities.includes(types_1.HarnessCapability.SessionBinding))
89
+ s += 1;
90
+ return s;
91
+ };
92
+ const sorted = [...eligibleCandidates].sort((a, b) => latencyScore(b) - latencyScore(a));
93
+ const pick = sorted[0];
94
+ const pickScore = result.scores.find((s) => s.name === pick.name);
95
+ return {
96
+ selected: pick,
97
+ policyName: "latency-optimized",
98
+ score: pickScore?.total ?? 0,
99
+ reason: `Selected ${pick.name} (latency-optimized: StopHook+Programmatic)`,
100
+ routingResult: result,
101
+ };
102
+ },
103
+ };
104
+ const userPreferredPolicy = {
105
+ name: "user-preferred",
106
+ description: "Select the user-preferred harness if it qualifies, else fall back to capability-first",
107
+ evaluate(candidates, requirements, options) {
108
+ const preferred = options?.preferredHarness;
109
+ if (preferred) {
110
+ // Try routing with the preferred harness hint
111
+ const augmented = {
112
+ ...requirements,
113
+ preferredHarness: preferred,
114
+ };
115
+ const result = (0, capabilityRouter_1.selectHarness)(augmented, candidates);
116
+ if (result && result.selected.name === preferred) {
117
+ return {
118
+ selected: result.selected,
119
+ policyName: "user-preferred",
120
+ score: result.score,
121
+ reason: `Selected user-preferred harness ${preferred}`,
122
+ routingResult: result,
123
+ };
124
+ }
125
+ }
126
+ // Fall back to capability-first
127
+ const fallback = capabilityFirstPolicy.evaluate(candidates, requirements);
128
+ return {
129
+ ...fallback,
130
+ policyName: "user-preferred",
131
+ reason: preferred
132
+ ? `Preferred harness '${preferred}' not available, fell back to ${fallback.selected?.name ?? "none"}`
133
+ : fallback.reason,
134
+ };
135
+ },
136
+ };
137
+ // ---------------------------------------------------------------------------
138
+ // Registry
139
+ // ---------------------------------------------------------------------------
140
+ const POLICIES = {
141
+ "capability-first": capabilityFirstPolicy,
142
+ "cost-optimized": costOptimizedPolicy,
143
+ "latency-optimized": latencyOptimizedPolicy,
144
+ "user-preferred": userPreferredPolicy,
145
+ };
146
+ // ---------------------------------------------------------------------------
147
+ // Public API
148
+ // ---------------------------------------------------------------------------
149
+ function getDefaultPolicy() {
150
+ return POLICIES["capability-first"];
151
+ }
152
+ function getPolicyByName(name) {
153
+ const policy = POLICIES[name];
154
+ if (!policy) {
155
+ throw new TypeError(`Unknown selection policy: ${String(name)}`);
156
+ }
157
+ return policy;
158
+ }
159
+ function createPolicyEvaluator(policy) {
160
+ return (candidates, requirements, options) => policy.evaluate(candidates, requirements, options);
161
+ }
162
+ function evaluatePolicy(policyName, candidates, requirements, options) {
163
+ const policy = getPolicyByName(policyName);
164
+ return policy.evaluate(candidates, requirements, options);
165
+ }
@@ -0,0 +1,266 @@
1
+ /**
2
+ * Harness adapter interface.
3
+ *
4
+ * A "harness" is the host tool that invokes the babysitter SDK (e.g. Claude Code,
5
+ * Cursor, Windsurf). Each harness has its own session lifecycle, env vars, and
6
+ * hook input/output formats. The adapter interface abstracts these differences
7
+ * so the SDK core remains harness-agnostic.
8
+ */
9
+ import type { AskUserQuestionUiContext } from "../interaction";
10
+ import type { PromptContext } from "@a5c-ai/babysitter-sdk";
11
+ /** Capabilities that a harness adapter may support. */
12
+ export declare enum HarnessCapability {
13
+ /** Harness supports programmatic (non-interactive) invocation. */
14
+ Programmatic = "programmatic",
15
+ /** Harness can bind a babysitter run to a host session. */
16
+ SessionBinding = "session-binding",
17
+ /** Harness implements the stop-hook lifecycle event. */
18
+ StopHook = "stop-hook",
19
+ /** Harness exposes an MCP (Model Context Protocol) server. */
20
+ Mcp = "mcp",
21
+ /** Harness can accept a prompt without a TTY (headless mode). */
22
+ HeadlessPrompt = "headless-prompt",
23
+ /** Harness supports concurrent effect execution (GAP-PAR-001). */
24
+ ConcurrentEffects = "concurrent-effects",
25
+ /** Harness supports async/background effects (GAP-PAR-002). */
26
+ BackgroundEffects = "background-effects",
27
+ /** Harness supports multi-harness parallel dispatch (GAP-PAR-003). */
28
+ MultiHarnessDispatch = "multi-harness-dispatch"
29
+ }
30
+ /**
31
+ * Result of probing the local environment for a specific harness CLI.
32
+ *
33
+ * This is the **installed-discovery** result — it answers "is this CLI on
34
+ * PATH?" and "does config exist?". It does NOT report whether we are
35
+ * currently running inside this harness; use `CallerHarnessResult` /
36
+ * `detectCallerHarness()` for that.
37
+ */
38
+ export interface HarnessDiscoveryResult {
39
+ /** Harness identifier (matches HarnessAdapter.name). */
40
+ name: string;
41
+ /** Whether the CLI binary was found on the system. */
42
+ installed: boolean;
43
+ /** Semantic version reported by the CLI, if obtainable. */
44
+ version?: string;
45
+ /** Absolute path to the CLI binary, if resolved. */
46
+ cliPath?: string;
47
+ /** Shell command used to invoke the CLI. */
48
+ cliCommand: string;
49
+ /** Whether harness-specific configuration was found on disk. */
50
+ configFound: boolean;
51
+ /** Capabilities advertised by this harness. */
52
+ capabilities: HarnessCapability[];
53
+ /** Platform identifier (e.g. "win32", "linux", "darwin"). */
54
+ platform: string;
55
+ }
56
+ /** Result of detecting which harness spawned the current process, if any. */
57
+ export interface CallerHarnessResult {
58
+ /** Harness identifier (matches HarnessAdapter.name). */
59
+ name: string;
60
+ /** Environment variable names that matched the active caller. */
61
+ matchedEnvVars: string[];
62
+ /** Capabilities advertised by the detected caller harness. */
63
+ capabilities: HarnessCapability[];
64
+ }
65
+ /** Callback invoked with each raw chunk from stdout or stderr. */
66
+ export type StreamingOutputCallback = (chunk: string) => void;
67
+ /** Callback invoked with each complete line and its source stream. */
68
+ export type StreamingLineCallback = (line: string, source: "stdout" | "stderr") => void;
69
+ /** Options for real-time streaming output capture from harness invocations. */
70
+ export interface StreamingOutputOptions {
71
+ /** Called with each stdout chunk as it arrives. */
72
+ onStdout?: StreamingOutputCallback;
73
+ /** Called with each stderr chunk as it arrives. */
74
+ onStderr?: StreamingOutputCallback;
75
+ /** Called with each complete line (from either stream) as it becomes available. */
76
+ onLine?: StreamingLineCallback;
77
+ }
78
+ /** Options for programmatically invoking a harness CLI. */
79
+ export interface HarnessInvokeOptions {
80
+ /** The prompt to send to the harness. */
81
+ prompt: string;
82
+ /** Working directory for the invocation. */
83
+ workspace?: string;
84
+ /** Model override (harness-specific). */
85
+ model?: string;
86
+ /** Maximum execution time in milliseconds. */
87
+ timeout?: number;
88
+ /** Whether to use RPC/structured-output mode. */
89
+ rpc?: boolean;
90
+ /** Additional environment variables passed to the child process. */
91
+ env?: Record<string, string>;
92
+ /** Real-time streaming output callbacks (GAP-SUBOBS-001). */
93
+ streaming?: StreamingOutputOptions;
94
+ /** AbortSignal to cancel the invocation and kill the child process. */
95
+ signal?: AbortSignal;
96
+ }
97
+ /** Result returned after a harness CLI invocation completes. */
98
+ export interface HarnessInvokeResult {
99
+ /** Whether the invocation completed without error. */
100
+ success: boolean;
101
+ /** Combined stdout/stderr output from the CLI. */
102
+ output: string;
103
+ /** Process exit code. */
104
+ exitCode: number;
105
+ /** Wall-clock duration of the invocation in milliseconds. */
106
+ duration: number;
107
+ /** Name of the harness that was invoked. */
108
+ harness: string;
109
+ /** GAP-PERF-004: Whether output was streamed in real-time. */
110
+ streamed?: boolean;
111
+ /** GAP-PERF-004: Number of streaming chunks emitted. */
112
+ streamChunkCount?: number;
113
+ }
114
+ /** Options for creating a Pi harness session (programmatic API). */
115
+ export interface AgentCoreSessionOptions {
116
+ /** Working directory for the session. */
117
+ workspace?: string;
118
+ /** Model identifier string (e.g. "claude-opus-4-5"). */
119
+ model?: string;
120
+ /** Maximum time in ms to wait for a single prompt to complete. */
121
+ timeout?: number;
122
+ /** Thinking level for the model. */
123
+ thinkingLevel?: "minimal" | "low" | "medium" | "high" | "xhigh";
124
+ /** Built-in tool mode to expose to the model. */
125
+ toolsMode?: "default" | "coding" | "readonly";
126
+ /** Custom tool definitions to register with the session. */
127
+ customTools?: unknown[];
128
+ /** Optional extension-style UI context exposed to custom tools inside the PI loop. */
129
+ uiContext?: AskUserQuestionUiContext;
130
+ /** Replace the discovered system prompt with a custom one. */
131
+ systemPrompt?: string;
132
+ /** Append custom system prompt instructions. */
133
+ appendSystemPrompt?: string[];
134
+ /** Isolate the session from discovered extensions, skills, and AGENTS files. */
135
+ isolated?: boolean;
136
+ /** Use an in-memory session manager instead of persistent session files. */
137
+ ephemeral?: boolean;
138
+ /** Bash tool execution backend. Defaults to native/local PI execution; "secure" opts into the sandbox backend and "auto" falls back to local. */
139
+ bashSandbox?: "auto" | "secure" | "local";
140
+ /** Whether PI session compaction should be enabled for this session. */
141
+ enableCompaction?: boolean;
142
+ /** Global pi agent config directory (default: ~/.pi/agent). */
143
+ agentDir?: string;
144
+ }
145
+ /**
146
+ * Event emitted by a Pi session during prompt execution.
147
+ * Mirrors the AgentSessionEvent union from `@mariozechner/pi-coding-agent`.
148
+ */
149
+ export interface AgentCoreSessionEvent {
150
+ type: string;
151
+ [key: string]: unknown;
152
+ }
153
+ /** Result of sending a prompt through a Pi session. */
154
+ export interface AgentCorePromptResult {
155
+ /** Collected text output from the agent response. */
156
+ output: string;
157
+ /** Wall-clock duration in milliseconds. */
158
+ duration: number;
159
+ /** Whether the prompt completed without error. */
160
+ success: boolean;
161
+ /** Exit code (0 = success, 1 = failure). */
162
+ exitCode: number;
163
+ }
164
+ export interface SessionBindOptions {
165
+ sessionId: string;
166
+ runId: string;
167
+ runDir: string;
168
+ pluginRoot?: string;
169
+ stateDir?: string;
170
+ runsDir?: string;
171
+ maxIterations?: number;
172
+ prompt: string;
173
+ verbose: boolean;
174
+ json: boolean;
175
+ }
176
+ export interface SessionBindResult {
177
+ harness: string;
178
+ sessionId: string;
179
+ stateFile?: string;
180
+ error?: string;
181
+ /** When true, the error is fatal and run:create should exit non-zero. */
182
+ fatal?: boolean;
183
+ }
184
+ export interface HookHandlerArgs {
185
+ pluginRoot?: string;
186
+ stateDir?: string;
187
+ runsDir?: string;
188
+ json: boolean;
189
+ verbose?: boolean;
190
+ }
191
+ export interface HarnessInstallOptions {
192
+ workspace?: string;
193
+ json: boolean;
194
+ dryRun: boolean;
195
+ verbose: boolean;
196
+ }
197
+ export interface HarnessInstallResult {
198
+ harness: string;
199
+ dryRun?: boolean;
200
+ warning?: string;
201
+ summary?: string;
202
+ command?: string;
203
+ output?: string;
204
+ location?: string;
205
+ }
206
+ export interface HarnessAdapter {
207
+ /** Harness identifier (e.g. "claude-code") */
208
+ readonly name: string;
209
+ /** Does this harness appear to be active? (env var detection) */
210
+ isActive(): boolean;
211
+ /** Resolve session ID from CLI args / env vars / env file */
212
+ resolveSessionId(parsed: {
213
+ sessionId?: string;
214
+ }): string | undefined;
215
+ /** Resolve state directory from args / env */
216
+ resolveStateDir(args: {
217
+ stateDir?: string;
218
+ pluginRoot?: string;
219
+ }): string | undefined;
220
+ /** Resolve plugin root from args / env */
221
+ resolvePluginRoot(args: {
222
+ pluginRoot?: string;
223
+ }): string | undefined;
224
+ /**
225
+ * Whether this adapter auto-resolves session IDs from environment variables
226
+ * or other ambient sources. When true, explicitly passing `--session-id`
227
+ * is rejected as a conflict. Defaults to `false` when not implemented.
228
+ */
229
+ autoResolvesSessionId?(): boolean;
230
+ /** Guidance shown when a harness-specific session ID is required but missing. */
231
+ getMissingSessionIdHint?(): string;
232
+ /** Whether this harness truthfully supports a given SDK hook entrypoint. */
233
+ supportsHookType?(hookType: string): boolean;
234
+ /** Message shown when a hook type is requested but unsupported by the harness. */
235
+ getUnsupportedHookMessage?(hookType: string): string;
236
+ /** Bind a run to the caller's session (run:create flow) */
237
+ bindSession(opts: SessionBindOptions): Promise<SessionBindResult>;
238
+ /** Handle the stop hook (decision: approve/block) */
239
+ handleStopHook(args: HookHandlerArgs): Promise<number>;
240
+ /** Handle the session-start hook (env file + state file setup) */
241
+ handleSessionStartHook(args: HookHandlerArgs): Promise<number>;
242
+ /** Find hook dispatcher path (for shell hook execution) */
243
+ findHookDispatcherPath(startCwd: string): string | null;
244
+ /** Check whether the harness CLI binary is installed and reachable. */
245
+ isCliInstalled?(): Promise<boolean>;
246
+ /** Return CLI metadata (command name, version, resolved path). */
247
+ getCliInfo?(): Promise<{
248
+ command: string;
249
+ version?: string;
250
+ path?: string;
251
+ }>;
252
+ /** List capabilities supported by this harness adapter. */
253
+ getCapabilities?(): HarnessCapability[];
254
+ /** Install the harness CLI itself. */
255
+ installHarness?(options: HarnessInstallOptions): Promise<HarnessInstallResult>;
256
+ /** Install or materialize the Babysitter plugin/extension integration for this harness. */
257
+ installPlugin?(options: HarnessInstallOptions): Promise<HarnessInstallResult>;
258
+ /**
259
+ * Return a PromptContext pre-configured for this harness.
260
+ * Centralizes harness-specific prompt configuration in the adapter itself.
261
+ */
262
+ getPromptContext?(opts?: {
263
+ interactive?: boolean | undefined;
264
+ }): PromptContext;
265
+ }
266
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/harness/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ /**
3
+ * Harness adapter interface.
4
+ *
5
+ * A "harness" is the host tool that invokes the babysitter SDK (e.g. Claude Code,
6
+ * Cursor, Windsurf). Each harness has its own session lifecycle, env vars, and
7
+ * hook input/output formats. The adapter interface abstracts these differences
8
+ * so the SDK core remains harness-agnostic.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.HarnessCapability = void 0;
12
+ // ---------------------------------------------------------------------------
13
+ // Harness capability enum
14
+ // ---------------------------------------------------------------------------
15
+ /** Capabilities that a harness adapter may support. */
16
+ var HarnessCapability;
17
+ (function (HarnessCapability) {
18
+ /** Harness supports programmatic (non-interactive) invocation. */
19
+ HarnessCapability["Programmatic"] = "programmatic";
20
+ /** Harness can bind a babysitter run to a host session. */
21
+ HarnessCapability["SessionBinding"] = "session-binding";
22
+ /** Harness implements the stop-hook lifecycle event. */
23
+ HarnessCapability["StopHook"] = "stop-hook";
24
+ /** Harness exposes an MCP (Model Context Protocol) server. */
25
+ HarnessCapability["Mcp"] = "mcp";
26
+ /** Harness can accept a prompt without a TTY (headless mode). */
27
+ HarnessCapability["HeadlessPrompt"] = "headless-prompt";
28
+ /** Harness supports concurrent effect execution (GAP-PAR-001). */
29
+ HarnessCapability["ConcurrentEffects"] = "concurrent-effects";
30
+ /** Harness supports async/background effects (GAP-PAR-002). */
31
+ HarnessCapability["BackgroundEffects"] = "background-effects";
32
+ /** Harness supports multi-harness parallel dispatch (GAP-PAR-003). */
33
+ HarnessCapability["MultiHarnessDispatch"] = "multi-harness-dispatch";
34
+ })(HarnessCapability || (exports.HarnessCapability = HarnessCapability = {}));
@@ -0,0 +1,14 @@
1
+ export * from "./cli/main";
2
+ export * from "./harness";
3
+ export * from "./runtime";
4
+ export * from "./api";
5
+ export * from "./daemon";
6
+ export * from "./interaction";
7
+ export * as anycli from "./anycli";
8
+ export * as cost from "./cost";
9
+ export * as governance from "./governance";
10
+ export * from "./observability";
11
+ export * as session from "./session";
12
+ export * as storage from "./storage";
13
+ export * as tasks from "./tasks";
14
+ //# sourceMappingURL=index.d.ts.map