@raidiant/notifai 11.6.3-beta.2 → 11.7.0-beta.2
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 +15 -3
- package/dist/atomic-file.d.ts +1 -1
- package/dist/atomic-file.js.map +1 -1
- package/dist/client.d.ts +5 -1
- package/dist/client.js +2 -0
- package/dist/client.js.map +1 -1
- package/dist/codex-answer-control.d.ts +14 -0
- package/dist/codex-answer-control.js +41 -0
- package/dist/codex-answer-control.js.map +1 -0
- package/dist/codex-answer-presentation.d.ts +18 -0
- package/dist/codex-answer-presentation.js +113 -0
- package/dist/codex-answer-presentation.js.map +1 -0
- package/dist/codex-input-lifecycle.d.ts +10 -0
- package/dist/codex-input-lifecycle.js +63 -0
- package/dist/codex-input-lifecycle.js.map +1 -0
- package/dist/codex-native-control.d.ts +13 -0
- package/dist/codex-native-control.js +120 -0
- package/dist/codex-native-control.js.map +1 -0
- package/dist/codex-native-turn.d.ts +18 -0
- package/dist/codex-native-turn.js +46 -4
- package/dist/codex-native-turn.js.map +1 -1
- package/dist/codex-question-bindings.d.ts +76 -0
- package/dist/codex-question-bindings.js +151 -0
- package/dist/codex-question-bindings.js.map +1 -0
- package/dist/codex-queue-control.d.ts +21 -0
- package/dist/codex-queue-control.js +59 -0
- package/dist/codex-queue-control.js.map +1 -0
- package/dist/codex-tool-messages.js +40 -16
- package/dist/codex-tool-messages.js.map +1 -1
- package/dist/commands-acknowledge.d.ts +2 -4
- package/dist/commands-acknowledge.js +7 -0
- package/dist/commands-acknowledge.js.map +1 -1
- package/dist/commands-ask.js +64 -12
- package/dist/commands-ask.js.map +1 -1
- package/dist/commands-auth.d.ts +3 -1
- package/dist/commands-auth.js +88 -28
- package/dist/commands-auth.js.map +1 -1
- package/dist/commands-close.js +51 -3
- package/dist/commands-close.js.map +1 -1
- package/dist/commands-core.d.ts +7 -0
- package/dist/commands-core.js +1 -0
- package/dist/commands-core.js.map +1 -1
- package/dist/commands-hook-attend.js +50 -10
- package/dist/commands-hook-attend.js.map +1 -1
- package/dist/commands-hook-run.js +2 -1
- package/dist/commands-hook-run.js.map +1 -1
- package/dist/commands-init.d.ts +2 -0
- package/dist/commands-init.js +3 -3
- package/dist/commands-init.js.map +1 -1
- package/dist/commands-io.js +7 -0
- package/dist/commands-io.js.map +1 -1
- package/dist/commands-native-acknowledge.d.ts +8 -0
- package/dist/commands-native-acknowledge.js +114 -0
- package/dist/commands-native-acknowledge.js.map +1 -0
- package/dist/credentials.d.ts +5 -0
- package/dist/credentials.js.map +1 -1
- package/dist/hermes-attendant.js +4 -0
- package/dist/hermes-attendant.js.map +1 -1
- package/dist/hook-acknowledgements.d.ts +1 -0
- package/dist/hook-acknowledgements.js +3 -1
- package/dist/hook-acknowledgements.js.map +1 -1
- package/dist/hook-lifecycle.d.ts +12 -1
- package/dist/hook-lifecycle.js +145 -79
- package/dist/hook-lifecycle.js.map +1 -1
- package/dist/hook-question-retirement.js +2 -1
- package/dist/hook-question-retirement.js.map +1 -1
- package/dist/hook-question-state.d.ts +6 -2
- package/dist/hook-question-state.js +19 -7
- package/dist/hook-question-state.js.map +1 -1
- package/dist/hook-session-state.d.ts +5 -1
- package/dist/hook-session-state.js +48 -14
- package/dist/hook-session-state.js.map +1 -1
- package/dist/hook-types.d.ts +23 -1
- package/dist/hook-types.js.map +1 -1
- package/dist/native-answer-operation.d.ts +70 -0
- package/dist/native-answer-operation.js +247 -0
- package/dist/native-answer-operation.js.map +1 -0
- package/dist/pairing-qr.d.ts +5 -0
- package/dist/pairing-qr.js +24 -0
- package/dist/pairing-qr.js.map +1 -0
- package/dist/pending-pairing.d.ts +1 -0
- package/dist/pending-pairing.js +7 -5
- package/dist/pending-pairing.js.map +1 -1
- package/dist/program.js +9 -3
- package/dist/program.js.map +1 -1
- package/dist/session-attendant-probe.d.ts +1 -1
- package/dist/session-attendant-probe.js +2 -1
- package/dist/session-attendant-probe.js.map +1 -1
- package/dist/session-attendant-state.d.ts +5 -0
- package/dist/session-attendant-state.js +29 -10
- package/dist/session-attendant-state.js.map +1 -1
- package/dist/session-delivery.d.ts +29 -0
- package/dist/session-delivery.js +3 -1
- package/dist/session-delivery.js.map +1 -1
- package/dist/session-input-wakes.d.ts +78 -0
- package/dist/session-input-wakes.js +239 -0
- package/dist/session-input-wakes.js.map +1 -0
- package/dist/session-inputs.d.ts +41 -6
- package/dist/session-inputs.js +199 -19
- package/dist/session-inputs.js.map +1 -1
- package/dist/skill-source/manifest.json +8 -4
- package/dist/skill-source/notifai/SKILL.md +30 -28
- package/dist/skill-source/notifai/references/harness-setup.md +33 -20
- package/dist/skill-source/notifai/references/native-questions.md +51 -0
- package/package.json +10 -3
|
@@ -50,9 +50,11 @@ export function happenedBefore(edge, reference) {
|
|
|
50
50
|
}
|
|
51
51
|
export function markSessionEnded(sessionId, env, now) {
|
|
52
52
|
const stateFile = sessionStatePath(sessionId, env);
|
|
53
|
-
withFileLock(`${stateFile}.lock`, () => {
|
|
53
|
+
return withFileLock(`${stateFile}.lock`, () => {
|
|
54
54
|
const current = readSessionIncarnation(sessionId, env);
|
|
55
|
-
|
|
55
|
+
const marker = { stamp: lifecycleStamp(now), ends: current?.key ?? null };
|
|
56
|
+
atomicWriteFileSync(sessionEndMarkerPath(sessionId, env), `${JSON.stringify(marker)}\n`);
|
|
57
|
+
return marker;
|
|
56
58
|
});
|
|
57
59
|
}
|
|
58
60
|
/** The end marker, or null when the session carries none. */
|
|
@@ -287,7 +289,8 @@ export function findOwningSession(id, env) {
|
|
|
287
289
|
(state.openclaw_foreground_replies ?? []).some((entry) => entry.request_id === id);
|
|
288
290
|
const acceptedMatch = state.accepted?.answers.some(({ pending }) => pending.question_id === id || pending.request_id === id) ?? false;
|
|
289
291
|
const deliveredMatch = state.delivered_answers?.some(({ pending }) => pending.question_id === id || pending.request_id === id) ?? false;
|
|
290
|
-
|
|
292
|
+
const nativeMatch = state.native_answer_operations?.some(entry => entry.question_id === id || entry.request_id === id) || state.codex_question_bindings?.some(entry => entry.question_id === id || entry.confirmed_request_id === id) || false;
|
|
293
|
+
if (pendingMatch || retiringMatch || historyMatch || acknowledgementMatch || acceptedMatch || deliveredMatch || nativeMatch) {
|
|
291
294
|
matches.push(sessionId);
|
|
292
295
|
if (matches.length > 1)
|
|
293
296
|
return { sessionId: null, ambiguous: true };
|
|
@@ -302,12 +305,29 @@ export function writeSessionState(sessionId, env, state) {
|
|
|
302
305
|
export function clearSessionState(sessionId, env) {
|
|
303
306
|
const file = sessionStatePath(sessionId, env);
|
|
304
307
|
withFileLock(`${file}.lock`, () => {
|
|
305
|
-
|
|
306
|
-
// The session override lives in a sibling file; leaving it behind meant a
|
|
307
|
-
// later session reusing the id silently inherited `ask_notifications = false`.
|
|
308
|
-
rmSync(sessionConfigPath(sessionId, env), { force: true });
|
|
308
|
+
clearSessionStateUnlocked(sessionId, env);
|
|
309
309
|
});
|
|
310
310
|
}
|
|
311
|
+
/** Caller owns the session lock. Completed keys remain non-reusable until the
|
|
312
|
+
* whole abandoned session is pruned; unfinished operations pin that boundary.
|
|
313
|
+
*/
|
|
314
|
+
export function clearSessionStateUnlocked(sessionId, env) {
|
|
315
|
+
const file = sessionStatePath(sessionId, env);
|
|
316
|
+
const current = readSessionState(sessionId, env);
|
|
317
|
+
if ((current.native_answer_operations?.length ?? 0) > 0 || (current.codex_question_bindings?.length ?? 0) > 0) {
|
|
318
|
+
writeSessionStateUnlocked(file, sessionId, {
|
|
319
|
+
...(current.native_answer_operations === undefined ? {} : { native_answer_operations: current.native_answer_operations }),
|
|
320
|
+
...(current.codex_question_bindings === undefined ? {} : { codex_question_bindings: current.codex_question_bindings }),
|
|
321
|
+
...(current.codex_question_marker_counter === undefined ? {} : { codex_question_marker_counter: current.codex_question_marker_counter }),
|
|
322
|
+
...(current.question_history === undefined ? {} : { question_history: current.question_history }),
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
else
|
|
326
|
+
rmSync(file, { force: true });
|
|
327
|
+
// The session override lives in a sibling file; leaving it behind meant a
|
|
328
|
+
// later session reusing the id silently inherited `ask_notifications = false`.
|
|
329
|
+
rmSync(sessionConfigPath(sessionId, env), { force: true });
|
|
330
|
+
}
|
|
311
331
|
export function writeSessionStateUnlocked(file, sessionId, state) {
|
|
312
332
|
atomicWriteFileSync(file, `${JSON.stringify({ ...state, session_id: sessionId }, null, 2)}\n`);
|
|
313
333
|
}
|
|
@@ -426,14 +446,28 @@ export function pruneAbandonedSessions(env, now = Date.now(), maxAgeMs = SESSION
|
|
|
426
446
|
for (const name of readdirSync(directory)) {
|
|
427
447
|
const file = path.join(directory, name);
|
|
428
448
|
try {
|
|
429
|
-
|
|
430
|
-
// A negative age means the clock moved, not that the file is old.
|
|
431
|
-
// Deleting live session state on an NTP correction would lose a
|
|
432
|
-
// question already on the user's phone.
|
|
433
|
-
if (age <= maxAgeMs)
|
|
449
|
+
if (!statSync(file).isFile())
|
|
434
450
|
continue;
|
|
435
|
-
|
|
436
|
-
|
|
451
|
+
// Every sibling of an unfinished native operation shares the same
|
|
452
|
+
// lifecycle fence. Keep the state, incarnation and end marker together.
|
|
453
|
+
const stem = name.replace(/\..*$/, '');
|
|
454
|
+
const stateFile = path.join(directory, `${stem}.json`);
|
|
455
|
+
const prune = () => {
|
|
456
|
+
if (existsSync(stateFile)) {
|
|
457
|
+
const state = JSON.parse(readFileSync(stateFile, 'utf8'));
|
|
458
|
+
if (state.native_answer_operations?.some(op => op.acknowledgement === undefined))
|
|
459
|
+
return;
|
|
460
|
+
}
|
|
461
|
+
const age = now - statSync(file).mtimeMs;
|
|
462
|
+
// A negative age means the clock moved, not that the file is old.
|
|
463
|
+
// Deleting live session state on an NTP correction would lose a
|
|
464
|
+
// question already on the user's phone.
|
|
465
|
+
if (age <= maxAgeMs)
|
|
466
|
+
return;
|
|
467
|
+
rmSync(file, { force: true });
|
|
468
|
+
removed += 1;
|
|
469
|
+
};
|
|
470
|
+
withFileLock(`${stateFile}.lock`, prune);
|
|
437
471
|
}
|
|
438
472
|
catch {
|
|
439
473
|
// A file that vanished under us, or one we may not read. Neither is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-session-state.js","sourceRoot":"","sources":["../src/hook-session-state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hook-session-state.js","sourceRoot":"","sources":["../src/hook-session-state.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,MAAM,EACN,QAAQ,EACR,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAA;AAChB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG7C,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,GAAsB;IACxE,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,GAAG,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;AACrF,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,oBAAoB,CAAC,SAAiB,EAAE,GAAsB;IACrE,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,GAAG,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;AACtF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAAiB,EAAE,GAAsB;IACvE,OAAO,UAAU,CAAC,oBAAoB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;AACzD,CAAC;AAeD,MAAM,UAAU,cAAc,CAAC,OAAe,IAAI,CAAC,GAAG,EAAE;IACtD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAA;AAC3D,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC5D,MAAM,MAAM,GAAG,KAAgC,CAAA;IAC/C,OAAO,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ;QACvC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ;QAClC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;QAChD,CAAC,CAAC,IAAI,CAAA;AACV,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAA2B,EAAE,SAAyB;IACnF,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9B,OAAO,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;AACxE,CAAC;AASD,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,GAAsB,EAAE,GAAW;IACrF,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAClD,OAAO,YAAY,CAAC,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE;QAC5C,MAAM,OAAO,GAAG,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QACtD,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;QACzE,mBAAmB,CACjB,oBAAoB,CAAC,SAAS,EAAE,GAAG,CAAC,EACpC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAC9B,CAAA;QACD,OAAO,MAAM,CAAA;IACf,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,oBAAoB,CAAC,SAAiB,EAAE,GAAsB;IAC5E,IAAI,GAAW,CAAA;IACf,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,oBAAoB,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAA;QACzD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClD,OAAO;gBACL,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAClC,IAAI,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;aACjE,CAAA;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,0CAA0C;IAC5C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AACpC,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,eAAe,CAAC,MAA+B,EAAE,WAA+B;IAC9F,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,GAAG,CAAA;AAC3D,CAAC;AAsBD,SAAS,sBAAsB,CAAC,SAAiB,EAAE,GAAsB;IACvE,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,GAAG,iBAAiB,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAA;AACjG,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,SAAiB,EACjB,GAAsB;IAEtB,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;QAChG,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAC9D,MAAM,MAAM,GAAG,MAAiC,CAAA;QAChD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QACzC,IACE,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ;YACjC,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,QAAQ;YACzC,CAAC,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACzD,KAAK,KAAK,IAAI,EACd,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAwC,CAAA;QAChF,OAAO;YACL,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC;YAClB,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;YAClC,KAAK;YACL,GAAG,CAAC,OAAO,MAAM,CAAC,qBAAqB,CAAC,KAAK,QAAQ;gBACnD,CAAC,CAAC,EAAE,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC,EAAE;gBACxD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,KAAK,SAAS;gBACzB,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ;gBAClC,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ;gBAClC,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE;gBACvE,CAAC,CAAC,EAAE,CAAC;SACR,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAA;AACvD,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CACrC,SAAiB,EACjB,GAAsB,EACtB,OAUC;IAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAClD,OAAO,YAAY,CAAC,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE;QAC5C,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QACnD,MAAM,OAAO,GAAG,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QACtD,MAAM,gBAAgB,GACpB,OAAO,CAAC,cAAc,KAAK,SAAS;YACpC,OAAO,EAAE,eAAe,KAAK,SAAS;YACtC,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,KAAK,OAAO,CAAC,cAAc,CAAC,GAAG;gBACzD,OAAO,CAAC,eAAe,CAAC,KAAK,KAAK,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QACnE,MAAM,2BAA2B,GAC/B,OAAO,CAAC,kBAAkB,KAAK,SAAS;YACxC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,kBAAkB,CAAA;QAC7D,MAAM,YAAY,GAChB,OAAO,KAAK,IAAI,IAAI,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,cAAc,CAAC,MAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QACtG,IAAI,IAAwB,CAAA;QAC5B,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,2BAA2B,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3F,IAAI;gBACF,OAAO,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;oBAC3E,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,cAAc,EAAE;oBACzD,CAAC,CAAC,OAAO,CAAA;QACf,CAAC;aAAM,CAAC;YACN,IAAI,GAAG;gBACL,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAC1C,WAAW,EAAE,gBAAgB,EAAE;gBAC/B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS;oBAC1C,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,mBAAmB,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC;gBACxD,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;aAC7F,CAAA;QACH,CAAC;QACD,IACE,OAAO,CAAC,eAAe,KAAK,KAAK;YACjC,MAAM,KAAK,IAAI;YACf,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC;YAC9B,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAC3C,CAAC;YACD,MAAM,CAAC,oBAAoB,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/D,CAAC;QACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,mBAAmB,CAAC,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1F,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAAiB,EACjB,GAAsB,EACtB,QAAgB;IAEhB,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAClD,OAAO,YAAY,CAAC,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE;QAC5C,MAAM,OAAO,GAAG,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QACtD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAA;QACrE,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,CAAA;QAC5D,mBAAmB,CAAC,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxF,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,SAAiB,EAAE,GAAsB;IACpE,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,GAAG,iBAAiB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;AACzF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAAiB,EAAE,GAAsB;IACvE,OAAO,UAAU,CAAC,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;AACxD,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,qBAAqB,CAAC,SAAiB,EAAE,GAAsB,EAAE,GAAW;IAC1F,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QAChD,IAAI,UAAU,CAAC,IAAI,CAAC;YAAE,OAAM;QAC5B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAClD,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,CAAA;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,4EAA4E;IAC9E,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAiB,EACjB,GAAsB,EACtB,GAAW,EACX,QAA2B,EAAE;IAE7B,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;IACxB,KAAK,MAAM,IAAI,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QAC3G,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,uDAAuD;QACzD,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,GAAsB;IACxE,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;QAC9D,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,EAAE,CAAA;QAC5D,MAAM,KAAK,GAAG,EAAE,GAAI,MAAkD,EAAE,CAAA;QACxE,OAAO,KAAK,CAAC,UAAU,CAAA;QACvB,OAAO,KAAK,CAAA;IACd,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;QAC1E,uDAAuD;QACvD,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,EAAU,EACV,GAAsB;IAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAA;IACtD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;IACxE,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAQ;QACrC,IAAI,SAAS,GAAqD,IAAI,CAAA;QACtE,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;YACpF,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClD,SAAS,GAAG,MAAiD,CAAA;YAC/D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,oDAAoD;QACtD,CAAC;QACD,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ;YAAE,SAAQ;QAC5E,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAA;QACtC,MAAM,KAAK,GAAG,SAAS,CAAA;QACvB,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAC1C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,EAAE,IAAI,KAAK,CAAC,UAAU,KAAK,EAAE,CAC/D,CAAA;QACD,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAC/C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,EAAE,IAAI,KAAK,CAAC,UAAU,KAAK,EAAE,CAC/D,CAAA;QACD,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,IAAI,CACtD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,EAAE,IAAI,KAAK,CAAC,UAAU,KAAK,EAAE,CAC/D,CAAA;QACD,MAAM,oBAAoB,GACxB,CAAC,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,CAAC;YAC1E,CAAC,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,CAAC;YAClF,CAAC,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,CAAC,CAAA;QACpF,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAChD,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,KAAK,EAAE,IAAI,OAAO,CAAC,UAAU,KAAK,EAAE,CACzE,IAAI,KAAK,CAAA;QACV,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAClD,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,KAAK,EAAE,IAAI,OAAO,CAAC,UAAU,KAAK,EAAE,CACzE,IAAI,KAAK,CAAA;QACV,MAAM,WAAW,GAAG,KAAK,CAAC,wBAAwB,EAAE,IAAI,CACtD,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,EAAE,IAAI,KAAK,CAAC,UAAU,KAAK,EAAE,CAC7D,IAAI,KAAK,CAAC,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,EAAE,IAAI,KAAK,CAAC,oBAAoB,KAAK,EAAE,CAAC,IAAI,KAAK,CAAA;QACzH,IAAI,YAAY,IAAI,aAAa,IAAI,YAAY,IAAI,oBAAoB,IAAI,aAAa,IAAI,cAAc,IAAI,WAAW,EAAE,CAAC;YAC5H,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACvB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;QACrE,CAAC;IACH,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,SAAiB,EACjB,GAAsB,EACtB,KAAmB;IAEnB,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAC7C,YAAY,CAAC,GAAG,IAAI,OAAO,EAAE,GAAG,EAAE,CAAC,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAA;AACvF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,GAAsB;IACzE,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAC7C,YAAY,CAAC,GAAG,IAAI,OAAO,EAAE,GAAG,EAAE;QAChC,yBAAyB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,SAAiB,EAAE,GAAsB;IACjF,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAC7C,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAChD,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9G,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE;YACzC,GAAG,CAAC,OAAO,CAAC,wBAAwB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,wBAAwB,EAAE,OAAO,CAAC,wBAAwB,EAAE,CAAC;YACzH,GAAG,CAAC,OAAO,CAAC,uBAAuB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,uBAAuB,EAAE,OAAO,CAAC,uBAAuB,EAAE,CAAC;YACtH,GAAG,CAAC,OAAO,CAAC,6BAA6B,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,6BAA6B,EAAE,OAAO,CAAC,6BAA6B,EAAE,CAAC;YACxI,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;SAClG,CAAC,CAAA;IACJ,CAAC;;QAAM,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACpC,0EAA0E;IAC1E,+EAA+E;IAC/E,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,SAAiB,EAAE,KAAmB;IAC5F,mBAAmB,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;AAChG,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,GAAsB,EACtB,MAA+C;IAE/C,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAC7C,OAAO,YAAY,CAAC,GAAG,IAAI,OAAO,EAAE,GAAG,EAAE;QACvC,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QAChD,qEAAqE;QACrE,0EAA0E;QAC1E,IAAI,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC;YAAE,OAAO,OAAO,CAAA;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAC5B,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;QAChD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,GAAsB,EACtB,OAAqB,EACrB,GAAY,EACZ,8BAAuC,EACvC,QAAwB,cAAc,EAAE,EACxC,kBAA2B;IAE3B,4EAA4E;IAC5E,8EAA8E;IAC9E,kEAAkE;IAClE,uBAAuB,CAAC,SAAS,EAAE,GAAG,EAAE;QACtC,KAAK;QACL,GAAG,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC;KACpE,CAAC,CAAA;IACF,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;QAC7C,MAAM,IAAI,GAAiB;YACzB,GAAG,OAAO;YACV,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;YAC7C,GAAG,CAAC,GAAG,KAAK,SAAS;gBACnB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,IAAI,GAAG,EAAE,CAAC;SACnF,CAAA;QACD,2EAA2E;QAC3E,wEAAwE;QACxE,sEAAsE;QACtE,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,iCAAiC,CAAA;YAC7C,IAAI,8BAA8B,KAAK,SAAS,EAAE,CAAC;gBACjD,IAAI,CAAC,iCAAiC,GAAG,8BAA8B,CAAA;YACzE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,yBAAyB,CACvC,SAAiB,EACjB,GAAsB,EACtB,GAAW;IAEX,MAAM,YAAY,GAAG,MAAM,CAAA;IAC3B,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;QAC7C,IAAI,OAAO,CAAC,8BAA8B,KAAK,SAAS;YAAE,OAAO,OAAO,CAAA;QACxE,IACE,OAAO,CAAC,4BAA4B,KAAK,SAAS;YAClD,GAAG,GAAG,OAAO,CAAC,4BAA4B,GAAG,YAAY,EACzD,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,OAAO,GAAG,IAAI,CAAA;QACd,OAAO,EAAE,GAAG,OAAO,EAAE,4BAA4B,EAAE,GAAG,EAAE,CAAA;IAC1D,CAAC,CAAC,CAAA;IACF,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,2BAA2B,CACzC,SAAiB,EACjB,GAAsB,EACtB,GAAW;IAEX,IAAI,KAAK,GAAG,KAAK,CAAA;IACjB,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;QAC7C,IAAI,OAAO,CAAC,8BAA8B,KAAK,SAAS,EAAE,CAAC;YACzD,KAAK,GAAG,IAAI,CAAA;YACZ,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,IAAI,OAAO,CAAC,4BAA4B,KAAK,SAAS;YAAE,OAAO,OAAO,CAAA;QACtE,KAAK,GAAG,IAAI,CAAA;QACZ,OAAO,EAAE,GAAG,OAAO,EAAE,8BAA8B,EAAE,GAAG,EAAE,CAAA;IAC5D,CAAC,CAAC,CAAA;IACF,OAAO,KAAK,CAAA;AACd,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,yBAAyB,CAAC,SAAiB,EAAE,GAAsB;IACjF,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;QAC7C,IACE,OAAO,CAAC,4BAA4B,KAAK,SAAS;YAClD,OAAO,CAAC,8BAA8B,KAAK,SAAS,EACpD,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,CAAA;QAC3B,OAAO,IAAI,CAAC,4BAA4B,CAAA;QACxC,OAAO,IAAI,CAAC,8BAA8B,CAAA;QAC1C,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAEnD,MAAM,yBAAyB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAElD,MAAM,UAAU,sBAAsB,CACpC,GAAsB,EACtB,MAAc,IAAI,CAAC,GAAG,EAAE,EACxB,WAAmB,sBAAsB;IAEzC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAA;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,CAAA;IACpD,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,yBAAyB;YAAE,OAAO,CAAC,CAAA;QAC5F,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACnD,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACzC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,CAAC,CAAA;QAEpC,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;YACvC,IAAI,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;oBAAE,SAAQ;gBACtC,kEAAkE;gBAClE,wEAAwE;gBACxE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;gBACtC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,OAAO,CAAC,CAAA;gBACtD,MAAM,KAAK,GAAG,GAAS,EAAE;oBACvB,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAiB,CAAA;wBACzE,IAAI,KAAK,CAAC,wBAAwB,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,KAAK,SAAS,CAAC;4BAAE,OAAM;oBAC1F,CAAC;oBACD,MAAM,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAA;oBACxC,kEAAkE;oBAClE,gEAAgE;oBAChE,wCAAwC;oBACxC,IAAI,GAAG,IAAI,QAAQ;wBAAE,OAAM;oBAC3B,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;oBAC7B,OAAO,IAAI,CAAC,CAAA;gBACd,CAAC,CAAA;gBACD,YAAY,CAAC,GAAG,SAAS,OAAO,EAAE,KAAK,CAAC,CAAA;YAC1C,CAAC;YAAC,MAAM,CAAC;gBACP,oEAAoE;gBACpE,iEAAiE;YACnE,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,sDAAsD;QACtD,OAAO,CAAC,CAAA;IACV,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,WAAW,CAAC,KAAmB;IAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;AAC1D,CAAC"}
|
package/dist/hook-types.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import type { InputWakeAttempt } from './session-input-wakes.js';
|
|
2
|
+
import type { NativeAnswerOperation } from './native-answer-operation.js';
|
|
3
|
+
import type { CodexQuestionRegistration } from './codex-question-bindings.js';
|
|
4
|
+
import type { ServiceIdentity } from './credentials.js';
|
|
1
5
|
/** Value-free contracts shared across hook state and lifecycle modules. */
|
|
2
6
|
import type { LifecycleEndState, MediaItemT, NotificationDraftT, QuestionT, ReplyView, SourceContextT } from '@raidiant/notifai-protocol';
|
|
3
7
|
import { type ApiClient } from './client.js';
|
|
@@ -51,18 +55,25 @@ export interface HookEnvelope {
|
|
|
51
55
|
prompt?: string;
|
|
52
56
|
/** Codex's exact turn id on prompt, tool, Stop and Interrupt callbacks. */
|
|
53
57
|
turn_id?: string;
|
|
54
|
-
/** Native Codex transcript; only typed lifecycle records are consumed. */
|
|
58
|
+
/** Native Codex transcript; only typed lifecycle/question records are consumed. */
|
|
55
59
|
transcript_path?: string;
|
|
56
60
|
/** Codex child hooks carry the root session_id but name the child here. */
|
|
57
61
|
agent_id?: string;
|
|
58
62
|
agent_type?: string;
|
|
59
63
|
}
|
|
60
64
|
export interface SessionState {
|
|
65
|
+
/** Exact native associations and sticky ordinary-presentation decisions. */
|
|
66
|
+
codex_question_bindings?: CodexQuestionRegistration[];
|
|
67
|
+
/** Never reuse a marker while any registration or operation is retained. */
|
|
68
|
+
codex_question_marker_counter?: number;
|
|
69
|
+
/** Frozen native-report commands and their independent report/ack receipts. */
|
|
70
|
+
native_answer_operations?: NativeAnswerOperation[];
|
|
61
71
|
/** Content-free native lifecycle proof, scoped to the current owner. */
|
|
62
72
|
codex_native_turn?: {
|
|
63
73
|
key: string;
|
|
64
74
|
turn_id: string;
|
|
65
75
|
transcript_path: string;
|
|
76
|
+
observed_at?: number;
|
|
66
77
|
};
|
|
67
78
|
/** Exact incarnation observed executing the currently trusted Codex tool hook. */
|
|
68
79
|
codex_tool_hook?: {
|
|
@@ -141,6 +152,12 @@ export interface SessionState {
|
|
|
141
152
|
queued: boolean;
|
|
142
153
|
writer: ProcessIdentity;
|
|
143
154
|
};
|
|
155
|
+
/** Exact Codex wake ownership, including detached reconciliation records. */
|
|
156
|
+
input_wake_attempts?: InputWakeAttempt[];
|
|
157
|
+
input_wake_recovery?: {
|
|
158
|
+
incarnation: string;
|
|
159
|
+
inputIds: string[];
|
|
160
|
+
};
|
|
144
161
|
/**
|
|
145
162
|
* Native-queue writes that committed, retained per request until the agent
|
|
146
163
|
* acknowledges them. They never occupy the in-flight delivery slot or block
|
|
@@ -253,6 +270,7 @@ export interface OrphanRetirement extends RetiringQuestion {
|
|
|
253
270
|
}
|
|
254
271
|
/** A fully prepared question submission whose ownership deadline is fixed. */
|
|
255
272
|
export interface PendingSubmissionIntent {
|
|
273
|
+
service_identity?: ServiceIdentity;
|
|
256
274
|
request_id: string;
|
|
257
275
|
idempotency_key: string;
|
|
258
276
|
collapse_key: string;
|
|
@@ -267,6 +285,8 @@ export interface PendingSubmissionIntent {
|
|
|
267
285
|
admitted_at?: number;
|
|
268
286
|
}
|
|
269
287
|
export interface PendingQuestion {
|
|
288
|
+
/** Credential metadata frozen at registration; never contains the secret. */
|
|
289
|
+
service_identity?: ServiceIdentity;
|
|
270
290
|
/** Stable local identity across racing state writers and submit recovery. */
|
|
271
291
|
question_id?: string;
|
|
272
292
|
/** One-line summary: the single question's text, or the set's first. */
|
|
@@ -401,6 +421,8 @@ export interface EscalationWaiterOptions {
|
|
|
401
421
|
}
|
|
402
422
|
export interface HookContext {
|
|
403
423
|
client: ApiClient;
|
|
424
|
+
/** Metadata for this already-authenticated client; never the credential secret. */
|
|
425
|
+
service_identity?: ServiceIdentity;
|
|
404
426
|
config: CliConfig;
|
|
405
427
|
env: NodeJS.ProcessEnv;
|
|
406
428
|
now: () => number;
|
package/dist/hook-types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-types.js","sourceRoot":"","sources":["../src/hook-types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hook-types.js","sourceRoot":"","sources":["../src/hook-types.ts"],"names":[],"mappings":"AAaA,OAAO,EAAkB,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAkB,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAmD,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { type PutAgentAcknowledgementResponse, type RecordHarnessAnswerResponse, type ReplyAnswerT } from '@raidiant/notifai-protocol';
|
|
2
|
+
import type { ApiClient } from './client.js';
|
|
3
|
+
import type { ServiceIdentity } from './credentials.js';
|
|
4
|
+
import type { PendingQuestion, SessionState } from './hook-types.js';
|
|
5
|
+
/** A command obligation, never a second answer-delivery queue. */
|
|
6
|
+
export interface NativeAnswerOperation {
|
|
7
|
+
question_id: string;
|
|
8
|
+
operation_id: string;
|
|
9
|
+
/** Absent until ordinary submission confirms the original registration. */
|
|
10
|
+
request_id?: string;
|
|
11
|
+
submission_id: string;
|
|
12
|
+
service_identity: ServiceIdentity;
|
|
13
|
+
answers: ReplyAnswerT[];
|
|
14
|
+
acknowledgement_text: string;
|
|
15
|
+
report?: {
|
|
16
|
+
reply_seq: number;
|
|
17
|
+
reply_id: string;
|
|
18
|
+
};
|
|
19
|
+
acknowledgement?: PutAgentAcknowledgementResponse['agent_acknowledgement'];
|
|
20
|
+
}
|
|
21
|
+
export interface NativeOperationOwner {
|
|
22
|
+
sessionId: string;
|
|
23
|
+
/** The current executing incarnation, renewed only by a new invocation. */
|
|
24
|
+
key: string;
|
|
25
|
+
service: ServiceIdentity;
|
|
26
|
+
}
|
|
27
|
+
export interface NativeOperationInput {
|
|
28
|
+
questionId: string;
|
|
29
|
+
operationId: string;
|
|
30
|
+
answers?: ReplyAnswerT[];
|
|
31
|
+
text?: string;
|
|
32
|
+
}
|
|
33
|
+
/** Called inside the state transaction, only when creating a new operation.
|
|
34
|
+
* The Codex binding adapter must prove the exact emitted native questions,
|
|
35
|
+
* registered shape, current incarnation and original service/Machine here.
|
|
36
|
+
* An explicit q_ selection alone is not native-form evidence.
|
|
37
|
+
*/
|
|
38
|
+
export type AdmitNativeAnswer = (state: SessionState, answers: ReplyAnswerT[]) => {
|
|
39
|
+
requestId?: string;
|
|
40
|
+
service: ServiceIdentity;
|
|
41
|
+
};
|
|
42
|
+
/** Persist the immutable body/key before any HTTP. Identity-only calls never create. */
|
|
43
|
+
export declare function prepareNativeAnswerOperation(owner: NativeOperationOwner, env: NodeJS.ProcessEnv, input: NativeOperationInput, admit: AdmitNativeAnswer, observe?: (state: SessionState) => SessionState): NativeAnswerOperation;
|
|
44
|
+
/** Fill the target once, from confirmed ordinary submission evidence. The
|
|
45
|
+
* caller recovers the original submission outside this transaction, after
|
|
46
|
+
* preparation has frozen the answer. A reserved/frozen request ID is not a
|
|
47
|
+
* receipt. The adapter must reject terminated or differently owned questions.
|
|
48
|
+
*/
|
|
49
|
+
export declare function resolveNativeAnswerOperation(owner: NativeOperationOwner, env: NodeJS.ProcessEnv, operation: NativeAnswerOperation, confirmed: (state: SessionState) => {
|
|
50
|
+
requestId: string;
|
|
51
|
+
service: ServiceIdentity;
|
|
52
|
+
} | null): NativeAnswerOperation;
|
|
53
|
+
/** Called only while committing a successful submit receipt or an accepted
|
|
54
|
+
* app reply, never for an attempted submission, retirement or history row.
|
|
55
|
+
* Resolve in that same transaction so cleanup cannot erase the only proof.
|
|
56
|
+
* A late receipt enriches existing obligations without resurrecting a question.
|
|
57
|
+
*/
|
|
58
|
+
export declare function confirmNativeAnswerTarget(state: SessionState, question: PendingQuestion): SessionState;
|
|
59
|
+
/** A response may arrive after SessionEnd. Unlike a normal lifecycle writer,
|
|
60
|
+
* this can only enrich an existing immutable obligation, never restore state.
|
|
61
|
+
*/
|
|
62
|
+
export declare function recordConfirmedNativeAnswerTarget(sessionId: string, env: NodeJS.ProcessEnv, question: PendingQuestion): void;
|
|
63
|
+
/** Replay the immutable report to refresh competing submissions, then finish
|
|
64
|
+
* only this answer's acknowledgement. No ordinary debt, watcher or input state
|
|
65
|
+
* is cleared. A lost response simply leaves the same phase safe to retry.
|
|
66
|
+
*/
|
|
67
|
+
export declare function executeNativeAnswerOperation(owner: NativeOperationOwner, env: NodeJS.ProcessEnv, operation: NativeAnswerOperation, client: Pick<ApiClient, 'recordHarnessAnswer' | 'putAgentAcknowledgement'>): Promise<{
|
|
68
|
+
report: RecordHarnessAnswerResponse;
|
|
69
|
+
acknowledgement: NativeAnswerOperation['acknowledgement'];
|
|
70
|
+
}>;
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/** Durable execution of an explicitly identified, agent-reported native answer. */
|
|
2
|
+
import { randomBytes } from 'node:crypto';
|
|
3
|
+
import { isDeepStrictEqual } from 'node:util';
|
|
4
|
+
import { AGENT_ACKNOWLEDGEMENT_MAX_LENGTH, isRecordHarnessAnswerRequest, } from '@raidiant/notifai-protocol';
|
|
5
|
+
import { withFileLock } from './file-lock.js';
|
|
6
|
+
import { readSessionIncarnation, readSessionState, sessionHasEnded, sessionStatePath, writeSessionStateUnlocked, } from './hook-session-state.js';
|
|
7
|
+
function assertOwner(owner, env) {
|
|
8
|
+
if (sessionHasEnded(owner.sessionId, env) || readSessionIncarnation(owner.sessionId, env)?.key !== owner.key) {
|
|
9
|
+
throw new Error('The Agent Session incarnation changed; resume this operation from its current owner.');
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function normalizedAnswers(answers, sessionId) {
|
|
13
|
+
if (!isRecordHarnessAnswerRequest({ session_id: sessionId, submission_id: 'validation', answers })) {
|
|
14
|
+
throw new Error('Native answers must use the registered question and choice IDs with non-empty answers.');
|
|
15
|
+
}
|
|
16
|
+
const seen = new Set();
|
|
17
|
+
return answers.map(answer => {
|
|
18
|
+
const text = answer.text?.trim();
|
|
19
|
+
const choices = answer.choice_ids === undefined ? [] : [...answer.choice_ids].sort();
|
|
20
|
+
if (seen.has(answer.question_id) || new Set(choices).size !== choices.length ||
|
|
21
|
+
(text !== undefined && text.length === 0) || (choices.length === 0 && text === undefined)) {
|
|
22
|
+
throw new Error('Native answers must be non-empty and cannot repeat question or choice IDs.');
|
|
23
|
+
}
|
|
24
|
+
seen.add(answer.question_id);
|
|
25
|
+
return {
|
|
26
|
+
question_id: answer.question_id,
|
|
27
|
+
...(choices.length === 0 ? {} : { choice_ids: choices }),
|
|
28
|
+
...(text === undefined ? {} : { text }),
|
|
29
|
+
};
|
|
30
|
+
}).sort((a, b) => a.question_id.localeCompare(b.question_id));
|
|
31
|
+
}
|
|
32
|
+
/** Persist the immutable body/key before any HTTP. Identity-only calls never create. */
|
|
33
|
+
export function prepareNativeAnswerOperation(owner, env, input, admit, observe) {
|
|
34
|
+
if (!/^q_[A-Za-z0-9_-]+$/.test(input.questionId) || !/^[A-Za-z0-9_-]{1,64}$/.test(input.operationId)) {
|
|
35
|
+
throw new Error('Native reporting requires an exact q_ identity and a 1–64 character operation ID.');
|
|
36
|
+
}
|
|
37
|
+
const answers = input.answers === undefined ? undefined : normalizedAnswers(input.answers, owner.sessionId);
|
|
38
|
+
const text = input.text?.trim();
|
|
39
|
+
if (text !== undefined && (text.length === 0 || text.length > AGENT_ACKNOWLEDGEMENT_MAX_LENGTH)) {
|
|
40
|
+
throw new Error(`The authored acknowledgement must contain 1–${AGENT_ACKNOWLEDGEMENT_MAX_LENGTH} characters.`);
|
|
41
|
+
}
|
|
42
|
+
const file = sessionStatePath(owner.sessionId, env);
|
|
43
|
+
return withFileLock(`${file}.lock`, () => {
|
|
44
|
+
assertOwner(owner, env);
|
|
45
|
+
let state = readSessionState(owner.sessionId, env);
|
|
46
|
+
const operations = state.native_answer_operations ?? [];
|
|
47
|
+
const existing = operations.find(op => op.question_id === input.questionId && op.operation_id === input.operationId);
|
|
48
|
+
if (existing !== undefined) {
|
|
49
|
+
if (!isDeepStrictEqual(existing.service_identity, owner.service) ||
|
|
50
|
+
(answers !== undefined && !isDeepStrictEqual(answers, existing.answers)) ||
|
|
51
|
+
(text !== undefined && text !== existing.acknowledgement_text)) {
|
|
52
|
+
throw new Error('This operation already names a different owner or body; do not change an operation on retry.');
|
|
53
|
+
}
|
|
54
|
+
return structuredClone(existing);
|
|
55
|
+
}
|
|
56
|
+
if (answers === undefined || text === undefined) {
|
|
57
|
+
throw new Error('A new native operation requires explicit answers and an authored acknowledgement; identity-only calls resume existing operations.');
|
|
58
|
+
}
|
|
59
|
+
// Observation is durable even if admission fails. In particular, a
|
|
60
|
+
// duplicate native marker must remain ambiguous on a later retry.
|
|
61
|
+
if (observe !== undefined) {
|
|
62
|
+
const observed = observe(state);
|
|
63
|
+
if (observed !== state)
|
|
64
|
+
writeSessionStateUnlocked(file, owner.sessionId, observed);
|
|
65
|
+
state = observed;
|
|
66
|
+
}
|
|
67
|
+
const registration = admit(state, answers);
|
|
68
|
+
if (!isDeepStrictEqual(registration.service, owner.service) ||
|
|
69
|
+
(registration.requestId !== undefined && !/^req_[A-Za-z0-9_-]+$/.test(registration.requestId))) {
|
|
70
|
+
throw new Error('The native question does not belong to this service and Approved Machine.');
|
|
71
|
+
}
|
|
72
|
+
const operation = {
|
|
73
|
+
question_id: input.questionId, operation_id: input.operationId,
|
|
74
|
+
...(registration.requestId === undefined ? {} : { request_id: registration.requestId }),
|
|
75
|
+
submission_id: randomBytes(24).toString('base64url'),
|
|
76
|
+
service_identity: { ...owner.service }, answers, acknowledgement_text: text,
|
|
77
|
+
};
|
|
78
|
+
writeSessionStateUnlocked(file, owner.sessionId, { ...state, native_answer_operations: [...operations, operation] });
|
|
79
|
+
return structuredClone(operation);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
function matchingOperation(state, expected) {
|
|
83
|
+
const current = state.native_answer_operations?.find(op => op.question_id === expected.question_id && op.operation_id === expected.operation_id);
|
|
84
|
+
if (current === undefined || current.submission_id !== expected.submission_id ||
|
|
85
|
+
(expected.request_id !== undefined && current.request_id !== expected.request_id) || !isDeepStrictEqual(current.answers, expected.answers) ||
|
|
86
|
+
current.acknowledgement_text !== expected.acknowledgement_text ||
|
|
87
|
+
!isDeepStrictEqual(current.service_identity, expected.service_identity)) {
|
|
88
|
+
throw new Error('The durable native operation changed or disappeared; no new request was admitted.');
|
|
89
|
+
}
|
|
90
|
+
return current;
|
|
91
|
+
}
|
|
92
|
+
/** Fill the target once, from confirmed ordinary submission evidence. The
|
|
93
|
+
* caller recovers the original submission outside this transaction, after
|
|
94
|
+
* preparation has frozen the answer. A reserved/frozen request ID is not a
|
|
95
|
+
* receipt. The adapter must reject terminated or differently owned questions.
|
|
96
|
+
*/
|
|
97
|
+
export function resolveNativeAnswerOperation(owner, env, operation, confirmed) {
|
|
98
|
+
const file = sessionStatePath(owner.sessionId, env);
|
|
99
|
+
return withFileLock(`${file}.lock`, () => {
|
|
100
|
+
assertOwner(owner, env);
|
|
101
|
+
const state = readSessionState(owner.sessionId, env);
|
|
102
|
+
const current = matchingOperation(state, operation);
|
|
103
|
+
if (!isDeepStrictEqual(current.service_identity, owner.service))
|
|
104
|
+
throw new Error('The Approved Machine changed.');
|
|
105
|
+
// Another invocation may have resolved while this one recovered submission.
|
|
106
|
+
// Its confirmed target is immutable; no callback may replace it.
|
|
107
|
+
if (current.request_id !== undefined)
|
|
108
|
+
return structuredClone(current);
|
|
109
|
+
const receipt = confirmed(state);
|
|
110
|
+
if (receipt === null)
|
|
111
|
+
throw new Error('The original question submission is not confirmed; retry the same operation.');
|
|
112
|
+
if (!/^req_[A-Za-z0-9_-]+$/.test(receipt.requestId) || !isDeepStrictEqual(receipt.service, current.service_identity)) {
|
|
113
|
+
throw new Error('The confirmed question belongs to a different service or Approved Machine.');
|
|
114
|
+
}
|
|
115
|
+
const next = { ...current, request_id: receipt.requestId };
|
|
116
|
+
writeSessionStateUnlocked(file, owner.sessionId, {
|
|
117
|
+
...state, native_answer_operations: state.native_answer_operations.map(op => op === current ? next : op),
|
|
118
|
+
});
|
|
119
|
+
return structuredClone(next);
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
/** Called only while committing a successful submit receipt or an accepted
|
|
123
|
+
* app reply, never for an attempted submission, retirement or history row.
|
|
124
|
+
* Resolve in that same transaction so cleanup cannot erase the only proof.
|
|
125
|
+
* A late receipt enriches existing obligations without resurrecting a question.
|
|
126
|
+
*/
|
|
127
|
+
export function confirmNativeAnswerTarget(state, question) {
|
|
128
|
+
if (question.question_id === undefined || question.service_identity === undefined ||
|
|
129
|
+
question.request_id === undefined)
|
|
130
|
+
return state;
|
|
131
|
+
const requestId = question.request_id;
|
|
132
|
+
if (!/^req_[A-Za-z0-9_-]+$/.test(requestId))
|
|
133
|
+
return state;
|
|
134
|
+
const operationMatch = state.native_answer_operations?.some(op => op.question_id === question.question_id &&
|
|
135
|
+
op.request_id === undefined && isDeepStrictEqual(op.service_identity, question.service_identity));
|
|
136
|
+
const bindingMatch = state.codex_question_bindings?.some(binding => binding.question_id === question.question_id &&
|
|
137
|
+
binding.confirmed_request_id === undefined && isDeepStrictEqual(binding.service_identity, question.service_identity));
|
|
138
|
+
if (!operationMatch && !bindingMatch)
|
|
139
|
+
return state;
|
|
140
|
+
return { ...state, ...(operationMatch ? { native_answer_operations: state.native_answer_operations.map(op => op.question_id === question.question_id && op.request_id === undefined &&
|
|
141
|
+
isDeepStrictEqual(op.service_identity, question.service_identity)
|
|
142
|
+
? { ...op, request_id: requestId } : op) } : {}),
|
|
143
|
+
...(bindingMatch ? { codex_question_bindings: state.codex_question_bindings.map(binding => binding.question_id === question.question_id && binding.confirmed_request_id === undefined &&
|
|
144
|
+
isDeepStrictEqual(binding.service_identity, question.service_identity)
|
|
145
|
+
? { ...binding, confirmed_request_id: requestId } : binding) } : {}),
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
/** A response may arrive after SessionEnd. Unlike a normal lifecycle writer,
|
|
149
|
+
* this can only enrich an existing immutable obligation, never restore state.
|
|
150
|
+
*/
|
|
151
|
+
export function recordConfirmedNativeAnswerTarget(sessionId, env, question) {
|
|
152
|
+
const file = sessionStatePath(sessionId, env);
|
|
153
|
+
withFileLock(`${file}.lock`, () => {
|
|
154
|
+
const current = readSessionState(sessionId, env);
|
|
155
|
+
const next = confirmNativeAnswerTarget(current, question);
|
|
156
|
+
if (next !== current)
|
|
157
|
+
writeSessionStateUnlocked(file, sessionId, next);
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
/** Admit each non-blocking HTTP start under the owner fence, never await under a lock. */
|
|
161
|
+
function startPhase(owner, env, operation, start) {
|
|
162
|
+
const file = sessionStatePath(owner.sessionId, env);
|
|
163
|
+
return withFileLock(`${file}.lock`, () => {
|
|
164
|
+
assertOwner(owner, env);
|
|
165
|
+
const current = matchingOperation(readSessionState(owner.sessionId, env), operation);
|
|
166
|
+
if (!isDeepStrictEqual(current.service_identity, owner.service))
|
|
167
|
+
throw new Error('The Approved Machine changed.');
|
|
168
|
+
return start(structuredClone(current));
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
/** A late receipt may finish the identical obligation after end/resume, but
|
|
172
|
+
* cannot create a new operation, restore deleted state, or admit another phase.
|
|
173
|
+
*/
|
|
174
|
+
function mergeReceipt(owner, env, operation, update) {
|
|
175
|
+
const file = sessionStatePath(owner.sessionId, env);
|
|
176
|
+
return withFileLock(`${file}.lock`, () => {
|
|
177
|
+
const state = readSessionState(owner.sessionId, env);
|
|
178
|
+
const current = matchingOperation(state, operation);
|
|
179
|
+
const next = update(current);
|
|
180
|
+
writeSessionStateUnlocked(file, owner.sessionId, {
|
|
181
|
+
...state, native_answer_operations: state.native_answer_operations.map(op => op === current ? next : op),
|
|
182
|
+
});
|
|
183
|
+
return next;
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
/** Replay the immutable report to refresh competing submissions, then finish
|
|
187
|
+
* only this answer's acknowledgement. No ordinary debt, watcher or input state
|
|
188
|
+
* is cleared. A lost response simply leaves the same phase safe to retry.
|
|
189
|
+
*/
|
|
190
|
+
export async function executeNativeAnswerOperation(owner, env, operation, client) {
|
|
191
|
+
const submitted = await startPhase(owner, env, operation, async (current) => {
|
|
192
|
+
if (current.request_id === undefined)
|
|
193
|
+
throw new Error('The original question submission is not confirmed; retry the same operation.');
|
|
194
|
+
const report = await client.recordHarnessAnswer(current.request_id, {
|
|
195
|
+
session_id: owner.sessionId, submission_id: current.submission_id, answers: current.answers,
|
|
196
|
+
});
|
|
197
|
+
return { report, operation: current, requestId: current.request_id };
|
|
198
|
+
});
|
|
199
|
+
operation = submitted.operation;
|
|
200
|
+
const { report, requestId } = submitted;
|
|
201
|
+
if (report == null || !['recorded', 'replayed'].includes(report.status) ||
|
|
202
|
+
!Number.isSafeInteger(report.reply_seq) || report.reply_seq < 1 ||
|
|
203
|
+
!/^rpl_[A-Za-z0-9_-]+$/.test(report.answer_version?.version_id ?? '') ||
|
|
204
|
+
report.answer_version.origin !== 'harness' || report.answer_version.provenance !== 'agent-reported' ||
|
|
205
|
+
report.answer_version.status !== 'presented' || report.answer_version.source !== 'reply' ||
|
|
206
|
+
report.answer_version.base_version !== null || typeof report.complete !== 'boolean' ||
|
|
207
|
+
!Array.isArray(report.other_submissions) || ![report.answer_version, ...report.other_submissions].every(version => version != null && typeof version.version_id === 'string' &&
|
|
208
|
+
['harness', 'companion'].includes(version.origin) && Array.isArray(version.answers) &&
|
|
209
|
+
version.answers.every(answer => answer != null && typeof answer.question_id === 'string' &&
|
|
210
|
+
Array.isArray(answer.choice_ids) && answer.choice_ids.every(choice => typeof choice === 'string') &&
|
|
211
|
+
(answer.text === null || typeof answer.text === 'string')))) {
|
|
212
|
+
throw new Error('Native answer report receipt is incomplete; retry the same operation.');
|
|
213
|
+
}
|
|
214
|
+
const reported = normalizedAnswers(report.answer_version.answers.map(answer => ({
|
|
215
|
+
question_id: answer.question_id,
|
|
216
|
+
...(answer.choice_ids.length === 0 ? {} : { choice_ids: answer.choice_ids }),
|
|
217
|
+
...(answer.text === null ? {} : { text: answer.text }),
|
|
218
|
+
})), owner.sessionId);
|
|
219
|
+
if (!isDeepStrictEqual(reported, operation.answers))
|
|
220
|
+
throw new Error('Native answer report does not confirm the submitted answers.');
|
|
221
|
+
const receipt = { reply_seq: report.reply_seq, reply_id: report.answer_version.version_id };
|
|
222
|
+
let current = mergeReceipt(owner, env, operation, op => {
|
|
223
|
+
if (op.report !== undefined && !isDeepStrictEqual(op.report, receipt))
|
|
224
|
+
throw new Error('Native answer report identity changed.');
|
|
225
|
+
return { ...op, report: receipt };
|
|
226
|
+
});
|
|
227
|
+
if (current.acknowledgement === undefined) {
|
|
228
|
+
const result = await startPhase(owner, env, current, () => client.putAgentAcknowledgement(requestId, {
|
|
229
|
+
session_id: owner.sessionId, reply_seq: receipt.reply_seq, text: current.acknowledgement_text,
|
|
230
|
+
}));
|
|
231
|
+
if (result == null || !['recorded', 'replayed'].includes(result.status) ||
|
|
232
|
+
result.agent_acknowledgement == null ||
|
|
233
|
+
result.agent_acknowledgement.text !== current.acknowledgement_text ||
|
|
234
|
+
typeof result.agent_acknowledgement.created_at !== 'string' ||
|
|
235
|
+
!Number.isFinite(Date.parse(result.agent_acknowledgement.created_at))) {
|
|
236
|
+
throw new Error('Native acknowledgement receipt is incomplete or changed; retry the same operation.');
|
|
237
|
+
}
|
|
238
|
+
current = mergeReceipt(owner, env, operation, op => {
|
|
239
|
+
if (op.acknowledgement !== undefined && !isDeepStrictEqual(op.acknowledgement, result.agent_acknowledgement)) {
|
|
240
|
+
throw new Error('Native acknowledgement receipt changed.');
|
|
241
|
+
}
|
|
242
|
+
return { ...op, acknowledgement: result.agent_acknowledgement };
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
return { report, acknowledgement: current.acknowledgement };
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=native-answer-operation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-answer-operation.js","sourceRoot":"","sources":["../src/native-answer-operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Approval proof stays local. Never attach this artifact to a Notification Request. */
|
|
2
|
+
export declare function pairingQrPath(env: NodeJS.ProcessEnv): string;
|
|
3
|
+
export declare function pairingQrTextPath(env: NodeJS.ProcessEnv): string;
|
|
4
|
+
export declare function renderPairingQr(env: NodeJS.ProcessEnv, url: string): Promise<string>;
|
|
5
|
+
export declare function terminalPairingQr(url: string, ansi?: boolean): Promise<string>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { atomicWriteFileSync } from './atomic-file.js';
|
|
3
|
+
import { stateDir } from './config.js';
|
|
4
|
+
/** Approval proof stays local. Never attach this artifact to a Notification Request. */
|
|
5
|
+
export function pairingQrPath(env) {
|
|
6
|
+
return path.join(stateDir(env), 'pairing-qr.png');
|
|
7
|
+
}
|
|
8
|
+
export function pairingQrTextPath(env) {
|
|
9
|
+
return path.join(stateDir(env), 'pairing-qr.txt');
|
|
10
|
+
}
|
|
11
|
+
export async function renderPairingQr(env, url) {
|
|
12
|
+
const file = pairingQrPath(env);
|
|
13
|
+
const { default: QRCode } = await import('qrcode');
|
|
14
|
+
const bytes = await QRCode.toBuffer(url, { type: 'png', errorCorrectionLevel: 'M', width: 512, margin: 4 });
|
|
15
|
+
atomicWriteFileSync(file, bytes, { mode: 0o600, preserveMode: false, requireCurrentUserOwner: true });
|
|
16
|
+
const text = await terminalPairingQr(url, false);
|
|
17
|
+
atomicWriteFileSync(pairingQrTextPath(env), text, { mode: 0o600, preserveMode: false, requireCurrentUserOwner: true });
|
|
18
|
+
return file;
|
|
19
|
+
}
|
|
20
|
+
export async function terminalPairingQr(url, ansi = true) {
|
|
21
|
+
const { default: QRCode } = await import('qrcode');
|
|
22
|
+
return QRCode.toString(url, { type: ansi ? 'terminal' : 'utf8', small: true, errorCorrectionLevel: 'M', margin: 4 });
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=pairing-qr.js.map
|