@agentdeck/hooks 1.6.0 → 1.7.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.
@@ -26,6 +26,7 @@ export interface InstallResult {
26
26
  warning?: string;
27
27
  }
28
28
  interface ManagedBlockOptions {
29
+ includeFeatures?: boolean;
29
30
  includeNotify?: boolean;
30
31
  includeOtel?: boolean;
31
32
  otelEndpoint?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"codex-install.d.ts","sourceRoot":"","sources":["../src/codex-install.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,yBAAyB,QAA2C,CAAC;AAClF;;;;;8CAK8C;AAC9C,eAAO,MAAM,kCAAkC,QAAoD,CAAC;AAOpG,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;mEAC+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;uEACmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAsCD,UAAU,mBAAmB;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;iBAEiB;AACjB,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,mBAAwB,GAAG,MAAM,CAsCvE;AA4HD;;;kEAGkE;AAClE,wBAAgB,0BAA0B,CAAC,KAAK,SAAwB,GAAG,MAAM,CAEhF;AA0ED;;;;;;;gEAOgE;AAChE,wBAAgB,yBAAyB,CAAC,IAAI,GAAE,cAAmB,GAAG,aAAa,CAoDlF;AAED;;yCAEyC;AACzC,wBAAgB,mBAAmB,CAAC,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,IAAI,CASvG;AAED;;0EAE0E;AAC1E,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,cAAmB,GAAG,aAAa,CAE1E"}
1
+ {"version":3,"file":"codex-install.d.ts","sourceRoot":"","sources":["../src/codex-install.ts"],"names":[],"mappings":"AAiCA,eAAO,MAAM,yBAAyB,QAA2C,CAAC;AAClF;;;;;8CAK8C;AAC9C,eAAO,MAAM,kCAAkC,QAAoD,CAAC;AAOpG,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;mEAC+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;uEACmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAsCD,UAAU,mBAAmB;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;iBAEiB;AACjB,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,mBAAwB,GAAG,MAAM,CAsCvE;AA8HD;;;kEAGkE;AAClE,wBAAgB,0BAA0B,CAAC,KAAK,SAAwB,GAAG,MAAM,CAEhF;AAsFD;;;;;;;gEAOgE;AAChE,wBAAgB,yBAAyB,CAAC,IAAI,GAAE,cAAmB,GAAG,aAAa,CA2DlF;AAED;;yCAEyC;AACzC,wBAAgB,mBAAmB,CAAC,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,IAAI,CAcvG;AAED;;0EAE0E;AAC1E,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,cAAmB,GAAG,aAAa,CAE1E"}
@@ -15,10 +15,11 @@
15
15
  //
16
16
  // MUST stay in sync with apple/AgentDeck/Daemon/Core/CodexConfigInstaller.swift
17
17
  // (managedBlockBody schema + lifecycle hook table layout).
18
- import { readFileSync, writeFileSync, existsSync, mkdirSync, renameSync, unlinkSync } from 'fs';
18
+ import { readFileSync, writeFileSync, existsSync, mkdirSync, renameSync, unlinkSync, lstatSync, statSync } from 'fs';
19
+ import { randomUUID } from 'node:crypto';
19
20
  import { dirname, join } from 'path';
20
21
  import { homedir } from 'os';
21
- import { applyManagedBlock, removeManagedBlock, hasTopLevelKeyOutsideFence, hasTableOutsideFence, hasIncompatibleHookTableOutsideFence, quoted, } from './codex-mini-toml.js';
22
+ import { applyManagedBlock, removeManagedBlock, hasTopLevelKeyOutsideFence, hasTableOutsideFence, hasIncompatibleHookTableOutsideFence, quoted, configEditIssue, existingFeaturesEnableHooks, } from './codex-mini-toml.js';
22
23
  export const DEFAULT_CODEX_CONFIG_PATH = join(homedir(), '.codex', 'config.toml');
23
24
  /** Sidecar script for the Windows notify fallback. Codex execs `notify`
24
25
  * as a bare argv array (no shell) and appends the JSON payload as the
@@ -76,11 +77,7 @@ export function managedBlockBody(opts = {}) {
76
77
  const lines = [
77
78
  '# Codex lifecycle hooks. Command hooks receive JSON on stdin;',
78
79
  '# each snippet forwards that stdin body unchanged to AgentDeck.',
79
- '[features]',
80
- 'hooks = true',
81
80
  ];
82
- lines.push('');
83
- lines.push(...buildLifecycleHookTables(platform));
84
81
  if (includeNotify) {
85
82
  lines.push('');
86
83
  lines.push('# Optional turn-complete notification fallback.');
@@ -95,6 +92,10 @@ export function managedBlockBody(opts = {}) {
95
92
  }
96
93
  lines.push(buildNotifyAssignment('codex_turn_complete', platform, opts.notifyScriptPath));
97
94
  }
95
+ if (opts.includeFeatures !== false)
96
+ lines.push('[features]', 'hooks = true');
97
+ lines.push('');
98
+ lines.push(...buildLifecycleHookTables(platform));
98
99
  if (includeOtel) {
99
100
  lines.push('');
100
101
  lines.push('# OTel trace exporter — best-effort live progress signal.');
@@ -191,11 +192,13 @@ function buildLifecycleHookCommand(event, platform) {
191
192
  if (platform === 'win32') {
192
193
  return buildWindowsLifecycleHookCommand(event);
193
194
  }
194
- return `sh -c ${shellSingleQuoted(buildStdinPostSnippet(event))}`;
195
+ return `exec sh -c ${shellSingleQuoted(buildStdinPostSnippet(event))}`;
195
196
  }
197
+ // Replace the command runner shell so PPID names Codex, not an extra wrapper.
198
+ // The daemon uses this identity to attribute headless child runs to their launcher.
196
199
  function buildStdinPostSnippet(event) {
197
200
  return posixPortPreamble().concat([
198
- `curl -sf --connect-timeout 0.2 --max-time 0.8 -X POST "http://127.0.0.1:$PORT/hooks/${event}" -H 'Content-Type: application/json' -d @- >/dev/null 2>&1 || true`,
201
+ `curl -sf --connect-timeout 0.2 --max-time 0.8 -X POST "http://127.0.0.1:$PORT/hooks/${event}" -H 'Content-Type: application/json' -H "X-AgentDeck-Pid: $PPID" -d @- >/dev/null 2>&1 || true`,
199
202
  ]).join('\n');
200
203
  }
201
204
  function shellSingleQuoted(s) {
@@ -252,15 +255,25 @@ function windowsEncodedCommand(s) {
252
255
  }
253
256
  // ─── File I/O ───────────────────────────────────────────────────────────
254
257
  function readText(path) {
255
- if (!existsSync(path))
256
- return '';
257
258
  try {
258
- return readFileSync(path, 'utf-8');
259
+ // A symlink belongs to the user's dotfile manager. Never replace it with
260
+ // a regular file via atomic rename.
261
+ if (!lstatSync(path).isFile())
262
+ return null;
263
+ return new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(readFileSync(path));
259
264
  }
260
- catch {
261
- return '';
265
+ catch (error) {
266
+ return error.code === 'ENOENT' ? '' : null;
262
267
  }
263
268
  }
269
+ function unreadableReason(path) {
270
+ try {
271
+ if (lstatSync(path).isSymbolicLink())
272
+ return 'config.toml is a symbolic link; kept unchanged. Manage its target through your dotfile manager';
273
+ }
274
+ catch { /* report the read failure below */ }
275
+ return 'config.toml unreadable; kept unchanged';
276
+ }
264
277
  /** Write the notify sidecar only when its content changed, so repeated
265
278
  * installs stay idempotent (no mtime churn). Returns false when the
266
279
  * script cannot be guaranteed on disk. */
@@ -274,17 +287,24 @@ function writeScriptIfChanged(content, path) {
274
287
  }
275
288
  function writeTextAtomic(text, path) {
276
289
  const dir = dirname(path);
290
+ const tmp = `${path}.agentdeck.${randomUUID()}.tmp`;
277
291
  try {
278
292
  if (!existsSync(dir))
279
293
  mkdirSync(dir, { recursive: true });
280
- const tmp = `${path}.agentdeck.tmp`;
281
- writeFileSync(tmp, text, 'utf-8');
294
+ const mode = existsSync(path) ? statSync(path).mode & 0o777 : 0o600;
295
+ writeFileSync(tmp, text, { encoding: 'utf-8', mode, flag: 'wx' });
282
296
  renameSync(tmp, path);
283
297
  return true;
284
298
  }
285
299
  catch {
286
300
  return false;
287
301
  }
302
+ finally {
303
+ try {
304
+ unlinkSync(tmp);
305
+ }
306
+ catch { /* renamed or never created */ }
307
+ }
288
308
  }
289
309
  // ─── Public install / uninstall / migrate ──────────────────────────────
290
310
  /** Install AgentDeck's Codex observation entries into `~/.codex/config.toml`
@@ -300,20 +320,27 @@ export function installCodexHooksIfNeeded(opts = {}) {
300
320
  return { installed: false, reason: 'AGENTDECK_NO_CODEX_HOOKS=1' };
301
321
  const path = opts.configPath ?? DEFAULT_CODEX_CONFIG_PATH;
302
322
  const original = readText(path);
323
+ if (original === null)
324
+ return { installed: false, reason: unreadableReason(path) };
325
+ const editIssue = configEditIssue(original);
326
+ if (editIssue)
327
+ return { installed: false, reason: editIssue };
303
328
  // A user `[features]` table would duplicate ours. Official lifecycle
304
329
  // arrays, however, are intentionally additive in Codex and can safely
305
330
  // coexist with the AgentDeck arrays. Refuse only non-array hook tables.
306
- if (hasTableOutsideFence(original, 'features')) {
331
+ const outside = removeManagedBlock(original);
332
+ const hasFeatures = hasTableOutsideFence(outside, 'features');
333
+ if (hasFeatures && !existingFeaturesEnableHooks(original)) {
307
334
  return { installed: false, reason: 'user-authored [features] present' };
308
335
  }
309
- if (hasIncompatibleHookTableOutsideFence(original)) {
336
+ if (hasIncompatibleHookTableOutsideFence(outside)) {
310
337
  return { installed: false, reason: 'incompatible user-authored [hooks] table present' };
311
338
  }
312
339
  const platform = opts.platform ?? process.platform;
313
- let includeNotify = !hasTopLevelKeyOutsideFence(original, 'notify');
340
+ let includeNotify = !hasTopLevelKeyOutsideFence(outside, 'notify');
314
341
  // OTel exporter stays POSIX-only for now — deliberately omitted on
315
342
  // win32 (unverified there); lifecycle hooks + notify carry the signal.
316
- const includeOtel = platform !== 'win32' && !hasTableOutsideFence(original, 'otel');
343
+ const includeOtel = platform !== 'win32' && !hasTableOutsideFence(outside, 'otel');
317
344
  let warning;
318
345
  const notifyScriptPath = opts.notifyScriptPath ?? DEFAULT_WINDOWS_NOTIFY_SCRIPT_PATH;
319
346
  if (includeNotify && platform === 'win32') {
@@ -326,6 +353,7 @@ export function installCodexHooksIfNeeded(opts = {}) {
326
353
  }
327
354
  const otelEndpoint = includeOtel ? buildOtelEndpoint(opts.daemonHttpPort) : undefined;
328
355
  const body = managedBlockBody({
356
+ includeFeatures: !hasFeatures,
329
357
  includeNotify,
330
358
  includeOtel,
331
359
  otelEndpoint,
@@ -337,6 +365,8 @@ export function installCodexHooksIfNeeded(opts = {}) {
337
365
  if (updated === original) {
338
366
  return { installed: true, warning };
339
367
  }
368
+ if (readText(path) !== original)
369
+ return { installed: false, reason: 'config.toml changed during setup; retry' };
340
370
  if (writeTextAtomic(updated, path)) {
341
371
  return { installed: true, warning };
342
372
  }
@@ -346,17 +376,24 @@ export function installCodexHooksIfNeeded(opts = {}) {
346
376
  * is absent. Does not delete the config file even if it becomes empty
347
377
  * (Codex may rely on its existence). */
348
378
  export function uninstallCodexHooks(opts = {}) {
349
- try {
350
- unlinkSync(opts.notifyScriptPath ?? DEFAULT_WINDOWS_NOTIFY_SCRIPT_PATH);
351
- }
352
- catch { /* absent on POSIX installs — nothing to remove */ }
353
379
  const path = opts.configPath ?? DEFAULT_CODEX_CONFIG_PATH;
354
- if (!existsSync(path))
355
- return;
356
380
  const original = readText(path);
381
+ if (original === null)
382
+ throw new Error(unreadableReason(path));
383
+ const issue = configEditIssue(original);
384
+ if (issue)
385
+ throw new Error(`Codex hooks were not removed: ${issue}`);
357
386
  const stripped = removeManagedBlock(original);
358
- if (stripped !== original)
359
- writeTextAtomic(stripped, path);
387
+ if (stripped !== original) {
388
+ if (readText(path) !== original)
389
+ throw new Error('config.toml changed during removal; retry');
390
+ if (!writeTextAtomic(stripped, path))
391
+ throw new Error('Could not save config.toml; Codex hooks were not removed');
392
+ }
393
+ try {
394
+ unlinkSync(opts.notifyScriptPath ?? DEFAULT_WINDOWS_NOTIFY_SCRIPT_PATH);
395
+ }
396
+ catch { /* absent on POSIX installs */ }
360
397
  }
361
398
  /** Re-apply the managed block when the daemon port (or any other resolved
362
399
  * field) might have changed. Equivalent to install but renamed for the
@@ -1 +1 @@
1
- {"version":3,"file":"codex-install.js","sourceRoot":"","sources":["../src/codex-install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-install.js","sourceRoot":"","sources":["../src/codex-install.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,15 @@
1
1
  export declare const OPEN_FENCE = "# >>> AgentDeck managed (do not edit) <<<";
2
2
  export declare const CLOSE_FENCE = "# <<< AgentDeck managed (do not edit) >>>";
3
+ /** Lossless editing is intentionally conservative: never guess the scope of
4
+ * multiline strings, damaged fences, or quoted/dotted integration keys. */
5
+ export declare function configEditIssue(text: string): string | undefined;
6
+ export declare function existingFeaturesEnableHooks(text: string): boolean;
3
7
  /** Replace the AgentDeck-managed fenced block (or append one when none
4
8
  * exists). The body is wrapped between OPEN_FENCE / CLOSE_FENCE so
5
9
  * removeManagedBlock can strip it cleanly later. Returns the full
6
10
  * updated TOML text. */
7
11
  export declare function applyManagedBlock(text: string, body: string): string;
8
- /** Strip the AgentDeck-managed block entirely. Idempotent — no-op when
12
+ /** Remove generated entries and preserve foreign data inside the fence. Idempotent — no-op when
9
13
  * the fence is absent. */
10
14
  export declare function removeManagedBlock(text: string): string;
11
15
  /** Detect a top-level `<key> = ...` definition outside the fence. Codex
@@ -1 +1 @@
1
- {"version":3,"file":"codex-mini-toml.d.ts","sourceRoot":"","sources":["../src/codex-mini-toml.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,UAAU,8CAA8C,CAAC;AACtE,eAAO,MAAM,WAAW,8CAA8C,CAAC;AAEvE;;;yBAGyB;AACzB,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAwBpE;AAED;2BAC2B;AAC3B,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAcvD;AAED;;oDAEoD;AACpD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAkB7E;AAED;;;qEAGqE;AACrE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAczE;AAED;;;;6EAI6E;AAC7E,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAc1E;AAED;uEACuE;AACvE,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAcxC"}
1
+ {"version":3,"file":"codex-mini-toml.d.ts","sourceRoot":"","sources":["../src/codex-mini-toml.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,UAAU,8CAA8C,CAAC;AACtE,eAAO,MAAM,WAAW,8CAA8C,CAAC;AAEvE;2EAC2E;AAC3E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAuBhE;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAajE;AAgBD;;;yBAGyB;AACzB,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAQpE;AAED;2BAC2B;AAC3B,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOvD;AAED;;oDAEoD;AACpD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAkB7E;AAED;;;qEAGqE;AACrE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAczE;AAED;;;;6EAI6E;AAC7E,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAc1E;AAED;uEACuE;AACvE,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAcxC"}
@@ -15,53 +15,99 @@
15
15
  // # <<< AgentDeck managed (do not edit) >>>
16
16
  //
17
17
  // applyManagedBlock replaces (or appends) the fence; removeManagedBlock
18
- // strips it. Everything outside the fence is preserved byte-for-byte.
18
+ // removes owned entries and retains later user additions. Outside text is preserved.
19
19
  export const OPEN_FENCE = '# >>> AgentDeck managed (do not edit) <<<';
20
20
  export const CLOSE_FENCE = '# <<< AgentDeck managed (do not edit) >>>';
21
+ /** Lossless editing is intentionally conservative: never guess the scope of
22
+ * multiline strings, damaged fences, or quoted/dotted integration keys. */
23
+ export function configEditIssue(text) {
24
+ if (!scanStatements(text))
25
+ return 'incomplete TOML string or collection; kept unchanged';
26
+ const lines = statements(text);
27
+ const opens = lines.filter(l => l === OPEN_FENCE).length;
28
+ const closes = lines.filter(l => l === CLOSE_FENCE).length;
29
+ if (opens !== closes || opens > 1 || (opens === 1 && lines.indexOf(OPEN_FENCE) > lines.indexOf(CLOSE_FENCE))) {
30
+ return 'incomplete or duplicate AgentDeck fence';
31
+ }
32
+ const fence = locateFence(lines);
33
+ if (fence && retainedFenceContent(lines.slice(fence.start + 1, fence.end - 1)).some(isOwnedCommand)) {
34
+ return 'modified AgentDeck hook table requires manual configuration; kept unchanged';
35
+ }
36
+ const outside = removeManagedBlock(text);
37
+ let inTable = false;
38
+ for (const line of statements(outside)) {
39
+ const code = withoutComment(line).trim();
40
+ if (/^\[\[?\s*["'](?:features|hooks|otel)["']/.test(code)
41
+ || (!inTable && /^(?:["'](?:features|hooks|otel|notify)["']\s*[.=]|(?:features|hooks|otel)\s*[.=])/.test(code))) {
42
+ return 'quoted, inline or dotted integration keys require manual configuration';
43
+ }
44
+ if (code.startsWith('['))
45
+ inTable = true;
46
+ }
47
+ return undefined;
48
+ }
49
+ export function existingFeaturesEnableHooks(text) {
50
+ let inFeatures = false;
51
+ let values = 0;
52
+ let enabled = false;
53
+ for (const line of statements(removeManagedBlock(text))) {
54
+ const code = withoutComment(line).trim();
55
+ if (code.startsWith('['))
56
+ inFeatures = /^\[\s*features\s*\]$/.test(code);
57
+ else if (inFeatures && /^hooks\s*=/.test(code)) {
58
+ values++;
59
+ enabled = /^hooks\s*=\s*true$/.test(code);
60
+ }
61
+ }
62
+ return values === 1 && enabled;
63
+ }
64
+ function withoutComment(line) {
65
+ let quote = '';
66
+ let escaped = false;
67
+ for (let i = 0; i < line.length; i++) {
68
+ const c = line[i];
69
+ if (escaped) {
70
+ escaped = false;
71
+ continue;
72
+ }
73
+ if (quote === '"' && c === '\\') {
74
+ escaped = true;
75
+ continue;
76
+ }
77
+ if (quote) {
78
+ if (c === quote)
79
+ quote = '';
80
+ }
81
+ else if (c === '"' || c === "'")
82
+ quote = c;
83
+ else if (c === '#')
84
+ return line.slice(0, i);
85
+ }
86
+ return line;
87
+ }
21
88
  /** Replace the AgentDeck-managed fenced block (or append one when none
22
89
  * exists). The body is wrapped between OPEN_FENCE / CLOSE_FENCE so
23
90
  * removeManagedBlock can strip it cleanly later. Returns the full
24
91
  * updated TOML text. */
25
92
  export function applyManagedBlock(text, body) {
26
- const lines = splitLines(text);
27
- const fenceRange = locateFence(lines);
28
- const bodyLines = body.length === 0 ? [] : splitLines(body);
29
- let replacement = [OPEN_FENCE, ...bodyLines, CLOSE_FENCE];
30
- if (fenceRange) {
31
- const preservedHookState = extractCodexHookState(lines.slice(fenceRange.start + 1, fenceRange.end - 1));
32
- if (preservedHookState.length > 0) {
33
- replacement = [...replacement, '', ...preservedHookState];
34
- }
35
- lines.splice(fenceRange.start, fenceRange.end - fenceRange.start, ...replacement);
36
- }
37
- else {
38
- // Pad with a blank line for readability when appending to a non-empty
39
- // file. Avoids glueing our fence onto the user's last key.
40
- if (lines.length > 0 && lines[lines.length - 1] !== '') {
41
- lines.push('');
42
- }
43
- lines.push(...replacement);
44
- }
45
- return lines.join('\n');
93
+ const lines = statements(removeManagedBlock(text));
94
+ const replacement = [OPEN_FENCE, ...(body.length ? statements(body) : []), CLOSE_FENCE];
95
+ // notify is a ROOT key. Put the block after user root keys but before
96
+ // their first table; an appended block silently scopes notify to a table.
97
+ const firstTable = lines.findIndex(isTableHeader);
98
+ lines.splice(firstTable < 0 ? lines.length : firstTable, 0, ...replacement);
99
+ return lines.join(text.includes('\r\n') ? '\r\n' : '\n');
46
100
  }
47
- /** Strip the AgentDeck-managed block entirely. Idempotent — no-op when
101
+ /** Remove generated entries and preserve foreign data inside the fence. Idempotent — no-op when
48
102
  * the fence is absent. */
49
103
  export function removeManagedBlock(text) {
50
- const lines = splitLines(text);
104
+ const lines = statements(text);
51
105
  const fenceRange = locateFence(lines);
52
- if (!fenceRange)
106
+ if (!fenceRange || lines[fenceRange.end - 1] !== CLOSE_FENCE)
53
107
  return text;
54
- lines.splice(fenceRange.start, fenceRange.end - fenceRange.start);
55
- // Collapse a trailing blank line that we may have inserted in
56
- // applyManagedBlock so removeManagedBlock truly returns the file to
57
- // its pre-apply shape.
58
- while (lines.length > 0 && lines[lines.length - 1] === '') {
59
- lines.pop();
60
- }
61
- // Restore a single trailing newline if the original ended with one.
62
- if (text.endsWith('\n'))
63
- lines.push('');
64
- return lines.join('\n');
108
+ const retained = retainedFenceContent(lines.slice(fenceRange.start + 1, fenceRange.end - 1));
109
+ lines.splice(fenceRange.start, fenceRange.end - fenceRange.start, ...retained);
110
+ return lines.join(text.includes('\r\n') ? '\r\n' : '\n');
65
111
  }
66
112
  /** Detect a top-level `<key> = ...` definition outside the fence. Codex
67
113
  * `notify` is a top-level key; if the user already wrote one our fenced
@@ -71,7 +117,7 @@ export function hasTopLevelKeyOutsideFence(text, key) {
71
117
  const regex = new RegExp(`^\\s*${escaped}\\s*=`);
72
118
  let insideFence = false;
73
119
  let insideTable = false;
74
- for (const line of splitLines(text)) {
120
+ for (const line of statements(text)) {
75
121
  if (line === OPEN_FENCE) {
76
122
  insideFence = true;
77
123
  continue;
@@ -82,14 +128,14 @@ export function hasTopLevelKeyOutsideFence(text, key) {
82
128
  }
83
129
  if (insideFence)
84
130
  continue;
85
- const trimmed = line.trim();
131
+ const trimmed = withoutComment(line).trim();
86
132
  if (trimmed.startsWith('[') && trimmed.endsWith(']')) {
87
133
  insideTable = true;
88
134
  continue;
89
135
  }
90
136
  if (insideTable)
91
137
  continue;
92
- if (regex.test(line))
138
+ if (regex.test(withoutComment(line)))
93
139
  return true;
94
140
  }
95
141
  return false;
@@ -102,9 +148,9 @@ export function hasTableOutsideFence(text, table) {
102
148
  const escaped = escapeRegex(table);
103
149
  // Match exactly `[otel]`, `[otel.something]`, `[[otel.something]]`,
104
150
  // but not `[otelfoo]`. Whitespace inside brackets is permissive.
105
- const regex = new RegExp(`^\\s*\\[\\[?\\s*${escaped}(\\.[A-Za-z0-9_\\-]+)*\\s*\\]\\]?\\s*$`);
151
+ const regex = new RegExp(`^\\s*\\[\\[?\\s*${escaped}(?=\\s*[.\\]])`);
106
152
  let insideFence = false;
107
- for (const line of splitLines(text)) {
153
+ for (const line of statements(text)) {
108
154
  if (line === OPEN_FENCE) {
109
155
  insideFence = true;
110
156
  continue;
@@ -117,7 +163,7 @@ export function hasTableOutsideFence(text, table) {
117
163
  continue;
118
164
  if (table === 'hooks' && isCodexHookStateHeader(line))
119
165
  continue;
120
- if (regex.test(line))
166
+ if (regex.test(withoutComment(line)))
121
167
  return true;
122
168
  }
123
169
  return false;
@@ -131,7 +177,7 @@ export function hasIncompatibleHookTableOutsideFence(text) {
131
177
  const anyHookHeader = /^\s*\[\[?\s*hooks(?:\.[^\]]+)?\s*\]\]?\s*$/;
132
178
  const mergeableLifecycleArray = /^\s*\[\[\s*hooks\.[A-Za-z0-9_-]+(?:\.hooks)?\s*\]\]\s*$/;
133
179
  let insideFence = false;
134
- for (const line of splitLines(text)) {
180
+ for (const line of statements(text)) {
135
181
  if (line === OPEN_FENCE) {
136
182
  insideFence = true;
137
183
  continue;
@@ -142,9 +188,9 @@ export function hasIncompatibleHookTableOutsideFence(text) {
142
188
  }
143
189
  if (insideFence || isCodexHookStateHeader(line))
144
190
  continue;
145
- if (!anyHookHeader.test(line))
191
+ if (!anyHookHeader.test(withoutComment(line)))
146
192
  continue;
147
- if (mergeableLifecycleArray.test(line))
193
+ if (mergeableLifecycleArray.test(withoutComment(line)))
148
194
  continue;
149
195
  return true;
150
196
  }
@@ -175,10 +221,59 @@ export function quoted(s) {
175
221
  return out;
176
222
  }
177
223
  // ─── internals ──────────────────────────────────────────────────────────
178
- function splitLines(text) {
179
- // String.split('\n') keeps trailing-empty so an input ending in "\n"
180
- // round-trips cleanly when re-joined with "\n".
181
- return text.split('\n');
224
+ /** Logical TOML statements with their original spelling. Headers/fences inside
225
+ * strings or collections are data, never insertion/removal boundaries. */
226
+ function scanStatements(text) {
227
+ const lines = text.split(/\r?\n/);
228
+ const out = [];
229
+ let pending = [], quote = '', multiline = false, depth = 0;
230
+ for (const line of lines) {
231
+ pending.push(line);
232
+ for (let i = 0; i < line.length; i++) {
233
+ const c = line[i];
234
+ if (quote) {
235
+ if (quote === '"' && c === '\\') {
236
+ i++;
237
+ continue;
238
+ }
239
+ if (c === quote) {
240
+ if (!multiline)
241
+ quote = '';
242
+ else if (line.slice(i, i + 3) === quote.repeat(3)) {
243
+ // TOML allows one or two quotes immediately before the closing triple.
244
+ while (line[i + 1] === c)
245
+ i++;
246
+ quote = '';
247
+ multiline = false;
248
+ }
249
+ }
250
+ }
251
+ else if (c === '#')
252
+ break;
253
+ else if (c === '"' || c === "'") {
254
+ quote = c;
255
+ multiline = line.slice(i, i + 3) === c.repeat(3);
256
+ if (multiline)
257
+ i += 2;
258
+ }
259
+ else if (c === '[' || c === '{')
260
+ depth++;
261
+ else if (c === ']' || c === '}') {
262
+ if (--depth < 0)
263
+ return undefined;
264
+ }
265
+ }
266
+ if (quote && !multiline)
267
+ return undefined;
268
+ if (!quote && depth === 0) {
269
+ out.push(pending.join(text.includes('\r\n') ? '\r\n' : '\n'));
270
+ pending = [];
271
+ }
272
+ }
273
+ return pending.length ? undefined : out;
274
+ }
275
+ function statements(text) {
276
+ return scanStatements(text) ?? [text];
182
277
  }
183
278
  function locateFence(lines) {
184
279
  const start = lines.indexOf(OPEN_FENCE);
@@ -201,38 +296,69 @@ function locateFence(lines) {
201
296
  function escapeRegex(s) {
202
297
  return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
203
298
  }
204
- function extractCodexHookState(lines) {
205
- const out = [];
206
- let capturing = false;
299
+ function isOwnedCommand(line) {
300
+ if (!/^command\s*=/.test(line.trim()))
301
+ return false;
302
+ if (line.includes('/hooks/codex_'))
303
+ return true;
304
+ const encoded = line.match(/-EncodedCommand\s+([A-Za-z0-9+/=]+)/)?.[1];
305
+ return !!encoded && Buffer.from(encoded, 'base64').toString('utf16le').includes('/hooks/codex_');
306
+ }
307
+ function generatedComment(line) {
308
+ return /^# (?:Codex lifecycle hooks\.|each snippet forwards|Optional turn-complete notification|Codex appends the JSON payload|so the 4th array element|powershell -File binds|it concatenates trailing argv|OTel trace exporter|Schema: \[otel\.)/.test(line.trim());
309
+ }
310
+ /** A fence is a location, not ownership: toml_edit inserts later user keys
311
+ * into it. Remove only the generated keys; keep foreign sections in scope.
312
+ * A features table extended by Codex becomes user-owned, including hooks=true. */
313
+ function retainedFenceContent(lines) {
314
+ const groups = [[]];
207
315
  for (const line of lines) {
208
- const tableHeader = isTableHeader(line);
209
- if (isCodexHookStateHeader(line)) {
210
- capturing = true;
211
- out.push(line);
316
+ if (isTableHeader(line) && !/^\[\[hooks\.[^.]+\.hooks\]\]$/.test(withoutComment(line).trim()))
317
+ groups.push([]);
318
+ groups[groups.length - 1].push(line);
319
+ }
320
+ const out = [];
321
+ for (const group of groups) {
322
+ const kept = group.filter(l => l.trim() && !generatedComment(l));
323
+ const data = kept.filter(l => withoutComment(l).trim());
324
+ if (!data.length) {
325
+ out.push(...kept);
212
326
  continue;
213
327
  }
214
- if (capturing && tableHeader) {
215
- break;
328
+ const header = withoutComment(data[0]).trim();
329
+ if (!isTableHeader(data[0])) {
330
+ out.push(...kept.filter(l => !(/^notify\s*=/.test(withoutComment(l).trim()) && (l.includes('agentdeck-notify') || l.includes('codex-notify.ps1')))));
216
331
  }
217
- if (capturing) {
218
- out.push(line);
332
+ else if (/^\[\s*features\s*\]$/.test(header)) {
333
+ if (data.slice(1).some(l => !/^hooks\s*=\s*true$/.test(withoutComment(l).trim())))
334
+ out.push(...kept);
335
+ else
336
+ out.push(...kept.filter(l => !withoutComment(l).trim()));
219
337
  }
220
- }
221
- while (out.length > 0 && isTrailingNonDataLine(out[out.length - 1])) {
222
- out.pop();
338
+ else if (/^\[\[hooks\.[^.]+\]\]$/.test(header)) {
339
+ // Generated lifecycle entries contain only these fields. Any extension
340
+ // belongs to the user and keeps the complete table context.
341
+ const commands = data.filter(l => /^command\s*=/.test(l.trim()));
342
+ const owned = commands.length > 0 && commands.every(isOwnedCommand);
343
+ if (!owned || data.slice(1).some(l => !/^(?:\[\[hooks\.|(?:matcher|type|command|timeout|notify)\s*=)/.test(withoutComment(l).trim())))
344
+ out.push(...kept);
345
+ }
346
+ else if (header === '[otel.trace_exporter.otlp-http]') {
347
+ const owned = data.some(l => /^endpoint\s*=\s*"http:\/\/127\.0\.0\.1:\d+\/otel\/v1\/traces"$/.test(withoutComment(l).trim()));
348
+ if (!owned || data.slice(1).some(l => !/^(?:endpoint|protocol)\s*=/.test(withoutComment(l).trim())))
349
+ out.push(...kept);
350
+ }
351
+ else
352
+ out.push(...kept);
223
353
  }
224
354
  return out;
225
355
  }
226
356
  function isCodexHookStateHeader(line) {
227
- const trimmed = line.trim();
357
+ const trimmed = withoutComment(line).trim();
228
358
  return trimmed === '[hooks.state]' || (trimmed.startsWith('[hooks.state.') && trimmed.endsWith(']'));
229
359
  }
230
360
  function isTableHeader(line) {
231
- const trimmed = line.trim();
361
+ const trimmed = withoutComment(line).trim();
232
362
  return trimmed.startsWith('[') && trimmed.endsWith(']');
233
363
  }
234
- function isTrailingNonDataLine(line) {
235
- const trimmed = line.trim();
236
- return trimmed.length === 0 || trimmed.startsWith('#');
237
- }
238
364
  //# sourceMappingURL=codex-mini-toml.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex-mini-toml.js","sourceRoot":"","sources":["../src/codex-mini-toml.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-mini-toml.js","sourceRoot":"","sources":["../src/codex-mini-toml.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** Source package assets are shipped beside dist in the published hooks package. */
2
+ export declare const hermesObserverSource: string;
3
+ /** Explicit installation only; Hermes remains responsible for plugin enablement. */
4
+ export declare function installHermesObserver(home?: string): string;
5
+ //# sourceMappingURL=hermes-install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hermes-install.d.ts","sourceRoot":"","sources":["../src/hermes-install.ts"],"names":[],"mappings":"AAKA,oFAAoF;AACpF,eAAO,MAAM,oBAAoB,QAA0E,CAAC;AAE5G,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,IAAI,SAAwD,GAAG,MAAM,CAW1G"}
@@ -0,0 +1,21 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { dirname, join, resolve } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { homedir } from 'node:os';
5
+ /** Source package assets are shipped beside dist in the published hooks package. */
6
+ export const hermesObserverSource = resolve(dirname(fileURLToPath(import.meta.url)), '../hermes-agentdeck');
7
+ /** Explicit installation only; Hermes remains responsible for plugin enablement. */
8
+ export function installHermesObserver(home = process.env.HERMES_HOME || join(homedir(), '.hermes')) {
9
+ const target = join(resolve(home), 'plugins', 'agentdeck-observer');
10
+ const files = ['__init__.py', 'plugin.yaml'];
11
+ const marker = join(target, '.agentdeck-owned');
12
+ if (existsSync(target) && !existsSync(marker)) {
13
+ throw new Error(`Refusing to overwrite unowned Hermes plugin: ${target}`);
14
+ }
15
+ mkdirSync(target, { recursive: true });
16
+ writeFileSync(marker, 'agentdeck-hermes-observer-v1\n');
17
+ for (const file of files)
18
+ writeFileSync(join(target, file), readFileSync(join(hermesObserverSource, file)));
19
+ return target;
20
+ }
21
+ //# sourceMappingURL=hermes-install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hermes-install.js","sourceRoot":"","sources":["../src/hermes-install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,oFAAoF;AACpF,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;AAE5G,oFAAoF;AACpF,MAAM,UAAU,qBAAqB,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC;IAChG,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAChD,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,gDAAgD,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,aAAa,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;IACxD,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5G,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/dist/install.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { installHermesObserver } from './hermes-install.js';
1
2
  export { installCodexHooksIfNeeded, uninstallCodexHooks, migrateCodexHooks, managedBlockBody as codexManagedBlockBody, DEFAULT_CODEX_CONFIG_PATH, } from './codex-install.js';
2
3
  export type { InstallOptions as CodexInstallOptions, InstallResult as CodexInstallResult } from './codex-install.js';
3
4
  export { installOpenCodeHooksIfNeeded, uninstallOpenCodeHooks, opencodePluginPath, opencodePluginSource, } from './opencode-install.js';
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,IAAI,qBAAqB,EACzC,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,cAAc,IAAI,mBAAmB,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAIrH,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE3F,eAAO,MAAM,WAAW,0MAad,CAAC;AAEX;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAsD1D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,mBAAmB,0iEA8C/B,CAAC;AAEF,kDAAkD;AAClD,wBAAgB,qBAAqB,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,CAOxE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,GAAG,MAAM,CAGvF;AAED,eAAO,MAAM,gBAAgB,6OAMnB,CAAC;AAEX,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,YAAY,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,CAE7D;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiBnF;AAED,8EAA8E;AAC9E,wBAAgB,wBAAwB,CAAC,IAAI,GAAE,MAAkB,GAAG,qBAAqB,CAsBxF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,MAAkB,GAAG,OAAO,CAOpE;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAKhE;AASD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB;;;EAgBzE;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,GAAE,MAAkB,GAAG,GAAG,CAavE;AAED,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,CAc9C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAqB3D;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,GAAG,GAAG;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAyChF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,MAAkB;;;;EAO3D;AAWD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,MAAkB,GAAG,OAAO,CAWlE;AAED,sEAAsE;AACtE,wBAAgB,YAAY,CAAC,IAAI,GAAE,MAAkB,GAAG,IAAI,CAoB3D;AAED,8FAA8F;AAC9F,wBAAgB,cAAc,CAAC,IAAI,GAAE,MAAkB,GAAG,IAAI,CAa7D;AAuBD;iEACiE;AACjE,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,MAAkB,GAAG,IAAI,CAgGnE"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
package/dist/install.js CHANGED
@@ -1,3 +1,4 @@
1
+ export { installHermesObserver } from './hermes-install.js';
1
2
  import { readFileSync, writeFileSync, existsSync, mkdirSync, unlinkSync } from 'fs';
2
3
  import { join } from 'path';
3
4
  import { homedir } from 'os';
@@ -602,15 +603,24 @@ export function migrateHooksIfNeeded(home = homedir()) {
602
603
  // matches on POSIX, which is why the installer used to be a silent no-op on
603
604
  // Windows.
604
605
  import { pathToFileURL } from 'url';
606
+ import { uninstallCodexHooks } from './codex-install.js';
605
607
  const isMainModule = process.argv[1] ? import.meta.url === pathToFileURL(process.argv[1]).href : false;
606
608
  if (isMainModule) {
607
609
  const action = process.argv[2] || 'install';
608
610
  if (action === 'uninstall') {
609
611
  uninstallHooks();
612
+ // Only the fenced block of ~/.codex/config.toml is AgentDeck's. The
613
+ // lossless editor removes the generated entries and keeps anything Codex
614
+ // or the user added there; a file it cannot edit safely is kept and
615
+ // reported. stdout, because scripts/uninstall.sh discards stderr.
616
+ try {
617
+ uninstallCodexHooks();
618
+ }
619
+ catch (e) {
620
+ console.log(`Codex hooks kept: ${e.message}`);
621
+ }
610
622
  // The OpenCode observer plugin is AgentDeck-owned in its entirety, so
611
- // uninstall removes the file (unlike ~/.codex/config.toml, where only
612
- // the fenced block is AgentDeck's and removal has its own dedicated
613
- // flow to avoid touching user TOML).
623
+ // uninstall removes the file.
614
624
  import('./opencode-install.js').then((m) => m.uninstallOpenCodeHooks()).catch(() => { });
615
625
  // `~/.kiro/hooks/agentdeck-lifecycle.json` is AgentDeck-owned in its
616
626
  // entirety like the OpenCode plugin, so uninstall removes the file.
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-install.d.ts","sourceRoot":"","sources":["../src/opencode-install.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,wBAAwB,iBAAiB,CAAC;AAEvD;;wEAEwE;AACxE,wBAAgB,kBAAkB,IAAI,MAAM,CAI3C;AAED,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAUD;;0CAE0C;AAC1C,wBAAgB,oBAAoB,IAAI,MAAM,CAgR7C;AAeD;;6EAE6E;AAC7E,wBAAgB,4BAA4B,CAAC,IAAI,GAAE,sBAA2B,GAAG,qBAAqB,CAerG;AAED,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,sBAA2B,GAAG,IAAI,CAK9E"}
1
+ {"version":3,"file":"opencode-install.d.ts","sourceRoot":"","sources":["../src/opencode-install.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,wBAAwB,iBAAiB,CAAC;AAEvD;;wEAEwE;AACxE,wBAAgB,kBAAkB,IAAI,MAAM,CAI3C;AAED,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAUD;;0CAE0C;AAC1C,wBAAgB,oBAAoB,IAAI,MAAM,CA+R7C;AAeD;;6EAE6E;AAC7E,wBAAgB,4BAA4B,CAAC,IAAI,GAAE,sBAA2B,GAAG,qBAAqB,CAerG;AAED,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,sBAA2B,GAAG,IAAI,CAK9E"}
@@ -270,27 +270,42 @@ export const AgentDeckObserver = async ({ directory, client }) => {
270
270
  // no prediction needed, zero false-positive risk. Forward it so
271
271
  // devices can render Allow/Deny; the daemon replies through the
272
272
  // steering queue as a permission_respond command.
273
- const perm = props.permission || props.info || props || {};
273
+ const perm = (props.permission && typeof props.permission === "object") ? props.permission : (props.info || props);
274
274
  const psid = perm.sessionID;
275
275
  if (psid && perm.id) {
276
276
  announce(psid);
277
277
  post("opencode_permission_asked", {
278
278
  session_id: psid,
279
279
  permission_id: perm.id,
280
- title: typeof perm.title === "string" ? perm.title : "",
280
+ title: typeof perm.title === "string" ? perm.title : (typeof perm.permission === "string" ? perm.permission : "Permission requested"),
281
281
  cwd,
282
282
  });
283
283
  }
284
284
  } else if (type === "permission.replied") {
285
- const perm = props.permission || props.info || props || {};
285
+ const perm = (props.permission && typeof props.permission === "object") ? props.permission : (props.info || props);
286
286
  const psid = perm.sessionID;
287
287
  if (psid) {
288
288
  post("opencode_permission_replied", {
289
289
  session_id: psid,
290
- permission_id: perm.id || "",
290
+ permission_id: perm.requestID || perm.permissionID || perm.id || "",
291
291
  cwd,
292
292
  });
293
293
  }
294
+ } else if (type === "question.asked") {
295
+ if (props.sessionID && props.id) {
296
+ announce(props.sessionID);
297
+ post("opencode_question_asked", {
298
+ session_id: props.sessionID, question_id: props.id,
299
+ title: (Array.isArray(props.questions) ? props.questions : []).map(q => q.question || q.header || "").filter(Boolean).join(" / "),
300
+ cwd,
301
+ });
302
+ }
303
+ } else if (type === "question.replied" || type === "question.rejected") {
304
+ if (props.sessionID && props.requestID) {
305
+ post(type === "question.replied" ? "opencode_question_replied" : "opencode_question_rejected", {
306
+ session_id: props.sessionID, question_id: props.requestID, cwd,
307
+ });
308
+ }
294
309
  } else if (type === "session.idle") {
295
310
  const sessionID = props.sessionID;
296
311
  announce(sessionID);
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-install.js","sourceRoot":"","sources":["../src/opencode-install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode-install.js","sourceRoot":"","sources":["../src/opencode-install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,199 @@
1
+ """AgentDeck Hermes observer v1. No hook changes Hermes execution.
2
+
3
+ Contract: NousResearch/hermes-agent@16c59d0e, hermes.observer.v1.
4
+ Network work is serialized by one bounded daemon worker, never in a callback.
5
+ Only an AgentDeck daemon advertising hermesObserver is eligible (older/native
6
+ receivers must not misclassify these hooks as Claude). No default-port probing.
7
+ """
8
+ import atexit
9
+ import hashlib
10
+ import json
11
+ import os
12
+ from pathlib import Path
13
+ import queue
14
+ import threading
15
+ import time
16
+ import urllib.request
17
+ from collections import OrderedDict
18
+ from hermes_constants import get_hermes_home
19
+
20
+ _QUEUE = queue.Queue(maxsize=128)
21
+ _LOCK = threading.RLock()
22
+ _WORKER = None
23
+ _CHILDREN = OrderedDict()
24
+ _TURNS = OrderedDict()
25
+ _CONTEXT = OrderedDict()
26
+ _MAX_TRACKED = 512
27
+ # Ignore proxy env vars and redirects: observation must stay on loopback.
28
+ class _NoRedirect(urllib.request.HTTPRedirectHandler):
29
+ def redirect_request(self, *args, **kwargs):
30
+ return None
31
+
32
+ _HTTP = urllib.request.build_opener(urllib.request.ProxyHandler({}), _NoRedirect())
33
+
34
+
35
+ def _identity(sid):
36
+ if not isinstance(sid, str) or not sid.strip():
37
+ return None
38
+ home = str(get_hermes_home().expanduser().resolve())
39
+ return "hermes-" + hashlib.sha256((home + "\0" + sid).encode()).hexdigest()[:32]
40
+
41
+
42
+ def _remember(mapping, key, value):
43
+ mapping[key] = value
44
+ mapping.move_to_end(key)
45
+ while len(mapping) > _MAX_TRACKED:
46
+ mapping.popitem(last=False)
47
+
48
+
49
+ def _text(value, limit=8192):
50
+ return value[:limit] if isinstance(value, str) else ""
51
+
52
+
53
+ def _payload(kwargs, sid=None):
54
+ if kwargs.get("parent_session_id"):
55
+ return None
56
+ identity = _identity(sid or kwargs.get("session_id"))
57
+ if not identity or identity in _CHILDREN:
58
+ return None
59
+ # Real Gateway tool callbacks omit platform. Missing context must not
60
+ # relabel a Gateway conversation as CLI or leak its host's working directory.
61
+ platform = _text(kwargs.get("platform"), 40)
62
+ if platform:
63
+ _remember(_CONTEXT, identity, {
64
+ "cwd": os.getcwd() if platform.lower() == "cli" else "",
65
+ # ASCII only: small board fonts lack U+00B7.
66
+ "project_name": "Hermes (" + platform + ")",
67
+ "platform": platform.lower(),
68
+ })
69
+ return {
70
+ "session_id": identity,
71
+ **_CONTEXT.get(identity, {}),
72
+ "model": _text(kwargs.get("model"), 200),
73
+ # Lets the daemon close the row when this process is gone. One-shot
74
+ # mode (`hermes -z`) hard-exits through os._exit without firing
75
+ # on_session_finalize or atexit, so no event can carry that end.
76
+ "pid": os.getpid(),
77
+ }
78
+
79
+
80
+ def _deliver(event, payload):
81
+ # Resolve every delivery: a daemon restart can move the port.
82
+ data_dir = os.environ.get("AGENTDECK_DATA_DIR")
83
+ registry = (Path(data_dir).expanduser() if data_dir else Path.home() / ".agentdeck") / "daemon.json"
84
+ info = json.loads(registry.read_text())
85
+ port = info.get("httpPort") or info.get("port")
86
+ if type(port) is not int or not 1 <= port <= 65535:
87
+ return
88
+ base = "http://127.0.0.1:" + str(port)
89
+ with _HTTP.open(base + "/health", timeout=0.2) as response:
90
+ health = json.loads(response.read(65536))
91
+ if health.get("mode") != "daemon" or health.get("hermesObserver") != 1:
92
+ return
93
+ request = urllib.request.Request(
94
+ base + "/hooks/" + event,
95
+ data=json.dumps(payload).encode(),
96
+ headers={"Content-Type": "application/json"}, method="POST",
97
+ )
98
+ with _HTTP.open(request, timeout=0.8) as response:
99
+ response.read(1024)
100
+
101
+
102
+ def _run():
103
+ while True:
104
+ created, event, payload = _QUEUE.get()
105
+ try:
106
+ # A congested/dead daemon must not replay old working states later.
107
+ if time.monotonic() - created < 5:
108
+ _deliver(event, payload)
109
+ except Exception:
110
+ pass # Observation never breaks Hermes or retries an old turn.
111
+ finally:
112
+ _QUEUE.task_done()
113
+
114
+
115
+ def _flush():
116
+ # CLI teardown may exit immediately after finalize. Give the worker one
117
+ # bounded second; never keep a broken daemon holding Hermes open.
118
+ deadline = time.monotonic() + 1.0
119
+ while _QUEUE.unfinished_tasks and time.monotonic() < deadline:
120
+ time.sleep(0.01)
121
+
122
+
123
+ def _post(event, payload):
124
+ global _WORKER
125
+ if payload is None or os.environ.get("AGENTDECK_NO_HERMES_HOOKS") == "1":
126
+ return
127
+ with _LOCK:
128
+ if _WORKER is None or not _WORKER.is_alive():
129
+ _WORKER = threading.Thread(target=_run, name="agentdeck-observer", daemon=True)
130
+ _WORKER.start()
131
+ atexit.register(_flush)
132
+ try:
133
+ _QUEUE.put_nowait((time.monotonic(), event, payload))
134
+ except queue.Full:
135
+ pass # Bounded best effort; daemon expires abandoned state.
136
+
137
+
138
+ def _handle(event, **kwargs):
139
+ # Serialize concurrent callbacks too. A callback has no network I/O and
140
+ # always returns None (pre_llm/pre_tool return values can change behavior).
141
+ with _LOCK:
142
+ if event == "subagent_start":
143
+ child = _identity(kwargs.get("child_session_id"))
144
+ if child:
145
+ _remember(_CHILDREN, child, True)
146
+ return
147
+ if event == "on_session_reset":
148
+ # Gateway reset carries NEW session_id; only old_session_id may
149
+ # close a row here. CLI already emits finalize for the old one.
150
+ old = kwargs.get("old_session_id")
151
+ if old:
152
+ _post("hermes_session_end", _payload(kwargs, old))
153
+ _CONTEXT.pop(_identity(old), None)
154
+ return
155
+ payload = _payload(kwargs)
156
+ if payload is None:
157
+ return
158
+ sid = payload["session_id"]
159
+ if event == "on_session_start":
160
+ _post("hermes_session_start", payload)
161
+ elif event == "pre_llm_call":
162
+ _remember(_TURNS, sid, {"response": ""})
163
+ payload["prompt"] = _text(kwargs.get("user_message"))
164
+ _post("hermes_user_prompt_submit", payload)
165
+ elif event in ("pre_tool_call", "post_tool_call"):
166
+ payload["tool_name"] = _text(kwargs.get("tool_name"), 120)
167
+ _post("hermes_tool_start" if event == "pre_tool_call" else "hermes_tool_end", payload)
168
+ elif event == "post_llm_call":
169
+ # Final output also fires on some abnormal exits. Wait for the
170
+ # authoritative run outcome before claiming a successful Stop.
171
+ _remember(_TURNS, sid, {"response": _text(kwargs.get("assistant_response"))})
172
+ elif event == "on_session_end":
173
+ # RUN scoped, never session teardown. Exactly one Stop with the
174
+ # actual final response AND authoritative interrupted/failed flag.
175
+ turn = _TURNS.pop(sid, None)
176
+ if turn is not None:
177
+ payload["last_assistant_message"] = turn["response"]
178
+ payload["interrupted"] = bool(kwargs.get("interrupted"))
179
+ payload["aborted"] = bool(kwargs.get("failed")) or (not kwargs.get("completed", False) and not payload["interrupted"])
180
+ _post("hermes_stop", payload)
181
+ elif event == "on_session_finalize":
182
+ _TURNS.pop(sid, None)
183
+ _post("hermes_session_end", payload)
184
+ _CONTEXT.pop(sid, None)
185
+
186
+
187
+ def register(ctx):
188
+ for event in (
189
+ "on_session_start", "pre_llm_call", "post_llm_call", "on_session_end",
190
+ "on_session_finalize", "on_session_reset", "pre_tool_call", "post_tool_call",
191
+ "subagent_start",
192
+ ):
193
+ def callback(_event=event, **kwargs):
194
+ try:
195
+ _handle(_event, **kwargs)
196
+ except Exception:
197
+ pass
198
+ return None
199
+ ctx.register_hook(event, callback)
@@ -0,0 +1,13 @@
1
+ name: agentdeck-observer
2
+ version: 0.1.0
3
+ description: Read-only local AgentDeck session observation
4
+ provides_hooks:
5
+ - on_session_start
6
+ - pre_llm_call
7
+ - post_llm_call
8
+ - on_session_end
9
+ - on_session_finalize
10
+ - on_session_reset
11
+ - pre_tool_call
12
+ - post_tool_call
13
+ - subagent_start
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentdeck/hooks",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "engines": {
5
5
  "node": "22.x || 24.x || 26.x"
6
6
  },
@@ -17,7 +17,9 @@
17
17
  "bugs": "https://github.com/puritysb/AgentDeck/issues",
18
18
  "files": [
19
19
  "dist",
20
- "!dist/__tests__"
20
+ "!dist/__tests__",
21
+ "hermes-agentdeck",
22
+ "!hermes-agentdeck/__pycache__"
21
23
  ],
22
24
  "main": "dist/install.js",
23
25
  "types": "dist/install.d.ts",