@caupulican/pi-adaptative 0.81.40 → 0.81.41

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 (406) hide show
  1. package/CHANGELOG.md +25 -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/cli/args.d.ts +2 -0
  7. package/dist/cli/args.d.ts.map +1 -1
  8. package/dist/cli/args.js +22 -1
  9. package/dist/cli/args.js.map +1 -1
  10. package/dist/core/agent-paths.d.ts +6 -0
  11. package/dist/core/agent-paths.d.ts.map +1 -1
  12. package/dist/core/agent-paths.js +12 -0
  13. package/dist/core/agent-paths.js.map +1 -1
  14. package/dist/core/agent-session-contracts.d.ts +293 -0
  15. package/dist/core/agent-session-contracts.d.ts.map +1 -0
  16. package/dist/core/agent-session-contracts.js +26 -0
  17. package/dist/core/agent-session-contracts.js.map +1 -0
  18. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  19. package/dist/core/agent-session-runtime.js +3 -0
  20. package/dist/core/agent-session-runtime.js.map +1 -1
  21. package/dist/core/agent-session.d.ts +26 -405
  22. package/dist/core/agent-session.d.ts.map +1 -1
  23. package/dist/core/agent-session.js +86 -307
  24. package/dist/core/agent-session.js.map +1 -1
  25. package/dist/core/auth-storage.d.ts.map +1 -1
  26. package/dist/core/auth-storage.js +3 -1
  27. package/dist/core/auth-storage.js.map +1 -1
  28. package/dist/core/autonomy/lane-tool-surface.d.ts.map +1 -1
  29. package/dist/core/autonomy/lane-tool-surface.js +2 -1
  30. package/dist/core/autonomy/lane-tool-surface.js.map +1 -1
  31. package/dist/core/background-lane-controller.d.ts +3 -1
  32. package/dist/core/background-lane-controller.d.ts.map +1 -1
  33. package/dist/core/background-lane-controller.js +1 -0
  34. package/dist/core/background-lane-controller.js.map +1 -1
  35. package/dist/core/bedrock-sso-login.d.ts +16 -0
  36. package/dist/core/bedrock-sso-login.d.ts.map +1 -0
  37. package/dist/core/bedrock-sso-login.js +98 -0
  38. package/dist/core/bedrock-sso-login.js.map +1 -0
  39. package/dist/core/compaction-controller.d.ts.map +1 -1
  40. package/dist/core/compaction-controller.js +1 -1
  41. package/dist/core/compaction-controller.js.map +1 -1
  42. package/dist/core/compaction-support.d.ts +3 -8
  43. package/dist/core/compaction-support.d.ts.map +1 -1
  44. package/dist/core/compaction-support.js +3 -3
  45. package/dist/core/compaction-support.js.map +1 -1
  46. package/dist/core/context-pipeline.d.ts +1 -1
  47. package/dist/core/context-pipeline.d.ts.map +1 -1
  48. package/dist/core/context-pipeline.js +7 -33
  49. package/dist/core/context-pipeline.js.map +1 -1
  50. package/dist/core/cost/cost-summary.d.ts.map +1 -1
  51. package/dist/core/cost/cost-summary.js +5 -3
  52. package/dist/core/cost/cost-summary.js.map +1 -1
  53. package/dist/core/cost/daily-usage.d.ts.map +1 -1
  54. package/dist/core/cost/daily-usage.js +4 -5
  55. package/dist/core/cost/daily-usage.js.map +1 -1
  56. package/dist/core/default-tool-surface.d.ts.map +1 -1
  57. package/dist/core/default-tool-surface.js +1 -0
  58. package/dist/core/default-tool-surface.js.map +1 -1
  59. package/dist/core/extension-import-authority.d.ts +6 -0
  60. package/dist/core/extension-import-authority.d.ts.map +1 -0
  61. package/dist/core/extension-import-authority.js +10 -0
  62. package/dist/core/extension-import-authority.js.map +1 -0
  63. package/dist/core/extensions/loader.d.ts.map +1 -1
  64. package/dist/core/extensions/loader.js +2 -3
  65. package/dist/core/extensions/loader.js.map +1 -1
  66. package/dist/core/extensions/runner.d.ts +3 -0
  67. package/dist/core/extensions/runner.d.ts.map +1 -1
  68. package/dist/core/extensions/runner.js +14 -5
  69. package/dist/core/extensions/runner.js.map +1 -1
  70. package/dist/core/extensions/stale-context.d.ts +2 -0
  71. package/dist/core/extensions/stale-context.d.ts.map +1 -0
  72. package/dist/core/extensions/stale-context.js +2 -0
  73. package/dist/core/extensions/stale-context.js.map +1 -0
  74. package/dist/core/extensions/types.d.ts +8 -0
  75. package/dist/core/extensions/types.d.ts.map +1 -1
  76. package/dist/core/extensions/types.js.map +1 -1
  77. package/dist/core/foreground-recovery-controller.d.ts +1 -0
  78. package/dist/core/foreground-recovery-controller.d.ts.map +1 -1
  79. package/dist/core/foreground-recovery-controller.js +13 -13
  80. package/dist/core/foreground-recovery-controller.js.map +1 -1
  81. package/dist/core/goal-loop-controller.d.ts +14 -9
  82. package/dist/core/goal-loop-controller.d.ts.map +1 -1
  83. package/dist/core/goal-loop-controller.js +47 -75
  84. package/dist/core/goal-loop-controller.js.map +1 -1
  85. package/dist/core/goals/compact-goal-context.d.ts +11 -0
  86. package/dist/core/goals/compact-goal-context.d.ts.map +1 -0
  87. package/dist/core/goals/compact-goal-context.js +59 -0
  88. package/dist/core/goals/compact-goal-context.js.map +1 -0
  89. package/dist/core/goals/goal-acceptance.d.ts.map +1 -1
  90. package/dist/core/goals/goal-acceptance.js +2 -0
  91. package/dist/core/goals/goal-acceptance.js.map +1 -1
  92. package/dist/core/goals/goal-auto-continue-controller.d.ts +2 -1
  93. package/dist/core/goals/goal-auto-continue-controller.d.ts.map +1 -1
  94. package/dist/core/goals/goal-auto-continue-controller.js +5 -8
  95. package/dist/core/goals/goal-auto-continue-controller.js.map +1 -1
  96. package/dist/core/goals/goal-continuation-controller.d.ts +2 -2
  97. package/dist/core/goals/goal-continuation-controller.d.ts.map +1 -1
  98. package/dist/core/goals/goal-continuation-controller.js +42 -11
  99. package/dist/core/goals/goal-continuation-controller.js.map +1 -1
  100. package/dist/core/goals/goal-continuation-defaults.d.ts +4 -29
  101. package/dist/core/goals/goal-continuation-defaults.d.ts.map +1 -1
  102. package/dist/core/goals/goal-continuation-defaults.js +4 -32
  103. package/dist/core/goals/goal-continuation-defaults.js.map +1 -1
  104. package/dist/core/goals/goal-continuation-prompt.d.ts +8 -18
  105. package/dist/core/goals/goal-continuation-prompt.d.ts.map +1 -1
  106. package/dist/core/goals/goal-continuation-prompt.js +9 -179
  107. package/dist/core/goals/goal-continuation-prompt.js.map +1 -1
  108. package/dist/core/goals/goal-lifecycle.d.ts +35 -12
  109. package/dist/core/goals/goal-lifecycle.d.ts.map +1 -1
  110. package/dist/core/goals/goal-lifecycle.js +98 -13
  111. package/dist/core/goals/goal-lifecycle.js.map +1 -1
  112. package/dist/core/goals/goal-record.d.ts +17 -0
  113. package/dist/core/goals/goal-record.d.ts.map +1 -0
  114. package/dist/core/goals/goal-record.js +31 -0
  115. package/dist/core/goals/goal-record.js.map +1 -0
  116. package/dist/core/goals/goal-session-controller.d.ts +42 -0
  117. package/dist/core/goals/goal-session-controller.d.ts.map +1 -0
  118. package/dist/core/goals/goal-session-controller.js +128 -0
  119. package/dist/core/goals/goal-session-controller.js.map +1 -0
  120. package/dist/core/goals/goal-state.d.ts +45 -25
  121. package/dist/core/goals/goal-state.d.ts.map +1 -1
  122. package/dist/core/goals/goal-state.js +85 -15
  123. package/dist/core/goals/goal-state.js.map +1 -1
  124. package/dist/core/goals/goal-tool-core.d.ts +1 -4
  125. package/dist/core/goals/goal-tool-core.d.ts.map +1 -1
  126. package/dist/core/goals/goal-tool-core.js +49 -34
  127. package/dist/core/goals/goal-tool-core.js.map +1 -1
  128. package/dist/core/goals/session-goal-state.d.ts +18 -8
  129. package/dist/core/goals/session-goal-state.d.ts.map +1 -1
  130. package/dist/core/goals/session-goal-state.js +134 -11
  131. package/dist/core/goals/session-goal-state.js.map +1 -1
  132. package/dist/core/human-input-controller.d.ts +47 -0
  133. package/dist/core/human-input-controller.d.ts.map +1 -0
  134. package/dist/core/human-input-controller.js +181 -0
  135. package/dist/core/human-input-controller.js.map +1 -0
  136. package/dist/core/local-runtime-controller.d.ts +1 -1
  137. package/dist/core/local-runtime-controller.d.ts.map +1 -1
  138. package/dist/core/local-runtime-controller.js.map +1 -1
  139. package/dist/core/model-capability.d.ts +0 -19
  140. package/dist/core/model-capability.d.ts.map +1 -1
  141. package/dist/core/model-capability.js +0 -19
  142. package/dist/core/model-capability.js.map +1 -1
  143. package/dist/core/model-registry.d.ts +6 -1
  144. package/dist/core/model-registry.d.ts.map +1 -1
  145. package/dist/core/model-registry.js +13 -5
  146. package/dist/core/model-registry.js.map +1 -1
  147. package/dist/core/model-resolver.d.ts +16 -1
  148. package/dist/core/model-resolver.d.ts.map +1 -1
  149. package/dist/core/model-resolver.js +32 -16
  150. package/dist/core/model-resolver.js.map +1 -1
  151. package/dist/core/model-router-controller.d.ts +1 -1
  152. package/dist/core/model-router-controller.d.ts.map +1 -1
  153. package/dist/core/model-router-controller.js.map +1 -1
  154. package/dist/core/model-selection-controller.d.ts +1 -1
  155. package/dist/core/model-selection-controller.d.ts.map +1 -1
  156. package/dist/core/model-selection-controller.js.map +1 -1
  157. package/dist/core/orchestration/delegation-ledger.d.ts.map +1 -1
  158. package/dist/core/orchestration/delegation-ledger.js +3 -0
  159. package/dist/core/orchestration/delegation-ledger.js.map +1 -1
  160. package/dist/core/orchestration/work-state-projection.d.ts.map +1 -1
  161. package/dist/core/orchestration/work-state-projection.js +1 -1
  162. package/dist/core/orchestration/work-state-projection.js.map +1 -1
  163. package/dist/core/package-manager.d.ts.map +1 -1
  164. package/dist/core/package-manager.js +20 -3
  165. package/dist/core/package-manager.js.map +1 -1
  166. package/dist/core/profile-filter-controller.d.ts +8 -1
  167. package/dist/core/profile-filter-controller.d.ts.map +1 -1
  168. package/dist/core/profile-filter-controller.js +23 -5
  169. package/dist/core/profile-filter-controller.js.map +1 -1
  170. package/dist/core/prompt-templates.d.ts +1 -0
  171. package/dist/core/prompt-templates.d.ts.map +1 -1
  172. package/dist/core/prompt-templates.js +18 -29
  173. package/dist/core/prompt-templates.js.map +1 -1
  174. package/dist/core/reflection-controller.d.ts +1 -1
  175. package/dist/core/reflection-controller.d.ts.map +1 -1
  176. package/dist/core/reflection-controller.js +3 -1
  177. package/dist/core/reflection-controller.js.map +1 -1
  178. package/dist/core/request-auth.d.ts +7 -0
  179. package/dist/core/request-auth.d.ts.map +1 -0
  180. package/dist/core/request-auth.js +8 -0
  181. package/dist/core/request-auth.js.map +1 -0
  182. package/dist/core/resource-loader.d.ts.map +1 -1
  183. package/dist/core/resource-loader.js +16 -6
  184. package/dist/core/resource-loader.js.map +1 -1
  185. package/dist/core/risk-classifier.d.ts.map +1 -1
  186. package/dist/core/risk-classifier.js +8 -0
  187. package/dist/core/risk-classifier.js.map +1 -1
  188. package/dist/core/runtime-builder.d.ts +15 -3
  189. package/dist/core/runtime-builder.d.ts.map +1 -1
  190. package/dist/core/runtime-builder.js +132 -79
  191. package/dist/core/runtime-builder.js.map +1 -1
  192. package/dist/core/sdk.d.ts.map +1 -1
  193. package/dist/core/sdk.js +7 -1
  194. package/dist/core/sdk.js.map +1 -1
  195. package/dist/core/secrets/credential-exposure-guard.d.ts +9 -0
  196. package/dist/core/secrets/credential-exposure-guard.d.ts.map +1 -0
  197. package/dist/core/secrets/credential-exposure-guard.js +241 -0
  198. package/dist/core/secrets/credential-exposure-guard.js.map +1 -0
  199. package/dist/core/secrets/secret-dotenv.d.ts +27 -0
  200. package/dist/core/secrets/secret-dotenv.d.ts.map +1 -0
  201. package/dist/core/secrets/secret-dotenv.js +183 -0
  202. package/dist/core/secrets/secret-dotenv.js.map +1 -0
  203. package/dist/core/secrets/secret-vault-format.d.ts +112 -0
  204. package/dist/core/secrets/secret-vault-format.d.ts.map +1 -0
  205. package/dist/core/secrets/secret-vault-format.js +397 -0
  206. package/dist/core/secrets/secret-vault-format.js.map +1 -0
  207. package/dist/core/secrets/secret-vault.d.ts +72 -0
  208. package/dist/core/secrets/secret-vault.d.ts.map +1 -0
  209. package/dist/core/secrets/secret-vault.js +671 -0
  210. package/dist/core/secrets/secret-vault.js.map +1 -0
  211. package/dist/core/session-analytics.d.ts +4 -23
  212. package/dist/core/session-analytics.d.ts.map +1 -1
  213. package/dist/core/session-analytics.js +39 -69
  214. package/dist/core/session-analytics.js.map +1 -1
  215. package/dist/core/session-role.d.ts +5 -0
  216. package/dist/core/session-role.d.ts.map +1 -1
  217. package/dist/core/session-role.js +14 -1
  218. package/dist/core/session-role.js.map +1 -1
  219. package/dist/core/session-tree-navigator.d.ts +4 -6
  220. package/dist/core/session-tree-navigator.d.ts.map +1 -1
  221. package/dist/core/session-tree-navigator.js +4 -1
  222. package/dist/core/session-tree-navigator.js.map +1 -1
  223. package/dist/core/settings-manager.d.ts +1 -1
  224. package/dist/core/settings-manager.d.ts.map +1 -1
  225. package/dist/core/settings-manager.js +1 -1
  226. package/dist/core/settings-manager.js.map +1 -1
  227. package/dist/core/slash-commands.d.ts.map +1 -1
  228. package/dist/core/slash-commands.js +2 -2
  229. package/dist/core/slash-commands.js.map +1 -1
  230. package/dist/core/tool-capability-policy.d.ts.map +1 -1
  231. package/dist/core/tool-capability-policy.js +1 -0
  232. package/dist/core/tool-capability-policy.js.map +1 -1
  233. package/dist/core/tool-gate-controller.d.ts.map +1 -1
  234. package/dist/core/tool-gate-controller.js +8 -2
  235. package/dist/core/tool-gate-controller.js.map +1 -1
  236. package/dist/core/tool-protocol-controller.d.ts +2 -4
  237. package/dist/core/tool-protocol-controller.d.ts.map +1 -1
  238. package/dist/core/tool-protocol-controller.js.map +1 -1
  239. package/dist/core/tool-recovery-stats.d.ts +21 -1
  240. package/dist/core/tool-recovery-stats.d.ts.map +1 -1
  241. package/dist/core/tool-recovery-stats.js.map +1 -1
  242. package/dist/core/tools/bash.d.ts +5 -0
  243. package/dist/core/tools/bash.d.ts.map +1 -1
  244. package/dist/core/tools/bash.js +59 -5
  245. package/dist/core/tools/bash.js.map +1 -1
  246. package/dist/core/tools/delegate-status.d.ts.map +1 -1
  247. package/dist/core/tools/delegate-status.js +6 -7
  248. package/dist/core/tools/delegate-status.js.map +1 -1
  249. package/dist/core/tools/delegate.d.ts.map +1 -1
  250. package/dist/core/tools/delegate.js +6 -8
  251. package/dist/core/tools/delegate.js.map +1 -1
  252. package/dist/core/tools/git-filter.d.ts +1 -8
  253. package/dist/core/tools/git-filter.d.ts.map +1 -1
  254. package/dist/core/tools/git-filter.js +2 -63
  255. package/dist/core/tools/git-filter.js.map +1 -1
  256. package/dist/core/tools/goal.d.ts +5 -3
  257. package/dist/core/tools/goal.d.ts.map +1 -1
  258. package/dist/core/tools/goal.js +97 -19
  259. package/dist/core/tools/goal.js.map +1 -1
  260. package/dist/core/tools/index.d.ts +1 -0
  261. package/dist/core/tools/index.d.ts.map +1 -1
  262. package/dist/core/tools/index.js +1 -0
  263. package/dist/core/tools/index.js.map +1 -1
  264. package/dist/core/tools/orchestration-panel.d.ts +1 -4
  265. package/dist/core/tools/orchestration-panel.d.ts.map +1 -1
  266. package/dist/core/tools/orchestration-panel.js +0 -44
  267. package/dist/core/tools/orchestration-panel.js.map +1 -1
  268. package/dist/core/tools/output-accumulator.d.ts +11 -0
  269. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  270. package/dist/core/tools/output-accumulator.js +36 -3
  271. package/dist/core/tools/output-accumulator.js.map +1 -1
  272. package/dist/core/tools/python.d.ts +2 -0
  273. package/dist/core/tools/python.d.ts.map +1 -1
  274. package/dist/core/tools/python.js +3 -1
  275. package/dist/core/tools/python.js.map +1 -1
  276. package/dist/core/tools/read.d.ts.map +1 -1
  277. package/dist/core/tools/read.js +1 -1
  278. package/dist/core/tools/read.js.map +1 -1
  279. package/dist/core/tools/search-command-guard.d.ts +14 -0
  280. package/dist/core/tools/search-command-guard.d.ts.map +1 -0
  281. package/dist/core/tools/search-command-guard.js +333 -0
  282. package/dist/core/tools/search-command-guard.js.map +1 -0
  283. package/dist/core/tools/secret-store.d.ts +38 -0
  284. package/dist/core/tools/secret-store.d.ts.map +1 -0
  285. package/dist/core/tools/secret-store.js +412 -0
  286. package/dist/core/tools/secret-store.js.map +1 -0
  287. package/dist/core/tools/shell-command-parser.d.ts +16 -0
  288. package/dist/core/tools/shell-command-parser.d.ts.map +1 -0
  289. package/dist/core/tools/shell-command-parser.js +113 -0
  290. package/dist/core/tools/shell-command-parser.js.map +1 -0
  291. package/dist/core/tools/task-steps.d.ts.map +1 -1
  292. package/dist/core/tools/task-steps.js +4 -7
  293. package/dist/core/tools/task-steps.js.map +1 -1
  294. package/dist/core/util/atomic-file.d.ts +6 -2
  295. package/dist/core/util/atomic-file.d.ts.map +1 -1
  296. package/dist/core/util/atomic-file.js +4 -4
  297. package/dist/core/util/atomic-file.js.map +1 -1
  298. package/dist/index.d.ts +3 -2
  299. package/dist/index.d.ts.map +1 -1
  300. package/dist/index.js +2 -1
  301. package/dist/index.js.map +1 -1
  302. package/dist/main.d.ts.map +1 -1
  303. package/dist/main.js +25 -11
  304. package/dist/main.js.map +1 -1
  305. package/dist/modes/interactive/auth-dialogs-controller.d.ts +4 -0
  306. package/dist/modes/interactive/auth-dialogs-controller.d.ts.map +1 -1
  307. package/dist/modes/interactive/auth-dialogs-controller.js +60 -1
  308. package/dist/modes/interactive/auth-dialogs-controller.js.map +1 -1
  309. package/dist/modes/interactive/components/activity-lane.d.ts +55 -0
  310. package/dist/modes/interactive/components/activity-lane.d.ts.map +1 -0
  311. package/dist/modes/interactive/components/activity-lane.js +304 -0
  312. package/dist/modes/interactive/components/activity-lane.js.map +1 -0
  313. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  314. package/dist/modes/interactive/components/assistant-message.js +19 -10
  315. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  316. package/dist/modes/interactive/components/expandable-text.d.ts +12 -0
  317. package/dist/modes/interactive/components/expandable-text.d.ts.map +1 -0
  318. package/dist/modes/interactive/components/expandable-text.js +17 -0
  319. package/dist/modes/interactive/components/expandable-text.js.map +1 -0
  320. package/dist/modes/interactive/components/extension-editor.d.ts +15 -1
  321. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  322. package/dist/modes/interactive/components/extension-editor.js +30 -21
  323. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  324. package/dist/modes/interactive/components/extension-input.d.ts +1 -0
  325. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  326. package/dist/modes/interactive/components/extension-input.js +6 -1
  327. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  328. package/dist/modes/interactive/components/scoped-models-selector.d.ts +2 -2
  329. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  330. package/dist/modes/interactive/components/scoped-models-selector.js +23 -14
  331. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  332. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  333. package/dist/modes/interactive/components/settings-selector.js +4 -4
  334. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  335. package/dist/modes/interactive/components/tool-execution.d.ts +19 -11
  336. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  337. package/dist/modes/interactive/components/tool-execution.js +53 -20
  338. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  339. package/dist/modes/interactive/components/tool-group.d.ts.map +1 -1
  340. package/dist/modes/interactive/components/tool-group.js +3 -0
  341. package/dist/modes/interactive/components/tool-group.js.map +1 -1
  342. package/dist/modes/interactive/components/usage-action-selector.d.ts +16 -0
  343. package/dist/modes/interactive/components/usage-action-selector.d.ts.map +1 -0
  344. package/dist/modes/interactive/components/usage-action-selector.js +46 -0
  345. package/dist/modes/interactive/components/usage-action-selector.js.map +1 -0
  346. package/dist/modes/interactive/extension-ui-host.d.ts.map +1 -1
  347. package/dist/modes/interactive/extension-ui-host.js +1 -0
  348. package/dist/modes/interactive/extension-ui-host.js.map +1 -1
  349. package/dist/modes/interactive/external-editor.d.ts +15 -0
  350. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  351. package/dist/modes/interactive/external-editor.js +27 -19
  352. package/dist/modes/interactive/external-editor.js.map +1 -1
  353. package/dist/modes/interactive/history-reload-math.d.ts +6 -2
  354. package/dist/modes/interactive/history-reload-math.d.ts.map +1 -1
  355. package/dist/modes/interactive/history-reload-math.js +10 -5
  356. package/dist/modes/interactive/history-reload-math.js.map +1 -1
  357. package/dist/modes/interactive/interactive-event-controller.d.ts +74 -0
  358. package/dist/modes/interactive/interactive-event-controller.d.ts.map +1 -0
  359. package/dist/modes/interactive/interactive-event-controller.js +328 -0
  360. package/dist/modes/interactive/interactive-event-controller.js.map +1 -0
  361. package/dist/modes/interactive/interactive-mode.d.ts +20 -25
  362. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  363. package/dist/modes/interactive/interactive-mode.js +196 -608
  364. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  365. package/dist/modes/interactive/loaded-resources-view.d.ts +20 -0
  366. package/dist/modes/interactive/loaded-resources-view.d.ts.map +1 -0
  367. package/dist/modes/interactive/loaded-resources-view.js +147 -0
  368. package/dist/modes/interactive/loaded-resources-view.js.map +1 -0
  369. package/dist/modes/interactive/resource-display.d.ts.map +1 -1
  370. package/dist/modes/interactive/resource-display.js +8 -2
  371. package/dist/modes/interactive/resource-display.js.map +1 -1
  372. package/dist/modes/interactive/resource-shell-commands.d.ts +1 -5
  373. package/dist/modes/interactive/resource-shell-commands.d.ts.map +1 -1
  374. package/dist/modes/interactive/resource-shell-commands.js +0 -5
  375. package/dist/modes/interactive/resource-shell-commands.js.map +1 -1
  376. package/dist/modes/interactive/session-flow-commands.d.ts +10 -6
  377. package/dist/modes/interactive/session-flow-commands.d.ts.map +1 -1
  378. package/dist/modes/interactive/session-flow-commands.js +123 -70
  379. package/dist/modes/interactive/session-flow-commands.js.map +1 -1
  380. package/dist/modes/interactive/usage-commands.d.ts +34 -0
  381. package/dist/modes/interactive/usage-commands.d.ts.map +1 -0
  382. package/dist/modes/interactive/usage-commands.js +225 -0
  383. package/dist/modes/interactive/usage-commands.js.map +1 -0
  384. package/dist/utils/shell.d.ts.map +1 -1
  385. package/dist/utils/shell.js +5 -3
  386. package/dist/utils/shell.js.map +1 -1
  387. package/dist/utils/version-check.d.ts.map +1 -1
  388. package/dist/utils/version-check.js +3 -1
  389. package/dist/utils/version-check.js.map +1 -1
  390. package/docs/UI_POLISH_ORCHESTRATION.md +25 -31
  391. package/docs/UI_QUALITY_ORCHESTRATION.md +22 -24
  392. package/docs/providers.md +9 -1
  393. package/docs/ui-reference/README.md +6 -6
  394. package/docs/ui-reference/orchestration-after.txt +14 -7
  395. package/docs/ui-reference/orchestration-before.txt +12 -6
  396. package/docs/ui-reference/orchestration-reference.txt +15 -5
  397. package/docs/usage.md +9 -1
  398. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  399. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  400. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  401. package/examples/extensions/sandbox/package-lock.json +2 -2
  402. package/examples/extensions/sandbox/package.json +1 -1
  403. package/examples/extensions/with-deps/package-lock.json +2 -2
  404. package/examples/extensions/with-deps/package.json +1 -1
  405. package/npm-shrinkwrap.json +13 -13
  406. package/package.json +4 -4
@@ -10,10 +10,11 @@
10
10
  * `handleSessionCommand`) take their own minimal host shapes so their behaviour
11
11
  * tests keep exercising them through interactive-mode's thin wrappers unchanged.
12
12
  */
13
+ import { randomUUID } from "node:crypto";
13
14
  import { Loader, Spacer, Text } from "@caupulican/pi-tui";
14
- import { resumeBlockedPersistedGoal, resumePersistedGoal } from "../../core/goals/goal-lifecycle.js";
15
+ import { cancelPersistedGoal, clearPersistedGoal, editPersistedGoal, getGoalStateRevision, pausePersistedGoal, replaceGoal, resumeGoal, resumePersistedGoal, } from "../../core/goals/goal-lifecycle.js";
15
16
  import { applyGoalAction, completeGoalManually } from "../../core/goals/goal-tool-core.js";
16
- import { findExactModelReferenceMatch, resolveModelScope } from "../../core/model-resolver.js";
17
+ import { findExactModelReferenceMatch, resolveModelScope, resolveModelScopeWithDiagnostics, } from "../../core/model-resolver.js";
17
18
  import { MissingSessionCwdError } from "../../core/session-cwd.js";
18
19
  import { listAllSessions, listSessions, openSession } from "../../core/session-manager-factory.js";
19
20
  import { parseTaskCommand } from "../../core/tasks/task-command.js";
@@ -67,12 +68,17 @@ export async function showModelsSelector(host) {
67
68
  // Get all available models
68
69
  host.session.modelRegistry.refresh();
69
70
  const allModels = host.session.modelRegistry.getAvailable();
70
- if (allModels.length === 0) {
71
+ const allModelIds = new Set(allModels.map((model) => `${model.provider}/${model.id}`));
72
+ const configuredPatterns = host.settingsManager.getEnabledModels();
73
+ const sessionScopedModels = host.session.scopedModels;
74
+ if (allModels.length === 0 && !configuredPatterns?.length && sessionScopedModels.length === 0) {
71
75
  host.showStatus("No models available");
72
76
  return;
73
77
  }
78
+ const configuredScope = configuredPatterns?.length
79
+ ? await resolveModelScopeWithDiagnostics(configuredPatterns, host.session.modelRegistry)
80
+ : undefined;
74
81
  // Check if session has scoped models (from previous session-only changes or CLI --models)
75
- const sessionScopedModels = host.session.scopedModels;
76
82
  const hasSessionScope = sessionScopedModels.length > 0;
77
83
  // Build enabled model IDs from session state or settings
78
84
  let currentEnabledIds = null;
@@ -80,18 +86,22 @@ export async function showModelsSelector(host) {
80
86
  // Use current session's scoped models
81
87
  currentEnabledIds = sessionScopedModels.map((scoped) => `${scoped.model.provider}/${scoped.model.id}`);
82
88
  }
83
- else {
84
- // Fall back to settings
85
- const patterns = host.settingsManager.getEnabledModels();
86
- if (patterns !== undefined && patterns.length > 0) {
87
- const scopedModels = await resolveModelScope(patterns, host.session.modelRegistry);
88
- currentEnabledIds = scopedModels.map((scoped) => `${scoped.model.provider}/${scoped.model.id}`);
89
- }
89
+ else if (configuredScope) {
90
+ currentEnabledIds = configuredScope.scopedModels.map((scoped) => `${scoped.model.provider}/${scoped.model.id}`);
91
+ }
92
+ for (const diagnostic of configuredScope?.diagnostics ?? []) {
93
+ if (diagnostic.code !== "no-match")
94
+ continue;
95
+ currentEnabledIds ??= [];
96
+ if (!currentEnabledIds.includes(diagnostic.pattern))
97
+ currentEnabledIds.push(diagnostic.pattern);
90
98
  }
91
99
  // Helper to update session's scoped models (session-only, no persist)
92
100
  const updateSessionModels = async (enabledIds) => {
93
101
  currentEnabledIds = enabledIds === null ? null : [...enabledIds];
94
- if (enabledIds && enabledIds.length > 0 && enabledIds.length < allModels.length) {
102
+ const hasEnabledAvailableModel = enabledIds?.some((id) => allModelIds.has(id)) ?? false;
103
+ const allAvailableModelsEnabled = enabledIds !== null && [...allModelIds].every((id) => enabledIds.includes(id));
104
+ if (enabledIds && hasEnabledAvailableModel && !allAvailableModelsEnabled) {
95
105
  const newScopedModels = await resolveModelScope(enabledIds, host.session.modelRegistry);
96
106
  host.session.setScopedModels(newScopedModels.map((sm) => ({
97
107
  model: sm.model,
@@ -115,9 +125,10 @@ export async function showModelsSelector(host) {
115
125
  },
116
126
  onPersist: (enabledIds) => {
117
127
  // Persist to settings
118
- const newPatterns = enabledIds === null || enabledIds.length === allModels.length
119
- ? undefined // All enabled = clear filter
120
- : enabledIds;
128
+ const allEnabled = enabledIds !== null &&
129
+ enabledIds.length === allModels.length &&
130
+ enabledIds.every((id) => allModelIds.has(id));
131
+ const newPatterns = enabledIds === null || allEnabled ? undefined : enabledIds;
121
132
  host.settingsManager.setEnabledModels(newPatterns ? [...newPatterns] : undefined);
122
133
  host.showStatus("Model selection saved to settings");
123
134
  },
@@ -313,19 +324,30 @@ export function showSessionSelector(host) {
313
324
  return { component: selector, focus: selector };
314
325
  });
315
326
  }
316
- async function switchSessionAndResumeGoal(host, sessionPath, options, cwdOverride) {
317
- let goalResume = { ok: true, resumed: false };
318
- const result = await host.runtimeHost.switchSession(sessionPath, {
327
+ async function switchSession(host, sessionPath, options, cwdOverride) {
328
+ return host.runtimeHost.switchSession(sessionPath, {
319
329
  cwdOverride,
320
- beforeSessionResourcesStart: (session) => {
321
- const resumed = resumeBlockedGoalAfterSessionSwitch(session, () => host.refreshAutonomyFooterStatus());
322
- if (!resumed.ok)
323
- throw new Error(`Goal resume failed: ${resumed.error}`);
324
- goalResume = resumed;
325
- },
326
330
  withSession: options?.withSession,
327
331
  });
328
- return { ...result, goalResume };
332
+ }
333
+ async function offerRestoredGoalResume(host) {
334
+ const state = host.session.getGoalStateSnapshot();
335
+ if (!state || (state.status !== "paused" && state.status !== "blocked" && state.status !== "usage_limited")) {
336
+ host.session.restoreGoalRuntimeAfterResume();
337
+ return false;
338
+ }
339
+ const choice = await host.extensionUiHost?.showExtensionSelector("Resume stopped goal?", [
340
+ "Resume goal",
341
+ "Leave stopped",
342
+ ]);
343
+ if (choice !== "Resume goal")
344
+ return false;
345
+ const resumed = resumePersistedGoal(host.session);
346
+ if (!resumed.ok)
347
+ throw new Error(`Goal resume failed: ${resumed.error}`);
348
+ host.session.restoreGoalRuntimeAfterResume();
349
+ host.refreshAutonomyFooterStatus();
350
+ return true;
329
351
  }
330
352
  export async function handleResumeSession(host, sessionPath, options) {
331
353
  if (host.loadingAnimation) {
@@ -334,12 +356,13 @@ export async function handleResumeSession(host, sessionPath, options) {
334
356
  }
335
357
  host.statusContainer.clear();
336
358
  try {
337
- const result = await switchSessionAndResumeGoal(host, sessionPath, options);
359
+ const result = await switchSession(host, sessionPath, options);
338
360
  if (result.cancelled) {
339
361
  return result;
340
362
  }
341
363
  host.renderCurrentSessionState();
342
- host.showStatus(result.goalResume.resumed ? "Resumed session and goal" : "Resumed session");
364
+ const goalResumed = await offerRestoredGoalResume(host);
365
+ host.showStatus(goalResumed ? "Resumed session and goal" : "Resumed session; goal state preserved");
343
366
  return result;
344
367
  }
345
368
  catch (error) {
@@ -353,12 +376,15 @@ export async function handleResumeSession(host, sessionPath, options) {
353
376
  return { cancelled: true };
354
377
  }
355
378
  try {
356
- const result = await switchSessionAndResumeGoal(host, sessionPath, options, selectedCwd);
379
+ const result = await switchSession(host, sessionPath, options, selectedCwd);
357
380
  if (result.cancelled) {
358
381
  return result;
359
382
  }
360
383
  host.renderCurrentSessionState();
361
- host.showStatus(result.goalResume.resumed ? "Resumed session and goal in current cwd" : "Resumed session in current cwd");
384
+ const goalResumed = await offerRestoredGoalResume(host);
385
+ host.showStatus(goalResumed
386
+ ? "Resumed session and goal in current cwd"
387
+ : "Resumed session in current cwd; goal state preserved");
362
388
  return result;
363
389
  }
364
390
  catch (retryError) {
@@ -425,15 +451,10 @@ export function resumeCurrentGoal(host, now = new Date().toISOString()) {
425
451
  const resumed = resumePersistedGoal(host.session, now);
426
452
  if (!resumed.ok)
427
453
  return resumed;
454
+ host.session.restoreGoalRuntimeAfterResume();
428
455
  host.refreshAutonomyFooterStatus();
429
456
  return { ok: true, resumed: true, state: resumed.state };
430
457
  }
431
- function resumeBlockedGoalAfterSessionSwitch(session, refreshAutonomyFooterStatus) {
432
- const resumed = resumeBlockedPersistedGoal(session);
433
- if (resumed.ok && resumed.resumed)
434
- refreshAutonomyFooterStatus();
435
- return resumed;
436
- }
437
458
  function formatGoalStatus(snapshot) {
438
459
  const state = snapshot.goalState;
439
460
  if (!state)
@@ -444,12 +465,17 @@ function formatGoalStatus(snapshot) {
444
465
  });
445
466
  const blockedReason = state.blockedReason ? `\nBlocked reason: ${state.blockedReason}` : "";
446
467
  const requirementDetails = requirements.length > 0 ? `\n${requirements.join("\n")}` : "";
447
- return `Goal: ${state.userGoal}\nStatus: ${state.status}${blockedReason}\nRequirements: open ${snapshot.continuation.openRequirementIds.length}, blocked ${snapshot.continuation.blockedRequirementIds.length}, satisfied ${snapshot.continuation.satisfiedRequirementIds.length}${requirementDetails}\nContinuation: ${snapshot.continuation.action}/${snapshot.continuation.reasonCode}\nControls: /goal resume | /goal reopen <requirement-id> | /goal complete | /goal close | /goal override <text>`;
468
+ const tokenUsage = state.tokenBudget !== undefined
469
+ ? `\nTokens: ${state.tokensUsed ?? 0}/${state.tokenBudget}`
470
+ : (state.tokensUsed ?? 0) > 0
471
+ ? `\nTokens: ${state.tokensUsed ?? 0}`
472
+ : "";
473
+ return `Goal: ${state.userGoal}\nStatus: ${state.status}${blockedReason}${tokenUsage}\nRequirements: open ${snapshot.continuation.openRequirementIds.length}, blocked ${snapshot.continuation.blockedRequirementIds.length}, satisfied ${snapshot.continuation.satisfiedRequirementIds.length}${requirementDetails}\nContinuation: ${snapshot.continuation.action}/${snapshot.continuation.reasonCode}\nControls: /goal edit | /goal pause | /goal resume | /goal reopen <requirement-id> | /goal complete | /goal clear | /goal override <text>`;
448
474
  }
449
475
  export async function handleGoalCommand(host, text) {
450
476
  const input = text.replace(/^\/goal\s*/, "").trim();
451
477
  if (!input || input === "status") {
452
- host.showStatus(formatGoalStatus(host.session.getGoalRuntimeSnapshot({ maxStallTurns: 20 })));
478
+ host.showStatus(formatGoalStatus(host.session.getGoalRuntimeSnapshot({ maxStallTurns: host.getMaxStallTurns?.() ?? 20 })));
453
479
  return;
454
480
  }
455
481
  const now = new Date().toISOString();
@@ -463,24 +489,61 @@ export async function handleGoalCommand(host, text) {
463
489
  host.showStatus("Goal resumed.");
464
490
  return;
465
491
  }
492
+ if (input === "pause") {
493
+ const paused = pausePersistedGoal(host.session, now);
494
+ if (!paused.ok) {
495
+ host.showError(paused.error);
496
+ return;
497
+ }
498
+ host.showStatus("Goal paused.");
499
+ host.refreshAutonomyFooterStatus();
500
+ return;
501
+ }
502
+ if (input === "edit" || input.startsWith("edit ")) {
503
+ const inlineObjective = input.slice("edit".length).trim();
504
+ const objective = inlineObjective || (current ? await host.promptForGoalEdit?.(current.userGoal) : undefined);
505
+ if (!objective) {
506
+ host.showError(current ? "Usage: /goal edit <objective>" : "No goal exists to edit.");
507
+ return;
508
+ }
509
+ const edited = editPersistedGoal(host.session, { userGoal: objective }, now);
510
+ if (!edited.ok) {
511
+ host.showError(edited.error);
512
+ return;
513
+ }
514
+ if (edited.state.status === "active")
515
+ host.session.restoreGoalRuntimeAfterResume();
516
+ host.showStatus("Goal updated.");
517
+ host.refreshAutonomyFooterStatus();
518
+ return;
519
+ }
466
520
  if (input === "complete") {
467
521
  const completed = completeGoalManually(current, now);
468
522
  if (!completed.ok) {
469
523
  host.showError(completed.error);
470
524
  return;
471
525
  }
472
- host.session.saveGoalStateSnapshot(completed.state);
526
+ host.session.saveGoalStateSnapshot(completed.state, current ? getGoalStateRevision(current) : undefined);
473
527
  host.showStatus("Goal completed manually.");
474
528
  host.refreshAutonomyFooterStatus();
475
529
  return;
476
530
  }
531
+ if (input === "clear") {
532
+ const cleared = clearPersistedGoal(host.session, now);
533
+ if (!cleared.ok) {
534
+ host.showError(cleared.error);
535
+ return;
536
+ }
537
+ host.showStatus(cleared.cleared ? "Goal cleared." : "No goal exists to clear.");
538
+ host.refreshAutonomyFooterStatus();
539
+ return;
540
+ }
477
541
  if (input === "close" || input === "cancel") {
478
- const cancelled = applyGoalAction(current, { action: "cancel" }, now);
542
+ const cancelled = cancelPersistedGoal(host.session, now);
479
543
  if (!cancelled.ok) {
480
544
  host.showError(cancelled.error);
481
545
  return;
482
546
  }
483
- host.session.saveGoalStateSnapshot(cancelled.state);
484
547
  host.showStatus("Goal closed.");
485
548
  host.refreshAutonomyFooterStatus();
486
549
  return;
@@ -504,7 +567,7 @@ export async function handleGoalCommand(host, text) {
504
567
  }
505
568
  let active = current;
506
569
  if (active.status === "blocked") {
507
- const resumed = resumePersistedGoal(host.session, now);
570
+ const resumed = resumeGoal(active, now);
508
571
  if (!resumed.ok) {
509
572
  host.showError(resumed.error);
510
573
  return;
@@ -516,7 +579,9 @@ export async function handleGoalCommand(host, text) {
516
579
  host.showError(reopened.error);
517
580
  return;
518
581
  }
519
- host.session.saveGoalStateSnapshot(reopened.state);
582
+ host.session.saveGoalStateSnapshot(reopened.state, getGoalStateRevision(current));
583
+ if (reopened.state.status === "active")
584
+ host.session.restoreGoalRuntimeAfterResume();
520
585
  host.showStatus(`Requirement '${requirementId}' reopened${current.status === "blocked" ? " and goal resumed" : ""}.`);
521
586
  host.refreshAutonomyFooterStatus();
522
587
  return;
@@ -527,40 +592,26 @@ export async function handleGoalCommand(host, text) {
527
592
  host.showError("Usage: /goal override <text>");
528
593
  return;
529
594
  }
530
- let startFrom = current;
531
- if (overriding && startFrom && (startFrom.status === "active" || startFrom.status === "blocked")) {
532
- const cancelled = applyGoalAction(startFrom, { action: "cancel" }, now);
533
- if (!cancelled.ok) {
534
- host.showError(cancelled.error);
535
- return;
536
- }
537
- startFrom = cancelled.state;
538
- host.session.saveGoalStateSnapshot(startFrom);
539
- }
540
- const goalId = `goal-${Date.now().toString(36)}`;
541
- const started = applyGoalAction(startFrom, { action: "start", goalId, userGoal: goalText }, now);
595
+ const goalId = `goal-${randomUUID()}`;
596
+ const started = overriding
597
+ ? replaceGoal({ goalId, userGoal: goalText }, now)
598
+ : applyGoalAction(current, { action: "start", goalId, userGoal: goalText }, now);
542
599
  if (!started.ok) {
543
600
  host.showError(`${started.error} Use /goal override <text> to replace it explicitly.`);
544
601
  return;
545
602
  }
546
- host.session.saveGoalStateSnapshot(started.state);
547
- // Deterministic producer completion: a goal with zero open requirements evaluates to
548
- // finalize/no_open_requirements, so the loop would be undrivable whenever the model skips
549
- // decomposition (observed in the field). Seed one requirement from the goal text itself —
550
- // the model's decomposition below refines alongside it.
551
- const seeded = applyGoalAction(started.state, { action: "add_requirement", requirementId: `${goalId}-r1`, text: goalText }, now);
552
- if (seeded.ok) {
553
- host.session.saveGoalStateSnapshot(seeded.state);
554
- }
555
- await host.session.sendUserMessage(`Start goal: ${goalText}\n\nUse the goal tool this turn to decompose this goal into concrete open requirements with add_requirement actions, and satisfy_requirement ${goalId}-r1 once the decomposed requirements cover it.`);
603
+ host.session.saveGoalStateSnapshot(started.state, current ? getGoalStateRevision(current) : undefined);
556
604
  const verb = overriding ? "overridden" : "started";
557
605
  try {
558
- const result = await host.session.continueGoalLoop({ maxTurns: 1, maxStallTurns: 20, maxWallClockMinutes: 0 });
606
+ // Submit one bootstrap pass, then yield to the event-driven idle scheduler. This is a scheduling
607
+ // quantum, not a goal ceiling: an active goal is immediately rearmed and the configured goal turn
608
+ // limit (unbounded by default) governs subsequent continuation.
609
+ const result = await host.session.continueGoalLoop({
610
+ maxTurns: 1,
611
+ maxStallTurns: host.getMaxStallTurns?.() ?? 20,
612
+ maxWallClockMinutes: 0,
613
+ });
559
614
  if (result.stopReason === "already_continuing") {
560
- // The idle autosteer timer armed by `sendUserMessage` above already won the single-flight
561
- // guard (`BackgroundLaneController.continueGoalLoopExclusive`) — this request never ran a
562
- // pass, so reporting `finalSnapshot.continuation` here would misleadingly imply a fresh
563
- // decision was made.
564
615
  host.showStatus(`Goal ${verb}: the autonomy loop is already continuing this goal.`);
565
616
  }
566
617
  else if (result.stopReason === "session_disposed") {
@@ -569,6 +620,8 @@ export async function handleGoalCommand(host, text) {
569
620
  else {
570
621
  const continuation = result.finalSnapshot.continuation;
571
622
  host.showStatus(`Goal ${verb}: ${continuation.action}/${continuation.reasonCode}.`);
623
+ if (continuation.action === "continue")
624
+ host.session.restoreGoalRuntimeAfterResume();
572
625
  }
573
626
  }
574
627
  catch (error) {
@@ -625,7 +678,7 @@ export async function handleGoalContinueCommand(host, text) {
625
678
  host.showError(parsed.error);
626
679
  return;
627
680
  }
628
- host.showStatus(`Goal continuation started: up to ${parsed.maxTurns} turn(s), stall limit ${parsed.maxStallTurns}, wall-clock limit ${parsed.maxWallClockMinutes || "disabled"} minute(s).`);
681
+ host.showStatus(`Goal continuation started: ${parsed.maxTurns === 0 ? "unbounded turns" : `up to ${parsed.maxTurns} turn(s)`}, stall limit ${parsed.maxStallTurns}, wall-clock limit ${parsed.maxWallClockMinutes || "disabled"} minute(s).`);
629
682
  try {
630
683
  const result = await host.session.continueGoalLoop({
631
684
  maxTurns: parsed.maxTurns,