@agentdeck/hooks 1.9.2 → 1.9.3

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.
@@ -16,6 +16,9 @@ export interface InstallOptions {
16
16
  platform?: NodeJS.Platform;
17
17
  /** Override the Windows notify sidecar script path (tests). */
18
18
  notifyScriptPath?: string;
19
+ /** Device approvals for Codex; `AGENTDECK_CODEX_APPROVALS=1|0` is the
20
+ * default. See `CodexApprovalsPolicy`. */
21
+ codexApprovals?: CodexApprovalsPolicy;
19
22
  }
20
23
  export interface InstallResult {
21
24
  installed: boolean;
@@ -24,7 +27,19 @@ export interface InstallResult {
24
27
  /** Non-fatal degradation while `installed === true` (e.g. the Windows
25
28
  * notify sidecar could not be written, so notify was omitted). */
26
29
  warning?: string;
30
+ /** Whether the installed block carries the device-approval hold. */
31
+ approvals?: boolean;
27
32
  }
33
+ /** Whether AgentDeck's `PermissionRequest` group also carries the
34
+ * device-approval hold — a second handler that waits for a device's
35
+ * Allow/Deny before Codex draws its own prompt. Off by default for two
36
+ * reasons that both land on the person at the terminal: Codex shows its
37
+ * startup "Review hooks" screen for any new handler, and while a hold waits
38
+ * the terminal prompt does not appear. `auto` keeps whatever the managed
39
+ * block already carries, so a refresh never adds or drops it; `on` adds it;
40
+ * `off` removes it. The config file is the only record of the choice. */
41
+ export type CodexApprovalsPolicy = 'auto' | 'on' | 'off';
42
+ export declare function codexApprovalsPolicyFromEnv(env?: NodeJS.ProcessEnv): CodexApprovalsPolicy;
28
43
  interface ManagedBlockOptions {
29
44
  includeFeatures?: boolean;
30
45
  includeNotify?: boolean;
@@ -33,11 +48,20 @@ interface ManagedBlockOptions {
33
48
  daemonHttpPort?: number;
34
49
  platform?: NodeJS.Platform;
35
50
  notifyScriptPath?: string;
51
+ includeApprovalHold?: boolean;
36
52
  }
37
53
  /** Assemble the body of the AgentDeck-managed fence. Tests call this
38
54
  * directly to assert schema regressions without driving the file
39
55
  * installer. */
40
56
  export declare function managedBlockBody(opts?: ManagedBlockOptions): string;
57
+ /** The hold handler: post the `PermissionRequest` payload with the hold
58
+ * header, wait for the daemon's answer, and print it only when it is a
59
+ * decision. Every other outcome (no daemon, a daemon without the hold, a
60
+ * timeout, an empty pass) prints nothing and exits 0, which Codex reads as
61
+ * no decision: its own prompt appears as if the handler were absent. */
62
+ export declare function buildCodexApprovalHoldCommand(platform?: NodeJS.Platform): string;
63
+ /** Whether the managed block already carries the hold handler. */
64
+ export declare function hasCodexApprovalHold(text: string): boolean;
41
65
  /** Body of the Windows notify sidecar script (`-File` execution binds
42
66
  * Codex's appended payload argv into `$args`; take the last element to
43
67
  * mirror POSIX `$1`). ASCII-only so PowerShell 5.1's BOM-less ANSI
@@ -1 +1 @@
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;AAoHD;;;;;;;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"}
1
+ {"version":3,"file":"codex-install.d.ts","sourceRoot":"","sources":["../src/codex-install.ts"],"names":[],"mappings":"AAmCA,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;IAC1B;+CAC2C;IAC3C,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACvC;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;IACjB,oEAAoE;IACpE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;0EAO0E;AAC1E,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;AAEzD,wBAAgB,2BAA2B,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,oBAAoB,CAKtG;AAmDD,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;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;iBAEiB;AACjB,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,mBAAwB,GAAG,MAAM,CAsCvE;AAqGD;;;;yEAIyE;AACzE,wBAAgB,6BAA6B,CAAC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,MAAM,CAKlG;AASD,kEAAkE;AAClE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAW1D;AAuDD;;;kEAGkE;AAClE,wBAAgB,0BAA0B,CAAC,KAAK,SAAwB,GAAG,MAAM,CAEhF;AA2HD;;;;;;;gEAOgE;AAChE,wBAAgB,yBAAyB,CAAC,IAAI,GAAE,cAAmB,GAAG,aAAa,CAgElF;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"}
@@ -19,7 +19,7 @@ import { readFileSync, writeFileSync, existsSync, mkdirSync, renameSync, unlinkS
19
19
  import { randomUUID } from 'node:crypto';
20
20
  import { dirname, join } from 'path';
21
21
  import { homedir } from 'os';
22
- import { applyManagedBlock, removeManagedBlock, hasTopLevelKeyOutsideFence, hasTableOutsideFence, hasIncompatibleHookTableOutsideFence, quoted, configEditIssue, existingFeaturesEnableHooks, } from './codex-mini-toml.js';
22
+ import { OPEN_FENCE, CLOSE_FENCE, applyManagedBlock, removeManagedBlock, hasTopLevelKeyOutsideFence, hasTableOutsideFence, hasIncompatibleHookTableOutsideFence, quoted, configEditIssue, existingFeaturesEnableHooks, } from './codex-mini-toml.js';
23
23
  export const DEFAULT_CODEX_CONFIG_PATH = join(homedir(), '.codex', 'config.toml');
24
24
  /** Sidecar script for the Windows notify fallback. Codex execs `notify`
25
25
  * as a bare argv array (no shell) and appends the JSON payload as the
@@ -32,6 +32,26 @@ const DEFAULT_DAEMON_PORT = 9120;
32
32
  function isValidPort(value) {
33
33
  return typeof value === 'number' && Number.isInteger(value) && value >= 1 && value <= 65535;
34
34
  }
35
+ export function codexApprovalsPolicyFromEnv(env = process.env) {
36
+ const v = (env.AGENTDECK_CODEX_APPROVALS ?? '').trim().toLowerCase();
37
+ if (v === '1' || v === 'on' || v === 'true')
38
+ return 'on';
39
+ if (v === '0' || v === 'off' || v === 'false')
40
+ return 'off';
41
+ return 'auto';
42
+ }
43
+ /** Marks the hold request. It posts to the same `codex_permission_request`
44
+ * endpoint as the notification handler on purpose: a daemon that predates
45
+ * the hold reads it as one more notification and answers at once, and an
46
+ * installer that predates it recognises the command as its own
47
+ * (`/hooks/codex_`) and rewrites the block without it. Both fall back to
48
+ * the default instead of an error. The value is the command's wait budget
49
+ * in seconds; the daemon holds for less. */
50
+ const CODEX_APPROVAL_HOLD_HEADER = 'X-AgentDeck-Hold';
51
+ /** curl's budget for the held POST. */
52
+ const CODEX_APPROVAL_HOLD_WAIT_SECONDS = 55;
53
+ /** Codex kills a hook after `timeout` seconds; it must exceed curl's budget. */
54
+ const CODEX_APPROVAL_HOLD_TIMEOUT_SECONDS = 60;
35
55
  /** Honour `AGENTDECK_NO_CODEX_HOOKS=1` from the environment. Callers
36
56
  * should also accept a `--no-codex-hooks` flag and short-circuit before
37
57
  * calling install. */
@@ -95,7 +115,7 @@ export function managedBlockBody(opts = {}) {
95
115
  if (opts.includeFeatures !== false)
96
116
  lines.push('[features]', 'hooks = true');
97
117
  lines.push('');
98
- lines.push(...buildLifecycleHookTables(platform));
118
+ lines.push(...buildLifecycleHookTables(platform, opts.includeApprovalHold === true));
99
119
  if (includeOtel) {
100
120
  lines.push('');
101
121
  lines.push('# OTel trace exporter — best-effort live progress signal.');
@@ -167,7 +187,7 @@ const LIFECYCLE_HOOKS = [
167
187
  // waited for the next prompt to close.
168
188
  { codexEvent: 'Interrupt', agentDeckEvent: 'codex_interrupt', matcher: null },
169
189
  ];
170
- function buildLifecycleHookTables(platform) {
190
+ function buildLifecycleHookTables(platform, includeApprovalHold = false) {
171
191
  const lines = [];
172
192
  for (let idx = 0; idx < LIFECYCLE_HOOKS.length; idx++) {
173
193
  const hook = LIFECYCLE_HOOKS[idx];
@@ -182,9 +202,53 @@ function buildLifecycleHookTables(platform) {
182
202
  lines.push(`command = ${quoted(buildLifecycleHookCommand(hook.agentDeckEvent, platform))}`);
183
203
  // Interrupt has a three-second hard maximum in Codex (0.151+).
184
204
  lines.push(`timeout = ${hook.codexEvent === 'Interrupt' ? 3 : 5}`);
205
+ // The hold is a second handler in AgentDeck's own group, never a group of
206
+ // its own. Codex keys trust by group and handler index and hashes each
207
+ // handler alone, so this leaves the notification handler trusted and
208
+ // re-keys nobody; a new group ahead of a user's would re-key theirs.
209
+ if (includeApprovalHold && hook.codexEvent === 'PermissionRequest') {
210
+ lines.push(`[[hooks.${hook.codexEvent}.hooks]]`);
211
+ lines.push(`type = "command"`);
212
+ lines.push(`command = ${quoted(buildCodexApprovalHoldCommand(platform))}`);
213
+ lines.push(`timeout = ${CODEX_APPROVAL_HOLD_TIMEOUT_SECONDS}`);
214
+ }
185
215
  }
186
216
  return lines;
187
217
  }
218
+ /** The hold handler: post the `PermissionRequest` payload with the hold
219
+ * header, wait for the daemon's answer, and print it only when it is a
220
+ * decision. Every other outcome (no daemon, a daemon without the hold, a
221
+ * timeout, an empty pass) prints nothing and exits 0, which Codex reads as
222
+ * no decision: its own prompt appears as if the handler were absent. */
223
+ export function buildCodexApprovalHoldCommand(platform = process.platform) {
224
+ if (platform === 'win32') {
225
+ return `powershell.exe -NoProfile -NonInteractive -ExecutionPolicy Bypass -EncodedCommand ${windowsEncodedCommand(buildWindowsApprovalHoldSnippet())}`;
226
+ }
227
+ return `exec sh -c ${shellSingleQuoted(buildApprovalHoldSnippet())}`;
228
+ }
229
+ function buildApprovalHoldSnippet() {
230
+ return posixPortPreamble().concat([
231
+ `R=$(curl -sf --connect-timeout 0.2 --max-time ${CODEX_APPROVAL_HOLD_WAIT_SECONDS} -X POST "http://127.0.0.1:$PORT/hooks/codex_permission_request" -H 'Content-Type: application/json' -H "X-AgentDeck-Pid: $PPID" -H "${CODEX_APPROVAL_HOLD_HEADER}: ${CODEX_APPROVAL_HOLD_WAIT_SECONDS}" -d @- 2>/dev/null) || R=""`,
232
+ `case "$R" in *'"hookSpecificOutput"'*) printf '%s' "$R" ;; esac`,
233
+ ]).join('\n');
234
+ }
235
+ /** Whether the managed block already carries the hold handler. */
236
+ export function hasCodexApprovalHold(text) {
237
+ const open = text.indexOf(OPEN_FENCE);
238
+ const close = open < 0 ? -1 : text.indexOf(CLOSE_FENCE, open);
239
+ if (close < 0)
240
+ return false;
241
+ for (const line of text.slice(open, close).split(/\r?\n/)) {
242
+ if (!/^\s*command\s*=/.test(line))
243
+ continue;
244
+ if (line.includes(CODEX_APPROVAL_HOLD_HEADER))
245
+ return true;
246
+ const encoded = line.match(/-EncodedCommand\s+([A-Za-z0-9+/=]+)/)?.[1];
247
+ if (encoded && Buffer.from(encoded, 'base64').toString('utf16le').includes(CODEX_APPROVAL_HOLD_HEADER))
248
+ return true;
249
+ }
250
+ return false;
251
+ }
188
252
  /** Official Codex lifecycle hooks pass their JSON payload on stdin.
189
253
  * Keep stdout quiet so Stop / UserPromptSubmit hooks do not accidentally
190
254
  * feed the daemon's acknowledgement back into Codex as hook output. */
@@ -207,10 +271,29 @@ function shellSingleQuoted(s) {
207
271
  function buildWindowsLifecycleHookCommand(event) {
208
272
  return `powershell.exe -NoProfile -NonInteractive -ExecutionPolicy Bypass -EncodedCommand ${windowsEncodedCommand(buildWindowsStdinPostSnippet(event))}`;
209
273
  }
274
+ // Read raw stdin as UTF-8: [Console]::In decodes with the console's OEM
275
+ // codepage (e.g. CP949) and would garble non-ASCII payload text.
276
+ const WINDOWS_UTF8_STDIN = '(New-Object System.IO.StreamReader([Console]::OpenStandardInput(), [System.Text.Encoding]::UTF8)).ReadToEnd()';
210
277
  function buildWindowsStdinPostSnippet(event) {
211
- // Read raw stdin as UTF-8: [Console]::In decodes with the console's OEM
212
- // codepage (e.g. CP949) and would garble non-ASCII payload text.
213
- return buildWindowsPostSnippet(event, '(New-Object System.IO.StreamReader([Console]::OpenStandardInput(), [System.Text.Encoding]::UTF8)).ReadToEnd()');
278
+ return buildWindowsPostSnippet(event, WINDOWS_UTF8_STDIN);
279
+ }
280
+ /** Windows hold handler. Invoke-WebRequest, not Invoke-RestMethod: the answer
281
+ * is echoed verbatim, and Invoke-RestMethod would parse it into an object. */
282
+ function buildWindowsApprovalHoldSnippet() {
283
+ return [
284
+ `$ErrorActionPreference = 'SilentlyContinue'`,
285
+ `$ProgressPreference = 'SilentlyContinue'`,
286
+ ...windowsCodexPidPreamble(),
287
+ ...windowsPortPreamble(),
288
+ `$body = ${WINDOWS_UTF8_STDIN}`,
289
+ `$bytes = [System.Text.Encoding]::UTF8.GetBytes([string]$body)`,
290
+ `$agentDeckHeaders['${CODEX_APPROVAL_HOLD_HEADER}'] = '${CODEX_APPROVAL_HOLD_WAIT_SECONDS}'`,
291
+ `try {`,
292
+ ` $agentDeckAnswer = [string](Invoke-WebRequest -UseBasicParsing -Method Post -TimeoutSec ${CODEX_APPROVAL_HOLD_WAIT_SECONDS} -Uri ('http://127.0.0.1:' + $port + '/hooks/codex_permission_request') -ContentType 'application/json; charset=utf-8' -Headers $agentDeckHeaders -Body $bytes).Content`,
293
+ ` if ($agentDeckAnswer.Contains('"hookSpecificOutput"')) { [Console]::Out.Write($agentDeckAnswer) }`,
294
+ `} catch {}`,
295
+ `exit 0`,
296
+ ].join('\n');
214
297
  }
215
298
  /** Body of the Windows notify sidecar script (`-File` execution binds
216
299
  * Codex's appended payload argv into `$args`; take the last element to
@@ -246,6 +329,19 @@ function buildWindowsPostSnippet(event, bodyExpression) {
246
329
  `$ErrorActionPreference = 'SilentlyContinue'`,
247
330
  `$ProgressPreference = 'SilentlyContinue'`,
248
331
  ...windowsCodexPidPreamble(),
332
+ ...windowsPortPreamble(),
333
+ `$body = ${bodyExpression}`,
334
+ // Post UTF-8 bytes: Invoke-RestMethod encodes string bodies as
335
+ // ISO-8859-1 when the content type carries no charset, replacing
336
+ // non-ASCII payload characters with '?'.
337
+ `$bytes = [System.Text.Encoding]::UTF8.GetBytes([string]$body)`,
338
+ `try { Invoke-RestMethod -Method Post -TimeoutSec 1 -Uri ('http://127.0.0.1:' + $port + '/hooks/${event}') -ContentType 'application/json; charset=utf-8' -Headers $agentDeckHeaders -Body $bytes | Out-Null } catch {}`,
339
+ `exit 0`,
340
+ ].join('\n');
341
+ }
342
+ /** Windows port resolver shared by the post and hold snippets. */
343
+ function windowsPortPreamble() {
344
+ return [
249
345
  `[int]$port = 0`,
250
346
  `[int]$candidate = 0`,
251
347
  `if (!([int]::TryParse([string]$env:AGENTDECK_PORT, [ref]$candidate)) -or $candidate -lt 1 -or $candidate -gt 65535) { $candidate = 0 }`,
@@ -270,14 +366,7 @@ function buildWindowsPostSnippet(event, bodyExpression) {
270
366
  ` }`,
271
367
  `}`,
272
368
  `if ($port -eq 0) { $port = 9120 }`,
273
- `$body = ${bodyExpression}`,
274
- // Post UTF-8 bytes: Invoke-RestMethod encodes string bodies as
275
- // ISO-8859-1 when the content type carries no charset, replacing
276
- // non-ASCII payload characters with '?'.
277
- `$bytes = [System.Text.Encoding]::UTF8.GetBytes([string]$body)`,
278
- `try { Invoke-RestMethod -Method Post -TimeoutSec 1 -Uri ('http://127.0.0.1:' + $port + '/hooks/${event}') -ContentType 'application/json; charset=utf-8' -Headers $agentDeckHeaders -Body $bytes | Out-Null } catch {}`,
279
- `exit 0`,
280
- ].join('\n');
369
+ ];
281
370
  }
282
371
  function windowsEncodedCommand(s) {
283
372
  return Buffer.from(s, 'utf16le').toString('base64');
@@ -380,6 +469,9 @@ export function installCodexHooksIfNeeded(opts = {}) {
380
469
  warning = `notify sidecar write failed (${notifyScriptPath}) — notify fallback omitted`;
381
470
  }
382
471
  }
472
+ const approvalsPolicy = opts.codexApprovals ?? codexApprovalsPolicyFromEnv();
473
+ const approvals = approvalsPolicy === 'on'
474
+ || (approvalsPolicy === 'auto' && hasCodexApprovalHold(original));
383
475
  const otelEndpoint = includeOtel ? buildOtelEndpoint(opts.daemonHttpPort) : undefined;
384
476
  const body = managedBlockBody({
385
477
  includeFeatures: !hasFeatures,
@@ -389,15 +481,16 @@ export function installCodexHooksIfNeeded(opts = {}) {
389
481
  daemonHttpPort: opts.daemonHttpPort,
390
482
  platform,
391
483
  notifyScriptPath,
484
+ includeApprovalHold: approvals,
392
485
  });
393
486
  const updated = applyManagedBlock(original, body);
394
487
  if (updated === original) {
395
- return { installed: true, warning };
488
+ return { installed: true, warning, approvals };
396
489
  }
397
490
  if (readText(path) !== original)
398
491
  return { installed: false, reason: 'config.toml changed during setup; retry' };
399
492
  if (writeTextAtomic(updated, path)) {
400
- return { installed: true, warning };
493
+ return { installed: true, warning, approvals };
401
494
  }
402
495
  return { installed: false, reason: `write failed: ${path}` };
403
496
  }
@@ -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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"}
package/dist/install.d.ts CHANGED
@@ -4,7 +4,7 @@ export { installCodexHooksIfNeeded, uninstallCodexHooks, migrateCodexHooks, mana
4
4
  export type { InstallOptions as CodexInstallOptions, InstallResult as CodexInstallResult } from './codex-install.js';
5
5
  export { installOpenCodeHooksIfNeeded, uninstallOpenCodeHooks, opencodePluginPath, opencodePluginSource, } from './opencode-install.js';
6
6
  export type { OpenCodeInstallOptions, OpenCodeInstallResult } from './opencode-install.js';
7
- export declare const HOOK_EVENTS: readonly ["SessionStart", "SessionEnd", "PreToolUse", "PostToolUse", "PostToolUseFailure", "Stop", "Notification", "UserPromptSubmit", "SubagentStart", "SubagentStop", "TaskCompleted", "TeammateIdle"];
7
+ export declare const HOOK_EVENTS: readonly ["SessionStart", "SessionEnd", "PreToolUse", "PostToolUse", "PostToolUseFailure", "Stop", "Notification", "PermissionRequest", "UserPromptSubmit", "SubagentStart", "SubagentStop", "TaskCompleted", "TeammateIdle"];
8
8
  /**
9
9
  * Shell snippet that resolves the AgentDeck daemon's HTTP port at hook
10
10
  * runtime, then POSTs the hook payload to it. Kept in a single helper so
@@ -41,13 +41,24 @@ export declare function buildHookCommand(eventName: string): string;
41
41
  * Port discovery matches the POSIX snippet, minus the macOS App Store sandbox
42
42
  * containers which do not exist on Windows:
43
43
  * 1. `$env:AGENTDECK_PORT`
44
- * 2. `%USERPROFILE%\.agentdeck\daemon.json` (verified with a `/health` probe)
44
+ * 2. `%USERPROFILE%\.agentdeck\daemon.json`
45
45
  * 3. `9120` fallback
46
+ * There is no `/health` probe per hook: the payload goes straight to the
47
+ * daemon.json port and moves on to 9120 only when that connection is refused
48
+ * (nothing received it, so it is never delivered twice). The probe was an
49
+ * extra PowerShell round trip on every hook, before the hook did its work.
50
+ *
51
+ * `PreToolUse` and `Stop` are request-response as on POSIX: the daemon's body
52
+ * (device Allow/Deny, soft-STOP deny, queued directive) is written to stdout
53
+ * as raw UTF-8 within the POSIX `--max-time` bounds (60 s / 10 s). The earlier
54
+ * script piped every response to `Out-Null` with a 2 s timeout, so on Windows
55
+ * no device decision, deck STOP or queued directive ever reached Claude.
56
+ * The request bypasses proxy auto-detection and `Expect: 100-continue`.
46
57
  *
47
58
  * Errors are swallowed and the exit code is always 0 so a dead daemon never
48
59
  * blocks or fails the host session.
49
60
  */
50
- export declare const WINDOWS_HOOK_SCRIPT = "# AgentDeck -> Claude Code hook bridge. Generated by @agentdeck/hooks; edits are overwritten.\n# Invoked as: powershell -NoProfile -ExecutionPolicy Bypass -File \"<this file>\" -HookEvent <EventName>\n#\n# Must be a script file, NOT an inline -Command: Claude Code runs hook commands\n# through Git Bash (sh -c) on Windows, which expands $var references away before\n# PowerShell sees them.\nparam([Parameter(Mandatory = $true)][ValidatePattern('^[A-Za-z_]+$')][string]$HookEvent)\n\n$ErrorActionPreference = 'SilentlyContinue'\n\n$port = 0\n$candidate = 0\nif (-not ([int]::TryParse([string]$env:AGENTDECK_PORT, [ref]$candidate)) -or $candidate -lt 1 -or $candidate -gt 65535) { $candidate = 0 }\n$port = $candidate\n\nif (-not $port) {\n $f = Join-Path $env:USERPROFILE '.agentdeck\\daemon.json'\n if (Test-Path $f) {\n try {\n $d = Get-Content -Raw $f | ConvertFrom-Json\n $raw = if ($d.httpPort) { $d.httpPort } else { $d.port }\n $candidate = 0\n if ([int]::TryParse([string]$raw, [ref]$candidate) -and $candidate -ge 1 -and $candidate -le 65535) {\n try {\n Invoke-RestMethod -Uri ('http://127.0.0.1:' + $candidate + '/health') -TimeoutSec 1 -ErrorAction Stop | Out-Null\n $port = $candidate\n } catch {}\n }\n } catch {}\n }\n}\nif (-not $port) { $port = 9120 }\n\n# Read stdin as UTF-8: [Console]::In decodes piped stdin with the console OEM\n# codepage (e.g. CP949), garbling non-ASCII payload text.\n$body = (New-Object System.IO.StreamReader([Console]::OpenStandardInput(), [System.Text.Encoding]::UTF8)).ReadToEnd()\n# Post UTF-8 bytes: Invoke-RestMethod encodes a string body as ISO-8859-1 when\n# the content type carries no charset, replacing non-ASCII characters with '?'.\n$bytes = [System.Text.Encoding]::UTF8.GetBytes([string]$body)\n\ntry {\n Invoke-RestMethod -Uri ('http://127.0.0.1:' + $port + '/hooks/' + $HookEvent) -Method Post -Body $bytes -ContentType 'application/json; charset=utf-8' -TimeoutSec 2 -ErrorAction Stop | Out-Null\n} catch {}\n\n# Never block or fail the tool call.\nexit 0\n";
61
+ export declare const WINDOWS_HOOK_SCRIPT = "# AgentDeck -> Claude Code hook bridge. Generated by @agentdeck/hooks; edits are overwritten.\n# Invoked as: powershell -NoProfile -ExecutionPolicy Bypass -File \"<this file>\" -HookEvent <EventName>\n#\n# Must be a script file, NOT an inline -Command: Claude Code runs hook commands\n# through Git Bash (sh -c) on Windows, which expands $var references away before\n# PowerShell sees them.\nparam([Parameter(Mandatory = $true)][ValidatePattern('^[A-Za-z_]+$')][string]$HookEvent)\n\n$ErrorActionPreference = 'SilentlyContinue'\n\n# PreToolUse and Stop are request-response, as in the POSIX hook: the daemon's\n# answer (a device Allow/Deny, a soft-STOP deny, a queued deck directive) is\n# written to stdout for Claude Code, bounded like the POSIX curl --max-time\n# (60 s / 10 s). Every other event is fire-and-forget: bounded like --max-time\n# 0.8, nothing printed.\n$timeoutMs = 800\n$respond = $false\nif ($HookEvent -ceq 'PreToolUse') { $timeoutMs = 60000; $respond = $true }\nelseif ($HookEvent -ceq 'Stop') { $timeoutMs = 10000; $respond = $true }\n\n# Ports in the order tried. $env:AGENTDECK_PORT alone when it is valid;\n# otherwise the daemon.json port, then 9120. No /health probe first: the next\n# port is tried only when a connection is refused, which proves nothing\n# received the payload, so it is never delivered twice.\n$ports = @()\n$candidate = 0\nif ([int]::TryParse([string]$env:AGENTDECK_PORT, [ref]$candidate) -and $candidate -ge 1 -and $candidate -le 65535) {\n $ports = @($candidate)\n} else {\n $f = Join-Path $env:USERPROFILE '.agentdeck\\daemon.json'\n if (Test-Path $f) {\n try {\n $d = Get-Content -Raw $f | ConvertFrom-Json\n $raw = if ($d.httpPort) { $d.httpPort } else { $d.port }\n $candidate = 0\n if ([int]::TryParse([string]$raw, [ref]$candidate) -and $candidate -ge 1 -and $candidate -le 65535) { $ports += $candidate }\n } catch {}\n }\n if ($ports -notcontains 9120) { $ports += 9120 }\n}\n\n# Read stdin as UTF-8: [Console]::In decodes piped stdin with the console OEM\n# codepage (e.g. CP949), garbling non-ASCII payload text.\n$body = (New-Object System.IO.StreamReader([Console]::OpenStandardInput(), [System.Text.Encoding]::UTF8)).ReadToEnd()\n# Post UTF-8 bytes with an explicit charset; the daemon reads them as sent.\n$bytes = [System.Text.Encoding]::UTF8.GetBytes([string]$body)\n\n# A loopback POST needs no proxy: system proxy auto-detection (WPAD) and the\n# Expect: 100-continue wait can each add seconds before the request is sent.\ntry { [System.Net.WebRequest]::DefaultWebProxy = $null } catch {}\ntry { [System.Net.ServicePointManager]::Expect100Continue = $false } catch {}\n\nforeach ($port in $ports) {\n try {\n $req = [System.Net.HttpWebRequest]::Create('http://127.0.0.1:' + $port + '/hooks/' + $HookEvent)\n $req.Method = 'POST'\n $req.Proxy = $null\n $req.ContentType = 'application/json; charset=utf-8'\n $req.Timeout = $timeoutMs\n $req.ReadWriteTimeout = $timeoutMs\n $req.ContentLength = $bytes.Length\n $stream = $req.GetRequestStream()\n $stream.Write($bytes, 0, $bytes.Length)\n $stream.Close()\n $resp = $req.GetResponse()\n if ($respond) {\n # Pass the daemon's UTF-8 bytes through unchanged: a console encoding\n # would turn a non-ASCII directive or reason into '?'.\n $buffer = New-Object System.IO.MemoryStream\n $resp.GetResponseStream().CopyTo($buffer)\n $out = $buffer.ToArray()\n if ($out.Length -gt 0) {\n $stdout = [Console]::OpenStandardOutput()\n $stdout.Write($out, 0, $out.Length)\n $stdout.Flush()\n }\n }\n $resp.Close()\n break\n } catch {\n # Only a refused connection moves on to the next port. A timeout, an HTTP\n # error or anything else ends the hook: the daemon may have the payload.\n $e = $_.Exception\n $refused = $false\n while ($e) {\n if ($e -is [System.Net.WebException] -and $e.Status -eq [System.Net.WebExceptionStatus]::ConnectFailure) { $refused = $true }\n if ($e -is [System.Net.Sockets.SocketException] -and $e.SocketErrorCode -eq [System.Net.Sockets.SocketError]::ConnectionRefused) { $refused = $true }\n $e = $e.InnerException\n }\n if (-not $refused) { break }\n }\n}\n\n# Never block or fail the tool call.\nexit 0\n";
51
62
  /** Where the Windows hook script is installed. */
52
63
  export declare function windowsHookScriptPath(home?: string): string;
53
64
  /**
@@ -62,6 +73,74 @@ export declare function ensureWindowsHookScript(home?: string): string;
62
73
  * nothing to expand. See WINDOWS_HOOK_SCRIPT for why that matters.
63
74
  */
64
75
  export declare function buildHookCommandWin(eventName: string, home?: string): string;
76
+ /**
77
+ * The status line is Claude Code's one documented carrier of the claude.ai
78
+ * subscription windows (`rate_limits.five_hour` / `seven_day`), so AgentDeck
79
+ * installs a status-line command that forwards Claude's status document to the
80
+ * local daemon (`/claude/statusline`) and then runs whatever status line the
81
+ * user already had, unchanged. Byte-identical with `@agentdeck/setup`'s
82
+ * inlined copy and Swift `HookInstaller.buildStatuslineRelayCommand` — change
83
+ * all three together. Rules for what the daemon does with the document:
84
+ * `shared/src/claude-statusline.ts`.
85
+ *
86
+ * Two things this snippet does differently from the hook snippet, on purpose:
87
+ * it never reads `$AGENTDECK_PORT` (a managed session bridge does not serve the
88
+ * route — the account gauge belongs to the daemon), and it is fire-and-forget
89
+ * only, bounded like a telemetry hook: Claude Code cancels a status-line
90
+ * script the moment the next update arrives, so a hung curl costs a missed
91
+ * repaint, never a stalled TUI. The wrapped command receives the same stdin
92
+ * document through `printf '%s' "$I" |`.
93
+ */
94
+ export declare const STATUSLINE_RELAY_MARKER = "/claude/statusline";
95
+ export declare function buildStatuslineRelayCommand(original?: string | null): string;
96
+ /**
97
+ * The Windows relay body, shipped as a script file for the reason
98
+ * WINDOWS_HOOK_SCRIPT documents: with Git Bash installed, Claude Code runs the
99
+ * command through `sh -c`, which expands `$name` before PowerShell parses it. The
100
+ * user's own status-line command travels as base64 (`-OriginalB64`) for the
101
+ * same reason — nothing on the command line for `sh` to expand or quote — and
102
+ * is run through Git Bash when available, otherwise PowerShell, matching
103
+ * Claude Code's documented Windows shell selection with the same stdin.
104
+ * Mirrored byte-identically in `setup/src/setup.ts`.
105
+ */
106
+ export declare const WINDOWS_STATUSLINE_SCRIPT = "# AgentDeck -> Claude Code status-line relay. Generated by @agentdeck/hooks; edits are overwritten.\n# Invoked as: powershell -NoProfile -ExecutionPolicy Bypass -File \"<this file>\" [-OriginalB64 <base64 of your own status-line command>]\n#\n# Must be a script file, NOT an inline -Command, for the reason agentdeck-hook.ps1\n# documents: when installed, Git Bash (sh -c) expands $var references before\n# PowerShell sees them. Your own command travels as\n# base64 for the same reason.\nparam([ValidatePattern('^[A-Za-z0-9+/=]*$')][string]$OriginalB64 = '')\n\n$ErrorActionPreference = 'SilentlyContinue'\ntry { [Console]::OutputEncoding = New-Object System.Text.UTF8Encoding($false) } catch {}\n\n# Read stdin as UTF-8: [Console]::In decodes piped stdin with the console OEM\n# codepage (e.g. CP949), garbling non-ASCII payload text.\n$body = (New-Object System.IO.StreamReader([Console]::OpenStandardInput(), [System.Text.Encoding]::UTF8)).ReadToEnd()\n\n$port = 0\n$f = Join-Path $env:USERPROFILE '.agentdeck\\daemon.json'\nif (Test-Path $f) {\n try {\n $d = Get-Content -Raw $f | ConvertFrom-Json\n $raw = if ($d.httpPort) { $d.httpPort } else { $d.port }\n $candidate = 0\n if ([int]::TryParse([string]$raw, [ref]$candidate) -and $candidate -ge 1 -and $candidate -le 65535) {\n try {\n Invoke-RestMethod -Uri ('http://127.0.0.1:' + $candidate + '/health') -TimeoutSec 1 -ErrorAction Stop | Out-Null\n $port = $candidate\n } catch {}\n }\n } catch {}\n}\nif (-not $port) { $port = 9120 }\n\n# Post UTF-8 bytes; the daemon keeps only rate_limits (shared/src/claude-statusline.ts).\n$bytes = [System.Text.Encoding]::UTF8.GetBytes([string]$body)\ntry {\n Invoke-RestMethod -Uri ('http://127.0.0.1:' + $port + '/claude/statusline') -Method Post -Body $bytes -ContentType 'application/json; charset=utf-8' -TimeoutSec 2 -ErrorAction Stop | Out-Null\n} catch {}\n\n# Your own status line, when one was wrapped: the same document on its stdin,\n# its output is what Claude Code shows. Match Claude Code's Windows shell choice:\n# Git Bash when available, otherwise the PowerShell running this relay.\nif ($OriginalB64) {\n $script = $null\n try {\n $original = [System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($OriginalB64))\n $sh = $env:CLAUDE_CODE_GIT_BASH_PATH\n if (-not $sh -or -not (Test-Path $sh)) { $sh = (Get-Command bash -ErrorAction SilentlyContinue).Source }\n $psi = New-Object System.Diagnostics.ProcessStartInfo\n if ($sh) {\n $script = [System.IO.Path]::GetTempFileName()\n [System.IO.File]::WriteAllText($script, $original, (New-Object System.Text.UTF8Encoding($false)))\n $psi.FileName = $sh\n $psi.Arguments = '\"' + $script.Replace('\\', '/') + '\"'\n } else {\n $psi.FileName = [System.Diagnostics.Process]::GetCurrentProcess().MainModule.FileName\n # PowerShell captures its stdin reader before running a command that uses\n # the input variable. Parse the user's command after selecting UTF-8 and\n # feed that pipeline explicitly; leave raw stdin untouched otherwise.\n $command = @'\n[Console]::InputEncoding = New-Object System.Text.UTF8Encoding($false)\n[Console]::OutputEncoding = New-Object System.Text.UTF8Encoding($false)\n$OutputEncoding = [Console]::OutputEncoding\n$userCommand = [ScriptBlock]::Create([System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('__AGENTDECK_ORIGINAL__')))\n$usesInput = $userCommand.Ast.Find({\n param($node)\n $node -is [System.Management.Automation.Language.VariableExpressionAst] -and\n $node.VariablePath.IsVariable -and\n $node.VariablePath.UserPath -match '^(?:variable:)?(?:(?:global|local|script|private):)?input$'\n}, $false)\nif ($usesInput) {\n & { while (($line = [Console]::In.ReadLine()) -ne $null) { $line } } | & $userCommand\n} else {\n & $userCommand\n}\n'@\n $command = $command.Replace('__AGENTDECK_ORIGINAL__', $OriginalB64)\n $psi.Arguments = '-NoProfile -ExecutionPolicy Bypass -EncodedCommand ' + [Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($command))\n }\n $psi.UseShellExecute = $false\n $psi.CreateNoWindow = $true\n $psi.RedirectStandardInput = $true\n $psi.RedirectStandardOutput = $true\n $psi.StandardOutputEncoding = [System.Text.Encoding]::UTF8\n $p = [System.Diagnostics.Process]::Start($psi)\n $stdin = New-Object System.IO.StreamWriter($p.StandardInput.BaseStream, (New-Object System.Text.UTF8Encoding($false)))\n $stdin.Write($body)\n $stdin.Close()\n $out = $p.StandardOutput.ReadToEnd()\n $p.WaitForExit()\n [Console]::Out.Write($out)\n } catch {} finally {\n if ($script) { Remove-Item $script -Force }\n }\n}\n\n# Never block or fail the status line.\nexit 0\n";
107
+ /** Where the Windows relay script is installed. */
108
+ export declare function windowsStatuslineScriptPath(home?: string): string;
109
+ /** Write the Windows relay script, creating `~/.agentdeck` if needed. Idempotent. */
110
+ export declare function ensureWindowsStatuslineScript(home?: string): string;
111
+ /**
112
+ * Windows variant: invoke `agentdeck-statusline.ps1` by path, the user's own
113
+ * command riding as base64. The command line carries no `$` and no quote the
114
+ * POSIX shell Claude Code spawns it through could misread.
115
+ */
116
+ export declare function buildStatuslineRelayCommandWin(original?: string | null, home?: string): string;
117
+ export declare function isAgentDeckStatuslineCommand(command: unknown): boolean;
118
+ /**
119
+ * The user's own command inside an AgentDeck relay: their text verbatim, `''`
120
+ * when the relay was installed alone, `null` when the command is not ours.
121
+ */
122
+ export declare function unwrapStatuslineCommand(command: unknown): string | null;
123
+ /**
124
+ * `auto` wraps a status line the user already has and installs nothing
125
+ * otherwise; `on` installs the relay even with no status line — which makes
126
+ * Claude Code hide its footer hints (`esc to interrupt`, `? for shortcuts`,
127
+ * voice), so it is never the default; `off` removes an installed relay
128
+ * (restoring the user's own status line) and never installs one.
129
+ */
130
+ export type StatuslinePolicy = 'auto' | 'on' | 'off';
131
+ export declare function statuslinePolicyFromEnv(env?: NodeJS.ProcessEnv): StatuslinePolicy;
132
+ export interface StatuslineApplyResult {
133
+ installed: boolean;
134
+ /** True when a user command runs inside the relay. */
135
+ wrapped: boolean;
136
+ reason?: string;
137
+ }
138
+ /** Pure logic: install or refresh the relay in a settings object (no file I/O). */
139
+ export declare function applyStatuslineRelay(settings: any, policy?: StatuslinePolicy, platform?: NodeJS.Platform, home?: string): StatuslineApplyResult;
140
+ /** Pure logic: take the relay out again, restoring the user's own command verbatim. */
141
+ export declare function removeStatuslineRelay(settings: any): boolean;
142
+ /** Pure logic: keep an installed relay on the current snippet. Never installs one. */
143
+ export declare function refreshStatuslineRelay(settings: any, platform?: NodeJS.Platform, home?: string): boolean;
65
144
  export declare const KIRO_HOOK_EVENTS: readonly [readonly ["SessionStart", "kiro_session_start"], readonly ["UserPromptSubmit", "kiro_user_prompt_submit"], readonly ["PreToolUse", "kiro_tool_start"], readonly ["PostToolUse", "kiro_tool_end"], readonly ["Stop", "kiro_stop"]];
66
145
  export interface KiroHookInstallResult {
67
146
  installed: boolean;
@@ -145,8 +224,12 @@ export declare function claudeSettingsPaths(home?: string): {
145
224
  * keys there.
146
225
  */
147
226
  export declare function sweepLegacyHooks(home?: string): boolean;
227
+ export interface InstallHooksOptions {
228
+ /** Claude status-line relay policy; `AGENTDECK_STATUSLINE=1|0` is the default. See `StatuslinePolicy`. */
229
+ statusline?: StatuslinePolicy;
230
+ }
148
231
  /** File-system wrapper: install hooks into ~/.claude/settings.json */
149
- export declare function installHooks(home?: string): void;
232
+ export declare function installHooks(home?: string, opts?: InstallHooksOptions): void;
150
233
  /** File-system wrapper: uninstall hooks from ~/.claude/settings.json (and the legacy file) */
151
234
  export declare function uninstallHooks(home?: string): void;
152
235
  /** File-system wrapper: migrate old hook formats in ~/.claude/settings.json.
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
package/dist/install.js CHANGED
@@ -17,6 +17,11 @@ export const HOOK_EVENTS = [
17
17
  'PostToolUseFailure',
18
18
  'Stop',
19
19
  'Notification',
20
+ // Display-only: Claude Code runs it the moment it is about to show its
21
+ // permission dialog, ~6 s before the `permission_prompt` Notification. The
22
+ // command is the fire-and-forget form and prints nothing, so it never
23
+ // decides the prompt (empty stdout = no decision, the dialog shows).
24
+ 'PermissionRequest',
20
25
  'UserPromptSubmit',
21
26
  'SubagentStart',
22
27
  'SubagentStop',
@@ -93,7 +98,9 @@ export function buildHookCommand(eventName) {
93
98
  // (Claude's `getSessionEndHookTimeoutMs()` floor), and a daemon that is
94
99
  // restarting holds the socket open without replying. An unbounded curl there
95
100
  // gets killed mid-flight and Claude prints `SessionEnd hook [...] failed:
96
- // Hook cancelled` on exit.
101
+ // Hook cancelled` on exit. `PermissionRequest` belongs here on purpose: it
102
+ // is a display signal, and Claude Code waits for it before drawing the
103
+ // dialog, so it must return at once and print nothing (no decision).
97
104
  return preamble.concat([
98
105
  `curl -sf --connect-timeout 0.2 --max-time 0.8 -X POST "http://127.0.0.1:$PORT/hooks/${eventName}" -H 'Content-Type: application/json' -H "X-AgentDeck-Pid: $PPID" -d @- >/dev/null 2>&1 || true`,
99
106
  ]).join('\n');
@@ -113,8 +120,19 @@ export function buildHookCommand(eventName) {
113
120
  * Port discovery matches the POSIX snippet, minus the macOS App Store sandbox
114
121
  * containers which do not exist on Windows:
115
122
  * 1. `$env:AGENTDECK_PORT`
116
- * 2. `%USERPROFILE%\.agentdeck\daemon.json` (verified with a `/health` probe)
123
+ * 2. `%USERPROFILE%\.agentdeck\daemon.json`
117
124
  * 3. `9120` fallback
125
+ * There is no `/health` probe per hook: the payload goes straight to the
126
+ * daemon.json port and moves on to 9120 only when that connection is refused
127
+ * (nothing received it, so it is never delivered twice). The probe was an
128
+ * extra PowerShell round trip on every hook, before the hook did its work.
129
+ *
130
+ * `PreToolUse` and `Stop` are request-response as on POSIX: the daemon's body
131
+ * (device Allow/Deny, soft-STOP deny, queued directive) is written to stdout
132
+ * as raw UTF-8 within the POSIX `--max-time` bounds (60 s / 10 s). The earlier
133
+ * script piped every response to `Out-Null` with a 2 s timeout, so on Windows
134
+ * no device decision, deck STOP or queued directive ever reached Claude.
135
+ * The request bypasses proxy auto-detection and `Expect: 100-continue`.
118
136
  *
119
137
  * Errors are swallowed and the exit code is always 0 so a dead daemon never
120
138
  * blocks or fails the host session.
@@ -129,39 +147,88 @@ param([Parameter(Mandatory = \$true)][ValidatePattern('^[A-Za-z_]+\$')][string]\
129
147
 
130
148
  \$ErrorActionPreference = 'SilentlyContinue'
131
149
 
132
- \$port = 0
133
- \$candidate = 0
134
- if (-not ([int]::TryParse([string]\$env:AGENTDECK_PORT, [ref]\$candidate)) -or \$candidate -lt 1 -or \$candidate -gt 65535) { \$candidate = 0 }
135
- \$port = \$candidate
150
+ # PreToolUse and Stop are request-response, as in the POSIX hook: the daemon's
151
+ # answer (a device Allow/Deny, a soft-STOP deny, a queued deck directive) is
152
+ # written to stdout for Claude Code, bounded like the POSIX curl --max-time
153
+ # (60 s / 10 s). Every other event is fire-and-forget: bounded like --max-time
154
+ # 0.8, nothing printed.
155
+ \$timeoutMs = 800
156
+ \$respond = \$false
157
+ if (\$HookEvent -ceq 'PreToolUse') { \$timeoutMs = 60000; \$respond = \$true }
158
+ elseif (\$HookEvent -ceq 'Stop') { \$timeoutMs = 10000; \$respond = \$true }
136
159
 
137
- if (-not \$port) {
160
+ # Ports in the order tried. \$env:AGENTDECK_PORT alone when it is valid;
161
+ # otherwise the daemon.json port, then 9120. No /health probe first: the next
162
+ # port is tried only when a connection is refused, which proves nothing
163
+ # received the payload, so it is never delivered twice.
164
+ \$ports = @()
165
+ \$candidate = 0
166
+ if ([int]::TryParse([string]\$env:AGENTDECK_PORT, [ref]\$candidate) -and \$candidate -ge 1 -and \$candidate -le 65535) {
167
+ \$ports = @(\$candidate)
168
+ } else {
138
169
  \$f = Join-Path \$env:USERPROFILE '.agentdeck\\daemon.json'
139
170
  if (Test-Path \$f) {
140
171
  try {
141
172
  \$d = Get-Content -Raw \$f | ConvertFrom-Json
142
173
  \$raw = if (\$d.httpPort) { \$d.httpPort } else { \$d.port }
143
174
  \$candidate = 0
144
- if ([int]::TryParse([string]\$raw, [ref]\$candidate) -and \$candidate -ge 1 -and \$candidate -le 65535) {
145
- try {
146
- Invoke-RestMethod -Uri ('http://127.0.0.1:' + \$candidate + '/health') -TimeoutSec 1 -ErrorAction Stop | Out-Null
147
- \$port = \$candidate
148
- } catch {}
149
- }
175
+ if ([int]::TryParse([string]\$raw, [ref]\$candidate) -and \$candidate -ge 1 -and \$candidate -le 65535) { \$ports += \$candidate }
150
176
  } catch {}
151
177
  }
178
+ if (\$ports -notcontains 9120) { \$ports += 9120 }
152
179
  }
153
- if (-not \$port) { \$port = 9120 }
154
180
 
155
181
  # Read stdin as UTF-8: [Console]::In decodes piped stdin with the console OEM
156
182
  # codepage (e.g. CP949), garbling non-ASCII payload text.
157
183
  \$body = (New-Object System.IO.StreamReader([Console]::OpenStandardInput(), [System.Text.Encoding]::UTF8)).ReadToEnd()
158
- # Post UTF-8 bytes: Invoke-RestMethod encodes a string body as ISO-8859-1 when
159
- # the content type carries no charset, replacing non-ASCII characters with '?'.
184
+ # Post UTF-8 bytes with an explicit charset; the daemon reads them as sent.
160
185
  \$bytes = [System.Text.Encoding]::UTF8.GetBytes([string]\$body)
161
186
 
162
- try {
163
- Invoke-RestMethod -Uri ('http://127.0.0.1:' + \$port + '/hooks/' + \$HookEvent) -Method Post -Body \$bytes -ContentType 'application/json; charset=utf-8' -TimeoutSec 2 -ErrorAction Stop | Out-Null
164
- } catch {}
187
+ # A loopback POST needs no proxy: system proxy auto-detection (WPAD) and the
188
+ # Expect: 100-continue wait can each add seconds before the request is sent.
189
+ try { [System.Net.WebRequest]::DefaultWebProxy = \$null } catch {}
190
+ try { [System.Net.ServicePointManager]::Expect100Continue = \$false } catch {}
191
+
192
+ foreach (\$port in \$ports) {
193
+ try {
194
+ \$req = [System.Net.HttpWebRequest]::Create('http://127.0.0.1:' + \$port + '/hooks/' + \$HookEvent)
195
+ \$req.Method = 'POST'
196
+ \$req.Proxy = \$null
197
+ \$req.ContentType = 'application/json; charset=utf-8'
198
+ \$req.Timeout = \$timeoutMs
199
+ \$req.ReadWriteTimeout = \$timeoutMs
200
+ \$req.ContentLength = \$bytes.Length
201
+ \$stream = \$req.GetRequestStream()
202
+ \$stream.Write(\$bytes, 0, \$bytes.Length)
203
+ \$stream.Close()
204
+ \$resp = \$req.GetResponse()
205
+ if (\$respond) {
206
+ # Pass the daemon's UTF-8 bytes through unchanged: a console encoding
207
+ # would turn a non-ASCII directive or reason into '?'.
208
+ \$buffer = New-Object System.IO.MemoryStream
209
+ \$resp.GetResponseStream().CopyTo(\$buffer)
210
+ \$out = \$buffer.ToArray()
211
+ if (\$out.Length -gt 0) {
212
+ \$stdout = [Console]::OpenStandardOutput()
213
+ \$stdout.Write(\$out, 0, \$out.Length)
214
+ \$stdout.Flush()
215
+ }
216
+ }
217
+ \$resp.Close()
218
+ break
219
+ } catch {
220
+ # Only a refused connection moves on to the next port. A timeout, an HTTP
221
+ # error or anything else ends the hook: the daemon may have the payload.
222
+ \$e = \$_.Exception
223
+ \$refused = \$false
224
+ while (\$e) {
225
+ if (\$e -is [System.Net.WebException] -and \$e.Status -eq [System.Net.WebExceptionStatus]::ConnectFailure) { \$refused = \$true }
226
+ if (\$e -is [System.Net.Sockets.SocketException] -and \$e.SocketErrorCode -eq [System.Net.Sockets.SocketError]::ConnectionRefused) { \$refused = \$true }
227
+ \$e = \$e.InnerException
228
+ }
229
+ if (-not \$refused) { break }
230
+ }
231
+ }
165
232
 
166
233
  # Never block or fail the tool call.
167
234
  exit 0
@@ -192,6 +259,269 @@ export function buildHookCommandWin(eventName, home = homedir()) {
192
259
  const script = windowsHookScriptPath(home);
193
260
  return `powershell -NoProfile -ExecutionPolicy Bypass -File "${script}" -HookEvent ${eventName}`;
194
261
  }
262
+ // ===== Claude Code status-line relay =====
263
+ /**
264
+ * The status line is Claude Code's one documented carrier of the claude.ai
265
+ * subscription windows (`rate_limits.five_hour` / `seven_day`), so AgentDeck
266
+ * installs a status-line command that forwards Claude's status document to the
267
+ * local daemon (`/claude/statusline`) and then runs whatever status line the
268
+ * user already had, unchanged. Byte-identical with `@agentdeck/setup`'s
269
+ * inlined copy and Swift `HookInstaller.buildStatuslineRelayCommand` — change
270
+ * all three together. Rules for what the daemon does with the document:
271
+ * `shared/src/claude-statusline.ts`.
272
+ *
273
+ * Two things this snippet does differently from the hook snippet, on purpose:
274
+ * it never reads `$AGENTDECK_PORT` (a managed session bridge does not serve the
275
+ * route — the account gauge belongs to the daemon), and it is fire-and-forget
276
+ * only, bounded like a telemetry hook: Claude Code cancels a status-line
277
+ * script the moment the next update arrives, so a hung curl costs a missed
278
+ * repaint, never a stalled TUI. The wrapped command receives the same stdin
279
+ * document through `printf '%s' "$I" |`.
280
+ */
281
+ export const STATUSLINE_RELAY_MARKER = '/claude/statusline';
282
+ const STATUSLINE_RELAY_HEADER = '# AgentDeck status-line relay v1 — forwards Claude Code rate_limits to the local daemon; the status line you had runs below, unchanged.';
283
+ const STATUSLINE_WRAP_OPEN = `printf '%s' "$I" | {`;
284
+ export function buildStatuslineRelayCommand(original) {
285
+ const lines = [
286
+ STATUSLINE_RELAY_HEADER,
287
+ `I=$(cat)`,
288
+ `PORT=""`,
289
+ `for F in "$HOME/.agentdeck/daemon.json" "$HOME/Library/Containers/bound.serendipity.agent.deck/Data/Library/Application Support/AgentDeck/daemon.json" "$HOME/Library/Group Containers/group.bound.serendipity.agent.deck/daemon.json"; do`,
290
+ ` [ -f "$F" ] || continue`,
291
+ ` P=$(python3 -c "import json,sys,signal;signal.signal(signal.SIGALRM,lambda *_:sys.exit(0));signal.setitimer(signal.ITIMER_REAL,0.2);d=json.load(open(sys.argv[1]));p=d.get('httpPort') or d.get('port');print(p if type(p) is int and 1 <= p <= 65535 else '')" "$F" 2>/dev/null)`,
292
+ ` [ -n "$P" ] && curl -sf --connect-timeout 0.2 --max-time 0.3 "http://127.0.0.1:$P/health" >/dev/null 2>&1 && { PORT="$P"; break; }`,
293
+ `done`,
294
+ `PORT="\${PORT:-9120}"`,
295
+ `printf '%s' "$I" | curl -sf --connect-timeout 0.2 --max-time 0.8 -X POST "http://127.0.0.1:$PORT/claude/statusline" -H 'Content-Type: application/json' -H "X-AgentDeck-Pid: $PPID" -d @- >/dev/null 2>&1 || true`,
296
+ ];
297
+ const own = original?.trim();
298
+ if (own)
299
+ lines.push(STATUSLINE_WRAP_OPEN, own, `}`);
300
+ return lines.join('\n');
301
+ }
302
+ /**
303
+ * The Windows relay body, shipped as a script file for the reason
304
+ * WINDOWS_HOOK_SCRIPT documents: with Git Bash installed, Claude Code runs the
305
+ * command through `sh -c`, which expands `$name` before PowerShell parses it. The
306
+ * user's own status-line command travels as base64 (`-OriginalB64`) for the
307
+ * same reason — nothing on the command line for `sh` to expand or quote — and
308
+ * is run through Git Bash when available, otherwise PowerShell, matching
309
+ * Claude Code's documented Windows shell selection with the same stdin.
310
+ * Mirrored byte-identically in `setup/src/setup.ts`.
311
+ */
312
+ export const WINDOWS_STATUSLINE_SCRIPT = `# AgentDeck -> Claude Code status-line relay. Generated by @agentdeck/hooks; edits are overwritten.
313
+ # Invoked as: powershell -NoProfile -ExecutionPolicy Bypass -File "<this file>" [-OriginalB64 <base64 of your own status-line command>]
314
+ #
315
+ # Must be a script file, NOT an inline -Command, for the reason agentdeck-hook.ps1
316
+ # documents: when installed, Git Bash (sh -c) expands \$var references before
317
+ # PowerShell sees them. Your own command travels as
318
+ # base64 for the same reason.
319
+ param([ValidatePattern('^[A-Za-z0-9+/=]*\$')][string]\$OriginalB64 = '')
320
+
321
+ \$ErrorActionPreference = 'SilentlyContinue'
322
+ try { [Console]::OutputEncoding = New-Object System.Text.UTF8Encoding(\$false) } catch {}
323
+
324
+ # Read stdin as UTF-8: [Console]::In decodes piped stdin with the console OEM
325
+ # codepage (e.g. CP949), garbling non-ASCII payload text.
326
+ \$body = (New-Object System.IO.StreamReader([Console]::OpenStandardInput(), [System.Text.Encoding]::UTF8)).ReadToEnd()
327
+
328
+ \$port = 0
329
+ \$f = Join-Path \$env:USERPROFILE '.agentdeck\\daemon.json'
330
+ if (Test-Path \$f) {
331
+ try {
332
+ \$d = Get-Content -Raw \$f | ConvertFrom-Json
333
+ \$raw = if (\$d.httpPort) { \$d.httpPort } else { \$d.port }
334
+ \$candidate = 0
335
+ if ([int]::TryParse([string]\$raw, [ref]\$candidate) -and \$candidate -ge 1 -and \$candidate -le 65535) {
336
+ try {
337
+ Invoke-RestMethod -Uri ('http://127.0.0.1:' + \$candidate + '/health') -TimeoutSec 1 -ErrorAction Stop | Out-Null
338
+ \$port = \$candidate
339
+ } catch {}
340
+ }
341
+ } catch {}
342
+ }
343
+ if (-not \$port) { \$port = 9120 }
344
+
345
+ # Post UTF-8 bytes; the daemon keeps only rate_limits (shared/src/claude-statusline.ts).
346
+ \$bytes = [System.Text.Encoding]::UTF8.GetBytes([string]\$body)
347
+ try {
348
+ Invoke-RestMethod -Uri ('http://127.0.0.1:' + \$port + '/claude/statusline') -Method Post -Body \$bytes -ContentType 'application/json; charset=utf-8' -TimeoutSec 2 -ErrorAction Stop | Out-Null
349
+ } catch {}
350
+
351
+ # Your own status line, when one was wrapped: the same document on its stdin,
352
+ # its output is what Claude Code shows. Match Claude Code's Windows shell choice:
353
+ # Git Bash when available, otherwise the PowerShell running this relay.
354
+ if (\$OriginalB64) {
355
+ \$script = \$null
356
+ try {
357
+ \$original = [System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String(\$OriginalB64))
358
+ \$sh = \$env:CLAUDE_CODE_GIT_BASH_PATH
359
+ if (-not \$sh -or -not (Test-Path \$sh)) { \$sh = (Get-Command bash -ErrorAction SilentlyContinue).Source }
360
+ \$psi = New-Object System.Diagnostics.ProcessStartInfo
361
+ if (\$sh) {
362
+ \$script = [System.IO.Path]::GetTempFileName()
363
+ [System.IO.File]::WriteAllText(\$script, \$original, (New-Object System.Text.UTF8Encoding(\$false)))
364
+ \$psi.FileName = \$sh
365
+ \$psi.Arguments = '"' + \$script.Replace('\\', '/') + '"'
366
+ } else {
367
+ \$psi.FileName = [System.Diagnostics.Process]::GetCurrentProcess().MainModule.FileName
368
+ # PowerShell captures its stdin reader before running a command that uses
369
+ # the input variable. Parse the user's command after selecting UTF-8 and
370
+ # feed that pipeline explicitly; leave raw stdin untouched otherwise.
371
+ \$command = @'
372
+ [Console]::InputEncoding = New-Object System.Text.UTF8Encoding(\$false)
373
+ [Console]::OutputEncoding = New-Object System.Text.UTF8Encoding(\$false)
374
+ \$OutputEncoding = [Console]::OutputEncoding
375
+ \$userCommand = [ScriptBlock]::Create([System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('__AGENTDECK_ORIGINAL__')))
376
+ \$usesInput = \$userCommand.Ast.Find({
377
+ param(\$node)
378
+ \$node -is [System.Management.Automation.Language.VariableExpressionAst] -and
379
+ \$node.VariablePath.IsVariable -and
380
+ \$node.VariablePath.UserPath -match '^(?:variable:)?(?:(?:global|local|script|private):)?input\$'
381
+ }, \$false)
382
+ if (\$usesInput) {
383
+ & { while ((\$line = [Console]::In.ReadLine()) -ne \$null) { \$line } } | & \$userCommand
384
+ } else {
385
+ & \$userCommand
386
+ }
387
+ '@
388
+ \$command = \$command.Replace('__AGENTDECK_ORIGINAL__', \$OriginalB64)
389
+ \$psi.Arguments = '-NoProfile -ExecutionPolicy Bypass -EncodedCommand ' + [Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes(\$command))
390
+ }
391
+ \$psi.UseShellExecute = \$false
392
+ \$psi.CreateNoWindow = \$true
393
+ \$psi.RedirectStandardInput = \$true
394
+ \$psi.RedirectStandardOutput = \$true
395
+ \$psi.StandardOutputEncoding = [System.Text.Encoding]::UTF8
396
+ \$p = [System.Diagnostics.Process]::Start(\$psi)
397
+ \$stdin = New-Object System.IO.StreamWriter(\$p.StandardInput.BaseStream, (New-Object System.Text.UTF8Encoding(\$false)))
398
+ \$stdin.Write(\$body)
399
+ \$stdin.Close()
400
+ \$out = \$p.StandardOutput.ReadToEnd()
401
+ \$p.WaitForExit()
402
+ [Console]::Out.Write(\$out)
403
+ } catch {} finally {
404
+ if (\$script) { Remove-Item \$script -Force }
405
+ }
406
+ }
407
+
408
+ # Never block or fail the status line.
409
+ exit 0
410
+ `;
411
+ /** Where the Windows relay script is installed. */
412
+ export function windowsStatuslineScriptPath(home = homedir()) {
413
+ return join(home, '.agentdeck', 'agentdeck-statusline.ps1');
414
+ }
415
+ /** Write the Windows relay script, creating `~/.agentdeck` if needed. Idempotent. */
416
+ export function ensureWindowsStatuslineScript(home = homedir()) {
417
+ const path = windowsStatuslineScriptPath(home);
418
+ mkdirSync(join(home, '.agentdeck'), { recursive: true });
419
+ if (!existsSync(path) || readFileSync(path, 'utf-8') !== WINDOWS_STATUSLINE_SCRIPT) {
420
+ writeFileSync(path, WINDOWS_STATUSLINE_SCRIPT);
421
+ }
422
+ return path;
423
+ }
424
+ /**
425
+ * Windows variant: invoke `agentdeck-statusline.ps1` by path, the user's own
426
+ * command riding as base64. The command line carries no `$` and no quote the
427
+ * POSIX shell Claude Code spawns it through could misread.
428
+ */
429
+ export function buildStatuslineRelayCommandWin(original, home = homedir()) {
430
+ const base = `powershell -NoProfile -ExecutionPolicy Bypass -File "${windowsStatuslineScriptPath(home)}"`;
431
+ const own = original?.trim();
432
+ return own ? `${base} -OriginalB64 ${Buffer.from(own, 'utf-8').toString('base64')}` : base;
433
+ }
434
+ const WINDOWS_STATUSLINE_MARKER = 'agentdeck-statusline.ps1';
435
+ export function isAgentDeckStatuslineCommand(command) {
436
+ return typeof command === 'string'
437
+ && (command.includes(STATUSLINE_RELAY_MARKER) || command.includes(WINDOWS_STATUSLINE_MARKER));
438
+ }
439
+ /**
440
+ * The user's own command inside an AgentDeck relay: their text verbatim, `''`
441
+ * when the relay was installed alone, `null` when the command is not ours.
442
+ */
443
+ export function unwrapStatuslineCommand(command) {
444
+ if (!isAgentDeckStatuslineCommand(command))
445
+ return null;
446
+ const text = command;
447
+ if (text.includes(WINDOWS_STATUSLINE_MARKER)) {
448
+ const encoded = /-OriginalB64 ([A-Za-z0-9+/=]+)/.exec(text);
449
+ return encoded ? Buffer.from(encoded[1], 'base64').toString('utf-8') : '';
450
+ }
451
+ const open = `\n${STATUSLINE_WRAP_OPEN}\n`;
452
+ const at = text.indexOf(open);
453
+ if (at < 0)
454
+ return '';
455
+ const body = text.slice(at + open.length);
456
+ return body.endsWith('\n}') ? body.slice(0, -2) : body;
457
+ }
458
+ function statuslineRelayCommandFor(original, platform, home) {
459
+ return platform === 'win32' ? buildStatuslineRelayCommandWin(original, home) : buildStatuslineRelayCommand(original);
460
+ }
461
+ export function statuslinePolicyFromEnv(env = process.env) {
462
+ const v = (env.AGENTDECK_STATUSLINE ?? '').trim().toLowerCase();
463
+ if (v === '1' || v === 'on' || v === 'true')
464
+ return 'on';
465
+ if (v === '0' || v === 'off' || v === 'false')
466
+ return 'off';
467
+ return 'auto';
468
+ }
469
+ /** Pure logic: install or refresh the relay in a settings object (no file I/O). */
470
+ export function applyStatuslineRelay(settings, policy = 'auto', platform = process.platform, home = homedir()) {
471
+ if (policy === 'off') {
472
+ const removed = removeStatuslineRelay(settings);
473
+ return {
474
+ installed: false,
475
+ wrapped: false,
476
+ reason: removed ? 'removed — your own status line is restored' : 'disabled (--no-statusline / AGENTDECK_STATUSLINE=0)',
477
+ };
478
+ }
479
+ const current = settings.statusLine;
480
+ if (current != null && (typeof current !== 'object' || Array.isArray(current))) {
481
+ return { installed: false, wrapped: false, reason: 'statusLine is not an object; left untouched' };
482
+ }
483
+ const command = current?.command;
484
+ const ours = isAgentDeckStatuslineCommand(command);
485
+ if (current && !ours && typeof command !== 'string') {
486
+ return { installed: false, wrapped: false, reason: 'statusLine carries no command; left untouched' };
487
+ }
488
+ const original = ours ? unwrapStatuslineCommand(command) ?? '' : (typeof command === 'string' ? command : '');
489
+ if (!original.trim() && !ours && policy !== 'on') {
490
+ return {
491
+ installed: false,
492
+ wrapped: false,
493
+ reason: 'no status line configured — opt in with --statusline (a configured status line hides Claude Code\'s footer hints)',
494
+ };
495
+ }
496
+ settings.statusLine = { ...(current ?? {}), type: 'command', command: statuslineRelayCommandFor(original, platform, home) };
497
+ return { installed: true, wrapped: original.trim().length > 0 };
498
+ }
499
+ /** Pure logic: take the relay out again, restoring the user's own command verbatim. */
500
+ export function removeStatuslineRelay(settings) {
501
+ const current = settings?.statusLine;
502
+ if (!current || typeof current !== 'object')
503
+ return false;
504
+ const original = unwrapStatuslineCommand(current.command);
505
+ if (original == null)
506
+ return false;
507
+ if (original)
508
+ settings.statusLine = { ...current, command: original };
509
+ else
510
+ delete settings.statusLine;
511
+ return true;
512
+ }
513
+ /** Pure logic: keep an installed relay on the current snippet. Never installs one. */
514
+ export function refreshStatuslineRelay(settings, platform = process.platform, home = homedir()) {
515
+ const current = settings?.statusLine;
516
+ const original = current && typeof current === 'object' ? unwrapStatuslineCommand(current.command) : null;
517
+ if (original == null)
518
+ return false;
519
+ const rebuilt = statuslineRelayCommandFor(original, platform, home);
520
+ if (rebuilt === current.command)
521
+ return false;
522
+ settings.statusLine = { ...current, type: 'command', command: rebuilt };
523
+ return true;
524
+ }
195
525
  export const KIRO_HOOK_EVENTS = [
196
526
  ['SessionStart', 'kiro_session_start'],
197
527
  ['UserPromptSubmit', 'kiro_user_prompt_submit'],
@@ -288,7 +618,7 @@ export function buildHookEntry(eventName, home = homedir()) {
288
618
  // Tool-specific hooks need a glob matcher to fire.
289
619
  // Empty string "" means "match nothing" for tool events — use "" for non-tool
290
620
  // events (SessionStart, Stop, etc.) where matcher is ignored.
291
- const needsToolMatcher = ['PreToolUse', 'PostToolUse', 'PostToolUseFailure'].includes(eventName);
621
+ const needsToolMatcher = ['PreToolUse', 'PostToolUse', 'PostToolUseFailure', 'PermissionRequest'].includes(eventName);
292
622
  return {
293
623
  matcher: needsToolMatcher ? '*' : '',
294
624
  hooks: [handler],
@@ -455,7 +785,7 @@ export function sweepLegacyHooks(home = homedir()) {
455
785
  return true;
456
786
  }
457
787
  /** File-system wrapper: install hooks into ~/.claude/settings.json */
458
- export function installHooks(home = homedir()) {
788
+ export function installHooks(home = homedir(), opts = {}) {
459
789
  const { dir, settings: settingsPath } = claudeSettingsPaths(home);
460
790
  if (!existsSync(dir)) {
461
791
  mkdirSync(dir, { recursive: true });
@@ -468,8 +798,15 @@ export function installHooks(home = homedir()) {
468
798
  }
469
799
  const settings = readSettings(settingsPath);
470
800
  applyHooks(settings, home);
801
+ const statusline = applyStatuslineRelay(settings, opts.statusline ?? statuslinePolicyFromEnv(), process.platform, home);
802
+ if (process.platform === 'win32' && isAgentDeckStatuslineCommand(settings.statusLine?.command)) {
803
+ ensureWindowsStatuslineScript(home);
804
+ }
471
805
  writeSettings(settingsPath, settings);
472
806
  console.log(`Hooks installed to ${settingsPath}`);
807
+ console.log(statusline.installed
808
+ ? `Claude status-line relay ${statusline.wrapped ? 'wrapped around your status line' : 'installed (relay only)'}`
809
+ : `Claude status-line relay not installed: ${statusline.reason}`);
473
810
  }
474
811
  /** File-system wrapper: uninstall hooks from ~/.claude/settings.json (and the legacy file) */
475
812
  export function uninstallHooks(home = homedir()) {
@@ -478,11 +815,14 @@ export function uninstallHooks(home = homedir()) {
478
815
  if (!existsSync(settingsPath))
479
816
  return;
480
817
  const settings = removeHooks(readSettings(settingsPath));
818
+ if (removeStatuslineRelay(settings))
819
+ console.log('Claude status-line relay removed (your own status line restored)');
481
820
  writeSettings(settingsPath, settings);
482
- // The script is AgentDeck-owned in its entirety, like the OpenCode plugin.
483
- const script = windowsHookScriptPath(home);
484
- if (existsSync(script))
485
- unlinkSync(script);
821
+ // The scripts are AgentDeck-owned in their entirety, like the OpenCode plugin.
822
+ for (const script of [windowsHookScriptPath(home), windowsStatuslineScriptPath(home)]) {
823
+ if (existsSync(script))
824
+ unlinkSync(script);
825
+ }
486
826
  console.log('Hooks uninstalled');
487
827
  }
488
828
  /**
@@ -528,6 +868,10 @@ export function migrateHooksIfNeeded(home = homedir()) {
528
868
  ensureWindowsHookScript(home);
529
869
  const before = JSON.stringify(settings);
530
870
  applyHooks(settings, home);
871
+ // An installed relay keeps its script current too (never installed here).
872
+ refreshStatuslineRelay(settings, 'win32', home);
873
+ if (isAgentDeckStatuslineCommand(settings.statusLine?.command))
874
+ ensureWindowsStatuslineScript(home);
531
875
  if (JSON.stringify(settings) !== before)
532
876
  writeSettings(settingsPath, settings);
533
877
  return;
@@ -589,6 +933,21 @@ export function migrateHooksIfNeeded(home = homedir()) {
589
933
  applyHooks(settings, home);
590
934
  migrated = true;
591
935
  }
936
+ // Migration 12: an installed Claude status-line relay is kept on the
937
+ // current snippet. Never installed here — a status line is a visible
938
+ // change to Claude Code's footer, so only `installHooks` adds one, under
939
+ // its policy.
940
+ if (refreshStatuslineRelay(settings, process.platform, home))
941
+ migrated = true;
942
+ // Migration 13: the display-only `PermissionRequest` hook. Existing
943
+ // installs predate it, so they keep showing a permission prompt only when
944
+ // the Notification arrives ~6 s after the dialog. Checked by ownership,
945
+ // not presence: a user's own PermissionRequest hook must not hide ours.
946
+ const permissionRequestGroups = settings.hooks?.PermissionRequest;
947
+ if (!Array.isArray(permissionRequestGroups) || !permissionRequestGroups.some(isAgentDeckHookEntry)) {
948
+ applyHooks(settings, home);
949
+ migrated = true;
950
+ }
592
951
  if (migrated) {
593
952
  writeSettings(settingsPath, settings);
594
953
  }
@@ -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,CAwd7C;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,CAue7C;AAeD;;6EAE6E;AAC7E,wBAAgB,4BAA4B,CAAC,IAAI,GAAE,sBAA2B,GAAG,qBAAqB,CAerG;AAED,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,sBAA2B,GAAG,IAAI,CAK9E"}
@@ -40,7 +40,7 @@ export function opencodePluginPath() {
40
40
  function envOptOut() {
41
41
  return process.env.AGENTDECK_NO_OPENCODE_HOOKS === '1';
42
42
  }
43
- const PLUGIN_VERSION = 4;
43
+ const PLUGIN_VERSION = 5;
44
44
  /** Assemble the plugin source. Exported so tests can assert schema
45
45
  * regressions (event names, payload fields, managed-session guard)
46
46
  * without driving the file installer. */
@@ -196,6 +196,12 @@ export const AgentDeckObserver = async ({ directory, client }) => {
196
196
  const promptSent = new Set(); // user messageIDs whose prompt_submit was posted
197
197
  const promptTimers = new Map();// user messageID -> flush timer
198
198
  const responses = new Map(); // sessionID -> latest assistant text
199
+ // sessionID -> { model, provider } of the turn's latest assistant message.
200
+ // Every assistant message.updated carries modelID/providerID, the first one
201
+ // included (10,474 of 10,474 in OpenCode 1.18.35's own event log,
202
+ // 2026-10-18); the stop is the only hook that tells the daemon which model
203
+ // answered, so APME turns from this plugin carried no model at all.
204
+ const models = new Map();
199
205
  const startedAt = new Map(); // sessionID -> turn start ms
200
206
  const toolPhase = new Map(); // tool callID -> "start" | "end"
201
207
  const parentOf = new Map(); // sessionID -> parent sessionID, or null (top level)
@@ -422,6 +428,11 @@ export const AgentDeckObserver = async ({ directory, client }) => {
422
428
  if (typeof timer.unref === "function") timer.unref();
423
429
  promptTimers.set(info.id, timer);
424
430
  }
431
+ } else if (info.role === "assistant" && typeof info.modelID === "string" && info.modelID.trim()) {
432
+ models.set(sessionID, {
433
+ model: info.modelID.trim().slice(0, 200),
434
+ provider: typeof info.providerID === "string" ? info.providerID.trim().slice(0, 80) : "",
435
+ });
425
436
  }
426
437
  } else if (type === "message.part.updated") {
427
438
  const part = props.part || {};
@@ -494,12 +505,16 @@ export const AgentDeckObserver = async ({ directory, client }) => {
494
505
  } else if (type === "session.idle") {
495
506
  const sessionID = props.sessionID;
496
507
  announce(sessionID);
508
+ const answered = models.get(sessionID);
497
509
  post("opencode_stop", {
498
510
  session_id: sessionID,
499
511
  last_assistant_message: responses.get(sessionID) || "",
512
+ ...(answered ? { model: answered.model } : {}),
513
+ ...(answered && answered.provider ? { model_provider: answered.provider } : {}),
500
514
  cwd,
501
515
  });
502
516
  responses.delete(sessionID);
517
+ models.delete(sessionID);
503
518
  startedAt.delete(sessionID);
504
519
  // Do NOT clear userMsgs/promptSent for this session. OpenCode
505
520
  // re-emits message.updated for a user message after the turn
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentdeck/hooks",
3
- "version": "1.9.2",
3
+ "version": "1.9.3",
4
4
  "engines": {
5
5
  "node": "22.x || 24.x || 26.x"
6
6
  },