@swarmify/agents-cli 1.10.4 → 1.11.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 +31 -0
- package/README.md +73 -2
- package/dist/commands/__tests__/sessions.test.js +333 -0
- package/dist/commands/__tests__/sessions.test.js.map +1 -1
- package/dist/commands/commands.d.ts.map +1 -1
- package/dist/commands/commands.js +5 -11
- package/dist/commands/commands.js.map +1 -1
- package/dist/commands/exec.d.ts.map +1 -1
- package/dist/commands/exec.js +11 -1
- package/dist/commands/exec.js.map +1 -1
- package/dist/commands/hooks.d.ts.map +1 -1
- package/dist/commands/hooks.js +5 -11
- package/dist/commands/hooks.js.map +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +109 -43
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/packages.d.ts.map +1 -1
- package/dist/commands/packages.js +92 -42
- package/dist/commands/packages.js.map +1 -1
- package/dist/commands/permissions.d.ts.map +1 -1
- package/dist/commands/permissions.js +38 -34
- package/dist/commands/permissions.js.map +1 -1
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/pull.js +14 -15
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +2 -0
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/rules.d.ts.map +1 -1
- package/dist/commands/rules.js +5 -11
- package/dist/commands/rules.js.map +1 -1
- package/dist/commands/sessions.d.ts.map +1 -1
- package/dist/commands/sessions.js +217 -34
- package/dist/commands/sessions.js.map +1 -1
- package/dist/commands/skills.d.ts.map +1 -1
- package/dist/commands/skills.js +5 -11
- package/dist/commands/skills.js.map +1 -1
- package/dist/commands/versions.d.ts.map +1 -1
- package/dist/commands/versions.js +31 -9
- package/dist/commands/versions.js.map +1 -1
- package/dist/commands/view.d.ts.map +1 -1
- package/dist/commands/view.js +38 -58
- package/dist/commands/view.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/__tests__/exec.test.js +50 -1
- package/dist/lib/__tests__/exec.test.js.map +1 -1
- package/dist/lib/__tests__/usage.test.d.ts +2 -0
- package/dist/lib/__tests__/usage.test.d.ts.map +1 -0
- package/dist/lib/__tests__/usage.test.js +145 -0
- package/dist/lib/__tests__/usage.test.js.map +1 -0
- package/dist/lib/agents.d.ts +19 -0
- package/dist/lib/agents.d.ts.map +1 -1
- package/dist/lib/agents.js +177 -16
- package/dist/lib/agents.js.map +1 -1
- package/dist/lib/exec.d.ts +3 -0
- package/dist/lib/exec.d.ts.map +1 -1
- package/dist/lib/exec.js +37 -0
- package/dist/lib/exec.js.map +1 -1
- package/dist/lib/registry.d.ts.map +1 -1
- package/dist/lib/registry.js +8 -0
- package/dist/lib/registry.js.map +1 -1
- package/dist/lib/resources.d.ts +2 -0
- package/dist/lib/resources.d.ts.map +1 -1
- package/dist/lib/resources.js +7 -7
- package/dist/lib/resources.js.map +1 -1
- package/dist/lib/session/discover.d.ts +10 -0
- package/dist/lib/session/discover.d.ts.map +1 -1
- package/dist/lib/session/discover.js +563 -119
- package/dist/lib/session/discover.js.map +1 -1
- package/dist/lib/session/prompt.d.ts +3 -0
- package/dist/lib/session/prompt.d.ts.map +1 -0
- package/dist/lib/session/prompt.js +41 -0
- package/dist/lib/session/prompt.js.map +1 -0
- package/dist/lib/session/render.d.ts.map +1 -1
- package/dist/lib/session/render.js +6 -37
- package/dist/lib/session/render.js.map +1 -1
- package/dist/lib/session/types.d.ts +7 -0
- package/dist/lib/session/types.d.ts.map +1 -1
- package/dist/lib/shims.d.ts +5 -0
- package/dist/lib/shims.d.ts.map +1 -1
- package/dist/lib/shims.js +20 -1
- package/dist/lib/shims.js.map +1 -1
- package/dist/lib/types.d.ts +1 -0
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js.map +1 -1
- package/dist/lib/usage.d.ts +26 -0
- package/dist/lib/usage.d.ts.map +1 -1
- package/dist/lib/usage.js +125 -48
- package/dist/lib/usage.js.map +1 -1
- package/dist/lib/versions.d.ts +28 -0
- package/dist/lib/versions.d.ts.map +1 -1
- package/dist/lib/versions.js +181 -1
- package/dist/lib/versions.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.11.1
|
|
4
|
+
|
|
5
|
+
**Session search and version labeling**
|
|
6
|
+
|
|
7
|
+
- `agents sessions view` now opens a live-search picker by default in interactive terminals
|
|
8
|
+
- `agents sessions --agent ...` and `agents sessions --project ...` now open the same live-search picker before falling back to the table view
|
|
9
|
+
- `agents sessions view <query>` now resolves prompt text, not just exact session IDs
|
|
10
|
+
- Fixed `--project` search so it scans across directories instead of intersecting with the current working directory
|
|
11
|
+
- Session topics now skip injected scaffolding and use the first human prompt
|
|
12
|
+
- Codex session rows now show the real CLI build from `cli_version` (for example `codex@0.113.0`)
|
|
13
|
+
- Gemini, OpenCode, and OpenClaw session rows now resolve and display agent versions consistently in the shared `Agent` column
|
|
14
|
+
- Claude usage lookup now falls back across scoped and legacy Keychain services when loading OAuth credentials
|
|
15
|
+
|
|
16
|
+
## 1.11.0
|
|
17
|
+
|
|
18
|
+
**PTY -- interactive terminal sessions for AI agents**
|
|
19
|
+
|
|
20
|
+
- New `agents pty` command suite for persistent, interactive PTY sessions
|
|
21
|
+
- Sidecar server architecture -- lightweight daemon on `~/.agents/pty.sock`, auto-starts on first use
|
|
22
|
+
- `agents pty start` -- spawn a session with configurable rows, cols, shell, and working directory
|
|
23
|
+
- `agents pty exec <id> <command>` -- submit commands (non-blocking, sentinel-based completion detection)
|
|
24
|
+
- `agents pty screen <id>` -- render the terminal as clean text (no ANSI codes), powered by xterm-headless
|
|
25
|
+
- `agents pty write <id> <input>` -- send keystrokes with escape sequence support (`\n`, `\t`, `\e`, `\xHH`)
|
|
26
|
+
- `agents pty read <id>` -- read raw PTY output with configurable timeout
|
|
27
|
+
- `agents pty signal <id> [INT|TERM|KILL]` -- send signals to the PTY process
|
|
28
|
+
- `agents pty list` -- show active sessions with status, PID, age, and active command
|
|
29
|
+
- `agents pty server start|stop|status` -- manage the sidecar server directly
|
|
30
|
+
- Session idle cleanup (30 min) and server auto-exit (1 hour with no sessions)
|
|
31
|
+
- `--json` output on all commands for scripting
|
|
32
|
+
- Auto-fixes node-pty spawn-helper permissions on startup (bun install workaround)
|
|
33
|
+
|
|
3
34
|
## 1.10.0
|
|
4
35
|
|
|
5
36
|
**Drive -- sync agent sessions across machines**
|
package/README.md
CHANGED
|
@@ -22,6 +22,18 @@ agents exec gemini "Write tests for the fixed code"
|
|
|
22
22
|
|
|
23
23
|
Each agent resolves to the project-pinned version, with the right skills, MCP servers, and permissions already synced. No setup between steps -- just run.
|
|
24
24
|
|
|
25
|
+
`agents exec` also passes through environment overrides to the spawned CLI, so Claude can target any Anthropic-compatible endpoint:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
agents exec claude "Reply with exactly: agents-qwen route ok" \
|
|
29
|
+
--mode full \
|
|
30
|
+
--model qwen3.6:35b \
|
|
31
|
+
--env ANTHROPIC_BASE_URL=https://ollama.427yosemite.com \
|
|
32
|
+
--env ANTHROPIC_AUTH_TOKEN="$(security find-generic-password -a "$USER" -s yosemite-ollama-auth-token -w)" \
|
|
33
|
+
--env ANTHROPIC_MODEL=qwen3.6:35b \
|
|
34
|
+
--env ANTHROPIC_SMALL_FAST_MODEL=qwen3.6:35b
|
|
35
|
+
```
|
|
36
|
+
|
|
25
37
|
This makes agent pipelines possible. Chain agents by strength, swap one for another, script them in CI -- the interface stays the same:
|
|
26
38
|
|
|
27
39
|
```bash
|
|
@@ -46,8 +58,11 @@ Other coding agents usually run in non-TTY shells. `agents` now supports that mo
|
|
|
46
58
|
```bash
|
|
47
59
|
agents add codex@latest --yes
|
|
48
60
|
agents use claude@2.1.79 --yes
|
|
49
|
-
agents commands add --names review-pr,debug --agents codex
|
|
50
|
-
agents skills add --names agents-cli --agents claude
|
|
61
|
+
agents commands add --names review-pr,debug --agents codex@0.113.0
|
|
62
|
+
agents skills add --names agents-cli --agents claude@default
|
|
63
|
+
agents install ./team-agent-pack --agents codex@0.113.0
|
|
64
|
+
agents mcp add postgres --agents claude@2.1.79 -- npx -y @modelcontextprotocol/server-postgres
|
|
65
|
+
agents mcp register postgres
|
|
51
66
|
agents sessions view <session-id>
|
|
52
67
|
agents routines view <job-name>
|
|
53
68
|
```
|
|
@@ -57,12 +72,38 @@ Rules for automation:
|
|
|
57
72
|
- Pass explicit names or IDs instead of relying on pickers.
|
|
58
73
|
- Use `--yes` when a command would otherwise ask for default sync or confirmation choices.
|
|
59
74
|
- Use `--names` with `commands`, `skills`, `hooks`, `rules`, and `permissions` to install from central storage without a checkbox prompt.
|
|
75
|
+
- Use `agent@version` or `agent@default` with `--agents` when you need an exact managed version.
|
|
60
76
|
- Long `view` commands print directly in non-interactive shells instead of opening `less`.
|
|
61
77
|
|
|
62
78
|
If a command still needs a human-only picker, it now exits with a plain-text hint that shows the matching non-interactive form.
|
|
63
79
|
|
|
64
80
|
---
|
|
65
81
|
|
|
82
|
+
## Search sessions fast
|
|
83
|
+
|
|
84
|
+
Interactive terminals now get a live-search picker for sessions:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
agents sessions view
|
|
88
|
+
agents sessions --agent codex
|
|
89
|
+
agents sessions --project agents-cli
|
|
90
|
+
agents sessions view --agent gemini "session discovery"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
What you can type into the picker:
|
|
94
|
+
|
|
95
|
+
- Session ID or short ID
|
|
96
|
+
- Prompt text / topic text
|
|
97
|
+
- Project name
|
|
98
|
+
- Account email
|
|
99
|
+
- Agent name or version
|
|
100
|
+
|
|
101
|
+
The shared `Agent` column also shows the resolved agent version when it is known, so filtered lists read like `claude@2.1.110`, `codex@0.113.0`, `gemini@0.29.5`, and `opencode@1.2.6`.
|
|
102
|
+
|
|
103
|
+
Use `agents sessions view <id>` in non-interactive shells when you already know the session you want.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
66
107
|
## Pin agent versions per project
|
|
67
108
|
|
|
68
109
|
```bash
|
|
@@ -136,6 +177,22 @@ agents fork # Fork the default repo to your GitHub
|
|
|
136
177
|
agents pull --upstream # Merge updates from upstream
|
|
137
178
|
```
|
|
138
179
|
|
|
180
|
+
### Interactive PTY sessions
|
|
181
|
+
|
|
182
|
+
Give your agents the ability to interact with full-screen terminal programs -- REPLs, TUIs, interactive installers, anything that needs a real terminal.
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
SID=$(agents pty start) # Start a session
|
|
186
|
+
agents pty exec $SID "python3" # Launch Python REPL
|
|
187
|
+
agents pty screen $SID # See what's on screen
|
|
188
|
+
agents pty write $SID "print('hello')\n" # Type into it
|
|
189
|
+
agents pty screen $SID # See the result
|
|
190
|
+
agents pty write $SID "exit()\n" # Quit
|
|
191
|
+
agents pty stop $SID # Clean up
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
A sidecar server holds PTY sessions alive between CLI calls. `screen` renders the terminal as clean text (no ANSI codes) using xterm-headless -- so agents see exactly what a human would see. Sessions auto-clean after 30 minutes of idle.
|
|
195
|
+
|
|
139
196
|
### Schedule agents as routines
|
|
140
197
|
|
|
141
198
|
```bash
|
|
@@ -224,9 +281,23 @@ agents drive status # Show drive state
|
|
|
224
281
|
|
|
225
282
|
# Execution
|
|
226
283
|
agents exec <agent> <prompt> # Run agent
|
|
284
|
+
agents sessions view <id> # Read a session by exact ID
|
|
285
|
+
agents sessions --agent codex # Interactive filtered session search
|
|
286
|
+
agents sessions --project agents # Interactive project-scoped session search
|
|
227
287
|
agents routines add <name> # Schedule a job
|
|
228
288
|
agents routines list # Show all jobs
|
|
229
289
|
agents daemon start # Start scheduler
|
|
290
|
+
|
|
291
|
+
# PTY sessions
|
|
292
|
+
agents pty start # Start a PTY session (returns ID)
|
|
293
|
+
agents pty exec <id> <command> # Run a command in the session
|
|
294
|
+
agents pty screen <id> # Render terminal as clean text
|
|
295
|
+
agents pty write <id> <input> # Send keystrokes (\n \t \e \xHH)
|
|
296
|
+
agents pty read <id> # Read raw output
|
|
297
|
+
agents pty signal <id> INT # Send signal
|
|
298
|
+
agents pty list # Show active sessions
|
|
299
|
+
agents pty stop <id> # Kill a session
|
|
300
|
+
agents pty server status # Check sidecar server
|
|
230
301
|
```
|
|
231
302
|
|
|
232
303
|
---
|
|
@@ -2,6 +2,7 @@ import { describe, it, expect } from 'vitest';
|
|
|
2
2
|
import * as fs from 'fs';
|
|
3
3
|
import * as os from 'os';
|
|
4
4
|
import * as path from 'path';
|
|
5
|
+
import * as crypto from 'crypto';
|
|
5
6
|
import { spawnSync } from 'child_process';
|
|
6
7
|
const repoRoot = process.cwd();
|
|
7
8
|
const cliEntry = path.join(repoRoot, 'src', 'index.ts');
|
|
@@ -25,6 +26,117 @@ function writeClaudeSession(tempHome, projectKey, sessionId, cwd, content, times
|
|
|
25
26
|
message: { role: 'user', content },
|
|
26
27
|
}) + '\n', 'utf-8');
|
|
27
28
|
}
|
|
29
|
+
function writeCodexSession(tempHome, sessionId, cwd, prompt, timestamp) {
|
|
30
|
+
fs.mkdirSync(cwd, { recursive: true });
|
|
31
|
+
const sessionsDir = path.join(tempHome, '.codex', 'sessions', '2026', '04', '17');
|
|
32
|
+
fs.mkdirSync(sessionsDir, { recursive: true });
|
|
33
|
+
const filePath = path.join(sessionsDir, `rollout-${timestamp.replace(/[:.]/g, '-')}-${sessionId}.jsonl`);
|
|
34
|
+
const lines = [
|
|
35
|
+
JSON.stringify({
|
|
36
|
+
timestamp,
|
|
37
|
+
type: 'session_meta',
|
|
38
|
+
payload: {
|
|
39
|
+
id: sessionId,
|
|
40
|
+
timestamp,
|
|
41
|
+
cwd,
|
|
42
|
+
originator: 'codex_cli_rs',
|
|
43
|
+
cli_version: '0.113.0',
|
|
44
|
+
source: 'cli',
|
|
45
|
+
},
|
|
46
|
+
}),
|
|
47
|
+
JSON.stringify({
|
|
48
|
+
timestamp,
|
|
49
|
+
type: 'response_item',
|
|
50
|
+
payload: {
|
|
51
|
+
type: 'message',
|
|
52
|
+
role: 'developer',
|
|
53
|
+
content: [{ type: 'input_text', text: '<permissions instructions>\nFilesystem sandboxing.\n</permissions instructions>' }],
|
|
54
|
+
},
|
|
55
|
+
}),
|
|
56
|
+
JSON.stringify({
|
|
57
|
+
timestamp,
|
|
58
|
+
type: 'response_item',
|
|
59
|
+
payload: {
|
|
60
|
+
type: 'message',
|
|
61
|
+
role: 'user',
|
|
62
|
+
content: [{ type: 'input_text', text: '<environment_context>\n <cwd>/tmp/project</cwd>\n <shell>zsh</shell>\n</environment_context>' }],
|
|
63
|
+
},
|
|
64
|
+
}),
|
|
65
|
+
JSON.stringify({
|
|
66
|
+
timestamp,
|
|
67
|
+
type: 'response_item',
|
|
68
|
+
payload: {
|
|
69
|
+
type: 'message',
|
|
70
|
+
role: 'user',
|
|
71
|
+
content: [{ type: 'input_text', text: '<collaboration_mode># Collaboration Mode: Default\n</collaboration_mode>' }],
|
|
72
|
+
},
|
|
73
|
+
}),
|
|
74
|
+
JSON.stringify({
|
|
75
|
+
timestamp,
|
|
76
|
+
type: 'response_item',
|
|
77
|
+
payload: {
|
|
78
|
+
type: 'message',
|
|
79
|
+
role: 'user',
|
|
80
|
+
content: [{ type: 'input_text', text: '# AGENTS.md instructions for /tmp/project\n\n<INSTRUCTIONS>\nDo work.\n</INSTRUCTIONS>' }],
|
|
81
|
+
},
|
|
82
|
+
}),
|
|
83
|
+
JSON.stringify({
|
|
84
|
+
timestamp,
|
|
85
|
+
type: 'response_item',
|
|
86
|
+
payload: {
|
|
87
|
+
type: 'message',
|
|
88
|
+
role: 'user',
|
|
89
|
+
content: [{ type: 'input_text', text: prompt }],
|
|
90
|
+
},
|
|
91
|
+
}),
|
|
92
|
+
JSON.stringify({
|
|
93
|
+
timestamp,
|
|
94
|
+
type: 'response_item',
|
|
95
|
+
payload: {
|
|
96
|
+
type: 'message',
|
|
97
|
+
role: 'assistant',
|
|
98
|
+
content: [{ type: 'output_text', text: 'Looking into it now.' }],
|
|
99
|
+
},
|
|
100
|
+
}),
|
|
101
|
+
];
|
|
102
|
+
fs.writeFileSync(filePath, lines.join('\n') + '\n', 'utf-8');
|
|
103
|
+
}
|
|
104
|
+
function writeGeminiSession(tempHome, sessionId, cwd, prompt, timestamp, version = '0.29.5') {
|
|
105
|
+
const versionHome = path.join(tempHome, '.agents', 'versions', 'gemini', version, 'home');
|
|
106
|
+
const geminiHome = path.join(versionHome, '.gemini');
|
|
107
|
+
const projectHash = crypto.createHash('sha256').update(cwd).digest('hex');
|
|
108
|
+
const chatsDir = path.join(geminiHome, 'tmp', projectHash, 'chats');
|
|
109
|
+
fs.mkdirSync(cwd, { recursive: true });
|
|
110
|
+
fs.mkdirSync(chatsDir, { recursive: true });
|
|
111
|
+
fs.mkdirSync(path.dirname(path.join(tempHome, '.gemini')), { recursive: true });
|
|
112
|
+
const activeGeminiHome = path.join(tempHome, '.gemini');
|
|
113
|
+
if (!fs.existsSync(activeGeminiHome)) {
|
|
114
|
+
fs.symlinkSync(geminiHome, activeGeminiHome);
|
|
115
|
+
}
|
|
116
|
+
fs.writeFileSync(path.join(geminiHome, 'projects.json'), JSON.stringify({ projects: [cwd] }), 'utf-8');
|
|
117
|
+
fs.writeFileSync(path.join(chatsDir, `session-${timestamp.replace(/[:.]/g, '-')}-${sessionId.slice(0, 8)}.json`), JSON.stringify({
|
|
118
|
+
sessionId,
|
|
119
|
+
projectHash,
|
|
120
|
+
startTime: timestamp,
|
|
121
|
+
lastUpdated: timestamp,
|
|
122
|
+
messages: [
|
|
123
|
+
{
|
|
124
|
+
id: `${sessionId}-user`,
|
|
125
|
+
timestamp,
|
|
126
|
+
type: 'user',
|
|
127
|
+
content: [{ text: prompt }],
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
id: `${sessionId}-assistant`,
|
|
131
|
+
timestamp,
|
|
132
|
+
type: 'gemini',
|
|
133
|
+
content: 'Investigating now.',
|
|
134
|
+
model: 'gemini-3-flash-preview',
|
|
135
|
+
tokens: { total: 1234 },
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
}, null, 2), 'utf-8');
|
|
139
|
+
}
|
|
28
140
|
function runAgents(args, cwd, home) {
|
|
29
141
|
return spawnSync(tsxBin, [cliEntry, ...args], {
|
|
30
142
|
cwd,
|
|
@@ -61,6 +173,173 @@ describe('agents sessions', () => {
|
|
|
61
173
|
fs.rmSync(tempHome, { recursive: true, force: true });
|
|
62
174
|
}
|
|
63
175
|
});
|
|
176
|
+
it('shows message and token counts while skipping Claude local-command preambles in the topic', () => {
|
|
177
|
+
const tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-sessions-stats-'));
|
|
178
|
+
try {
|
|
179
|
+
writeUpdateCache(tempHome);
|
|
180
|
+
const repoDir = path.join(tempHome, 'work', 'agents-cli');
|
|
181
|
+
const projectKey = 'agents-cli-test';
|
|
182
|
+
const sessionId = '77777777-7777-4777-8777-777777777777';
|
|
183
|
+
fs.mkdirSync(repoDir, { recursive: true });
|
|
184
|
+
fs.mkdirSync(path.join(tempHome, '.claude', 'projects', projectKey), { recursive: true });
|
|
185
|
+
fs.writeFileSync(path.join(tempHome, '.claude', 'projects', projectKey, `${sessionId}.jsonl`), [
|
|
186
|
+
JSON.stringify({
|
|
187
|
+
type: 'user',
|
|
188
|
+
timestamp: '2026-04-17T19:00:00.000Z',
|
|
189
|
+
cwd: repoDir,
|
|
190
|
+
sessionId,
|
|
191
|
+
version: '2.1.110',
|
|
192
|
+
gitBranch: 'main',
|
|
193
|
+
isMeta: true,
|
|
194
|
+
message: {
|
|
195
|
+
role: 'user',
|
|
196
|
+
content: '<local-command-caveat>Caveat: The messages below were generated by the user while running local commands.</local-command-caveat>',
|
|
197
|
+
},
|
|
198
|
+
}),
|
|
199
|
+
JSON.stringify({
|
|
200
|
+
type: 'user',
|
|
201
|
+
timestamp: '2026-04-17T19:00:01.000Z',
|
|
202
|
+
cwd: repoDir,
|
|
203
|
+
sessionId,
|
|
204
|
+
version: '2.1.110',
|
|
205
|
+
gitBranch: 'main',
|
|
206
|
+
message: { role: 'user', content: '<bash-input>pwd</bash-input>' },
|
|
207
|
+
}),
|
|
208
|
+
JSON.stringify({
|
|
209
|
+
type: 'user',
|
|
210
|
+
timestamp: '2026-04-17T19:00:02.000Z',
|
|
211
|
+
cwd: repoDir,
|
|
212
|
+
sessionId,
|
|
213
|
+
version: '2.1.110',
|
|
214
|
+
gitBranch: 'main',
|
|
215
|
+
message: { role: 'user', content: 'Inspect session stats' },
|
|
216
|
+
}),
|
|
217
|
+
JSON.stringify({
|
|
218
|
+
type: 'assistant',
|
|
219
|
+
timestamp: '2026-04-17T19:00:03.000Z',
|
|
220
|
+
cwd: repoDir,
|
|
221
|
+
sessionId,
|
|
222
|
+
version: '2.1.110',
|
|
223
|
+
gitBranch: 'main',
|
|
224
|
+
message: {
|
|
225
|
+
id: 'msg-stats',
|
|
226
|
+
role: 'assistant',
|
|
227
|
+
content: [{ type: 'text', text: 'Looking now.' }],
|
|
228
|
+
usage: {
|
|
229
|
+
input_tokens: 10,
|
|
230
|
+
output_tokens: 5,
|
|
231
|
+
cache_read_input_tokens: 20,
|
|
232
|
+
cache_creation_input_tokens: 0,
|
|
233
|
+
},
|
|
234
|
+
},
|
|
235
|
+
}),
|
|
236
|
+
JSON.stringify({
|
|
237
|
+
type: 'assistant',
|
|
238
|
+
timestamp: '2026-04-17T19:00:04.000Z',
|
|
239
|
+
cwd: repoDir,
|
|
240
|
+
sessionId,
|
|
241
|
+
version: '2.1.110',
|
|
242
|
+
gitBranch: 'main',
|
|
243
|
+
message: {
|
|
244
|
+
id: 'msg-stats',
|
|
245
|
+
role: 'assistant',
|
|
246
|
+
content: [{ type: 'tool_use', id: 'tool-1', name: 'Read', input: { file_path: '/tmp/example' } }],
|
|
247
|
+
usage: {
|
|
248
|
+
input_tokens: 10,
|
|
249
|
+
output_tokens: 5,
|
|
250
|
+
cache_read_input_tokens: 20,
|
|
251
|
+
cache_creation_input_tokens: 0,
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
}),
|
|
255
|
+
].join('\n') + '\n', 'utf-8');
|
|
256
|
+
const result = runAgents(['sessions'], repoDir, tempHome);
|
|
257
|
+
expect(result.status).toBe(0);
|
|
258
|
+
const output = outputOf(result);
|
|
259
|
+
expect(output).toContain('Msgs');
|
|
260
|
+
expect(output).toContain('Tokens');
|
|
261
|
+
const row = output.split('\n').find(line => line.includes(sessionId.slice(0, 8))) || '';
|
|
262
|
+
expect(row).toContain('Inspect session stats');
|
|
263
|
+
expect(row).not.toContain('Caveat:');
|
|
264
|
+
expect(row).toMatch(/\b2\s+35\s+Inspect session stats\b/);
|
|
265
|
+
}
|
|
266
|
+
finally {
|
|
267
|
+
fs.rmSync(tempHome, { recursive: true, force: true });
|
|
268
|
+
}
|
|
269
|
+
});
|
|
270
|
+
it('finds matching projects outside the current directory when --project is provided', () => {
|
|
271
|
+
const tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-sessions-project-'));
|
|
272
|
+
try {
|
|
273
|
+
writeUpdateCache(tempHome);
|
|
274
|
+
const workspaceDir = path.join(tempHome, 'work');
|
|
275
|
+
const swarmifyDir = path.join(workspaceDir, 'swarmify');
|
|
276
|
+
const agentsCliDir = path.join(workspaceDir, 'agents-cli');
|
|
277
|
+
const swarmifySessionId = '55555555-5555-4555-8555-555555555555';
|
|
278
|
+
const agentsCliSessionId = '66666666-6666-4666-8666-666666666666';
|
|
279
|
+
fs.mkdirSync(workspaceDir, { recursive: true });
|
|
280
|
+
writeClaudeSession(tempHome, 'swarmify-test', swarmifySessionId, swarmifyDir, 'Inspect the swarmify session list', '2026-04-17T19:35:30.000Z');
|
|
281
|
+
writeClaudeSession(tempHome, 'agents-cli-test', agentsCliSessionId, agentsCliDir, 'Inspect the agents-cli session list', '2026-04-17T19:36:30.000Z');
|
|
282
|
+
const result = runAgents(['sessions', '--project', 'agents-cli'], workspaceDir, tempHome);
|
|
283
|
+
expect(result.status).toBe(0);
|
|
284
|
+
const output = outputOf(result);
|
|
285
|
+
expect(output).toContain(agentsCliSessionId.slice(0, 8));
|
|
286
|
+
expect(output).not.toContain(swarmifySessionId.slice(0, 8));
|
|
287
|
+
expect(output).not.toContain(`No sessions found for ${workspaceDir}`);
|
|
288
|
+
}
|
|
289
|
+
finally {
|
|
290
|
+
fs.rmSync(tempHome, { recursive: true, force: true });
|
|
291
|
+
}
|
|
292
|
+
});
|
|
293
|
+
it('shows the first human Codex prompt instead of injected session scaffolding', () => {
|
|
294
|
+
const tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-sessions-codex-topic-'));
|
|
295
|
+
try {
|
|
296
|
+
writeUpdateCache(tempHome);
|
|
297
|
+
const projectDir = path.join(tempHome, 'work', 'agents-cli');
|
|
298
|
+
const sessionId = '99999999-9999-4999-8999-999999999999';
|
|
299
|
+
const prompt = 'Search across sessions by prompt text';
|
|
300
|
+
writeCodexSession(tempHome, sessionId, projectDir, prompt, '2026-04-17T19:40:30.000Z');
|
|
301
|
+
const result = runAgents(['sessions', '--all'], projectDir, tempHome);
|
|
302
|
+
expect(result.status).toBe(0);
|
|
303
|
+
const output = outputOf(result);
|
|
304
|
+
expect(output).toContain(sessionId.slice(0, 8));
|
|
305
|
+
expect(output).toContain(prompt);
|
|
306
|
+
expect(output).not.toContain('Collaboration Mode: Default');
|
|
307
|
+
expect(output).not.toContain('# AGENTS.md instructions');
|
|
308
|
+
}
|
|
309
|
+
finally {
|
|
310
|
+
fs.rmSync(tempHome, { recursive: true, force: true });
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
it('shows Codex CLI versions in the agent column', () => {
|
|
314
|
+
const tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-sessions-codex-version-'));
|
|
315
|
+
try {
|
|
316
|
+
writeUpdateCache(tempHome);
|
|
317
|
+
const projectDir = path.join(tempHome, 'work', 'agents-cli');
|
|
318
|
+
writeCodexSession(tempHome, 'abababab-abab-4bab-8bab-abababababab', projectDir, 'Show codex versions in the session list', '2026-04-17T19:42:30.000Z');
|
|
319
|
+
const result = runAgents(['sessions', '--agent', 'codex', '--all'], projectDir, tempHome);
|
|
320
|
+
expect(result.status).toBe(0);
|
|
321
|
+
const output = outputOf(result);
|
|
322
|
+
expect(output).toContain('codex@0.113.0');
|
|
323
|
+
}
|
|
324
|
+
finally {
|
|
325
|
+
fs.rmSync(tempHome, { recursive: true, force: true });
|
|
326
|
+
}
|
|
327
|
+
});
|
|
328
|
+
it('shows Gemini CLI versions in the agent column when sessions come from a managed version home', () => {
|
|
329
|
+
const tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-sessions-gemini-version-'));
|
|
330
|
+
try {
|
|
331
|
+
writeUpdateCache(tempHome);
|
|
332
|
+
const projectDir = path.join(tempHome, 'work', 'agents-cli');
|
|
333
|
+
writeGeminiSession(tempHome, 'f0f0f0f0-f0f0-4f0f-8f0f-f0f0f0f0f0f0', projectDir, 'Show gemini versions in the session list', '2026-04-17T19:43:30.000Z');
|
|
334
|
+
const result = runAgents(['sessions', '--agent', 'gemini', '--all'], projectDir, tempHome);
|
|
335
|
+
expect(result.status).toBe(0);
|
|
336
|
+
const output = outputOf(result);
|
|
337
|
+
expect(output).toContain('gemini@0.29.5');
|
|
338
|
+
}
|
|
339
|
+
finally {
|
|
340
|
+
fs.rmSync(tempHome, { recursive: true, force: true });
|
|
341
|
+
}
|
|
342
|
+
});
|
|
64
343
|
});
|
|
65
344
|
describe('agents sessions view', () => {
|
|
66
345
|
it('resolves explicit IDs across directories even when the default listing is scoped to cwd', () => {
|
|
@@ -166,5 +445,59 @@ describe('agents sessions view', () => {
|
|
|
166
445
|
fs.rmSync(tempHome, { recursive: true, force: true });
|
|
167
446
|
}
|
|
168
447
|
});
|
|
448
|
+
it('resolves text queries against session topics, not only IDs', () => {
|
|
449
|
+
const tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-sessions-view-query-'));
|
|
450
|
+
try {
|
|
451
|
+
writeUpdateCache(tempHome);
|
|
452
|
+
const projectDir = path.join(tempHome, 'work', 'agents-cli');
|
|
453
|
+
const sessionId = 'aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa';
|
|
454
|
+
const prompt = 'Search across sessions by prompt text';
|
|
455
|
+
writeCodexSession(tempHome, sessionId, projectDir, prompt, '2026-04-17T19:41:30.000Z');
|
|
456
|
+
const result = runAgents(['sessions', 'view', 'prompt text', '--transcript'], projectDir, tempHome);
|
|
457
|
+
expect(result.status).toBe(0);
|
|
458
|
+
const output = outputOf(result);
|
|
459
|
+
expect(output).toContain(prompt);
|
|
460
|
+
expect(output).not.toContain('No session found matching: prompt text');
|
|
461
|
+
}
|
|
462
|
+
finally {
|
|
463
|
+
fs.rmSync(tempHome, { recursive: true, force: true });
|
|
464
|
+
}
|
|
465
|
+
});
|
|
466
|
+
it('applies --project filters before resolving search queries', () => {
|
|
467
|
+
const tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-sessions-view-project-filter-'));
|
|
468
|
+
try {
|
|
469
|
+
writeUpdateCache(tempHome);
|
|
470
|
+
const workspaceDir = path.join(tempHome, 'work');
|
|
471
|
+
const agentsDir = path.join(workspaceDir, 'agents');
|
|
472
|
+
const agentsCliDir = path.join(workspaceDir, 'agents-cli');
|
|
473
|
+
writeCodexSession(tempHome, 'bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb', agentsDir, 'Filter scoped search target', '2026-04-17T19:42:30.000Z');
|
|
474
|
+
writeCodexSession(tempHome, 'cccccccc-cccc-4ccc-8ccc-cccccccccccc', agentsCliDir, 'Filter scoped search decoy', '2026-04-17T19:43:30.000Z');
|
|
475
|
+
const result = runAgents(['sessions', 'view', '--project', 'agents-cli', 'scoped search', '--transcript'], workspaceDir, tempHome);
|
|
476
|
+
expect(result.status).toBe(0);
|
|
477
|
+
const output = outputOf(result);
|
|
478
|
+
expect(output).toContain('Filter scoped search decoy');
|
|
479
|
+
expect(output).not.toContain('Filter scoped search target');
|
|
480
|
+
}
|
|
481
|
+
finally {
|
|
482
|
+
fs.rmSync(tempHome, { recursive: true, force: true });
|
|
483
|
+
}
|
|
484
|
+
});
|
|
485
|
+
it('applies --agent filters before resolving search queries', () => {
|
|
486
|
+
const tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-sessions-view-agent-filter-'));
|
|
487
|
+
try {
|
|
488
|
+
writeUpdateCache(tempHome);
|
|
489
|
+
const projectDir = path.join(tempHome, 'work', 'agents-cli');
|
|
490
|
+
writeClaudeSession(tempHome, 'agents-cli-claude', 'dddddddd-dddd-4ddd-8ddd-dddddddddddd', projectDir, 'Shared filter phrase from claude', '2026-04-17T19:44:30.000Z');
|
|
491
|
+
writeCodexSession(tempHome, 'eeeeeeee-eeee-4eee-8eee-eeeeeeeeeeee', projectDir, 'Shared filter phrase from codex', '2026-04-17T19:45:30.000Z');
|
|
492
|
+
const result = runAgents(['sessions', 'view', '--agent', 'codex', 'shared filter phrase', '--transcript'], projectDir, tempHome);
|
|
493
|
+
expect(result.status).toBe(0);
|
|
494
|
+
const output = outputOf(result);
|
|
495
|
+
expect(output).toContain('Shared filter phrase from codex');
|
|
496
|
+
expect(output).not.toContain('Shared filter phrase from claude');
|
|
497
|
+
}
|
|
498
|
+
finally {
|
|
499
|
+
fs.rmSync(tempHome, { recursive: true, force: true });
|
|
500
|
+
}
|
|
501
|
+
});
|
|
169
502
|
});
|
|
170
503
|
//# sourceMappingURL=sessions.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/sessions.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sessions.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/sessions.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/commands/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/commands/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6CzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8d/D"}
|
|
@@ -7,7 +7,7 @@ import { checkbox } from '@inquirer/prompts';
|
|
|
7
7
|
import { AGENTS, ALL_AGENT_IDS, resolveAgentName, formatAgentError, agentLabel, } from '../lib/agents.js';
|
|
8
8
|
import { cloneRepo } from '../lib/git.js';
|
|
9
9
|
import { discoverCommands, resolveCommandSource, installCommandCentrally, uninstallCommand, listCentralCommands, listInstalledCommandsWithScope, getCommandInfo, } from '../lib/commands.js';
|
|
10
|
-
import { listInstalledVersions, getGlobalDefault, syncResourcesToVersion, promptAgentVersionSelection, getVersionHomePath, } from '../lib/versions.js';
|
|
10
|
+
import { listInstalledVersions, getGlobalDefault, syncResourcesToVersion, promptAgentVersionSelection, getVersionHomePath, resolveAgentVersionTargets, } from '../lib/versions.js';
|
|
11
11
|
import { recordVersionResources } from '../lib/state.js';
|
|
12
12
|
import { isPromptCancelled, formatPath, isInteractiveTerminal, parseCommaSeparatedList, printWithPager, requireInteractiveSelection, } from './utils.js';
|
|
13
13
|
export function registerCommandsCommands(program) {
|
|
@@ -156,7 +156,7 @@ export function registerCommandsCommands(program) {
|
|
|
156
156
|
commandsCmd
|
|
157
157
|
.command('add [source]')
|
|
158
158
|
.description('Install commands from a repo or local path')
|
|
159
|
-
.option('-a, --agents <list>', 'Comma-separated
|
|
159
|
+
.option('-a, --agents <list>', 'Comma-separated agent or agent@version targets to install to')
|
|
160
160
|
.option('--names <list>', 'Comma-separated command names from ~/.agents/commands/')
|
|
161
161
|
.option('-y, --yes', 'Skip prompts and use defaults')
|
|
162
162
|
.action(async (source, options) => {
|
|
@@ -278,15 +278,9 @@ export function registerCommandsCommands(program) {
|
|
|
278
278
|
let selectedAgents;
|
|
279
279
|
let versionSelections;
|
|
280
280
|
if (options.agents) {
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
const versions = listInstalledVersions(agentId);
|
|
285
|
-
if (versions.length > 0) {
|
|
286
|
-
const defaultVer = getGlobalDefault(agentId);
|
|
287
|
-
versionSelections.set(agentId, defaultVer ? [defaultVer] : [versions[versions.length - 1]]);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
281
|
+
const result = resolveAgentVersionTargets(options.agents, ALL_AGENT_IDS);
|
|
282
|
+
selectedAgents = result.selectedAgents;
|
|
283
|
+
versionSelections = result.versionSelections;
|
|
290
284
|
}
|
|
291
285
|
else {
|
|
292
286
|
const result = await promptAgentVersionSelection(ALL_AGENT_IDS, {
|