@caupulican/pi-adaptative 0.81.40 → 0.81.42

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 (599) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.d.ts.map +1 -1
  3. package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.js +1 -0
  4. package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.js.map +1 -1
  5. package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.ts +1 -0
  6. package/dist/bundled-resources/runtimes/pi-shell-engine/commands/text.py +5 -1
  7. package/dist/bundled-resources/runtimes/pi-shell-engine/context.py +3 -3
  8. package/dist/bundled-resources/runtimes/pi-shell-engine/errors.py +8 -0
  9. package/dist/bundled-resources/runtimes/pi-shell-engine/exec.py +26 -3
  10. package/dist/bundled-resources/runtimes/pi-shell-engine/expand.py +3 -0
  11. package/dist/bundled-resources/runtimes/pi-shell-engine/main.py +4 -1
  12. package/dist/bundled-resources/runtimes/pi-shell-engine/state.py +2 -1
  13. package/dist/bundled-resources/runtimes/pi-shell-engine/tokens.py +2 -0
  14. package/dist/cli/args.d.ts +2 -0
  15. package/dist/cli/args.d.ts.map +1 -1
  16. package/dist/cli/args.js +22 -1
  17. package/dist/cli/args.js.map +1 -1
  18. package/dist/core/agent-paths.d.ts +38 -0
  19. package/dist/core/agent-paths.d.ts.map +1 -1
  20. package/dist/core/agent-paths.js +77 -0
  21. package/dist/core/agent-paths.js.map +1 -1
  22. package/dist/core/agent-session-contracts.d.ts +311 -0
  23. package/dist/core/agent-session-contracts.d.ts.map +1 -0
  24. package/dist/core/agent-session-contracts.js +26 -0
  25. package/dist/core/agent-session-contracts.js.map +1 -0
  26. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  27. package/dist/core/agent-session-runtime.js +3 -0
  28. package/dist/core/agent-session-runtime.js.map +1 -1
  29. package/dist/core/agent-session.d.ts +26 -405
  30. package/dist/core/agent-session.d.ts.map +1 -1
  31. package/dist/core/agent-session.js +90 -316
  32. package/dist/core/agent-session.js.map +1 -1
  33. package/dist/core/auth-storage.d.ts.map +1 -1
  34. package/dist/core/auth-storage.js +3 -1
  35. package/dist/core/auth-storage.js.map +1 -1
  36. package/dist/core/autonomy/contracts.d.ts +2 -0
  37. package/dist/core/autonomy/contracts.d.ts.map +1 -1
  38. package/dist/core/autonomy/contracts.js.map +1 -1
  39. package/dist/core/autonomy/envelope-enforcement.d.ts.map +1 -1
  40. package/dist/core/autonomy/envelope-enforcement.js +4 -9
  41. package/dist/core/autonomy/envelope-enforcement.js.map +1 -1
  42. package/dist/core/autonomy/lane-tool-surface.d.ts +3 -1
  43. package/dist/core/autonomy/lane-tool-surface.d.ts.map +1 -1
  44. package/dist/core/autonomy/lane-tool-surface.js +19 -5
  45. package/dist/core/autonomy/lane-tool-surface.js.map +1 -1
  46. package/dist/core/autonomy/path-scope.d.ts +14 -0
  47. package/dist/core/autonomy/path-scope.d.ts.map +1 -1
  48. package/dist/core/autonomy/path-scope.js +37 -6
  49. package/dist/core/autonomy/path-scope.js.map +1 -1
  50. package/dist/core/background-lane-controller.d.ts +30 -2
  51. package/dist/core/background-lane-controller.d.ts.map +1 -1
  52. package/dist/core/background-lane-controller.js +33 -1
  53. package/dist/core/background-lane-controller.js.map +1 -1
  54. package/dist/core/bedrock-sso-login.d.ts +16 -0
  55. package/dist/core/bedrock-sso-login.d.ts.map +1 -0
  56. package/dist/core/bedrock-sso-login.js +98 -0
  57. package/dist/core/bedrock-sso-login.js.map +1 -0
  58. package/dist/core/compaction-controller.d.ts.map +1 -1
  59. package/dist/core/compaction-controller.js +1 -1
  60. package/dist/core/compaction-controller.js.map +1 -1
  61. package/dist/core/compaction-support.d.ts +3 -8
  62. package/dist/core/compaction-support.d.ts.map +1 -1
  63. package/dist/core/compaction-support.js +3 -3
  64. package/dist/core/compaction-support.js.map +1 -1
  65. package/dist/core/context-pipeline.d.ts +1 -1
  66. package/dist/core/context-pipeline.d.ts.map +1 -1
  67. package/dist/core/context-pipeline.js +7 -33
  68. package/dist/core/context-pipeline.js.map +1 -1
  69. package/dist/core/cost/cost-summary.d.ts.map +1 -1
  70. package/dist/core/cost/cost-summary.js +5 -3
  71. package/dist/core/cost/cost-summary.js.map +1 -1
  72. package/dist/core/cost/daily-usage.d.ts.map +1 -1
  73. package/dist/core/cost/daily-usage.js +4 -5
  74. package/dist/core/cost/daily-usage.js.map +1 -1
  75. package/dist/core/default-tool-surface.d.ts.map +1 -1
  76. package/dist/core/default-tool-surface.js +1 -0
  77. package/dist/core/default-tool-surface.js.map +1 -1
  78. package/dist/core/delegation/managed-lane-controller.d.ts +11 -1
  79. package/dist/core/delegation/managed-lane-controller.d.ts.map +1 -1
  80. package/dist/core/delegation/managed-lane-controller.js +84 -41
  81. package/dist/core/delegation/managed-lane-controller.js.map +1 -1
  82. package/dist/core/delegation/session-worker-claim.d.ts.map +1 -1
  83. package/dist/core/delegation/session-worker-claim.js +4 -3
  84. package/dist/core/delegation/session-worker-claim.js.map +1 -1
  85. package/dist/core/delegation/worker-action-journal.d.ts +73 -0
  86. package/dist/core/delegation/worker-action-journal.d.ts.map +1 -0
  87. package/dist/core/delegation/worker-action-journal.js +297 -0
  88. package/dist/core/delegation/worker-action-journal.js.map +1 -0
  89. package/dist/core/delegation/worker-actions.d.ts +36 -1
  90. package/dist/core/delegation/worker-actions.d.ts.map +1 -1
  91. package/dist/core/delegation/worker-actions.js +171 -46
  92. package/dist/core/delegation/worker-actions.js.map +1 -1
  93. package/dist/core/delegation/worker-agent-control-coordinator.d.ts +75 -0
  94. package/dist/core/delegation/worker-agent-control-coordinator.d.ts.map +1 -0
  95. package/dist/core/delegation/worker-agent-control-coordinator.js +218 -0
  96. package/dist/core/delegation/worker-agent-control-coordinator.js.map +1 -0
  97. package/dist/core/delegation/worker-agent-control.d.ts +66 -0
  98. package/dist/core/delegation/worker-agent-control.d.ts.map +1 -0
  99. package/dist/core/delegation/worker-agent-control.js +163 -0
  100. package/dist/core/delegation/worker-agent-control.js.map +1 -0
  101. package/dist/core/delegation/worker-attempt-executor.d.ts +80 -0
  102. package/dist/core/delegation/worker-attempt-executor.d.ts.map +1 -0
  103. package/dist/core/delegation/worker-attempt-executor.js +343 -0
  104. package/dist/core/delegation/worker-attempt-executor.js.map +1 -0
  105. package/dist/core/delegation/worker-claim.d.ts +30 -0
  106. package/dist/core/delegation/worker-claim.d.ts.map +1 -1
  107. package/dist/core/delegation/worker-claim.js +205 -53
  108. package/dist/core/delegation/worker-claim.js.map +1 -1
  109. package/dist/core/delegation/worker-conversation-store.d.ts +116 -0
  110. package/dist/core/delegation/worker-conversation-store.d.ts.map +1 -0
  111. package/dist/core/delegation/worker-conversation-store.js +442 -0
  112. package/dist/core/delegation/worker-conversation-store.js.map +1 -0
  113. package/dist/core/delegation/worker-delegation-controller.d.ts +21 -5
  114. package/dist/core/delegation/worker-delegation-controller.d.ts.map +1 -1
  115. package/dist/core/delegation/worker-delegation-controller.js +386 -251
  116. package/dist/core/delegation/worker-delegation-controller.js.map +1 -1
  117. package/dist/core/delegation/worker-delegation-request.d.ts +14 -0
  118. package/dist/core/delegation/worker-delegation-request.d.ts.map +1 -1
  119. package/dist/core/delegation/worker-delegation-request.js.map +1 -1
  120. package/dist/core/delegation/worker-dispatch-scheduler.d.ts +4 -2
  121. package/dist/core/delegation/worker-dispatch-scheduler.d.ts.map +1 -1
  122. package/dist/core/delegation/worker-dispatch-scheduler.js +16 -6
  123. package/dist/core/delegation/worker-dispatch-scheduler.js.map +1 -1
  124. package/dist/core/delegation/worker-execution-policy.d.ts +2 -1
  125. package/dist/core/delegation/worker-execution-policy.d.ts.map +1 -1
  126. package/dist/core/delegation/worker-execution-policy.js +5 -7
  127. package/dist/core/delegation/worker-execution-policy.js.map +1 -1
  128. package/dist/core/delegation/worker-lifecycle.d.ts +44 -1
  129. package/dist/core/delegation/worker-lifecycle.d.ts.map +1 -1
  130. package/dist/core/delegation/worker-lifecycle.js +120 -0
  131. package/dist/core/delegation/worker-lifecycle.js.map +1 -1
  132. package/dist/core/delegation/worker-process-owner.d.ts +18 -0
  133. package/dist/core/delegation/worker-process-owner.d.ts.map +1 -0
  134. package/dist/core/delegation/worker-process-owner.js +54 -0
  135. package/dist/core/delegation/worker-process-owner.js.map +1 -0
  136. package/dist/core/delegation/worker-profile-resolver.d.ts +5 -1
  137. package/dist/core/delegation/worker-profile-resolver.d.ts.map +1 -1
  138. package/dist/core/delegation/worker-profile-resolver.js +8 -0
  139. package/dist/core/delegation/worker-profile-resolver.js.map +1 -1
  140. package/dist/core/delegation/worker-recovery-coordinator.d.ts +54 -0
  141. package/dist/core/delegation/worker-recovery-coordinator.d.ts.map +1 -0
  142. package/dist/core/delegation/worker-recovery-coordinator.js +181 -0
  143. package/dist/core/delegation/worker-recovery-coordinator.js.map +1 -0
  144. package/dist/core/delegation/worker-resource-catalog.d.ts +32 -0
  145. package/dist/core/delegation/worker-resource-catalog.d.ts.map +1 -0
  146. package/dist/core/delegation/worker-resource-catalog.js +116 -0
  147. package/dist/core/delegation/worker-resource-catalog.js.map +1 -0
  148. package/dist/core/delegation/worker-resource-materializer.d.ts +47 -0
  149. package/dist/core/delegation/worker-resource-materializer.d.ts.map +1 -0
  150. package/dist/core/delegation/worker-resource-materializer.js +137 -0
  151. package/dist/core/delegation/worker-resource-materializer.js.map +1 -0
  152. package/dist/core/delegation/worker-runner.d.ts +3 -1
  153. package/dist/core/delegation/worker-runner.d.ts.map +1 -1
  154. package/dist/core/delegation/worker-runner.js +189 -54
  155. package/dist/core/delegation/worker-runner.js.map +1 -1
  156. package/dist/core/delegation/worker-terminal-finalizer.d.ts +23 -0
  157. package/dist/core/delegation/worker-terminal-finalizer.d.ts.map +1 -0
  158. package/dist/core/delegation/worker-terminal-finalizer.js +12 -0
  159. package/dist/core/delegation/worker-terminal-finalizer.js.map +1 -0
  160. package/dist/core/delegation/worker-write-reservation-coordinator.d.ts +38 -0
  161. package/dist/core/delegation/worker-write-reservation-coordinator.d.ts.map +1 -0
  162. package/dist/core/delegation/worker-write-reservation-coordinator.js +107 -0
  163. package/dist/core/delegation/worker-write-reservation-coordinator.js.map +1 -0
  164. package/dist/core/delegation/worker-write-reservation.d.ts +90 -0
  165. package/dist/core/delegation/worker-write-reservation.d.ts.map +1 -0
  166. package/dist/core/delegation/worker-write-reservation.js +348 -0
  167. package/dist/core/delegation/worker-write-reservation.js.map +1 -0
  168. package/dist/core/extension-import-authority.d.ts +6 -0
  169. package/dist/core/extension-import-authority.d.ts.map +1 -0
  170. package/dist/core/extension-import-authority.js +10 -0
  171. package/dist/core/extension-import-authority.js.map +1 -0
  172. package/dist/core/extensions/loader.d.ts.map +1 -1
  173. package/dist/core/extensions/loader.js +2 -3
  174. package/dist/core/extensions/loader.js.map +1 -1
  175. package/dist/core/extensions/runner.d.ts +3 -0
  176. package/dist/core/extensions/runner.d.ts.map +1 -1
  177. package/dist/core/extensions/runner.js +14 -5
  178. package/dist/core/extensions/runner.js.map +1 -1
  179. package/dist/core/extensions/stale-context.d.ts +2 -0
  180. package/dist/core/extensions/stale-context.d.ts.map +1 -0
  181. package/dist/core/extensions/stale-context.js +2 -0
  182. package/dist/core/extensions/stale-context.js.map +1 -0
  183. package/dist/core/extensions/types.d.ts +8 -0
  184. package/dist/core/extensions/types.d.ts.map +1 -1
  185. package/dist/core/extensions/types.js.map +1 -1
  186. package/dist/core/foreground-recovery-controller.d.ts +1 -0
  187. package/dist/core/foreground-recovery-controller.d.ts.map +1 -1
  188. package/dist/core/foreground-recovery-controller.js +13 -13
  189. package/dist/core/foreground-recovery-controller.js.map +1 -1
  190. package/dist/core/goal-loop-controller.d.ts +14 -9
  191. package/dist/core/goal-loop-controller.d.ts.map +1 -1
  192. package/dist/core/goal-loop-controller.js +47 -75
  193. package/dist/core/goal-loop-controller.js.map +1 -1
  194. package/dist/core/goals/compact-goal-context.d.ts +11 -0
  195. package/dist/core/goals/compact-goal-context.d.ts.map +1 -0
  196. package/dist/core/goals/compact-goal-context.js +59 -0
  197. package/dist/core/goals/compact-goal-context.js.map +1 -0
  198. package/dist/core/goals/goal-acceptance.d.ts.map +1 -1
  199. package/dist/core/goals/goal-acceptance.js +2 -0
  200. package/dist/core/goals/goal-acceptance.js.map +1 -1
  201. package/dist/core/goals/goal-auto-continue-controller.d.ts +2 -1
  202. package/dist/core/goals/goal-auto-continue-controller.d.ts.map +1 -1
  203. package/dist/core/goals/goal-auto-continue-controller.js +5 -8
  204. package/dist/core/goals/goal-auto-continue-controller.js.map +1 -1
  205. package/dist/core/goals/goal-continuation-controller.d.ts +2 -2
  206. package/dist/core/goals/goal-continuation-controller.d.ts.map +1 -1
  207. package/dist/core/goals/goal-continuation-controller.js +42 -11
  208. package/dist/core/goals/goal-continuation-controller.js.map +1 -1
  209. package/dist/core/goals/goal-continuation-defaults.d.ts +4 -29
  210. package/dist/core/goals/goal-continuation-defaults.d.ts.map +1 -1
  211. package/dist/core/goals/goal-continuation-defaults.js +4 -32
  212. package/dist/core/goals/goal-continuation-defaults.js.map +1 -1
  213. package/dist/core/goals/goal-continuation-prompt.d.ts +8 -18
  214. package/dist/core/goals/goal-continuation-prompt.d.ts.map +1 -1
  215. package/dist/core/goals/goal-continuation-prompt.js +9 -179
  216. package/dist/core/goals/goal-continuation-prompt.js.map +1 -1
  217. package/dist/core/goals/goal-lifecycle.d.ts +35 -12
  218. package/dist/core/goals/goal-lifecycle.d.ts.map +1 -1
  219. package/dist/core/goals/goal-lifecycle.js +98 -13
  220. package/dist/core/goals/goal-lifecycle.js.map +1 -1
  221. package/dist/core/goals/goal-record.d.ts +17 -0
  222. package/dist/core/goals/goal-record.d.ts.map +1 -0
  223. package/dist/core/goals/goal-record.js +31 -0
  224. package/dist/core/goals/goal-record.js.map +1 -0
  225. package/dist/core/goals/goal-session-controller.d.ts +42 -0
  226. package/dist/core/goals/goal-session-controller.d.ts.map +1 -0
  227. package/dist/core/goals/goal-session-controller.js +128 -0
  228. package/dist/core/goals/goal-session-controller.js.map +1 -0
  229. package/dist/core/goals/goal-state.d.ts +45 -25
  230. package/dist/core/goals/goal-state.d.ts.map +1 -1
  231. package/dist/core/goals/goal-state.js +85 -15
  232. package/dist/core/goals/goal-state.js.map +1 -1
  233. package/dist/core/goals/goal-tool-core.d.ts +1 -4
  234. package/dist/core/goals/goal-tool-core.d.ts.map +1 -1
  235. package/dist/core/goals/goal-tool-core.js +49 -34
  236. package/dist/core/goals/goal-tool-core.js.map +1 -1
  237. package/dist/core/goals/session-goal-state.d.ts +18 -8
  238. package/dist/core/goals/session-goal-state.d.ts.map +1 -1
  239. package/dist/core/goals/session-goal-state.js +134 -11
  240. package/dist/core/goals/session-goal-state.js.map +1 -1
  241. package/dist/core/human-input-controller.d.ts +47 -0
  242. package/dist/core/human-input-controller.d.ts.map +1 -0
  243. package/dist/core/human-input-controller.js +181 -0
  244. package/dist/core/human-input-controller.js.map +1 -0
  245. package/dist/core/local-runtime-controller.d.ts +1 -1
  246. package/dist/core/local-runtime-controller.d.ts.map +1 -1
  247. package/dist/core/local-runtime-controller.js.map +1 -1
  248. package/dist/core/model-capability.d.ts +0 -19
  249. package/dist/core/model-capability.d.ts.map +1 -1
  250. package/dist/core/model-capability.js +0 -19
  251. package/dist/core/model-capability.js.map +1 -1
  252. package/dist/core/model-registry.d.ts +6 -1
  253. package/dist/core/model-registry.d.ts.map +1 -1
  254. package/dist/core/model-registry.js +13 -5
  255. package/dist/core/model-registry.js.map +1 -1
  256. package/dist/core/model-resolver.d.ts +16 -1
  257. package/dist/core/model-resolver.d.ts.map +1 -1
  258. package/dist/core/model-resolver.js +32 -16
  259. package/dist/core/model-resolver.js.map +1 -1
  260. package/dist/core/model-router-controller.d.ts +1 -1
  261. package/dist/core/model-router-controller.d.ts.map +1 -1
  262. package/dist/core/model-router-controller.js.map +1 -1
  263. package/dist/core/model-selection-controller.d.ts +1 -1
  264. package/dist/core/model-selection-controller.d.ts.map +1 -1
  265. package/dist/core/model-selection-controller.js.map +1 -1
  266. package/dist/core/models/model-endpoint.d.ts +3 -0
  267. package/dist/core/models/model-endpoint.d.ts.map +1 -0
  268. package/dist/core/models/model-endpoint.js +11 -0
  269. package/dist/core/models/model-endpoint.js.map +1 -0
  270. package/dist/core/orchestration/agent-resume.d.ts +2 -0
  271. package/dist/core/orchestration/agent-resume.d.ts.map +1 -1
  272. package/dist/core/orchestration/agent-resume.js +7 -0
  273. package/dist/core/orchestration/agent-resume.js.map +1 -1
  274. package/dist/core/orchestration/attempt-usage.d.ts +28 -0
  275. package/dist/core/orchestration/attempt-usage.d.ts.map +1 -0
  276. package/dist/core/orchestration/attempt-usage.js +168 -0
  277. package/dist/core/orchestration/attempt-usage.js.map +1 -0
  278. package/dist/core/orchestration/capability-gateway.d.ts +19 -1
  279. package/dist/core/orchestration/capability-gateway.d.ts.map +1 -1
  280. package/dist/core/orchestration/capability-gateway.js +128 -28
  281. package/dist/core/orchestration/capability-gateway.js.map +1 -1
  282. package/dist/core/orchestration/contracts.d.ts +35 -0
  283. package/dist/core/orchestration/contracts.d.ts.map +1 -1
  284. package/dist/core/orchestration/contracts.js +17 -0
  285. package/dist/core/orchestration/contracts.js.map +1 -1
  286. package/dist/core/orchestration/delegation-ledger.d.ts +17 -2
  287. package/dist/core/orchestration/delegation-ledger.d.ts.map +1 -1
  288. package/dist/core/orchestration/delegation-ledger.js +81 -3
  289. package/dist/core/orchestration/delegation-ledger.js.map +1 -1
  290. package/dist/core/orchestration/event-store.d.ts +1 -0
  291. package/dist/core/orchestration/event-store.d.ts.map +1 -1
  292. package/dist/core/orchestration/event-store.js +78 -38
  293. package/dist/core/orchestration/event-store.js.map +1 -1
  294. package/dist/core/orchestration/profile-registry.d.ts.map +1 -1
  295. package/dist/core/orchestration/profile-registry.js +81 -41
  296. package/dist/core/orchestration/profile-registry.js.map +1 -1
  297. package/dist/core/orchestration/profile-store.d.ts.map +1 -1
  298. package/dist/core/orchestration/profile-store.js +18 -4
  299. package/dist/core/orchestration/profile-store.js.map +1 -1
  300. package/dist/core/orchestration/risk-budget.d.ts +2 -0
  301. package/dist/core/orchestration/risk-budget.d.ts.map +1 -1
  302. package/dist/core/orchestration/risk-budget.js +26 -0
  303. package/dist/core/orchestration/risk-budget.js.map +1 -1
  304. package/dist/core/orchestration/task-runtime.d.ts +13 -1
  305. package/dist/core/orchestration/task-runtime.d.ts.map +1 -1
  306. package/dist/core/orchestration/task-runtime.js +127 -16
  307. package/dist/core/orchestration/task-runtime.js.map +1 -1
  308. package/dist/core/orchestration/work-state-projection.d.ts.map +1 -1
  309. package/dist/core/orchestration/work-state-projection.js +1 -1
  310. package/dist/core/orchestration/work-state-projection.js.map +1 -1
  311. package/dist/core/orchestration/worker-execution-contract.d.ts +3 -1
  312. package/dist/core/orchestration/worker-execution-contract.d.ts.map +1 -1
  313. package/dist/core/orchestration/worker-execution-contract.js +75 -23
  314. package/dist/core/orchestration/worker-execution-contract.js.map +1 -1
  315. package/dist/core/orchestration/worker-result-adapter.d.ts +9 -3
  316. package/dist/core/orchestration/worker-result-adapter.d.ts.map +1 -1
  317. package/dist/core/orchestration/worker-result-adapter.js +167 -14
  318. package/dist/core/orchestration/worker-result-adapter.js.map +1 -1
  319. package/dist/core/package-manager.d.ts.map +1 -1
  320. package/dist/core/package-manager.js +20 -3
  321. package/dist/core/package-manager.js.map +1 -1
  322. package/dist/core/profile-filter-controller.d.ts +8 -1
  323. package/dist/core/profile-filter-controller.d.ts.map +1 -1
  324. package/dist/core/profile-filter-controller.js +23 -5
  325. package/dist/core/profile-filter-controller.js.map +1 -1
  326. package/dist/core/prompt-templates.d.ts +1 -0
  327. package/dist/core/prompt-templates.d.ts.map +1 -1
  328. package/dist/core/prompt-templates.js +18 -29
  329. package/dist/core/prompt-templates.js.map +1 -1
  330. package/dist/core/reflection-controller.d.ts +2 -2
  331. package/dist/core/reflection-controller.d.ts.map +1 -1
  332. package/dist/core/reflection-controller.js +92 -54
  333. package/dist/core/reflection-controller.js.map +1 -1
  334. package/dist/core/request-auth.d.ts +7 -0
  335. package/dist/core/request-auth.d.ts.map +1 -0
  336. package/dist/core/request-auth.js +8 -0
  337. package/dist/core/request-auth.js.map +1 -0
  338. package/dist/core/research/evidence-bundle.d.ts +20 -0
  339. package/dist/core/research/evidence-bundle.d.ts.map +1 -1
  340. package/dist/core/research/evidence-bundle.js +173 -69
  341. package/dist/core/research/evidence-bundle.js.map +1 -1
  342. package/dist/core/resource-loader.d.ts.map +1 -1
  343. package/dist/core/resource-loader.js +16 -6
  344. package/dist/core/resource-loader.js.map +1 -1
  345. package/dist/core/risk-classifier.d.ts.map +1 -1
  346. package/dist/core/risk-classifier.js +8 -0
  347. package/dist/core/risk-classifier.js.map +1 -1
  348. package/dist/core/runtime-builder.d.ts +22 -3
  349. package/dist/core/runtime-builder.d.ts.map +1 -1
  350. package/dist/core/runtime-builder.js +147 -80
  351. package/dist/core/runtime-builder.js.map +1 -1
  352. package/dist/core/sdk.d.ts.map +1 -1
  353. package/dist/core/sdk.js +7 -1
  354. package/dist/core/sdk.js.map +1 -1
  355. package/dist/core/secrets/credential-exposure-guard.d.ts +9 -0
  356. package/dist/core/secrets/credential-exposure-guard.d.ts.map +1 -0
  357. package/dist/core/secrets/credential-exposure-guard.js +241 -0
  358. package/dist/core/secrets/credential-exposure-guard.js.map +1 -0
  359. package/dist/core/secrets/secret-dotenv.d.ts +27 -0
  360. package/dist/core/secrets/secret-dotenv.d.ts.map +1 -0
  361. package/dist/core/secrets/secret-dotenv.js +183 -0
  362. package/dist/core/secrets/secret-dotenv.js.map +1 -0
  363. package/dist/core/secrets/secret-vault-format.d.ts +112 -0
  364. package/dist/core/secrets/secret-vault-format.d.ts.map +1 -0
  365. package/dist/core/secrets/secret-vault-format.js +397 -0
  366. package/dist/core/secrets/secret-vault-format.js.map +1 -0
  367. package/dist/core/secrets/secret-vault.d.ts +72 -0
  368. package/dist/core/secrets/secret-vault.d.ts.map +1 -0
  369. package/dist/core/secrets/secret-vault.js +671 -0
  370. package/dist/core/secrets/secret-vault.js.map +1 -0
  371. package/dist/core/session-analytics.d.ts +4 -23
  372. package/dist/core/session-analytics.d.ts.map +1 -1
  373. package/dist/core/session-analytics.js +39 -69
  374. package/dist/core/session-analytics.js.map +1 -1
  375. package/dist/core/session-artifact-bundle.d.ts +35 -0
  376. package/dist/core/session-artifact-bundle.d.ts.map +1 -0
  377. package/dist/core/session-artifact-bundle.js +61 -0
  378. package/dist/core/session-artifact-bundle.js.map +1 -0
  379. package/dist/core/session-role.d.ts +5 -0
  380. package/dist/core/session-role.d.ts.map +1 -1
  381. package/dist/core/session-role.js +14 -1
  382. package/dist/core/session-role.js.map +1 -1
  383. package/dist/core/session-tree-navigator.d.ts +4 -6
  384. package/dist/core/session-tree-navigator.d.ts.map +1 -1
  385. package/dist/core/session-tree-navigator.js +4 -1
  386. package/dist/core/session-tree-navigator.js.map +1 -1
  387. package/dist/core/settings-manager.d.ts +1 -1
  388. package/dist/core/settings-manager.d.ts.map +1 -1
  389. package/dist/core/settings-manager.js +1 -1
  390. package/dist/core/settings-manager.js.map +1 -1
  391. package/dist/core/slash-commands.d.ts.map +1 -1
  392. package/dist/core/slash-commands.js +2 -2
  393. package/dist/core/slash-commands.js.map +1 -1
  394. package/dist/core/tool-capability-policy.d.ts.map +1 -1
  395. package/dist/core/tool-capability-policy.js +1 -0
  396. package/dist/core/tool-capability-policy.js.map +1 -1
  397. package/dist/core/tool-gate-controller.d.ts.map +1 -1
  398. package/dist/core/tool-gate-controller.js +8 -2
  399. package/dist/core/tool-gate-controller.js.map +1 -1
  400. package/dist/core/tool-protocol-controller.d.ts +2 -4
  401. package/dist/core/tool-protocol-controller.d.ts.map +1 -1
  402. package/dist/core/tool-protocol-controller.js.map +1 -1
  403. package/dist/core/tool-recovery-stats.d.ts +21 -1
  404. package/dist/core/tool-recovery-stats.d.ts.map +1 -1
  405. package/dist/core/tool-recovery-stats.js.map +1 -1
  406. package/dist/core/tools/bash.d.ts +5 -0
  407. package/dist/core/tools/bash.d.ts.map +1 -1
  408. package/dist/core/tools/bash.js +59 -5
  409. package/dist/core/tools/bash.js.map +1 -1
  410. package/dist/core/tools/delegate-status.d.ts +6 -1
  411. package/dist/core/tools/delegate-status.d.ts.map +1 -1
  412. package/dist/core/tools/delegate-status.js +106 -25
  413. package/dist/core/tools/delegate-status.js.map +1 -1
  414. package/dist/core/tools/delegate.d.ts +9 -1
  415. package/dist/core/tools/delegate.d.ts.map +1 -1
  416. package/dist/core/tools/delegate.js +329 -69
  417. package/dist/core/tools/delegate.js.map +1 -1
  418. package/dist/core/tools/git-filter.d.ts +1 -8
  419. package/dist/core/tools/git-filter.d.ts.map +1 -1
  420. package/dist/core/tools/git-filter.js +2 -63
  421. package/dist/core/tools/git-filter.js.map +1 -1
  422. package/dist/core/tools/goal.d.ts +5 -3
  423. package/dist/core/tools/goal.d.ts.map +1 -1
  424. package/dist/core/tools/goal.js +97 -19
  425. package/dist/core/tools/goal.js.map +1 -1
  426. package/dist/core/tools/index.d.ts +1 -0
  427. package/dist/core/tools/index.d.ts.map +1 -1
  428. package/dist/core/tools/index.js +1 -0
  429. package/dist/core/tools/index.js.map +1 -1
  430. package/dist/core/tools/orchestration-panel.d.ts +1 -4
  431. package/dist/core/tools/orchestration-panel.d.ts.map +1 -1
  432. package/dist/core/tools/orchestration-panel.js +0 -44
  433. package/dist/core/tools/orchestration-panel.js.map +1 -1
  434. package/dist/core/tools/output-accumulator.d.ts +11 -0
  435. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  436. package/dist/core/tools/output-accumulator.js +36 -3
  437. package/dist/core/tools/output-accumulator.js.map +1 -1
  438. package/dist/core/tools/python.d.ts +2 -0
  439. package/dist/core/tools/python.d.ts.map +1 -1
  440. package/dist/core/tools/python.js +3 -1
  441. package/dist/core/tools/python.js.map +1 -1
  442. package/dist/core/tools/read.d.ts.map +1 -1
  443. package/dist/core/tools/read.js +1 -1
  444. package/dist/core/tools/read.js.map +1 -1
  445. package/dist/core/tools/run-process.d.ts +1 -1
  446. package/dist/core/tools/run-process.d.ts.map +1 -1
  447. package/dist/core/tools/run-process.js +69 -9
  448. package/dist/core/tools/run-process.js.map +1 -1
  449. package/dist/core/tools/search-command-guard.d.ts +14 -0
  450. package/dist/core/tools/search-command-guard.d.ts.map +1 -0
  451. package/dist/core/tools/search-command-guard.js +333 -0
  452. package/dist/core/tools/search-command-guard.js.map +1 -0
  453. package/dist/core/tools/secret-store.d.ts +38 -0
  454. package/dist/core/tools/secret-store.d.ts.map +1 -0
  455. package/dist/core/tools/secret-store.js +412 -0
  456. package/dist/core/tools/secret-store.js.map +1 -0
  457. package/dist/core/tools/shell-command-parser.d.ts +16 -0
  458. package/dist/core/tools/shell-command-parser.d.ts.map +1 -0
  459. package/dist/core/tools/shell-command-parser.js +113 -0
  460. package/dist/core/tools/shell-command-parser.js.map +1 -0
  461. package/dist/core/tools/shell-contract-router.d.ts.map +1 -1
  462. package/dist/core/tools/shell-contract-router.js +12 -5
  463. package/dist/core/tools/shell-contract-router.js.map +1 -1
  464. package/dist/core/tools/task-steps.d.ts.map +1 -1
  465. package/dist/core/tools/task-steps.js +4 -7
  466. package/dist/core/tools/task-steps.js.map +1 -1
  467. package/dist/core/util/atomic-file.d.ts +6 -2
  468. package/dist/core/util/atomic-file.d.ts.map +1 -1
  469. package/dist/core/util/atomic-file.js +4 -4
  470. package/dist/core/util/atomic-file.js.map +1 -1
  471. package/dist/core/util/bounded-file.d.ts +15 -0
  472. package/dist/core/util/bounded-file.d.ts.map +1 -0
  473. package/dist/core/util/bounded-file.js +120 -0
  474. package/dist/core/util/bounded-file.js.map +1 -0
  475. package/dist/core/util/bounded-jsonl.d.ts.map +1 -1
  476. package/dist/core/util/bounded-jsonl.js +119 -9
  477. package/dist/core/util/bounded-jsonl.js.map +1 -1
  478. package/dist/core/util/bounded-value.d.ts +3 -0
  479. package/dist/core/util/bounded-value.d.ts.map +1 -0
  480. package/dist/core/util/bounded-value.js +12 -0
  481. package/dist/core/util/bounded-value.js.map +1 -0
  482. package/dist/core/util/value-guards.d.ts +2 -0
  483. package/dist/core/util/value-guards.d.ts.map +1 -1
  484. package/dist/core/util/value-guards.js +5 -0
  485. package/dist/core/util/value-guards.js.map +1 -1
  486. package/dist/index.d.ts +3 -2
  487. package/dist/index.d.ts.map +1 -1
  488. package/dist/index.js +2 -1
  489. package/dist/index.js.map +1 -1
  490. package/dist/main.d.ts.map +1 -1
  491. package/dist/main.js +25 -11
  492. package/dist/main.js.map +1 -1
  493. package/dist/modes/interactive/auth-dialogs-controller.d.ts +4 -0
  494. package/dist/modes/interactive/auth-dialogs-controller.d.ts.map +1 -1
  495. package/dist/modes/interactive/auth-dialogs-controller.js +60 -1
  496. package/dist/modes/interactive/auth-dialogs-controller.js.map +1 -1
  497. package/dist/modes/interactive/components/activity-lane.d.ts +55 -0
  498. package/dist/modes/interactive/components/activity-lane.d.ts.map +1 -0
  499. package/dist/modes/interactive/components/activity-lane.js +304 -0
  500. package/dist/modes/interactive/components/activity-lane.js.map +1 -0
  501. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  502. package/dist/modes/interactive/components/assistant-message.js +19 -10
  503. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  504. package/dist/modes/interactive/components/expandable-text.d.ts +12 -0
  505. package/dist/modes/interactive/components/expandable-text.d.ts.map +1 -0
  506. package/dist/modes/interactive/components/expandable-text.js +17 -0
  507. package/dist/modes/interactive/components/expandable-text.js.map +1 -0
  508. package/dist/modes/interactive/components/extension-editor.d.ts +15 -1
  509. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  510. package/dist/modes/interactive/components/extension-editor.js +30 -21
  511. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  512. package/dist/modes/interactive/components/extension-input.d.ts +1 -0
  513. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  514. package/dist/modes/interactive/components/extension-input.js +6 -1
  515. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  516. package/dist/modes/interactive/components/scoped-models-selector.d.ts +2 -2
  517. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  518. package/dist/modes/interactive/components/scoped-models-selector.js +23 -14
  519. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  520. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  521. package/dist/modes/interactive/components/session-selector.js +27 -44
  522. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  523. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  524. package/dist/modes/interactive/components/settings-selector.js +4 -4
  525. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  526. package/dist/modes/interactive/components/tool-execution.d.ts +19 -11
  527. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  528. package/dist/modes/interactive/components/tool-execution.js +53 -20
  529. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  530. package/dist/modes/interactive/components/tool-group.d.ts.map +1 -1
  531. package/dist/modes/interactive/components/tool-group.js +3 -0
  532. package/dist/modes/interactive/components/tool-group.js.map +1 -1
  533. package/dist/modes/interactive/components/usage-action-selector.d.ts +16 -0
  534. package/dist/modes/interactive/components/usage-action-selector.d.ts.map +1 -0
  535. package/dist/modes/interactive/components/usage-action-selector.js +46 -0
  536. package/dist/modes/interactive/components/usage-action-selector.js.map +1 -0
  537. package/dist/modes/interactive/extension-ui-host.d.ts.map +1 -1
  538. package/dist/modes/interactive/extension-ui-host.js +1 -0
  539. package/dist/modes/interactive/extension-ui-host.js.map +1 -1
  540. package/dist/modes/interactive/external-editor.d.ts +15 -0
  541. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  542. package/dist/modes/interactive/external-editor.js +27 -19
  543. package/dist/modes/interactive/external-editor.js.map +1 -1
  544. package/dist/modes/interactive/history-reload-math.d.ts +6 -2
  545. package/dist/modes/interactive/history-reload-math.d.ts.map +1 -1
  546. package/dist/modes/interactive/history-reload-math.js +10 -5
  547. package/dist/modes/interactive/history-reload-math.js.map +1 -1
  548. package/dist/modes/interactive/interactive-event-controller.d.ts +74 -0
  549. package/dist/modes/interactive/interactive-event-controller.d.ts.map +1 -0
  550. package/dist/modes/interactive/interactive-event-controller.js +328 -0
  551. package/dist/modes/interactive/interactive-event-controller.js.map +1 -0
  552. package/dist/modes/interactive/interactive-mode.d.ts +20 -25
  553. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  554. package/dist/modes/interactive/interactive-mode.js +196 -608
  555. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  556. package/dist/modes/interactive/loaded-resources-view.d.ts +20 -0
  557. package/dist/modes/interactive/loaded-resources-view.d.ts.map +1 -0
  558. package/dist/modes/interactive/loaded-resources-view.js +147 -0
  559. package/dist/modes/interactive/loaded-resources-view.js.map +1 -0
  560. package/dist/modes/interactive/resource-display.d.ts.map +1 -1
  561. package/dist/modes/interactive/resource-display.js +8 -2
  562. package/dist/modes/interactive/resource-display.js.map +1 -1
  563. package/dist/modes/interactive/resource-shell-commands.d.ts +1 -5
  564. package/dist/modes/interactive/resource-shell-commands.d.ts.map +1 -1
  565. package/dist/modes/interactive/resource-shell-commands.js +0 -5
  566. package/dist/modes/interactive/resource-shell-commands.js.map +1 -1
  567. package/dist/modes/interactive/session-flow-commands.d.ts +10 -6
  568. package/dist/modes/interactive/session-flow-commands.d.ts.map +1 -1
  569. package/dist/modes/interactive/session-flow-commands.js +123 -70
  570. package/dist/modes/interactive/session-flow-commands.js.map +1 -1
  571. package/dist/modes/interactive/usage-commands.d.ts +34 -0
  572. package/dist/modes/interactive/usage-commands.d.ts.map +1 -0
  573. package/dist/modes/interactive/usage-commands.js +225 -0
  574. package/dist/modes/interactive/usage-commands.js.map +1 -0
  575. package/dist/utils/shell.d.ts.map +1 -1
  576. package/dist/utils/shell.js +5 -3
  577. package/dist/utils/shell.js.map +1 -1
  578. package/dist/utils/version-check.d.ts.map +1 -1
  579. package/dist/utils/version-check.js +3 -1
  580. package/dist/utils/version-check.js.map +1 -1
  581. package/docs/UI_POLISH_ORCHESTRATION.md +25 -31
  582. package/docs/UI_QUALITY_ORCHESTRATION.md +22 -24
  583. package/docs/providers.md +9 -1
  584. package/docs/tool-repair.md +3 -0
  585. package/docs/ui-reference/README.md +6 -6
  586. package/docs/ui-reference/orchestration-after.txt +14 -7
  587. package/docs/ui-reference/orchestration-before.txt +12 -6
  588. package/docs/ui-reference/orchestration-reference.txt +15 -5
  589. package/docs/usage.md +9 -1
  590. package/docs/windows.md +4 -2
  591. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  592. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  593. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  594. package/examples/extensions/sandbox/package-lock.json +2 -2
  595. package/examples/extensions/sandbox/package.json +1 -1
  596. package/examples/extensions/with-deps/package-lock.json +2 -2
  597. package/examples/extensions/with-deps/package.json +1 -1
  598. package/npm-shrinkwrap.json +13 -13
  599. package/package.json +4 -4
@@ -46,6 +46,8 @@ import { evaluateSurfaceFitness } from "./model-router/fitness-gate.js";
46
46
  import { FitnessStore } from "./models/fitness-store.js";
47
47
  import { describeInFlightWorkUnit, getInFlightWorkUnits } from "./reload-blockers.js";
48
48
  import { ScoutController } from "./scout-controller.js";
49
+ import { wrapToolWithCredentialExposureGuard } from "./secrets/credential-exposure-guard.js";
50
+ import { SecretVault } from "./secrets/secret-vault.js";
49
51
  import { getSessionRole, isWorkerSession, WORKER_FORBIDDEN_TOOLS } from "./session-role.js";
50
52
  import { matchesResourceProfilePattern, } from "./settings-manager.js";
51
53
  import { createSyntheticSourceInfo } from "./source-info.js";
@@ -65,9 +67,12 @@ import { resolveToCwd } from "./tools/path-utils.js";
65
67
  import { createReadTool } from "./tools/read.js";
66
68
  import { createRunProcessToolDefinition } from "./tools/run-process.js";
67
69
  import { createRunToolkitScriptToolDefinition } from "./tools/run-toolkit-script.js";
70
+ import { createSecretStoreToolDefinition } from "./tools/secret-store.js";
71
+ import { disposePersistentShellSession } from "./tools/shell-session.js";
68
72
  import { createTaskStepsToolDefinition } from "./tools/task-steps.js";
69
73
  import { dispatchTmuxWorker } from "./tools/tmux-dispatch.js";
70
74
  import { createToolDefinitionFromAgentTool } from "./tools/tool-definition-wrapper.js";
75
+ import { disposeWindowsShellState } from "./tools/windows-shell-state.js";
71
76
  import { createWorktreeSyncToolDefinition } from "./tools/worktree-sync.js";
72
77
  import { createLane } from "./worktree-sync/git-engine.js";
73
78
  import { WorktreeLaneGate } from "./worktree-sync/lane-gate.js";
@@ -106,6 +111,18 @@ export function deriveOpenTaskStepRefs(taskStepsState) {
106
111
  ...(step.requirementIds?.length ? { requirementIds: step.requirementIds } : {}),
107
112
  }));
108
113
  }
114
+ /** Bind goal-selected requirement identity as runtime metadata, outside the model-facing delegate schema. */
115
+ export function createGoalWorkerDelegationRequest(args) {
116
+ return {
117
+ instructions: args.instructions,
118
+ taskContext: {
119
+ requirementIds: [args.requirementId],
120
+ dependsOnTaskIds: [],
121
+ acceptanceCriterionIds: [],
122
+ resourcePointerIds: [],
123
+ },
124
+ };
125
+ }
109
126
  /**
110
127
  * Owns the tool-registry build and the self-modification-safe extension reload extracted from
111
128
  * {@link AgentSession}. See the module header for the snapshot-ownership and host-binding boundaries.
@@ -117,11 +134,22 @@ export class RuntimeBuilder {
117
134
  _toolPromptSnippets = new Map();
118
135
  _toolPromptGuidelines = new Map();
119
136
  _baseToolDefinitions = new Map();
137
+ /** Exact extensions the owner approved through the live-load API. Discovery never populates this set. */
138
+ _explicitLiveExtensionPaths = new Set();
120
139
  _reloadPromise;
121
140
  _reloadRequested = false;
141
+ _secretVault;
122
142
  deps;
123
143
  constructor(deps) {
124
144
  this.deps = deps;
145
+ this._secretVault = new SecretVault({
146
+ agentDir: deps.getAgentDir(),
147
+ onEnvironmentChanged: () => {
148
+ const sessionKey = deps.getShellSessionKey();
149
+ disposePersistentShellSession(sessionKey);
150
+ disposeWindowsShellState(sessionKey);
151
+ },
152
+ });
125
153
  }
126
154
  /**
127
155
  * Resolve the construction and activation policy once for a runtime generation. This is the
@@ -173,9 +201,9 @@ export class RuntimeBuilder {
173
201
  resolveScoutModel: async () => resolveScoutModel(this.deps.getModelRegistry(), this.deps.getSettingsManager().getScoutSettings().model, this.deps.getAgentDir(), (model) => this.deps.isModelExhausted(model)),
174
202
  getCwd: () => cwd,
175
203
  buildReadOnlyTools: (toolCwd) => [
176
- createReadTool(toolCwd),
177
- createGrepTool(toolCwd, { artifactStore }),
178
- createFindTool(toolCwd, { artifactStore }),
204
+ wrapToolWithCredentialExposureGuard(createReadTool(toolCwd), toolCwd, this._secretVault),
205
+ wrapToolWithCredentialExposureGuard(createGrepTool(toolCwd, { artifactStore }), toolCwd, this._secretVault),
206
+ wrapToolWithCredentialExposureGuard(createFindTool(toolCwd, { artifactStore }), toolCwd, this._secretVault),
179
207
  ],
180
208
  streamFn: this.deps.getAgent().streamFn,
181
209
  fileExists: (path) => existsSync(resolveCwdPath(cwd, path)),
@@ -278,9 +306,13 @@ export class RuntimeBuilder {
278
306
  definition,
279
307
  sourceInfo: createSyntheticSourceInfo(`<builtin:${definition.name}>`, { source: "builtin" }),
280
308
  })), runner);
281
- const toolRegistry = new Map(wrappedBuiltInTools.map((tool) => [tool.name, tool]));
309
+ const toolRegistry = new Map(wrappedBuiltInTools.map((tool) => {
310
+ const guarded = wrapToolWithCredentialExposureGuard(tool, this.deps.getCwd(), this._secretVault);
311
+ return [guarded.name, guarded];
312
+ }));
282
313
  for (const tool of wrappedExtensionTools) {
283
- toolRegistry.set(tool.name, tool);
314
+ const guarded = wrapToolWithCredentialExposureGuard(tool, this.deps.getCwd(), this._secretVault);
315
+ toolRegistry.set(guarded.name, guarded);
284
316
  }
285
317
  this._toolRegistry = toolRegistry;
286
318
  const requestedBase = options?.activeToolNames
@@ -453,7 +485,12 @@ export class RuntimeBuilder {
453
485
  shellPath,
454
486
  sessionKey: this.deps.getShellSessionKey(),
455
487
  platform: process.platform,
488
+ spawnHook: (context) => ({
489
+ ...context,
490
+ env: { ...context.env, ...this._secretVault.getEnvironmentForCwd(context.cwd) },
491
+ }),
456
492
  },
493
+ python: { environment: (cwd) => this._secretVault.getEnvironmentForCwd(cwd) },
457
494
  grep: { artifactStore: toolArtifactStore },
458
495
  find: { artifactStore: toolArtifactStore },
459
496
  artifact_retrieve: { artifactStore: toolArtifactStore },
@@ -496,8 +533,8 @@ export class RuntimeBuilder {
496
533
  if (toolAccess.allows("goal")) {
497
534
  const goalToolDefinition = createGoalToolDefinition({
498
535
  getGoalState: () => this.deps.getGoalStateSnapshot(),
499
- saveGoalState: (state) => {
500
- this.deps.saveGoalStateSnapshot(state);
536
+ saveGoalState: (state, expected) => {
537
+ this.deps.saveGoalStateSnapshot(state, expected);
501
538
  },
502
539
  // kind:"tool" evidence refs verify against real session records.
503
540
  hasToolCallId: (toolCallId) => hasAnsweredToolCallOnBranch(this.deps.getSessionManager(), toolCallId),
@@ -511,7 +548,7 @@ export class RuntimeBuilder {
511
548
  // adapted from its `{started:true;record}|{started:false;skipReason}` shape onto this
512
549
  // tool's narrower `{laneId}|{skipReason}` shape.
513
550
  startWorkerDelegation: (args) => {
514
- const outcome = this.deps.startWorkerDelegation({ instructions: args.instructions });
551
+ const outcome = this.deps.startWorkerDelegation(createGoalWorkerDelegationRequest(args));
515
552
  return outcome.started ? { laneId: outcome.record.laneId } : { skipReason: outcome.skipReason };
516
553
  },
517
554
  // dispatch_worker's tool-layer side effect for `dispatchTarget:"tmux"`: core structurally
@@ -564,11 +601,16 @@ export class RuntimeBuilder {
564
601
  });
565
602
  this._baseToolDefinitions.set(askQuestionToolDefinition.name, askQuestionToolDefinition);
566
603
  }
604
+ if (toolAccess.allows("secret_store")) {
605
+ const secretStoreToolDefinition = createSecretStoreToolDefinition({ vault: this._secretVault });
606
+ this._baseToolDefinitions.set(secretStoreToolDefinition.name, secretStoreToolDefinition);
607
+ }
567
608
  if (toolAccess.allows("delegate")) {
568
609
  const delegateToolDefinition = createDelegateToolDefinition({
569
610
  startWorkerDelegation: (args) => this.deps.startWorkerDelegation(args),
570
611
  runWorkerDelegation: (args) => this.deps.runWorkerDelegationOnce(args),
571
612
  orchestrationProfiles: this.deps.getOrchestrationProfileCatalog(),
613
+ ...(this.deps.workerAgentControl ? { workerAgentControl: this.deps.workerAgentControl } : {}),
572
614
  });
573
615
  this._baseToolDefinitions.set(delegateToolDefinition.name, delegateToolDefinition);
574
616
  }
@@ -580,6 +622,7 @@ export class RuntimeBuilder {
580
622
  // a new agent-session dep) because getSessionManager() is already a stable, generic
581
623
  // passthrough dep, so no other package needs to change for this to work.
582
624
  acknowledgeWorkerReview: (requestId) => acknowledgeWorkerClaimReview(this.deps.getSessionManager(), requestId),
625
+ ...(this.deps.workerAgentControl ? { workerAgentControl: this.deps.workerAgentControl } : {}),
583
626
  });
584
627
  this._baseToolDefinitions.set(delegateStatusToolDefinition.name, delegateStatusToolDefinition);
585
628
  }
@@ -692,7 +735,7 @@ export class RuntimeBuilder {
692
735
  extensionsResult.runtime.flagValues.set(name, value);
693
736
  }
694
737
  }
695
- const extensions = this.deps.filterExtensionsForRuntime(extensionsResult.extensions);
738
+ const extensions = this.deps.filterExtensionsForRuntime(extensionsResult.extensions, this._explicitLiveExtensionPaths);
696
739
  const runtimeExtensionPaths = new Set(extensions.map((extension) => extension.path));
697
740
  extensionsResult.runtime.pendingProviderRegistrations =
698
741
  extensionsResult.runtime.pendingProviderRegistrations.filter((registration) => runtimeExtensionPaths.has(registration.extensionPath));
@@ -809,6 +852,15 @@ export class RuntimeBuilder {
809
852
  deferExtensionDispose: true,
810
853
  skipSettingsReload: true,
811
854
  });
855
+ // A live-load call is an exact session-owned grant. Resource discovery deliberately cannot
856
+ // recreate it without a profile, so restore only those approved paths into the new runtime
857
+ // generation before binding it.
858
+ for (const extensionPath of this._explicitLiveExtensionPaths) {
859
+ if (this.deps.isExtensionPathAllowed(extensionPath, "explicit") &&
860
+ !this.deps.getResourceLoader().getLoadedExtension(extensionPath)) {
861
+ await this._importExtension(extensionPath);
862
+ }
863
+ }
812
864
  // Replace the previous extension-owned provider generation before binding the new one. The
813
865
  // bulk refresh also preserves API/OAuth streams for surviving non-extension providers.
814
866
  this.deps.getModelRegistry().unregisterProviders(previousExtensionProviderNames);
@@ -874,9 +926,23 @@ export class RuntimeBuilder {
874
926
  */
875
927
  async unloadExtensionLive(extensionPath) {
876
928
  this._assertReloadQuiescent("unload extension");
929
+ try {
930
+ await this._unloadExtensionLive(extensionPath, true, true);
931
+ }
932
+ catch (error) {
933
+ await this._recoverLiveExtensionFailure();
934
+ throw error;
935
+ }
936
+ }
937
+ async _unloadExtensionLive(extensionPath, revokeExplicitGrant, notify) {
877
938
  const ext = this.deps.getResourceLoader().getLoadedExtension(extensionPath);
939
+ const explicitGrantPath = ext?.path ?? extensionPath;
940
+ const hadExplicitGrant = this._explicitLiveExtensionPaths.has(explicitGrantPath);
941
+ if (revokeExplicitGrant) {
942
+ this._explicitLiveExtensionPaths.delete(explicitGrantPath);
943
+ }
878
944
  if (!ext) {
879
- return; // Nothing to unload
945
+ return;
880
946
  }
881
947
  const previousRunner = this.deps.getExtensionRunner();
882
948
  try {
@@ -901,7 +967,7 @@ export class RuntimeBuilder {
901
967
  flagValues: previousFlagValues,
902
968
  includeAllExtensionTools: true,
903
969
  });
904
- previousRunner.invalidate();
970
+ previousRunner.retire();
905
971
  const memorySnapshot = this.deps.createMemoryReloadSnapshot();
906
972
  this.deps.restoreMemoryReloadSnapshot({
907
973
  ...memorySnapshot,
@@ -911,16 +977,13 @@ export class RuntimeBuilder {
911
977
  runtime.memoryProvidersByExtension.delete(ext.path);
912
978
  runtime.contextMemoryProvidersByExtension.delete(ext.path);
913
979
  await this.deps.initializeMemory();
914
- // Notify extensions-changed listeners
915
- this.deps.notifyExtensionsChanged();
980
+ if (notify) {
981
+ this.deps.notifyExtensionsChanged();
982
+ }
916
983
  }
917
984
  catch (error) {
918
- // Fall back to full reload on error
919
- try {
920
- await this.reload();
921
- }
922
- catch {
923
- // Suppress nested error; original error will be thrown below
985
+ if (revokeExplicitGrant && hadExplicitGrant) {
986
+ this._explicitLiveExtensionPaths.add(explicitGrantPath);
924
987
  }
925
988
  throw error;
926
989
  }
@@ -933,15 +996,26 @@ export class RuntimeBuilder {
933
996
  */
934
997
  async loadExtensionLive(extensionPath) {
935
998
  this._assertReloadQuiescent("load extension");
936
- if (!this.deps.getSettingsManager().isResourceAllowedByProfile("extensions", extensionPath)) {
937
- throw new Error(`Cannot load extension outside the active resource profile: ${extensionPath}`);
999
+ this._assertExtensionLoadAllowed(extensionPath, "explicit");
1000
+ try {
1001
+ await this._loadExtensionLive(extensionPath, "explicit", true);
938
1002
  }
1003
+ catch (error) {
1004
+ await this._recoverLiveExtensionFailure();
1005
+ throw error;
1006
+ }
1007
+ }
1008
+ async _loadExtensionLive(extensionPath, authority, notify) {
939
1009
  const previousRunner = this.deps.getExtensionRunner();
1010
+ let explicitGrantPath;
1011
+ let hadExplicitGrant = false;
940
1012
  try {
941
1013
  // Load the extension with fresh import
942
- const { extension, error } = await this.deps.getResourceLoader().loadSingleExtension(extensionPath);
943
- if (error || !extension) {
944
- throw new Error(error || `Failed to load extension: ${extensionPath}`);
1014
+ const extension = await this._importExtension(extensionPath);
1015
+ if (authority === "explicit") {
1016
+ explicitGrantPath = extension.path;
1017
+ hadExplicitGrant = this._explicitLiveExtensionPaths.has(explicitGrantPath);
1018
+ this._explicitLiveExtensionPaths.add(explicitGrantPath);
945
1019
  }
946
1020
  // Rebuild runtime to aggregate tools/commands/handlers/providers
947
1021
  const activeToolNames = this.deps.getRequestedActiveToolNames() ?? this.deps.getActiveToolNames();
@@ -956,20 +1030,38 @@ export class RuntimeBuilder {
956
1030
  // Activate newly registered legacy/context providers immediately. Reinitialization also
957
1031
  // refreshes provider tools and preserves all providers owned by existing extensions.
958
1032
  await this.deps.initializeMemory();
959
- // Notify extensions-changed listeners
960
- this.deps.notifyExtensionsChanged();
1033
+ previousRunner.retire();
1034
+ if (notify) {
1035
+ this.deps.notifyExtensionsChanged();
1036
+ }
961
1037
  }
962
1038
  catch (error) {
963
- // Fall back to full reload on error
964
- try {
965
- await this.reload();
966
- }
967
- catch {
968
- // Suppress nested error; original error will be thrown below
1039
+ if (explicitGrantPath && !hadExplicitGrant) {
1040
+ this._explicitLiveExtensionPaths.delete(explicitGrantPath);
969
1041
  }
970
1042
  throw error;
971
1043
  }
972
1044
  }
1045
+ async _importExtension(extensionPath) {
1046
+ const { extension, error } = await this.deps.getResourceLoader().loadSingleExtension(extensionPath);
1047
+ if (error || !extension) {
1048
+ throw new Error(error || `Failed to load extension: ${extensionPath}`);
1049
+ }
1050
+ return extension;
1051
+ }
1052
+ _assertExtensionLoadAllowed(extensionPath, authority) {
1053
+ if (!this.deps.isExtensionPathAllowed(extensionPath, authority)) {
1054
+ throw new Error(`Cannot load extension outside the active resource profile: ${extensionPath}`);
1055
+ }
1056
+ }
1057
+ async _recoverLiveExtensionFailure() {
1058
+ try {
1059
+ await this.reload();
1060
+ }
1061
+ catch {
1062
+ // Preserve the original live-operation error; recovery is best effort.
1063
+ }
1064
+ }
973
1065
  /**
974
1066
  * Reconcile loaded extensions with the active profile.
975
1067
  * Loads extensions that should be enabled but aren't, and unloads extensions that shouldn't be.
@@ -980,66 +1072,41 @@ export class RuntimeBuilder {
980
1072
  try {
981
1073
  // Get all discoverable extension paths
982
1074
  const allDiscoverablePaths = await this.deps.getResourceLoader().getDiscoverableExtensionPaths();
983
- // Get the target enabled set based on profile filters
984
- const targetEnabledSet = new Set();
985
- for (const path of allDiscoverablePaths) {
986
- if (this.deps.getSettingsManager().isResourceAllowedByProfile("extensions", path)) {
987
- targetEnabledSet.add(path);
988
- }
989
- }
990
- // Get currently loaded set
991
1075
  const loadedExtensions = this.deps.getResourceLoader().getExtensions().extensions;
992
- const loadedSet = new Set();
993
- for (const ext of loadedExtensions) {
994
- loadedSet.add(ext.path);
995
- }
996
- // Collect unloads and loads
997
- const toUnload = [];
998
- const toLoad = [];
999
- for (const path of loadedSet) {
1000
- if (!targetEnabledSet.has(path)) {
1001
- toUnload.push(path);
1002
- }
1076
+ const targetAuthorities = new Map();
1077
+ for (const extension of this.deps.filterExtensionsForRuntime(loadedExtensions, this._explicitLiveExtensionPaths)) {
1078
+ targetAuthorities.set(extension.path, "loaded");
1003
1079
  }
1004
- for (const path of targetEnabledSet) {
1005
- if (!loadedSet.has(path)) {
1006
- toLoad.push(path);
1080
+ for (const path of this._explicitLiveExtensionPaths) {
1081
+ if (this.deps.isExtensionPathAllowed(path, "explicit")) {
1082
+ targetAuthorities.set(path, "explicit");
1007
1083
  }
1008
1084
  }
1009
- // Apply unloads first, then loads, to minimize churn
1010
- // Collect errors but continue through all operations
1011
- const errors = [];
1012
- for (const path of toUnload) {
1013
- try {
1014
- await this.unloadExtensionLive(path);
1015
- }
1016
- catch (error) {
1017
- errors.push(error instanceof Error ? error : new Error(String(error)));
1085
+ for (const path of allDiscoverablePaths) {
1086
+ if (this.deps.isExtensionPathAllowed(path, "profile") && !targetAuthorities.has(path)) {
1087
+ targetAuthorities.set(path, "profile");
1018
1088
  }
1019
1089
  }
1020
- for (const path of toLoad) {
1021
- try {
1022
- await this.loadExtensionLive(path);
1023
- }
1024
- catch (error) {
1025
- errors.push(error instanceof Error ? error : new Error(String(error)));
1026
- }
1090
+ // Apply unloads first, then loads. A failed mutation stops the generation immediately; the
1091
+ // outer recovery reload restores one coherent runtime instead of compounding partial changes.
1092
+ for (const extension of [...loadedExtensions]) {
1093
+ if (targetAuthorities.has(extension.path) || targetAuthorities.has(extension.resolvedPath))
1094
+ continue;
1095
+ this._assertReloadQuiescent("reconcile extensions");
1096
+ await this._unloadExtensionLive(extension.path, false, false);
1027
1097
  }
1028
- // If any errors occurred, throw the first one (already fell back to full reload in load/unload)
1029
- if (errors.length > 0) {
1030
- throw errors[0];
1098
+ for (const [path, authority] of targetAuthorities) {
1099
+ if (authority === "loaded" || this.deps.getResourceLoader().getLoadedExtension(path))
1100
+ continue;
1101
+ this._assertReloadQuiescent("reconcile extensions");
1102
+ this._assertExtensionLoadAllowed(path, authority);
1103
+ await this._loadExtensionLive(path, authority, false);
1031
1104
  }
1032
1105
  // Single notification at the end
1033
1106
  this.deps.notifyExtensionsChanged();
1034
1107
  }
1035
1108
  catch (error) {
1036
- // Fall back to full reload on error
1037
- try {
1038
- await this.reload();
1039
- }
1040
- catch {
1041
- // Suppress nested error; original error will be thrown below
1042
- }
1109
+ await this._recoverLiveExtensionFailure();
1043
1110
  throw error;
1044
1111
  }
1045
1112
  }