@swarmify/agents-cli 1.10.3 → 1.11.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 (156) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +71 -0
  3. package/dist/commands/__tests__/sessions.test.d.ts +2 -0
  4. package/dist/commands/__tests__/sessions.test.d.ts.map +1 -0
  5. package/dist/commands/__tests__/sessions.test.js +436 -0
  6. package/dist/commands/__tests__/sessions.test.js.map +1 -0
  7. package/dist/commands/commands.d.ts.map +1 -1
  8. package/dist/commands/commands.js +79 -67
  9. package/dist/commands/commands.js.map +1 -1
  10. package/dist/commands/daemon.js +1 -1
  11. package/dist/commands/daemon.js.map +1 -1
  12. package/dist/commands/exec.d.ts.map +1 -1
  13. package/dist/commands/exec.js +11 -1
  14. package/dist/commands/exec.js.map +1 -1
  15. package/dist/commands/hooks.d.ts.map +1 -1
  16. package/dist/commands/hooks.js +72 -60
  17. package/dist/commands/hooks.js.map +1 -1
  18. package/dist/commands/mcp.d.ts.map +1 -1
  19. package/dist/commands/mcp.js +134 -57
  20. package/dist/commands/mcp.js.map +1 -1
  21. package/dist/commands/packages.d.ts.map +1 -1
  22. package/dist/commands/packages.js +92 -42
  23. package/dist/commands/packages.js.map +1 -1
  24. package/dist/commands/permissions.d.ts.map +1 -1
  25. package/dist/commands/permissions.js +108 -81
  26. package/dist/commands/permissions.js.map +1 -1
  27. package/dist/commands/plugins.js +8 -8
  28. package/dist/commands/plugins.js.map +1 -1
  29. package/dist/commands/pty.d.ts +20 -0
  30. package/dist/commands/pty.d.ts.map +1 -0
  31. package/dist/commands/pty.js +280 -0
  32. package/dist/commands/pty.js.map +1 -0
  33. package/dist/commands/pull.d.ts.map +1 -1
  34. package/dist/commands/pull.js +27 -27
  35. package/dist/commands/pull.js.map +1 -1
  36. package/dist/commands/push.d.ts.map +1 -1
  37. package/dist/commands/push.js +4 -2
  38. package/dist/commands/push.js.map +1 -1
  39. package/dist/commands/routines.d.ts.map +1 -1
  40. package/dist/commands/routines.js +14 -10
  41. package/dist/commands/routines.js.map +1 -1
  42. package/dist/commands/rules.d.ts.map +1 -1
  43. package/dist/commands/rules.js +70 -61
  44. package/dist/commands/rules.js.map +1 -1
  45. package/dist/commands/sessions.d.ts.map +1 -1
  46. package/dist/commands/sessions.js +369 -44
  47. package/dist/commands/sessions.js.map +1 -1
  48. package/dist/commands/sessions.test.d.ts +2 -0
  49. package/dist/commands/sessions.test.d.ts.map +1 -0
  50. package/dist/commands/sessions.test.js +53 -0
  51. package/dist/commands/sessions.test.js.map +1 -0
  52. package/dist/commands/skills.d.ts.map +1 -1
  53. package/dist/commands/skills.js +75 -57
  54. package/dist/commands/skills.js.map +1 -1
  55. package/dist/commands/subagents.d.ts.map +1 -1
  56. package/dist/commands/subagents.js +10 -4
  57. package/dist/commands/subagents.js.map +1 -1
  58. package/dist/commands/utils.d.ts +16 -0
  59. package/dist/commands/utils.d.ts.map +1 -1
  60. package/dist/commands/utils.js +48 -0
  61. package/dist/commands/utils.js.map +1 -1
  62. package/dist/commands/versions.d.ts.map +1 -1
  63. package/dist/commands/versions.js +148 -43
  64. package/dist/commands/versions.js.map +1 -1
  65. package/dist/commands/view.d.ts.map +1 -1
  66. package/dist/commands/view.js +109 -45
  67. package/dist/commands/view.js.map +1 -1
  68. package/dist/index.js +66 -42
  69. package/dist/index.js.map +1 -1
  70. package/dist/lib/__tests__/exec.test.js +34 -1
  71. package/dist/lib/__tests__/exec.test.js.map +1 -1
  72. package/dist/lib/agents.d.ts +23 -0
  73. package/dist/lib/agents.d.ts.map +1 -1
  74. package/dist/lib/agents.js +212 -16
  75. package/dist/lib/agents.js.map +1 -1
  76. package/dist/lib/daemon.d.ts.map +1 -1
  77. package/dist/lib/daemon.js +15 -7
  78. package/dist/lib/daemon.js.map +1 -1
  79. package/dist/lib/exec.d.ts +3 -0
  80. package/dist/lib/exec.d.ts.map +1 -1
  81. package/dist/lib/exec.js +26 -0
  82. package/dist/lib/exec.js.map +1 -1
  83. package/dist/lib/git.d.ts.map +1 -1
  84. package/dist/lib/git.js +11 -1
  85. package/dist/lib/git.js.map +1 -1
  86. package/dist/lib/pty-client.d.ts +22 -0
  87. package/dist/lib/pty-client.d.ts.map +1 -0
  88. package/dist/lib/pty-client.js +181 -0
  89. package/dist/lib/pty-client.js.map +1 -0
  90. package/dist/lib/pty-server.d.ts +16 -0
  91. package/dist/lib/pty-server.d.ts.map +1 -0
  92. package/dist/lib/pty-server.js +422 -0
  93. package/dist/lib/pty-server.js.map +1 -0
  94. package/dist/lib/registry.d.ts.map +1 -1
  95. package/dist/lib/registry.js +8 -0
  96. package/dist/lib/registry.js.map +1 -1
  97. package/dist/lib/resources.d.ts +2 -0
  98. package/dist/lib/resources.d.ts.map +1 -1
  99. package/dist/lib/resources.js +7 -7
  100. package/dist/lib/resources.js.map +1 -1
  101. package/dist/lib/runner.d.ts.map +1 -1
  102. package/dist/lib/runner.js +13 -9
  103. package/dist/lib/runner.js.map +1 -1
  104. package/dist/lib/sandbox.js +1 -1
  105. package/dist/lib/sandbox.js.map +1 -1
  106. package/dist/lib/session/discover.d.ts +18 -0
  107. package/dist/lib/session/discover.d.ts.map +1 -1
  108. package/dist/lib/session/discover.js +405 -167
  109. package/dist/lib/session/discover.js.map +1 -1
  110. package/dist/lib/session/parse.d.ts.map +1 -1
  111. package/dist/lib/session/parse.js +8 -3
  112. package/dist/lib/session/parse.js.map +1 -1
  113. package/dist/lib/session/prompt.d.ts +3 -0
  114. package/dist/lib/session/prompt.d.ts.map +1 -0
  115. package/dist/lib/session/prompt.js +40 -0
  116. package/dist/lib/session/prompt.js.map +1 -0
  117. package/dist/lib/session/render.d.ts.map +1 -1
  118. package/dist/lib/session/render.js +6 -37
  119. package/dist/lib/session/render.js.map +1 -1
  120. package/dist/lib/session/types.d.ts +1 -0
  121. package/dist/lib/session/types.d.ts.map +1 -1
  122. package/dist/lib/shims.d.ts.map +1 -1
  123. package/dist/lib/shims.js +6 -1
  124. package/dist/lib/shims.js.map +1 -1
  125. package/dist/lib/state.d.ts +0 -1
  126. package/dist/lib/state.d.ts.map +1 -1
  127. package/dist/lib/state.js +3 -9
  128. package/dist/lib/state.js.map +1 -1
  129. package/dist/lib/types.d.ts +3 -5
  130. package/dist/lib/types.d.ts.map +1 -1
  131. package/dist/lib/types.js.map +1 -1
  132. package/dist/lib/usage.d.ts +30 -0
  133. package/dist/lib/usage.d.ts.map +1 -0
  134. package/dist/lib/usage.js +428 -0
  135. package/dist/lib/usage.js.map +1 -0
  136. package/dist/lib/versions.d.ts +28 -0
  137. package/dist/lib/versions.d.ts.map +1 -1
  138. package/dist/lib/versions.js +200 -9
  139. package/dist/lib/versions.js.map +1 -1
  140. package/package.json +3 -1
  141. package/dist/commands/cron.d.ts +0 -3
  142. package/dist/commands/cron.d.ts.map +0 -1
  143. package/dist/commands/cron.js +0 -457
  144. package/dist/commands/cron.js.map +0 -1
  145. package/dist/lib/cron.d.ts +0 -70
  146. package/dist/lib/cron.d.ts.map +0 -1
  147. package/dist/lib/cron.js +0 -325
  148. package/dist/lib/cron.js.map +0 -1
  149. package/dist/lib/drive-server.d.ts +0 -9
  150. package/dist/lib/drive-server.d.ts.map +0 -1
  151. package/dist/lib/drive-server.js +0 -217
  152. package/dist/lib/drive-server.js.map +0 -1
  153. package/dist/lib/drives.d.ts +0 -34
  154. package/dist/lib/drives.d.ts.map +0 -1
  155. package/dist/lib/drives.js +0 -267
  156. package/dist/lib/drives.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.11.0
4
+
5
+ **PTY -- interactive terminal sessions for AI agents**
6
+
7
+ - New `agents pty` command suite for persistent, interactive PTY sessions
8
+ - Sidecar server architecture -- lightweight daemon on `~/.agents/pty.sock`, auto-starts on first use
9
+ - `agents pty start` -- spawn a session with configurable rows, cols, shell, and working directory
10
+ - `agents pty exec <id> <command>` -- submit commands (non-blocking, sentinel-based completion detection)
11
+ - `agents pty screen <id>` -- render the terminal as clean text (no ANSI codes), powered by xterm-headless
12
+ - `agents pty write <id> <input>` -- send keystrokes with escape sequence support (`\n`, `\t`, `\e`, `\xHH`)
13
+ - `agents pty read <id>` -- read raw PTY output with configurable timeout
14
+ - `agents pty signal <id> [INT|TERM|KILL]` -- send signals to the PTY process
15
+ - `agents pty list` -- show active sessions with status, PID, age, and active command
16
+ - `agents pty server start|stop|status` -- manage the sidecar server directly
17
+ - Session idle cleanup (30 min) and server auto-exit (1 hour with no sessions)
18
+ - `--json` output on all commands for scripting
19
+ - Auto-fixes node-pty spawn-helper permissions on startup (bun install workaround)
20
+
3
21
  ## 1.10.0
4
22
 
5
23
  **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
@@ -39,6 +51,34 @@ Supports plan (read-only) and edit modes, effort levels that map to the right mo
39
51
 
40
52
  ---
41
53
 
54
+ ## Non-interactive usage
55
+
56
+ Other coding agents usually run in non-TTY shells. `agents` now supports that mode directly:
57
+
58
+ ```bash
59
+ agents add codex@latest --yes
60
+ agents use claude@2.1.79 --yes
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
66
+ agents sessions view <session-id>
67
+ agents routines view <job-name>
68
+ ```
69
+
70
+ Rules for automation:
71
+
72
+ - Pass explicit names or IDs instead of relying on pickers.
73
+ - Use `--yes` when a command would otherwise ask for default sync or confirmation choices.
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.
76
+ - Long `view` commands print directly in non-interactive shells instead of opening `less`.
77
+
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.
79
+
80
+ ---
81
+
42
82
  ## Pin agent versions per project
43
83
 
44
84
  ```bash
@@ -112,6 +152,22 @@ agents fork # Fork the default repo to your GitHub
112
152
  agents pull --upstream # Merge updates from upstream
113
153
  ```
114
154
 
155
+ ### Interactive PTY sessions
156
+
157
+ Give your agents the ability to interact with full-screen terminal programs -- REPLs, TUIs, interactive installers, anything that needs a real terminal.
158
+
159
+ ```bash
160
+ SID=$(agents pty start) # Start a session
161
+ agents pty exec $SID "python3" # Launch Python REPL
162
+ agents pty screen $SID # See what's on screen
163
+ agents pty write $SID "print('hello')\n" # Type into it
164
+ agents pty screen $SID # See the result
165
+ agents pty write $SID "exit()\n" # Quit
166
+ agents pty stop $SID # Clean up
167
+ ```
168
+
169
+ 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.
170
+
115
171
  ### Schedule agents as routines
116
172
 
117
173
  ```bash
@@ -203,6 +259,17 @@ agents exec <agent> <prompt> # Run agent
203
259
  agents routines add <name> # Schedule a job
204
260
  agents routines list # Show all jobs
205
261
  agents daemon start # Start scheduler
262
+
263
+ # PTY sessions
264
+ agents pty start # Start a PTY session (returns ID)
265
+ agents pty exec <id> <command> # Run a command in the session
266
+ agents pty screen <id> # Render terminal as clean text
267
+ agents pty write <id> <input> # Send keystrokes (\n \t \e \xHH)
268
+ agents pty read <id> # Read raw output
269
+ agents pty signal <id> INT # Send signal
270
+ agents pty list # Show active sessions
271
+ agents pty stop <id> # Kill a session
272
+ agents pty server status # Check sidecar server
206
273
  ```
207
274
 
208
275
  ---
@@ -240,6 +307,10 @@ Add rule files in a `rules/` subdirectory -- each rule is a markdown file with s
240
307
  | OpenCode | yes | yes | yes | yes | AGENTS.md | yes | yes | -- |
241
308
  | OpenClaw | yes | yes | -- | yes | workspace/AGENTS.md | yes | -- | -- |
242
309
 
310
+ ## How It Compares
311
+
312
+ See [docs/04-landscape.md](docs/04-landscape.md) for a detailed comparison with other tools in the ecosystem -- Rivet, Agentloom, mise, skills.sh, cass, Microsoft APM, and more.
313
+
243
314
  ## License
244
315
 
245
316
  MIT
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sessions.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.test.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/sessions.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,436 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import * as fs from 'fs';
3
+ import * as os from 'os';
4
+ import * as path from 'path';
5
+ import { spawnSync } from 'child_process';
6
+ const repoRoot = process.cwd();
7
+ const cliEntry = path.join(repoRoot, 'src', 'index.ts');
8
+ const tsxBin = path.join(repoRoot, 'node_modules', '.bin', 'tsx');
9
+ function writeUpdateCache(tempHome) {
10
+ const packageJson = JSON.parse(fs.readFileSync(path.join(repoRoot, 'package.json'), 'utf-8'));
11
+ fs.mkdirSync(path.join(tempHome, '.agents'), { recursive: true });
12
+ fs.writeFileSync(path.join(tempHome, '.agents', '.update-check'), JSON.stringify({ lastCheck: Date.now(), latestVersion: packageJson.version }), 'utf-8');
13
+ }
14
+ function writeClaudeSession(tempHome, projectKey, sessionId, cwd, content, timestamp) {
15
+ fs.mkdirSync(cwd, { recursive: true });
16
+ const sessionsDir = path.join(tempHome, '.claude', 'projects', projectKey);
17
+ fs.mkdirSync(sessionsDir, { recursive: true });
18
+ fs.writeFileSync(path.join(sessionsDir, `${sessionId}.jsonl`), JSON.stringify({
19
+ type: 'user',
20
+ timestamp,
21
+ cwd,
22
+ sessionId,
23
+ version: '2.1.110',
24
+ gitBranch: 'main',
25
+ message: { role: 'user', content },
26
+ }) + '\n', 'utf-8');
27
+ }
28
+ function writeCodexSession(tempHome, sessionId, cwd, prompt, timestamp) {
29
+ fs.mkdirSync(cwd, { recursive: true });
30
+ const sessionsDir = path.join(tempHome, '.codex', 'sessions', '2026', '04', '17');
31
+ fs.mkdirSync(sessionsDir, { recursive: true });
32
+ const filePath = path.join(sessionsDir, `rollout-${timestamp.replace(/[:.]/g, '-')}-${sessionId}.jsonl`);
33
+ const lines = [
34
+ JSON.stringify({
35
+ timestamp,
36
+ type: 'session_meta',
37
+ payload: {
38
+ id: sessionId,
39
+ timestamp,
40
+ cwd,
41
+ originator: 'codex_cli_rs',
42
+ cli_version: '0.113.0',
43
+ source: 'cli',
44
+ },
45
+ }),
46
+ JSON.stringify({
47
+ timestamp,
48
+ type: 'response_item',
49
+ payload: {
50
+ type: 'message',
51
+ role: 'developer',
52
+ content: [{ type: 'input_text', text: '<permissions instructions>\nFilesystem sandboxing.\n</permissions instructions>' }],
53
+ },
54
+ }),
55
+ JSON.stringify({
56
+ timestamp,
57
+ type: 'response_item',
58
+ payload: {
59
+ type: 'message',
60
+ role: 'user',
61
+ content: [{ type: 'input_text', text: '<environment_context>\n <cwd>/tmp/project</cwd>\n <shell>zsh</shell>\n</environment_context>' }],
62
+ },
63
+ }),
64
+ JSON.stringify({
65
+ timestamp,
66
+ type: 'response_item',
67
+ payload: {
68
+ type: 'message',
69
+ role: 'user',
70
+ content: [{ type: 'input_text', text: '<collaboration_mode># Collaboration Mode: Default\n</collaboration_mode>' }],
71
+ },
72
+ }),
73
+ JSON.stringify({
74
+ timestamp,
75
+ type: 'response_item',
76
+ payload: {
77
+ type: 'message',
78
+ role: 'user',
79
+ content: [{ type: 'input_text', text: '# AGENTS.md instructions for /tmp/project\n\n<INSTRUCTIONS>\nDo work.\n</INSTRUCTIONS>' }],
80
+ },
81
+ }),
82
+ JSON.stringify({
83
+ timestamp,
84
+ type: 'response_item',
85
+ payload: {
86
+ type: 'message',
87
+ role: 'user',
88
+ content: [{ type: 'input_text', text: prompt }],
89
+ },
90
+ }),
91
+ JSON.stringify({
92
+ timestamp,
93
+ type: 'response_item',
94
+ payload: {
95
+ type: 'message',
96
+ role: 'assistant',
97
+ content: [{ type: 'output_text', text: 'Looking into it now.' }],
98
+ },
99
+ }),
100
+ ];
101
+ fs.writeFileSync(filePath, lines.join('\n') + '\n', 'utf-8');
102
+ }
103
+ function runAgents(args, cwd, home) {
104
+ return spawnSync(tsxBin, [cliEntry, ...args], {
105
+ cwd,
106
+ env: { ...process.env, HOME: home },
107
+ encoding: 'utf-8',
108
+ });
109
+ }
110
+ function outputOf(result) {
111
+ return `${result.stdout}${result.stderr}`;
112
+ }
113
+ describe('agents sessions', () => {
114
+ it('lists only sessions from the current directory by default and shows all with --all', () => {
115
+ const tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-sessions-list-'));
116
+ try {
117
+ writeUpdateCache(tempHome);
118
+ const swarmifyDir = path.join(tempHome, 'work', 'swarmify');
119
+ const agentsCliDir = path.join(tempHome, 'work', 'agents-cli');
120
+ const swarmifySessionId = '11111111-1111-4111-8111-111111111111';
121
+ const agentsCliSessionId = '22222222-2222-4222-8222-222222222222';
122
+ writeClaudeSession(tempHome, 'swarmify-test', swarmifySessionId, swarmifyDir, 'Inspect the swarmify session list', '2026-04-17T19:35:30.000Z');
123
+ writeClaudeSession(tempHome, 'agents-cli-test', agentsCliSessionId, agentsCliDir, 'Inspect the agents-cli session list', '2026-04-17T19:36:30.000Z');
124
+ const localResult = runAgents(['sessions'], swarmifyDir, tempHome);
125
+ expect(localResult.status).toBe(0);
126
+ const localOutput = outputOf(localResult);
127
+ expect(localOutput).toContain(swarmifySessionId.slice(0, 8));
128
+ expect(localOutput).not.toContain(agentsCliSessionId.slice(0, 8));
129
+ const allResult = runAgents(['sessions', '--all'], swarmifyDir, tempHome);
130
+ expect(allResult.status).toBe(0);
131
+ const allOutput = outputOf(allResult);
132
+ expect(allOutput).toContain(swarmifySessionId.slice(0, 8));
133
+ expect(allOutput).toContain(agentsCliSessionId.slice(0, 8));
134
+ }
135
+ finally {
136
+ fs.rmSync(tempHome, { recursive: true, force: true });
137
+ }
138
+ });
139
+ it('shows message and token counts while skipping Claude local-command preambles in the topic', () => {
140
+ const tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-sessions-stats-'));
141
+ try {
142
+ writeUpdateCache(tempHome);
143
+ const repoDir = path.join(tempHome, 'work', 'agents-cli');
144
+ const projectKey = 'agents-cli-test';
145
+ const sessionId = '77777777-7777-4777-8777-777777777777';
146
+ fs.mkdirSync(repoDir, { recursive: true });
147
+ fs.mkdirSync(path.join(tempHome, '.claude', 'projects', projectKey), { recursive: true });
148
+ fs.writeFileSync(path.join(tempHome, '.claude', 'projects', projectKey, `${sessionId}.jsonl`), [
149
+ JSON.stringify({
150
+ type: 'user',
151
+ timestamp: '2026-04-17T19:00:00.000Z',
152
+ cwd: repoDir,
153
+ sessionId,
154
+ version: '2.1.110',
155
+ gitBranch: 'main',
156
+ isMeta: true,
157
+ message: {
158
+ role: 'user',
159
+ content: '<local-command-caveat>Caveat: The messages below were generated by the user while running local commands.</local-command-caveat>',
160
+ },
161
+ }),
162
+ JSON.stringify({
163
+ type: 'user',
164
+ timestamp: '2026-04-17T19:00:01.000Z',
165
+ cwd: repoDir,
166
+ sessionId,
167
+ version: '2.1.110',
168
+ gitBranch: 'main',
169
+ message: { role: 'user', content: '<bash-input>pwd</bash-input>' },
170
+ }),
171
+ JSON.stringify({
172
+ type: 'user',
173
+ timestamp: '2026-04-17T19:00:02.000Z',
174
+ cwd: repoDir,
175
+ sessionId,
176
+ version: '2.1.110',
177
+ gitBranch: 'main',
178
+ message: { role: 'user', content: 'Inspect session stats' },
179
+ }),
180
+ JSON.stringify({
181
+ type: 'assistant',
182
+ timestamp: '2026-04-17T19:00:03.000Z',
183
+ cwd: repoDir,
184
+ sessionId,
185
+ version: '2.1.110',
186
+ gitBranch: 'main',
187
+ message: {
188
+ id: 'msg-stats',
189
+ role: 'assistant',
190
+ content: [{ type: 'text', text: 'Looking now.' }],
191
+ usage: {
192
+ input_tokens: 10,
193
+ output_tokens: 5,
194
+ cache_read_input_tokens: 20,
195
+ cache_creation_input_tokens: 0,
196
+ },
197
+ },
198
+ }),
199
+ JSON.stringify({
200
+ type: 'assistant',
201
+ timestamp: '2026-04-17T19:00:04.000Z',
202
+ cwd: repoDir,
203
+ sessionId,
204
+ version: '2.1.110',
205
+ gitBranch: 'main',
206
+ message: {
207
+ id: 'msg-stats',
208
+ role: 'assistant',
209
+ content: [{ type: 'tool_use', id: 'tool-1', name: 'Read', input: { file_path: '/tmp/example' } }],
210
+ usage: {
211
+ input_tokens: 10,
212
+ output_tokens: 5,
213
+ cache_read_input_tokens: 20,
214
+ cache_creation_input_tokens: 0,
215
+ },
216
+ },
217
+ }),
218
+ ].join('\n') + '\n', 'utf-8');
219
+ const result = runAgents(['sessions'], repoDir, tempHome);
220
+ expect(result.status).toBe(0);
221
+ const output = outputOf(result);
222
+ expect(output).toContain('Msgs');
223
+ expect(output).toContain('Tokens');
224
+ const row = output.split('\n').find(line => line.includes(sessionId.slice(0, 8))) || '';
225
+ expect(row).toContain('Inspect session stats');
226
+ expect(row).not.toContain('Caveat:');
227
+ expect(row).toMatch(/\b2\s+35\s+Inspect session stats\b/);
228
+ }
229
+ finally {
230
+ fs.rmSync(tempHome, { recursive: true, force: true });
231
+ }
232
+ });
233
+ it('finds matching projects outside the current directory when --project is provided', () => {
234
+ const tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-sessions-project-'));
235
+ try {
236
+ writeUpdateCache(tempHome);
237
+ const workspaceDir = path.join(tempHome, 'work');
238
+ const swarmifyDir = path.join(workspaceDir, 'swarmify');
239
+ const agentsCliDir = path.join(workspaceDir, 'agents-cli');
240
+ const swarmifySessionId = '55555555-5555-4555-8555-555555555555';
241
+ const agentsCliSessionId = '66666666-6666-4666-8666-666666666666';
242
+ fs.mkdirSync(workspaceDir, { recursive: true });
243
+ writeClaudeSession(tempHome, 'swarmify-test', swarmifySessionId, swarmifyDir, 'Inspect the swarmify session list', '2026-04-17T19:35:30.000Z');
244
+ writeClaudeSession(tempHome, 'agents-cli-test', agentsCliSessionId, agentsCliDir, 'Inspect the agents-cli session list', '2026-04-17T19:36:30.000Z');
245
+ const result = runAgents(['sessions', '--project', 'agents-cli'], workspaceDir, tempHome);
246
+ expect(result.status).toBe(0);
247
+ const output = outputOf(result);
248
+ expect(output).toContain(agentsCliSessionId.slice(0, 8));
249
+ expect(output).not.toContain(swarmifySessionId.slice(0, 8));
250
+ expect(output).not.toContain(`No sessions found for ${workspaceDir}`);
251
+ }
252
+ finally {
253
+ fs.rmSync(tempHome, { recursive: true, force: true });
254
+ }
255
+ });
256
+ it('shows the first human Codex prompt instead of injected session scaffolding', () => {
257
+ const tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-sessions-codex-topic-'));
258
+ try {
259
+ writeUpdateCache(tempHome);
260
+ const projectDir = path.join(tempHome, 'work', 'agents-cli');
261
+ const sessionId = '99999999-9999-4999-8999-999999999999';
262
+ const prompt = 'Search across sessions by prompt text';
263
+ writeCodexSession(tempHome, sessionId, projectDir, prompt, '2026-04-17T19:40:30.000Z');
264
+ const result = runAgents(['sessions', '--all'], projectDir, tempHome);
265
+ expect(result.status).toBe(0);
266
+ const output = outputOf(result);
267
+ expect(output).toContain(sessionId.slice(0, 8));
268
+ expect(output).toContain(prompt);
269
+ expect(output).not.toContain('Collaboration Mode: Default');
270
+ expect(output).not.toContain('# AGENTS.md instructions');
271
+ }
272
+ finally {
273
+ fs.rmSync(tempHome, { recursive: true, force: true });
274
+ }
275
+ });
276
+ });
277
+ describe('agents sessions view', () => {
278
+ it('resolves explicit IDs across directories even when the default listing is scoped to cwd', () => {
279
+ const tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-sessions-view-global-'));
280
+ try {
281
+ writeUpdateCache(tempHome);
282
+ const swarmifyDir = path.join(tempHome, 'work', 'swarmify');
283
+ const agentsCliDir = path.join(tempHome, 'work', 'agents-cli');
284
+ const siblingSessionId = '33333333-3333-4333-8333-333333333333';
285
+ writeClaudeSession(tempHome, 'swarmify-test', '44444444-4444-4444-8444-444444444444', swarmifyDir, 'Inspect the swarmify session list', '2026-04-17T19:35:30.000Z');
286
+ writeClaudeSession(tempHome, 'agents-cli-test', siblingSessionId, agentsCliDir, 'Review sibling repo state', '2026-04-17T19:36:30.000Z');
287
+ const result = runAgents(['sessions', 'view', siblingSessionId, '--transcript'], swarmifyDir, tempHome);
288
+ expect(result.status).toBe(0);
289
+ const output = outputOf(result);
290
+ expect(output).toContain('Review sibling repo state');
291
+ expect(output).not.toContain(`No session found matching: ${siblingSessionId}`);
292
+ }
293
+ finally {
294
+ fs.rmSync(tempHome, { recursive: true, force: true });
295
+ }
296
+ });
297
+ it('resolves Claude /resume history IDs to the resumed transcript', () => {
298
+ const tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-sessions-view-'));
299
+ try {
300
+ writeUpdateCache(tempHome);
301
+ const projectRoot = path.join(tempHome, 'work', 'swarmify');
302
+ const transcriptCwd = path.join(projectRoot, 'extension');
303
+ const transcriptId = '92267176-d991-45c2-a8e5-e851e30a203b';
304
+ const historyOnlyId = 'f6a6cd2d-2138-41c4-b653-d2881ce9cdd3';
305
+ fs.mkdirSync(path.join(tempHome, '.claude', 'projects', 'swarmify-test'), { recursive: true });
306
+ fs.writeFileSync(path.join(tempHome, '.claude', 'history.jsonl'), JSON.stringify({
307
+ display: '/resume',
308
+ timestamp: Date.parse('2026-04-17T19:30:00.000Z'),
309
+ project: projectRoot,
310
+ sessionId: historyOnlyId,
311
+ }) + '\n', 'utf-8');
312
+ fs.mkdirSync(transcriptCwd, { recursive: true });
313
+ fs.writeFileSync(path.join(tempHome, '.claude', 'projects', 'swarmify-test', `${transcriptId}.jsonl`), [
314
+ JSON.stringify({
315
+ type: 'user',
316
+ timestamp: '2026-04-17T19:00:00.000Z',
317
+ cwd: transcriptCwd,
318
+ sessionId: transcriptId,
319
+ version: '2.1.110',
320
+ gitBranch: 'main',
321
+ message: { role: 'user', content: 'Earlier context' },
322
+ }),
323
+ JSON.stringify({
324
+ type: 'assistant',
325
+ timestamp: '2026-04-17T19:00:05.000Z',
326
+ cwd: transcriptCwd,
327
+ sessionId: transcriptId,
328
+ version: '2.1.110',
329
+ gitBranch: 'main',
330
+ message: {
331
+ role: 'assistant',
332
+ content: [{ type: 'text', text: 'Earlier reply' }],
333
+ },
334
+ }),
335
+ JSON.stringify({
336
+ type: 'attachment',
337
+ timestamp: '2026-04-17T19:30:30.000Z',
338
+ cwd: transcriptCwd,
339
+ sessionId: transcriptId,
340
+ version: '2.1.110',
341
+ gitBranch: 'main',
342
+ attachment: {
343
+ type: 'hook_success',
344
+ hookName: 'SessionStart:resume',
345
+ hookEvent: 'SessionStart',
346
+ },
347
+ }),
348
+ JSON.stringify({
349
+ type: 'user',
350
+ timestamp: '2026-04-17T19:30:45.000Z',
351
+ cwd: transcriptCwd,
352
+ sessionId: transcriptId,
353
+ version: '2.1.110',
354
+ gitBranch: 'main',
355
+ message: { role: 'user', content: 'Continue from where we left off' },
356
+ }),
357
+ JSON.stringify({
358
+ type: 'assistant',
359
+ timestamp: '2026-04-17T19:31:00.000Z',
360
+ cwd: transcriptCwd,
361
+ sessionId: transcriptId,
362
+ version: '2.1.110',
363
+ gitBranch: 'main',
364
+ message: {
365
+ role: 'assistant',
366
+ content: [{ type: 'text', text: 'Loaded resumed transcript' }],
367
+ },
368
+ }),
369
+ ].join('\n') + '\n', 'utf-8');
370
+ const result = runAgents(['sessions', 'view', historyOnlyId, '--transcript'], repoRoot, tempHome);
371
+ expect(result.status).toBe(0);
372
+ const output = outputOf(result);
373
+ expect(output).toContain(`Resolved Claude history entry ${historyOnlyId} to transcript ${transcriptId}.`);
374
+ expect(output).toContain('Loaded resumed transcript');
375
+ expect(output).not.toContain(`No transcript session found matching: ${historyOnlyId}`);
376
+ }
377
+ finally {
378
+ fs.rmSync(tempHome, { recursive: true, force: true });
379
+ }
380
+ });
381
+ it('resolves text queries against session topics, not only IDs', () => {
382
+ const tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-sessions-view-query-'));
383
+ try {
384
+ writeUpdateCache(tempHome);
385
+ const projectDir = path.join(tempHome, 'work', 'agents-cli');
386
+ const sessionId = 'aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa';
387
+ const prompt = 'Search across sessions by prompt text';
388
+ writeCodexSession(tempHome, sessionId, projectDir, prompt, '2026-04-17T19:41:30.000Z');
389
+ const result = runAgents(['sessions', 'view', 'prompt text', '--transcript'], projectDir, tempHome);
390
+ expect(result.status).toBe(0);
391
+ const output = outputOf(result);
392
+ expect(output).toContain(prompt);
393
+ expect(output).not.toContain('No session found matching: prompt text');
394
+ }
395
+ finally {
396
+ fs.rmSync(tempHome, { recursive: true, force: true });
397
+ }
398
+ });
399
+ it('applies --project filters before resolving search queries', () => {
400
+ const tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-sessions-view-project-filter-'));
401
+ try {
402
+ writeUpdateCache(tempHome);
403
+ const workspaceDir = path.join(tempHome, 'work');
404
+ const agentsDir = path.join(workspaceDir, 'agents');
405
+ const agentsCliDir = path.join(workspaceDir, 'agents-cli');
406
+ writeCodexSession(tempHome, 'bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb', agentsDir, 'Filter scoped search target', '2026-04-17T19:42:30.000Z');
407
+ writeCodexSession(tempHome, 'cccccccc-cccc-4ccc-8ccc-cccccccccccc', agentsCliDir, 'Filter scoped search decoy', '2026-04-17T19:43:30.000Z');
408
+ const result = runAgents(['sessions', 'view', '--project', 'agents-cli', 'scoped search', '--transcript'], workspaceDir, tempHome);
409
+ expect(result.status).toBe(0);
410
+ const output = outputOf(result);
411
+ expect(output).toContain('Filter scoped search decoy');
412
+ expect(output).not.toContain('Filter scoped search target');
413
+ }
414
+ finally {
415
+ fs.rmSync(tempHome, { recursive: true, force: true });
416
+ }
417
+ });
418
+ it('applies --agent filters before resolving search queries', () => {
419
+ const tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-sessions-view-agent-filter-'));
420
+ try {
421
+ writeUpdateCache(tempHome);
422
+ const projectDir = path.join(tempHome, 'work', 'agents-cli');
423
+ writeClaudeSession(tempHome, 'agents-cli-claude', 'dddddddd-dddd-4ddd-8ddd-dddddddddddd', projectDir, 'Shared filter phrase from claude', '2026-04-17T19:44:30.000Z');
424
+ writeCodexSession(tempHome, 'eeeeeeee-eeee-4eee-8eee-eeeeeeeeeeee', projectDir, 'Shared filter phrase from codex', '2026-04-17T19:45:30.000Z');
425
+ const result = runAgents(['sessions', 'view', '--agent', 'codex', 'shared filter phrase', '--transcript'], projectDir, tempHome);
426
+ expect(result.status).toBe(0);
427
+ const output = outputOf(result);
428
+ expect(output).toContain('Shared filter phrase from codex');
429
+ expect(output).not.toContain('Shared filter phrase from claude');
430
+ }
431
+ finally {
432
+ fs.rmSync(tempHome, { recursive: true, force: true });
433
+ }
434
+ });
435
+ });
436
+ //# sourceMappingURL=sessions.test.js.map
@@ -0,0 +1 @@
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;AAoCzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgd/D"}
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"}