@armadra/agent 0.5.1 → 0.6.1

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 (486) hide show
  1. package/CHANGELOG.md +203 -304
  2. package/CHANGELOG.zh-CN.md +462 -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/discovered-cache.d.ts +48 -0
  47. package/dist/ai/providers/discovered-cache.js +102 -0
  48. package/dist/ai/providers/enrich.js +2 -7
  49. package/dist/ai/providers/model-visibility.d.ts +33 -0
  50. package/dist/ai/providers/model-visibility.js +70 -0
  51. package/dist/ai/providers/models-dev-cache.js +15 -19
  52. package/dist/ai/providers/models-dev-snapshot.js +8 -7
  53. package/dist/ai/providers/models-dev.js +5 -15
  54. package/dist/ai/providers/registry.d.ts +2 -0
  55. package/dist/ai/providers/registry.js +6 -1
  56. package/dist/ai/providers/suggest.js +2 -16
  57. package/dist/ai/types.d.ts +27 -1
  58. package/dist/auth/chatgpt/backend-client.d.ts +26 -0
  59. package/dist/auth/chatgpt/backend-client.js +74 -0
  60. package/dist/auth/chatgpt/claims.d.ts +17 -0
  61. package/dist/auth/chatgpt/claims.js +46 -0
  62. package/dist/auth/chatgpt/cli.d.ts +35 -0
  63. package/dist/auth/chatgpt/cli.js +279 -0
  64. package/dist/auth/chatgpt/doctor.d.ts +17 -0
  65. package/dist/auth/chatgpt/doctor.js +36 -0
  66. package/dist/auth/chatgpt/host-id.d.ts +7 -0
  67. package/dist/auth/chatgpt/host-id.js +26 -0
  68. package/dist/auth/chatgpt/login.d.ts +30 -0
  69. package/dist/auth/chatgpt/login.js +130 -0
  70. package/dist/auth/chatgpt/presets.d.ts +66 -0
  71. package/dist/auth/chatgpt/presets.js +120 -0
  72. package/dist/auth/chatgpt/quota-text.d.ts +13 -0
  73. package/dist/auth/chatgpt/quota-text.js +36 -0
  74. package/dist/auth/oauth/browser.d.ts +12 -0
  75. package/dist/auth/oauth/browser.js +27 -0
  76. package/dist/auth/oauth/callback-server.d.ts +47 -0
  77. package/dist/auth/oauth/callback-server.js +147 -0
  78. package/dist/auth/oauth/flows.d.ts +62 -0
  79. package/dist/auth/oauth/flows.js +113 -0
  80. package/dist/auth/oauth/jwt.d.ts +24 -0
  81. package/dist/auth/oauth/jwt.js +81 -0
  82. package/dist/auth/oauth/live.d.ts +21 -0
  83. package/dist/auth/oauth/live.js +25 -0
  84. package/dist/auth/oauth/oidc.d.ts +26 -0
  85. package/dist/auth/oauth/oidc.js +72 -0
  86. package/dist/auth/oauth/pkce.d.ts +15 -0
  87. package/dist/auth/oauth/pkce.js +20 -0
  88. package/dist/auth/oauth/refresh.d.ts +35 -0
  89. package/dist/auth/oauth/refresh.js +129 -0
  90. package/dist/auth/oauth/token-client.d.ts +33 -0
  91. package/dist/auth/oauth/token-client.js +121 -0
  92. package/dist/auth/oauth/token-store.d.ts +23 -0
  93. package/dist/auth/oauth/token-store.js +125 -0
  94. package/dist/auth/testing/fake-oauth.d.ts +73 -0
  95. package/dist/auth/testing/fake-oauth.js +271 -0
  96. package/dist/auth/testing/refresh-child.d.ts +5 -0
  97. package/dist/auth/testing/refresh-child.js +16 -0
  98. package/dist/bundle/ama.cjs +26532 -11045
  99. package/dist/checkpoints/backend.js +6 -5
  100. package/dist/checkpoints/restore.js +3 -2
  101. package/dist/checkpoints/settings.js +2 -1
  102. package/dist/checkpoints/shadow-git.js +7 -6
  103. package/dist/checkpoints/shadow-restore.js +3 -2
  104. package/dist/checkpoints/tracker.js +4 -3
  105. package/dist/cli/args.d.ts +9 -2
  106. package/dist/cli/args.js +74 -27
  107. package/dist/cli/bootstrap.js +53 -31
  108. package/dist/cli/choice-prompt.js +8 -6
  109. package/dist/cli/codemode-notice.js +2 -2
  110. package/dist/cli/compose-agents.js +2 -1
  111. package/dist/cli/compose-extensions.js +2 -0
  112. package/dist/cli/compose-memory.d.ts +53 -0
  113. package/dist/cli/compose-memory.js +127 -0
  114. package/dist/cli/compose-providers.d.ts +6 -0
  115. package/dist/cli/compose-providers.js +38 -2
  116. package/dist/cli/compose-session.d.ts +5 -0
  117. package/dist/cli/compose-session.js +27 -13
  118. package/dist/cli/compose-store.d.ts +2 -0
  119. package/dist/cli/compose-store.js +9 -5
  120. package/dist/cli/compose.d.ts +2 -0
  121. package/dist/cli/compose.js +13 -5
  122. package/dist/cli/default-model.d.ts +0 -2
  123. package/dist/cli/default-model.js +5 -8
  124. package/dist/cli/deps.d.ts +5 -1
  125. package/dist/cli/exit-codes.d.ts +1 -1
  126. package/dist/cli/exit-codes.js +7 -16
  127. package/dist/cli/from-prompt.js +3 -2
  128. package/dist/cli/help-text.d.ts +2 -1
  129. package/dist/cli/help-text.js +5 -99
  130. package/dist/cli/main.d.ts +5 -0
  131. package/dist/cli/main.js +21 -2
  132. package/dist/cli/proxy.js +14 -9
  133. package/dist/cli/runtime.d.ts +5 -0
  134. package/dist/cli/startup-screen.js +20 -27
  135. package/dist/cli/startup-steps.js +6 -8
  136. package/dist/cli/subcommands/auth.d.ts +6 -3
  137. package/dist/cli/subcommands/auth.js +52 -22
  138. package/dist/cli/subcommands/config-set.d.ts +21 -0
  139. package/dist/cli/subcommands/config-set.js +145 -0
  140. package/dist/cli/subcommands/config.d.ts +2 -1
  141. package/dist/cli/subcommands/config.js +51 -37
  142. package/dist/cli/subcommands/doctor.d.ts +2 -1
  143. package/dist/cli/subcommands/doctor.js +97 -58
  144. package/dist/cli/subcommands/init.d.ts +1 -1
  145. package/dist/cli/subcommands/init.js +8 -7
  146. package/dist/cli/subcommands/memory.d.ts +18 -0
  147. package/dist/cli/subcommands/memory.js +189 -0
  148. package/dist/cli/subcommands/model-meta.js +11 -9
  149. package/dist/cli/subcommands/models-cache-probe.js +23 -20
  150. package/dist/cli/subcommands/models-discover.d.ts +4 -0
  151. package/dist/cli/subcommands/models-discover.js +60 -21
  152. package/dist/cli/subcommands/models-enable.d.ts +13 -0
  153. package/dist/cli/subcommands/models-enable.js +145 -0
  154. package/dist/cli/subcommands/models.d.ts +3 -1
  155. package/dist/cli/subcommands/models.js +39 -24
  156. package/dist/cli/subcommands/probe-runner.js +8 -7
  157. package/dist/cli/subcommands/providers-list.js +32 -21
  158. package/dist/cli/subcommands/providers-plan.js +24 -25
  159. package/dist/cli/subcommands/providers-probe.js +5 -6
  160. package/dist/cli/subcommands/providers.d.ts +1 -1
  161. package/dist/cli/subcommands/providers.js +45 -50
  162. package/dist/cli/subcommands/sessions-export.d.ts +1 -1
  163. package/dist/cli/subcommands/sessions-export.js +10 -9
  164. package/dist/cli/subcommands/sessions-search.d.ts +1 -1
  165. package/dist/cli/subcommands/sessions-search.js +11 -10
  166. package/dist/cli/subcommands/sessions-trace.d.ts +30 -0
  167. package/dist/cli/subcommands/sessions-trace.js +156 -0
  168. package/dist/cli/subcommands/sessions.d.ts +4 -3
  169. package/dist/cli/subcommands/sessions.js +40 -37
  170. package/dist/cli/subcommands/stats.d.ts +1 -1
  171. package/dist/cli/subcommands/stats.js +49 -30
  172. package/dist/cli/system-prompt-arg.js +3 -2
  173. package/dist/codemode/capability.js +3 -2
  174. package/dist/compaction/post-compact.d.ts +1 -0
  175. package/dist/compaction/post-compact.js +15 -1
  176. package/dist/compaction/prune-tier.d.ts +1 -1
  177. package/dist/compaction/prune-tier.js +3 -3
  178. package/dist/compaction/serialize.js +2 -1
  179. package/dist/config/auth-file.d.ts +12 -2
  180. package/dist/config/auth-file.js +32 -10
  181. package/dist/config/checker.js +12 -11
  182. package/dist/config/context-files.js +3 -2
  183. package/dist/config/edit.d.ts +106 -0
  184. package/dist/config/edit.js +350 -0
  185. package/dist/config/init.d.ts +4 -3
  186. package/dist/config/init.js +10 -18
  187. package/dist/config/json-schema.d.ts +2 -1
  188. package/dist/config/json-schema.js +102 -69
  189. package/dist/config/key-docs.d.ts +18 -7
  190. package/dist/config/key-docs.js +43 -128
  191. package/dist/config/load.js +7 -6
  192. package/dist/config/merge.d.ts +4 -1
  193. package/dist/config/merge.js +42 -22
  194. package/dist/config/paths.js +6 -5
  195. package/dist/config/profile.d.ts +5 -1
  196. package/dist/config/profile.js +7 -2
  197. package/dist/config/schema-w5.js +12 -4
  198. package/dist/config/schema-w6.d.ts +19 -0
  199. package/dist/config/schema-w6.js +115 -0
  200. package/dist/config/schema.js +34 -20
  201. package/dist/config/settings-registry.d.ts +81 -0
  202. package/dist/config/settings-registry.js +185 -0
  203. package/dist/config/types-w5.d.ts +7 -0
  204. package/dist/config/types-w5.js +2 -0
  205. package/dist/config/types-w6.d.ts +109 -0
  206. package/dist/config/types-w6.js +19 -0
  207. package/dist/config/types.d.ts +11 -8
  208. package/dist/config/types.js +1 -0
  209. package/dist/drivers/acp/client.js +1 -1
  210. package/dist/drivers/acp/driver.js +13 -8
  211. package/dist/drivers/agents.js +4 -3
  212. package/dist/drivers/base.js +3 -2
  213. package/dist/drivers/host-runners.js +2 -1
  214. package/dist/drivers/native/claude-stream.js +12 -11
  215. package/dist/drivers/native/codex-app-server.js +17 -12
  216. package/dist/drivers/native/oneshot.js +8 -7
  217. package/dist/drivers/pool.js +1 -1
  218. package/dist/drivers/runner.d.ts +3 -1
  219. package/dist/drivers/runner.js +68 -20
  220. package/dist/drivers/turn.js +1 -1
  221. package/dist/hooks/config.js +3 -2
  222. package/dist/hooks/protocol.js +18 -12
  223. package/dist/host/api-impl.js +11 -10
  224. package/dist/host/loader.js +9 -8
  225. package/dist/host/types.d.ts +3 -0
  226. package/dist/i18n/catalog.d.ts +2209 -0
  227. package/dist/i18n/catalog.js +72 -0
  228. package/dist/i18n/format.d.ts +21 -0
  229. package/dist/i18n/format.js +58 -0
  230. package/dist/i18n/index.d.ts +58 -0
  231. package/dist/i18n/index.js +72 -0
  232. package/dist/i18n/messages/agents.d.ts +84 -0
  233. package/dist/i18n/messages/agents.js +85 -0
  234. package/dist/i18n/messages/approval.d.ts +99 -0
  235. package/dist/i18n/messages/approval.js +100 -0
  236. package/dist/i18n/messages/auth.d.ts +189 -0
  237. package/dist/i18n/messages/auth.js +201 -0
  238. package/dist/i18n/messages/cli-args.d.ts +46 -0
  239. package/dist/i18n/messages/cli-args.js +46 -0
  240. package/dist/i18n/messages/cli-help.d.ts +12 -0
  241. package/dist/i18n/messages/cli-help.js +248 -0
  242. package/dist/i18n/messages/cli.d.ts +336 -0
  243. package/dist/i18n/messages/cli.js +311 -0
  244. package/dist/i18n/messages/config-keys.d.ts +293 -0
  245. package/dist/i18n/messages/config-keys.js +296 -0
  246. package/dist/i18n/messages/config.d.ts +508 -0
  247. package/dist/i18n/messages/config.js +241 -0
  248. package/dist/i18n/messages/drivers.d.ts +123 -0
  249. package/dist/i18n/messages/drivers.js +124 -0
  250. package/dist/i18n/messages/errors.d.ts +83 -0
  251. package/dist/i18n/messages/errors.js +171 -0
  252. package/dist/i18n/messages/interactive-line.d.ts +61 -0
  253. package/dist/i18n/messages/interactive-line.js +69 -0
  254. package/dist/i18n/messages/interactive-startup.d.ts +99 -0
  255. package/dist/i18n/messages/interactive-startup.js +100 -0
  256. package/dist/i18n/messages/interactive-view.d.ts +140 -0
  257. package/dist/i18n/messages/interactive-view.js +141 -0
  258. package/dist/i18n/messages/interactive.d.ts +489 -0
  259. package/dist/i18n/messages/interactive.js +248 -0
  260. package/dist/i18n/messages/memory.d.ts +123 -0
  261. package/dist/i18n/messages/memory.js +128 -0
  262. package/dist/i18n/messages/panels.d.ts +233 -0
  263. package/dist/i18n/messages/panels.js +232 -0
  264. package/dist/i18n/messages/permissions.d.ts +126 -0
  265. package/dist/i18n/messages/permissions.js +151 -0
  266. package/dist/i18n/messages/plan.d.ts +123 -0
  267. package/dist/i18n/messages/plan.js +124 -0
  268. package/dist/i18n/messages/print.d.ts +86 -0
  269. package/dist/i18n/messages/print.js +91 -0
  270. package/dist/i18n/messages/report.d.ts +391 -0
  271. package/dist/i18n/messages/report.js +490 -0
  272. package/dist/i18n/messages/rewind.d.ts +198 -0
  273. package/dist/i18n/messages/rewind.js +217 -0
  274. package/dist/i18n/messages/session.d.ts +230 -0
  275. package/dist/i18n/messages/session.js +258 -0
  276. package/dist/i18n/messages/settings.d.ts +355 -0
  277. package/dist/i18n/messages/settings.js +343 -0
  278. package/dist/i18n/messages/subcommands-config.d.ts +113 -0
  279. package/dist/i18n/messages/subcommands-config.js +129 -0
  280. package/dist/i18n/messages/subcommands-models.d.ts +34 -0
  281. package/dist/i18n/messages/subcommands-models.js +34 -0
  282. package/dist/i18n/messages/subcommands.d.ts +576 -0
  283. package/dist/i18n/messages/subcommands.js +477 -0
  284. package/dist/i18n/messages/trace.d.ts +243 -0
  285. package/dist/i18n/messages/trace.js +238 -0
  286. package/dist/i18n/types.d.ts +15 -0
  287. package/dist/i18n/types.js +7 -0
  288. package/dist/index.d.ts +6 -0
  289. package/dist/index.js +2 -0
  290. package/dist/memory/edit.d.ts +24 -0
  291. package/dist/memory/edit.js +63 -0
  292. package/dist/memory/frontmatter.d.ts +37 -0
  293. package/dist/memory/frontmatter.js +79 -0
  294. package/dist/memory/index.d.ts +28 -0
  295. package/dist/memory/index.js +126 -0
  296. package/dist/memory/lock.d.ts +17 -0
  297. package/dist/memory/lock.js +62 -0
  298. package/dist/memory/paths.d.ts +57 -0
  299. package/dist/memory/paths.js +175 -0
  300. package/dist/memory/report.d.ts +36 -0
  301. package/dist/memory/report.js +86 -0
  302. package/dist/memory/runtime.d.ts +42 -0
  303. package/dist/memory/runtime.js +36 -0
  304. package/dist/memory/secrets.d.ts +8 -0
  305. package/dist/memory/secrets.js +27 -0
  306. package/dist/memory/section.d.ts +28 -0
  307. package/dist/memory/section.js +59 -0
  308. package/dist/memory/store.d.ts +70 -0
  309. package/dist/memory/store.js +284 -0
  310. package/dist/memory/tool.d.ts +31 -0
  311. package/dist/memory/tool.js +94 -0
  312. package/dist/modes/acp/acp-events.js +2 -1
  313. package/dist/modes/acp/acp-server.js +13 -12
  314. package/dist/modes/commands-core.d.ts +11 -0
  315. package/dist/modes/commands-core.js +93 -62
  316. package/dist/modes/image-input.js +20 -6
  317. package/dist/modes/interactive/agent-bar.d.ts +95 -0
  318. package/dist/modes/interactive/agent-bar.js +248 -0
  319. package/dist/modes/interactive/agent-panels.js +27 -26
  320. package/dist/modes/interactive/agent-transcript.d.ts +47 -0
  321. package/dist/modes/interactive/agent-transcript.js +191 -0
  322. package/dist/modes/interactive/agent-ui.d.ts +36 -1
  323. package/dist/modes/interactive/agent-ui.js +180 -14
  324. package/dist/modes/interactive/agent-view.d.ts +72 -0
  325. package/dist/modes/interactive/agent-view.js +281 -0
  326. package/dist/modes/interactive/approval-dialog.js +46 -34
  327. package/dist/modes/interactive/clipboard-paste.d.ts +2 -2
  328. package/dist/modes/interactive/clipboard-paste.js +9 -4
  329. package/dist/modes/interactive/commands.d.ts +22 -1
  330. package/dist/modes/interactive/commands.js +100 -49
  331. package/dist/modes/interactive/completion.js +2 -1
  332. package/dist/modes/interactive/config-panel.d.ts +70 -0
  333. package/dist/modes/interactive/config-panel.js +319 -0
  334. package/dist/modes/interactive/config-ui.d.ts +96 -0
  335. package/dist/modes/interactive/config-ui.js +397 -0
  336. package/dist/modes/interactive/confirm-dialog.js +6 -7
  337. package/dist/modes/interactive/event-notices.js +11 -9
  338. package/dist/modes/interactive/interactive-mode.d.ts +1 -1
  339. package/dist/modes/interactive/interactive-mode.js +21 -22
  340. package/dist/modes/interactive/key-dispatch.d.ts +12 -0
  341. package/dist/modes/interactive/key-dispatch.js +24 -9
  342. package/dist/modes/interactive/line/line-editor.js +2 -1
  343. package/dist/modes/interactive/line/line-mode.js +18 -7
  344. package/dist/modes/interactive/line/line-render.js +25 -24
  345. package/dist/modes/interactive/memory-panel.d.ts +64 -0
  346. package/dist/modes/interactive/memory-panel.js +221 -0
  347. package/dist/modes/interactive/message-view.d.ts +4 -2
  348. package/dist/modes/interactive/message-view.js +42 -33
  349. package/dist/modes/interactive/model-items.d.ts +45 -0
  350. package/dist/modes/interactive/model-items.js +134 -0
  351. package/dist/modes/interactive/model-picker.d.ts +57 -0
  352. package/dist/modes/interactive/model-picker.js +191 -0
  353. package/dist/modes/interactive/panels.js +39 -31
  354. package/dist/modes/interactive/pickers.d.ts +2 -1
  355. package/dist/modes/interactive/pickers.js +10 -6
  356. package/dist/modes/interactive/plan-command.d.ts +1 -1
  357. package/dist/modes/interactive/plan-command.js +24 -27
  358. package/dist/modes/interactive/plan-dialog.js +18 -17
  359. package/dist/modes/interactive/plan-flow.js +6 -5
  360. package/dist/modes/interactive/rewind-command.d.ts +1 -1
  361. package/dist/modes/interactive/rewind-command.js +18 -16
  362. package/dist/modes/interactive/rewind-flow.d.ts +0 -1
  363. package/dist/modes/interactive/rewind-flow.js +13 -14
  364. package/dist/modes/interactive/rewind-list.js +7 -6
  365. package/dist/modes/interactive/rewind-panel.js +40 -40
  366. package/dist/modes/interactive/rewind-text.d.ts +5 -3
  367. package/dist/modes/interactive/rewind-text.js +48 -38
  368. package/dist/modes/interactive/run-indicator.js +15 -12
  369. package/dist/modes/interactive/session-events.js +3 -2
  370. package/dist/modes/interactive/startup-header.js +22 -23
  371. package/dist/modes/interactive/startup-ui.d.ts +3 -9
  372. package/dist/modes/interactive/startup-ui.js +44 -88
  373. package/dist/modes/interactive/status-area.d.ts +2 -0
  374. package/dist/modes/interactive/status-area.js +8 -2
  375. package/dist/modes/interactive/status-bar.js +4 -3
  376. package/dist/modes/interactive/subagent-view.js +9 -7
  377. package/dist/modes/interactive/tasks-report.d.ts +6 -0
  378. package/dist/modes/interactive/tasks-report.js +28 -31
  379. package/dist/modes/interactive/terminal-setup.d.ts +9 -0
  380. package/dist/modes/interactive/terminal-setup.js +23 -0
  381. package/dist/modes/interactive/tool-summary.js +19 -17
  382. package/dist/modes/interactive/tool-view.js +7 -4
  383. package/dist/modes/interactive/trace-view.d.ts +89 -0
  384. package/dist/modes/interactive/trace-view.js +332 -0
  385. package/dist/modes/print/print-mode.js +14 -15
  386. package/dist/modes/rpc/commands.js +7 -3
  387. package/dist/modes/rpc/rpc-mode.js +9 -3
  388. package/dist/modes/session-report.d.ts +2 -0
  389. package/dist/modes/session-report.js +101 -105
  390. package/dist/modes/startup-ui-text.js +11 -6
  391. package/dist/permissions/bypass.d.ts +8 -10
  392. package/dist/permissions/bypass.js +19 -10
  393. package/dist/permissions/memory-class.d.ts +23 -0
  394. package/dist/permissions/memory-class.js +54 -0
  395. package/dist/permissions/modes.d.ts +3 -3
  396. package/dist/permissions/modes.js +21 -16
  397. package/dist/permissions/pipeline.d.ts +1 -1
  398. package/dist/permissions/pipeline.js +9 -2
  399. package/dist/permissions/preview.js +49 -42
  400. package/dist/permissions/rules.js +5 -2
  401. package/dist/permissions/types.d.ts +4 -0
  402. package/dist/plan/store.js +2 -1
  403. package/dist/rpc.d.ts +39 -1
  404. package/dist/rpc.js +3 -0
  405. package/dist/sandbox/bash.js +11 -8
  406. package/dist/sandbox/detect.js +14 -11
  407. package/dist/sdk.d.ts +17 -1
  408. package/dist/sdk.js +29 -7
  409. package/dist/session/export.js +31 -30
  410. package/dist/session/manager.d.ts +1 -1
  411. package/dist/session/manager.js +5 -3
  412. package/dist/session/reuse.js +5 -4
  413. package/dist/session/scan.js +3 -2
  414. package/dist/session/stats-aggregate.d.ts +3 -1
  415. package/dist/session/stats-aggregate.js +5 -1
  416. package/dist/session/stats-index.js +2 -1
  417. package/dist/session/stats-scan.d.ts +4 -1
  418. package/dist/session/stats-scan.js +6 -2
  419. package/dist/session/store.d.ts +11 -0
  420. package/dist/session/store.js +48 -1
  421. package/dist/session/types.d.ts +2 -0
  422. package/dist/skills/builtin.js +2 -1
  423. package/dist/tools/image-file.d.ts +26 -1
  424. package/dist/tools/image-file.js +55 -13
  425. package/dist/tools/presets.d.ts +14 -1
  426. package/dist/tools/presets.js +3 -3
  427. package/dist/tools/registry.js +1 -1
  428. package/dist/tools/truncate.d.ts +1 -1
  429. package/dist/tools/truncate.js +2 -2
  430. package/dist/tools/types.d.ts +17 -1
  431. package/dist/trace/build-index.d.ts +91 -0
  432. package/dist/trace/build-index.js +127 -0
  433. package/dist/trace/build-nodes.d.ts +24 -0
  434. package/dist/trace/build-nodes.js +279 -0
  435. package/dist/trace/build-util.d.ts +43 -0
  436. package/dist/trace/build-util.js +120 -0
  437. package/dist/trace/build.d.ts +82 -0
  438. package/dist/trace/build.js +382 -0
  439. package/dist/trace/detail.d.ts +35 -0
  440. package/dist/trace/detail.js +205 -0
  441. package/dist/trace/flatten.d.ts +69 -0
  442. package/dist/trace/flatten.js +173 -0
  443. package/dist/trace/format.d.ts +47 -0
  444. package/dist/trace/format.js +329 -0
  445. package/dist/trace/html-template.d.ts +19 -0
  446. package/dist/trace/html-template.js +150 -0
  447. package/dist/trace/html.d.ts +104 -0
  448. package/dist/trace/html.js +292 -0
  449. package/dist/trace/preview.d.ts +29 -0
  450. package/dist/trace/preview.js +59 -0
  451. package/dist/trace/query-session.d.ts +14 -0
  452. package/dist/trace/query-session.js +38 -0
  453. package/dist/trace/query.d.ts +55 -0
  454. package/dist/trace/query.js +188 -0
  455. package/dist/trace/session.d.ts +40 -0
  456. package/dist/trace/session.js +168 -0
  457. package/dist/trace/types.d.ts +243 -0
  458. package/dist/trace/types.js +13 -0
  459. package/dist/tui/components/editor-paste.d.ts +2 -0
  460. package/dist/tui/components/editor-paste.js +6 -3
  461. package/dist/tui/components/editor.js +2 -2
  462. package/dist/tui/components/loader.d.ts +3 -0
  463. package/dist/tui/components/loader.js +14 -0
  464. package/dist/tui/components/select-list.d.ts +2 -0
  465. package/dist/tui/components/select-list.js +7 -0
  466. package/dist/tui/components/settings-list.d.ts +61 -0
  467. package/dist/tui/components/settings-list.js +135 -0
  468. package/dist/tui/keybindings.d.ts +5 -0
  469. package/dist/tui/keybindings.js +17 -5
  470. package/dist/tui.d.ts +1 -0
  471. package/dist/tui.js +2 -0
  472. package/docs/en/host-api.md +167 -0
  473. package/docs/en/permissions.md +214 -0
  474. package/docs/en/providers.md +627 -0
  475. package/docs/en/rpc.md +361 -0
  476. package/docs/en/sessions.md +219 -0
  477. package/docs/en/tui.md +534 -0
  478. package/docs/host-api.md +18 -17
  479. package/docs/memory.md +172 -0
  480. package/docs/permissions.md +2 -2
  481. package/docs/providers.md +73 -1
  482. package/docs/rpc.md +31 -3
  483. package/docs/session-format.md +8 -2
  484. package/docs/sessions.md +29 -1
  485. package/docs/tui.md +140 -4
  486. package/package.json +8 -3
package/docs/tui.md CHANGED
@@ -128,8 +128,9 @@ Accept edits claude-opus-5-5 medium | Ctx 3.0% | proj ⎇ main 5ae9e54 (+12,
128
128
  | Ctrl+D | 输入为空时退出 |
129
129
  | Tab | 补全 |
130
130
  | ↑ / ↓ | 单行时浏览历史(`<数据目录>/history`,500 条) |
131
+ | Ctrl+B / ↓(空输入) | 进入 Agent 栏(有子 Agent 任务时;有字时 Ctrl+B 仍是光标左移,tmux 里用 ↓),见「子 Agent」(第六波 W6-A 起) |
131
132
 
132
- 按键可在 `~/.config/ama/keybindings.json` 覆盖,键是动作 id(`app.interrupt`、`app.rewind`、`app.message.followUp`、`app.statusLine.toggle`、`app.paste.image`、`tui.editor.newLine` ……),值是按键或按键数组,空数组表示禁用。`app.rewind` 是空闲时双击的那个键(缺省 Esc,两次间隔 ≤ 800 ms)。
133
+ 按键可在 `~/.config/ama/keybindings.json` 覆盖,键是动作 id(`app.interrupt`、`app.rewind`、`app.message.followUp`、`app.statusLine.toggle`、`app.paste.image`、`app.agents.focus`、`tui.editor.newLine` ……),值是按键或按键数组,空数组表示禁用。`app.rewind` 是空闲时双击的那个键(缺省 Esc,两次间隔 ≤ 800 ms)。
133
134
 
134
135
  ## 回滚
135
136
 
@@ -181,12 +182,19 @@ Accept edits claude-opus-5-5 medium | Ctx 3.0% | proj ⎇ main 5ae9e54 (+12,
181
182
  - `/fork`(无参数):同样选一条用户消息,从它之前复制出新会话。
182
183
  - `/model`、`/resume`、`/permission`、`/thinking` 不带参数时打开选择器;`/permissions` 显示权限判定顺序、已加载规则与最近 20 条 auto 判定(层、结果、原因)。
183
184
  - `/permission` 选择器标题「权限模式」:Manual / Accept edits / Plan / Auto / Bypass permissions / Allowlist only,每项一行说明,右侧数字 1–6 直接选;当前模式打 `✓`,配置里的缺省模式标 `Default`,Auto 标 `Recommended`,底部一行按键提示。`/permission auto`、`/permission Accept edits` 直接切换。状态栏最左是模式的显示名。auto 模式下需要确认时,审批对话框多一行「Auto 规则层 / 分类器:原因」。详见 [permissions.md](permissions.md)。
184
- - 选择器底部一行按键提示(`↑↓ 选择 · Enter 确认 · Esc 取消`),选中行有底色(≥ 256 色;更少时强调色粗体)。`/model` 选择器给当前模型打 `✓`,并带 `(i/n)` 计数;按「供应商 · 渠道」分组(多渠道模型在每个渠道下各一项,非首选渠道带 `@渠道`),说明里有上下文与 `img`(收图片);`/model packy/kimi-k2.5@messages` 直接切到指定渠道。
185
+ - 选择器底部一行按键提示(`↑↓ 选择 · Enter 确认 · Esc 取消`),选中行有底色(≥ 256 色;更少时强调色粗体)。
186
+ - `/model` 选择器(`Ctrl+L` 同)给当前模型打 `✓`,并带 `(i/n)` 计数,说明里有上下文与 `img`(收图片):
187
+ - **缺省只列已配置的供应商**:有 key、OAuth 已登录(需重新登录的不算)或本地服务;组标题是「供应商 · 状态」。当前模型不在列表里时置顶一行(组「当前」)。
188
+ - **`Tab` 切到「全部」**(再按切回,筛选文本保留):另列没配置的供应商,组标题标「未配置 key」;选中它们的模型不切换,底部提示 `ama auth set <供应商>`(自定义供应商用 `ama providers add`)。选 `Tab` 而不是列表底部的「添加模型」项:不占列表位置、不混进筛选结果,筛到一半也能切。
189
+ - **`Space` 把高亮的模型加入 / 移出清单**(用户级 `models.enabled`,写回 config.json):设置了清单后「已配置」视图只列清单内的模型(加当前模型);清单移空时删掉这个键。经 `provider/*` 列入的不能单独移出,按提示用 `ama models disable`。已在用清单时,从「全部」选中清单外的模型会先加入清单再切换。`Space` 因此不再用作筛选的分词(筛选按一个词匹配,`provider/model` 也能筛)。
190
+ - **多渠道供应商每个模型一行**(首选渠道),说明里写「另有 @渠道」;筛选文本里带 `@`(如 `@messages`)时列出 `模型@渠道` 行,直接选中即用该渠道。选 `@` 而不是 `→` 展开:与 `provider/model@channel` 的写法一致,启动选择器里也能用同一习惯。`/model packy/kimi-k2.5@messages` 仍可直接切到指定渠道。
191
+ - **ChatGPT 订阅**:`ama auth login chatgpt` 后自动拉取账户可用的模型(只读的模型列表接口,不消耗额度)缓存到 `<dataDir>/models/discovered/chatgpt.json`,选择器里按普通模型列出;没缓存时 chatgpt 组有一行「运行 ama models discover chatgpt 获取模型」(见 [providers.md](providers.md#chatgpt-登录))。
192
+ - 命令行同一份清单:`ama models enable <provider/model[@channel]|provider/*>…`、`ama models disable …`、`ama models list --enabled`(没设清单时列出选择器缺省显示的模型)。
185
193
  - 输入里的 `@图片路径`(可加引号,Tab 补全路径)或粘贴 / 拖入的图片文件路径作为图片附件随消息发送;当前模型不收图片时 `@` 附件报错、不发送,未加 `@` 的路径忽略(见 [providers.md](providers.md)「图像输入」)。
186
194
  - `/statusline [full|compact]`:切换底部信息行(无参数时在两者间切换,同 `Ctrl+G`),只影响本会话;line 模式没有底部信息行。
187
195
  - `/session`、`/cache`:会话用量与缓存统计面板(见上文「缓存与上下文」);`/permissions` 同样是面板,allow 绿、deny 红,判定顺序折行对齐。`/session` 有子 Agent 任务时多一行「子 Agent」(任务数与各状态),用过外部 Agent 时多一段「外部 Agent」(每个 Agent 的运行次数与用量,美元 / token / 请求数按各自单位,不换算)。
188
196
  - `/plan`:当前计划面板(见下文「Plan 审批」);`/plan <目标>` 进入 Plan 模式并发出目标;`/plan approve [模式|fresh]`、`/plan reject` 不开对话框直接批准 / 放弃。
189
- - `/tasks`:子 Agent 任务列表;`/agents`:可用的子 Agent 类型(见下文「子 Agent」)。
197
+ - `/tasks`:聚焦 Agent 栏,`/tasks <id>` 打开子 Agent 视图;`/agents`:可用的子 Agent 类型(见下文「子 Agent」)。
190
198
  - `/paste`:同 `Ctrl+V`。
191
199
 
192
200
  ## 进入 Bypass
@@ -305,10 +313,49 @@ Plan 模式(Shift+Tab、`/permission plan`、`/plan <目标>`、`--permission-
305
313
  ```
306
314
 
307
315
  - 状态行是类型(外部 Agent 写 `claude(claude)` 这类 runner)、状态与耗时、轮数、最近 3 个工具、用量;前台任务结束后换成结果摘要。后台任务(`background: true`)的工具调用立即返回,下面多一行跟随状态(运行中每秒刷新);完成后模型收到的 `<task-notification>` 在消息区只显示一行「↳ 子 Agent 通知 t2 explore 完成 · 7 轮 · /tasks 查看输出」,失败或被停止时另有一行黄色提示。
308
- - `/tasks`:任务选择器(新的在上;一行是任务 id、类型、状态、耗时、轮数、用量、费用、后台、描述),Enter 查看输出(运行中是已有输出;截断时给全文文件);运行中的任务可以选择停止。line 模式 `/tasks` 列表、`/tasks <id>` 输出、`/tasks stop <id>` 停止。
316
+ - `/tasks`:聚焦 Agent 栏(见下);`/tasks <id>` 直接打开该任务的子 Agent 视图;`/tasks stop <id>` 停止。`ui.agentBar: "off"`(嵌入宿主缺省)时 `/tasks` 仍是任务选择器(新的在上,Enter 查看输出、运行中可停止)。line 模式 `/tasks` 列表、`/tasks <id>` 输出、`/tasks stop <id>` 停止。
309
317
  - `/agents`:可用类型——名字、runner、来源(内置 / 用户 / 项目 / profile / 宿主),外部 Agent 带「已安装 版本」或「未安装」,再加一行说明。
310
318
  - 外部 Agent 自己报告的提示(预算用尽、超时、模式降级等)在消息区显示为一行 `[claude · t3] …`。
311
319
 
320
+ ### Agent 栏
321
+
322
+ 状态行上方(提示行之下)列出子 Agent 任务,每个任务一行,最多 3 行,多出的给一行「另 N 个」:
323
+
324
+ ```
325
+ ⏺ t1 explore · 运行中 1m05s · 3 轮 · grep 找出 src/tui 的测试缺口
326
+ ⏺ t2 codex · 等待审批 40s review the diff
327
+ ⏺ t3 explore · 排队 排队中的任务
328
+ 另 1 个
329
+ ```
330
+
331
+ - 状态:排队(并发池满)/ 运行中(用时、轮数、最近一个工具)/ 等待审批(审批框里正有它的请求)/ 完成 / 失败 / 已停止(以及轮数耗尽、已中断);`⏺` 运行中强调色、完成绿、失败红、其余黄 / 暗;ASCII 下是 `*`。
332
+ - 什么时候显示:有排队、运行中或等审批的任务;本会话里结束、还没在视图里看过的任务保留到看过为止,最多 10 分钟。resume 进来时已经结束的任务不显示(`/tasks` 里能看到)。
333
+ - 进入:输入框为空时 `Ctrl+B`(有任务即可),或 `↓`(栏可见时)——tmux 的缺省前缀会吃掉 `Ctrl+B`,这时用 `↓`;输入框有字时 `Ctrl+B` 仍是光标左移、`↓` 仍是下移 / 历史。键位动作 `app.agents.focus`,可在 `keybindings.json` 改。
334
+ - 栏里:`↑` `↓` 选(列出本会话全部任务,窗口跟着滚;在第一项再按 `↑` 回到输入框),Enter 打开子 Agent 视图,Esc / `Ctrl+B` 回到输入框;直接打字则回到输入框并把字填进去。末行是按键提示。
335
+ - 嵌入宿主(有 profile)缺省 `ui.agentBar: "off"`:不显示栏,`Ctrl+B` / `↓` 照常交给编辑器。
336
+
337
+ ### 子 Agent 视图
338
+
339
+ 栏里 Enter 或 `/tasks <id>` 打开。它是主屏上的底部覆盖层,高度是终端行数 − 1(不切备用屏),关掉之后消息区与回滚历史原样:
340
+
341
+ ```
342
+ t2 explore · 运行中 1m05s · 3 轮 · ↑12k ↓3.4k · Esc 返回 · /tasks stop t2 停止
343
+ › 找出 src/tui 的测试缺口
344
+
345
+ ⏺ grep "describe(" src/tui
346
+ ⎿ 14 处匹配 · 6 个文件
347
+ …
348
+ ────────────────────────────────────────
349
+ › 发给 t2
350
+ ────────────────────────────────────────
351
+ ```
352
+
353
+ - 正文实时跟随:ama 子 Agent 显示子会话的全部消息与工具调用(与消息区同样的渲染);子会话句柄已被释放(保留上限 16 个)或会话是 resume 进来的,就只读加载子会话文件,任务再次运行时接上实时事件。外部 Agent(claude / codex / ACP)显示本进程内存里的实时输出(文本、思考、工具起止、回合、提示;最多 2000 条 / 1 MB,不落盘);ama 重启后只剩一行说明「用原 CLI resume <会话 id> 查看全文」。
354
+ - 输入框为空时:`↑` / PgUp 上翻(暂停跟随,底部提示「已暂停跟随 · End 继续」),`↓` / PgDn 下翻,End(暂停时也可按 `f`)回到跟随;`←` `→` 切到上一个 / 下一个任务;Esc 返回主界面。输入框有字时 Esc 先清空。
355
+ - Enter 把输入发给这个子 Agent(会话里记为 `origin: "direct"` 的 user 消息,见 [session-format.md](session-format.md)):ama 子 Agent 运行中 → 排到它本轮结束时送达;外部 Agent 运行中或任务还在排队 → 等本次运行结束后续聊;已结束 → 后台续聊(同 `task_ctl send`,完成后主会话照常收到 `<task-notification>`)。底部一行提示发送结果。父会话的模型不知道你直接和子 Agent 说过话,结果经结束通知自然带回。
356
+ - 视图里不中断任何东西:Esc 只是返回。停止子任务用 `/tasks stop <id>`——在视图输入框里也能用(视图里只认这一条命令)。
357
+ - 正在看的任务等审批时标题显示「等待审批」,审批框照常弹在视图上面(带 `[task:<类型>]` 来源)。
358
+
312
359
  审批框的来源标注:
313
360
 
314
361
  | 来源 | 标题前缀 | 正文 |
@@ -319,6 +366,54 @@ Plan 模式(Shift+Tab、`/permission plan`、`/plan <目标>`、`--permission-
319
366
 
320
367
  三种都只有「允许 / 本会话允许同类 / 拒绝」三项(外部 Agent 的「本会话允许」由它自己记住)。Manual 模式下 `task(agent="claude")` 本来要问两次(task 调用一次、首次运行一次):task 调用的审批框里已写明「以你在 claude CLI 的登录运行(含本会话首次运行确认)」,允许之后紧接着的首次运行确认自动通过,消息区一行「已允许 task(随上一次确认)」;中间夹了别的审批、拒绝、超过 60 秒,或不是这次调用建立的任务,首次运行确认照常弹出。
321
368
 
369
+ ## 轨迹
370
+
371
+ `/trace` 打开当前会话的轨迹:按回合 → 请求 → 工具 → 子调用 / 子 Agent 分层,每行显示耗时、token 与缓存命中,
372
+ 看清一次回答慢在哪里(首 token、解码、工具、审批、重试、压缩)。`/trace t2` 直接看任务 t2:ama 子 Agent 显示它
373
+ 自己的子轨迹,外部 Agent(claude / codex …)只有回合骨架(种类、状态、时间与计数,没有命令行与路径)。
374
+
375
+ 覆盖层在主屏底部、高 `行数 − 1`,退出后消息区不变:
376
+
377
+ ```text
378
+ 轨迹 · 1 回合 · 2 请求 · 3 次工具 · 12s · ↑8.1k ↓240 · 缓存 70% · ttft p50 0.8s / p90 0.9s · 120 tok/s
379
+ ▾ #1 跑测试并找出 TODO 12s ▕██░░░░░░░▒██▏ ↑8.1k ↓240 70%
380
+ ▾ 请求 claude-sonnet-4-5 · ttft 0.8s · 167 tok/s 1.7s ▕██░░░░░░░░ ▏ ↑3.9k ↓150 46%
381
+ bash pnpm test 8.0s ▕ ░░░░░░░░░ ▏
382
+ grep TODO 0.3s ▕ ░░ ▏
383
+ ⛔ write notes.md 2.2s ▕ ░░░░ ▏
384
+ › 请求 claude-sonnet-4-5 · ttft 0.9s · 82 tok/s 2.0s ▕ ▒██▏ ↑4.2k ↓90 93%
385
+ ↑↓ 移动 · → 展开 · ← 折叠 · Enter 详情 · f 跟随 · Esc 关闭
386
+ ```
387
+
388
+ - **条形**是所在回合的相对时间轴:`▒` 首 token 等待(TTFT)、`█` 解码、`░` 工具;进行中的节点只画起点 `│`,不编造时长。
389
+ ASCII(`ui.ascii` / `AMA_ASCII=1`)或无色(`NO_COLOR`)时降级为 `[==..--]`(`.` TTFT、`=` 解码、`-` 工具、`|` 起点)。
390
+ - **列**:↑ 是提示 token(含缓存读写),↓ 是输出 token,百分比是缓存命中(缓存读 / 提示 token)。宽 < 60 列只留标签与耗时,40 列可用。
391
+ - **记号**:`✗` 失败、`⛔` 被拒、`↻` 被重试掉的请求、`!` 中断或未完成、`·` 进行中;耗时前的 `≈`(ASCII `~`)表示**推算**——
392
+ 0.6 之前的会话没有计时记录,按条目时间估出,首 token 与吞吐不显示,汇总的 ttft 分位只用精确值。
393
+ - **按键**:`↑↓` / `PgUp` `PgDn` / `Home` `End` 移动;`→` 展开(子 Agent 展开时读它的子会话)或进到第一个子行,`←` 折叠或回到父行;
394
+ `Enter` 详情卡片(类型、状态、开始时刻、耗时、模型与尝试次数、回退来源、TTFT、吞吐、token 与缓存、费用、审批等待;回合的提示、
395
+ 请求的回复文字、工具参数(截到 500 字符)与结果(截到 2000 字符)),卡片里 `↑↓` 滚动、`Esc` / `Enter` 返回;`f` 跟随开关;
396
+ `Esc` 先关详情再关视图。
397
+ - **长会话**:先显示最后 50 个回合,顶部一行「更早的 N 个回合」上按 `Enter`(或在第一行继续按 `↑`)再往前加载 50 个;只渲染可见行。
398
+ - **运行中**:轨迹随会话事件刷新(最多每秒 2 次);有进行中的节点时自动跟随最新一行,手动上移即暂停(标题右侧显示「已暂停跟随」),
399
+ `End` 或 `f` 恢复。
400
+ - 保温与权限分类等辅助请求收在末尾「辅助请求 N 次」一组,缺省折叠。
401
+ - line 模式(`--ui line`、管道)里 `/trace [任务 id]` 打印同一棵树的文本(全部展开、不画条形)。
402
+
403
+ 计时来自会话文件里的 `custom{customType:"ama.trace"}` 条目([session-format.md](session-format.md)),只有 id、时间与计数;
404
+ 提示、参数、结果的预览从会话条目按需读取,不进轨迹本身。
405
+
406
+ ## Memory
407
+
408
+ 需开启记忆(`ama memory enable` 或 `--memory`,见 [memory.md](memory.md))。`/memory` 在消息区画一张卡片:每个作用域一段
409
+ (`用户 /memories/user/ · N 条 · 索引 X / 4.0 KiB`),条目一行「名字 — 说明 更新于 日期」,超过 90 天未更新的标灰;
410
+ 索引超出上限时多一行黄字说明有几条没进系统提示;项目未受信任、本会话禁止写入时卡片底部各提示一行。
411
+
412
+ `/memory show <名字>` 把正文画成卡片;`/memory edit [名字|作用域]` 挂起界面打开 `$VISUAL` / `$EDITOR`(编辑临时副本,
413
+ 保存退出后存回并重建索引,凭据与上限检查同模型写入);`/memory rm <名字>` 弹确认框(缺省选中「取消」,`y` 删除、`n` / Esc 取消);
414
+ `/memory on|off` 切本会话写开关;`/memory reload` 重渲染系统提示的 `memory` 节(提示会断一次缓存)。行式界面同一套命令输出文本,
415
+ `edit` 改用 `ama memory edit`,`rm` 需加 `--yes`。会话未开启记忆时只提示如何开启。
416
+
322
417
  ## 剪贴板图片
323
418
 
324
419
  `Ctrl+V` 或 `/paste` 读系统剪贴板里的图片(macOS `osascript` / `pngpaste`,Linux `wl-paste` / `xclip`,Windows PowerShell),存为 `<数据目录>/clipboard/<时间>.png`,在输入框光标处插入 `@<路径>`,发送时按 `@图片` 附件处理(超过当前模型的单图上限时按 `images.resize` 缩放)。没有可用命令或剪贴板里没有图片时底部提示一行,输入框不变。文字仍用终端自己的粘贴(Cmd+V / Ctrl+Shift+V)。`ama sessions prune` 清理 7 天前的剪贴板文件。
@@ -352,6 +447,47 @@ Plan 模式(Shift+Tab、`/permission plan`、`/plan <目标>`、`--permission-
352
447
  - **字符错位**:`⏺`(U+23FA)、`⎿`、`▎` 在个别字体(尤其 emoji 回退字体)下画成两格,宽度计算按 wcwidth(一格),会出现列错位或残影——换等宽字体或设 `AMA_ASCII=1`。
353
448
  - **颜色**:`NO_COLOR` 或 `TERM=dumb` 无色;16 色终端按内置表取近,选中行不用底色而用强调色粗体;浅色终端设 `ui.theme: "light"`。
354
449
 
450
+ ### `/config` 设置面板与 `ama config`
451
+
452
+ `/config` 打开设置面板(底部覆盖层):按分组列出约 60 个标量设置,每行「标签 · 生效值 · 生效档 · 来源」。
453
+
454
+ ```text
455
+ ▎ 设置 写入:用户级 ~/.config/ama/config.json [Tab 切换]
456
+ ▎ / 搜索
457
+ ▎ 界面
458
+ ▎ › 主题 light 重启 来源 user
459
+ ▎ Markdown 渲染 true 即时
460
+ ▎ 权限
461
+ ▎ 权限模式 plan 即时 [锁定] project
462
+ ▎ ────────────────────────────────────────────────────────────
463
+ ▎ 配色主题:dark、light,或 auto(…)
464
+ ▎ ↑↓ 选择 · Enter/空格 修改 · / 搜索 · Tab 用户级/项目级 · Backspace 恢复缺省 · Esc 关闭
465
+ ```
466
+
467
+ - **按键**:↑↓ 移动;Enter / 空格:布尔取反、≤ 4 项的枚举循环、更长的枚举(思考强度、权限模式等)与模型开选择器、数字和文本开行内输入(非法值红字留在框里,Esc 放弃);`/` 搜索键名、标签、枚举值与说明,Esc 先清搜索再关闭;Backspace / Delete 按两次 = 删掉写入层里的这一项(回到下层的值)。
468
+ - **写入层**:缺省写用户级 `~/.config/ama/config.json`;Tab 切到项目级 `.ama/config.json`,只许收紧(与合并规则同一判定),只认用户级的项变灰、Enter 给出原因。改动**立即写盘**(写前重读文件、只改这一项、校验、留 `.bak`),没有「保存」按钮;没有文件锁,与 `ama config edit` 同时改时后写者覆盖这一项。手排的格式会被规整成 2 空格缩进。
469
+ - **来源与锁定**:来源是 default / user / profile / project / cli / env;被更上层覆盖的项(profile、项目级、命令行参数、`AMA_CACHE_WARMING` 等环境变量)标 `[锁定]`,说明行写出原因,不让改。嵌入宿主(有 profile)时标题提示「写入用户级配置」。
470
+ - **生效档**:「即时」项当场作用于本会话与界面(主题以外的 `ui` 显示项、`defaultModel`、`thinkingLevel`、`permission.mode`、`compaction.enabled`、`retry.enabled`、`cache.warming`);「新会话」项在 `/new` / `/resume` 后生效;「重启」项(工具预设、codemode、沙箱、`ui.theme`、`ui.ascii`、`ui.language` 等)下次启动生效。面板 = 持久化,`/model` `/thinking` `/permission` `/statusline` 仍只改本会话。
471
+ - **缓存**:标「动缓存」的项会改变缓存前缀;对话已有回复时第一次改这类项,面板底部提示一次「下一次请求按未命中计费」。
472
+ - 面板里把 `permission.mode` 设为 `full-auto` 会先弹 Bypass 确认,并说明以后每次启动都生效。
473
+ - 关闭时消息区出一条汇总:「主题:dark → light(用户级)」,需重启 / 新会话生效的项另列一行;没改动不出。
474
+ - 列表、对象类的键不在面板里,最后一组「在别处修改」给出入口(`ama providers`、`/permissions`、`ama config edit`、`--json-value` 等)。
475
+
476
+ `/config key=value`(或 `/config key value`)不开面板,直接写用户级一项,回显与命令行相同;line 模式同样可用,无参数时列出全部设置。
477
+
478
+ 命令行(与面板共用编辑核心):
479
+
480
+ ```text
481
+ ama config get <key> [--json] 生效值、来源、生效档
482
+ ama config set <key> <value> [--project] [--json-value] [--yes]
483
+ ama config unset <key> [--project]
484
+ ama config list [前缀] [--json] [--all] 缺省只列面板里的设置
485
+ ```
486
+
487
+ 值按类型解析:`true/false/on/off/1/0`、数字(可写 `30_000`)、枚举不分大小写、`none` / `unset` = 删除;列表与对象用 `--json-value`(如 `ama config set tools.disabled '["bash"]' --json-value`)。未知键、非法值、项目级放宽被拒都退出码 3,文件不动;`get` / `list` 不会创建配置目录。`ama config set permission.mode full-auto` 在终端里先确认,非终端需要 `--yes`。
488
+
489
+ 可选 `ui.replyLanguage`(如 `Chinese`):会话开始在系统提示 `rules` 节末尾追加一句英文规则 `Reply to the user in Chinese.`,不设时请求零字节变化;只认用户级 / profile。
490
+
355
491
  ## 组件库(`@armadra/agent/tui`)
356
492
 
357
493
  交互模式用的终端组件单独导出,零依赖,宿主或其它 Node 程序可以直接用来画主屏界面。
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@armadra/agent",
3
- "version": "0.5.1",
4
- "description": "可独立使用、可嵌入 Armadra 的编码 / 协调 Agent",
3
+ "version": "0.6.1",
4
+ "description": "A coding and coordination agent that runs standalone or embedded in Armadra",
5
5
  "type": "module",
6
6
  "keywords": [
7
7
  "coding-agent",
@@ -73,7 +73,11 @@
73
73
  "docs/tui-design.md",
74
74
  "docs/session-format.md",
75
75
  "docs/sessions.md",
76
+ "docs/memory.md",
77
+ "docs/en/*.md",
78
+ "README.zh-CN.md",
76
79
  "CHANGELOG.md",
80
+ "CHANGELOG.zh-CN.md",
77
81
  "THIRD_PARTY_NOTICES.md"
78
82
  ],
79
83
  "sideEffects": [
@@ -99,10 +103,11 @@
99
103
  "fmt": "prettier --write .",
100
104
  "fmt:check": "prettier --check .",
101
105
  "check:deps": "node scripts/check-no-deps.mjs",
106
+ "check:i18n": "node scripts/check-i18n.mjs",
102
107
  "release:check": "node scripts/release-check.mjs",
103
108
  "bench:presets": "node scripts/bench-presets.mjs",
104
109
  "bench:cache": "node scripts/cache-experiment.mjs",
105
- "ci": "pnpm typecheck && pnpm fmt:check && pnpm check:deps && pnpm release:check && pnpm test && pnpm build && node dist/bundle/ama.cjs --version"
110
+ "ci": "pnpm typecheck && pnpm fmt:check && pnpm check:deps && pnpm check:i18n && pnpm release:check && pnpm test && pnpm build && node dist/bundle/ama.cjs --version"
106
111
  },
107
112
  "dependencies": {},
108
113
  "devDependencies": {