@armadra/agent 0.8.0 → 0.8.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 (512) hide show
  1. package/CHANGELOG.md +39 -32
  2. package/CHANGELOG.zh-CN.md +56 -49
  3. package/README.md +162 -204
  4. package/README.zh-CN.md +150 -199
  5. package/dist/acp.d.ts +1 -1
  6. package/dist/acp.js +1 -1
  7. package/dist/agent/limits.d.ts +1 -1
  8. package/dist/agent/limits.js +1 -1
  9. package/dist/agent/loop-guard.d.ts +1 -1
  10. package/dist/agent/loop-guard.js +1 -1
  11. package/dist/agent/prompt-rules.d.ts +1 -1
  12. package/dist/agent/prompt-rules.js +1 -1
  13. package/dist/agent/reminders.d.ts +1 -1
  14. package/dist/agent/reminders.js +1 -1
  15. package/dist/agent/session-cache-key.d.ts +1 -1
  16. package/dist/agent/session-cache-key.js +1 -1
  17. package/dist/agent/session-extensions.d.ts +1 -1
  18. package/dist/agent/session-extensions.js +1 -1
  19. package/dist/agent/session-images.d.ts +1 -1
  20. package/dist/agent/session-images.js +1 -1
  21. package/dist/agent/session-plan.d.ts +1 -1
  22. package/dist/agent/session-plan.js +1 -1
  23. package/dist/agent/session-rewind.d.ts +1 -1
  24. package/dist/agent/session-rewind.js +1 -1
  25. package/dist/agent/session-settings.d.ts +1 -1
  26. package/dist/agent/session-settings.js +1 -1
  27. package/dist/agent/session-subagent.d.ts +1 -1
  28. package/dist/agent/session-subagent.js +1 -1
  29. package/dist/agent/session-telemetry.d.ts +1 -1
  30. package/dist/agent/session-telemetry.js +1 -1
  31. package/dist/agent/session-trace-writer.d.ts +1 -1
  32. package/dist/agent/session-trace-writer.js +1 -1
  33. package/dist/agent/session.js +1 -1
  34. package/dist/agent/subagent-background.d.ts +1 -1
  35. package/dist/agent/subagent-background.js +1 -1
  36. package/dist/agent/subagent-direct.d.ts +1 -1
  37. package/dist/agent/subagent-direct.js +1 -1
  38. package/dist/agent/subagent-fork.d.ts +1 -1
  39. package/dist/agent/subagent-fork.js +1 -1
  40. package/dist/agent/subagent-registry.d.ts +1 -1
  41. package/dist/agent/subagent-registry.js +1 -1
  42. package/dist/agent/system-prompt.js +1 -1
  43. package/dist/agent/tool-availability.d.ts +1 -1
  44. package/dist/agent/tool-availability.js +1 -1
  45. package/dist/agent/types-w5.d.ts +2 -2
  46. package/dist/agent/types-w5.js +1 -1
  47. package/dist/agent/types-w6.d.ts +1 -1
  48. package/dist/agent/types-w6.js +1 -1
  49. package/dist/agent/types.d.ts +1 -1
  50. package/dist/agent/worktree.d.ts +1 -1
  51. package/dist/agent/worktree.js +1 -1
  52. package/dist/agents/builtin.d.ts +1 -1
  53. package/dist/agents/builtin.js +1 -1
  54. package/dist/agents/catalog.d.ts +1 -1
  55. package/dist/agents/catalog.js +1 -1
  56. package/dist/agents/discover.d.ts +1 -1
  57. package/dist/agents/discover.js +1 -1
  58. package/dist/agents/external.d.ts +1 -1
  59. package/dist/agents/external.js +1 -1
  60. package/dist/agents/parse.d.ts +1 -1
  61. package/dist/agents/parse.js +1 -1
  62. package/dist/agents/result.d.ts +1 -1
  63. package/dist/agents/result.js +2 -2
  64. package/dist/agents/task-record.d.ts +3 -3
  65. package/dist/agents/task-record.js +2 -2
  66. package/dist/agents/types.d.ts +1 -1
  67. package/dist/agents/types.js +1 -1
  68. package/dist/ai/apis/anthropic-compat.d.ts +2 -2
  69. package/dist/ai/apis/anthropic-compat.js +2 -2
  70. package/dist/ai/apis/cache-params.d.ts +1 -1
  71. package/dist/ai/apis/cache-params.js +1 -1
  72. package/dist/ai/apis/chatgpt-backend.d.ts +1 -1
  73. package/dist/ai/apis/chatgpt-backend.js +1 -1
  74. package/dist/ai/apis/chatgpt-rate-limits.d.ts +1 -1
  75. package/dist/ai/apis/chatgpt-rate-limits.js +1 -1
  76. package/dist/ai/apis/max-tokens.d.ts +1 -1
  77. package/dist/ai/apis/max-tokens.js +1 -1
  78. package/dist/ai/apis/shared.d.ts +1 -1
  79. package/dist/ai/apis/shared.js +1 -1
  80. package/dist/ai/image-intern.d.ts +2 -2
  81. package/dist/ai/image-intern.js +1 -1
  82. package/dist/ai/image-limits.d.ts +1 -1
  83. package/dist/ai/image-limits.js +1 -1
  84. package/dist/ai/json-body.d.ts +1 -1
  85. package/dist/ai/json-body.js +1 -1
  86. package/dist/ai/providers/builtin.d.ts +2 -2
  87. package/dist/ai/providers/builtin.js +4 -4
  88. package/dist/ai/providers/catalog.d.ts +2 -2
  89. package/dist/ai/providers/catalog.js +1 -1
  90. package/dist/ai/providers/channels.d.ts +1 -1
  91. package/dist/ai/providers/channels.js +1 -1
  92. package/dist/ai/providers/enrich.d.ts +1 -1
  93. package/dist/ai/providers/enrich.js +1 -1
  94. package/dist/ai/providers/models-dev-cache.d.ts +1 -1
  95. package/dist/ai/providers/models-dev-cache.js +1 -1
  96. package/dist/ai/providers/models-dev-data.d.ts +1 -1
  97. package/dist/ai/providers/models-dev-data.js +1 -1
  98. package/dist/ai/providers/models-dev-snapshot.d.ts +1 -1
  99. package/dist/ai/providers/models-dev-snapshot.js +1 -1
  100. package/dist/ai/providers/models-dev.d.ts +4 -4
  101. package/dist/ai/providers/models-dev.js +3 -3
  102. package/dist/ai/types.d.ts +2 -2
  103. package/dist/ai/types.js +1 -1
  104. package/dist/auth/chatgpt/cli.d.ts +1 -1
  105. package/dist/auth/chatgpt/cli.js +1 -1
  106. package/dist/auth/chatgpt/host-id.d.ts +1 -1
  107. package/dist/auth/chatgpt/host-id.js +1 -1
  108. package/dist/auth/chatgpt/login.d.ts +1 -1
  109. package/dist/auth/chatgpt/login.js +1 -1
  110. package/dist/auth/chatgpt/presets.d.ts +1 -1
  111. package/dist/auth/chatgpt/presets.js +1 -1
  112. package/dist/auth/oauth/callback-server.d.ts +1 -1
  113. package/dist/auth/oauth/callback-server.js +1 -1
  114. package/dist/auth/oauth/flows.d.ts +1 -1
  115. package/dist/auth/oauth/flows.js +1 -1
  116. package/dist/auth/oauth/oidc.d.ts +1 -1
  117. package/dist/auth/oauth/oidc.js +1 -1
  118. package/dist/auth/oauth/pkce.d.ts +1 -1
  119. package/dist/auth/oauth/pkce.js +1 -1
  120. package/dist/auth/oauth/refresh.d.ts +1 -1
  121. package/dist/auth/oauth/refresh.js +1 -1
  122. package/dist/auth/oauth/token-client.d.ts +1 -1
  123. package/dist/auth/oauth/token-client.js +1 -1
  124. package/dist/auth/oauth/token-store.d.ts +1 -1
  125. package/dist/auth/oauth/token-store.js +1 -1
  126. package/dist/auth/testing/fake-oauth.d.ts +1 -1
  127. package/dist/auth/testing/fake-oauth.js +1 -1
  128. package/dist/bundle/ama.cjs +24 -24
  129. package/dist/checkpoints/blobs.d.ts +1 -1
  130. package/dist/checkpoints/blobs.js +1 -1
  131. package/dist/checkpoints/gc.d.ts +1 -1
  132. package/dist/checkpoints/gc.js +1 -1
  133. package/dist/checkpoints/git-head.d.ts +1 -1
  134. package/dist/checkpoints/git-head.js +1 -1
  135. package/dist/checkpoints/index.d.ts +1 -1
  136. package/dist/checkpoints/index.js +1 -1
  137. package/dist/checkpoints/replay.d.ts +1 -1
  138. package/dist/checkpoints/replay.js +1 -1
  139. package/dist/checkpoints/restore.d.ts +1 -1
  140. package/dist/checkpoints/restore.js +1 -1
  141. package/dist/checkpoints/settings.d.ts +1 -1
  142. package/dist/checkpoints/settings.js +1 -1
  143. package/dist/checkpoints/shadow-git.d.ts +1 -1
  144. package/dist/checkpoints/shadow-git.js +1 -1
  145. package/dist/checkpoints/shadow-restore.d.ts +1 -1
  146. package/dist/checkpoints/shadow-restore.js +1 -1
  147. package/dist/checkpoints/tracker.d.ts +1 -1
  148. package/dist/checkpoints/tracker.js +1 -1
  149. package/dist/checkpoints/types.d.ts +1 -1
  150. package/dist/checkpoints/types.js +1 -1
  151. package/dist/cli/args.d.ts +2 -2
  152. package/dist/cli/args.js +1 -1
  153. package/dist/cli/bootstrap.js +1 -1
  154. package/dist/cli/choice-prompt.d.ts +1 -1
  155. package/dist/cli/choice-prompt.js +1 -1
  156. package/dist/cli/codemode-notice.d.ts +1 -1
  157. package/dist/cli/codemode-notice.js +1 -1
  158. package/dist/cli/compose-agents.d.ts +1 -1
  159. package/dist/cli/compose-agents.js +1 -1
  160. package/dist/cli/compose-extensions.d.ts +1 -1
  161. package/dist/cli/compose-extensions.js +1 -1
  162. package/dist/cli/compose-memory.d.ts +1 -1
  163. package/dist/cli/compose-memory.js +1 -1
  164. package/dist/cli/compose-providers.d.ts +1 -1
  165. package/dist/cli/compose-providers.js +1 -1
  166. package/dist/cli/compose-request.d.ts +1 -1
  167. package/dist/cli/compose-request.js +1 -1
  168. package/dist/cli/from-prompt.d.ts +1 -1
  169. package/dist/cli/from-prompt.js +1 -1
  170. package/dist/cli/main.d.ts +1 -1
  171. package/dist/cli/main.js +1 -1
  172. package/dist/cli/subcommands/auth.d.ts +1 -1
  173. package/dist/cli/subcommands/auth.js +1 -1
  174. package/dist/cli/subcommands/config-set.d.ts +1 -1
  175. package/dist/cli/subcommands/config-set.js +1 -1
  176. package/dist/cli/subcommands/doctor.js +1 -1
  177. package/dist/cli/subcommands/init.d.ts +1 -1
  178. package/dist/cli/subcommands/init.js +1 -1
  179. package/dist/cli/subcommands/memory.d.ts +1 -1
  180. package/dist/cli/subcommands/memory.js +1 -1
  181. package/dist/cli/subcommands/models.js +1 -1
  182. package/dist/cli/subcommands/providers-list.d.ts +1 -1
  183. package/dist/cli/subcommands/providers-list.js +1 -1
  184. package/dist/cli/subcommands/providers-plan.d.ts +1 -1
  185. package/dist/cli/subcommands/providers-plan.js +1 -1
  186. package/dist/cli/subcommands/providers.d.ts +1 -1
  187. package/dist/cli/subcommands/providers.js +1 -1
  188. package/dist/cli/subcommands/sessions-export.d.ts +1 -1
  189. package/dist/cli/subcommands/sessions-export.js +1 -1
  190. package/dist/cli/subcommands/sessions-trace.d.ts +1 -1
  191. package/dist/cli/subcommands/sessions-trace.js +1 -1
  192. package/dist/cli/subcommands/sessions.d.ts +1 -1
  193. package/dist/cli/subcommands/sessions.js +1 -1
  194. package/dist/cli/subcommands/stats.d.ts +1 -1
  195. package/dist/cli/subcommands/stats.js +1 -1
  196. package/dist/codemode/capability.d.ts +1 -1
  197. package/dist/codemode/capability.js +1 -1
  198. package/dist/codemode/host-side.d.ts +2 -2
  199. package/dist/codemode/host-side.js +2 -2
  200. package/dist/compaction/image-budget.d.ts +1 -1
  201. package/dist/compaction/image-budget.js +1 -1
  202. package/dist/config/edit.d.ts +1 -1
  203. package/dist/config/edit.js +1 -1
  204. package/dist/config/init.d.ts +1 -1
  205. package/dist/config/init.js +1 -1
  206. package/dist/config/json-schema.d.ts +2 -2
  207. package/dist/config/json-schema.js +2 -2
  208. package/dist/config/schema-w5.d.ts +1 -1
  209. package/dist/config/schema-w5.js +1 -1
  210. package/dist/config/schema-w6.d.ts +1 -1
  211. package/dist/config/schema-w6.js +1 -1
  212. package/dist/config/settings-registry.d.ts +1 -1
  213. package/dist/config/settings-registry.js +1 -1
  214. package/dist/config/types-w5.d.ts +2 -2
  215. package/dist/config/types-w5.js +2 -2
  216. package/dist/config/types-w6.d.ts +5 -5
  217. package/dist/config/types-w6.js +1 -1
  218. package/dist/config/types.d.ts +6 -6
  219. package/dist/config/types.js +1 -1
  220. package/dist/drivers/acp/client.d.ts +1 -1
  221. package/dist/drivers/acp/client.js +1 -1
  222. package/dist/drivers/acp/driver.d.ts +1 -1
  223. package/dist/drivers/acp/driver.js +1 -1
  224. package/dist/drivers/acp/testing/fake-agent.d.ts +1 -1
  225. package/dist/drivers/acp/testing/fake-agent.js +1 -1
  226. package/dist/drivers/acp/types.d.ts +1 -1
  227. package/dist/drivers/acp/types.js +1 -1
  228. package/dist/drivers/agents.d.ts +1 -1
  229. package/dist/drivers/agents.js +1 -1
  230. package/dist/drivers/base.d.ts +1 -1
  231. package/dist/drivers/base.js +1 -1
  232. package/dist/drivers/catalog.d.ts +1 -1
  233. package/dist/drivers/catalog.js +1 -1
  234. package/dist/drivers/env.d.ts +1 -1
  235. package/dist/drivers/env.js +1 -1
  236. package/dist/drivers/host-runners.d.ts +1 -1
  237. package/dist/drivers/host-runners.js +1 -1
  238. package/dist/drivers/jsonrpc.d.ts +1 -1
  239. package/dist/drivers/jsonrpc.js +1 -1
  240. package/dist/drivers/native/claude-normalize.d.ts +1 -1
  241. package/dist/drivers/native/claude-normalize.js +1 -1
  242. package/dist/drivers/native/claude-stream.d.ts +1 -1
  243. package/dist/drivers/native/claude-stream.js +1 -1
  244. package/dist/drivers/native/codex-app-server.d.ts +1 -1
  245. package/dist/drivers/native/codex-app-server.js +1 -1
  246. package/dist/drivers/native/codex-normalize.d.ts +1 -1
  247. package/dist/drivers/native/codex-normalize.js +1 -1
  248. package/dist/drivers/native/oneshot.d.ts +1 -1
  249. package/dist/drivers/native/oneshot.js +1 -1
  250. package/dist/drivers/permissions.d.ts +1 -1
  251. package/dist/drivers/permissions.js +1 -1
  252. package/dist/drivers/pids.d.ts +1 -1
  253. package/dist/drivers/pids.js +1 -1
  254. package/dist/drivers/pool.d.ts +1 -1
  255. package/dist/drivers/pool.js +1 -1
  256. package/dist/drivers/probe.d.ts +1 -1
  257. package/dist/drivers/probe.js +1 -1
  258. package/dist/drivers/process.d.ts +1 -1
  259. package/dist/drivers/process.js +1 -1
  260. package/dist/drivers/runner.d.ts +1 -1
  261. package/dist/drivers/runner.js +1 -1
  262. package/dist/drivers/store.d.ts +1 -1
  263. package/dist/drivers/store.js +1 -1
  264. package/dist/drivers/types.d.ts +1 -1
  265. package/dist/drivers/types.js +1 -1
  266. package/dist/git/info.d.ts +1 -1
  267. package/dist/git/info.js +1 -1
  268. package/dist/host/api-impl.d.ts +1 -1
  269. package/dist/host/api-impl.js +1 -1
  270. package/dist/host/types.d.ts +2 -2
  271. package/dist/i18n/catalog.d.ts +2 -2
  272. package/dist/i18n/catalog.js +2 -2
  273. package/dist/i18n/format.d.ts +1 -1
  274. package/dist/i18n/format.js +1 -1
  275. package/dist/i18n/index.d.ts +1 -1
  276. package/dist/i18n/index.js +1 -1
  277. package/dist/i18n/messages/acp.d.ts +1 -1
  278. package/dist/i18n/messages/acp.js +1 -1
  279. package/dist/i18n/messages/agents.d.ts +1 -1
  280. package/dist/i18n/messages/agents.js +1 -1
  281. package/dist/i18n/messages/approval.d.ts +1 -1
  282. package/dist/i18n/messages/approval.js +1 -1
  283. package/dist/i18n/messages/auth.d.ts +1 -1
  284. package/dist/i18n/messages/auth.js +1 -1
  285. package/dist/i18n/messages/cli.d.ts +1 -1
  286. package/dist/i18n/messages/cli.js +1 -1
  287. package/dist/i18n/messages/config-keys.js +12 -12
  288. package/dist/i18n/messages/config.d.ts +1 -1
  289. package/dist/i18n/messages/config.js +3 -3
  290. package/dist/i18n/messages/drivers.d.ts +1 -1
  291. package/dist/i18n/messages/drivers.js +1 -1
  292. package/dist/i18n/messages/errors.d.ts +1 -1
  293. package/dist/i18n/messages/errors.js +1 -1
  294. package/dist/i18n/messages/interactive-line.d.ts +1 -1
  295. package/dist/i18n/messages/interactive-line.js +1 -1
  296. package/dist/i18n/messages/interactive-startup.d.ts +1 -1
  297. package/dist/i18n/messages/interactive-startup.js +1 -1
  298. package/dist/i18n/messages/interactive-view.d.ts +1 -1
  299. package/dist/i18n/messages/interactive-view.js +1 -1
  300. package/dist/i18n/messages/interactive.d.ts +1 -1
  301. package/dist/i18n/messages/interactive.js +1 -1
  302. package/dist/i18n/messages/memory.d.ts +1 -1
  303. package/dist/i18n/messages/memory.js +1 -1
  304. package/dist/i18n/messages/panels.d.ts +1 -1
  305. package/dist/i18n/messages/panels.js +1 -1
  306. package/dist/i18n/messages/permissions.d.ts +1 -1
  307. package/dist/i18n/messages/permissions.js +1 -1
  308. package/dist/i18n/messages/plan.d.ts +1 -1
  309. package/dist/i18n/messages/plan.js +1 -1
  310. package/dist/i18n/messages/print.d.ts +2 -2
  311. package/dist/i18n/messages/print.js +2 -2
  312. package/dist/i18n/messages/report-context.d.ts +1 -1
  313. package/dist/i18n/messages/report-context.js +1 -1
  314. package/dist/i18n/messages/report.d.ts +1 -1
  315. package/dist/i18n/messages/report.js +1 -1
  316. package/dist/i18n/messages/rewind.d.ts +1 -1
  317. package/dist/i18n/messages/rewind.js +1 -1
  318. package/dist/i18n/messages/session.d.ts +1 -1
  319. package/dist/i18n/messages/session.js +1 -1
  320. package/dist/i18n/messages/settings.d.ts +1 -1
  321. package/dist/i18n/messages/settings.js +1 -1
  322. package/dist/i18n/messages/subcommands.d.ts +1 -1
  323. package/dist/i18n/messages/subcommands.js +1 -1
  324. package/dist/i18n/messages/trace.d.ts +1 -1
  325. package/dist/i18n/messages/trace.js +1 -1
  326. package/dist/i18n/types.d.ts +1 -1
  327. package/dist/i18n/types.js +1 -1
  328. package/dist/memory/frontmatter.d.ts +1 -1
  329. package/dist/memory/frontmatter.js +1 -1
  330. package/dist/memory/index.d.ts +1 -1
  331. package/dist/memory/index.js +1 -1
  332. package/dist/memory/lock.d.ts +1 -1
  333. package/dist/memory/lock.js +1 -1
  334. package/dist/memory/paths.d.ts +1 -1
  335. package/dist/memory/paths.js +1 -1
  336. package/dist/memory/runtime.d.ts +1 -1
  337. package/dist/memory/runtime.js +1 -1
  338. package/dist/memory/secrets.d.ts +1 -1
  339. package/dist/memory/secrets.js +1 -1
  340. package/dist/memory/section.d.ts +1 -1
  341. package/dist/memory/section.js +1 -1
  342. package/dist/memory/store.d.ts +1 -1
  343. package/dist/memory/store.js +1 -1
  344. package/dist/memory/tool.d.ts +1 -1
  345. package/dist/memory/tool.js +1 -1
  346. package/dist/modes/acp/acp-auth-gate.d.ts +1 -1
  347. package/dist/modes/acp/acp-auth-gate.js +1 -1
  348. package/dist/modes/acp/acp-config.d.ts +1 -1
  349. package/dist/modes/acp/acp-config.js +1 -1
  350. package/dist/modes/acp/acp-connection.d.ts +1 -1
  351. package/dist/modes/acp/acp-connection.js +1 -1
  352. package/dist/modes/acp/acp-events.d.ts +1 -1
  353. package/dist/modes/acp/acp-events.js +1 -1
  354. package/dist/modes/acp/acp-mode.d.ts +1 -1
  355. package/dist/modes/acp/acp-mode.js +1 -1
  356. package/dist/modes/acp/acp-server.d.ts +2 -2
  357. package/dist/modes/acp/acp-server.js +2 -2
  358. package/dist/modes/acp/acp-sessions.d.ts +2 -2
  359. package/dist/modes/acp/acp-sessions.js +2 -2
  360. package/dist/modes/acp/acp-tool-text.d.ts +1 -1
  361. package/dist/modes/acp/acp-tool-text.js +1 -1
  362. package/dist/modes/commands-core.js +1 -1
  363. package/dist/modes/image-input.d.ts +1 -1
  364. package/dist/modes/image-input.js +1 -1
  365. package/dist/modes/interactive/agent-bar.d.ts +1 -1
  366. package/dist/modes/interactive/agent-bar.js +1 -1
  367. package/dist/modes/interactive/agent-transcript.d.ts +1 -1
  368. package/dist/modes/interactive/agent-transcript.js +1 -1
  369. package/dist/modes/interactive/agent-view.d.ts +1 -1
  370. package/dist/modes/interactive/agent-view.js +1 -1
  371. package/dist/modes/interactive/approval-dock.d.ts +1 -1
  372. package/dist/modes/interactive/approval-dock.js +1 -1
  373. package/dist/modes/interactive/config-panel.d.ts +1 -1
  374. package/dist/modes/interactive/config-panel.js +1 -1
  375. package/dist/modes/interactive/config-ui.d.ts +1 -1
  376. package/dist/modes/interactive/config-ui.js +1 -1
  377. package/dist/modes/interactive/memory-panel.d.ts +1 -1
  378. package/dist/modes/interactive/memory-panel.js +1 -1
  379. package/dist/modes/interactive/plan-command.d.ts +1 -1
  380. package/dist/modes/interactive/plan-command.js +1 -1
  381. package/dist/modes/interactive/plan-dialog.d.ts +1 -1
  382. package/dist/modes/interactive/plan-dialog.js +1 -1
  383. package/dist/modes/interactive/plan-flow.d.ts +1 -1
  384. package/dist/modes/interactive/plan-flow.js +1 -1
  385. package/dist/modes/interactive/subagent-view.d.ts +1 -1
  386. package/dist/modes/interactive/subagent-view.js +1 -1
  387. package/dist/modes/interactive/task-background.d.ts +1 -1
  388. package/dist/modes/interactive/task-background.js +1 -1
  389. package/dist/modes/interactive/trace-view.d.ts +1 -1
  390. package/dist/modes/interactive/trace-view.js +1 -1
  391. package/dist/modes/print/json-event.d.ts +1 -1
  392. package/dist/modes/print/json-event.js +2 -2
  393. package/dist/modes/print/print-mode.d.ts +1 -1
  394. package/dist/modes/print/print-mode.js +1 -1
  395. package/dist/modes/print/search-hint.d.ts +1 -1
  396. package/dist/modes/print/search-hint.js +1 -1
  397. package/dist/modes/rpc/commands.js +2 -2
  398. package/dist/permissions/auto-safe.d.ts +1 -1
  399. package/dist/permissions/auto-safe.js +1 -1
  400. package/dist/permissions/bypass.d.ts +1 -1
  401. package/dist/permissions/bypass.js +1 -1
  402. package/dist/permissions/classifier.d.ts +1 -1
  403. package/dist/permissions/classifier.js +1 -1
  404. package/dist/permissions/memory-class.d.ts +1 -1
  405. package/dist/permissions/memory-class.js +1 -1
  406. package/dist/permissions/pipeline.d.ts +2 -2
  407. package/dist/permissions/pipeline.js +2 -2
  408. package/dist/permissions/protected.d.ts +1 -1
  409. package/dist/permissions/protected.js +1 -1
  410. package/dist/permissions/readonly-bash.d.ts +1 -1
  411. package/dist/permissions/readonly-bash.js +1 -1
  412. package/dist/permissions/types.d.ts +2 -2
  413. package/dist/plan/done-markers.d.ts +1 -1
  414. package/dist/plan/done-markers.js +1 -1
  415. package/dist/plan/extract.d.ts +1 -1
  416. package/dist/plan/extract.js +1 -1
  417. package/dist/plan/prompts.d.ts +1 -1
  418. package/dist/plan/prompts.js +1 -1
  419. package/dist/plan/store.d.ts +1 -1
  420. package/dist/plan/store.js +1 -1
  421. package/dist/rpc.d.ts +3 -3
  422. package/dist/rpc.js +3 -3
  423. package/dist/sandbox/bash.d.ts +1 -1
  424. package/dist/sandbox/bash.js +1 -1
  425. package/dist/sandbox/detect.d.ts +1 -1
  426. package/dist/sandbox/detect.js +1 -1
  427. package/dist/sandbox/index.d.ts +1 -1
  428. package/dist/sandbox/index.js +1 -1
  429. package/dist/sandbox/profile.d.ts +1 -1
  430. package/dist/sandbox/profile.js +1 -1
  431. package/dist/sandbox/wrap.d.ts +1 -1
  432. package/dist/sandbox/wrap.js +1 -1
  433. package/dist/sdk.d.ts +3 -3
  434. package/dist/sdk.js +2 -2
  435. package/dist/session/line-reader.d.ts +1 -1
  436. package/dist/session/line-reader.js +1 -1
  437. package/dist/session/list.d.ts +1 -1
  438. package/dist/session/list.js +1 -1
  439. package/dist/session/migrate.d.ts +1 -1
  440. package/dist/session/migrate.js +1 -1
  441. package/dist/session/store.d.ts +1 -1
  442. package/dist/session/store.js +1 -1
  443. package/dist/skills/builtin.js +2 -2
  444. package/dist/tools/background-jobs.d.ts +1 -1
  445. package/dist/tools/background-jobs.js +1 -1
  446. package/dist/tools/clipboard-image.d.ts +1 -1
  447. package/dist/tools/clipboard-image.js +1 -1
  448. package/dist/tools/edit.d.ts +1 -1
  449. package/dist/tools/edit.js +1 -1
  450. package/dist/tools/grep.d.ts +1 -1
  451. package/dist/tools/grep.js +1 -1
  452. package/dist/tools/image-resize.d.ts +1 -1
  453. package/dist/tools/image-resize.js +1 -1
  454. package/dist/tools/read-lines.d.ts +1 -1
  455. package/dist/tools/read-lines.js +1 -1
  456. package/dist/tools/read.d.ts +1 -1
  457. package/dist/tools/read.js +1 -1
  458. package/dist/tools/task-ctl.d.ts +1 -1
  459. package/dist/tools/task-ctl.js +1 -1
  460. package/dist/tools/task.d.ts +2 -2
  461. package/dist/tools/task.js +2 -2
  462. package/dist/tools/types.d.ts +3 -3
  463. package/dist/tools/types.js +1 -1
  464. package/dist/trace/build.d.ts +1 -1
  465. package/dist/trace/build.js +1 -1
  466. package/dist/trace/detail.d.ts +1 -1
  467. package/dist/trace/detail.js +1 -1
  468. package/dist/trace/flatten.d.ts +1 -1
  469. package/dist/trace/flatten.js +1 -1
  470. package/dist/trace/format.d.ts +1 -1
  471. package/dist/trace/format.js +1 -1
  472. package/dist/trace/html-template.d.ts +1 -1
  473. package/dist/trace/html-template.js +1 -1
  474. package/dist/trace/html.d.ts +1 -1
  475. package/dist/trace/html.js +1 -1
  476. package/dist/trace/query-session.d.ts +1 -1
  477. package/dist/trace/query-session.js +1 -1
  478. package/dist/trace/query.d.ts +1 -1
  479. package/dist/trace/query.js +1 -1
  480. package/dist/trace/types.d.ts +1 -1
  481. package/dist/trace/types.js +1 -1
  482. package/dist/tui/components/settings-list.d.ts +1 -1
  483. package/dist/tui/components/settings-list.js +1 -1
  484. package/docs/README.md +85 -0
  485. package/docs/assets/ama-wordmark-dark.svg +37 -0
  486. package/docs/assets/ama-wordmark-light.svg +37 -0
  487. package/docs/en/README.md +39 -0
  488. package/docs/en/{permissions.md → guides/permissions.md} +14 -14
  489. package/docs/en/{providers.md → guides/providers.md} +6 -6
  490. package/docs/en/{sessions.md → guides/sessions.md} +6 -6
  491. package/docs/en/{tui.md → guides/tui.md} +15 -15
  492. package/docs/en/{acp.md → reference/acp.md} +6 -6
  493. package/docs/en/{host-api.md → reference/host-api.md} +7 -7
  494. package/docs/en/{rpc.md → reference/rpc.md} +13 -13
  495. package/docs/{agents.md → guides/agents.md} +13 -13
  496. package/docs/{codemode.md → guides/codemode.md} +3 -3
  497. package/docs/{hooks.md → guides/hooks.md} +2 -2
  498. package/docs/guides/i18n.md +93 -0
  499. package/docs/{memory.md → guides/memory.md} +1 -1
  500. package/docs/{permissions.md → guides/permissions.md} +2 -2
  501. package/docs/{plan.md → guides/plan.md} +4 -4
  502. package/docs/{providers.md → guides/providers.md} +4 -4
  503. package/docs/{sessions.md → guides/sessions.md} +5 -5
  504. package/docs/{tui.md → guides/tui.md} +8 -8
  505. package/docs/{acp.md → reference/acp.md} +5 -5
  506. package/docs/{host-api.md → reference/host-api.md} +4 -4
  507. package/docs/{rpc.md → reference/rpc.md} +11 -11
  508. package/docs/{session-format.md → reference/session-format.md} +7 -7
  509. package/package.json +12 -23
  510. package/docs/rewind-plan.md +0 -181
  511. package/docs/tui-design.md +0 -764
  512. /package/docs/{sandbox.md → guides/sandbox.md} +0 -0
@@ -1,6 +1,6 @@
1
1
  # 权限模式与 auto 判定
2
2
 
3
- 本文写 ama 的六种权限模式、每次工具调用的判定顺序,以及 `auto` 模式「规则层 → 静态判定 → 模型分类器」三层怎样决定放行还是询问。总体设计见 [design.md](design.md) §6.3、§7;Hook 的输入输出见 [hooks.md](hooks.md)。
3
+ 本文写 ama 的六种权限模式、每次工具调用的判定顺序,以及 `auto` 模式「规则层 → 静态判定 → 模型分类器」三层怎样决定放行还是询问。总体设计见 [design.md](../design/design.md) §6.3、§7;Hook 的输入输出见 [hooks.md](hooks.md)。
4
4
 
5
5
  ## 模式
6
6
 
@@ -42,7 +42,7 @@
42
42
  | 外部 Agent(claude / codex / ACP)请求权限 | `[claude · 会话 abc12345]` | 外部 Agent 给的标题、种类、涉及路径与输入摘要 | 只交给人:宿主 → 界面 → 无人值守拒绝,auto 分类器与模型不参与 |
43
43
  | 外部 Agent 本会话首次运行 | 标题「首次运行外部 Agent」 | 说明(以你在该 CLI 的登录运行)与模式 | allow / deny 规则 `task(<id>)`、`full-auto` 放行,其余交给人(不经分类器) |
44
44
 
45
- 外部 Agent 的「本会话允许」由它自己记住。Manual 模式下 `task(agent=…)` 的 task 调用审批与首次运行确认合并为一次(见 [agents.md](agents.md)「在 task 里使用」)。RPC 的 `context` 是 `{ depth, taskId, origin }`([rpc.md](rpc.md)「审批」)。
45
+ 外部 Agent 的「本会话允许」由它自己记住。Manual 模式下 `task(agent=…)` 的 task 调用审批与首次运行确认合并为一次(见 [agents.md](agents.md)「在 task 里使用」)。RPC 的 `context` 是 `{ depth, taskId, origin }`([rpc.md](../reference/rpc.md)「审批」)。
46
46
 
47
47
  ## plan 模式与只读命令
48
48
 
@@ -1,6 +1,6 @@
1
1
  # Plan 模式
2
2
 
3
- plan 模式让 ama 先只读调研、写出一份结构化的计划,经人批准后再切回执行模式按计划推进。本文写流程、计划格式、审批的几种入口、配置与持久化;权限细节见 [permissions.md](permissions.md)「plan 模式与只读命令」,设计依据见 [wave5-plan.md](wave5-plan.md) §6。
3
+ plan 模式让 ama 先只读调研、写出一份结构化的计划,经人批准后再切回执行模式按计划推进。本文写流程、计划格式、审批的几种入口、配置与持久化;权限细节见 [permissions.md](permissions.md)「plan 模式与只读命令」,设计依据见 [wave5-plan.md](../history/wave5-plan.md) §6。
4
4
 
5
5
  ## 流程
6
6
 
@@ -54,7 +54,7 @@ plan 模式让 ama 先只读调研、写出一份结构化的计划,经人批
54
54
  | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
55
55
  | 交互(TUI) | 用户在底部审批框里选:批准并执行 / 批准,在新上下文执行(两者接着选执行模式:回到进入前的模式 / Accept edits / Auto)/ 继续修改(框内或外部编辑器写意见)/ 放弃并退出 Plan;`e` 在 `$VISUAL` / `$EDITOR` 里改计划,Esc 放弃但留在 Plan。见 [tui.md](tui.md)「Plan 审批」 |
56
56
  | 交互(line,`--no-tui`) | `/plan approve [模式\|fresh]`、`/plan reject`;回复 `1` / `2` / `3` 也能批准(进入前的模式 / Accept edits / Auto),其它内容作为修改意见、留在 plan |
57
- | RPC,声明了 `plans` 能力 | 客户端:`plan_proposed` → `plan_response`(见 [rpc.md](rpc.md)「计划审批」) |
57
+ | RPC,声明了 `plans` 能力 | 客户端:`plan_proposed` → `plan_response`(见 [rpc.md](../reference/rpc.md)「计划审批」) |
58
58
  | SDK,给了 `plan.onProposed` | 回调:运行结束后调用,返回 `{ decision, mode?, feedback?, editedMarkdown? }`;返回 undefined 留待 `session.plan.respond()` |
59
59
  | `-p`、未声明能力的 RPC、无回调的 SDK | 配置 `plan.unattended`:`stop`(缺省)落盘计划后停下,不切模式、不执行;`approve` 在同一次运行里自动批准并执行 |
60
60
 
@@ -65,7 +65,7 @@ plan 模式让 ama 先只读调研、写出一份结构化的计划,经人批
65
65
  - **revise**:留在 plan;`feedback` 作为普通用户消息开回合,模型整份重写计划,新版本号 +1,旧版标 superseded。
66
66
  - **reject**:计划标 rejected,留在 plan。交互界面的「放弃,退出 Plan 模式」在 reject 之后切回进入前的模式;审批框里按 Esc 是 reject 但留在 plan。
67
67
 
68
- **进度记法**:活动工具集里有 `todo`(`tools.default: ["+todo"]`、`--tools …,todo`)时,交接消息请模型「按 todo 推进,每完成一步 todo update」;没有时(`default` 预设缺省不含 todo,见 D20 与 [docs/benchmarks/](https://github.com/Owlbay/armadra-agent/tree/main/docs/benchmarks))请模型每完成一步在回复里**单独一行**写 `[DONE:<步骤 id>]`(如 `[DONE:S1]`),ama 在回合结束时读这些标记:对应的计划待办标 done,没有进行中的项时下一个 pending 转 in_progress,照常落 `ama.todo`、发 `todo_updated`,界面与 RPC 的进度显示不受影响。「在新上下文执行」的首条消息用同样的规则。
68
+ **进度记法**:活动工具集里有 `todo`(`tools.default: ["+todo"]`、`--tools …,todo`)时,交接消息请模型「按 todo 推进,每完成一步 todo update」;没有时(`default` 预设缺省不含 todo,见 D20 与 [docs/benchmarks/](https://github.com/AMA-Link/armadra-agent/tree/main/docs/benchmarks))请模型每完成一步在回复里**单独一行**写 `[DONE:<步骤 id>]`(如 `[DONE:S1]`),ama 在回合结束时读这些标记:对应的计划待办标 done,没有进行中的项时下一个 pending 转 in_progress,照常落 `ama.todo`、发 `todo_updated`,界面与 RPC 的进度显示不受影响。「在新上下文执行」的首条消息用同样的规则。
69
69
 
70
70
  客户端改过的全文(`editedMarkdown`,界面里「在外部编辑器里改」)先落一份新版本,交接消息用改后的全文。
71
71
 
@@ -100,7 +100,7 @@ plan 模式让 ama 先只读调研、写出一份结构化的计划,经人批
100
100
 
101
101
  ## 接口
102
102
 
103
- - RPC:命令 `plan_response` / `get_plan` / `get_todos`,能力 `plans`,事件 `plan_proposed` / `plan_resolved` / `todo_updated`,见 [rpc.md](rpc.md)。
103
+ - RPC:命令 `plan_response` / `get_plan` / `get_todos`,能力 `plans`,事件 `plan_proposed` / `plan_resolved` / `todo_updated`,见 [rpc.md](../reference/rpc.md)。
104
104
  - SDK:`createAgentSession({ plan: { bash?, directory?, unattended?, model?, thinkingLevel?, onProposed? } })`;返回的会话有 `session.plan.current()`、`session.plan.respond(response)`、`session.plan.todos()`。
105
105
  - 进程内:`planController(session)`(`src/agent/session-plan.ts`)给界面用——`pending()`、`respond()`、`proposeFromLastReply()`、`adopt()`、`setAttendance()`。
106
106
  - 交互界面:底部审批框(四个选项 + 执行模式、`e` 编辑计划、Esc 留在 Plan)、`/plan` 面板,`/plan <目标>` 进入 Plan 并发出目标,`/plan approve [模式|fresh]` / `/plan reject` 不开对话框直接作答;见 [tui.md](tui.md)「Plan 审批」。
@@ -1,6 +1,6 @@
1
1
  # 供应商与模型
2
2
 
3
- 内置供应商、模型引用、API Key、自定义供应商与中转站、各协议的 compat 开关,以及缓存。设计依据见 [design.md](design.md) §3、§9.1。
3
+ 内置供应商、模型引用、API Key、自定义供应商与中转站、各协议的 compat 开关,以及缓存。设计依据见 [design.md](../design/design.md) §3、§9.1。
4
4
 
5
5
  ## 配置目录
6
6
 
@@ -629,9 +629,9 @@ OpenRouter 的 Messages 接口只在 `message_delta` 里给缓存 usage,解析
629
629
 
630
630
  长任务的主要用量是缓存读取:前缀一旦变化,此后每次请求都要按全价重读。ama 分三层处理缓存:**协议层**按各家写法打断点、发缓存键与保留层级,并标记响应里有没有缓存字段;**会话层**记录每次请求的前缀指纹,检测未命中、判定端点报不报缓存、在长工具运行期间保温;**展示层**是状态栏、`/session`、RPC 统计与 `ama models cache-probe`(界面怎么读见 [tui.md](tui.md)「缓存与上下文」)。
631
631
 
632
- 前缀稳定由组装保证:系统提示节顺序固定、不含时间戳,工具按名排序,会话中途的变化只以 system 补丁追加在末尾([session-format.md](session-format.md)「消息」)。
632
+ 前缀稳定由组装保证:系统提示节顺序固定、不含时间戳,工具按名排序,会话中途的变化只以 system 补丁追加在末尾([session-format.md](../reference/session-format.md)「消息」)。
633
633
 
634
- **开头的 system 与工具声明在会话内只写一次。** 对话开始之后的节补丁(resume 时 AGENTS.md、Skills 或 SessionStart Hook 输出变了,宿主 instructions 刷新,压缩后记忆节重新渲染)不改写开头:没有打开 `supportsMidConvoSystemMessages` 的协议把它渲染成 `<system-reminder>` 包裹的 user 消息,插在补丁所在的位置,之前的请求仍是逐字节前缀。实测 DeepSeek 接受对话中途的 system 消息、前缀缓存也保持,但模型仍按开头那条回答,所以 DeepSeek 不打开这个开关([cache-midconvo-2026-10-09](benchmarks/cache-midconvo-2026-10-09.md))。
634
+ **开头的 system 与工具声明在会话内只写一次。** 对话开始之后的节补丁(resume 时 AGENTS.md、Skills 或 SessionStart Hook 输出变了,宿主 instructions 刷新,压缩后记忆节重新渲染)不改写开头:没有打开 `supportsMidConvoSystemMessages` 的协议把它渲染成 `<system-reminder>` 包裹的 user 消息,插在补丁所在的位置,之前的请求仍是逐字节前缀。实测 DeepSeek 接受对话中途的 system 消息、前缀缓存也保持,但模型仍按开头那条回答,所以 DeepSeek 不打开这个开关([cache-midconvo-2026-10-09](../benchmarks/cache-midconvo-2026-10-09.md))。
635
635
 
636
636
  工具表同理:对话开始后新加的工具追加在工具表末尾;**移除工具不删声明**,提醒里写一句 `Tool "X" is no longer available in this session; calls to it are rejected.`,模型仍去调用时执行层拒绝(`Tool "X" is not available in this session.`);再加回只提醒 `Tool "X" is available again.`,声明沿用第一次发送的版本。系统提示的 `tools` / `rules` 两节在对话开始后也冻结为已发送的文本。
637
637
 
@@ -748,7 +748,7 @@ xAI、Mistral、OpenRouter、Google 没有承诺的 TTL,留空:不保温、
748
748
  | 取消 | 换模型、换思考级别、压缩、`/tree`、退出时取消,下一次真实请求再开始 |
749
749
  | 记账 | 成功的保温追加 `usage{kind:"cache_warm"}` 条目(不进上下文),计入 `/session` 费用与 RPC 统计;事件 `cache_warm{scheduled|sent|stopped}` |
750
750
 
751
- 宿主可以经 `api.cache.onWarmingDecision` 否决或强制每一次保温([host-api.md](host-api.md)「缓存保温」)。子会话缺省不保温(`cache.warmSubagents: true` 打开)。按目录价格估算,长工具运行期间几乎总是划算;空闲保温只对贵模型、长前缀划算。
751
+ 宿主可以经 `api.cache.onWarmingDecision` 否决或强制每一次保温([host-api.md](../reference/host-api.md)「缓存保温」)。子会话缺省不保温(`cache.warmSubagents: true` 打开)。按目录价格估算,长工具运行期间几乎总是划算;空闲保温只对贵模型、长前缀划算。
752
752
 
753
753
  ### 压缩摘要续写
754
754
 
@@ -1,6 +1,6 @@
1
1
  # 会话统计、检索、复用、导出与检查点
2
2
 
3
- 这几条命令都只读会话目录(`<数据目录>/sessions`,`--session-dir` 可改;文件格式见 [session-format.md](session-format.md)):不加锁、不修复半行、不改文件,正在运行的会话也能读。会话文件按块逐行读取,不整份读进内存:`ama sessions list` 只解析每个文件的头、首条条目、改名与首条提示,其余行只看类型,几十 MB 的会话也不会让内存随文件大小上涨;`--resume` 打开会话同样逐行解析。范围缺省是**当前目录**的会话,`--all` 看全部。
3
+ 这几条命令都只读会话目录(`<数据目录>/sessions`,`--session-dir` 可改;文件格式见 [session-format.md](../reference/session-format.md)):不加锁、不修复半行、不改文件,正在运行的会话也能读。会话文件按块逐行读取,不整份读进内存:`ama sessions list` 只解析每个文件的头、首条条目、改名与首条提示,其余行只看类型,几十 MB 的会话也不会让内存随文件大小上涨;`--resume` 打开会话同样逐行解析。范围缺省是**当前目录**的会话,`--all` 看全部。
4
4
 
5
5
  ## 统计:`ama stats`
6
6
 
@@ -154,7 +154,7 @@ ama sessions trace <id|文件> [--html [文件]] [--json] [--output <文件>] [-
154
154
  - `--no-content`:只留结构、时间与数字(没有提示、参数、结果,也没有错误原文),适合只想分享性能问题时。
155
155
  - `--children`:内嵌 ama 子 Agent 子会话里节点的预览;缺省只嵌它们的结构与数字。外部 Agent 本来就只有骨架。
156
156
  - 预览按条截断(参数 500、其余 2000 字符),整份预览上限 4 MB 字符,超出后更早的预览置空并在详情里注明。
157
- - `--json`(或 `--format json`):与 RPC `get_trace` 同形的 JSON([rpc.md](rpc.md)「轨迹」),包含全部回合、已加载的子会话轨迹与本会话节点的 `previews`
157
+ - `--json`(或 `--format json`):与 RPC `get_trace` 同形的 JSON([rpc.md](../reference/rpc.md)「轨迹」),包含全部回合、已加载的子会话轨迹与本会话节点的 `previews`
158
158
  (`--no-content` 时没有)。
159
159
  - 输出:`--html <文件>`(文件名以 `.html` / `.htm` 结尾时才当作值,否则用 `--output`)或 `--output <文件>` 写文件(0600),否则写 stdout。
160
160
  `--open` 写好后用系统浏览器打开(没给文件时写到临时目录)。
@@ -163,7 +163,7 @@ ama sessions trace <id|文件> [--html [文件]] [--json] [--output <文件>] [-
163
163
 
164
164
  ## 检查点与文件备份
165
165
 
166
- 回滚代码(`/rewind`,设计见 [rewind-plan.md](rewind-plan.md))依赖检查点:每个新回合开始时,ama 记下 edit / write 改过的文件当时的内容。
166
+ 回滚代码(`/rewind`,设计见 [rewind-plan.md](../history/rewind-plan.md))依赖检查点:每个新回合开始时,ama 记下 edit / write 改过的文件当时的内容。
167
167
 
168
168
  - **存储位置**:备份按内容 sha256 存在 `<数据目录>/file-history/blobs/<前 2 位>/<sha256>`,原字节、不压缩;多个会话、多个检查点共用,同内容只存一份。会话文件里只有 `ama.checkpoint` / `ama.checkpoint-track` 两类 `custom` 条目(记哈希,不进上下文)。会话目录不在缺省位置时(`--session-dir`、宿主 profile 的 `sessionDir`),目录登记在 `file-history/roots.json`,清理时一并扫描。
169
169
  - **跟踪范围**:edit / write(含 codemode 内层调用与 task 子会话)第一次写某文件之前备份它;之后每个新回合按当前磁盘内容重拍已跟踪的文件,所以 bash 或手动对这些文件的改动也会进下一个检查点。bash 新建或改动的其它文件不跟踪。
@@ -192,7 +192,7 @@ ama sessions trace <id|文件> [--html [文件]] [--json] [--output <文件>] [-
192
192
 
193
193
  ## 回滚(会话内)
194
194
 
195
- `/rewind`、RPC `rewind`、SDK `session.rewind()` 回到某条用户消息之前(设计见 [rewind-plan.md](rewind-plan.md)):
195
+ `/rewind`、RPC `rewind`、SDK `session.rewind()` 回到某条用户消息之前(设计见 [rewind-plan.md](../history/rewind-plan.md)):
196
196
 
197
197
  - 回滚点是活动路径上开启新回合的用户消息,从旧到新;运行中插话、排队消息与 Stop Hook 续跑的消息并入当前回合,不单列。运行中回滚报 `busy`。
198
198
  - 对话回滚复用 `/tree` 换叶子:离开的分支留在文件里,可以再从 `/tree` 回去;模型、思考级别与权限模式保持当前,不随回滚改变。之后第一次请求的 system、工具表与落点之前的消息和回滚前逐字节相同,提示缓存照常命中。
@@ -200,7 +200,7 @@ ama sessions trace <id|文件> [--html [文件]] [--json] [--output <文件>] [-
200
200
  - 仅对话或仅代码时,下一次提示前在末尾追加一条 `ama.rewind-note` 告诉模型哪些文件与对话不一致;对话 + 代码不追加。
201
201
  - 内存会话与 `checkpoints.mode: "off"` 不建检查点,只能仅对话。
202
202
  - 运行中 Esc 中断、本回合还没有任何回复或工具调用时,撤回该回合并回填原消息(`ui.restoreOnCancel`,缺省 true)。
203
- - 回到图片被降级之前时图片从会话文件回读;文件已被外部改写、读不回时图片保留为空,并告警一次(`AMA_LOG`,TUI 显示在通知区;见 [session-format.md](session-format.md)「内存表示」)。
203
+ - 回到图片被降级之前时图片从会话文件回读;文件已被外部改写、读不回时图片保留为空,并告警一次(`AMA_LOG`,TUI 显示在通知区;见 [session-format.md](../reference/session-format.md)「内存表示」)。
204
204
 
205
205
  ## 请求明细(设计,未实现)
206
206
 
@@ -1,12 +1,12 @@
1
1
  # 终端界面
2
2
 
3
- 交互模式的使用说明,以及终端组件库 `@armadra/agent/tui` 的 API。设计依据见 [design.md](design.md) §12。
3
+ 交互模式的使用说明,以及终端组件库 `@armadra/agent/tui` 的 API。设计依据见 [design.md](../design/design.md) §12。
4
4
 
5
5
  `ama` 在终端里直接运行(stdin / stdout 都是 TTY、`TERM` 不是 `dumb`、没有 `--no-tui`)时进入交互模式。界面只用**主屏**:对话历史滚进终端回滚,不切备用屏,所以在 tmux 里 `capture-pane` 能读到完整对话,退出后对话也留在屏幕上。
6
6
 
7
7
  ## 布局
8
8
 
9
- 视觉规格(配色、字形、逐屏样稿)见 [tui-design.md](tui-design.md)。层级用缩进表达:第 0 列是用户 `›`、工具 `⏺` 与提示符号,第 2 列是结果连接符 `⎿`,第 4 列是工具输出;去掉颜色(`NO_COLOR`、`capture-pane` 不带 `-e`)也读得出结构。
9
+ 视觉规格(配色、字形、逐屏样稿)见 [tui-design.md](../design/tui-design.md)。层级用缩进表达:第 0 列是用户 `›`、工具 `⏺` 与提示符号,第 2 列是结果连接符 `⎿`,第 4 列是工具输出;去掉颜色(`NO_COLOR`、`capture-pane` 不带 `-e`)也读得出结构。
10
10
 
11
11
  ```
12
12
  ▄███▄ ██▄ ▄██ ▄███▄ ama 0.6.2 ← 启动头(normal 档)
@@ -148,11 +148,11 @@ Accept edits | shift+tab 切换 claude-opus-5-5 medium | Ctx 3.0% 8.2k/272k a
148
148
 
149
149
  缺省键选 `Ctrl+X` 的原因:macOS Terminal、iTerm2、tmux、Windows Terminal 都原样送达,且没有别的绑定;`Ctrl+Enter` 不开 kitty 键盘协议时与 Enter 无法区分,`Ctrl+S` 可能被 XOFF 流控吃掉,`Alt+Enter` 已是 followUp,`Alt+字母` 在 macOS 缺省不送 Meta,`Ctrl+]` 在非美式键盘上难按。可在 `keybindings.json` 改。
150
150
 
151
- line 模式(`--no-tui`)运行中输入 `/interrupt <文本>` 效果相同(空闲时就是普通提示);交互界面里也认这条命令。RPC 是 `prompt` / `steer` 的 `interrupt: true`,见 [rpc.md](rpc.md)。
151
+ line 模式(`--no-tui`)运行中输入 `/interrupt <文本>` 效果相同(空闲时就是普通提示);交互界面里也认这条命令。RPC 是 `prompt` / `steer` 的 `interrupt: true`,见 [rpc.md](../reference/rpc.md)。
152
152
 
153
153
  ## 回滚
154
154
 
155
- 设计见 [rewind-plan.md](rewind-plan.md)。每条开启新回合的用户消息都是一个回滚点;edit / write 改过的文件在消息发出前有检查点(`checkpoints.mode`,bash 改动只在下一回合重拍已跟踪文件时收进来)。
155
+ 设计见 [rewind-plan.md](../history/rewind-plan.md)。每条开启新回合的用户消息都是一个回滚点;edit / write 改过的文件在消息发出前有检查点(`checkpoints.mode`,bash 改动只在下一回合重拍已跟踪文件时收进来)。
156
156
 
157
157
  - **入口**:`/rewind`,或空闲且输入框为空时双击 Esc——第一次底部提示「再按 Esc 回滚」(1 秒消失),800 ms 内再按打开列表。输入框有字时双击 Esc 是清空(提示「再按 Esc 清空」),文字存进输入历史,↑ 取回。运行中 Esc 仍是中断;审批对话框、选择器打开时 Esc 归它们。
158
158
  - **中断即撤回**:运行中按 Esc 中断,若这一回合还没有任何回复文字或工具调用、输入框为空(`ui.restoreOnCancel`,缺省 true),自动撤回这条消息并把原文放回输入框,消息区一行「已撤回被中断的消息」。
@@ -319,7 +319,7 @@ CLI 子命令(`ama providers add` / `refresh` 的写入与 `--probe` 计费确
319
319
  - write:目标是否存在、现有行数与大小 → 新内容;覆盖本会话没读过的文件标黄。
320
320
  - edit:对原文干跑一遍,列出每处 −n/+m 行与总变化;匹配不到或不唯一时提前说明。
321
321
 
322
- 预览按严重度着色(危险红、警告黄、其余暗色),只读、有上限:每个目录最多计 2000 项,整次预览 200 ms 预算,超出只给提示、不降低严重度;超过 2 MiB 的文件只报大小。预览失败不影响审批。line 模式在问句之前逐行打印同样的预览;RPC 客户端从 `permission_request.preview` 拿到它([rpc.md](rpc.md)「审批」)。
322
+ 预览按严重度着色(危险红、警告黄、其余暗色),只读、有上限:每个目录最多计 2000 项,整次预览 200 ms 预算,超出只给提示、不降低严重度;超过 2 MiB 的文件只报大小。预览失败不影响审批。line 模式在问句之前逐行打印同样的预览;RPC 客户端从 `permission_request.preview` 拿到它([rpc.md](../reference/rpc.md)「审批」)。
323
323
 
324
324
  ## Plan 审批
325
325
 
@@ -389,7 +389,7 @@ Plan 模式(Shift+Tab、`/permission plan`、`/plan <目标>`、`--permission-
389
389
  - 按了没进去时底部提示一行(3 秒):输入框有字——「输入框有字;清空后再按 ↓ 进 Agent 栏」(每段草稿一次,光标在末行时;`↓` 照常下移);栏关闭——「Agent 栏已关闭(ui.agentBar),用 /tasks」;没有任务——「还没有子 Agent 任务」。在用 `↑` `↓` 浏览输入历史时 `↓` 只翻历史。
390
390
  - `Ctrl+B` 不进栏,是「前台任务转后台」(见上)。想要原来的「`Ctrl+B` 进栏」可在 `keybindings.json` 写 `"app.agents.focus": ["down", "ctrl+b"]` 并把 `app.tasks.background` 改成别的键。
391
391
  - 栏里:`↑` `↓` 选(列出本会话全部任务,窗口跟着滚;在第一项再按 `↑` 回到输入框),Enter 打开子 Agent 视图(选中的任务有停靠的审批时随即弹出),`b` / `Ctrl+B` 把选中的前台任务转后台(不是前台运行中的给一行提示),`x` 停止选中的任务(第一次提示「再按 x 停止 t2」,1.5 秒内再按才停),Esc 回到输入框;其它字母回到输入框并把字填进去。末行是按键提示 `↑↓ 选择 · Enter 打开 · b 转后台 · x 停止 · Esc 返回`,窄屏丢掉 `b` / `x` 两项。
392
- - 嵌入宿主(有 profile)不再缺省关闭栏;宿主自己展示子任务、不要栏时在 profile 里写 `ui.agentBar: "off"`(见 [host-api.md](host-api.md)「嵌入 Armadra」)。关闭后栏不显示,`↓` 在有任务时提示改用 `/tasks`。
392
+ - 嵌入宿主(有 profile)不再缺省关闭栏;宿主自己展示子任务、不要栏时在 profile 里写 `ui.agentBar: "off"`(见 [host-api.md](../reference/host-api.md)「嵌入 Armadra」)。关闭后栏不显示,`↓` 在有任务时提示改用 `/tasks`。
393
393
 
394
394
  ### 子 Agent 视图
395
395
 
@@ -409,7 +409,7 @@ t2 explore · 运行中 1m05s · 3 轮 · ↑12k ↓3.4k · Esc 返回 · /tasks
409
409
 
410
410
  - 正文实时跟随:ama 子 Agent 显示子会话的全部消息与工具调用(与消息区同样的渲染);子会话句柄已被释放(保留上限 16 个)或会话是 resume 进来的,就只读加载子会话文件,任务再次运行时接上实时事件。外部 Agent(claude / codex / ACP)显示本进程内存里的实时输出(文本、思考、工具起止、回合、提示;最多 2000 条 / 1 MB,不落盘);ama 重启后只剩一行说明「用原 CLI resume <会话 id> 查看全文」。
411
411
  - 输入框为空时:`↑` / PgUp 上翻(暂停跟随,底部提示「已暂停跟随 · End 继续」),`↓` / PgDn 下翻,End(暂停时也可按 `f`)回到跟随;`←` `→` 切到上一个 / 下一个任务;Esc 返回主界面。输入框有字时 Esc 先清空。
412
- - Enter 把输入发给这个子 Agent(会话里记为 `origin: "direct"` 的 user 消息,见 [session-format.md](session-format.md)):ama 子 Agent 运行中 → 排到它本轮结束时送达;外部 Agent 运行中或任务还在排队 → 等本次运行结束后续聊;已结束 → 后台续聊(同 `task_ctl send`,完成后主会话照常收到 `<task-notification>`)。底部一行提示发送结果。父会话的模型不知道你直接和子 Agent 说过话,结果经结束通知自然带回。
412
+ - Enter 把输入发给这个子 Agent(会话里记为 `origin: "direct"` 的 user 消息,见 [session-format.md](../reference/session-format.md)):ama 子 Agent 运行中 → 排到它本轮结束时送达;外部 Agent 运行中或任务还在排队 → 等本次运行结束后续聊;已结束 → 后台续聊(同 `task_ctl send`,完成后主会话照常收到 `<task-notification>`)。底部一行提示发送结果。父会话的模型不知道你直接和子 Agent 说过话,结果经结束通知自然带回。
413
413
  - `Ctrl+X` 打断并发送给这个子 Agent:ama 子 Agent 运行中 → 中止它当前这一轮(工具按中断收尾)并立即以这条消息开新一轮,任务照常完成、照常通知主会话;外部 Agent 的驱动能中断单个回合(ACP `session/cancel`、Claude stream-json interrupt、Codex `turn/interrupt`)→ 中断后立即以它(连同之前排着的消息)开下一回合;不能(oneshot、宿主驱动)或任务还在并发池排队 → 退回排队并提示「不支持打断,已排队」;已结束 → 同 Enter 的后台续聊。`ui.enterWhileRunning: "interrupt"` 时与 Enter 互换。主会话不受影响。
414
414
  - 视图里 Esc 不中断任何东西:Esc 只是返回。停止子任务用 `/tasks stop <id>`,转后台用 `Ctrl+B` 或 `/tasks bg [id]`——在视图输入框里也能用(视图里只认这两条命令)。
415
415
  - 正在看的任务等审批时标题显示「等待审批」,审批框照常弹在视图上面(带 `[task:<类型>]` 来源);它的审批停靠在栏里时,打开视图即弹出。
@@ -467,7 +467,7 @@ t2 explore · 运行中 1m05s · 3 轮 · ↑12k ↓3.4k · Esc 返回 · /tasks
467
467
  - 保温与权限分类等辅助请求收在末尾「辅助请求 N 次」一组,缺省折叠。
468
468
  - line 模式(`--ui line`、管道)里 `/trace [任务 id]` 打印同一棵树的文本(全部展开、不画条形)。
469
469
 
470
- 计时来自会话文件里的 `custom{customType:"ama.trace"}` 条目([session-format.md](session-format.md)),只有 id、时间与计数;
470
+ 计时来自会话文件里的 `custom{customType:"ama.trace"}` 条目([session-format.md](../reference/session-format.md)),只有 id、时间与计数;
471
471
  提示、参数、结果的预览从会话条目按需读取,不进轨迹本身。
472
472
 
473
473
  ## Memory
@@ -1,13 +1,13 @@
1
1
  # ACP(Agent Client Protocol)
2
2
 
3
- [English](en/acp.md) · 简体中文
3
+ [English](../en/reference/acp.md) · 简体中文
4
4
 
5
5
  ama 在 ACP 两侧都能用:
6
6
 
7
7
  - **服务端**:`ama --mode acp` 把 ama 暴露为 ACP Agent,供 Zed、JetBrains、Armadra 的 ACP 节点驱动;
8
- - **客户端**:ama 经 ACP 驱动外部 Agent(Gemini CLI、OpenCode、Kimi、Copilot 等原生 ACP,或装了适配器的 Claude Code / Codex),见 [agents.md](agents.md)。
8
+ - **客户端**:ama 经 ACP 驱动外部 Agent(Gemini CLI、OpenCode、Kimi、Copilot 等原生 ACP,或装了适配器的 Claude Code / Codex),见 [agents.md](../guides/agents.md)。
9
9
 
10
- 协议栈零依赖、手写,只维护一份:`@armadra/agent/acp` 导出类型、分帧、客户端与假 Agent,Armadra 直接复用。设计依据见 [wave5-plan.md](wave5-plan.md) §5(D14)。
10
+ 协议栈零依赖、手写,只维护一份:`@armadra/agent/acp` 导出类型、分帧、客户端与假 Agent,Armadra 直接复用。设计依据见 [wave5-plan.md](../history/wave5-plan.md) §5(D14)。
11
11
 
12
12
  ## 线路
13
13
 
@@ -79,7 +79,7 @@ diff 的改前 / 改后全文只随实时事件走,不写进会话文件:任
79
79
 
80
80
  ### 审批
81
81
 
82
- ama 需要询问的调用经 `session/request_permission` 交给客户端,三个选项:`allow_once`(允许)、`allow_always`(本会话允许)、`reject_once`(拒绝)。`toolCall.toolCallId` 关联到先前 `tool_call` 的 id——codemode 内层调用也是,指向那条内层 `tool_call`,不是外层 `codemode`。询问期间该调用的状态回到 `pending`,允许后再 `in_progress`(所以有审批的调用依次是 `pending → in_progress → pending → in_progress → completed`);拒绝时直接 `failed`。客户端回 `cancelled`、连接断开或回合被中断时,按无人作答处理(拒绝)。ama 这边不再需要答复时(回合被 `session/cancel` / `$/cancel_request` 中断、审批 10 分钟超时),以 `$/cancel_request { requestId }` 撤回挂起的 `session/request_permission`,客户端可以关掉对话框。auto 模式下 ama 自己的分类器照常工作——这只影响 ama 自己的工具;ama 驱动的外部 Agent 发来的请求只交给人(见 [agents.md](agents.md))。
82
+ ama 需要询问的调用经 `session/request_permission` 交给客户端,三个选项:`allow_once`(允许)、`allow_always`(本会话允许)、`reject_once`(拒绝)。`toolCall.toolCallId` 关联到先前 `tool_call` 的 id——codemode 内层调用也是,指向那条内层 `tool_call`,不是外层 `codemode`。询问期间该调用的状态回到 `pending`,允许后再 `in_progress`(所以有审批的调用依次是 `pending → in_progress → pending → in_progress → completed`);拒绝时直接 `failed`。客户端回 `cancelled`、连接断开或回合被中断时,按无人作答处理(拒绝)。ama 这边不再需要答复时(回合被 `session/cancel` / `$/cancel_request` 中断、审批 10 分钟超时),以 `$/cancel_request { requestId }` 撤回挂起的 `session/request_permission`,客户端可以关掉对话框。auto 模式下 ama 自己的分类器照常工作——这只影响 ama 自己的工具;ama 驱动的外部 Agent 发来的请求只交给人(见 [agents.md](../guides/agents.md))。
83
83
 
84
84
  ### 无模型时
85
85
 
@@ -151,7 +151,7 @@ stdin 关闭后等已开始的运行结束再退出(0);`ama` 进程的 std
151
151
 
152
152
  ## 作为客户端
153
153
 
154
- 模型经 `task(agent="acp:<程序>")` 使用 ACP Agent(ama 自己是 `task(agent="acp:ama")`,见 [agents.md](agents.md)「在 task 里使用」)。
154
+ 模型经 `task(agent="acp:<程序>")` 使用 ACP Agent(ama 自己是 `task(agent="acp:ama")`,见 [agents.md](../guides/agents.md)「在 task 里使用」)。
155
155
 
156
156
  `AcpClient`(`@armadra/agent/acp`):`initialize`、`newSession`、`resumeSession`(优先,不回放)、`loadSession`、`listSessions`、`closeSession`、`prompt`、`setMode`、`cancel`。
157
157
 
@@ -1,6 +1,6 @@
1
1
  # 宿主适配器 API(@armadra/agent/host)
2
2
 
3
- 宿主适配器是一个本地 JS 模块,ama 启动时加载它并交给它一个 `HostApi`:它可以注册工具、追加系统提示、观察事件、回答审批、注入用户消息、在界面上显示通知与状态。Armadra 画布就是以宿主适配器的形式接入的(画布工具 `canvas_*` / `context_*` 都由适配器注册)。类型定义在 `src/host/types.ts`,从 `@armadra/agent/host` 导出,`HOST_API_VERSION = 1`。设计依据见 [design.md](design.md) §6.2、§6.3、§11.1 第 13 步。
3
+ 宿主适配器是一个本地 JS 模块,ama 启动时加载它并交给它一个 `HostApi`:它可以注册工具、追加系统提示、观察事件、回答审批、注入用户消息、在界面上显示通知与状态。Armadra 画布就是以宿主适配器的形式接入的(画布工具 `canvas_*` / `context_*` 都由适配器注册)。类型定义在 `src/host/types.ts`,从 `@armadra/agent/host` 导出,`HOST_API_VERSION = 1`。设计依据见 [design.md](../design/design.md) §6.2、§6.3、§11.1 第 13 步。
4
4
 
5
5
  ## 模块形状
6
6
 
@@ -132,7 +132,7 @@ interface ToolResult {
132
132
  - `request`:`requestId`、`toolName`、`input`、`reason: "mode" | "dangerous" | "hook"`、`hookReason?`、`preview?`(执行前预览,见 [rpc.md](rpc.md)「审批」)、`context?`(`depth > 0` 表示来自 `task` 子 Agent;codemode 内层调用带 `parentToolCallId`)。
133
133
  - 超时(缺省 10 分钟,`AMA_APPROVAL_TIMEOUT_MS`)或运行被中断时 `signal` abort,结论为 deny。审批串行,同一时刻只有一个请求在等。
134
134
  - 时机:broker 每次审批时现取,可以在 `create()` 里设,也可以之后任何时候设或替换;最后一次 `setBroker` 生效。
135
- - 宿主 broker 只决定「谁来回答 ask」,不能放宽 deny 规则、命令式 Hook 的 deny 与危险命令识别([design.md](design.md) §6.3)。
135
+ - 宿主 broker 只决定「谁来回答 ask」,不能放宽 deny 规则、命令式 Hook 的 deny 与危险命令识别([design.md](../design/design.md) §6.3)。
136
136
 
137
137
  ## 缓存保温
138
138
 
@@ -150,7 +150,7 @@ interface WarmDecision {
150
150
  }
151
151
  ```
152
152
 
153
- 返回 `"warm"` / `"stop"`(可以是 Promise)。返回 `"stop"` 即不发并停止本轮保温(内置决策本是 warm 时,停止原因记为 `declined`);返回 `"warm"` 可以覆盖内置的 stop。处理器出错回落内置决策。注册多个时最后注册且未注销的那个生效;返回值是注销函数。保温机制本身见 [providers.md](providers.md)「缓存」。
153
+ 返回 `"warm"` / `"stop"`(可以是 Promise)。返回 `"stop"` 即不发并停止本轮保温(内置决策本是 warm 时,停止原因记为 `declined`);返回 `"warm"` 可以覆盖内置的 stop。处理器出错回落内置决策。注册多个时最后注册且未注销的那个生效;返回值是注销函数。保温机制本身见 [providers.md](../guides/providers.md)「缓存」。
154
154
 
155
155
  ## 退出
156
156
 
@@ -163,4 +163,4 @@ Armadra 用 profile 启动 ama:`ama --profile <path>`,profile 的 `host` 指
163
163
 
164
164
  有 profile 时的界面缺省:`ui.quietStartup: "header"`、`ui.statusLine: "compact"`(最后一行是状态栏,宿主按 `·` 解析)。Agent 栏(`ui.agentBar`)不再缺省关闭,与独立终端一样是 `auto`;宿主自己展示子任务、不要栏时在 profile 的 `config` 指向的配置文件里写 `{ "ui": { "agentBar": "off" } }`。
165
165
 
166
- 契约细节见 Armadra 仓库 [docs/design/coordinator-agent.md](https://github.com/yovinchen/Armadra/blob/main/docs/design/coordinator-agent.md)。
166
+ 契约细节见 Armadra 仓库 [docs/design/coordinator-agent.md](https://github.com/AMA-Link/Armadra/blob/main/docs/design/coordinator-agent.md)。
@@ -1,6 +1,6 @@
1
1
  # RPC 协议(stdio JSONL)
2
2
 
3
- `ama --mode rpc` 从 stdin 读命令、向 stdout 写响应与事件,每行一个 JSON。类型定义在 `@armadra/agent/rpc`(`src/rpc.ts`),实现在 `src/modes/rpc/`。`ama -p --output-format stream-json` 输出的事件与这里同形状。设计依据见 [design.md](design.md) §13.2。
3
+ `ama --mode rpc` 从 stdin 读命令、向 stdout 写响应与事件,每行一个 JSON。类型定义在 `@armadra/agent/rpc`(`src/rpc.ts`),实现在 `src/modes/rpc/`。`ama -p --output-format stream-json` 输出的事件与这里同形状。设计依据见 [design.md](../design/design.md) §13.2。
4
4
 
5
5
  ## 线路
6
6
 
@@ -30,7 +30,7 @@
30
30
 
31
31
  - 响应带回请求的 `id`(字符串才带)。命令并发处理:`prompt` 不阻塞后续命令,所以响应顺序不一定与请求顺序相同,用 `id` 对应。
32
32
  - 失败时 `error` 是人读文本,`code` 是 `AmaError.code`(若有)。未知命令 → `code: "invalid_arguments"`。
33
- **宿主按 `code` 判断,不得解析 `error` / `message`**:人读文本随界面语言(`AMA_LANG`、`--lang`、`ui.language`)变化(第六波起中英双语,见 [i18n.md](i18n.md));`notification` 事件的 `message` 同理。
33
+ **宿主按 `code` 判断,不得解析 `error` / `message`**:人读文本随界面语言(`AMA_LANG`、`--lang`、`ui.language`)变化(第六波起中英双语,见 [i18n.md](../guides/i18n.md));`notification` 事件的 `message` 同理。
34
34
  - 一行不是合法 JSON 或缺 `type` → `{ "type": "response", "command": "parse", "success": false, "error": … }`,没有 `id`。
35
35
  - 需要会话实现扩展方法的命令(下表标 †)在非 `AgentSessionImpl` 会话上返回 `code: "not_implemented"`;CLI 与 SDK 建出的会话都是 `AgentSessionImpl`。
36
36
 
@@ -95,7 +95,7 @@
95
95
 
96
96
  ### 回滚
97
97
 
98
- 详见 [rewind-plan.md](rewind-plan.md) §3。回滚点是活动路径上开启新回合的用户消息(运行中插话、排队消息并入当前回合,不单列)。运行中调用回 `busy`。
98
+ 详见 [rewind-plan.md](../history/rewind-plan.md) §3。回滚点是活动路径上开启新回合的用户消息(运行中插话、排队消息并入当前回合,不单列)。运行中调用回 `busy`。
99
99
 
100
100
  | 命令 | 参数 | `data` |
101
101
  | ------------------- | --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -115,7 +115,7 @@
115
115
  | `set_client_capabilities` | `capabilities: ("approvals" \| "images" \| "hooks" \| "plans" \| "compact_events")[]` | `{ capabilities }` |
116
116
  | `permission_response` | `requestId: string`、`decision: "allow" \| "deny" \| "allow_session"` | `{ accepted: boolean }`(false = 当前没在等这个 id,已暂存,稍后被问到时生效) |
117
117
 
118
- `compact_events`(docs/memory-plan.md D9):声明后,`turn_end.toolResults`、`message_start` 与 `entry_appended` 不再重复携带工具结果与带图用户消息的正文(以 `contentOmitted: true` 标记),正文只在 `message_end` 与 `tool_execution_end` 里发;不声明时事件形状逐字节不变。形状见「[精简事件](#精简事件compact_events)」。`stream-json` 没有这个开关,输出始终是全量形状。
118
+ `compact_events`(docs/history/memory-plan.md D9):声明后,`turn_end.toolResults`、`message_start` 与 `entry_appended` 不再重复携带工具结果与带图用户消息的正文(以 `contentOmitted: true` 标记),正文只在 `message_end` 与 `tool_execution_end` 里发;不声明时事件形状逐字节不变。形状见「[精简事件](#精简事件compact_events)」。`stream-json` 没有这个开关,输出始终是全量形状。
119
119
 
120
120
  ### 工具、权限、发现
121
121
 
@@ -139,7 +139,7 @@
139
139
 
140
140
  ### 轨迹(第六波)
141
141
 
142
- `get_trace` 返回会话轨迹(与 TUI `/trace`、`ama sessions trace` 同一棵树,见 [tui.md](tui.md)「轨迹」)。不新增事件:客户端收到
142
+ `get_trace` 返回会话轨迹(与 TUI `/trace`、`ama sessions trace` 同一棵树,见 [tui.md](../guides/tui.md)「轨迹」)。不新增事件:客户端收到
143
143
  `entry_appended` 后用上次的 `cursor.since` 再取一次即可增量刷新。
144
144
 
145
145
  | 参数 | 说明 |
@@ -171,7 +171,7 @@
171
171
 
172
172
  被转的前台任务不中断,其 `task` 调用立即以 `tool_execution_end` 返回(结果文本以 `[task tN] Moved to the background` 开头,
173
173
  `details.status: "running"`),随后发 `subagent_background`;任务结束时照常 `subagent_end`,父会话空闲后收到 `origin: "task"`
174
- 的通知消息。语义与交互界面的 `Ctrl+B` 相同,见 [agents.md](agents.md)「前台与后台」。
174
+ 的通知消息。语义与交互界面的 `Ctrl+B` 相同,见 [agents.md](../guides/agents.md)「前台与后台」。
175
175
 
176
176
  合计 44 条命令,名字即 `RpcCommandMap` 的键。
177
177
 
@@ -214,7 +214,7 @@
214
214
 
215
215
  `parentToolCallId` 只出现在 codemode 脚本里经 `tools.*` 发起的内层调用上,值是外层 `codemode` 调用的 id;客户端据此折叠显示。内层调用不进转录。
216
216
 
217
- `message_end`、`turn_end`、`done` / `error` 与回放(`get_messages`、`get_entries`)里的助手消息可能带两个可选字段(模型调用效率批次,docs/model-efficiency-plan.md §1.10):失败消息的 `retryAfterMs`(`Retry-After`,毫秒),工具调用块的 `rawArguments`(模型输出的原始参数字符串)。`subagent_*` 事件不变;`get_tasks` 的 `TaskInfo` 可带 `context?: "fork" | "fresh"`(子会话的实际上下文模式)。都是新增的可选字段,`RPC_PROTOCOL_VERSION` 不变,客户端忽略不认识的字段即可。
217
+ `message_end`、`turn_end`、`done` / `error` 与回放(`get_messages`、`get_entries`)里的助手消息可能带两个可选字段(模型调用效率批次,docs/history/model-efficiency-plan.md §1.10):失败消息的 `retryAfterMs`(`Retry-After`,毫秒),工具调用块的 `rawArguments`(模型输出的原始参数字符串)。`subagent_*` 事件不变;`get_tasks` 的 `TaskInfo` 可带 `context?: "fork" | "fresh"`(子会话的实际上下文模式)。都是新增的可选字段,`RPC_PROTOCOL_VERSION` 不变,客户端忽略不认识的字段即可。
218
218
 
219
219
  ### 精简事件(`compact_events`)
220
220
 
@@ -230,7 +230,7 @@
230
230
 
231
231
  ### 子 Agent 事件(第五波)
232
232
 
233
- `task` / `task_ctl` 起的子 Agent(ama 子会话与外部 Agent 同一组事件,见 [agents.md](agents.md)「子 Agent」):
233
+ `task` / `task_ctl` 起的子 Agent(ama 子会话与外部 Agent 同一组事件,见 [agents.md](../guides/agents.md)「子 Agent」):
234
234
 
235
235
  | 事件 | 字段 |
236
236
  | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -356,7 +356,7 @@
356
356
  {"type":"context_pressure","percent":71,"threshold":70,"remainingTokens":57990,"estimatedTurnsLeft":6}
357
357
  ```
358
358
 
359
- `cache_miss` 的 `detail` 只在 `prefix_changed` 时给出(`tools`、`system`,或带变化节名的 `system:<节名,…>`,如 `system:hooks,memory`)。`cache_warm{stopped}` 的 `reason` 取值与含义见 [tui.md](tui.md)「缓存与上下文」。`ama -p --output-format json` 的结果对象另有 `cache` 字段,形状同上。
359
+ `cache_miss` 的 `detail` 只在 `prefix_changed` 时给出(`tools`、`system`,或带变化节名的 `system:<节名,…>`,如 `system:hooks,memory`)。`cache_warm{stopped}` 的 `reason` 取值与含义见 [tui.md](../guides/tui.md)「缓存与上下文」。`ama -p --output-format json` 的结果对象另有 `cache` 字段,形状同上。
360
360
 
361
361
  ## 审批
362
362
 
@@ -368,7 +368,7 @@
368
368
 
369
369
  ## 计划审批
370
370
 
371
- plan 模式与计划的格式见 [plan.md](plan.md)。
371
+ plan 模式与计划的格式见 [plan.md](../guides/plan.md)。
372
372
 
373
373
  1. 回合在 plan 模式下以纯文本结束、回复里有 `<proposed_plan>` 块时,服务端落盘计划并发 `plan_proposed{ planId, version, markdown, steps, filePath? }`(`steps[]`:`{ id, text, dependsOn?, agent? }`),随后照常 `agent_settled`。
374
374
  2. 客户端声明过 `set_client_capabilities{capabilities:["plans"]}` 才由它回答;没声明时按配置 `plan.unattended`:缺省 `stop`(计划留在 proposed,不切模式、不执行,客户端之后仍可用 `plan_response` 作答),`approve` 时同一次运行里自动批准并执行。
@@ -386,7 +386,7 @@ plan 模式与计划的格式见 [plan.md](plan.md)。
386
386
 
387
387
  - stdin 关闭:不再接收命令,撤下审批(之后的 ask 按无人作答 deny),等在途命令与已开始的运行结束、响应写完,退出码 0。所以 `printf '{"type":"prompt","message":"hi"}\n' | ama --mode rpc` 能拿到完整回复;要提前停止,先发 `abort`。
388
388
  - SIGINT / SIGTERM:中断当前运行后有序退出,退出码 130 / 143。
389
- - 启动阶段的失败按 CLI 退出码([design.md](design.md) §11.3):配置错误 3、无模型或 key 4、会话错误 5、宿主 / Hook 启动失败 6、宿主 API 版本不匹配 78。
389
+ - 启动阶段的失败按 CLI 退出码([design.md](../design/design.md) §11.3):配置错误 3、无模型或 key 4、会话错误 5、宿主 / Hook 启动失败 6、宿主 API 版本不匹配 78。
390
390
 
391
391
  ## 示例
392
392
 
@@ -1,6 +1,6 @@
1
1
  # 会话文件格式(JSONL 条目树)
2
2
 
3
- 会话是一个只追加的 JSONL 文件:首行是头,其后每行一个条目(以及可选的 `leaf` 行)。条目经 `parentId` 连成树,「当前分支」是从根到叶子的一条路径;发给模型的上下文由当前分支**投影**得到。类型定义在 `src/session/types.ts`(经 `@armadra/agent` 导出),格式版本 `SESSION_FORMAT_VERSION = 1`。设计依据见 [design.md](design.md) §8、§9。
3
+ 会话是一个只追加的 JSONL 文件:首行是头,其后每行一个条目(以及可选的 `leaf` 行)。条目经 `parentId` 连成树,「当前分支」是从根到叶子的一条路径;发给模型的上下文由当前分支**投影**得到。类型定义在 `src/session/types.ts`(经 `@armadra/agent` 导出),格式版本 `SESSION_FORMAT_VERSION = 1`。设计依据见 [design.md](../design/design.md) §8、§9。
4
4
 
5
5
  ## 位置与文件
6
6
 
@@ -47,14 +47,14 @@
47
47
 
48
48
  ### 消息
49
49
 
50
- - `system`:`{ role: "system", sections, toolsAdded?, toolsRemoved?, timestamp }`。首条是全量:系统提示的命名节(固定顺序 `preamble → tools → rules → project_context → skills → memory → hooks → cwd → host → role`;`memory` 是第六波的记忆索引节,未开启记忆时不出现)与工具声明表;之后只落**补丁**——节名级替换、值为 `null` 表示删除该节,`toolsAdded` / `toolsRemoved` 增删工具。依次重放得到当前系统提示;请求时由协议层重装:首条非 system 消息之前的部分折进开头,之后的节补丁作为尾部上下文送达、不改写开头(移除工具的补丁除外,见 [providers.md](providers.md)「缓存」)。首条 system 消息在首次请求前落盘,也就是建文件的时刻。
50
+ - `system`:`{ role: "system", sections, toolsAdded?, toolsRemoved?, timestamp }`。首条是全量:系统提示的命名节(固定顺序 `preamble → tools → rules → project_context → skills → memory → hooks → cwd → host → role`;`memory` 是第六波的记忆索引节,未开启记忆时不出现)与工具声明表;之后只落**补丁**——节名级替换、值为 `null` 表示删除该节,`toolsAdded` / `toolsRemoved` 增删工具。依次重放得到当前系统提示;请求时由协议层重装:首条非 system 消息之前的部分折进开头,之后的节补丁作为尾部上下文送达、不改写开头(移除工具的补丁除外,见 [providers.md](../guides/providers.md)「缓存」)。首条 system 消息在首次请求前落盘,也就是建文件的时刻。
51
51
  - `user`:`content`、`origin?`(缺省 = 普通用户输入;`steer` / `followUp` 是运行中插话与排队,`host` 是宿主 `sendUser` 注入,`interrupt` 是打断并立即发送开的新回合(TUI `Ctrl+X`、line 模式 `/interrupt`、RPC / SDK 的 `interrupt: true`;投影与普通 user 消息相同),`direct` 是用户在子 Agent 视图里直接发给该子 Agent 的消息(第六波 W6-A,写在子会话里;投影与普通 user 消息相同),其它字符串原样记录)。
52
52
  - `assistant`:`content`(文本 / 思考 / 工具调用块)、`api`、`provider`、`model`、`usage`、`stopReason`,以及可选的 `responseId`、`thinkingLevel`、`providerThinkingLevel`、`rawStopReason`、`errorMessage`、`retryAfterMs`(失败响应的 `Retry-After`,毫秒;会话层退避取它与指数退避中的较大值)。工具调用块是 `{ type: "toolCall", id, name, arguments, thoughtSignature?, rawArguments? }`:`rawArguments` 是模型输出的原始参数字符串(能严格解析为 JSON 时才记),同协议回放时原样发回,没有时回落 `JSON.stringify(arguments)`。两者都是可选字段,格式版本不变,旧文件照常读取。`usage` 是 `{ input, output, cacheRead, cacheWrite, cacheWrite1h?, reasoning?, totalTokens, cost?, cacheReported? }`:`input` 不含缓存部分,`cost` 是 `{ input, output, cacheRead, cacheWrite, total }`(美元,模型无价格时缺省),`cacheReported` 表示原始响应里出现过缓存字段。
53
53
  - `toolResult`:对应工具调用的结果(`toolCallId`、`toolName`、`content`、`isError`、`details?`)。
54
54
 
55
55
  ### `usage` 条目
56
56
 
57
- 不进上下文的请求用量,计入 `/session` 费用与 RPC 统计,投影时跳过。`kind` 目前有 `"cache_warm"`(缓存保温请求,见 [providers.md](providers.md)「缓存」)与 `"permission_classify"`(auto 权限模式的分类请求,见 [permissions.md](permissions.md)):
57
+ 不进上下文的请求用量,计入 `/session` 费用与 RPC 统计,投影时跳过。`kind` 目前有 `"cache_warm"`(缓存保温请求,见 [providers.md](../guides/providers.md)「缓存」)与 `"permission_classify"`(auto 权限模式的分类请求,见 [permissions.md](../guides/permissions.md)):
58
58
 
59
59
  ```json
60
60
  {
@@ -127,9 +127,9 @@
127
127
  `data` = `TaskInfo`(`taskId, agent, runner, description, background, status, startedAt, endedAt?, turns?, usage?, costUsd?,
128
128
  contextTokens?, contextWindow?, outputFile?, sessionRef?`;`contextTokens / contextWindow` 只有外部 Agent 报告时才有)+ `parentToolCallId`、`cwd`。同一 `taskId` 取分支上最后一条;resume 时据此重建任务注册表,
129
129
  `status: "running"` 视为 `interrupted`(`taskId` 续聊重开 `sessionRef.sessionFile`)。没有 `status` 的是子会话自己的首条。
130
- 模型调用效率批次(docs/model-efficiency-plan.md)起,两处的 `data` 可带 `context?: "fork" | "fresh"`(子会话的实际上下文模式,fork 回落为 fresh 时记 `fresh`;缺省即 `fresh`),子会话首条另可带 `forkedFrom?`(fork 点的父条目 id)。都是可选字段,格式版本不变。
130
+ 模型调用效率批次(docs/history/model-efficiency-plan.md)起,两处的 `data` 可带 `context?: "fork" | "fresh"`(子会话的实际上下文模式,fork 回落为 fresh 时记 `fresh`;缺省即 `fresh`),子会话首条另可带 `forkedFrom?`(fork 点的父条目 id)。都是可选字段,格式版本不变。
131
131
 
132
- 第五波登记的类型(docs/wave5-plan.md;括号里是开始写入的批次,之前的版本不会产生,读到未知 `customType` 一律忽略)。`custom_message` 类都是 `display: false`,经扩展点 `beforePrompts` 追加在末尾,不改缓存前缀:
132
+ 第五波登记的类型(docs/history/wave5-plan.md;括号里是开始写入的批次,之前的版本不会产生,读到未知 `customType` 一律忽略)。`custom_message` 类都是 `display: false`,经扩展点 `beforePrompts` 追加在末尾,不改缓存前缀:
133
133
 
134
134
  | `customType` | 条目类型 | 内容 | 写入时机 |
135
135
  | -------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
@@ -143,7 +143,7 @@ contextTokens?, contextWindow?, outputFile?, sessionRef?`;`contextTokens / con
143
143
  | `ama.agent-session` | `custom` | `data: { agent, runner, sessionId, cwd?, taskId? }`:外部 Agent 自己的会话引用(不含原始事件与转录) | 外部 Agent 会话建立 / 续聊时(W5-E) |
144
144
  | `ama.agent-usage` | `custom` | `data: { agent, sessionId, unit: usd \| tokens \| requests, amount, tokens?, contextTokens?, contextWindow? }`(上下文只记数字) | 外部 Agent 每个回合结束(W5-E);`SessionStats.external` 据此汇总 |
145
145
 
146
- 第六波登记的类型(docs/wave6-plan.md §2.2;之前的版本不会产生):
146
+ 第六波登记的类型(docs/history/wave6-plan.md §2.2;之前的版本不会产生):
147
147
 
148
148
  | `customType` | 条目类型 | 内容 | 写入时机 |
149
149
  | ------------ | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -154,5 +154,5 @@ contextTokens?, contextWindow?, outputFile?, sessionRef?`;`contextTokens / con
154
154
  ## 读取方
155
155
 
156
156
  - `ama sessions list|show`、交互模式 `/resume`、RPC `get_entries{since}`(以 entry id 为游标返回 `{ entries, leafId }`)、`get_tree`。
157
- - 只读扫描(不加锁、不修复):`ama stats`、`ama sessions search|export`、`--from`,见 [sessions.md](sessions.md)。
157
+ - 只读扫描(不加锁、不修复):`ama stats`、`ama sessions search|export`、`--from`,见 [sessions.md](../guides/sessions.md)。
158
158
  - 嵌入方可以直接读文件:按行解析,首行为头,跳过 `type: "leaf"` 的行后按 `parentId` 建树;遇到不认识的条目类型保留但不进上下文。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@armadra/agent",
3
- "version": "0.8.0",
3
+ "version": "0.8.1",
4
4
  "description": "A coding and coordination agent that runs standalone or embedded in Armadra",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -19,15 +19,15 @@
19
19
  "sdk",
20
20
  "armadra"
21
21
  ],
22
- "homepage": "https://github.com/Owlbay/armadra-agent#readme",
22
+ "homepage": "https://github.com/AMA-Link/armadra-agent#readme",
23
23
  "bugs": {
24
- "url": "https://github.com/Owlbay/armadra-agent/issues"
24
+ "url": "https://github.com/AMA-Link/armadra-agent/issues"
25
25
  },
26
26
  "author": "YoVinchen",
27
27
  "license": "MIT",
28
28
  "repository": {
29
29
  "type": "git",
30
- "url": "git+https://github.com/Owlbay/armadra-agent.git"
30
+ "url": "git+https://github.com/AMA-Link/armadra-agent.git"
31
31
  },
32
32
  "bin": {
33
33
  "ama": "dist/bundle/ama.cjs"
@@ -58,23 +58,11 @@
58
58
  },
59
59
  "files": [
60
60
  "dist",
61
- "docs/rpc.md",
62
- "docs/host-api.md",
63
- "docs/hooks.md",
64
- "docs/permissions.md",
65
- "docs/providers.md",
66
- "docs/codemode.md",
67
- "docs/sandbox.md",
68
- "docs/plan.md",
69
- "docs/agents.md",
70
- "docs/acp.md",
71
- "docs/rewind-plan.md",
72
- "docs/tui.md",
73
- "docs/tui-design.md",
74
- "docs/session-format.md",
75
- "docs/sessions.md",
76
- "docs/memory.md",
77
- "docs/en/*.md",
61
+ "docs/README.md",
62
+ "docs/guides/*.md",
63
+ "docs/reference/*.md",
64
+ "docs/en/**/*.md",
65
+ "docs/assets/*.svg",
78
66
  "README.zh-CN.md",
79
67
  "CHANGELOG.md",
80
68
  "CHANGELOG.zh-CN.md",
@@ -104,10 +92,11 @@
104
92
  "fmt:check": "prettier --check .",
105
93
  "check:deps": "node scripts/check-no-deps.mjs",
106
94
  "check:i18n": "node scripts/check-i18n.mjs",
95
+ "check:docs": "node scripts/check-doc-links.mjs",
107
96
  "release:check": "node scripts/release-check.mjs",
108
97
  "bench:presets": "node scripts/bench-presets.mjs",
109
98
  "bench:cache": "node scripts/cache-experiment.mjs",
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"
99
+ "ci": "pnpm typecheck && pnpm fmt:check && pnpm check:deps && pnpm check:i18n && pnpm check:docs && pnpm release:check && pnpm test && pnpm build && node dist/bundle/ama.cjs --version"
111
100
  },
112
101
  "dependencies": {},
113
102
  "devDependencies": {
@@ -117,5 +106,5 @@
117
106
  "typescript": "~5.9.3",
118
107
  "vitest": "^4.1.11"
119
108
  },
120
- "packageManager": "pnpm@11.18.0"
109
+ "packageManager": "pnpm@12.8.1"
121
110
  }