sweteam 0.9.1 → 0.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.
- package/README.md +37 -30
- package/dist/adapters/claude-code.d.ts.map +1 -1
- package/dist/adapters/claude-code.js +73 -31
- package/dist/adapters/claude-code.js.map +1 -1
- package/dist/adapters/codex.d.ts.map +1 -1
- package/dist/adapters/codex.js +31 -16
- package/dist/adapters/codex.js.map +1 -1
- package/dist/adapters/custom.d.ts.map +1 -1
- package/dist/adapters/custom.js +59 -34
- package/dist/adapters/custom.js.map +1 -1
- package/dist/adapters/opencode.d.ts.map +1 -1
- package/dist/adapters/opencode.js +31 -16
- package/dist/adapters/opencode.js.map +1 -1
- package/dist/adapters/prompt-detection.d.ts.map +1 -1
- package/dist/adapters/prompt-detection.js +4 -2
- package/dist/adapters/prompt-detection.js.map +1 -1
- package/dist/commands/delete.d.ts +1 -1
- package/dist/commands/delete.d.ts.map +1 -1
- package/dist/commands/delete.js +23 -1
- package/dist/commands/delete.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +3 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +1 -1
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/show.d.ts.map +1 -1
- package/dist/commands/show.js +8 -6
- package/dist/commands/show.js.map +1 -1
- package/dist/config/gh-auth.d.ts.map +1 -1
- package/dist/config/gh-auth.js +5 -1
- package/dist/config/gh-auth.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +17 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +51 -16
- package/dist/db/client.js.map +1 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +3 -9
- package/dist/db/schema.js.map +1 -1
- package/dist/git/git.d.ts.map +1 -1
- package/dist/git/git.js +32 -6
- package/dist/git/git.js.map +1 -1
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +10 -1
- package/dist/lifecycle.js.map +1 -1
- package/dist/orchestrator/build-handler.d.ts.map +1 -1
- package/dist/orchestrator/build-handler.js +28 -14
- package/dist/orchestrator/build-handler.js.map +1 -1
- package/dist/orchestrator/dag.d.ts.map +1 -1
- package/dist/orchestrator/dag.js +1 -1
- package/dist/orchestrator/dag.js.map +1 -1
- package/dist/orchestrator/feedback-handler.d.ts.map +1 -1
- package/dist/orchestrator/feedback-handler.js +129 -29
- package/dist/orchestrator/feedback-handler.js.map +1 -1
- package/dist/orchestrator/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator/orchestrator.js +42 -18
- package/dist/orchestrator/orchestrator.js.map +1 -1
- package/dist/orchestrator/parallel-runner.d.ts.map +1 -1
- package/dist/orchestrator/parallel-runner.js +44 -12
- package/dist/orchestrator/parallel-runner.js.map +1 -1
- package/dist/orchestrator/reviewer.d.ts.map +1 -1
- package/dist/orchestrator/reviewer.js +48 -15
- package/dist/orchestrator/reviewer.js.map +1 -1
- package/dist/planner/plan-parser.d.ts.map +1 -1
- package/dist/planner/plan-parser.js +13 -2
- package/dist/planner/plan-parser.js.map +1 -1
- package/dist/planner/planner.d.ts.map +1 -1
- package/dist/planner/planner.js +12 -3
- package/dist/planner/planner.js.map +1 -1
- package/dist/repl/repl.d.ts.map +1 -1
- package/dist/repl/repl.js +6 -1
- package/dist/repl/repl.js.map +1 -1
- package/dist/session/agent-log.d.ts.map +1 -1
- package/dist/session/agent-log.js +4 -0
- package/dist/session/agent-log.js.map +1 -1
- package/dist/session/in-session-commands.d.ts.map +1 -1
- package/dist/session/in-session-commands.js +10 -2
- package/dist/session/in-session-commands.js.map +1 -1
- package/dist/session/interactive.d.ts.map +1 -1
- package/dist/session/interactive.js +43 -11
- package/dist/session/interactive.js.map +1 -1
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +21 -5
- package/dist/session/manager.js.map +1 -1
- package/dist/session/state-machine.d.ts.map +1 -1
- package/dist/session/state-machine.js +14 -3
- package/dist/session/state-machine.js.map +1 -1
- package/dist/ui/agent-panel.d.ts.map +1 -1
- package/dist/ui/agent-panel.js.map +1 -1
- package/dist/ui/banner.d.ts.map +1 -1
- package/dist/ui/banner.js +37 -34
- package/dist/ui/banner.js.map +1 -1
- package/dist/ui/markdown.d.ts.map +1 -1
- package/dist/ui/markdown.js +1 -4
- package/dist/ui/markdown.js.map +1 -1
- package/dist/ui/sidebar.d.ts.map +1 -1
- package/dist/ui/sidebar.js +1 -1
- package/dist/ui/sidebar.js.map +1 -1
- package/dist/ui/theme.d.ts.map +1 -1
- package/dist/ui/theme.js +9 -3
- package/dist/ui/theme.js.map +1 -1
- package/dist/web/server.d.ts +2 -0
- package/dist/web/server.d.ts.map +1 -0
- package/dist/web/server.js +329 -0
- package/dist/web/server.js.map +1 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -89,40 +89,45 @@ The key ideas:
|
|
|
89
89
|
|
|
90
90
|
sweteam doesn't replace your coding agents. It gives them the same structure that makes real engineering teams ship reliable code.
|
|
91
91
|
|
|
92
|
-
##
|
|
92
|
+
## Web Dashboard
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
Monitor all your sessions, tasks, and agent output from a browser-based dashboard:
|
|
95
95
|
|
|
96
|
+
```bash
|
|
97
|
+
npm run web
|
|
98
|
+
# → http://localhost:3847
|
|
96
99
|
```
|
|
97
|
-
╭─── sweteam v0.8.0 ────────────────────────────────────────────╮
|
|
98
|
-
│ │ │
|
|
99
|
-
│ Welcome to sweteam! │ Getting started │
|
|
100
|
-
│ │ /create [repo] Start new │
|
|
101
|
-
│ ┌─────────────────┐ │ /list See all │
|
|
102
|
-
│ │ ◉ ◉ │ │ /enter <id> Resume │
|
|
103
|
-
│ │ ───────── │ │ ──────────────────────────── │
|
|
104
|
-
│ └─────────────────┘ │ Recent sessions │
|
|
105
|
-
│ │ s_a1b2c3d4 Add dark theme │
|
|
106
|
-
│ Orchestrator · v0.8.0 │ s_e5f6g7h8 Fix auth flow │
|
|
107
|
-
│ ~/projects/myrepo │ │
|
|
108
|
-
╰───────────────────────────────────────────────────────────────╯
|
|
109
100
|
|
|
110
|
-
|
|
111
|
-
|
|
101
|
+
### Session list
|
|
102
|
+
|
|
103
|
+
Browse all sessions at a glance — status badges, task progress bars, and timestamps.
|
|
104
|
+
|
|
105
|
+
<p align="center">
|
|
106
|
+
<img src="docs/screenshots/dashboard.png" alt="sweteam web dashboard" width="100%" />
|
|
107
|
+
</p>
|
|
108
|
+
|
|
109
|
+
### Session detail
|
|
112
110
|
|
|
113
|
-
|
|
111
|
+
Click into any session to see the full conversation timeline, task breakdown, progress ring, and PR link.
|
|
112
|
+
|
|
113
|
+
<p align="center">
|
|
114
|
+
<img src="docs/screenshots/session-detail.png" alt="sweteam session detail view" width="100%" />
|
|
115
|
+
</p>
|
|
116
|
+
|
|
117
|
+
### Terminal REPL
|
|
118
|
+
|
|
119
|
+
The CLI also includes an interactive REPL with agent output streaming in real time:
|
|
114
120
|
|
|
115
121
|
```
|
|
116
122
|
▶ Coder ─ task-001: Add ThemeConfig and color definitions
|
|
117
123
|
──────────────────────────────────────────────────────────
|
|
118
124
|
│ Creating src/theme/config.ts with color palette...
|
|
119
125
|
│ Adding ThemeConfig interface with light/dark variants...
|
|
120
|
-
│ Defining CSS custom properties for runtime switching...
|
|
121
126
|
✓ Coder completed
|
|
122
127
|
|
|
123
128
|
▶ Reviewer ─ task-001: Add ThemeConfig and color definitions
|
|
124
129
|
──────────────────────────────────────────────────────────
|
|
125
|
-
│
|
|
130
|
+
│ Reviewing diff against acceptance criteria...
|
|
126
131
|
│ All criteria met. Approving.
|
|
127
132
|
✓ Reviewer completed
|
|
128
133
|
```
|
|
@@ -311,6 +316,7 @@ Attaching to live build output... (press Enter to detach)
|
|
|
311
316
|
| Command | Description |
|
|
312
317
|
| ----------------------------- | -------------------------------------- |
|
|
313
318
|
| `sweteam` | Launch interactive REPL |
|
|
319
|
+
| `sweteam web` | Start the web dashboard (port 3847) |
|
|
314
320
|
| `sweteam init` | Auto-discover CLIs and generate config |
|
|
315
321
|
| `sweteam create [repo]` | Create a new session |
|
|
316
322
|
| `sweteam list` | List all sessions |
|
|
@@ -555,6 +561,7 @@ src/
|
|
|
555
561
|
├── config/ # Config loader and GitHub auth
|
|
556
562
|
├── git/ # Git and GitHub CLI wrappers
|
|
557
563
|
├── ui/ # Terminal UI (banner, prompt, agent panel, sidebar, markdown, theme)
|
|
564
|
+
├── web/ # Web dashboard (HTTP server + single-page UI)
|
|
558
565
|
├── db/ # SQLite schema and client (Drizzle ORM)
|
|
559
566
|
├── utils/ # Utility functions (time formatting)
|
|
560
567
|
└── __tests__/ # Test suite
|
|
@@ -562,17 +569,17 @@ src/
|
|
|
562
569
|
|
|
563
570
|
### Tech stack
|
|
564
571
|
|
|
565
|
-
| Component | Choice
|
|
566
|
-
| ------------- |
|
|
567
|
-
| Language | TypeScript (ESM, Node.js 20+)
|
|
568
|
-
| ORM | Drizzle
|
|
569
|
-
| Database | SQLite via better-sqlite3
|
|
570
|
-
| CLI framework | Commander.js
|
|
571
|
-
| Terminal UI | Custom (chalk, gradient-string, raw-mode prompt)
|
|
572
|
-
| Git | `git` + `gh` CLI (child process)
|
|
573
|
-
| IDs | nanoid
|
|
574
|
-
| Config | TOML
|
|
575
|
-
| Tests | Vitest
|
|
572
|
+
| Component | Choice |
|
|
573
|
+
| ------------- | ------------------------------------------------ |
|
|
574
|
+
| Language | TypeScript (ESM, Node.js 20+) |
|
|
575
|
+
| ORM | Drizzle |
|
|
576
|
+
| Database | SQLite via better-sqlite3 |
|
|
577
|
+
| CLI framework | Commander.js |
|
|
578
|
+
| Terminal UI | Custom (chalk, gradient-string, raw-mode prompt) |
|
|
579
|
+
| Git | `git` + `gh` CLI (child process) |
|
|
580
|
+
| IDs | nanoid |
|
|
581
|
+
| Config | TOML |
|
|
582
|
+
| Tests | Vitest |
|
|
576
583
|
|
|
577
584
|
## Contributing
|
|
578
585
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/adapters/claude-code.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/adapters/claude-code.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAwC9D,qBAAa,iBAAkB,YAAW,YAAY;IACpD,IAAI,SAAiB;IAEf,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC,OAAO,CAAC,IAAI,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QACnC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;KAChE,GAAG,OAAO,CAAC,WAAW,CAAC;CAwLzB"}
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
import { spawn, execFileSync } from 'child_process';
|
|
2
2
|
import { trackProcess } from '../lifecycle.js';
|
|
3
|
+
/** Return a minimal environment for child processes to avoid leaking secrets. */
|
|
4
|
+
function safeEnv() {
|
|
5
|
+
return {
|
|
6
|
+
PATH: process.env.PATH,
|
|
7
|
+
HOME: process.env.HOME,
|
|
8
|
+
SHELL: process.env.SHELL,
|
|
9
|
+
TERM: process.env.TERM,
|
|
10
|
+
LANG: process.env.LANG,
|
|
11
|
+
// Claude Code may need ANTHROPIC_API_KEY
|
|
12
|
+
ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
3
15
|
/**
|
|
4
16
|
* Format a tool_use block into a short progress line for the AgentPanel.
|
|
5
17
|
*/
|
|
@@ -27,7 +39,7 @@ export class ClaudeCodeAdapter {
|
|
|
27
39
|
name = 'claude-code';
|
|
28
40
|
async isAvailable() {
|
|
29
41
|
try {
|
|
30
|
-
execFileSync('which', ['claude'], { encoding: 'utf-8', stdio: 'pipe' });
|
|
42
|
+
execFileSync('which', ['claude'], { encoding: 'utf-8', stdio: 'pipe', timeout: 5000 });
|
|
31
43
|
return true;
|
|
32
44
|
}
|
|
33
45
|
catch {
|
|
@@ -38,7 +50,13 @@ export class ClaudeCodeAdapter {
|
|
|
38
50
|
const timeout = opts.timeout ?? 0;
|
|
39
51
|
const startTime = Date.now();
|
|
40
52
|
return new Promise((resolve, reject) => {
|
|
41
|
-
const args = [
|
|
53
|
+
const args = [
|
|
54
|
+
'-p',
|
|
55
|
+
'--output-format',
|
|
56
|
+
'stream-json',
|
|
57
|
+
'--verbose',
|
|
58
|
+
'--dangerously-skip-permissions',
|
|
59
|
+
];
|
|
42
60
|
if (opts.images) {
|
|
43
61
|
for (const img of opts.images) {
|
|
44
62
|
args.push('--image', img);
|
|
@@ -47,6 +65,7 @@ export class ClaudeCodeAdapter {
|
|
|
47
65
|
const proc = spawn('claude', args, {
|
|
48
66
|
cwd: opts.cwd,
|
|
49
67
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
68
|
+
env: safeEnv(),
|
|
50
69
|
});
|
|
51
70
|
trackProcess(proc, opts.sessionId);
|
|
52
71
|
const MAX_OUTPUT_SIZE = 10 * 1024 * 1024;
|
|
@@ -72,18 +91,22 @@ export class ClaudeCodeAdapter {
|
|
|
72
91
|
catch {
|
|
73
92
|
// Non-JSON line — treat as raw text (backward compat)
|
|
74
93
|
const rawLine = line + '\n';
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
accumulatedText += rawLine;
|
|
80
|
-
}
|
|
94
|
+
const combinedRaw = accumulatedText + rawLine;
|
|
95
|
+
accumulatedText = combinedRaw.length > MAX_OUTPUT_SIZE
|
|
96
|
+
? combinedRaw.slice(combinedRaw.length - MAX_OUTPUT_SIZE)
|
|
97
|
+
: combinedRaw;
|
|
81
98
|
// Log if it looks like an error message
|
|
82
99
|
if (/^(error:|Error:|fatal:|Authentication|not found)/i.test(trimmed)) {
|
|
83
100
|
console.error(`claude-code non-JSON error output: ${trimmed}`);
|
|
84
101
|
}
|
|
85
|
-
if (opts.onOutput)
|
|
86
|
-
|
|
102
|
+
if (opts.onOutput) {
|
|
103
|
+
try {
|
|
104
|
+
opts.onOutput(line + '\n');
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
console.warn(`onOutput callback error: ${err instanceof Error ? err.message : String(err)}`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
87
110
|
return;
|
|
88
111
|
}
|
|
89
112
|
const type = parsed.type;
|
|
@@ -96,27 +119,33 @@ export class ClaudeCodeAdapter {
|
|
|
96
119
|
return;
|
|
97
120
|
for (const block of content) {
|
|
98
121
|
if (block.type === 'tool_use') {
|
|
99
|
-
const toolName = block.name;
|
|
122
|
+
const toolName = block.name ?? 'unknown';
|
|
100
123
|
const input = (block.input ?? {});
|
|
101
124
|
const progressLine = formatToolProgress(toolName, input);
|
|
102
|
-
if (opts.onOutput)
|
|
103
|
-
|
|
125
|
+
if (opts.onOutput) {
|
|
126
|
+
try {
|
|
127
|
+
opts.onOutput(progressLine + '\n');
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
console.warn(`onOutput callback error: ${err instanceof Error ? err.message : String(err)}`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
104
133
|
}
|
|
105
134
|
else if (block.type === 'text') {
|
|
106
135
|
// Accumulate text silently — don't send to panel
|
|
107
136
|
const blockText = block.text ?? '';
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
accumulatedText += blockText;
|
|
113
|
-
}
|
|
137
|
+
const combinedBlock = accumulatedText + blockText;
|
|
138
|
+
accumulatedText = combinedBlock.length > MAX_OUTPUT_SIZE
|
|
139
|
+
? combinedBlock.slice(combinedBlock.length - MAX_OUTPUT_SIZE)
|
|
140
|
+
: combinedBlock;
|
|
114
141
|
}
|
|
115
142
|
}
|
|
116
143
|
}
|
|
117
144
|
else if (type === 'result') {
|
|
118
|
-
// Final result —
|
|
119
|
-
resultText
|
|
145
|
+
// Final result — only set if not already captured (preserves first result)
|
|
146
|
+
if (!resultText) {
|
|
147
|
+
resultText = parsed.result ?? '';
|
|
148
|
+
}
|
|
120
149
|
}
|
|
121
150
|
// Ignore system, user, and other event types
|
|
122
151
|
}
|
|
@@ -133,12 +162,11 @@ export class ClaudeCodeAdapter {
|
|
|
133
162
|
});
|
|
134
163
|
proc.stderr.on('data', (chunk) => {
|
|
135
164
|
const text = chunk.toString();
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}
|
|
165
|
+
const combinedStderr = stderr + text;
|
|
166
|
+
stderr =
|
|
167
|
+
combinedStderr.length > MAX_OUTPUT_SIZE
|
|
168
|
+
? combinedStderr.slice(combinedStderr.length - MAX_OUTPUT_SIZE)
|
|
169
|
+
: combinedStderr;
|
|
142
170
|
});
|
|
143
171
|
const timer = timeout > 0
|
|
144
172
|
? setTimeout(() => {
|
|
@@ -147,21 +175,35 @@ export class ClaudeCodeAdapter {
|
|
|
147
175
|
reject(new Error(`Claude Code timed out after ${timeout}ms`));
|
|
148
176
|
}, timeout)
|
|
149
177
|
: null;
|
|
150
|
-
proc.on('close', (code) => {
|
|
178
|
+
proc.on('close', (code, signal) => {
|
|
151
179
|
if (timer)
|
|
152
180
|
clearTimeout(timer);
|
|
153
181
|
if (settled)
|
|
154
182
|
return;
|
|
155
183
|
settled = true;
|
|
156
|
-
// Flush remaining line buffer
|
|
184
|
+
// Flush remaining line buffer — try parsing as JSON first,
|
|
185
|
+
// fall back to including as raw text rather than silently dropping
|
|
157
186
|
if (lineBuffer.trim()) {
|
|
158
|
-
|
|
187
|
+
try {
|
|
188
|
+
JSON.parse(lineBuffer.trim());
|
|
189
|
+
// Valid JSON — process normally
|
|
190
|
+
processLine(lineBuffer);
|
|
191
|
+
}
|
|
192
|
+
catch {
|
|
193
|
+
// Partial/invalid JSON — include as raw text in output
|
|
194
|
+
const rawContent = lineBuffer + '\n';
|
|
195
|
+
const combinedFinal = accumulatedText + rawContent;
|
|
196
|
+
accumulatedText =
|
|
197
|
+
combinedFinal.length > MAX_OUTPUT_SIZE
|
|
198
|
+
? combinedFinal.slice(combinedFinal.length - MAX_OUTPUT_SIZE)
|
|
199
|
+
: combinedFinal;
|
|
200
|
+
}
|
|
159
201
|
lineBuffer = '';
|
|
160
202
|
}
|
|
161
203
|
const finalOutput = resultText ?? (accumulatedText || stderr);
|
|
162
204
|
resolve({
|
|
163
205
|
output: finalOutput,
|
|
164
|
-
exitCode: code ?? 1,
|
|
206
|
+
exitCode: code ?? (signal ? 128 : 1),
|
|
165
207
|
durationMs: Date.now() - startTime,
|
|
166
208
|
});
|
|
167
209
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/adapters/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;GAEG;AACH,SAAS,kBAAkB,CAAC,QAAgB,EAAE,KAA8B;IAC1E,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,UAAU,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QAC3C,KAAK,OAAO;YACV,OAAO,WAAW,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QAC5C,KAAK,MAAM;YACT,OAAO,UAAU,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACxC,OAAO,WAAW,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACrE,CAAC;QACD,KAAK,MAAM;YACT,OAAO,UAAU,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACzC,KAAK,MAAM;YACT,OAAO,UAAU,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACzC;YACE,OAAO,KAAK,QAAQ,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,MAAM,OAAO,iBAAiB;IAC5B,IAAI,GAAG,aAAa,CAAC;IAErB,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/adapters/claude-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAgB9D,qBAAa,YAAa,YAAW,YAAY;IAC/C,IAAI,SAAW;IAET,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC,OAAO,CAAC,IAAI,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QACnC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;KAChE,GAAG,OAAO,CAAC,WAAW,CAAC;CAuHzB"}
|
package/dist/adapters/codex.js
CHANGED
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
import { spawn, execFileSync } from 'child_process';
|
|
2
2
|
import { trackProcess } from '../lifecycle.js';
|
|
3
3
|
import { detectInputPrompt, extractPromptText } from './prompt-detection.js';
|
|
4
|
+
/** Return a minimal environment for child processes to avoid leaking secrets. */
|
|
5
|
+
function safeEnv() {
|
|
6
|
+
return {
|
|
7
|
+
PATH: process.env.PATH,
|
|
8
|
+
HOME: process.env.HOME,
|
|
9
|
+
SHELL: process.env.SHELL,
|
|
10
|
+
TERM: process.env.TERM,
|
|
11
|
+
LANG: process.env.LANG,
|
|
12
|
+
OPENAI_API_KEY: process.env.OPENAI_API_KEY,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
4
15
|
export class CodexAdapter {
|
|
5
16
|
name = 'codex';
|
|
6
17
|
async isAvailable() {
|
|
7
18
|
try {
|
|
8
|
-
execFileSync('which', ['codex'], { encoding: 'utf-8', stdio: 'pipe' });
|
|
19
|
+
execFileSync('which', ['codex'], { encoding: 'utf-8', stdio: 'pipe', timeout: 5000 });
|
|
9
20
|
return true;
|
|
10
21
|
}
|
|
11
22
|
catch {
|
|
@@ -16,7 +27,7 @@ export class CodexAdapter {
|
|
|
16
27
|
const timeout = opts.timeout ?? 0;
|
|
17
28
|
const startTime = Date.now();
|
|
18
29
|
return new Promise((resolve, reject) => {
|
|
19
|
-
const args = ['-q'
|
|
30
|
+
const args = ['-q'];
|
|
20
31
|
if (opts.images) {
|
|
21
32
|
for (const img of opts.images) {
|
|
22
33
|
args.push('--image', img);
|
|
@@ -25,6 +36,7 @@ export class CodexAdapter {
|
|
|
25
36
|
const proc = spawn('codex', args, {
|
|
26
37
|
cwd: opts.cwd,
|
|
27
38
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
39
|
+
env: safeEnv(),
|
|
28
40
|
});
|
|
29
41
|
trackProcess(proc, opts.sessionId);
|
|
30
42
|
const MAX_OUTPUT_SIZE = 10 * 1024 * 1024;
|
|
@@ -42,12 +54,11 @@ export class CodexAdapter {
|
|
|
42
54
|
});
|
|
43
55
|
proc.stdout.on('data', (chunk) => {
|
|
44
56
|
const text = chunk.toString();
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
57
|
+
const combinedStdout = stdout + text;
|
|
58
|
+
stdout =
|
|
59
|
+
combinedStdout.length > MAX_OUTPUT_SIZE
|
|
60
|
+
? combinedStdout.slice(combinedStdout.length - MAX_OUTPUT_SIZE)
|
|
61
|
+
: combinedStdout;
|
|
51
62
|
if (opts.onOutput) {
|
|
52
63
|
opts.onOutput(text);
|
|
53
64
|
}
|
|
@@ -82,21 +93,22 @@ export class CodexAdapter {
|
|
|
82
93
|
});
|
|
83
94
|
proc.stderr.on('data', (chunk) => {
|
|
84
95
|
const errText = chunk.toString();
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
}
|
|
96
|
+
const combinedStderr = stderr + errText;
|
|
97
|
+
stderr =
|
|
98
|
+
combinedStderr.length > MAX_OUTPUT_SIZE
|
|
99
|
+
? combinedStderr.slice(combinedStderr.length - MAX_OUTPUT_SIZE)
|
|
100
|
+
: combinedStderr;
|
|
91
101
|
});
|
|
92
102
|
const timer = timeout > 0
|
|
93
103
|
? setTimeout(() => {
|
|
94
104
|
settled = true;
|
|
105
|
+
proc.stdout.removeAllListeners('data');
|
|
106
|
+
proc.stderr.removeAllListeners('data');
|
|
95
107
|
proc.kill('SIGTERM');
|
|
96
108
|
reject(new Error(`Codex timed out after ${timeout}ms`));
|
|
97
109
|
}, timeout)
|
|
98
110
|
: null;
|
|
99
|
-
proc.on('close', (code) => {
|
|
111
|
+
proc.on('close', (code, signal) => {
|
|
100
112
|
if (timer)
|
|
101
113
|
clearTimeout(timer);
|
|
102
114
|
if (debounceTimer)
|
|
@@ -106,7 +118,7 @@ export class CodexAdapter {
|
|
|
106
118
|
settled = true;
|
|
107
119
|
resolve({
|
|
108
120
|
output: stdout || stderr,
|
|
109
|
-
exitCode: code ?? 1,
|
|
121
|
+
exitCode: code ?? (signal ? 128 : 1),
|
|
110
122
|
durationMs: Date.now() - startTime,
|
|
111
123
|
});
|
|
112
124
|
});
|
|
@@ -120,6 +132,9 @@ export class CodexAdapter {
|
|
|
120
132
|
settled = true;
|
|
121
133
|
reject(err);
|
|
122
134
|
});
|
|
135
|
+
// Pass prompt via stdin instead of CLI arg to avoid ARG_MAX overflow
|
|
136
|
+
proc.stdin.write(opts.prompt);
|
|
137
|
+
proc.stdin.end();
|
|
123
138
|
});
|
|
124
139
|
}
|
|
125
140
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE7E,MAAM,OAAO,YAAY;IACvB,IAAI,GAAG,OAAO,CAAC;IAEf,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../src/adapters/custom.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../src/adapters/custom.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAgBvD,qBAAa,aAAc,YAAW,YAAY;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,MAAM,CAAc;gBAEhB,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;IAKvC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAarC,OAAO,CAAC,IAAI,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QACnC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;KAChE,GAAG,OAAO,CAAC,WAAW,CAAC;CAgMzB"}
|