orquesta-agent 0.2.235 → 0.2.239

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +45 -0
  2. package/dist/cli-auth-detect.d.ts +17 -0
  3. package/dist/cli-auth-detect.d.ts.map +1 -0
  4. package/dist/cli-auth-detect.js +31 -0
  5. package/dist/cli-auth-detect.js.map +1 -0
  6. package/dist/executor.d.ts +12 -4
  7. package/dist/executor.d.ts.map +1 -1
  8. package/dist/executor.js +232 -70
  9. package/dist/executor.js.map +1 -1
  10. package/dist/fs-browse.d.ts +35 -0
  11. package/dist/fs-browse.d.ts.map +1 -0
  12. package/dist/fs-browse.js +106 -0
  13. package/dist/fs-browse.js.map +1 -0
  14. package/dist/hook.d.ts +26 -1
  15. package/dist/hook.d.ts.map +1 -1
  16. package/dist/hook.js +170 -21
  17. package/dist/hook.js.map +1 -1
  18. package/dist/index.js +37 -15
  19. package/dist/index.js.map +1 -1
  20. package/dist/init.d.ts +42 -0
  21. package/dist/init.d.ts.map +1 -1
  22. package/dist/init.js +100 -28
  23. package/dist/init.js.map +1 -1
  24. package/dist/sandbox.d.ts.map +1 -1
  25. package/dist/sandbox.js +4 -0
  26. package/dist/sandbox.js.map +1 -1
  27. package/dist/supabase.d.ts +35 -9
  28. package/dist/supabase.d.ts.map +1 -1
  29. package/dist/supabase.js +40 -4
  30. package/dist/supabase.js.map +1 -1
  31. package/dist/types/hook-types.d.ts +49 -1
  32. package/dist/types/hook-types.d.ts.map +1 -1
  33. package/dist/ui/onboarding.js +1 -1
  34. package/dist/ui/onboarding.js.map +1 -1
  35. package/dist/ui/public/app.js +11 -1
  36. package/dist/ui/public/index.html +1 -0
  37. package/dist/ui/public/style.css +1 -0
  38. package/dist/ui/public/welcome.html +2 -0
  39. package/dist/ui/server.d.ts +1 -1
  40. package/dist/ui/server.d.ts.map +1 -1
  41. package/dist/ui/server.js +114 -45
  42. package/dist/ui/server.js.map +1 -1
  43. package/dist/ui/types.d.ts +1 -1
  44. package/dist/ui/types.d.ts.map +1 -1
  45. package/dist/ws-client.d.ts +15 -3
  46. package/dist/ws-client.d.ts.map +1 -1
  47. package/dist/ws-client.js +42 -4
  48. package/dist/ws-client.js.map +1 -1
  49. package/package.json +1 -1
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Read-only file browsing for the dashboard's Code Browser.
3
+ *
4
+ * A project bought as "Solo Orquesta" has no GitHub repository and no SSH
5
+ * credentials — the two sources the browser knew about — so the panel was
6
+ * permanently blocked even though the agent is connected and the files are
7
+ * right there on the machine. This answers `fs:list` / `fs:read` from the
8
+ * agent's own working directory. QA-68.
9
+ *
10
+ * Read-only on purpose, and confined to the working directory: it resolves
11
+ * every requested path and refuses anything that lands outside, symlinks
12
+ * included, so a crafted path cannot be used to read the rest of the disk.
13
+ */
14
+ export interface BrowseItem {
15
+ name: string;
16
+ path: string;
17
+ type: 'file' | 'dir';
18
+ size: number;
19
+ }
20
+ export declare function listDirectory(root: string, requestedPath?: string): {
21
+ path: string;
22
+ items: BrowseItem[];
23
+ truncated: boolean;
24
+ } | {
25
+ error: string;
26
+ };
27
+ export declare function readFileForBrowser(root: string, requestedPath?: string): {
28
+ path: string;
29
+ name: string;
30
+ content: string;
31
+ size: number;
32
+ } | {
33
+ error: string;
34
+ };
35
+ //# sourceMappingURL=fs-browse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-browse.d.ts","sourceRoot":"","sources":["../src/fs-browse.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,KAAK,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb;AAsCD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG;IACnE,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;CACnB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAyCpB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG;IACxE,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CA2BpB"}
@@ -0,0 +1,106 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import * as logger from './logger.js';
4
+ /** A listing is a directory pane — long enough to be useful, short enough to send. */
5
+ const MAX_ENTRIES = 1000;
6
+ /** Above this a file stops being something you read in a browser pane. */
7
+ const MAX_FILE_BYTES = 1024 * 1024;
8
+ /**
9
+ * Resolve `rel` beneath `root`, or null when it escapes.
10
+ *
11
+ * Both the lexical path and its realpath are checked: `..` is caught by the
12
+ * first, a symlink pointing out of the tree only by the second.
13
+ */
14
+ function resolveInside(root, rel) {
15
+ const base = path.resolve(root);
16
+ const cleaned = (rel || '').replace(/^[/\\]+/, '');
17
+ const target = path.resolve(base, cleaned === '.' ? '' : cleaned);
18
+ const contains = (p) => p === base || p.startsWith(base + path.sep);
19
+ if (!contains(target))
20
+ return null;
21
+ try {
22
+ const real = fs.realpathSync(target);
23
+ const realBase = fs.realpathSync(base);
24
+ if (real !== realBase && !real.startsWith(realBase + path.sep))
25
+ return null;
26
+ }
27
+ catch {
28
+ // Does not exist yet / cannot be resolved — the caller's stat will report it.
29
+ }
30
+ return target;
31
+ }
32
+ /** Path as the dashboard addresses it: relative to the root, forward slashes. */
33
+ function toRelative(root, absolute) {
34
+ const rel = path.relative(path.resolve(root), absolute);
35
+ return rel.split(path.sep).join('/');
36
+ }
37
+ export function listDirectory(root, requestedPath) {
38
+ const target = resolveInside(root, requestedPath);
39
+ if (!target)
40
+ return { error: 'Path is outside the working directory' };
41
+ let entries;
42
+ try {
43
+ const stat = fs.statSync(target);
44
+ if (!stat.isDirectory())
45
+ return { error: 'Not a directory' };
46
+ entries = fs.readdirSync(target, { withFileTypes: true });
47
+ }
48
+ catch (err) {
49
+ return { error: err instanceof Error ? err.message : 'Could not read directory' };
50
+ }
51
+ // `.git` is megabytes of objects nobody browses, and the GitHub source does
52
+ // not show it either — keeping it out keeps the two sources looking alike.
53
+ const visible = entries.filter(e => e.name !== '.git');
54
+ const truncated = visible.length > MAX_ENTRIES;
55
+ const items = [];
56
+ for (const entry of visible.slice(0, MAX_ENTRIES)) {
57
+ const absolute = path.join(target, entry.name);
58
+ let size = 0;
59
+ let isDir = entry.isDirectory();
60
+ try {
61
+ const stat = fs.statSync(absolute); // follows symlinks, so a linked dir reads as a dir
62
+ size = stat.isFile() ? stat.size : 0;
63
+ isDir = stat.isDirectory();
64
+ }
65
+ catch {
66
+ // Broken symlink or a race with a delete — list it as an empty file.
67
+ }
68
+ items.push({
69
+ name: entry.name,
70
+ path: toRelative(root, absolute),
71
+ type: isDir ? 'dir' : 'file',
72
+ size,
73
+ });
74
+ }
75
+ items.sort((a, b) => (a.type !== b.type ? (a.type === 'dir' ? -1 : 1) : a.name.localeCompare(b.name)));
76
+ return { path: toRelative(root, target), items, truncated };
77
+ }
78
+ export function readFileForBrowser(root, requestedPath) {
79
+ const target = resolveInside(root, requestedPath);
80
+ if (!target)
81
+ return { error: 'Path is outside the working directory' };
82
+ try {
83
+ const stat = fs.statSync(target);
84
+ if (!stat.isFile())
85
+ return { error: 'Not a file' };
86
+ if (stat.size > MAX_FILE_BYTES) {
87
+ return { error: `File is too large to open here (${Math.round(stat.size / 1024)} KB)` };
88
+ }
89
+ const buffer = fs.readFileSync(target);
90
+ // A NUL byte early on is the usual, cheap "this is not text" signal.
91
+ if (buffer.subarray(0, 8000).includes(0)) {
92
+ return { error: 'Binary file' };
93
+ }
94
+ return {
95
+ path: toRelative(root, target),
96
+ name: path.basename(target),
97
+ content: buffer.toString('utf-8'),
98
+ size: stat.size,
99
+ };
100
+ }
101
+ catch (err) {
102
+ logger.debug(`[fs-browse] read failed: ${err instanceof Error ? err.message : err}`);
103
+ return { error: err instanceof Error ? err.message : 'Could not read file' };
104
+ }
105
+ }
106
+ //# sourceMappingURL=fs-browse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-browse.js","sourceRoot":"","sources":["../src/fs-browse.ts"],"names":[],"mappings":"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"}
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
- export declare function handleHookEvent(event: string): Promise<void>;
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
@@ -1 +1 @@
1
- {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA6YH,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyClE"}
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
- try {
169
- process.stdout.write(buildOrquestaContext(config));
170
- // Inject active coordination channels too, if any. Fetched per-prompt so newly-created
171
- // bridges are visible immediately. ~1s upper boundrace against a short timeout.
172
- const coord = await Promise.race([
173
- fetchCoordinationBlock(config),
174
- new Promise(resolve => setTimeout(() => resolve(''), 1500)),
175
- ]);
176
- if (coord)
177
- process.stdout.write(coord);
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 workswe 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
- cliType: 'claude-code',
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
- async function handleStop(hookData, config) {
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 Claude — log error and exit cleanly
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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"}