@aragon-agent/cli 0.6.46 → 0.6.48

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 (775) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +80 -12
  3. package/dist/agent/coalesce.d.ts +5 -1
  4. package/dist/agent/coalesce.js +13 -0
  5. package/dist/agent/controller.d.ts +41 -20
  6. package/dist/agent/controller.js +68 -15
  7. package/dist/agent/conversation-reset.d.ts +1 -1
  8. package/dist/agent/governance-wiring.d.ts +6 -6
  9. package/dist/agent/governance-wiring.js +4 -4
  10. package/dist/agent/headless.d.ts +5 -5
  11. package/dist/agent/headless.js +4 -4
  12. package/dist/agent/job-notices.d.ts +1 -1
  13. package/dist/agent/job-notices.js +1 -1
  14. package/dist/agent/kit-apply.d.ts +3 -3
  15. package/dist/agent/kit-apply.js +3 -3
  16. package/dist/agent/model-profile-settings.d.ts +2 -2
  17. package/dist/agent/model-profile-settings.js +6 -6
  18. package/dist/agent/prompt-options.d.ts +1 -1
  19. package/dist/agent/system-prompt.d.ts +1 -1
  20. package/dist/agent/user-attention.d.ts +17 -0
  21. package/dist/agent/user-attention.js +32 -0
  22. package/dist/{ui → app}/App.d.ts +9 -9
  23. package/dist/{ui → app}/App.js +113 -79
  24. package/dist/{ui → app}/use-startup-notices.d.ts +1 -1
  25. package/dist/{ui → app}/use-startup-notices.js +2 -2
  26. package/dist/cli.js +31 -32
  27. package/dist/commands/agents-command.js +1 -1
  28. package/dist/commands/builtins.js +9 -9
  29. package/dist/commands/governance-command.js +2 -2
  30. package/dist/commands/governance-runs-table.js +1 -1
  31. package/dist/commands/kit-command.js +1 -1
  32. package/dist/commands/perf.d.ts +3 -3
  33. package/dist/commands/perf.js +1 -1
  34. package/dist/commands/registry.d.ts +8 -8
  35. package/dist/commands/skills.js +2 -2
  36. package/dist/commands/team-command.js +1 -1
  37. package/dist/compaction/archive.d.ts +1 -1
  38. package/dist/compaction/archive.js +1 -1
  39. package/dist/compaction/child.d.ts +3 -3
  40. package/dist/compaction/child.js +4 -4
  41. package/dist/compaction/command.js +5 -5
  42. package/dist/compaction/compactor.d.ts +6 -6
  43. package/dist/compaction/compactor.js +6 -6
  44. package/dist/compaction/context-command.js +1 -1
  45. package/dist/compaction/digest.js +1 -1
  46. package/dist/compaction/memory-input.js +1 -1
  47. package/dist/compaction/memory-validation.js +1 -1
  48. package/dist/compaction/memory.js +1 -1
  49. package/dist/compaction/summarize-call.js +1 -1
  50. package/dist/compaction/summary-prompt.js +1 -1
  51. package/dist/compaction/tail-budget.js +2 -2
  52. package/dist/compaction/wiring.d.ts +5 -5
  53. package/dist/compaction/wiring.js +2 -2
  54. package/dist/config/cli-commands.d.ts +1 -1
  55. package/dist/config/cli-commands.js +3 -3
  56. package/dist/config/env.d.ts +1 -1
  57. package/dist/config/env.js +4 -4
  58. package/dist/config/load.d.ts +2 -2
  59. package/dist/config/load.js +10 -31
  60. package/dist/config/migrate-state-out-of-config.js +1 -1
  61. package/dist/config/model-profile-store.d.ts +4 -54
  62. package/dist/config/model-profile-store.js +3 -3
  63. package/dist/config/prompt-history.js +1 -1
  64. package/dist/config/store.d.ts +2 -2
  65. package/dist/config/store.js +3 -3
  66. package/dist/diagnostics/doctor.js +4 -4
  67. package/dist/exec/bridge/decisions.d.ts +1 -1
  68. package/dist/exec/bridge/human-answers.d.ts +1 -1
  69. package/dist/exec/bridge/human-answers.js +1 -1
  70. package/dist/exec/bridge/protocol.d.ts +1 -1
  71. package/dist/exec/bridge/server.js +1 -1
  72. package/dist/exec/events.d.ts +2 -2
  73. package/dist/exec/index.d.ts +1 -1
  74. package/dist/exec/index.js +1 -1
  75. package/dist/exec/permission.js +1 -1
  76. package/dist/exec/runner.d.ts +3 -3
  77. package/dist/exec/runner.js +2 -2
  78. package/dist/exec/threads/runtime.js +1 -1
  79. package/dist/fast/digest.d.ts +1 -1
  80. package/dist/fast/digest.js +1 -1
  81. package/dist/fast/frames.d.ts +1 -1
  82. package/dist/fast/frames.js +1 -1
  83. package/dist/fast/prompt.d.ts +1 -1
  84. package/dist/fast/prompt.js +1 -1
  85. package/dist/fast/review-call.js +1 -1
  86. package/dist/fast/reviewer.d.ts +3 -3
  87. package/dist/fast/reviewer.js +1 -1
  88. package/dist/fast/summary-call.d.ts +3 -3
  89. package/dist/fast/summary-call.js +2 -2
  90. package/dist/fast/summary-prompt.d.ts +1 -1
  91. package/dist/fast/summary-prompt.js +1 -1
  92. package/dist/fast/wiring.d.ts +4 -4
  93. package/dist/fast/wiring.js +1 -1
  94. package/dist/governance/card-normalize.d.ts +1 -1
  95. package/dist/governance/copy.d.ts +1 -1
  96. package/dist/governance/copy.js +2 -2
  97. package/dist/governance/engine/artifact-persist.d.ts +1 -1
  98. package/dist/governance/engine/budget.d.ts +1 -1
  99. package/dist/governance/engine/budget.js +1 -1
  100. package/dist/governance/engine/cards.d.ts +1 -1
  101. package/dist/governance/engine/digest.js +1 -1
  102. package/dist/governance/engine/engine-core.d.ts +5 -5
  103. package/dist/governance/engine/engine-core.js +1 -1
  104. package/dist/governance/engine/engine.d.ts +1 -1
  105. package/dist/governance/engine/engine.js +1 -1
  106. package/dist/governance/engine/estimate.d.ts +1 -1
  107. package/dist/governance/engine/estimate.js +1 -1
  108. package/dist/governance/engine/inspector.js +2 -2
  109. package/dist/governance/engine/integration.d.ts +1 -1
  110. package/dist/governance/engine/lifecycle.d.ts +1 -1
  111. package/dist/governance/engine/lifecycle.js +1 -1
  112. package/dist/governance/engine/phase-members.d.ts +1 -1
  113. package/dist/governance/engine/phase-planner.d.ts +1 -1
  114. package/dist/governance/engine/phase-planner.js +1 -1
  115. package/dist/governance/engine/rebuild.d.ts +1 -1
  116. package/dist/governance/engine/report.d.ts +1 -1
  117. package/dist/governance/engine/report.js +1 -1
  118. package/dist/governance/engine/run-digest.d.ts +1 -1
  119. package/dist/governance/engine/spec-builder.d.ts +2 -2
  120. package/dist/governance/engine/spec-builder.js +2 -2
  121. package/dist/governance/engine/stage-runner.js +2 -2
  122. package/dist/governance/engine/start-input.d.ts +1 -1
  123. package/dist/governance/engine/start-input.js +1 -1
  124. package/dist/governance/engine/state-machine.d.ts +1 -1
  125. package/dist/governance/engine/state-machine.js +3 -3
  126. package/dist/governance/engine/submission-queries.d.ts +1 -1
  127. package/dist/governance/engine/submission-render.d.ts +1 -1
  128. package/dist/governance/engine/submissions.d.ts +1 -1
  129. package/dist/governance/engine/submissions.js +1 -1
  130. package/dist/governance/engine/visibility.d.ts +1 -1
  131. package/dist/governance/engine/visibility.js +1 -1
  132. package/dist/governance/posture-transition.d.ts +2 -2
  133. package/dist/governance/posture-transition.js +1 -1
  134. package/dist/governance/profiles.d.ts +1 -1
  135. package/dist/governance/prompts/orchestrator-block.d.ts +2 -2
  136. package/dist/governance/prompts/orchestrator-block.js +2 -2
  137. package/dist/governance/prompts/plan-addendum.d.ts +1 -1
  138. package/dist/governance/prompts/plan-addendum.js +1 -1
  139. package/dist/governance/prompts/role-blocks.d.ts +2 -2
  140. package/dist/governance/prompts/role-blocks.js +1 -1
  141. package/dist/governance/report-reader.js +1 -1
  142. package/dist/governance/roles.d.ts +1 -1
  143. package/dist/governance/rules/claims.d.ts +1 -1
  144. package/dist/governance/rules/claims.js +1 -1
  145. package/dist/governance/rules/elimination.d.ts +1 -1
  146. package/dist/governance/rules/elimination.js +1 -1
  147. package/dist/governance/rules/failure-analysis.d.ts +2 -2
  148. package/dist/governance/rules/failure-analysis.js +1 -1
  149. package/dist/governance/rules/ledger-replay.d.ts +1 -1
  150. package/dist/governance/rules/ledger-state.d.ts +1 -1
  151. package/dist/governance/rules/ledger-state.js +1 -1
  152. package/dist/governance/rules/ledger.d.ts +2 -2
  153. package/dist/governance/rules/ledger.js +2 -2
  154. package/dist/governance/rules/rca.d.ts +1 -1
  155. package/dist/governance/rules/rca.js +1 -1
  156. package/dist/governance/rules/settlement.d.ts +2 -2
  157. package/dist/governance/rules/settlement.js +2 -2
  158. package/dist/governance/rules/suspicion.d.ts +1 -1
  159. package/dist/governance/store/artifacts.d.ts +1 -1
  160. package/dist/governance/store/artifacts.js +1 -1
  161. package/dist/governance/store/events-log.d.ts +1 -1
  162. package/dist/governance/store/run-store.d.ts +1 -1
  163. package/dist/governance/store/run-store.js +1 -1
  164. package/dist/governance/store/scoreboard-export.d.ts +1 -1
  165. package/dist/governance/tools/child-tools.d.ts +1 -1
  166. package/dist/governance/tools/guard.d.ts +1 -1
  167. package/dist/governance/tools/guard.js +1 -1
  168. package/dist/governance/tools/inspector-tools.d.ts +2 -2
  169. package/dist/governance/tools/inspector-tools.js +2 -2
  170. package/dist/governance/tools/lead-tools.d.ts +1 -1
  171. package/dist/governance/tools/lead-tools.js +1 -1
  172. package/dist/governance/tools/normalize-util.js +1 -1
  173. package/dist/governance/tools/scan-incomplete.js +1 -1
  174. package/dist/governance/tools/shared-tools.d.ts +1 -1
  175. package/dist/governance/tools/shared-tools.js +1 -1
  176. package/dist/governance/tools/submit-normalizers.d.ts +1 -1
  177. package/dist/governance/tools/submit-normalizers.js +1 -1
  178. package/dist/governance/tools/submit-tools.d.ts +1 -1
  179. package/dist/logging/cli-commands.js +1 -1
  180. package/dist/logging/install.d.ts +1 -1
  181. package/dist/logging/install.js +3 -3
  182. package/dist/logging/logger.d.ts +2 -2
  183. package/dist/logging/logger.js +31 -2
  184. package/dist/proc/kill-tree.js +1 -1
  185. package/dist/proc/log-mirror.js +1 -1
  186. package/dist/proc/log-ring.js +2 -2
  187. package/dist/proc/notices.d.ts +1 -1
  188. package/dist/proc/notices.js +2 -2
  189. package/dist/proc/prompt.d.ts +1 -1
  190. package/dist/proc/prompt.js +8 -5
  191. package/dist/proc/readiness.js +1 -1
  192. package/dist/proc/supervisor.d.ts +1 -1
  193. package/dist/proc/supervisor.js +10 -4
  194. package/dist/proc/wait-plan.d.ts +39 -0
  195. package/dist/proc/wait-plan.js +77 -0
  196. package/dist/proc/wait.d.ts +37 -4
  197. package/dist/proc/wait.js +68 -5
  198. package/dist/prompts/command.d.ts +1 -1
  199. package/dist/prompts/command.js +1 -1
  200. package/dist/prompts/normalize.d.ts +1 -1
  201. package/dist/prompts/normalize.js +1 -1
  202. package/dist/prompts/resolve.d.ts +1 -1
  203. package/dist/prompts/store.d.ts +2 -12
  204. package/dist/prompts/store.js +6 -60
  205. package/dist/session/checkpoint.d.ts +2 -2
  206. package/dist/session/checkpoint.js +2 -0
  207. package/dist/session/clear-archive.d.ts +2 -2
  208. package/dist/session/persist.d.ts +2 -2
  209. package/dist/session/persist.js +20 -3
  210. package/dist/session/startup-session.d.ts +2 -2
  211. package/dist/session/validate-session.js +6 -3
  212. package/dist/skills/service.d.ts +2 -2
  213. package/dist/team/bus.d.ts +1 -1
  214. package/dist/team/bus.js +1 -1
  215. package/dist/team/child-reviewer.d.ts +2 -2
  216. package/dist/team/child-reviewer.js +1 -1
  217. package/dist/team/comm-tools.js +1 -1
  218. package/dist/team/dispatch-gate.js +1 -1
  219. package/dist/team/forced-dispatch.js +1 -1
  220. package/dist/team/forced-mode.d.ts +1 -1
  221. package/dist/team/forced-prompt.d.ts +1 -1
  222. package/dist/team/forced-prompt.js +1 -1
  223. package/dist/team/normalize.d.ts +1 -1
  224. package/dist/team/normalize.js +1 -1
  225. package/dist/team/overseer.d.ts +3 -3
  226. package/dist/team/overseer.js +3 -3
  227. package/dist/team/prompt.d.ts +1 -1
  228. package/dist/team/prompt.js +1 -1
  229. package/dist/team/report.d.ts +2 -2
  230. package/dist/team/report.js +2 -2
  231. package/dist/team/retry.d.ts +1 -1
  232. package/dist/team/retry.js +1 -1
  233. package/dist/team/runtime.d.ts +4 -4
  234. package/dist/team/runtime.js +2 -2
  235. package/dist/team/settled.d.ts +2 -2
  236. package/dist/team/subagent.d.ts +4 -4
  237. package/dist/team/subagent.js +5 -5
  238. package/dist/team/task-tool.d.ts +1 -1
  239. package/dist/team/task-tool.js +1 -1
  240. package/dist/todo/normalize.d.ts +1 -1
  241. package/dist/todo/normalize.js +1 -1
  242. package/dist/todo/prompt.d.ts +1 -1
  243. package/dist/todo/prompt.js +1 -1
  244. package/dist/todo/store.d.ts +1 -1
  245. package/dist/todo/store.js +2 -2
  246. package/dist/todo/todo-tool.d.ts +1 -1
  247. package/dist/todo/todo-tool.js +2 -2
  248. package/dist/tools/bash-tool.d.ts +1 -1
  249. package/dist/tools/bash-tool.js +2 -2
  250. package/dist/tools/diff.d.ts +1 -1
  251. package/dist/tools/diff.js +1 -1
  252. package/dist/tools/file-change-store.d.ts +1 -1
  253. package/dist/tools/fs-tools.d.ts +2 -2
  254. package/dist/tools/fs-tools.js +1 -1
  255. package/dist/tools/index.d.ts +3 -3
  256. package/dist/tools/index.js +1 -1
  257. package/dist/tools/job-tools.d.ts +14 -3
  258. package/dist/tools/job-tools.js +158 -35
  259. package/dist/tools/plan-tools.d.ts +1 -1
  260. package/dist/tools/plan-tools.js +1 -1
  261. package/dist/tools/proc-tools.d.ts +1 -1
  262. package/dist/tools/proc-tools.js +2 -2
  263. package/dist/update/classify-failure.d.ts +1 -1
  264. package/dist/update/install-lock.js +1 -1
  265. package/dist/update/install-source.d.ts +1 -1
  266. package/dist/update/installer.js +2 -2
  267. package/dist/update/npm-view.d.ts +1 -1
  268. package/dist/update/npm-view.js +1 -1
  269. package/dist/update/registry.d.ts +1 -1
  270. package/dist/update/registry.js +1 -1
  271. package/dist/update/service.d.ts +2 -2
  272. package/dist/update/service.js +2 -2
  273. package/package.json +7 -7
  274. package/dist/agent/agent-mode.d.ts +0 -108
  275. package/dist/agent/agent-mode.js +0 -121
  276. package/dist/agent/entry-limits.d.ts +0 -65
  277. package/dist/agent/entry-limits.js +0 -133
  278. package/dist/agent/governance-view.d.ts +0 -40
  279. package/dist/agent/governance-view.js +0 -40
  280. package/dist/agent/invocation-card.d.ts +0 -77
  281. package/dist/agent/invocation-card.js +0 -169
  282. package/dist/agent/model-probe-limits.d.ts +0 -39
  283. package/dist/agent/model-probe-limits.js +0 -25
  284. package/dist/agent/model-probe.d.ts +0 -104
  285. package/dist/agent/model-probe.js +0 -391
  286. package/dist/agent/queued-messages.d.ts +0 -23
  287. package/dist/agent/queued-messages.js +0 -49
  288. package/dist/agent/reducer.d.ts +0 -837
  289. package/dist/agent/reducer.js +0 -1617
  290. package/dist/agent/retry-view.d.ts +0 -68
  291. package/dist/agent/retry-view.js +0 -95
  292. package/dist/agent/usage.d.ts +0 -47
  293. package/dist/agent/usage.js +0 -84
  294. package/dist/compaction/limits.d.ts +0 -61
  295. package/dist/compaction/limits.js +0 -64
  296. package/dist/compaction/meter.d.ts +0 -276
  297. package/dist/compaction/meter.js +0 -512
  298. package/dist/compaction/pressure.d.ts +0 -163
  299. package/dist/compaction/pressure.js +0 -199
  300. package/dist/compaction/reason-text.d.ts +0 -36
  301. package/dist/compaction/reason-text.js +0 -78
  302. package/dist/compaction/types.d.ts +0 -360
  303. package/dist/compaction/types.js +0 -22
  304. package/dist/config/governance-config.d.ts +0 -125
  305. package/dist/config/governance-config.js +0 -164
  306. package/dist/config/kit-resolution.d.ts +0 -93
  307. package/dist/config/kit-resolution.js +0 -226
  308. package/dist/config/model-kits.d.ts +0 -225
  309. package/dist/config/model-kits.js +0 -302
  310. package/dist/config/model-profile-resolution.d.ts +0 -28
  311. package/dist/config/model-profile-resolution.js +0 -88
  312. package/dist/config/model-profiles.d.ts +0 -103
  313. package/dist/config/model-profiles.js +0 -188
  314. package/dist/config/schema.d.ts +0 -1645
  315. package/dist/config/schema.js +0 -1377
  316. package/dist/fast/limits.d.ts +0 -152
  317. package/dist/fast/limits.js +0 -152
  318. package/dist/fast/resolve.d.ts +0 -44
  319. package/dist/fast/resolve.js +0 -107
  320. package/dist/fast/task-summary-types.d.ts +0 -66
  321. package/dist/fast/task-summary-types.js +0 -17
  322. package/dist/fast/types.d.ts +0 -141
  323. package/dist/fast/types.js +0 -14
  324. package/dist/governance/governed-dispatch.d.ts +0 -19
  325. package/dist/governance/governed-dispatch.js +0 -17
  326. package/dist/governance/limits.d.ts +0 -107
  327. package/dist/governance/limits.js +0 -131
  328. package/dist/governance/posture.d.ts +0 -35
  329. package/dist/governance/posture.js +0 -59
  330. package/dist/governance/rules/events-table.d.ts +0 -46
  331. package/dist/governance/rules/events-table.js +0 -94
  332. package/dist/governance/types.d.ts +0 -661
  333. package/dist/governance/types.js +0 -27
  334. package/dist/input/control-sequences.d.ts +0 -71
  335. package/dist/input/control-sequences.js +0 -222
  336. package/dist/input/csiu-keys.d.ts +0 -66
  337. package/dist/input/csiu-keys.js +0 -181
  338. package/dist/input/cursor-report.d.ts +0 -61
  339. package/dist/input/cursor-report.js +0 -97
  340. package/dist/input/enter-sequences.d.ts +0 -64
  341. package/dist/input/enter-sequences.js +0 -153
  342. package/dist/input/interrupt-gesture.d.ts +0 -18
  343. package/dist/input/interrupt-gesture.js +0 -19
  344. package/dist/input/keyboard-enhancement.d.ts +0 -42
  345. package/dist/input/keyboard-enhancement.js +0 -65
  346. package/dist/input/keymap.d.ts +0 -20
  347. package/dist/input/keymap.js +0 -99
  348. package/dist/input/limits.d.ts +0 -118
  349. package/dist/input/limits.js +0 -109
  350. package/dist/input/mouse-events.d.ts +0 -87
  351. package/dist/input/mouse-events.js +0 -212
  352. package/dist/input/paste-parse.d.ts +0 -83
  353. package/dist/input/paste-parse.js +0 -107
  354. package/dist/input/pointer-router.d.ts +0 -11
  355. package/dist/input/pointer-router.js +0 -14
  356. package/dist/input/stdin-filter.d.ts +0 -112
  357. package/dist/input/stdin-filter.js +0 -657
  358. package/dist/input/win32-input-mode.d.ts +0 -61
  359. package/dist/input/win32-input-mode.js +0 -269
  360. package/dist/logging/levels.d.ts +0 -40
  361. package/dist/logging/levels.js +0 -59
  362. package/dist/logging/secret-registry.d.ts +0 -32
  363. package/dist/logging/secret-registry.js +0 -73
  364. package/dist/proc/limits.d.ts +0 -200
  365. package/dist/proc/limits.js +0 -207
  366. package/dist/proc/progress.d.ts +0 -40
  367. package/dist/proc/progress.js +0 -135
  368. package/dist/proc/types.d.ts +0 -263
  369. package/dist/proc/types.js +0 -15
  370. package/dist/prompts/copy.d.ts +0 -89
  371. package/dist/prompts/copy.js +0 -131
  372. package/dist/prompts/fill.d.ts +0 -51
  373. package/dist/prompts/fill.js +0 -46
  374. package/dist/prompts/limits.d.ts +0 -53
  375. package/dist/prompts/limits.js +0 -53
  376. package/dist/prompts/search.d.ts +0 -58
  377. package/dist/prompts/search.js +0 -146
  378. package/dist/prompts/types.d.ts +0 -204
  379. package/dist/prompts/types.js +0 -13
  380. package/dist/team/activity.d.ts +0 -67
  381. package/dist/team/activity.js +0 -130
  382. package/dist/team/limits.d.ts +0 -308
  383. package/dist/team/limits.js +0 -330
  384. package/dist/team/model.d.ts +0 -104
  385. package/dist/team/model.js +0 -150
  386. package/dist/team/panel-rows.d.ts +0 -48
  387. package/dist/team/panel-rows.js +0 -75
  388. package/dist/team/timeline.d.ts +0 -74
  389. package/dist/team/timeline.js +0 -101
  390. package/dist/team/types.d.ts +0 -354
  391. package/dist/team/types.js +0 -13
  392. package/dist/todo/acceptance.d.ts +0 -120
  393. package/dist/todo/acceptance.js +0 -399
  394. package/dist/todo/follow-through.d.ts +0 -138
  395. package/dist/todo/follow-through.js +0 -248
  396. package/dist/todo/limits.d.ts +0 -152
  397. package/dist/todo/limits.js +0 -152
  398. package/dist/todo/panel-rows.d.ts +0 -45
  399. package/dist/todo/panel-rows.js +0 -70
  400. package/dist/todo/plan-sections.d.ts +0 -60
  401. package/dist/todo/plan-sections.js +0 -108
  402. package/dist/todo/row-window.d.ts +0 -51
  403. package/dist/todo/row-window.js +0 -107
  404. package/dist/todo/types.d.ts +0 -124
  405. package/dist/todo/types.js +0 -12
  406. package/dist/tools/human-input.d.ts +0 -212
  407. package/dist/tools/human-input.js +0 -265
  408. package/dist/tools/patch.d.ts +0 -115
  409. package/dist/tools/patch.js +0 -453
  410. package/dist/tools/terminal-output.d.ts +0 -115
  411. package/dist/tools/terminal-output.js +0 -201
  412. package/dist/tools/tool-output-store.d.ts +0 -68
  413. package/dist/tools/tool-output-store.js +0 -102
  414. package/dist/ui/ActivityLine.d.ts +0 -26
  415. package/dist/ui/ActivityLine.js +0 -48
  416. package/dist/ui/AutocompletePopup.d.ts +0 -23
  417. package/dist/ui/AutocompletePopup.js +0 -17
  418. package/dist/ui/BottomStatusRow.d.ts +0 -10
  419. package/dist/ui/BottomStatusRow.js +0 -9
  420. package/dist/ui/Composer.d.ts +0 -115
  421. package/dist/ui/Composer.js +0 -64
  422. package/dist/ui/GovernancePanel.d.ts +0 -50
  423. package/dist/ui/GovernancePanel.js +0 -77
  424. package/dist/ui/GovernanceRun.d.ts +0 -18
  425. package/dist/ui/GovernanceRun.js +0 -11
  426. package/dist/ui/Header.d.ts +0 -48
  427. package/dist/ui/Header.js +0 -27
  428. package/dist/ui/Logo.d.ts +0 -32
  429. package/dist/ui/Logo.js +0 -65
  430. package/dist/ui/Markdown.d.ts +0 -29
  431. package/dist/ui/Markdown.js +0 -116
  432. package/dist/ui/PromptCaret.d.ts +0 -11
  433. package/dist/ui/PromptCaret.js +0 -31
  434. package/dist/ui/PromptInput.d.ts +0 -192
  435. package/dist/ui/PromptInput.js +0 -689
  436. package/dist/ui/QueuePanel.d.ts +0 -8
  437. package/dist/ui/QueuePanel.js +0 -9
  438. package/dist/ui/QueueStatusRow.d.ts +0 -24
  439. package/dist/ui/QueueStatusRow.js +0 -51
  440. package/dist/ui/ScrollbackShell.d.ts +0 -132
  441. package/dist/ui/ScrollbackShell.js +0 -26
  442. package/dist/ui/SessionOpener.d.ts +0 -30
  443. package/dist/ui/SessionOpener.js +0 -12
  444. package/dist/ui/StatusBar.d.ts +0 -129
  445. package/dist/ui/StatusBar.js +0 -61
  446. package/dist/ui/TeamPanel.d.ts +0 -76
  447. package/dist/ui/TeamPanel.js +0 -103
  448. package/dist/ui/ToastStack.d.ts +0 -8
  449. package/dist/ui/ToastStack.js +0 -31
  450. package/dist/ui/TodoPanel.d.ts +0 -52
  451. package/dist/ui/TodoPanel.js +0 -214
  452. package/dist/ui/Transcript.d.ts +0 -105
  453. package/dist/ui/Transcript.js +0 -251
  454. package/dist/ui/UpdateLine.d.ts +0 -44
  455. package/dist/ui/UpdateLine.js +0 -129
  456. package/dist/ui/activity-phrases.d.ts +0 -33
  457. package/dist/ui/activity-phrases.js +0 -50
  458. package/dist/ui/capabilities.d.ts +0 -27
  459. package/dist/ui/capabilities.js +0 -65
  460. package/dist/ui/clipboard-task.d.ts +0 -29
  461. package/dist/ui/clipboard-task.js +0 -66
  462. package/dist/ui/clipboard.d.ts +0 -31
  463. package/dist/ui/clipboard.js +0 -157
  464. package/dist/ui/color-runtime.d.ts +0 -5
  465. package/dist/ui/color-runtime.js +0 -29
  466. package/dist/ui/composer-input.d.ts +0 -38
  467. package/dist/ui/composer-input.js +0 -79
  468. package/dist/ui/composer-limits.d.ts +0 -30
  469. package/dist/ui/composer-limits.js +0 -45
  470. package/dist/ui/composer-rows.d.ts +0 -73
  471. package/dist/ui/composer-rows.js +0 -129
  472. package/dist/ui/console-bridge.d.ts +0 -19
  473. package/dist/ui/console-bridge.js +0 -52
  474. package/dist/ui/density.d.ts +0 -26
  475. package/dist/ui/density.js +0 -34
  476. package/dist/ui/display-tab.d.ts +0 -51
  477. package/dist/ui/display-tab.js +0 -82
  478. package/dist/ui/editor-navigation.d.ts +0 -55
  479. package/dist/ui/editor-navigation.js +0 -96
  480. package/dist/ui/editor-reducer.d.ts +0 -108
  481. package/dist/ui/editor-reducer.js +0 -187
  482. package/dist/ui/enter-frames.d.ts +0 -47
  483. package/dist/ui/enter-frames.js +0 -117
  484. package/dist/ui/entries/AssistantEntry.d.ts +0 -37
  485. package/dist/ui/entries/AssistantEntry.js +0 -43
  486. package/dist/ui/entries/CompactionCard.d.ts +0 -88
  487. package/dist/ui/entries/CompactionCard.js +0 -222
  488. package/dist/ui/entries/DiffView.d.ts +0 -61
  489. package/dist/ui/entries/DiffView.js +0 -103
  490. package/dist/ui/entries/EntryFrame.d.ts +0 -23
  491. package/dist/ui/entries/EntryFrame.js +0 -6
  492. package/dist/ui/entries/FastCard.d.ts +0 -53
  493. package/dist/ui/entries/FastCard.js +0 -105
  494. package/dist/ui/entries/GovernanceCard.d.ts +0 -30
  495. package/dist/ui/entries/GovernanceCard.js +0 -32
  496. package/dist/ui/entries/InvocationCard.d.ts +0 -20
  497. package/dist/ui/entries/InvocationCard.js +0 -32
  498. package/dist/ui/entries/QueuedEntry.d.ts +0 -27
  499. package/dist/ui/entries/QueuedEntry.js +0 -33
  500. package/dist/ui/entries/RetryCard.d.ts +0 -56
  501. package/dist/ui/entries/RetryCard.js +0 -60
  502. package/dist/ui/entries/ServiceCard.d.ts +0 -82
  503. package/dist/ui/entries/ServiceCard.js +0 -151
  504. package/dist/ui/entries/TeamCard.d.ts +0 -55
  505. package/dist/ui/entries/TeamCard.js +0 -94
  506. package/dist/ui/entries/TodoCard.d.ts +0 -54
  507. package/dist/ui/entries/TodoCard.js +0 -98
  508. package/dist/ui/entries/ToolCard.d.ts +0 -81
  509. package/dist/ui/entries/ToolCard.js +0 -160
  510. package/dist/ui/entries/ToolPreview.d.ts +0 -59
  511. package/dist/ui/entries/ToolPreview.js +0 -208
  512. package/dist/ui/entries/UserEntry.d.ts +0 -36
  513. package/dist/ui/entries/UserEntry.js +0 -57
  514. package/dist/ui/exit-snapshot.d.ts +0 -43
  515. package/dist/ui/exit-snapshot.js +0 -26
  516. package/dist/ui/frame-differ.d.ts +0 -166
  517. package/dist/ui/frame-differ.js +0 -354
  518. package/dist/ui/frame-observer.d.ts +0 -17
  519. package/dist/ui/frame-observer.js +0 -94
  520. package/dist/ui/frame-parser.d.ts +0 -7
  521. package/dist/ui/frame-parser.js +0 -18
  522. package/dist/ui/gauge.d.ts +0 -39
  523. package/dist/ui/gauge.js +0 -55
  524. package/dist/ui/glyphs.d.ts +0 -178
  525. package/dist/ui/glyphs.js +0 -165
  526. package/dist/ui/governance-copy.d.ts +0 -69
  527. package/dist/ui/governance-copy.js +0 -104
  528. package/dist/ui/governance-status.d.ts +0 -145
  529. package/dist/ui/governance-status.js +0 -326
  530. package/dist/ui/gradient.d.ts +0 -11
  531. package/dist/ui/gradient.js +0 -50
  532. package/dist/ui/ink-runtime.d.ts +0 -4
  533. package/dist/ui/ink-runtime.js +0 -51
  534. package/dist/ui/interaction-copy.d.ts +0 -82
  535. package/dist/ui/interaction-copy.js +0 -38
  536. package/dist/ui/interaction-hints.d.ts +0 -44
  537. package/dist/ui/interaction-hints.js +0 -97
  538. package/dist/ui/layout/AppShell.d.ts +0 -17
  539. package/dist/ui/layout/AppShell.js +0 -6
  540. package/dist/ui/layout/Gutter.d.ts +0 -67
  541. package/dist/ui/layout/Gutter.js +0 -42
  542. package/dist/ui/layout/MeasuredEntry.d.ts +0 -21
  543. package/dist/ui/layout/MeasuredEntry.js +0 -30
  544. package/dist/ui/layout/OverlayFrame.d.ts +0 -73
  545. package/dist/ui/layout/OverlayFrame.js +0 -110
  546. package/dist/ui/layout/ScrollIndicator.d.ts +0 -32
  547. package/dist/ui/layout/ScrollIndicator.js +0 -22
  548. package/dist/ui/layout/ScrollViewport.d.ts +0 -40
  549. package/dist/ui/layout/ScrollViewport.js +0 -222
  550. package/dist/ui/layout/agents-board.d.ts +0 -102
  551. package/dist/ui/layout/agents-board.js +0 -389
  552. package/dist/ui/layout/autocomplete.d.ts +0 -18
  553. package/dist/ui/layout/autocomplete.js +0 -26
  554. package/dist/ui/layout/budget.d.ts +0 -43
  555. package/dist/ui/layout/budget.js +0 -52
  556. package/dist/ui/layout/cells.d.ts +0 -61
  557. package/dist/ui/layout/cells.js +0 -156
  558. package/dist/ui/layout/document-layout.d.ts +0 -13
  559. package/dist/ui/layout/document-layout.js +0 -10
  560. package/dist/ui/layout/follow-state.d.ts +0 -138
  561. package/dist/ui/layout/follow-state.js +0 -148
  562. package/dist/ui/layout/frame.d.ts +0 -36
  563. package/dist/ui/layout/frame.js +0 -39
  564. package/dist/ui/layout/governance-board.d.ts +0 -121
  565. package/dist/ui/layout/governance-board.js +0 -382
  566. package/dist/ui/layout/governance-card.d.ts +0 -53
  567. package/dist/ui/layout/governance-card.js +0 -134
  568. package/dist/ui/layout/governance-chip.d.ts +0 -38
  569. package/dist/ui/layout/governance-chip.js +0 -64
  570. package/dist/ui/layout/governance-panel.d.ts +0 -85
  571. package/dist/ui/layout/governance-panel.js +0 -358
  572. package/dist/ui/layout/governance-roster.d.ts +0 -65
  573. package/dist/ui/layout/governance-roster.js +0 -275
  574. package/dist/ui/layout/header-hints.d.ts +0 -90
  575. package/dist/ui/layout/header-hints.js +0 -110
  576. package/dist/ui/layout/header-left.d.ts +0 -115
  577. package/dist/ui/layout/header-left.js +0 -206
  578. package/dist/ui/layout/invocation-card.d.ts +0 -41
  579. package/dist/ui/layout/invocation-card.js +0 -91
  580. package/dist/ui/layout/kit-chip.d.ts +0 -50
  581. package/dist/ui/layout/kit-chip.js +0 -81
  582. package/dist/ui/layout/overlay-window.d.ts +0 -43
  583. package/dist/ui/layout/overlay-window.js +0 -51
  584. package/dist/ui/layout/queue-layout.d.ts +0 -19
  585. package/dist/ui/layout/queue-layout.js +0 -26
  586. package/dist/ui/layout/rail.d.ts +0 -7
  587. package/dist/ui/layout/rail.js +0 -16
  588. package/dist/ui/layout/scroll-indicator.d.ts +0 -27
  589. package/dist/ui/layout/scroll-indicator.js +0 -36
  590. package/dist/ui/layout/scroll.d.ts +0 -37
  591. package/dist/ui/layout/scroll.js +0 -99
  592. package/dist/ui/layout/scrollbar-geometry.d.ts +0 -17
  593. package/dist/ui/layout/scrollbar-geometry.js +0 -13
  594. package/dist/ui/layout/session-chip.d.ts +0 -52
  595. package/dist/ui/layout/session-chip.js +0 -64
  596. package/dist/ui/layout/shortcut-panel-layout.d.ts +0 -191
  597. package/dist/ui/layout/shortcut-panel-layout.js +0 -321
  598. package/dist/ui/layout/status-detail-layout.d.ts +0 -9
  599. package/dist/ui/layout/status-detail-layout.js +0 -79
  600. package/dist/ui/layout/status-layout.d.ts +0 -139
  601. package/dist/ui/layout/status-layout.js +0 -253
  602. package/dist/ui/layout/task-summary-cell.d.ts +0 -61
  603. package/dist/ui/layout/task-summary-cell.js +0 -65
  604. package/dist/ui/layout/team-panel.d.ts +0 -18
  605. package/dist/ui/layout/team-panel.js +0 -25
  606. package/dist/ui/layout/team-row.d.ts +0 -139
  607. package/dist/ui/layout/team-row.js +0 -246
  608. package/dist/ui/layout/todo-layout.d.ts +0 -62
  609. package/dist/ui/layout/todo-layout.js +0 -102
  610. package/dist/ui/layout/useTerminalSize.d.ts +0 -13
  611. package/dist/ui/layout/useTerminalSize.js +0 -50
  612. package/dist/ui/layout/viewport-geometry.d.ts +0 -29
  613. package/dist/ui/layout/viewport-geometry.js +0 -28
  614. package/dist/ui/layout/virtual-window.d.ts +0 -112
  615. package/dist/ui/layout/virtual-window.js +0 -488
  616. package/dist/ui/layout/wrap-rows.d.ts +0 -26
  617. package/dist/ui/layout/wrap-rows.js +0 -88
  618. package/dist/ui/live-clamp.d.ts +0 -14
  619. package/dist/ui/live-clamp.js +0 -46
  620. package/dist/ui/markdown-blocks.d.ts +0 -107
  621. package/dist/ui/markdown-blocks.js +0 -240
  622. package/dist/ui/overlays/AgentsBoardOverlay.d.ts +0 -57
  623. package/dist/ui/overlays/AgentsBoardOverlay.js +0 -183
  624. package/dist/ui/overlays/ConfirmDialog.d.ts +0 -31
  625. package/dist/ui/overlays/ConfirmDialog.js +0 -44
  626. package/dist/ui/overlays/GovernanceBoardOverlay.d.ts +0 -41
  627. package/dist/ui/overlays/GovernanceBoardOverlay.js +0 -76
  628. package/dist/ui/overlays/GovernanceSettingsPage.d.ts +0 -48
  629. package/dist/ui/overlays/GovernanceSettingsPage.js +0 -93
  630. package/dist/ui/overlays/HelpOverlay.d.ts +0 -29
  631. package/dist/ui/overlays/HelpOverlay.js +0 -232
  632. package/dist/ui/overlays/KitEditor.d.ts +0 -23
  633. package/dist/ui/overlays/KitEditor.js +0 -101
  634. package/dist/ui/overlays/KitManager.d.ts +0 -23
  635. package/dist/ui/overlays/KitManager.js +0 -104
  636. package/dist/ui/overlays/KitPicker.d.ts +0 -49
  637. package/dist/ui/overlays/KitPicker.js +0 -58
  638. package/dist/ui/overlays/ModelDiscoveryList.d.ts +0 -23
  639. package/dist/ui/overlays/ModelDiscoveryList.js +0 -161
  640. package/dist/ui/overlays/ModelPicker.d.ts +0 -26
  641. package/dist/ui/overlays/ModelPicker.js +0 -63
  642. package/dist/ui/overlays/ModelProfileEditor.d.ts +0 -29
  643. package/dist/ui/overlays/ModelProfileEditor.js +0 -168
  644. package/dist/ui/overlays/ModelProfilePicker.d.ts +0 -48
  645. package/dist/ui/overlays/ModelProfilePicker.js +0 -231
  646. package/dist/ui/overlays/PlanReviewOverlay.d.ts +0 -51
  647. package/dist/ui/overlays/PlanReviewOverlay.js +0 -132
  648. package/dist/ui/overlays/PromptEditorPage.d.ts +0 -48
  649. package/dist/ui/overlays/PromptEditorPage.js +0 -227
  650. package/dist/ui/overlays/PromptLibraryOverlay.d.ts +0 -37
  651. package/dist/ui/overlays/PromptLibraryOverlay.js +0 -191
  652. package/dist/ui/overlays/PromptPicker.d.ts +0 -36
  653. package/dist/ui/overlays/PromptPicker.js +0 -129
  654. package/dist/ui/overlays/PromptTextArea.d.ts +0 -86
  655. package/dist/ui/overlays/PromptTextArea.js +0 -141
  656. package/dist/ui/overlays/QuestionOverlay.d.ts +0 -39
  657. package/dist/ui/overlays/QuestionOverlay.js +0 -258
  658. package/dist/ui/overlays/QueueOverlay.d.ts +0 -22
  659. package/dist/ui/overlays/QueueOverlay.js +0 -79
  660. package/dist/ui/overlays/SettingsScreen.d.ts +0 -228
  661. package/dist/ui/overlays/SettingsScreen.js +0 -1037
  662. package/dist/ui/overlays/ShortcutPanel.d.ts +0 -39
  663. package/dist/ui/overlays/ShortcutPanel.js +0 -106
  664. package/dist/ui/overlays/TeamFanoutPage.d.ts +0 -51
  665. package/dist/ui/overlays/TeamFanoutPage.js +0 -90
  666. package/dist/ui/overlays/governance-settings.d.ts +0 -79
  667. package/dist/ui/overlays/governance-settings.js +0 -140
  668. package/dist/ui/overlays/kit-picker-state.d.ts +0 -87
  669. package/dist/ui/overlays/kit-picker-state.js +0 -136
  670. package/dist/ui/overlays/kit-settings-state.d.ts +0 -129
  671. package/dist/ui/overlays/kit-settings-state.js +0 -268
  672. package/dist/ui/overlays/model-probe-view.d.ts +0 -128
  673. package/dist/ui/overlays/model-probe-view.js +0 -225
  674. package/dist/ui/overlays/model-profile-state.d.ts +0 -177
  675. package/dist/ui/overlays/model-profile-state.js +0 -301
  676. package/dist/ui/overlays/prompt-library-state.d.ts +0 -162
  677. package/dist/ui/overlays/prompt-library-state.js +0 -335
  678. package/dist/ui/overlays/prompt-picker-state.d.ts +0 -71
  679. package/dist/ui/overlays/prompt-picker-state.js +0 -98
  680. package/dist/ui/overlays/team-fanout-state.d.ts +0 -106
  681. package/dist/ui/overlays/team-fanout-state.js +0 -155
  682. package/dist/ui/overlays/use-model-probe.d.ts +0 -30
  683. package/dist/ui/overlays/use-model-probe.js +0 -109
  684. package/dist/ui/palettes.d.ts +0 -112
  685. package/dist/ui/palettes.js +0 -130
  686. package/dist/ui/paste-frames.d.ts +0 -91
  687. package/dist/ui/paste-frames.js +0 -117
  688. package/dist/ui/paste-tokens.d.ts +0 -90
  689. package/dist/ui/paste-tokens.js +0 -147
  690. package/dist/ui/render-cache.d.ts +0 -81
  691. package/dist/ui/render-cache.js +0 -196
  692. package/dist/ui/render-governor.d.ts +0 -54
  693. package/dist/ui/render-governor.js +0 -78
  694. package/dist/ui/run-metrics.d.ts +0 -23
  695. package/dist/ui/run-metrics.js +0 -27
  696. package/dist/ui/run-status-row.d.ts +0 -61
  697. package/dist/ui/run-status-row.js +0 -54
  698. package/dist/ui/screen.d.ts +0 -107
  699. package/dist/ui/screen.js +0 -234
  700. package/dist/ui/scrollback/LiveTail.d.ts +0 -115
  701. package/dist/ui/scrollback/LiveTail.js +0 -48
  702. package/dist/ui/scrollback/band.d.ts +0 -114
  703. package/dist/ui/scrollback/band.js +0 -143
  704. package/dist/ui/scrollback/budget.d.ts +0 -90
  705. package/dist/ui/scrollback/budget.js +0 -100
  706. package/dist/ui/scrollback/canvas.d.ts +0 -100
  707. package/dist/ui/scrollback/canvas.js +0 -114
  708. package/dist/ui/scrollback/cursor-probe.d.ts +0 -71
  709. package/dist/ui/scrollback/cursor-probe.js +0 -133
  710. package/dist/ui/scrollback/drain.d.ts +0 -32
  711. package/dist/ui/scrollback/drain.js +0 -64
  712. package/dist/ui/scrollback/exit-summary.d.ts +0 -23
  713. package/dist/ui/scrollback/exit-summary.js +0 -25
  714. package/dist/ui/scrollback/limits.d.ts +0 -98
  715. package/dist/ui/scrollback/limits.js +0 -98
  716. package/dist/ui/scrollback/live-preview.d.ts +0 -34
  717. package/dist/ui/scrollback/live-preview.js +0 -118
  718. package/dist/ui/scrollback/overflow-print.d.ts +0 -108
  719. package/dist/ui/scrollback/overflow-print.js +0 -120
  720. package/dist/ui/scrollback/renderer.d.ts +0 -48
  721. package/dist/ui/scrollback/renderer.js +0 -186
  722. package/dist/ui/scrollback/scrollback-writer.d.ts +0 -174
  723. package/dist/ui/scrollback/scrollback-writer.js +0 -648
  724. package/dist/ui/scrollback/settled-boundary.d.ts +0 -42
  725. package/dist/ui/scrollback/settled-boundary.js +0 -109
  726. package/dist/ui/scrollback/tail-anchor.d.ts +0 -71
  727. package/dist/ui/scrollback/tail-anchor.js +0 -79
  728. package/dist/ui/scrollback/tail-window.d.ts +0 -73
  729. package/dist/ui/scrollback/tail-window.js +0 -89
  730. package/dist/ui/scrollback/use-scrollback-view.d.ts +0 -139
  731. package/dist/ui/scrollback/use-scrollback-view.js +0 -601
  732. package/dist/ui/scrollback/writer-shapes.d.ts +0 -127
  733. package/dist/ui/scrollback/writer-shapes.js +0 -159
  734. package/dist/ui/scrollbar-controller.d.ts +0 -30
  735. package/dist/ui/scrollbar-controller.js +0 -124
  736. package/dist/ui/selection/highlight.d.ts +0 -39
  737. package/dist/ui/selection/highlight.js +0 -64
  738. package/dist/ui/selection/screen-mirror.d.ts +0 -24
  739. package/dist/ui/selection/screen-mirror.js +0 -35
  740. package/dist/ui/selection/selection-controller.d.ts +0 -104
  741. package/dist/ui/selection/selection-controller.js +0 -372
  742. package/dist/ui/selection/selection.d.ts +0 -90
  743. package/dist/ui/selection/selection.js +0 -223
  744. package/dist/ui/shortcuts.d.ts +0 -81
  745. package/dist/ui/shortcuts.js +0 -221
  746. package/dist/ui/status-feedback.d.ts +0 -35
  747. package/dist/ui/status-feedback.js +0 -38
  748. package/dist/ui/stdout-frame-writer.d.ts +0 -74
  749. package/dist/ui/stdout-frame-writer.js +0 -155
  750. package/dist/ui/team-status.d.ts +0 -166
  751. package/dist/ui/team-status.js +0 -252
  752. package/dist/ui/terminal-plan.d.ts +0 -52
  753. package/dist/ui/terminal-plan.js +0 -49
  754. package/dist/ui/theme.d.ts +0 -96
  755. package/dist/ui/theme.js +0 -130
  756. package/dist/ui/transcript-text.d.ts +0 -41
  757. package/dist/ui/transcript-text.js +0 -282
  758. package/dist/ui/use-height-store.d.ts +0 -31
  759. package/dist/ui/use-height-store.js +0 -76
  760. package/dist/ui/use-render-governor.d.ts +0 -39
  761. package/dist/ui/use-render-governor.js +0 -57
  762. package/dist/ui/use-wheel-routing.d.ts +0 -57
  763. package/dist/ui/use-wheel-routing.js +0 -152
  764. package/dist/ui/win-vt-force.d.ts +0 -136
  765. package/dist/ui/win-vt-force.js +0 -237
  766. package/dist/ui/win-vt-input.d.ts +0 -57
  767. package/dist/ui/win-vt-input.js +0 -62
  768. package/dist/update/limits.d.ts +0 -111
  769. package/dist/update/limits.js +0 -111
  770. package/dist/update/semver.d.ts +0 -89
  771. package/dist/update/semver.js +0 -295
  772. package/dist/update/types.d.ts +0 -169
  773. package/dist/update/types.js +0 -68
  774. /package/dist/{ui → app}/session-bridge.d.ts +0 -0
  775. /package/dist/{ui → app}/session-bridge.js +0 -0
@@ -1,53 +0,0 @@
1
- /**
2
- * Structural bounds for the quick-prompt library (quick-prompt-library §5.1).
3
- *
4
- * ASCII ONLY - `src/prompts/**` is inside `glyphs.test.ts::inScope`.
5
- *
6
- * STRUCTURE, NOT POLICY (index.md:52-56). Nothing here is user-tunable: these are
7
- * what an entry, the library and the picker's query can physically carry. The
8
- * three keys a user may actually change (`prompts.enabled`, `insertMode`, `hint`)
9
- * live in `config/schema.ts`, are clamped there, and are persisted there. Mixing
10
- * the two is how a "temporary" ceiling becomes a setting nobody clamps.
11
- *
12
- * EVERY NUMBER IS A CODE-POINT COUNT, not a byte count and not a UTF-16 length.
13
- * Titles and bodies are typed in Chinese by the users this feature exists for, so
14
- * a byte-based ceiling would silently allow a third of the characters a
15
- * Latin-alphabet user gets. `[...text].length` is the measurement everywhere in
16
- * this tree.
17
- */
18
- export const PROMPT_LIMITS = {
19
- /** Entries one library may hold. The 201st create is REFUSED, never truncated. */
20
- maxPrompts: 200,
21
- /** Title, without surrounding whitespace. */
22
- titleMaxChars: 80,
23
- /** Body. Large enough for a 40-line procedure, small enough to rewrite cheaply. */
24
- contentMaxChars: 8000,
25
- /** Optional one-line note under the title. */
26
- descriptionMaxChars: 200,
27
- /** Tags per entry. */
28
- maxTags: 6,
29
- /** Characters per tag. */
30
- tagMaxChars: 24,
31
- /** Body preview lines the list page's detail block may spend (read-only). */
32
- detailPreviewLines: 3,
33
- /** Rows the list page's detail block may occupy, preview lines included. */
34
- detailMaxLines: 6,
35
- /** Characters of a body shown on ONE preview line. */
36
- previewLineChars: 72,
37
- };
38
- /**
39
- * The picker's own structural bounds.
40
- *
41
- * A SEPARATE OBJECT because the picker is a separate surface with a separate
42
- * budget: its rows carry an index and a title and nothing else, and its query is
43
- * a filter rather than content. Sharing one object would tie a future change to
44
- * the library's row height.
45
- */
46
- export const PROMPT_PICKER_LIMITS = {
47
- /** Longest query the filter accepts; further typing is ignored. */
48
- queryMaxChars: 64,
49
- /** `1`-`9` pick directly, so nine. */
50
- quickDigits: 9,
51
- /** Rows the picker's detail block may occupy. */
52
- detailMaxLines: 4,
53
- };
@@ -1,58 +0,0 @@
1
- /**
2
- * Filtering and view ordering for the picker (quick-prompt-library D-9 / D-10).
3
- *
4
- * ASCII ONLY - `src/prompts/**` is inside `glyphs.test.ts::inScope`.
5
- *
6
- * SUBSEQUENCE MATCHING, NOT SUBSTRING MATCHING. `clr` should find `clean code
7
- * review`, and Chinese titles make the same demand in a different shape: the
8
- * characters a user remembers are rarely contiguous. The query is matched
9
- * case-insensitively against the title, then the tags, then the description, and
10
- * the FIELD a match landed in is a stronger signal than how good the match was.
11
- *
12
- * NO CHARACTER HIGHLIGHTING (D-10). Colouring the matched characters would mean
13
- * splitting a row into styled runs, and every row in this package is one
14
- * `wrap="truncate"` `<Text>` precisely so its height is exactly one row. The
15
- * detail block answers "why did this match" instead.
16
- */
17
- import type { QuickPrompt, PromptSortView } from './types.js';
18
- /**
19
- * Greedy subsequence match; `null` when `query` is not a subsequence of `text`.
20
- *
21
- * The score is LOWER-is-better and is built from what a reader would actually
22
- * call a good match: how early the first hit is, how tightly the hits cluster,
23
- * and how many characters had to be skipped between them.
24
- */
25
- export declare function subsequenceScore(text: string, query: string): number | null;
26
- /**
27
- * Filter, but NEVER REORDER BEYOND WHAT THE QUERY EARNS.
28
- *
29
- * Ties keep the library's own order, because a filter that reshuffles entries with
30
- * equal scores makes the list move under the user's arrow keys while they type.
31
- * Favourites win ties, which is the only preference the picker states.
32
- */
33
- export declare function searchPrompts(prompts: readonly QuickPrompt[], query: string): {
34
- prompt: QuickPrompt;
35
- score: number;
36
- }[];
37
- /**
38
- * The three presentations (D-9).
39
- *
40
- * `manual` is the only persisted order; the other two are VANISHING views. The one
41
- * that rearranges is `favorite` - `recent` sorts by `lastUsedAt` only, so an entry
42
- * that has never been used keeps its place at the tail instead of jumping around
43
- * while the user watches.
44
- */
45
- export declare function viewOrder(prompts: readonly QuickPrompt[], view: PromptSortView): QuickPrompt[];
46
- /** The next view in the `Ctrl+S` cycle (manual -> recent -> favorite -> manual). */
47
- export declare function nextView(view: PromptSortView): PromptSortView;
48
- /**
49
- * Title order, for the `/prompts sort name` write.
50
- *
51
- * A TOTAL order (title, then id): a sort the user asked for has to be reproducible, and
52
- * two entries sharing a title would otherwise swap places between runs - a "sorted"
53
- * library that reorders itself on every read is worse than an unsorted one. Code-unit
54
- * comparison rather than `localeCompare`, because the file is written on one machine and
55
- * read on the next, and a locale-dependent order would silently rewrite the user's
56
- * sequence on a different machine for no reason they could see.
57
- */
58
- export declare function sortedPromptTitleOrder(prompts: readonly QuickPrompt[]): QuickPrompt[];
@@ -1,146 +0,0 @@
1
- /**
2
- * Filtering and view ordering for the picker (quick-prompt-library D-9 / D-10).
3
- *
4
- * ASCII ONLY - `src/prompts/**` is inside `glyphs.test.ts::inScope`.
5
- *
6
- * SUBSEQUENCE MATCHING, NOT SUBSTRING MATCHING. `clr` should find `clean code
7
- * review`, and Chinese titles make the same demand in a different shape: the
8
- * characters a user remembers are rarely contiguous. The query is matched
9
- * case-insensitively against the title, then the tags, then the description, and
10
- * the FIELD a match landed in is a stronger signal than how good the match was.
11
- *
12
- * NO CHARACTER HIGHLIGHTING (D-10). Colouring the matched characters would mean
13
- * splitting a row into styled runs, and every row in this package is one
14
- * `wrap="truncate"` `<Text>` precisely so its height is exactly one row. The
15
- * detail block answers "why did this match" instead.
16
- */
17
- /** How much worse a match in tags, or in the description, is than in the title. */
18
- const TAG_PENALTY = 1_000;
19
- const DESCRIPTION_PENALTY = 2_000;
20
- /**
21
- * Greedy subsequence match; `null` when `query` is not a subsequence of `text`.
22
- *
23
- * The score is LOWER-is-better and is built from what a reader would actually
24
- * call a good match: how early the first hit is, how tightly the hits cluster,
25
- * and how many characters had to be skipped between them.
26
- */
27
- export function subsequenceScore(text, query) {
28
- if (query.length === 0)
29
- return 0;
30
- const haystack = text.toLowerCase();
31
- const needle = query.toLowerCase();
32
- let at = 0;
33
- let first = -1;
34
- let last = -1;
35
- let gaps = 0;
36
- for (const char of needle) {
37
- const hit = haystack.indexOf(char, at);
38
- if (hit === -1)
39
- return null;
40
- if (first === -1)
41
- first = hit;
42
- else if (hit > last + 1)
43
- gaps += hit - last - 1;
44
- last = hit;
45
- at = hit + 1;
46
- }
47
- const span = last - first + 1;
48
- return first * 4 + gaps * 2 + (span - needle.length);
49
- }
50
- function fieldScore(prompt, query) {
51
- const title = subsequenceScore(prompt.title, query);
52
- if (title !== null)
53
- return title;
54
- let best = null;
55
- for (const tag of prompt.tags ?? []) {
56
- const score = subsequenceScore(tag, query);
57
- if (score !== null && (best === null || score < best))
58
- best = score;
59
- }
60
- if (best !== null)
61
- return TAG_PENALTY + best;
62
- const description = prompt.description;
63
- if (description === undefined)
64
- return null;
65
- const score = subsequenceScore(description, query);
66
- return score === null ? null : DESCRIPTION_PENALTY + score;
67
- }
68
- /**
69
- * Filter, but NEVER REORDER BEYOND WHAT THE QUERY EARNS.
70
- *
71
- * Ties keep the library's own order, because a filter that reshuffles entries with
72
- * equal scores makes the list move under the user's arrow keys while they type.
73
- * Favourites win ties, which is the only preference the picker states.
74
- */
75
- export function searchPrompts(prompts, query) {
76
- const trimmed = query.trim();
77
- if (trimmed.length === 0)
78
- return prompts.map((prompt) => ({ prompt, score: 0 }));
79
- const hits = [];
80
- for (let at = 0; at < prompts.length; at += 1) {
81
- const prompt = prompts[at];
82
- const score = fieldScore(prompt, trimmed);
83
- if (score !== null)
84
- hits.push({ prompt, score, at });
85
- }
86
- hits.sort((a, b) => {
87
- const favourite = (b.prompt.favorite === true ? 1 : 0) - (a.prompt.favorite === true ? 1 : 0);
88
- if (favourite !== 0)
89
- return favourite;
90
- if (a.score !== b.score)
91
- return a.score - b.score;
92
- return a.at - b.at;
93
- });
94
- return hits.map(({ prompt, score }) => ({ prompt, score }));
95
- }
96
- /**
97
- * The three presentations (D-9).
98
- *
99
- * `manual` is the only persisted order; the other two are VANISHING views. The one
100
- * that rearranges is `favorite` - `recent` sorts by `lastUsedAt` only, so an entry
101
- * that has never been used keeps its place at the tail instead of jumping around
102
- * while the user watches.
103
- */
104
- export function viewOrder(prompts, view) {
105
- if (view === 'manual')
106
- return [...prompts];
107
- const indexed = prompts.map((prompt, at) => ({ prompt, at }));
108
- if (view === 'favorite') {
109
- indexed.sort((a, b) => {
110
- const favourite = (b.prompt.favorite === true ? 1 : 0) - (a.prompt.favorite === true ? 1 : 0);
111
- return favourite !== 0 ? favourite : a.at - b.at;
112
- });
113
- return indexed.map(({ prompt }) => prompt);
114
- }
115
- indexed.sort((a, b) => {
116
- const recent = (b.prompt.lastUsedAt ?? 0) - (a.prompt.lastUsedAt ?? 0);
117
- return recent !== 0 ? recent : a.at - b.at;
118
- });
119
- return indexed.map(({ prompt }) => prompt);
120
- }
121
- /** The next view in the `Ctrl+S` cycle (manual -> recent -> favorite -> manual). */
122
- export function nextView(view) {
123
- if (view === 'manual')
124
- return 'recent';
125
- if (view === 'recent')
126
- return 'favorite';
127
- return 'manual';
128
- }
129
- /**
130
- * Title order, for the `/prompts sort name` write.
131
- *
132
- * A TOTAL order (title, then id): a sort the user asked for has to be reproducible, and
133
- * two entries sharing a title would otherwise swap places between runs - a "sorted"
134
- * library that reorders itself on every read is worse than an unsorted one. Code-unit
135
- * comparison rather than `localeCompare`, because the file is written on one machine and
136
- * read on the next, and a locale-dependent order would silently rewrite the user's
137
- * sequence on a different machine for no reason they could see.
138
- */
139
- export function sortedPromptTitleOrder(prompts) {
140
- const compare = (a, b) => {
141
- if (a.title !== b.title)
142
- return a.title < b.title ? -1 : 1;
143
- return a.id < b.id ? -1 : a.id > b.id ? 1 : 0;
144
- };
145
- return [...prompts].sort(compare);
146
- }
@@ -1,204 +0,0 @@
1
- /**
2
- * The quick-prompt library's data model (quick-prompt-library §6.1).
3
- *
4
- * ASCII ONLY - `src/prompts/**` is inside `glyphs.test.ts::inScope`. Chinese copy
5
- * lives in `copy.ts` as `\uXXXX` escapes, never as literal text in this tree.
6
- *
7
- * THE DISK SHAPE IS THE ONLY TRUTH (D-3 / I-6). `App` holds a `PromptLibrary`
8
- * snapshot for rendering, every mutation goes through `store.ts`, and the store
9
- * hands the new snapshot back. No component computes an optimistic library of its
10
- * own, because "the UI says it was added and the disk disagrees" is a failure
11
- * mode with no error message.
12
- */
13
- /**
14
- * One entry.
15
- *
16
- * `useCount` / `createdAt` / `updatedAt` are ALWAYS present: a missing number
17
- * would make every consumer write `?? 0` and one of them would eventually forget.
18
- * `description` / `tags` / `favorite` / `lastUsedAt` are optional because "absent"
19
- * is their honest state.
20
- */
21
- export interface QuickPrompt {
22
- /** `randomUUID()`. Never shown in full; the list uses an 8-character prefix. */
23
- id: string;
24
- /** 1..80 code points, trimmed, no control characters. Never empty (I-5). */
25
- title: string;
26
- /** 1..8000 code points. Original newlines preserved; `\r\n` normalised to `\n`. */
27
- content: string;
28
- /** 0..200 code points. */
29
- description?: string;
30
- /** 0..6 tags, each 0..24 code points. */
31
- tags?: string[];
32
- favorite?: boolean;
33
- /** Monotonic per entry (I-4). */
34
- useCount: number;
35
- /** Epoch ms. */
36
- createdAt: number;
37
- updatedAt: number;
38
- lastUsedAt?: number;
39
- }
40
- /**
41
- * The whole library.
42
- *
43
- * `prompts` IS the manual order (I-1): index 0 is what the list shows first and
44
- * what `Ctrl+Up/Down` rearranges. There is no `order` field, because a second
45
- * ordering authority is a second thing that can disagree with the first.
46
- */
47
- export interface PromptLibrary {
48
- schema: 1;
49
- prompts: QuickPrompt[];
50
- /** Epoch ms of the last successful write; strictly increasing (I-3). */
51
- updatedAt: number;
52
- }
53
- /**
54
- * The persistent re-orderings `/prompts sort <key>` can name (D-9).
55
- *
56
- * A WRITE key, not a view: `PromptSortView` is what the picker renders and never
57
- * persists, this is what the user may ask to have rewritten on disk. They overlap by two
58
- * words and are deliberately separate types, because "sort by recent" and "show me the
59
- * recent order for a moment" are different promises.
60
- */
61
- export type PromptSortKey = 'name' | 'recent' | 'favorite';
62
- /** The picker's three presentations. A VIEW: never persisted (D-9). */
63
- export type PromptSortView = 'manual' | 'recent' | 'favorite';
64
- /**
65
- * Why a write or a lookup failed. A stable code, never a sentence: the sentence
66
- * comes from `copy.ts`, so the same failure has one wording on every surface.
67
- */
68
- export type PromptWriteError = 'title_required' | 'content_required' | 'title_too_long' | 'content_too_long' | 'description_too_long' | 'tag_too_long' | 'too_many_tags' | 'too_many_prompts' | 'not_found' | 'ambiguous' | 'write_failed';
69
- /**
70
- * The result of one mutation.
71
- *
72
- * THE LIBRARY TRAVELS WITH THE FAILURE TOO, and that is deliberate: a
73
- * `write_failed` still applied in memory (D-4), so the caller has to be able to
74
- * render what the user just created rather than pretending nothing happened.
75
- */
76
- export type PromptMutationResult = {
77
- ok: true;
78
- library: PromptLibrary;
79
- id?: string;
80
- } | {
81
- ok: false;
82
- code: PromptWriteError;
83
- library: PromptLibrary;
84
- };
85
- /**
86
- * A one-shot hand-off into the manager overlay (D-21).
87
- *
88
- * `App` never edits the overlay's state directly; it hands over an intent, and the
89
- * overlay consumes it exactly once by nonce. That is what makes `/prompts edit 2`
90
- * land in the editor with a prefilled draft instead of on row 0 of the list.
91
- */
92
- export type PromptLibraryEntry = {
93
- kind: 'list';
94
- focusId?: string;
95
- } | {
96
- kind: 'create';
97
- seed?: {
98
- title?: string;
99
- content?: string;
100
- };
101
- } | {
102
- kind: 'edit';
103
- id: string;
104
- } | {
105
- kind: 'delete';
106
- id: string;
107
- };
108
- /** `nonce` is monotonic; the same value is consumed at most once (I-8). */
109
- export interface PromptLibraryIntent {
110
- nonce: number;
111
- entry: PromptLibraryEntry;
112
- }
113
- /**
114
- * `<n|title>` resolved to an entry (D-22).
115
- *
116
- * `ambiguous` CARRIES ITS CANDIDATES. Titles may repeat (I-2), and a lookup that
117
- * failed without saying which entries matched would leave the user with nothing
118
- * to type next - which is exactly how `/prompts rm <title>` deletes the wrong
119
- * prompt, and there is no recycle bin (D-13).
120
- */
121
- export type PromptRefResolution = {
122
- ok: true;
123
- prompt: QuickPrompt;
124
- } | {
125
- ok: false;
126
- code: 'not_found';
127
- } | {
128
- ok: false;
129
- code: 'ambiguous';
130
- candidates: QuickPrompt[];
131
- };
132
- /**
133
- * The editable form of one entry.
134
- *
135
- * `id: null` means "not saved yet". `tags` is the RAW field text: parsing it on
136
- * every keystroke would rewrite what the user is typing as they type it.
137
- */
138
- export interface PromptEditorDraft {
139
- id: string | null;
140
- title: string;
141
- content: string;
142
- description: string;
143
- tags: string;
144
- favorite: boolean;
145
- }
146
- /** The three things the manager overlay may ask the store to do (P2-1: idempotent). */
147
- export type PromptLibraryMutation = {
148
- kind: 'create';
149
- draft: PromptEditorDraft;
150
- } | {
151
- kind: 'update';
152
- id: string;
153
- draft: PromptEditorDraft;
154
- } | {
155
- kind: 'delete';
156
- id: string;
157
- } | {
158
- kind: 'move';
159
- id: string;
160
- delta: -1 | 1;
161
- } | {
162
- kind: 'favorite';
163
- id: string;
164
- favorite: boolean;
165
- };
166
- /**
167
- * What a command (or the picker) may ask the host to do (§6.3 / P1-3).
168
- *
169
- * THREE METHODS, and each one is something the command layer genuinely cannot do
170
- * itself: open a surface, hand that surface a payload, or read the library through
171
- * the same resolver the user's typing is interpreted with. Everything else
172
- * (notifications, toasts, overlays in general) already exists on `CommandContext`
173
- * and is not repeated here.
174
- */
175
- export interface PromptCommandPort {
176
- /** Open the picker (`overlay: 'prompt-pick'`). */
177
- openPicker(): void;
178
- /** Open the manager on a specific page, with an optional prefilled draft. */
179
- openManager(entry: PromptLibraryEntry): void;
180
- /** `<n|title>` -> entry, through `resolvePromptRef` (D-22). */
181
- resolve(ref: string): PromptRefResolution;
182
- }
183
- /** A validated draft, ready for the store. Produced by `finishPromptEditor`. */
184
- export interface PromptDraftInput {
185
- title: string;
186
- content: string;
187
- description?: string;
188
- tags?: string[];
189
- favorite?: boolean;
190
- }
191
- /**
192
- * The verdict of validating a draft (§4.4 / D-12).
193
- *
194
- * `field` is the row that should own focus after a refusal, so the editor can jump
195
- * there instead of leaving the user staring at a footer with an error code in it.
196
- */
197
- export type PromptDraftVerdict = {
198
- ok: true;
199
- input: PromptDraftInput;
200
- } | {
201
- ok: false;
202
- code: PromptWriteError;
203
- field: 'title' | 'content' | 'description' | 'tags';
204
- };
@@ -1,13 +0,0 @@
1
- /**
2
- * The quick-prompt library's data model (quick-prompt-library §6.1).
3
- *
4
- * ASCII ONLY - `src/prompts/**` is inside `glyphs.test.ts::inScope`. Chinese copy
5
- * lives in `copy.ts` as `\uXXXX` escapes, never as literal text in this tree.
6
- *
7
- * THE DISK SHAPE IS THE ONLY TRUTH (D-3 / I-6). `App` holds a `PromptLibrary`
8
- * snapshot for rendering, every mutation goes through `store.ts`, and the store
9
- * hands the new snapshot back. No component computes an optimistic library of its
10
- * own, because "the UI says it was added and the disk disagrees" is a failure
11
- * mode with no error message.
12
- */
13
- export {};
@@ -1,67 +0,0 @@
1
- /**
2
- * Activity strings for the live roster (team-live-activity F-1).
3
- *
4
- * ASCII ONLY: `src/team/**` is inside the glyph scanner's scope. That rule binds
5
- * the LITERALS IN THIS FILE, not the runtime data flowing through it - a child
6
- * may well be reading a CJK path, and `run.description` already carries model
7
- * text into the same row.
8
- */
9
- /**
10
- * The only part of a tool call this module will ever render (P1-4).
11
- *
12
- * A PICKED SUBSET, NOT THE ARGS OBJECT. Storing `event.args` whole would put
13
- * `write_file`'s `content` - a whole file - on the run, and `TeamRuntime.publish`
14
- * shallow-copies the run into the live snapshot AND into every `agent_update`
15
- * event, and `dispatch()` copies it again into `DispatchOutcome.runs`, which
16
- * `TeamCard` holds in the transcript for the rest of the session. Two facts make
17
- * that unacceptable rather than merely wasteful: the retention is unbounded in
18
- * the file's size, and one `JSON.stringify` anywhere downstream would put a file
19
- * body into a log - the exact liability the logging section spends a paragraph
20
- * avoiding.
21
- *
22
- * This costs nothing in maintenance: the switch below is ALREADY a per-tool
23
- * table, so a new tool is one entry either way.
24
- */
25
- export interface ActivityArgs {
26
- path?: string;
27
- pattern?: string;
28
- command?: string;
29
- to?: string;
30
- from?: string;
31
- }
32
- /** Pick at capture time. Called once per `tool_execution_start`. */
33
- export declare function pickActivityArgs(args: unknown): ActivityArgs;
34
- /**
35
- * Strip anything that could corrupt the frame, collapse whitespace, and clamp.
36
- *
37
- * THE CONTROL-CHARACTER STRIP IS A CORRECTNESS BOUNDARY, NOT TIDINESS. This
38
- * string is model-chosen and reaches an Ink <Text> unescaped. A child running
39
- * `bash` with an ANSI escape in the command line would otherwise write that
40
- * escape into the roster: at best a mangled row, at worst a cleared screen or a
41
- * moved cursor in the middle of someone's transcript. `bash`'s own output never
42
- * reaches the panel; its ARGUMENTS now do.
43
- *
44
- * SURROGATES ARE GUARDED AT BOTH ENDS (P2-3). The trailing guard is the obvious
45
- * one. The LEADING one is needed because the caller feeds this a rolling tail
46
- * built with `String.slice(-n)`, which cuts on a UTF-16 code-unit boundary and
47
- * can therefore hand us a lone LOW surrogate at index 0. Either half of a split
48
- * pair renders as a replacement character - the same failure `truncateBytes`
49
- * guards one layer down (report.ts).
50
- */
51
- export declare function sanitizeActivity(raw: string, maxChars: number): string;
52
- /**
53
- * One short phrase describing a tool call.
54
- *
55
- * `wide` false is the narrow-terminal form (D-4). For a path-valued argument
56
- * that is the basename; for `bash` it is the PROGRAM NAME (P1-6). Running the
57
- * command line through `basename` is wrong twice over: `basename` splits on `/`,
58
- * so `npm test -w cli` comes back whole and `./scripts/build.sh --prod` comes
59
- * back as `build.sh --prod`. Neither is shorter and the second is a lie about
60
- * what ran.
61
- *
62
- * Anything not in the table renders as its own name. That is the correct
63
- * degradation for `skill_find` and for any tool a later round registers on a
64
- * child: a name is always true, and inventing an argument mapping for a tool
65
- * this module has not been taught is how a formatter starts lying.
66
- */
67
- export declare function describeToolActivity(toolName: string, args: ActivityArgs | undefined, wide: boolean): string;
@@ -1,130 +0,0 @@
1
- /**
2
- * Activity strings for the live roster (team-live-activity F-1).
3
- *
4
- * ASCII ONLY: `src/team/**` is inside the glyph scanner's scope. That rule binds
5
- * the LITERALS IN THIS FILE, not the runtime data flowing through it - a child
6
- * may well be reading a CJK path, and `run.description` already carries model
7
- * text into the same row.
8
- */
9
- import { TEAM_LIMITS } from './limits.js';
10
- /** Pick at capture time. Called once per `tool_execution_start`. */
11
- export function pickActivityArgs(args) {
12
- const a = (args ?? {});
13
- const str = (v) => typeof v === 'string' && v.length > 0 ? v.slice(0, TEAM_LIMITS.activityArgChars) : undefined;
14
- const picked = {};
15
- const path = str(a.path);
16
- const pattern = str(a.pattern);
17
- const command = str(a.command);
18
- const to = str(a.to);
19
- const from = str(a.from);
20
- if (path !== undefined)
21
- picked.path = path;
22
- if (pattern !== undefined)
23
- picked.pattern = pattern;
24
- if (command !== undefined)
25
- picked.command = command;
26
- if (to !== undefined)
27
- picked.to = to;
28
- if (from !== undefined)
29
- picked.from = from;
30
- return picked;
31
- }
32
- /**
33
- * Strip anything that could corrupt the frame, collapse whitespace, and clamp.
34
- *
35
- * THE CONTROL-CHARACTER STRIP IS A CORRECTNESS BOUNDARY, NOT TIDINESS. This
36
- * string is model-chosen and reaches an Ink <Text> unescaped. A child running
37
- * `bash` with an ANSI escape in the command line would otherwise write that
38
- * escape into the roster: at best a mangled row, at worst a cleared screen or a
39
- * moved cursor in the middle of someone's transcript. `bash`'s own output never
40
- * reaches the panel; its ARGUMENTS now do.
41
- *
42
- * SURROGATES ARE GUARDED AT BOTH ENDS (P2-3). The trailing guard is the obvious
43
- * one. The LEADING one is needed because the caller feeds this a rolling tail
44
- * built with `String.slice(-n)`, which cuts on a UTF-16 code-unit boundary and
45
- * can therefore hand us a lone LOW surrogate at index 0. Either half of a split
46
- * pair renders as a replacement character - the same failure `truncateBytes`
47
- * guards one layer down (report.ts).
48
- */
49
- export function sanitizeActivity(raw, maxChars) {
50
- let src = raw;
51
- const head = src.charCodeAt(0);
52
- if (head >= 0xdc00 && head <= 0xdfff)
53
- src = src.slice(1);
54
- const flat = src
55
- // eslint-disable-next-line no-control-regex
56
- .replace(/[\x00-\x1f\x7f]/g, ' ')
57
- .replace(/\s+/g, ' ')
58
- .trim();
59
- if (maxChars <= 0)
60
- return '';
61
- if (flat.length <= maxChars)
62
- return flat;
63
- if (maxChars <= 3)
64
- return flat.slice(0, maxChars);
65
- let cut = maxChars - 3;
66
- const code = flat.charCodeAt(cut - 1);
67
- if (code >= 0xd800 && code <= 0xdbff)
68
- cut -= 1;
69
- return `${flat.slice(0, cut)}...`;
70
- }
71
- /** The basename of a path, for the narrow form. Pure string work: no `path`. */
72
- function basename(p) {
73
- const parts = p.split(/[\\/]/);
74
- return parts[parts.length - 1] || p;
75
- }
76
- /** The program name of a command line, for the narrow form. */
77
- function program(commandLine) {
78
- const first = commandLine.trim().split(/\s+/)[0] ?? '';
79
- return basename(first) || commandLine;
80
- }
81
- /**
82
- * One short phrase describing a tool call.
83
- *
84
- * `wide` false is the narrow-terminal form (D-4). For a path-valued argument
85
- * that is the basename; for `bash` it is the PROGRAM NAME (P1-6). Running the
86
- * command line through `basename` is wrong twice over: `basename` splits on `/`,
87
- * so `npm test -w cli` comes back whole and `./scripts/build.sh --prod` comes
88
- * back as `build.sh --prod`. Neither is shorter and the second is a lie about
89
- * what ran.
90
- *
91
- * Anything not in the table renders as its own name. That is the correct
92
- * degradation for `skill_find` and for any tool a later round registers on a
93
- * child: a name is always true, and inventing an argument mapping for a tool
94
- * this module has not been taught is how a formatter starts lying.
95
- */
96
- export function describeToolActivity(toolName, args, wide) {
97
- const a = args ?? {};
98
- switch (toolName) {
99
- case 'read_file':
100
- return detail('read', a.path, wide, basename);
101
- case 'write_file':
102
- return detail('write', a.path, wide, basename);
103
- case 'edit_file':
104
- return detail('edit', a.path, wide, basename);
105
- case 'list_dir':
106
- return detail('list', a.path ?? '.', wide, basename);
107
- case 'glob':
108
- return detail('glob', a.pattern, wide, basename);
109
- case 'grep':
110
- return detail('grep', a.pattern, wide, basename);
111
- case 'bash':
112
- return detail('bash', a.command, wide, program);
113
- case 'team_send': {
114
- const to = (a.to ?? '').trim();
115
- return to ? `messaging ${to}` : 'messaging';
116
- }
117
- case 'team_wait': {
118
- const from = (a.from ?? '').trim();
119
- return from ? `waiting for ${from}` : 'waiting for mail';
120
- }
121
- default:
122
- return toolName;
123
- }
124
- }
125
- function detail(verb, value, wide, narrow) {
126
- const v = (value ?? '').trim();
127
- if (v.length === 0)
128
- return verb;
129
- return `${verb}: ${wide ? v : narrow(v)}`;
130
- }