@armadra/agent 0.4.0 → 0.5.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.
- package/CHANGELOG.md +184 -1
- package/README.md +202 -83
- package/THIRD_PARTY_NOTICES.md +34 -0
- package/dist/acp.d.ts +18 -0
- package/dist/acp.js +19 -0
- package/dist/agent/limits.d.ts +38 -0
- package/dist/agent/limits.js +127 -0
- package/dist/agent/loop-guard.d.ts +38 -0
- package/dist/agent/loop-guard.js +95 -0
- package/dist/agent/loop.d.ts +4 -0
- package/dist/agent/loop.js +7 -0
- package/dist/agent/prompt-rules.d.ts +12 -0
- package/dist/agent/prompt-rules.js +18 -0
- package/dist/agent/reminders.d.ts +59 -0
- package/dist/agent/reminders.js +327 -0
- package/dist/agent/session-cache.d.ts +5 -0
- package/dist/agent/session-cache.js +17 -1
- package/dist/agent/session-classifier.d.ts +1 -1
- package/dist/agent/session-classifier.js +3 -1
- package/dist/agent/session-compaction.d.ts +35 -6
- package/dist/agent/session-compaction.js +157 -31
- package/dist/agent/session-core.d.ts +27 -1
- package/dist/agent/session-extensions.d.ts +61 -0
- package/dist/agent/session-extensions.js +129 -0
- package/dist/agent/session-images.d.ts +23 -0
- package/dist/agent/session-images.js +97 -0
- package/dist/agent/session-plan.d.ts +21 -0
- package/dist/agent/session-plan.js +524 -0
- package/dist/agent/session-rewind.d.ts +81 -0
- package/dist/agent/session-rewind.js +354 -0
- package/dist/agent/session-run.d.ts +28 -1
- package/dist/agent/session-run.js +157 -6
- package/dist/agent/session-settings.d.ts +49 -0
- package/dist/agent/session-settings.js +95 -0
- package/dist/agent/session-subagent.d.ts +36 -24
- package/dist/agent/session-subagent.js +259 -129
- package/dist/agent/session-sync.d.ts +10 -3
- package/dist/agent/session-sync.js +37 -8
- package/dist/agent/session-telemetry.d.ts +39 -0
- package/dist/agent/session-telemetry.js +231 -0
- package/dist/agent/session-tools.js +40 -1
- package/dist/agent/session.d.ts +30 -29
- package/dist/agent/session.js +79 -123
- package/dist/agent/subagent-registry.d.ts +91 -0
- package/dist/agent/subagent-registry.js +494 -0
- package/dist/agent/system-prompt.d.ts +6 -3
- package/dist/agent/system-prompt.js +7 -2
- package/dist/agent/tool-runner.d.ts +8 -1
- package/dist/agent/tool-runner.js +57 -4
- package/dist/agent/types-w5.d.ts +192 -0
- package/dist/agent/types-w5.js +10 -0
- package/dist/agent/types.d.ts +47 -4
- package/dist/agent/types.js +2 -0
- package/dist/agent/worktree.d.ts +36 -0
- package/dist/agent/worktree.js +86 -0
- package/dist/agents/builtin.d.ts +14 -0
- package/dist/agents/builtin.js +39 -0
- package/dist/agents/catalog.d.ts +43 -0
- package/dist/agents/catalog.js +82 -0
- package/dist/agents/discover.d.ts +35 -0
- package/dist/agents/discover.js +83 -0
- package/dist/agents/external.d.ts +82 -0
- package/dist/agents/external.js +326 -0
- package/dist/agents/parse.d.ts +18 -0
- package/dist/agents/parse.js +116 -0
- package/dist/agents/result.d.ts +32 -0
- package/dist/agents/result.js +67 -0
- package/dist/agents/task-control.d.ts +17 -0
- package/dist/agents/task-control.js +17 -0
- package/dist/agents/task-record.d.ts +78 -0
- package/dist/agents/task-record.js +141 -0
- package/dist/agents/types.d.ts +46 -0
- package/dist/agents/types.js +8 -0
- package/dist/ai/apis/anthropic-compat.d.ts +36 -0
- package/dist/ai/apis/anthropic-compat.js +92 -0
- package/dist/ai/apis/anthropic-request.d.ts +7 -6
- package/dist/ai/apis/anthropic-request.js +10 -28
- package/dist/ai/apis/cache-params.d.ts +11 -2
- package/dist/ai/apis/cache-params.js +25 -6
- package/dist/ai/apis/openai-compat.d.ts +4 -1
- package/dist/ai/apis/openai-compat.js +8 -1
- package/dist/ai/image-limits.d.ts +45 -0
- package/dist/ai/image-limits.js +68 -0
- package/dist/ai/providers/builtin.d.ts +18 -6
- package/dist/ai/providers/builtin.js +135 -6
- package/dist/ai/providers/catalog-data.js +17 -13
- package/dist/ai/providers/catalog.d.ts +60 -7
- package/dist/ai/providers/catalog.js +197 -38
- package/dist/ai/providers/channels.d.ts +33 -3
- package/dist/ai/providers/channels.js +108 -7
- package/dist/ai/providers/enrich.d.ts +6 -3
- package/dist/ai/providers/enrich.js +19 -4
- package/dist/ai/providers/models-dev-cache.d.ts +28 -24
- package/dist/ai/providers/models-dev-cache.js +92 -78
- package/dist/ai/providers/models-dev-data.d.ts +7 -0
- package/dist/ai/providers/models-dev-data.js +32 -0
- package/dist/ai/providers/models-dev-snapshot.d.ts +50 -0
- package/dist/ai/providers/models-dev-snapshot.js +137 -0
- package/dist/ai/providers/models-dev.d.ts +51 -10
- package/dist/ai/providers/models-dev.js +132 -39
- package/dist/ai/providers/registry.d.ts +20 -10
- package/dist/ai/providers/registry.js +82 -43
- package/dist/ai/types.d.ts +28 -2
- package/dist/ai/types.js +5 -0
- package/dist/bundle/ama.cjs +37605 -21619
- package/dist/checkpoints/backend.d.ts +61 -0
- package/dist/checkpoints/backend.js +135 -0
- package/dist/checkpoints/blobs.d.ts +60 -0
- package/dist/checkpoints/blobs.js +203 -0
- package/dist/checkpoints/gc.d.ts +47 -0
- package/dist/checkpoints/gc.js +144 -0
- package/dist/checkpoints/git-head.d.ts +15 -0
- package/dist/checkpoints/git-head.js +89 -0
- package/dist/checkpoints/index.d.ts +17 -0
- package/dist/checkpoints/index.js +17 -0
- package/dist/checkpoints/replay.d.ts +48 -0
- package/dist/checkpoints/replay.js +154 -0
- package/dist/checkpoints/restore.d.ts +86 -0
- package/dist/checkpoints/restore.js +263 -0
- package/dist/checkpoints/settings.d.ts +14 -0
- package/dist/checkpoints/settings.js +23 -0
- package/dist/checkpoints/shadow-git.d.ts +108 -0
- package/dist/checkpoints/shadow-git.js +491 -0
- package/dist/checkpoints/shadow-restore.d.ts +25 -0
- package/dist/checkpoints/shadow-restore.js +128 -0
- package/dist/checkpoints/tracker.d.ts +64 -0
- package/dist/checkpoints/tracker.js +192 -0
- package/dist/checkpoints/types.d.ts +99 -0
- package/dist/checkpoints/types.js +12 -0
- package/dist/cli/args.d.ts +8 -4
- package/dist/cli/args.js +17 -97
- package/dist/cli/bootstrap.js +13 -1
- package/dist/cli/choice-prompt.d.ts +58 -0
- package/dist/cli/choice-prompt.js +140 -0
- package/dist/cli/codemode-notice.d.ts +3 -2
- package/dist/cli/codemode-notice.js +3 -2
- package/dist/cli/compose-agents.d.ts +27 -0
- package/dist/cli/compose-agents.js +111 -0
- package/dist/cli/compose-extensions.d.ts +29 -0
- package/dist/cli/compose-extensions.js +44 -0
- package/dist/cli/compose-session.d.ts +3 -0
- package/dist/cli/compose-session.js +47 -4
- package/dist/cli/compose.d.ts +3 -0
- package/dist/cli/compose.js +33 -6
- package/dist/cli/deps.d.ts +6 -0
- package/dist/cli/exit-codes.d.ts +10 -0
- package/dist/cli/exit-codes.js +12 -0
- package/dist/cli/help-text.d.ts +4 -0
- package/dist/cli/help-text.js +102 -0
- package/dist/cli/startup-screen.js +5 -3
- package/dist/cli/startup-steps.js +7 -1
- package/dist/cli/subcommands/config.d.ts +4 -1
- package/dist/cli/subcommands/config.js +17 -6
- package/dist/cli/subcommands/doctor.js +21 -0
- package/dist/cli/subcommands/models-cache-probe.d.ts +1 -1
- package/dist/cli/subcommands/models-cache-probe.js +3 -12
- package/dist/cli/subcommands/models-discover.js +5 -6
- package/dist/cli/subcommands/models.d.ts +2 -0
- package/dist/cli/subcommands/models.js +33 -14
- package/dist/cli/subcommands/providers.d.ts +1 -1
- package/dist/cli/subcommands/providers.js +8 -15
- package/dist/cli/subcommands/sessions.d.ts +3 -1
- package/dist/cli/subcommands/sessions.js +36 -2
- package/dist/codemode/capability.d.ts +24 -7
- package/dist/codemode/capability.js +38 -10
- package/dist/codemode/host-side.d.ts +14 -0
- package/dist/codemode/host-side.js +24 -1
- package/dist/codemode/tool.d.ts +1 -1
- package/dist/codemode/tool.js +6 -4
- package/dist/compaction/breaker.d.ts +25 -9
- package/dist/compaction/breaker.js +47 -17
- package/dist/compaction/estimate.d.ts +11 -3
- package/dist/compaction/estimate.js +64 -22
- package/dist/compaction/image-budget.d.ts +45 -0
- package/dist/compaction/image-budget.js +115 -0
- package/dist/compaction/post-compact.d.ts +38 -0
- package/dist/compaction/post-compact.js +152 -0
- package/dist/compaction/protect.d.ts +27 -0
- package/dist/compaction/protect.js +56 -0
- package/dist/compaction/prune-tier.d.ts +58 -12
- package/dist/compaction/prune-tier.js +120 -54
- package/dist/compaction/summarize-tier.d.ts +23 -4
- package/dist/compaction/summarize-tier.js +100 -29
- package/dist/config/checker.d.ts +28 -0
- package/dist/config/checker.js +97 -0
- package/dist/config/json-schema.js +63 -2
- package/dist/config/key-docs.js +72 -3
- package/dist/config/merge.d.ts +5 -3
- package/dist/config/merge.js +81 -7
- package/dist/config/profile.d.ts +2 -0
- package/dist/config/profile.js +2 -0
- package/dist/config/schema-w5.d.ts +18 -0
- package/dist/config/schema-w5.js +109 -0
- package/dist/config/schema.d.ts +5 -9
- package/dist/config/schema.js +68 -114
- package/dist/config/types-w5.d.ts +118 -0
- package/dist/config/types-w5.js +20 -0
- package/dist/config/types.d.ts +50 -1
- package/dist/config/types.js +12 -0
- package/dist/drivers/acp/client.d.ts +57 -0
- package/dist/drivers/acp/client.js +160 -0
- package/dist/drivers/acp/driver.d.ts +31 -0
- package/dist/drivers/acp/driver.js +274 -0
- package/dist/drivers/acp/testing/fake-agent-main.d.ts +5 -0
- package/dist/drivers/acp/testing/fake-agent-main.js +7 -0
- package/dist/drivers/acp/testing/fake-agent.d.ts +27 -0
- package/dist/drivers/acp/testing/fake-agent.js +211 -0
- package/dist/drivers/acp/types.d.ts +285 -0
- package/dist/drivers/acp/types.js +36 -0
- package/dist/drivers/agents.d.ts +58 -0
- package/dist/drivers/agents.js +142 -0
- package/dist/drivers/base.d.ts +35 -0
- package/dist/drivers/base.js +59 -0
- package/dist/drivers/catalog.d.ts +46 -0
- package/dist/drivers/catalog.js +167 -0
- package/dist/drivers/env.d.ts +20 -0
- package/dist/drivers/env.js +46 -0
- package/dist/drivers/host-runners.d.ts +18 -0
- package/dist/drivers/host-runners.js +45 -0
- package/dist/drivers/jsonrpc.d.ts +58 -0
- package/dist/drivers/jsonrpc.js +180 -0
- package/dist/drivers/native/claude-normalize.d.ts +46 -0
- package/dist/drivers/native/claude-normalize.js +106 -0
- package/dist/drivers/native/claude-stream.d.ts +29 -0
- package/dist/drivers/native/claude-stream.js +456 -0
- package/dist/drivers/native/codex-app-server.d.ts +26 -0
- package/dist/drivers/native/codex-app-server.js +407 -0
- package/dist/drivers/native/codex-normalize.d.ts +38 -0
- package/dist/drivers/native/codex-normalize.js +124 -0
- package/dist/drivers/native/oneshot.d.ts +28 -0
- package/dist/drivers/native/oneshot.js +312 -0
- package/dist/drivers/permissions.d.ts +40 -0
- package/dist/drivers/permissions.js +92 -0
- package/dist/drivers/pids.d.ts +32 -0
- package/dist/drivers/pids.js +93 -0
- package/dist/drivers/pool.d.ts +28 -0
- package/dist/drivers/pool.js +96 -0
- package/dist/drivers/probe.d.ts +47 -0
- package/dist/drivers/probe.js +172 -0
- package/dist/drivers/process.d.ts +48 -0
- package/dist/drivers/process.js +100 -0
- package/dist/drivers/runner.d.ts +61 -0
- package/dist/drivers/runner.js +388 -0
- package/dist/drivers/store.d.ts +49 -0
- package/dist/drivers/store.js +91 -0
- package/dist/drivers/turn.d.ts +41 -0
- package/dist/drivers/turn.js +99 -0
- package/dist/drivers/types.d.ts +122 -0
- package/dist/drivers/types.js +11 -0
- package/dist/git/info.d.ts +75 -0
- package/dist/git/info.js +191 -0
- package/dist/hooks/protocol.js +6 -1
- package/dist/hooks/types.d.ts +10 -1
- package/dist/hooks/types.js +2 -0
- package/dist/host/api-impl.d.ts +7 -0
- package/dist/host/api-impl.js +15 -0
- package/dist/host/types.d.ts +24 -2
- package/dist/host/types.js +4 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +1 -0
- package/dist/modes/acp/acp-events.d.ts +46 -0
- package/dist/modes/acp/acp-events.js +233 -0
- package/dist/modes/acp/acp-mode.d.ts +17 -0
- package/dist/modes/acp/acp-mode.js +47 -0
- package/dist/modes/acp/acp-server.d.ts +79 -0
- package/dist/modes/acp/acp-server.js +315 -0
- package/dist/modes/commands-core.d.ts +13 -1
- package/dist/modes/commands-core.js +64 -0
- package/dist/modes/image-input.d.ts +12 -4
- package/dist/modes/image-input.js +22 -5
- package/dist/modes/interactive/agent-panels.d.ts +14 -0
- package/dist/modes/interactive/agent-panels.js +103 -0
- package/dist/modes/interactive/agent-ui.d.ts +73 -0
- package/dist/modes/interactive/agent-ui.js +234 -0
- package/dist/modes/interactive/approval-dialog.d.ts +21 -4
- package/dist/modes/interactive/approval-dialog.js +98 -20
- package/dist/modes/interactive/approval-merge.d.ts +41 -0
- package/dist/modes/interactive/approval-merge.js +89 -0
- package/dist/modes/interactive/clipboard-paste.d.ts +18 -0
- package/dist/modes/interactive/clipboard-paste.js +28 -0
- package/dist/modes/interactive/commands.d.ts +12 -1
- package/dist/modes/interactive/commands.js +31 -1
- package/dist/modes/interactive/confirm-dialog.d.ts +49 -0
- package/dist/modes/interactive/confirm-dialog.js +121 -0
- package/dist/modes/interactive/double-esc.d.ts +20 -0
- package/dist/modes/interactive/double-esc.js +34 -0
- package/dist/modes/interactive/event-notices.d.ts +32 -0
- package/dist/modes/interactive/event-notices.js +79 -0
- package/dist/modes/interactive/external-editor.d.ts +16 -0
- package/dist/modes/interactive/external-editor.js +39 -0
- package/dist/modes/interactive/interactive-mode.d.ts +14 -1
- package/dist/modes/interactive/interactive-mode.js +140 -136
- package/dist/modes/interactive/key-dispatch.d.ts +22 -2
- package/dist/modes/interactive/key-dispatch.js +66 -7
- package/dist/modes/interactive/line/line-mode.d.ts +4 -1
- package/dist/modes/interactive/line/line-mode.js +31 -5
- package/dist/modes/interactive/line/line-render.d.ts +2 -1
- package/dist/modes/interactive/line/line-render.js +40 -4
- package/dist/modes/interactive/message-view.d.ts +1 -1
- package/dist/modes/interactive/message-view.js +24 -2
- package/dist/modes/interactive/panels.d.ts +18 -1
- package/dist/modes/interactive/panels.js +19 -5
- package/dist/modes/interactive/plan-command.d.ts +40 -0
- package/dist/modes/interactive/plan-command.js +129 -0
- package/dist/modes/interactive/plan-dialog.d.ts +98 -0
- package/dist/modes/interactive/plan-dialog.js +290 -0
- package/dist/modes/interactive/plan-flow.d.ts +34 -0
- package/dist/modes/interactive/plan-flow.js +98 -0
- package/dist/modes/interactive/rewind-command.d.ts +31 -0
- package/dist/modes/interactive/rewind-command.js +106 -0
- package/dist/modes/interactive/rewind-flow.d.ts +37 -0
- package/dist/modes/interactive/rewind-flow.js +151 -0
- package/dist/modes/interactive/rewind-list.d.ts +36 -0
- package/dist/modes/interactive/rewind-list.js +123 -0
- package/dist/modes/interactive/rewind-panel.d.ts +77 -0
- package/dist/modes/interactive/rewind-panel.js +309 -0
- package/dist/modes/interactive/rewind-text.d.ts +40 -0
- package/dist/modes/interactive/rewind-text.js +139 -0
- package/dist/modes/interactive/session-events.d.ts +24 -0
- package/dist/modes/interactive/session-events.js +96 -0
- package/dist/modes/interactive/startup-ui.js +5 -1
- package/dist/modes/interactive/status-area.d.ts +73 -0
- package/dist/modes/interactive/status-area.js +190 -0
- package/dist/modes/interactive/status-bar.d.ts +99 -11
- package/dist/modes/interactive/status-bar.js +273 -90
- package/dist/modes/interactive/status-line.d.ts +33 -0
- package/dist/modes/interactive/status-line.js +113 -0
- package/dist/modes/interactive/subagent-view.d.ts +56 -0
- package/dist/modes/interactive/subagent-view.js +154 -0
- package/dist/modes/interactive/tasks-report.d.ts +27 -0
- package/dist/modes/interactive/tasks-report.js +114 -0
- package/dist/modes/interactive/tool-view.d.ts +12 -2
- package/dist/modes/interactive/tool-view.js +34 -4
- package/dist/modes/print/print-mode.d.ts +13 -4
- package/dist/modes/print/print-mode.js +56 -12
- package/dist/modes/rpc/commands.d.ts +9 -0
- package/dist/modes/rpc/commands.js +44 -0
- package/dist/modes/rpc/rpc-mode.js +7 -1
- package/dist/modes/session-report.d.ts +11 -0
- package/dist/modes/session-report.js +48 -1
- package/dist/permissions/auto-safe.d.ts +5 -0
- package/dist/permissions/auto-safe.js +18 -0
- package/dist/permissions/bypass.d.ts +32 -0
- package/dist/permissions/bypass.js +36 -0
- package/dist/permissions/classifier.d.ts +4 -0
- package/dist/permissions/classifier.js +2 -0
- package/dist/permissions/modes.js +1 -1
- package/dist/permissions/pipeline.d.ts +43 -4
- package/dist/permissions/pipeline.js +114 -9
- package/dist/permissions/readonly-bash.d.ts +30 -0
- package/dist/permissions/readonly-bash.js +118 -0
- package/dist/permissions/types.d.ts +42 -0
- package/dist/plan/compose.d.ts +9 -0
- package/dist/plan/compose.js +19 -0
- package/dist/plan/controller.d.ts +71 -0
- package/dist/plan/controller.js +27 -0
- package/dist/plan/done-markers.d.ts +17 -0
- package/dist/plan/done-markers.js +51 -0
- package/dist/plan/extract.d.ts +29 -0
- package/dist/plan/extract.js +160 -0
- package/dist/plan/prompts.d.ts +36 -0
- package/dist/plan/prompts.js +89 -0
- package/dist/plan/store.d.ts +37 -0
- package/dist/plan/store.js +90 -0
- package/dist/rpc.d.ts +58 -2
- package/dist/rpc.js +7 -0
- package/dist/sandbox/bash.d.ts +74 -0
- package/dist/sandbox/bash.js +126 -0
- package/dist/sandbox/detect.d.ts +48 -0
- package/dist/sandbox/detect.js +149 -0
- package/dist/sandbox/index.d.ts +5 -0
- package/dist/sandbox/index.js +5 -0
- package/dist/sandbox/profile.d.ts +33 -0
- package/dist/sandbox/profile.js +76 -0
- package/dist/sandbox/wrap.d.ts +29 -0
- package/dist/sandbox/wrap.js +117 -0
- package/dist/sdk.d.ts +33 -2
- package/dist/sdk.js +24 -2
- package/dist/session/types.d.ts +3 -1
- package/dist/session/types.js +1 -0
- package/dist/skills/builtin.d.ts +31 -0
- package/dist/skills/builtin.js +109 -0
- package/dist/skills/discover.d.ts +2 -1
- package/dist/skills/index-prompt.js +5 -8
- package/dist/tools/background-jobs.d.ts +71 -0
- package/dist/tools/background-jobs.js +198 -0
- package/dist/tools/bash.d.ts +53 -1
- package/dist/tools/bash.js +158 -7
- package/dist/tools/clipboard-image.d.ts +44 -0
- package/dist/tools/clipboard-image.js +148 -0
- package/dist/tools/edit.d.ts +2 -0
- package/dist/tools/edit.js +18 -3
- package/dist/tools/image-file.d.ts +38 -3
- package/dist/tools/image-file.js +81 -10
- package/dist/tools/image-resize.d.ts +58 -0
- package/dist/tools/image-resize.js +97 -0
- package/dist/tools/presets.d.ts +7 -2
- package/dist/tools/presets.js +11 -4
- package/dist/tools/read.d.ts +5 -2
- package/dist/tools/read.js +13 -10
- package/dist/tools/registry.d.ts +7 -1
- package/dist/tools/registry.js +27 -4
- package/dist/tools/task-ctl.d.ts +22 -0
- package/dist/tools/task-ctl.js +116 -0
- package/dist/tools/task.d.ts +22 -10
- package/dist/tools/task.js +66 -26
- package/dist/tools/todo.d.ts +22 -2
- package/dist/tools/todo.js +58 -14
- package/dist/tools/truncate.d.ts +15 -0
- package/dist/tools/truncate.js +25 -0
- package/dist/tools/types.d.ts +113 -0
- package/dist/tools/types.js +5 -0
- package/dist/tools/write.js +3 -0
- package/dist/tui/glyphs.d.ts +4 -0
- package/dist/tui/glyphs.js +4 -0
- package/dist/tui/keybindings.d.ts +6 -1
- package/dist/tui/keybindings.js +6 -1
- package/docs/acp.md +78 -0
- package/docs/agents.md +250 -0
- package/docs/codemode.md +12 -8
- package/docs/hooks.md +26 -22
- package/docs/permissions.md +78 -13
- package/docs/plan.md +107 -0
- package/docs/providers.md +228 -52
- package/docs/rewind-plan.md +181 -0
- package/docs/rpc.md +92 -5
- package/docs/sandbox.md +215 -0
- package/docs/session-format.md +41 -21
- package/docs/sessions.md +41 -1
- package/docs/tui-design.md +751 -0
- package/docs/tui.md +179 -21
- package/package.json +13 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,189 @@
|
|
|
1
1
|
# 更新记录
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 0.5.1(2026-10-03)
|
|
4
|
+
|
|
5
|
+
- **Tab 切换权限模式**:输入为空、补全未打开时按 Tab 与 Shift+Tab 一样循环权限模式;有输入时 Tab 仍是补全。可在 `keybindings.json` 的 `app.permission.cycle` 改回只用 `shift+tab`。
|
|
6
|
+
- **进入 Bypass 前确认**:Tab / Shift+Tab 循环到 Bypass permissions、`/permission` 选择器选它或 `/permission full-auto` 时,先弹确认框
|
|
7
|
+
(说明所有工具调用免审批,缺省选中「取消」,↑↓ Enter / 1 2 / y n / Esc)。循环时取消会跳过 Bypass 回到 Manual,选择器与命令取消
|
|
8
|
+
保持原模式;本次运行确认过一次后不再问。`--permission-mode full-auto`、配置与 profile 指定的不弹;line 模式问 `确认进入 Bypass?[y/N]`。
|
|
9
|
+
- **选择统一用 ↑↓ / Enter**:`ama providers add` / `refresh`(含 `--probe`)、`ama models cache-probe` 的计费 / 写入确认在 TTY 下
|
|
10
|
+
改为方向键选择「继续 / 取消」(缺省取消,y / n、数字直选,Esc / Ctrl+C 取消,结束后恢复终端);stdin 非 TTY 时仍是文本
|
|
11
|
+
`[y/N]`,`--yes` 照旧跳过。启动时的信任目录确认与 `/thinking` 选择器加数字直选。
|
|
12
|
+
|
|
13
|
+
## 0.5.0(2026-10-03)
|
|
14
|
+
|
|
15
|
+
第五波:回滚与检查点、操作系统沙箱、子 Agent、外部 Agent 与 ACP、Plan 模式、压缩与 harness 修订、模型元数据快照与内置渠道、
|
|
16
|
+
图像、状态行与界面集成。设计依据见 docs/wave5-plan.md,各主题的现状文档见下文链接。
|
|
17
|
+
|
|
18
|
+
### 破坏性变更与升级注意
|
|
19
|
+
|
|
20
|
+
- **退出码**:`-p` 到达 `--max-turns` 由 **1 改为 8**(`--max-cost`、`limits.*` 同为 8,`json` 结果带 `limitReached`);
|
|
21
|
+
新增 **9** = Plan 模式下计划已落盘、待审批(`plan.unattended: stop`,缺省)。7 仍是「工具调用被拒」。按退出码判断的脚本需要更新。
|
|
22
|
+
- **Node 22 / 24 在有操作系统沙箱时(macOS、多数 Linux)`default` 预设缺省带上 `codemode`**(原来只有 Node ≥ 25),工具表因此
|
|
23
|
+
变化。`todo` 仍不在 `default` 里(D20 复测未过门,见下文「基准」)。
|
|
24
|
+
- **升级后每个会话的首个请求缓存未命中一次**:系统提示规则节新增两条、Skill 索引改为每条一行、edit / bash 工具描述与 bash 参数变化、
|
|
25
|
+
上一条的 codemode;xAI、Mistral、Kimi 官方端点与腾讯 TokenHub 请求体多了 `prompt_cache_key`;开启 `sandbox.bash: auto`
|
|
26
|
+
时 bash 多一个参数。恢复的旧会话追加一条 system 补丁,之后照常命中。
|
|
27
|
+
- **缺省协议变化**:OpenAI、xAI 全部模型改走 Responses(`@chat` 换回 Chat),通义改走 Messages(`/apps/anthropic`)。改了
|
|
28
|
+
供应商级 `baseUrl` 的中转不受影响(按单渠道回落,OpenAI / xAI 目录模型在中转上仍走 Responses)。
|
|
29
|
+
- **模型元数据**:`ama models refresh-catalog` 改名 `ama models refresh`(旧名仍可用);不再读取旧版的全量缓存
|
|
30
|
+
`models-dev.json`(version 1),`ama providers add|refresh`、`ama models discover` 不再拉 models.dev。
|
|
31
|
+
- **图像上限**改按 base64 后计算并按端点分档(中转与未知主机 5 MB,原来按原始字节 5 MB),超 8000 px 拒绝。
|
|
32
|
+
- **压缩**:token 估算中文按字计,中文会话的自动压缩比以前早触发;会话层通用截断改为头 70% + 尾 30%。
|
|
33
|
+
- **交互界面**:Plan 审批不再是「回复 1 / 2 / 3」的文本(TUI 改为对话框;line 模式保留并新增 `/plan approve|reject`);独立终端的
|
|
34
|
+
底部信息行缺省两行(`ui.statusLine: "full"`),有 profile 的嵌入宿主仍是一行、`·` 分隔与模式最左不变;审批框标题带来源前缀。
|
|
35
|
+
- **外部 Agent 子进程**剥离 `ARMADRA_*`(`ARMADRA_ASKPASS_*` 除外)、供应商 key、`*_BASE_URL`、`AMA_*`。
|
|
36
|
+
- 协议版本常量(`RPC_PROTOCOL_VERSION`、`HOST_API_VERSION`、会话格式版本)不变;新增的事件、命令、字段全部可选。
|
|
37
|
+
|
|
38
|
+
### 回滚与检查点
|
|
39
|
+
|
|
40
|
+
- **检查点**(docs/rewind-plan.md、docs/sessions.md):edit / write 第一次写文件前备份,每个新回合重拍已跟踪文件;备份按内容 sha256
|
|
41
|
+
存 `<数据目录>/file-history/blobs/`。`checkpoints.mode: "shadow-git"` 把工作目录快照进独立的影子仓库,bash 与手动改动也能回滚(尊重
|
|
42
|
+
`.gitignore`,不碰用户仓库;git 不在 PATH、超过 20 000 个文件或快照超过 3 秒时本会话降级为 `tools`)。新配置 `checkpoints.mode`
|
|
43
|
+
(`AMA_CHECKPOINTS`)、`checkpoints.maxFileBytes`、`checkpoints.keep`;`ama sessions prune` 清理未引用备份,`ama doctor` 显示占用。
|
|
44
|
+
- **恢复**做冲突检测(回合外被改过的文件缺省跳过,可覆盖)与安全检查(符号链接、硬链接、非普通文件、父目录移动;非 Windows 用
|
|
45
|
+
`O_NOFOLLOW`),可预览行级增删。
|
|
46
|
+
- **回滚**:`/rewind` 与空闲时双击 Esc 打开回滚列表,确认面板给出恢复代码和对话 / 恢复对话 / 恢复代码 / 从这里摘要 / 摘要到这里,
|
|
47
|
+
每项带预览,git HEAD 变化时给出两条命令(不执行);输入框有字时双击 Esc 清空并存进历史;运行中 Esc 中断且本回合还没有输出时
|
|
48
|
+
自动撤回并回填(`ui.restoreOnCancel`)。line 模式 `/rewind <n> [both|conversation|code] [overwrite]`。新键位动作 `app.rewind`。
|
|
49
|
+
- 接口:`AgentSession.rewindPoints()` / `rewind()` / `summarizeFrom()` / `summarizeUpTo()` / `undoAbortedTurn()`;RPC
|
|
50
|
+
`get_rewind_points`、`rewind`、`summarize_from`、`summarize_up_to` 与事件 `session_rewound`;Hook 事件 `PostRewind`;SDK 导出回滚
|
|
51
|
+
类型。仅对话或仅代码时下一次提示前追加 `ama.rewind-note`,前缀不变。
|
|
52
|
+
|
|
53
|
+
### 操作系统沙箱
|
|
54
|
+
|
|
55
|
+
- docs/sandbox.md。新模块探测 macOS `sandbox-exec`、Linux bubblewrap(退而 `unshare -r -n`),用目标配置跑最小探针确认可用。
|
|
56
|
+
- **codemode** 子进程经沙箱启动,内核拒绝网络(含 DNS)与一切写入:Node 22 / 24 有沙箱时与 Node ≥ 25 一样按只读类处理、
|
|
57
|
+
`default` 预设缺省开启、状态栏不再标 `net!`。新配置 `sandbox.enabled`(`AMA_SANDBOX=off`)。
|
|
58
|
+
- **bash 沙箱**(缺省关闭):`sandbox.bash: "auto"`、`sandbox.network`、`sandbox.writable`。bash(含后台 bash)只能写工作区、临时目录
|
|
59
|
+
与追加目录,`.ama/`、`.git/hooks`、`.git/config` 只读,凭据目录不可读;`default` / `auto-edit` 下沙箱内且拒绝网络的命令免审批
|
|
60
|
+
(危险命令、deny 规则、Hook ask 照旧),被拒时可请求 `sandbox: false` 不经沙箱重跑(照常审批)。`ama doctor` / `config show` 显示状态,
|
|
61
|
+
状态栏多一个 `沙箱` 标记。
|
|
62
|
+
|
|
63
|
+
### 子 Agent
|
|
64
|
+
|
|
65
|
+
- docs/agents.md「子 Agent」。定义文件 `~/.config/ama/agents/*.md`、`.ama/agents/*.md`(需信任)、`--agent-dir` / profile `agentDirs` /
|
|
66
|
+
`agents.dirs`;内置 `general`、`explore`、`plan`(后两者强制只读、不弹审批)。
|
|
67
|
+
- `task` 新增 `agent`、`background`、`taskId`(续聊)、`isolation: "worktree"`、`budgetUsd`;同一回复里的多个 task 并行
|
|
68
|
+
(`subagents.maxConcurrent` / `maxPending`);结果超过 50 KB 保留头尾、全文落 `outputs/`;轮数用尽以 `toolChoice:"none"` 收尾一轮。
|
|
69
|
+
后台任务完成后以 `<task-notification>` 通知父会话;新工具 `task_ctl`(list / wait / stop / output / send)与 `task` 同进退。
|
|
70
|
+
- 子会话工具表与父逐字节相同,首个请求复用父的缓存前缀;角色说明是系统提示末位的 `role` 节。事件 `subagent_start / update / end`,
|
|
71
|
+
`getStats().tasks`,`custom{ama.task}` 记任务快照、resume 时重建。
|
|
72
|
+
- 界面:task 工具行折叠显示 `类型 · 状态 · 轮数 · 最近 3 个工具 · ↑↓`,后台任务有跟随状态,`<task-notification>` 只显示一行;
|
|
73
|
+
`/tasks`(查看输出、停止)、`/agents`;`/session` 增「子 Agent」行。
|
|
74
|
+
|
|
75
|
+
### 外部 Agent 与 ACP
|
|
76
|
+
|
|
77
|
+
- docs/agents.md「外部 Agent」、docs/acp.md。`task(agent="claude" | "codex" | "acp:<程序>")` 经各 CLI 自己的登录运行:Claude Code
|
|
78
|
+
(stream-json 原生协议)、Codex(`app-server`)、任意 ACP Agent(零依赖客户端)与一次性打印模式(只读兜底);前台 / 后台通知 /
|
|
79
|
+
`taskId` 续聊(被停止过的以外部会话 id `resume` 重开)/ `task_ctl` 与 ama 子会话一致;PATH 上的 claude / codex 写进 task 描述。
|
|
80
|
+
- **审批只交给人**(宿主 → 界面 → 无人值守拒绝,分类器与模型不参与,提问类请求不代答);每个会话首次以某个外部 Agent 运行时确认
|
|
81
|
+
一次(allow 规则 `task(<id>)` 或 full-auto 放行),Manual 模式下与 task 调用的审批合并为一次。模式不比 ama 当前模式宽;子进程缺省
|
|
82
|
+
剥离供应商 key 等(`agents.<id>.env.passthrough` 放回),只在已信任目录里启动;并发池、美元预算、看门狗、空闲关闭与孤儿进程清理;
|
|
83
|
+
每回合写 `custom{ama.agent-usage}`,`get_session_stats` 新增 `external`。
|
|
84
|
+
- 嵌入宿主时不自启外部 CLI,只用 `HostApi.runners.provide` 注入的 runner。RPC `permission_request` 新增可选 `context`(`depth`、
|
|
85
|
+
`taskId`、`origin`);`get_agents` 带外部 Agent 的安装与版本。
|
|
86
|
+
- **`ama --mode acp`**:ama 作为 ACP Agent(会话新开 / 回放 / 续接 / 列表 / 关闭、事件映射、`session/request_permission`、
|
|
87
|
+
`session/cancel`、`session/set_mode`)。`@armadra/agent/acp` 导出 ACP 类型、JSON-RPC 对等端、`AcpClient`、`AcpDriver` 与假 ACP Agent。
|
|
88
|
+
- ACP Agent 用探测到的完整路径启动:Windows 上 npm 装的 ACP Agent(`.cmd` 垫片)不再报 `spawn … ENOENT`(bundle 级 e2e 发现)。
|
|
89
|
+
- 界面:审批框标注来源(`[task:<类型>]`、`[claude · 会话 abc12345]`、「首次运行外部 Agent」);外部 Agent 的提示显示在消息区;
|
|
90
|
+
`/agents` 列出安装状态与版本,`/session` 增「外部 Agent」段。
|
|
91
|
+
|
|
92
|
+
### Plan 模式
|
|
93
|
+
|
|
94
|
+
- docs/plan.md。plan 下模式说明以 `custom_message{ama.plan_mode}` 追加在尾部(前缀不变),`ama.plan_state` 让 resume 回到 plan。
|
|
95
|
+
模型输出 `<proposed_plan>` 块,ama 提取步骤、落 `ama.plan` 与 `<数据目录>/plans/<会话>-v<N>.md`(`plan.directory`),发 `plan_proposed`。
|
|
96
|
+
- **审批**:交互界面是底部对话框——批准并执行 / 批准后在新上下文执行(新建会话,以计划全文开场)/ 继续修改(框内或外部编辑器写意见)/
|
|
97
|
+
放弃并退出 Plan;批准时选执行模式(回到进入前的模式 / Accept edits / Auto),`e` 在 `$VISUAL` / `$EDITOR` 里改计划,Esc 放弃但留在
|
|
98
|
+
Plan。批准后步骤转待办(`ama.todo`;todo 工具新增 `update` 与条目字段 `planStep`,事件 `todo_updated`)、切模式、以 `ama.plan_approved` 交接。line 模式
|
|
99
|
+
`/plan`、`/plan approve [模式|fresh]`、`/plan reject`(也接受回复 1 / 2 / 3);`/plan <目标>` 进入 Plan。
|
|
100
|
+
- 无人值守缺省 `plan.unattended: stop`(落盘后停下,`-p` 退出 9,`json` 带 `planPending`),`approve` 自动批准执行。可选
|
|
101
|
+
`plan.model` / `plan.thinkingLevel` 分模型规划。
|
|
102
|
+
- **权限细化**(docs/permissions.md):plan 放行只读命令子集(`ls`、`cat`、`rg`、`git log / diff / show` 等,`plan.bash`)与 `task`;
|
|
103
|
+
`todo set / update` 在 plan 下拒绝;`allowlist` 同步放行同一子集与 `task`,`plan ⊆ allowlist ⊆ default` 不变。模式选择器里 Plan 的
|
|
104
|
+
说明改为「只读调研,只跑只读命令,出计划后审批执行」。
|
|
105
|
+
- RPC `plan_response` / `get_plan` / `get_todos` / `get_tasks` / `get_agents` 与能力 `plans`(`hello.capabilities` 列出;声明后计划审批
|
|
106
|
+
交客户端);SDK `createAgentSession({ plan: { onProposed } })` 与 `session.plan.current() / respond() / todos()`,包入口导出
|
|
107
|
+
`SessionPlanOptions`、`SessionPlanApi`、`PlanDecision`、`PlanResponse`、`PlanResponseResult`、`SdkAgentSession`。
|
|
108
|
+
- **进度记法**:活动工具集里有 `todo` 时交接请模型 `todo update`;没有时(`default` 预设缺省不含 todo)请模型每完成一步单独一行写
|
|
109
|
+
`[DONE:<步骤>]`,ama 读标记推进计划待办(照常落 `ama.todo`、发 `todo_updated`)。`tools.default: ["+todo"]` 可加回 todo。
|
|
110
|
+
|
|
111
|
+
### 压缩与 harness
|
|
112
|
+
|
|
113
|
+
- **自动压缩修订**(docs/design.md §9):档一按工具结果新旧计边界(保留最近 `compaction.prune.keepResults` 个与最近
|
|
114
|
+
min(40k, 0.2×预算) token 的工具输出),修好「只有一条用户消息的长任务永不裁剪」;可省不足 `compaction.prune.clearAtLeast`
|
|
115
|
+
不动,动就一次清到 0.5×预算;缓存已冷时提前裁;Skill 文件、AGENTS.md、todo、`keepInContext` 工具与 `compaction.pruneExclude`
|
|
116
|
+
的结果不裁。熔断改为连续 3 次失败或连续 3 次快速回填才停。摘要模板补用户原话、错误与修复、文件与代码三节,压缩后不变小判失败;
|
|
117
|
+
split turn 两份摘要并行;压缩后在摘要末尾回注 todo、计划、已加载 Skill、最近文件与转录路径。新 Hook 事件 `PostCompact`。
|
|
118
|
+
- **harness**:通用截断头 70% + 尾 30%(中间写省略字符数与全文路径);重复调用检测(同名同参第 3、4 次提醒,第 5 次结束 run,
|
|
119
|
+
`agent_settled{warning:"repeated_tool_call"}`);预算 `limits.maxTurns / maxCostUsd` 与 `--max-turns`、`--max-cost`(事件
|
|
120
|
+
`limit_reached`);提醒通道 `ama.reminder`(todo 复述、读过的文件被外部改动、上下文 70% / 85%、预算剩余 < 20%、后台命令退出,
|
|
121
|
+
`reminders.*` 逐项可关);后台 bash(`bash{command, background:true}` 返回 jobId,`bash{job, action: wait | output | stop}`,会话结束
|
|
122
|
+
回收进程树);模型回退 `fallbackModel`(overloaded 或重试用尽时切过去重试一次,事件 `model_fallback`)。周期收尾阶段入队的
|
|
123
|
+
steer / followUp 不再滞留到下一次提示。
|
|
124
|
+
- **系统提示维护**:规则节加两条(破坏性命令先问;独立的只读工具调用放在同一轮);edit 描述写明多处修改用一次调用的 `edits[]`;
|
|
125
|
+
新增内置 Skill `ama-docs`(配置速查);Skill 索引改为每条一行;新增提示长度预算测试。
|
|
126
|
+
|
|
127
|
+
### 模型元数据与渠道
|
|
128
|
+
|
|
129
|
+
- **models.dev 快照入库**(docs/providers.md「模型元数据」):22 家主流厂商的裁剪快照随包携带(内联约 180 KB,MIT 声明见
|
|
130
|
+
`THIRD_PARTY_NOTICES.md`),**启动与运行都不联网**;`ama models refresh [--provider <id>]` 显式联网刷新到数据目录(晚于快照才叠加)。
|
|
131
|
+
内置目录改为「快照 ⊕ 覆盖」,与快照相同的值由测试报冗余;dashscope、gemini 2.5 / 3.1 pro、openrouter 部分模型补上价格 / 阶梯价;
|
|
132
|
+
模型新增 `family` / `knowledge` / `releaseDate` / `inputLimit` / `status`。每周的 `.github/workflows/models-dev.yml` 刷新快照并开 PR,
|
|
133
|
+
CI 在每个 PR 上校验这个 workflow 并以 fixture 跑刷新脚本的 dry-run。
|
|
134
|
+
- **内置渠道与缺省协议**(docs/providers.md「内置供应商」):多协议的内置供应商带内置渠道,`provider/model@channel` 直接可选;缺省
|
|
135
|
+
Messages / Responses 优先、Chat 回落(OpenAI、xAI、火山方舟 Responses;通义、MiniMax、阶跃、腾讯 Messages;DeepSeek、智谱、Kimi 暂
|
|
136
|
+
维持 Chat)。用户 `channels` 同名字段级覆盖、新名追加;改了供应商级 `baseUrl` 时内置渠道作废、按单渠道回落。新增内置供应商
|
|
137
|
+
MiniMax、阶跃、火山方舟、腾讯 TokenHub(共 17 家);Coding Plan 类订阅端点只给配置示例。
|
|
138
|
+
- Anthropic 兼容端点按主机推断 compat(交错思考 beta 头只发给官方端点与中转上的 Claude 模型,DeepSeek 不再打 `cache_control`),
|
|
139
|
+
新开关 `sendInterleavedThinkingBeta`、`sendCacheControl`;缓存能力按主机(xAI、Mistral、Kimi 官方端点发 `prompt_cache_key`,
|
|
140
|
+
腾讯 TokenHub 另支持 1h 保留)。价格核对:OpenRouter 的 kimi-k3、glm-5.3 改用现价。
|
|
141
|
+
- `scripts/channel-probe.mjs`:渠道实测门(每模型 ≤ 8 请求),中转上五家对比见 docs/providers.md「渠道实测」。
|
|
142
|
+
|
|
143
|
+
### 图像
|
|
144
|
+
|
|
145
|
+
- docs/providers.md「图像输入」。单图上限按 base64 后计算并按端点分档(官方 Anthropic 10 MB、Gemini / OpenAI 20 MB、中转与未知 5 MB),
|
|
146
|
+
任一边超 8000 px 拒绝;超限时按 `images.resize`(缺省 `auto`)用 `sips` / ImageMagick 缩放(`--image`、`@图片`、粘贴的图片都适用)。
|
|
147
|
+
请求图片总量超预算(Anthropic 32 MB、其它 20 MB)时把最旧的图换成占位文本(`context_edit{reason:"image_budget"}`),提示一次。
|
|
148
|
+
- 剪贴板图片:`Ctrl+V` / `/paste` 存进 `<数据目录>/clipboard/` 并插入 `@<路径>`(新键位动作 `app.paste.image`);
|
|
149
|
+
`ama sessions prune` 清理超过 7 天的剪贴板文件。
|
|
150
|
+
|
|
151
|
+
### 状态行与界面
|
|
152
|
+
|
|
153
|
+
- **底部信息行**(docs/tui.md「状态栏」):独立终端缺省两行——上方速率行 `tps: 100 tok/s • 546 tok / 5.5s (avg 100 · ttft 1.4s)`
|
|
154
|
+
与用量项,下方 `模式 | 模型 思考 | Ctx 3.0% | 目录 ⎇ 分支 短提交 (+a,-d) | $费用 | 会话时长`(git 直接读 `.git/HEAD`,增删行在
|
|
155
|
+
回合边界后台跑 `git diff --numstat`,≥ 10 s 一次、2 s 超时即停用,`AMA_STATUS_GIT=0` 关闭)。嵌入宿主缺省一行
|
|
156
|
+
(`ui.statusLine: "compact"`)。`Ctrl+G` 或 `/statusline [full|compact]` 本会话内切换。费用计入外部 Agent 的美元用量。RPC 新增
|
|
157
|
+
`telemetry_tick` 事件(≤ 2 Hz)与 `get_session_stats` 的 `telemetry`。
|
|
158
|
+
- 模型回退时状态栏显示 `主模型 → 回退模型`;预算到限、模型回退、后台命令启动 / 退出各给一行中文提示;「compaction did not shrink」
|
|
159
|
+
显示中文说明。
|
|
160
|
+
|
|
161
|
+
### 接口、测试与发布
|
|
162
|
+
|
|
163
|
+
- 第五波契约(docs/wave5-plan.md §9–§10,全部可选、向后兼容):会话扩展点 `SessionExtension`(`cli/compose-extensions.ts` 组装表);
|
|
164
|
+
RPC 命令表 42 条;`HostApi.runners` 可选面;子路径 `@armadra/agent/acp`;第五波配置键的校验、说明与 JSON Schema。
|
|
165
|
+
- bundle 级 e2e 新增 ACP(ama 经 `task(agent="acp:ama")` 驱动另一个 ama)、Plan(`-p` 退出 9 与 `unattended: approve`)、子 Agent
|
|
166
|
+
(前台与后台通知)、回滚(RPC 与跨进程)。
|
|
167
|
+
- npm 包增带 `docs/plan.md`、`docs/agents.md`、`docs/acp.md`、`docs/rewind-plan.md`、`docs/tui-design.md`;README 里其余设计文档改用
|
|
168
|
+
GitHub 链接。
|
|
169
|
+
- `scripts/bench-presets.mjs` 新增三个多步长任务(`--tasks long`);对照组名 `default+todo` 改为显式 `tools.default: ["+todo"]`
|
|
170
|
+
(原来是 `default` 的别名),`default-todo` 不变。
|
|
171
|
+
|
|
172
|
+
### 基准
|
|
173
|
+
|
|
174
|
+
- **D20:todo 不进 `default` 预设**。开发期间曾把 `todo` 加进 `default`,以 `bench-presets` 复测为门(估价涨幅 ≤ 5% 且成功数
|
|
175
|
+
不降)。W5-H2 的小任务首测(docs/benchmarks/presets-todo-2026-10-02.md,5 对、模型从未调用 todo)按门保留;本版用三个多步长任务
|
|
176
|
+
(`--tasks long`)、kimi-k2.5 与 deepseek-v4-flash、每组 3 次复测(docs/benchmarks/presets-todo-2026-10-03.md,18 对):含 todo 组成功
|
|
177
|
+
17/18、对照 18/18,统一估价 +4.6%、输入 token +15.8%、保守计价 +11.3%,36 次运行里只有 1 次调用了 todo → **按门撤出**,计划交接改用
|
|
178
|
+
`[DONE:n]`。复测 212 次请求,约 $0.27。
|
|
179
|
+
|
|
180
|
+
### 已知限制
|
|
181
|
+
|
|
182
|
+
- Linux 沙箱未在真机上验证(bubblewrap 的策略只经单元测试与 Ubuntu CI 验证;没有 bwrap 时退到 `unshare`,不能用于 bash 沙箱)。
|
|
183
|
+
- 外部 Agent 的真实 CLI 端到端只在本地跑:本机已登录 `claude` / `codex` 时 `AMA_E2E_AGENTS=1`(会用订阅额度);CI 只跑录制回放与
|
|
184
|
+
ama 驱动 ama。
|
|
185
|
+
- DeepSeek、智谱、Kimi 缺省仍走 Chat,等官方直连过了实测门再切 Messages。
|
|
186
|
+
- models.dev 每周刷新的 PR 需要仓库 secret `MODELS_DEV_PR_TOKEN` 才会触发 CI(没有时 workflow 自跑 `pnpm run ci` 并写进 PR 描述)。
|
|
4
187
|
|
|
5
188
|
## 0.4.0(2026-10-02)
|
|
6
189
|
|