@namzu/cli 30.0.0 → 33.0.0

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 (347) hide show
  1. package/CHANGELOG.md +261 -1
  2. package/dist/browser/commands.js +11 -7
  3. package/dist/browser/commands.js.map +1 -1
  4. package/dist/cli.d.ts.map +1 -1
  5. package/dist/cli.js +26 -2
  6. package/dist/cli.js.map +1 -1
  7. package/dist/commands/acp.d.ts +20 -2
  8. package/dist/commands/acp.d.ts.map +1 -1
  9. package/dist/commands/acp.js +42 -5
  10. package/dist/commands/acp.js.map +1 -1
  11. package/dist/commands/archive.d.ts +4 -0
  12. package/dist/commands/archive.d.ts.map +1 -0
  13. package/dist/commands/archive.js +62 -0
  14. package/dist/commands/archive.js.map +1 -0
  15. package/dist/commands/drain.d.ts.map +1 -1
  16. package/dist/commands/drain.js +2 -1
  17. package/dist/commands/drain.js.map +1 -1
  18. package/dist/commands/exec-json.d.ts.map +1 -1
  19. package/dist/commands/exec-json.js +24 -1
  20. package/dist/commands/exec-json.js.map +1 -1
  21. package/dist/commands/exec.d.ts.map +1 -1
  22. package/dist/commands/exec.js +2 -1
  23. package/dist/commands/exec.js.map +1 -1
  24. package/dist/commands/login.d.ts +1 -1
  25. package/dist/commands/login.d.ts.map +1 -1
  26. package/dist/commands/login.js +33 -11
  27. package/dist/commands/login.js.map +1 -1
  28. package/dist/commands/mcp-oauth-login.d.ts +19 -0
  29. package/dist/commands/mcp-oauth-login.d.ts.map +1 -0
  30. package/dist/commands/mcp-oauth-login.js +213 -0
  31. package/dist/commands/mcp-oauth-login.js.map +1 -0
  32. package/dist/commands/mcp.d.ts +3 -0
  33. package/dist/commands/mcp.d.ts.map +1 -0
  34. package/dist/commands/mcp.js +288 -0
  35. package/dist/commands/mcp.js.map +1 -0
  36. package/dist/commands/prior-messages.d.ts.map +1 -1
  37. package/dist/commands/prior-messages.js +42 -2
  38. package/dist/commands/prior-messages.js.map +1 -1
  39. package/dist/commands/schedule.d.ts.map +1 -1
  40. package/dist/commands/schedule.js +7 -5
  41. package/dist/commands/schedule.js.map +1 -1
  42. package/dist/commands/skills.d.ts.map +1 -1
  43. package/dist/commands/skills.js +60 -5
  44. package/dist/commands/skills.js.map +1 -1
  45. package/dist/commands/types.d.ts +2 -0
  46. package/dist/commands/types.d.ts.map +1 -1
  47. package/dist/commands/worktree.d.ts +6 -0
  48. package/dist/commands/worktree.d.ts.map +1 -0
  49. package/dist/commands/worktree.js +85 -0
  50. package/dist/commands/worktree.js.map +1 -0
  51. package/dist/config/composer-triggers.d.ts +41 -0
  52. package/dist/config/composer-triggers.d.ts.map +1 -0
  53. package/dist/config/composer-triggers.js +80 -0
  54. package/dist/config/composer-triggers.js.map +1 -0
  55. package/dist/config/load.d.ts.map +1 -1
  56. package/dist/config/load.js +58 -0
  57. package/dist/config/load.js.map +1 -1
  58. package/dist/config/schema.d.ts +34 -0
  59. package/dist/config/schema.d.ts.map +1 -1
  60. package/dist/config/schema.js.map +1 -1
  61. package/dist/config/user-config.d.ts +2 -0
  62. package/dist/config/user-config.d.ts.map +1 -1
  63. package/dist/config/user-config.js +76 -6
  64. package/dist/config/user-config.js.map +1 -1
  65. package/dist/context/doctrine.d.ts +3 -3
  66. package/dist/context/doctrine.d.ts.map +1 -1
  67. package/dist/context/doctrine.js +3 -3
  68. package/dist/context/doctrine.js.map +1 -1
  69. package/dist/context/runtime-message.d.ts.map +1 -1
  70. package/dist/context/runtime-message.js +4 -0
  71. package/dist/context/runtime-message.js.map +1 -1
  72. package/dist/doctor/checks/credentials.d.ts.map +1 -1
  73. package/dist/doctor/checks/credentials.js +2 -0
  74. package/dist/doctor/checks/credentials.js.map +1 -1
  75. package/dist/integrations/mcp/oauth-store.d.ts +40 -0
  76. package/dist/integrations/mcp/oauth-store.d.ts.map +1 -0
  77. package/dist/integrations/mcp/oauth-store.js +549 -0
  78. package/dist/integrations/mcp/oauth-store.js.map +1 -0
  79. package/dist/integrations/mcp/servers.d.ts +72 -5
  80. package/dist/integrations/mcp/servers.d.ts.map +1 -1
  81. package/dist/integrations/mcp/servers.js +298 -24
  82. package/dist/integrations/mcp/servers.js.map +1 -1
  83. package/dist/integrations/mcp/user-config.d.ts +25 -0
  84. package/dist/integrations/mcp/user-config.d.ts.map +1 -0
  85. package/dist/integrations/mcp/user-config.js +92 -0
  86. package/dist/integrations/mcp/user-config.js.map +1 -0
  87. package/dist/integrations/plugins/runtime.d.ts +11 -9
  88. package/dist/integrations/plugins/runtime.d.ts.map +1 -1
  89. package/dist/integrations/plugins/runtime.js +17 -36
  90. package/dist/integrations/plugins/runtime.js.map +1 -1
  91. package/dist/integrations/providers/credential-store.d.ts +8 -0
  92. package/dist/integrations/providers/credential-store.d.ts.map +1 -1
  93. package/dist/integrations/providers/credential-store.js +111 -22
  94. package/dist/integrations/providers/credential-store.js.map +1 -1
  95. package/dist/integrations/providers/discover.d.ts +11 -5
  96. package/dist/integrations/providers/discover.d.ts.map +1 -1
  97. package/dist/integrations/providers/discover.js +26 -12
  98. package/dist/integrations/providers/discover.js.map +1 -1
  99. package/dist/integrations/providers/index.d.ts +1 -1
  100. package/dist/integrations/providers/index.d.ts.map +1 -1
  101. package/dist/integrations/providers/index.js +1 -1
  102. package/dist/integrations/providers/index.js.map +1 -1
  103. package/dist/integrations/resident/session-step.d.ts.map +1 -1
  104. package/dist/integrations/resident/session-step.js +2 -1
  105. package/dist/integrations/resident/session-step.js.map +1 -1
  106. package/dist/integrations/sessions/store.d.ts +23 -5
  107. package/dist/integrations/sessions/store.d.ts.map +1 -1
  108. package/dist/integrations/sessions/store.js +184 -26
  109. package/dist/integrations/sessions/store.js.map +1 -1
  110. package/dist/integrations/subagents/NamzuCliAgent.d.ts +8 -0
  111. package/dist/integrations/subagents/NamzuCliAgent.d.ts.map +1 -0
  112. package/dist/integrations/subagents/NamzuCliAgent.js +9 -0
  113. package/dist/integrations/subagents/NamzuCliAgent.js.map +1 -0
  114. package/dist/integrations/subagents/runtime.d.ts +9 -6
  115. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  116. package/dist/integrations/subagents/runtime.js +108 -19
  117. package/dist/integrations/subagents/runtime.js.map +1 -1
  118. package/dist/integrations/subagents/worktree-driver.d.ts +17 -0
  119. package/dist/integrations/subagents/worktree-driver.d.ts.map +1 -0
  120. package/dist/integrations/subagents/worktree-driver.js +72 -0
  121. package/dist/integrations/subagents/worktree-driver.js.map +1 -0
  122. package/dist/integrations/web/search.d.ts.map +1 -1
  123. package/dist/integrations/web/search.js +8 -6
  124. package/dist/integrations/web/search.js.map +1 -1
  125. package/dist/integrations/worktrees/managed.d.ts +49 -0
  126. package/dist/integrations/worktrees/managed.d.ts.map +1 -0
  127. package/dist/integrations/worktrees/managed.js +231 -0
  128. package/dist/integrations/worktrees/managed.js.map +1 -0
  129. package/dist/permissions/rules.d.ts +5 -1
  130. package/dist/permissions/rules.d.ts.map +1 -1
  131. package/dist/permissions/rules.js +85 -3
  132. package/dist/permissions/rules.js.map +1 -1
  133. package/dist/schedule/build.d.ts +19 -2
  134. package/dist/schedule/build.d.ts.map +1 -1
  135. package/dist/schedule/build.js +119 -21
  136. package/dist/schedule/build.js.map +1 -1
  137. package/dist/schedule/changes.d.ts.map +1 -1
  138. package/dist/schedule/changes.js +13 -0
  139. package/dist/schedule/changes.js.map +1 -1
  140. package/dist/schedule/commands/add.d.ts +1 -1
  141. package/dist/schedule/commands/add.d.ts.map +1 -1
  142. package/dist/schedule/commands/add.js +186 -40
  143. package/dist/schedule/commands/add.js.map +1 -1
  144. package/dist/schedule/commands/list.d.ts +2 -0
  145. package/dist/schedule/commands/list.d.ts.map +1 -1
  146. package/dist/schedule/commands/list.js +64 -19
  147. package/dist/schedule/commands/list.js.map +1 -1
  148. package/dist/schedule/daemon/daemon.d.ts +1 -1
  149. package/dist/schedule/daemon/daemon.d.ts.map +1 -1
  150. package/dist/schedule/daemon/daemon.js +17 -5
  151. package/dist/schedule/daemon/daemon.js.map +1 -1
  152. package/dist/schedule/daemon/notify.d.ts +21 -1
  153. package/dist/schedule/daemon/notify.d.ts.map +1 -1
  154. package/dist/schedule/daemon/notify.js +43 -0
  155. package/dist/schedule/daemon/notify.js.map +1 -1
  156. package/dist/schedule/fire/fire.d.ts +1 -1
  157. package/dist/schedule/fire/fire.d.ts.map +1 -1
  158. package/dist/schedule/fire/fire.js +205 -14
  159. package/dist/schedule/fire/fire.js.map +1 -1
  160. package/dist/schedule/fire/result.d.ts +1 -1
  161. package/dist/schedule/fire/result.d.ts.map +1 -1
  162. package/dist/schedule/fire/result.js +2 -1
  163. package/dist/schedule/fire/result.js.map +1 -1
  164. package/dist/schedule/fire/run-script.d.ts +46 -0
  165. package/dist/schedule/fire/run-script.d.ts.map +1 -0
  166. package/dist/schedule/fire/run-script.js +81 -0
  167. package/dist/schedule/fire/run-script.js.map +1 -0
  168. package/dist/schedule/fire/unattended-note.d.ts +8 -0
  169. package/dist/schedule/fire/unattended-note.d.ts.map +1 -1
  170. package/dist/schedule/fire/unattended-note.js +5 -0
  171. package/dist/schedule/fire/unattended-note.js.map +1 -1
  172. package/dist/schedule/fire/wake-gate.d.ts +39 -0
  173. package/dist/schedule/fire/wake-gate.d.ts.map +1 -0
  174. package/dist/schedule/fire/wake-gate.js +90 -0
  175. package/dist/schedule/fire/wake-gate.js.map +1 -0
  176. package/dist/schedule/floor.d.ts +1 -1
  177. package/dist/schedule/floor.d.ts.map +1 -1
  178. package/dist/schedule/floor.js +288 -16
  179. package/dist/schedule/floor.js.map +1 -1
  180. package/dist/schedule/policy.d.ts +40 -0
  181. package/dist/schedule/policy.d.ts.map +1 -1
  182. package/dist/schedule/policy.js +36 -0
  183. package/dist/schedule/policy.js.map +1 -1
  184. package/dist/schedule/script-check.d.ts +53 -0
  185. package/dist/schedule/script-check.d.ts.map +1 -0
  186. package/dist/schedule/script-check.js +145 -0
  187. package/dist/schedule/script-check.js.map +1 -0
  188. package/dist/schedule/script-shell.d.ts +3 -0
  189. package/dist/schedule/script-shell.d.ts.map +1 -0
  190. package/dist/schedule/script-shell.js +5 -0
  191. package/dist/schedule/script-shell.js.map +1 -0
  192. package/dist/schedule/service/manifest.js +1 -1
  193. package/dist/schedule/service/manifest.js.map +1 -1
  194. package/dist/schedule/store/atomic.d.ts +5 -2
  195. package/dist/schedule/store/atomic.d.ts.map +1 -1
  196. package/dist/schedule/store/atomic.js +7 -4
  197. package/dist/schedule/store/atomic.js.map +1 -1
  198. package/dist/schedule/store/claims.js +1 -1
  199. package/dist/schedule/store/claims.js.map +1 -1
  200. package/dist/schedule/store/history.d.ts +1 -1
  201. package/dist/schedule/store/history.d.ts.map +1 -1
  202. package/dist/schedule/store/history.js +4 -1
  203. package/dist/schedule/store/history.js.map +1 -1
  204. package/dist/schedule/store/jobs.d.ts +19 -3
  205. package/dist/schedule/store/jobs.d.ts.map +1 -1
  206. package/dist/schedule/store/jobs.js +83 -16
  207. package/dist/schedule/store/jobs.js.map +1 -1
  208. package/dist/schedule/store/state.js +1 -1
  209. package/dist/schedule/store/state.js.map +1 -1
  210. package/dist/schedule/types.d.ts +71 -6
  211. package/dist/schedule/types.d.ts.map +1 -1
  212. package/dist/schedule/types.js +25 -1
  213. package/dist/schedule/types.js.map +1 -1
  214. package/dist/schedule/visible-source.d.ts +18 -0
  215. package/dist/schedule/visible-source.d.ts.map +1 -0
  216. package/dist/schedule/visible-source.js +59 -0
  217. package/dist/schedule/visible-source.js.map +1 -0
  218. package/dist/skills/audit.d.ts +31 -0
  219. package/dist/skills/audit.d.ts.map +1 -0
  220. package/dist/skills/audit.js +75 -0
  221. package/dist/skills/audit.js.map +1 -0
  222. package/dist/test-support/toolset.d.ts +23 -0
  223. package/dist/test-support/toolset.d.ts.map +1 -0
  224. package/dist/test-support/toolset.js +27 -0
  225. package/dist/test-support/toolset.js.map +1 -0
  226. package/dist/tui/App.d.ts.map +1 -1
  227. package/dist/tui/App.js +568 -106
  228. package/dist/tui/App.js.map +1 -1
  229. package/dist/tui/ChoicePicker.d.ts +2 -0
  230. package/dist/tui/ChoicePicker.d.ts.map +1 -1
  231. package/dist/tui/ChoicePicker.js +10 -2
  232. package/dist/tui/ChoicePicker.js.map +1 -1
  233. package/dist/tui/Composer.d.ts +62 -3
  234. package/dist/tui/Composer.d.ts.map +1 -1
  235. package/dist/tui/Composer.js +162 -25
  236. package/dist/tui/Composer.js.map +1 -1
  237. package/dist/tui/ComposerFrame.d.ts +1 -1
  238. package/dist/tui/ComposerFrame.js +3 -3
  239. package/dist/tui/ComposerFrame.js.map +1 -1
  240. package/dist/tui/EffortSlider.d.ts +8 -9
  241. package/dist/tui/EffortSlider.d.ts.map +1 -1
  242. package/dist/tui/EffortSlider.js +15 -12
  243. package/dist/tui/EffortSlider.js.map +1 -1
  244. package/dist/tui/Picker.d.ts.map +1 -1
  245. package/dist/tui/Picker.js +18 -3
  246. package/dist/tui/Picker.js.map +1 -1
  247. package/dist/tui/ResumePicker.d.ts +2 -1
  248. package/dist/tui/ResumePicker.d.ts.map +1 -1
  249. package/dist/tui/ResumePicker.js +3 -3
  250. package/dist/tui/ResumePicker.js.map +1 -1
  251. package/dist/tui/StatusBar.d.ts +12 -12
  252. package/dist/tui/StatusBar.d.ts.map +1 -1
  253. package/dist/tui/StatusBar.js +15 -15
  254. package/dist/tui/StatusBar.js.map +1 -1
  255. package/dist/tui/agent.d.ts +46 -7
  256. package/dist/tui/agent.d.ts.map +1 -1
  257. package/dist/tui/agent.js +399 -182
  258. package/dist/tui/agent.js.map +1 -1
  259. package/dist/tui/browser-notices.d.ts.map +1 -1
  260. package/dist/tui/browser-notices.js +6 -1
  261. package/dist/tui/browser-notices.js.map +1 -1
  262. package/dist/tui/credential-entry.d.ts +4 -29
  263. package/dist/tui/credential-entry.d.ts.map +1 -1
  264. package/dist/tui/credential-entry.js +7 -29
  265. package/dist/tui/credential-entry.js.map +1 -1
  266. package/dist/tui/hypermode.d.ts +37 -0
  267. package/dist/tui/hypermode.d.ts.map +1 -0
  268. package/dist/tui/hypermode.js +58 -0
  269. package/dist/tui/hypermode.js.map +1 -0
  270. package/dist/tui/login-prompt.d.ts +3 -1
  271. package/dist/tui/login-prompt.d.ts.map +1 -1
  272. package/dist/tui/login-prompt.js +11 -0
  273. package/dist/tui/login-prompt.js.map +1 -1
  274. package/dist/tui/permission-review.d.ts +1 -1
  275. package/dist/tui/permission-review.js +1 -1
  276. package/dist/tui/provider-list.d.ts.map +1 -1
  277. package/dist/tui/provider-list.js +3 -1
  278. package/dist/tui/provider-list.js.map +1 -1
  279. package/dist/tui/schedule/host-commands.d.ts.map +1 -1
  280. package/dist/tui/schedule/host-commands.js +94 -33
  281. package/dist/tui/schedule/host-commands.js.map +1 -1
  282. package/dist/tui/schedule/integration.d.ts +6 -2
  283. package/dist/tui/schedule/integration.d.ts.map +1 -1
  284. package/dist/tui/schedule/integration.js +3 -1
  285. package/dist/tui/schedule/integration.js.map +1 -1
  286. package/dist/tui/schedule/resume.d.ts.map +1 -1
  287. package/dist/tui/schedule/resume.js +10 -1
  288. package/dist/tui/schedule/resume.js.map +1 -1
  289. package/dist/tui/schedule/tool-host.d.ts +4 -1
  290. package/dist/tui/schedule/tool-host.d.ts.map +1 -1
  291. package/dist/tui/schedule/tool-host.js +155 -40
  292. package/dist/tui/schedule/tool-host.js.map +1 -1
  293. package/dist/tui/slashCommands.d.ts +33 -6
  294. package/dist/tui/slashCommands.d.ts.map +1 -1
  295. package/dist/tui/slashCommands.js +96 -34
  296. package/dist/tui/slashCommands.js.map +1 -1
  297. package/dist/tui/theme.d.ts +10 -4
  298. package/dist/tui/theme.d.ts.map +1 -1
  299. package/dist/tui/theme.js +4 -3
  300. package/dist/tui/theme.js.map +1 -1
  301. package/dist/tui/triggers/analyze.d.ts +57 -0
  302. package/dist/tui/triggers/analyze.d.ts.map +1 -0
  303. package/dist/tui/triggers/analyze.js +221 -0
  304. package/dist/tui/triggers/analyze.js.map +1 -0
  305. package/dist/tui/triggers/context-text.d.ts +21 -0
  306. package/dist/tui/triggers/context-text.d.ts.map +1 -0
  307. package/dist/tui/triggers/context-text.js +44 -0
  308. package/dist/tui/triggers/context-text.js.map +1 -0
  309. package/dist/tui/triggers/copy.d.ts +38 -0
  310. package/dist/tui/triggers/copy.d.ts.map +1 -0
  311. package/dist/tui/triggers/copy.js +163 -0
  312. package/dist/tui/triggers/copy.js.map +1 -0
  313. package/dist/tui/triggers/detect.d.ts +83 -0
  314. package/dist/tui/triggers/detect.d.ts.map +1 -0
  315. package/dist/tui/triggers/detect.js +295 -0
  316. package/dist/tui/triggers/detect.js.map +1 -0
  317. package/dist/tui/triggers/fold.d.ts +34 -0
  318. package/dist/tui/triggers/fold.d.ts.map +1 -0
  319. package/dist/tui/triggers/fold.js +44 -0
  320. package/dist/tui/triggers/fold.js.map +1 -0
  321. package/dist/tui/triggers/pattern.d.ts +66 -0
  322. package/dist/tui/triggers/pattern.d.ts.map +1 -0
  323. package/dist/tui/triggers/pattern.js +243 -0
  324. package/dist/tui/triggers/pattern.js.map +1 -0
  325. package/dist/tui/triggers/provenance.d.ts +58 -0
  326. package/dist/tui/triggers/provenance.d.ts.map +1 -0
  327. package/dist/tui/triggers/provenance.js +98 -0
  328. package/dist/tui/triggers/provenance.js.map +1 -0
  329. package/dist/tui/triggers/registry.d.ts +113 -0
  330. package/dist/tui/triggers/registry.d.ts.map +1 -0
  331. package/dist/tui/triggers/registry.js +164 -0
  332. package/dist/tui/triggers/registry.js.map +1 -0
  333. package/dist/tui/triggers/setting.d.ts +18 -0
  334. package/dist/tui/triggers/setting.d.ts.map +1 -0
  335. package/dist/tui/triggers/setting.js +61 -0
  336. package/dist/tui/triggers/setting.js.map +1 -0
  337. package/dist/tui/triggers/verbs.d.ts +29 -0
  338. package/dist/tui/triggers/verbs.d.ts.map +1 -0
  339. package/dist/tui/triggers/verbs.js +140 -0
  340. package/dist/tui/triggers/verbs.js.map +1 -0
  341. package/dist/tui/turn-interruption.d.ts.map +1 -1
  342. package/dist/tui/turn-interruption.js +4 -0
  343. package/dist/tui/turn-interruption.js.map +1 -1
  344. package/dist/tui/types.d.ts +3 -1
  345. package/dist/tui/types.d.ts.map +1 -1
  346. package/package.json +13 -12
  347. package/skills/schedule-task/SKILL.md +115 -3
@@ -0,0 +1,164 @@
1
+ /**
2
+ * Composer triggers: words typed into the TUI composer that name one namzu
3
+ * action for the message being written, shown before Enter and dropped with
4
+ * Alt+W. See docs/cli/composer-triggers.md.
5
+ *
6
+ * A trigger is a shorthand for something namzu already does. It grants
7
+ * nothing, skips no confirmation and lasts one turn: `TriggerEffect` has no
8
+ * kind for a permission mode, a directory, a credential, the sandbox, a tool
9
+ * list or a limit, and a test pins that. The operator's words reach the model
10
+ * and the log unchanged; namzu's own words for a trigger travel beside them as
11
+ * request-only context (`context-text.ts`).
12
+ *
13
+ * This module is the TUI's alone: `exec`, `drain`, ACP, the scheduler and
14
+ * sub-agents never import it (a test says so).
15
+ */
16
+ import { COMPOSER_TRIGGER_DEFAULTS, COMPOSER_TRIGGER_IDS } from '../../config/composer-triggers.js';
17
+ import { fold } from './fold.js';
18
+ import { compilePattern } from './pattern.js';
19
+ import { verbForms } from './verbs.js';
20
+ export const TRIGGER_IDS = COMPOSER_TRIGGER_IDS;
21
+ const both = (pattern) => ({ pattern, edges: 'both' });
22
+ const right = (pattern) => ({ pattern, edges: 'right' });
23
+ /** The built-in triggers, in the order their tags are shown. */
24
+ export const BUILTIN_TRIGGERS = [
25
+ {
26
+ id: 'hypermode',
27
+ label: 'hypermode',
28
+ keywords: ['hypermode'],
29
+ phrases: {
30
+ en: [
31
+ both('[please] delegate (this|it|that) to (agents|subagents|sub agents|parallel agents) [please]'),
32
+ both('[please] use (subagents|sub agents|parallel agents) for (this|it|that) [please]'),
33
+ ],
34
+ tr: [
35
+ right("[lütfen] (bunu|bunları|onu) (ajanlara|alt ajanlara|agent+'|subagent+') {dağıt} [lütfen]"),
36
+ right('(bunu|bunları|onu) (alt ajanlarla|ajanlarla|agentlarla|subagentlarla) {yap} [lütfen]'),
37
+ ],
38
+ },
39
+ loose: {
40
+ en: [[['delegate'], ['agents', 'subagents']]],
41
+ tr: [
42
+ [
43
+ ['ajanlara', 'agent*', 'subagent*', 'ajanlarla'],
44
+ ['{dağıt}', '{yap}'],
45
+ ],
46
+ ],
47
+ },
48
+ effect: { kind: 'turn-context', text: 'hypermode', effort: 'hypermode' },
49
+ scope: 'turn',
50
+ arming: COMPOSER_TRIGGER_DEFAULTS.hypermode,
51
+ },
52
+ {
53
+ id: 'save-skill',
54
+ label: 'save as skill',
55
+ keywords: [],
56
+ phrases: {
57
+ en: [
58
+ both('[please|now|can you|could you|would you|will you] (save|turn) (this|it|that) (as|into) [a|an] [new|reusable] skill [please]'),
59
+ both('[please|now|can you|could you|would you|will you] make (this|it|that) [into] (a|an) [new|reusable] skill [please]'),
60
+ ],
61
+ tr: [
62
+ right('[lütfen] [bunu|bunları|onu] [da|de] [yeni] [bir] (skill|beceri|yetenek) olarak {kaydet} [lütfen]'),
63
+ right("[lütfen] (bunu|bunları|onu) [da|de] (skill+'|beceri+'|yetenek+') {çevir|dönüştür} [lütfen]"),
64
+ right('bundan [bir] [yeni] (skill|beceri|yetenek) {yap|oluştur} [lütfen]'),
65
+ ],
66
+ },
67
+ loose: {
68
+ en: [[['save', 'turn', 'make'], ['this', 'it', 'that'], ['skill']]],
69
+ tr: [
70
+ [
71
+ ['skill*', 'beceri*', 'yetenek*'],
72
+ ['{kaydet}', '{çevir}', '{dönüştür}', '{yap}', '{oluştur}'],
73
+ ],
74
+ ],
75
+ },
76
+ effect: { kind: 'after-turn', command: '/skills save', text: 'save-skill' },
77
+ scope: 'after-turn',
78
+ standalone: '/skills save',
79
+ arming: COMPOSER_TRIGGER_DEFAULTS['save-skill'],
80
+ },
81
+ {
82
+ id: 'schedule',
83
+ label: 'schedule',
84
+ keywords: [],
85
+ phrases: {
86
+ en: [
87
+ both('schedule (this|it) [with namzu]'),
88
+ both('run (this|it) every (day|morning|evening|night|hour|week|<n> (minutes|hours|days))'),
89
+ ],
90
+ tr: [
91
+ right('(bunu|onu) her (gün|sabah|akşam|saat|hafta) {çalıştır}'),
92
+ right('(bunu|onu) zamanlanmış görev olarak {kaydet|ekle}'),
93
+ ],
94
+ },
95
+ loose: {},
96
+ effect: { kind: 'turn-context', text: 'schedule' },
97
+ scope: 'turn',
98
+ // Phrases about a schedule usually describe the code being written
99
+ // ("write a backup script and schedule it"): offered, never armed.
100
+ arming: COMPOSER_TRIGGER_DEFAULTS.schedule,
101
+ },
102
+ {
103
+ id: 'max-effort',
104
+ label: 'max effort',
105
+ keywords: [],
106
+ phrases: {
107
+ en: [both('think (as hard as you can|at max effort|at maximum effort)')],
108
+ tr: [right('en yüksek (eforla|çabayla) {düşün}')],
109
+ },
110
+ loose: {},
111
+ effect: { kind: 'turn-effort', effort: 'highest' },
112
+ scope: 'turn',
113
+ arming: COMPOSER_TRIGGER_DEFAULTS['max-effort'],
114
+ },
115
+ ];
116
+ export function compileRegistry(definitions = BUILTIN_TRIGGERS, options = {}) {
117
+ const locales = new Set(options.locales ?? ['en', 'tr']);
118
+ const triggers = [];
119
+ for (const definition of definitions) {
120
+ const arming = options.arming?.[definition.id] ?? definition.arming;
121
+ if (arming === 'off')
122
+ continue;
123
+ triggers.push({
124
+ definition,
125
+ arming,
126
+ keywords: new Set(definition.keywords.map(fold)),
127
+ phrases: Object.entries(definition.phrases)
128
+ .filter(([locale]) => locales.has(locale))
129
+ .flatMap(([locale, specs]) => specs.map((spec) => ({
130
+ pattern: compilePattern(spec.pattern),
131
+ edges: spec.edges,
132
+ locale,
133
+ }))),
134
+ loose: Object.entries(definition.loose)
135
+ .filter(([locale]) => locales.has(locale))
136
+ .flatMap(([locale, specs]) => specs.map((slots) => ({ slots: slots.map(slotMatcher), locale }))),
137
+ });
138
+ }
139
+ const armings = triggers.map((trigger) => `${trigger.definition.id}:${trigger.arming}`);
140
+ const version = `${armings.join(',')}|${[...locales].join(',')}`;
141
+ return { triggers, version };
142
+ }
143
+ function slotMatcher(entries) {
144
+ const exact = new Set();
145
+ const prefixes = [];
146
+ for (const entry of entries) {
147
+ if (entry.startsWith('{') && entry.endsWith('}')) {
148
+ for (const form of verbForms(entry.slice(1, -1)))
149
+ exact.add(form.tokens[0]);
150
+ }
151
+ else if (entry.endsWith('*'))
152
+ prefixes.push(fold(entry.slice(0, -1)));
153
+ else
154
+ exact.add(fold(entry));
155
+ }
156
+ return (token) => exact.has(token) || prefixes.some((prefix) => token.startsWith(prefix));
157
+ }
158
+ export function triggerDefinition(id) {
159
+ const found = BUILTIN_TRIGGERS.find((trigger) => trigger.id === id);
160
+ if (!found)
161
+ throw new Error(`Unknown trigger ${id}`);
162
+ return found;
163
+ }
164
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/tui/triggers/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AAEnG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAwB,cAAc,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAItC,MAAM,CAAC,MAAM,WAAW,GAAyB,oBAAoB,CAAA;AAmErE,MAAM,IAAI,GAAG,CAAC,OAAe,EAAc,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;AAC1E,MAAM,KAAK,GAAG,CAAC,OAAe,EAAc,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;AAE5E,gEAAgE;AAChE,MAAM,CAAC,MAAM,gBAAgB,GAAiC;IAC7D;QACC,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,CAAC,WAAW,CAAC;QACvB,OAAO,EAAE;YACR,EAAE,EAAE;gBACH,IAAI,CACH,4FAA4F,CAC5F;gBACD,IAAI,CAAC,iFAAiF,CAAC;aACvF;YACD,EAAE,EAAE;gBACH,KAAK,CACJ,yFAAyF,CACzF;gBACD,KAAK,CACJ,sFAAsF,CACtF;aACD;SACD;QACD,KAAK,EAAE;YACN,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;YAC7C,EAAE,EAAE;gBACH;oBACC,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC;oBAChD,CAAC,SAAS,EAAE,OAAO,CAAC;iBACpB;aACD;SACD;QACD,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE;QACxE,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,yBAAyB,CAAC,SAAS;KAC3C;IACD;QACC,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE;YACR,EAAE,EAAE;gBACH,IAAI,CACH,6HAA6H,CAC7H;gBACD,IAAI,CACH,mHAAmH,CACnH;aACD;YACD,EAAE,EAAE;gBACH,KAAK,CACJ,kGAAkG,CAClG;gBACD,KAAK,CACJ,4FAA4F,CAC5F;gBACD,KAAK,CAAC,mEAAmE,CAAC;aAC1E;SACD;QACD,KAAK,EAAE;YACN,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YACnE,EAAE,EAAE;gBACH;oBACC,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC;oBACjC,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC;iBAC3D;aACD;SACD;QACD,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE;QAC3E,KAAK,EAAE,YAAY;QACnB,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,yBAAyB,CAAC,YAAY,CAAC;KAC/C;IACD;QACC,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE;YACR,EAAE,EAAE;gBACH,IAAI,CAAC,iCAAiC,CAAC;gBACvC,IAAI,CAAC,oFAAoF,CAAC;aAC1F;YACD,EAAE,EAAE;gBACH,KAAK,CAAC,wDAAwD,CAAC;gBAC/D,KAAK,CAAC,mDAAmD,CAAC;aAC1D;SACD;QACD,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE;QAClD,KAAK,EAAE,MAAM;QACb,mEAAmE;QACnE,mEAAmE;QACnE,MAAM,EAAE,yBAAyB,CAAC,QAAQ;KAC1C;IACD;QACC,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,YAAY;QACnB,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE;YACR,EAAE,EAAE,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;YACxE,EAAE,EAAE,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACjD;QACD,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE;QAClD,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,yBAAyB,CAAC,YAAY,CAAC;KAC/C;CACD,CAAA;AA8BD,MAAM,UAAU,eAAe,CAC9B,cAA4C,gBAAgB,EAC5D,UAA2B,EAAE;IAE7B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAgB,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IACvE,MAAM,QAAQ,GAAsB,EAAE,CAAA;IACtC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,MAAM,CAAA;QACnE,IAAI,MAAM,KAAK,KAAK;YAAE,SAAQ;QAC9B,QAAQ,CAAC,IAAI,CAAC;YACb,UAAU;YACV,MAAM;YACN,QAAQ,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChD,OAAO,EAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAA8C;iBACvF,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;iBACzC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAC5B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACpB,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;gBACrC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM;aACN,CAAC,CAAC,CACH;YACF,KAAK,EAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAA6C;iBAClF,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;iBACzC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAC5B,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CACjE;SACF,CAAC,CAAA;IACH,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACvF,MAAM,OAAO,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IAChE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;AAC7B,CAAC;AAED,SAAS,WAAW,CAAC,OAA0B;IAC9C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;IAC/B,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAClD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAW,CAAC,CAAA;QACtF,CAAC;aAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;;YAClE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5B,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;AAC1F,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAa;IAC9C,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IACnE,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAA;IACpD,OAAO,KAAK,CAAA;AACb,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * `/config triggers on|off|list`: write `composerTriggers.enabled` to the user
3
+ * config, then read the whole cascade back and say whether the value holds.
4
+ *
5
+ * A project file cannot switch the feature on over the user file (it can
6
+ * only turn things down), but the managed file can force it either way, and
7
+ * a project file may have turned it off. Writing the user file and saying
8
+ * "done" would then be false the next time namzu starts, so the message
9
+ * names the file that wins. The running session follows the operator's
10
+ * choice either way.
11
+ */
12
+ import { type LoadConfigOptions } from '../../config/load.js';
13
+ type CascadeOptions = Pick<LoadConfigOptions, 'cwd' | 'env' | 'home' | 'profile' | 'managedPath'>;
14
+ export declare function setComposerTriggers(on: boolean, opts?: CascadeOptions): string;
15
+ /** `/config triggers list`: what is in force, one line per setting. */
16
+ export declare function describeComposerTriggers(enabledNow: boolean, opts?: CascadeOptions): string;
17
+ export {};
18
+ //# sourceMappingURL=setting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setting.d.ts","sourceRoot":"","sources":["../../../src/tui/triggers/setting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAE,KAAK,iBAAiB,EAA4B,MAAM,sBAAsB,CAAA;AAGvF,KAAK,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC,CAAA;AAEjG,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,GAAE,cAAmB,GAAG,MAAM,CAwBlF;AAED,uEAAuE;AACvE,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,GAAE,cAAmB,GAAG,MAAM,CAc/F"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * `/config triggers on|off|list`: write `composerTriggers.enabled` to the user
3
+ * config, then read the whole cascade back and say whether the value holds.
4
+ *
5
+ * A project file cannot switch the feature on over the user file (it can
6
+ * only turn things down), but the managed file can force it either way, and
7
+ * a project file may have turned it off. Writing the user file and saying
8
+ * "done" would then be false the next time namzu starts, so the message
9
+ * names the file that wins. The running session follows the operator's
10
+ * choice either way.
11
+ */
12
+ import { COMPOSER_TRIGGER_IDS, resolveComposerTriggers } from '../../config/composer-triggers.js';
13
+ import { formatConfigSource } from '../../config/debug.js';
14
+ import { loadConfigWithProvenance } from '../../config/load.js';
15
+ import { setUserConfigValue } from '../../config/user-config.js';
16
+ export function setComposerTriggers(on, opts = {}) {
17
+ let file;
18
+ try {
19
+ file = setUserConfigValue(['composerTriggers', 'enabled'], on, {
20
+ ...(opts.home ? { home: opts.home } : {}),
21
+ ...(opts.env ? { env: opts.env } : {}),
22
+ });
23
+ }
24
+ catch (error) {
25
+ return `Could not save composerTriggers.enabled: ${error instanceof Error ? error.message : String(error)} This session ${on ? 'reads' : 'ignores'} composer triggers until it ends.`;
26
+ }
27
+ const saved = on
28
+ ? `Composer triggers are on: hypermode and save-as-skill words in a message act for that message, shown before you send it (alt+w drops one). Saved composerTriggers.enabled: true to ${file}.`
29
+ : `Composer triggers are off: words in a message are only words. Saved composerTriggers.enabled: false to ${file}; /config triggers on turns them back on. /hypermode and /skills save still work.`;
30
+ let resolved;
31
+ try {
32
+ resolved = loadConfigWithProvenance(opts);
33
+ }
34
+ catch (error) {
35
+ return `${saved} Could not check the other config files (${error instanceof Error ? error.message : String(error)}); this session follows your choice.`;
36
+ }
37
+ const effective = resolveComposerTriggers(resolved.config.composerTriggers).enabled;
38
+ if (effective === on)
39
+ return saved;
40
+ const source = resolved.provenance.composerTriggers;
41
+ const winner = source ? formatConfigSource(source) : 'another config layer';
42
+ return `${saved} But ${winner} turns them ${effective ? 'on' : 'off'}, so from the next start they will be ${effective ? 'on' : 'off'}; this session follows your choice.`;
43
+ }
44
+ /** `/config triggers list`: what is in force, one line per setting. */
45
+ export function describeComposerTriggers(enabledNow, opts = {}) {
46
+ let config;
47
+ try {
48
+ config = loadConfigWithProvenance(opts).config.composerTriggers;
49
+ }
50
+ catch (error) {
51
+ return `Could not read the config files: ${error instanceof Error ? error.message : String(error)}`;
52
+ }
53
+ const settings = resolveComposerTriggers(config);
54
+ return [
55
+ `Composer triggers: ${enabledNow ? 'on' : 'off'} in this session${enabledNow === settings.enabled ? '' : ` (the config files say ${settings.enabled ? 'on' : 'off'})`}.`,
56
+ `Suggestions: ${settings.suggest ? 'on' : 'off'} · languages: ${settings.languages.join(', ')}`,
57
+ ...COMPOSER_TRIGGER_IDS.map((id) => ` ${id}: ${settings.arming[id]}`),
58
+ 'Change them under composerTriggers in ~/.namzu/config.yaml; /config triggers on|off switches all of them.',
59
+ ].join('\n');
60
+ }
61
+ //# sourceMappingURL=setting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setting.js","sourceRoot":"","sources":["../../../src/tui/triggers/setting.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The Turkish verb forms a composer-trigger phrase accepts, as data.
3
+ *
4
+ * Not a morphological analyser: for each verb the table lists the spellings
5
+ * that are positive requests — the imperative, its plural and formal forms,
6
+ * the "let's" form, "would you" (`kaydeder misin`, also written joined:
7
+ * `kaydedermisin`), "could you" (`kaydedebilir misin`), and the familiar
8
+ * `kaydetsene`. Negative forms (`kaydetme`, `kaydetmeyin`, `kaydetmeden`,
9
+ * `kaydetmesin`) are never generated, so a phrase cannot match one: negation
10
+ * is rejected by construction. Everything is stored folded (`fold.ts`), so
11
+ * `mısın` is `misin` and `dönüştür` is `donustur`.
12
+ *
13
+ * A form is a sequence of tokens: `kaydeder misin` is two.
14
+ */
15
+ export interface VerbForm {
16
+ /** Folded tokens, e.g. `['kaydeder', 'misin']`. */
17
+ readonly tokens: readonly string[];
18
+ /** A polite question (`… misin?`): a request even in a clause ending with `?`. */
19
+ readonly polite: boolean;
20
+ /** The "let's" form, a request when followed by the question particle `mi`. */
21
+ readonly optative: boolean;
22
+ }
23
+ /** The verbs a phrase may name as `{verb}`, by their folded imperative. */
24
+ export declare const VERB_NAMES: readonly string[];
25
+ /** Every accepted form of `verb` (folded imperative), or throws for a verb the table does not have. */
26
+ export declare function verbForms(verb: string): readonly VerbForm[];
27
+ /** The question particles that may follow a form directly (`kaydedelim mi`). */
28
+ export declare const QUESTION_PARTICLES: ReadonlySet<string>;
29
+ //# sourceMappingURL=verbs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verbs.d.ts","sourceRoot":"","sources":["../../../src/tui/triggers/verbs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,MAAM,WAAW,QAAQ;IACxB,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAC1B;AAuGD,2EAA2E;AAC3E,eAAO,MAAM,UAAU,EAAE,SAAS,MAAM,EAAiC,CAAA;AAoCzE,uGAAuG;AACvG,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,QAAQ,EAAE,CAI3D;AAED,gFAAgF;AAChF,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAyB,CAAA"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * The Turkish verb forms a composer-trigger phrase accepts, as data.
3
+ *
4
+ * Not a morphological analyser: for each verb the table lists the spellings
5
+ * that are positive requests — the imperative, its plural and formal forms,
6
+ * the "let's" form, "would you" (`kaydeder misin`, also written joined:
7
+ * `kaydedermisin`), "could you" (`kaydedebilir misin`), and the familiar
8
+ * `kaydetsene`. Negative forms (`kaydetme`, `kaydetmeyin`, `kaydetmeden`,
9
+ * `kaydetmesin`) are never generated, so a phrase cannot match one: negation
10
+ * is rejected by construction. Everything is stored folded (`fold.ts`), so
11
+ * `mısın` is `misin` and `dönüştür` is `donustur`.
12
+ *
13
+ * A form is a sequence of tokens: `kaydeder misin` is two.
14
+ */
15
+ import { fold } from './fold.js';
16
+ const SPECS = {
17
+ kaydet: {
18
+ imperative: 'kaydet',
19
+ plural: ['kaydedin', 'kaydediniz'],
20
+ optative: 'kaydedelim',
21
+ aorist: 'kaydeder',
22
+ particle: 'misin',
23
+ abilitative: 'kaydedebilir',
24
+ familiar: 'kaydetsene',
25
+ },
26
+ çevir: {
27
+ imperative: 'çevir',
28
+ plural: ['çevirin', 'çeviriniz'],
29
+ optative: 'çevirelim',
30
+ aorist: 'çevirir',
31
+ particle: 'misin',
32
+ abilitative: 'çevirebilir',
33
+ familiar: 'çevirsene',
34
+ },
35
+ dönüştür: {
36
+ imperative: 'dönüştür',
37
+ plural: ['dönüştürün', 'dönüştürünüz'],
38
+ optative: 'dönüştürelim',
39
+ aorist: 'dönüştürür',
40
+ particle: 'müsün',
41
+ abilitative: 'dönüştürebilir',
42
+ familiar: 'dönüştürsene',
43
+ },
44
+ yap: {
45
+ imperative: 'yap',
46
+ plural: ['yapın', 'yapınız'],
47
+ optative: 'yapalım',
48
+ aorist: 'yapar',
49
+ particle: 'mısın',
50
+ abilitative: 'yapabilir',
51
+ familiar: 'yapsana',
52
+ },
53
+ oluştur: {
54
+ imperative: 'oluştur',
55
+ plural: ['oluşturun', 'oluşturunuz'],
56
+ optative: 'oluşturalım',
57
+ aorist: 'oluşturur',
58
+ particle: 'musun',
59
+ abilitative: 'oluşturabilir',
60
+ familiar: 'oluştursana',
61
+ },
62
+ çalıştır: {
63
+ imperative: 'çalıştır',
64
+ plural: ['çalıştırın', 'çalıştırınız'],
65
+ optative: 'çalıştıralım',
66
+ aorist: 'çalıştırır',
67
+ particle: 'mısın',
68
+ abilitative: 'çalıştırabilir',
69
+ familiar: 'çalıştırsana',
70
+ },
71
+ dağıt: {
72
+ imperative: 'dağıt',
73
+ plural: ['dağıtın', 'dağıtınız'],
74
+ optative: 'dağıtalım',
75
+ aorist: 'dağıtır',
76
+ particle: 'mısın',
77
+ abilitative: 'dağıtabilir',
78
+ familiar: 'dağıtsana',
79
+ },
80
+ düşün: {
81
+ imperative: 'düşün',
82
+ plural: ['düşünün', 'düşününüz'],
83
+ optative: 'düşünelim',
84
+ aorist: 'düşünür',
85
+ particle: 'müsün',
86
+ abilitative: 'düşünebilir',
87
+ familiar: 'düşünsene',
88
+ },
89
+ ekle: {
90
+ imperative: 'ekle',
91
+ plural: ['ekleyin', 'ekleyiniz'],
92
+ optative: 'ekleyelim',
93
+ aorist: 'ekler',
94
+ particle: 'misin',
95
+ abilitative: 'ekleyebilir',
96
+ familiar: 'eklesene',
97
+ },
98
+ };
99
+ /** The verbs a phrase may name as `{verb}`, by their folded imperative. */
100
+ export const VERB_NAMES = Object.keys(SPECS).map(fold);
101
+ const FORMS = new Map();
102
+ for (const spec of Object.values(SPECS))
103
+ FORMS.set(fold(spec.imperative), formsOf(spec));
104
+ function formsOf(spec) {
105
+ const plain = (text, flags = {}) => ({
106
+ tokens: fold(text).split(' '),
107
+ polite: flags.polite ?? false,
108
+ optative: flags.optative ?? false,
109
+ });
110
+ const plural = fold(spec.particle) === 'musun' ? 'musunuz' : 'misiniz';
111
+ // `-sene`/`-sana` and their plural `-senize`/`-sanıza`; `-sen` is the
112
+ // softer "would you".
113
+ const familiarPlural = spec.familiar.endsWith('a')
114
+ ? `${spec.familiar.slice(0, -1)}ıza`
115
+ : `${spec.familiar.slice(0, -1)}ize`;
116
+ return [
117
+ plain(spec.imperative),
118
+ ...spec.plural.map((form) => plain(form)),
119
+ plain(spec.optative, { optative: true }),
120
+ plain(`${spec.aorist} ${spec.particle}`, { polite: true }),
121
+ plain(`${spec.aorist} ${plural}`, { polite: true }),
122
+ plain(`${spec.aorist}${spec.particle}`, { polite: true }),
123
+ plain(`${spec.abilitative} misin`, { polite: true }),
124
+ plain(`${spec.abilitative} misiniz`, { polite: true }),
125
+ plain(`${spec.abilitative}misin`, { polite: true }),
126
+ plain(spec.familiar),
127
+ plain(familiarPlural),
128
+ plain(spec.familiar.slice(0, -1)),
129
+ ];
130
+ }
131
+ /** Every accepted form of `verb` (folded imperative), or throws for a verb the table does not have. */
132
+ export function verbForms(verb) {
133
+ const forms = FORMS.get(fold(verb));
134
+ if (!forms)
135
+ throw new Error(`No verb table entry for "${verb}".`);
136
+ return forms;
137
+ }
138
+ /** The question particles that may follow a form directly (`kaydedelim mi`). */
139
+ export const QUESTION_PARTICLES = new Set(['mi', 'mu']);
140
+ //# sourceMappingURL=verbs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verbs.js","sourceRoot":"","sources":["../../../src/tui/triggers/verbs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"turn-interruption.d.ts","sourceRoot":"","sources":["../../src/tui/turn-interruption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,yBAAyB,EAAE,KAAK,UAAU,EAAgB,MAAM,YAAY,CAAA;AAI1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAG5C,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;CAAE,CAAC,CAAA;AAE5E;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE,UAAU,GAAG,SAAS,EAC9B,MAAM,CAAC,EAAE,yBAAyB,GAChC,MAAM,GAAG,SAAS,CAuCpB;AAQD,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CAKpE;AAyBD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CA0BpE;AAgBD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAA;AAEV;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,MAAM,EACd,GAAG,GAAE,IAAiB,EACtB,EAAE,GAAE,MAAuB,GACzB,MAAM,CAOR"}
1
+ {"version":3,"file":"turn-interruption.d.ts","sourceRoot":"","sources":["../../src/tui/turn-interruption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,yBAAyB,EAAE,KAAK,UAAU,EAAgB,MAAM,YAAY,CAAA;AAI1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAG5C,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;CAAE,CAAC,CAAA;AAE5E;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE,UAAU,GAAG,SAAS,EAC9B,MAAM,CAAC,EAAE,yBAAyB,GAChC,MAAM,GAAG,SAAS,CAuCpB;AAQD,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CAKpE;AAyBD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CA8BpE;AAgBD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAA;AAEV;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,MAAM,EACd,GAAG,GAAE,IAAiB,EACtB,EAAE,GAAE,MAAuB,GACzB,MAAM,CAOR"}
@@ -96,6 +96,10 @@ export function describeTurnInterruption(event) {
96
96
  const lead = line(explained?.message || rawReason);
97
97
  const id = explained?.id ? ` [${line(explained.id, 120)}]` : '';
98
98
  const rows = [`${event.kind === 'paused' ? 'Turn paused' : 'Error'}${id}: ${lead}`];
99
+ const providerId = event.providerError?.providerId ?? event.failure?.details?.providerId;
100
+ if (typeof providerId === 'string' && providerId.trim()) {
101
+ rows.push(`Provider: ${line(providerId, 120)}`);
102
+ }
99
103
  const providerDetail = event.providerError?.detail;
100
104
  if (providerDetail && materiallyDifferent(providerDetail, [lead, rawReason])) {
101
105
  rows.push(`Provider detail: ${line(providerDetail)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"turn-interruption.js","sourceRoot":"","sources":["../../src/tui/turn-interruption.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn-interruption.js","sourceRoot":"","sources":["../../src/tui/turn-interruption.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import type { AuthorizationRule } from '@namzu/sdk';
7
7
  import type { ConfigDebugSnapshot } from '../config/debug.js';
8
- import type { BrowserConfig, CompactionCliConfig, HooksConfig, MemoryCliConfig, PluginConfig, SandboxConfig, SkillsConfig, TuiConfig, TurnLimitsConfig, WebConfig } from '../config/schema.js';
8
+ import type { BrowserConfig, CompactionCliConfig, ComposerTriggersConfig, HooksConfig, MemoryCliConfig, PluginConfig, SandboxConfig, SkillsConfig, TuiConfig, TurnLimitsConfig, WebConfig } from '../config/schema.js';
9
9
  import type { ToolResultScreenConfig } from '../config/tool-result-screens.js';
10
10
  import type { McpServersConfig } from '../integrations/mcp/servers.js';
11
11
  import type { ResolvedLogging } from '../logging.js';
@@ -96,6 +96,8 @@ export interface TuiContext {
96
96
  readonly plugins?: PluginConfig;
97
97
  /** See `NamzuCliConfig.skills`. */
98
98
  readonly skills?: SkillsConfig;
99
+ /** See `NamzuCliConfig.composerTriggers`. Only the interactive terminal reads it. */
100
+ readonly composerTriggers?: ComposerTriggersConfig;
99
101
  /** See `NamzuCliConfig.web`. */
100
102
  readonly web?: WebConfig;
101
103
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tui/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tui/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@namzu/cli",
3
- "version": "30.0.0",
3
+ "version": "33.0.0",
4
4
  "description": "Interactive and headless terminal agent for Namzu, with provider discovery, durable sessions, tools and diagnostics.",
5
5
  "keywords": [
6
6
  "namzu",
@@ -42,22 +42,23 @@
42
42
  "CHANGELOG.md"
43
43
  ],
44
44
  "dependencies": {
45
+ "@modelcontextprotocol/client": "^2.1.0",
45
46
  "commander": "^14.0.3",
46
47
  "ink": "7.0.3",
47
48
  "react": "19.2.6",
48
49
  "string-width": "8.2.1",
49
50
  "yaml": "^2.9.0",
50
- "@namzu/anthropic": "6.2.0",
51
- "@namzu/browser": "0.1.0",
52
- "@namzu/computer-use": "2.0.0",
53
- "@namzu/deepseek": "^2.0.0",
54
- "@namzu/files": "1.1.1",
55
- "@namzu/ollama": "2.2.4",
56
- "@namzu/openai": "4.1.1",
57
- "@namzu/openrouter": "3.0.1",
58
- "@namzu/sdk": "^46.0.0",
59
- "@namzu/google": "^1.1.0",
60
- "@namzu/zen": "^2.5.0"
51
+ "@namzu/browser": "1.0.0",
52
+ "@namzu/computer-use": "3.0.0",
53
+ "@namzu/deepseek": "^2.0.2",
54
+ "@namzu/files": "1.1.2",
55
+ "@namzu/anthropic": "6.2.2",
56
+ "@namzu/ollama": "2.2.5",
57
+ "@namzu/openai": "4.1.3",
58
+ "@namzu/openrouter": "3.0.3",
59
+ "@namzu/sdk": "^48.1.0",
60
+ "@namzu/google": "^1.1.1",
61
+ "@namzu/zen": "^2.5.2"
61
62
  },
62
63
  "devDependencies": {
63
64
  "@biomejs/biome": "^1.9.4",