@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.
- package/CHANGELOG.md +39 -32
- package/CHANGELOG.zh-CN.md +56 -49
- package/README.md +162 -204
- package/README.zh-CN.md +150 -199
- package/dist/acp.d.ts +1 -1
- package/dist/acp.js +1 -1
- package/dist/agent/limits.d.ts +1 -1
- package/dist/agent/limits.js +1 -1
- package/dist/agent/loop-guard.d.ts +1 -1
- package/dist/agent/loop-guard.js +1 -1
- package/dist/agent/prompt-rules.d.ts +1 -1
- package/dist/agent/prompt-rules.js +1 -1
- package/dist/agent/reminders.d.ts +1 -1
- package/dist/agent/reminders.js +1 -1
- package/dist/agent/session-cache-key.d.ts +1 -1
- package/dist/agent/session-cache-key.js +1 -1
- package/dist/agent/session-extensions.d.ts +1 -1
- package/dist/agent/session-extensions.js +1 -1
- package/dist/agent/session-images.d.ts +1 -1
- package/dist/agent/session-images.js +1 -1
- package/dist/agent/session-plan.d.ts +1 -1
- package/dist/agent/session-plan.js +1 -1
- package/dist/agent/session-rewind.d.ts +1 -1
- package/dist/agent/session-rewind.js +1 -1
- package/dist/agent/session-settings.d.ts +1 -1
- package/dist/agent/session-settings.js +1 -1
- package/dist/agent/session-subagent.d.ts +1 -1
- package/dist/agent/session-subagent.js +1 -1
- package/dist/agent/session-telemetry.d.ts +1 -1
- package/dist/agent/session-telemetry.js +1 -1
- package/dist/agent/session-trace-writer.d.ts +1 -1
- package/dist/agent/session-trace-writer.js +1 -1
- package/dist/agent/session.js +1 -1
- package/dist/agent/subagent-background.d.ts +1 -1
- package/dist/agent/subagent-background.js +1 -1
- package/dist/agent/subagent-direct.d.ts +1 -1
- package/dist/agent/subagent-direct.js +1 -1
- package/dist/agent/subagent-fork.d.ts +1 -1
- package/dist/agent/subagent-fork.js +1 -1
- package/dist/agent/subagent-registry.d.ts +1 -1
- package/dist/agent/subagent-registry.js +1 -1
- package/dist/agent/system-prompt.js +1 -1
- package/dist/agent/tool-availability.d.ts +1 -1
- package/dist/agent/tool-availability.js +1 -1
- package/dist/agent/types-w5.d.ts +2 -2
- package/dist/agent/types-w5.js +1 -1
- package/dist/agent/types-w6.d.ts +1 -1
- package/dist/agent/types-w6.js +1 -1
- package/dist/agent/types.d.ts +1 -1
- package/dist/agent/worktree.d.ts +1 -1
- package/dist/agent/worktree.js +1 -1
- package/dist/agents/builtin.d.ts +1 -1
- package/dist/agents/builtin.js +1 -1
- package/dist/agents/catalog.d.ts +1 -1
- package/dist/agents/catalog.js +1 -1
- package/dist/agents/discover.d.ts +1 -1
- package/dist/agents/discover.js +1 -1
- package/dist/agents/external.d.ts +1 -1
- package/dist/agents/external.js +1 -1
- package/dist/agents/parse.d.ts +1 -1
- package/dist/agents/parse.js +1 -1
- package/dist/agents/result.d.ts +1 -1
- package/dist/agents/result.js +2 -2
- package/dist/agents/task-record.d.ts +3 -3
- package/dist/agents/task-record.js +2 -2
- package/dist/agents/types.d.ts +1 -1
- package/dist/agents/types.js +1 -1
- package/dist/ai/apis/anthropic-compat.d.ts +2 -2
- package/dist/ai/apis/anthropic-compat.js +2 -2
- package/dist/ai/apis/cache-params.d.ts +1 -1
- package/dist/ai/apis/cache-params.js +1 -1
- package/dist/ai/apis/chatgpt-backend.d.ts +1 -1
- package/dist/ai/apis/chatgpt-backend.js +1 -1
- package/dist/ai/apis/chatgpt-rate-limits.d.ts +1 -1
- package/dist/ai/apis/chatgpt-rate-limits.js +1 -1
- package/dist/ai/apis/max-tokens.d.ts +1 -1
- package/dist/ai/apis/max-tokens.js +1 -1
- package/dist/ai/apis/shared.d.ts +1 -1
- package/dist/ai/apis/shared.js +1 -1
- package/dist/ai/image-intern.d.ts +2 -2
- package/dist/ai/image-intern.js +1 -1
- package/dist/ai/image-limits.d.ts +1 -1
- package/dist/ai/image-limits.js +1 -1
- package/dist/ai/json-body.d.ts +1 -1
- package/dist/ai/json-body.js +1 -1
- package/dist/ai/providers/builtin.d.ts +2 -2
- package/dist/ai/providers/builtin.js +4 -4
- package/dist/ai/providers/catalog.d.ts +2 -2
- package/dist/ai/providers/catalog.js +1 -1
- package/dist/ai/providers/channels.d.ts +1 -1
- package/dist/ai/providers/channels.js +1 -1
- package/dist/ai/providers/enrich.d.ts +1 -1
- package/dist/ai/providers/enrich.js +1 -1
- package/dist/ai/providers/models-dev-cache.d.ts +1 -1
- package/dist/ai/providers/models-dev-cache.js +1 -1
- package/dist/ai/providers/models-dev-data.d.ts +1 -1
- package/dist/ai/providers/models-dev-data.js +1 -1
- package/dist/ai/providers/models-dev-snapshot.d.ts +1 -1
- package/dist/ai/providers/models-dev-snapshot.js +1 -1
- package/dist/ai/providers/models-dev.d.ts +4 -4
- package/dist/ai/providers/models-dev.js +3 -3
- package/dist/ai/types.d.ts +2 -2
- package/dist/ai/types.js +1 -1
- package/dist/auth/chatgpt/cli.d.ts +1 -1
- package/dist/auth/chatgpt/cli.js +1 -1
- package/dist/auth/chatgpt/host-id.d.ts +1 -1
- package/dist/auth/chatgpt/host-id.js +1 -1
- package/dist/auth/chatgpt/login.d.ts +1 -1
- package/dist/auth/chatgpt/login.js +1 -1
- package/dist/auth/chatgpt/presets.d.ts +1 -1
- package/dist/auth/chatgpt/presets.js +1 -1
- package/dist/auth/oauth/callback-server.d.ts +1 -1
- package/dist/auth/oauth/callback-server.js +1 -1
- package/dist/auth/oauth/flows.d.ts +1 -1
- package/dist/auth/oauth/flows.js +1 -1
- package/dist/auth/oauth/oidc.d.ts +1 -1
- package/dist/auth/oauth/oidc.js +1 -1
- package/dist/auth/oauth/pkce.d.ts +1 -1
- package/dist/auth/oauth/pkce.js +1 -1
- package/dist/auth/oauth/refresh.d.ts +1 -1
- package/dist/auth/oauth/refresh.js +1 -1
- package/dist/auth/oauth/token-client.d.ts +1 -1
- package/dist/auth/oauth/token-client.js +1 -1
- package/dist/auth/oauth/token-store.d.ts +1 -1
- package/dist/auth/oauth/token-store.js +1 -1
- package/dist/auth/testing/fake-oauth.d.ts +1 -1
- package/dist/auth/testing/fake-oauth.js +1 -1
- package/dist/bundle/ama.cjs +24 -24
- package/dist/checkpoints/blobs.d.ts +1 -1
- package/dist/checkpoints/blobs.js +1 -1
- package/dist/checkpoints/gc.d.ts +1 -1
- package/dist/checkpoints/gc.js +1 -1
- package/dist/checkpoints/git-head.d.ts +1 -1
- package/dist/checkpoints/git-head.js +1 -1
- package/dist/checkpoints/index.d.ts +1 -1
- package/dist/checkpoints/index.js +1 -1
- package/dist/checkpoints/replay.d.ts +1 -1
- package/dist/checkpoints/replay.js +1 -1
- package/dist/checkpoints/restore.d.ts +1 -1
- package/dist/checkpoints/restore.js +1 -1
- package/dist/checkpoints/settings.d.ts +1 -1
- package/dist/checkpoints/settings.js +1 -1
- package/dist/checkpoints/shadow-git.d.ts +1 -1
- package/dist/checkpoints/shadow-git.js +1 -1
- package/dist/checkpoints/shadow-restore.d.ts +1 -1
- package/dist/checkpoints/shadow-restore.js +1 -1
- package/dist/checkpoints/tracker.d.ts +1 -1
- package/dist/checkpoints/tracker.js +1 -1
- package/dist/checkpoints/types.d.ts +1 -1
- package/dist/checkpoints/types.js +1 -1
- package/dist/cli/args.d.ts +2 -2
- package/dist/cli/args.js +1 -1
- package/dist/cli/bootstrap.js +1 -1
- package/dist/cli/choice-prompt.d.ts +1 -1
- package/dist/cli/choice-prompt.js +1 -1
- package/dist/cli/codemode-notice.d.ts +1 -1
- package/dist/cli/codemode-notice.js +1 -1
- package/dist/cli/compose-agents.d.ts +1 -1
- package/dist/cli/compose-agents.js +1 -1
- package/dist/cli/compose-extensions.d.ts +1 -1
- package/dist/cli/compose-extensions.js +1 -1
- package/dist/cli/compose-memory.d.ts +1 -1
- package/dist/cli/compose-memory.js +1 -1
- package/dist/cli/compose-providers.d.ts +1 -1
- package/dist/cli/compose-providers.js +1 -1
- package/dist/cli/compose-request.d.ts +1 -1
- package/dist/cli/compose-request.js +1 -1
- package/dist/cli/from-prompt.d.ts +1 -1
- package/dist/cli/from-prompt.js +1 -1
- package/dist/cli/main.d.ts +1 -1
- package/dist/cli/main.js +1 -1
- package/dist/cli/subcommands/auth.d.ts +1 -1
- package/dist/cli/subcommands/auth.js +1 -1
- package/dist/cli/subcommands/config-set.d.ts +1 -1
- package/dist/cli/subcommands/config-set.js +1 -1
- package/dist/cli/subcommands/doctor.js +1 -1
- package/dist/cli/subcommands/init.d.ts +1 -1
- package/dist/cli/subcommands/init.js +1 -1
- package/dist/cli/subcommands/memory.d.ts +1 -1
- package/dist/cli/subcommands/memory.js +1 -1
- package/dist/cli/subcommands/models.js +1 -1
- package/dist/cli/subcommands/providers-list.d.ts +1 -1
- package/dist/cli/subcommands/providers-list.js +1 -1
- package/dist/cli/subcommands/providers-plan.d.ts +1 -1
- package/dist/cli/subcommands/providers-plan.js +1 -1
- package/dist/cli/subcommands/providers.d.ts +1 -1
- package/dist/cli/subcommands/providers.js +1 -1
- package/dist/cli/subcommands/sessions-export.d.ts +1 -1
- package/dist/cli/subcommands/sessions-export.js +1 -1
- package/dist/cli/subcommands/sessions-trace.d.ts +1 -1
- package/dist/cli/subcommands/sessions-trace.js +1 -1
- package/dist/cli/subcommands/sessions.d.ts +1 -1
- package/dist/cli/subcommands/sessions.js +1 -1
- package/dist/cli/subcommands/stats.d.ts +1 -1
- package/dist/cli/subcommands/stats.js +1 -1
- package/dist/codemode/capability.d.ts +1 -1
- package/dist/codemode/capability.js +1 -1
- package/dist/codemode/host-side.d.ts +2 -2
- package/dist/codemode/host-side.js +2 -2
- package/dist/compaction/image-budget.d.ts +1 -1
- package/dist/compaction/image-budget.js +1 -1
- package/dist/config/edit.d.ts +1 -1
- package/dist/config/edit.js +1 -1
- package/dist/config/init.d.ts +1 -1
- package/dist/config/init.js +1 -1
- package/dist/config/json-schema.d.ts +2 -2
- package/dist/config/json-schema.js +2 -2
- package/dist/config/schema-w5.d.ts +1 -1
- package/dist/config/schema-w5.js +1 -1
- package/dist/config/schema-w6.d.ts +1 -1
- package/dist/config/schema-w6.js +1 -1
- package/dist/config/settings-registry.d.ts +1 -1
- package/dist/config/settings-registry.js +1 -1
- package/dist/config/types-w5.d.ts +2 -2
- package/dist/config/types-w5.js +2 -2
- package/dist/config/types-w6.d.ts +5 -5
- package/dist/config/types-w6.js +1 -1
- package/dist/config/types.d.ts +6 -6
- package/dist/config/types.js +1 -1
- package/dist/drivers/acp/client.d.ts +1 -1
- package/dist/drivers/acp/client.js +1 -1
- package/dist/drivers/acp/driver.d.ts +1 -1
- package/dist/drivers/acp/driver.js +1 -1
- package/dist/drivers/acp/testing/fake-agent.d.ts +1 -1
- package/dist/drivers/acp/testing/fake-agent.js +1 -1
- package/dist/drivers/acp/types.d.ts +1 -1
- package/dist/drivers/acp/types.js +1 -1
- package/dist/drivers/agents.d.ts +1 -1
- package/dist/drivers/agents.js +1 -1
- package/dist/drivers/base.d.ts +1 -1
- package/dist/drivers/base.js +1 -1
- package/dist/drivers/catalog.d.ts +1 -1
- package/dist/drivers/catalog.js +1 -1
- package/dist/drivers/env.d.ts +1 -1
- package/dist/drivers/env.js +1 -1
- package/dist/drivers/host-runners.d.ts +1 -1
- package/dist/drivers/host-runners.js +1 -1
- package/dist/drivers/jsonrpc.d.ts +1 -1
- package/dist/drivers/jsonrpc.js +1 -1
- package/dist/drivers/native/claude-normalize.d.ts +1 -1
- package/dist/drivers/native/claude-normalize.js +1 -1
- package/dist/drivers/native/claude-stream.d.ts +1 -1
- package/dist/drivers/native/claude-stream.js +1 -1
- package/dist/drivers/native/codex-app-server.d.ts +1 -1
- package/dist/drivers/native/codex-app-server.js +1 -1
- package/dist/drivers/native/codex-normalize.d.ts +1 -1
- package/dist/drivers/native/codex-normalize.js +1 -1
- package/dist/drivers/native/oneshot.d.ts +1 -1
- package/dist/drivers/native/oneshot.js +1 -1
- package/dist/drivers/permissions.d.ts +1 -1
- package/dist/drivers/permissions.js +1 -1
- package/dist/drivers/pids.d.ts +1 -1
- package/dist/drivers/pids.js +1 -1
- package/dist/drivers/pool.d.ts +1 -1
- package/dist/drivers/pool.js +1 -1
- package/dist/drivers/probe.d.ts +1 -1
- package/dist/drivers/probe.js +1 -1
- package/dist/drivers/process.d.ts +1 -1
- package/dist/drivers/process.js +1 -1
- package/dist/drivers/runner.d.ts +1 -1
- package/dist/drivers/runner.js +1 -1
- package/dist/drivers/store.d.ts +1 -1
- package/dist/drivers/store.js +1 -1
- package/dist/drivers/types.d.ts +1 -1
- package/dist/drivers/types.js +1 -1
- package/dist/git/info.d.ts +1 -1
- package/dist/git/info.js +1 -1
- package/dist/host/api-impl.d.ts +1 -1
- package/dist/host/api-impl.js +1 -1
- package/dist/host/types.d.ts +2 -2
- package/dist/i18n/catalog.d.ts +2 -2
- package/dist/i18n/catalog.js +2 -2
- package/dist/i18n/format.d.ts +1 -1
- package/dist/i18n/format.js +1 -1
- package/dist/i18n/index.d.ts +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/messages/acp.d.ts +1 -1
- package/dist/i18n/messages/acp.js +1 -1
- package/dist/i18n/messages/agents.d.ts +1 -1
- package/dist/i18n/messages/agents.js +1 -1
- package/dist/i18n/messages/approval.d.ts +1 -1
- package/dist/i18n/messages/approval.js +1 -1
- package/dist/i18n/messages/auth.d.ts +1 -1
- package/dist/i18n/messages/auth.js +1 -1
- package/dist/i18n/messages/cli.d.ts +1 -1
- package/dist/i18n/messages/cli.js +1 -1
- package/dist/i18n/messages/config-keys.js +12 -12
- package/dist/i18n/messages/config.d.ts +1 -1
- package/dist/i18n/messages/config.js +3 -3
- package/dist/i18n/messages/drivers.d.ts +1 -1
- package/dist/i18n/messages/drivers.js +1 -1
- package/dist/i18n/messages/errors.d.ts +1 -1
- package/dist/i18n/messages/errors.js +1 -1
- package/dist/i18n/messages/interactive-line.d.ts +1 -1
- package/dist/i18n/messages/interactive-line.js +1 -1
- package/dist/i18n/messages/interactive-startup.d.ts +1 -1
- package/dist/i18n/messages/interactive-startup.js +1 -1
- package/dist/i18n/messages/interactive-view.d.ts +1 -1
- package/dist/i18n/messages/interactive-view.js +1 -1
- package/dist/i18n/messages/interactive.d.ts +1 -1
- package/dist/i18n/messages/interactive.js +1 -1
- package/dist/i18n/messages/memory.d.ts +1 -1
- package/dist/i18n/messages/memory.js +1 -1
- package/dist/i18n/messages/panels.d.ts +1 -1
- package/dist/i18n/messages/panels.js +1 -1
- package/dist/i18n/messages/permissions.d.ts +1 -1
- package/dist/i18n/messages/permissions.js +1 -1
- package/dist/i18n/messages/plan.d.ts +1 -1
- package/dist/i18n/messages/plan.js +1 -1
- package/dist/i18n/messages/print.d.ts +2 -2
- package/dist/i18n/messages/print.js +2 -2
- package/dist/i18n/messages/report-context.d.ts +1 -1
- package/dist/i18n/messages/report-context.js +1 -1
- package/dist/i18n/messages/report.d.ts +1 -1
- package/dist/i18n/messages/report.js +1 -1
- package/dist/i18n/messages/rewind.d.ts +1 -1
- package/dist/i18n/messages/rewind.js +1 -1
- package/dist/i18n/messages/session.d.ts +1 -1
- package/dist/i18n/messages/session.js +1 -1
- package/dist/i18n/messages/settings.d.ts +1 -1
- package/dist/i18n/messages/settings.js +1 -1
- package/dist/i18n/messages/subcommands.d.ts +1 -1
- package/dist/i18n/messages/subcommands.js +1 -1
- package/dist/i18n/messages/trace.d.ts +1 -1
- package/dist/i18n/messages/trace.js +1 -1
- package/dist/i18n/types.d.ts +1 -1
- package/dist/i18n/types.js +1 -1
- package/dist/memory/frontmatter.d.ts +1 -1
- package/dist/memory/frontmatter.js +1 -1
- package/dist/memory/index.d.ts +1 -1
- package/dist/memory/index.js +1 -1
- package/dist/memory/lock.d.ts +1 -1
- package/dist/memory/lock.js +1 -1
- package/dist/memory/paths.d.ts +1 -1
- package/dist/memory/paths.js +1 -1
- package/dist/memory/runtime.d.ts +1 -1
- package/dist/memory/runtime.js +1 -1
- package/dist/memory/secrets.d.ts +1 -1
- package/dist/memory/secrets.js +1 -1
- package/dist/memory/section.d.ts +1 -1
- package/dist/memory/section.js +1 -1
- package/dist/memory/store.d.ts +1 -1
- package/dist/memory/store.js +1 -1
- package/dist/memory/tool.d.ts +1 -1
- package/dist/memory/tool.js +1 -1
- package/dist/modes/acp/acp-auth-gate.d.ts +1 -1
- package/dist/modes/acp/acp-auth-gate.js +1 -1
- package/dist/modes/acp/acp-config.d.ts +1 -1
- package/dist/modes/acp/acp-config.js +1 -1
- package/dist/modes/acp/acp-connection.d.ts +1 -1
- package/dist/modes/acp/acp-connection.js +1 -1
- package/dist/modes/acp/acp-events.d.ts +1 -1
- package/dist/modes/acp/acp-events.js +1 -1
- package/dist/modes/acp/acp-mode.d.ts +1 -1
- package/dist/modes/acp/acp-mode.js +1 -1
- package/dist/modes/acp/acp-server.d.ts +2 -2
- package/dist/modes/acp/acp-server.js +2 -2
- package/dist/modes/acp/acp-sessions.d.ts +2 -2
- package/dist/modes/acp/acp-sessions.js +2 -2
- package/dist/modes/acp/acp-tool-text.d.ts +1 -1
- package/dist/modes/acp/acp-tool-text.js +1 -1
- package/dist/modes/commands-core.js +1 -1
- package/dist/modes/image-input.d.ts +1 -1
- package/dist/modes/image-input.js +1 -1
- package/dist/modes/interactive/agent-bar.d.ts +1 -1
- package/dist/modes/interactive/agent-bar.js +1 -1
- package/dist/modes/interactive/agent-transcript.d.ts +1 -1
- package/dist/modes/interactive/agent-transcript.js +1 -1
- package/dist/modes/interactive/agent-view.d.ts +1 -1
- package/dist/modes/interactive/agent-view.js +1 -1
- package/dist/modes/interactive/approval-dock.d.ts +1 -1
- package/dist/modes/interactive/approval-dock.js +1 -1
- package/dist/modes/interactive/config-panel.d.ts +1 -1
- package/dist/modes/interactive/config-panel.js +1 -1
- package/dist/modes/interactive/config-ui.d.ts +1 -1
- package/dist/modes/interactive/config-ui.js +1 -1
- package/dist/modes/interactive/memory-panel.d.ts +1 -1
- package/dist/modes/interactive/memory-panel.js +1 -1
- package/dist/modes/interactive/plan-command.d.ts +1 -1
- package/dist/modes/interactive/plan-command.js +1 -1
- package/dist/modes/interactive/plan-dialog.d.ts +1 -1
- package/dist/modes/interactive/plan-dialog.js +1 -1
- package/dist/modes/interactive/plan-flow.d.ts +1 -1
- package/dist/modes/interactive/plan-flow.js +1 -1
- package/dist/modes/interactive/subagent-view.d.ts +1 -1
- package/dist/modes/interactive/subagent-view.js +1 -1
- package/dist/modes/interactive/task-background.d.ts +1 -1
- package/dist/modes/interactive/task-background.js +1 -1
- package/dist/modes/interactive/trace-view.d.ts +1 -1
- package/dist/modes/interactive/trace-view.js +1 -1
- package/dist/modes/print/json-event.d.ts +1 -1
- package/dist/modes/print/json-event.js +2 -2
- package/dist/modes/print/print-mode.d.ts +1 -1
- package/dist/modes/print/print-mode.js +1 -1
- package/dist/modes/print/search-hint.d.ts +1 -1
- package/dist/modes/print/search-hint.js +1 -1
- package/dist/modes/rpc/commands.js +2 -2
- package/dist/permissions/auto-safe.d.ts +1 -1
- package/dist/permissions/auto-safe.js +1 -1
- package/dist/permissions/bypass.d.ts +1 -1
- package/dist/permissions/bypass.js +1 -1
- package/dist/permissions/classifier.d.ts +1 -1
- package/dist/permissions/classifier.js +1 -1
- package/dist/permissions/memory-class.d.ts +1 -1
- package/dist/permissions/memory-class.js +1 -1
- package/dist/permissions/pipeline.d.ts +2 -2
- package/dist/permissions/pipeline.js +2 -2
- package/dist/permissions/protected.d.ts +1 -1
- package/dist/permissions/protected.js +1 -1
- package/dist/permissions/readonly-bash.d.ts +1 -1
- package/dist/permissions/readonly-bash.js +1 -1
- package/dist/permissions/types.d.ts +2 -2
- package/dist/plan/done-markers.d.ts +1 -1
- package/dist/plan/done-markers.js +1 -1
- package/dist/plan/extract.d.ts +1 -1
- package/dist/plan/extract.js +1 -1
- package/dist/plan/prompts.d.ts +1 -1
- package/dist/plan/prompts.js +1 -1
- package/dist/plan/store.d.ts +1 -1
- package/dist/plan/store.js +1 -1
- package/dist/rpc.d.ts +3 -3
- package/dist/rpc.js +3 -3
- package/dist/sandbox/bash.d.ts +1 -1
- package/dist/sandbox/bash.js +1 -1
- package/dist/sandbox/detect.d.ts +1 -1
- package/dist/sandbox/detect.js +1 -1
- package/dist/sandbox/index.d.ts +1 -1
- package/dist/sandbox/index.js +1 -1
- package/dist/sandbox/profile.d.ts +1 -1
- package/dist/sandbox/profile.js +1 -1
- package/dist/sandbox/wrap.d.ts +1 -1
- package/dist/sandbox/wrap.js +1 -1
- package/dist/sdk.d.ts +3 -3
- package/dist/sdk.js +2 -2
- package/dist/session/line-reader.d.ts +1 -1
- package/dist/session/line-reader.js +1 -1
- package/dist/session/list.d.ts +1 -1
- package/dist/session/list.js +1 -1
- package/dist/session/migrate.d.ts +1 -1
- package/dist/session/migrate.js +1 -1
- package/dist/session/store.d.ts +1 -1
- package/dist/session/store.js +1 -1
- package/dist/skills/builtin.js +2 -2
- package/dist/tools/background-jobs.d.ts +1 -1
- package/dist/tools/background-jobs.js +1 -1
- package/dist/tools/clipboard-image.d.ts +1 -1
- package/dist/tools/clipboard-image.js +1 -1
- package/dist/tools/edit.d.ts +1 -1
- package/dist/tools/edit.js +1 -1
- package/dist/tools/grep.d.ts +1 -1
- package/dist/tools/grep.js +1 -1
- package/dist/tools/image-resize.d.ts +1 -1
- package/dist/tools/image-resize.js +1 -1
- package/dist/tools/read-lines.d.ts +1 -1
- package/dist/tools/read-lines.js +1 -1
- package/dist/tools/read.d.ts +1 -1
- package/dist/tools/read.js +1 -1
- package/dist/tools/task-ctl.d.ts +1 -1
- package/dist/tools/task-ctl.js +1 -1
- package/dist/tools/task.d.ts +2 -2
- package/dist/tools/task.js +2 -2
- package/dist/tools/types.d.ts +3 -3
- package/dist/tools/types.js +1 -1
- package/dist/trace/build.d.ts +1 -1
- package/dist/trace/build.js +1 -1
- package/dist/trace/detail.d.ts +1 -1
- package/dist/trace/detail.js +1 -1
- package/dist/trace/flatten.d.ts +1 -1
- package/dist/trace/flatten.js +1 -1
- package/dist/trace/format.d.ts +1 -1
- package/dist/trace/format.js +1 -1
- package/dist/trace/html-template.d.ts +1 -1
- package/dist/trace/html-template.js +1 -1
- package/dist/trace/html.d.ts +1 -1
- package/dist/trace/html.js +1 -1
- package/dist/trace/query-session.d.ts +1 -1
- package/dist/trace/query-session.js +1 -1
- package/dist/trace/query.d.ts +1 -1
- package/dist/trace/query.js +1 -1
- package/dist/trace/types.d.ts +1 -1
- package/dist/trace/types.js +1 -1
- package/dist/tui/components/settings-list.d.ts +1 -1
- package/dist/tui/components/settings-list.js +1 -1
- package/docs/README.md +85 -0
- package/docs/assets/ama-wordmark-dark.svg +37 -0
- package/docs/assets/ama-wordmark-light.svg +37 -0
- package/docs/en/README.md +39 -0
- package/docs/en/{permissions.md → guides/permissions.md} +14 -14
- package/docs/en/{providers.md → guides/providers.md} +6 -6
- package/docs/en/{sessions.md → guides/sessions.md} +6 -6
- package/docs/en/{tui.md → guides/tui.md} +15 -15
- package/docs/en/{acp.md → reference/acp.md} +6 -6
- package/docs/en/{host-api.md → reference/host-api.md} +7 -7
- package/docs/en/{rpc.md → reference/rpc.md} +13 -13
- package/docs/{agents.md → guides/agents.md} +13 -13
- package/docs/{codemode.md → guides/codemode.md} +3 -3
- package/docs/{hooks.md → guides/hooks.md} +2 -2
- package/docs/guides/i18n.md +93 -0
- package/docs/{memory.md → guides/memory.md} +1 -1
- package/docs/{permissions.md → guides/permissions.md} +2 -2
- package/docs/{plan.md → guides/plan.md} +4 -4
- package/docs/{providers.md → guides/providers.md} +4 -4
- package/docs/{sessions.md → guides/sessions.md} +5 -5
- package/docs/{tui.md → guides/tui.md} +8 -8
- package/docs/{acp.md → reference/acp.md} +5 -5
- package/docs/{host-api.md → reference/host-api.md} +4 -4
- package/docs/{rpc.md → reference/rpc.md} +11 -11
- package/docs/{session-format.md → reference/session-format.md} +7 -7
- package/package.json +12 -23
- package/docs/rewind-plan.md +0 -181
- package/docs/tui-design.md +0 -764
- /package/docs/{sandbox.md → guides/sandbox.md} +0 -0
package/README.zh-CN.md
CHANGED
|
@@ -1,274 +1,225 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
<picture>
|
|
4
|
+
<source media="(prefers-color-scheme: dark)" srcset="docs/assets/ama-wordmark-dark.svg">
|
|
5
|
+
<img src="docs/assets/ama-wordmark-light.svg" alt="ama" width="216">
|
|
6
|
+
</picture>
|
|
7
7
|
|
|
8
8
|
[English](README.md) · 简体中文
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
**在终端里写代码的 Agent:脚本、编辑器和宿主都能调用它,它也能把活交给其它编码 Agent。**
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
██ ██ ██ ██ ██ ██ Accept edits · 预设 default
|
|
17
|
-
▀▀ ▀▀ ▀▀ ▀▀ ▀▀ ▀▀ AGENTS.md · 2 Skill
|
|
18
|
-
/help 命令 · Shift+Tab 切模式 · Ctrl+O 展开工具输出
|
|
19
|
-
```
|
|
12
|
+
[](https://github.com/AMA-Link/armadra-agent/actions/workflows/ci.yml)
|
|
13
|
+
[](https://www.npmjs.com/package/@armadra/agent)
|
|
14
|
+
[](LICENSE)
|
|
15
|
+
[](https://nodejs.org)
|
|
20
16
|
|
|
21
|
-
|
|
22
|
-
- [快速开始](#快速开始)
|
|
23
|
-
- [核心能力](#核心能力)
|
|
24
|
-
- [嵌入与集成](#嵌入与集成)
|
|
25
|
-
- [命令速查](#命令速查)
|
|
26
|
-
- [退出码](#退出码)
|
|
27
|
-
- [文档](#文档)
|
|
28
|
-
- [已知限制](#已知限制)
|
|
29
|
-
- [开发](#开发)
|
|
30
|
-
- [许可证与致谢](#许可证与致谢)
|
|
17
|
+
[安装](#安装) · [连接模型](#连接模型) · [用法](#用法) · [配置与权限](#配置与权限) · [文档](docs/README.md) · [更新记录](CHANGELOG.zh-CN.md)
|
|
31
18
|
|
|
32
|
-
|
|
19
|
+
</div>
|
|
33
20
|
|
|
34
|
-
|
|
21
|
+
---
|
|
35
22
|
|
|
36
|
-
|
|
23
|
+
ama 在终端界面里读代码、改代码、跑命令,也能用 `ama -p` 一次性回答问题。它可以把子任务交给自己的子 Agent,或者以你在各个
|
|
24
|
+
CLI 里已有的登录驱动外部编码 Agent(Claude Code、Codex、GitHub Copilot CLI、OpenCode、Pi 以及任意 ACP Agent)。可以单独
|
|
25
|
+
使用,可以在编辑器里经 ACP 使用,可以经 RPC 或 SDK 嵌入,也可以在 [Armadra](https://github.com/AMA-Link/Armadra) 画布上
|
|
26
|
+
担任协调者。
|
|
37
27
|
|
|
38
|
-
|
|
39
|
-
- **为被调用而做**:`-p`、`--mode rpc`、`--mode acp`、SDK 与宿主适配器都是正式入口,退出码与 JSON 形状都是契约。
|
|
40
|
-
- **缓存优先**:请求前缀逐字节稳定,缓存断点按各家的方式放,界面直接显示缓存是否生效、为什么没命中。主要预设的「系统提示 + 工具表」都有 token 预算,由测试守住。
|
|
41
|
-
- **权限不代答**:ama 和模型都不会替人回答权限请求;没人能审批时一律按拒绝处理。
|
|
42
|
-
- **Skills 而非 MCP**:扩展靠 `SKILL.md` 目录、提示模板、命令式 Hook 和宿主适配器。
|
|
43
|
-
- **配置少**:设一个环境变量就能开始,其余都有缺省。
|
|
28
|
+
## 为什么用 ama
|
|
44
29
|
|
|
45
|
-
|
|
30
|
+
- **运行时零依赖**:TypeScript 编写,运行在 Node ≥ 22 上,`dependencies` 为空;另有单文件 `ama.cjs` 发行版。HTTP、SSE、
|
|
31
|
+
YAML frontmatter 与 JSON Schema 都自己实现。
|
|
32
|
+
- **缓存优先**:同一会话内系统提示与工具表逐字节稳定,变化只追加在末尾;缓存断点按各家的方式放,状态栏显示命中率和未命中
|
|
33
|
+
的原因。主要工具预设的 token 预算由测试守住。
|
|
34
|
+
- **审批只交给人**:ama 与模型都不代答权限请求,子 Agent 与外部 Agent 发起的也一样。没有人能审批时(`-p`、无人值守的
|
|
35
|
+
RPC)一律拒绝。
|
|
36
|
+
- **为被调用而做**:`-p`、`--mode rpc`、`--mode acp`、SDK 与宿主适配器都是正式入口;退出码与 JSON 形状都是契约,带版本号,
|
|
37
|
+
每次发布前检查。
|
|
38
|
+
- **Skills 而非 MCP**:用 `SKILL.md` 目录、提示模板、命令式 Hook 与宿主适配器扩展 ama。
|
|
46
39
|
|
|
47
|
-
|
|
40
|
+
## 安装
|
|
48
41
|
|
|
49
42
|
```sh
|
|
50
43
|
npm i -g @armadra/agent
|
|
51
44
|
ama --version
|
|
52
45
|
```
|
|
53
46
|
|
|
54
|
-
[
|
|
47
|
+
每个 [Release](https://github.com/AMA-Link/armadra-agent/releases) 还附带单文件版(`ama.cjs` 与 codemode 沙箱入口
|
|
48
|
+
`ama-sandbox.cjs`,放在同一目录)和离线安装用的 `package.tgz`。
|
|
55
49
|
|
|
56
|
-
|
|
50
|
+
## 连接模型
|
|
57
51
|
|
|
58
52
|
任选一种:
|
|
59
53
|
|
|
60
54
|
```sh
|
|
61
|
-
export ANTHROPIC_API_KEY=sk-...
|
|
62
|
-
ama auth set deepseek
|
|
63
|
-
ama
|
|
64
|
-
ama
|
|
65
|
-
ama --model ollama
|
|
55
|
+
export ANTHROPIC_API_KEY=sk-... # 或 OPENAI_API_KEY、GEMINI_API_KEY、DEEPSEEK_API_KEY …
|
|
56
|
+
ama auth set deepseek # 从 stdin 读 key,存到 ~/.config/ama/auth.json(0600)
|
|
57
|
+
ama auth login chatgpt # 用自己的 ChatGPT Plus / Pro 订阅额度,不用 API key
|
|
58
|
+
ama providers add packy --base-url https://relay.example/v1 --probe # 中转:列模型、探测协议、写配置
|
|
59
|
+
ama --model ollama/<模型> # 本地 Ollama / LM Studio 不需要 key
|
|
66
60
|
```
|
|
67
61
|
|
|
68
|
-
|
|
62
|
+
- **内置供应商(18 家)**:Anthropic、OpenAI、Google、DeepSeek、Moonshot(Kimi)、智谱、通义(DashScope)、OpenRouter、
|
|
63
|
+
Groq、xAI、Mistral、MiniMax、阶跃星辰、火山方舟、腾讯、ChatGPT(订阅登录)、Ollama 与 LM Studio,覆盖四种协议:
|
|
64
|
+
Anthropic Messages、OpenAI Responses、OpenAI Chat Completions 与 Google Generative AI。
|
|
65
|
+
- **渠道**:一个供应商可以挂多个接口,`provider/model@channel` 指定其中一个,例如 `deepseek/deepseek-v4-pro@messages`。
|
|
66
|
+
- **模型元数据**(上下文窗口、输出上限、图像输入、推理、价格)来自随包附带的 models.dev 快照,启动不联网;
|
|
67
|
+
`ama models refresh` 按需更新。
|
|
68
|
+
- 有 key 时,ama 取第一个有 key 的供应商及其缺省模型;`ama config show` 说明选了哪个、为什么。
|
|
69
|
+
|
|
70
|
+
详见[供应商与模型](docs/guides/providers.md)、[ChatGPT 登录](docs/guides/providers.md#chatgpt-登录)、
|
|
71
|
+
[接入中转站](docs/guides/providers.md#接入中转站)。
|
|
69
72
|
|
|
70
|
-
|
|
73
|
+
## 用法
|
|
74
|
+
|
|
75
|
+
### 终端界面
|
|
71
76
|
|
|
72
77
|
```sh
|
|
73
78
|
cd your-project
|
|
74
|
-
ama
|
|
75
|
-
ama -p "解释 src/index.ts" # 一次性:打印回答后退出
|
|
76
|
-
git diff | ama -p "审一下这个改动" # 管道输入追加在提示后面
|
|
77
|
-
ama -p "列出 TODO" --output-format json
|
|
79
|
+
ama
|
|
78
80
|
```
|
|
79
81
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
|
85
|
-
|
|
|
86
|
-
|
|
|
87
|
-
| `/
|
|
88
|
-
|
|
|
89
|
-
|
|
|
90
|
-
| Esc / 双击 Esc | 中断运行 /(空闲且输入为空时)打开回滚列表 |
|
|
91
|
-
| Ctrl+G | 状态栏完整 ↔ 精简 |
|
|
92
|
-
| Ctrl+O | 展开 / 折叠工具输出与思考 |
|
|
93
|
-
| `/config` | 设置面板 |
|
|
94
|
-
| 连按两次 Ctrl+C | 退出(恢复命令留在终端回滚区) |
|
|
95
|
-
|
|
96
|
-
`/help` 列出全部命令。按键可在 `~/.config/ama/keybindings.json` 里改,见 [docs/tui.md](docs/tui.md#按键)。
|
|
97
|
-
|
|
98
|
-
## 核心能力
|
|
99
|
-
|
|
100
|
-
### 模型与供应商
|
|
101
|
-
|
|
102
|
-
四条协议线(Anthropic Messages、OpenAI Responses、OpenAI Chat Completions、Google Generative AI),18 家内置供应商:Anthropic、OpenAI、Google、DeepSeek、Moonshot(Kimi)、智谱、通义千问(DashScope)、OpenRouter、Groq、xAI、Mistral、MiniMax、阶跃星辰、火山方舟、腾讯、ChatGPT(订阅登录)、Ollama、LM Studio。一家供应商可以挂多个渠道,优先 Messages / Responses,Chat 兜底;`provider/model@channel` 显式指定渠道。中转站用 `ama providers add` 接入:列模型、探测渠道、写回配置。上下文窗口、输出上限、图像输入、推理与价格来自内置的 models.dev 快照,启动不联网(`ama models refresh` 按需更新)。`models.enabled`(`ama models enable|disable`,或在 `/model` 里按 Space)让选择器只列常用模型。见 [docs/providers.md](docs/providers.md) 与 [ChatGPT 登录](docs/providers.md#chatgpt-登录)。
|
|
103
|
-
|
|
104
|
-
### 权限与沙箱
|
|
82
|
+
| 按键 / 命令 | 作用 |
|
|
83
|
+
| ----------------------- | ------------------------------------------------------ |
|
|
84
|
+
| Shift+Tab(空输入 Tab) | 循环切换权限模式;进入 Bypass 需要确认 |
|
|
85
|
+
| `/model`(Ctrl+L) | 选模型 |
|
|
86
|
+
| 空输入时 ↓ | 进入 Agent 栏;Enter 打开子 Agent 的实时视图 |
|
|
87
|
+
| Ctrl+B | 把阻塞中的前台子 Agent 转到后台(tmux 里按 `C-b C-b`) |
|
|
88
|
+
| Esc / Esc Esc | 中断运行 /(空闲且输入为空)打开回滚列表 |
|
|
89
|
+
| `/plan <目标>` | 先只读调研,批准计划后才开始改动 |
|
|
90
|
+
| `/trace` | 回合、请求、工具与子 Agent 的耗时树 |
|
|
91
|
+
| `/config` | 设置面板 |
|
|
105
92
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
| `default` | Manual | 询问 | 询问 |
|
|
109
|
-
| `auto-edit` | Accept edits | 放行 | 询问 |
|
|
110
|
-
| `plan` | Plan | 拒绝 | 只放行只读命令 |
|
|
111
|
-
| `auto` | Auto | 放行 ¹ | 安全的放行,有风险的询问 |
|
|
112
|
-
| `full-auto` | Bypass permissions | 放行 | 放行(危险命令仍询问) |
|
|
113
|
-
| `allowlist` | Allowlist only | 按 allow 规则 | 按 allow 规则(适合 CI) |
|
|
93
|
+
`/help` 列出全部命令。每个回合都是检查点,`/rewind` 可以回到其中任一处(代码、对话或两者)。
|
|
94
|
+
见[终端界面](docs/guides/tui.md)与[会话](docs/guides/sessions.md)。
|
|
114
95
|
|
|
115
|
-
|
|
96
|
+
### 一次性运行:`-p`
|
|
116
97
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
Plan 模式(`Shift+Tab`、`/plan <目标>`、`--permission-mode plan`)下模型只读调研,最后给出计划。ama 把计划落盘并弹出审批框:批准执行(可选在全新上下文里执行,并选择执行模式)、继续修改或放弃。步骤会变成 todo 逐条推进。无人值守的 `-p` 不会代为批准,以退出码 9 停下;`plan.model` 可以让规划和执行用不同模型。见 [docs/plan.md](docs/plan.md)。
|
|
124
|
-
|
|
125
|
-
### 回滚与检查点
|
|
126
|
-
|
|
127
|
-
每个回合是一个检查点:文件在第一次被写之前先备份;`checkpoints.mode: "shadow-git"` 把整个工作目录快照进影子仓库,bash 的改动也能撤回。双击 Esc(或 `/rewind`)回到任意一条消息之前,可恢复代码、对话或两者,也可以从该处开始摘要。手动改过的文件列为冲突,缺省跳过。见 [docs/tui.md](docs/tui.md#回滚) 与 [docs/sessions.md](docs/sessions.md)。
|
|
98
|
+
```sh
|
|
99
|
+
ama -p "解释 src/index.ts"
|
|
100
|
+
git diff | ama -p "审查这次改动"
|
|
101
|
+
npm test 2>&1 | ama -p "为什么失败" -
|
|
102
|
+
ama -p "列出 TODO" --output-format json # 或 stream-json,事件与 RPC 同形
|
|
103
|
+
```
|
|
128
104
|
|
|
129
|
-
|
|
105
|
+
`-p` 没有人审批,写文件与跑命令缺省被拒,需要显式放行(`--permission-mode auto-edit`、`auto`,或
|
|
106
|
+
`--allow "bash(npm test*)"`)。预算用 `--max-turns`、`--max-cost` 控制。退出码列在 `ama --help` 末尾(例如 7 = 工具调用
|
|
107
|
+
被拒,8 = 达到预算,9 = 计划待批准)。
|
|
130
108
|
|
|
131
|
-
|
|
109
|
+
### 协调外部 Agent
|
|
132
110
|
|
|
133
|
-
|
|
111
|
+
`task(agent="…")` 以对应 CLI 自己的登录、模型与权限策略运行另一个编码 Agent,结果作为工具结果回来。它发起的审批只交给你,
|
|
112
|
+
它的模式不会比 ama 当前的更宽。
|
|
134
113
|
|
|
135
|
-
|
|
114
|
+
| `agent` | 驱动 | 状态(2026-10-10) |
|
|
115
|
+
| --------------------------------- | ---------------------------------------------------------- | ------------------ |
|
|
116
|
+
| `claude` | `claude-agent-acp` → `claude -p` stream-json → 一次性 JSON | 已实测 |
|
|
117
|
+
| `codex` | `codex-acp` → `codex app-server` → `codex exec`(一次性) | 已实测 |
|
|
118
|
+
| `copilot` | `copilot --acp --stdio` | 已实测 |
|
|
119
|
+
| `opencode` | `opencode acp` | 已实测 |
|
|
120
|
+
| `pi` | `pi --mode rpc`,运行时加载审批闸扩展 | 已实测 |
|
|
121
|
+
| `cursor` | `cursor-agent acp` | 已收录,未实测 |
|
|
122
|
+
| `gemini`、`qwen`、`kimi`、`goose` | 各自的 ACP 子命令 | 已收录,未实测 |
|
|
123
|
+
| `acp:<程序>` | 其它任意 ACP Agent | — |
|
|
136
124
|
|
|
137
|
-
|
|
125
|
+
`task` 不在缺省工具表里:用 `tools.default: ["+task"]`(或 `--tools …,task`)打开。`/agents` 显示本机装了哪些 CLI。
|
|
126
|
+
能力矩阵、模式映射与账户说明见[子 Agent 与外部 Agent](docs/guides/agents.md#实测能力矩阵2026-10-10),实测数据见
|
|
127
|
+
[外部 Agent 驱动实测](docs/benchmarks/external-agents-2026-10.md)。
|
|
138
128
|
|
|
139
|
-
|
|
129
|
+
### 子 Agent 与 fork
|
|
140
130
|
|
|
141
|
-
|
|
131
|
+
同一个 `task` 工具也启动 ama 自己的子 Agent:内置 `general`、`explore`、`plan`,或定义在 `~/.config/ama/agents/*.md`、
|
|
132
|
+
`.ama/agents/*.md`(已信任的项目)或 `--agent-dir` 里的类型。子 Agent 缺省从全新上下文开始;`context: "fork"` 继承父会话
|
|
133
|
+
的对话并复用它已缓存的前缀。在终端界面、RPC 与 ACP 里任务缺省在后台运行(`-p` 等待完成),可以放进独立的 git worktree,
|
|
134
|
+
并显示在 Agent 栏里,你可以查看并直接与它对话。深度为 1:子 Agent 不能再委派。
|
|
142
135
|
|
|
143
|
-
|
|
136
|
+
### 嵌入与集成
|
|
144
137
|
|
|
145
|
-
|
|
138
|
+
| 入口 | 用途 | 文档 |
|
|
139
|
+
| -------------------- | ------------------------------------------------------------------ | ---------------------------------------------------- |
|
|
140
|
+
| `ama --mode acp` | 供 Zed、JetBrains 与 Armadra 驱动的 ACP Agent;也能作为 ACP 客户端 | [ACP](docs/reference/acp.md) |
|
|
141
|
+
| `ama --mode rpc` | 面向宿主的 stdio JSONL;类型在 `@armadra/agent/rpc` | [RPC 协议](docs/reference/rpc.md) |
|
|
142
|
+
| SDK | `@armadra/agent` 的 `createAgentSession()` / `createRuntime()` | [示例](examples/sdk-demo.ts) |
|
|
143
|
+
| `--profile <文件>` | 宿主适配器:注册工具、回答审批、注入消息 | [宿主适配器 API](docs/reference/host-api.md) |
|
|
144
|
+
| `@armadra/agent/tui` | 终端组件库 | [终端界面](docs/guides/tui.md#组件库armadraagenttui) |
|
|
146
145
|
|
|
147
|
-
|
|
146
|
+
Zed(`settings.json`):
|
|
148
147
|
|
|
149
|
-
|
|
148
|
+
```json
|
|
149
|
+
{ "agent_servers": { "ama": { "type": "custom", "command": "ama", "args": ["--mode", "acp"] } } }
|
|
150
|
+
```
|
|
150
151
|
|
|
151
|
-
|
|
152
|
+
SDK:
|
|
152
153
|
|
|
153
154
|
```ts
|
|
154
155
|
import { createAgentSession } from "@armadra/agent";
|
|
155
156
|
|
|
156
157
|
const session = await createAgentSession({
|
|
157
158
|
cwd: process.cwd(),
|
|
158
|
-
model: "anthropic/<model-id>", //
|
|
159
|
+
model: "anthropic/<model-id>", // 试运行用 "fake/echo"
|
|
159
160
|
auth: { kind: "env" },
|
|
160
|
-
permission: {
|
|
161
|
-
mode: "default",
|
|
162
|
-
ask: async (request) => (request.toolName === "read" ? "allow" : "deny"),
|
|
163
|
-
},
|
|
161
|
+
permission: { mode: "default", ask: async (req) => (req.toolName === "read" ? "allow" : "deny") },
|
|
164
162
|
});
|
|
165
163
|
await session.prompt("列出 src 下的入口文件");
|
|
166
164
|
console.log(session.getLastAssistantText());
|
|
167
165
|
await session.dispose();
|
|
168
166
|
```
|
|
169
167
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
|
184
|
-
|
|
|
185
|
-
| `
|
|
186
|
-
| `
|
|
187
|
-
| `
|
|
188
|
-
| `
|
|
189
|
-
| `
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
| `ama stats [--since 7d] [--by model]` | 跨会话用量统计 |
|
|
197
|
-
| `ama memory list\|show\|edit\|rm\|path\|enable\|disable` | Memory |
|
|
198
|
-
| `ama doctor` / `ama init` | 诊断 / 创建配置目录 |
|
|
199
|
-
|
|
200
|
-
常用参数:`--model`、`--thinking`、`--permission-mode`、`--allow` / `--deny`、`--tools-preset`、`--max-turns`、`--max-cost`、`--image`、`--lang`。完整列表见 `ama --help`。
|
|
201
|
-
|
|
202
|
-
## 退出码
|
|
203
|
-
|
|
204
|
-
| 退出码 | 含义 |
|
|
205
|
-
| ------ | ------------------------------------------------------------ |
|
|
206
|
-
| 0 | 成功 |
|
|
207
|
-
| 1 | 运行期错误(模型最终失败等) |
|
|
208
|
-
| 2 | 用法错误;当前模型不接受图像 |
|
|
209
|
-
| 3 | 配置 / profile / 路径错误;`ama config set` 拒绝了键或值 |
|
|
210
|
-
| 4 | 没有可用的模型或 key |
|
|
211
|
-
| 5 | 会话不存在或已损坏 |
|
|
212
|
-
| 6 | 宿主 / Hook 启动失败 |
|
|
213
|
-
| 7 | `-p` 有工具调用被拒(无人审批、deny 规则、plan 等) |
|
|
214
|
-
| 8 | `-p` 到达预算上限(`--max-turns` / `--max-cost` / `limits`) |
|
|
215
|
-
| 9 | `-p` 产出的计划已保存,等待审批 |
|
|
216
|
-
| 78 | 宿主 API 版本不匹配 |
|
|
217
|
-
| 130 | SIGINT;143 为 SIGTERM |
|
|
168
|
+
## 配置与权限
|
|
169
|
+
|
|
170
|
+
- **配置**:用户级只有一个文件 `~/.config/ama/config.json`,按「内置缺省 ← 用户级 ← profile ← 项目级 ← 命令行」合并。
|
|
171
|
+
项目级(`.ama/config.json`)只能收紧。`ama config show` 列出每个键的生效值与来源;`ama doctor` 检查配置层级、信任、
|
|
172
|
+
key 来源、Hook 与沙箱。
|
|
173
|
+
- **AGENTS.md**:自动读入,不需要信任。每个目录取 `AGENTS.override.md`、`AGENTS.md`、`AGENTS.MD` 中第一个存在的;
|
|
174
|
+
用户级 `~/.config/ama/AGENTS.md` 在最前,其后是从最外层祖先到当前目录。内容完全相同的副本(例如主仓库目录内的
|
|
175
|
+
worktree)只读一次。
|
|
176
|
+
- **信任**:项目级 Hook(`.ama/hooks.json`)、Skill(`.ama/skills/`、祖先目录的 `.agents/skills/`)与提示模板只在已信任的
|
|
177
|
+
项目里加载。终端界面里首次询问一次,可以记住;`--trust` / `--no-trust` 只决定本次启动;无人值守时缺省不信任。
|
|
178
|
+
- **权限模式**:
|
|
179
|
+
|
|
180
|
+
| 模式 | 显示名 | 写文件 | 命令 |
|
|
181
|
+
| ----------- | ------------------ | ---------- | ------------------------------ |
|
|
182
|
+
| `default` | Manual | 询问 | 询问 |
|
|
183
|
+
| `auto-edit` | Accept edits | 放行 | 询问 |
|
|
184
|
+
| `plan` | Plan | 拒绝 | 只放行只读命令 |
|
|
185
|
+
| `auto` | Auto | 放行 ¹ | 安全名单放行,其余由分类器判断 |
|
|
186
|
+
| `full-auto` | Bypass permissions | 放行 | 放行(危险命令仍询问) |
|
|
187
|
+
| `allowlist` | Allowlist only | 按允许规则 | 按允许规则(用于 CI) |
|
|
188
|
+
|
|
189
|
+
¹ 密钥文件、`.git/`、`.ama/` 与项目外的路径仍然询问。拒绝规则与危险命令检测在所有模式下生效。macOS(`sandbox-exec`)与
|
|
190
|
+
Linux(bubblewrap)上有操作系统级沙箱隔离 codemode,bash 可选接入;Windows 没有。见[权限](docs/guides/permissions.md)与
|
|
191
|
+
[沙箱](docs/guides/sandbox.md)。
|
|
192
|
+
|
|
193
|
+
界面有中文与英文两种(`--lang`、`AMA_LANG` 或 `ui.language`);发给模型的文本始终是英文,两种界面语言下请求逐字节相同。
|
|
218
194
|
|
|
219
195
|
## 文档
|
|
220
196
|
|
|
221
|
-
|
|
197
|
+
[文档索引](docs/README.md)列出了全部文档。分层如下:
|
|
222
198
|
|
|
223
|
-
- [
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
- [RPC 协议](docs/rpc.md)([English](docs/en/rpc.md))、[宿主适配器 API](docs/host-api.md)([English](docs/en/host-api.md))
|
|
232
|
-
- [ACP](docs/acp.md)([English](docs/en/acp.md))、[会话文件格式](docs/session-format.md)
|
|
233
|
-
|
|
234
|
-
**设计与研究**
|
|
235
|
-
|
|
236
|
-
- [总体设计与决策记录][design]、[终端界面视觉规范](docs/tui-design.md)、[回滚设计](docs/rewind-plan.md)、[双语开发约定][i18n]
|
|
237
|
-
- [本地扩展(设计草案,未实现)][extensions]、[基准测试][benchmarks]、[调研报告][research]
|
|
238
|
-
- 各波设计:[第三波][w3]、[第五波][wave5]、[第六波][wave6]、[早期实现计划][impl]
|
|
239
|
-
|
|
240
|
-
[design]: https://github.com/Owlbay/armadra-agent/blob/main/docs/design.md
|
|
241
|
-
[i18n]: https://github.com/Owlbay/armadra-agent/blob/main/docs/i18n.md
|
|
242
|
-
[extensions]: https://github.com/Owlbay/armadra-agent/blob/main/docs/extensions.md
|
|
243
|
-
[benchmarks]: https://github.com/Owlbay/armadra-agent/tree/main/docs/benchmarks
|
|
244
|
-
[research]: https://github.com/Owlbay/armadra-agent/tree/main/docs/research
|
|
245
|
-
[w3]: https://github.com/Owlbay/armadra-agent/blob/main/docs/wave3-plan.md
|
|
246
|
-
[wave5]: https://github.com/Owlbay/armadra-agent/blob/main/docs/wave5-plan.md
|
|
247
|
-
[wave6]: https://github.com/Owlbay/armadra-agent/blob/main/docs/wave6-plan.md
|
|
248
|
-
[impl]: https://github.com/Owlbay/armadra-agent/blob/main/docs/implementation-plan.md
|
|
199
|
+
- `docs/guides/`:现行行为与用法,包括[终端界面](docs/guides/tui.md)、[供应商与模型](docs/guides/providers.md)、
|
|
200
|
+
[权限](docs/guides/permissions.md)、[会话](docs/guides/sessions.md)、[子 Agent 与外部 Agent](docs/guides/agents.md)、
|
|
201
|
+
[Plan 模式](docs/guides/plan.md)、[记忆](docs/guides/memory.md)、[命令式 Hook](docs/guides/hooks.md)、
|
|
202
|
+
[codemode](docs/guides/codemode.md)、[沙箱](docs/guides/sandbox.md)、[界面语言](docs/guides/i18n.md)。
|
|
203
|
+
- `docs/reference/`:协议与格式,包括 [RPC](docs/reference/rpc.md)、[ACP](docs/reference/acp.md)、
|
|
204
|
+
[宿主适配器 API](docs/reference/host-api.md)、[会话文件格式](docs/reference/session-format.md)。
|
|
205
|
+
- `docs/design/`:[总体设计](docs/design/design.md)与其它目标设计。
|
|
206
|
+
- `docs/history/`、`docs/research/`、`docs/benchmarks/`:已完成的计划、调研与实测记录,只用于追溯。
|
|
249
207
|
|
|
250
208
|
更新记录:[CHANGELOG.zh-CN.md](CHANGELOG.zh-CN.md)(中文,完整历史)与 [CHANGELOG.md](CHANGELOG.md)(英文,从 0.6.0 起)。
|
|
251
209
|
|
|
252
|
-
##
|
|
253
|
-
|
|
254
|
-
- **Linux 沙箱没有在真机上验证**:bubblewrap 策略只有单元测试和 Ubuntu CI 覆盖。Windows 没有 OS 沙箱:Node 22 / 24 下 codemode 不隔离网络,每次都要审批。
|
|
255
|
-
- **外部 Agent 的真实 CLI 测试只在本地跑**:CI 只跑录制回放和 ama 驱动 ama;真实的 `claude` / `codex` 需要已登录的机器并设 `AMA_E2E_AGENTS=1`。
|
|
256
|
-
- **ChatGPT 登录尚未用真实账户验证**:两种登录方式只在本地 mock 上测过;真实账户检查用 `AMA_E2E_CHATGPT=1` 在本地运行。
|
|
257
|
-
- **DeepSeek、智谱、Kimi 缺省走 Chat 渠道**:它们的 Messages 渠道(`@messages`)只通过中转站测过。
|
|
258
|
-
- 子 Agent 深度为 1,没有继承父对话的 fork 模式。
|
|
259
|
-
|
|
260
|
-
## 开发
|
|
210
|
+
## 开发与发布
|
|
261
211
|
|
|
262
|
-
需要 Node ≥ 22
|
|
212
|
+
需要 Node ≥ 22 与 pnpm(`corepack enable`)。
|
|
263
213
|
|
|
264
214
|
```sh
|
|
265
215
|
pnpm install
|
|
266
|
-
pnpm run ci #
|
|
267
|
-
AMA_E2E=1 pnpm test:e2e #
|
|
216
|
+
pnpm run ci # 类型检查、格式、依赖 / i18n / 文档链接检查、发版检查、测试、构建
|
|
217
|
+
AMA_E2E=1 pnpm test:e2e # 用免费的 fake 供应商跑 bundle 级端到端测试
|
|
268
218
|
```
|
|
269
219
|
|
|
270
|
-
|
|
220
|
+
测试只用脚本化的 `fake` 供应商,不调真实模型。开发约定见 [AGENTS.md](AGENTS.md) 与[贡献指南](.github/CONTRIBUTING.md)。
|
|
221
|
+
发布由推送 `v<版本>` tag 触发:CI 创建 GitHub Release,并经 npm 可信发布推送。
|
|
271
222
|
|
|
272
|
-
##
|
|
223
|
+
## 许可
|
|
273
224
|
|
|
274
225
|
[MIT](LICENSE)。模型元数据来自 [models.dev](https://models.dev)(MIT),见 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)。
|
package/dist/acp.d.ts
CHANGED
package/dist/acp.js
CHANGED
package/dist/agent/limits.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* 会话预算(docs/wave5-plan.md §8.3 H2,D29):`--max-turns` / `--max-cost` / config `limits.*`。[W5-H2]
|
|
2
|
+
* 会话预算(docs/history/wave5-plan.md §8.3 H2,D29):`--max-turns` / `--max-cost` / config `limits.*`。[W5-H2]
|
|
3
3
|
*
|
|
4
4
|
* 以 `SessionExtension` 实现(只装主会话;task 子会话有自己的 maxTurns):
|
|
5
5
|
* - **回合**:每个会话周期(`before_agent_start` 起)累计助手回复(error / aborted 不算);第 N 次回复
|
package/dist/agent/limits.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* 会话预算(docs/wave5-plan.md §8.3 H2,D29):`--max-turns` / `--max-cost` / config `limits.*`。[W5-H2]
|
|
2
|
+
* 会话预算(docs/history/wave5-plan.md §8.3 H2,D29):`--max-turns` / `--max-cost` / config `limits.*`。[W5-H2]
|
|
3
3
|
*
|
|
4
4
|
* 以 `SessionExtension` 实现(只装主会话;task 子会话有自己的 maxTurns):
|
|
5
5
|
* - **回合**:每个会话周期(`before_agent_start` 起)累计助手回复(error / aborted 不算);第 N 次回复
|
package/dist/agent/loop-guard.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* 保持一句、英文、只写模型确实会做错的事;预算见 `src/cli/prompt-budget.test.ts`。
|
|
6
6
|
* 「edit 的多处修改」写在 edit 工具描述里(只在 edit 可用时出现);并行批量在 codemode 独占时
|
|
7
7
|
* 由它自己的说明负责,所以只在 read 直接可用时给。
|
|
8
|
-
* 「先定位再读」只在 grep 与 glob 都直接可用时给(docs/search-plan.md §4.2:`minimal` 下模型会连猜文件名)。
|
|
8
|
+
* 「先定位再读」只在 grep 与 glob 都直接可用时给(docs/design/search-plan.md §4.2:`minimal` 下模型会连猜文件名)。
|
|
9
9
|
*/
|
|
10
10
|
import type { ToolDefinition } from "../tools/types.js";
|
|
11
11
|
export declare const DESTRUCTIVE_RULE = "Ask before destructive commands (rm -rf, git reset --hard, force push, deleting branches) unless the user requested them.";
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* 保持一句、英文、只写模型确实会做错的事;预算见 `src/cli/prompt-budget.test.ts`。
|
|
6
6
|
* 「edit 的多处修改」写在 edit 工具描述里(只在 edit 可用时出现);并行批量在 codemode 独占时
|
|
7
7
|
* 由它自己的说明负责,所以只在 read 直接可用时给。
|
|
8
|
-
* 「先定位再读」只在 grep 与 glob 都直接可用时给(docs/search-plan.md §4.2:`minimal` 下模型会连猜文件名)。
|
|
8
|
+
* 「先定位再读」只在 grep 与 glob 都直接可用时给(docs/design/search-plan.md §4.2:`minimal` 下模型会连猜文件名)。
|
|
9
9
|
*/
|
|
10
10
|
export const DESTRUCTIVE_RULE = "Ask before destructive commands (rm -rf, git reset --hard, force push, deleting branches) unless the user requested them.";
|
|
11
11
|
export const PARALLEL_READS_RULE = "Batch independent read-only tool calls into one turn.";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* 统一提醒通道 `ama.reminder`(docs/wave5-plan.md §8.3 H3,D29)。[W5-H2]
|
|
2
|
+
* 统一提醒通道 `ama.reminder`(docs/history/wave5-plan.md §8.3 H3,D29)。[W5-H2]
|
|
3
3
|
*
|
|
4
4
|
* 以 `SessionExtension` 实现,两个投递点,都只追加在尾部(design §9.1,缓存前缀不动):
|
|
5
5
|
* - **新提示**:`beforePrompts` 追加一条 `custom_message{customType:"ama.reminder", display:false}`;
|
package/dist/agent/reminders.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* 统一提醒通道 `ama.reminder`(docs/wave5-plan.md §8.3 H3,D29)。[W5-H2]
|
|
2
|
+
* 统一提醒通道 `ama.reminder`(docs/history/wave5-plan.md §8.3 H3,D29)。[W5-H2]
|
|
3
3
|
*
|
|
4
4
|
* 以 `SessionExtension` 实现,两个投递点,都只追加在尾部(design §9.1,缓存前缀不动):
|
|
5
5
|
* - **新提示**:`beforePrompts` 追加一条 `custom_message{customType:"ama.reminder", display:false}`;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `prompt_cache_key` 的取值(docs/model-efficiency-plan.md §1.8,从 session-cache.ts 搬出):
|
|
2
|
+
* `prompt_cache_key` 的取值(docs/history/model-efficiency-plan.md §1.8,从 session-cache.ts 搬出):
|
|
3
3
|
* fork 出的会话沿用 fork 链上的根会话 id(只是路由提示);task 子会话与非 fork 会话用自己的 id。
|
|
4
4
|
* [ME-A] fork 式子会话(首条 `ama.task{context:"fork"}`)继承父的前缀,不当作 task 子会话:沿用父链根 id。
|
|
5
5
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `prompt_cache_key` 的取值(docs/model-efficiency-plan.md §1.8,从 session-cache.ts 搬出):
|
|
2
|
+
* `prompt_cache_key` 的取值(docs/history/model-efficiency-plan.md §1.8,从 session-cache.ts 搬出):
|
|
3
3
|
* fork 出的会话沿用 fork 链上的根会话 id(只是路由提示);task 子会话与非 fork 会话用自己的 id。
|
|
4
4
|
* [ME-A] fork 式子会话(首条 `ama.task{context:"fork"}`)继承父的前缀,不当作 task 子会话:沿用父链根 id。
|
|
5
5
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Plan 扩展:模式说明注入、`plan_state` 持久化、计划提取与审批编排、交接(docs/wave5-plan.md §6、
|
|
2
|
+
* Plan 扩展:模式说明注入、`plan_state` 持久化、计划提取与审批编排、交接(docs/history/wave5-plan.md §6、
|
|
3
3
|
* D18–D21)。[W5-F] 只装在根会话(task 子会话的计划块作为 task 结果返回给父会话)。
|
|
4
4
|
*
|
|
5
5
|
* - 进入 plan(任何来源的 `permission_mode_changed`,或会话以 plan 启动 / resume 回到 plan):记
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Plan 扩展:模式说明注入、`plan_state` 持久化、计划提取与审批编排、交接(docs/wave5-plan.md §6、
|
|
2
|
+
* Plan 扩展:模式说明注入、`plan_state` 持久化、计划提取与审批编排、交接(docs/history/wave5-plan.md §6、
|
|
3
3
|
* D18–D21)。[W5-F] 只装在根会话(task 子会话的计划块作为 task 结果返回给父会话)。
|
|
4
4
|
*
|
|
5
5
|
* - 进入 plan(任何来源的 `permission_mode_changed`,或会话以 plan 启动 / resume 回到 plan):记
|