@raidiant/notifai 9.0.0 → 9.1.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 +7 -0
- package/dist/command-session.d.ts +14 -0
- package/dist/command-session.js +30 -0
- package/dist/command-session.js.map +1 -0
- package/dist/commands-doctor.js +17 -15
- package/dist/commands-doctor.js.map +1 -1
- package/dist/commands-guidance.js +3 -29
- package/dist/commands-guidance.js.map +1 -1
- package/dist/commands-harness-context.js +21 -1
- package/dist/commands-harness-context.js.map +1 -1
- package/dist/commands-hooks.d.ts +11 -1
- package/dist/commands-hooks.js +97 -141
- package/dist/commands-hooks.js.map +1 -1
- package/dist/commands-init.d.ts +2 -0
- package/dist/commands-init.js +41 -21
- package/dist/commands-init.js.map +1 -1
- package/dist/commands-send.d.ts +1 -0
- package/dist/commands-send.js +62 -14
- package/dist/commands-send.js.map +1 -1
- package/dist/commands-setup-proof.d.ts +4 -3
- package/dist/commands-setup-proof.js +29 -14
- package/dist/commands-setup-proof.js.map +1 -1
- package/dist/commands.d.ts +1 -1
- package/dist/commands.js +1 -1
- package/dist/commands.js.map +1 -1
- package/dist/guidance-render.d.ts +20 -0
- package/dist/guidance-render.js +42 -0
- package/dist/guidance-render.js.map +1 -0
- package/dist/hooks.d.ts +17 -2
- package/dist/hooks.js +59 -7
- package/dist/hooks.js.map +1 -1
- package/dist/opencode-plugin.js +16 -5
- package/dist/opencode-plugin.js.map +1 -1
- package/dist/program.js +21 -12
- package/dist/program.js.map +1 -1
- package/dist/readiness.d.ts +6 -0
- package/dist/readiness.js +37 -0
- package/dist/readiness.js.map +1 -1
- package/dist/send-attempts.d.ts +26 -0
- package/dist/send-attempts.js +139 -0
- package/dist/send-attempts.js.map +1 -0
- package/dist/session-activation.d.ts +4 -8
- package/dist/session-activation.js +25 -14
- package/dist/session-activation.js.map +1 -1
- package/package.json +1 -1
- package/src/command-session.ts +38 -0
- package/src/commands-doctor.ts +18 -28
- package/src/commands-guidance.ts +3 -38
- package/src/commands-harness-context.ts +24 -1
- package/src/commands-hooks.ts +217 -170
- package/src/commands-init.ts +46 -24
- package/src/commands-send.ts +70 -14
- package/src/commands-setup-proof.test.ts +72 -0
- package/src/commands-setup-proof.ts +33 -14
- package/src/commands.test.ts +209 -67
- package/src/commands.ts +1 -0
- package/src/guidance-render.ts +56 -0
- package/src/guidance.test.ts +28 -0
- package/src/hooks.test.ts +38 -7
- package/src/hooks.ts +69 -5
- package/src/install-hooks.test.ts +3 -3
- package/src/opencode-plugin.ts +16 -5
- package/src/program.ts +22 -12
- package/src/readiness.ts +44 -0
- package/src/send-attempts.test.ts +143 -0
- package/src/send-attempts.ts +188 -0
- package/src/session-activation.ts +34 -17
- package/src/skill.test.ts +12 -14
package/dist/program.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
2
|
import { Command } from 'commander';
|
|
3
|
-
import { acknowledgeCommand, askCommand, accessStatusCommand, authStatusCommand, capabilitiesCommand, closeCommand, configExplainCommand, configSetCommand, configShowCommand, configUnsetCommand, devicesCommand, doctorCommand, guidanceSetCommand, guidanceShowCommand, guidanceUnsetCommand, hookDefersDiagnosticsUntilAfterCleanup, hookRunCommand, hooksInstallCommand, hooksUninstallCommand, initCommand, loginCommand, logoutCommand, logsCommand, repliesCommand, sendCommand, statusCommand, } from './commands.js';
|
|
3
|
+
import { acknowledgeCommand, askCommand, accessStatusCommand, authStatusCommand, capabilitiesCommand, closeCommand, configExplainCommand, configSetCommand, configShowCommand, configUnsetCommand, devicesCommand, doctorCommand, guidanceSetCommand, guidanceShowCommand, guidanceUnsetCommand, hookDefersDiagnosticsUntilAfterCleanup, hookRunCommand, hooksInstallCommand, hooksUninstallCommand, initCommand, loginCommand, logoutCommand, logsCommand, repliesCommand, reportAskFailure, sendCommand, statusCommand, } from './commands.js';
|
|
4
4
|
import { packageVersion } from './release.js';
|
|
5
5
|
import { HARNESSES } from './install-hooks.js';
|
|
6
6
|
import { GROUP, SEND_GROUP, helpConfiguration, rootHelpFooter } from './ui/help.js';
|
|
@@ -162,6 +162,7 @@ export function buildProgram(deps, options = {}) {
|
|
|
162
162
|
.description('Set up Notifai here, idempotently: sign-in, project id, hooks, device readiness, live receipt proof. ' +
|
|
163
163
|
'Interactive at a human terminal; never prompts otherwise (agents: pass flags)')
|
|
164
164
|
.option('--project-id <id>', 'project identifier slug (default: derived from the directory name)')
|
|
165
|
+
.option('--json', 'machine-readable final readiness; never prompts')
|
|
165
166
|
.option('--skills', 'install/update the agent skill from its pinned public release')
|
|
166
167
|
.option('--no-skills', 'suppress the optional agent-skill status line')
|
|
167
168
|
.option('--setup-scope <scope>', 'unattended setup scope: project or global (skill, hooks, and config). The CLI binary is always a global install')
|
|
@@ -256,8 +257,8 @@ export function buildProgram(deps, options = {}) {
|
|
|
256
257
|
.option('--project <id>', 'project identifier override (otherwise configured or inferred)')
|
|
257
258
|
.option('--device <id>', 'target a device id (repeatable)', (v, all = []) => [...all, v])
|
|
258
259
|
.option('--all', 'target all routable devices (overrides configured devices)')
|
|
259
|
-
.option('--session-id <id>', 'opaque exact
|
|
260
|
-
.option('--session-label <text>', '
|
|
260
|
+
.option('--session-id <id>', 'low-level automation override for an opaque exact session (env: NOTIFAI_SESSION_ID)')
|
|
261
|
+
.option('--session-label <text>', 'human session name; safe to repeat, with the first accepted name frozen (env: NOTIFAI_SESSION_LABEL)')
|
|
261
262
|
.optionsGroup(SEND_GROUP.presentation)
|
|
262
263
|
.option('--collapse-key <key>', 'replace earlier notifications with the same key')
|
|
263
264
|
.option('--thread-id <id>', 'group related notifications')
|
|
@@ -276,6 +277,7 @@ export function buildProgram(deps, options = {}) {
|
|
|
276
277
|
.option('--no-wait', 'return immediately after acceptance')
|
|
277
278
|
.option('--data <key=value>', 'custom data (repeatable)', (v, all = []) => [...all, v])
|
|
278
279
|
.option('--idempotency-key <key>', 'safe-retry key (default: random)')
|
|
280
|
+
.option('--retry', 'explicitly retry one unresolved exact semantic send using its opaque saved attempt')
|
|
279
281
|
.option('--base-url <url>', 'pairing override for the service origin; ignored when this machine is already paired (also NOTIFAI_BASE_URL)')
|
|
280
282
|
.option('--json', 'print the full submission receipt as JSON')
|
|
281
283
|
.action(async (opts) => {
|
|
@@ -357,21 +359,26 @@ export function buildProgram(deps, options = {}) {
|
|
|
357
359
|
.option('--image <path|url|media_id>', 'upload or attach an image in collection order (repeatable, maximum 8)', (v, all = []) => [...all, v])
|
|
358
360
|
.option('--image-alt <text>', 'alt text paired with --image occurrences by position (repeatable)', (v, all = []) => [...all, v])
|
|
359
361
|
.option('--project <id>', 'project identifier override (otherwise configured or inferred)')
|
|
360
|
-
.option('--session-
|
|
361
|
-
.option('--session-label <text>', 'first human session name, frozen locally (env: NOTIFAI_SESSION_LABEL)')
|
|
362
|
+
.option('--session-label <text>', 'human session name; safe to repeat, with the first accepted name frozen (env: NOTIFAI_SESSION_LABEL)')
|
|
362
363
|
.action(async (question, opts) => {
|
|
363
364
|
let body = opts.body;
|
|
364
365
|
if (typeof opts.bodyFile === 'string') {
|
|
365
366
|
if (body !== undefined) {
|
|
366
|
-
deps
|
|
367
|
-
|
|
367
|
+
return exit(reportAskFailure(deps, opts, {
|
|
368
|
+
code: 'invalid_input', check_id: 'body', exit_code: 2,
|
|
369
|
+
remedy: 'pass either --body or --body-file, then retry',
|
|
370
|
+
message: 'Pass either --body or --body-file, not both.',
|
|
371
|
+
}));
|
|
368
372
|
}
|
|
369
373
|
try {
|
|
370
374
|
body = readFileSync(opts.bodyFile === '-' ? 0 : opts.bodyFile, 'utf8');
|
|
371
375
|
}
|
|
372
376
|
catch (err) {
|
|
373
|
-
deps
|
|
374
|
-
|
|
377
|
+
return exit(reportAskFailure(deps, opts, {
|
|
378
|
+
code: 'input_unreadable', check_id: 'body_file', exit_code: 2,
|
|
379
|
+
remedy: 'fix the body-file path or permissions, then retry',
|
|
380
|
+
message: `Could not read ${opts.bodyFile}: ${String(err)}`,
|
|
381
|
+
}));
|
|
375
382
|
}
|
|
376
383
|
}
|
|
377
384
|
let form;
|
|
@@ -380,8 +387,11 @@ export function buildProgram(deps, options = {}) {
|
|
|
380
387
|
form = readFileSync(opts.form === '-' ? 0 : opts.form, 'utf8');
|
|
381
388
|
}
|
|
382
389
|
catch (err) {
|
|
383
|
-
deps
|
|
384
|
-
|
|
390
|
+
return exit(reportAskFailure(deps, opts, {
|
|
391
|
+
code: 'input_unreadable', check_id: 'form_file', exit_code: 2,
|
|
392
|
+
remedy: 'fix the form-file path or permissions, then retry',
|
|
393
|
+
message: `Could not read ${opts.form}: ${String(err)}`,
|
|
394
|
+
}));
|
|
385
395
|
}
|
|
386
396
|
}
|
|
387
397
|
// Commander collectors default to []; an empty list means "not passed".
|
|
@@ -393,7 +403,6 @@ export function buildProgram(deps, options = {}) {
|
|
|
393
403
|
...(opts.image?.length ? { image: opts.image } : {}),
|
|
394
404
|
...(opts.imageAlt?.length ? { imageAlt: opts.imageAlt } : {}),
|
|
395
405
|
...(opts.project !== undefined ? { project: opts.project } : {}),
|
|
396
|
-
...(opts.sessionId !== undefined ? { sessionId: opts.sessionId } : {}),
|
|
397
406
|
...(opts.sessionLabel !== undefined ? { sessionLabel: opts.sessionLabel } : {}),
|
|
398
407
|
...(opts.json === true ? { json: true } : {}),
|
|
399
408
|
...(opts.literalBackslashN === true ? { literalBackslashN: true } : {}),
|
package/dist/program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,sCAAsC,EACtC,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,aAAa,GAEd,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAG9C,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C;;;;;;;;;;;GAWG;AACH,SAAS,OAAO;IACd,OAAO,cAAc,EAAE,IAAI,SAAS,CAAA;AACtC,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,OAAgB;IACnC,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,IAAI,IAAI,GAAmB,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAClF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAC5B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAA;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,cAAc,GAAG;IACrB,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,aAAa;IACrB,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,aAAa;IACrB,UAAU,EAAE,iBAAiB;IAC7B,YAAY,EAAE,mBAAmB;IACjC,OAAO,EAAE,cAAc;IACvB,YAAY,EAAE,mBAAmB;IACjC,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,cAAc;IACvB,WAAW,EAAE,kBAAkB;IAC/B,MAAM,EAAE,aAAa;IACrB,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,YAAY;IACnB,OAAO,EAAE,cAAc;IACvB,YAAY,EAAE,mBAAmB;IACjC,cAAc,EAAE,qBAAqB;IACrC,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,iBAAiB;IAC7B,aAAa,EAAE,oBAAoB;IACnC,SAAS,EAAE,gBAAgB;IAC3B,WAAW,EAAE,kBAAkB;IAC/B,YAAY,EAAE,mBAAmB;IACjC,WAAW,EAAE,kBAAkB;IAC/B,aAAa,EAAE,oBAAoB;IACnC;;;;OAIG;IACH,WAAW,EAAE,KAAK,EAAE,IAAiB,EAAE,aAAqB,EAAmB,EAAE;QAC/E,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAA;QAC/D,OAAO,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;IAChD,CAAC;CACF,CAAA;AAUD,MAAM,UAAU,YAAY,CAAC,IAAiB,EAAE,UAA+B,EAAE;IAC/E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACnE,MAAM,OAAO,GAAmB,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;IACzE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAE1B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;SACnC,WAAW,CAAC,iEAAiE,CAAC;SAC9E,OAAO,CAAC,OAAO,EAAE,CAAC;SAClB,aAAa,CAAC,iBAAiB,CAAC;QACjC,0EAA0E;QAC1E,wEAAwE;QACxE,gEAAgE;SAC/D,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC;QAC7C,0EAA0E;QAC1E,wEAAwE;QACxE,2EAA2E;QAC3E,kBAAkB;SACjB,wBAAwB,CAAC,IAAI,CAAC;QAC/B,uEAAuE;QACvE,2EAA2E;QAC3E,6DAA6D;QAC7D,uEAAuE;SACtE,WAAW,CAAC,IAAI,CAAC;SACjB,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE;QAC7C,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;QACjD,yEAAyE;QACzE,kEAAkE;QAClE,MAAM,gBAAgB,GACpB,aAAa,CAAC,IAAI,EAAE,KAAK,MAAM;YAC/B,sCAAsC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;QACxE,2EAA2E;QAC3E,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE;gBACzB,OAAO,EAAE,OAAO,EAAE;gBAClB,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3C,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;aACnB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ;;;;;OAKG;IACH,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE;QAC3B,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF;;;;;;;;OAQG;IACH;;;;;OAKG;IACH,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,EAAE;QAC9D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;YACvD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CACvB,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CACzB,CAAA;YACD,IAAI,CAAC,EAAE,CAAC,GAAG,CACT,oBAAoB,OAAO,IAAI;gBAC7B,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzE,wCAAwC,CAC3C,CAAA;YACD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YACjC,OAAO,CAAC,UAAU,EAAE,CAAA;YACpB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,8EAA8E;IAC9E,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;SACtB,OAAO,CAAC,mCAAmC,CAAC;SAC5C,WAAW,CACV,uGAAuG;QACrG,+EAA+E,CAClF;SACA,MAAM,CAAC,mBAAmB,EAAE,oEAAoE,CAAC;SACjG,MAAM,CAAC,QAAQ,EAAE,iDAAiD,CAAC;SACnE,MAAM,CAAC,UAAU,EAAE,+DAA+D,CAAC;SACnF,MAAM,CAAC,aAAa,EAAE,+CAA+C,CAAC;SACtE,MAAM,CACL,uBAAuB,EACvB,iHAAiH,CAClH;SACA,MAAM,CAAC,wBAAwB,EAAE,sDAAsD,CAAC;SACxF,MAAM,CAAC,SAAS,EAAE,uDAAuD,CAAC;SAC1E,MAAM,CAAC,YAAY,EAAE,oCAAoC,CAAC;SAC1D,MAAM,CACL,KAAK,EAAE,IAON,EAAE,EAAE;QACH,IAAI,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IACtC,CAAC,CACF,CAAA;IAEH,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;SACtB,OAAO,CAAC,+BAA+B,CAAC;SACxC,WAAW,CAAC,uIAAuI,CAAC;SACpJ,MAAM,CAAC,QAAQ,EAAE,yBAAyB,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE;QACzC,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEJ,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;SACtB,OAAO,CAAC,+BAA+B,CAAC;SACxC,WAAW,CAAC,kEAAkE,CAAC;SAC/E,MAAM,CAAC,eAAe,EAAE,yDAAyD,CAAC;SAClF,MAAM,CAAC,kBAAkB,EAAE,iEAAiE,CAAC;SAC7F,MAAM,CAAC,WAAW,EAAE,4CAA4C,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,IAAyD,EAAE,EAAE;QAC1E,IAAI,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEJ,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;SACzB,OAAO,CAAC,sCAAsC,CAAC;SAC/C,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEJ,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,wBAAwB,CAAC;SACrC,OAAO,CAAC,mCAAmC,CAAC;SAC5C,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC5B,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,QAAQ,EAAE,yBAAyB,CAAC;SAC3C,MAAM,CAAC,CAAC,IAAwB,EAAE,EAAE;QACnC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IACJ,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,QAAQ,EAAE,yBAAyB,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE;QACzC,IAAI,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEJ,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;SACtB,OAAO,CAAC,gDAAgD,CAAC;SACzD,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,uBAAuB,EAAE,6CAA6C,CAAC;SAC9E,MAAM,CAAC,QAAQ,EAAE,yBAAyB,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,IAA2C,EAAE,EAAE;QAC5D,IAAI,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;IAEJ,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;SACzB,OAAO,CAAC,iCAAiC,CAAC;SAC1C,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,uBAAuB,EAAE,qCAAqC,CAAC;SACtE,MAAM,CAAC,QAAQ,EAAE,yBAAyB,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,IAA6C,EAAE,EAAE;QAC9D,IAAI,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEJ,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;SACtB,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,qBAAqB,CAAC;SAClC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;SAChC,cAAc,CAAC,iBAAiB,EAAE,2DAA2D,CAAC;SAC9F,MAAM,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;SACtD,MAAM,CAAC,oBAAoB,EAAE,gEAAgE,CAAC;SAC9F,MAAM,CACL,uBAAuB,EACvB,qGAAqG,CACtG;SACA,MAAM,CAAC,uBAAuB,EAAE,8CAA8C,CAAC;SAC/E,MAAM,CACL,6BAA6B,EAC7B,uEAAuE,EACvE,CAAC,CAAS,EAAE,MAAgB,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAC/C;SACA,MAAM,CACL,oBAAoB,EACpB,mEAAmE,EACnE,CAAC,CAAS,EAAE,MAAgB,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAC/C;SACA,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;SAChC,MAAM,CAAC,eAAe,EAAE,wHAAwH,CAAC;SACjJ,MAAM,CAAC,gBAAgB,EAAE,gEAAgE,CAAC;SAC1F,MAAM,CAAC,eAAe,EAAE,iCAAiC,EAAE,CAAC,CAAS,EAAE,MAAgB,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;SAC1G,MAAM,CAAC,OAAO,EAAE,4DAA4D,CAAC;SAC7E,MAAM,CAAC,mBAAmB,EAAE,qFAAqF,CAAC;SAClH,MAAM,CACL,wBAAwB,EACxB,sGAAsG,CACvG;SACA,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC;SACrC,MAAM,CAAC,sBAAsB,EAAE,iDAAiD,CAAC;SACjF,MAAM,CAAC,kBAAkB,EAAE,6BAA6B,CAAC;SACzD,MAAM,CAAC,iBAAiB,EAAE,4BAA4B,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACjF,MAAM,CAAC,uBAAuB,EAAE,iDAAiD,CAAC;SAClF,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC;SAC9B,MAAM,CAAC,SAAS,EAAE,yDAAyD,CAAC;SAC5E,MAAM,CAAC,2BAA2B,EAAE,6CAA6C,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC5G,MAAM,CACL,0BAA0B,EAC1B,wFAAwF,EACxF,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CACzB;SACA,MAAM,CACL,kBAAkB,EAClB,4EAA4E,EAC5E,CAAC,CAAS,EAAE,MAAgB,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAC/C;SACA,MAAM,CAAC,SAAS,EAAE,gDAAgD,CAAC;SACnE,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC;SACjC,MAAM,CAAC,iBAAiB,EAAE,iEAAiE,CAAC;SAC5F,MAAM,CACL,iBAAiB,EACjB,wGAAwG,CACzG;SACA,MAAM,CAAC,kBAAkB,EAAE,wCAAwC,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC9F,MAAM,CAAC,WAAW,EAAE,qCAAqC,CAAC;SAC1D,MAAM,CAAC,oBAAoB,EAAE,0BAA0B,EAAE,CAAC,CAAS,EAAE,MAAgB,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;SACxG,MAAM,CAAC,yBAAyB,EAAE,kCAAkC,CAAC;SACrE,MAAM,CAAC,SAAS,EAAE,oFAAoF,CAAC;SACvG,MAAM,CACL,kBAAkB,EAClB,8GAA8G,CAC/G;SACA,MAAM,CAAC,QAAQ,EAAE,2CAA2C,CAAC;SAC7D,MAAM,CAAC,KAAK,EAAE,IAA6B,EAAE,EAAE;QAC9C,mEAAmE;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,CAAA;QACrC,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACxE,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,EAAE,CAAA;QAC5B,wEAAwE;QACxE,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;YAClD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAA;QACtF,CAAC;QACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAA;QACrC,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAA;QAC3B,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;gBACnC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAA;gBAC3D,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;YAChB,CAAC;YACD,IAAI,CAAC;gBACH,QAAQ,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC1E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,kBAAkB,QAAQ,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACzD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;YAChB,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAuC,CAAA;QAC1E,IAAI,IAAI,KAAK,SAAS;YAAE,OAAQ,KAA2B,CAAC,IAAI,CAAA;;YAC3D,KAAK,CAAC,IAAI,GAAG,IAAI,CAAA;QACtB,IAAI,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEJ,IAAI,CAAC,WAAW,CACd,OAAO,EACP,iYAAiY,CAClY,CAAA;IAED,OAAO;SACJ,OAAO,CAAC,sBAAsB,CAAC;SAC/B,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;SACtB,OAAO,CAAC,gCAAgC,CAAC;SACzC,WAAW,CAAC,6CAA6C,CAAC;SAC1D,MAAM,CAAC,WAAW,EAAE,0DAA0D,CAAC;SAC/E,MAAM,CAAC,kBAAkB,EAAE,8BAA8B,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACpF,MAAM,CAAC,eAAe,EAAE,2CAA2C,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC9F,MAAM,CAAC,QAAQ,EAAE,yBAAyB,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,SAA6B,EAAE,IAA0E,EAAE,EAAE;QAC1H,IAAI,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IAEJ,OAAO;SACJ,OAAO,CAAC,0BAA0B,CAAC;SACnC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;SACtB,OAAO,CAAC,qDAAqD,CAAC;SAC9D,WAAW,CACV,gGAAgG,CACjG;SACA,MAAM,CAAC,eAAe,EAAE,gDAAgD,CAAC;SACzE,MAAM,CAAC,QAAQ,EAAE,yBAAyB,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAuC,EAAE,EAAE;QAC3E,IAAI,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEJ,OAAO;SACJ,OAAO,CAAC,qBAAqB,CAAC;SAC9B,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;SACtB,OAAO,CAAC,uCAAuC,CAAC;SAChD,WAAW,CAAC,oDAAoD,CAAC;SACjE,MAAM,CAAC,QAAQ,EAAE,yBAAyB,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAwB,EAAE,EAAE;QAC5D,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;IAEJ,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;SACtB,OAAO,CAAC,wCAAwC,CAAC;SACjD,WAAW,CAAC,+GAA+G,CAAC;SAC5H,MAAM,CACL,kBAAkB,EAClB,8EAA8E,EAC9E,CAAC,CAAS,EAAE,MAAgB,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAC/C;SACA,MAAM,CAAC,SAAS,EAAE,gDAAgD,CAAC;SACnE,MAAM,CAAC,QAAQ,EAAE,yBAAyB,CAAC;SAC3C,MAAM,CAAC,mBAAmB,EAAE,6DAA6D,CAAC;SAC1F,MAAM,CAAC,oBAAoB,EAAE,8DAA8D,CAAC;SAC5F,MAAM,CACL,uBAAuB,EACvB,qGAAqG,CACtG;SACA,MAAM,CAAC,eAAe,EAAE,gEAAgE,CAAC;SACzF,MAAM,CACL,6BAA6B,EAC7B,uEAAuE,EACvE,CAAC,CAAS,EAAE,MAAgB,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAC/C;SACA,MAAM,CACL,oBAAoB,EACpB,mEAAmE,EACnE,CAAC,CAAS,EAAE,MAAgB,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAC/C;SACA,MAAM,CAAC,gBAAgB,EAAE,gEAAgE,CAAC;SAC1F,MAAM,CACL,wBAAwB,EACxB,sGAAsG,CACvG;SACA,MAAM,CAAC,KAAK,EAAE,QAA4B,EAAE,IAY5C,EAAE,EAAE;QACH,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACpB,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE;oBACvC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;oBACrD,MAAM,EAAE,+CAA+C;oBACvD,OAAO,EAAE,8CAA8C;iBACxD,CAAC,CAAC,CAAA;YACL,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YACxE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE;oBACvC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;oBAC7D,MAAM,EAAE,mDAAmD;oBAC3D,OAAO,EAAE,kBAAkB,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE;iBAC3D,CAAC,CAAC,CAAA;YACL,CAAC;QACH,CAAC;QACD,IAAI,IAAwB,CAAA;QAC5B,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YAChE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE;oBACvC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;oBAC7D,MAAM,EAAE,mDAAmD;oBAC3D,OAAO,EAAE,kBAAkB,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE;iBACvD,CAAC,CAAC,CAAA;YACL,CAAC;QACH,CAAC;QACD,wEAAwE;QACxE,MAAM,KAAK,GAAqC;YAC9C,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxE,CAAA;QACD,IAAI,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEJ,OAAO;SACJ,OAAO,CAAC,oBAAoB,CAAC;SAC7B,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;SACtB,OAAO,CAAC,gDAAgD,CAAC;SACzD,WAAW,CACV,6LAA6L,CAC9L;SACA,MAAM,CAAC,WAAW,EAAE,6EAA6E,CAAC;SAClG,MAAM,CAAC,QAAQ,EAAE,yBAAyB,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,SAA6B,EAAE,IAA2C,EAAE,EAAE;QAC3F,IAAI,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEJ,6EAA6E;IAC7E,8EAA8E;IAC9E,0EAA0E;IAC1E,OAAO;SACJ,OAAO,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SACzC,WAAW,CAAC,yDAAyD,CAAC;QACvE,6EAA6E;QAC7E,yEAAyE;QACzE,qBAAqB;SACpB,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC;SACrD,MAAM,CAAC,kBAAkB,EAAE,iCAAiC,CAAC;SAC7D,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,IAA0B,EAAE,EAAE;QAC1D,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;QACzE,IAAI,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,oBAAoB,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;IACjF,CAAC,CAAC,CAAA;IAEJ,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,uDAAuD,CAAC;SACpE,OAAO,CAAC,mDAAmD,CAAC;SAC5D,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC5B,KAAK;SACF,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,iEAAiE,CAAC;SAC9E,MAAM,CACL,kBAAkB,EAClB,2EAA2E,CAC5E;SACA,MAAM,CAAC,UAAU,EAAE,oDAAoD,CAAC;SACxE,MAAM,CAAC,CAAC,IAA4C,EAAE,EAAE;QACvD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IACJ,KAAK;SACF,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,kBAAkB,EAAE,6DAA6D,CAAC;SACzF,MAAM,CAAC,UAAU,EAAE,iCAAiC,CAAC;SACrD,MAAM,CAAC,CAAC,IAA4C,EAAE,EAAE;QACvD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEJ,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;SACtB,OAAO,CAAC,mDAAmD,CAAC;SAC5D,WAAW,CACV,mGAAmG;QACjG,0EAA0E,CAC7E;SACA,MAAM,CAAC,qBAAqB,EAAE,wCAAwC,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACjG,MAAM,CAAC,OAAO,EAAE,0CAA0C,CAAC;SAC3D,MAAM,CAAC,gBAAgB,EAAE,mEAAmE,CAAC;SAC7F,MAAM,CAAC,iBAAiB,EAAE,oEAAoE,CAAC;SAC/F,MAAM,CAAC,gBAAgB,EAAE,6BAA6B,EAAE,CAAC,CAAS,EAAE,MAAgB,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;SACvG,MAAM,CAAC,YAAY,EAAE,uCAAuC,CAAC;SAC7D,MAAM,CAAC,gBAAgB,EAAE,2CAA2C,CAAC;SACrE,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC;SACrD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;SAC7C,MAAM,CAAC,gBAAgB,EAAE,+CAA+C,CAAC;SACzE,MAAM,CAAC,eAAe,EAAE,mCAAmC,CAAC;SAC5D,MAAM,CAAC,QAAQ,EAAE,oCAAoC,CAAC;SACtD,MAAM,CAAC,QAAQ,EAAE,iDAAiD,CAAC;SACnE,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC;SACzC,MAAM,CAAC,CAAC,IAA6B,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,EAAE,GAAG,IAAI,EAAuC,CAAA;QAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,KAAK,CAAA;QAC9E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEJ,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,yBAAyB,CAAC;SACtC,OAAO,CAAC,yBAAyB,CAAC;SAClC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACzB,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,iEAAiE,CAAC;SAC9E,MAAM,CAAC,WAAW,EAAE,6DAA6D,CAAC;SAClF,MAAM,CAAC,SAAS,EAAE,+CAA+C,CAAC;SAClE,MAAM,CAAC,QAAQ,EAAE,yBAAyB,CAAC;SAC3C,MAAM,CAAC,CAAC,IAA4D,EAAE,EAAE;QACvE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IACJ,MAAM;SACH,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,4EAA4E,CAAC;SACzF,MAAM,CAAC,QAAQ,EAAE,yBAAyB,CAAC;SAC3C,MAAM,CAAC,CAAC,GAAW,EAAE,IAAwB,EAAE,EAAE;QAChD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IACJ,MAAM;SACH,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CACV,iHAAiH,CAClH;SACA,MAAM,CAAC,WAAW,EAAE,kDAAkD,CAAC;SACvE,MAAM,CAAC,SAAS,EAAE,uEAAuE,CAAC;SAC1F,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC;SACrD,MAAM,CAAC,OAAO,EAAE,4BAA4B,CAAC;SAC7C,MAAM,CACL,KAAK,EACH,GAAW,EACX,KAAa,EACb,IAA6E,EAC7E,EAAE;QACF,IAAI,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;IACvD,CAAC,CACF,CAAA;IACH,MAAM;SACH,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CACV,iKAAiK,CAClK;SACA,MAAM,CAAC,WAAW,EAAE,qDAAqD,CAAC;SAC1E,MAAM,CAAC,SAAS,EAAE,6DAA6D,CAAC;SAChF,MAAM,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;SACnD,MAAM,CAAC,OAAO,EAAE,4BAA4B,CAAC;SAC7C,MAAM,CACL,KAAK,EACH,GAAW,EACX,IAA6E,EAC7E,EAAE;QACF,IAAI,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;IAClD,CAAC,CACF,CAAA;IAEH,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,mFAAmF,CAAC;SAChG,OAAO,CAAC,8CAA8C,CAAC;SACvD,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACzB,QAAQ;SACL,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACpC,WAAW,CAAC,4EAA4E,CAAC;SACzF,MAAM,CAAC,QAAQ,EAAE,yBAAyB,CAAC;SAC3C,MAAM,CAAC,CAAC,IAAwB,EAAE,EAAE;QACnC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IACJ,QAAQ;SACL,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CACV,wGAAwG;QACtG,uFAAuF,CAC1F;SACA,MAAM,CAAC,eAAe,EAAE,sDAAsD,CAAC;SAC/E,MAAM,CAAC,WAAW,EAAE,gDAAgD,CAAC;SACrE,MAAM,CAAC,SAAS,EAAE,uEAAuE,CAAC;SAC1F,MAAM,CAAC,OAAO,EAAE,4BAA4B,CAAC;SAC7C,MAAM,CACL,KAAK,EACH,KAAa,EACb,IAAwB,EACxB,IAA0E,EAC1E,EAAE;QACF,IAAI,OAAO,GAAG,IAAI,CAAA;QAClB,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;gBACxD,IAAI,CAAC,CAAC,CAAC,CAAA;gBACP,OAAM;YACR,CAAC;YACD,IAAI,CAAC;gBACH,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YACnE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBAC1D,IAAI,CAAC,CAAC,CAAC,CAAA;gBACP,OAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAA;YACrE,IAAI,CAAC,CAAC,CAAC,CAAA;YACP,OAAM;QACR,CAAC;QACD,IAAI,CACF,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;YAC9C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CACH,CAAA;IACH,CAAC,CACF,CAAA;IACH,QAAQ;SACL,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CACV,4EAA4E;QAC1E,uFAAuF,CAC1F;SACA,MAAM,CAAC,WAAW,EAAE,mDAAmD,CAAC;SACxE,MAAM,CAAC,SAAS,EAAE,6DAA6D,CAAC;SAChF,MAAM,CAAC,OAAO,EAAE,4BAA4B,CAAC;SAC7C,MAAM,CACL,KAAK,EAAE,KAAa,EAAE,IAA2D,EAAE,EAAE;QACnF,IAAI,CAAC,MAAM,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;IACtD,CAAC,CACF,CAAA;IAEH,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
package/dist/readiness.d.ts
CHANGED
|
@@ -85,6 +85,12 @@ export declare function firstBlocker(readiness: Readiness): ReadinessState | nul
|
|
|
85
85
|
* otherwise trains people to ignore the summary line.
|
|
86
86
|
*/
|
|
87
87
|
export declare function isReady(readiness: Readiness): boolean;
|
|
88
|
+
/** Baseline Notification Requests can be submitted in the final assessed state. */
|
|
89
|
+
export declare function canSend(readiness: Readiness): boolean;
|
|
90
|
+
/** This exact invocation has a fully evidenced asynchronous question route. */
|
|
91
|
+
export declare function questionRoutingReady(readiness: Readiness): boolean;
|
|
92
|
+
/** Stable machine renderer shared by init and doctor. */
|
|
93
|
+
export declare function readinessJson(readiness: Readiness): object;
|
|
88
94
|
/** Everything that could still be done, blocking or not, in dependency order. */
|
|
89
95
|
export declare function openItems(readiness: Readiness): ReadinessState[];
|
|
90
96
|
/**
|
package/dist/readiness.js
CHANGED
|
@@ -33,6 +33,43 @@ export function firstBlocker(readiness) {
|
|
|
33
33
|
export function isReady(readiness) {
|
|
34
34
|
return firstBlocker(readiness) === null;
|
|
35
35
|
}
|
|
36
|
+
const SEND_PREREQUISITES = new Set([
|
|
37
|
+
'cli-bin',
|
|
38
|
+
'credential',
|
|
39
|
+
'server',
|
|
40
|
+
'contract',
|
|
41
|
+
'auth',
|
|
42
|
+
'devices',
|
|
43
|
+
]);
|
|
44
|
+
/** Baseline Notification Requests can be submitted in the final assessed state. */
|
|
45
|
+
export function canSend(readiness) {
|
|
46
|
+
return [...SEND_PREREQUISITES].every((id) => {
|
|
47
|
+
const state = readiness.states.find((candidate) => candidate.id === id);
|
|
48
|
+
return state?.status === 'ready' || state?.status === 'optional-gap';
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/** This exact invocation has a fully evidenced asynchronous question route. */
|
|
52
|
+
export function questionRoutingReady(readiness) {
|
|
53
|
+
const relevant = readiness.states.filter((state) => state.id === 'question-routing-settings' ||
|
|
54
|
+
(state.id === 'hooks' || state.id.startsWith('hooks-')) && state.id !== 'hooks-detected');
|
|
55
|
+
return relevant.length > 0 && relevant.every((state) => state.status === 'ready');
|
|
56
|
+
}
|
|
57
|
+
/** Stable machine renderer shared by init and doctor. */
|
|
58
|
+
export function readinessJson(readiness) {
|
|
59
|
+
return {
|
|
60
|
+
ready: isReady(readiness),
|
|
61
|
+
can_send: canSend(readiness),
|
|
62
|
+
question_routing_ready: questionRoutingReady(readiness),
|
|
63
|
+
states: readiness.states.map((state) => ({
|
|
64
|
+
id: state.id,
|
|
65
|
+
title: state.title,
|
|
66
|
+
status: state.status,
|
|
67
|
+
detail: state.detail,
|
|
68
|
+
technical: state.technical ?? null,
|
|
69
|
+
remedy: state.remedy ?? null,
|
|
70
|
+
})),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
36
73
|
/** Everything that could still be done, blocking or not, in dependency order. */
|
|
37
74
|
export function openItems(readiness) {
|
|
38
75
|
return readiness.states.filter((s) => s.status === 'gap' || s.status === 'optional-gap');
|
package/dist/readiness.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readiness.js","sourceRoot":"","sources":["../src/readiness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAkDH,oEAAoE;AACpE,MAAM,UAAU,YAAY,CAAC,SAAoB;IAC/C,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,IAAI,CAAA;AACjE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,SAAoB;IAC1C,OAAO,YAAY,CAAC,SAAS,CAAC,KAAK,IAAI,CAAA;AACzC,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,SAAS,CAAC,SAAoB;IAC5C,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,cAAc,CAAC,CAAA;AAC1F,CAAC;AAYD;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAoF,EACpF,OAAgB,EAChB,UAAgC,EAAE;IAElC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS;YACZ,OAAO,IAAI,CAAA;QACb,KAAK,OAAO,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC7C,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS;YACZ,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAA;YACzB,OAAO,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACpE,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"readiness.js","sourceRoot":"","sources":["../src/readiness.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { NotificationDraftT } from '@raidiant/notifai-protocol';
|
|
2
|
+
import type { MachineCredential } from './credentials.js';
|
|
3
|
+
export declare const SEND_ATTEMPT_TTL_MS: number;
|
|
4
|
+
/** Stable pre-upload media identities used only inside the keyed draft digest. */
|
|
5
|
+
export declare function semanticMediaIds(images: readonly string[], cwd: string): string[];
|
|
6
|
+
/** A keyed digest proves equality without persisting notification content. */
|
|
7
|
+
export declare function sendDraftFingerprint(draft: NotificationDraftT, credential: MachineCredential): string;
|
|
8
|
+
export type BeginAttempt = {
|
|
9
|
+
ok: true;
|
|
10
|
+
attemptId: string;
|
|
11
|
+
idempotencyKey: string;
|
|
12
|
+
replay: boolean;
|
|
13
|
+
} | {
|
|
14
|
+
ok: false;
|
|
15
|
+
code: 'retry_not_found' | 'retry_ambiguous';
|
|
16
|
+
message: string;
|
|
17
|
+
};
|
|
18
|
+
export declare function beginSendAttempt(options: {
|
|
19
|
+
env: NodeJS.ProcessEnv;
|
|
20
|
+
credential: MachineCredential;
|
|
21
|
+
fingerprint: string;
|
|
22
|
+
retry: boolean;
|
|
23
|
+
idempotencyKey?: string;
|
|
24
|
+
now?: number;
|
|
25
|
+
}): BeginAttempt;
|
|
26
|
+
export declare function settleSendAttempt(env: NodeJS.ProcessEnv, attemptId: string): void;
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { createHash, createHmac, randomBytes } from 'node:crypto';
|
|
2
|
+
import { closeSync, constants, existsSync, fstatSync, lstatSync, openSync, readFileSync, readdirSync, rmSync, } from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { atomicWriteFileSync } from './atomic-file.js';
|
|
5
|
+
import { stateDir } from './config.js';
|
|
6
|
+
export const SEND_ATTEMPT_TTL_MS = 24 * 60 * 60 * 1000;
|
|
7
|
+
/** Stable pre-upload media identities used only inside the keyed draft digest. */
|
|
8
|
+
export function semanticMediaIds(images, cwd) {
|
|
9
|
+
return images.map((image) => {
|
|
10
|
+
if (image.startsWith('med_'))
|
|
11
|
+
return image;
|
|
12
|
+
const digest = createHash('sha256');
|
|
13
|
+
if (/^https?:\/\//i.test(image))
|
|
14
|
+
digest.update(`url\0${image}`);
|
|
15
|
+
else
|
|
16
|
+
digest.update('file\0').update(readFileSync(path.resolve(cwd, image)));
|
|
17
|
+
return `med_retry_${digest.digest('base64url')}`;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
function directory(env) {
|
|
21
|
+
return path.join(stateDir(env), 'send-attempts');
|
|
22
|
+
}
|
|
23
|
+
function credentialTag(credential) {
|
|
24
|
+
return createHmac('sha256', credential.secret)
|
|
25
|
+
.update('notifai-send-attempt-credential-v1')
|
|
26
|
+
.digest('base64url');
|
|
27
|
+
}
|
|
28
|
+
/** A keyed digest proves equality without persisting notification content. */
|
|
29
|
+
export function sendDraftFingerprint(draft, credential) {
|
|
30
|
+
return createHmac('sha256', credential.secret)
|
|
31
|
+
.update('notifai-send-draft-v1\0')
|
|
32
|
+
.update(JSON.stringify(draft))
|
|
33
|
+
.digest('base64url');
|
|
34
|
+
}
|
|
35
|
+
function parseRecord(file) {
|
|
36
|
+
let descriptor;
|
|
37
|
+
try {
|
|
38
|
+
const before = lstatSync(file);
|
|
39
|
+
const uid = typeof process.getuid === 'function' ? process.getuid() : undefined;
|
|
40
|
+
if (before.isSymbolicLink() || !before.isFile() || (uid !== undefined && before.uid !== uid)) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
const flags = constants.O_RDONLY | (process.platform === 'win32' ? 0 : constants.O_NOFOLLOW);
|
|
44
|
+
descriptor = openSync(file, flags);
|
|
45
|
+
const opened = fstatSync(descriptor);
|
|
46
|
+
if (!opened.isFile() || opened.dev !== before.dev || opened.ino !== before.ino)
|
|
47
|
+
return null;
|
|
48
|
+
const value = JSON.parse(readFileSync(descriptor, 'utf8'));
|
|
49
|
+
return value.version === 1 &&
|
|
50
|
+
typeof value.attempt_id === 'string' &&
|
|
51
|
+
typeof value.fingerprint === 'string' &&
|
|
52
|
+
typeof value.idempotency_key === 'string' &&
|
|
53
|
+
typeof value.credential_tag === 'string' &&
|
|
54
|
+
typeof value.machine_id === 'string' &&
|
|
55
|
+
typeof value.service === 'string' &&
|
|
56
|
+
typeof value.created_at === 'string' &&
|
|
57
|
+
typeof value.expires_at === 'string'
|
|
58
|
+
? value
|
|
59
|
+
: null;
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
finally {
|
|
65
|
+
if (descriptor !== undefined)
|
|
66
|
+
closeSync(descriptor);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function liveRecords(env, credential, now) {
|
|
70
|
+
const dir = directory(env);
|
|
71
|
+
if (!existsSync(dir))
|
|
72
|
+
return [];
|
|
73
|
+
const directoryStat = lstatSync(dir);
|
|
74
|
+
const uid = typeof process.getuid === 'function' ? process.getuid() : undefined;
|
|
75
|
+
if (directoryStat.isSymbolicLink() ||
|
|
76
|
+
!directoryStat.isDirectory() ||
|
|
77
|
+
(uid !== undefined && directoryStat.uid !== uid))
|
|
78
|
+
return [];
|
|
79
|
+
const tag = credentialTag(credential);
|
|
80
|
+
const records = [];
|
|
81
|
+
for (const name of readdirSync(dir)) {
|
|
82
|
+
if (!name.endsWith('.json'))
|
|
83
|
+
continue;
|
|
84
|
+
const file = path.join(dir, name);
|
|
85
|
+
const record = parseRecord(file);
|
|
86
|
+
const expired = record === null || Date.parse(record.expires_at) <= now;
|
|
87
|
+
const rotated = record !== null && (record.machine_id !== credential.machineId ||
|
|
88
|
+
record.service !== credential.baseUrl ||
|
|
89
|
+
record.credential_tag !== tag);
|
|
90
|
+
if (expired || rotated) {
|
|
91
|
+
rmSync(file, { force: true });
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
records.push(record);
|
|
95
|
+
}
|
|
96
|
+
return records;
|
|
97
|
+
}
|
|
98
|
+
export function beginSendAttempt(options) {
|
|
99
|
+
const now = options.now ?? Date.now();
|
|
100
|
+
const live = liveRecords(options.env, options.credential, now);
|
|
101
|
+
if (options.retry) {
|
|
102
|
+
const matches = live.filter((record) => record.fingerprint === options.fingerprint);
|
|
103
|
+
if (matches.length === 0) {
|
|
104
|
+
return {
|
|
105
|
+
ok: false,
|
|
106
|
+
code: 'retry_not_found',
|
|
107
|
+
message: 'No unresolved opaque attempt matches this exact send on the current Approved Machine.',
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
if (matches.length > 1) {
|
|
111
|
+
return {
|
|
112
|
+
ok: false,
|
|
113
|
+
code: 'retry_ambiguous',
|
|
114
|
+
message: 'More than one unresolved opaque attempt matches this exact send; refusing to guess or create another notification.',
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
const match = matches[0];
|
|
118
|
+
return { ok: true, attemptId: match.attempt_id, idempotencyKey: match.idempotency_key, replay: true };
|
|
119
|
+
}
|
|
120
|
+
const attemptId = `sat_${randomBytes(12).toString('base64url')}`;
|
|
121
|
+
const idempotencyKey = options.idempotencyKey ?? `cli-${randomBytes(12).toString('base64url')}`;
|
|
122
|
+
const record = {
|
|
123
|
+
version: 1,
|
|
124
|
+
attempt_id: attemptId,
|
|
125
|
+
fingerprint: options.fingerprint,
|
|
126
|
+
idempotency_key: idempotencyKey,
|
|
127
|
+
credential_tag: credentialTag(options.credential),
|
|
128
|
+
machine_id: options.credential.machineId,
|
|
129
|
+
service: options.credential.baseUrl,
|
|
130
|
+
created_at: new Date(now).toISOString(),
|
|
131
|
+
expires_at: new Date(now + SEND_ATTEMPT_TTL_MS).toISOString(),
|
|
132
|
+
};
|
|
133
|
+
atomicWriteFileSync(path.join(directory(options.env), `${attemptId}.json`), `${JSON.stringify(record)}\n`, { mode: 0o600, directoryMode: 0o700, requireCurrentUserOwner: true });
|
|
134
|
+
return { ok: true, attemptId, idempotencyKey, replay: false };
|
|
135
|
+
}
|
|
136
|
+
export function settleSendAttempt(env, attemptId) {
|
|
137
|
+
rmSync(path.join(directory(env), `${attemptId}.json`), { force: true });
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=send-attempts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-attempts.js","sourceRoot":"","sources":["../src/send-attempts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import type { HookHarness } from './hooks.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* authoritative sources without restating any notification policy that the
|
|
5
|
-
* user may have overridden.
|
|
6
|
-
*/
|
|
7
|
-
export declare const SESSION_ACTIVATION_CONTEXT: string;
|
|
2
|
+
export declare const WORKER_ACTIVATION_CONTEXT = "Notifai worker context: report Agent Events to the parent; do not send User-visible Notification Requests unless the parent explicitly delegated that ownership. If delegated, run `notifai guidance` before composing one.";
|
|
3
|
+
export declare const MISSING_LIFECYCLE_GUIDANCE_CONTEXT = "Notifai is active, but lifecycle guidance could not be loaded. Run `notifai guidance` once before deciding whether or how to send a Notification Request.";
|
|
8
4
|
/** One lifecycle meaning, encoded for each harness output contract. */
|
|
9
|
-
export declare function sessionActivationOutput(harness: HookHarness | undefined, hookEventName: 'SessionStart' | 'SubagentStart' | 'UserPromptSubmit'): string | undefined;
|
|
5
|
+
export declare function sessionActivationOutput(harness: HookHarness | undefined, hookEventName: 'SessionStart' | 'SubagentStart' | 'UserPromptSubmit', cwd?: string, env?: NodeJS.ProcessEnv): string | undefined;
|
|
10
6
|
/**
|
|
11
7
|
* Cursor currently accepts sessionStart context without reliably delivering it
|
|
12
8
|
* to the model. Its native post-Stop follow-up is the narrow fallback and is
|
|
13
9
|
* claimed once per conversation by the hook-state layer.
|
|
14
10
|
*/
|
|
15
|
-
export declare function cursorStopActivationOutput(): string;
|
|
11
|
+
export declare function cursorStopActivationOutput(cwd?: string, env?: NodeJS.ProcessEnv): string;
|
|
@@ -1,22 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { Buffer } from 'node:buffer';
|
|
2
|
+
import { GUIDANCE_CONTEXT_MAX_BYTES, boundedEffectiveGuidance } from './guidance-render.js';
|
|
3
|
+
const ROOT_OWNERSHIP = 'Notifai is active for this session. The effective, provenance-marked guidance below governs Notification Requests. ' +
|
|
4
|
+
'Missing CLI readiness is handled through `notifai init --json`. ' +
|
|
5
|
+
'The root agent owns User-visible Notification Requests unless it explicitly delegates that ownership; workers report Agent Events to the parent.';
|
|
6
|
+
export const WORKER_ACTIVATION_CONTEXT = 'Notifai worker context: report Agent Events to the parent; do not send User-visible Notification Requests unless the parent explicitly delegated that ownership. If delegated, run `notifai guidance` before composing one.';
|
|
7
|
+
export const MISSING_LIFECYCLE_GUIDANCE_CONTEXT = 'Notifai is active, but lifecycle guidance could not be loaded. Run `notifai guidance` once before deciding whether or how to send a Notification Request.';
|
|
8
|
+
function rootActivationContext(cwd, env) {
|
|
9
|
+
const guidance = boundedEffectiveGuidance({
|
|
10
|
+
cwd,
|
|
11
|
+
env,
|
|
12
|
+
maxBytes: GUIDANCE_CONTEXT_MAX_BYTES - Buffer.byteLength(`${ROOT_OWNERSHIP}\n\n`, 'utf8'),
|
|
13
|
+
});
|
|
14
|
+
return `${ROOT_OWNERSHIP}\n\n${guidance.ok ? guidance.content : guidance.fallback}`;
|
|
15
|
+
}
|
|
10
16
|
/** One lifecycle meaning, encoded for each harness output contract. */
|
|
11
|
-
export function sessionActivationOutput(harness, hookEventName) {
|
|
17
|
+
export function sessionActivationOutput(harness, hookEventName, cwd = process.cwd(), env = process.env) {
|
|
18
|
+
const context = hookEventName === 'SubagentStart'
|
|
19
|
+
? WORKER_ACTIVATION_CONTEXT
|
|
20
|
+
: rootActivationContext(cwd, env);
|
|
21
|
+
if (harness === 'opencode')
|
|
22
|
+
return context;
|
|
12
23
|
if (harness === 'cursor') {
|
|
13
|
-
return JSON.stringify({ additional_context:
|
|
24
|
+
return JSON.stringify({ additional_context: context });
|
|
14
25
|
}
|
|
15
26
|
if (harness === 'claude-code' || harness === 'codex') {
|
|
16
27
|
return JSON.stringify({
|
|
17
28
|
hookSpecificOutput: {
|
|
18
29
|
hookEventName,
|
|
19
|
-
additionalContext:
|
|
30
|
+
additionalContext: context,
|
|
20
31
|
},
|
|
21
32
|
});
|
|
22
33
|
}
|
|
@@ -27,9 +38,9 @@ export function sessionActivationOutput(harness, hookEventName) {
|
|
|
27
38
|
* to the model. Its native post-Stop follow-up is the narrow fallback and is
|
|
28
39
|
* claimed once per conversation by the hook-state layer.
|
|
29
40
|
*/
|
|
30
|
-
export function cursorStopActivationOutput() {
|
|
41
|
+
export function cursorStopActivationOutput(cwd = process.cwd(), env = process.env) {
|
|
31
42
|
return JSON.stringify({
|
|
32
|
-
followup_message:
|
|
43
|
+
followup_message: rootActivationContext(cwd, env),
|
|
33
44
|
});
|
|
34
45
|
}
|
|
35
46
|
//# sourceMappingURL=session-activation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-activation.js","sourceRoot":"","sources":["../src/session-activation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-activation.js","sourceRoot":"","sources":["../src/session-activation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAE3F,MAAM,cAAc,GAClB,qHAAqH;IACrH,kEAAkE;IAClE,kJAAkJ,CAAA;AAEpJ,MAAM,CAAC,MAAM,yBAAyB,GACpC,6NAA6N,CAAA;AAE/N,MAAM,CAAC,MAAM,kCAAkC,GAC7C,2JAA2J,CAAA;AAE7J,SAAS,qBAAqB,CAAC,GAAW,EAAE,GAAsB;IAChE,MAAM,QAAQ,GAAG,wBAAwB,CAAC;QACxC,GAAG;QACH,GAAG;QACH,QAAQ,EAAE,0BAA0B,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,cAAc,MAAM,EAAE,MAAM,CAAC;KAC1F,CAAC,CAAA;IACF,OAAO,GAAG,cAAc,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAA;AACrF,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,uBAAuB,CACrC,OAAgC,EAChC,aAAoE,EACpE,MAAc,OAAO,CAAC,GAAG,EAAE,EAC3B,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,OAAO,GAAG,aAAa,KAAK,eAAe;QAC/C,CAAC,CAAC,yBAAyB;QAC3B,CAAC,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACnC,IAAI,OAAO,KAAK,UAAU;QAAE,OAAO,OAAO,CAAA;IAC1C,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,IAAI,OAAO,KAAK,aAAa,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,kBAAkB,EAAE;gBAClB,aAAa;gBACb,iBAAiB,EAAE,OAAO;aAC3B;SACF,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAc,OAAO,CAAC,GAAG,EAAE,EAC3B,MAAyB,OAAO,CAAC,GAAG;IAEpC,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,gBAAgB,EAAE,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC;KAClD,CAAC,CAAA;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { CommandDeps } from './commands-core.js'
|
|
2
|
+
import { resolveActiveHarness } from './commands-harness-context.js'
|
|
3
|
+
import { findOwningSession, readProjectSession } from './hooks.js'
|
|
4
|
+
|
|
5
|
+
export interface ResolvedCommandSession {
|
|
6
|
+
sessionId: string
|
|
7
|
+
source: 'exact-harness' | 'stable-id' | 'project-pointer'
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Resolve only Question Routing lifecycle ownership.
|
|
12
|
+
*
|
|
13
|
+
* Exact harness identity wins across checkouts. A stable question/request id
|
|
14
|
+
* wins next. The cwd pointer remains a compatibility fallback for shells that
|
|
15
|
+
* genuinely have no exact harness identity; it never owns Project or config
|
|
16
|
+
* scope, which stay with the command's invocation directory.
|
|
17
|
+
*/
|
|
18
|
+
export function resolveCommandSession(
|
|
19
|
+
deps: CommandDeps,
|
|
20
|
+
stableId?: string,
|
|
21
|
+
): ResolvedCommandSession | null {
|
|
22
|
+
if (stableId !== undefined) {
|
|
23
|
+
const owner = findOwningSession(stableId, deps.env)
|
|
24
|
+
if (owner.ambiguous) return null
|
|
25
|
+
if (owner.sessionId !== null) return { sessionId: owner.sessionId, source: 'stable-id' }
|
|
26
|
+
}
|
|
27
|
+
const now = (deps.now ?? Date.now)()
|
|
28
|
+
const resolution = resolveActiveHarness(deps.env, deps.cwd, now)
|
|
29
|
+
if (resolution.contested.length > 0) return null
|
|
30
|
+
if (
|
|
31
|
+
resolution.active?.sessionId !== undefined &&
|
|
32
|
+
resolution.contested.length === 0
|
|
33
|
+
) {
|
|
34
|
+
return { sessionId: resolution.active.sessionId, source: 'exact-harness' }
|
|
35
|
+
}
|
|
36
|
+
const pointer = readProjectSession(deps.cwd, deps.env, now)
|
|
37
|
+
return pointer === null ? null : { sessionId: pointer, source: 'project-pointer' }
|
|
38
|
+
}
|