@raidiant/notifai 10.1.0 → 10.1.1
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 +17 -0
- package/README.md +3 -0
- package/dist/cli-bin.d.ts +21 -1
- package/dist/cli-bin.js +141 -10
- package/dist/cli-bin.js.map +1 -1
- package/dist/cli-update-contract.d.ts +7 -0
- package/dist/cli-update-contract.js +10 -0
- package/dist/cli-update-contract.js.map +1 -0
- package/dist/client.d.ts +6 -1
- package/dist/client.js +1 -0
- package/dist/client.js.map +1 -1
- package/dist/codex-wake.d.ts +2 -0
- package/dist/codex-wake.js +2 -1
- package/dist/codex-wake.js.map +1 -1
- package/dist/commands-auth.d.ts +15 -1
- package/dist/commands-auth.js +29 -11
- package/dist/commands-auth.js.map +1 -1
- package/dist/commands-core.d.ts +8 -1
- package/dist/commands-core.js +11 -4
- package/dist/commands-core.js.map +1 -1
- package/dist/commands-devices.d.ts +10 -1
- package/dist/commands-devices.js +17 -13
- package/dist/commands-devices.js.map +1 -1
- package/dist/commands-doctor.js +93 -49
- package/dist/commands-doctor.js.map +1 -1
- package/dist/commands-hooks.js +47 -10
- package/dist/commands-hooks.js.map +1 -1
- package/dist/commands-init.d.ts +16 -0
- package/dist/commands-init.js +245 -87
- package/dist/commands-init.js.map +1 -1
- package/dist/commands-send.d.ts +1 -1
- package/dist/commands-send.js +121 -35
- package/dist/commands-send.js.map +1 -1
- package/dist/commands-update.d.ts +10 -0
- package/dist/commands-update.js +141 -0
- package/dist/commands-update.js.map +1 -0
- package/dist/commands.d.ts +2 -1
- package/dist/commands.js +2 -1
- package/dist/commands.js.map +1 -1
- package/dist/hook-adapter.d.ts +2 -0
- package/dist/hook-adapter.js +12 -1
- package/dist/hook-adapter.js.map +1 -1
- package/dist/hooks.d.ts +43 -2
- package/dist/hooks.js +163 -21
- package/dist/hooks.js.map +1 -1
- package/dist/main-run.d.ts +1 -0
- package/dist/main-run.js +42 -0
- package/dist/main-run.js.map +1 -0
- package/dist/main.js +10 -31
- package/dist/main.js.map +1 -1
- package/dist/node-floor.d.ts +18 -0
- package/dist/node-floor.js +35 -0
- package/dist/node-floor.js.map +1 -0
- package/dist/program.d.ts +2 -1
- package/dist/program.js +22 -5
- package/dist/program.js.map +1 -1
- package/dist/question-settlement-process.d.ts +15 -0
- package/dist/question-settlement-process.js +35 -0
- package/dist/question-settlement-process.js.map +1 -0
- package/dist/readiness.d.ts +25 -1
- package/dist/readiness.js +32 -2
- package/dist/readiness.js.map +1 -1
- package/dist/setup-destinations.d.ts +23 -0
- package/dist/setup-destinations.js +44 -0
- package/dist/setup-destinations.js.map +1 -0
- package/package.json +2 -2
- package/src/cli-bin.test.ts +145 -7
- package/src/cli-bin.ts +176 -10
- package/src/cli-update-contract.ts +9 -0
- package/src/cli-update.test.ts +125 -0
- package/src/client.ts +7 -0
- package/src/codex-wake.ts +5 -1
- package/src/commands-auth.ts +44 -11
- package/src/commands-core.ts +18 -4
- package/src/commands-devices.ts +23 -16
- package/src/commands-doctor.ts +116 -55
- package/src/commands-hooks.ts +66 -16
- package/src/commands-init.ts +265 -88
- package/src/commands-send.ts +145 -39
- package/src/commands-update.ts +180 -0
- package/src/commands.test.ts +518 -49
- package/src/commands.ts +2 -0
- package/src/hook-adapter.ts +14 -0
- package/src/hooks.test.ts +275 -0
- package/src/hooks.ts +270 -18
- package/src/main-run.ts +45 -0
- package/src/main.ts +9 -33
- package/src/node-floor.test.ts +27 -0
- package/src/node-floor.ts +37 -0
- package/src/program.test.ts +35 -0
- package/src/program.ts +28 -4
- package/src/question-settlement-process.ts +47 -0
- package/src/readiness.ts +35 -2
- package/src/setup-destinations.test.ts +41 -0
- package/src/setup-destinations.ts +50 -0
- package/src/skill.test.ts +11 -0
- package/src/commands-devices.test.ts +0 -15
package/dist/commands.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { EXIT, log, type CommandDeps, type CommandIo, type CommandSpinner, } from './commands-core.js';
|
|
1
|
+
export { EXIT, log, updateCliCommand, type CommandDeps, type CommandIo, type CommandSpinner, } from './commands-core.js';
|
|
2
2
|
export { accessStatusCommand, authStatusCommand, loginCommand, logoutCommand, } from './commands-auth.js';
|
|
3
3
|
export { canDeviceReceive, capabilitiesCommand, deviceInventory, devicesCommand, } from './commands-devices.js';
|
|
4
4
|
export { soundsCommand } from './commands-sounds.js';
|
|
@@ -11,6 +11,7 @@ export { logsCommand, parseSince, type LogsFlags } from './commands-logs.js';
|
|
|
11
11
|
export { SKILLS_SOURCE } from './commands-skill.js';
|
|
12
12
|
export { initCommand, projectSlugFrom, type InitFlags, type SetupScope, } from './commands-init.js';
|
|
13
13
|
export { assessReadiness, doctorCommand } from './commands-doctor.js';
|
|
14
|
+
export { cliUpdateCommand, type CliUpdateFlags } from './commands-update.js';
|
|
14
15
|
export { projectDisableCommand, projectEnableCommand, projectStatusCommand, } from './commands-project.js';
|
|
15
16
|
export { agentSessionRenameCommand, type AgentSessionRenameFlags, } from './commands-agent-sessions.js';
|
|
16
17
|
export { realIo } from './commands-io.js';
|
package/dist/commands.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { EXIT, log, } from './commands-core.js';
|
|
1
|
+
export { EXIT, log, updateCliCommand, } from './commands-core.js';
|
|
2
2
|
export { accessStatusCommand, authStatusCommand, loginCommand, logoutCommand, } from './commands-auth.js';
|
|
3
3
|
export { canDeviceReceive, capabilitiesCommand, deviceInventory, devicesCommand, } from './commands-devices.js';
|
|
4
4
|
export { soundsCommand } from './commands-sounds.js';
|
|
@@ -11,6 +11,7 @@ export { logsCommand, parseSince } from './commands-logs.js';
|
|
|
11
11
|
export { SKILLS_SOURCE } from './commands-skill.js';
|
|
12
12
|
export { initCommand, projectSlugFrom, } from './commands-init.js';
|
|
13
13
|
export { assessReadiness, doctorCommand } from './commands-doctor.js';
|
|
14
|
+
export { cliUpdateCommand } from './commands-update.js';
|
|
14
15
|
export { projectDisableCommand, projectEnableCommand, projectStatusCommand, } from './commands-project.js';
|
|
15
16
|
export { agentSessionRenameCommand, } from './commands-agent-sessions.js';
|
|
16
17
|
export { realIo } from './commands-io.js';
|
package/dist/commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,GAAG,
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,GAAG,EACH,gBAAgB,GAIjB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,aAAa,GACd,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,cAAc,GACf,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,aAAa,GACd,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,sCAAsC,EACtC,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,gBAAgB,GAKjB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,UAAU,EAAkB,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EACL,WAAW,EACX,eAAe,GAGhB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAuB,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,yBAAyB,GAE1B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA"}
|
package/dist/hook-adapter.d.ts
CHANGED
|
@@ -17,6 +17,8 @@ export interface HookAdapterInspection {
|
|
|
17
17
|
target: HookAdapterTarget | null;
|
|
18
18
|
problems: string[];
|
|
19
19
|
}
|
|
20
|
+
/** Whether a parsed adapter runs the same installed CLI artifact as PATH. */
|
|
21
|
+
export declare function hookAdapterTargetsArtifact(target: HookAdapterTarget | null, artifactPath: string): boolean;
|
|
20
22
|
export declare function hookHostPlatform(platform?: NodeJS.Platform | HookHostPlatform): HookHostPlatform;
|
|
21
23
|
/**
|
|
22
24
|
* One user-level identity for every harness and every project/global install.
|
package/dist/hook-adapter.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { chmodSync, existsSync, lstatSync, mkdirSync, readFileSync, statSync, } from 'node:fs';
|
|
1
|
+
import { chmodSync, existsSync, lstatSync, mkdirSync, readFileSync, realpathSync, statSync, } from 'node:fs';
|
|
2
2
|
import os from 'node:os';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { atomicWriteFileSync } from './atomic-file.js';
|
|
@@ -9,6 +9,17 @@ const ADAPTER_VERSION = 2;
|
|
|
9
9
|
export function isNpxAdapterTarget(target) {
|
|
10
10
|
return target.kind === 'npx';
|
|
11
11
|
}
|
|
12
|
+
/** Whether a parsed adapter runs the same installed CLI artifact as PATH. */
|
|
13
|
+
export function hookAdapterTargetsArtifact(target, artifactPath) {
|
|
14
|
+
if (target === null || isNpxAdapterTarget(target))
|
|
15
|
+
return false;
|
|
16
|
+
try {
|
|
17
|
+
return realpathSync(target.scriptPath) === realpathSync(artifactPath);
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
12
23
|
export function hookHostPlatform(platform = process.platform) {
|
|
13
24
|
return platform === 'win32' ? 'win32' : 'posix';
|
|
14
25
|
}
|
package/dist/hook-adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-adapter.js","sourceRoot":"","sources":["../src/hook-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hook-adapter.js","sourceRoot":"","sources":["../src/hook-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks.d.ts
CHANGED
|
@@ -59,6 +59,13 @@ export interface SessionState {
|
|
|
59
59
|
* question the moment a second was registered (2026-08-09).
|
|
60
60
|
*/
|
|
61
61
|
pending?: PendingQuestion[];
|
|
62
|
+
/**
|
|
63
|
+
* Bounded terminal history for stable `q_...` lookup after the live queue is
|
|
64
|
+
* gone. It carries identities and lifecycle state only; question content
|
|
65
|
+
* remains in the ordinary pending/retirement records under their existing
|
|
66
|
+
* retention boundary.
|
|
67
|
+
*/
|
|
68
|
+
question_history?: QuestionHistoryEntry[];
|
|
62
69
|
/**
|
|
63
70
|
* Questions that have been delivered to the user's devices and are now dead,
|
|
64
71
|
* but whose retirement has not been confirmed yet.
|
|
@@ -136,6 +143,8 @@ interface AcceptedAnswerDelivery {
|
|
|
136
143
|
}
|
|
137
144
|
/** A delivered question awaiting its retirement push. */
|
|
138
145
|
export interface RetiringQuestion {
|
|
146
|
+
/** Stable local identity retained through remote retirement. */
|
|
147
|
+
question_id?: string;
|
|
139
148
|
request_id: string;
|
|
140
149
|
collapse_key: string;
|
|
141
150
|
/** The Device Installations that actually received the question. */
|
|
@@ -201,6 +210,32 @@ export interface PendingQuestion {
|
|
|
201
210
|
/** Frozen before the first network byte, so an ambiguous submit is replayable. */
|
|
202
211
|
submission?: PendingSubmissionIntent;
|
|
203
212
|
}
|
|
213
|
+
export type QuestionDeliveryState = 'local' | 'frozen' | 'live' | 'answered' | 'withdrawn' | 'retired';
|
|
214
|
+
type QuestionTerminalState = Extract<QuestionDeliveryState, 'answered' | 'withdrawn' | 'retired'>;
|
|
215
|
+
export interface QuestionHistoryEntry {
|
|
216
|
+
question_id: string;
|
|
217
|
+
state: QuestionTerminalState;
|
|
218
|
+
/** Present only after local promotion proves the Notification Request exists. */
|
|
219
|
+
request_id?: string;
|
|
220
|
+
/** Reserved idempotent identity that was never locally promoted. */
|
|
221
|
+
frozen_request_id?: string;
|
|
222
|
+
}
|
|
223
|
+
export interface QuestionStateView {
|
|
224
|
+
question_id: string;
|
|
225
|
+
state: QuestionDeliveryState;
|
|
226
|
+
/** Null means a frozen submission may or may not have crossed the service boundary. */
|
|
227
|
+
submitted: boolean | null;
|
|
228
|
+
request_id: string | null;
|
|
229
|
+
frozen_request_id: string | null;
|
|
230
|
+
}
|
|
231
|
+
export type QuestionStateLookup = {
|
|
232
|
+
found: true;
|
|
233
|
+
session_id: string;
|
|
234
|
+
question: QuestionStateView;
|
|
235
|
+
} | {
|
|
236
|
+
found: false;
|
|
237
|
+
ambiguous: boolean;
|
|
238
|
+
};
|
|
204
239
|
interface PendingSubmissionIntent {
|
|
205
240
|
request_id: string;
|
|
206
241
|
idempotency_key: string;
|
|
@@ -226,6 +261,8 @@ export interface HookOutcome {
|
|
|
226
261
|
notes: string[];
|
|
227
262
|
/** Structured lifecycle detail that belongs on hook.end without user text. */
|
|
228
263
|
log?: Record<string, unknown>;
|
|
264
|
+
/** An unpushed registration survived UserPromptSubmit and needs its own owner. */
|
|
265
|
+
settlementRequired?: boolean;
|
|
229
266
|
}
|
|
230
267
|
/** An accepted continuation ready for whichever host owns the last meter. */
|
|
231
268
|
export interface ContinuationEvent {
|
|
@@ -282,6 +319,8 @@ export interface EscalationWaiterOptions {
|
|
|
282
319
|
envelope: HookEnvelope;
|
|
283
320
|
route: EscalationDeliveryRoute;
|
|
284
321
|
processDeadlineAt?: number;
|
|
322
|
+
/** Stop owns diagnostics; a pre-Stop recovery owner must not impersonate it. */
|
|
323
|
+
recordStop?: boolean;
|
|
285
324
|
}
|
|
286
325
|
export declare function readSessionState(sessionId: string, env: NodeJS.ProcessEnv): SessionState;
|
|
287
326
|
/**
|
|
@@ -442,7 +481,9 @@ interface AnsweredPending {
|
|
|
442
481
|
/** Whether that acknowledgement must carry text; the account's snapshot. */
|
|
443
482
|
agent_acknowledgement_text_required?: boolean | undefined;
|
|
444
483
|
}
|
|
445
|
-
|
|
484
|
+
/** Read one stable local question identity without minting or submitting anything. */
|
|
485
|
+
export declare function inspectQuestionState(questionId: string, env: NodeJS.ProcessEnv): QuestionStateLookup;
|
|
486
|
+
export declare function dropPendingQuestion(sessionId: string, env: NodeJS.ProcessEnv, entry: PendingQuestion, terminalState?: QuestionTerminalState): void;
|
|
446
487
|
/**
|
|
447
488
|
* Drop registrations that never reached a device, so a later Stop cannot push
|
|
448
489
|
* them. A retirement push would be noise: there is nothing on any device to
|
|
@@ -461,7 +502,7 @@ export declare function handleUserPromptSubmit(ctx: HookContext, envelope: HookE
|
|
|
461
502
|
* `notifai ask`. Guessing from the last assistant message was the alternative
|
|
462
503
|
* and it is not worth it: a false positive here hijacks the terminal.
|
|
463
504
|
*/
|
|
464
|
-
export declare function handleStop(ctx: HookContext, envelope: HookEnvelope, processDeadlineAt?: number, route?: EscalationDeliveryRoute): Promise<HookOutcome>;
|
|
505
|
+
export declare function handleStop(ctx: HookContext, envelope: HookEnvelope, processDeadlineAt?: number, route?: EscalationDeliveryRoute, recordStop?: boolean): Promise<HookOutcome>;
|
|
465
506
|
/**
|
|
466
507
|
* Own one registered question pipeline from its terminal-first timer through
|
|
467
508
|
* its final delivery or retirement. Hosts differ only in the injected route.
|
package/dist/hooks.js
CHANGED
|
@@ -148,10 +148,11 @@ export function findOwningSession(id, env) {
|
|
|
148
148
|
const sessionId = persisted.session_id;
|
|
149
149
|
const state = persisted;
|
|
150
150
|
const pendingMatch = pendingList(state).some((entry) => entry.question_id === id || entry.request_id === id);
|
|
151
|
-
const retiringMatch = (state.retiring ?? []).some((entry) => entry.request_id === id);
|
|
151
|
+
const retiringMatch = (state.retiring ?? []).some((entry) => entry.question_id === id || entry.request_id === id);
|
|
152
|
+
const historyMatch = (state.question_history ?? []).some((entry) => entry.question_id === id || entry.request_id === id);
|
|
152
153
|
const acknowledgementMatch = (state.acknowledgement_due ?? []).some((entry) => entry.request_id === id);
|
|
153
154
|
const acceptedMatch = state.accepted?.answers.some(({ pending }) => pending.question_id === id || pending.request_id === id) ?? false;
|
|
154
|
-
if (pendingMatch || retiringMatch || acknowledgementMatch || acceptedMatch) {
|
|
155
|
+
if (pendingMatch || retiringMatch || historyMatch || acknowledgementMatch || acceptedMatch) {
|
|
155
156
|
matches.push(sessionId);
|
|
156
157
|
if (matches.length > 1)
|
|
157
158
|
return { sessionId: null, ambiguous: true };
|
|
@@ -859,15 +860,16 @@ export function parkForRetirement(sessionId, env, pending, state) {
|
|
|
859
860
|
updateSessionState(sessionId, env, (current) => {
|
|
860
861
|
const already = current.retiring ?? [];
|
|
861
862
|
const existing = already.findIndex((entry) => entry.request_id === retirement.request_id);
|
|
862
|
-
if (existing < 0)
|
|
863
|
-
return { ...current, retiring: [...already, retirement] };
|
|
863
|
+
if (existing < 0) {
|
|
864
|
+
return rememberQuestionState({ ...current, retiring: [...already, retirement] }, pending, state === 'answered' ? 'answered' : 'retired');
|
|
865
|
+
}
|
|
864
866
|
const retiring = [...already];
|
|
865
867
|
// An observed answer is final truth and upgrades an earlier supersession
|
|
866
868
|
// parked while the submission callback was racing a newer question.
|
|
867
869
|
if (retirement.state === 'answered' && retiring[existing].state !== 'answered') {
|
|
868
870
|
retiring[existing] = retirement;
|
|
869
871
|
}
|
|
870
|
-
return { ...current, retiring };
|
|
872
|
+
return rememberQuestionState({ ...current, retiring }, pending, state === 'answered' ? 'answered' : 'retired');
|
|
871
873
|
});
|
|
872
874
|
}
|
|
873
875
|
/**
|
|
@@ -896,6 +898,7 @@ function retiringQuestion(pending, state, cwd) {
|
|
|
896
898
|
}
|
|
897
899
|
const source = sourceContextAtHookEvent(pending.source, cwd);
|
|
898
900
|
return {
|
|
901
|
+
...(pending.question_id !== undefined ? { question_id: pending.question_id } : {}),
|
|
899
902
|
request_id: requestId,
|
|
900
903
|
collapse_key: collapseKey,
|
|
901
904
|
device_ids: [...deviceIds],
|
|
@@ -1133,6 +1136,122 @@ async function pollPendingReplies(ctx, live, timeoutSeconds) {
|
|
|
1133
1136
|
function pendingList(state) {
|
|
1134
1137
|
return Array.isArray(state.pending) ? state.pending : [];
|
|
1135
1138
|
}
|
|
1139
|
+
const QUESTION_HISTORY_CAP = 50;
|
|
1140
|
+
/** Keep a bounded, content-free map from local identity to its terminal state. */
|
|
1141
|
+
function rememberQuestionState(current, question, state) {
|
|
1142
|
+
if (question.question_id === undefined)
|
|
1143
|
+
return current;
|
|
1144
|
+
const existing = (current.question_history ?? []).find((entry) => entry.question_id === question.question_id);
|
|
1145
|
+
const terminalState = existing?.state === 'withdrawn' || existing?.state === 'answered'
|
|
1146
|
+
? existing.state
|
|
1147
|
+
: state === 'answered'
|
|
1148
|
+
? 'answered'
|
|
1149
|
+
: state;
|
|
1150
|
+
const requestId = question.request_id ?? existing?.request_id;
|
|
1151
|
+
const frozenRequestId = requestId === undefined
|
|
1152
|
+
? question.submission?.request_id ?? existing?.frozen_request_id
|
|
1153
|
+
: undefined;
|
|
1154
|
+
const record = {
|
|
1155
|
+
question_id: question.question_id,
|
|
1156
|
+
state: terminalState,
|
|
1157
|
+
...(requestId === undefined ? {} : { request_id: requestId }),
|
|
1158
|
+
...(frozenRequestId === undefined ? {} : { frozen_request_id: frozenRequestId }),
|
|
1159
|
+
};
|
|
1160
|
+
const history = [
|
|
1161
|
+
...(current.question_history ?? []).filter((entry) => entry.question_id !== question.question_id),
|
|
1162
|
+
record,
|
|
1163
|
+
].slice(-QUESTION_HISTORY_CAP);
|
|
1164
|
+
return { ...current, question_history: history };
|
|
1165
|
+
}
|
|
1166
|
+
function pendingQuestionView(entry) {
|
|
1167
|
+
if (entry.question_id === undefined)
|
|
1168
|
+
return null;
|
|
1169
|
+
if (entry.request_id !== undefined) {
|
|
1170
|
+
return {
|
|
1171
|
+
question_id: entry.question_id,
|
|
1172
|
+
state: 'live',
|
|
1173
|
+
submitted: true,
|
|
1174
|
+
request_id: entry.request_id,
|
|
1175
|
+
frozen_request_id: null,
|
|
1176
|
+
};
|
|
1177
|
+
}
|
|
1178
|
+
if (entry.submission !== undefined) {
|
|
1179
|
+
return {
|
|
1180
|
+
question_id: entry.question_id,
|
|
1181
|
+
state: 'frozen',
|
|
1182
|
+
submitted: null,
|
|
1183
|
+
request_id: null,
|
|
1184
|
+
frozen_request_id: entry.submission.request_id,
|
|
1185
|
+
};
|
|
1186
|
+
}
|
|
1187
|
+
return {
|
|
1188
|
+
question_id: entry.question_id,
|
|
1189
|
+
state: 'local',
|
|
1190
|
+
submitted: false,
|
|
1191
|
+
request_id: null,
|
|
1192
|
+
frozen_request_id: null,
|
|
1193
|
+
};
|
|
1194
|
+
}
|
|
1195
|
+
/** Read one stable local question identity without minting or submitting anything. */
|
|
1196
|
+
export function inspectQuestionState(questionId, env) {
|
|
1197
|
+
const owner = findOwningSession(questionId, env);
|
|
1198
|
+
if (owner.ambiguous || owner.sessionId === null) {
|
|
1199
|
+
return { found: false, ambiguous: owner.ambiguous };
|
|
1200
|
+
}
|
|
1201
|
+
const state = readSessionState(owner.sessionId, env);
|
|
1202
|
+
const pending = pendingList(state).find((entry) => entry.question_id === questionId);
|
|
1203
|
+
const pendingView = pending === undefined ? null : pendingQuestionView(pending);
|
|
1204
|
+
if (pendingView !== null) {
|
|
1205
|
+
return { found: true, session_id: owner.sessionId, question: pendingView };
|
|
1206
|
+
}
|
|
1207
|
+
const accepted = state.accepted?.answers.find(({ pending: entry }) => entry.question_id === questionId)?.pending;
|
|
1208
|
+
if (accepted?.question_id !== undefined) {
|
|
1209
|
+
return {
|
|
1210
|
+
found: true,
|
|
1211
|
+
session_id: owner.sessionId,
|
|
1212
|
+
question: {
|
|
1213
|
+
question_id: accepted.question_id,
|
|
1214
|
+
state: 'answered',
|
|
1215
|
+
submitted: true,
|
|
1216
|
+
request_id: accepted.request_id ?? null,
|
|
1217
|
+
frozen_request_id: null,
|
|
1218
|
+
},
|
|
1219
|
+
};
|
|
1220
|
+
}
|
|
1221
|
+
const retiring = (state.retiring ?? []).find((entry) => entry.question_id === questionId);
|
|
1222
|
+
if (retiring?.question_id !== undefined) {
|
|
1223
|
+
return {
|
|
1224
|
+
found: true,
|
|
1225
|
+
session_id: owner.sessionId,
|
|
1226
|
+
question: {
|
|
1227
|
+
question_id: retiring.question_id,
|
|
1228
|
+
state: retiring.state === 'answered' ? 'answered' : 'retired',
|
|
1229
|
+
submitted: true,
|
|
1230
|
+
request_id: retiring.request_id,
|
|
1231
|
+
frozen_request_id: null,
|
|
1232
|
+
},
|
|
1233
|
+
};
|
|
1234
|
+
}
|
|
1235
|
+
const history = (state.question_history ?? []).find((entry) => entry.question_id === questionId);
|
|
1236
|
+
if (history !== undefined) {
|
|
1237
|
+
return {
|
|
1238
|
+
found: true,
|
|
1239
|
+
session_id: owner.sessionId,
|
|
1240
|
+
question: {
|
|
1241
|
+
question_id: history.question_id,
|
|
1242
|
+
state: history.state,
|
|
1243
|
+
submitted: history.request_id !== undefined
|
|
1244
|
+
? true
|
|
1245
|
+
: history.frozen_request_id !== undefined
|
|
1246
|
+
? null
|
|
1247
|
+
: false,
|
|
1248
|
+
request_id: history.request_id ?? null,
|
|
1249
|
+
frozen_request_id: history.frozen_request_id ?? null,
|
|
1250
|
+
},
|
|
1251
|
+
};
|
|
1252
|
+
}
|
|
1253
|
+
return { found: false, ambiguous: false };
|
|
1254
|
+
}
|
|
1136
1255
|
/** Registration identity — the convention every racing writer compares by. */
|
|
1137
1256
|
function isSamePending(a, b) {
|
|
1138
1257
|
if (a.question_id !== undefined || b.question_id !== undefined) {
|
|
@@ -1148,7 +1267,7 @@ function isSamePending(a, b) {
|
|
|
1148
1267
|
function isTerminalDraftRejection(err) {
|
|
1149
1268
|
return err.status === 422 || (err.status === 400 && err.code === 'invalid_request');
|
|
1150
1269
|
}
|
|
1151
|
-
export function dropPendingQuestion(sessionId, env, entry) {
|
|
1270
|
+
export function dropPendingQuestion(sessionId, env, entry, terminalState = 'retired') {
|
|
1152
1271
|
updateSessionState(sessionId, env, (current) => {
|
|
1153
1272
|
const pending = pendingList(current).filter((candidate) => !isSamePending(candidate, entry));
|
|
1154
1273
|
const next = { ...current };
|
|
@@ -1156,7 +1275,7 @@ export function dropPendingQuestion(sessionId, env, entry) {
|
|
|
1156
1275
|
next.pending = pending;
|
|
1157
1276
|
else
|
|
1158
1277
|
delete next.pending;
|
|
1159
|
-
return next;
|
|
1278
|
+
return rememberQuestionState(next, entry, terminalState);
|
|
1160
1279
|
});
|
|
1161
1280
|
}
|
|
1162
1281
|
/**
|
|
@@ -1177,7 +1296,7 @@ export function withdrawUnpushedQuestions(sessionId, env) {
|
|
|
1177
1296
|
next.pending = remaining;
|
|
1178
1297
|
else
|
|
1179
1298
|
delete next.pending;
|
|
1180
|
-
return next;
|
|
1299
|
+
return withdrawn.reduce((remembered, entry) => rememberQuestionState(remembered, entry, 'withdrawn'), next);
|
|
1181
1300
|
});
|
|
1182
1301
|
return withdrawn;
|
|
1183
1302
|
}
|
|
@@ -1336,7 +1455,7 @@ function stageAcceptedAnswers(ctx, sessionId, answered, remaining) {
|
|
|
1336
1455
|
next.acknowledgement_due = acknowledgementDue;
|
|
1337
1456
|
else
|
|
1338
1457
|
delete next.acknowledgement_due;
|
|
1339
|
-
return next;
|
|
1458
|
+
return answered.reduce((remembered, answer) => rememberQuestionState(remembered, answer.pending, 'answered'), next);
|
|
1340
1459
|
});
|
|
1341
1460
|
return accepted;
|
|
1342
1461
|
}
|
|
@@ -1530,7 +1649,7 @@ async function retirePendings(ctx, envelope, sessionId, entries, state) {
|
|
|
1530
1649
|
next.retiring = retiring;
|
|
1531
1650
|
else
|
|
1532
1651
|
delete next.retiring;
|
|
1533
|
-
return next;
|
|
1652
|
+
return entries.reduce((remembered, entry) => rememberQuestionState(remembered, entry, state === 'answered' ? 'answered' : 'retired'), next);
|
|
1534
1653
|
});
|
|
1535
1654
|
// Network retirement is deliberately deferred to a later no-question hook.
|
|
1536
1655
|
// The state write above is the durable operation; blocking here creates a
|
|
@@ -1610,7 +1729,7 @@ export async function handleUserPromptSubmit(ctx, envelope) {
|
|
|
1610
1729
|
// Park before dropping `pending`. If the process dies between these writes,
|
|
1611
1730
|
// the next hook sees both copies and dedupes them; the old order could die in
|
|
1612
1731
|
// the gap after erasing the only request/collapse/device identifiers.
|
|
1613
|
-
updateSessionState(sessionId, ctx.env, (current) => {
|
|
1732
|
+
const updated = updateSessionState(sessionId, ctx.env, (current) => {
|
|
1614
1733
|
const retiring = [...(current.retiring ?? [])];
|
|
1615
1734
|
const matchedNow = pendingAnsweredByPrompt(envelope.prompt, pendingList(current));
|
|
1616
1735
|
const unmatched = pendingList(current).filter((entry) => !matchedNow.some((item) => isSamePending(item, entry)));
|
|
@@ -1647,7 +1766,7 @@ export async function handleUserPromptSubmit(ctx, envelope) {
|
|
|
1647
1766
|
if (current.continuation !== undefined) {
|
|
1648
1767
|
next.continuation = { ...current.continuation, count: 0 };
|
|
1649
1768
|
}
|
|
1650
|
-
return next;
|
|
1769
|
+
return matchedNow.reduce((remembered, entry) => rememberQuestionState(remembered, entry, entry.request_id === undefined ? 'withdrawn' : 'retired'), next);
|
|
1651
1770
|
});
|
|
1652
1771
|
// The bridge that lets a plain `notifai ask` find the hook's canonical
|
|
1653
1772
|
// session: an agent shell command gets no hook payload, and not every
|
|
@@ -1660,7 +1779,10 @@ export async function handleUserPromptSubmit(ctx, envelope) {
|
|
|
1660
1779
|
// model. Keep the journal and let the next Stop use its acknowledged
|
|
1661
1780
|
// continuation channel instead of recreating the crash-before-stdout gap.
|
|
1662
1781
|
notes.push('the late device answer will continue the agent at this turn’s Stop');
|
|
1663
|
-
return {
|
|
1782
|
+
return {
|
|
1783
|
+
notes,
|
|
1784
|
+
settlementRequired: pendingList(updated).some((entry) => entry.request_id === undefined),
|
|
1785
|
+
};
|
|
1664
1786
|
}
|
|
1665
1787
|
const retired = await drainRetirements(ctx, sessionId, ctx.env);
|
|
1666
1788
|
const orphaned = await drainOrphanRetirements(ctx, ctx.env, ctx.now());
|
|
@@ -1668,7 +1790,10 @@ export async function handleUserPromptSubmit(ctx, envelope) {
|
|
|
1668
1790
|
if (swept.length > 0) {
|
|
1669
1791
|
notes.push(`retired question${swept.length > 1 ? 's' : ''} ${swept.join(', ')}`);
|
|
1670
1792
|
}
|
|
1671
|
-
return {
|
|
1793
|
+
return {
|
|
1794
|
+
notes,
|
|
1795
|
+
settlementRequired: pendingList(updated).some((entry) => entry.request_id === undefined),
|
|
1796
|
+
};
|
|
1672
1797
|
}
|
|
1673
1798
|
// ---------------------------------------------------------------------------
|
|
1674
1799
|
// Stop — the turn ended; escalate a registered question
|
|
@@ -1678,7 +1803,7 @@ export async function handleUserPromptSubmit(ctx, envelope) {
|
|
|
1678
1803
|
* `notifai ask`. Guessing from the last assistant message was the alternative
|
|
1679
1804
|
* and it is not worth it: a false positive here hijacks the terminal.
|
|
1680
1805
|
*/
|
|
1681
|
-
export async function handleStop(ctx, envelope, processDeadlineAt = ctx.now() + QUESTION_WAITER_CEILING_SECONDS * 1000, route = hookContinuationRoute()) {
|
|
1806
|
+
export async function handleStop(ctx, envelope, processDeadlineAt = ctx.now() + QUESTION_WAITER_CEILING_SECONDS * 1000, route = hookContinuationRoute(), recordStop = true) {
|
|
1682
1807
|
const sessionId = envelope.session_id;
|
|
1683
1808
|
if (!sessionId) {
|
|
1684
1809
|
gate(ctx, 'held', 'no-session', { stage: 'queued' });
|
|
@@ -1689,6 +1814,7 @@ export async function handleStop(ctx, envelope, processDeadlineAt = ctx.now() +
|
|
|
1689
1814
|
envelope,
|
|
1690
1815
|
route,
|
|
1691
1816
|
processDeadlineAt,
|
|
1817
|
+
recordStop,
|
|
1692
1818
|
});
|
|
1693
1819
|
}
|
|
1694
1820
|
/**
|
|
@@ -1734,11 +1860,13 @@ export async function runEscalationWaiter(ctx, options) {
|
|
|
1734
1860
|
// This event marker is diagnostic evidence in its own right. Record it
|
|
1735
1861
|
// before every early return so doctor can distinguish a working Stop route
|
|
1736
1862
|
// from the prompt-only state that previously looked healthy.
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1863
|
+
if (options.recordStop !== false) {
|
|
1864
|
+
updateSessionState(sessionId, ctx.env, (current) => ({
|
|
1865
|
+
...current,
|
|
1866
|
+
...(ctx.harness === undefined ? {} : { harness: ctx.harness }),
|
|
1867
|
+
last_stop_at: ctx.now(),
|
|
1868
|
+
}));
|
|
1869
|
+
}
|
|
1742
1870
|
// The waiter, not its host, owns this lease. It spans grace, submission,
|
|
1743
1871
|
// polling, close fencing, route delivery, and every retirement path.
|
|
1744
1872
|
// Real clock, deliberately, not `ctx.now` — the claim answers whether
|
|
@@ -2585,6 +2713,16 @@ export function handleSessionEnd(env, envelope, now = Date.now()) {
|
|
|
2585
2713
|
if (envelope.cwd !== undefined)
|
|
2586
2714
|
clearMatchingProjectSession(envelope.cwd, env, sessionId);
|
|
2587
2715
|
const state = readSessionState(sessionId, env);
|
|
2716
|
+
let stateWithHistory = state;
|
|
2717
|
+
for (const entry of pendingList(state)) {
|
|
2718
|
+
stateWithHistory = rememberQuestionState(stateWithHistory, entry, entry.request_id === undefined && entry.submission === undefined ? 'withdrawn' : 'retired');
|
|
2719
|
+
}
|
|
2720
|
+
for (const answer of state.accepted?.answers ?? []) {
|
|
2721
|
+
stateWithHistory = rememberQuestionState(stateWithHistory, answer.pending, 'answered');
|
|
2722
|
+
}
|
|
2723
|
+
for (const retirement of state.retiring ?? []) {
|
|
2724
|
+
stateWithHistory = rememberQuestionState(stateWithHistory, retirement, retirement.state === 'answered' ? 'answered' : 'retired');
|
|
2725
|
+
}
|
|
2588
2726
|
const orphans = [...(state.retiring ?? [])];
|
|
2589
2727
|
const retirementCandidates = [
|
|
2590
2728
|
...pendingList(state),
|
|
@@ -2613,7 +2751,7 @@ export function handleSessionEnd(env, envelope, now = Date.now()) {
|
|
|
2613
2751
|
notes.push(`queued ${orphans.length} question${orphans.length > 1 ? 's' : ''} for retirement on the next hook`);
|
|
2614
2752
|
}
|
|
2615
2753
|
if (state.accepted !== undefined || (state.acknowledgement_due?.length ?? 0) > 0) {
|
|
2616
|
-
const preserved = { ...
|
|
2754
|
+
const preserved = { ...stateWithHistory };
|
|
2617
2755
|
delete preserved.pending;
|
|
2618
2756
|
delete preserved.retiring;
|
|
2619
2757
|
delete preserved.acknowledgement_blocks;
|
|
@@ -2634,7 +2772,11 @@ export function handleSessionEnd(env, envelope, now = Date.now()) {
|
|
|
2634
2772
|
},
|
|
2635
2773
|
};
|
|
2636
2774
|
}
|
|
2775
|
+
const history = stateWithHistory.question_history;
|
|
2637
2776
|
clearSessionState(sessionId, env);
|
|
2777
|
+
if ((history?.length ?? 0) > 0) {
|
|
2778
|
+
writeSessionState(sessionId, env, { question_history: history });
|
|
2779
|
+
}
|
|
2638
2780
|
return { notes, log: { outcome: 'cleaned', queued_retirements: orphans.length } };
|
|
2639
2781
|
}
|
|
2640
2782
|
// ---------------------------------------------------------------------------
|