@raidiant/notifai 5.0.0 → 7.0.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.
Files changed (126) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +2 -2
  3. package/dist/atomic-file.js +13 -0
  4. package/dist/atomic-file.js.map +1 -1
  5. package/dist/client.d.ts +8 -3
  6. package/dist/client.js +24 -3
  7. package/dist/client.js.map +1 -1
  8. package/dist/commands-auth.d.ts +14 -0
  9. package/dist/commands-auth.js +154 -0
  10. package/dist/commands-auth.js.map +1 -0
  11. package/dist/commands-config.d.ts +31 -0
  12. package/dist/commands-config.js +246 -0
  13. package/dist/commands-config.js.map +1 -0
  14. package/dist/commands-core.d.ts +102 -0
  15. package/dist/commands-core.js +135 -0
  16. package/dist/commands-core.js.map +1 -0
  17. package/dist/commands-devices.d.ts +31 -0
  18. package/dist/commands-devices.js +124 -0
  19. package/dist/commands-devices.js.map +1 -0
  20. package/dist/commands-doctor.d.ts +24 -0
  21. package/dist/commands-doctor.js +1011 -0
  22. package/dist/commands-doctor.js.map +1 -0
  23. package/dist/commands-harness-context.d.ts +65 -0
  24. package/dist/commands-harness-context.js +97 -0
  25. package/dist/commands-harness-context.js.map +1 -0
  26. package/dist/commands-hook-shape.d.ts +17 -0
  27. package/dist/commands-hook-shape.js +37 -0
  28. package/dist/commands-hook-shape.js.map +1 -0
  29. package/dist/commands-hooks.d.ts +115 -0
  30. package/dist/commands-hooks.js +1225 -0
  31. package/dist/commands-hooks.js.map +1 -0
  32. package/dist/commands-init.d.ts +35 -0
  33. package/dist/commands-init.js +580 -0
  34. package/dist/commands-init.js.map +1 -0
  35. package/dist/commands-io.d.ts +2 -0
  36. package/dist/commands-io.js +110 -0
  37. package/dist/commands-io.js.map +1 -0
  38. package/dist/commands-logs.d.ts +30 -0
  39. package/dist/commands-logs.js +201 -0
  40. package/dist/commands-logs.js.map +1 -0
  41. package/dist/commands-send-support.d.ts +44 -0
  42. package/dist/commands-send-support.js +183 -0
  43. package/dist/commands-send-support.js.map +1 -0
  44. package/dist/commands-send.d.ts +33 -0
  45. package/dist/commands-send.js +519 -0
  46. package/dist/commands-send.js.map +1 -0
  47. package/dist/commands-setup-proof.d.ts +15 -0
  48. package/dist/commands-setup-proof.js +53 -0
  49. package/dist/commands-setup-proof.js.map +1 -0
  50. package/dist/commands-skill.d.ts +10 -0
  51. package/dist/commands-skill.js +71 -0
  52. package/dist/commands-skill.js.map +1 -0
  53. package/dist/commands.d.ts +12 -387
  54. package/dist/commands.js +12 -4536
  55. package/dist/commands.js.map +1 -1
  56. package/dist/config-schema.js +1 -1
  57. package/dist/config-schema.js.map +1 -1
  58. package/dist/config.d.ts +4 -4
  59. package/dist/config.js +6 -4
  60. package/dist/config.js.map +1 -1
  61. package/dist/credentials.js +13 -3
  62. package/dist/credentials.js.map +1 -1
  63. package/dist/generated-session-label.d.ts +2 -0
  64. package/dist/generated-session-label.js +152 -0
  65. package/dist/generated-session-label.js.map +1 -0
  66. package/dist/hooks.d.ts +2 -2
  67. package/dist/hooks.js +127 -99
  68. package/dist/hooks.js.map +1 -1
  69. package/dist/interactive.js +4 -4
  70. package/dist/interactive.js.map +1 -1
  71. package/dist/invocation-context.d.ts +3 -0
  72. package/dist/invocation-context.js +23 -6
  73. package/dist/invocation-context.js.map +1 -1
  74. package/dist/logging.js +1 -0
  75. package/dist/logging.js.map +1 -1
  76. package/dist/main.js +3 -3
  77. package/dist/main.js.map +1 -1
  78. package/dist/opencode-plugin.js +18 -3
  79. package/dist/opencode-plugin.js.map +1 -1
  80. package/dist/readiness.d.ts +3 -1
  81. package/dist/readiness.js.map +1 -1
  82. package/dist/session-labels.d.ts +30 -0
  83. package/dist/session-labels.js +278 -0
  84. package/dist/session-labels.js.map +1 -0
  85. package/package.json +2 -2
  86. package/src/atomic-file.ts +12 -0
  87. package/src/client.test.ts +90 -1
  88. package/src/client.ts +35 -2
  89. package/src/commands-auth.ts +174 -0
  90. package/src/commands-config.ts +307 -0
  91. package/src/commands-core.ts +240 -0
  92. package/src/commands-devices.ts +150 -0
  93. package/src/commands-doctor.ts +1209 -0
  94. package/src/commands-harness-context.ts +134 -0
  95. package/src/commands-hook-shape.ts +53 -0
  96. package/src/commands-hooks.ts +1586 -0
  97. package/src/commands-init.ts +721 -0
  98. package/src/commands-io.ts +108 -0
  99. package/src/commands-logs.ts +243 -0
  100. package/src/commands-send-support.ts +227 -0
  101. package/src/commands-send.ts +623 -0
  102. package/src/commands-setup-proof.ts +71 -0
  103. package/src/commands-skill.ts +84 -0
  104. package/src/commands.test.ts +567 -42
  105. package/src/commands.ts +58 -5614
  106. package/src/config-schema.ts +1 -1
  107. package/src/config.test.ts +9 -0
  108. package/src/config.ts +10 -5
  109. package/src/credentials.test.ts +25 -1
  110. package/src/credentials.ts +13 -3
  111. package/src/generated-session-label.ts +155 -0
  112. package/src/hooks.test.ts +355 -16
  113. package/src/hooks.ts +145 -97
  114. package/src/install-hooks.test.ts +84 -1
  115. package/src/interactive.test.ts +19 -1
  116. package/src/interactive.ts +4 -4
  117. package/src/invocation-context.test.ts +115 -16
  118. package/src/invocation-context.ts +32 -11
  119. package/src/logging.test.ts +15 -2
  120. package/src/logging.ts +1 -0
  121. package/src/main.ts +9 -3
  122. package/src/opencode-plugin.ts +18 -3
  123. package/src/readiness.ts +3 -1
  124. package/src/session-labels.test.ts +303 -0
  125. package/src/session-labels.ts +360 -0
  126. package/src/skill.test.ts +13 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands-doctor.js","sourceRoot":"","sources":["../src/commands-doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { type Harness } from './install-hooks.js';
2
+ /**
3
+ * Exact evidence that this shell command is running inside one supported
4
+ * harness. Configuration-directory variables are deliberately absent: they
5
+ * describe where a tool stores files, not which tool owns the current shell.
6
+ * OpenCode's generated plugin supplies the Notifai-owned marker because its
7
+ * plugin API exposes session identity but the ordinary environment does not.
8
+ */
9
+ export interface ActiveHarnessSession {
10
+ harness: Harness;
11
+ label: string;
12
+ sessionId?: string;
13
+ /** Trusted human title published by this harness's managed adapter. */
14
+ sessionLabel?: string;
15
+ /** The harness has only a temporary placeholder title so far. */
16
+ sessionLabelPending?: boolean;
17
+ }
18
+ interface ActiveHarnessResolution {
19
+ active: ActiveHarnessSession | null;
20
+ /**
21
+ * Markers of harnesses that could equally own this shell, present only when
22
+ * nothing here has fired yet and declared order had to pick. Whatever is
23
+ * reported then has to hold for every one of them.
24
+ */
25
+ contested: ActiveHarnessSession[];
26
+ }
27
+ /**
28
+ * Which harness session owns this shell, when several claim to.
29
+ *
30
+ * Nesting is ordinary: an orchestrator running inside Claude Code starts a
31
+ * Codex session, and that Codex process inherits `CLAUDECODE` and
32
+ * `CLAUDE_CODE_SESSION_ID` on top of its own `CODEX_THREAD_ID`. The mirror is
33
+ * just as ordinary, so no fixed precedence between two markers can be right —
34
+ * whichever one it favours is wrong in the opposite nesting, and the cost is
35
+ * silent: `ask` looks up a session that is not this one, and every remedy the
36
+ * agent is told to try addresses a harness that is not running here.
37
+ *
38
+ * The general rule is to prefer the most specific *live* signal over inherited
39
+ * environment. An inherited marker is a claim about some ancestor process; a
40
+ * session id that names an entry in this directory's live pointer index is
41
+ * evidence that that exact session fired a hook here and its state still
42
+ * exists. Live evidence therefore wins over declared order, and the most
43
+ * recently active pointer wins between two live candidates: the harness whose
44
+ * turn is running is the one that fired last, while its parent sits blocked on
45
+ * the child it started. Declared order decides only when nothing here has
46
+ * fired yet, and it says so — every route fails closed there anyway.
47
+ */
48
+ export declare function resolveActiveHarness(env: NodeJS.ProcessEnv, cwd: string, now: number): ActiveHarnessResolution;
49
+ export declare function activeHarnessSession(env: NodeJS.ProcessEnv, cwd: string, now: number): ActiveHarnessSession | null;
50
+ /**
51
+ * The pid of the Claude Code session this hook belongs to.
52
+ *
53
+ * Claude exports `CLAUDE_PID` to its hooks, and that is the authoritative
54
+ * answer. `process.ppid` agrees with it today — the hook command runs through
55
+ * a shell, but the shell `exec`s, so this process's parent *is* the session
56
+ * (probed against a live 2.1.228 session) — and it remains the fallback for a
57
+ * harness build that stops exporting the variable.
58
+ *
59
+ * Preferring the explicit value costs a line and removes a silent failure: if
60
+ * this ever resolved to a shell instead, no session descriptor would match, the
61
+ * route could not prove own-child ownership, and every answer would degrade to
62
+ * hold-for-next-turn with nothing reported as wrong.
63
+ */
64
+ export declare function claudeSessionPid(env: NodeJS.ProcessEnv): number;
65
+ export {};
@@ -0,0 +1,97 @@
1
+ import { readLiveProjectSessionPointers } from './hooks.js';
2
+ import {} from './install-hooks.js';
3
+ /**
4
+ * Every harness marker present in this environment, in declared order.
5
+ *
6
+ * Order here is a last resort, not an answer. A harness exports its markers
7
+ * into every process it starts, so a nested harness inherits its parent's
8
+ * markers alongside its own and the environment alone cannot say which of them
9
+ * owns this shell; `resolveActiveHarness` settles that with live evidence.
10
+ */
11
+ function harnessEnvCandidates(env) {
12
+ const candidates = [];
13
+ if (env['NOTIFAI_ACTIVE_HARNESS'] === 'opencode') {
14
+ const sessionId = env['NOTIFAI_ACTIVE_SESSION_ID'];
15
+ const sessionLabel = env['NOTIFAI_ACTIVE_SESSION_LABEL'];
16
+ const sessionLabelPending = env['NOTIFAI_ACTIVE_SESSION_LABEL_PENDING'] === '1';
17
+ candidates.push({
18
+ harness: 'opencode',
19
+ label: 'OpenCode',
20
+ ...(sessionId === undefined || sessionId === '' ? {} : { sessionId }),
21
+ ...(sessionLabel === undefined || sessionLabel === '' ? {} : { sessionLabel }),
22
+ ...(sessionLabelPending ? { sessionLabelPending: true } : {}),
23
+ });
24
+ }
25
+ if (env['CLAUDECODE'] === '1') {
26
+ const sessionId = env['CLAUDE_CODE_SESSION_ID'];
27
+ candidates.push({
28
+ harness: 'claude-code',
29
+ label: 'Claude Code',
30
+ ...(sessionId === undefined || sessionId === '' ? {} : { sessionId }),
31
+ });
32
+ }
33
+ const codexSession = env['CODEX_THREAD_ID'];
34
+ if (codexSession !== undefined && codexSession !== '') {
35
+ candidates.push({ harness: 'codex', label: 'Codex', sessionId: codexSession });
36
+ }
37
+ if ((env['CURSOR_AGENT'] ?? '') !== '')
38
+ candidates.push({ harness: 'cursor', label: 'Cursor' });
39
+ return candidates;
40
+ }
41
+ /**
42
+ * Which harness session owns this shell, when several claim to.
43
+ *
44
+ * Nesting is ordinary: an orchestrator running inside Claude Code starts a
45
+ * Codex session, and that Codex process inherits `CLAUDECODE` and
46
+ * `CLAUDE_CODE_SESSION_ID` on top of its own `CODEX_THREAD_ID`. The mirror is
47
+ * just as ordinary, so no fixed precedence between two markers can be right —
48
+ * whichever one it favours is wrong in the opposite nesting, and the cost is
49
+ * silent: `ask` looks up a session that is not this one, and every remedy the
50
+ * agent is told to try addresses a harness that is not running here.
51
+ *
52
+ * The general rule is to prefer the most specific *live* signal over inherited
53
+ * environment. An inherited marker is a claim about some ancestor process; a
54
+ * session id that names an entry in this directory's live pointer index is
55
+ * evidence that that exact session fired a hook here and its state still
56
+ * exists. Live evidence therefore wins over declared order, and the most
57
+ * recently active pointer wins between two live candidates: the harness whose
58
+ * turn is running is the one that fired last, while its parent sits blocked on
59
+ * the child it started. Declared order decides only when nothing here has
60
+ * fired yet, and it says so — every route fails closed there anyway.
61
+ */
62
+ export function resolveActiveHarness(env, cwd, now) {
63
+ const candidates = harnessEnvCandidates(env);
64
+ const first = candidates[0];
65
+ if (first === undefined)
66
+ return { active: null, contested: [] };
67
+ if (candidates.length === 1)
68
+ return { active: first, contested: [] };
69
+ for (const pointer of readLiveProjectSessionPointers(cwd, env, now)) {
70
+ const owner = candidates.find((candidate) => candidate.harness === pointer.harness && candidate.sessionId === pointer.sessionId);
71
+ if (owner !== undefined)
72
+ return { active: owner, contested: [] };
73
+ }
74
+ return { active: first, contested: candidates };
75
+ }
76
+ export function activeHarnessSession(env, cwd, now) {
77
+ return resolveActiveHarness(env, cwd, now).active;
78
+ }
79
+ /**
80
+ * The pid of the Claude Code session this hook belongs to.
81
+ *
82
+ * Claude exports `CLAUDE_PID` to its hooks, and that is the authoritative
83
+ * answer. `process.ppid` agrees with it today — the hook command runs through
84
+ * a shell, but the shell `exec`s, so this process's parent *is* the session
85
+ * (probed against a live 2.1.228 session) — and it remains the fallback for a
86
+ * harness build that stops exporting the variable.
87
+ *
88
+ * Preferring the explicit value costs a line and removes a silent failure: if
89
+ * this ever resolved to a shell instead, no session descriptor would match, the
90
+ * route could not prove own-child ownership, and every answer would degrade to
91
+ * hold-for-next-turn with nothing reported as wrong.
92
+ */
93
+ export function claudeSessionPid(env) {
94
+ const declared = Number(env['CLAUDE_PID']);
95
+ return Number.isInteger(declared) && declared > 0 ? declared : process.ppid;
96
+ }
97
+ //# sourceMappingURL=commands-harness-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands-harness-context.js","sourceRoot":"","sources":["../src/commands-harness-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAA;AAC3D,OAAO,EAAgB,MAAM,oBAAoB,CAAA;AAmBjD;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,GAAsB;IAClD,MAAM,UAAU,GAA2B,EAAE,CAAA;IAC7C,IAAI,GAAG,CAAC,wBAAwB,CAAC,KAAK,UAAU,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,GAAG,CAAC,2BAA2B,CAAC,CAAA;QAClD,MAAM,YAAY,GAAG,GAAG,CAAC,8BAA8B,CAAC,CAAA;QACxD,MAAM,mBAAmB,GAAG,GAAG,CAAC,sCAAsC,CAAC,KAAK,GAAG,CAAA;QAC/E,UAAU,CAAC,IAAI,CAAC;YACd,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,UAAU;YACjB,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;YACrE,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;YAC9E,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAA;QAC/C,UAAU,CAAC,IAAI,CAAC;YACd,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,aAAa;YACpB,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;SACtE,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAC3C,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;QACtD,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAA;IAChF,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE;QAAE,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC/F,OAAO,UAAU,CAAA;AACnB,CAAC;AAYD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAsB,EACtB,GAAW,EACX,GAAW;IAEX,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;IAC5C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;IAC3B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAC/D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IACpE,KAAK,MAAM,OAAO,IAAI,8BAA8B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;QACpE,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAC3B,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CACrF,CAAA;QACD,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAClE,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,GAAsB,EACtB,GAAW,EACX,GAAW;IAEX,OAAO,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAA;AACnD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAsB;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAA;IAC1C,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAA;AAC7E,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { type Installation } from './install-hooks.js';
2
+ /**
3
+ * Whether an installed Stop handler declares the shape its harness needs.
4
+ *
5
+ * The three answers differ, and getting one wrong fails silently in a
6
+ * different way each time:
7
+ *
8
+ * - Claude Code's handler must be `async: true`, or the waiter holds the
9
+ * user's turn for its whole wait instead of returning at once. It must
10
+ * also declare a `timeout`, because the harness default is 600 s and the
11
+ * kill is silent — the backgrounded waiter vanishes and the answer the
12
+ * user already gave is never delivered.
13
+ * - Codex owns its Stop timeout. Declaring one changes the definition it
14
+ * hashes into `trusted_hash`, and an untrusted handler is simply not run.
15
+ * - Everything else blocks its turn and needs a ceiling above the wait.
16
+ */
17
+ export declare function stopShapeProblems(installation: Installation, platform?: NodeJS.Platform): string[];
@@ -0,0 +1,37 @@
1
+ import { BLOCKING_STOP_TIMEOUT_SECONDS, CLAUDE_ASYNC_STOP_TIMEOUT_SECONDS, handlerEvent, stopHandlerIsDetached, } from './install-hooks.js';
2
+ /**
3
+ * Whether an installed Stop handler declares the shape its harness needs.
4
+ *
5
+ * The three answers differ, and getting one wrong fails silently in a
6
+ * different way each time:
7
+ *
8
+ * - Claude Code's handler must be `async: true`, or the waiter holds the
9
+ * user's turn for its whole wait instead of returning at once. It must
10
+ * also declare a `timeout`, because the harness default is 600 s and the
11
+ * kill is silent — the backgrounded waiter vanishes and the answer the
12
+ * user already gave is never delivered.
13
+ * - Codex owns its Stop timeout. Declaring one changes the definition it
14
+ * hashes into `trusted_hash`, and an untrusted handler is simply not run.
15
+ * - Everything else blocks its turn and needs a ceiling above the wait.
16
+ */
17
+ export function stopShapeProblems(installation, platform = process.platform) {
18
+ if (installation.harness === 'codex')
19
+ return [];
20
+ const problems = [];
21
+ for (const handler of installation.handlers.filter((entry) => handlerEvent(entry.command) === 'stop')) {
22
+ if (stopHandlerIsDetached(installation.harness, platform)) {
23
+ if (handler.async !== true) {
24
+ problems.push(`${installation.file} declares a blocking Stop handler; the Claude Code wake route needs \`async: true\` so the turn ends while the waiter runs`);
25
+ }
26
+ if (handler.timeout === undefined || handler.timeout < CLAUDE_ASYNC_STOP_TIMEOUT_SECONDS) {
27
+ problems.push(`${installation.file} gives Stop ${handler.timeout ?? 'no'} declared seconds; Claude Code then kills the backgrounded waiter at its 600s default without reporting anything, so it needs an explicit ${CLAUDE_ASYNC_STOP_TIMEOUT_SECONDS}s`);
28
+ }
29
+ continue;
30
+ }
31
+ if (handler.timeout === undefined || handler.timeout < BLOCKING_STOP_TIMEOUT_SECONDS) {
32
+ problems.push(`${installation.file} gives Stop ${handler.timeout ?? 'no'}s, but the blocking answer owner requires ${BLOCKING_STOP_TIMEOUT_SECONDS}s`);
33
+ }
34
+ }
35
+ return problems;
36
+ }
37
+ //# sourceMappingURL=commands-hook-shape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands-hook-shape.js","sourceRoot":"","sources":["../src/commands-hook-shape.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,EACjC,YAAY,EACZ,qBAAqB,GAEtB,MAAM,oBAAoB,CAAA;AAE3B;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAA0B,EAC1B,WAA4B,OAAO,CAAC,QAAQ;IAE5C,IAAI,YAAY,CAAC,OAAO,KAAK,OAAO;QAAE,OAAO,EAAE,CAAA;IAC/C,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAChD,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,MAAM,CAClD,EAAE,CAAC;QACF,IAAI,qBAAqB,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC1D,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC3B,QAAQ,CAAC,IAAI,CACX,GAAG,YAAY,CAAC,IAAI,4HAA4H,CACjJ,CAAA;YACH,CAAC;YACD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,GAAG,iCAAiC,EAAE,CAAC;gBACzF,QAAQ,CAAC,IAAI,CACX,GAAG,YAAY,CAAC,IAAI,eAAe,OAAO,CAAC,OAAO,IAAI,IAAI,6IAA6I,iCAAiC,GAAG,CAC5O,CAAA;YACH,CAAC;YACD,SAAQ;QACV,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,GAAG,6BAA6B,EAAE,CAAC;YACrF,QAAQ,CAAC,IAAI,CACX,GAAG,YAAY,CAAC,IAAI,eAAe,OAAO,CAAC,OAAO,IAAI,IAAI,6CAA6C,6BAA6B,GAAG,CACxI,CAAA;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -0,0 +1,115 @@
1
+ import { type QuestionT } from '@raidiant/notifai-protocol';
2
+ import { type HookHarness } from './hooks.js';
3
+ import { type Harness, type Installation } from './install-hooks.js';
4
+ import { type CommandDeps } from './commands-core.js';
5
+ import { type ActiveHarnessSession } from './commands-harness-context.js';
6
+ export declare const HOOK_EVENTS: readonly ["user-prompt-submit", "stop", "session-end"];
7
+ export type HookEvent = (typeof HOOK_EVENTS)[number];
8
+ /** SessionEnd cleanup must precede every diagnostic that can wait on a file lock. */
9
+ export declare function hookDefersDiagnosticsUntilAfterCleanup(event: unknown): event is 'session-end';
10
+ /**
11
+ * Runs one harness hook. Contract with every harness: hook JSON arrives on
12
+ * stdin, the decision (if any) goes to stdout, diagnostics go to stderr, and
13
+ * exit 0 with no stdout means "no decision — carry on as normal".
14
+ *
15
+ * Every failure path in here must reach that no-decision state. A hook that
16
+ * throws, or that blocks past the harness's timeout, degrades the agent for a
17
+ * feature the user only asked to make it more convenient.
18
+ */
19
+ export declare function hookRunCommand(deps: CommandDeps, event: string, readStdin: () => Promise<string>, harness?: HookHarness): Promise<number>;
20
+ /**
21
+ * What went wrong, in terms of what to do about it.
22
+ *
23
+ * On 2026-08-03 a contract change shipped without the server deploy that goes
24
+ * with it. The CLI stamped `lifecycle` on every question draft, the deployed
25
+ * server rejected the unknown field, and escalation stopped working entirely —
26
+ * announced as "hook failed, deferring to the terminal", which reads like a
27
+ * flaky network. The information needed to diagnose it in one second was
28
+ * already in hand: a 422 whose details name the offending path. It was being
29
+ * thrown away by `String(err)`.
30
+ *
31
+ * A hook still exits 0 whatever this says. Handing the terminal back is always
32
+ * right; the only question is whether the user is told anything they can use.
33
+ */
34
+ export declare function describeHookFailure(err: unknown): string[];
35
+ export interface AskFlags {
36
+ /** Emit the registration and its turn obligation as one JSON object. */
37
+ json?: boolean;
38
+ choice?: string[];
39
+ /** The single question is multi-select: several answers may be chosen. */
40
+ multi?: boolean;
41
+ /** Optional Markdown context appended after the question block. */
42
+ body?: string;
43
+ /** Raw JSON for a multi-question form; replaces the positional question. */
44
+ form?: string;
45
+ image?: string[];
46
+ imageAlt?: string[];
47
+ project?: string;
48
+ sessionId?: string;
49
+ sessionLabel?: string;
50
+ }
51
+ export interface BuiltQuestions {
52
+ questions: QuestionT[];
53
+ /** Canonical Markdown body: question block first, optional context second. */
54
+ body: string;
55
+ }
56
+ /**
57
+ * Turn ask input into questions plus their canonical body. Everything is
58
+ * validated at registration because a later hook failure is easy to miss.
59
+ */
60
+ export declare function buildQuestions(flags: AskFlags, question: string | undefined): {
61
+ ok: true;
62
+ questions: QuestionT[];
63
+ body: string;
64
+ } | {
65
+ ok: false;
66
+ error: string;
67
+ };
68
+ /**
69
+ * Registers a question for turn-end routing. Returns immediately so the agent
70
+ * can ask in prose and end its turn; the terminal keeps the question to itself
71
+ * for `ask_grace_seconds` before it reaches any device.
72
+ */
73
+ export declare function askCommand(deps: CommandDeps, question: string | undefined, flags: AskFlags): number | Promise<number>;
74
+ /**
75
+ * One fail-closed admission gate shared by every active harness route.
76
+ * Finding a file is not readiness: the exact session, one current definition,
77
+ * the stable adapter, a long enough Stop owner, and (for Codex) trust must all
78
+ * be true before `ask` is allowed to create an answerable notification.
79
+ */
80
+ export declare function activeQuestionRouteProblems(deps: CommandDeps, active: ActiveHarnessSession, installations: Installation[]): string[];
81
+ /** The least disruptive verified way to make each installed adapter run once. */
82
+ export declare function hookActivationAdvice(installations: Installation[]): string;
83
+ /**
84
+ * Record the one Agent Acknowledgement associated with a replied-to request.
85
+ *
86
+ * `--text` is optional here because the acknowledgement is not: an account may
87
+ * turn the agent's written reply off, and the receipt must still be recorded so
88
+ * the user sees that an agent read the answer. The service holds the account's
89
+ * snapshot, so it — not this process — decides whether text was owed.
90
+ */
91
+ export declare function acknowledgeCommand(deps: CommandDeps, requestId: string, flags: {
92
+ text?: string;
93
+ json?: boolean;
94
+ }): Promise<number>;
95
+ /** Retire a question so a late answer is rejected rather than silently lost. */
96
+ export declare function closeCommand(deps: CommandDeps, requestId: string, flags?: {
97
+ json?: boolean;
98
+ }): Promise<number>;
99
+ export interface HooksInstallFlags {
100
+ harness?: string;
101
+ global?: boolean;
102
+ /** Test seam; production resolves the running CLI. */
103
+ execPath?: string;
104
+ scriptPath?: string;
105
+ }
106
+ /** True when this process is `npx` / `npm exec`, not a global or linked install. */
107
+ export declare function runningViaNpx(env: NodeJS.ProcessEnv, scriptPath: string): boolean;
108
+ export declare function hooksInstallCommand(deps: CommandDeps, flags: HooksInstallFlags): number;
109
+ export declare function hooksUninstallCommand(deps: CommandDeps, flags: HooksInstallFlags): number;
110
+ /**
111
+ * Which harnesses to wire. An explicit `--harness` still wins as a singleton.
112
+ * Otherwise: every detected harness, or a human picker when detection is empty
113
+ * or names more than one.
114
+ */
115
+ export declare function pickHarnessesToInstall(deps: CommandDeps, requested?: string): Promise<Harness[] | null>;