@phnx-labs/agents-cli 0.1.0 → 1.12.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.
Files changed (145) hide show
  1. package/README.md +14 -96
  2. package/dist/commands/exec.d.ts.map +1 -1
  3. package/dist/commands/exec.js +17 -135
  4. package/dist/commands/exec.js.map +1 -1
  5. package/dist/commands/models.d.ts.map +1 -1
  6. package/dist/commands/models.js +3 -30
  7. package/dist/commands/models.js.map +1 -1
  8. package/dist/commands/pull.d.ts.map +1 -1
  9. package/dist/commands/pull.js +3 -37
  10. package/dist/commands/pull.js.map +1 -1
  11. package/dist/commands/sessions.d.ts.map +1 -1
  12. package/dist/commands/sessions.js +0 -100
  13. package/dist/commands/sessions.js.map +1 -1
  14. package/dist/commands/view.d.ts.map +1 -1
  15. package/dist/commands/view.js +2 -42
  16. package/dist/commands/view.js.map +1 -1
  17. package/dist/index.js +8 -37
  18. package/dist/index.js.map +1 -1
  19. package/dist/lib/__tests__/hooks.test.js +2 -2
  20. package/dist/lib/__tests__/hooks.test.js.map +1 -1
  21. package/dist/lib/__tests__/models.test.js +1 -56
  22. package/dist/lib/__tests__/models.test.js.map +1 -1
  23. package/dist/lib/__tests__/usage.test.js +2 -4
  24. package/dist/lib/__tests__/usage.test.js.map +1 -1
  25. package/dist/lib/agents.d.ts.map +1 -1
  26. package/dist/lib/agents.js +2 -10
  27. package/dist/lib/agents.js.map +1 -1
  28. package/dist/lib/exec.d.ts +1 -4
  29. package/dist/lib/exec.d.ts.map +1 -1
  30. package/dist/lib/exec.js +15 -24
  31. package/dist/lib/exec.js.map +1 -1
  32. package/dist/lib/hooks.d.ts.map +1 -1
  33. package/dist/lib/hooks.js +1 -153
  34. package/dist/lib/hooks.js.map +1 -1
  35. package/dist/lib/models.d.ts +10 -18
  36. package/dist/lib/models.d.ts.map +1 -1
  37. package/dist/lib/models.js +12 -380
  38. package/dist/lib/models.js.map +1 -1
  39. package/dist/lib/session/types.d.ts +0 -8
  40. package/dist/lib/session/types.d.ts.map +1 -1
  41. package/dist/lib/shims.d.ts +2 -31
  42. package/dist/lib/shims.d.ts.map +1 -1
  43. package/dist/lib/shims.js +24 -75
  44. package/dist/lib/shims.js.map +1 -1
  45. package/dist/lib/state.d.ts +0 -7
  46. package/dist/lib/state.d.ts.map +1 -1
  47. package/dist/lib/state.js +1 -14
  48. package/dist/lib/state.js.map +1 -1
  49. package/dist/lib/usage.d.ts +0 -16
  50. package/dist/lib/usage.d.ts.map +1 -1
  51. package/dist/lib/usage.js +10 -27
  52. package/dist/lib/usage.js.map +1 -1
  53. package/dist/lib/versions.d.ts +1 -7
  54. package/dist/lib/versions.d.ts.map +1 -1
  55. package/dist/lib/versions.js +8 -30
  56. package/dist/lib/versions.js.map +1 -1
  57. package/package.json +2 -2
  58. package/dist/commands/cloud.d.ts +0 -3
  59. package/dist/commands/cloud.d.ts.map +0 -1
  60. package/dist/commands/cloud.js +0 -322
  61. package/dist/commands/cloud.js.map +0 -1
  62. package/dist/commands/profiles.d.ts +0 -3
  63. package/dist/commands/profiles.d.ts.map +0 -1
  64. package/dist/commands/profiles.js +0 -242
  65. package/dist/commands/profiles.js.map +0 -1
  66. package/dist/commands/secrets.d.ts +0 -3
  67. package/dist/commands/secrets.d.ts.map +0 -1
  68. package/dist/commands/secrets.js +0 -339
  69. package/dist/commands/secrets.js.map +0 -1
  70. package/dist/lib/__tests__/rotate.test.d.ts +0 -2
  71. package/dist/lib/__tests__/rotate.test.d.ts.map +0 -1
  72. package/dist/lib/__tests__/rotate.test.js +0 -80
  73. package/dist/lib/__tests__/rotate.test.js.map +0 -1
  74. package/dist/lib/__tests__/secrets-bundles.test.d.ts +0 -2
  75. package/dist/lib/__tests__/secrets-bundles.test.d.ts.map +0 -1
  76. package/dist/lib/__tests__/secrets-bundles.test.js +0 -104
  77. package/dist/lib/__tests__/secrets-bundles.test.js.map +0 -1
  78. package/dist/lib/__tests__/secrets.test.d.ts +0 -2
  79. package/dist/lib/__tests__/secrets.test.d.ts.map +0 -1
  80. package/dist/lib/__tests__/secrets.test.js +0 -90
  81. package/dist/lib/__tests__/secrets.test.js.map +0 -1
  82. package/dist/lib/__tests__/shims.test.d.ts +0 -2
  83. package/dist/lib/__tests__/shims.test.d.ts.map +0 -1
  84. package/dist/lib/__tests__/shims.test.js +0 -39
  85. package/dist/lib/__tests__/shims.test.js.map +0 -1
  86. package/dist/lib/__tests__/versions.test.d.ts +0 -2
  87. package/dist/lib/__tests__/versions.test.d.ts.map +0 -1
  88. package/dist/lib/__tests__/versions.test.js +0 -63
  89. package/dist/lib/__tests__/versions.test.js.map +0 -1
  90. package/dist/lib/cloud/codex.d.ts +0 -19
  91. package/dist/lib/cloud/codex.d.ts.map +0 -1
  92. package/dist/lib/cloud/codex.js +0 -210
  93. package/dist/lib/cloud/codex.js.map +0 -1
  94. package/dist/lib/cloud/factory.d.ts +0 -26
  95. package/dist/lib/cloud/factory.d.ts.map +0 -1
  96. package/dist/lib/cloud/factory.js +0 -37
  97. package/dist/lib/cloud/factory.js.map +0 -1
  98. package/dist/lib/cloud/registry.d.ts +0 -6
  99. package/dist/lib/cloud/registry.d.ts.map +0 -1
  100. package/dist/lib/cloud/registry.js +0 -56
  101. package/dist/lib/cloud/registry.js.map +0 -1
  102. package/dist/lib/cloud/rush.d.ts +0 -15
  103. package/dist/lib/cloud/rush.d.ts.map +0 -1
  104. package/dist/lib/cloud/rush.js +0 -185
  105. package/dist/lib/cloud/rush.js.map +0 -1
  106. package/dist/lib/cloud/store.d.ts +0 -10
  107. package/dist/lib/cloud/store.d.ts.map +0 -1
  108. package/dist/lib/cloud/store.js +0 -96
  109. package/dist/lib/cloud/store.js.map +0 -1
  110. package/dist/lib/cloud/stream.d.ts +0 -18
  111. package/dist/lib/cloud/stream.d.ts.map +0 -1
  112. package/dist/lib/cloud/stream.js +0 -138
  113. package/dist/lib/cloud/stream.js.map +0 -1
  114. package/dist/lib/cloud/types.d.ts +0 -60
  115. package/dist/lib/cloud/types.d.ts.map +0 -1
  116. package/dist/lib/cloud/types.js +0 -2
  117. package/dist/lib/cloud/types.js.map +0 -1
  118. package/dist/lib/profiles-keychain.d.ts +0 -3
  119. package/dist/lib/profiles-keychain.d.ts.map +0 -1
  120. package/dist/lib/profiles-keychain.js +0 -10
  121. package/dist/lib/profiles-keychain.js.map +0 -1
  122. package/dist/lib/profiles-presets.d.ts +0 -15
  123. package/dist/lib/profiles-presets.d.ts.map +0 -1
  124. package/dist/lib/profiles-presets.js +0 -95
  125. package/dist/lib/profiles-presets.js.map +0 -1
  126. package/dist/lib/profiles.d.ts +0 -35
  127. package/dist/lib/profiles.d.ts.map +0 -1
  128. package/dist/lib/profiles.js +0 -123
  129. package/dist/lib/profiles.js.map +0 -1
  130. package/dist/lib/rotate.d.ts +0 -52
  131. package/dist/lib/rotate.d.ts.map +0 -1
  132. package/dist/lib/rotate.js +0 -87
  133. package/dist/lib/rotate.js.map +0 -1
  134. package/dist/lib/secrets-bundles.d.ts +0 -29
  135. package/dist/lib/secrets-bundles.d.ts.map +0 -1
  136. package/dist/lib/secrets-bundles.js +0 -168
  137. package/dist/lib/secrets-bundles.js.map +0 -1
  138. package/dist/lib/secrets.d.ts +0 -27
  139. package/dist/lib/secrets.d.ts.map +0 -1
  140. package/dist/lib/secrets.js +0 -127
  141. package/dist/lib/secrets.js.map +0 -1
  142. package/dist/lib/session/artifacts.d.ts +0 -5
  143. package/dist/lib/session/artifacts.d.ts.map +0 -1
  144. package/dist/lib/session/artifacts.js +0 -75
  145. package/dist/lib/session/artifacts.js.map +0 -1
package/README.md CHANGED
@@ -20,8 +20,6 @@ Also available as `ag` — all commands work with both `agents` and `ag`.
20
20
  ## Table of contents
21
21
 
22
22
  - [Run any agent, same interface](#run-any-agent-same-interface)
23
- - [Run open-source models through Claude Code](#run-open-source-models-through-claude-code)
24
- - [Keep secrets out of plaintext env files](#keep-secrets-out-of-plaintext-env-files)
25
23
  - [Put agents on a team](#put-agents-on-a-team)
26
24
  - [Non-interactive usage](#non-interactive-usage)
27
25
  - [Search sessions fast](#search-sessions-fast)
@@ -46,9 +44,19 @@ agents run gemini "Write tests for the fixed code"
46
44
 
47
45
  Each agent resolves to the project-pinned version, with the right skills, MCP servers, and permissions already synced. No setup between steps -- just run.
48
46
 
49
- `agents run` also passes environment overrides to the spawned CLI. For one-off flags this looks like `--env KEY=VALUE`; for repeatable provider setups see [profiles](#run-open-source-models-through-claude-code) below.
47
+ `agents run` also passes through environment overrides to the spawned CLI, so Claude can target any Anthropic-compatible endpoint:
50
48
 
51
- Chain agents by strength, swap one for another, script them in CI -- the interface stays the same:
49
+ ```bash
50
+ agents run claude "Reply with exactly: agents-qwen route ok" \
51
+ --mode full \
52
+ --model qwen3.6:35b \
53
+ --env ANTHROPIC_BASE_URL=https://ollama.example.com \
54
+ --env ANTHROPIC_AUTH_TOKEN="$(security find-generic-password -a "$USER" -s ollama-auth-token -w)" \
55
+ --env ANTHROPIC_MODEL=qwen3.6:35b \
56
+ --env ANTHROPIC_SMALL_FAST_MODEL=qwen3.6:35b
57
+ ```
58
+
59
+ This makes agent pipelines possible. Chain agents by strength, swap one for another, script them in CI -- the interface stays the same:
52
60
 
53
61
  ```bash
54
62
  # Friday night code review
@@ -65,84 +73,6 @@ Supports plan (read-only) and edit modes, effort levels that map to the right mo
65
73
 
66
74
  ---
67
75
 
68
- ## Run open-source models through Claude Code
69
-
70
- `agents profiles` saves a named bundle of (host CLI, endpoint, model, keychain-backed auth). Ship a preset, paste the API key once, then invoke any open-source model as a first-class agent — no shell function, no plaintext token, no proxy.
71
-
72
- ```bash
73
- agents profiles add kimi # prompts for OpenRouter key, stores in Keychain
74
- agents run kimi "refactor this file" # Claude Code UI, Kimi K2.5 responses
75
- ```
76
-
77
- Built-in presets (all via OpenRouter, one shared key):
78
-
79
- | Preset | Model | Notes |
80
- |---|---|---|
81
- | `kimi` | `moonshotai/kimi-k2.5` | #1 HumanEval (99%), top Kimi. Reasoning — interactive only. |
82
- | `kimi-chat` | `moonshotai/kimi-k2-0905` | Non-reasoning, print-safe for `agents run`. |
83
- | `minimax` | `minimax/minimax-m2.5` | #1 SWE-bench Verified (80.2%). Reasoning. |
84
- | `glm` | `z-ai/glm-5` | #1 Chatbot Arena among open-weight (1451 ELO). |
85
- | `qwen` | `qwen/qwen3-coder-next` | Latest coding Qwen, sparse MoE 80B/3B active. Print-safe. |
86
- | `deepseek` | `deepseek/deepseek-chat-v3-0324` | Latest non-reasoning DeepSeek Chat. Print-safe. |
87
-
88
- `agents profiles presets` lists the catalog. `agents profiles view <name>` shows the env, model, and keychain status.
89
-
90
- **How it works:** a profile swaps the *model* while keeping Claude Code as the *agent runtime* — same UI, slash commands, skills, MCP tools, permission system. Under the hood it sets `ANTHROPIC_BASE_URL` + `ANTHROPIC_MODEL` and pulls `ANTHROPIC_AUTH_TOKEN` from Keychain at spawn time.
91
-
92
- Profile YAML lives in `~/.agents/profiles/<name>.yml` with no secrets — safe to `agents push` to a shared repo. Keys live only in macOS Keychain; rotate with `agents profiles login <provider>`.
93
-
94
- **Custom endpoints** — for self-hosted models (Ollama, vLLM) or other aggregators, drop a YAML file directly:
95
-
96
- ```yaml
97
- # ~/.agents/profiles/local-qwen.yml
98
- name: local-qwen
99
- host: { agent: claude }
100
- env:
101
- ANTHROPIC_BASE_URL: https://ollama.internal
102
- ANTHROPIC_MODEL: qwen3.6:35b
103
- ANTHROPIC_SMALL_FAST_MODEL: qwen3.6:35b
104
- auth:
105
- envVar: ANTHROPIC_AUTH_TOKEN
106
- keychainItem: agents-cli.ollama.token
107
- ```
108
-
109
- Then `agents profiles login ollama` to store the token, and `agents run local-qwen "..."` works.
110
-
111
- **Note on `--print` and reasoning models:** Claude Code's `--print` mode consolidates response text, but returns empty when the response contains `thinking` blocks. Models flagged REASONING in the preset descriptions work fine interactively (plain `claude` launch with the same env) but not with `agents run --print`. Use the non-reasoning `-chat` variant for scripting.
112
-
113
- ---
114
-
115
- ## Keep secrets out of plaintext env files
116
-
117
- `agents secrets` stores sensitive values (API keys, tokens, even a test credit card number) in the macOS Keychain and injects them into agents at run time. Bundle files on disk contain only references — safe to `agents push` to a shared repo.
118
-
119
- ```bash
120
- agents secrets add prod-stripe --description "Stripe prod + test card"
121
- agents secrets set prod-stripe STRIPE_SECRET_KEY # prompts, stores in keychain
122
- agents secrets set prod-stripe TEST_CARD_NUMBER # prompts, stores in keychain
123
- agents secrets set prod-stripe STRIPE_API_VERSION --value "2024-06-20"
124
- agents secrets set prod-stripe GITHUB_TOKEN --env GH_TOKEN # read from parent shell
125
- agents secrets set prod-stripe GCP_CREDS --file ~/.config/gcloud/creds.json
126
-
127
- agents run claude "charge a test card" --secrets prod-stripe
128
- ```
129
-
130
- The resulting `~/.agents/secrets/prod-stripe.yml` holds only refs:
131
-
132
- ```yaml
133
- name: prod-stripe
134
- vars:
135
- STRIPE_SECRET_KEY: keychain:STRIPE_SECRET_KEY
136
- TEST_CARD_NUMBER: keychain:TEST_CARD_NUMBER
137
- STRIPE_API_VERSION: { value: "2024-06-20" }
138
- GITHUB_TOKEN: env:GH_TOKEN
139
- GCP_CREDS: file:~/.config/gcloud/creds.json
140
- ```
141
-
142
- Merge order on `agents run` is **profile env < `--secrets <bundle>` < `--env K=V`** — a profile carries provider auth, bundles carry user-defined values, `--env` is the per-invocation override. Resolution happens right before `spawn`; a missing keychain item aborts the run before the child starts.
143
-
144
- ---
145
-
146
76
  ## Put agents on a team
147
77
 
148
78
  `agents run` runs one agent synchronously. **Teams** run many agents on the same task, in the background, with coordination.
@@ -232,7 +162,7 @@ agents add claude@2.0.0 # Install specific version
232
162
  agents use claude@2.0.0 -p # Pin to this project
233
163
  ```
234
164
 
235
- Like `.nvmrc` for Node -- different projects use different agent versions. A shim system reads a project-root `agents.yaml` and routes to the right binary automatically. No other tool does this for AI agents.
165
+ Like `.nvmrc` for Node -- different projects use different agent versions. A shim system reads `.agents-version` and routes to the right binary automatically. No other tool does this for AI agents.
236
166
 
237
167
  When you switch versions, configs are backed up and resources are re-synced. Each version gets its own isolated home directory with the right skills, commands, and permissions already in place.
238
168
 
@@ -383,18 +313,6 @@ agents install mcp:<name> # Install + register
383
313
  agents mcp list # Show registered servers
384
314
  agents mcp add <name> <cmd> # Register manually
385
315
 
386
- # Secrets (keychain-backed env bundles, injected at run time)
387
- agents secrets list # Show all bundles
388
- agents secrets add <name> # Create an empty bundle
389
- agents secrets set <bundle> <KEY> # Prompt, store in keychain, write ref
390
- agents secrets set <bundle> <KEY> --value <v> # Store as YAML literal
391
- agents secrets set <bundle> <KEY> --env <VAR> # Inherit from parent shell
392
- agents secrets set <bundle> <KEY> --file <path> # Read from a file at run time
393
- agents secrets view <name> [--reveal] # Show bundle (masked by default)
394
- agents secrets import <name> --from .env # Import a dotenv file into keychain
395
- agents secrets rm <name> # Delete bundle and purge keychain
396
- agents run <agent> "..." --secrets <name> # Inject a bundle (repeatable)
397
-
398
316
  # Sync
399
317
  agents pull [source] # Sync from repo
400
318
  agents push # Push changes back
@@ -486,7 +404,7 @@ Each agent CLI has its own config format, its own MCP setup, its own version man
486
404
 
487
405
  ### Is this like `nvm` / `mise` / `asdf` but for AI agents?
488
406
 
489
- For version management, yes — that's the closest analogue. `agents-cli` reads a project-root `agents.yaml`, walks up the directory tree, and routes `claude` / `codex` / `gemini` to the correct installed binary per project. But `agents` also manages agent-native resources (skills, MCP servers, slash commands, hooks, permissions) that language version managers don't touch.
407
+ For version management, yes — that's the closest analogue. `agents-cli` reads `.agents-version` in a project, walks up the directory tree, and routes `claude` / `codex` / `gemini` to the correct installed binary per project. But `agents` also manages agent-native resources (skills, MCP servers, slash commands, hooks, permissions) that language version managers don't touch.
490
408
 
491
409
  ### How is this different from Vercel's Open Agents?
492
410
 
@@ -1 +1 @@
1
- {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/commands/exec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgDzC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmPzD"}
1
+ {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/commands/exec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoCzC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsIzD"}
@@ -1,27 +1,17 @@
1
1
  import chalk from 'chalk';
2
2
  import { buildExecCommand, parseExecEnv, execAgent, runWithFallback, AGENT_COMMANDS, } from '../lib/exec.js';
3
- import { profileExists, resolveProfileForRun } from '../lib/profiles.js';
4
- import { readBundle, resolveBundleEnv } from '../lib/secrets-bundles.js';
5
- import { resolveRunVersion } from '../lib/rotate.js';
6
3
  const VALID_AGENTS = Object.keys(AGENT_COMMANDS);
7
4
  function isValidAgent(agent) {
8
5
  return VALID_AGENTS.includes(agent);
9
6
  }
10
- function formatRotationBanner(result) {
11
- const { picked, healthy, excluded } = result;
12
- const label = picked.email ? `${picked.email} · ${picked.agent}@${picked.version}` : `${picked.agent}@${picked.version}`;
13
- const ratio = `${healthy.length} of ${healthy.length + excluded.length} healthy`;
14
- return `[agents] rotation picked ${label} (${ratio})`;
15
- }
16
7
  export function registerRunCommand(program) {
17
8
  program
18
- .command('run <agent> [prompt]')
19
- .description('Execute an agent. Pass a prompt for headless runs; omit it to launch the agent interactively.')
9
+ .command('run <agent> <prompt>')
10
+ .description('Execute an agent non-interactively from scripts, scheduled jobs, or automation pipelines. Returns when the agent finishes.')
20
11
  .option('-m, --mode <mode>', 'How much the agent can do: plan (read-only), edit (can write files), full (writes + all permissions)', 'plan')
21
12
  .option('-e, --effort <effort>', 'Reasoning effort: low | medium | high | xhigh | max | auto (claude and codex only)', 'auto')
22
13
  .option('--model <model>', 'Override the model directly (e.g., claude-opus-4-6)')
23
14
  .option('--env <key=value>', 'Pass environment variable to the agent (repeatable, e.g., --env DEBUG=1 --env API_KEY=xyz)', (val, prev) => [...prev, val], [])
24
- .option('--secrets <bundle>', 'Inject a secrets bundle (repeatable). Values resolve from macOS Keychain at run time. See `agents secrets`.', (val, prev) => [...prev, val], [])
25
15
  .option('--cwd <dir>', 'Working directory for the agent (defaults to current directory)')
26
16
  .option('--add-dir <dir>', 'Grant access to an additional directory outside the project (Claude only, repeatable)', (val, prev) => [...prev, val], [])
27
17
  .option('--json', 'Stream events as JSON lines (for parsing by other tools)')
@@ -30,29 +20,12 @@ export function registerRunCommand(program) {
30
20
  .option('--verbose', 'Show detailed execution logs')
31
21
  .option('--timeout <duration>', 'Kill the agent after this duration (e.g., 30m, 1h, 2h30m)')
32
22
  .option('--fallback <agents>', 'Comma-separated agents to try on rate-limit failure. Each entry accepts an optional @version pin (e.g., codex@0.116.0,gemini). The primary runs first; if it exits with a rate-limit error, the next agent picks up via /continue handoff.')
33
- .option('-r, --rotate', 'Rotate across installed versions of the agent. Picks the signed-in, not-out-of-credits account with the oldest last-active timestamp. Ignored when @version is pinned.')
34
23
  .addHelpText('after', `
35
- Modes:
36
- With a prompt -> headless (pipes output, no TTY, exits when the agent finishes).
37
- Without a prompt -> interactive (launches the agent's TUI; stdio is fully inherited).
38
-
39
- Version rotation (opt-in with --rotate):
40
- Picks across installed versions using the account data 'agents view' already
41
- shows: signed-in only, skip out-of-credits, least-recently-active wins. Useful
42
- when you have multiple accounts of the same CLI and want to spread usage.
43
- Ignored when @version is pinned, when a profile is used, or with --fallback.
44
-
45
24
  Examples:
46
- # Interactive with the pinned default version
47
- agents run claude
25
+ # Quick read-only analysis (plan mode, low reasoning effort)
26
+ agents run claude "summarize recent git commits" --mode plan --effort low
48
27
 
49
- # Interactive, rotate to the least-used healthy account
50
- agents run claude --rotate
51
-
52
- # Headless, rotate per invocation (spreads across accounts over time)
53
- agents run claude "summarize recent git commits" --mode plan --rotate
54
-
55
- # Pin a specific version (rotation ignored)
28
+ # Edit files with the agent's default effort
56
29
  agents run codex@0.116.0 "fix linting errors in src/" --mode edit
57
30
 
58
31
  # Full autonomy with maximum reasoning for a complex task
@@ -67,81 +40,20 @@ Examples:
67
40
  # Auto-fallback to codex then gemini if claude hits a rate limit
68
41
  agents run claude "refactor auth module" --mode edit --fallback codex,gemini
69
42
 
70
- # Inject a named secrets bundle (keychain-backed)
71
- agents run claude "charge a test card" --secrets prod-stripe
72
-
73
43
  # Pin fallback versions: primary claude@2.0.65, fallback codex@0.116.0 then gemini
74
44
  agents run claude@2.0.65 "deep refactor" --fallback codex@0.116.0,gemini
45
+
46
+ Note: 'agents run' executes non-interactively (no TTY). To work interactively with
47
+ the agent, launch it directly (e.g., 'claude', 'codex') instead of using 'run'.
75
48
  `)
76
49
  .action(async (agentSpec, prompt, options) => {
77
50
  // Parse agent@version
78
- const [rawAgent, rawVersion] = agentSpec.split('@');
79
- let agent;
80
- let version = rawVersion || undefined;
81
- let profileEnv;
82
- let fromProfile = false;
83
- if (isValidAgent(rawAgent)) {
84
- agent = rawAgent;
85
- }
86
- else if (profileExists(rawAgent)) {
87
- // Not a known agent id, but a profile by this name exists. Profiles
88
- // bind (host agent, version, env overrides, keychain-backed auth)
89
- // so Chinese models (Kimi, DeepSeek, Qwen, GLM) can run inside
90
- // Claude Code without a local proxy.
91
- try {
92
- const resolved = resolveProfileForRun(rawAgent);
93
- agent = resolved.agent;
94
- if (!version)
95
- version = resolved.version;
96
- profileEnv = resolved.env;
97
- fromProfile = true;
98
- process.stderr.write(chalk.gray(`Resolved profile '${resolved.profileName}' -> ${agent}${version ? `@${version}` : ''}\n`));
99
- }
100
- catch (err) {
101
- console.error(chalk.red(err.message));
102
- process.exit(1);
103
- }
104
- }
105
- else {
106
- console.error(chalk.red(`Unknown agent: ${rawAgent}`));
107
- console.error(chalk.gray(`Available agents: ${VALID_AGENTS.join(', ')}`));
108
- console.error(chalk.gray(`Or add a profile: agents profiles add <name>`));
51
+ const [agent, version] = agentSpec.split('@');
52
+ if (!isValidAgent(agent)) {
53
+ console.error(chalk.red(`Unknown agent: ${agent}`));
54
+ console.error(chalk.gray(`Available: ${VALID_AGENTS.join(', ')}`));
109
55
  process.exit(1);
110
56
  }
111
- // Rotation is opt-in via --rotate. Default honors the pinned default
112
- // version (from `agents use`) so behavior stays predictable. When
113
- // opted in, pick the least-recently-active signed-in version that
114
- // isn't out of credits. Skipped when @version is pinned, when running
115
- // a profile (profile carries its own version + auth), or when a
116
- // fallback chain is configured (fallback pins versions directly).
117
- if (options.rotate) {
118
- if (version) {
119
- process.stderr.write(chalk.yellow(`[agents] --rotate ignored: version ${version} is pinned\n`));
120
- }
121
- else if (fromProfile) {
122
- process.stderr.write(chalk.yellow(`[agents] --rotate ignored: profile pins its own version/auth\n`));
123
- }
124
- else if (options.fallback) {
125
- process.stderr.write(chalk.yellow(`[agents] --rotate ignored: --fallback pins versions directly\n`));
126
- }
127
- else {
128
- try {
129
- const resolved = await resolveRunVersion(agent);
130
- if (resolved.version) {
131
- version = resolved.version;
132
- if (resolved.rotation) {
133
- process.stderr.write(chalk.gray(formatRotationBanner(resolved.rotation) + '\n'));
134
- }
135
- }
136
- else {
137
- process.stderr.write(chalk.yellow(`[agents] --rotate found no healthy ${agent} version; falling back to defaults\n`));
138
- }
139
- }
140
- catch (err) {
141
- process.stderr.write(chalk.yellow(`[agents] rotation skipped: ${err.message}\n`));
142
- }
143
- }
144
- }
145
57
  const mode = options.mode;
146
58
  if (!['plan', 'edit', 'full'].includes(mode)) {
147
59
  console.error(chalk.red(`Invalid mode: ${mode}. Use 'plan', 'edit', or 'full'`));
@@ -152,35 +64,14 @@ Examples:
152
64
  console.error(chalk.red(`Invalid effort: ${effort}. Use 'low', 'medium', 'high', 'xhigh', 'max', or 'auto'`));
153
65
  process.exit(1);
154
66
  }
155
- let userEnv;
67
+ let env;
156
68
  try {
157
- userEnv = parseExecEnv(options.env);
69
+ env = parseExecEnv(options.env);
158
70
  }
159
71
  catch (err) {
160
72
  console.error(chalk.red(err.message));
161
73
  process.exit(1);
162
74
  }
163
- // Resolve --secrets bundles in flag order. Later bundles override earlier
164
- // ones. Any resolution failure (missing keychain item, blocked exec ref)
165
- // aborts before spawn so the agent never sees a partial env.
166
- let secretsEnv = {};
167
- for (const bundleName of options.secrets) {
168
- try {
169
- const bundle = readBundle(bundleName);
170
- secretsEnv = { ...secretsEnv, ...resolveBundleEnv(bundle) };
171
- }
172
- catch (err) {
173
- console.error(chalk.red(err.message));
174
- process.exit(1);
175
- }
176
- }
177
- // Merge order (later wins): profile env < secrets bundles < --env K=V.
178
- // Profile carries provider auth; secrets bundles carry user-defined
179
- // values; --env is the per-invocation override.
180
- const hasOverrides = profileEnv || options.secrets.length > 0 || userEnv;
181
- const env = hasOverrides
182
- ? { ...(profileEnv ?? {}), ...secretsEnv, ...(userEnv ?? {}) }
183
- : undefined;
184
75
  const execOptions = {
185
76
  agent,
186
77
  version,
@@ -199,10 +90,6 @@ Examples:
199
90
  };
200
91
  const fallback = [];
201
92
  if (options.fallback) {
202
- if (prompt === undefined) {
203
- console.error(chalk.red('--fallback requires a prompt. Fallback hands off headless runs only — interactive sessions can\'t be resumed on a different CLI.'));
204
- process.exit(1);
205
- }
206
93
  const entries = options.fallback.split(',').map(s => s.trim()).filter(Boolean);
207
94
  for (const entry of entries) {
208
95
  const [fbAgent, fbVersion] = entry.split('@');
@@ -222,14 +109,9 @@ Examples:
222
109
  const cmd = buildExecCommand(execOptions);
223
110
  process.stderr.write(chalk.gray(`Running: ${cmd.join(' ')}\n\n`));
224
111
  try {
225
- let exitCode;
226
- if (fallback.length > 0) {
227
- // fallback requires a prompt — enforced above, narrow the type here.
228
- exitCode = await runWithFallback({ ...execOptions, prompt: prompt, fallback });
229
- }
230
- else {
231
- exitCode = await execAgent(execOptions);
232
- }
112
+ const exitCode = fallback.length > 0
113
+ ? await runWithFallback({ ...execOptions, fallback })
114
+ : await execAgent(execOptions);
233
115
  process.exit(exitCode);
234
116
  }
235
117
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/commands/exec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/commands/exec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoCzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4B5D"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAezC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4B5D"}
@@ -1,29 +1,8 @@
1
1
  import chalk from 'chalk';
2
- import * as fs from 'fs';
3
2
  import { resolveAgentName, formatAgentError, agentLabel, } from '../lib/agents.js';
4
3
  import { listInstalledVersions, getGlobalDefault, resolveVersion } from '../lib/versions.js';
5
4
  import { getModelCatalog, locateModelSource } from '../lib/models.js';
6
- const MODEL_CAPABLE_AGENTS = ['claude', 'codex', 'gemini', 'opencode', 'cursor', 'openclaw'];
7
- /**
8
- * Agents that don't necessarily install under ~/.agents/versions (cursor ships
9
- * via a curl script). For these, fall back to the PATH binary and synthesize
10
- * a version label from the install path so cache keys stay stable.
11
- */
12
- const PATH_ONLY_AGENTS = new Set(['cursor']);
13
- function fallbackPathVersion(agent) {
14
- const src = locateModelSource(agent, 'unresolved');
15
- if (!src)
16
- return null;
17
- let real = src.path;
18
- try {
19
- real = fs.realpathSync(src.path);
20
- }
21
- catch {
22
- /* keep symlink path */
23
- }
24
- const m = real.match(/\/versions\/([^/]+)\//);
25
- return m ? m[1] : 'installed';
26
- }
5
+ const MODEL_CAPABLE_AGENTS = ['claude', 'codex'];
27
6
  export function registerModelsCommand(program) {
28
7
  program
29
8
  .command('models [agentSpec]', { hidden: true })
@@ -57,10 +36,7 @@ async function resolveTargets(agentSpec) {
57
36
  if (!agentSpec) {
58
37
  const targets = [];
59
38
  for (const agent of MODEL_CAPABLE_AGENTS) {
60
- let version = getGlobalDefault(agent) || (listInstalledVersions(agent)[0] ?? null);
61
- if (!version && PATH_ONLY_AGENTS.has(agent)) {
62
- version = fallbackPathVersion(agent);
63
- }
39
+ const version = getGlobalDefault(agent) || (listInstalledVersions(agent)[0] ?? null);
64
40
  if (version)
65
41
  targets.push({ agent, version, isDefault: true });
66
42
  }
@@ -87,10 +63,7 @@ async function resolveTargets(agentSpec) {
87
63
  isDefault: v === getGlobalDefault(agent),
88
64
  }));
89
65
  }
90
- let version = versionSpec || resolveVersion(agent, process.cwd()) || getGlobalDefault(agent);
91
- if (!version && PATH_ONLY_AGENTS.has(agent)) {
92
- version = fallbackPathVersion(agent);
93
- }
66
+ const version = versionSpec || resolveVersion(agent, process.cwd()) || getGlobalDefault(agent);
94
67
  if (!version) {
95
68
  console.error(chalk.red(`No version of ${agent} is installed. Try \`agents add ${agent}@latest\`.`));
96
69
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAGL,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,GACX,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEtE,MAAM,oBAAoB,GAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAExG;;;;GAIG;AACH,MAAM,gBAAgB,GAAyB,IAAI,GAAG,CAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE5E,SAAS,mBAAmB,CAAC,KAAc;IACzC,MAAM,GAAG,GAAG,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACnD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACpB,IAAI,CAAC;QACH,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,uBAAuB;IACzB,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SAC/C,WAAW,CAAC,sEAAsE,CAAC;SACnF,MAAM,CAAC,SAAS,EAAE,kCAAkC,CAAC;SACrD,MAAM,CAAC,aAAa,EAAE,8CAA8C,CAAC;SACrE,MAAM,CAAC,QAAQ,EAAE,wBAAwB,CAAC;SAC1C,MAAM,CAAC,KAAK,EAAE,SAA6B,EAAE,OAAiE,EAAE,EAAE;QACjH,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE1C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC/C,KAAK;gBACL,OAAO;gBACP,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC;aACzC,CAAC,CAAC,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,OAAO,EAAE,CAAC;YACpD,IAAI,OAAO,GAAG,CAAC;gBAAE,OAAO,CAAC,GAAG,EAAE,CAAC;YAC/B,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACjD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAQD,KAAK,UAAU,cAAc,CAAC,SAA6B;IACzD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,oBAAoB,EAAE,CAAC;YACzC,IAAI,OAAO,GAAkB,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;YAClG,IAAI,CAAC,OAAO,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5C,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,mFAAmF,CAAC,CAAC,CAAC;QACnH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;QAC5E,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,mDAAmD,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAClH,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC,CAAC;QACnF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,KAAK;YACL,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,CAAC,KAAK,gBAAgB,CAAC,KAAK,CAAC;SACzC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,IAAI,OAAO,GAAkB,WAAW,IAAI,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC5G,IAAI,CAAC,OAAO,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,KAAK,mCAAmC,KAAK,YAAY,CAAC,CAAC,CAAC;QACrG,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,KAAK,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,OAAe,EAAE,SAAkB,EAAE,OAAiD;IAC1H,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEpB,MAAM,GAAG,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uCAAuC,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;QACtF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+EAA+E,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC;QAC7H,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,8BAA8B,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QACpF,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAE1E,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACtD,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,EAAE;YACjE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,CAAC;YACvC,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,QAAQ,EAAE,CAAC,CAAC;QAEtE,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;YACzB,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,OAAO;gBAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,CAAC,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAChD,IAAI,CAAC,CAAC,OAAO;gBAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,UAAU;gBAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;YACrG,IAAI,CAAC,CAAC,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAChD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,KAAK,MAAM,CAAC,IAAI,MAAM;oBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnF,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7C,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CACjF,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6FzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+a1D"}
1
+ {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmEzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqa1D"}
@@ -1,6 +1,6 @@
1
1
  import chalk from 'chalk';
2
2
  import ora from 'ora';
3
- import { AGENTS, ALL_AGENT_IDS, HOOKS_CAPABLE_AGENTS, MCP_CAPABLE_AGENTS, getAllCliStates, registerMcpToTargets, isAgentName, resolveAgentName, agentLabel, } from '../lib/agents.js';
3
+ import { AGENTS, ALL_AGENT_IDS, MCP_CAPABLE_AGENTS, getAllCliStates, registerMcpToTargets, isAgentName, resolveAgentName, agentLabel, } from '../lib/agents.js';
4
4
  import { readManifest, MANIFEST_FILENAME, } from '../lib/manifest.js';
5
5
  import { getAgentsDir, ensureAgentsDir, readMeta, updateMeta, } from '../lib/state.js';
6
6
  import { DEFAULT_SYSTEM_REPO, LEGACY_SYSTEM_REPO, systemRepoSlug } from '../lib/types.js';
@@ -12,31 +12,6 @@ import { ensureShimCurrent, isShimsInPath, addShimsToPath, getPathSetupInstructi
12
12
  import { parseHookManifest, registerHooksToSettings } from '../lib/hooks.js';
13
13
  import { select } from '@inquirer/prompts';
14
14
  import { isInteractiveTerminal, isPromptCancelled } from './utils.js';
15
- /**
16
- * Old repo layout stored promptcuts under claude/promptcuts.yaml (agent-scoped).
17
- * The new layout is ~/.agents/promptcuts.yaml at the repo root — the hook
18
- * reads from a fixed path so it survives version upgrades. If the root file
19
- * doesn't exist yet but an agent-scoped one does, hoist the first one found.
20
- */
21
- function migratePromptcutsToRoot(agentsDir) {
22
- const rootPath = path.join(agentsDir, 'promptcuts.yaml');
23
- if (fs.existsSync(rootPath))
24
- return;
25
- const agentDirs = ['claude', 'codex', 'cursor', 'gemini', 'opencode'];
26
- for (const dir of agentDirs) {
27
- const legacyPath = path.join(agentsDir, dir, 'promptcuts.yaml');
28
- if (fs.existsSync(legacyPath)) {
29
- try {
30
- fs.renameSync(legacyPath, rootPath);
31
- console.log(chalk.gray(`Moved ${dir}/promptcuts.yaml → promptcuts.yaml (repo root)`));
32
- return;
33
- }
34
- catch {
35
- // Best-effort migration; hook still works if the user moves it manually.
36
- }
37
- }
38
- }
39
- }
40
15
  export function registerPullCommand(program) {
41
16
  program
42
17
  .command('pull [source] [agent]')
@@ -211,10 +186,6 @@ Skip CLI installs with --skip-clis when you only want config updates, not versio
211
186
  source: parsed.url,
212
187
  });
213
188
  }
214
- // One-time migration: promptcuts.yaml moved from agent-scoped
215
- // (e.g. claude/promptcuts.yaml) to repo root. We move it so the
216
- // hook at ~/.agents/hooks/ can always find it at a fixed path.
217
- migratePromptcutsToRoot(agentsDir);
218
189
  // Read manifest for CLI versions and MCP config
219
190
  const manifest = readManifest(agentsDir);
220
191
  if (!manifest) {
@@ -347,17 +318,12 @@ Skip CLI installs with --skip-clis when you only want config updates, not versio
347
318
  }
348
319
  }
349
320
  }
350
- // Register hooks as lifecycle events in each agent's config file.
351
- // Claude/codex/gemini all support prompt-time hooks, though only
352
- // claude can replace the prompt — codex/gemini append via
353
- // additionalContext. The hook script detects the caller and emits
354
- // the correct protocol.
321
+ // Register hooks as lifecycle events in settings.json
355
322
  const hookManifest = parseHookManifest();
356
323
  if (Object.keys(hookManifest).length > 0) {
357
324
  let hookRegistered = 0;
358
- const hookAgents = new Set(HOOKS_CAPABLE_AGENTS);
359
325
  for (const agentId of agentsToSync) {
360
- if (!hookAgents.has(agentId))
326
+ if (agentId !== 'claude')
361
327
  continue;
362
328
  const versions = listInstalledVersions(agentId);
363
329
  const defaultVer = getGlobalDefault(agentId);