@armadra/agent 0.5.0 → 0.6.0
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 +177 -294
- package/CHANGELOG.zh-CN.md +442 -0
- package/README.md +408 -364
- package/README.zh-CN.md +705 -0
- package/dist/agent/session-plan.js +2 -2
- package/dist/agent/session-state.d.ts +3 -0
- package/dist/agent/session-state.js +20 -0
- package/dist/agent/session-subagent.d.ts +15 -1
- package/dist/agent/session-subagent.js +26 -3
- package/dist/agent/session-telemetry.d.ts +16 -2
- package/dist/agent/session-telemetry.js +29 -7
- package/dist/agent/session-tools.js +5 -2
- package/dist/agent/session-trace-writer.d.ts +27 -0
- package/dist/agent/session-trace-writer.js +253 -0
- package/dist/agent/session.d.ts +2 -0
- package/dist/agent/session.js +12 -0
- package/dist/agent/subagent-direct.d.ts +20 -0
- package/dist/agent/subagent-direct.js +76 -0
- package/dist/agent/subagent-registry.d.ts +8 -1
- package/dist/agent/subagent-registry.js +28 -1
- package/dist/agent/system-prompt.d.ts +3 -1
- package/dist/agent/system-prompt.js +3 -0
- package/dist/agent/tool-runner.d.ts +2 -1
- package/dist/agent/tool-runner.js +5 -4
- package/dist/agent/types-w6.d.ts +39 -0
- package/dist/agent/types-w6.js +4 -0
- package/dist/agent/types.d.ts +5 -2
- package/dist/agents/external.js +1 -1
- package/dist/agents/task-record.d.ts +74 -1
- package/dist/agents/task-record.js +100 -0
- package/dist/ai/apis/cache-params.js +2 -1
- package/dist/ai/apis/chatgpt-backend.d.ts +52 -0
- package/dist/ai/apis/chatgpt-backend.js +224 -0
- package/dist/ai/apis/chatgpt-rate-limits.d.ts +26 -0
- package/dist/ai/apis/chatgpt-rate-limits.js +91 -0
- package/dist/ai/apis/openai-responses-request.d.ts +2 -1
- package/dist/ai/apis/openai-responses-request.js +8 -2
- package/dist/ai/apis/openai-responses.d.ts +2 -0
- package/dist/ai/apis/openai-responses.js +51 -16
- package/dist/ai/overflow.d.ts +1 -1
- package/dist/ai/overflow.js +10 -7
- package/dist/ai/providers/auth.d.ts +15 -2
- package/dist/ai/providers/auth.js +69 -2
- package/dist/ai/providers/builtin.js +27 -0
- package/dist/ai/providers/catalog-data.js +1 -0
- package/dist/ai/providers/enrich.js +2 -7
- package/dist/ai/providers/models-dev-cache.js +15 -19
- package/dist/ai/providers/models-dev-snapshot.js +8 -7
- package/dist/ai/providers/models-dev.js +5 -15
- package/dist/ai/providers/suggest.js +2 -16
- package/dist/ai/types.d.ts +27 -1
- package/dist/auth/chatgpt/backend-client.d.ts +26 -0
- package/dist/auth/chatgpt/backend-client.js +74 -0
- package/dist/auth/chatgpt/claims.d.ts +17 -0
- package/dist/auth/chatgpt/claims.js +46 -0
- package/dist/auth/chatgpt/cli.d.ts +33 -0
- package/dist/auth/chatgpt/cli.js +252 -0
- package/dist/auth/chatgpt/doctor.d.ts +17 -0
- package/dist/auth/chatgpt/doctor.js +36 -0
- package/dist/auth/chatgpt/host-id.d.ts +7 -0
- package/dist/auth/chatgpt/host-id.js +26 -0
- package/dist/auth/chatgpt/login.d.ts +30 -0
- package/dist/auth/chatgpt/login.js +130 -0
- package/dist/auth/chatgpt/presets.d.ts +66 -0
- package/dist/auth/chatgpt/presets.js +120 -0
- package/dist/auth/chatgpt/quota-text.d.ts +13 -0
- package/dist/auth/chatgpt/quota-text.js +36 -0
- package/dist/auth/oauth/browser.d.ts +12 -0
- package/dist/auth/oauth/browser.js +27 -0
- package/dist/auth/oauth/callback-server.d.ts +47 -0
- package/dist/auth/oauth/callback-server.js +147 -0
- package/dist/auth/oauth/flows.d.ts +62 -0
- package/dist/auth/oauth/flows.js +113 -0
- package/dist/auth/oauth/jwt.d.ts +24 -0
- package/dist/auth/oauth/jwt.js +81 -0
- package/dist/auth/oauth/live.d.ts +21 -0
- package/dist/auth/oauth/live.js +25 -0
- package/dist/auth/oauth/oidc.d.ts +26 -0
- package/dist/auth/oauth/oidc.js +72 -0
- package/dist/auth/oauth/pkce.d.ts +15 -0
- package/dist/auth/oauth/pkce.js +20 -0
- package/dist/auth/oauth/refresh.d.ts +35 -0
- package/dist/auth/oauth/refresh.js +129 -0
- package/dist/auth/oauth/token-client.d.ts +33 -0
- package/dist/auth/oauth/token-client.js +121 -0
- package/dist/auth/oauth/token-store.d.ts +23 -0
- package/dist/auth/oauth/token-store.js +125 -0
- package/dist/auth/testing/fake-oauth.d.ts +73 -0
- package/dist/auth/testing/fake-oauth.js +271 -0
- package/dist/auth/testing/refresh-child.d.ts +5 -0
- package/dist/auth/testing/refresh-child.js +16 -0
- package/dist/bundle/ama.cjs +28307 -13241
- package/dist/checkpoints/backend.js +6 -5
- package/dist/checkpoints/restore.js +3 -2
- package/dist/checkpoints/settings.js +2 -1
- package/dist/checkpoints/shadow-git.js +7 -6
- package/dist/checkpoints/shadow-restore.js +3 -2
- package/dist/checkpoints/tracker.js +4 -3
- package/dist/cli/args.d.ts +9 -2
- package/dist/cli/args.js +74 -27
- package/dist/cli/bootstrap.js +53 -31
- package/dist/cli/choice-prompt.d.ts +58 -0
- package/dist/cli/choice-prompt.js +142 -0
- package/dist/cli/codemode-notice.js +2 -2
- package/dist/cli/compose-agents.js +2 -1
- package/dist/cli/compose-extensions.js +2 -0
- package/dist/cli/compose-memory.d.ts +53 -0
- package/dist/cli/compose-memory.js +127 -0
- package/dist/cli/compose-providers.d.ts +5 -0
- package/dist/cli/compose-providers.js +32 -2
- package/dist/cli/compose-session.d.ts +5 -0
- package/dist/cli/compose-session.js +27 -13
- package/dist/cli/compose-store.d.ts +2 -0
- package/dist/cli/compose-store.js +9 -5
- package/dist/cli/compose.d.ts +2 -0
- package/dist/cli/compose.js +13 -5
- package/dist/cli/default-model.d.ts +0 -2
- package/dist/cli/default-model.js +5 -8
- package/dist/cli/deps.d.ts +5 -1
- package/dist/cli/exit-codes.d.ts +1 -1
- package/dist/cli/exit-codes.js +7 -16
- package/dist/cli/from-prompt.js +3 -2
- package/dist/cli/help-text.d.ts +2 -1
- package/dist/cli/help-text.js +5 -99
- package/dist/cli/main.d.ts +5 -0
- package/dist/cli/main.js +21 -2
- package/dist/cli/proxy.js +14 -9
- package/dist/cli/runtime.d.ts +5 -0
- package/dist/cli/startup-screen.js +20 -27
- package/dist/cli/startup-steps.js +6 -8
- package/dist/cli/subcommands/auth.d.ts +6 -3
- package/dist/cli/subcommands/auth.js +52 -22
- package/dist/cli/subcommands/config-set.d.ts +21 -0
- package/dist/cli/subcommands/config-set.js +137 -0
- package/dist/cli/subcommands/config.d.ts +2 -1
- package/dist/cli/subcommands/config.js +51 -37
- package/dist/cli/subcommands/doctor.d.ts +2 -1
- package/dist/cli/subcommands/doctor.js +97 -58
- package/dist/cli/subcommands/init.d.ts +1 -1
- package/dist/cli/subcommands/init.js +8 -7
- package/dist/cli/subcommands/memory.d.ts +18 -0
- package/dist/cli/subcommands/memory.js +189 -0
- package/dist/cli/subcommands/model-meta.js +11 -9
- package/dist/cli/subcommands/models-cache-probe.d.ts +1 -1
- package/dist/cli/subcommands/models-cache-probe.js +26 -32
- package/dist/cli/subcommands/models-discover.d.ts +3 -0
- package/dist/cli/subcommands/models-discover.js +44 -21
- package/dist/cli/subcommands/models.d.ts +1 -1
- package/dist/cli/subcommands/models.js +29 -22
- package/dist/cli/subcommands/probe-runner.js +8 -7
- package/dist/cli/subcommands/providers-list.js +32 -21
- package/dist/cli/subcommands/providers-plan.js +24 -25
- package/dist/cli/subcommands/providers-probe.js +5 -6
- package/dist/cli/subcommands/providers.d.ts +2 -2
- package/dist/cli/subcommands/providers.js +48 -59
- package/dist/cli/subcommands/sessions-export.d.ts +1 -1
- package/dist/cli/subcommands/sessions-export.js +10 -9
- package/dist/cli/subcommands/sessions-search.d.ts +1 -1
- package/dist/cli/subcommands/sessions-search.js +11 -10
- package/dist/cli/subcommands/sessions-trace.d.ts +30 -0
- package/dist/cli/subcommands/sessions-trace.js +156 -0
- package/dist/cli/subcommands/sessions.d.ts +4 -3
- package/dist/cli/subcommands/sessions.js +40 -37
- package/dist/cli/subcommands/stats.d.ts +1 -1
- package/dist/cli/subcommands/stats.js +49 -30
- package/dist/cli/system-prompt-arg.js +3 -2
- package/dist/codemode/capability.js +3 -2
- package/dist/compaction/post-compact.d.ts +1 -0
- package/dist/compaction/post-compact.js +15 -1
- package/dist/compaction/prune-tier.d.ts +1 -1
- package/dist/compaction/prune-tier.js +3 -3
- package/dist/compaction/serialize.js +2 -1
- package/dist/config/auth-file.d.ts +12 -2
- package/dist/config/auth-file.js +32 -10
- package/dist/config/checker.js +12 -11
- package/dist/config/context-files.js +3 -2
- package/dist/config/edit.d.ts +106 -0
- package/dist/config/edit.js +350 -0
- package/dist/config/init.d.ts +4 -3
- package/dist/config/init.js +10 -18
- package/dist/config/json-schema.d.ts +2 -1
- package/dist/config/json-schema.js +101 -68
- package/dist/config/key-docs.d.ts +18 -7
- package/dist/config/key-docs.js +43 -128
- package/dist/config/load.js +7 -6
- package/dist/config/merge.d.ts +4 -1
- package/dist/config/merge.js +42 -22
- package/dist/config/paths.js +6 -5
- package/dist/config/profile.d.ts +5 -1
- package/dist/config/profile.js +7 -2
- package/dist/config/schema-w5.js +3 -2
- package/dist/config/schema-w6.d.ts +19 -0
- package/dist/config/schema-w6.js +115 -0
- package/dist/config/schema.js +34 -20
- package/dist/config/settings-registry.d.ts +78 -0
- package/dist/config/settings-registry.js +184 -0
- package/dist/config/types-w6.d.ts +109 -0
- package/dist/config/types-w6.js +19 -0
- package/dist/config/types.d.ts +11 -8
- package/dist/config/types.js +1 -0
- package/dist/drivers/acp/client.js +1 -1
- package/dist/drivers/acp/driver.js +13 -8
- package/dist/drivers/agents.js +4 -3
- package/dist/drivers/base.js +3 -2
- package/dist/drivers/host-runners.js +2 -1
- package/dist/drivers/native/claude-stream.js +12 -11
- package/dist/drivers/native/codex-app-server.js +17 -12
- package/dist/drivers/native/oneshot.js +8 -7
- package/dist/drivers/pool.js +1 -1
- package/dist/drivers/runner.d.ts +3 -1
- package/dist/drivers/runner.js +68 -20
- package/dist/drivers/turn.js +1 -1
- package/dist/hooks/config.js +3 -2
- package/dist/hooks/protocol.js +18 -12
- package/dist/host/api-impl.js +11 -10
- package/dist/host/loader.js +9 -8
- package/dist/host/types.d.ts +3 -0
- package/dist/i18n/catalog.d.ts +2169 -0
- package/dist/i18n/catalog.js +72 -0
- package/dist/i18n/format.d.ts +21 -0
- package/dist/i18n/format.js +58 -0
- package/dist/i18n/index.d.ts +58 -0
- package/dist/i18n/index.js +72 -0
- package/dist/i18n/messages/agents.d.ts +84 -0
- package/dist/i18n/messages/agents.js +85 -0
- package/dist/i18n/messages/approval.d.ts +99 -0
- package/dist/i18n/messages/approval.js +100 -0
- package/dist/i18n/messages/auth.d.ts +187 -0
- package/dist/i18n/messages/auth.js +189 -0
- package/dist/i18n/messages/cli-args.d.ts +46 -0
- package/dist/i18n/messages/cli-args.js +46 -0
- package/dist/i18n/messages/cli-help.d.ts +12 -0
- package/dist/i18n/messages/cli-help.js +244 -0
- package/dist/i18n/messages/cli.d.ts +336 -0
- package/dist/i18n/messages/cli.js +311 -0
- package/dist/i18n/messages/config-keys.d.ts +289 -0
- package/dist/i18n/messages/config-keys.js +292 -0
- package/dist/i18n/messages/config.d.ts +502 -0
- package/dist/i18n/messages/config.js +239 -0
- package/dist/i18n/messages/drivers.d.ts +123 -0
- package/dist/i18n/messages/drivers.js +124 -0
- package/dist/i18n/messages/errors.d.ts +83 -0
- package/dist/i18n/messages/errors.js +171 -0
- package/dist/i18n/messages/interactive-line.d.ts +61 -0
- package/dist/i18n/messages/interactive-line.js +69 -0
- package/dist/i18n/messages/interactive-startup.d.ts +103 -0
- package/dist/i18n/messages/interactive-startup.js +104 -0
- package/dist/i18n/messages/interactive-view.d.ts +140 -0
- package/dist/i18n/messages/interactive-view.js +141 -0
- package/dist/i18n/messages/interactive.d.ts +493 -0
- package/dist/i18n/messages/interactive.js +248 -0
- package/dist/i18n/messages/memory.d.ts +123 -0
- package/dist/i18n/messages/memory.js +128 -0
- package/dist/i18n/messages/panels.d.ts +190 -0
- package/dist/i18n/messages/panels.js +189 -0
- package/dist/i18n/messages/permissions.d.ts +126 -0
- package/dist/i18n/messages/permissions.js +151 -0
- package/dist/i18n/messages/plan.d.ts +123 -0
- package/dist/i18n/messages/plan.js +124 -0
- package/dist/i18n/messages/print.d.ts +86 -0
- package/dist/i18n/messages/print.js +91 -0
- package/dist/i18n/messages/report.d.ts +391 -0
- package/dist/i18n/messages/report.js +490 -0
- package/dist/i18n/messages/rewind.d.ts +198 -0
- package/dist/i18n/messages/rewind.js +217 -0
- package/dist/i18n/messages/session.d.ts +230 -0
- package/dist/i18n/messages/session.js +258 -0
- package/dist/i18n/messages/settings.d.ts +348 -0
- package/dist/i18n/messages/settings.js +336 -0
- package/dist/i18n/messages/subcommands-config.d.ts +111 -0
- package/dist/i18n/messages/subcommands-config.js +127 -0
- package/dist/i18n/messages/subcommands.d.ts +548 -0
- package/dist/i18n/messages/subcommands.js +474 -0
- package/dist/i18n/messages/trace.d.ts +243 -0
- package/dist/i18n/messages/trace.js +238 -0
- package/dist/i18n/types.d.ts +15 -0
- package/dist/i18n/types.js +7 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +2 -0
- package/dist/memory/edit.d.ts +24 -0
- package/dist/memory/edit.js +63 -0
- package/dist/memory/frontmatter.d.ts +37 -0
- package/dist/memory/frontmatter.js +79 -0
- package/dist/memory/index.d.ts +28 -0
- package/dist/memory/index.js +126 -0
- package/dist/memory/lock.d.ts +17 -0
- package/dist/memory/lock.js +62 -0
- package/dist/memory/paths.d.ts +57 -0
- package/dist/memory/paths.js +175 -0
- package/dist/memory/report.d.ts +36 -0
- package/dist/memory/report.js +86 -0
- package/dist/memory/runtime.d.ts +42 -0
- package/dist/memory/runtime.js +36 -0
- package/dist/memory/secrets.d.ts +8 -0
- package/dist/memory/secrets.js +27 -0
- package/dist/memory/section.d.ts +28 -0
- package/dist/memory/section.js +59 -0
- package/dist/memory/store.d.ts +70 -0
- package/dist/memory/store.js +284 -0
- package/dist/memory/tool.d.ts +31 -0
- package/dist/memory/tool.js +94 -0
- package/dist/modes/acp/acp-events.js +2 -1
- package/dist/modes/acp/acp-server.js +13 -12
- package/dist/modes/commands-core.d.ts +17 -0
- package/dist/modes/commands-core.js +101 -61
- package/dist/modes/image-input.js +20 -6
- package/dist/modes/interactive/agent-bar.d.ts +95 -0
- package/dist/modes/interactive/agent-bar.js +248 -0
- package/dist/modes/interactive/agent-panels.js +27 -26
- package/dist/modes/interactive/agent-transcript.d.ts +47 -0
- package/dist/modes/interactive/agent-transcript.js +191 -0
- package/dist/modes/interactive/agent-ui.d.ts +36 -1
- package/dist/modes/interactive/agent-ui.js +180 -14
- package/dist/modes/interactive/agent-view.d.ts +72 -0
- package/dist/modes/interactive/agent-view.js +281 -0
- package/dist/modes/interactive/approval-dialog.js +46 -34
- package/dist/modes/interactive/clipboard-paste.d.ts +2 -2
- package/dist/modes/interactive/clipboard-paste.js +9 -4
- package/dist/modes/interactive/commands.d.ts +22 -1
- package/dist/modes/interactive/commands.js +93 -38
- package/dist/modes/interactive/completion.js +2 -1
- package/dist/modes/interactive/config-panel.d.ts +70 -0
- package/dist/modes/interactive/config-panel.js +319 -0
- package/dist/modes/interactive/config-ui.d.ts +96 -0
- package/dist/modes/interactive/config-ui.js +397 -0
- package/dist/modes/interactive/confirm-dialog.d.ts +49 -0
- package/dist/modes/interactive/confirm-dialog.js +120 -0
- package/dist/modes/interactive/event-notices.js +11 -9
- package/dist/modes/interactive/interactive-mode.d.ts +1 -1
- package/dist/modes/interactive/interactive-mode.js +25 -22
- package/dist/modes/interactive/key-dispatch.d.ts +18 -0
- package/dist/modes/interactive/key-dispatch.js +39 -13
- package/dist/modes/interactive/line/line-editor.js +2 -1
- package/dist/modes/interactive/line/line-mode.d.ts +2 -0
- package/dist/modes/interactive/line/line-mode.js +24 -4
- package/dist/modes/interactive/line/line-render.js +25 -24
- package/dist/modes/interactive/memory-panel.d.ts +64 -0
- package/dist/modes/interactive/memory-panel.js +221 -0
- package/dist/modes/interactive/message-view.d.ts +4 -2
- package/dist/modes/interactive/message-view.js +42 -33
- package/dist/modes/interactive/panels.js +39 -31
- package/dist/modes/interactive/pickers.d.ts +2 -1
- package/dist/modes/interactive/pickers.js +10 -6
- package/dist/modes/interactive/plan-command.d.ts +1 -1
- package/dist/modes/interactive/plan-command.js +24 -27
- package/dist/modes/interactive/plan-dialog.js +18 -17
- package/dist/modes/interactive/plan-flow.js +6 -5
- package/dist/modes/interactive/rewind-command.d.ts +1 -1
- package/dist/modes/interactive/rewind-command.js +18 -16
- package/dist/modes/interactive/rewind-flow.d.ts +0 -1
- package/dist/modes/interactive/rewind-flow.js +13 -14
- package/dist/modes/interactive/rewind-list.js +7 -6
- package/dist/modes/interactive/rewind-panel.js +40 -40
- package/dist/modes/interactive/rewind-text.d.ts +5 -3
- package/dist/modes/interactive/rewind-text.js +48 -38
- package/dist/modes/interactive/run-indicator.js +15 -12
- package/dist/modes/interactive/session-events.js +3 -2
- package/dist/modes/interactive/startup-header.js +22 -23
- package/dist/modes/interactive/startup-ui.js +41 -29
- package/dist/modes/interactive/status-area.d.ts +2 -0
- package/dist/modes/interactive/status-area.js +8 -2
- package/dist/modes/interactive/status-bar.js +4 -3
- package/dist/modes/interactive/subagent-view.js +9 -7
- package/dist/modes/interactive/tasks-report.d.ts +6 -0
- package/dist/modes/interactive/tasks-report.js +28 -31
- package/dist/modes/interactive/terminal-setup.d.ts +9 -0
- package/dist/modes/interactive/terminal-setup.js +23 -0
- package/dist/modes/interactive/tool-summary.js +19 -17
- package/dist/modes/interactive/tool-view.js +7 -4
- package/dist/modes/interactive/trace-view.d.ts +89 -0
- package/dist/modes/interactive/trace-view.js +332 -0
- package/dist/modes/print/print-mode.js +14 -15
- package/dist/modes/rpc/commands.js +7 -3
- package/dist/modes/rpc/rpc-mode.js +9 -3
- package/dist/modes/session-report.d.ts +2 -0
- package/dist/modes/session-report.js +101 -105
- package/dist/modes/startup-ui-text.js +11 -6
- package/dist/permissions/bypass.d.ts +30 -0
- package/dist/permissions/bypass.js +45 -0
- package/dist/permissions/memory-class.d.ts +23 -0
- package/dist/permissions/memory-class.js +54 -0
- package/dist/permissions/modes.d.ts +3 -3
- package/dist/permissions/modes.js +21 -16
- package/dist/permissions/pipeline.d.ts +1 -1
- package/dist/permissions/pipeline.js +9 -2
- package/dist/permissions/preview.js +49 -42
- package/dist/permissions/rules.js +5 -2
- package/dist/permissions/types.d.ts +4 -0
- package/dist/plan/store.js +2 -1
- package/dist/rpc.d.ts +39 -1
- package/dist/rpc.js +3 -0
- package/dist/sandbox/bash.js +11 -8
- package/dist/sandbox/detect.js +14 -11
- package/dist/sdk.d.ts +17 -1
- package/dist/sdk.js +29 -7
- package/dist/session/export.js +31 -30
- package/dist/session/manager.d.ts +1 -1
- package/dist/session/manager.js +5 -3
- package/dist/session/reuse.js +5 -4
- package/dist/session/scan.js +3 -2
- package/dist/session/stats-aggregate.d.ts +3 -1
- package/dist/session/stats-aggregate.js +5 -1
- package/dist/session/stats-index.js +2 -1
- package/dist/session/stats-scan.d.ts +4 -1
- package/dist/session/stats-scan.js +6 -2
- package/dist/session/store.d.ts +11 -0
- package/dist/session/store.js +48 -1
- package/dist/session/types.d.ts +2 -0
- package/dist/skills/builtin.js +2 -1
- package/dist/tools/image-file.d.ts +26 -1
- package/dist/tools/image-file.js +55 -13
- package/dist/tools/presets.d.ts +14 -1
- package/dist/tools/presets.js +3 -3
- package/dist/tools/registry.js +1 -1
- package/dist/tools/truncate.d.ts +1 -1
- package/dist/tools/truncate.js +2 -2
- package/dist/tools/types.d.ts +17 -1
- package/dist/trace/build-index.d.ts +91 -0
- package/dist/trace/build-index.js +127 -0
- package/dist/trace/build-nodes.d.ts +24 -0
- package/dist/trace/build-nodes.js +279 -0
- package/dist/trace/build-util.d.ts +43 -0
- package/dist/trace/build-util.js +120 -0
- package/dist/trace/build.d.ts +82 -0
- package/dist/trace/build.js +382 -0
- package/dist/trace/detail.d.ts +35 -0
- package/dist/trace/detail.js +205 -0
- package/dist/trace/flatten.d.ts +69 -0
- package/dist/trace/flatten.js +173 -0
- package/dist/trace/format.d.ts +47 -0
- package/dist/trace/format.js +329 -0
- package/dist/trace/html-template.d.ts +19 -0
- package/dist/trace/html-template.js +150 -0
- package/dist/trace/html.d.ts +104 -0
- package/dist/trace/html.js +292 -0
- package/dist/trace/preview.d.ts +29 -0
- package/dist/trace/preview.js +59 -0
- package/dist/trace/query-session.d.ts +14 -0
- package/dist/trace/query-session.js +38 -0
- package/dist/trace/query.d.ts +55 -0
- package/dist/trace/query.js +188 -0
- package/dist/trace/session.d.ts +40 -0
- package/dist/trace/session.js +168 -0
- package/dist/trace/types.d.ts +243 -0
- package/dist/trace/types.js +13 -0
- package/dist/tui/components/editor-paste.d.ts +2 -0
- package/dist/tui/components/editor-paste.js +6 -3
- package/dist/tui/components/editor.js +2 -2
- package/dist/tui/components/loader.d.ts +3 -0
- package/dist/tui/components/loader.js +14 -0
- package/dist/tui/components/settings-list.d.ts +61 -0
- package/dist/tui/components/settings-list.js +135 -0
- package/dist/tui/keybindings.d.ts +6 -1
- package/dist/tui/keybindings.js +18 -6
- package/dist/tui.d.ts +1 -0
- package/dist/tui.js +2 -0
- package/docs/en/host-api.md +167 -0
- package/docs/en/permissions.md +214 -0
- package/docs/en/providers.md +625 -0
- package/docs/en/rpc.md +361 -0
- package/docs/en/sessions.md +219 -0
- package/docs/en/tui.md +527 -0
- package/docs/host-api.md +18 -17
- package/docs/memory.md +172 -0
- package/docs/permissions.md +3 -2
- package/docs/providers.md +67 -1
- package/docs/rpc.md +31 -3
- package/docs/session-format.md +8 -2
- package/docs/sessions.md +29 -1
- package/docs/tui.md +189 -21
- package/package.json +8 -3
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* 打断一次缓存。缓存已冷时(C3,调用方判断)`need` 为 undefined:全部候选一次换掉。
|
|
10
10
|
* 保护集(C4):调用方给 `isProtected`(Skill 文件、AGENTS.md、todo、`keepInContext` 工具、
|
|
11
11
|
* `compaction.pruneExclude`),见 `protect.ts`。
|
|
12
|
-
* 动作:返回 `context_edit{reason:"prune", replacement:"[
|
|
12
|
+
* 动作:返回 `context_edit{reason:"prune", replacement:"[pruned: … full text at path]"}` 计划([W6-C0] 固定英文);有 outputDir 时
|
|
13
13
|
* 把全文写到 `<outputDir>/<toolCallId>.txt`(已存在则不覆盖),模型可用 read 取回。
|
|
14
14
|
*/
|
|
15
15
|
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
@@ -114,8 +114,8 @@ function materialize(candidate, outputDir) {
|
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
const replacement = fullTextPath === undefined
|
|
117
|
-
? `[
|
|
118
|
-
: `[
|
|
117
|
+
? `[pruned: ${message.toolName} result was ${bytes} bytes; full text unavailable]`
|
|
118
|
+
: `[pruned: ${message.toolName} result was ${bytes} bytes; full text at ${fullTextPath}]`;
|
|
119
119
|
const planned = {
|
|
120
120
|
targetId: entry.id,
|
|
121
121
|
replacement,
|
|
@@ -9,7 +9,8 @@ export const TOOL_RESULT_SERIALIZE_LIMIT = 2000;
|
|
|
9
9
|
function truncate(text, limit) {
|
|
10
10
|
if (text.length <= limit)
|
|
11
11
|
return text;
|
|
12
|
-
|
|
12
|
+
// [W6-C0] 送摘要模型的文本,固定英文
|
|
13
|
+
return `${text.slice(0, limit)}… [truncated; ${text.length} chars originally]`;
|
|
13
14
|
}
|
|
14
15
|
function formatArgs(args) {
|
|
15
16
|
return Object.entries(args)
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* 也不把 key 写进任何日志或返回给展示层(`describeAuthFile` 只给来源与形态)。
|
|
8
8
|
*/
|
|
9
9
|
import type { AuthFile } from "./types.js";
|
|
10
|
+
import { type ChatGptFlavor } from "./types-w6.js";
|
|
10
11
|
export declare function defaultAuthFilePath(configDir: string): string;
|
|
11
12
|
export declare const PROVIDER_ID_PATTERN: RegExp;
|
|
12
13
|
export interface ReadAuthResult {
|
|
@@ -32,8 +33,17 @@ export type AuthValueKind = "literal" | "command" | "env-ref";
|
|
|
32
33
|
export declare function classifyKeyValue(value: string): AuthValueKind;
|
|
33
34
|
export interface AuthEntrySummary {
|
|
34
35
|
provider: string;
|
|
35
|
-
|
|
36
|
+
/** `oauth`:OAuth 条目(只给 flavor / plan / expiresIn / needsLogin,从不给 token、邮箱、账户 id)。 */
|
|
37
|
+
kind: AuthValueKind | "oauth";
|
|
36
38
|
hasBaseUrl: boolean;
|
|
37
39
|
envNames: string[];
|
|
40
|
+
/** [W6-O] OAuth 条目:登录路径。 */
|
|
41
|
+
flavor?: ChatGptFlavor;
|
|
42
|
+
/** [W6-O] OAuth 条目:计划类型(plus / pro …)。 */
|
|
43
|
+
plan?: string;
|
|
44
|
+
/** [W6-O] OAuth 条目:access token 剩余毫秒(已过期为负;刷新会自动续)。 */
|
|
45
|
+
expiresIn?: number;
|
|
46
|
+
/** [W6-O] OAuth 条目:刷新永久失败,需要重新登录。 */
|
|
47
|
+
needsLogin?: boolean;
|
|
38
48
|
}
|
|
39
|
-
export declare function describeAuthFile(file: AuthFile): AuthEntrySummary[];
|
|
49
|
+
export declare function describeAuthFile(file: AuthFile, now?: number): AuthEntrySummary[];
|
package/dist/config/auth-file.js
CHANGED
|
@@ -10,7 +10,9 @@ import { chmodSync, mkdirSync, renameSync, statSync, writeFileSync } from "node:
|
|
|
10
10
|
import { dirname, join } from "node:path";
|
|
11
11
|
import { loadConfigFile } from "./load.js";
|
|
12
12
|
import { AUTH_FILE } from "./paths.js";
|
|
13
|
-
import { CONFIG_FILE_VERSION } from "./types.js";
|
|
13
|
+
import { CONFIG_FILE_VERSION, apiKeyEntry } from "./types.js";
|
|
14
|
+
import { isOAuthEntry } from "./types-w6.js";
|
|
15
|
+
import { msg } from "../i18n/index.js";
|
|
14
16
|
export function defaultAuthFilePath(configDir) {
|
|
15
17
|
return join(configDir, AUTH_FILE);
|
|
16
18
|
}
|
|
@@ -41,7 +43,7 @@ export function readAuthFile(path) {
|
|
|
41
43
|
const warnings = [...loaded.warnings];
|
|
42
44
|
const mode = fileMode(path);
|
|
43
45
|
if (isModeTooOpen(mode)) {
|
|
44
|
-
warnings.push(
|
|
46
|
+
warnings.push(msg().config.authFile.modeTooOpen(path, mode?.toString(8).padStart(4, "0") ?? ""));
|
|
45
47
|
}
|
|
46
48
|
const result = { path, exists: true, file: loaded.value, warnings };
|
|
47
49
|
if (mode !== undefined && process.platform !== "win32")
|
|
@@ -59,7 +61,8 @@ export function writeAuthFile(path, file) {
|
|
|
59
61
|
/** `ama auth set`:设置 / 替换一家的 key(保留该条目的 env / baseUrl)。 */
|
|
60
62
|
export function setAuthKey(path, provider, apiKey) {
|
|
61
63
|
const { file } = readAuthFile(path);
|
|
62
|
-
|
|
64
|
+
// [W6-C0] 覆盖 OAuth 条目时不带走它的字段
|
|
65
|
+
const previous = apiKeyEntry(file.providers[provider]);
|
|
63
66
|
file.providers[provider] = { ...previous, apiKey };
|
|
64
67
|
writeAuthFile(path, { version: CONFIG_FILE_VERSION, providers: file.providers });
|
|
65
68
|
}
|
|
@@ -80,13 +83,32 @@ export function classifyKeyValue(value) {
|
|
|
80
83
|
return "env-ref";
|
|
81
84
|
return "literal";
|
|
82
85
|
}
|
|
83
|
-
export function describeAuthFile(file) {
|
|
86
|
+
export function describeAuthFile(file, now = Date.now()) {
|
|
84
87
|
return Object.entries(file.providers)
|
|
85
|
-
.map(([provider,
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
.map(([provider, raw]) => {
|
|
89
|
+
if (isOAuthEntry(raw)) {
|
|
90
|
+
const summary = {
|
|
91
|
+
provider,
|
|
92
|
+
kind: "oauth",
|
|
93
|
+
hasBaseUrl: false,
|
|
94
|
+
envNames: [],
|
|
95
|
+
flavor: raw.flavor,
|
|
96
|
+
expiresIn: raw.expiresAt - now,
|
|
97
|
+
needsLogin: raw.needsLogin === true,
|
|
98
|
+
};
|
|
99
|
+
if (raw.planType !== undefined)
|
|
100
|
+
summary.plan = raw.planType;
|
|
101
|
+
return summary;
|
|
102
|
+
}
|
|
103
|
+
const entry = apiKeyEntry(raw);
|
|
104
|
+
if (entry === undefined)
|
|
105
|
+
return { provider, kind: "oauth", hasBaseUrl: false, envNames: [] };
|
|
106
|
+
return {
|
|
107
|
+
provider,
|
|
108
|
+
kind: classifyKeyValue(entry.apiKey),
|
|
109
|
+
hasBaseUrl: entry.baseUrl !== undefined,
|
|
110
|
+
envNames: Object.keys(entry.env ?? {}).sort(),
|
|
111
|
+
};
|
|
112
|
+
})
|
|
91
113
|
.sort((a, b) => a.provider.localeCompare(b.provider));
|
|
92
114
|
}
|
package/dist/config/checker.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 配置校验的诊断收集器(从 schema.ts 抽出,schema-w5.ts 共用)。[W5-C0]
|
|
3
3
|
*/
|
|
4
|
+
import { msg } from "../i18n/index.js";
|
|
4
5
|
export const THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh"];
|
|
5
6
|
export class Checker {
|
|
6
7
|
diagnostics = [];
|
|
@@ -13,44 +14,44 @@ export class Checker {
|
|
|
13
14
|
object(value, path) {
|
|
14
15
|
if (typeof value === "object" && value !== null && !Array.isArray(value))
|
|
15
16
|
return true;
|
|
16
|
-
this.error(path,
|
|
17
|
+
this.error(path, msg().config.schema.object);
|
|
17
18
|
return false;
|
|
18
19
|
}
|
|
19
20
|
/** 未知字段只警告(前向兼容)。 */
|
|
20
21
|
keys(value, path, allowed) {
|
|
21
22
|
for (const key of Object.keys(value)) {
|
|
22
23
|
if (!allowed.includes(key))
|
|
23
|
-
this.warn(join(path, key),
|
|
24
|
+
this.warn(join(path, key), msg().config.schema.unknownKey);
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
version(value, path) {
|
|
27
28
|
if (value["version"] !== 1)
|
|
28
|
-
this.error(join(path, "version"),
|
|
29
|
+
this.error(join(path, "version"), msg().config.schema.version);
|
|
29
30
|
}
|
|
30
31
|
string(value, key, path, required = false) {
|
|
31
32
|
const v = value[key];
|
|
32
33
|
if (v === undefined) {
|
|
33
34
|
if (required)
|
|
34
|
-
this.error(join(path, key),
|
|
35
|
+
this.error(join(path, key), msg().config.schema.requiredString);
|
|
35
36
|
return;
|
|
36
37
|
}
|
|
37
38
|
if (typeof v !== "string")
|
|
38
|
-
this.error(join(path, key),
|
|
39
|
+
this.error(join(path, key), msg().config.schema.string);
|
|
39
40
|
}
|
|
40
41
|
boolean(value, key, path) {
|
|
41
42
|
const v = value[key];
|
|
42
43
|
if (v !== undefined && typeof v !== "boolean")
|
|
43
|
-
this.error(join(path, key),
|
|
44
|
+
this.error(join(path, key), msg().config.schema.boolean);
|
|
44
45
|
}
|
|
45
46
|
number(value, key, path, min = 0, max = Number.MAX_SAFE_INTEGER) {
|
|
46
47
|
const v = value[key];
|
|
47
48
|
if (v === undefined)
|
|
48
49
|
return;
|
|
49
50
|
if (typeof v !== "number" || !Number.isFinite(v)) {
|
|
50
|
-
this.error(join(path, key),
|
|
51
|
+
this.error(join(path, key), msg().config.schema.number);
|
|
51
52
|
}
|
|
52
53
|
else if (v < min || v > max) {
|
|
53
|
-
this.error(join(path, key),
|
|
54
|
+
this.error(join(path, key), msg().config.schema.range(min, max));
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
oneOf(value, key, path, choices) {
|
|
@@ -58,7 +59,7 @@ export class Checker {
|
|
|
58
59
|
if (v === undefined)
|
|
59
60
|
return;
|
|
60
61
|
if (typeof v !== "string" || !choices.includes(v)) {
|
|
61
|
-
this.error(join(path, key),
|
|
62
|
+
this.error(join(path, key), msg().config.schema.oneOf(choices));
|
|
62
63
|
}
|
|
63
64
|
}
|
|
64
65
|
stringArray(value, key, path) {
|
|
@@ -66,7 +67,7 @@ export class Checker {
|
|
|
66
67
|
if (v === undefined)
|
|
67
68
|
return;
|
|
68
69
|
if (!Array.isArray(v) || v.some((item) => typeof item !== "string")) {
|
|
69
|
-
this.error(join(path, key),
|
|
70
|
+
this.error(join(path, key), msg().config.schema.stringArray);
|
|
70
71
|
}
|
|
71
72
|
}
|
|
72
73
|
stringRecord(value, key, path) {
|
|
@@ -77,7 +78,7 @@ export class Checker {
|
|
|
77
78
|
return;
|
|
78
79
|
for (const [k, item] of Object.entries(v)) {
|
|
79
80
|
if (typeof item !== "string")
|
|
80
|
-
this.error(join(join(path, key), k),
|
|
81
|
+
this.error(join(join(path, key), k), msg().config.schema.string);
|
|
81
82
|
}
|
|
82
83
|
}
|
|
83
84
|
}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import { readFileSync, realpathSync, statSync } from "node:fs";
|
|
12
12
|
import { join } from "node:path";
|
|
13
|
+
import { msg } from "../i18n/index.js";
|
|
13
14
|
import { ancestorsOf } from "./trust.js";
|
|
14
15
|
export const CONTEXT_FILE_NAMES = ["AGENTS.override.md", "AGENTS.md", "AGENTS.MD"];
|
|
15
16
|
function isFile(path) {
|
|
@@ -51,12 +52,12 @@ export function findContextFiles(input) {
|
|
|
51
52
|
content = readFileSync(path, "utf8");
|
|
52
53
|
}
|
|
53
54
|
catch (error) {
|
|
54
|
-
warnings.push(
|
|
55
|
+
warnings.push(msg().config.context.readFailed(path, error.message));
|
|
55
56
|
return;
|
|
56
57
|
}
|
|
57
58
|
if (Buffer.byteLength(content) > maxBytes) {
|
|
58
59
|
content = Buffer.from(content).subarray(0, maxBytes).toString("utf8");
|
|
59
|
-
warnings.push(
|
|
60
|
+
warnings.push(msg().config.context.truncated(path, maxBytes));
|
|
60
61
|
}
|
|
61
62
|
if (seenContent.has(content))
|
|
62
63
|
return;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings edit core (docs/wave6-plan.md §6.2, D24-D26). [W6-S]
|
|
3
|
+
*
|
|
4
|
+
* Shared by the `/config` panel, `/config key=value` and `ama config get | set | unset | list`:
|
|
5
|
+
* - `readSnapshot()` reads the user and project files fresh and merges them with the profile / command
|
|
6
|
+
* line layers the same way bootstrap does (default <- user <- profile <- project, tighten only <- cli);
|
|
7
|
+
* - `getConfigValue()` gives the effective value of a key and which layer it came from (env vars that
|
|
8
|
+
* override a key count as a layer `env`);
|
|
9
|
+
* - `setConfigValue()` / `unsetConfigValue()` re-read the target file right before writing, change one
|
|
10
|
+
* path, run `validateConfig`, check project writes with `restrictProjectConfig` (anything that would be
|
|
11
|
+
* ignored there -- a loosening or a user-only key -- is refused), then write atomically with `.bak`
|
|
12
|
+
* (`writeConfigFile`). Refusals leave the file byte-for-byte untouched.
|
|
13
|
+
* There is no file lock: a concurrent `ama config edit` between our read and write is lost (R12).
|
|
14
|
+
*/
|
|
15
|
+
import { AmaError } from "../errors.js";
|
|
16
|
+
import { type CliConfigOverrides, type ConfigLayerName } from "./merge.js";
|
|
17
|
+
import { type SettingApply } from "./settings-registry.js";
|
|
18
|
+
import { type AmaConfig } from "./types.js";
|
|
19
|
+
export type SettingSource = ConfigLayerName | "env";
|
|
20
|
+
export type EditScope = "user" | "project";
|
|
21
|
+
export type ConfigEditCode = "config_unknown_key" | "config_invalid_value" | "config_project_denied" | "config_locked" | "config_read_failed" | "config_write_failed";
|
|
22
|
+
/** Refused edit; `exitCode` 3 (`ExitCode.Config`) except write failures (1). */
|
|
23
|
+
export declare class ConfigEditError extends AmaError {
|
|
24
|
+
readonly code: ConfigEditCode;
|
|
25
|
+
constructor(code: ConfigEditCode, message: string);
|
|
26
|
+
}
|
|
27
|
+
type Env = Readonly<Record<string, string | undefined>>;
|
|
28
|
+
type Obj = Record<string, unknown>;
|
|
29
|
+
export interface ConfigLayerInput {
|
|
30
|
+
/** User config directory (`AMA_CONFIG_DIR` / XDG). */
|
|
31
|
+
configDir: string;
|
|
32
|
+
/** Project root (`.ama/config.json` lives here). */
|
|
33
|
+
cwd: string;
|
|
34
|
+
env: Env;
|
|
35
|
+
/** Embedded host profile: its `config` layer (PROFILE_DEFAULTS are added when `hasProfile`). */
|
|
36
|
+
profile?: {
|
|
37
|
+
config?: AmaConfig | undefined;
|
|
38
|
+
} | undefined;
|
|
39
|
+
hasProfile?: boolean;
|
|
40
|
+
/** Command line overrides of this process. */
|
|
41
|
+
cli?: CliConfigOverrides | undefined;
|
|
42
|
+
}
|
|
43
|
+
export interface ConfigSnapshot {
|
|
44
|
+
input: ConfigLayerInput;
|
|
45
|
+
userPath: string;
|
|
46
|
+
projectPath: string;
|
|
47
|
+
user: AmaConfig | undefined;
|
|
48
|
+
project: AmaConfig | undefined;
|
|
49
|
+
/** default <- user <- profile (the baseline project-level tightening is measured against). */
|
|
50
|
+
base: AmaConfig;
|
|
51
|
+
/** Effective config (what bootstrap would build now). */
|
|
52
|
+
config: AmaConfig;
|
|
53
|
+
/** Each layer as it contributes (project = accepted part only), lowest first. */
|
|
54
|
+
layers: readonly {
|
|
55
|
+
name: ConfigLayerName;
|
|
56
|
+
value: unknown;
|
|
57
|
+
}[];
|
|
58
|
+
}
|
|
59
|
+
export interface SettingValue {
|
|
60
|
+
key: string;
|
|
61
|
+
/** Effective value (built-in default when no layer sets it; undefined = unset / decided at run time). */
|
|
62
|
+
value: unknown;
|
|
63
|
+
source: SettingSource;
|
|
64
|
+
/** Env var that overrides it (when source is `env`). */
|
|
65
|
+
envName?: string;
|
|
66
|
+
}
|
|
67
|
+
export interface EditResult {
|
|
68
|
+
key: string;
|
|
69
|
+
scope: EditScope;
|
|
70
|
+
path: string;
|
|
71
|
+
before: SettingValue;
|
|
72
|
+
after: SettingValue;
|
|
73
|
+
apply: SettingApply | undefined;
|
|
74
|
+
/** The key changes the cache prefix and its effective value changed. */
|
|
75
|
+
prefixChanged: boolean;
|
|
76
|
+
/** The written value is still hidden by a higher layer. */
|
|
77
|
+
overriddenBy: SettingSource | undefined;
|
|
78
|
+
snapshot: ConfigSnapshot;
|
|
79
|
+
}
|
|
80
|
+
export declare function getPath(value: unknown, key: string): unknown;
|
|
81
|
+
/** Set (or with `undefined` delete) one dotted path; empty parent objects are removed. */
|
|
82
|
+
export declare function setPath(target: Obj, key: string, value: unknown): void;
|
|
83
|
+
/** Read both files and merge all layers. */
|
|
84
|
+
export declare function readSnapshot(input: ConfigLayerInput): ConfigSnapshot;
|
|
85
|
+
/** Effective value and source of one key. */
|
|
86
|
+
export declare function getConfigValue(snapshot: ConfigSnapshot, key: string): SettingValue;
|
|
87
|
+
export declare function overriddenFor(value: SettingValue, scope: EditScope): SettingSource | undefined;
|
|
88
|
+
/** Throws `config_unknown_key` unless `ama config set` accepts the key. */
|
|
89
|
+
export declare function assertSettable(key: string): void;
|
|
90
|
+
/**
|
|
91
|
+
* Parse a command line / panel value. `undefined` means unset (`none`, `unset`; `default` too unless it
|
|
92
|
+
* is a valid enum value). `jsonValue` takes JSON (lists and objects need it).
|
|
93
|
+
*/
|
|
94
|
+
export declare function parseValue(key: string, raw: string, jsonValue?: boolean): unknown;
|
|
95
|
+
export interface SetOptions extends ConfigLayerInput {
|
|
96
|
+
scope: EditScope;
|
|
97
|
+
key: string;
|
|
98
|
+
/** Parsed value; `undefined` unsets. */
|
|
99
|
+
value: unknown;
|
|
100
|
+
}
|
|
101
|
+
/** Write one key into the user or project file (or unset it with `value: undefined`). */
|
|
102
|
+
export declare function setConfigValue(options: SetOptions): EditResult;
|
|
103
|
+
export declare function unsetConfigValue(options: Omit<SetOptions, "value">): EditResult;
|
|
104
|
+
/** Display text of a value (JSON for lists / objects, plain otherwise). */
|
|
105
|
+
export declare function formatSettingValue(value: unknown): string;
|
|
106
|
+
export {};
|