@armadra/agent 0.5.1 → 0.6.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 (467) hide show
  1. package/CHANGELOG.md +177 -304
  2. package/CHANGELOG.zh-CN.md +442 -0
  3. package/README.md +408 -364
  4. package/README.zh-CN.md +705 -0
  5. package/dist/agent/session-plan.js +2 -2
  6. package/dist/agent/session-state.d.ts +3 -0
  7. package/dist/agent/session-state.js +20 -0
  8. package/dist/agent/session-subagent.d.ts +15 -1
  9. package/dist/agent/session-subagent.js +26 -3
  10. package/dist/agent/session-telemetry.d.ts +16 -2
  11. package/dist/agent/session-telemetry.js +29 -7
  12. package/dist/agent/session-tools.js +5 -2
  13. package/dist/agent/session-trace-writer.d.ts +27 -0
  14. package/dist/agent/session-trace-writer.js +253 -0
  15. package/dist/agent/session.d.ts +2 -0
  16. package/dist/agent/session.js +12 -0
  17. package/dist/agent/subagent-direct.d.ts +20 -0
  18. package/dist/agent/subagent-direct.js +76 -0
  19. package/dist/agent/subagent-registry.d.ts +8 -1
  20. package/dist/agent/subagent-registry.js +28 -1
  21. package/dist/agent/system-prompt.d.ts +3 -1
  22. package/dist/agent/system-prompt.js +3 -0
  23. package/dist/agent/tool-runner.d.ts +2 -1
  24. package/dist/agent/tool-runner.js +5 -4
  25. package/dist/agent/types-w6.d.ts +39 -0
  26. package/dist/agent/types-w6.js +4 -0
  27. package/dist/agent/types.d.ts +5 -2
  28. package/dist/agents/external.js +1 -1
  29. package/dist/agents/task-record.d.ts +74 -1
  30. package/dist/agents/task-record.js +100 -0
  31. package/dist/ai/apis/cache-params.js +2 -1
  32. package/dist/ai/apis/chatgpt-backend.d.ts +52 -0
  33. package/dist/ai/apis/chatgpt-backend.js +224 -0
  34. package/dist/ai/apis/chatgpt-rate-limits.d.ts +26 -0
  35. package/dist/ai/apis/chatgpt-rate-limits.js +91 -0
  36. package/dist/ai/apis/openai-responses-request.d.ts +2 -1
  37. package/dist/ai/apis/openai-responses-request.js +8 -2
  38. package/dist/ai/apis/openai-responses.d.ts +2 -0
  39. package/dist/ai/apis/openai-responses.js +51 -16
  40. package/dist/ai/overflow.d.ts +1 -1
  41. package/dist/ai/overflow.js +10 -7
  42. package/dist/ai/providers/auth.d.ts +15 -2
  43. package/dist/ai/providers/auth.js +69 -2
  44. package/dist/ai/providers/builtin.js +27 -0
  45. package/dist/ai/providers/catalog-data.js +1 -0
  46. package/dist/ai/providers/enrich.js +2 -7
  47. package/dist/ai/providers/models-dev-cache.js +15 -19
  48. package/dist/ai/providers/models-dev-snapshot.js +8 -7
  49. package/dist/ai/providers/models-dev.js +5 -15
  50. package/dist/ai/providers/suggest.js +2 -16
  51. package/dist/ai/types.d.ts +27 -1
  52. package/dist/auth/chatgpt/backend-client.d.ts +26 -0
  53. package/dist/auth/chatgpt/backend-client.js +74 -0
  54. package/dist/auth/chatgpt/claims.d.ts +17 -0
  55. package/dist/auth/chatgpt/claims.js +46 -0
  56. package/dist/auth/chatgpt/cli.d.ts +33 -0
  57. package/dist/auth/chatgpt/cli.js +252 -0
  58. package/dist/auth/chatgpt/doctor.d.ts +17 -0
  59. package/dist/auth/chatgpt/doctor.js +36 -0
  60. package/dist/auth/chatgpt/host-id.d.ts +7 -0
  61. package/dist/auth/chatgpt/host-id.js +26 -0
  62. package/dist/auth/chatgpt/login.d.ts +30 -0
  63. package/dist/auth/chatgpt/login.js +130 -0
  64. package/dist/auth/chatgpt/presets.d.ts +66 -0
  65. package/dist/auth/chatgpt/presets.js +120 -0
  66. package/dist/auth/chatgpt/quota-text.d.ts +13 -0
  67. package/dist/auth/chatgpt/quota-text.js +36 -0
  68. package/dist/auth/oauth/browser.d.ts +12 -0
  69. package/dist/auth/oauth/browser.js +27 -0
  70. package/dist/auth/oauth/callback-server.d.ts +47 -0
  71. package/dist/auth/oauth/callback-server.js +147 -0
  72. package/dist/auth/oauth/flows.d.ts +62 -0
  73. package/dist/auth/oauth/flows.js +113 -0
  74. package/dist/auth/oauth/jwt.d.ts +24 -0
  75. package/dist/auth/oauth/jwt.js +81 -0
  76. package/dist/auth/oauth/live.d.ts +21 -0
  77. package/dist/auth/oauth/live.js +25 -0
  78. package/dist/auth/oauth/oidc.d.ts +26 -0
  79. package/dist/auth/oauth/oidc.js +72 -0
  80. package/dist/auth/oauth/pkce.d.ts +15 -0
  81. package/dist/auth/oauth/pkce.js +20 -0
  82. package/dist/auth/oauth/refresh.d.ts +35 -0
  83. package/dist/auth/oauth/refresh.js +129 -0
  84. package/dist/auth/oauth/token-client.d.ts +33 -0
  85. package/dist/auth/oauth/token-client.js +121 -0
  86. package/dist/auth/oauth/token-store.d.ts +23 -0
  87. package/dist/auth/oauth/token-store.js +125 -0
  88. package/dist/auth/testing/fake-oauth.d.ts +73 -0
  89. package/dist/auth/testing/fake-oauth.js +271 -0
  90. package/dist/auth/testing/refresh-child.d.ts +5 -0
  91. package/dist/auth/testing/refresh-child.js +16 -0
  92. package/dist/bundle/ama.cjs +25928 -11144
  93. package/dist/checkpoints/backend.js +6 -5
  94. package/dist/checkpoints/restore.js +3 -2
  95. package/dist/checkpoints/settings.js +2 -1
  96. package/dist/checkpoints/shadow-git.js +7 -6
  97. package/dist/checkpoints/shadow-restore.js +3 -2
  98. package/dist/checkpoints/tracker.js +4 -3
  99. package/dist/cli/args.d.ts +9 -2
  100. package/dist/cli/args.js +74 -27
  101. package/dist/cli/bootstrap.js +53 -31
  102. package/dist/cli/choice-prompt.js +8 -6
  103. package/dist/cli/codemode-notice.js +2 -2
  104. package/dist/cli/compose-agents.js +2 -1
  105. package/dist/cli/compose-extensions.js +2 -0
  106. package/dist/cli/compose-memory.d.ts +53 -0
  107. package/dist/cli/compose-memory.js +127 -0
  108. package/dist/cli/compose-providers.d.ts +5 -0
  109. package/dist/cli/compose-providers.js +32 -2
  110. package/dist/cli/compose-session.d.ts +5 -0
  111. package/dist/cli/compose-session.js +27 -13
  112. package/dist/cli/compose-store.d.ts +2 -0
  113. package/dist/cli/compose-store.js +9 -5
  114. package/dist/cli/compose.d.ts +2 -0
  115. package/dist/cli/compose.js +13 -5
  116. package/dist/cli/default-model.d.ts +0 -2
  117. package/dist/cli/default-model.js +5 -8
  118. package/dist/cli/deps.d.ts +5 -1
  119. package/dist/cli/exit-codes.d.ts +1 -1
  120. package/dist/cli/exit-codes.js +7 -16
  121. package/dist/cli/from-prompt.js +3 -2
  122. package/dist/cli/help-text.d.ts +2 -1
  123. package/dist/cli/help-text.js +5 -99
  124. package/dist/cli/main.d.ts +5 -0
  125. package/dist/cli/main.js +21 -2
  126. package/dist/cli/proxy.js +14 -9
  127. package/dist/cli/runtime.d.ts +5 -0
  128. package/dist/cli/startup-screen.js +20 -27
  129. package/dist/cli/startup-steps.js +6 -8
  130. package/dist/cli/subcommands/auth.d.ts +6 -3
  131. package/dist/cli/subcommands/auth.js +52 -22
  132. package/dist/cli/subcommands/config-set.d.ts +21 -0
  133. package/dist/cli/subcommands/config-set.js +137 -0
  134. package/dist/cli/subcommands/config.d.ts +2 -1
  135. package/dist/cli/subcommands/config.js +51 -37
  136. package/dist/cli/subcommands/doctor.d.ts +2 -1
  137. package/dist/cli/subcommands/doctor.js +97 -58
  138. package/dist/cli/subcommands/init.d.ts +1 -1
  139. package/dist/cli/subcommands/init.js +8 -7
  140. package/dist/cli/subcommands/memory.d.ts +18 -0
  141. package/dist/cli/subcommands/memory.js +189 -0
  142. package/dist/cli/subcommands/model-meta.js +11 -9
  143. package/dist/cli/subcommands/models-cache-probe.js +23 -20
  144. package/dist/cli/subcommands/models-discover.d.ts +3 -0
  145. package/dist/cli/subcommands/models-discover.js +44 -21
  146. package/dist/cli/subcommands/models.d.ts +1 -1
  147. package/dist/cli/subcommands/models.js +29 -22
  148. package/dist/cli/subcommands/probe-runner.js +8 -7
  149. package/dist/cli/subcommands/providers-list.js +32 -21
  150. package/dist/cli/subcommands/providers-plan.js +24 -25
  151. package/dist/cli/subcommands/providers-probe.js +5 -6
  152. package/dist/cli/subcommands/providers.d.ts +1 -1
  153. package/dist/cli/subcommands/providers.js +45 -50
  154. package/dist/cli/subcommands/sessions-export.d.ts +1 -1
  155. package/dist/cli/subcommands/sessions-export.js +10 -9
  156. package/dist/cli/subcommands/sessions-search.d.ts +1 -1
  157. package/dist/cli/subcommands/sessions-search.js +11 -10
  158. package/dist/cli/subcommands/sessions-trace.d.ts +30 -0
  159. package/dist/cli/subcommands/sessions-trace.js +156 -0
  160. package/dist/cli/subcommands/sessions.d.ts +4 -3
  161. package/dist/cli/subcommands/sessions.js +40 -37
  162. package/dist/cli/subcommands/stats.d.ts +1 -1
  163. package/dist/cli/subcommands/stats.js +49 -30
  164. package/dist/cli/system-prompt-arg.js +3 -2
  165. package/dist/codemode/capability.js +3 -2
  166. package/dist/compaction/post-compact.d.ts +1 -0
  167. package/dist/compaction/post-compact.js +15 -1
  168. package/dist/compaction/prune-tier.d.ts +1 -1
  169. package/dist/compaction/prune-tier.js +3 -3
  170. package/dist/compaction/serialize.js +2 -1
  171. package/dist/config/auth-file.d.ts +12 -2
  172. package/dist/config/auth-file.js +32 -10
  173. package/dist/config/checker.js +12 -11
  174. package/dist/config/context-files.js +3 -2
  175. package/dist/config/edit.d.ts +106 -0
  176. package/dist/config/edit.js +350 -0
  177. package/dist/config/init.d.ts +4 -3
  178. package/dist/config/init.js +10 -18
  179. package/dist/config/json-schema.d.ts +2 -1
  180. package/dist/config/json-schema.js +101 -68
  181. package/dist/config/key-docs.d.ts +18 -7
  182. package/dist/config/key-docs.js +43 -128
  183. package/dist/config/load.js +7 -6
  184. package/dist/config/merge.d.ts +4 -1
  185. package/dist/config/merge.js +42 -22
  186. package/dist/config/paths.js +6 -5
  187. package/dist/config/profile.d.ts +5 -1
  188. package/dist/config/profile.js +7 -2
  189. package/dist/config/schema-w5.js +3 -2
  190. package/dist/config/schema-w6.d.ts +19 -0
  191. package/dist/config/schema-w6.js +115 -0
  192. package/dist/config/schema.js +34 -20
  193. package/dist/config/settings-registry.d.ts +78 -0
  194. package/dist/config/settings-registry.js +184 -0
  195. package/dist/config/types-w6.d.ts +109 -0
  196. package/dist/config/types-w6.js +19 -0
  197. package/dist/config/types.d.ts +11 -8
  198. package/dist/config/types.js +1 -0
  199. package/dist/drivers/acp/client.js +1 -1
  200. package/dist/drivers/acp/driver.js +13 -8
  201. package/dist/drivers/agents.js +4 -3
  202. package/dist/drivers/base.js +3 -2
  203. package/dist/drivers/host-runners.js +2 -1
  204. package/dist/drivers/native/claude-stream.js +12 -11
  205. package/dist/drivers/native/codex-app-server.js +17 -12
  206. package/dist/drivers/native/oneshot.js +8 -7
  207. package/dist/drivers/pool.js +1 -1
  208. package/dist/drivers/runner.d.ts +3 -1
  209. package/dist/drivers/runner.js +68 -20
  210. package/dist/drivers/turn.js +1 -1
  211. package/dist/hooks/config.js +3 -2
  212. package/dist/hooks/protocol.js +18 -12
  213. package/dist/host/api-impl.js +11 -10
  214. package/dist/host/loader.js +9 -8
  215. package/dist/host/types.d.ts +3 -0
  216. package/dist/i18n/catalog.d.ts +2169 -0
  217. package/dist/i18n/catalog.js +72 -0
  218. package/dist/i18n/format.d.ts +21 -0
  219. package/dist/i18n/format.js +58 -0
  220. package/dist/i18n/index.d.ts +58 -0
  221. package/dist/i18n/index.js +72 -0
  222. package/dist/i18n/messages/agents.d.ts +84 -0
  223. package/dist/i18n/messages/agents.js +85 -0
  224. package/dist/i18n/messages/approval.d.ts +99 -0
  225. package/dist/i18n/messages/approval.js +100 -0
  226. package/dist/i18n/messages/auth.d.ts +187 -0
  227. package/dist/i18n/messages/auth.js +189 -0
  228. package/dist/i18n/messages/cli-args.d.ts +46 -0
  229. package/dist/i18n/messages/cli-args.js +46 -0
  230. package/dist/i18n/messages/cli-help.d.ts +12 -0
  231. package/dist/i18n/messages/cli-help.js +244 -0
  232. package/dist/i18n/messages/cli.d.ts +336 -0
  233. package/dist/i18n/messages/cli.js +311 -0
  234. package/dist/i18n/messages/config-keys.d.ts +289 -0
  235. package/dist/i18n/messages/config-keys.js +292 -0
  236. package/dist/i18n/messages/config.d.ts +502 -0
  237. package/dist/i18n/messages/config.js +239 -0
  238. package/dist/i18n/messages/drivers.d.ts +123 -0
  239. package/dist/i18n/messages/drivers.js +124 -0
  240. package/dist/i18n/messages/errors.d.ts +83 -0
  241. package/dist/i18n/messages/errors.js +171 -0
  242. package/dist/i18n/messages/interactive-line.d.ts +61 -0
  243. package/dist/i18n/messages/interactive-line.js +69 -0
  244. package/dist/i18n/messages/interactive-startup.d.ts +103 -0
  245. package/dist/i18n/messages/interactive-startup.js +104 -0
  246. package/dist/i18n/messages/interactive-view.d.ts +140 -0
  247. package/dist/i18n/messages/interactive-view.js +141 -0
  248. package/dist/i18n/messages/interactive.d.ts +493 -0
  249. package/dist/i18n/messages/interactive.js +248 -0
  250. package/dist/i18n/messages/memory.d.ts +123 -0
  251. package/dist/i18n/messages/memory.js +128 -0
  252. package/dist/i18n/messages/panels.d.ts +190 -0
  253. package/dist/i18n/messages/panels.js +189 -0
  254. package/dist/i18n/messages/permissions.d.ts +126 -0
  255. package/dist/i18n/messages/permissions.js +151 -0
  256. package/dist/i18n/messages/plan.d.ts +123 -0
  257. package/dist/i18n/messages/plan.js +124 -0
  258. package/dist/i18n/messages/print.d.ts +86 -0
  259. package/dist/i18n/messages/print.js +91 -0
  260. package/dist/i18n/messages/report.d.ts +391 -0
  261. package/dist/i18n/messages/report.js +490 -0
  262. package/dist/i18n/messages/rewind.d.ts +198 -0
  263. package/dist/i18n/messages/rewind.js +217 -0
  264. package/dist/i18n/messages/session.d.ts +230 -0
  265. package/dist/i18n/messages/session.js +258 -0
  266. package/dist/i18n/messages/settings.d.ts +348 -0
  267. package/dist/i18n/messages/settings.js +336 -0
  268. package/dist/i18n/messages/subcommands-config.d.ts +111 -0
  269. package/dist/i18n/messages/subcommands-config.js +127 -0
  270. package/dist/i18n/messages/subcommands.d.ts +548 -0
  271. package/dist/i18n/messages/subcommands.js +474 -0
  272. package/dist/i18n/messages/trace.d.ts +243 -0
  273. package/dist/i18n/messages/trace.js +238 -0
  274. package/dist/i18n/types.d.ts +15 -0
  275. package/dist/i18n/types.js +7 -0
  276. package/dist/index.d.ts +6 -0
  277. package/dist/index.js +2 -0
  278. package/dist/memory/edit.d.ts +24 -0
  279. package/dist/memory/edit.js +63 -0
  280. package/dist/memory/frontmatter.d.ts +37 -0
  281. package/dist/memory/frontmatter.js +79 -0
  282. package/dist/memory/index.d.ts +28 -0
  283. package/dist/memory/index.js +126 -0
  284. package/dist/memory/lock.d.ts +17 -0
  285. package/dist/memory/lock.js +62 -0
  286. package/dist/memory/paths.d.ts +57 -0
  287. package/dist/memory/paths.js +175 -0
  288. package/dist/memory/report.d.ts +36 -0
  289. package/dist/memory/report.js +86 -0
  290. package/dist/memory/runtime.d.ts +42 -0
  291. package/dist/memory/runtime.js +36 -0
  292. package/dist/memory/secrets.d.ts +8 -0
  293. package/dist/memory/secrets.js +27 -0
  294. package/dist/memory/section.d.ts +28 -0
  295. package/dist/memory/section.js +59 -0
  296. package/dist/memory/store.d.ts +70 -0
  297. package/dist/memory/store.js +284 -0
  298. package/dist/memory/tool.d.ts +31 -0
  299. package/dist/memory/tool.js +94 -0
  300. package/dist/modes/acp/acp-events.js +2 -1
  301. package/dist/modes/acp/acp-server.js +13 -12
  302. package/dist/modes/commands-core.d.ts +11 -0
  303. package/dist/modes/commands-core.js +93 -62
  304. package/dist/modes/image-input.js +20 -6
  305. package/dist/modes/interactive/agent-bar.d.ts +95 -0
  306. package/dist/modes/interactive/agent-bar.js +248 -0
  307. package/dist/modes/interactive/agent-panels.js +27 -26
  308. package/dist/modes/interactive/agent-transcript.d.ts +47 -0
  309. package/dist/modes/interactive/agent-transcript.js +191 -0
  310. package/dist/modes/interactive/agent-ui.d.ts +36 -1
  311. package/dist/modes/interactive/agent-ui.js +180 -14
  312. package/dist/modes/interactive/agent-view.d.ts +72 -0
  313. package/dist/modes/interactive/agent-view.js +281 -0
  314. package/dist/modes/interactive/approval-dialog.js +46 -34
  315. package/dist/modes/interactive/clipboard-paste.d.ts +2 -2
  316. package/dist/modes/interactive/clipboard-paste.js +9 -4
  317. package/dist/modes/interactive/commands.d.ts +19 -1
  318. package/dist/modes/interactive/commands.js +84 -40
  319. package/dist/modes/interactive/completion.js +2 -1
  320. package/dist/modes/interactive/config-panel.d.ts +70 -0
  321. package/dist/modes/interactive/config-panel.js +319 -0
  322. package/dist/modes/interactive/config-ui.d.ts +96 -0
  323. package/dist/modes/interactive/config-ui.js +397 -0
  324. package/dist/modes/interactive/confirm-dialog.js +6 -7
  325. package/dist/modes/interactive/event-notices.js +11 -9
  326. package/dist/modes/interactive/interactive-mode.d.ts +1 -1
  327. package/dist/modes/interactive/interactive-mode.js +19 -22
  328. package/dist/modes/interactive/key-dispatch.d.ts +12 -0
  329. package/dist/modes/interactive/key-dispatch.js +24 -9
  330. package/dist/modes/interactive/line/line-editor.js +2 -1
  331. package/dist/modes/interactive/line/line-mode.js +18 -7
  332. package/dist/modes/interactive/line/line-render.js +25 -24
  333. package/dist/modes/interactive/memory-panel.d.ts +64 -0
  334. package/dist/modes/interactive/memory-panel.js +221 -0
  335. package/dist/modes/interactive/message-view.d.ts +4 -2
  336. package/dist/modes/interactive/message-view.js +42 -33
  337. package/dist/modes/interactive/panels.js +39 -31
  338. package/dist/modes/interactive/pickers.d.ts +2 -1
  339. package/dist/modes/interactive/pickers.js +10 -6
  340. package/dist/modes/interactive/plan-command.d.ts +1 -1
  341. package/dist/modes/interactive/plan-command.js +24 -27
  342. package/dist/modes/interactive/plan-dialog.js +18 -17
  343. package/dist/modes/interactive/plan-flow.js +6 -5
  344. package/dist/modes/interactive/rewind-command.d.ts +1 -1
  345. package/dist/modes/interactive/rewind-command.js +18 -16
  346. package/dist/modes/interactive/rewind-flow.d.ts +0 -1
  347. package/dist/modes/interactive/rewind-flow.js +13 -14
  348. package/dist/modes/interactive/rewind-list.js +7 -6
  349. package/dist/modes/interactive/rewind-panel.js +40 -40
  350. package/dist/modes/interactive/rewind-text.d.ts +5 -3
  351. package/dist/modes/interactive/rewind-text.js +48 -38
  352. package/dist/modes/interactive/run-indicator.js +15 -12
  353. package/dist/modes/interactive/session-events.js +3 -2
  354. package/dist/modes/interactive/startup-header.js +22 -23
  355. package/dist/modes/interactive/startup-ui.js +38 -30
  356. package/dist/modes/interactive/status-area.d.ts +2 -0
  357. package/dist/modes/interactive/status-area.js +8 -2
  358. package/dist/modes/interactive/status-bar.js +4 -3
  359. package/dist/modes/interactive/subagent-view.js +9 -7
  360. package/dist/modes/interactive/tasks-report.d.ts +6 -0
  361. package/dist/modes/interactive/tasks-report.js +28 -31
  362. package/dist/modes/interactive/terminal-setup.d.ts +9 -0
  363. package/dist/modes/interactive/terminal-setup.js +23 -0
  364. package/dist/modes/interactive/tool-summary.js +19 -17
  365. package/dist/modes/interactive/tool-view.js +7 -4
  366. package/dist/modes/interactive/trace-view.d.ts +89 -0
  367. package/dist/modes/interactive/trace-view.js +332 -0
  368. package/dist/modes/print/print-mode.js +14 -15
  369. package/dist/modes/rpc/commands.js +7 -3
  370. package/dist/modes/rpc/rpc-mode.js +9 -3
  371. package/dist/modes/session-report.d.ts +2 -0
  372. package/dist/modes/session-report.js +101 -105
  373. package/dist/modes/startup-ui-text.js +11 -6
  374. package/dist/permissions/bypass.d.ts +8 -10
  375. package/dist/permissions/bypass.js +19 -10
  376. package/dist/permissions/memory-class.d.ts +23 -0
  377. package/dist/permissions/memory-class.js +54 -0
  378. package/dist/permissions/modes.d.ts +3 -3
  379. package/dist/permissions/modes.js +21 -16
  380. package/dist/permissions/pipeline.d.ts +1 -1
  381. package/dist/permissions/pipeline.js +9 -2
  382. package/dist/permissions/preview.js +49 -42
  383. package/dist/permissions/rules.js +5 -2
  384. package/dist/permissions/types.d.ts +4 -0
  385. package/dist/plan/store.js +2 -1
  386. package/dist/rpc.d.ts +39 -1
  387. package/dist/rpc.js +3 -0
  388. package/dist/sandbox/bash.js +11 -8
  389. package/dist/sandbox/detect.js +14 -11
  390. package/dist/sdk.d.ts +17 -1
  391. package/dist/sdk.js +29 -7
  392. package/dist/session/export.js +31 -30
  393. package/dist/session/manager.d.ts +1 -1
  394. package/dist/session/manager.js +5 -3
  395. package/dist/session/reuse.js +5 -4
  396. package/dist/session/scan.js +3 -2
  397. package/dist/session/stats-aggregate.d.ts +3 -1
  398. package/dist/session/stats-aggregate.js +5 -1
  399. package/dist/session/stats-index.js +2 -1
  400. package/dist/session/stats-scan.d.ts +4 -1
  401. package/dist/session/stats-scan.js +6 -2
  402. package/dist/session/store.d.ts +11 -0
  403. package/dist/session/store.js +48 -1
  404. package/dist/session/types.d.ts +2 -0
  405. package/dist/skills/builtin.js +2 -1
  406. package/dist/tools/image-file.d.ts +26 -1
  407. package/dist/tools/image-file.js +55 -13
  408. package/dist/tools/presets.d.ts +14 -1
  409. package/dist/tools/presets.js +3 -3
  410. package/dist/tools/registry.js +1 -1
  411. package/dist/tools/truncate.d.ts +1 -1
  412. package/dist/tools/truncate.js +2 -2
  413. package/dist/tools/types.d.ts +17 -1
  414. package/dist/trace/build-index.d.ts +91 -0
  415. package/dist/trace/build-index.js +127 -0
  416. package/dist/trace/build-nodes.d.ts +24 -0
  417. package/dist/trace/build-nodes.js +279 -0
  418. package/dist/trace/build-util.d.ts +43 -0
  419. package/dist/trace/build-util.js +120 -0
  420. package/dist/trace/build.d.ts +82 -0
  421. package/dist/trace/build.js +382 -0
  422. package/dist/trace/detail.d.ts +35 -0
  423. package/dist/trace/detail.js +205 -0
  424. package/dist/trace/flatten.d.ts +69 -0
  425. package/dist/trace/flatten.js +173 -0
  426. package/dist/trace/format.d.ts +47 -0
  427. package/dist/trace/format.js +329 -0
  428. package/dist/trace/html-template.d.ts +19 -0
  429. package/dist/trace/html-template.js +150 -0
  430. package/dist/trace/html.d.ts +104 -0
  431. package/dist/trace/html.js +292 -0
  432. package/dist/trace/preview.d.ts +29 -0
  433. package/dist/trace/preview.js +59 -0
  434. package/dist/trace/query-session.d.ts +14 -0
  435. package/dist/trace/query-session.js +38 -0
  436. package/dist/trace/query.d.ts +55 -0
  437. package/dist/trace/query.js +188 -0
  438. package/dist/trace/session.d.ts +40 -0
  439. package/dist/trace/session.js +168 -0
  440. package/dist/trace/types.d.ts +243 -0
  441. package/dist/trace/types.js +13 -0
  442. package/dist/tui/components/editor-paste.d.ts +2 -0
  443. package/dist/tui/components/editor-paste.js +6 -3
  444. package/dist/tui/components/editor.js +2 -2
  445. package/dist/tui/components/loader.d.ts +3 -0
  446. package/dist/tui/components/loader.js +14 -0
  447. package/dist/tui/components/settings-list.d.ts +61 -0
  448. package/dist/tui/components/settings-list.js +135 -0
  449. package/dist/tui/keybindings.d.ts +5 -0
  450. package/dist/tui/keybindings.js +17 -5
  451. package/dist/tui.d.ts +1 -0
  452. package/dist/tui.js +2 -0
  453. package/docs/en/host-api.md +167 -0
  454. package/docs/en/permissions.md +214 -0
  455. package/docs/en/providers.md +625 -0
  456. package/docs/en/rpc.md +361 -0
  457. package/docs/en/sessions.md +219 -0
  458. package/docs/en/tui.md +527 -0
  459. package/docs/host-api.md +18 -17
  460. package/docs/memory.md +172 -0
  461. package/docs/permissions.md +2 -2
  462. package/docs/providers.md +67 -1
  463. package/docs/rpc.md +31 -3
  464. package/docs/session-format.md +8 -2
  465. package/docs/sessions.md +29 -1
  466. package/docs/tui.md +132 -3
  467. package/package.json +8 -3
@@ -0,0 +1,248 @@
1
+ /**
2
+ * 消息目录:interactive(键名规范见 docs/i18n.md)。[W6-C0 建空壳,归 W6-I2]
3
+ *
4
+ * en 是形状源;zh 用 `satisfies Messages<typeof en>`,缺键 / 多键 / 参数不符在 tsc 期报错。
5
+ * 整句一个键、禁止片段拼接;插值写成函数,条件分支写进函数体。
6
+ *
7
+ * 单文件 600 行上限:消息区与工具块在 `interactive-view.ts`(`view`),启动头与启动期交互在
8
+ * `interactive-startup.ts`(`startup`),行式界面在 `interactive-line.ts`(`line`)。
9
+ */
10
+ import { plural } from "../format.js";
11
+ import * as line from "./interactive-line.js";
12
+ import * as startup from "./interactive-startup.js";
13
+ import * as view from "./interactive-view.js";
14
+ export const en = {
15
+ commands: {
16
+ /** [W6-C0] 第六波命令登记了但本构建还没有实现。 */
17
+ unavailable: (name) => `/${name} is not available in this build yet`,
18
+ treeDescription: "Browse the session tree and rewrite from before a message",
19
+ permissionsDescription: "Permission mode, decision order and rules",
20
+ keyHints: [
21
+ "Enter send (while running = steer) Alt+Enter queue after this turn Shift+Enter / Ctrl+J newline",
22
+ "Esc interrupt (queued messages go back to the editor) Alt+↑ take back the last queued message",
23
+ "Idle Esc Esc: empty input = rewind (/rewind), with text = clear (↑ to restore)",
24
+ "Shift+Tab / Tab (empty input) cycle permission mode (confirm before Bypass) Ctrl+L model Ctrl+T thinking level Ctrl+O expand tool output and thinking",
25
+ "Approval: 1–3 or ↑↓ Enter to choose, y allow a allow for this session n / Esc deny v full input",
26
+ "Plan approval: 1 approve 2 run in a fresh context 3 keep revising 4 reject and leave Plan e edit plan Esc stay in Plan",
27
+ "Ctrl+V paste a clipboard image (inserts @path) Ctrl+G footer two rows / one row",
28
+ "Ctrl+C clear input (again to quit) Ctrl+D quit on empty input Tab complete @ reference a file",
29
+ ].join("\n"),
30
+ permissionsMode: (label, mode) => `Permission mode: ${label} (${mode})`,
31
+ permissionsOrder: (order) => `Order: ${order}`,
32
+ rulesNone: "Rules: (none)",
33
+ rules: (n) => `Rules (${n}):`,
34
+ recentAuto: (n) => `Recent auto decisions (${n}):`,
35
+ noUserMessages: "No user messages yet",
36
+ treeUnsupported: "This session does not support /tree",
37
+ treeBusy: "Can't switch branches while running (press Esc to interrupt first)",
38
+ treeTitle: "Session tree",
39
+ modelTitle: "Choose a model",
40
+ modelSet: (ref) => `Model: ${ref}`,
41
+ noOtherSessions: "No other sessions in this directory",
42
+ resumeTitle: "Resume a session",
43
+ resumed: (id) => `Resumed session ${id}`,
44
+ forkTitle: "Fork before which message",
45
+ forked: (id) => `Forked to new session ${id}`,
46
+ modeCancelled: (label) => `Cancelled; permission mode is still ${label}`,
47
+ modeSet: (label) => `Permission mode: ${label}`,
48
+ thinkingTitle: "Thinking level",
49
+ numberFooter: (arrows, n) => `${arrows} select · 1-${n} pick · Enter confirm · Esc cancel`,
50
+ },
51
+ paste: {
52
+ /** 编辑器里大粘贴的折叠标记(`tui/components/editor-paste.ts`;识别正则同时认两种语言)。 */
53
+ marker: (id, lines) => `[paste #${id} · ${plural(lines, "line")}]`,
54
+ },
55
+ /** 按键分派的一行提示(`key-dispatch.ts`)。 */
56
+ keys: {
57
+ escRewind: "Press Esc again to rewind",
58
+ escClear: "Press Esc again to clear",
59
+ cleared: "Input cleared · ↑ to restore",
60
+ bypassSkipped: (label) => `Bypass not entered · ${label}`,
61
+ clearedCtrlC: "Input cleared · press Ctrl+C again to quit",
62
+ ctrlCAgain: "Press Ctrl+C again to quit",
63
+ interrupted: "Interrupted",
64
+ toolsExpanded: "Tool output: expanded",
65
+ toolsCollapsed: "Tool output: collapsed",
66
+ },
67
+ /** 交互模式装配(`interactive-mode.ts`)。 */
68
+ app: {
69
+ placeholder: "Type a message, / for commands, @ for files, Shift+Enter for newline",
70
+ notTty: "stdin / stdout is not a terminal",
71
+ keybindingsWarning: (warning) => `keybindings.json: ${warning}`,
72
+ noResult: "(no result)",
73
+ followed: (text) => `${text} (with the previous confirmation)`,
74
+ terminalInitFailed: (error) => `Terminal initialization failed: ${error}`,
75
+ },
76
+ clipboard: {
77
+ noTool: "Can't read clipboard images: no system command available (macOS osascript / pngpaste, Linux wl-paste / xclip, Windows PowerShell)",
78
+ noImage: "No image in the clipboard",
79
+ failed: (error) => `Failed to read the clipboard: ${error}`,
80
+ reading: "Reading clipboard…",
81
+ inserted: "Inserted clipboard image",
82
+ },
83
+ completion: {
84
+ promptTemplate: "prompt template",
85
+ },
86
+ /** 会话事件的提示(`event-notices.ts`、`session-events.ts`;line 模式共用)。 */
87
+ events: {
88
+ compactionNoShrink: "Compaction did not shrink the context; kept the original conversation (no summary)",
89
+ imagesOmitted: (n) => `Omitted ${plural(n, "earlier image")} to stay within the request limit`,
90
+ limitTurns: (limit) => `Reached the turn limit (${plural(limit, "turn")}); this run stopped. Send a new message to continue (--max-turns / limits.maxTurns)`,
91
+ limitCost: (limit, spent) => `Reached the cost limit ${limit} (this run used ${spent}); this run stopped. Send a new message to continue (--max-cost / limits.maxCostUsd)`,
92
+ modelFallback: (from, reason, to) => `${from} unavailable (${reason}); this request uses ${to} and switches back after the reply`,
93
+ backgroundStarted: (jobId, command) => `Background command ${jobId} started: ${command}`,
94
+ backgroundExited: (jobId, code, command) => `Background command ${jobId} exited (code ${code}): ${command}`,
95
+ backgroundStopped: (jobId, command) => `Background command ${jobId} stopped: ${command}`,
96
+ compactionFailed: (error) => `Compaction failed: ${error}`,
97
+ compactionCancelled: "Compaction cancelled",
98
+ },
99
+ statusLine: {
100
+ usage: "Usage: /statusline [full|compact]",
101
+ full: "Status line: full (two rows)",
102
+ compact: "Status line: compact (one row)",
103
+ cacheSilent: "n/a",
104
+ sandbox: "sandbox",
105
+ cycleHint: "shift+tab to cycle",
106
+ },
107
+ subagent: {
108
+ running: (elapsed) => `running ${elapsed}`,
109
+ backgroundEnd: (taskId, agent, status, turns) => `Background task ${taskId} (${agent}) ${status}${turns > 0 ? ` · ${plural(turns, "turn")}` : ""} · /tasks to view output`,
110
+ notificationTurns: (turns) => `${turns} ${turns === "1" ? "turn" : "turns"}`,
111
+ viewOutput: "/tasks to view output",
112
+ },
113
+ agentUi: {
114
+ tasksTitle: "Subagent tasks",
115
+ tasksFooter: (arrows) => `${arrows} select · Enter view · Esc cancel`,
116
+ viewOutput: "View output so far",
117
+ stop: "Stop task",
118
+ stopped: (taskId) => `Stopped ${taskId}`,
119
+ },
120
+ keybindings: {
121
+ notObject: "keybindings must be an object",
122
+ unknownAction: (action) => `unknown action: ${action}`,
123
+ badKeys: (action) => `${action}: keys must be a string or an array of strings`,
124
+ readFailed: (path, error) => `failed to read ${path}: ${error}`,
125
+ badJson: (path, error) => `${path} is not valid JSON: ${error}`,
126
+ },
127
+ editor: {
128
+ completionFooter: "Tab accept · Esc close",
129
+ },
130
+ view: view.en,
131
+ startup: startup.en,
132
+ line: line.en,
133
+ };
134
+ export const zh = {
135
+ commands: {
136
+ unavailable: (name) => `/${name} 当前版本尚未提供`,
137
+ treeDescription: "浏览会话树,回到某条消息之前重写",
138
+ permissionsDescription: "权限模式、判定顺序与规则",
139
+ keyHints: [
140
+ "Enter 发送(运行中 = 插话) Alt+Enter 排到本轮之后 Shift+Enter / Ctrl+J 换行",
141
+ "Esc 中断(排队消息回填编辑器) Alt+↑ 取回最后一条排队消息",
142
+ "空闲时 Esc Esc:输入框为空 = 回滚(/rewind),有字 = 清空(↑ 取回)",
143
+ "Shift+Tab / Tab(输入为空时)切换权限模式(进入 Bypass 前确认) Ctrl+L 模型 Ctrl+T 思考级别 Ctrl+O 展开工具输出与思考",
144
+ "审批:1–3 或 ↑↓ Enter 选择,y 允许 a 本会话允许同类 n / Esc 拒绝 v 完整输入",
145
+ "计划审批:1 批准 2 新上下文执行 3 继续修改 4 放弃并退出 Plan e 编辑计划 Esc 留在 Plan",
146
+ "Ctrl+V 粘贴剪贴板图片(插入 @路径) Ctrl+G 底部信息行两行 / 一行",
147
+ "Ctrl+C 清空输入(再按退出) Ctrl+D 空输入时退出 Tab 补全 @ 引用文件",
148
+ ].join("\n"),
149
+ permissionsMode: (label, mode) => `权限模式:${label}(${mode})`,
150
+ permissionsOrder: (order) => `判定顺序:${order}`,
151
+ rulesNone: "规则:(无)",
152
+ rules: (n) => `规则(${n}):`,
153
+ recentAuto: (n) => `最近的 auto 判定(${n}):`,
154
+ noUserMessages: "还没有用户消息",
155
+ treeUnsupported: "当前会话不支持 /tree",
156
+ treeBusy: "运行中不能切换分支(先 Esc 中断)",
157
+ treeTitle: "会话树",
158
+ modelTitle: "选择模型",
159
+ modelSet: (ref) => `模型:${ref}`,
160
+ noOtherSessions: "本目录没有其它会话",
161
+ resumeTitle: "恢复会话",
162
+ resumed: (id) => `已恢复会话 ${id}`,
163
+ forkTitle: "从哪条消息之前分叉",
164
+ forked: (id) => `已分叉到新会话 ${id}`,
165
+ modeCancelled: (label) => `已取消,权限模式仍为 ${label}`,
166
+ modeSet: (label) => `权限模式:${label}`,
167
+ thinkingTitle: "思考级别",
168
+ numberFooter: (arrows, n) => `${arrows} 选择 · 1-${n} 直接选 · Enter 确认 · Esc 取消`,
169
+ },
170
+ paste: {
171
+ marker: (id, lines) => `[粘贴 #${id} · ${lines} 行]`,
172
+ },
173
+ keys: {
174
+ escRewind: "再按 Esc 回滚",
175
+ escClear: "再按 Esc 清空",
176
+ cleared: "已清空输入 · ↑ 取回",
177
+ bypassSkipped: (label) => `未进入 Bypass · ${label}`,
178
+ clearedCtrlC: "已清空输入 · 再按 Ctrl+C 退出",
179
+ ctrlCAgain: "再按一次 Ctrl+C 退出",
180
+ interrupted: "已中断",
181
+ toolsExpanded: "工具输出:展开",
182
+ toolsCollapsed: "工具输出:折叠",
183
+ },
184
+ app: {
185
+ placeholder: "输入消息,/ 命令,@ 文件,Shift+Enter 换行",
186
+ notTty: "stdin / stdout 不是终端",
187
+ keybindingsWarning: (warning) => `keybindings.json:${warning}`,
188
+ noResult: "(没有结果)",
189
+ followed: (text) => `${text}(随上一次确认)`,
190
+ terminalInitFailed: (error) => `终端初始化失败:${error}`,
191
+ },
192
+ clipboard: {
193
+ noTool: "读不了剪贴板图片:没有可用的系统命令(macOS osascript / pngpaste,Linux wl-paste / xclip,Windows PowerShell)",
194
+ noImage: "剪贴板里没有图片",
195
+ failed: (error) => `读取剪贴板失败:${error}`,
196
+ reading: "读取剪贴板…",
197
+ inserted: "已插入剪贴板图片",
198
+ },
199
+ completion: {
200
+ promptTemplate: "提示模板",
201
+ },
202
+ events: {
203
+ compactionNoShrink: "压缩后上下文没有变小,已保留原对话(不写摘要)",
204
+ imagesOmitted: (n) => `已省略 ${n} 张早期图片以符合请求上限`,
205
+ limitTurns: (limit) => `已到回合上限(${limit} 回合),本次运行停止;发新消息继续(--max-turns / limits.maxTurns)`,
206
+ limitCost: (limit, spent) => `已到费用上限 ${limit}(本次运行已用 ${spent}),本次运行停止;发新消息继续(--max-cost / limits.maxCostUsd)`,
207
+ modelFallback: (from, reason, to) => `${from} 不可用(${reason}),本次请求改用 ${to},回复后切回`,
208
+ backgroundStarted: (jobId, command) => `后台命令 ${jobId} 已启动:${command}`,
209
+ backgroundExited: (jobId, code, command) => `后台命令 ${jobId} 已退出(码 ${code}):${command}`,
210
+ backgroundStopped: (jobId, command) => `后台命令 ${jobId} 已停止:${command}`,
211
+ compactionFailed: (error) => `压缩失败:${error}`,
212
+ compactionCancelled: "压缩已取消",
213
+ },
214
+ statusLine: {
215
+ usage: "用法:/statusline [full|compact]",
216
+ full: "状态栏:完整(两行)",
217
+ compact: "状态栏:精简(一行)",
218
+ cacheSilent: "未报告",
219
+ sandbox: "沙箱",
220
+ cycleHint: "shift+tab 切换",
221
+ },
222
+ subagent: {
223
+ running: (elapsed) => `运行中 ${elapsed}`,
224
+ backgroundEnd: (taskId, agent, status, turns) => `后台任务 ${taskId}(${agent})${status}${turns > 0 ? ` · ${turns} 轮` : ""} · /tasks 查看输出`,
225
+ notificationTurns: (turns) => `${turns} 轮`,
226
+ viewOutput: "/tasks 查看输出",
227
+ },
228
+ agentUi: {
229
+ tasksTitle: "子 Agent 任务",
230
+ tasksFooter: (arrows) => `${arrows} 选择 · Enter 查看 · Esc 取消`,
231
+ viewOutput: "查看已有输出",
232
+ stop: "停止任务",
233
+ stopped: (taskId) => `已停止 ${taskId}`,
234
+ },
235
+ keybindings: {
236
+ notObject: "keybindings 必须是对象",
237
+ unknownAction: (action) => `未知动作:${action}`,
238
+ badKeys: (action) => `${action}:键必须是字符串或字符串数组`,
239
+ readFailed: (path, error) => `读取 ${path} 失败:${error}`,
240
+ badJson: (path, error) => `${path} 不是合法 JSON:${error}`,
241
+ },
242
+ editor: {
243
+ completionFooter: "Tab 接受 · Esc 关闭",
244
+ },
245
+ view: view.zh,
246
+ startup: startup.zh,
247
+ line: line.zh,
248
+ };
@@ -0,0 +1,123 @@
1
+ /**
2
+ * 消息目录:memory(键名规范见 docs/i18n.md)。[W6-M]
3
+ *
4
+ * en 是形状源;zh 用 `satisfies Messages<typeof en>`,缺键 / 多键 / 参数不符在 tsc 期报错。
5
+ * 整句一个键、禁止片段拼接;插值写成函数,条件分支写进函数体。
6
+ * 只给人看(`/memory`、`ama memory`、启动提示);工具结果与系统节固定英文(memory/tool.ts、section.ts)。
7
+ */
8
+ export declare const en: {
9
+ scope: {
10
+ user: string;
11
+ project: string;
12
+ workspace: string;
13
+ };
14
+ panel: {
15
+ title: string;
16
+ off: string;
17
+ on: string;
18
+ disabled: string;
19
+ noEntries: string;
20
+ scopeLine: (scope: string, count: number, index: string, limit: string) => string;
21
+ entryUpdated: (date: string) => string;
22
+ stale: string;
23
+ truncated: (omitted: number) => string;
24
+ untrusted: string;
25
+ writesOff: string;
26
+ hint: string;
27
+ };
28
+ command: {
29
+ usage: string;
30
+ notFound: (name: string) => string;
31
+ ambiguous: (name: string, matches: string) => string;
32
+ deleted: (path: string) => string;
33
+ saved: (path: string) => string;
34
+ unchanged: string;
35
+ editCancelled: string;
36
+ writesOn: string;
37
+ writesOff: string;
38
+ reloaded: string;
39
+ reloadUnchanged: string;
40
+ confirmTitle: string;
41
+ confirmDelete: string;
42
+ confirmCancel: string;
43
+ lineNoEditor: string;
44
+ lineNeedsYes: (name: string) => string;
45
+ newEntryName: (scope: string) => string;
46
+ };
47
+ error: {
48
+ credential: (kind: string) => string;
49
+ tooLarge: (bytes: number, limit: number) => string;
50
+ tooMany: (limit: number) => string;
51
+ locked: string;
52
+ other: (message: string) => string;
53
+ };
54
+ cli: {
55
+ usage: string;
56
+ unknownScope: (scope: string) => string;
57
+ needName: (sub: string) => string;
58
+ confirmRemove: (path: string) => string;
59
+ needsYes: string;
60
+ enabled: (file: string) => string;
61
+ disabled: (file: string) => string;
62
+ disabledNote: string;
63
+ untrusted: (cwd: string) => string;
64
+ };
65
+ };
66
+ export declare const zh: {
67
+ scope: {
68
+ user: string;
69
+ project: string;
70
+ workspace: string;
71
+ };
72
+ panel: {
73
+ title: string;
74
+ off: string;
75
+ on: string;
76
+ disabled: string;
77
+ noEntries: string;
78
+ scopeLine: (scope: string, count: number, index: string, limit: string) => string;
79
+ entryUpdated: (date: string) => string;
80
+ stale: string;
81
+ truncated: (omitted: number) => string;
82
+ untrusted: string;
83
+ writesOff: string;
84
+ hint: string;
85
+ };
86
+ command: {
87
+ usage: string;
88
+ notFound: (name: string) => string;
89
+ ambiguous: (name: string, matches: string) => string;
90
+ deleted: (path: string) => string;
91
+ saved: (path: string) => string;
92
+ unchanged: string;
93
+ editCancelled: string;
94
+ writesOn: string;
95
+ writesOff: string;
96
+ reloaded: string;
97
+ reloadUnchanged: string;
98
+ confirmTitle: string;
99
+ confirmDelete: string;
100
+ confirmCancel: string;
101
+ lineNoEditor: string;
102
+ lineNeedsYes: (name: string) => string;
103
+ newEntryName: (scope: string) => string;
104
+ };
105
+ error: {
106
+ credential: (kind: string) => string;
107
+ tooLarge: (bytes: number, limit: number) => string;
108
+ tooMany: (limit: number) => string;
109
+ locked: string;
110
+ other: (message: string) => string;
111
+ };
112
+ cli: {
113
+ usage: string;
114
+ unknownScope: (scope: string) => string;
115
+ needName: (sub: string) => string;
116
+ confirmRemove: (path: string) => string;
117
+ needsYes: string;
118
+ enabled: (file: string) => string;
119
+ disabled: (file: string) => string;
120
+ disabledNote: string;
121
+ untrusted: (cwd: string) => string;
122
+ };
123
+ };
@@ -0,0 +1,128 @@
1
+ /**
2
+ * 消息目录:memory(键名规范见 docs/i18n.md)。[W6-M]
3
+ *
4
+ * en 是形状源;zh 用 `satisfies Messages<typeof en>`,缺键 / 多键 / 参数不符在 tsc 期报错。
5
+ * 整句一个键、禁止片段拼接;插值写成函数,条件分支写进函数体。
6
+ * 只给人看(`/memory`、`ama memory`、启动提示);工具结果与系统节固定英文(memory/tool.ts、section.ts)。
7
+ */
8
+ import { plural } from "../format.js";
9
+ export const en = {
10
+ scope: { user: "user", project: "project", workspace: "workspace" },
11
+ panel: {
12
+ title: "Memory",
13
+ off: "off",
14
+ on: "on",
15
+ disabled: "Memory is off. Turn it on with `ama memory enable`, or `--memory` for one run.",
16
+ noEntries: "(no entries)",
17
+ scopeLine: (scope, count, index, limit) => `${scope} · ${plural(count, "entry", "entries")} · index ${index} / ${limit}`,
18
+ entryUpdated: (date) => `updated ${date}`,
19
+ stale: "older than 90 days; verify before relying on it",
20
+ truncated: (omitted) => `index over the limit: ${plural(omitted, "entry", "entries")} left out of the system prompt`,
21
+ untrusted: "Project memory not loaded: this project is not trusted (start with --trust).",
22
+ writesOff: "Writes are off for this session (/memory on to allow).",
23
+ hint: "/memory show|edit|rm <name> · on|off · reload",
24
+ },
25
+ command: {
26
+ usage: "Usage: /memory [show|edit|rm <name> | edit <scope> | on|off | reload]",
27
+ notFound: (name) => `No memory entry named ${name}`,
28
+ ambiguous: (name, matches) => `${name} matches several entries: ${matches}. Use scope/file to pick one.`,
29
+ deleted: (path) => `Deleted ${path}; it leaves the index from the next session.`,
30
+ saved: (path) => `Saved ${path}; it appears in the index from the next session.`,
31
+ unchanged: "No changes.",
32
+ editCancelled: "The editor exited without saving; nothing changed.",
33
+ writesOn: "Memory writes allowed for this session (each write still asks for approval).",
34
+ writesOff: "Memory writes turned off for this session.",
35
+ reloaded: "Memory index reloaded. The next request updates the memory section, which breaks the prompt cache once.",
36
+ reloadUnchanged: "Memory index unchanged.",
37
+ confirmTitle: "Delete memory entry?",
38
+ confirmDelete: "Delete",
39
+ confirmCancel: "Cancel",
40
+ lineNoEditor: "The line interface cannot open an editor; use `ama memory edit`.",
41
+ lineNeedsYes: (name) => `To delete, add --yes: /memory rm ${name} --yes`,
42
+ newEntryName: (scope) => `new-${scope}-note`,
43
+ },
44
+ error: {
45
+ credential: (kind) => `Looks like a credential (${kind}); not saved.`,
46
+ tooLarge: (bytes, limit) => `Entry is ${bytes} bytes; the limit is ${limit}. Keep entries short.`,
47
+ tooMany: (limit) => `This scope already has ${limit} entries; delete one first.`,
48
+ locked: "Memory is locked by another ama process; try again.",
49
+ other: (message) => `Memory: ${message}`,
50
+ },
51
+ cli: {
52
+ usage: `Usage: ama memory list [--scope user|project|all] [--json]
53
+ ama memory show <name>
54
+ ama memory edit [<name> | --scope user|project]
55
+ ama memory rm <name> [--yes]
56
+ ama memory path [--scope user|project|all]
57
+ ama memory enable | disable
58
+ `,
59
+ unknownScope: (scope) => `Unknown scope ${scope} (user | project | all)`,
60
+ needName: (sub) => `ama memory ${sub} needs a name`,
61
+ confirmRemove: (path) => `Delete ${path}? `,
62
+ needsYes: "Not a terminal: add --yes to delete.",
63
+ enabled: (file) => `Memory enabled in ${file}; it applies from the next session.`,
64
+ disabled: (file) => `Memory disabled in ${file}.`,
65
+ disabledNote: "(memory.enabled is false; entries are kept but not used)",
66
+ untrusted: (cwd) => `Project scope skipped: ${cwd} is not trusted (run ama --trust there once).`,
67
+ },
68
+ };
69
+ export const zh = {
70
+ scope: { user: "用户", project: "项目", workspace: "工作空间" },
71
+ panel: {
72
+ title: "记忆",
73
+ off: "未开启",
74
+ on: "已开启",
75
+ disabled: "记忆未开启:`ama memory enable` 打开,或本次加 `--memory`。",
76
+ noEntries: "(无条目)",
77
+ scopeLine: (scope, count, index, limit) => `${scope} · ${count} 条 · 索引 ${index} / ${limit}`,
78
+ entryUpdated: (date) => `更新于 ${date}`,
79
+ stale: "超过 90 天未更新,使用前请核实",
80
+ truncated: (omitted) => `索引超出上限:${omitted} 条没有进系统提示`,
81
+ untrusted: "项目记忆未加载:项目未受信任(启动时加 --trust)。",
82
+ writesOff: "本会话禁止写入记忆(/memory on 恢复)。",
83
+ hint: "/memory show|edit|rm <名字> · on|off · reload",
84
+ },
85
+ command: {
86
+ usage: "用法:/memory [show|edit|rm <名字> | edit <作用域> | on|off | reload]",
87
+ notFound: (name) => `没有名为 ${name} 的记忆`,
88
+ ambiguous: (name, matches) => `${name} 匹配多条:${matches};用 作用域/文件 指定。`,
89
+ deleted: (path) => `已删除 ${path},下次会话起不再出现在索引。`,
90
+ saved: (path) => `已保存 ${path},下次会话起出现在索引。`,
91
+ unchanged: "没有改动。",
92
+ editCancelled: "编辑器未保存退出,没有改动。",
93
+ writesOn: "本会话允许写入记忆(每次写入仍需审批)。",
94
+ writesOff: "本会话禁止写入记忆。",
95
+ reloaded: "已重读记忆索引:下次请求更新 memory 节,缓存前缀会断一次。",
96
+ reloadUnchanged: "记忆索引没有变化。",
97
+ confirmTitle: "删除这条记忆?",
98
+ confirmDelete: "删除",
99
+ confirmCancel: "取消",
100
+ lineNoEditor: "行式界面不能打开编辑器:用 `ama memory edit`。",
101
+ lineNeedsYes: (name) => `确认删除请加 --yes:/memory rm ${name} --yes`,
102
+ newEntryName: (scope) => `new-${scope}-note`,
103
+ },
104
+ error: {
105
+ credential: (kind) => `看起来像凭据(${kind}),未保存。`,
106
+ tooLarge: (bytes, limit) => `条目 ${bytes} 字节,超过上限 ${limit};请写短一些。`,
107
+ tooMany: (limit) => `该作用域已有 ${limit} 条,先删掉一条。`,
108
+ locked: "记忆正被另一个 ama 进程写入,请稍后再试。",
109
+ other: (message) => `记忆:${message}`,
110
+ },
111
+ cli: {
112
+ usage: `用法:ama memory list [--scope user|project|all] [--json]
113
+ ama memory show <名字>
114
+ ama memory edit [<名字> | --scope user|project]
115
+ ama memory rm <名字> [--yes]
116
+ ama memory path [--scope user|project|all]
117
+ ama memory enable | disable
118
+ `,
119
+ unknownScope: (scope) => `未知作用域 ${scope}(user | project | all)`,
120
+ needName: (sub) => `ama memory ${sub} 需要名字`,
121
+ confirmRemove: (path) => `删除 ${path}?`,
122
+ needsYes: "不是终端:删除需加 --yes。",
123
+ enabled: (file) => `已在 ${file} 开启记忆,下次会话起生效。`,
124
+ disabled: (file) => `已在 ${file} 关闭记忆。`,
125
+ disabledNote: "(memory.enabled 为 false:条目保留但不使用)",
126
+ untrusted: (cwd) => `跳过项目作用域:${cwd} 未受信任(在该目录运行一次 ama --trust)。`,
127
+ },
128
+ };