@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.
- package/CHANGELOG.md +49 -0
- package/README.md +6 -0
- package/dist/agent-update-notice.d.ts +7 -0
- package/dist/agent-update-notice.js +77 -0
- package/dist/agent-update-notice.js.map +1 -0
- package/dist/cli-release.d.ts +3 -3
- package/dist/cli-release.js +12 -16
- package/dist/cli-release.js.map +1 -1
- package/dist/codex-wake.d.ts +44 -63
- package/dist/codex-wake.js +71 -174
- package/dist/codex-wake.js.map +1 -1
- package/dist/commands-ask.js +3 -1
- package/dist/commands-ask.js.map +1 -1
- package/dist/commands-close.js +28 -14
- package/dist/commands-close.js.map +1 -1
- package/dist/commands-core.d.ts +1 -1
- package/dist/commands-doctor.js +36 -19
- package/dist/commands-doctor.js.map +1 -1
- package/dist/commands-guidance.d.ts +1 -1
- package/dist/commands-guidance.js +15 -2
- package/dist/commands-guidance.js.map +1 -1
- package/dist/commands-hook-install.js +146 -54
- package/dist/commands-hook-install.js.map +1 -1
- package/dist/commands-hook-run.js +21 -13
- package/dist/commands-hook-run.js.map +1 -1
- package/dist/commands-hook-shape.js +3 -2
- package/dist/commands-hook-shape.js.map +1 -1
- package/dist/commands-update-check.d.ts +6 -0
- package/dist/commands-update-check.js +86 -0
- package/dist/commands-update-check.js.map +1 -0
- package/dist/commands-update-skill.d.ts +5 -0
- package/dist/commands-update-skill.js +36 -0
- package/dist/commands-update-skill.js.map +1 -0
- package/dist/commands-update.js +29 -1
- package/dist/commands-update.js.map +1 -1
- package/dist/commands.d.ts +2 -0
- package/dist/commands.js +2 -0
- package/dist/commands.js.map +1 -1
- package/dist/credentials.js +7 -4
- package/dist/credentials.js.map +1 -1
- package/dist/harnesses.d.ts +1 -1
- package/dist/harnesses.js +2 -2
- package/dist/harnesses.js.map +1 -1
- package/dist/hook-adapter.d.ts +7 -1
- package/dist/hook-adapter.js +36 -3
- package/dist/hook-adapter.js.map +1 -1
- package/dist/hook-events.d.ts +69 -2
- package/dist/hook-events.js +75 -13
- package/dist/hook-events.js.map +1 -1
- package/dist/hook-lifecycle.js +44 -15
- package/dist/hook-lifecycle.js.map +1 -1
- package/dist/hook-question-retirement.d.ts +9 -0
- package/dist/hook-question-retirement.js +38 -3
- package/dist/hook-question-retirement.js.map +1 -1
- package/dist/hook-question-state.d.ts +14 -5
- package/dist/hook-question-state.js +55 -24
- package/dist/hook-question-state.js.map +1 -1
- package/dist/hook-types.d.ts +6 -0
- package/dist/install-hooks.d.ts +70 -12
- package/dist/install-hooks.js +352 -198
- package/dist/install-hooks.js.map +1 -1
- package/dist/native-skills.d.ts +2 -0
- package/dist/native-skills.js +3 -1
- package/dist/native-skills.js.map +1 -1
- package/dist/openclaw-plugin.d.ts +0 -1
- package/dist/openclaw-plugin.js +0 -7
- package/dist/openclaw-plugin.js.map +1 -1
- package/dist/opencode-plugin.d.ts +9 -0
- package/dist/opencode-plugin.js +19 -2
- package/dist/opencode-plugin.js.map +1 -1
- package/dist/program.d.ts +3 -1
- package/dist/program.js +21 -6
- package/dist/program.js.map +1 -1
- package/dist/readiness.d.ts +9 -1
- package/dist/readiness.js +11 -3
- package/dist/readiness.js.map +1 -1
- package/dist/session-activation.d.ts +2 -2
- package/dist/session-activation.js +8 -7
- package/dist/session-activation.js.map +1 -1
- package/dist/session-labels.js +6 -6
- package/dist/session-labels.js.map +1 -1
- package/dist/skill-source/manifest.json +8 -4
- package/dist/skill-source/notifai/SKILL.md +14 -16
- package/dist/skill-source/notifai/references/harness-setup.md +23 -14
- package/dist/skill-source/notifai/references/updates.md +74 -0
- package/dist/ui/theme.d.ts +1 -1
- package/dist/update-handoff.d.ts +29 -0
- package/dist/update-handoff.js +66 -0
- package/dist/update-handoff.js.map +1 -0
- 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
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
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
|
|
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 {
|
|
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
|
-
*
|
|
155
|
-
*
|
|
156
|
-
*
|
|
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
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
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,
|
|
1
|
+
{"version":3,"file":"hook-question-state.js","sourceRoot":"","sources":["../src/hook-question-state.ts"],"names":[],"mappings":"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"}
|
package/dist/hook-types.d.ts
CHANGED
|
@@ -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. */
|
package/dist/install-hooks.d.ts
CHANGED
|
@@ -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
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
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
|
|
99
|
-
*
|
|
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.
|
|
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.
|
|
219
|
-
*
|
|
220
|
-
*
|
|
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
|
*/
|