orquesta-agent 0.2.235 → 0.2.238
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 +45 -0
- package/dist/cli-auth-detect.d.ts +17 -0
- package/dist/cli-auth-detect.d.ts.map +1 -0
- package/dist/cli-auth-detect.js +31 -0
- package/dist/cli-auth-detect.js.map +1 -0
- package/dist/executor.d.ts +12 -4
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +201 -66
- package/dist/executor.js.map +1 -1
- package/dist/hook.d.ts +26 -1
- package/dist/hook.d.ts.map +1 -1
- package/dist/hook.js +170 -21
- package/dist/hook.js.map +1 -1
- package/dist/index.js +28 -14
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +42 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +100 -28
- package/dist/init.js.map +1 -1
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +4 -0
- package/dist/sandbox.js.map +1 -1
- package/dist/supabase.d.ts +16 -8
- package/dist/supabase.d.ts.map +1 -1
- package/dist/supabase.js +30 -2
- package/dist/supabase.js.map +1 -1
- package/dist/types/hook-types.d.ts +49 -1
- package/dist/types/hook-types.d.ts.map +1 -1
- package/dist/ui/onboarding.js +1 -1
- package/dist/ui/onboarding.js.map +1 -1
- package/dist/ui/public/app.js +11 -1
- package/dist/ui/public/index.html +1 -0
- package/dist/ui/public/style.css +1 -0
- package/dist/ui/public/welcome.html +2 -0
- package/dist/ui/server.d.ts +1 -1
- package/dist/ui/server.d.ts.map +1 -1
- package/dist/ui/server.js +2 -2
- package/dist/ui/server.js.map +1 -1
- package/dist/ui/types.d.ts +1 -1
- package/dist/ui/types.d.ts.map +1 -1
- package/dist/ws-client.d.ts +1 -1
- package/dist/ws-client.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/hook.d.ts
CHANGED
|
@@ -7,5 +7,30 @@
|
|
|
7
7
|
* Zero npm dependencies — uses only Node.js built-ins for fast startup.
|
|
8
8
|
* Always exits 0 to never block Claude.
|
|
9
9
|
*/
|
|
10
|
-
|
|
10
|
+
import type { HookClient } from './types/hook-types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Which tool invoked us. The explicit flag (written by `init`) wins; otherwise
|
|
13
|
+
* fall back to the payload shape. Claude Code sends `session_id`, Cursor sends
|
|
14
|
+
* `conversation_id`, and only Cursor uses camelCase event names.
|
|
15
|
+
*/
|
|
16
|
+
export declare function detectClient(hookData: any, explicit?: string): HookClient;
|
|
17
|
+
/**
|
|
18
|
+
* Map a Cursor hook payload onto the Claude Code field names the handlers below
|
|
19
|
+
* already speak. Claude Code payloads pass through untouched.
|
|
20
|
+
*
|
|
21
|
+
* Cursor differences we bridge:
|
|
22
|
+
* - `conversation_id` is the stable session id (`generation_id` changes per turn)
|
|
23
|
+
* - `workspace_roots[0]` / $CURSOR_PROJECT_DIR stands in for `cwd`
|
|
24
|
+
* - `postToolUse` returns `tool_output`, not `tool_result`
|
|
25
|
+
* - shell runs and file edits arrive as their OWN events rather than as a
|
|
26
|
+
* generic tool event, so we synthesize Bash/Edit tool calls for them
|
|
27
|
+
*/
|
|
28
|
+
export declare function normalizeHookData(raw: any): any;
|
|
29
|
+
/**
|
|
30
|
+
* Identity of a tool call for de-duplication. Content-based rather than
|
|
31
|
+
* id-based on purpose: the SAME shell command reaching us through two different
|
|
32
|
+
* Cursor hooks carries two different `tool_use_id`s but identical content.
|
|
33
|
+
*/
|
|
34
|
+
export declare function toolDedupeKey(toolName: string, toolInput: Record<string, unknown>): string;
|
|
35
|
+
export declare function handleHookEvent(event: string, clientOpt?: string): Promise<void>;
|
|
11
36
|
//# sourceMappingURL=hook.d.ts.map
|
package/dist/hook.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAIV,UAAU,EACX,MAAM,uBAAuB,CAAA;AAY9B;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAOzE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAwC/C;AAicD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAU1F;AAID,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDtF"}
|
package/dist/hook.js
CHANGED
|
@@ -10,6 +10,83 @@
|
|
|
10
10
|
import * as fs from 'fs';
|
|
11
11
|
import * as path from 'path';
|
|
12
12
|
import * as os from 'os';
|
|
13
|
+
// --- Client normalization ---
|
|
14
|
+
// Cursor event names, used to detect the client when no --client flag was passed
|
|
15
|
+
// (e.g. a hooks.json written by an older orquesta-agent, or hand-edited).
|
|
16
|
+
const CURSOR_EVENT_NAMES = new Set([
|
|
17
|
+
'beforeSubmitPrompt', 'postToolUse', 'postToolUseFailure', 'preToolUse',
|
|
18
|
+
'afterFileEdit', 'beforeShellExecution', 'afterShellExecution',
|
|
19
|
+
'afterAgentResponse', 'afterAgentThought', 'sessionStart', 'sessionEnd', 'stop',
|
|
20
|
+
]);
|
|
21
|
+
/**
|
|
22
|
+
* Which tool invoked us. The explicit flag (written by `init`) wins; otherwise
|
|
23
|
+
* fall back to the payload shape. Claude Code sends `session_id`, Cursor sends
|
|
24
|
+
* `conversation_id`, and only Cursor uses camelCase event names.
|
|
25
|
+
*/
|
|
26
|
+
export function detectClient(hookData, explicit) {
|
|
27
|
+
if (explicit === 'cursor' || explicit === 'claude')
|
|
28
|
+
return explicit;
|
|
29
|
+
if (hookData?.conversation_id && !hookData?.session_id)
|
|
30
|
+
return 'cursor';
|
|
31
|
+
if (typeof hookData?.hook_event_name === 'string' && CURSOR_EVENT_NAMES.has(hookData.hook_event_name)) {
|
|
32
|
+
return 'cursor';
|
|
33
|
+
}
|
|
34
|
+
return 'claude';
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Map a Cursor hook payload onto the Claude Code field names the handlers below
|
|
38
|
+
* already speak. Claude Code payloads pass through untouched.
|
|
39
|
+
*
|
|
40
|
+
* Cursor differences we bridge:
|
|
41
|
+
* - `conversation_id` is the stable session id (`generation_id` changes per turn)
|
|
42
|
+
* - `workspace_roots[0]` / $CURSOR_PROJECT_DIR stands in for `cwd`
|
|
43
|
+
* - `postToolUse` returns `tool_output`, not `tool_result`
|
|
44
|
+
* - shell runs and file edits arrive as their OWN events rather than as a
|
|
45
|
+
* generic tool event, so we synthesize Bash/Edit tool calls for them
|
|
46
|
+
*/
|
|
47
|
+
export function normalizeHookData(raw) {
|
|
48
|
+
const d = { ...(raw || {}) };
|
|
49
|
+
if (!d.session_id)
|
|
50
|
+
d.session_id = d.conversation_id;
|
|
51
|
+
if (!d.cwd) {
|
|
52
|
+
d.cwd = (Array.isArray(d.workspace_roots) && d.workspace_roots[0])
|
|
53
|
+
|| process.env.CURSOR_PROJECT_DIR
|
|
54
|
+
|| process.env.CLAUDE_PROJECT_DIR
|
|
55
|
+
|| undefined;
|
|
56
|
+
}
|
|
57
|
+
if (d.tool_result === undefined && d.tool_output !== undefined) {
|
|
58
|
+
d.tool_result = d.tool_output;
|
|
59
|
+
}
|
|
60
|
+
switch (d.hook_event_name) {
|
|
61
|
+
case 'beforeShellExecution':
|
|
62
|
+
case 'afterShellExecution':
|
|
63
|
+
if (!d.tool_name)
|
|
64
|
+
d.tool_name = 'Bash';
|
|
65
|
+
if (!d.tool_input)
|
|
66
|
+
d.tool_input = { command: d.command };
|
|
67
|
+
if (d.tool_result === undefined && d.output !== undefined)
|
|
68
|
+
d.tool_result = d.output;
|
|
69
|
+
break;
|
|
70
|
+
case 'afterFileEdit': {
|
|
71
|
+
if (!d.tool_name)
|
|
72
|
+
d.tool_name = 'Edit';
|
|
73
|
+
const edits = Array.isArray(d.edits) ? d.edits : [];
|
|
74
|
+
if (!d.tool_input) {
|
|
75
|
+
d.tool_input = {
|
|
76
|
+
file_path: d.file_path,
|
|
77
|
+
old_string: edits[0]?.old_string,
|
|
78
|
+
new_string: edits[0]?.new_string,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
if (d.tool_result === undefined) {
|
|
82
|
+
const n = edits.length;
|
|
83
|
+
d.tool_result = { content: `${n} edit${n === 1 ? '' : 's'} applied to ${d.file_path}` };
|
|
84
|
+
}
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return d;
|
|
89
|
+
}
|
|
13
90
|
// --- Utility functions ---
|
|
14
91
|
function readStdin() {
|
|
15
92
|
return new Promise((resolve) => {
|
|
@@ -161,22 +238,29 @@ async function fetchCoordinationBlock(config) {
|
|
|
161
238
|
return '';
|
|
162
239
|
}
|
|
163
240
|
}
|
|
164
|
-
async function handlePromptSubmit(hookData, config) {
|
|
241
|
+
async function handlePromptSubmit(hookData, config, client = 'claude') {
|
|
165
242
|
// Inject a short Orquesta context block into Claude's context.
|
|
166
243
|
// Claude Code captures UserPromptSubmit stdout and feeds it to the model.
|
|
167
244
|
// Wrapped defensively — never let this break the logging path.
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
245
|
+
//
|
|
246
|
+
// Cursor is DELIBERATELY excluded: its hooks must emit either nothing or a
|
|
247
|
+
// well-formed JSON permission object on stdout, so writing a plain-text block
|
|
248
|
+
// there risks blocking the user's prompt. Mirroring still works — we just
|
|
249
|
+
// don't inject context. See the Cursor hooks docs for the stdout contract.
|
|
250
|
+
if (client !== 'cursor') {
|
|
251
|
+
try {
|
|
252
|
+
process.stdout.write(buildOrquestaContext(config));
|
|
253
|
+
// Inject active coordination channels too, if any. Fetched per-prompt so newly-created
|
|
254
|
+
// bridges are visible immediately. ~1s upper bound — race against a short timeout.
|
|
255
|
+
const coord = await Promise.race([
|
|
256
|
+
fetchCoordinationBlock(config),
|
|
257
|
+
new Promise(resolve => setTimeout(() => resolve(''), 1500)),
|
|
258
|
+
]);
|
|
259
|
+
if (coord)
|
|
260
|
+
process.stdout.write(coord);
|
|
261
|
+
}
|
|
262
|
+
catch { }
|
|
178
263
|
}
|
|
179
|
-
catch { }
|
|
180
264
|
// Clean stale session files
|
|
181
265
|
cleanStaleSessionFiles();
|
|
182
266
|
const sessionId = hookData.session_id;
|
|
@@ -185,11 +269,13 @@ async function handlePromptSubmit(hookData, config) {
|
|
|
185
269
|
// Extract prompt content from hook data
|
|
186
270
|
const promptContent = hookData.prompt
|
|
187
271
|
|| hookData.message?.content
|
|
188
|
-
|| '(Claude Code session)';
|
|
272
|
+
|| (client === 'cursor' ? '(Cursor session)' : '(Claude Code session)');
|
|
189
273
|
// Create prompt in Orquesta
|
|
190
274
|
const { ok, data } = await apiCall(`${config.apiUrl}/api/orquesta-cli/prompts`, 'POST', config.token, {
|
|
191
275
|
content: typeof promptContent === 'string' ? promptContent : JSON.stringify(promptContent),
|
|
192
|
-
|
|
276
|
+
// Must be one of prompts_cli_type_check (see 20260814_cli_type_cursor.sql) —
|
|
277
|
+
// an unlisted value fails the CHECK and the prompt is never created.
|
|
278
|
+
cliType: client === 'cursor' ? 'cursor-cli' : 'claude-code',
|
|
193
279
|
// Spell out the target project. Hooks enrolled from the terminal cockpit
|
|
194
280
|
// carry an ORG-scoped token (oclt_), which may write to any project in the
|
|
195
281
|
// org — so the server rejects the prompt outright ("projectId is required
|
|
@@ -197,7 +283,7 @@ async function handlePromptSubmit(hookData, config) {
|
|
|
197
283
|
// resolve it themselves and simply ignore this field.
|
|
198
284
|
projectId: config.projectId,
|
|
199
285
|
context: {
|
|
200
|
-
source: 'claude-code-hook',
|
|
286
|
+
source: client === 'cursor' ? 'cursor-hook' : 'claude-code-hook',
|
|
201
287
|
cwd: hookData.cwd,
|
|
202
288
|
sessionId,
|
|
203
289
|
},
|
|
@@ -229,6 +315,12 @@ async function handleToolUse(hookData, config) {
|
|
|
229
315
|
const toolName = hookData.tool_name || 'unknown';
|
|
230
316
|
const toolInput = hookData.tool_input || {};
|
|
231
317
|
const toolResult = hookData.tool_result;
|
|
318
|
+
// Drop repeats of an action we already mirrored (see SessionState.seenToolKeys).
|
|
319
|
+
const dedupeKey = toolDedupeKey(toolName, toolInput);
|
|
320
|
+
const seen = session.seenToolKeys || [];
|
|
321
|
+
if (seen.includes(dedupeKey))
|
|
322
|
+
return;
|
|
323
|
+
session.seenToolKeys = [...seen, dedupeKey].slice(-20);
|
|
232
324
|
// Increment sequence
|
|
233
325
|
session.sequence += 1;
|
|
234
326
|
const seq = session.sequence;
|
|
@@ -292,7 +384,40 @@ async function handleToolUse(hookData, config) {
|
|
|
292
384
|
// Update session state with new sequence
|
|
293
385
|
writeSessionState(sessionId, session);
|
|
294
386
|
}
|
|
295
|
-
|
|
387
|
+
/**
|
|
388
|
+
* Mirror the assistant's final answer.
|
|
389
|
+
*
|
|
390
|
+
* Only Cursor drives this today: its `stop` payload carries no text, so
|
|
391
|
+
* `afterAgentResponse` is the sole place the answer is exposed to a hook.
|
|
392
|
+
* Without it the mirrored prompt would show every tool call but no conclusion.
|
|
393
|
+
*/
|
|
394
|
+
async function handleAssistantText(hookData, config) {
|
|
395
|
+
const sessionId = hookData.session_id;
|
|
396
|
+
if (!sessionId)
|
|
397
|
+
return;
|
|
398
|
+
const session = readSessionState(sessionId);
|
|
399
|
+
if (!session)
|
|
400
|
+
return;
|
|
401
|
+
const text = typeof hookData.text === 'string'
|
|
402
|
+
? hookData.text
|
|
403
|
+
: (typeof hookData.message?.content === 'string' ? hookData.message.content : '');
|
|
404
|
+
if (!text.trim())
|
|
405
|
+
return;
|
|
406
|
+
session.sequence += 1;
|
|
407
|
+
await apiCall(`${session.apiUrl}/api/prompts/${session.promptId}/logs`, 'POST', session.token, {
|
|
408
|
+
logs: [{
|
|
409
|
+
type: 'output',
|
|
410
|
+
level: 'info',
|
|
411
|
+
sequence: session.sequence,
|
|
412
|
+
output: {
|
|
413
|
+
content: truncate(text, 10000),
|
|
414
|
+
stream: 'assistant',
|
|
415
|
+
},
|
|
416
|
+
}],
|
|
417
|
+
});
|
|
418
|
+
writeSessionState(sessionId, session);
|
|
419
|
+
}
|
|
420
|
+
async function handleStop(hookData, config, client = 'claude') {
|
|
296
421
|
const sessionId = hookData.session_id;
|
|
297
422
|
if (!sessionId)
|
|
298
423
|
return;
|
|
@@ -308,7 +433,7 @@ async function handleStop(hookData, config) {
|
|
|
308
433
|
sequence: session.sequence,
|
|
309
434
|
system: {
|
|
310
435
|
event: 'complete',
|
|
311
|
-
message: 'Claude Code session completed',
|
|
436
|
+
message: client === 'cursor' ? 'Cursor session completed' : 'Claude Code session completed',
|
|
312
437
|
},
|
|
313
438
|
}],
|
|
314
439
|
});
|
|
@@ -350,8 +475,25 @@ function sanitizeToolInput(toolName, input) {
|
|
|
350
475
|
function truncate(str, maxLen) {
|
|
351
476
|
return str.length > maxLen ? str.slice(0, maxLen) + '...' : str;
|
|
352
477
|
}
|
|
478
|
+
/**
|
|
479
|
+
* Identity of a tool call for de-duplication. Content-based rather than
|
|
480
|
+
* id-based on purpose: the SAME shell command reaching us through two different
|
|
481
|
+
* Cursor hooks carries two different `tool_use_id`s but identical content.
|
|
482
|
+
*/
|
|
483
|
+
export function toolDedupeKey(toolName, toolInput) {
|
|
484
|
+
let payload;
|
|
485
|
+
try {
|
|
486
|
+
// Stable key regardless of property order.
|
|
487
|
+
const keys = Object.keys(toolInput).sort();
|
|
488
|
+
payload = JSON.stringify(keys.map(k => [k, toolInput[k]]));
|
|
489
|
+
}
|
|
490
|
+
catch {
|
|
491
|
+
payload = String(Object.keys(toolInput).sort().join(','));
|
|
492
|
+
}
|
|
493
|
+
return `${toolName}:${truncate(payload, 500)}`;
|
|
494
|
+
}
|
|
353
495
|
// --- Main entry point ---
|
|
354
|
-
export async function handleHookEvent(event) {
|
|
496
|
+
export async function handleHookEvent(event, clientOpt) {
|
|
355
497
|
try {
|
|
356
498
|
// Find project config
|
|
357
499
|
const config = findOrquestaConfig(process.cwd());
|
|
@@ -371,23 +513,30 @@ export async function handleHookEvent(event) {
|
|
|
371
513
|
process.exit(0);
|
|
372
514
|
}
|
|
373
515
|
}
|
|
516
|
+
// Cursor speaks a different dialect of the same protocol — translate before
|
|
517
|
+
// any handler sees it, so the handlers stay single-shape.
|
|
518
|
+
const client = detectClient(hookData, clientOpt);
|
|
519
|
+
hookData = normalizeHookData(hookData);
|
|
374
520
|
// Route to handler
|
|
375
521
|
switch (event) {
|
|
376
522
|
case 'prompt-submit':
|
|
377
|
-
await handlePromptSubmit(hookData, config);
|
|
523
|
+
await handlePromptSubmit(hookData, config, client);
|
|
378
524
|
break;
|
|
379
525
|
case 'tool-use':
|
|
380
526
|
await handleToolUse(hookData, config);
|
|
381
527
|
break;
|
|
528
|
+
case 'assistant-text':
|
|
529
|
+
await handleAssistantText(hookData, config);
|
|
530
|
+
break;
|
|
382
531
|
case 'stop':
|
|
383
|
-
await handleStop(hookData, config);
|
|
532
|
+
await handleStop(hookData, config, client);
|
|
384
533
|
break;
|
|
385
534
|
default:
|
|
386
535
|
process.stderr.write(`[orquesta-hook] Unknown event: ${event}\n`);
|
|
387
536
|
}
|
|
388
537
|
}
|
|
389
538
|
catch (err) {
|
|
390
|
-
// Never block
|
|
539
|
+
// Never block the host IDE — log error and exit cleanly
|
|
391
540
|
process.stderr.write(`[orquesta-hook] Error: ${err}\n`);
|
|
392
541
|
}
|
|
393
542
|
process.exit(0);
|
package/dist/hook.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -31,10 +31,10 @@ import { fileURLToPath } from 'url';
|
|
|
31
31
|
import * as logger from './logger.js';
|
|
32
32
|
import { startDaemon, isDaemonChild, acquireSingleInstanceLock } from './daemon.js';
|
|
33
33
|
import { getCliTokenHash } from './cli-config.js';
|
|
34
|
-
import { validateToken, markDisconnected, subscribeToChannel, setAgentToken, reportAgentError, reportAgentProblem, persistAgentSettings, startHeartbeat, stopHeartbeat, setPermissionModeUpdater, setCliPreferenceUpdater, setCliEndpointUpdater, setBrowserEnabledUpdater, setSandboxUpdater, setSandboxAccessUpdater, setCurrentProjectId, getCurrentProjectId, fetchCredentials, fetchSkills, syncSkillsToDirectory, uploadClaudeMd, setClaudeAuthChecker, setOrquestaCliChecker, setKimiCliChecker, setActiveCliResolver, setEffectiveConfigResolver, setAgentVersion, setAgentName, } from './supabase.js';
|
|
34
|
+
import { validateToken, markDisconnected, subscribeToChannel, setAgentToken, reportAgentError, reportAgentProblem, persistAgentSettings, startHeartbeat, stopHeartbeat, setPermissionModeUpdater, setCliPreferenceUpdater, setCliEndpointUpdater, setBrowserEnabledUpdater, setSandboxUpdater, setSandboxAccessUpdater, setCurrentProjectId, getCurrentProjectId, fetchCredentials, fetchSkills, syncSkillsToDirectory, uploadClaudeMd, setClaudeAuthChecker, setOrquestaCliChecker, setKimiCliChecker, setCursorCliChecker, setActiveCliResolver, setEffectiveConfigResolver, setAgentVersion, setAgentName, } from './supabase.js';
|
|
35
35
|
import { createSocketIOConnection, createExecutionChannel, setupSocketIOListeners, } from './socketio-transport.js';
|
|
36
36
|
import { execSync, spawn } from 'child_process';
|
|
37
|
-
import { execute, evaluate, cancel, cancelAll, hasRunningProcesses, checkClaudeAuth, configureAuth, gitClone, gitPull, setPermissionMode, setSandboxConfig, setSandboxAccess, setAgentInstructions, setProjectSettings, handleSupervisionResponse, setInjectedCredentials, generatePlanItems, isOrquestaCliAvailable, isClaudeCliAvailable, setCliPreference, setCliEndpoint, setBrowserEnabled, selectCli, isKimiCliAvailable,
|
|
37
|
+
import { execute, evaluate, cancel, cancelAll, hasRunningProcesses, checkClaudeAuth, configureAuth, gitClone, gitPull, setPermissionMode, setSandboxConfig, setSandboxAccess, setAgentInstructions, setProjectSettings, handleSupervisionResponse, setInjectedCredentials, generatePlanItems, isOrquestaCliAvailable, isClaudeCliAvailable, setCliPreference, setCliEndpoint, setBrowserEnabled, selectCli, isKimiCliAvailable, isCursorCliAvailable, checkCursorAuth,
|
|
38
38
|
// Interactive session functions
|
|
39
39
|
startSession, sendSessionInput, endSession, terminateSession, hasActiveSession, hasActiveSessionFor, getEffectiveRuntimeConfig, getSessionStatus, resizeSession, setOnSessionEnded, listResumableSessions, } from './executor.js';
|
|
40
40
|
import { startBrowserSession, endBrowserSession, tunnelInbound, openBrowserTunnel, browserRpc, runBrowserGoal, pauseBrowserGoal, resumeBrowserGoal, cancelBrowserGoal, shutdownAllBrowserSessions, } from './browser.js';
|
|
@@ -158,6 +158,7 @@ async function connect(options) {
|
|
|
158
158
|
authenticated: getCliTokenHash() !== null,
|
|
159
159
|
}));
|
|
160
160
|
setKimiCliChecker(() => ({ available: isKimiCliAvailable() }));
|
|
161
|
+
setCursorCliChecker(() => checkCursorAuth());
|
|
161
162
|
// Resolve BOTH the active CLI and the reason (incl. fallback) so the dashboard
|
|
162
163
|
// can surface "preferred X but using Y because X isn't installed".
|
|
163
164
|
setActiveCliResolver(() => selectCli());
|
|
@@ -354,8 +355,13 @@ async function connect(options) {
|
|
|
354
355
|
available.push('claude (Anthropic API)');
|
|
355
356
|
if (isKimiCliAvailable())
|
|
356
357
|
available.push('kimi (Kimi Code)');
|
|
358
|
+
// Installed but logged out is worth saying at startup: the CLI counts as
|
|
359
|
+
// available (selectCli will pick it) yet every prompt would fail on auth.
|
|
360
|
+
if (isCursorCliAvailable()) {
|
|
361
|
+
available.push(checkCursorAuth().authenticated ? 'cursor (cursor-agent)' : 'cursor (cursor-agent — NOT logged in, run `cursor-agent login`)');
|
|
362
|
+
}
|
|
357
363
|
if (available.length === 0) {
|
|
358
|
-
logger.warn('⚠ No CLI found (orquesta, claude, kimi)');
|
|
364
|
+
logger.warn('⚠ No CLI found (orquesta, claude, kimi, cursor)');
|
|
359
365
|
}
|
|
360
366
|
else {
|
|
361
367
|
logger.info(`Available CLIs: ${available.join(', ')}`);
|
|
@@ -365,7 +371,8 @@ async function connect(options) {
|
|
|
365
371
|
if (selectedCli) {
|
|
366
372
|
const label = selectedCli === 'orquesta' ? 'Orquesta CLI (local LLM)'
|
|
367
373
|
: selectedCli === 'kimi' ? 'Kimi Code CLI'
|
|
368
|
-
: '
|
|
374
|
+
: selectedCli === 'cursor' ? 'Cursor CLI (cursor-agent)'
|
|
375
|
+
: 'Claude CLI (Anthropic API)';
|
|
369
376
|
logger.success(`✓ Using: ${label}`);
|
|
370
377
|
logger.debug(`Selection reason: ${reason}`);
|
|
371
378
|
}
|
|
@@ -1452,8 +1459,8 @@ program
|
|
|
1452
1459
|
.option('--sandbox', 'Isolate the agent to its working directory using bubblewrap (rest of filesystem read-only). Requires bwrap on Linux.')
|
|
1453
1460
|
.option('--sandbox-extra-paths <paths>', 'Comma-separated extra read-write paths when --sandbox is on.')
|
|
1454
1461
|
.option('--sandbox-strict', 'Strict sandbox: also tmpfs-mask /home so the agent sees only its project + OS (hides other projects, ~/.ssh, ~/.aws, etc.) and reduce the spawned CLI env to an allowlist. Implies --sandbox.')
|
|
1455
|
-
.option('--cli-preference <preference>', 'CLI preference: auto (prefer orquesta), orquesta
|
|
1456
|
-
.option('--mode <mode>', 'Alias for --cli-preference: orquesta
|
|
1462
|
+
.option('--cli-preference <preference>', 'CLI preference: auto (prefer orquesta), orquesta, claude, kimi, or cursor (cursor-agent). Defaults to auto.')
|
|
1463
|
+
.option('--mode <mode>', 'Alias for --cli-preference: auto, orquesta, claude, kimi or cursor')
|
|
1457
1464
|
.option('--renew', 'Rotate this agent token: mint a fresh oat_, revoke the current one, print the new token, and exit. Update your start command/script with it to reconnect.')
|
|
1458
1465
|
.option('-D, --daemon', 'Run in daemon mode with automatic restart on exit')
|
|
1459
1466
|
.option('--max-restarts <number>', 'Maximum restart attempts in daemon mode (0=unlimited)', '0')
|
|
@@ -1477,7 +1484,7 @@ program
|
|
|
1477
1484
|
options.cliPreference = options.mode;
|
|
1478
1485
|
}
|
|
1479
1486
|
// Validate CLI preference
|
|
1480
|
-
if (options.cliPreference && !['auto', 'orquesta', 'claude', 'kimi'].includes(options.cliPreference)) {
|
|
1487
|
+
if (options.cliPreference && !['auto', 'orquesta', 'claude', 'kimi', 'cursor'].includes(options.cliPreference)) {
|
|
1481
1488
|
logger.error('Invalid CLI preference/mode. Use "auto", "orquesta", "claude", or "kimi".');
|
|
1482
1489
|
process.exit(1);
|
|
1483
1490
|
}
|
|
@@ -1507,23 +1514,30 @@ program
|
|
|
1507
1514
|
agentName: options.name,
|
|
1508
1515
|
});
|
|
1509
1516
|
});
|
|
1510
|
-
// Hook command — Claude Code hook event handler
|
|
1517
|
+
// Hook command — Claude Code / Cursor hook event handler
|
|
1511
1518
|
program
|
|
1512
1519
|
.command('hook <event>')
|
|
1513
|
-
.description('Handle
|
|
1514
|
-
.
|
|
1520
|
+
.description('Handle IDE hook events (prompt-submit, tool-use, assistant-text, stop)')
|
|
1521
|
+
.option('--client <client>', 'Which tool invoked the hook: claude or cursor (auto-detected if omitted)')
|
|
1522
|
+
.action(async (event, options) => {
|
|
1515
1523
|
const { handleHookEvent } = await import('./hook.js');
|
|
1516
|
-
await handleHookEvent(event);
|
|
1524
|
+
await handleHookEvent(event, options.client);
|
|
1517
1525
|
});
|
|
1518
|
-
// Init command — set up Claude Code hook integration
|
|
1526
|
+
// Init command — set up Claude Code / Cursor hook integration
|
|
1519
1527
|
program
|
|
1520
1528
|
.command('init')
|
|
1521
|
-
.description('Initialize
|
|
1529
|
+
.description('Initialize Orquesta hook integration for this project (Claude Code and/or Cursor)')
|
|
1522
1530
|
.requiredOption('--token <token>', 'Orquesta token (oat_xxx or oclt_xxx)')
|
|
1523
1531
|
.option('--api-url <url>', 'Orquesta API URL', 'https://getorquesta.com')
|
|
1532
|
+
.option('--client <client>', 'Which tool to wire: claude, cursor, or both', 'both')
|
|
1524
1533
|
.action(async (options) => {
|
|
1525
1534
|
const { initProject } = await import('./init.js');
|
|
1526
|
-
|
|
1535
|
+
const client = options.client;
|
|
1536
|
+
if (!['claude', 'cursor', 'both'].includes(client)) {
|
|
1537
|
+
console.error(` Error: --client must be one of claude, cursor, both (got "${client}")`);
|
|
1538
|
+
process.exit(1);
|
|
1539
|
+
}
|
|
1540
|
+
await initProject({ ...options, client: client });
|
|
1527
1541
|
});
|
|
1528
1542
|
// Setup command
|
|
1529
1543
|
program
|