@luckydraw/cumulus 0.29.1 → 0.30.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/CHANGELOG.md +13 -2
- package/dist/gateway/adapters/webchat.d.ts.map +1 -1
- package/dist/gateway/adapters/webchat.js +8 -0
- package/dist/gateway/adapters/webchat.js.map +1 -1
- package/dist/gateway/daemon.d.ts +7 -1
- package/dist/gateway/daemon.d.ts.map +1 -1
- package/dist/gateway/daemon.js +44 -1
- package/dist/gateway/daemon.js.map +1 -1
- package/dist/gateway/setup.d.ts +21 -0
- package/dist/gateway/setup.d.ts.map +1 -0
- package/dist/gateway/setup.js +426 -0
- package/dist/gateway/setup.js.map +1 -0
- package/dist/gateway/static/widget.js +5 -1
- package/dist/lib/agentic-loop.d.ts.map +1 -1
- package/dist/lib/agentic-loop.js +15 -3
- package/dist/lib/agentic-loop.js.map +1 -1
- package/dist/lib/gateway.d.ts +3 -7
- package/dist/lib/gateway.d.ts.map +1 -1
- package/dist/lib/gateway.js +212 -15
- package/dist/lib/gateway.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,426 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* cumulus-gateway setup wizard and config management.
|
|
3
|
+
*
|
|
4
|
+
* Phase 1: `cumulus-gateway setup --project-root <path>` — instant non-interactive setup
|
|
5
|
+
* Phase 2: `cumulus-gateway setup` — interactive prompts with auto-detection
|
|
6
|
+
* Phase 4: `cumulus-gateway config set/get/list` — post-install config changes
|
|
7
|
+
*/
|
|
8
|
+
import { execSync } from 'child_process';
|
|
9
|
+
import { randomBytes } from 'crypto';
|
|
10
|
+
import * as fs from 'fs';
|
|
11
|
+
import * as os from 'os';
|
|
12
|
+
import * as path from 'path';
|
|
13
|
+
const CUMULUS_DIR = process.env.CUMULUS_DIR || path.join(os.homedir(), '.cumulus');
|
|
14
|
+
const CONFIG_PATH = path.join(CUMULUS_DIR, 'gateway.config.json');
|
|
15
|
+
const DEFAULT_PORT = 8080;
|
|
16
|
+
const PROJECT_MARKERS = [
|
|
17
|
+
'.git',
|
|
18
|
+
'package.json',
|
|
19
|
+
'Cargo.toml',
|
|
20
|
+
'go.mod',
|
|
21
|
+
'pyproject.toml',
|
|
22
|
+
'Makefile',
|
|
23
|
+
'CMakeLists.txt',
|
|
24
|
+
];
|
|
25
|
+
const CANDIDATE_DIRS = [
|
|
26
|
+
'Documents/_Projects',
|
|
27
|
+
'Documents',
|
|
28
|
+
'projects',
|
|
29
|
+
'dev',
|
|
30
|
+
'code',
|
|
31
|
+
'src',
|
|
32
|
+
'workspace',
|
|
33
|
+
'repos',
|
|
34
|
+
];
|
|
35
|
+
function detectProjectDirs() {
|
|
36
|
+
const home = os.homedir();
|
|
37
|
+
const results = [];
|
|
38
|
+
for (const candidate of CANDIDATE_DIRS) {
|
|
39
|
+
const dir = path.join(home, candidate);
|
|
40
|
+
if (!fs.existsSync(dir))
|
|
41
|
+
continue;
|
|
42
|
+
try {
|
|
43
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
44
|
+
let projectCount = 0;
|
|
45
|
+
for (const entry of entries) {
|
|
46
|
+
if (!entry.isDirectory() || entry.name.startsWith('.'))
|
|
47
|
+
continue;
|
|
48
|
+
const subdir = path.join(dir, entry.name);
|
|
49
|
+
for (const marker of PROJECT_MARKERS) {
|
|
50
|
+
if (fs.existsSync(path.join(subdir, marker))) {
|
|
51
|
+
projectCount++;
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (projectCount > 0) {
|
|
57
|
+
results.push({ path: dir, projectCount });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// Permission denied or other error — skip
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Sort by project count descending
|
|
65
|
+
results.sort((a, b) => b.projectCount - a.projectCount);
|
|
66
|
+
return results.slice(0, 5);
|
|
67
|
+
}
|
|
68
|
+
// ─── Interactive readline helpers ────────────────────────────
|
|
69
|
+
async function ask(question, defaultValue) {
|
|
70
|
+
const readline = await import('readline');
|
|
71
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
72
|
+
const prompt = defaultValue ? `${question} [${defaultValue}]: ` : `${question}: `;
|
|
73
|
+
const answer = await new Promise(resolve => {
|
|
74
|
+
rl.question(prompt, resolve);
|
|
75
|
+
});
|
|
76
|
+
rl.close();
|
|
77
|
+
return answer.trim() || defaultValue || '';
|
|
78
|
+
}
|
|
79
|
+
async function askYesNo(question, defaultYes = true) {
|
|
80
|
+
const hint = defaultYes ? '[Y/n]' : '[y/N]';
|
|
81
|
+
const answer = await ask(`${question} ${hint}`);
|
|
82
|
+
if (!answer)
|
|
83
|
+
return defaultYes;
|
|
84
|
+
return answer.toLowerCase().startsWith('y');
|
|
85
|
+
}
|
|
86
|
+
function generateConfig(opts) {
|
|
87
|
+
return {
|
|
88
|
+
apiKeys: [`sk-cml-${randomBytes(16).toString('hex')}`],
|
|
89
|
+
port: opts.port || DEFAULT_PORT,
|
|
90
|
+
projectRoot: opts.projectRoot || undefined,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function writeConfig(config) {
|
|
94
|
+
fs.mkdirSync(CUMULUS_DIR, { recursive: true });
|
|
95
|
+
fs.writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
96
|
+
}
|
|
97
|
+
// ─── Service installation ────────────────────────────────────
|
|
98
|
+
function getNodePath() {
|
|
99
|
+
return process.execPath;
|
|
100
|
+
}
|
|
101
|
+
function getBinDir() {
|
|
102
|
+
return path.dirname(getNodePath());
|
|
103
|
+
}
|
|
104
|
+
function generatePlist(projectRoot) {
|
|
105
|
+
const nodePath = getNodePath();
|
|
106
|
+
const binDir = getBinDir();
|
|
107
|
+
// Find cumulus-gateway binary — it's in the same directory as node
|
|
108
|
+
const gatewayBin = path.join(binDir, 'cumulus-gateway');
|
|
109
|
+
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
110
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
111
|
+
<plist version="1.0">
|
|
112
|
+
<dict>
|
|
113
|
+
<key>Label</key>
|
|
114
|
+
<string>com.luckydraw.cumulus-gateway</string>
|
|
115
|
+
<key>ProgramArguments</key>
|
|
116
|
+
<array>
|
|
117
|
+
<string>${nodePath}</string>
|
|
118
|
+
<string>${gatewayBin}</string>
|
|
119
|
+
<string>start</string>
|
|
120
|
+
</array>
|
|
121
|
+
<key>EnvironmentVariables</key>
|
|
122
|
+
<dict>
|
|
123
|
+
<key>PATH</key>
|
|
124
|
+
<string>${binDir}:/usr/local/bin:/usr/bin:/bin</string>
|
|
125
|
+
<key>HOME</key>
|
|
126
|
+
<string>${os.homedir()}</string>
|
|
127
|
+
</dict>${projectRoot
|
|
128
|
+
? `
|
|
129
|
+
<key>WorkingDirectory</key>
|
|
130
|
+
<string>${projectRoot}</string>`
|
|
131
|
+
: ''}
|
|
132
|
+
<key>RunAtLoad</key>
|
|
133
|
+
<true/>
|
|
134
|
+
<key>KeepAlive</key>
|
|
135
|
+
<true/>
|
|
136
|
+
<key>StandardOutPath</key>
|
|
137
|
+
<string>${path.join(CUMULUS_DIR, 'gateway.log')}</string>
|
|
138
|
+
<key>StandardErrorPath</key>
|
|
139
|
+
<string>${path.join(CUMULUS_DIR, 'gateway.log')}</string>
|
|
140
|
+
</dict>
|
|
141
|
+
</plist>`;
|
|
142
|
+
}
|
|
143
|
+
function generateSystemdUnit() {
|
|
144
|
+
const nodePath = getNodePath();
|
|
145
|
+
const binDir = getBinDir();
|
|
146
|
+
const gatewayBin = path.join(binDir, 'cumulus-gateway');
|
|
147
|
+
return `[Unit]
|
|
148
|
+
Description=Cumulus Gateway
|
|
149
|
+
After=network.target
|
|
150
|
+
|
|
151
|
+
[Service]
|
|
152
|
+
Type=simple
|
|
153
|
+
ExecStart=${nodePath} ${gatewayBin} start --foreground
|
|
154
|
+
Environment=PATH=${binDir}:/usr/local/bin:/usr/bin:/bin
|
|
155
|
+
Environment=HOME=${os.homedir()}
|
|
156
|
+
Restart=always
|
|
157
|
+
RestartSec=5
|
|
158
|
+
|
|
159
|
+
[Install]
|
|
160
|
+
WantedBy=default.target
|
|
161
|
+
`;
|
|
162
|
+
}
|
|
163
|
+
function installMacOSService(projectRoot) {
|
|
164
|
+
const plistPath = path.join(os.homedir(), 'Library', 'LaunchAgents', 'com.luckydraw.cumulus-gateway.plist');
|
|
165
|
+
const plistDir = path.dirname(plistPath);
|
|
166
|
+
fs.mkdirSync(plistDir, { recursive: true });
|
|
167
|
+
// Unload existing if present
|
|
168
|
+
try {
|
|
169
|
+
execSync(`launchctl unload "${plistPath}" 2>/dev/null`, { stdio: 'ignore' });
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
// Not loaded — fine
|
|
173
|
+
}
|
|
174
|
+
fs.writeFileSync(plistPath, generatePlist(projectRoot), 'utf-8');
|
|
175
|
+
try {
|
|
176
|
+
execSync(`launchctl load "${plistPath}"`, { stdio: 'inherit' });
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
catch {
|
|
180
|
+
console.error(` Failed to load LaunchAgent. You can load it manually:`);
|
|
181
|
+
console.error(` launchctl load "${plistPath}"`);
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
function installLinuxService() {
|
|
186
|
+
const serviceDir = path.join(os.homedir(), '.config', 'systemd', 'user');
|
|
187
|
+
const servicePath = path.join(serviceDir, 'cumulus-gateway.service');
|
|
188
|
+
fs.mkdirSync(serviceDir, { recursive: true });
|
|
189
|
+
fs.writeFileSync(servicePath, generateSystemdUnit(), 'utf-8');
|
|
190
|
+
try {
|
|
191
|
+
execSync('systemctl --user daemon-reload', { stdio: 'inherit' });
|
|
192
|
+
execSync('systemctl --user enable --now cumulus-gateway', { stdio: 'inherit' });
|
|
193
|
+
return true;
|
|
194
|
+
}
|
|
195
|
+
catch {
|
|
196
|
+
console.error(` Failed to enable systemd service. You can enable it manually:`);
|
|
197
|
+
console.error(` systemctl --user enable --now cumulus-gateway`);
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
export async function cmdSetup(args) {
|
|
202
|
+
console.log('');
|
|
203
|
+
console.log(' Cumulus Gateway Setup');
|
|
204
|
+
console.log(' ─────────────────────');
|
|
205
|
+
console.log('');
|
|
206
|
+
// Check for existing config
|
|
207
|
+
if (fs.existsSync(CONFIG_PATH) && !args.force) {
|
|
208
|
+
console.log(` Existing config found: ${CONFIG_PATH}`);
|
|
209
|
+
if (process.stdin.isTTY) {
|
|
210
|
+
const overwrite = await askYesNo(' Overwrite?', false);
|
|
211
|
+
if (!overwrite) {
|
|
212
|
+
console.log(' Setup cancelled. Use --force to overwrite.');
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
console.log(' Use --force to overwrite. Aborting.');
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
let projectRoot = args.projectRoot;
|
|
222
|
+
let port = args.port || DEFAULT_PORT;
|
|
223
|
+
// Phase 2: Interactive mode when no --project-root is given
|
|
224
|
+
if (!projectRoot && process.stdin.isTTY) {
|
|
225
|
+
const detected = detectProjectDirs();
|
|
226
|
+
if (detected.length > 0) {
|
|
227
|
+
console.log(' Project root (where thread folders are created):');
|
|
228
|
+
console.log('');
|
|
229
|
+
console.log(' Detected directories with projects:');
|
|
230
|
+
detected.forEach((d, i) => {
|
|
231
|
+
const rel = d.path.replace(os.homedir(), '~');
|
|
232
|
+
console.log(` [${i + 1}] ${rel} (${d.projectCount} projects)`);
|
|
233
|
+
});
|
|
234
|
+
console.log(` [${detected.length + 1}] Custom path...`);
|
|
235
|
+
console.log('');
|
|
236
|
+
const choice = await ask(` Choice`, '1');
|
|
237
|
+
const choiceNum = parseInt(choice, 10);
|
|
238
|
+
if (choiceNum >= 1 && choiceNum <= detected.length) {
|
|
239
|
+
projectRoot = detected[choiceNum - 1].path;
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
projectRoot = await ask(' Enter project root path');
|
|
243
|
+
// Expand ~ to home
|
|
244
|
+
if (projectRoot.startsWith('~')) {
|
|
245
|
+
projectRoot = path.join(os.homedir(), projectRoot.slice(1));
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
console.log(' No project directories auto-detected.');
|
|
251
|
+
projectRoot = await ask(' Project root path (where thread folders are created)');
|
|
252
|
+
if (projectRoot.startsWith('~')) {
|
|
253
|
+
projectRoot = path.join(os.homedir(), projectRoot.slice(1));
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
// Validate path
|
|
257
|
+
if (projectRoot && !fs.existsSync(projectRoot)) {
|
|
258
|
+
const create = await askYesNo(` ${projectRoot} does not exist. Create it?`);
|
|
259
|
+
if (create) {
|
|
260
|
+
fs.mkdirSync(projectRoot, { recursive: true });
|
|
261
|
+
console.log(` Created ${projectRoot}`);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
// Ask about port
|
|
265
|
+
const portAnswer = await ask(' Port', String(port));
|
|
266
|
+
const parsedPort = parseInt(portAnswer, 10);
|
|
267
|
+
if (!isNaN(parsedPort) && parsedPort > 0 && parsedPort <= 65535) {
|
|
268
|
+
port = parsedPort;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
else if (projectRoot) {
|
|
272
|
+
// Non-interactive: expand ~ and validate
|
|
273
|
+
if (projectRoot.startsWith('~')) {
|
|
274
|
+
projectRoot = path.join(os.homedir(), projectRoot.slice(1));
|
|
275
|
+
}
|
|
276
|
+
if (!fs.existsSync(projectRoot)) {
|
|
277
|
+
fs.mkdirSync(projectRoot, { recursive: true });
|
|
278
|
+
console.log(` Created ${projectRoot}`);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
// Generate and write config
|
|
282
|
+
const config = generateConfig({ projectRoot, port });
|
|
283
|
+
writeConfig(config);
|
|
284
|
+
const apiKey = config.apiKeys[0];
|
|
285
|
+
const displayRoot = projectRoot ? projectRoot.replace(os.homedir(), '~') : '(not set)';
|
|
286
|
+
console.log('');
|
|
287
|
+
console.log(` Config: ${CONFIG_PATH}`);
|
|
288
|
+
console.log(` API key: ${apiKey}`);
|
|
289
|
+
console.log(` Project root: ${displayRoot}`);
|
|
290
|
+
console.log(` Port: ${port}`);
|
|
291
|
+
// Platform-specific service installation
|
|
292
|
+
if (process.stdin.isTTY) {
|
|
293
|
+
console.log('');
|
|
294
|
+
if (process.platform === 'darwin') {
|
|
295
|
+
const install = await askYesNo(' Install macOS LaunchAgent? (auto-start on login)');
|
|
296
|
+
if (install) {
|
|
297
|
+
const ok = installMacOSService(projectRoot);
|
|
298
|
+
console.log(ok ? ' ✓ LaunchAgent installed and running' : ' ✗ LaunchAgent installation failed');
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
else if (process.platform === 'linux') {
|
|
302
|
+
const install = await askYesNo(' Install systemd user service? (auto-start on login)');
|
|
303
|
+
if (install) {
|
|
304
|
+
const ok = installLinuxService();
|
|
305
|
+
console.log(ok
|
|
306
|
+
? ' ✓ systemd service installed and running'
|
|
307
|
+
: ' ✗ systemd service installation failed');
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
console.log('');
|
|
312
|
+
console.log(` Open http://localhost:${port}/chat`);
|
|
313
|
+
console.log(` API key: ${apiKey}`);
|
|
314
|
+
console.log('');
|
|
315
|
+
}
|
|
316
|
+
function loadRawConfig() {
|
|
317
|
+
if (!fs.existsSync(CONFIG_PATH)) {
|
|
318
|
+
console.error(`No config found at ${CONFIG_PATH}. Run 'cumulus-gateway setup' first.`);
|
|
319
|
+
process.exit(1);
|
|
320
|
+
}
|
|
321
|
+
return JSON.parse(fs.readFileSync(CONFIG_PATH, 'utf-8'));
|
|
322
|
+
}
|
|
323
|
+
function redactValue(key, value) {
|
|
324
|
+
if (typeof value === 'string' &&
|
|
325
|
+
(key.toLowerCase().includes('key') ||
|
|
326
|
+
key.toLowerCase().includes('secret') ||
|
|
327
|
+
key.toLowerCase().includes('token'))) {
|
|
328
|
+
if (value.length > 12) {
|
|
329
|
+
return value.slice(0, 8) + '...' + value.slice(-4);
|
|
330
|
+
}
|
|
331
|
+
return '***';
|
|
332
|
+
}
|
|
333
|
+
if (Array.isArray(value)) {
|
|
334
|
+
return value.map((v, i) => redactValue(`${key}[${i}]`, v));
|
|
335
|
+
}
|
|
336
|
+
return value;
|
|
337
|
+
}
|
|
338
|
+
function getNestedValue(obj, keyPath) {
|
|
339
|
+
const parts = keyPath.split('.');
|
|
340
|
+
let current = obj;
|
|
341
|
+
for (const part of parts) {
|
|
342
|
+
if (current === null || current === undefined || typeof current !== 'object')
|
|
343
|
+
return undefined;
|
|
344
|
+
current = current[part];
|
|
345
|
+
}
|
|
346
|
+
return current;
|
|
347
|
+
}
|
|
348
|
+
function setNestedValue(obj, keyPath, value) {
|
|
349
|
+
const parts = keyPath.split('.');
|
|
350
|
+
let current = obj;
|
|
351
|
+
for (let i = 0; i < parts.length - 1; i++) {
|
|
352
|
+
const part = parts[i];
|
|
353
|
+
if (current[part] === undefined || typeof current[part] !== 'object') {
|
|
354
|
+
current[part] = {};
|
|
355
|
+
}
|
|
356
|
+
current = current[part];
|
|
357
|
+
}
|
|
358
|
+
current[parts[parts.length - 1]] = value;
|
|
359
|
+
}
|
|
360
|
+
function parseConfigValue(value) {
|
|
361
|
+
// Try JSON parse for arrays, objects, numbers, booleans
|
|
362
|
+
try {
|
|
363
|
+
return JSON.parse(value);
|
|
364
|
+
}
|
|
365
|
+
catch {
|
|
366
|
+
// Plain string
|
|
367
|
+
return value;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
export function cmdConfig(args) {
|
|
371
|
+
switch (args.subcommand) {
|
|
372
|
+
case 'list': {
|
|
373
|
+
const config = loadRawConfig();
|
|
374
|
+
const redacted = {};
|
|
375
|
+
for (const [key, val] of Object.entries(config)) {
|
|
376
|
+
redacted[key] = redactValue(key, val);
|
|
377
|
+
}
|
|
378
|
+
console.log(JSON.stringify(redacted, null, 2));
|
|
379
|
+
break;
|
|
380
|
+
}
|
|
381
|
+
case 'get': {
|
|
382
|
+
if (!args.key) {
|
|
383
|
+
console.error('Usage: cumulus-gateway config get <key>');
|
|
384
|
+
console.error('Example: cumulus-gateway config get projectRoot');
|
|
385
|
+
process.exit(1);
|
|
386
|
+
}
|
|
387
|
+
const config = loadRawConfig();
|
|
388
|
+
const value = getNestedValue(config, args.key);
|
|
389
|
+
if (value === undefined) {
|
|
390
|
+
console.error(`Key "${args.key}" not found in config.`);
|
|
391
|
+
process.exit(1);
|
|
392
|
+
}
|
|
393
|
+
if (typeof value === 'object') {
|
|
394
|
+
console.log(JSON.stringify(value, null, 2));
|
|
395
|
+
}
|
|
396
|
+
else {
|
|
397
|
+
console.log(String(value));
|
|
398
|
+
}
|
|
399
|
+
break;
|
|
400
|
+
}
|
|
401
|
+
case 'set': {
|
|
402
|
+
if (!args.key || args.value === undefined) {
|
|
403
|
+
console.error('Usage: cumulus-gateway config set <key> <value>');
|
|
404
|
+
console.error('Examples:');
|
|
405
|
+
console.error(' cumulus-gateway config set projectRoot ~/projects');
|
|
406
|
+
console.error(' cumulus-gateway config set port 8090');
|
|
407
|
+
console.error(' cumulus-gateway config set models \'[{"id":"claude","label":"Claude","provider":"claude-cli"}]\'');
|
|
408
|
+
process.exit(1);
|
|
409
|
+
}
|
|
410
|
+
const config = loadRawConfig();
|
|
411
|
+
const parsed = parseConfigValue(args.value);
|
|
412
|
+
// Expand ~ in path-like values
|
|
413
|
+
if (typeof parsed === 'string' && parsed.startsWith('~')) {
|
|
414
|
+
setNestedValue(config, args.key, path.join(os.homedir(), parsed.slice(1)));
|
|
415
|
+
}
|
|
416
|
+
else {
|
|
417
|
+
setNestedValue(config, args.key, parsed);
|
|
418
|
+
}
|
|
419
|
+
fs.writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
420
|
+
const displayVal = typeof parsed === 'string' ? parsed : JSON.stringify(parsed);
|
|
421
|
+
console.log(`Set ${args.key} = ${displayVal}`);
|
|
422
|
+
break;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/gateway/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,11 @@
|
|
|
19
19
|
if (WS_URL_OVERRIDE) return WS_URL_OVERRIDE;
|
|
20
20
|
var loc = window.location;
|
|
21
21
|
var proto = loc.protocol === 'https:' ? 'wss:' : 'ws:';
|
|
22
|
-
|
|
22
|
+
var base = proto + '//' + loc.host + '/ws';
|
|
23
|
+
// Forward ?debug=1 from page URL to WebSocket URL
|
|
24
|
+
var params = new URLSearchParams(loc.search);
|
|
25
|
+
if (params.get('debug') === '1') base += '?debug=1';
|
|
26
|
+
return base;
|
|
23
27
|
}
|
|
24
28
|
|
|
25
29
|
function getSessionId() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentic-loop.d.ts","sourceRoot":"","sources":["../../src/lib/agentic-loop.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"agentic-loop.d.ts","sourceRoot":"","sources":["../../src/lib/agentic-loop.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/agentic-loop.js
CHANGED
|
@@ -18,11 +18,16 @@ import { ASK_USER_QUESTION_TOOL } from './tools/ask-user-question.js';
|
|
|
18
18
|
import { setDeferredRegistry, buildDeferredToolList } from './tools/tool-search.js';
|
|
19
19
|
// ─── Constants ───────────────────────────────────────────────────────────────
|
|
20
20
|
const DEFAULT_MAX_TURNS = 30;
|
|
21
|
-
const DEFAULT_MAX_TOKENS =
|
|
21
|
+
const DEFAULT_MAX_TOKENS = 16_384;
|
|
22
22
|
// ─── Truncation escalation ──────────────────────────────────────────────────
|
|
23
|
-
const ESCALATION_SCHEDULE = [
|
|
23
|
+
const ESCALATION_SCHEDULE = [16_384, 32_768, 65_536];
|
|
24
24
|
const MAX_CONTINUATIONS = 3;
|
|
25
|
-
const MAX_CUMULATIVE_OUTPUT_TOKENS =
|
|
25
|
+
const MAX_CUMULATIVE_OUTPUT_TOKENS = 65_536;
|
|
26
|
+
// ─── Todo enforcement ───────────────────────────────────────────────────────
|
|
27
|
+
// When <todo> directives are active, limit tool calls per turn and output tokens
|
|
28
|
+
// to prevent models from batching all work into a single massive response.
|
|
29
|
+
// const TODO_MAX_TOOLS_PER_TURN = 2; // Reserved for future use
|
|
30
|
+
const TODO_MAX_TOKENS = 4_096;
|
|
26
31
|
// ─── Loop ────────────────────────────────────────────────────────────────────
|
|
27
32
|
export async function runAgenticLoop(options) {
|
|
28
33
|
const { provider, model, system, userMessage, imageBlocks, tools, mcpTools = [], eagerAll = false, maxTurns = DEFAULT_MAX_TURNS, maxTokens = DEFAULT_MAX_TOKENS, onToken, onToolUse, onToolResult, signal, cwd, threadName: _threadName, resumeState, } = options;
|
|
@@ -128,6 +133,13 @@ export async function runAgenticLoop(options) {
|
|
|
128
133
|
escalationIndex = 0;
|
|
129
134
|
let continuationCount = 0;
|
|
130
135
|
let cumulativeOutputTokens = 0;
|
|
136
|
+
// Detect <todo> directive in system prompt — if present, enforce one-todo-per-cycle
|
|
137
|
+
const hasTodoDirective = system.some(s => s.type === 'text' && s.text.includes('<todo>'));
|
|
138
|
+
// When <todo> directives are active, cap output tokens to prevent massive one-shot responses
|
|
139
|
+
if (hasTodoDirective) {
|
|
140
|
+
currentMaxTokens = Math.min(currentMaxTokens, TODO_MAX_TOKENS);
|
|
141
|
+
console.log(`[AgenticLoop] Todo mode: capping maxTokens to ${currentMaxTokens}`);
|
|
142
|
+
}
|
|
131
143
|
// ═══ THE LOOP ═══
|
|
132
144
|
while (turns < maxTurns) {
|
|
133
145
|
turns++;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentic-loop.js","sourceRoot":"","sources":["../../src/lib/agentic-loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agentic-loop.js","sourceRoot":"","sources":["../../src/lib/agentic-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AA2GpF,gFAAgF;AAEhF,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,+EAA+E;AAC/E,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACrD,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,4BAA4B,GAAG,MAAM,CAAC;AAE5C,+EAA+E;AAC/E,iFAAiF;AACjF,2EAA2E;AAC3E,gEAAgE;AAChE,MAAM,eAAe,GAAG,KAAK,CAAC;AAE9B,gFAAgF;AAEhF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAA2B;IAC9D,MAAM,EACJ,QAAQ,EACR,KAAK,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,KAAK,EACL,QAAQ,GAAG,EAAE,EACb,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,iBAAiB,EAC5B,SAAS,GAAG,kBAAkB,EAC9B,OAAO,EACP,SAAS,EACT,YAAY,EACZ,MAAM,EACN,GAAG,EACH,UAAU,EAAE,WAAW,EACvB,WAAW,GACZ,GAAG,OAAO,CAAC;IAEZ,4EAA4E;IAC5E,EAAE;IACF,qEAAqE;IACrE,gFAAgF;IAChF,EAAE;IACF,qEAAqE;IACrE,+EAA+E;IAE/E,kCAAkC;IAClC,MAAM,aAAa,GAAqB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAErE,yDAAyD;IACzD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,mBAAmB,CACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjB,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI;YACvB,WAAW,EAAE,CAAC,CAAC,UAAU,CAAC,WAAW;YACrC,UAAU,EAAE,CAAC,CAAC,UAAU;SACzB,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,0DAA0D;QAC1D,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC;QACD,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,2DAA2D;IAC3D,MAAM,aAAa,GAAG,IAAI,GAAG,EAA+D,CAAC;IAC7F,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,+CAA+C;IAC/C,MAAM,YAAY,GAAG,qBAAqB,EAAE,CAAC;IAC7C,MAAM,eAAe,GAAkB,YAAY;QACjD,CAAC,CAAC;YACE,GAAG,MAAM;YACT;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,YAAY;aACnB;SACF;QACH,CAAC,CAAC,MAAM,CAAC;IAEX,2EAA2E;IAC3E,IAAI,QAAkC,CAAC;IACvC,IAAI,YAAoB,CAAC;IACzB,MAAM,YAAY,GAAmC,EAAE,CAAC;IACxD,IAAI,gBAAwB,CAAC;IAC7B,IAAI,iBAAyB,CAAC;IAC9B,IAAI,eAAuB,CAAC;IAC5B,IAAI,mBAA2B,CAAC;IAChC,IAAI,KAAa,CAAC;IAElB,IAAI,WAAW,EAAE,CAAC;QAChB,qEAAqE;QACrE,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;QAChC,YAAY,GAAG,WAAW,CAAC,eAAe,CAAC;QAC3C,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACtD,iBAAiB,GAAG,WAAW,CAAC,KAAK,CAAC,iBAAiB,CAAC;QACxD,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC;QACpD,mBAAmB,GAAG,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC;QAC5D,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAC1B,YAAY,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QAE5C,uEAAuE;QACvE,qFAAqF;QACrF,MAAM,YAAY,GAAmC;YACnD,IAAI,EAAE,aAAsB;YAC5B,WAAW,EAAE,WAAW,CAAC,SAAS;YAClC,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,KAAK;SAChB,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,GAAG,WAAW,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;QACtE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,cAAc;QACd,QAAQ,GAAG,EAAE,CAAC;QACd,YAAY,GAAG,EAAE,CAAC;QAClB,gBAAgB,GAAG,CAAC,CAAC;QACrB,iBAAiB,GAAG,CAAC,CAAC;QACtB,eAAe,GAAG,CAAC,CAAC;QACpB,mBAAmB,GAAG,CAAC,CAAC;QACxB,KAAK,GAAG,CAAC,CAAC;QAEV,MAAM,aAAa,GAAkC,EAAE,CAAC;QACxD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,aAAa,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,OAAO;oBACb,MAAM,EAAE,GAAG,CAAC,MAA6C;iBAC1D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACxD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,6EAA6E;IAC7E,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,kBAAkB,EAAE,cAAc,CAAC,CAAC;IACjF,IAAI,eAAe,GAAG,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACpE,IAAI,eAAe,KAAK,CAAC,CAAC;QAAE,eAAe,GAAG,CAAC,CAAC;IAChD,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAE/B,oFAAoF;IACpF,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE1F,6FAA6F;IAC7F,IAAI,gBAAgB,EAAE,CAAC;QACrB,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,iDAAiD,gBAAgB,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,mBAAmB;IACnB,OAAO,KAAK,GAAG,QAAQ,EAAE,CAAC;QACxB,KAAK,EAAE,CAAC;QAER,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QAED,mEAAmE;QACnE,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;YACnC,KAAK;YACL,MAAM,EAAE,eAAe;YACvB,QAAQ;YACR,KAAK,EAAE,aAAa;YACpB,SAAS,EAAE,gBAAgB;YAC3B,OAAO,EAAE,CAAC,KAAkB,EAAE,EAAE;gBAC9B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACxC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC;oBAC3B,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC;gBACD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBACzC,gBAAgB,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;oBAC7C,iBAAiB,IAAI,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC;oBAC/C,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC;oBAC7C,eAAe,IAAI,KAAK,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,CAAC;oBAC5D,mBAAmB,IAAI,KAAK,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;YACD,MAAM;SACP,CAAC,CAAC;QAEH,sBAAsB,IAAI,gBAAgB,CAAC;QAE3C,OAAO,CAAC,GAAG,CACT,sBAAsB,KAAK,gBAAgB,QAAQ,CAAC,UAAU,GAAG;YAC/D,iBAAiB,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG;YAC3C,iBAAiB,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,MAAM,GAAG;YAC9E,cAAc,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,GAAG;YACvE,gBAAgB,gBAAgB,EAAE,CACrC,CAAC;QAEF,2EAA2E;QAC3E,IAAI,QAAQ,CAAC,UAAU,KAAK,YAAY,EAAE,CAAC;YACzC,4DAA4D;YAC5D,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YACrE,MAAM,kBAAkB,GAAG,UAAU,CAAC,CAAC,iEAAiE;YAExG,IAAI,kBAAkB,EAAE,CAAC;gBACvB,gFAAgF;gBAChF,sEAAsE;gBACtE,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,EAAE,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAChF,gBAAgB,GAAG,IAAI,CAAC,GAAG,CACzB,mBAAmB,CAAC,eAAe,CAAC,IAAI,cAAc,EACtD,cAAc,CACf,CAAC;gBACF,iBAAiB,EAAE,CAAC;gBAEpB,IAAI,iBAAiB,IAAI,iBAAiB,EAAE,CAAC;oBAC3C,OAAO,CAAC,GAAG,CACT,uDAAuD,iBAAiB,qBAAqB,KAAK,QAAQ,CAC3G,CAAC;oBACF,MAAM;gBACR,CAAC;gBAED,iEAAiE;gBACjE,KAAK,EAAE,CAAC;gBACR,SAAS;YACX,CAAC;YAED,gDAAgD;YAChD,IACE,iBAAiB,IAAI,iBAAiB;gBACtC,sBAAsB,IAAI,4BAA4B,EACtD,CAAC;gBACD,OAAO,CAAC,GAAG,CACT,kEAAkE,iBAAiB,IAAI,iBAAiB,GAAG;oBACzG,oBAAoB,sBAAsB,IAAI,4BAA4B,UAAU,KAAK,QAAQ,CACpG,CAAC;gBACF,MAAM;YACR,CAAC;YAED,sBAAsB;YACtB,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,EAAE,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAChF,gBAAgB,GAAG,IAAI,CAAC,GAAG,CACzB,mBAAmB,CAAC,eAAe,CAAC,IAAI,cAAc,EACtD,cAAc,CACf,CAAC;YACF,iBAAiB,EAAE,CAAC;YAEpB,0DAA0D;YAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YAEhE,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,kBAAkB,GAAG,0JAA0J,OAAO,wCAAwC,CAAC;YACrO,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAE7D,2DAA2D;YAC3D,wEAAwE;YACxE,SAAS;QACX,CAAC;QAED,oBAAoB;QACpB,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,kCAAkC,QAAQ,CAAC,UAAU,UAAU,KAAK,QAAQ,CAAC,CAAC;YAC1F,MAAM;QACR,CAAC;QAED,4CAA4C;QAC5C,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAC3C,CAAC,CAAC,EAA+B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAC1D,CAAC;QAEF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CACT,uEAAuE,KAAK,QAAQ,CACrF,CAAC;YACF,MAAM;QACR,CAAC;QAED,qCAAqC;QACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAEhE,uEAAuE;QACvE,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC;QAE5E,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAgC,CAAC;YAC3D,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAuC,CAAC;YACtE,MAAM,QAAQ,GACX,QAAQ,CAAC,QAAmB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,gBAAgB,CAAC,CAAC;YACrF,MAAM,UAAU,GAAG,QAAQ,CAAC,OAA+B,CAAC;YAC5D,MAAM,aAAa,GAAI,QAAQ,CAAC,aAAyB,IAAI,KAAK,CAAC;YAEnE,SAAS,EAAE,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;YAE9C,mEAAmE;YACnE,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpE,MAAM,mBAAmB,GAAqC,MAAM,OAAO,CAAC,GAAG,CAC7E,WAAW,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;gBAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;gBAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAgC,CAAC;gBAEzD,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAEjC,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC7C,IAAI,MAAc,CAAC;gBACnB,IAAI,OAAO,GAAG,KAAK,CAAC;gBAEpB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,GAAG,wBAAwB,QAAQ,GAAG,CAAC;oBAC7C,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC;wBACH,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACrC,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,GAAG,UAAW,GAAa,CAAC,OAAO,EAAE,CAAC;wBAC5C,OAAO,GAAG,IAAI,CAAC;oBACjB,CAAC;gBACH,CAAC;gBAED,IAAI,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;oBAC5B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,iCAAiC,CAAC;gBACxE,CAAC;gBAED,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC1C,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;gBAEzE,OAAO;oBACL,IAAI,EAAE,aAAsB;oBAC5B,WAAW,EAAE,KAAK,CAAC,EAAE;oBACrB,OAAO,EAAE,MAAM;oBACf,QAAQ,EAAE,OAAO;iBAClB,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;YAEF,sBAAsB;YACtB,OAAO;gBACL,MAAM,EAAE,aAAa;gBACrB,QAAQ,EAAE,YAAY;gBACtB,SAAS,EAAE,YAAY;gBACvB,KAAK;gBACL,KAAK,EAAE;oBACL,gBAAgB;oBAChB,iBAAiB;oBACjB,eAAe;oBACf,mBAAmB;iBACpB;gBACD,UAAU,EAAE;oBACV,QAAQ;oBACR,OAAO,EAAE,UAAU;oBACnB,aAAa;oBACb,SAAS,EAAE,YAAY;oBACvB,SAAS,EAAE,QAAQ,CAAC,EAAE;oBACtB,WAAW,EAAE;wBACX,QAAQ,EAAE,QAAQ;wBAClB,SAAS,EAAE,QAAQ,CAAC,EAAE;wBACtB,SAAS,EAAE,YAAY;wBACvB,mBAAmB;wBACnB,eAAe,EAAE,YAAY;wBAC7B,KAAK,EAAE;4BACL,gBAAgB;4BAChB,iBAAiB;4BACjB,eAAe;4BACf,mBAAmB;yBACpB;wBACD,KAAK;qBACN;iBACF;aACF,CAAC;QACJ,CAAC;QAED,uEAAuE;QACvE,MAAM,WAAW,GAAqC,MAAM,OAAO,CAAC,GAAG,CACrE,aAAa,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;YAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAgC,CAAC;YAEzD,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAEjC,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,MAAc,CAAC;YACnB,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,GAAG,wBAAwB,QAAQ,GAAG,CAAC;gBAC7C,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC;oBACH,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACrC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,GAAG,UAAW,GAAa,CAAC,OAAO,EAAE,CAAC;oBAC5C,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;YACH,CAAC;YAED,mCAAmC;YACnC,IAAI,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;gBAC5B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,iCAAiC,CAAC;YACxE,CAAC;YAED,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAE1C,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAEzE,OAAO;gBACL,IAAI,EAAE,aAAsB;gBAC5B,WAAW,EAAE,KAAK,CAAC,EAAE;gBACrB,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,OAAO;aAClB,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QAEF,wCAAwC;QACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,OAAO;QACL,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,YAAY;QACtB,SAAS,EAAE,YAAY;QACvB,KAAK;QACL,KAAK,EAAE;YACL,gBAAgB;YAChB,iBAAiB;YACjB,eAAe;YACf,mBAAmB;SACpB;KACF,CAAC;AACJ,CAAC"}
|
package/dist/lib/gateway.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export declare function drainActiveSubprocesses(timeoutMs?: number): Promise<num
|
|
|
29
29
|
export declare const RECENT_CONTEXT_COUNT = 10;
|
|
30
30
|
export declare const RECENT_MSG_MAX_TOKENS = 500;
|
|
31
31
|
export declare const RECENT_CONTEXT_BUDGET = 6000;
|
|
32
|
-
export declare const SYSTEM_PROMPT_TEMPLATE = "You have NO memory of this conversation. There are {count} prior messages (~{tokens} tokens) in the history.\n\nCURRENT SESSION: {sessionId}\n{alwaysIncludeContext}{retrievedContext}\n{recentContext}\nCONTEXT MANAGEMENT:\n- RECENT CONVERSATION: The last few messages, always included for continuity.\n- RETRIEVED CONTEXT: Automatically retrieved based on the user's current message using semantic + keyword search.\n- Large content may be stored externally as [STORED:xxx] references.\n\nWORKFLOW:\n1. FIRST use the RETRIEVED CONTEXT above \u2014 it was automatically selected for relevance to this query\n2. Check RECENT CONVERSATION for immediate context\n3. Only use tools if the retrieved context doesn't contain what you need\n4. For [STORED:xxx] references, use retrieve_content to get full content\n5. For file reads, use read_file (the built-in Read tool is disabled)\n\nNEVER guess. Use the context provided or retrieve more if needed.\nIMPORTANT: Never mention the retrieval system or tools to the user. Present information naturally.\n\nFILE READING (MANDATORY):\nThe built-in Read tool is DISABLED in this environment. You MUST use read_file (MCP tool) for ALL file reads.\n- read_file reads the file, chunks it, embeds it into a vector store, and stores it for persistent retrieval across sessions\n- You receive a summary, content ID, and chunk table-of-contents\n- Use read_content_chunk(contentId, N) to navigate to specific sections\n- Using the built-in Read tool bypasses vector storage and loses context permanently \u2014 NEVER use it\n\nTOOL ROUTING (CRITICAL):\n\n| Need to... | CORRECT tool | WRONG tool (do NOT use) |\n|---------------------|-------------------|-------------------------|\n| Read a file | read_file | Read |\n| Search stored files | search_content | Grep |\n| Get stored content | retrieve_content | Read |\n\nTOOLS:\n- read_file: Read any file (text or PDF) and store for future retrieval \u2014 USE THIS FOR ALL FILE READS\n- store_content: Store arbitrary text content for future retrieval\n- search_history: Search past messages by keyword or meaning\n- peek_recent: Get the last few messages\n- read_messages: Read messages by index range\n- retrieve_content: Get full stored content by [STORED:xxx] ID\n- search_content: Search across all stored content\n- read_content_chunk: Read a specific chunk of stored content by index\n\nINTER-AGENT MESSAGING:\nYou can communicate with other agents/threads running on this gateway.\n- list_agents: See all active threads and their status (idle/streaming)\n- send_to_agent(target, message): Send a message to another thread \u2014 it will be delivered as a new turn\n- broadcast(message): Send a message to all other threads\nWhen the user mentions another agent by name (e.g., \"@thundercat\", \"@Friday\"), use send_to_agent to message them.\n\nDo NOT append status codes, tags, or metadata to your responses.";
|
|
32
|
+
export declare const SYSTEM_PROMPT_TEMPLATE = "You have NO memory of this conversation. There are {count} prior messages (~{tokens} tokens) in the history.\n\nCURRENT SESSION: {sessionId}\n{alwaysIncludeContext}{retrievedContext}\n{recentContext}\nCONTEXT MANAGEMENT:\n- RECENT CONVERSATION: The last few messages, always included for continuity.\n- RETRIEVED CONTEXT: Automatically retrieved based on the user's current message using semantic + keyword search.\n- Large content may be stored externally as [STORED:xxx] references.\n\nWORKFLOW:\n1. FIRST use the RETRIEVED CONTEXT above \u2014 it was automatically selected for relevance to this query\n2. Check RECENT CONVERSATION for immediate context\n3. Only use tools if the retrieved context doesn't contain what you need\n4. For [STORED:xxx] references, use retrieve_content to get full content\n5. For file reads, use read_file (the built-in Read tool is disabled)\n\nNEVER guess. Use the context provided or retrieve more if needed.\nIMPORTANT: Never mention the retrieval system or tools to the user. Present information naturally.\n\nFILE READING (MANDATORY):\nThe built-in Read tool is DISABLED in this environment. You MUST use read_file (MCP tool) for ALL file reads.\n- read_file reads the file, chunks it, embeds it into a vector store, and stores it for persistent retrieval across sessions\n- You receive a summary, content ID, and chunk table-of-contents\n- Use read_content_chunk(contentId, N) to navigate to specific sections\n- Using the built-in Read tool bypasses vector storage and loses context permanently \u2014 NEVER use it\n\nTOOL ROUTING (CRITICAL):\n\n| Need to... | CORRECT tool | WRONG tool (do NOT use) |\n|---------------------|-------------------|-------------------------|\n| Read a file | read_file | Read |\n| Search stored files | search_content | Grep |\n| Get stored content | retrieve_content | Read |\n\nTOOLS:\n- read_file: Read any file (text or PDF) and store for future retrieval \u2014 USE THIS FOR ALL FILE READS\n- store_content: Store arbitrary text content for future retrieval\n- search_history: Search past messages by keyword or meaning\n- peek_recent: Get the last few messages\n- read_messages: Read messages by index range\n- retrieve_content: Get full stored content by [STORED:xxx] ID\n- search_content: Search across all stored content\n- read_content_chunk: Read a specific chunk of stored content by index\n\nINTER-AGENT MESSAGING:\nYou can communicate with other agents/threads running on this gateway.\n- list_agents: See all active threads and their status (idle/streaming)\n- send_to_agent(target, message): Send a message to another thread \u2014 it will be delivered as a new turn\n- broadcast(message): Send a message to all other threads\nWhen the user mentions another agent by name (e.g., \"@thundercat\", \"@Friday\"), use send_to_agent to message them.\n\nDo NOT append status codes, tags, or metadata to your responses.\n\nRESPONSE FORMAT: TASK TRACKING\n\nWhen working on multi-step tasks, structure your response using these blocks:\n\n<thinking>{your reasoning, including how to decompose the work}</thinking>\n\n<todo>\n- [ ] Step 1 description\n- [ ] Step 2 description\n- [ ] Step 3 description\n</todo>\n\n{your response to the user \u2014 tool calls, explanations, etc.}\n\nAfter executing tools or completing steps, emit an updated <todo> block reflecting progress:\n\n<todo>\n- [x] Step 1 description\n- [x] Step 2 description (just finished)\n- [ ] Step 3 description\n</todo>\n\nRules:\n- Use full-replacement semantics: emit the COMPLETE list each time, not diffs\n- Mark completed items with [x], pending with [ ]\n- The <todo> block is REQUIRED for multi-step work (2+ steps), optional for simple Q&A\n- <thinking> is optional but encouraged for complex tasks\n- The LAST <todo> block in your response is the authoritative state\n- Do NOT wrap your response text in <text> tags \u2014 just write normally after the <todo> block\n\n### Todo Decomposition Rules\n\nWhen a todo involves CREATING something (writing content, building a page, designing a system, drafting a document), you MUST decompose it before executing:\n\n1. **Outline first** \u2014 Create a bullet-point outline of the deliverable's structure\n2. **Convert outline to subtodos** \u2014 Each bullet becomes a subtodo under the parent\n3. **Execute subtodos sequentially** \u2014 Complete each one, updating status as you go\n4. **Review after completion** \u2014 Add a review subtodo to verify the whole\n\n#### Decomposition trigger words\nIf a todo contains: \"create\", \"build\", \"write\", \"design\", \"implement\", \"draft\", \"compose\" \u2014 it is a creation task. Decompose it.\n\n#### Example\n\nBAD (atomic):\n<todo>\n[ ] Fetch npm package info\n[ ] Create a promotional HTML page \u2190 jumps straight to execution\n[ ] Upload to media server\n</todo>\n\nGOOD (decomposed):\n<todo>\n[x] Fetch npm package info\n[ ] Create promotional HTML page:\n [ ] Outline page sections (hero, features, quickstart, footer)\n [ ] Draft hero section with title, tagline, CTA\n [ ] Draft features grid from package capabilities\n [ ] Draft quickstart with install commands\n [ ] Draft footer with links\n [ ] Review full page for consistency\n [ ] Finalize and minify\n[ ] Upload to media server\n</todo>\n\n### Adaptive Todo Management\n\nYour todo list is a LIVING document. As you execute:\n\n1. **New information** \u2014 If executing a todo reveals important context (e.g., a file has an unexpected structure, an API returns a different format than expected), create a todo to address or document it.\n\n2. **Bugs discovered** \u2014 If you encounter a bug while working on something else, create a todo for it immediately. Do NOT fix it inline unless it blocks your current task. This prevents scope creep while ensuring nothing is forgotten.\n\n3. **Dependencies uncovered** \u2014 If a todo turns out to require prerequisite work you didn't anticipate, insert the prerequisite as a new todo BEFORE the blocked one.\n\n4. **Scope changes** \u2014 If the user redirects or adds requirements mid-stream, update the todo list BEFORE executing. Never act on verbal instructions without first reflecting them in todos.\n\n### Mandatory Decomposition Before Execution\n\nDO NOT EXECUTE a todo until it has been decomposed into small enough\ntasks that cannot be sensibly decomposed into 3+ sub-tasks.\n\nBefore executing any todo:\n1. Can this todo be sensibly decomposed into 3+ sub-todos?\n \u2192 YES: Decompose it. Then check each sub-todo the same way.\n \u2192 NO: Execute it.\n\nThis is recursive and mandatory \u2014 no exceptions.\n\n### Just-In-Time Decomposition\n\nBefore executing the next todo, apply the mandatory decomposition check:\n\n### Example\n\nBEFORE (todos too coarse):\n<todo>\n[ ] Interactive semantic search demo (type queries, see memories retrieved)\n</todo>\n\nAFTER (decomposed at execution time):\n<todo>\n[ ] Interactive semantic search demo:\n [ ] Create search input UI (text field + submit button)\n [ ] Build mock memory dataset (10-15 example memories)\n [ ] Implement fuzzy/keyword matching against dataset\n [ ] Render results as styled cards below input\n [ ] Add typing animation for \"retrieval\" effect\n</todo>\n\n### Todo Lifecycle\n\n1. **Decompose creation tasks** before executing (outline \u2192 subtodos)\n2. **Adapt dynamically** \u2014 if new information, bugs, or dependencies arise during execution, create new todos to address them\n3. **Never fix inline** \u2014 if you discover a bug unrelated to your current task, capture it as a todo rather than context-switching\n4. **Reflect redirects** \u2014 if the user changes direction, update the todo list before executing the new direction\n5. **Debugging** \u2014 treat each hypothesis as a todo; test systematically rather than chasing the first suspicious lead";
|
|
33
33
|
export declare const FILE_READ_REMINDER = "<system-reminder>\nFILE READING: The built-in Read tool is DISABLED. Use read_file for ALL file reads (text, code, PDFs).\n- read_file reads the file, extracts text (including from PDFs), chunks it, embeds it, and stores it for future retrieval\n- You receive a summary, content ID, and chunk table-of-contents\n- Use the TOC to navigate: read_content_chunk(\"contentId\", chunkIndex) for specific sections\n- Use search_content(\"query\") to find content across all stored files\n</system-reminder>\n\n";
|
|
34
34
|
/** Typed stream segment for verbose display */
|
|
35
35
|
export type StreamSegment = {
|
|
@@ -160,6 +160,8 @@ export interface MessagePipelineOptions {
|
|
|
160
160
|
resumeState?: ResumeState;
|
|
161
161
|
/** Callback when the agentic loop pauses for user input (AskUserQuestion) */
|
|
162
162
|
onNeedsInput?: (payload: NeedsInputPayload) => void;
|
|
163
|
+
/** When true, skip stripping <todo>/<thinking> blocks from streamed output */
|
|
164
|
+
debug?: boolean;
|
|
163
165
|
}
|
|
164
166
|
/** Result from the message pipeline */
|
|
165
167
|
export interface MessagePipelineResult {
|
|
@@ -242,11 +244,5 @@ export declare function computeAvgRelevance(debug: RetrievalResult['debug'] | un
|
|
|
242
244
|
export declare function getOrCreateThread(threadName: string, _basePath?: string): Promise<ThreadState>;
|
|
243
245
|
/** Clear a thread from the cache */
|
|
244
246
|
export declare function clearThreadCache(threadName?: string): void;
|
|
245
|
-
/**
|
|
246
|
-
* The full message pipeline: externalize → persist → RAG → prompt → spawn → stream → persist.
|
|
247
|
-
*
|
|
248
|
-
* This is the extracted core of Janus's CumulusBridge.sendMessage(), now callable
|
|
249
|
-
* from both Janus (via IPC) and the gateway server (via HTTP/SSE).
|
|
250
|
-
*/
|
|
251
247
|
export declare function sendMessage(options: MessagePipelineOptions): Promise<MessagePipelineResult>;
|
|
252
248
|
//# sourceMappingURL=gateway.d.ts.map
|