@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,389 @@
1
+ "use strict";
2
+ /**
3
+ * Pi programmatic API wrapper.
4
+ *
5
+ * Wraps `@mariozechner/pi-coding-agent`'s `createAgentSession()` to expose
6
+ * a persistent `AgentSession` through a babysitter-friendly interface.
7
+ *
8
+ * The session is lazily initialized on first use and reused across prompts.
9
+ * Events are forwarded through the `subscribe()` method.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AgentCoreSessionHandle = void 0;
13
+ exports.createAgentCoreSession = createAgentCoreSession;
14
+ const node_os_1 = require("node:os");
15
+ const node_path_1 = require("node:path");
16
+ const babysitter_sdk_1 = require("@a5c-ai/babysitter-sdk");
17
+ const piSecureSandbox_1 = require("./piSecureSandbox");
18
+ const compaction_1 = require("./piWrapper/compaction");
19
+ const instructionPrompts_1 = require("./piWrapper/instructionPrompts");
20
+ const moduleSupport_1 = require("./piWrapper/moduleSupport");
21
+ const DEFAULT_TIMEOUT_MS = 900_000;
22
+ const DEFAULT_BASH_SANDBOX_MODE = "local";
23
+ const AGENT_END_PROMPT_SETTLE_GRACE_MS = 250;
24
+ const PI_AGENT_DIR_ENV = "PI_CODING_AGENT_DIR";
25
+ const DEFAULT_PI_AGENT_DIR = (0, node_path_1.join)((0, node_os_1.homedir)(), ".pi", "agent");
26
+ const CODING_TOOL_NAMES = ["read", "bash", "edit", "write"];
27
+ const READONLY_TOOL_NAMES = ["read", "grep", "find", "ls"];
28
+ function resolvePiAgentDir(agentDir) {
29
+ const configured = agentDir?.trim() || process.env[PI_AGENT_DIR_ENV]?.trim();
30
+ if (!configured) {
31
+ return DEFAULT_PI_AGENT_DIR;
32
+ }
33
+ if (configured === "~") {
34
+ return (0, node_os_1.homedir)();
35
+ }
36
+ if (configured.startsWith("~/")) {
37
+ return (0, node_path_1.join)((0, node_os_1.homedir)(), configured.slice(2));
38
+ }
39
+ return configured;
40
+ }
41
+ // ---------------------------------------------------------------------------
42
+ // AgentCoreSessionHandle
43
+ // ---------------------------------------------------------------------------
44
+ /**
45
+ * Handle for interacting with the Pi coding agent programmatically.
46
+ *
47
+ * Wraps `AgentSession` from `@mariozechner/pi-coding-agent`. The underlying
48
+ * session is created lazily on first `prompt()` call and reused thereafter.
49
+ */
50
+ class AgentCoreSessionHandle {
51
+ options;
52
+ session = null;
53
+ initPromise = null;
54
+ cleanupTasks = [];
55
+ constructor(options = {}) {
56
+ this.options = options;
57
+ }
58
+ /**
59
+ * Initialize the underlying AgentSession.
60
+ *
61
+ * Called automatically by `prompt()` if the session hasn't been created yet.
62
+ * Safe to call multiple times — subsequent calls are no-ops.
63
+ */
64
+ async initialize() {
65
+ if (this.session)
66
+ return;
67
+ if (this.initPromise) {
68
+ await this.initPromise;
69
+ return;
70
+ }
71
+ this.initPromise = this.doInitialize().catch((err) => {
72
+ this.initPromise = null;
73
+ throw err;
74
+ });
75
+ await this.initPromise;
76
+ }
77
+ /**
78
+ * Send a prompt to the Pi agent and wait for completion.
79
+ *
80
+ * Initializes the session if needed, sends the prompt, waits for the
81
+ * `agent_end` event, and returns collected output.
82
+ */
83
+ async prompt(text, timeout) {
84
+ await this.initialize();
85
+ const session = this.requireSession();
86
+ const effectiveTimeout = timeout ?? this.options.timeout ?? DEFAULT_TIMEOUT_MS;
87
+ const start = Date.now();
88
+ return new Promise((resolve, reject) => {
89
+ let settled = false;
90
+ let timer;
91
+ let agentEndGraceTimer;
92
+ let agentEndResult = null;
93
+ let promptSettled = false;
94
+ const finishWithResult = (result) => {
95
+ if (settled)
96
+ return;
97
+ settled = true;
98
+ if (timer)
99
+ clearTimeout(timer);
100
+ if (agentEndGraceTimer)
101
+ clearTimeout(agentEndGraceTimer);
102
+ resolve(result);
103
+ };
104
+ const finishWithPromptError = (err) => {
105
+ if (settled)
106
+ return;
107
+ settled = true;
108
+ if (timer)
109
+ clearTimeout(timer);
110
+ if (agentEndGraceTimer)
111
+ clearTimeout(agentEndGraceTimer);
112
+ const message = err instanceof Error ? err.message : String(err);
113
+ resolve({
114
+ output: message,
115
+ exitCode: 1,
116
+ duration: Date.now() - start,
117
+ success: false,
118
+ });
119
+ };
120
+ // Set up timeout
121
+ if (effectiveTimeout > 0) {
122
+ timer = setTimeout(() => {
123
+ if (settled)
124
+ return;
125
+ settled = true;
126
+ unsubscribe();
127
+ void session.abort();
128
+ reject(new babysitter_sdk_1.BabysitterRuntimeError("PiTimeoutError", `Pi prompt timed out after ${effectiveTimeout}ms`, { category: babysitter_sdk_1.ErrorCategory.External }));
129
+ }, effectiveTimeout);
130
+ }
131
+ // Subscribe to events to detect completion
132
+ const unsubscribe = session.subscribe((event) => {
133
+ if (settled)
134
+ return;
135
+ if (event.type === "agent_end") {
136
+ const messages = Array.isArray(event.messages)
137
+ ? event.messages
138
+ : undefined;
139
+ unsubscribe();
140
+ const assistantFailure = (0, moduleSupport_1.extractAssistantFailure)(messages);
141
+ const assistantText = session.getLastAssistantText();
142
+ const output = assistantText && assistantText.trim().length > 0
143
+ ? assistantText
144
+ : assistantFailure ?? "";
145
+ agentEndResult = {
146
+ output,
147
+ exitCode: assistantFailure ? 1 : 0,
148
+ duration: Date.now() - start,
149
+ success: !assistantFailure,
150
+ };
151
+ if (promptSettled) {
152
+ finishWithResult(agentEndResult);
153
+ return;
154
+ }
155
+ agentEndGraceTimer = setTimeout(() => {
156
+ if (agentEndResult) {
157
+ finishWithResult(agentEndResult);
158
+ }
159
+ }, AGENT_END_PROMPT_SETTLE_GRACE_MS);
160
+ }
161
+ });
162
+ // Fire the prompt — errors are caught and resolved as failures
163
+ session.prompt(text)
164
+ .then(() => {
165
+ promptSettled = true;
166
+ if (agentEndResult) {
167
+ finishWithResult(agentEndResult);
168
+ }
169
+ })
170
+ .catch((err) => {
171
+ promptSettled = true;
172
+ if (agentEndResult) {
173
+ finishWithResult(agentEndResult);
174
+ return;
175
+ }
176
+ unsubscribe();
177
+ finishWithPromptError(err);
178
+ });
179
+ });
180
+ }
181
+ /**
182
+ * Steer the running agent with an instruction.
183
+ *
184
+ * Steering messages are delivered immediately to the agent while it is
185
+ * processing a prompt.
186
+ */
187
+ async steer(text) {
188
+ const session = this.requireSession();
189
+ await session.steer(text);
190
+ }
191
+ /** Queue a follow-up message for after the current turn completes. */
192
+ async followUp(text) {
193
+ const session = this.requireSession();
194
+ await session.followUp(text);
195
+ }
196
+ /**
197
+ * Subscribe to session events.
198
+ *
199
+ * Returns an unsubscribe function.
200
+ */
201
+ subscribe(listener) {
202
+ const session = this.requireSession();
203
+ return session.subscribe(listener);
204
+ }
205
+ /** Execute a bash command through the agent's sandbox. */
206
+ async executeBash(command, onChunk) {
207
+ await this.initialize();
208
+ const session = this.requireSession();
209
+ const result = await session.executeBash(command, onChunk);
210
+ return {
211
+ output: result.output,
212
+ exitCode: result.exitCode,
213
+ cancelled: result.cancelled,
214
+ };
215
+ }
216
+ /** Abort the current prompt execution. */
217
+ async abort() {
218
+ if (this.session) {
219
+ await this.session.abort();
220
+ }
221
+ }
222
+ /** Dispose of the session and release resources. */
223
+ dispose() {
224
+ if (this.session) {
225
+ const session = this.session;
226
+ if (session.isStreaming) {
227
+ void session.abort().catch(() => undefined);
228
+ }
229
+ session.dispose();
230
+ this.session = null;
231
+ this.initPromise = null;
232
+ }
233
+ while (this.cleanupTasks.length > 0) {
234
+ const cleanup = this.cleanupTasks.pop();
235
+ if (cleanup) {
236
+ void cleanup();
237
+ }
238
+ }
239
+ }
240
+ /** The underlying pi session ID, if initialized. */
241
+ get sessionId() {
242
+ return this.session?.sessionId;
243
+ }
244
+ /** Whether the session is currently streaming a response. */
245
+ get isStreaming() {
246
+ return this.session?.isStreaming ?? false;
247
+ }
248
+ /** Whether the session has been initialized. */
249
+ get isInitialized() {
250
+ return this.session !== null;
251
+ }
252
+ // ---------------------------------------------------------------------------
253
+ // Internal helpers
254
+ // ---------------------------------------------------------------------------
255
+ async cleanupPendingTasks() {
256
+ while (this.cleanupTasks.length > 0) {
257
+ const cleanup = this.cleanupTasks.pop();
258
+ if (cleanup) {
259
+ await cleanup();
260
+ }
261
+ }
262
+ }
263
+ async doInitialize() {
264
+ const mod = await (0, moduleSupport_1.loadPiModule)();
265
+ // Bridge common Azure env var aliases that pi-coding-agent doesn't know
266
+ // about. Pi expects AZURE_OPENAI_RESOURCE_NAME; the user's profile may
267
+ // set AZURE_OPENAI_PROJECT_NAME instead.
268
+ (0, moduleSupport_1.configureAzureOpenAiEnvDefaults)(typeof this.options.model === "string" ? this.options.model : undefined);
269
+ const createOpts = {};
270
+ const cwd = this.options.workspace ?? process.cwd();
271
+ const agentDir = resolvePiAgentDir(this.options.agentDir);
272
+ const compressionConfig = (0, compaction_1.loadCompressionConfigSafe)(cwd);
273
+ const compactionEnabled = this.options.enableCompaction ??
274
+ Boolean(compressionConfig?.enabled && compressionConfig.layers.sdkContextHook.enabled);
275
+ const compactionSettings = (0, compaction_1.buildCompactionSettings)(compactionEnabled);
276
+ createOpts.cwd = cwd;
277
+ createOpts.agentDir = agentDir;
278
+ if (this.options.thinkingLevel)
279
+ createOpts.thinkingLevel = this.options.thinkingLevel;
280
+ const customTools = [...(this.options.customTools ?? [])];
281
+ if (this.options.ephemeral) {
282
+ createOpts.sessionManager = mod.SessionManager.inMemory();
283
+ }
284
+ const secureBashBackend = this.options.toolsMode === "coding" || this.options.toolsMode === "readonly"
285
+ ? await (0, piSecureSandbox_1.createSecureBashBackend)({
286
+ workspace: cwd,
287
+ mode: this.options.bashSandbox ?? DEFAULT_BASH_SANDBOX_MODE,
288
+ })
289
+ : null;
290
+ if (secureBashBackend) {
291
+ this.cleanupTasks.push(() => secureBashBackend.dispose());
292
+ }
293
+ if (this.options.toolsMode === "coding") {
294
+ createOpts.tools = [...CODING_TOOL_NAMES];
295
+ }
296
+ else if (this.options.toolsMode === "readonly") {
297
+ createOpts.tools = [...READONLY_TOOL_NAMES];
298
+ }
299
+ if (secureBashBackend && typeof mod.createBashToolDefinition === "function") {
300
+ customTools.unshift(mod.createBashToolDefinition(cwd, {
301
+ operations: secureBashBackend.operations,
302
+ }));
303
+ }
304
+ if (customTools.length > 0) {
305
+ createOpts.customTools = customTools;
306
+ }
307
+ const appendedSystemPrompt = [
308
+ ...(0, instructionPrompts_1.discoverRepoInstructionPrompts)(cwd),
309
+ ...(this.options.appendSystemPrompt ?? []),
310
+ ...(secureBashBackend ? [secureBashBackend.promptNote] : []),
311
+ ];
312
+ if (this.options.systemPrompt ||
313
+ appendedSystemPrompt.length > 0 ||
314
+ this.options.isolated ||
315
+ compactionEnabled) {
316
+ const settingsManager = mod.SettingsManager.inMemory({
317
+ quietStartup: true,
318
+ compaction: compactionSettings.compaction,
319
+ branchSummary: compactionSettings.branchSummary,
320
+ });
321
+ createOpts.settingsManager = settingsManager;
322
+ if (this.options.systemPrompt ||
323
+ appendedSystemPrompt.length > 0 ||
324
+ this.options.isolated) {
325
+ const resourceLoader = new mod.DefaultResourceLoader({
326
+ cwd,
327
+ agentDir,
328
+ settingsManager,
329
+ noExtensions: this.options.isolated === true,
330
+ noSkills: this.options.isolated === true,
331
+ noPromptTemplates: this.options.isolated === true,
332
+ noThemes: this.options.isolated === true,
333
+ agentsFilesOverride: this.options.isolated === true
334
+ ? () => ({ agentsFiles: [] })
335
+ : undefined,
336
+ systemPromptOverride: this.options.systemPrompt
337
+ ? () => this.options.systemPrompt
338
+ : undefined,
339
+ appendSystemPromptOverride: appendedSystemPrompt.length > 0
340
+ ? (base) => [...base, ...appendedSystemPrompt]
341
+ : undefined,
342
+ });
343
+ await resourceLoader.reload();
344
+ createOpts.resourceLoader = resourceLoader;
345
+ }
346
+ }
347
+ // Resolve model string to a model object from pi's ModelRegistry.
348
+ // The `createAgentSession` API expects a model object (with provider,
349
+ // api, baseUrl, etc.), not a plain string. We accept formats:
350
+ // "provider:modelId" e.g. "azure-openai-responses:gpt-4.1"
351
+ // "modelId" e.g. "gpt-4.1" (searches all providers)
352
+ if (typeof this.options.model === "string") {
353
+ const resolved = await (0, moduleSupport_1.resolvePiModel)(mod, this.options.model);
354
+ if (resolved) {
355
+ createOpts.model = resolved;
356
+ }
357
+ else {
358
+ await this.cleanupPendingTasks();
359
+ throw new babysitter_sdk_1.BabysitterRuntimeError("PiModelResolutionFailed", (0, moduleSupport_1.describePiModelResolutionFailure)(this.options.model), { category: babysitter_sdk_1.ErrorCategory.Configuration });
360
+ }
361
+ }
362
+ try {
363
+ const { session } = await mod.createAgentSession(createOpts);
364
+ if (this.options.uiContext && typeof session.bindExtensions === "function") {
365
+ await session.bindExtensions({ uiContext: this.options.uiContext });
366
+ }
367
+ this.session = session;
368
+ }
369
+ catch (error) {
370
+ await this.cleanupPendingTasks();
371
+ throw error;
372
+ }
373
+ }
374
+ requireSession() {
375
+ if (!this.session) {
376
+ throw new babysitter_sdk_1.BabysitterRuntimeError("PiSessionNotInitialized", "Pi session has not been initialized — call initialize() or prompt() first", { category: babysitter_sdk_1.ErrorCategory.Runtime });
377
+ }
378
+ return this.session;
379
+ }
380
+ }
381
+ exports.AgentCoreSessionHandle = AgentCoreSessionHandle;
382
+ /**
383
+ * Create a new Pi session handle.
384
+ *
385
+ * The underlying `AgentSession` is created lazily on first use.
386
+ */
387
+ function createAgentCoreSession(options) {
388
+ return new AgentCoreSessionHandle(options);
389
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=piWrapper.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"piWrapper.test.d.ts","sourceRoot":"","sources":["../../src/harness/piWrapper.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const node_os_1 = require("node:os");
37
+ const node_path_1 = require("node:path");
38
+ const vitest_1 = require("vitest");
39
+ const mockCreateSecureBashBackend = vitest_1.vi.fn(() => Promise.resolve(null));
40
+ const mockLoadCompressionConfigSafe = vitest_1.vi.fn(() => null);
41
+ const mockBuildCompactionSettings = vitest_1.vi.fn(() => ({
42
+ compaction: {},
43
+ branchSummary: {},
44
+ }));
45
+ const mockDiscoverRepoInstructionPrompts = vitest_1.vi.fn(() => []);
46
+ const mockConfigureAzureOpenAiEnvDefaults = vitest_1.vi.fn();
47
+ const mockDescribePiModelResolutionFailure = vitest_1.vi.fn((model) => `Explicit model "${model}" could not be resolved.`);
48
+ const mockResolvePiModel = vitest_1.vi.fn(() => Promise.resolve(undefined));
49
+ const mockLoadPiModule = vitest_1.vi.fn();
50
+ let defaultResourceLoaderOptions;
51
+ let createAgentSessionOptions;
52
+ const mockCreateBashToolDefinition = vitest_1.vi.fn((cwd, options) => ({
53
+ name: "bash",
54
+ cwd,
55
+ options,
56
+ }));
57
+ vitest_1.vi.mock("./piSecureSandbox", () => ({
58
+ createSecureBashBackend: mockCreateSecureBashBackend,
59
+ }));
60
+ vitest_1.vi.mock("./piWrapper/compaction", () => ({
61
+ loadCompressionConfigSafe: mockLoadCompressionConfigSafe,
62
+ buildCompactionSettings: mockBuildCompactionSettings,
63
+ }));
64
+ vitest_1.vi.mock("./piWrapper/instructionPrompts", () => ({
65
+ discoverRepoInstructionPrompts: mockDiscoverRepoInstructionPrompts,
66
+ }));
67
+ vitest_1.vi.mock("./piWrapper/moduleSupport", () => ({
68
+ configureAzureOpenAiEnvDefaults: mockConfigureAzureOpenAiEnvDefaults,
69
+ describePiModelResolutionFailure: mockDescribePiModelResolutionFailure,
70
+ extractAssistantFailure: vitest_1.vi.fn(() => undefined),
71
+ loadPiModule: mockLoadPiModule,
72
+ resolvePiModel: mockResolvePiModel,
73
+ }));
74
+ (0, vitest_1.describe)("AgentCoreSessionHandle", () => {
75
+ (0, vitest_1.beforeEach)(() => {
76
+ defaultResourceLoaderOptions = undefined;
77
+ createAgentSessionOptions = undefined;
78
+ delete process.env.PI_CODING_AGENT_DIR;
79
+ vitest_1.vi.clearAllMocks();
80
+ mockLoadPiModule.mockResolvedValue({
81
+ createAgentSession: vitest_1.vi.fn((options) => {
82
+ createAgentSessionOptions = options;
83
+ return Promise.resolve({
84
+ session: {
85
+ prompt: vitest_1.vi.fn(() => Promise.resolve(undefined)),
86
+ steer: vitest_1.vi.fn(() => Promise.resolve(undefined)),
87
+ followUp: vitest_1.vi.fn(() => Promise.resolve(undefined)),
88
+ subscribe: vitest_1.vi.fn(() => () => { }),
89
+ executeBash: vitest_1.vi.fn(() => Promise.resolve({
90
+ output: "",
91
+ exitCode: 0,
92
+ cancelled: false,
93
+ truncated: false,
94
+ })),
95
+ abort: vitest_1.vi.fn(() => Promise.resolve(undefined)),
96
+ dispose: vitest_1.vi.fn(),
97
+ getLastAssistantText: vitest_1.vi.fn(() => ""),
98
+ get sessionId() {
99
+ return "session-1";
100
+ },
101
+ get isStreaming() {
102
+ return false;
103
+ },
104
+ get messages() {
105
+ return [];
106
+ },
107
+ },
108
+ });
109
+ }),
110
+ DefaultResourceLoader: class {
111
+ constructor(options) {
112
+ defaultResourceLoaderOptions = options;
113
+ }
114
+ async reload() { }
115
+ },
116
+ AuthStorage: {
117
+ create: vitest_1.vi.fn(() => ({})),
118
+ },
119
+ ModelRegistry: class {
120
+ find() {
121
+ return undefined;
122
+ }
123
+ getAll() {
124
+ return [];
125
+ }
126
+ },
127
+ SessionManager: {
128
+ inMemory: vitest_1.vi.fn(() => ({ kind: "memory-session-manager" })),
129
+ },
130
+ SettingsManager: {
131
+ inMemory: vitest_1.vi.fn(() => ({ kind: "memory-settings-manager" })),
132
+ },
133
+ createBashToolDefinition: mockCreateBashToolDefinition,
134
+ createCodingTools: vitest_1.vi.fn(() => []),
135
+ createReadOnlyTools: vitest_1.vi.fn(() => []),
136
+ codingTools: [],
137
+ readOnlyTools: [],
138
+ });
139
+ });
140
+ (0, vitest_1.it)("defaults agentDir for resource loading when none is provided", async () => {
141
+ const { AgentCoreSessionHandle } = await Promise.resolve().then(() => __importStar(require("./piWrapper")));
142
+ const session = new AgentCoreSessionHandle({
143
+ workspace: process.cwd(),
144
+ toolsMode: "coding",
145
+ isolated: true,
146
+ ephemeral: true,
147
+ });
148
+ await session.initialize();
149
+ const expectedAgentDir = (0, node_path_1.join)((0, node_os_1.homedir)(), ".pi", "agent");
150
+ (0, vitest_1.expect)(defaultResourceLoaderOptions).toMatchObject({
151
+ agentDir: expectedAgentDir,
152
+ cwd: process.cwd(),
153
+ });
154
+ (0, vitest_1.expect)(createAgentSessionOptions).toMatchObject({
155
+ agentDir: expectedAgentDir,
156
+ cwd: process.cwd(),
157
+ });
158
+ });
159
+ (0, vitest_1.it)("passes tool names instead of tool objects and injects the secure bash override through customTools", async () => {
160
+ mockCreateSecureBashBackend.mockResolvedValueOnce({
161
+ operations: { kind: "secure-bash-ops" },
162
+ promptNote: "secure bash",
163
+ dispose: vitest_1.vi.fn(),
164
+ });
165
+ const { AgentCoreSessionHandle } = await Promise.resolve().then(() => __importStar(require("./piWrapper")));
166
+ const session = new AgentCoreSessionHandle({
167
+ workspace: process.cwd(),
168
+ toolsMode: "coding",
169
+ customTools: [{ name: "babysitter_run_iterate" }],
170
+ });
171
+ await session.initialize();
172
+ (0, vitest_1.expect)(createAgentSessionOptions?.tools).toEqual(["read", "bash", "edit", "write"]);
173
+ (0, vitest_1.expect)(mockCreateBashToolDefinition).toHaveBeenCalledWith(process.cwd(), vitest_1.expect.objectContaining({
174
+ operations: { kind: "secure-bash-ops" },
175
+ }));
176
+ (0, vitest_1.expect)(createAgentSessionOptions?.customTools).toEqual([
177
+ vitest_1.expect.objectContaining({ name: "bash" }),
178
+ { name: "babysitter_run_iterate" },
179
+ ]);
180
+ });
181
+ (0, vitest_1.it)("fails fast when an explicit model cannot be resolved", async () => {
182
+ const { AgentCoreSessionHandle } = await Promise.resolve().then(() => __importStar(require("./piWrapper")));
183
+ const session = new AgentCoreSessionHandle({
184
+ workspace: process.cwd(),
185
+ model: "gemini-3.1-pro-preview",
186
+ });
187
+ await (0, vitest_1.expect)(session.initialize()).rejects.toThrow('Explicit model "gemini-3.1-pro-preview" could not be resolved.');
188
+ (0, vitest_1.expect)(mockConfigureAzureOpenAiEnvDefaults).toHaveBeenCalledWith("gemini-3.1-pro-preview");
189
+ (0, vitest_1.expect)(mockResolvePiModel).toHaveBeenCalled();
190
+ (0, vitest_1.expect)(mockDescribePiModelResolutionFailure).toHaveBeenCalledWith("gemini-3.1-pro-preview");
191
+ (0, vitest_1.expect)(createAgentSessionOptions).toBeUndefined();
192
+ });
193
+ });
@@ -0,0 +1,68 @@
1
+ /**
2
+ * GAP-USER-012: Plan Mode with Verification
3
+ *
4
+ * Interactive plan-verify-execute loop. Generates structured plans,
5
+ * presents for approval, executes with per-step verification,
6
+ * and allows plan modification mid-execution.
7
+ */
8
+ /** A single step in an execution plan. */
9
+ export interface PlanStep {
10
+ /** Unique step identifier. */
11
+ id: string;
12
+ /** Human-readable title. */
13
+ title: string;
14
+ /** Description of what this step does. */
15
+ description: string;
16
+ /** Step status. */
17
+ status: PlanStepStatus;
18
+ /** Dependencies (IDs of steps that must complete first). */
19
+ dependsOn: string[];
20
+ /** Verification criteria for this step. */
21
+ verificationCriteria?: string;
22
+ /** Task ID if this step was dispatched as an effect. */
23
+ effectId?: string;
24
+ /** Timestamp of completion. */
25
+ completedAt?: string;
26
+ /** Feedback received during verification. */
27
+ feedback?: string;
28
+ }
29
+ export type PlanStepStatus = "pending" | "in_progress" | "completed" | "failed" | "skipped" | "modified";
30
+ /** An execution plan. */
31
+ export interface ExecutionPlan {
32
+ /** Plan ID. */
33
+ id: string;
34
+ /** Plan title. */
35
+ title: string;
36
+ /** Overall goal/description. */
37
+ description: string;
38
+ /** Ordered steps. */
39
+ steps: PlanStep[];
40
+ /** Plan status. */
41
+ status: PlanStatus;
42
+ /** Creation timestamp. */
43
+ createdAt: string;
44
+ /** Last update timestamp. */
45
+ updatedAt: string;
46
+ }
47
+ export type PlanStatus = "draft" | "approved" | "executing" | "completed" | "failed" | "modified";
48
+ /** Create a new execution plan. */
49
+ export declare function createPlan(id: string, title: string, description: string, steps: Array<Omit<PlanStep, "status">>): ExecutionPlan;
50
+ /** Update a step's status. */
51
+ export declare function updateStepStatus(plan: ExecutionPlan, stepId: string, status: PlanStepStatus, feedback?: string): ExecutionPlan;
52
+ /** Insert a new step into the plan at a given position. */
53
+ export declare function insertStep(plan: ExecutionPlan, step: Omit<PlanStep, "status">, afterStepId?: string): ExecutionPlan;
54
+ /** Remove a step from the plan. Also removes it from other steps' dependsOn lists. */
55
+ export declare function removeStep(plan: ExecutionPlan, stepId: string): ExecutionPlan;
56
+ /** Get the next executable step (all dependencies satisfied). */
57
+ export declare function getNextStep(plan: ExecutionPlan): PlanStep | undefined;
58
+ /** Get plan progress summary. */
59
+ export declare function getPlanProgress(plan: ExecutionPlan): {
60
+ total: number;
61
+ completed: number;
62
+ failed: number;
63
+ pending: number;
64
+ percentComplete: number;
65
+ };
66
+ /** Format plan for display. */
67
+ export declare function formatPlanForDisplay(plan: ExecutionPlan): string;
68
+ //# sourceMappingURL=planMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planMode.d.ts","sourceRoot":"","sources":["../../src/harness/planMode.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,0CAA0C;AAC1C,MAAM,WAAW,QAAQ;IACvB,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,4DAA4D;IAC5D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,2CAA2C;IAC3C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAEzG,yBAAyB;AACzB,MAAM,WAAW,aAAa;IAC5B,eAAe;IACf,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,mBAAmB;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAMlG,mCAAmC;AACnC,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,GACrC,aAAa,CAWf;AAED,8BAA8B;AAC9B,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,cAAc,EACtB,QAAQ,CAAC,EAAE,MAAM,GAChB,aAAa,CAuBf;AAED,2DAA2D;AAC3D,wBAAgB,UAAU,CACxB,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAC9B,WAAW,CAAC,EAAE,MAAM,GACnB,aAAa,CAiBf;AAED,sFAAsF;AACtF,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAc7E;AAED,iEAAiE;AACjE,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,QAAQ,GAAG,SAAS,CAWrE;AAED,iCAAiC;AACjC,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB,CAYA;AAED,+BAA+B;AAC/B,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CA2BhE"}