@0xmaxma/claude-gateway 1.2.31 → 1.3.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 +23 -4
- package/config.template.json +5 -5
- package/dist/api/packages.d.ts +2 -0
- package/dist/api/packages.d.ts.map +1 -1
- package/dist/api/packages.js +125 -27
- package/dist/api/packages.js.map +1 -1
- package/dist/api/router.d.ts.map +1 -1
- package/dist/api/router.js +2 -4
- package/dist/api/router.js.map +1 -1
- package/dist/apps/agent-manager.d.ts.map +1 -1
- package/dist/apps/agent-manager.js +0 -1
- package/dist/apps/agent-manager.js.map +1 -1
- package/dist/config/watcher.d.ts.map +1 -1
- package/dist/config/watcher.js +21 -4
- package/dist/config/watcher.js.map +1 -1
- package/dist/index.js +8 -3
- package/dist/index.js.map +1 -1
- package/dist/session/process.d.ts.map +1 -1
- package/dist/session/process.js +32 -5
- package/dist/session/process.js.map +1 -1
- package/dist/shell/args.d.ts +22 -0
- package/dist/shell/args.d.ts.map +1 -0
- package/dist/shell/args.js +105 -0
- package/dist/shell/args.js.map +1 -0
- package/dist/shell/claude-pty-shell.d.ts +3 -0
- package/dist/shell/claude-pty-shell.d.ts.map +1 -0
- package/dist/shell/claude-pty-shell.js +407 -0
- package/dist/shell/claude-pty-shell.js.map +1 -0
- package/dist/shell/emitter.d.ts +36 -0
- package/dist/shell/emitter.d.ts.map +1 -0
- package/dist/shell/emitter.js +85 -0
- package/dist/shell/emitter.js.map +1 -0
- package/dist/shell/pty-host.d.ts +21 -0
- package/dist/shell/pty-host.d.ts.map +1 -0
- package/dist/shell/pty-host.js +102 -0
- package/dist/shell/pty-host.js.map +1 -0
- package/dist/shell/screen.d.ts +44 -0
- package/dist/shell/screen.d.ts.map +1 -0
- package/dist/shell/screen.js +89 -0
- package/dist/shell/screen.js.map +1 -0
- package/dist/shell/tailer.d.ts +64 -0
- package/dist/shell/tailer.d.ts.map +1 -0
- package/dist/shell/tailer.js +181 -0
- package/dist/shell/tailer.js.map +1 -0
- package/dist/types.d.ts +7 -1
- package/dist/types.d.ts.map +1 -1
- package/mcp/tools/telegram/dedup.ts +46 -0
- package/mcp/tools/telegram/receiver-server.ts +25 -0
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -29,6 +29,7 @@ A self-hosted multi-agent gateway for Claude Code. Connect Claude agents to Tele
|
|
|
29
29
|
- **App Store** — install, update, and host Docker-compose apps on the gateway; apps get a reverse proxy at `/app/:name/:portName/*`, optional Unix socket bridge for host scripts, and optional AI agent injection
|
|
30
30
|
- **Self-update API** — check for newer versions of `claude-gateway` and `claude-code` and trigger an update via a single API call; no SSH or shell access needed
|
|
31
31
|
- **Session persistence** — conversation history saved and restored across restarts
|
|
32
|
+
- **PTY backend** — optional interactive pseudo-terminal backend (`gateway.headless: false`) for tools that require a real TTY; uses `TranscriptTailer` for reliable output instead of ANSI parsing; app-agents always stay headless
|
|
32
33
|
|
|
33
34
|
---
|
|
34
35
|
|
|
@@ -38,6 +39,7 @@ A self-hosted multi-agent gateway for Claude Code. Connect Claude agents to Tele
|
|
|
38
39
|
- [Claude Code CLI](https://claude.ai/code) v2.1.0+ installed and authenticated — `channels mode` is required (`claude --version`)
|
|
39
40
|
- [Bun](https://bun.sh) — runs the MCP server subprocess (`mcp/server.ts`)
|
|
40
41
|
- A bot token per agent — Telegram (from [@BotFather](https://t.me/BotFather)) or Discord (from [Discord Developer Portal](https://discord.com/developers/applications))
|
|
42
|
+
- **PTY backend only** (`claude.headless: false`): native build tools required for `node-pty` — `gcc`, `python3`, and `node-gyp` must be available at `npm install` time (pre-built binaries are included for common platforms; build tools are only needed if a pre-built binary is unavailable for your platform)
|
|
41
43
|
|
|
42
44
|
---
|
|
43
45
|
|
|
@@ -201,7 +203,6 @@ Config lives at `~/.claude-gateway/config.json` (or set `GATEWAY_CONFIG` env var
|
|
|
201
203
|
},
|
|
202
204
|
"claude": {
|
|
203
205
|
"model": "claude-sonnet-4-6",
|
|
204
|
-
"dangerouslySkipPermissions": true,
|
|
205
206
|
"extraFlags": []
|
|
206
207
|
},
|
|
207
208
|
"heartbeat": {
|
|
@@ -268,9 +269,28 @@ Access policy is configured per-channel in the agent's workspace state file, not
|
|
|
268
269
|
| `open` | Anyone can DM the agent |
|
|
269
270
|
| `pairing` | New users DM the bot to receive a pairing code; approve with `npm run pair` |
|
|
270
271
|
|
|
271
|
-
### `
|
|
272
|
+
### `gateway.headless`
|
|
272
273
|
|
|
273
|
-
|
|
274
|
+
Controls the Claude subprocess backend for all non-app agents.
|
|
275
|
+
|
|
276
|
+
| Value | Backend | Description |
|
|
277
|
+
|-------|---------|-------------|
|
|
278
|
+
| `true` *(default)* | Headless (`--print`) | Stateless invocation, lowest overhead |
|
|
279
|
+
| `false` | PTY shell wrapper | Interactive pseudo-terminal — full TUI support |
|
|
280
|
+
|
|
281
|
+
**App-agents always run headless** regardless of this setting.
|
|
282
|
+
|
|
283
|
+
`--dangerously-skip-permissions` is always injected by the gateway automatically — there is no per-agent config field for it.
|
|
284
|
+
|
|
285
|
+
```json
|
|
286
|
+
{
|
|
287
|
+
"gateway": {
|
|
288
|
+
"headless": false
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
This setting is hot-reloadable — new sessions pick it up without a restart.
|
|
274
294
|
|
|
275
295
|
### `gateway.api.keys`
|
|
276
296
|
|
|
@@ -877,7 +897,6 @@ npm run typecheck
|
|
|
877
897
|
|
|
878
898
|
**Agent fails to start**
|
|
879
899
|
- Check workspace path exists and contains `AGENTS.md`
|
|
880
|
-
- Check `dangerouslySkipPermissions: true` is set in config
|
|
881
900
|
- Check logs in `~/.claude-gateway/logs/<id>.log`
|
|
882
901
|
|
|
883
902
|
**Agent not responding to messages**
|
package/config.template.json
CHANGED
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
],
|
|
7
7
|
"removePaths": [
|
|
8
8
|
"telegram.allowedUsers",
|
|
9
|
-
"telegram.dmPolicy"
|
|
9
|
+
"telegram.dmPolicy",
|
|
10
|
+
"claude.dangerouslySkipPermissions"
|
|
10
11
|
]
|
|
11
12
|
},
|
|
12
|
-
"configVersion": "1.0.
|
|
13
|
+
"configVersion": "1.0.8",
|
|
13
14
|
"gateway": {
|
|
14
15
|
"logDir": "~/.claude-gateway/logs",
|
|
15
16
|
"timezone": "Asia/Bangkok",
|
|
@@ -39,7 +40,8 @@
|
|
|
39
40
|
"retentionDays": 60,
|
|
40
41
|
"cleanupHour": 0,
|
|
41
42
|
"cleanupTimezone": "UTC"
|
|
42
|
-
}
|
|
43
|
+
},
|
|
44
|
+
"headless": true
|
|
43
45
|
},
|
|
44
46
|
"agents": [
|
|
45
47
|
{
|
|
@@ -52,7 +54,6 @@
|
|
|
52
54
|
},
|
|
53
55
|
"claude": {
|
|
54
56
|
"model": "claude-opus-4-6",
|
|
55
|
-
"dangerouslySkipPermissions": true,
|
|
56
57
|
"extraFlags": []
|
|
57
58
|
},
|
|
58
59
|
"signatureEmoji": "",
|
|
@@ -77,7 +78,6 @@
|
|
|
77
78
|
},
|
|
78
79
|
"claude": {
|
|
79
80
|
"model": "claude-sonnet-4-6",
|
|
80
|
-
"dangerouslySkipPermissions": false,
|
|
81
81
|
"extraFlags": []
|
|
82
82
|
},
|
|
83
83
|
"session": {
|
package/dist/api/packages.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
2
|
import { ApiKey } from '../types';
|
|
3
3
|
export declare function _resetCache(): void;
|
|
4
|
+
export declare function _resetLock(): void;
|
|
5
|
+
export declare function _setLock(): void;
|
|
4
6
|
export declare function createPackagesRouter(apiKeys?: ApiKey[]): Router;
|
|
5
7
|
//# sourceMappingURL=packages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packages.d.ts","sourceRoot":"","sources":["../../src/api/packages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"packages.d.ts","sourceRoot":"","sources":["../../src/api/packages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAIpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AA4BlC,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAE/B;AAsFD,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAwJ/D"}
|
package/dist/api/packages.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports._resetCache = _resetCache;
|
|
4
|
+
exports._resetLock = _resetLock;
|
|
5
|
+
exports._setLock = _setLock;
|
|
4
6
|
exports.createPackagesRouter = createPackagesRouter;
|
|
5
7
|
const express_1 = require("express");
|
|
6
8
|
const child_process_1 = require("child_process");
|
|
9
|
+
const fs_1 = require("fs");
|
|
10
|
+
const path_1 = require("path");
|
|
7
11
|
const auth_1 = require("./auth");
|
|
8
12
|
// URL param "name" → npm package name
|
|
9
13
|
const PACKAGE_MAP = {
|
|
@@ -12,9 +16,16 @@ const PACKAGE_MAP = {
|
|
|
12
16
|
};
|
|
13
17
|
const CACHE_TTL_MS = 5 * 60 * 1000;
|
|
14
18
|
let versionCache = null;
|
|
19
|
+
let isUpdating = false;
|
|
15
20
|
function _resetCache() {
|
|
16
21
|
versionCache = null;
|
|
17
22
|
}
|
|
23
|
+
function _resetLock() {
|
|
24
|
+
isUpdating = false;
|
|
25
|
+
}
|
|
26
|
+
function _setLock() {
|
|
27
|
+
isUpdating = true;
|
|
28
|
+
}
|
|
18
29
|
function getNpmListVersion(packageName) {
|
|
19
30
|
try {
|
|
20
31
|
const output = (0, child_process_1.execSync)(`npm list -g ${packageName} --depth=0 --json`, {
|
|
@@ -52,6 +63,50 @@ async function fetchAllPackageVersions() {
|
|
|
52
63
|
};
|
|
53
64
|
}));
|
|
54
65
|
}
|
|
66
|
+
function getNpmGlobalRoot() {
|
|
67
|
+
return (0, child_process_1.execSync)('npm root -g', {
|
|
68
|
+
encoding: 'utf-8',
|
|
69
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
70
|
+
timeout: 10000,
|
|
71
|
+
}).trim();
|
|
72
|
+
}
|
|
73
|
+
function cleanStaleNpmTempDirs(npmRoot, packageName) {
|
|
74
|
+
const match = packageName.match(/^(@[^/]+)\/(.+)$/);
|
|
75
|
+
if (!match)
|
|
76
|
+
return;
|
|
77
|
+
const [, scope, basename] = match;
|
|
78
|
+
const scopeDir = (0, path_1.join)(npmRoot, scope);
|
|
79
|
+
let entries;
|
|
80
|
+
try {
|
|
81
|
+
entries = (0, fs_1.readdirSync)(scopeDir, { withFileTypes: false });
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const prefix = `.${basename}-`;
|
|
87
|
+
for (const entry of entries) {
|
|
88
|
+
if (entry.startsWith(prefix)) {
|
|
89
|
+
try {
|
|
90
|
+
(0, fs_1.rmSync)((0, path_1.join)(scopeDir, entry), { recursive: true, force: true });
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
// best-effort: ignore errors on individual temp dir removal
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function removePackageDir(npmRoot, packageName) {
|
|
99
|
+
const match = packageName.match(/^(@[^/]+)\/(.+)$/);
|
|
100
|
+
if (!match)
|
|
101
|
+
return;
|
|
102
|
+
const [, scope, basename] = match;
|
|
103
|
+
try {
|
|
104
|
+
(0, fs_1.rmSync)((0, path_1.join)(npmRoot, scope, basename), { recursive: true, force: true });
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
// best-effort
|
|
108
|
+
}
|
|
109
|
+
}
|
|
55
110
|
function createPackagesRouter(apiKeys) {
|
|
56
111
|
const router = (0, express_1.Router)();
|
|
57
112
|
if (apiKeys?.length) {
|
|
@@ -114,36 +169,79 @@ function createPackagesRouter(apiKeys) {
|
|
|
114
169
|
res.json({ package: packageName, from, to: from, updated: false, warning: null });
|
|
115
170
|
return;
|
|
116
171
|
}
|
|
117
|
-
//
|
|
118
|
-
|
|
119
|
-
(
|
|
120
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
121
|
-
timeout: 120000,
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
catch (err) {
|
|
125
|
-
const stderr = err.stderr?.toString() ?? 'install failed';
|
|
126
|
-
res.status(500).json({ error: stderr });
|
|
172
|
+
// Reject if another update is already in progress
|
|
173
|
+
if (isUpdating) {
|
|
174
|
+
res.status(409).json({ error: 'update already in progress' });
|
|
127
175
|
return;
|
|
128
176
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
143
|
-
|
|
177
|
+
isUpdating = true;
|
|
178
|
+
try {
|
|
179
|
+
// Resolve npm global root for temp dir cleanup
|
|
180
|
+
let npmRoot = '';
|
|
181
|
+
try {
|
|
182
|
+
npmRoot = getNpmGlobalRoot();
|
|
183
|
+
}
|
|
184
|
+
catch {
|
|
185
|
+
// non-fatal: skip pre-clean if npm root unavailable
|
|
186
|
+
}
|
|
187
|
+
// Pre-clean any stale npm temp dirs left by previous interrupted installs
|
|
188
|
+
if (npmRoot) {
|
|
189
|
+
cleanStaleNpmTempDirs(npmRoot, packageName);
|
|
190
|
+
}
|
|
191
|
+
let installErr = null;
|
|
192
|
+
try {
|
|
193
|
+
(0, child_process_1.execSync)(`npm install -g ${packageName}@latest`, {
|
|
194
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
195
|
+
timeout: 300000,
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
catch (err) {
|
|
199
|
+
const stderr = err.stderr?.toString() ?? '';
|
|
200
|
+
if (npmRoot && (stderr.includes('ENOTEMPTY') || stderr.includes('ENOTDIR'))) {
|
|
201
|
+
// Remove stale temp dirs and the partially-installed package dir, then retry once
|
|
202
|
+
cleanStaleNpmTempDirs(npmRoot, packageName);
|
|
203
|
+
removePackageDir(npmRoot, packageName);
|
|
204
|
+
try {
|
|
205
|
+
(0, child_process_1.execSync)(`npm install -g ${packageName}@latest`, {
|
|
206
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
207
|
+
timeout: 300000,
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
catch (retryErr) {
|
|
211
|
+
installErr = retryErr;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
installErr = err;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
if (installErr !== null) {
|
|
219
|
+
const stderr = installErr.stderr?.toString() ?? 'install failed';
|
|
220
|
+
res.status(500).json({ error: stderr });
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
// Invalidate version cache after successful install
|
|
224
|
+
versionCache = null;
|
|
225
|
+
const to = getNpmListVersion(packageName);
|
|
226
|
+
if (name === 'claude-gateway') {
|
|
227
|
+
const isSystemd = !!process.env.INVOCATION_ID;
|
|
228
|
+
const isPm2 = !!process.env.PM2_HOME || process.env.pm_id !== undefined;
|
|
229
|
+
const isManaged = isSystemd || isPm2;
|
|
230
|
+
res.json({
|
|
231
|
+
package: packageName,
|
|
232
|
+
from,
|
|
233
|
+
to,
|
|
234
|
+
updated: true,
|
|
235
|
+
warning: isManaged ? 'service will restart' : 'process will stop — restart manually',
|
|
236
|
+
});
|
|
237
|
+
setTimeout(() => process.kill(process.pid, 'SIGTERM'), 500);
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
res.json({ package: packageName, from, to, updated: true, warning: null });
|
|
241
|
+
}
|
|
144
242
|
}
|
|
145
|
-
|
|
146
|
-
|
|
243
|
+
finally {
|
|
244
|
+
isUpdating = false;
|
|
147
245
|
}
|
|
148
246
|
});
|
|
149
247
|
return router;
|
package/dist/api/packages.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packages.js","sourceRoot":"","sources":["../../src/api/packages.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"packages.js","sourceRoot":"","sources":["../../src/api/packages.ts"],"names":[],"mappings":"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"}
|
package/dist/api/router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/api/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAOpD,OAAO,EAAE,WAAW,EAAkB,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAe,MAAM,UAAU,CAAC;AAwLzE,wBAAgB,eAAe,CAC7B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACtC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACtC,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,WAAW,EAAE,GACrB,MAAM,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/api/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAOpD,OAAO,EAAE,WAAW,EAAkB,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAe,MAAM,UAAU,CAAC;AAwLzE,wBAAgB,eAAe,CAC7B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACtC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACtC,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,WAAW,EAAE,GACrB,MAAM,CAsjER"}
|
package/dist/api/router.js
CHANGED
|
@@ -555,7 +555,6 @@ function createApiRouter(agentRunners, agentConfigs, apiKeys, configPath, models
|
|
|
555
555
|
env: path.join('~', '.claude-gateway', 'agents', id, 'workspace', '.env'),
|
|
556
556
|
claude: {
|
|
557
557
|
model: typeof model === 'string' && model.trim() ? model.trim() : 'claude-sonnet-4-6',
|
|
558
|
-
dangerouslySkipPermissions: false,
|
|
559
558
|
extraFlags: [],
|
|
560
559
|
},
|
|
561
560
|
};
|
|
@@ -582,7 +581,6 @@ function createApiRouter(agentRunners, agentConfigs, apiKeys, configPath, models
|
|
|
582
581
|
env: path.join(workspaceAbs, '.env'),
|
|
583
582
|
claude: {
|
|
584
583
|
model: typeof model === 'string' && model.trim() ? model.trim() : 'claude-sonnet-4-6',
|
|
585
|
-
dangerouslySkipPermissions: false,
|
|
586
584
|
extraFlags: [],
|
|
587
585
|
},
|
|
588
586
|
});
|
|
@@ -859,7 +857,7 @@ function createApiRouter(agentRunners, agentConfigs, apiKeys, configPath, models
|
|
|
859
857
|
description: wizard.prompt.slice(0, 200).trim(),
|
|
860
858
|
workspace: absToTildePath(workspaceDirAbs),
|
|
861
859
|
env: absToTildePath(path.join(workspaceDirAbs, '.env')),
|
|
862
|
-
claude: { model: defaultModel,
|
|
860
|
+
claude: { model: defaultModel, extraFlags: [] },
|
|
863
861
|
};
|
|
864
862
|
if (wizard.signatureEmoji)
|
|
865
863
|
newAgent.signatureEmoji = wizard.signatureEmoji;
|
|
@@ -882,7 +880,7 @@ function createApiRouter(agentRunners, agentConfigs, apiKeys, configPath, models
|
|
|
882
880
|
description: wizard.prompt.slice(0, 200).trim(),
|
|
883
881
|
workspace: workspaceDirAbs,
|
|
884
882
|
env: path.join(workspaceDirAbs, '.env'),
|
|
885
|
-
claude: { model: defaultModel,
|
|
883
|
+
claude: { model: defaultModel, extraFlags: [] },
|
|
886
884
|
...(wizard.signatureEmoji ? { signatureEmoji: wizard.signatureEmoji } : {}),
|
|
887
885
|
...(avatarFilename ? { avatar: avatarFilename } : {}),
|
|
888
886
|
});
|