@caupulican/pi-adaptative 0.81.38 → 0.81.40

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 (881) hide show
  1. package/CHANGELOG.md +131 -0
  2. package/README.md +2 -0
  3. package/dist/bundled-resources/extensions/tmux-agent-manager/README.md +18 -1
  4. package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.d.ts +133 -0
  5. package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.d.ts.map +1 -0
  6. package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.js +198 -0
  7. package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.js.map +1 -0
  8. package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.ts +311 -0
  9. package/dist/bundled-resources/extensions/tmux-agent-manager/index.d.ts +31 -2
  10. package/dist/bundled-resources/extensions/tmux-agent-manager/index.d.ts.map +1 -1
  11. package/dist/bundled-resources/extensions/tmux-agent-manager/index.js +823 -79
  12. package/dist/bundled-resources/extensions/tmux-agent-manager/index.js.map +1 -1
  13. package/dist/bundled-resources/extensions/tmux-agent-manager/index.ts +1043 -86
  14. package/dist/bundled-resources/runtimes/pi-shell-engine/commands/__init__.py +43 -0
  15. package/dist/bundled-resources/runtimes/pi-shell-engine/commands/fs.py +270 -0
  16. package/dist/bundled-resources/runtimes/pi-shell-engine/commands/search.py +252 -0
  17. package/dist/bundled-resources/runtimes/pi-shell-engine/commands/strings.py +399 -0
  18. package/dist/bundled-resources/runtimes/pi-shell-engine/commands/text.py +575 -0
  19. package/dist/bundled-resources/runtimes/pi-shell-engine/context.py +52 -0
  20. package/dist/bundled-resources/runtimes/pi-shell-engine/errors.py +49 -0
  21. package/dist/bundled-resources/runtimes/pi-shell-engine/exec.py +734 -0
  22. package/dist/bundled-resources/runtimes/pi-shell-engine/expand.py +238 -0
  23. package/dist/bundled-resources/runtimes/pi-shell-engine/main.py +132 -0
  24. package/dist/bundled-resources/runtimes/pi-shell-engine/nodes.py +116 -0
  25. package/dist/bundled-resources/runtimes/pi-shell-engine/parser.py +287 -0
  26. package/dist/bundled-resources/runtimes/pi-shell-engine/proc.py +137 -0
  27. package/dist/bundled-resources/runtimes/pi-shell-engine/state.py +100 -0
  28. package/dist/bundled-resources/runtimes/pi-shell-engine/tokens.py +579 -0
  29. package/dist/bundled-resources/skills/tool-call-repair/SKILL.md +19 -9
  30. package/dist/bundled-resources/skills/tool-call-repair/references/failure-grammar.md +22 -5
  31. package/dist/bundled-resources/skills/tool-call-repair/references/repair-catalogue.md +7 -7
  32. package/dist/bundled-resources/skills/tool-call-repair/references/text-protocol-grammar.md +28 -7
  33. package/dist/cli/args.d.ts +5 -0
  34. package/dist/cli/args.d.ts.map +1 -1
  35. package/dist/cli/args.js +24 -0
  36. package/dist/cli/args.js.map +1 -1
  37. package/dist/core/agent-directory-layout.d.ts +15 -0
  38. package/dist/core/agent-directory-layout.d.ts.map +1 -0
  39. package/dist/core/agent-directory-layout.js +72 -0
  40. package/dist/core/agent-directory-layout.js.map +1 -0
  41. package/dist/core/agent-paths.d.ts +66 -0
  42. package/dist/core/agent-paths.d.ts.map +1 -0
  43. package/dist/core/agent-paths.js +170 -0
  44. package/dist/core/agent-paths.js.map +1 -0
  45. package/dist/core/agent-session-runtime.d.ts +52 -8
  46. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  47. package/dist/core/agent-session-runtime.js +397 -79
  48. package/dist/core/agent-session-runtime.js.map +1 -1
  49. package/dist/core/agent-session-services.d.ts +1 -0
  50. package/dist/core/agent-session-services.d.ts.map +1 -1
  51. package/dist/core/agent-session-services.js +4 -3
  52. package/dist/core/agent-session-services.js.map +1 -1
  53. package/dist/core/agent-session.d.ts +255 -103
  54. package/dist/core/agent-session.d.ts.map +1 -1
  55. package/dist/core/agent-session.js +754 -1173
  56. package/dist/core/agent-session.js.map +1 -1
  57. package/dist/core/autonomy/approval-gate.d.ts +3 -2
  58. package/dist/core/autonomy/approval-gate.d.ts.map +1 -1
  59. package/dist/core/autonomy/approval-gate.js +6 -28
  60. package/dist/core/autonomy/approval-gate.js.map +1 -1
  61. package/dist/core/autonomy/bounded-completion.d.ts +1 -1
  62. package/dist/core/autonomy/bounded-completion.d.ts.map +1 -1
  63. package/dist/core/autonomy/bounded-completion.js +1 -1
  64. package/dist/core/autonomy/bounded-completion.js.map +1 -1
  65. package/dist/core/autonomy/contracts.d.ts +26 -9
  66. package/dist/core/autonomy/contracts.d.ts.map +1 -1
  67. package/dist/core/autonomy/contracts.js.map +1 -1
  68. package/dist/core/autonomy/foreground-envelope.d.ts +8 -2
  69. package/dist/core/autonomy/foreground-envelope.d.ts.map +1 -1
  70. package/dist/core/autonomy/foreground-envelope.js +8 -25
  71. package/dist/core/autonomy/foreground-envelope.js.map +1 -1
  72. package/dist/core/autonomy/gates.d.ts.map +1 -1
  73. package/dist/core/autonomy/gates.js +8 -10
  74. package/dist/core/autonomy/gates.js.map +1 -1
  75. package/dist/core/autonomy/lane-private-paths.d.ts +2 -0
  76. package/dist/core/autonomy/lane-private-paths.d.ts.map +1 -0
  77. package/dist/core/autonomy/lane-private-paths.js +16 -0
  78. package/dist/core/autonomy/lane-private-paths.js.map +1 -0
  79. package/dist/core/autonomy/lane-tool-surface.d.ts +10 -0
  80. package/dist/core/autonomy/lane-tool-surface.d.ts.map +1 -1
  81. package/dist/core/autonomy/lane-tool-surface.js +46 -8
  82. package/dist/core/autonomy/lane-tool-surface.js.map +1 -1
  83. package/dist/core/autonomy/lane-tracker.d.ts +24 -1
  84. package/dist/core/autonomy/lane-tracker.d.ts.map +1 -1
  85. package/dist/core/autonomy/lane-tracker.js +43 -1
  86. package/dist/core/autonomy/lane-tracker.js.map +1 -1
  87. package/dist/core/autonomy/risk-assessment.d.ts +1 -2
  88. package/dist/core/autonomy/risk-assessment.d.ts.map +1 -1
  89. package/dist/core/autonomy/risk-assessment.js +1 -123
  90. package/dist/core/autonomy/risk-assessment.js.map +1 -1
  91. package/dist/core/autonomy/session-lane-record.d.ts +4 -4
  92. package/dist/core/autonomy/session-lane-record.d.ts.map +1 -1
  93. package/dist/core/autonomy/session-lane-record.js +16 -29
  94. package/dist/core/autonomy/session-lane-record.js.map +1 -1
  95. package/dist/core/autonomy/telemetry-events.d.ts +1 -1
  96. package/dist/core/autonomy/telemetry-events.d.ts.map +1 -1
  97. package/dist/core/autonomy/telemetry-events.js +1 -1
  98. package/dist/core/autonomy/telemetry-events.js.map +1 -1
  99. package/dist/core/autonomy-telemetry.d.ts +7 -7
  100. package/dist/core/autonomy-telemetry.d.ts.map +1 -1
  101. package/dist/core/autonomy-telemetry.js +9 -9
  102. package/dist/core/autonomy-telemetry.js.map +1 -1
  103. package/dist/core/background-lane-controller.d.ts +90 -156
  104. package/dist/core/background-lane-controller.d.ts.map +1 -1
  105. package/dist/core/background-lane-controller.js +192 -968
  106. package/dist/core/background-lane-controller.js.map +1 -1
  107. package/dist/core/bash-execution-controller.d.ts +4 -0
  108. package/dist/core/bash-execution-controller.d.ts.map +1 -1
  109. package/dist/core/bash-execution-controller.js +7 -1
  110. package/dist/core/bash-execution-controller.js.map +1 -1
  111. package/dist/core/capability-contract.d.ts +4 -0
  112. package/dist/core/capability-contract.d.ts.map +1 -0
  113. package/dist/core/capability-contract.js +28 -0
  114. package/dist/core/capability-contract.js.map +1 -0
  115. package/dist/core/compaction-controller.d.ts +90 -0
  116. package/dist/core/compaction-controller.d.ts.map +1 -0
  117. package/dist/core/compaction-controller.js +452 -0
  118. package/dist/core/compaction-controller.js.map +1 -0
  119. package/dist/core/compaction-support.d.ts +24 -13
  120. package/dist/core/compaction-support.d.ts.map +1 -1
  121. package/dist/core/compaction-support.js +43 -7
  122. package/dist/core/compaction-support.js.map +1 -1
  123. package/dist/core/context/context-artifacts.d.ts +6 -2
  124. package/dist/core/context/context-artifacts.d.ts.map +1 -1
  125. package/dist/core/context/context-artifacts.js +34 -2
  126. package/dist/core/context/context-artifacts.js.map +1 -1
  127. package/dist/core/context/context-audit.d.ts +33 -1
  128. package/dist/core/context/context-audit.d.ts.map +1 -1
  129. package/dist/core/context/context-audit.js +31 -5
  130. package/dist/core/context/context-audit.js.map +1 -1
  131. package/dist/core/context/context-store-retention.d.ts +8 -2
  132. package/dist/core/context/context-store-retention.d.ts.map +1 -1
  133. package/dist/core/context/context-store-retention.js +158 -35
  134. package/dist/core/context/context-store-retention.js.map +1 -1
  135. package/dist/core/context/okf-memory.d.ts.map +1 -1
  136. package/dist/core/context/okf-memory.js +9 -11
  137. package/dist/core/context/okf-memory.js.map +1 -1
  138. package/dist/core/context/sqlite-runtime-index.d.ts.map +1 -1
  139. package/dist/core/context/sqlite-runtime-index.js +6 -8
  140. package/dist/core/context/sqlite-runtime-index.js.map +1 -1
  141. package/dist/core/context-gc.d.ts +3 -0
  142. package/dist/core/context-gc.d.ts.map +1 -1
  143. package/dist/core/context-gc.js +26 -6
  144. package/dist/core/context-gc.js.map +1 -1
  145. package/dist/core/context-pipeline.d.ts +26 -4
  146. package/dist/core/context-pipeline.d.ts.map +1 -1
  147. package/dist/core/context-pipeline.js +146 -18
  148. package/dist/core/context-pipeline.js.map +1 -1
  149. package/dist/core/cost-guard.d.ts +19 -3
  150. package/dist/core/cost-guard.d.ts.map +1 -1
  151. package/dist/core/cost-guard.js +18 -3
  152. package/dist/core/cost-guard.js.map +1 -1
  153. package/dist/core/default-tool-surface.d.ts.map +1 -1
  154. package/dist/core/default-tool-surface.js +1 -0
  155. package/dist/core/default-tool-surface.js.map +1 -1
  156. package/dist/core/delegation/managed-lane-controller.d.ts +34 -0
  157. package/dist/core/delegation/managed-lane-controller.d.ts.map +1 -0
  158. package/dist/core/delegation/managed-lane-controller.js +217 -0
  159. package/dist/core/delegation/managed-lane-controller.js.map +1 -0
  160. package/dist/core/delegation/session-worker-claim.d.ts +44 -0
  161. package/dist/core/delegation/session-worker-claim.d.ts.map +1 -0
  162. package/dist/core/delegation/session-worker-claim.js +98 -0
  163. package/dist/core/delegation/session-worker-claim.js.map +1 -0
  164. package/dist/core/delegation/worker-actions.d.ts +7 -5
  165. package/dist/core/delegation/worker-actions.d.ts.map +1 -1
  166. package/dist/core/delegation/worker-actions.js +20 -4
  167. package/dist/core/delegation/worker-actions.js.map +1 -1
  168. package/dist/core/delegation/worker-claim.d.ts +56 -0
  169. package/dist/core/delegation/worker-claim.d.ts.map +1 -0
  170. package/dist/core/delegation/worker-claim.js +239 -0
  171. package/dist/core/delegation/worker-claim.js.map +1 -0
  172. package/dist/core/delegation/worker-delegation-controller.d.ts +110 -0
  173. package/dist/core/delegation/worker-delegation-controller.d.ts.map +1 -0
  174. package/dist/core/delegation/worker-delegation-controller.js +861 -0
  175. package/dist/core/delegation/worker-delegation-controller.js.map +1 -0
  176. package/dist/core/delegation/worker-delegation-request.d.ts +11 -0
  177. package/dist/core/delegation/worker-delegation-request.d.ts.map +1 -0
  178. package/dist/core/delegation/worker-delegation-request.js +2 -0
  179. package/dist/core/delegation/worker-delegation-request.js.map +1 -0
  180. package/dist/core/delegation/worker-dispatch-scheduler.d.ts +40 -0
  181. package/dist/core/delegation/worker-dispatch-scheduler.d.ts.map +1 -0
  182. package/dist/core/delegation/worker-dispatch-scheduler.js +93 -0
  183. package/dist/core/delegation/worker-dispatch-scheduler.js.map +1 -0
  184. package/dist/core/delegation/worker-execution-policy.d.ts +62 -0
  185. package/dist/core/delegation/worker-execution-policy.d.ts.map +1 -0
  186. package/dist/core/delegation/worker-execution-policy.js +160 -0
  187. package/dist/core/delegation/worker-execution-policy.js.map +1 -0
  188. package/dist/core/delegation/worker-lane-projection.d.ts +14 -0
  189. package/dist/core/delegation/worker-lane-projection.d.ts.map +1 -0
  190. package/dist/core/delegation/worker-lane-projection.js +100 -0
  191. package/dist/core/delegation/worker-lane-projection.js.map +1 -0
  192. package/dist/core/delegation/worker-lifecycle.d.ts +97 -0
  193. package/dist/core/delegation/worker-lifecycle.d.ts.map +1 -0
  194. package/dist/core/delegation/worker-lifecycle.js +339 -0
  195. package/dist/core/delegation/worker-lifecycle.js.map +1 -0
  196. package/dist/core/delegation/worker-notification-coordinator.d.ts +36 -0
  197. package/dist/core/delegation/worker-notification-coordinator.d.ts.map +1 -0
  198. package/dist/core/delegation/worker-notification-coordinator.js +90 -0
  199. package/dist/core/delegation/worker-notification-coordinator.js.map +1 -0
  200. package/dist/core/delegation/worker-profile-resolver.d.ts +55 -0
  201. package/dist/core/delegation/worker-profile-resolver.d.ts.map +1 -0
  202. package/dist/core/delegation/worker-profile-resolver.js +113 -0
  203. package/dist/core/delegation/worker-profile-resolver.js.map +1 -0
  204. package/dist/core/delegation/worker-runner.d.ts +25 -14
  205. package/dist/core/delegation/worker-runner.d.ts.map +1 -1
  206. package/dist/core/delegation/worker-runner.js +122 -53
  207. package/dist/core/delegation/worker-runner.js.map +1 -1
  208. package/dist/core/delegation/worker-task-label.d.ts +3 -0
  209. package/dist/core/delegation/worker-task-label.d.ts.map +1 -0
  210. package/dist/core/delegation/worker-task-label.js +11 -0
  211. package/dist/core/delegation/worker-task-label.js.map +1 -0
  212. package/dist/core/doctor.d.ts +8 -0
  213. package/dist/core/doctor.d.ts.map +1 -1
  214. package/dist/core/doctor.js +32 -1
  215. package/dist/core/doctor.js.map +1 -1
  216. package/dist/core/extensions/index.d.ts +1 -1
  217. package/dist/core/extensions/index.d.ts.map +1 -1
  218. package/dist/core/extensions/index.js.map +1 -1
  219. package/dist/core/extensions/loader.d.ts +5 -1
  220. package/dist/core/extensions/loader.d.ts.map +1 -1
  221. package/dist/core/extensions/loader.js +68 -13
  222. package/dist/core/extensions/loader.js.map +1 -1
  223. package/dist/core/extensions/runner.d.ts.map +1 -1
  224. package/dist/core/extensions/runner.js +7 -0
  225. package/dist/core/extensions/runner.js.map +1 -1
  226. package/dist/core/extensions/storage.d.ts +8 -0
  227. package/dist/core/extensions/storage.d.ts.map +1 -0
  228. package/dist/core/extensions/storage.js +28 -0
  229. package/dist/core/extensions/storage.js.map +1 -0
  230. package/dist/core/extensions/types.d.ts +101 -1
  231. package/dist/core/extensions/types.d.ts.map +1 -1
  232. package/dist/core/extensions/types.js.map +1 -1
  233. package/dist/core/failure-corpus.d.ts +1 -15
  234. package/dist/core/failure-corpus.d.ts.map +1 -1
  235. package/dist/core/failure-corpus.js +9 -37
  236. package/dist/core/failure-corpus.js.map +1 -1
  237. package/dist/core/foreground-recovery-controller.d.ts +52 -0
  238. package/dist/core/foreground-recovery-controller.d.ts.map +1 -0
  239. package/dist/core/foreground-recovery-controller.js +111 -0
  240. package/dist/core/foreground-recovery-controller.js.map +1 -0
  241. package/dist/core/gateways/channel-provider.d.ts +3 -0
  242. package/dist/core/gateways/channel-provider.d.ts.map +1 -1
  243. package/dist/core/gateways/channel-provider.js +31 -6
  244. package/dist/core/gateways/channel-provider.js.map +1 -1
  245. package/dist/core/goal-loop-controller.d.ts +17 -1
  246. package/dist/core/goal-loop-controller.d.ts.map +1 -1
  247. package/dist/core/goal-loop-controller.js +79 -11
  248. package/dist/core/goal-loop-controller.js.map +1 -1
  249. package/dist/core/goals/goal-acceptance.d.ts +11 -0
  250. package/dist/core/goals/goal-acceptance.d.ts.map +1 -0
  251. package/dist/core/goals/goal-acceptance.js +25 -0
  252. package/dist/core/goals/goal-acceptance.js.map +1 -0
  253. package/dist/core/goals/goal-auto-continue-controller.d.ts +27 -0
  254. package/dist/core/goals/goal-auto-continue-controller.d.ts.map +1 -0
  255. package/dist/core/goals/goal-auto-continue-controller.js +93 -0
  256. package/dist/core/goals/goal-auto-continue-controller.js.map +1 -0
  257. package/dist/core/goals/goal-continuation-controller.d.ts +48 -2
  258. package/dist/core/goals/goal-continuation-controller.d.ts.map +1 -1
  259. package/dist/core/goals/goal-continuation-controller.js +87 -0
  260. package/dist/core/goals/goal-continuation-controller.js.map +1 -1
  261. package/dist/core/goals/goal-continuation-defaults.d.ts +39 -0
  262. package/dist/core/goals/goal-continuation-defaults.d.ts.map +1 -1
  263. package/dist/core/goals/goal-continuation-defaults.js +42 -0
  264. package/dist/core/goals/goal-continuation-defaults.js.map +1 -1
  265. package/dist/core/goals/goal-continuation-prompt.d.ts +5 -1
  266. package/dist/core/goals/goal-continuation-prompt.d.ts.map +1 -1
  267. package/dist/core/goals/goal-continuation-prompt.js +56 -15
  268. package/dist/core/goals/goal-continuation-prompt.js.map +1 -1
  269. package/dist/core/goals/goal-lifecycle.d.ts +20 -0
  270. package/dist/core/goals/goal-lifecycle.d.ts.map +1 -0
  271. package/dist/core/goals/goal-lifecycle.js +17 -0
  272. package/dist/core/goals/goal-lifecycle.js.map +1 -0
  273. package/dist/core/goals/goal-runtime-snapshot.d.ts +105 -4
  274. package/dist/core/goals/goal-runtime-snapshot.d.ts.map +1 -1
  275. package/dist/core/goals/goal-runtime-snapshot.js +91 -6
  276. package/dist/core/goals/goal-runtime-snapshot.js.map +1 -1
  277. package/dist/core/goals/goal-state.d.ts +90 -1
  278. package/dist/core/goals/goal-state.d.ts.map +1 -1
  279. package/dist/core/goals/goal-state.js +78 -15
  280. package/dist/core/goals/goal-state.js.map +1 -1
  281. package/dist/core/goals/goal-tool-core.d.ts +58 -2
  282. package/dist/core/goals/goal-tool-core.d.ts.map +1 -1
  283. package/dist/core/goals/goal-tool-core.js +82 -6
  284. package/dist/core/goals/goal-tool-core.js.map +1 -1
  285. package/dist/core/goals/session-goal-state.d.ts +13 -6
  286. package/dist/core/goals/session-goal-state.d.ts.map +1 -1
  287. package/dist/core/goals/session-goal-state.js +20 -28
  288. package/dist/core/goals/session-goal-state.js.map +1 -1
  289. package/dist/core/human-input.d.ts +100 -0
  290. package/dist/core/human-input.d.ts.map +1 -0
  291. package/dist/core/human-input.js +362 -0
  292. package/dist/core/human-input.js.map +1 -0
  293. package/dist/core/index.d.ts +9 -1
  294. package/dist/core/index.d.ts.map +1 -1
  295. package/dist/core/index.js +9 -1
  296. package/dist/core/index.js.map +1 -1
  297. package/dist/core/{telemetry.d.ts → install-telemetry.d.ts} +1 -1
  298. package/dist/core/install-telemetry.d.ts.map +1 -0
  299. package/dist/core/{telemetry.js → install-telemetry.js} +1 -1
  300. package/dist/core/install-telemetry.js.map +1 -0
  301. package/dist/core/keybindings.d.ts +27 -1
  302. package/dist/core/keybindings.d.ts.map +1 -1
  303. package/dist/core/keybindings.js +34 -8
  304. package/dist/core/keybindings.js.map +1 -1
  305. package/dist/core/learning/learning-audit.d.ts +2 -4
  306. package/dist/core/learning/learning-audit.d.ts.map +1 -1
  307. package/dist/core/learning/learning-audit.js +9 -29
  308. package/dist/core/learning/learning-audit.js.map +1 -1
  309. package/dist/core/learning/learning-gate.d.ts.map +1 -1
  310. package/dist/core/learning/learning-gate.js +1 -6
  311. package/dist/core/learning/learning-gate.js.map +1 -1
  312. package/dist/core/learning/observation-store.d.ts +12 -3
  313. package/dist/core/learning/observation-store.d.ts.map +1 -1
  314. package/dist/core/learning/observation-store.js +30 -15
  315. package/dist/core/learning/observation-store.js.map +1 -1
  316. package/dist/core/learning/session-learning-decision.d.ts +2 -4
  317. package/dist/core/learning/session-learning-decision.d.ts.map +1 -1
  318. package/dist/core/learning/session-learning-decision.js +9 -29
  319. package/dist/core/learning/session-learning-decision.js.map +1 -1
  320. package/dist/core/learning/skill-curator.d.ts +5 -1
  321. package/dist/core/learning/skill-curator.d.ts.map +1 -1
  322. package/dist/core/learning/skill-curator.js +21 -19
  323. package/dist/core/learning/skill-curator.js.map +1 -1
  324. package/dist/core/local-runtime-controller.d.ts +65 -3
  325. package/dist/core/local-runtime-controller.d.ts.map +1 -1
  326. package/dist/core/local-runtime-controller.js +186 -26
  327. package/dist/core/local-runtime-controller.js.map +1 -1
  328. package/dist/core/memory/providers/file-store.d.ts +1 -1
  329. package/dist/core/memory/providers/file-store.d.ts.map +1 -1
  330. package/dist/core/memory/providers/file-store.js +6 -6
  331. package/dist/core/memory/providers/file-store.js.map +1 -1
  332. package/dist/core/memory-controller.d.ts.map +1 -1
  333. package/dist/core/memory-controller.js +4 -4
  334. package/dist/core/memory-controller.js.map +1 -1
  335. package/dist/core/model-capability.d.ts +34 -0
  336. package/dist/core/model-capability.d.ts.map +1 -1
  337. package/dist/core/model-capability.js +43 -1
  338. package/dist/core/model-capability.js.map +1 -1
  339. package/dist/core/model-resolver.d.ts +1 -1
  340. package/dist/core/model-resolver.d.ts.map +1 -1
  341. package/dist/core/model-resolver.js +6 -9
  342. package/dist/core/model-resolver.js.map +1 -1
  343. package/dist/core/model-router/intent-classifier.d.ts +1 -4
  344. package/dist/core/model-router/intent-classifier.d.ts.map +1 -1
  345. package/dist/core/model-router/intent-classifier.js +1 -156
  346. package/dist/core/model-router/intent-classifier.js.map +1 -1
  347. package/dist/core/model-router/tool-escalation.d.ts +15 -0
  348. package/dist/core/model-router/tool-escalation.d.ts.map +1 -1
  349. package/dist/core/model-router/tool-escalation.js +23 -1
  350. package/dist/core/model-router/tool-escalation.js.map +1 -1
  351. package/dist/core/model-router-controller.d.ts +34 -7
  352. package/dist/core/model-router-controller.d.ts.map +1 -1
  353. package/dist/core/model-router-controller.js +95 -16
  354. package/dist/core/model-router-controller.js.map +1 -1
  355. package/dist/core/model-selection-controller.d.ts +4 -4
  356. package/dist/core/model-selection-controller.d.ts.map +1 -1
  357. package/dist/core/model-selection-controller.js.map +1 -1
  358. package/dist/core/model-tool-protocol.d.ts +23 -0
  359. package/dist/core/model-tool-protocol.d.ts.map +1 -0
  360. package/dist/core/model-tool-protocol.js +43 -0
  361. package/dist/core/model-tool-protocol.js.map +1 -0
  362. package/dist/core/models/adaptation-store.d.ts +10 -5
  363. package/dist/core/models/adaptation-store.d.ts.map +1 -1
  364. package/dist/core/models/adaptation-store.js +129 -81
  365. package/dist/core/models/adaptation-store.js.map +1 -1
  366. package/dist/core/models/default-model-suggestions.d.ts.map +1 -1
  367. package/dist/core/models/default-model-suggestions.js +17 -0
  368. package/dist/core/models/default-model-suggestions.js.map +1 -1
  369. package/dist/core/models/fitness-store.d.ts +4 -11
  370. package/dist/core/models/fitness-store.d.ts.map +1 -1
  371. package/dist/core/models/fitness-store.js +87 -51
  372. package/dist/core/models/fitness-store.js.map +1 -1
  373. package/dist/core/models/host-state-store.d.ts +34 -0
  374. package/dist/core/models/host-state-store.d.ts.map +1 -0
  375. package/dist/core/models/host-state-store.js +86 -0
  376. package/dist/core/models/host-state-store.js.map +1 -0
  377. package/dist/core/models/llamacpp-runtime.d.ts +180 -0
  378. package/dist/core/models/llamacpp-runtime.d.ts.map +1 -0
  379. package/dist/core/models/llamacpp-runtime.js +475 -0
  380. package/dist/core/models/llamacpp-runtime.js.map +1 -0
  381. package/dist/core/models/local-registration.d.ts +40 -0
  382. package/dist/core/models/local-registration.d.ts.map +1 -1
  383. package/dist/core/models/local-registration.js +94 -5
  384. package/dist/core/models/local-registration.js.map +1 -1
  385. package/dist/core/models/local-runtime.d.ts.map +1 -1
  386. package/dist/core/models/local-runtime.js +6 -5
  387. package/dist/core/models/local-runtime.js.map +1 -1
  388. package/dist/core/models/model-ref.d.ts +7 -0
  389. package/dist/core/models/model-ref.d.ts.map +1 -1
  390. package/dist/core/models/model-ref.js +26 -0
  391. package/dist/core/models/model-ref.js.map +1 -1
  392. package/dist/core/models/needle-runtime.d.ts +257 -0
  393. package/dist/core/models/needle-runtime.d.ts.map +1 -0
  394. package/dist/core/models/needle-runtime.js +519 -0
  395. package/dist/core/models/needle-runtime.js.map +1 -0
  396. package/dist/core/models/prism-llamacpp-lifecycle.d.ts +89 -0
  397. package/dist/core/models/prism-llamacpp-lifecycle.d.ts.map +1 -0
  398. package/dist/core/models/prism-llamacpp-lifecycle.js +121 -0
  399. package/dist/core/models/prism-llamacpp-lifecycle.js.map +1 -0
  400. package/dist/core/orchestration/agent-resume.d.ts +24 -0
  401. package/dist/core/orchestration/agent-resume.d.ts.map +1 -0
  402. package/dist/core/orchestration/agent-resume.js +90 -0
  403. package/dist/core/orchestration/agent-resume.js.map +1 -0
  404. package/dist/core/orchestration/capability-gateway.d.ts +61 -0
  405. package/dist/core/orchestration/capability-gateway.d.ts.map +1 -0
  406. package/dist/core/orchestration/capability-gateway.js +152 -0
  407. package/dist/core/orchestration/capability-gateway.js.map +1 -0
  408. package/dist/core/orchestration/contracts.d.ts +343 -0
  409. package/dist/core/orchestration/contracts.d.ts.map +1 -0
  410. package/dist/core/orchestration/contracts.js +135 -0
  411. package/dist/core/orchestration/contracts.js.map +1 -0
  412. package/dist/core/orchestration/delegation-ledger.d.ts +56 -0
  413. package/dist/core/orchestration/delegation-ledger.d.ts.map +1 -0
  414. package/dist/core/orchestration/delegation-ledger.js +197 -0
  415. package/dist/core/orchestration/delegation-ledger.js.map +1 -0
  416. package/dist/core/orchestration/event-store.d.ts +83 -0
  417. package/dist/core/orchestration/event-store.d.ts.map +1 -0
  418. package/dist/core/orchestration/event-store.js +560 -0
  419. package/dist/core/orchestration/event-store.js.map +1 -0
  420. package/dist/core/orchestration/lane-tool-manifests.d.ts +9 -0
  421. package/dist/core/orchestration/lane-tool-manifests.d.ts.map +1 -0
  422. package/dist/core/orchestration/lane-tool-manifests.js +37 -0
  423. package/dist/core/orchestration/lane-tool-manifests.js.map +1 -0
  424. package/dist/core/orchestration/model-binding.d.ts +15 -0
  425. package/dist/core/orchestration/model-binding.d.ts.map +1 -0
  426. package/dist/core/orchestration/model-binding.js +29 -0
  427. package/dist/core/orchestration/model-binding.js.map +1 -0
  428. package/dist/core/orchestration/policy-compiler.d.ts +49 -0
  429. package/dist/core/orchestration/policy-compiler.d.ts.map +1 -0
  430. package/dist/core/orchestration/policy-compiler.js +191 -0
  431. package/dist/core/orchestration/policy-compiler.js.map +1 -0
  432. package/dist/core/orchestration/policy-gate.d.ts +18 -0
  433. package/dist/core/orchestration/policy-gate.d.ts.map +1 -0
  434. package/dist/core/orchestration/policy-gate.js +24 -0
  435. package/dist/core/orchestration/policy-gate.js.map +1 -0
  436. package/dist/core/orchestration/profile-registry.d.ts +51 -0
  437. package/dist/core/orchestration/profile-registry.d.ts.map +1 -0
  438. package/dist/core/orchestration/profile-registry.js +393 -0
  439. package/dist/core/orchestration/profile-registry.js.map +1 -0
  440. package/dist/core/orchestration/profile-store.d.ts +31 -0
  441. package/dist/core/orchestration/profile-store.d.ts.map +1 -0
  442. package/dist/core/orchestration/profile-store.js +136 -0
  443. package/dist/core/orchestration/profile-store.js.map +1 -0
  444. package/dist/core/orchestration/risk-budget.d.ts +9 -0
  445. package/dist/core/orchestration/risk-budget.d.ts.map +1 -0
  446. package/dist/core/orchestration/risk-budget.js +48 -0
  447. package/dist/core/orchestration/risk-budget.js.map +1 -0
  448. package/dist/core/orchestration/task-runtime.d.ts +168 -0
  449. package/dist/core/orchestration/task-runtime.d.ts.map +1 -0
  450. package/dist/core/orchestration/task-runtime.js +1600 -0
  451. package/dist/core/orchestration/task-runtime.js.map +1 -0
  452. package/dist/core/orchestration/work-state-projection.d.ts +32 -0
  453. package/dist/core/orchestration/work-state-projection.d.ts.map +1 -0
  454. package/dist/core/orchestration/work-state-projection.js +116 -0
  455. package/dist/core/orchestration/work-state-projection.js.map +1 -0
  456. package/dist/core/orchestration/worker-execution-contract.d.ts +21 -0
  457. package/dist/core/orchestration/worker-execution-contract.d.ts.map +1 -0
  458. package/dist/core/orchestration/worker-execution-contract.js +179 -0
  459. package/dist/core/orchestration/worker-execution-contract.js.map +1 -0
  460. package/dist/core/orchestration/worker-result-adapter.d.ts +21 -0
  461. package/dist/core/orchestration/worker-result-adapter.d.ts.map +1 -0
  462. package/dist/core/orchestration/worker-result-adapter.js +109 -0
  463. package/dist/core/orchestration/worker-result-adapter.js.map +1 -0
  464. package/dist/core/package-manager.d.ts.map +1 -1
  465. package/dist/core/package-manager.js +11 -10
  466. package/dist/core/package-manager.js.map +1 -1
  467. package/dist/core/process-identity.d.ts +11 -0
  468. package/dist/core/process-identity.d.ts.map +1 -0
  469. package/dist/core/process-identity.js +26 -0
  470. package/dist/core/process-identity.js.map +1 -0
  471. package/dist/core/process-matrix/codes.d.ts +83 -0
  472. package/dist/core/process-matrix/codes.d.ts.map +1 -0
  473. package/dist/core/process-matrix/codes.js +15 -0
  474. package/dist/core/process-matrix/codes.js.map +1 -0
  475. package/dist/core/process-matrix/resume-launcher.d.ts +26 -0
  476. package/dist/core/process-matrix/resume-launcher.d.ts.map +1 -0
  477. package/dist/core/process-matrix/resume-launcher.js +62 -0
  478. package/dist/core/process-matrix/resume-launcher.js.map +1 -0
  479. package/dist/core/process-matrix/runtime.d.ts +78 -0
  480. package/dist/core/process-matrix/runtime.d.ts.map +1 -0
  481. package/dist/core/process-matrix/runtime.js +633 -0
  482. package/dist/core/process-matrix/runtime.js.map +1 -0
  483. package/dist/core/process-matrix/store.d.ts +25 -0
  484. package/dist/core/process-matrix/store.d.ts.map +1 -0
  485. package/dist/core/process-matrix/store.js +189 -0
  486. package/dist/core/process-matrix/store.js.map +1 -0
  487. package/dist/core/process-matrix/supervisor.d.ts +75 -0
  488. package/dist/core/process-matrix/supervisor.d.ts.map +1 -0
  489. package/dist/core/process-matrix/supervisor.js +161 -0
  490. package/dist/core/process-matrix/supervisor.js.map +1 -0
  491. package/dist/core/profile-registry.d.ts +7 -0
  492. package/dist/core/profile-registry.d.ts.map +1 -1
  493. package/dist/core/profile-registry.js +25 -7
  494. package/dist/core/profile-registry.js.map +1 -1
  495. package/dist/core/python-runtime.d.ts.map +1 -1
  496. package/dist/core/python-runtime.js +3 -3
  497. package/dist/core/python-runtime.js.map +1 -1
  498. package/dist/core/reflection-controller.d.ts +33 -9
  499. package/dist/core/reflection-controller.d.ts.map +1 -1
  500. package/dist/core/reflection-controller.js +217 -127
  501. package/dist/core/reflection-controller.js.map +1 -1
  502. package/dist/core/reload-blockers.d.ts +36 -0
  503. package/dist/core/reload-blockers.d.ts.map +1 -1
  504. package/dist/core/reload-blockers.js +50 -8
  505. package/dist/core/reload-blockers.js.map +1 -1
  506. package/dist/core/research/evidence-bundle.d.ts.map +1 -1
  507. package/dist/core/research/evidence-bundle.js +1 -6
  508. package/dist/core/research/evidence-bundle.js.map +1 -1
  509. package/dist/core/research/lane-model-resolver.d.ts +33 -0
  510. package/dist/core/research/lane-model-resolver.d.ts.map +1 -0
  511. package/dist/core/research/lane-model-resolver.js +65 -0
  512. package/dist/core/research/lane-model-resolver.js.map +1 -0
  513. package/dist/core/research/model-fitness-controller.d.ts +38 -0
  514. package/dist/core/research/model-fitness-controller.d.ts.map +1 -0
  515. package/dist/core/research/model-fitness-controller.js +106 -0
  516. package/dist/core/research/model-fitness-controller.js.map +1 -0
  517. package/dist/core/research/model-fitness.d.ts +1 -1
  518. package/dist/core/research/model-fitness.d.ts.map +1 -1
  519. package/dist/core/research/model-fitness.js +4 -4
  520. package/dist/core/research/model-fitness.js.map +1 -1
  521. package/dist/core/research/research-gate.d.ts.map +1 -1
  522. package/dist/core/research/research-gate.js +7 -7
  523. package/dist/core/research/research-gate.js.map +1 -1
  524. package/dist/core/research/research-lane-controller.d.ts +62 -0
  525. package/dist/core/research/research-lane-controller.d.ts.map +1 -0
  526. package/dist/core/research/research-lane-controller.js +292 -0
  527. package/dist/core/research/research-lane-controller.js.map +1 -0
  528. package/dist/core/research/session-evidence-bundle.d.ts +2 -4
  529. package/dist/core/research/session-evidence-bundle.d.ts.map +1 -1
  530. package/dist/core/research/session-evidence-bundle.js +10 -46
  531. package/dist/core/research/session-evidence-bundle.js.map +1 -1
  532. package/dist/core/resource-loader.d.ts.map +1 -1
  533. package/dist/core/resource-loader.js +15 -9
  534. package/dist/core/resource-loader.js.map +1 -1
  535. package/dist/core/risk-classifier.d.ts +6 -0
  536. package/dist/core/risk-classifier.d.ts.map +1 -0
  537. package/dist/core/risk-classifier.js +225 -0
  538. package/dist/core/risk-classifier.js.map +1 -0
  539. package/dist/core/runtime-builder.d.ts +76 -17
  540. package/dist/core/runtime-builder.d.ts.map +1 -1
  541. package/dist/core/runtime-builder.js +367 -124
  542. package/dist/core/runtime-builder.js.map +1 -1
  543. package/dist/core/scout-controller.d.ts +6 -0
  544. package/dist/core/scout-controller.d.ts.map +1 -1
  545. package/dist/core/scout-controller.js +66 -52
  546. package/dist/core/scout-controller.js.map +1 -1
  547. package/dist/core/sdk.d.ts +6 -3
  548. package/dist/core/sdk.d.ts.map +1 -1
  549. package/dist/core/sdk.js +64 -27
  550. package/dist/core/sdk.js.map +1 -1
  551. package/dist/core/session-analytics.d.ts.map +1 -1
  552. package/dist/core/session-analytics.js +28 -1
  553. package/dist/core/session-analytics.js.map +1 -1
  554. package/dist/core/session-image-store.d.ts +33 -0
  555. package/dist/core/session-image-store.d.ts.map +1 -0
  556. package/dist/core/session-image-store.js +283 -0
  557. package/dist/core/session-image-store.js.map +1 -0
  558. package/dist/core/session-role.d.ts +33 -0
  559. package/dist/core/session-role.d.ts.map +1 -0
  560. package/dist/core/session-role.js +58 -0
  561. package/dist/core/session-role.js.map +1 -0
  562. package/dist/core/session-snapshot.d.ts +34 -0
  563. package/dist/core/session-snapshot.d.ts.map +1 -0
  564. package/dist/core/session-snapshot.js +68 -0
  565. package/dist/core/session-snapshot.js.map +1 -0
  566. package/dist/core/session-supervision-runtime.d.ts +31 -0
  567. package/dist/core/session-supervision-runtime.d.ts.map +1 -0
  568. package/dist/core/session-supervision-runtime.js +97 -0
  569. package/dist/core/session-supervision-runtime.js.map +1 -0
  570. package/dist/core/settings-manager.d.ts +51 -7
  571. package/dist/core/settings-manager.d.ts.map +1 -1
  572. package/dist/core/settings-manager.js +168 -82
  573. package/dist/core/settings-manager.js.map +1 -1
  574. package/dist/core/system-prompt-builder.d.ts +12 -0
  575. package/dist/core/system-prompt-builder.d.ts.map +1 -1
  576. package/dist/core/system-prompt-builder.js +6 -0
  577. package/dist/core/system-prompt-builder.js.map +1 -1
  578. package/dist/core/system-prompt.d.ts +14 -1
  579. package/dist/core/system-prompt.d.ts.map +1 -1
  580. package/dist/core/system-prompt.js +20 -3
  581. package/dist/core/system-prompt.js.map +1 -1
  582. package/dist/core/tasks/session-task-state.d.ts +13 -6
  583. package/dist/core/tasks/session-task-state.d.ts.map +1 -1
  584. package/dist/core/tasks/session-task-state.js +20 -22
  585. package/dist/core/tasks/session-task-state.js.map +1 -1
  586. package/dist/core/tasks/task-contract-monitor.d.ts +45 -0
  587. package/dist/core/tasks/task-contract-monitor.d.ts.map +1 -0
  588. package/dist/core/tasks/task-contract-monitor.js +56 -0
  589. package/dist/core/tasks/task-contract-monitor.js.map +1 -0
  590. package/dist/core/tasks/task-projection.d.ts +20 -0
  591. package/dist/core/tasks/task-projection.d.ts.map +1 -0
  592. package/dist/core/tasks/task-projection.js +47 -0
  593. package/dist/core/tasks/task-projection.js.map +1 -0
  594. package/dist/core/tasks/task-state.d.ts +12 -0
  595. package/dist/core/tasks/task-state.d.ts.map +1 -1
  596. package/dist/core/tasks/task-state.js +56 -12
  597. package/dist/core/tasks/task-state.js.map +1 -1
  598. package/dist/core/tool-capability-policy.d.ts +13 -0
  599. package/dist/core/tool-capability-policy.d.ts.map +1 -0
  600. package/dist/core/tool-capability-policy.js +85 -0
  601. package/dist/core/tool-capability-policy.js.map +1 -0
  602. package/dist/core/tool-gate-controller.d.ts.map +1 -1
  603. package/dist/core/tool-gate-controller.js +5 -0
  604. package/dist/core/tool-gate-controller.js.map +1 -1
  605. package/dist/core/tool-protocol-controller.d.ts +91 -0
  606. package/dist/core/tool-protocol-controller.d.ts.map +1 -0
  607. package/dist/core/tool-protocol-controller.js +512 -0
  608. package/dist/core/tool-protocol-controller.js.map +1 -0
  609. package/dist/core/tool-recovery-log-records.d.ts +6 -0
  610. package/dist/core/tool-recovery-log-records.d.ts.map +1 -1
  611. package/dist/core/tool-recovery-log-records.js +13 -31
  612. package/dist/core/tool-recovery-log-records.js.map +1 -1
  613. package/dist/core/tool-selection/promotion.d.ts +54 -0
  614. package/dist/core/tool-selection/promotion.d.ts.map +1 -0
  615. package/dist/core/tool-selection/promotion.js +81 -0
  616. package/dist/core/tool-selection/promotion.js.map +1 -0
  617. package/dist/core/tool-selection/tool-performance-store.d.ts +39 -6
  618. package/dist/core/tool-selection/tool-performance-store.d.ts.map +1 -1
  619. package/dist/core/tool-selection/tool-performance-store.js +153 -110
  620. package/dist/core/tool-selection/tool-performance-store.js.map +1 -1
  621. package/dist/core/tool-selection/tool-selection-controller.d.ts +45 -0
  622. package/dist/core/tool-selection/tool-selection-controller.d.ts.map +1 -1
  623. package/dist/core/tool-selection/tool-selection-controller.js +96 -0
  624. package/dist/core/tool-selection/tool-selection-controller.js.map +1 -1
  625. package/dist/core/tools/ask-question.d.ts +124 -0
  626. package/dist/core/tools/ask-question.d.ts.map +1 -0
  627. package/dist/core/tools/ask-question.js +693 -0
  628. package/dist/core/tools/ask-question.js.map +1 -0
  629. package/dist/core/tools/bash.d.ts +18 -0
  630. package/dist/core/tools/bash.d.ts.map +1 -1
  631. package/dist/core/tools/bash.js +95 -16
  632. package/dist/core/tools/bash.js.map +1 -1
  633. package/dist/core/tools/delegate-status.d.ts +44 -2
  634. package/dist/core/tools/delegate-status.d.ts.map +1 -1
  635. package/dist/core/tools/delegate-status.js +214 -19
  636. package/dist/core/tools/delegate-status.js.map +1 -1
  637. package/dist/core/tools/delegate.d.ts +15 -13
  638. package/dist/core/tools/delegate.d.ts.map +1 -1
  639. package/dist/core/tools/delegate.js +124 -22
  640. package/dist/core/tools/delegate.js.map +1 -1
  641. package/dist/core/tools/extensionify.d.ts.map +1 -1
  642. package/dist/core/tools/extensionify.js +1 -0
  643. package/dist/core/tools/extensionify.js.map +1 -1
  644. package/dist/core/tools/goal.d.ts +94 -3
  645. package/dist/core/tools/goal.d.ts.map +1 -1
  646. package/dist/core/tools/goal.js +165 -15
  647. package/dist/core/tools/goal.js.map +1 -1
  648. package/dist/core/tools/model-fitness.d.ts +7 -0
  649. package/dist/core/tools/model-fitness.d.ts.map +1 -1
  650. package/dist/core/tools/model-fitness.js +4 -4
  651. package/dist/core/tools/model-fitness.js.map +1 -1
  652. package/dist/core/tools/orchestration-panel.d.ts +43 -0
  653. package/dist/core/tools/orchestration-panel.d.ts.map +1 -0
  654. package/dist/core/tools/orchestration-panel.js +168 -0
  655. package/dist/core/tools/orchestration-panel.js.map +1 -0
  656. package/dist/core/tools/run-process.d.ts +26 -0
  657. package/dist/core/tools/run-process.d.ts.map +1 -0
  658. package/dist/core/tools/run-process.js +138 -0
  659. package/dist/core/tools/run-process.js.map +1 -0
  660. package/dist/core/tools/shell-contract-router.d.ts +6 -1
  661. package/dist/core/tools/shell-contract-router.d.ts.map +1 -1
  662. package/dist/core/tools/shell-contract-router.js +23 -2
  663. package/dist/core/tools/shell-contract-router.js.map +1 -1
  664. package/dist/core/tools/shell-session.d.ts +89 -0
  665. package/dist/core/tools/shell-session.d.ts.map +1 -0
  666. package/dist/core/tools/shell-session.js +432 -0
  667. package/dist/core/tools/shell-session.js.map +1 -0
  668. package/dist/core/tools/task-steps.d.ts +6 -0
  669. package/dist/core/tools/task-steps.d.ts.map +1 -1
  670. package/dist/core/tools/task-steps.js +165 -8
  671. package/dist/core/tools/task-steps.js.map +1 -1
  672. package/dist/core/tools/tmux-dispatch.d.ts +84 -0
  673. package/dist/core/tools/tmux-dispatch.d.ts.map +1 -0
  674. package/dist/core/tools/tmux-dispatch.js +91 -0
  675. package/dist/core/tools/tmux-dispatch.js.map +1 -0
  676. package/dist/core/tools/windows-shell-engine.d.ts +42 -0
  677. package/dist/core/tools/windows-shell-engine.d.ts.map +1 -0
  678. package/dist/core/tools/windows-shell-engine.js +151 -0
  679. package/dist/core/tools/windows-shell-engine.js.map +1 -0
  680. package/dist/core/tools/windows-shell-state.d.ts +40 -0
  681. package/dist/core/tools/windows-shell-state.d.ts.map +1 -0
  682. package/dist/core/tools/windows-shell-state.js +59 -0
  683. package/dist/core/tools/windows-shell-state.js.map +1 -0
  684. package/dist/core/tools/worktree-sync.d.ts +24 -0
  685. package/dist/core/tools/worktree-sync.d.ts.map +1 -0
  686. package/dist/core/tools/worktree-sync.js +338 -0
  687. package/dist/core/tools/worktree-sync.js.map +1 -0
  688. package/dist/core/trust-manager.d.ts +4 -1
  689. package/dist/core/trust-manager.d.ts.map +1 -1
  690. package/dist/core/trust-manager.js +20 -2
  691. package/dist/core/trust-manager.js.map +1 -1
  692. package/dist/core/util/atomic-file.d.ts +55 -0
  693. package/dist/core/util/atomic-file.d.ts.map +1 -0
  694. package/dist/core/util/atomic-file.js +255 -0
  695. package/dist/core/util/atomic-file.js.map +1 -0
  696. package/dist/core/util/bounded-jsonl.d.ts +10 -0
  697. package/dist/core/util/bounded-jsonl.d.ts.map +1 -0
  698. package/dist/core/util/bounded-jsonl.js +75 -0
  699. package/dist/core/util/bounded-jsonl.js.map +1 -0
  700. package/dist/core/util/minimatch-cache.d.ts +33 -0
  701. package/dist/core/util/minimatch-cache.d.ts.map +1 -0
  702. package/dist/core/util/minimatch-cache.js +0 -0
  703. package/dist/core/util/minimatch-cache.js.map +1 -0
  704. package/dist/core/util/value-guards.d.ts +5 -0
  705. package/dist/core/util/value-guards.d.ts.map +1 -0
  706. package/dist/core/util/value-guards.js +12 -0
  707. package/dist/core/util/value-guards.js.map +1 -0
  708. package/dist/core/worktree-sync/codes.d.ts +227 -0
  709. package/dist/core/worktree-sync/codes.d.ts.map +1 -0
  710. package/dist/core/worktree-sync/codes.js +14 -0
  711. package/dist/core/worktree-sync/codes.js.map +1 -0
  712. package/dist/core/worktree-sync/git-engine.d.ts +156 -0
  713. package/dist/core/worktree-sync/git-engine.d.ts.map +1 -0
  714. package/dist/core/worktree-sync/git-engine.js +1191 -0
  715. package/dist/core/worktree-sync/git-engine.js.map +1 -0
  716. package/dist/core/worktree-sync/lane-gate.d.ts +75 -0
  717. package/dist/core/worktree-sync/lane-gate.d.ts.map +1 -0
  718. package/dist/core/worktree-sync/lane-gate.js +360 -0
  719. package/dist/core/worktree-sync/lane-gate.js.map +1 -0
  720. package/dist/core/worktree-sync/runtime.d.ts +47 -0
  721. package/dist/core/worktree-sync/runtime.d.ts.map +1 -0
  722. package/dist/core/worktree-sync/runtime.js +96 -0
  723. package/dist/core/worktree-sync/runtime.js.map +1 -0
  724. package/dist/core/worktree-sync/store.d.ts +69 -0
  725. package/dist/core/worktree-sync/store.d.ts.map +1 -0
  726. package/dist/core/worktree-sync/store.js +252 -0
  727. package/dist/core/worktree-sync/store.js.map +1 -0
  728. package/dist/core/worktree-sync/watcher.d.ts +29 -0
  729. package/dist/core/worktree-sync/watcher.d.ts.map +1 -0
  730. package/dist/core/worktree-sync/watcher.js +93 -0
  731. package/dist/core/worktree-sync/watcher.js.map +1 -0
  732. package/dist/index.d.ts +13 -3
  733. package/dist/index.d.ts.map +1 -1
  734. package/dist/index.js +12 -2
  735. package/dist/index.js.map +1 -1
  736. package/dist/main.d.ts.map +1 -1
  737. package/dist/main.js +179 -1
  738. package/dist/main.js.map +1 -1
  739. package/dist/migrations.d.ts +7 -0
  740. package/dist/migrations.d.ts.map +1 -1
  741. package/dist/migrations.js +197 -1
  742. package/dist/migrations.js.map +1 -1
  743. package/dist/modes/interactive/auto-learn-controller.d.ts +16 -1
  744. package/dist/modes/interactive/auto-learn-controller.d.ts.map +1 -1
  745. package/dist/modes/interactive/auto-learn-controller.js +50 -8
  746. package/dist/modes/interactive/auto-learn-controller.js.map +1 -1
  747. package/dist/modes/interactive/clipboard-input.d.ts +7 -1
  748. package/dist/modes/interactive/clipboard-input.d.ts.map +1 -1
  749. package/dist/modes/interactive/clipboard-input.js +44 -6
  750. package/dist/modes/interactive/clipboard-input.js.map +1 -1
  751. package/dist/modes/interactive/components/profile-resource-editor.d.ts.map +1 -1
  752. package/dist/modes/interactive/components/profile-resource-editor.js +23 -1
  753. package/dist/modes/interactive/components/profile-resource-editor.js.map +1 -1
  754. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  755. package/dist/modes/interactive/components/settings-selector.js +2 -2
  756. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  757. package/dist/modes/interactive/config-backup.d.ts.map +1 -1
  758. package/dist/modes/interactive/config-backup.js +5 -4
  759. package/dist/modes/interactive/config-backup.js.map +1 -1
  760. package/dist/modes/interactive/extension-ui-host.d.ts +14 -0
  761. package/dist/modes/interactive/extension-ui-host.d.ts.map +1 -1
  762. package/dist/modes/interactive/extension-ui-host.js +76 -15
  763. package/dist/modes/interactive/extension-ui-host.js.map +1 -1
  764. package/dist/modes/interactive/interactive-mode.d.ts +4 -0
  765. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  766. package/dist/modes/interactive/interactive-mode.js +67 -1
  767. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  768. package/dist/modes/interactive/key-handlers.d.ts.map +1 -1
  769. package/dist/modes/interactive/key-handlers.js +1 -1
  770. package/dist/modes/interactive/key-handlers.js.map +1 -1
  771. package/dist/modes/interactive/local-model-commands.d.ts +43 -0
  772. package/dist/modes/interactive/local-model-commands.d.ts.map +1 -1
  773. package/dist/modes/interactive/local-model-commands.js +290 -3
  774. package/dist/modes/interactive/local-model-commands.js.map +1 -1
  775. package/dist/modes/interactive/profile-menu-controller.d.ts.map +1 -1
  776. package/dist/modes/interactive/profile-menu-controller.js +7 -7
  777. package/dist/modes/interactive/profile-menu-controller.js.map +1 -1
  778. package/dist/modes/interactive/report-commands.d.ts.map +1 -1
  779. package/dist/modes/interactive/report-commands.js +21 -0
  780. package/dist/modes/interactive/report-commands.js.map +1 -1
  781. package/dist/modes/interactive/session-flow-commands.d.ts +17 -2
  782. package/dist/modes/interactive/session-flow-commands.d.ts.map +1 -1
  783. package/dist/modes/interactive/session-flow-commands.js +74 -21
  784. package/dist/modes/interactive/session-flow-commands.js.map +1 -1
  785. package/dist/modes/interactive/session-io-commands.d.ts.map +1 -1
  786. package/dist/modes/interactive/session-io-commands.js +16 -6
  787. package/dist/modes/interactive/session-io-commands.js.map +1 -1
  788. package/dist/modes/interactive/session-replacement-errors.d.ts +7 -0
  789. package/dist/modes/interactive/session-replacement-errors.d.ts.map +1 -0
  790. package/dist/modes/interactive/session-replacement-errors.js +15 -0
  791. package/dist/modes/interactive/session-replacement-errors.js.map +1 -0
  792. package/dist/modes/interactive/startup-checks.d.ts.map +1 -1
  793. package/dist/modes/interactive/startup-checks.js +1 -1
  794. package/dist/modes/interactive/startup-checks.js.map +1 -1
  795. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  796. package/dist/modes/rpc/rpc-mode.js +82 -23
  797. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  798. package/dist/modes/rpc/rpc-types.d.ts +15 -0
  799. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  800. package/dist/modes/rpc/rpc-types.js +138 -1
  801. package/dist/modes/rpc/rpc-types.js.map +1 -1
  802. package/dist/utils/clipboard-image.d.ts.map +1 -1
  803. package/dist/utils/clipboard-image.js +2 -13
  804. package/dist/utils/clipboard-image.js.map +1 -1
  805. package/dist/utils/clipboard-native.d.ts +1 -0
  806. package/dist/utils/clipboard-native.d.ts.map +1 -1
  807. package/dist/utils/clipboard-native.js.map +1 -1
  808. package/dist/utils/clipboard.d.ts +1 -0
  809. package/dist/utils/clipboard.d.ts.map +1 -1
  810. package/dist/utils/clipboard.js +52 -1
  811. package/dist/utils/clipboard.js.map +1 -1
  812. package/dist/utils/fs-watch.d.ts +11 -0
  813. package/dist/utils/fs-watch.d.ts.map +1 -1
  814. package/dist/utils/fs-watch.js +20 -2
  815. package/dist/utils/fs-watch.js.map +1 -1
  816. package/dist/utils/highlight-js-languages.d.ts +4 -0
  817. package/dist/utils/highlight-js-languages.d.ts.map +1 -0
  818. package/dist/utils/highlight-js-languages.js +573 -0
  819. package/dist/utils/highlight-js-languages.js.map +1 -0
  820. package/dist/utils/platform.d.ts +3 -0
  821. package/dist/utils/platform.d.ts.map +1 -0
  822. package/dist/utils/platform.js +8 -0
  823. package/dist/utils/platform.js.map +1 -0
  824. package/dist/utils/shell.d.ts +7 -1
  825. package/dist/utils/shell.d.ts.map +1 -1
  826. package/dist/utils/shell.js +21 -6
  827. package/dist/utils/shell.js.map +1 -1
  828. package/dist/utils/syntax-highlight.d.ts.map +1 -1
  829. package/dist/utils/syntax-highlight.js +53 -5
  830. package/dist/utils/syntax-highlight.js.map +1 -1
  831. package/dist/utils/tools-manager.d.ts.map +1 -1
  832. package/dist/utils/tools-manager.js +112 -1
  833. package/dist/utils/tools-manager.js.map +1 -1
  834. package/dist/utils/work-directory.d.ts +11 -0
  835. package/dist/utils/work-directory.d.ts.map +1 -1
  836. package/dist/utils/work-directory.js +30 -9
  837. package/dist/utils/work-directory.js.map +1 -1
  838. package/docs/UI_POLISH_ORCHESTRATION.md +44 -0
  839. package/docs/UI_QUALITY_ORCHESTRATION.md +30 -0
  840. package/docs/docs.json +4 -0
  841. package/docs/extensions.md +62 -2
  842. package/docs/harness-architecture.md +156 -0
  843. package/docs/keybindings.md +11 -1
  844. package/docs/process-matrix.md +153 -0
  845. package/docs/rpc.md +45 -2
  846. package/docs/sessions.md +15 -0
  847. package/docs/settings.md +128 -11
  848. package/docs/task-steps.md +8 -0
  849. package/docs/telemetry.md +19 -0
  850. package/docs/tmux-agent-manager.md +92 -2
  851. package/docs/ui-reference/README.md +9 -0
  852. package/docs/ui-reference/orchestration-after.txt +7 -0
  853. package/docs/ui-reference/orchestration-before.txt +7 -0
  854. package/docs/ui-reference/orchestration-reference.txt +6 -0
  855. package/docs/usage.md +14 -2
  856. package/docs/windows.md +52 -3
  857. package/docs/work-directory.md +42 -2
  858. package/docs/worktree-sync.md +250 -0
  859. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  860. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  861. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  862. package/examples/extensions/question.ts +34 -245
  863. package/examples/extensions/questionnaire.ts +41 -407
  864. package/examples/extensions/sandbox/package-lock.json +2 -2
  865. package/examples/extensions/sandbox/package.json +1 -1
  866. package/examples/extensions/with-deps/package-lock.json +2 -2
  867. package/examples/extensions/with-deps/package.json +1 -1
  868. package/npm-shrinkwrap.json +12 -12
  869. package/package.json +10 -4
  870. package/dist/core/delegation/session-worker-result.d.ts +0 -16
  871. package/dist/core/delegation/session-worker-result.d.ts.map +0 -1
  872. package/dist/core/delegation/session-worker-result.js +0 -53
  873. package/dist/core/delegation/session-worker-result.js.map +0 -1
  874. package/dist/core/delegation/worker-result.d.ts +0 -15
  875. package/dist/core/delegation/worker-result.d.ts.map +0 -1
  876. package/dist/core/delegation/worker-result.js +0 -161
  877. package/dist/core/delegation/worker-result.js.map +0 -1
  878. package/dist/core/telemetry.d.ts.map +0 -1
  879. package/dist/core/telemetry.js.map +0 -1
  880. package/docs/integration-sweep-builder-blueprint-2026-07-09.md +0 -365
  881. package/docs/integration-sweep-resume-2026-07-09.md +0 -407
@@ -0,0 +1,693 @@
1
+ import { CURSOR_MARKER, Input, truncateToWidth, visibleWidth, wrapTextWithAnsi, } from "@caupulican/pi-tui";
2
+ import { Type } from "typebox";
3
+ import { formatKeyText } from "../../modes/interactive/components/keybinding-hints.js";
4
+ import { defineTool } from "../extensions/types.js";
5
+ import { beginHumanInputRequest, createHumanInputRequest, formatHumanInputAnswerText, resolveHumanInput, } from "../human-input.js";
6
+ import { emptyOrchestrationCall, OrchestrationPanelComponent, } from "./orchestration-panel.js";
7
+ const optionSchema = Type.Object({
8
+ label: Type.String({ minLength: 1, maxLength: 120, description: "Concise option label." }),
9
+ description: Type.String({
10
+ minLength: 1,
11
+ maxLength: 500,
12
+ description: "Concrete consequence or tradeoff of choosing this option.",
13
+ }),
14
+ }, { additionalProperties: false });
15
+ const questionSchema = Type.Object({
16
+ id: Type.String({ minLength: 1, maxLength: 80, description: "Stable unique answer identifier." }),
17
+ header: Type.String({
18
+ minLength: 1,
19
+ maxLength: 32,
20
+ description: "Short topic label used in question navigation.",
21
+ }),
22
+ question: Type.String({ minLength: 1, maxLength: 1_000, description: "The specific user-facing question." }),
23
+ options: Type.Array(optionSchema, {
24
+ minItems: 2,
25
+ maxItems: 4,
26
+ description: "Two to four genuine choices. Other and Skip are supplied by the harness.",
27
+ }),
28
+ multiSelect: Type.Optional(Type.Boolean({ description: "Allow more than one listed option to be selected." })),
29
+ }, { additionalProperties: false });
30
+ const askQuestionSchema = Type.Object({
31
+ questions: Type.Array(questionSchema, {
32
+ minItems: 1,
33
+ maxItems: 4,
34
+ description: "One to four independent questions presented in one interaction.",
35
+ }),
36
+ }, { additionalProperties: false });
37
+ const ANSWER_PREVIEW_CHARS = 240;
38
+ const ANSWER_EDITOR_VIEWPORT_LINES = 8;
39
+ class SingleLineAnswerEditor {
40
+ input = new Input();
41
+ onSubmit;
42
+ constructor() {
43
+ this.input.onSubmit = (value) => this.onSubmit?.(value);
44
+ }
45
+ get focused() {
46
+ return this.input.focused;
47
+ }
48
+ set focused(value) {
49
+ this.input.focused = value;
50
+ }
51
+ getText() {
52
+ return this.input.getValue();
53
+ }
54
+ setText(text) {
55
+ this.input.setValue("");
56
+ this.insertTextAtCursor(text);
57
+ }
58
+ insertTextAtCursor(text) {
59
+ this.input.handleInput(`\x1b[200~${text}\x1b[201~`);
60
+ }
61
+ handleInput(data) {
62
+ this.input.handleInput(data);
63
+ }
64
+ render(width) {
65
+ return this.input.render(width);
66
+ }
67
+ invalidate() {
68
+ this.input.invalidate();
69
+ }
70
+ }
71
+ function normalizedIdentity(value) {
72
+ return value.trim().toLowerCase();
73
+ }
74
+ function validateQuestions(questions) {
75
+ if (questions.length < 1 || questions.length > 4)
76
+ return "Provide between one and four questions.";
77
+ const ids = new Set();
78
+ const prompts = new Set();
79
+ for (const question of questions) {
80
+ if (!question.id.trim() || !question.header.trim() || !question.question.trim()) {
81
+ return "Question ids, headers, and prompts must not be blank.";
82
+ }
83
+ const id = normalizedIdentity(question.id);
84
+ const prompt = normalizedIdentity(question.question);
85
+ if (ids.has(id))
86
+ return `Question id '${question.id}' is duplicated.`;
87
+ if (prompts.has(prompt))
88
+ return `Question '${question.question}' is duplicated.`;
89
+ ids.add(id);
90
+ prompts.add(prompt);
91
+ if (question.options.length < 2 || question.options.length > 4) {
92
+ return `Question '${question.header}' requires between two and four options.`;
93
+ }
94
+ const labels = new Set();
95
+ for (const option of question.options) {
96
+ const label = normalizedIdentity(option.label);
97
+ if (!label || !option.description.trim()) {
98
+ return `Question '${question.header}' has a blank option label or description.`;
99
+ }
100
+ if (label === "other" || label === "skip") {
101
+ return `Question '${question.header}' must not define the reserved '${option.label}' option.`;
102
+ }
103
+ if (labels.has(label))
104
+ return `Question '${question.header}' has duplicate option '${option.label}'.`;
105
+ labels.add(label);
106
+ }
107
+ }
108
+ return undefined;
109
+ }
110
+ function displayKeys(keybindings, keybinding, limit = 2) {
111
+ return formatKeyText(keybindings.getKeys(keybinding).slice(0, limit).join("/"), { capitalize: true });
112
+ }
113
+ function answerFor(question, selection, attachments = []) {
114
+ const images = selection.custom
115
+ ? attachments
116
+ .filter((attachment) => selection.custom?.includes(attachment.label))
117
+ .map((attachment) => ({ label: attachment.label, mimeType: attachment.content.mimeType }))
118
+ : [];
119
+ return {
120
+ id: question.id,
121
+ header: question.header,
122
+ question: question.question,
123
+ selected: [...selection.optionIndexes]
124
+ .sort((left, right) => left - right)
125
+ .map((index) => question.options[index]?.label)
126
+ .filter((label) => label !== undefined),
127
+ ...(selection.custom ? { custom: selection.custom } : {}),
128
+ ...(images.length > 0 ? { images } : {}),
129
+ skipped: selection.skipped,
130
+ };
131
+ }
132
+ function previewAnswer(value) {
133
+ if (value.length <= ANSWER_PREVIEW_CHARS)
134
+ return value;
135
+ return `${value.slice(0, ANSWER_PREVIEW_CHARS)}… (${value.length} characters)`;
136
+ }
137
+ function isResolved(selection) {
138
+ return selection.skipped || selection.optionIndexes.size > 0 || selection.custom !== undefined;
139
+ }
140
+ /** Native focused question interaction shared by every provider-facing ask_question call. */
141
+ export class AskQuestionDialog {
142
+ questions;
143
+ theme;
144
+ keybindings;
145
+ requestRender;
146
+ finish;
147
+ clipboard;
148
+ pasteClipboardImage;
149
+ createAnswerEditor;
150
+ selections;
151
+ cursors;
152
+ pendingClipboardImages = [];
153
+ clipboardImageCounter = 0;
154
+ currentIndex = 0;
155
+ input;
156
+ inputError;
157
+ inputStatus;
158
+ pasteInFlight = false;
159
+ submitAfterPaste = false;
160
+ cachedWidth;
161
+ cachedLines;
162
+ settled = false;
163
+ constructor(options) {
164
+ this.questions = options.questions;
165
+ this.theme = options.theme;
166
+ this.keybindings = options.keybindings;
167
+ this.requestRender = options.requestRender;
168
+ this.finish = options.finish;
169
+ this.clipboard = options.clipboard ?? { autoResizeImages: true, blockImages: false };
170
+ this.pasteClipboardImage =
171
+ options.pasteClipboardImage ??
172
+ (async (host) => {
173
+ host.showWarning("Clipboard paste is unavailable in this UI host.");
174
+ });
175
+ this.createAnswerEditor = options.createAnswerEditor ?? (() => new SingleLineAnswerEditor());
176
+ this.selections = options.questions.map(() => ({ optionIndexes: new Set(), skipped: false }));
177
+ this.cursors = options.questions.map(() => 0);
178
+ }
179
+ refresh() {
180
+ this.invalidate();
181
+ this.requestRender();
182
+ }
183
+ result(cancelled, reason) {
184
+ const answers = this.questions.map((question, index) => answerFor(question, this.selections[index], this.pendingClipboardImages));
185
+ const referencedLabels = new Set(answers.flatMap((answer) => answer.images?.map((image) => image.label) ?? []));
186
+ return {
187
+ answers,
188
+ cancelled,
189
+ imageContents: cancelled
190
+ ? []
191
+ : this.pendingClipboardImages
192
+ .filter((attachment) => referencedLabels.has(attachment.label))
193
+ .map((attachment) => attachment.content),
194
+ ...(reason ? { reason } : {}),
195
+ };
196
+ }
197
+ complete(result) {
198
+ if (this.settled)
199
+ return;
200
+ this.settled = true;
201
+ if (this.input)
202
+ this.input.focused = false;
203
+ this.finish(result);
204
+ }
205
+ cancel(reason) {
206
+ this.complete(this.result(true, reason));
207
+ }
208
+ move(delta) {
209
+ const lastIndex = this.questions.length;
210
+ this.currentIndex = Math.max(0, Math.min(lastIndex, this.currentIndex + delta));
211
+ this.refresh();
212
+ }
213
+ advanceAfterSingleSelection() {
214
+ if (this.questions.length === 1) {
215
+ this.complete(this.result(false));
216
+ return;
217
+ }
218
+ this.currentIndex = Math.min(this.questions.length, this.currentIndex + 1);
219
+ this.refresh();
220
+ }
221
+ beginCustomAnswer() {
222
+ const questionIndex = this.currentIndex;
223
+ const question = this.questions[questionIndex];
224
+ const selection = this.selections[questionIndex];
225
+ if (!question || !selection)
226
+ return;
227
+ const input = this.createAnswerEditor();
228
+ this.inputError = undefined;
229
+ this.inputStatus = undefined;
230
+ input.focused = true;
231
+ if (selection.custom)
232
+ input.setText(selection.custom);
233
+ input.onSubmit = (value) => {
234
+ const answer = value.trim();
235
+ if (!answer)
236
+ return;
237
+ selection.custom = answer;
238
+ selection.skipped = false;
239
+ input.focused = false;
240
+ this.input = undefined;
241
+ if (question.multiSelect)
242
+ this.refresh();
243
+ else
244
+ this.advanceAfterSingleSelection();
245
+ };
246
+ this.input = input;
247
+ this.refresh();
248
+ }
249
+ async pasteIntoCustomAnswer() {
250
+ const input = this.input;
251
+ if (!input || this.pasteInFlight)
252
+ return;
253
+ this.pasteInFlight = true;
254
+ this.inputError = undefined;
255
+ this.inputStatus = "Reading clipboard…";
256
+ this.refresh();
257
+ let reported = false;
258
+ const self = this;
259
+ const host = {
260
+ get pendingClipboardImages() {
261
+ return self.pendingClipboardImages;
262
+ },
263
+ set pendingClipboardImages(value) {
264
+ self.pendingClipboardImages = value;
265
+ },
266
+ get clipboardImageCounter() {
267
+ return self.clipboardImageCounter;
268
+ },
269
+ set clipboardImageCounter(value) {
270
+ self.clipboardImageCounter = value;
271
+ },
272
+ editor: {
273
+ handleInput: (data) => input.handleInput(data),
274
+ insertTextAtCursor: (text) => input.insertTextAtCursor(text),
275
+ },
276
+ ui: { requestRender: () => this.refresh() },
277
+ autoResizeImages: this.clipboard.autoResizeImages,
278
+ blockImages: this.clipboard.blockImages,
279
+ blockImagesReason: this.clipboard.blockImagesReason,
280
+ imageStore: this.clipboard.imageStore,
281
+ showStatus: (message) => {
282
+ reported = true;
283
+ this.inputStatus = message;
284
+ this.inputError = undefined;
285
+ },
286
+ showWarning: (message) => {
287
+ reported = true;
288
+ this.inputStatus = undefined;
289
+ this.inputError = message;
290
+ this.refresh();
291
+ },
292
+ };
293
+ try {
294
+ await this.pasteClipboardImage(host);
295
+ }
296
+ finally {
297
+ this.pasteInFlight = false;
298
+ const shouldSubmit = this.submitAfterPaste && this.input === input && !this.settled;
299
+ this.submitAfterPaste = false;
300
+ if (!reported)
301
+ this.inputStatus = undefined;
302
+ if (shouldSubmit)
303
+ input.onSubmit?.(input.getText());
304
+ if (this.input === input && !this.settled)
305
+ this.refresh();
306
+ }
307
+ }
308
+ selectCurrent() {
309
+ const question = this.questions[this.currentIndex];
310
+ const selection = this.selections[this.currentIndex];
311
+ if (!question || !selection)
312
+ return;
313
+ const cursor = this.cursors[this.currentIndex] ?? 0;
314
+ if (cursor === question.options.length) {
315
+ this.beginCustomAnswer();
316
+ return;
317
+ }
318
+ if (cursor === question.options.length + 1) {
319
+ selection.optionIndexes.clear();
320
+ selection.custom = undefined;
321
+ selection.skipped = true;
322
+ this.advanceAfterSingleSelection();
323
+ return;
324
+ }
325
+ selection.skipped = false;
326
+ if (question.multiSelect) {
327
+ if (selection.optionIndexes.has(cursor))
328
+ selection.optionIndexes.delete(cursor);
329
+ else
330
+ selection.optionIndexes.add(cursor);
331
+ this.refresh();
332
+ return;
333
+ }
334
+ selection.optionIndexes.clear();
335
+ selection.optionIndexes.add(cursor);
336
+ selection.custom = undefined;
337
+ this.advanceAfterSingleSelection();
338
+ }
339
+ submitReview() {
340
+ const unresolved = this.selections.findIndex((selection) => !isResolved(selection));
341
+ if (unresolved >= 0) {
342
+ this.currentIndex = unresolved;
343
+ this.refresh();
344
+ return;
345
+ }
346
+ this.complete(this.result(false));
347
+ }
348
+ handleInput(data) {
349
+ if (this.settled)
350
+ return;
351
+ if (this.input) {
352
+ if (this.keybindings.matches(data, "tui.select.cancel")) {
353
+ this.submitAfterPaste = false;
354
+ this.input.focused = false;
355
+ this.input = undefined;
356
+ this.refresh();
357
+ return;
358
+ }
359
+ if (this.keybindings.matches(data, "app.clipboard.pasteImage")) {
360
+ void this.pasteIntoCustomAnswer();
361
+ return;
362
+ }
363
+ if (this.pasteInFlight && this.keybindings.matches(data, "tui.input.submit")) {
364
+ this.submitAfterPaste = true;
365
+ this.inputStatus = "Finishing clipboard paste…";
366
+ this.refresh();
367
+ return;
368
+ }
369
+ const input = this.input;
370
+ this.inputError = undefined;
371
+ this.inputStatus = undefined;
372
+ input.handleInput(data);
373
+ if (this.input === input)
374
+ this.refresh();
375
+ return;
376
+ }
377
+ if (this.keybindings.matches(data, "tui.select.cancel")) {
378
+ this.cancel("user_cancelled");
379
+ return;
380
+ }
381
+ if (this.keybindings.matches(data, "app.question.previous")) {
382
+ this.move(-1);
383
+ return;
384
+ }
385
+ if (this.keybindings.matches(data, "app.question.next")) {
386
+ this.move(1);
387
+ return;
388
+ }
389
+ if (this.currentIndex === this.questions.length) {
390
+ if (this.keybindings.matches(data, "tui.select.confirm"))
391
+ this.submitReview();
392
+ return;
393
+ }
394
+ const question = this.questions[this.currentIndex];
395
+ if (!question)
396
+ return;
397
+ if (this.keybindings.matches(data, "tui.select.up")) {
398
+ this.cursors[this.currentIndex] = Math.max(0, (this.cursors[this.currentIndex] ?? 0) - 1);
399
+ this.refresh();
400
+ return;
401
+ }
402
+ if (this.keybindings.matches(data, "tui.select.down")) {
403
+ this.cursors[this.currentIndex] = Math.min(question.options.length + 1, (this.cursors[this.currentIndex] ?? 0) + 1);
404
+ this.refresh();
405
+ return;
406
+ }
407
+ if (this.keybindings.matches(data, "tui.select.confirm") ||
408
+ (question.multiSelect && this.keybindings.matches(data, "app.question.toggle"))) {
409
+ this.selectCurrent();
410
+ }
411
+ }
412
+ addWrapped(lines, text, width, indent = "") {
413
+ const contentWidth = Math.max(1, width - visibleWidth(indent));
414
+ for (const line of wrapTextWithAnsi(text, contentWidth)) {
415
+ lines.push(truncateToWidth(`${indent}${line}`, width, ""));
416
+ }
417
+ }
418
+ renderProgress(lines, width) {
419
+ if (this.questions.length === 1 && !this.questions[0]?.multiSelect)
420
+ return;
421
+ const chips = this.questions.map((question, index) => {
422
+ const resolved = isResolved(this.selections[index]);
423
+ const text = ` ${resolved ? "●" : "○"} ${question.header} `;
424
+ return index === this.currentIndex
425
+ ? this.theme.bg("selectedBg", this.theme.fg("text", text))
426
+ : this.theme.fg(resolved ? "success" : "muted", text);
427
+ });
428
+ const review = " Review ";
429
+ chips.push(this.currentIndex === this.questions.length
430
+ ? this.theme.bg("selectedBg", this.theme.fg("text", review))
431
+ : this.theme.fg("dim", review));
432
+ lines.push(truncateToWidth(chips.join(" "), width, ""));
433
+ lines.push("");
434
+ }
435
+ renderQuestion(lines, width, question) {
436
+ const questionIndex = this.currentIndex;
437
+ const selection = this.selections[questionIndex];
438
+ const cursor = this.cursors[questionIndex] ?? 0;
439
+ this.addWrapped(lines, this.theme.bold(question.question), width);
440
+ if (question.multiSelect) {
441
+ lines.push(this.theme.fg("muted", "Choose one or more, then continue to review."));
442
+ }
443
+ lines.push("");
444
+ question.options.forEach((option, index) => {
445
+ const active = index === cursor;
446
+ const chosen = selection.optionIndexes.has(index);
447
+ const prefix = `${active ? "›" : " "} ${chosen ? "●" : "○"} `;
448
+ const label = `${prefix}${option.label}`;
449
+ lines.push(truncateToWidth(active ? this.theme.bg("selectedBg", this.theme.fg("text", ` ${label} `)) : this.theme.fg("text", label), width, ""));
450
+ this.addWrapped(lines, this.theme.fg("muted", option.description), width, " ");
451
+ });
452
+ const otherIndex = question.options.length;
453
+ const otherActive = cursor === otherIndex;
454
+ const otherLabel = selection.custom ? `Other: ${previewAnswer(selection.custom)}` : "Other";
455
+ const otherText = `${otherActive ? "›" : " "} ${selection.custom ? "●" : "+"} ${otherLabel}`;
456
+ lines.push(truncateToWidth(otherActive
457
+ ? this.theme.bg("selectedBg", this.theme.fg("text", ` ${otherText} `))
458
+ : this.theme.fg("muted", otherText), width, ""));
459
+ const skipActive = cursor === otherIndex + 1;
460
+ const skipText = `${skipActive ? "›" : " "} ${selection.skipped ? "●" : "–"} Skip`;
461
+ lines.push(truncateToWidth(skipActive
462
+ ? this.theme.bg("selectedBg", this.theme.fg("text", ` ${skipText} `))
463
+ : this.theme.fg("dim", skipText), width, ""));
464
+ if (this.input) {
465
+ lines.push("");
466
+ lines.push(this.theme.fg("muted", "Your answer"));
467
+ const renderedInput = this.input.render(Math.max(4, width - 2));
468
+ const cursorLine = Math.max(0, renderedInput.findIndex((line) => line.includes(CURSOR_MARKER)));
469
+ const viewportStart = Math.max(0, Math.min(cursorLine - Math.floor(ANSWER_EDITOR_VIEWPORT_LINES / 2), renderedInput.length - ANSWER_EDITOR_VIEWPORT_LINES));
470
+ const visibleInput = renderedInput.slice(viewportStart, viewportStart + ANSWER_EDITOR_VIEWPORT_LINES);
471
+ if (viewportStart > 0) {
472
+ lines.push(this.theme.fg("dim", ` ↑ ${viewportStart} earlier line${viewportStart === 1 ? "" : "s"}`));
473
+ }
474
+ for (const inputLine of visibleInput) {
475
+ lines.push(truncateToWidth(` ${inputLine}`, width, ""));
476
+ }
477
+ const remainingLines = renderedInput.length - viewportStart - visibleInput.length;
478
+ if (remainingLines > 0) {
479
+ lines.push(this.theme.fg("dim", ` ↓ ${remainingLines} later line${remainingLines === 1 ? "" : "s"}`));
480
+ }
481
+ if (this.inputError)
482
+ this.addWrapped(lines, this.theme.fg("warning", this.inputError), width, " ");
483
+ if (this.inputStatus)
484
+ this.addWrapped(lines, this.theme.fg("success", this.inputStatus), width, " ");
485
+ }
486
+ }
487
+ renderReview(lines, width) {
488
+ lines.push(this.theme.bold("Review your answers"));
489
+ lines.push("");
490
+ let unresolved = 0;
491
+ this.questions.forEach((question, index) => {
492
+ const answer = answerFor(question, this.selections[index]);
493
+ const values = [...answer.selected, ...(answer.custom ? [previewAnswer(answer.custom)] : [])];
494
+ const value = answer.skipped ? "Skipped" : values.length > 0 ? values.join(", ") : "Unanswered";
495
+ if (!isResolved(this.selections[index]))
496
+ unresolved++;
497
+ this.addWrapped(lines, `${this.theme.fg("muted", `${question.header}:`)} ${this.theme.fg(value === "Unanswered" ? "warning" : "text", value)}`, width);
498
+ });
499
+ if (unresolved > 0) {
500
+ lines.push("");
501
+ this.addWrapped(lines, this.theme.fg("warning", `${unresolved} unanswered. Answer or explicitly skip each question before submitting.`), width);
502
+ }
503
+ }
504
+ renderHelp(lines, width) {
505
+ const cancel = displayKeys(this.keybindings, "tui.select.cancel", 1);
506
+ let help;
507
+ if (this.input) {
508
+ help = `${displayKeys(this.keybindings, "tui.input.submit", 1)} save · ${displayKeys(this.keybindings, "tui.input.newLine", 1)} newline · ${displayKeys(this.keybindings, "app.clipboard.pasteImage", 1)} paste · ${cancel} back`;
509
+ }
510
+ else if (this.currentIndex === this.questions.length) {
511
+ help = `${displayKeys(this.keybindings, "tui.select.confirm", 1)} submit · ${displayKeys(this.keybindings, "app.question.previous")} back · ${cancel} cancel`;
512
+ }
513
+ else if (this.questions[this.currentIndex]?.multiSelect) {
514
+ help = `${displayKeys(this.keybindings, "tui.select.up")}/${displayKeys(this.keybindings, "tui.select.down")} move · ${displayKeys(this.keybindings, "app.question.toggle", 1)}/${displayKeys(this.keybindings, "tui.select.confirm", 1)} toggle · ${displayKeys(this.keybindings, "app.question.next")} next · ${cancel} cancel`;
515
+ }
516
+ else {
517
+ help = `${displayKeys(this.keybindings, "tui.select.up")}/${displayKeys(this.keybindings, "tui.select.down")} move · ${displayKeys(this.keybindings, "tui.select.confirm", 1)} select · ${cancel} cancel`;
518
+ }
519
+ this.addWrapped(lines, this.theme.fg("dim", help), width);
520
+ }
521
+ render(width) {
522
+ if (this.cachedWidth === width && this.cachedLines)
523
+ return this.cachedLines;
524
+ const safeWidth = Math.max(1, width);
525
+ const lines = [];
526
+ const header = this.currentIndex === this.questions.length ? "review" : this.questions[this.currentIndex]?.header;
527
+ lines.push(truncateToWidth(`${this.theme.fg("accent", "?")} ${this.theme.bold(header ?? "question")} ${this.theme.fg("dim", `${Math.min(this.currentIndex + 1, this.questions.length)}/${this.questions.length}`)}`, safeWidth, ""));
528
+ lines.push("");
529
+ this.renderProgress(lines, safeWidth);
530
+ const question = this.questions[this.currentIndex];
531
+ if (question)
532
+ this.renderQuestion(lines, safeWidth, question);
533
+ else
534
+ this.renderReview(lines, safeWidth);
535
+ lines.push("");
536
+ this.renderHelp(lines, safeWidth);
537
+ this.cachedWidth = width;
538
+ this.cachedLines = lines.map((line) => truncateToWidth(line, safeWidth, ""));
539
+ return this.cachedLines;
540
+ }
541
+ invalidate() {
542
+ this.cachedWidth = undefined;
543
+ this.cachedLines = undefined;
544
+ }
545
+ }
546
+ function questionPanelModel(details) {
547
+ if (!details) {
548
+ return { label: "question", status: "error", emptyText: "No structured answer was retained." };
549
+ }
550
+ if (details.reason === "ui_unavailable" || details.reason === "invalid_questions") {
551
+ return {
552
+ label: "question",
553
+ action: "unavailable",
554
+ status: "error",
555
+ emptyText: details.error ?? "User input is unavailable.",
556
+ };
557
+ }
558
+ const rows = details.questions.map((question) => {
559
+ const answer = details.answers.find((candidate) => candidate.id === question.id);
560
+ const values = answer ? [...answer.selected, ...(answer.custom ? [previewAnswer(answer.custom)] : [])] : [];
561
+ const imageCount = answer?.images?.length ?? 0;
562
+ return {
563
+ status: details.cancelled
564
+ ? "cancelled"
565
+ : answer?.skipped
566
+ ? "cancelled"
567
+ : "completed",
568
+ label: question.header,
569
+ meta: details.cancelled
570
+ ? [details.reason === "interrupted" ? "interrupted" : "cancelled"]
571
+ : answer?.skipped
572
+ ? ["skipped"]
573
+ : [
574
+ values.length > 1 ? `${values.length} selected` : undefined,
575
+ imageCount > 0 ? `${imageCount} image${imageCount === 1 ? "" : "s"}` : undefined,
576
+ ].filter((value) => value !== undefined),
577
+ details: values.length > 0 ? [`answer: ${values.join(", ")}`] : undefined,
578
+ };
579
+ });
580
+ const skipped = details.answers.filter((answer) => answer.skipped).length;
581
+ return {
582
+ label: "question",
583
+ action: details.cancelled ? "cancelled" : "answered",
584
+ status: details.cancelled ? "warning" : "success",
585
+ summary: details.cancelled
586
+ ? undefined
587
+ : [`${details.answers.length - skipped} answered`, skipped ? `${skipped} skipped` : undefined].filter((value) => value !== undefined),
588
+ rows,
589
+ };
590
+ }
591
+ function stoppedResult(questions, reason, error) {
592
+ return {
593
+ content: [{ type: "text", text: error ?? `ask_question stopped: ${reason}` }],
594
+ details: { questions, answers: [], cancelled: true, reason, ...(error ? { error } : {}) },
595
+ };
596
+ }
597
+ export function createAskQuestionToolDefinition(options = {}) {
598
+ const name = options.name ?? "ask_question";
599
+ return defineTool({
600
+ name,
601
+ label: options.label ?? "Ask Question",
602
+ description: "Ask the human owner one to four concise questions when a missing choice materially changes the work. The harness supplies Other and Skip choices, supports single- and multi-select answers, and returns a typed answer set.",
603
+ promptSnippet: "Ask the human owner for a consequential missing choice through the native interactive UI.",
604
+ promptGuidelines: [
605
+ "Use this tool only when a missing owner choice materially changes the result, authority, risk, or acceptance criteria; otherwise proceed with a safe stated assumption.",
606
+ "Batch independent questions into one call, with at most four questions and two to four genuine options each.",
607
+ "Make every option label concise and describe its concrete consequence or tradeoff. Do not add Other, Skip, None, or filler options; the harness supplies Other and Skip.",
608
+ "Set multiSelect only when choices are genuinely independent. Never use a question to delegate a decision already fixed by an owner-authored profile or policy.",
609
+ "Respect skipped or cancelled input as owner intent. Do not immediately repeat the same question; proceed safely or report the unresolved boundary.",
610
+ ],
611
+ parameters: askQuestionSchema,
612
+ executionMode: "sequential",
613
+ renderShell: "self",
614
+ renderCall() {
615
+ return emptyOrchestrationCall();
616
+ },
617
+ renderResult(result, { expanded, isPartial }, theme) {
618
+ if (isPartial) {
619
+ return new OrchestrationPanelComponent(theme, {
620
+ label: "question",
621
+ action: "waiting for you",
622
+ status: "running",
623
+ });
624
+ }
625
+ return new OrchestrationPanelComponent(theme, questionPanelModel(result.details), expanded);
626
+ },
627
+ async execute(_toolCallId, input, signal, _onUpdate, ctx) {
628
+ const validationError = validateQuestions(input.questions);
629
+ if (validationError)
630
+ return stoppedResult(input.questions, "invalid_questions", validationError);
631
+ if (!ctx.hasUI) {
632
+ return stoppedResult(input.questions, "ui_unavailable", "ask_question requires interactive UI.");
633
+ }
634
+ if (signal?.aborted)
635
+ return stoppedResult(input.questions, "interrupted");
636
+ const request = createHumanInputRequest({
637
+ source: "tool",
638
+ toolCallId: _toolCallId,
639
+ toolName: name,
640
+ questions: input.questions,
641
+ acceptsImages: ctx.model?.input.includes("image") ?? false,
642
+ });
643
+ if (options.sessionManager)
644
+ beginHumanInputRequest(options.sessionManager, request);
645
+ const resolved = options.sessionManager
646
+ ? await resolveHumanInput({
647
+ sessionManager: options.sessionManager,
648
+ request,
649
+ present: (presentation, dialogOptions) => ctx.ui.askQuestions(presentation, dialogOptions),
650
+ artifactStore: options.artifactStore,
651
+ getImageStore: options.getImageStore,
652
+ signal,
653
+ })
654
+ : await (async () => {
655
+ const result = await ctx.ui.askQuestions({
656
+ requestId: request.requestId,
657
+ questions: request.questions,
658
+ acceptsImages: request.acceptsImages,
659
+ }, { signal });
660
+ return {
661
+ snapshot: {
662
+ request,
663
+ status: result.cancelled ? "cancelled" : "answered",
664
+ answers: result.answers,
665
+ ...(result.reason ? { reason: result.reason } : {}),
666
+ updatedAt: new Date().toISOString(),
667
+ },
668
+ imageContents: result.imageContents,
669
+ };
670
+ })();
671
+ const details = {
672
+ questions: input.questions,
673
+ answers: resolved.snapshot.answers,
674
+ cancelled: resolved.snapshot.status === "cancelled",
675
+ ...(resolved.snapshot.reason ? { reason: resolved.snapshot.reason } : {}),
676
+ };
677
+ if (details.cancelled) {
678
+ return {
679
+ content: [{ type: "text", text: formatHumanInputAnswerText(resolved.snapshot) }],
680
+ details,
681
+ };
682
+ }
683
+ return {
684
+ content: [
685
+ { type: "text", text: formatHumanInputAnswerText(resolved.snapshot) },
686
+ ...resolved.imageContents,
687
+ ],
688
+ details,
689
+ };
690
+ },
691
+ });
692
+ }
693
+ //# sourceMappingURL=ask-question.js.map