@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,5 +1,5 @@
1
1
  /**
2
- * 会话回滚编排(docs/rewind-plan.md §2、§3.1、§3.3–§3.6)。[RW-B]
2
+ * 会话回滚编排(docs/history/rewind-plan.md §2、§3.1、§3.3–§3.6)。[RW-B]
3
3
  *
4
4
  * - 回合起点:`runPrompt` 开启新回合的那条用户消息(steer / followUp 并入当前回合、Stop Hook 续跑
5
5
  * 的 `hook` 消息都不算)。本进程内落盘的按记录判断;恢复的会话以 `ama.checkpoint` 条目为准,
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * 会话的可变设置:模型、思考级别、工具表与活动集、系统提示静态部分(从 session.ts 搬出,
3
- * docs/wave5-plan.md §9「session.ts → session-settings.ts」)。[W5-C0]
3
+ * docs/history/wave5-plan.md §9「session.ts → session-settings.ts」)。[W5-C0]
4
4
  *
5
5
  * 纯搬迁:`setModel / setThinkingLevel / setPermissionMode / setActiveTools / addTool /
6
6
  * updateSystem / announceStart / getTools` 的行为与事件顺序不变;`AgentSessionImpl` 以同名成员转发。
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * 会话的可变设置:模型、思考级别、工具表与活动集、系统提示静态部分(从 session.ts 搬出,
3
- * docs/wave5-plan.md §9「session.ts → session-settings.ts」)。[W5-C0]
3
+ * docs/history/wave5-plan.md §9「session.ts → session-settings.ts」)。[W5-C0]
4
4
  *
5
5
  * 纯搬迁:`setModel / setThinkingLevel / setPermissionMode / setActiveTools / addTool /
6
6
  * updateSystem / announceStart / getTools` 的行为与事件顺序不变;`AgentSessionImpl` 以同名成员转发。
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent(设计 §5.2 task、D14;第五波 docs/wave5-plan.md §7,D22–D24):`ToolContext.spawnSubagent`
2
+ * 子 Agent(设计 §5.2 task、D14;第五波 docs/history/wave5-plan.md §7,D22–D24):`ToolContext.spawnSubagent`
3
3
  * 的实现与 ama 自己的 runner(`AmaRunner`)。[B2 → W5-G]
4
4
  *
5
5
  * - `runSubagent`:交给会话的任务注册表(subagent-registry.ts)——类型解析、并发池、前台 / 后台、
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent(设计 §5.2 task、D14;第五波 docs/wave5-plan.md §7,D22–D24):`ToolContext.spawnSubagent`
2
+ * 子 Agent(设计 §5.2 task、D14;第五波 docs/history/wave5-plan.md §7,D22–D24):`ToolContext.spawnSubagent`
3
3
  * 的实现与 ama 自己的 runner(`AmaRunner`)。[B2 → W5-G]
4
4
  *
5
5
  * - `runSubagent`:交给会话的任务注册表(subagent-registry.ts)——类型解析、并发池、前台 / 后台、
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 会话遥测:输出速率与首 token 延迟(docs/wave5-plan.md §1.3,D2)。[W5-A]
2
+ * 会话遥测:输出速率与首 token 延迟(docs/history/wave5-plan.md §1.3,D2)。[W5-A]
3
3
  *
4
4
  * 以 `SessionExtension.wrapStream` 包一层流,只观察不改事件:
5
5
  * - 只统计 `purpose: "turn"`(缺省即 turn);summary / warm / probe / classify 原样透传、不计入;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 会话遥测:输出速率与首 token 延迟(docs/wave5-plan.md §1.3,D2)。[W5-A]
2
+ * 会话遥测:输出速率与首 token 延迟(docs/history/wave5-plan.md §1.3,D2)。[W5-A]
3
3
  *
4
4
  * 以 `SessionExtension.wrapStream` 包一层流,只观察不改事件:
5
5
  * - 只统计 `purpose: "turn"`(缺省即 turn);summary / warm / probe / classify 原样透传、不计入;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 轨迹写入(docs/wave6-plan.md §2.2、D5)。[W6-C0]
2
+ * 轨迹写入(docs/history/wave6-plan.md §2.2、D5)。[W6-C0]
3
3
  *
4
4
  * 会话扩展:订阅事件,把计时写成 `custom{customType:"ama.trace"}` 条目(`trace/types.ts` 的 `TraceEntryData`)。
5
5
  * - `step`:每个 turn 请求一条(成功、失败、被重试掉的都写),在 `turn_end` 时写——此时 assistant 与该批
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 轨迹写入(docs/wave6-plan.md §2.2、D5)。[W6-C0]
2
+ * 轨迹写入(docs/history/wave6-plan.md §2.2、D5)。[W6-C0]
3
3
  *
4
4
  * 会话扩展:订阅事件,把计时写成 `custom{customType:"ama.trace"}` 条目(`trace/types.ts` 的 `TraceEntryData`)。
5
5
  * - `step`:每个 turn 请求一条(成功、失败、被重试掉的都写),在 `turn_end` 时写——此时 assistant 与该批
@@ -369,7 +369,7 @@ export class AgentSessionImpl {
369
369
  return Promise.reject(new AmaError("busy", "cannot compact while running"));
370
370
  return this.startCycle((signal) => this.compaction.compactManual(instructions, signal, cutAt));
371
371
  }
372
- // [RW-B] 回滚(docs/rewind-plan.md §3;编排与校验在 session-rewind.ts)
372
+ // [RW-B] 回滚(docs/history/rewind-plan.md §3;编排与校验在 session-rewind.ts)
373
373
  rewindPoints = () => this.rewinder.points();
374
374
  rewind = (request) => this.rewinder.rewind(request);
375
375
  summarizeFrom = (entryId, instructions) => this.rewinder.summarizeFrom(entryId, instructions);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent 的后台化(docs/agents-concurrency-plan.md §2.3、§2.5–§2.6)。[W7-B1]
2
+ * 子 Agent 的后台化(docs/history/agents-concurrency-plan.md §2.3、§2.5–§2.6)。[W7-B1]
3
3
  *
4
4
  * 从 subagent-registry.ts 拆出(保持 ≤ 600 行):
5
5
  * - `resolveTaskBackground`:`subagents.background`(auto / always / never)→ 本会话 `task` 的缺省;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent 的后台化(docs/agents-concurrency-plan.md §2.3、§2.5–§2.6)。[W7-B1]
2
+ * 子 Agent 的后台化(docs/history/agents-concurrency-plan.md §2.3、§2.5–§2.6)。[W7-B1]
3
3
  *
4
4
  * 从 subagent-registry.ts 拆出(保持 ≤ 600 行):
5
5
  * - `resolveTaskBackground`:`subagents.background`(auto / always / never)→ 本会话 `task` 的缺省;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent 视图的直接对话与实时数据(docs/wave6-plan.md §1.2–§1.3、D3)。[W6-A]
2
+ * 子 Agent 视图的直接对话与实时数据(docs/history/wave6-plan.md §1.2–§1.3、D3)。[W6-A]
3
3
  *
4
4
  * 从 subagent-registry.ts 拆出(保持 ≤ 600 行):
5
5
  * - `liveOf`:视图读的快照、是否在并发池排队、ama 子会话的观察钩子与外部 Agent 的环形缓冲;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent 视图的直接对话与实时数据(docs/wave6-plan.md §1.2–§1.3、D3)。[W6-A]
2
+ * 子 Agent 视图的直接对话与实时数据(docs/history/wave6-plan.md §1.2–§1.3、D3)。[W6-A]
3
3
  *
4
4
  * 从 subagent-registry.ts 拆出(保持 ≤ 600 行):
5
5
  * - `liveOf`:视图读的快照、是否在并发池排队、ama 子会话的观察钩子与外部 Agent 的环形缓冲;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * fork 式子 Agent(docs/model-efficiency-plan.md §2.1,D1–D3)。[ME-A]
2
+ * fork 式子 Agent(docs/history/model-efficiency-plan.md §2.1,D1–D3)。[ME-A]
3
3
  *
4
4
  * - fork 点 = 发出本次 `task` 调用的那条 assistant **之前一条**条目(= 父会话上一次真实请求的转录);
5
5
  * 同一条 assistant 里并行的多个 fork 任务共享同一个 fork 点。
@@ -1,5 +1,5 @@
1
1
  /**
2
- * fork 式子 Agent(docs/model-efficiency-plan.md §2.1,D1–D3)。[ME-A]
2
+ * fork 式子 Agent(docs/history/model-efficiency-plan.md §2.1,D1–D3)。[ME-A]
3
3
  *
4
4
  * - fork 点 = 发出本次 `task` 调用的那条 assistant **之前一条**条目(= 父会话上一次真实请求的转录);
5
5
  * 同一条 assistant 里并行的多个 fork 任务共享同一个 fork 点。
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent 任务注册表(docs/wave5-plan.md §7.3–§7.6,D13、D23–D24)。[W5-G]
2
+ * 子 Agent 任务注册表(docs/history/wave5-plan.md §7.3–§7.6,D13、D23–D24)。[W5-G]
3
3
  *
4
4
  * 每个根会话一份(按会话 id 登记;compose-agents.ts 的扩展在会话构造时建,SDK / 测试直接构造的
5
5
  * 会话在首次 task 时以缺省环境懒建)。职责:
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent 任务注册表(docs/wave5-plan.md §7.3–§7.6,D13、D23–D24)。[W5-G]
2
+ * 子 Agent 任务注册表(docs/history/wave5-plan.md §7.3–§7.6,D13、D23–D24)。[W5-G]
3
3
  *
4
4
  * 每个根会话一份(按会话 id 登记;compose-agents.ts 的扩展在会话构造时建,SDK / 测试直接构造的
5
5
  * 会话在首次 task 时以缺省环境懒建)。职责:
@@ -18,7 +18,7 @@ export const SECTION_ORDER = [
18
18
  "rules",
19
19
  "project_context",
20
20
  "skills",
21
- // [W6-C0] 记忆索引(W6-M,docs/wave6-plan.md §3.4);未开启时为 undefined,字节不变
21
+ // [W6-C0] 记忆索引(W6-M,docs/history/wave6-plan.md §3.4);未开启时为 undefined,字节不变
22
22
  "memory",
23
23
  "hooks",
24
24
  "cwd",
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 工具可用性的固定英文文案(docs/model-efficiency-plan.md §1.4、D5):执行层拒绝与尾部提醒共用,
2
+ * 工具可用性的固定英文文案(docs/history/model-efficiency-plan.md §1.4、D5):执行层拒绝与尾部提醒共用,
3
3
  * 发给模型,两种界面语言下逐字节相同。[ME-C0]
4
4
  * [ME-B] 两条提醒由 `ai/context.ts` 渲染(ai 不 import agent),定义移到那里、这里再导出。
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 工具可用性的固定英文文案(docs/model-efficiency-plan.md §1.4、D5):执行层拒绝与尾部提醒共用,
2
+ * 工具可用性的固定英文文案(docs/history/model-efficiency-plan.md §1.4、D5):执行层拒绝与尾部提醒共用,
3
3
  * 发给模型,两种界面语言下逐字节相同。[ME-C0]
4
4
  * [ME-B] 两条提醒由 `ai/context.ts` 渲染(ai 不 import agent),定义移到那里、这里再导出。
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 第五波会话契约(docs/wave5-plan.md §1.3、§5.4、§6.3、§6.5、§7.5、§8.3;[W5-C0])。
2
+ * 第五波会话契约(docs/history/wave5-plan.md §1.3、§5.4、§6.3、§6.5、§7.5、§8.3;[W5-C0])。
3
3
  *
4
4
  * 这里放新增事件的载荷与 `SessionStats` 的扩展形状,由 agent/types.ts 并入 `SessionEvent` /
5
5
  * `SessionStats` 并再导出(agent/types.ts 已接近 600 行)。全部是新增事件与可选字段:
@@ -81,7 +81,7 @@ export interface SubagentEndEvent {
81
81
  };
82
82
  }
83
83
  /**
84
- * [W7-B1] 前台任务转后台(docs/agents-concurrency-plan.md §2.5):`user` = 人(TUI `Ctrl+B` 等),
84
+ * [W7-B1] 前台任务转后台(docs/history/agents-concurrency-plan.md §2.5):`user` = 人(TUI `Ctrl+B` 等),
85
85
  * `timeout` = `subagents.autoBackgroundAfterMs` 到时,`host` = 宿主 / SDK(`session.backgroundTask`)。
86
86
  */
87
87
  export interface SubagentBackgroundEvent {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 第五波会话契约(docs/wave5-plan.md §1.3、§5.4、§6.3、§6.5、§7.5、§8.3;[W5-C0])。
2
+ * 第五波会话契约(docs/history/wave5-plan.md §1.3、§5.4、§6.3、§6.5、§7.5、§8.3;[W5-C0])。
3
3
  *
4
4
  * 这里放新增事件的载荷与 `SessionStats` 的扩展形状,由 agent/types.ts 并入 `SessionEvent` /
5
5
  * `SessionStats` 并再导出(agent/types.ts 已接近 600 行)。全部是新增事件与可选字段:
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 第六波会话事件与统计(docs/wave6-plan.md §4.4、D17)。[W6-C0] 契约文件:形状在这里,行为由 W6-O 实现。
2
+ * 第六波会话事件与统计(docs/history/wave6-plan.md §4.4、D17)。[W6-C0] 契约文件:形状在这里,行为由 W6-O 实现。
3
3
  */
4
4
  /** 一档配额窗口的用量。 */
5
5
  export interface QuotaWindow {
@@ -1,4 +1,4 @@
1
1
  /**
2
- * 第六波会话事件与统计(docs/wave6-plan.md §4.4、D17)。[W6-C0] 契约文件:形状在这里,行为由 W6-O 实现。
2
+ * 第六波会话事件与统计(docs/history/wave6-plan.md §4.4、D17)。[W6-C0] 契约文件:形状在这里,行为由 W6-O 实现。
3
3
  */
4
4
  export {};
@@ -423,7 +423,7 @@ export interface AgentSession {
423
423
  followUp: string[];
424
424
  };
425
425
  /**
426
- * [W7-B1] 阻塞中的前台子 Agent 任务转后台(不给 taskId = 全部;docs/agents-concurrency-plan.md §2.5)。
426
+ * [W7-B1] 阻塞中的前台子 Agent 任务转后台(不给 taskId = 全部;docs/history/agents-concurrency-plan.md §2.5)。
427
427
  * `reason` 缺省 `"host"`(宿主 / SDK);TUI 的人工操作传 `"user"`。返回被转后台或被打断等待的 taskId。
428
428
  */
429
429
  backgroundTask(taskId?: string, reason?: "user" | "timeout" | "host"): string[];
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent 的 git worktree 隔离(docs/wave5-plan.md §7.4,D24)。[W5-G]
2
+ * 子 Agent 的 git worktree 隔离(docs/history/wave5-plan.md §7.4,D24)。[W5-G]
3
3
  *
4
4
  * - `git worktree add -b ama/task-<taskId> <repo>/.ama/worktrees/<taskId> HEAD`;子会话 cwd 指向
5
5
  * worktree 里与父 cwd 对应的子目录;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent 的 git worktree 隔离(docs/wave5-plan.md §7.4,D24)。[W5-G]
2
+ * 子 Agent 的 git worktree 隔离(docs/history/wave5-plan.md §7.4,D24)。[W5-G]
3
3
  *
4
4
  * - `git worktree add -b ama/task-<taskId> <repo>/.ama/worktrees/<taskId> HEAD`;子会话 cwd 指向
5
5
  * worktree 里与父 cwd 对应的子目录;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 内置子 Agent 类型(docs/wave5-plan.md §7.2,D22–D23)。[W5-G]
2
+ * 内置子 Agent 类型(docs/history/wave5-plan.md §7.2,D22–D23)。[W5-G]
3
3
  *
4
4
  * 三个类型都用父会话的活动工具集(工具表与父字节一致,缓存前缀可复用);只读靠权限层:
5
5
  * `explore` / `plan` 的 `permissionMode: "plan"` 让子会话用 plan 模式的管线,写类工具与非只读 bash
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 内置子 Agent 类型(docs/wave5-plan.md §7.2,D22–D23)。[W5-G]
2
+ * 内置子 Agent 类型(docs/history/wave5-plan.md §7.2,D22–D23)。[W5-G]
3
3
  *
4
4
  * 三个类型都用父会话的活动工具集(工具表与父字节一致,缓存前缀可复用);只读靠权限层:
5
5
  * `explore` / `plan` 的 `permissionMode: "plan"` 让子会话用 plan 模式的管线,写类工具与非只读 bash
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent 类型目录:内置 ⊕ 发现的定义 ⊕ 外部 runner(docs/wave5-plan.md §7.1–§7.3、§7.6)。[W5-G]
2
+ * 子 Agent 类型目录:内置 ⊕ 发现的定义 ⊕ 外部 runner(docs/history/wave5-plan.md §7.1–§7.3、§7.6)。[W5-G]
3
3
  *
4
4
  * - 发现的同名定义覆盖内置类型(不 warning);外部 runner(W5-E 的 ProcessRunner、宿主 runner)以
5
5
  * `add()` 登记,名字已存在时保留先登记者。
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent 类型目录:内置 ⊕ 发现的定义 ⊕ 外部 runner(docs/wave5-plan.md §7.1–§7.3、§7.6)。[W5-G]
2
+ * 子 Agent 类型目录:内置 ⊕ 发现的定义 ⊕ 外部 runner(docs/history/wave5-plan.md §7.1–§7.3、§7.6)。[W5-G]
3
3
  *
4
4
  * - 发现的同名定义覆盖内置类型(不 warning);外部 runner(W5-E 的 ProcessRunner、宿主 runner)以
5
5
  * `add()` 登记,名字已存在时保留先登记者。
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent 定义发现(docs/wave5-plan.md §7.1,D22)。[W5-G]
2
+ * 子 Agent 定义发现(docs/history/wave5-plan.md §7.1,D22)。[W5-G]
3
3
  *
4
4
  * 顺序:`--agent-dir`(可重复,profile `agentDirs` 由启动步骤并在其后)→ config `agents.dirs` →
5
5
  * `<configDir>/agents/*.md`(用户级)→ `<cwd>/.ama/agents/*.md`(项目级,需信任;未信任跳过并记入
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent 定义发现(docs/wave5-plan.md §7.1,D22)。[W5-G]
2
+ * 子 Agent 定义发现(docs/history/wave5-plan.md §7.1,D22)。[W5-G]
3
3
  *
4
4
  * 顺序:`--agent-dir`(可重复,profile `agentDirs` 由启动步骤并在其后)→ config `agents.dirs` →
5
5
  * `<configDir>/agents/*.md`(用户级)→ `<cwd>/.ama/agents/*.md`(项目级,需信任;未信任跳过并记入
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 外部 Agent 接入 `task(agent=…)`(docs/wave5-plan.md §5.3–§5.5、§7.3、§7.6,D13、D15、D17)。[W5-EG]
2
+ * 外部 Agent 接入 `task(agent=…)`(docs/history/wave5-plan.md §5.3–§5.5、§7.3、§7.6,D13、D15、D17)。[W5-EG]
3
3
  *
4
4
  * - 名字:`claude` / `codex` / `acp:<program>` / 驱动表里的其它 id(`gemini` …,`ama` 除外——那是子会话
5
5
  * 类型的 runner 名;ama 自己经 ACP 用 `acp:ama`)/ 宿主注入的 runner id(宿主注入的 `ama` 在类型里的 runner
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 外部 Agent 接入 `task(agent=…)`(docs/wave5-plan.md §5.3–§5.5、§7.3、§7.6,D13、D15、D17)。[W5-EG]
2
+ * 外部 Agent 接入 `task(agent=…)`(docs/history/wave5-plan.md §5.3–§5.5、§7.3、§7.6,D13、D15、D17)。[W5-EG]
3
3
  *
4
4
  * - 名字:`claude` / `codex` / `acp:<program>` / 驱动表里的其它 id(`gemini` …,`ama` 除外——那是子会话
5
5
  * 类型的 runner 名;ama 自己经 ACP 用 `acp:ama`)/ 宿主注入的 runner id(宿主注入的 `ama` 在类型里的 runner
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent 定义文件解析(docs/wave5-plan.md §7.1,D22)。[W5-G]
2
+ * 子 Agent 定义文件解析(docs/history/wave5-plan.md §7.1,D22)。[W5-G]
3
3
  *
4
4
  * 一个 `*.md` = 一个类型:frontmatter 与 Skill 同一套 YAML 子集(skills/frontmatter.ts),字段名
5
5
  * kebab-case;正文 = 追加到子会话系统提示末尾的角色说明。不合格的文件不加载并给出 warning(拼错的
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent 定义文件解析(docs/wave5-plan.md §7.1,D22)。[W5-G]
2
+ * 子 Agent 定义文件解析(docs/history/wave5-plan.md §7.1,D22)。[W5-G]
3
3
  *
4
4
  * 一个 `*.md` = 一个类型:frontmatter 与 Skill 同一套 YAML 子集(skills/frontmatter.ts),字段名
5
5
  * kebab-case;正文 = 追加到子会话系统提示末尾的角色说明。不合格的文件不加载并给出 warning(拼错的
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent 结果的上限、落盘与通知文本(docs/wave5-plan.md §7.4,D23–D24)。[W5-G]
2
+ * 子 Agent 结果的上限、落盘与通知文本(docs/history/wave5-plan.md §7.4,D23–D24)。[W5-G]
3
3
  *
4
4
  * - 结果 > 50 KB(UTF-8 字节)保留头 70% + 尾 30%,中间一行说明省略了多少、全文在哪;
5
5
  * - 后台任务完成后以 `<task-notification>` 作为 followUp 投递给父会话(系统提示 rules 里由 task
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent 结果的上限、落盘与通知文本(docs/wave5-plan.md §7.4,D23–D24)。[W5-G]
2
+ * 子 Agent 结果的上限、落盘与通知文本(docs/history/wave5-plan.md §7.4,D23–D24)。[W5-G]
3
3
  *
4
4
  * - 结果 > 50 KB(UTF-8 字节)保留头 70% + 尾 30%,中间一行说明省略了多少、全文在哪;
5
5
  * - 后台任务完成后以 `<task-notification>` 作为 followUp 投递给父会话(系统提示 rules 里由 task
@@ -63,7 +63,7 @@ export function taskNotification(input) {
63
63
  attrs.push(`outputFile="${attr(input.outputFile)}"`);
64
64
  return `<task-notification ${attrs.join(" ")}>\n${input.report}\n</task-notification>`;
65
65
  }
66
- // [W7-B1] 后台任务的固定英文文案(docs/agents-concurrency-plan.md §2.5;工具结果不进缓存前缀,但要
66
+ // [W7-B1] 后台任务的固定英文文案(docs/history/agents-concurrency-plan.md §2.5;工具结果不进缓存前缀,但要
67
67
  // 稳定,便于测试与模型学习)。
68
68
  export const NOTIFY_HINT = "A <task-notification> arrives when it finishes; use task_ctl to wait, stop or read output.";
69
69
  export function startedText(taskId, agent) {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * 子 Agent 任务记录:并发池、单条任务的状态、runner 进度 → `subagent_update`、父会话
3
- * `custom{ama.task}` 快照的写入形状与 resume 重建(docs/wave5-plan.md §7.4–§7.5)。[W5-G]
3
+ * `custom{ama.task}` 快照的写入形状与 resume 重建(docs/history/wave5-plan.md §7.4–§7.5)。[W5-G]
4
4
  * 编排在 agent/subagent-registry.ts。
5
5
  */
6
6
  import type { SessionTaskStats, SubagentStartEvent, SubagentUpdateEvent } from "../agent/types-w5.js";
@@ -42,7 +42,7 @@ export interface AmaRunnerSpec {
42
42
  }
43
43
  /**
44
44
  * [W6-C0] 外部 Agent 的展示事件(`DriverEvent` 派生,子 Agent 视图用):只在内存环形缓冲里(≤ 2000 条 /
45
- * 1 MB),不落盘(docs/wave6-plan.md §1.2、D2)。
45
+ * 1 MB),不落盘(docs/history/wave6-plan.md §1.2、D2)。
46
46
  */
47
47
  export interface ExternalDisplayEvent {
48
48
  at: number;
@@ -72,7 +72,7 @@ export type TaskHandle = RunnerHandle & {
72
72
  */
73
73
  message?(text: string, when: "followUp" | "send" | "interrupt"): Promise<void>;
74
74
  };
75
- /** [W6-A] 外部 Agent 环形缓冲的上限(docs/wave6-plan.md D2)。 */
75
+ /** [W6-A] 外部 Agent 环形缓冲的上限(docs/history/wave6-plan.md D2)。 */
76
76
  export declare const RING_MAX_EVENTS = 2000;
77
77
  export declare const RING_MAX_BYTES: number;
78
78
  /**
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * 子 Agent 任务记录:并发池、单条任务的状态、runner 进度 → `subagent_update`、父会话
3
- * `custom{ama.task}` 快照的写入形状与 resume 重建(docs/wave5-plan.md §7.4–§7.5)。[W5-G]
3
+ * `custom{ama.task}` 快照的写入形状与 resume 重建(docs/history/wave5-plan.md §7.4–§7.5)。[W5-G]
4
4
  * 编排在 agent/subagent-registry.ts。
5
5
  */
6
6
  import { AmaError } from "../errors.js";
@@ -44,7 +44,7 @@ export class SubagentPool {
44
44
  this.waiters[0]?.();
45
45
  }
46
46
  }
47
- /** [W6-A] 外部 Agent 环形缓冲的上限(docs/wave6-plan.md D2)。 */
47
+ /** [W6-A] 外部 Agent 环形缓冲的上限(docs/history/wave6-plan.md D2)。 */
48
48
  export const RING_MAX_EVENTS = 2000;
49
49
  export const RING_MAX_BYTES = 1024 * 1024;
50
50
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent 定义契约(docs/wave5-plan.md §7.1–§7.2,D22)。[W5-C0] 契约文件,发现与解析归 W5-G。
2
+ * 子 Agent 定义契约(docs/history/wave5-plan.md §7.1–§7.2,D22)。[W5-C0] 契约文件,发现与解析归 W5-G。
3
3
  *
4
4
  * 定义文件:`--agent-dir`(可重复)→ profile `agentDirs` → `~/.config/ama/agents/*.md` →
5
5
  * `<cwd>/.ama/agents/*.md`(需信任);frontmatter 与 Skill 同风格(kebab-case),正文追加到子会话
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 子 Agent 定义契约(docs/wave5-plan.md §7.1–§7.2,D22)。[W5-C0] 契约文件,发现与解析归 W5-G。
2
+ * 子 Agent 定义契约(docs/history/wave5-plan.md §7.1–§7.2,D22)。[W5-C0] 契约文件,发现与解析归 W5-G。
3
3
  *
4
4
  * 定义文件:`--agent-dir`(可重复)→ profile `agentDirs` → `~/.config/ama/agents/*.md` →
5
5
  * `<cwd>/.ama/agents/*.md`(需信任);frontmatter 与 Skill 同风格(kebab-case),正文追加到子会话
@@ -1,5 +1,5 @@
1
1
  /**
2
- * anthropic-messages 的 compat 推断([W5-M2],docs/wave5-plan.md §3.1、D10):按请求主机给缺省。
2
+ * anthropic-messages 的 compat 推断([W5-M2],docs/history/wave5-plan.md §3.1、D10):按请求主机给缺省。
3
3
  *
4
4
  * 顺序:保守缺省 ← 主机表(`model.baseUrl` 的主机名子串,先命中先用)← `provider.compat` ←
5
5
  * `model.compat`(字段级覆盖,undefined 不覆盖)。registry 物化后的模型已把供应商 / 渠道 compat 合进
@@ -14,7 +14,7 @@
14
14
  * - OpenRouter:流式 usage 只出现在 `message_delta`,`applyAnthropicUsage` 本就按非 null 字段合并,
15
15
  * 不需要开关(anthropic-compat.test.ts 核对)。
16
16
  *
17
- * 表里每一项都对应厂商文档或实测(docs/research/R1-models-protocols.md §2.1、docs/providers.md「渠道实测」)。
17
+ * 表里每一项都对应厂商文档或实测(docs/research/R1-models-protocols.md §2.1、docs/guides/providers.md「渠道实测」)。
18
18
  */
19
19
  import type { AnthropicMessagesCompat, Model, ProviderData } from "../types.js";
20
20
  export type ResolvedAnthropicCompat = Required<AnthropicMessagesCompat>;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * anthropic-messages 的 compat 推断([W5-M2],docs/wave5-plan.md §3.1、D10):按请求主机给缺省。
2
+ * anthropic-messages 的 compat 推断([W5-M2],docs/history/wave5-plan.md §3.1、D10):按请求主机给缺省。
3
3
  *
4
4
  * 顺序:保守缺省 ← 主机表(`model.baseUrl` 的主机名子串,先命中先用)← `provider.compat` ←
5
5
  * `model.compat`(字段级覆盖,undefined 不覆盖)。registry 物化后的模型已把供应商 / 渠道 compat 合进
@@ -14,7 +14,7 @@
14
14
  * - OpenRouter:流式 usage 只出现在 `message_delta`,`applyAnthropicUsage` 本就按非 null 字段合并,
15
15
  * 不需要开关(anthropic-compat.test.ts 核对)。
16
16
  *
17
- * 表里每一项都对应厂商文档或实测(docs/research/R1-models-protocols.md §2.1、docs/providers.md「渠道实测」)。
17
+ * 表里每一项都对应厂商文档或实测(docs/research/R1-models-protocols.md §2.1、docs/guides/providers.md「渠道实测」)。
18
18
  */
19
19
  export const ANTHROPIC_COMPAT_KEYS = [
20
20
  "supportsCacheControlOnTools",
@@ -5,7 +5,7 @@
5
5
  * - `sendPromptCacheKey`、`supportsLongCacheRetention`:按 `HOST_CACHE_CAPABILITIES`([W5-M2],官方
6
6
  * 文档写明支持的主机才开;其余主机——含全部中转——缺省关)。`sendPromptCacheKey` 只对 OpenAI 两条线有意义;
7
7
  * - `sendSessionAffinityHeaders`、`supportsExplicitPromptCacheMode`:缺省一律关(实测中转都接受
8
- * 但未见命中提升,OpenRouter 未实测,见 docs/providers.md「缓存」);
8
+ * 但未见命中提升,OpenRouter 未实测,见 docs/guides/providers.md「缓存」);
9
9
  * - `cacheReporting`:`auto`。
10
10
  * 显式 `model.compat`(registry 已把 provider.compat 合进来)逐字段覆盖推断。
11
11
  *
@@ -5,7 +5,7 @@
5
5
  * - `sendPromptCacheKey`、`supportsLongCacheRetention`:按 `HOST_CACHE_CAPABILITIES`([W5-M2],官方
6
6
  * 文档写明支持的主机才开;其余主机——含全部中转——缺省关)。`sendPromptCacheKey` 只对 OpenAI 两条线有意义;
7
7
  * - `sendSessionAffinityHeaders`、`supportsExplicitPromptCacheMode`:缺省一律关(实测中转都接受
8
- * 但未见命中提升,OpenRouter 未实测,见 docs/providers.md「缓存」);
8
+ * 但未见命中提升,OpenRouter 未实测,见 docs/guides/providers.md「缓存」);
9
9
  * - `cacheReporting`:`auto`。
10
10
  * 显式 `model.compat`(registry 已把 provider.compat 合进来)逐字段覆盖推断。
11
11
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * openai-responses 的 ChatGPT 订阅后端(compat `chatgptBackend`;docs/wave6-plan.md §4.1、§4.6、D14、D17)。[W6-O]
2
+ * openai-responses 的 ChatGPT 订阅后端(compat `chatgptBackend`;docs/history/wave6-plan.md §4.1、§4.6、D14、D17)。[W6-O]
3
3
  *
4
4
  * - 请求体:强制 `store:false`、`stream:true`、`input` 数组;按后端删禁用字段(SIWC 15 个;codex 5 个,保留
5
5
  * `prompt_cache_key`);SIWC 不发 `role:"system"` item(改 developer);`instructionsMode: "developer-message"`
@@ -1,5 +1,5 @@
1
1
  /**
2
- * openai-responses 的 ChatGPT 订阅后端(compat `chatgptBackend`;docs/wave6-plan.md §4.1、§4.6、D14、D17)。[W6-O]
2
+ * openai-responses 的 ChatGPT 订阅后端(compat `chatgptBackend`;docs/history/wave6-plan.md §4.1、§4.6、D14、D17)。[W6-O]
3
3
  *
4
4
  * - 请求体:强制 `store:false`、`stream:true`、`input` 数组;按后端删禁用字段(SIWC 15 个;codex 5 个,保留
5
5
  * `prompt_cache_key`);SIWC 不发 `role:"system"` item(改 developer);`instructionsMode: "developer-message"`
@@ -1,5 +1,5 @@
1
1
  /**
2
- * ChatGPT 订阅配额解析(docs/wave6-plan.md §4.1 配额行、D17;R6 §1.2 配额三行)。[W6-O]
2
+ * ChatGPT 订阅配额解析(docs/history/wave6-plan.md §4.1 配额行、D17;R6 §1.2 配额三行)。[W6-O]
3
3
  *
4
4
  * - 响应头(codex flavor):`x-codex-primary-used-percent` / `-window-minutes` / `-reset-at`(epoch 秒),
5
5
  * `secondary` 同形;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * ChatGPT 订阅配额解析(docs/wave6-plan.md §4.1 配额行、D17;R6 §1.2 配额三行)。[W6-O]
2
+ * ChatGPT 订阅配额解析(docs/history/wave6-plan.md §4.1 配额行、D17;R6 §1.2 配额三行)。[W6-O]
3
3
  *
4
4
  * - 响应头(codex flavor):`x-codex-primary-used-percent` / `-window-minutes` / `-reset-at`(epoch 秒),
5
5
  * `secondary` 同形;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * `max_tokens` 的主动收紧与被动修正(docs/model-efficiency-plan.md §1.9、D9)。[ME-C]
2
+ * `max_tokens` 的主动收紧与被动修正(docs/history/model-efficiency-plan.md §1.9、D9)。[ME-C]
3
3
  *
4
4
  * - 主动收紧:窗口已知时 `max_tokens = min(请求值, max(MIN_OUTPUT_TOKENS, 窗口 − 估算输入 − 余量))`,
5
5
  * 输入按请求体字符 / 4 估算(本模块自带,不依赖 compaction/)。预算型思考(`fixed`)不收紧:
@@ -1,5 +1,5 @@
1
1
  /**
2
- * `max_tokens` 的主动收紧与被动修正(docs/model-efficiency-plan.md §1.9、D9)。[ME-C]
2
+ * `max_tokens` 的主动收紧与被动修正(docs/history/model-efficiency-plan.md §1.9、D9)。[ME-C]
3
3
  *
4
4
  * - 主动收紧:窗口已知时 `max_tokens = min(请求值, max(MIN_OUTPUT_TOKENS, 窗口 − 估算输入 − 余量))`,
5
5
  * 输入按请求体字符 / 4 估算(本模块自带,不依赖 compaction/)。预算型思考(`fixed`)不收紧:
@@ -52,7 +52,7 @@ export declare function finishDone(stream: AssistantEventStreamImpl, tracker: Bl
52
52
  /** 出错或中止:关块、写 errorMessage、发 error(signal 已中止 → aborted)。 */
53
53
  export declare function finishError(stream: AssistantEventStreamImpl, tracker: BlockTracker, model: Model, error: unknown, signal: AbortSignal): void;
54
54
  /**
55
- * 供应商以安全理由拒答(Anthropic `stop_reason: "refusal"`,docs/acp-plan.md D12):消息照旧以
55
+ * 供应商以安全理由拒答(Anthropic `stop_reason: "refusal"`,docs/history/acp-plan.md D12):消息照旧以
56
56
  * `error` 收尾(TUI / print / 重试的口径不变),`rawStopReason` 记原值;需要区分的消费者(ACP 的
57
57
  * `refusal` 停止原因)用 {@link stopReasonOf}。这是 `refusal` 的唯一映射处。[ACP-B]
58
58
  */
@@ -189,7 +189,7 @@ export function finishError(stream, tracker, model, error, signal) {
189
189
  stream.push({ type: "error", reason: aborted ? "aborted" : "error", message: output });
190
190
  }
191
191
  /**
192
- * 供应商以安全理由拒答(Anthropic `stop_reason: "refusal"`,docs/acp-plan.md D12):消息照旧以
192
+ * 供应商以安全理由拒答(Anthropic `stop_reason: "refusal"`,docs/history/acp-plan.md D12):消息照旧以
193
193
  * `error` 收尾(TUI / print / 重试的口径不变),`rawStopReason` 记原值;需要区分的消费者(ACP 的
194
194
  * `refusal` 停止原因)用 {@link stopReasonOf}。这是 `refusal` 的唯一映射处。[ACP-B]
195
195
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 图片 base64 按内容哈希驻留(docs/memory-plan.md D5、§2.5)。
2
+ * 图片 base64 按内容哈希驻留(docs/history/memory-plan.md D5、§2.5)。
3
3
  *
4
4
  * `WeakRef` 的目标不能是字符串,所以驻留单元是 `ImageBlock`:表为 `Map<键, WeakRef<ImageBlock>>`,
5
5
  * 键 = `mimeType` + base64 字符串的 sha256;`FinalizationRegistry` 在 block 被回收后清键。命中时返回
@@ -10,7 +10,7 @@
10
10
  */
11
11
  import type { ImageBlock } from "./types.js";
12
12
  /**
13
- * 会话条目的最小形状:ai 不 import session(docs/design.md §1.1),`SessionEntry[]` 可直接传入。
13
+ * 会话条目的最小形状:ai 不 import session(docs/design/design.md §1.1),`SessionEntry[]` 可直接传入。
14
14
  * 只有 `type === "message"` 且 `message.content` 为数组的条目里的 `image` 块参与驻留。
15
15
  */
16
16
  export interface ImageCarrier {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 图片 base64 按内容哈希驻留(docs/memory-plan.md D5、§2.5)。
2
+ * 图片 base64 按内容哈希驻留(docs/history/memory-plan.md D5、§2.5)。
3
3
  *
4
4
  * `WeakRef` 的目标不能是字符串,所以驻留单元是 `ImageBlock`:表为 `Map<键, WeakRef<ImageBlock>>`,
5
5
  * 键 = `mimeType` + base64 字符串的 sha256;`FinalizationRegistry` 在 block 被回收后清键。命中时返回
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 图片大小上限(docs/wave5-plan.md §4、D11;R1 §3.2)。[W5-I]
2
+ * 图片大小上限(docs/history/wave5-plan.md §4、D11;R1 §3.2)。[W5-I]
3
3
  *
4
4
  * 各家的上限都按 **base64 后**的字节数计算:`base64Bytes = ceil(bytes / 3) * 4`。
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 图片大小上限(docs/wave5-plan.md §4、D11;R1 §3.2)。[W5-I]
2
+ * 图片大小上限(docs/history/wave5-plan.md §4、D11;R1 §3.2)。[W5-I]
3
3
  *
4
4
  * 各家的上限都按 **base64 后**的字节数计算:`base64Bytes = ceil(bytes / 3) * 4`。
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 请求体序列化(docs/memory-plan.md D3、§2.3)。
2
+ * 请求体序列化(docs/history/memory-plan.md D3、§2.3)。
3
3
  *
4
4
  * 带图请求体里 base64 占绝大部分字节;`JSON.stringify(body)` 会先拼出整份中间字符串,再由 fetch
5
5
  * 编码成 UTF-8。这里先廉价扫一遍:没有 ≥ {@link LARGE_STRING_BYTES} 的字符串就照旧走原生;有就只沿
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 请求体序列化(docs/memory-plan.md D3、§2.3)。
2
+ * 请求体序列化(docs/history/memory-plan.md D3、§2.3)。
3
3
  *
4
4
  * 带图请求体里 base64 占绝大部分字节;`JSON.stringify(body)` 会先拼出整份中间字符串,再由 fetch
5
5
  * 编码成 UTF-8。这里先廉价扫一遍:没有 ≥ {@link LARGE_STRING_BYTES} 的字符串就照旧走原生;有就只沿