@raidiant/notifai 11.0.6 → 11.2.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 (90) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +6 -0
  3. package/dist/agent-update-notice.d.ts +7 -0
  4. package/dist/agent-update-notice.js +77 -0
  5. package/dist/agent-update-notice.js.map +1 -0
  6. package/dist/cli-release.d.ts +3 -3
  7. package/dist/cli-release.js +12 -16
  8. package/dist/cli-release.js.map +1 -1
  9. package/dist/codex-wake.d.ts +44 -63
  10. package/dist/codex-wake.js +71 -174
  11. package/dist/codex-wake.js.map +1 -1
  12. package/dist/commands-ask.js +3 -1
  13. package/dist/commands-ask.js.map +1 -1
  14. package/dist/commands-close.js +28 -14
  15. package/dist/commands-close.js.map +1 -1
  16. package/dist/commands-core.d.ts +1 -1
  17. package/dist/commands-doctor.js +36 -19
  18. package/dist/commands-doctor.js.map +1 -1
  19. package/dist/commands-guidance.d.ts +1 -1
  20. package/dist/commands-guidance.js +15 -2
  21. package/dist/commands-guidance.js.map +1 -1
  22. package/dist/commands-hook-install.js +146 -54
  23. package/dist/commands-hook-install.js.map +1 -1
  24. package/dist/commands-hook-run.js +21 -13
  25. package/dist/commands-hook-run.js.map +1 -1
  26. package/dist/commands-hook-shape.js +3 -2
  27. package/dist/commands-hook-shape.js.map +1 -1
  28. package/dist/commands-update-check.d.ts +6 -0
  29. package/dist/commands-update-check.js +86 -0
  30. package/dist/commands-update-check.js.map +1 -0
  31. package/dist/commands-update-skill.d.ts +5 -0
  32. package/dist/commands-update-skill.js +36 -0
  33. package/dist/commands-update-skill.js.map +1 -0
  34. package/dist/commands-update.js +29 -1
  35. package/dist/commands-update.js.map +1 -1
  36. package/dist/commands.d.ts +2 -0
  37. package/dist/commands.js +2 -0
  38. package/dist/commands.js.map +1 -1
  39. package/dist/credentials.js +7 -4
  40. package/dist/credentials.js.map +1 -1
  41. package/dist/harnesses.d.ts +1 -1
  42. package/dist/harnesses.js +2 -2
  43. package/dist/harnesses.js.map +1 -1
  44. package/dist/hook-adapter.d.ts +7 -1
  45. package/dist/hook-adapter.js +36 -3
  46. package/dist/hook-adapter.js.map +1 -1
  47. package/dist/hook-events.d.ts +69 -2
  48. package/dist/hook-events.js +75 -13
  49. package/dist/hook-events.js.map +1 -1
  50. package/dist/hook-lifecycle.js +44 -15
  51. package/dist/hook-lifecycle.js.map +1 -1
  52. package/dist/hook-question-retirement.d.ts +9 -0
  53. package/dist/hook-question-retirement.js +38 -3
  54. package/dist/hook-question-retirement.js.map +1 -1
  55. package/dist/hook-question-state.d.ts +14 -5
  56. package/dist/hook-question-state.js +55 -24
  57. package/dist/hook-question-state.js.map +1 -1
  58. package/dist/hook-types.d.ts +6 -0
  59. package/dist/install-hooks.d.ts +70 -12
  60. package/dist/install-hooks.js +352 -198
  61. package/dist/install-hooks.js.map +1 -1
  62. package/dist/native-skills.d.ts +2 -0
  63. package/dist/native-skills.js +3 -1
  64. package/dist/native-skills.js.map +1 -1
  65. package/dist/openclaw-plugin.d.ts +0 -1
  66. package/dist/openclaw-plugin.js +0 -7
  67. package/dist/openclaw-plugin.js.map +1 -1
  68. package/dist/opencode-plugin.d.ts +9 -0
  69. package/dist/opencode-plugin.js +19 -2
  70. package/dist/opencode-plugin.js.map +1 -1
  71. package/dist/program.d.ts +3 -1
  72. package/dist/program.js +21 -6
  73. package/dist/program.js.map +1 -1
  74. package/dist/readiness.d.ts +9 -1
  75. package/dist/readiness.js +11 -3
  76. package/dist/readiness.js.map +1 -1
  77. package/dist/session-activation.d.ts +2 -2
  78. package/dist/session-activation.js +8 -7
  79. package/dist/session-activation.js.map +1 -1
  80. package/dist/session-labels.js +6 -6
  81. package/dist/session-labels.js.map +1 -1
  82. package/dist/skill-source/manifest.json +8 -4
  83. package/dist/skill-source/notifai/SKILL.md +14 -16
  84. package/dist/skill-source/notifai/references/harness-setup.md +23 -14
  85. package/dist/skill-source/notifai/references/updates.md +74 -0
  86. package/dist/ui/theme.d.ts +1 -1
  87. package/dist/update-handoff.d.ts +29 -0
  88. package/dist/update-handoff.js +66 -0
  89. package/dist/update-handoff.js.map +1 -0
  90. package/package.json +2 -2
@@ -4,7 +4,7 @@ import path from 'node:path';
4
4
  import { atomicWriteFileSync } from './atomic-file.js';
5
5
  import { stateDir } from './config.js';
6
6
  import { withFileLock } from './file-lock.js';
7
- import { isSamePending, rememberQuestionState, sourceContextAtHookEvent, } from './hook-question-state.js';
7
+ import { isSamePending, questionSubmissionAttempted, rememberQuestionState, sourceContextAtHookEvent, } from './hook-question-state.js';
8
8
  import { pendingList, readSessionState, updateSessionState } from './hook-session-state.js';
9
9
  /**
10
10
  * A retirement is only worth syncing while the question it retires could still
@@ -77,6 +77,41 @@ export function parkForRetirement(sessionId, env, pending, state) {
77
77
  return rememberQuestionState({ ...current, retiring }, pending, state === 'answered' ? 'answered' : 'retired');
78
78
  });
79
79
  }
80
+ /**
81
+ * Stop queued retries under the same lock as admission. Preparations that
82
+ * never started are withdrawn silently; admitted attempts retain their exact
83
+ * retirement identity even if their receipt is still in flight or was lost.
84
+ */
85
+ export function retireQueuedQuestions(sessionId, env, questionId) {
86
+ const withdrawn = [];
87
+ const retiring = [];
88
+ updateSessionState(sessionId, env, (current) => {
89
+ const selected = pendingList(current).filter((entry) => entry.request_id === undefined &&
90
+ (questionId === undefined || entry.question_id === questionId));
91
+ const remaining = pendingList(current).filter((entry) => !selected.includes(entry));
92
+ let next = { ...current };
93
+ if (remaining.length > 0)
94
+ next.pending = remaining;
95
+ else
96
+ delete next.pending;
97
+ for (const entry of selected) {
98
+ if (questionSubmissionAttempted(entry)) {
99
+ const retirement = retiringQuestion(entry, 'answered_elsewhere');
100
+ retiring.push(retirement);
101
+ const queue = [...(next.retiring ?? [])];
102
+ if (!queue.some((item) => item.request_id === retirement.request_id))
103
+ queue.push(retirement);
104
+ next = rememberQuestionState({ ...next, retiring: queue }, entry, 'retired');
105
+ }
106
+ else {
107
+ withdrawn.push(entry);
108
+ next = rememberQuestionState(next, entry, 'withdrawn');
109
+ }
110
+ }
111
+ return next;
112
+ });
113
+ return { withdrawn, retiring };
114
+ }
80
115
  /**
81
116
  * Convert live question state into a complete retirement instruction.
82
117
  *
@@ -160,10 +195,10 @@ export async function drainRetirements(ctx, sessionId, env) {
160
195
  retired.push(entry.request_id);
161
196
  // Persist each success before touching the next entry. A later corrupt
162
197
  // record or interrupted process must not resurrect work already done.
163
- updateSessionState(sessionId, env, (current) => ({
198
+ updateSessionState(sessionId, env, (current) => rememberQuestionState({
164
199
  ...current,
165
200
  retiring: (current.retiring ?? []).filter((candidate) => candidate.request_id !== entry.request_id),
166
- }));
201
+ }, entry, entry.state === 'answered' ? 'answered' : 'retired'));
167
202
  }
168
203
  }
169
204
  return retired;
@@ -1 +1 @@
1
- {"version":3,"file":"hook-question-retirement.js","sourceRoot":"","sources":["../src/hook-question-retirement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook-question-retirement.js","sourceRoot":"","sources":["../src/hook-question-retirement.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /** Question history, inspection, and atomic live-question state changes. */
2
2
  import type { QuestionT, SourceContextT } from '@raidiant/notifai-protocol';
3
- import type { PendingQuestion, QuestionDeliveryState, QuestionTerminalState, SessionState } from './hook-types.js';
3
+ import type { PendingQuestion, PendingSubmissionIntent, QuestionDeliveryState, QuestionTerminalState, SessionState } from './hook-types.js';
4
4
  export interface QuestionStateView {
5
5
  question_id: string;
6
6
  state: QuestionDeliveryState;
@@ -31,12 +31,21 @@ export declare function inspectQuestionState(questionId: string, env: NodeJS.Pro
31
31
  /** Registration identity — the convention every racing writer compares by. */
32
32
  export declare function isSamePending(a: PendingQuestion, b: PendingQuestion): boolean;
33
33
  export declare function dropPendingQuestion(sessionId: string, env: NodeJS.ProcessEnv, entry: PendingQuestion, terminalState?: QuestionTerminalState): void;
34
+ /** A cheap preflight check; only admitQueuedQuestion authorizes submission. */
35
+ export declare function queuedQuestionStillEligible(sessionId: string, env: NodeJS.ProcessEnv, entry: PendingQuestion): boolean;
36
+ /** Whether silent local withdrawal is no longer an honest outcome. */
37
+ export declare function questionSubmissionAttempted(entry: PendingQuestion): boolean;
34
38
  /**
35
- * Drop registrations that never reached a device, so a later Stop cannot push
36
- * them. A retirement push would be noise: there is nothing on any device to
37
- * withdraw. Returns the withdrawn entries in registration order.
39
+ * One serialized boundary with close, prompt retirement, and SessionEnd.
40
+ * Withdrawal first means no request starts. Admission first journals the
41
+ * reserved identity and starts the request before releasing the lock; a later
42
+ * close must retire that potentially remote identity, never call it withdrawn.
43
+ *
44
+ * submit must initiate the request synchronously and return its promise. The
45
+ * lock is released before awaiting network work, using the ordinary bounded
46
+ * acquisition and dead-process recovery of the session-state lock.
38
47
  */
39
- export declare function withdrawUnpushedQuestions(sessionId: string, env: NodeJS.ProcessEnv): PendingQuestion[];
48
+ export declare function admitQueuedQuestion<T>(sessionId: string, env: NodeJS.ProcessEnv, entry: PendingQuestion, intent: PendingSubmissionIntent, now: number, submit: () => Promise<T>): Promise<T> | null;
40
49
  export declare function clearFrozenSubmission(sessionId: string, env: NodeJS.ProcessEnv, entry: PendingQuestion): void;
41
50
  /** The question set this pending record pushes, however it was registered. */
42
51
  export declare function pendingQuestions(pending: PendingQuestion): QuestionT[];
@@ -1,4 +1,5 @@
1
- import { findOwningSession, pendingList, readSessionState, updateSessionState, } from './hook-session-state.js';
1
+ import { withFileLock } from './file-lock.js';
2
+ import { findOwningSession, pendingList, readSessionState, sessionHasEnded, sessionStatePath, updateSessionState, writeSessionStateUnlocked, } from './hook-session-state.js';
2
3
  import { inferInvocationContext } from './invocation-context.js';
3
4
  /** Keep immutable session grouping while replacing per-event Git location authoritatively. */
4
5
  export function sourceContextAtHookEvent(source, cwd) {
@@ -28,7 +29,7 @@ export function rememberQuestionState(current, question, state) {
28
29
  ? 'answered'
29
30
  : state;
30
31
  const requestId = question.request_id ?? existing?.request_id;
31
- const frozenRequestId = requestId === undefined
32
+ const frozenRequestId = requestId === undefined && terminalState !== 'withdrawn'
32
33
  ? question.submission?.request_id ?? existing?.frozen_request_id
33
34
  : undefined;
34
35
  const record = {
@@ -99,20 +100,22 @@ export function inspectQuestionState(questionId, env) {
99
100
  };
100
101
  }
101
102
  const retiring = (state.retiring ?? []).find((entry) => entry.question_id === questionId);
103
+ const history = (state.question_history ?? []).find((entry) => entry.question_id === questionId);
102
104
  if (retiring?.question_id !== undefined) {
105
+ const unconfirmed = history?.request_id === undefined &&
106
+ history?.frozen_request_id === retiring.request_id;
103
107
  return {
104
108
  found: true,
105
109
  session_id: owner.sessionId,
106
110
  question: {
107
111
  question_id: retiring.question_id,
108
112
  state: retiring.state === 'answered' ? 'answered' : 'retired',
109
- submitted: true,
110
- request_id: retiring.request_id,
111
- frozen_request_id: null,
113
+ submitted: unconfirmed ? null : true,
114
+ request_id: unconfirmed ? null : retiring.request_id,
115
+ frozen_request_id: unconfirmed ? retiring.request_id : null,
112
116
  },
113
117
  };
114
118
  }
115
- const history = (state.question_history ?? []).find((entry) => entry.question_id === questionId);
116
119
  if (history !== undefined) {
117
120
  return {
118
121
  found: true,
@@ -150,27 +153,55 @@ export function dropPendingQuestion(sessionId, env, entry, terminalState = 'reti
150
153
  return rememberQuestionState(next, entry, terminalState);
151
154
  });
152
155
  }
156
+ function queuedQuestionIndex(state, entry) {
157
+ if (entry.question_id !== undefined) {
158
+ const remembered = (state.question_history ?? []).find((item) => item.question_id === entry.question_id);
159
+ if (remembered?.state === 'withdrawn' ||
160
+ remembered?.state === 'answered' ||
161
+ remembered?.state === 'retired') {
162
+ return -1;
163
+ }
164
+ }
165
+ return pendingList(state).findIndex((candidate) => isSamePending(candidate, entry) && candidate.request_id === undefined);
166
+ }
167
+ /** A cheap preflight check; only admitQueuedQuestion authorizes submission. */
168
+ export function queuedQuestionStillEligible(sessionId, env, entry) {
169
+ return queuedQuestionIndex(readSessionState(sessionId, env), entry) >= 0;
170
+ }
171
+ /** Whether silent local withdrawal is no longer an honest outcome. */
172
+ export function questionSubmissionAttempted(entry) {
173
+ return entry.request_id !== undefined || entry.submission?.admitted_at !== undefined;
174
+ }
153
175
  /**
154
- * Drop registrations that never reached a device, so a later Stop cannot push
155
- * them. A retirement push would be noise: there is nothing on any device to
156
- * withdraw. Returns the withdrawn entries in registration order.
176
+ * One serialized boundary with close, prompt retirement, and SessionEnd.
177
+ * Withdrawal first means no request starts. Admission first journals the
178
+ * reserved identity and starts the request before releasing the lock; a later
179
+ * close must retire that potentially remote identity, never call it withdrawn.
180
+ *
181
+ * submit must initiate the request synchronously and return its promise. The
182
+ * lock is released before awaiting network work, using the ordinary bounded
183
+ * acquisition and dead-process recovery of the session-state lock.
157
184
  */
158
- export function withdrawUnpushedQuestions(sessionId, env) {
159
- let withdrawn = [];
160
- updateSessionState(sessionId, env, (current) => {
161
- const pending = pendingList(current);
162
- withdrawn = pending.filter((entry) => entry.request_id === undefined);
163
- if (withdrawn.length === 0)
164
- return current;
165
- const remaining = pending.filter((entry) => entry.request_id !== undefined);
166
- const next = { ...current };
167
- if (remaining.length > 0)
168
- next.pending = remaining;
169
- else
170
- delete next.pending;
171
- return withdrawn.reduce((remembered, entry) => rememberQuestionState(remembered, entry, 'withdrawn'), next);
185
+ export function admitQueuedQuestion(sessionId, env, entry, intent, now, submit) {
186
+ const file = sessionStatePath(sessionId, env);
187
+ return withFileLock(`${file}.lock`, () => {
188
+ if (sessionHasEnded(sessionId, env))
189
+ return null;
190
+ const current = readSessionState(sessionId, env);
191
+ const index = queuedQuestionIndex(current, entry);
192
+ if (index < 0)
193
+ return null;
194
+ const pending = [...pendingList(current)];
195
+ const candidate = pending[index];
196
+ if (candidate.submission?.request_id !== intent.request_id)
197
+ return null;
198
+ pending[index] = {
199
+ ...candidate,
200
+ submission: { ...intent, admitted_at: intent.admitted_at ?? now },
201
+ };
202
+ writeSessionStateUnlocked(file, sessionId, { ...current, pending });
203
+ return submit();
172
204
  });
173
- return withdrawn;
174
205
  }
175
206
  export function clearFrozenSubmission(sessionId, env, entry) {
176
207
  updateSessionState(sessionId, env, (current) => {
@@ -1 +1 @@
1
- {"version":3,"file":"hook-question-state.js","sourceRoot":"","sources":["../src/hook-question-state.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,yBAAyB,CAAA;AAQhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAchE,8FAA8F;AAC9F,MAAM,UAAU,wBAAwB,CACtC,MAAkC,EAClC,GAAuB;IAEvB,MAAM,UAAU,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAA;IACzE,MAAM,OAAO,GAAmB;QAC9B,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,GAAG,CAAC,MAAM,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,UAAU,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjF,CAAA;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAA;AAChE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAmC;IAIrE,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACpC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CACzD,CAAA;IACD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;AACzC,CAAC;AAED,MAAM,oBAAoB,GAAG,EAAE,CAAA;AAI/B,kFAAkF;AAClF,MAAM,UAAU,qBAAqB,CACnC,OAAqB,EACrB,QAA0B,EAC1B,KAA4B;IAE5B,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,OAAO,CAAA;IACtD,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,IAAI,CACpD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW,CACtD,CAAA;IACD,MAAM,aAAa,GACjB,QAAQ,EAAE,KAAK,KAAK,WAAW,IAAI,QAAQ,EAAE,KAAK,KAAK,UAAU;QAC/D,CAAC,CAAC,QAAQ,CAAC,KAAK;QAChB,CAAC,CAAC,KAAK,KAAK,UAAU;YACpB,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,KAAK,CAAA;IACb,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,IAAI,QAAQ,EAAE,UAAU,CAAA;IAC7D,MAAM,eAAe,GACnB,SAAS,KAAK,SAAS;QACrB,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,IAAI,QAAQ,EAAE,iBAAiB;QAChE,CAAC,CAAC,SAAS,CAAA;IACf,MAAM,MAAM,GAAyB;QACnC,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,KAAK,EAAE,aAAa;QACpB,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;QAC7D,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC;KACjF,CAAA;IACD,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,MAAM,CACxC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW,CACtD;QACD,MAAM;KACP,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,CAAA;IAC9B,OAAO,EAAE,GAAG,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAA;AAClD,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAsB;IACjD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IAChD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO;YACL,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,iBAAiB,EAAE,IAAI;SACxB,CAAA;IACH,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO;YACL,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;YAChB,iBAAiB,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU;SAC/C,CAAA;IACH,CAAC;IACD,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,KAAK,EAAE,OAAO;QACd,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;QAChB,iBAAiB,EAAE,IAAI;KACxB,CAAA;AACH,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,oBAAoB,CAClC,UAAkB,EAClB,GAAsB;IAEtB,MAAM,KAAK,GAAG,iBAAiB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAChD,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACrD,CAAC;IACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IACpD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,UAAU,CAAC,CAAA;IACpF,MAAM,WAAW,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAC/E,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAA;IAC5E,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAC3C,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,UAAU,CACzD,EAAE,OAAO,CAAA;IACV,IAAI,QAAQ,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO;YACL,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,KAAK,CAAC,SAAS;YAC3B,QAAQ,EAAE;gBACR,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,IAAI;gBACvC,iBAAiB,EAAE,IAAI;aACxB;SACF,CAAA;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,UAAU,CAAC,CAAA;IACzF,IAAI,QAAQ,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO;YACL,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,KAAK,CAAC,SAAS;YAC3B,QAAQ,EAAE;gBACR,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,KAAK,EAAE,QAAQ,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;gBAC7D,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,iBAAiB,EAAE,IAAI;aACxB;SACF,CAAA;IACH,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,IAAI,CACjD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,UAAU,CAC5C,CAAA;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;YACL,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,KAAK,CAAC,SAAS;YAC3B,QAAQ,EAAE;gBACR,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,SAAS,EACP,OAAO,CAAC,UAAU,KAAK,SAAS;oBAC9B,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,OAAO,CAAC,iBAAiB,KAAK,SAAS;wBACvC,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,KAAK;gBACb,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;gBACtC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,IAAI;aACrD;SACF,CAAA;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;AAC3C,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,aAAa,CAAC,CAAkB,EAAE,CAAkB;IAClE,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC/D,OAAO,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,CAAA;IACvE,CAAC;IACD,OAAO,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,CAAA;AAC/D,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,SAAiB,EACjB,GAAsB,EACtB,KAAsB,EACtB,gBAAuC,SAAS;IAEhD,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;QAC7C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAA;QAC5F,MAAM,IAAI,GAAiB,EAAE,GAAG,OAAO,EAAE,CAAA;QACzC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;;YACzC,OAAO,IAAI,CAAC,OAAO,CAAA;QACxB,OAAO,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,SAAiB,EACjB,GAAsB;IAEtB,IAAI,SAAS,GAAsB,EAAE,CAAA;IACrC,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;QAC7C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;QACpC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAA;QACrE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,CAAA;QAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAA;QAC3E,MAAM,IAAI,GAAiB,EAAE,GAAG,OAAO,EAAE,CAAA;QACzC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;;YAC7C,OAAO,IAAI,CAAC,OAAO,CAAA;QACxB,OAAO,SAAS,CAAC,MAAM,CACrB,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,UAAU,EAAE,KAAK,EAAE,WAAW,CAAC,EAC5E,IAAI,CACL,CAAA;IACH,CAAC,CAAC,CAAA;IACF,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,SAAiB,EACjB,GAAsB,EACtB,KAAsB;IAEtB,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;QAC7C,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAA;QAC5E,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,OAAO,CAAA;QAC7B,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;QACtB,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAE,EAAE,CAAA;QAChC,OAAO,IAAI,CAAC,UAAU,CAAA;QACtB,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;QAClB,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACtC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB,CAAC,OAAwB;IACvD,OAAO,OAAO,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;AACpE,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB,CAAC,OAAwB;IACxD,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,CAAA;AACrF,CAAC"}
1
+ {"version":3,"file":"hook-question-state.js","sourceRoot":"","sources":["../src/hook-question-state.ts"],"names":[],"mappings":"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"}
@@ -181,6 +181,12 @@ export interface PendingSubmissionIntent {
181
181
  device_ids: string[];
182
182
  draft: NotificationDraftT;
183
183
  owner_deadline_at: number;
184
+ /**
185
+ * The submission attempt started under the session-state lock. Absence means
186
+ * preparation only; presence means the reserved identity may be remote even
187
+ * if the process crashed before receiving or persisting a receipt.
188
+ */
189
+ admitted_at?: number;
184
190
  }
185
191
  export interface PendingQuestion {
186
192
  /** Stable local identity across racing state writers and submit recovery. */
@@ -14,9 +14,9 @@ import { type HookInstallableHarness } from './harnesses.js';
14
14
  * with an optional timeout — so one generator serves both. Only the file
15
15
  * location and the event set differ. Codex supports either a dedicated
16
16
  * `hooks.json` or inline `[hooks]` tables in the same layer's `config.toml`;
17
- * Notifai preserves whichever one already owns its approved handlers. A fresh
18
- * install writes `hooks.json`, except when the User's own hooks already live
19
- * inline. Notifai lives in one of them, never both.
17
+ * a fresh install writes `hooks.json`, except when the User's own hooks already
18
+ * live inline. Notifai-owned inline handlers with no foreign inline neighbours
19
+ * are moved to `hooks.json`. Notifai lives in one of them, never both.
20
20
  *
21
21
  * Cursor's native format is flat and lower-camel-cased, while OpenCode's
22
22
  * extension point is a JavaScript plugin module. Each therefore has a bounded
@@ -95,11 +95,31 @@ export { QUESTION_STOP_TIMEOUT_SECONDS } from './question-timing.js';
95
95
  /**
96
96
  * Whether this harness's Stop handler runs detached from the turn.
97
97
  *
98
- * The installer and doctor share this predicate so they agree whether Claude
99
- * runs out of band. Owner lifetime is route-neutral and lives in
98
+ * The installer and doctor share this predicate so they agree which harnesses
99
+ * run out of band. Owner lifetime is route-neutral and lives in
100
100
  * `question-timing.ts`.
101
+ *
102
+ * Codex is detached on every platform because its delivery route is a write to
103
+ * the thread's own durable inbox rather than this hook's stdout: there is no
104
+ * continuation to keep a turn open for, and the queue has no platform
105
+ * dependency to gate on. Claude Code still needs its turn held on Windows,
106
+ * where no inbox socket exists.
101
107
  */
102
108
  export declare function stopHandlerIsDetached(harness: HookInstallableHarness | undefined, platform?: Parameters<typeof hookHostPlatform>[0]): boolean;
109
+ /**
110
+ * The turn-end handler, whose shape is the whole per-harness difference.
111
+ *
112
+ * Claude Code takes the answer over its own inbox socket and Codex takes it
113
+ * through its thread's durable inbox, so both Stop hooks are `async: true`:
114
+ * they return immediately, the terminal is never held, and the waiter finishes
115
+ * out of band. Only Claude on Windows still blocks and prints a continuation to
116
+ * stdout, because no inbox socket exists there. Every Question Routing owner
117
+ * declares the same complete-window timeout, because the detached waiter must
118
+ * outlive the answer window in every case; what changed for Codex is that a
119
+ * short or missing timeout no longer truncates a held *turn*. Blocking hosts
120
+ * also set `statusMessage` so the held turn is not mistaken for a hang.
121
+ */
122
+ export declare const BLOCKING_STOP_STATUS_MESSAGE = "Notifai: waiting for your answer";
103
123
  export declare function buildHookConfig(options: BuildOptions): HookConfig;
104
124
  export interface CursorHookHandler {
105
125
  command: string;
@@ -202,10 +222,7 @@ export interface CodexLayerInspection {
202
222
  writeTarget: string;
203
223
  }
204
224
  /**
205
- * Where Notifai writes in this Codex layer. An existing single Notifai
206
- * representation is stable: upgrades refresh it in place because Codex keys
207
- * approval by both handler identity and source path. Only a fresh installation
208
- * chooses between `hooks.json` and inline `config.toml`.
225
+ * Where Notifai writes in this Codex layer.
209
226
  *
210
227
  * `config.toml` is the User's whole Codex configuration and Codex rewrites it
211
228
  * itself for `[hooks.state]`; keeping Notifai out of it bounds the blast radius
@@ -215,9 +232,12 @@ export interface CodexLayerInspection {
215
232
  * exists only so Codex never prints its dual-representation warning.
216
233
  *
217
234
  * A fresh installation uses `hooks.json` unless foreign inline handlers make
218
- * `config.toml` the layer's established representation. `[hooks.state]` is the
219
- * trust store rather than a hook definition, so it never counts as a
220
- * representation and is preserved through every write.
235
+ * `config.toml` the layer's established representation. Notifai-owned inline
236
+ * handlers with no foreign inline neighbours are moved to `hooks.json`. Codex
237
+ * keys approval by source path, so that move is a User-owned `/hooks` review,
238
+ * not a silent identity-preserving refresh. `[hooks.state]` is the trust store
239
+ * rather than a hook definition, so it never counts as a representation and is
240
+ * preserved through every write.
221
241
  */
222
242
  export declare function inspectCodexLayer(paths: CodexLayerPaths): CodexLayerInspection;
223
243
  /**
@@ -332,9 +352,12 @@ export declare function removeHooks(existing: SettingsDocument, scriptPath: stri
332
352
  * support.
333
353
  */
334
354
  export declare function applyPlan(file: string, document: SettingsDocument | CursorSettingsDocument): void;
355
+ /** Validate a proposed document before any file in a multi-file edit changes. */
356
+ export declare function preparePlan(file: string, document: SettingsDocument | CursorSettingsDocument, previous?: string | null): () => void;
335
357
  /** Delete an emptied Codex hooks.json and a now-empty layer directory. */
336
358
  export declare function cleanupEmptiedCodexLayer(paths: CodexLayerPaths): void;
337
359
  export declare function loadSettings(file: string): SettingsDocument;
360
+ export declare function isTomlSettingsPath(file: string): boolean;
338
361
  export declare function loadCursorSettings(file: string): CursorSettingsDocument;
339
362
  /** One of our handlers as it sits in a settings file, with its position. */
340
363
  export interface InstalledHandler {
@@ -380,6 +403,41 @@ export declare function codexStopDefinitionFingerprint(installations: Installati
380
403
  * `/hooks` remains the source of truth.
381
404
  */
382
405
  export declare function codexTrustProblems(installations: Installation[], env?: NodeJS.ProcessEnv): string[];
406
+ export declare function notifaiNativePluginEnablementKeys(value: unknown): string[];
407
+ export declare function stripObsoleteNotifaiPluginEnablement(document: SettingsDocument): {
408
+ document: SettingsDocument;
409
+ removed: string[];
410
+ };
411
+ /**
412
+ * Remove enabled Notifai plugin tables only after lexical ownership and full
413
+ * semantic preservation are proven. Unsupported dotted/inline definitions
414
+ * fail before mutation, rather than silently leaving a second firing path.
415
+ */
416
+ export declare function spliceOutNotifaiPluginTables(source: string): {
417
+ next: string;
418
+ removed: string[];
419
+ };
420
+ export interface ObsoleteNativePluginWiring {
421
+ harness: 'claude-code' | 'codex';
422
+ file: string;
423
+ keys: string[];
424
+ }
425
+ /**
426
+ * Leftover native plugin enablement that would fire beside document hooks.
427
+ *
428
+ * Reads only harness settings files this installer already owns inspecting.
429
+ * It never shells out to a plugin CLI and never writes a plugin.
430
+ */
431
+ export declare function findObsoleteNotifaiPluginWiring(env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform | HookHostPlatform): ObsoleteNativePluginWiring[];
432
+ /**
433
+ * Plan native plugin retirement without changing configuration. The caller
434
+ * validates every destination before applying this plan under the layer lock.
435
+ */
436
+ export declare function prepareCodexPluginCleanup(file: string): {
437
+ source: string | null;
438
+ removed: string[];
439
+ apply: () => void;
440
+ };
383
441
  /**
384
442
  * The one Machine installation each harness would read a Notifai handler from.
385
443
  */