@raidiant/notifai 11.0.6 → 11.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +5 -0
  3. package/dist/codex-wake.d.ts +44 -63
  4. package/dist/codex-wake.js +71 -174
  5. package/dist/codex-wake.js.map +1 -1
  6. package/dist/commands-ask.js +3 -1
  7. package/dist/commands-ask.js.map +1 -1
  8. package/dist/commands-close.js +28 -14
  9. package/dist/commands-close.js.map +1 -1
  10. package/dist/commands-core.d.ts +1 -1
  11. package/dist/commands-doctor.js +32 -11
  12. package/dist/commands-doctor.js.map +1 -1
  13. package/dist/commands-hook-install.js +111 -38
  14. package/dist/commands-hook-install.js.map +1 -1
  15. package/dist/commands-hook-run.js +8 -9
  16. package/dist/commands-hook-run.js.map +1 -1
  17. package/dist/commands-hook-shape.js +3 -2
  18. package/dist/commands-hook-shape.js.map +1 -1
  19. package/dist/credentials.js +7 -4
  20. package/dist/credentials.js.map +1 -1
  21. package/dist/harnesses.d.ts +1 -1
  22. package/dist/harnesses.js +2 -2
  23. package/dist/harnesses.js.map +1 -1
  24. package/dist/hook-adapter.d.ts +7 -1
  25. package/dist/hook-adapter.js +36 -3
  26. package/dist/hook-adapter.js.map +1 -1
  27. package/dist/hook-events.d.ts +69 -2
  28. package/dist/hook-events.js +75 -13
  29. package/dist/hook-events.js.map +1 -1
  30. package/dist/hook-lifecycle.js +44 -15
  31. package/dist/hook-lifecycle.js.map +1 -1
  32. package/dist/hook-question-retirement.d.ts +9 -0
  33. package/dist/hook-question-retirement.js +38 -3
  34. package/dist/hook-question-retirement.js.map +1 -1
  35. package/dist/hook-question-state.d.ts +14 -5
  36. package/dist/hook-question-state.js +55 -24
  37. package/dist/hook-question-state.js.map +1 -1
  38. package/dist/hook-types.d.ts +6 -0
  39. package/dist/install-hooks.d.ts +70 -12
  40. package/dist/install-hooks.js +352 -198
  41. package/dist/install-hooks.js.map +1 -1
  42. package/dist/openclaw-plugin.d.ts +0 -1
  43. package/dist/openclaw-plugin.js +0 -7
  44. package/dist/openclaw-plugin.js.map +1 -1
  45. package/dist/opencode-plugin.d.ts +9 -0
  46. package/dist/opencode-plugin.js +19 -2
  47. package/dist/opencode-plugin.js.map +1 -1
  48. package/dist/readiness.d.ts +9 -1
  49. package/dist/readiness.js +11 -3
  50. package/dist/readiness.js.map +1 -1
  51. package/dist/session-labels.js +6 -6
  52. package/dist/session-labels.js.map +1 -1
  53. package/dist/skill-source/manifest.json +4 -4
  54. package/dist/skill-source/notifai/SKILL.md +2 -2
  55. package/dist/skill-source/notifai/references/harness-setup.md +23 -14
  56. package/dist/ui/theme.d.ts +1 -1
  57. package/package.json +2 -2
package/dist/harnesses.js CHANGED
@@ -44,8 +44,8 @@ const CLAUDE_CODE_WINDOWS_CAPABILITY = {
44
44
  };
45
45
  const CODEX_CAPABILITY = {
46
46
  stopContinuation: 'decision-block',
47
- deliveryRoutes: ['hook-continuation', 'cold-resume', 'hold-for-next-turn'],
48
- deliveryContract: 'live Stop continuation while the turn is held through the complete answer window; crash recovery may resume only a stopped thread behind its writer lock',
47
+ deliveryRoutes: ['session-queue', 'hold-for-next-turn'],
48
+ deliveryContract: "the Stop hook returns at once and waits out of band through the complete answer window, then queues the answer into this same thread's durable inbox; a live session consumes it within seconds, a busy one at its next turn boundary, and a stopped one the next time it is opened",
49
49
  };
50
50
  const CURSOR_CAPABILITY = {
51
51
  stopContinuation: 'unsupported',
@@ -1 +1 @@
1
- {"version":3,"file":"harnesses.js","sourceRoot":"","sources":["../src/harnesses.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harnesses.js","sourceRoot":"","sources":["../src/harnesses.ts"],"names":[],"mappings":"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"}
@@ -31,8 +31,14 @@ export declare function hookHostPlatform(platform?: NodeJS.Platform | HookHostPl
31
31
  * it and may change without changing hook identity.
32
32
  */
33
33
  export declare function hookAdapterPath(homeDir?: string): string;
34
+ /**
35
+ * Adapter identity is the OS account home. A mutable HOME is not a trusted
36
+ * isolation context: honouring it would retarget every live harness hook.
37
+ * Tests and other explicit callers pass the destination home themselves.
38
+ */
39
+ export declare function resolveHookAdapterHome(explicitHome?: string, env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform | HookHostPlatform): string;
34
40
  /** Install or repair the stable adapter and atomically retarget its implementation. */
35
- export declare function installHookAdapter(target: HookAdapterTarget, homeDir?: string, platform?: NodeJS.Platform | HookHostPlatform): {
41
+ export declare function installHookAdapter(target: HookAdapterTarget, homeDir?: string, platform?: NodeJS.Platform | HookHostPlatform, env?: NodeJS.ProcessEnv): {
36
42
  path: string;
37
43
  changed: boolean;
38
44
  };
@@ -3,6 +3,8 @@ import os from 'node:os';
3
3
  import path from 'node:path';
4
4
  import { atomicWriteFileSync } from './atomic-file.js';
5
5
  import { withTargetFileLock } from './file-lock.js';
6
+ import { sameLocalPath } from './local-path.js';
7
+ import { isWindowsAbsolute } from './platform.js';
6
8
  const ADAPTER_MARKER = '# notifai managed hook adapter';
7
9
  const WIN32_ADAPTER_MARKER = '// notifai managed hook adapter';
8
10
  const ADAPTER_VERSION = 2;
@@ -36,12 +38,43 @@ export function hookHostPlatform(platform = process.platform) {
36
38
  export function hookAdapterPath(homeDir = os.userInfo().homedir) {
37
39
  return path.join(homeDir, '.notifai', 'bin', 'hook-adapter');
38
40
  }
41
+ function envRequestedHomes(env = process.env, platform = process.platform) {
42
+ if (platform === 'win32') {
43
+ const profile = env['USERPROFILE'];
44
+ const home = env['HOME'];
45
+ // accountHome accepts a Windows-absolute HOME ahead of USERPROFILE.
46
+ // Validate both: one real value must not conceal a relocated other one.
47
+ // Git Bash/MSYS HOME is intentionally ignored by accountHome as well.
48
+ return [
49
+ ...(typeof profile === 'string' && profile !== '' ? [profile] : []),
50
+ ...(typeof home === 'string' && isWindowsAbsolute(home) ? [home] : []),
51
+ ];
52
+ }
53
+ const home = env['HOME'];
54
+ return typeof home === 'string' && home !== '' ? [home] : [];
55
+ }
56
+ /**
57
+ * Adapter identity is the OS account home. A mutable HOME is not a trusted
58
+ * isolation context: honouring it would retarget every live harness hook.
59
+ * Tests and other explicit callers pass the destination home themselves.
60
+ */
61
+ export function resolveHookAdapterHome(explicitHome, env = process.env, platform = process.platform) {
62
+ if (explicitHome !== undefined && explicitHome !== '')
63
+ return explicitHome;
64
+ const osHome = os.userInfo().homedir;
65
+ const comparisonPlatform = platform === 'win32' ? 'win32' : 'linux';
66
+ if (envRequestedHomes(env, platform).some((home) => !sameLocalPath(home, osHome, comparisonPlatform))) {
67
+ throw new Error(`Refusing to install the shared hook adapter: HOME or USERPROFILE does not match this account's OS home. Isolated programmatic verification must pass an explicit adapter home; a mutable home cannot retarget trusted hook identity.`);
68
+ }
69
+ return osHome;
70
+ }
39
71
  /** Install or repair the stable adapter and atomically retarget its implementation. */
40
- export function installHookAdapter(target, homeDir, platform = process.platform) {
72
+ export function installHookAdapter(target, homeDir, platform = process.platform, env = process.env) {
41
73
  const host = hookHostPlatform(platform);
42
74
  assertUsableTarget(target, host);
43
- const file = hookAdapterPath(homeDir);
44
- ensureManagedDirectories(homeDir ?? os.userInfo().homedir, host);
75
+ const resolvedHome = resolveHookAdapterHome(homeDir, env, platform);
76
+ const file = hookAdapterPath(resolvedHome);
77
+ ensureManagedDirectories(resolvedHome, host);
45
78
  const source = hookAdapterSource(target, host);
46
79
  return withTargetFileLock(file, () => {
47
80
  const existing = existsSync(file) ? readSafeManagedFile(file) : null;
@@ -1 +1 @@
1
- {"version":3,"file":"hook-adapter.js","sourceRoot":"","sources":["../src/hook-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook-adapter.js","sourceRoot":"","sources":["../src/hook-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,QAAQ,GACT,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEjD,MAAM,cAAc,GAAG,gCAAgC,CAAA;AACvD,MAAM,oBAAoB,GAAG,iCAAiC,CAAA;AAC9D,MAAM,eAAe,GAAG,CAAC,CAAA;AAmBzB,MAAM,UAAU,kBAAkB,CAAC,MAAyB;IAC1D,OAAO,MAAM,CAAC,IAAI,KAAK,KAAK,CAAA;AAC9B,CAAC;AAQD,6EAA6E;AAC7E,MAAM,UAAU,0BAA0B,CACxC,MAAgC,EAChC,YAAoB;IAEpB,IAAI,MAAM,KAAK,IAAI,IAAI,kBAAkB,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAA;IAC/D,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,YAAY,CAAC,YAAY,CAAC,CAAA;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,WAA+C,OAAO,CAAC,QAAQ;IAE/D,OAAO,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;AACjD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO;IACrE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,CAAC,CAAA;AAC9D,CAAC;AAED,SAAS,iBAAiB,CACxB,MAAyB,OAAO,CAAC,GAAG,EACpC,WAA+C,OAAO,CAAC,QAAQ;IAE/D,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,CAAA;QAClC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;QACxB,oEAAoE;QACpE,wEAAwE;QACxE,sEAAsE;QACtE,OAAO;YACL,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACvE,CAAA;IACH,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC9D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,YAAqB,EACrB,MAAyB,OAAO,CAAC,GAAG,EACpC,WAA+C,OAAO,CAAC,QAAQ;IAE/D,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,EAAE;QAAE,OAAO,YAAY,CAAA;IAC1E,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAA;IACpC,MAAM,kBAAkB,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;IACnE,IAAI,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC;QACtG,MAAM,IAAI,KAAK,CACb,sOAAsO,CACvO,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,kBAAkB,CAChC,MAAyB,EACzB,OAAgB,EAChB,WAA+C,OAAO,CAAC,QAAQ,EAC/D,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACvC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAChC,MAAM,YAAY,GAAG,sBAAsB,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;IACnE,MAAM,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;IAC1C,wBAAwB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;IAC5C,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC9C,OAAO,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE;QACnC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACpE,MAAM,SAAS,GACb,IAAI,KAAK,OAAO,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,KAAK,CAAA;QAC5E,MAAM,OAAO,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,KAAK,MAAM,IAAI,SAAS,CAAA;QAC9E,IAAI,OAAO,EAAE,CAAC;YACZ,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE;gBAChC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;gBACtC,YAAY,EAAE,KAAK;gBACnB,uBAAuB,EAAE,IAAI;aAC9B,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;IAChC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAyB,EAAE,IAAsB;IAC3E,IAAI,IAAI,CAAA;IACR,IAAI,CAAC;QACH,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,QAAQ,kBAAkB,CAAC,CAAA;IAC5E,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,QAAQ,qBAAqB,CAAC,CAAA;IAC/E,CAAC;IACD,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACpD,CAAC;QACD,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,MAAM,yBAAyB,CAAC,CAAA;YACjF,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,uBAAuB,CAAC;gBAAE,MAAM,GAAG,CAAA;YACtF,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,MAAM,kBAAkB,CAAC,CAAA;QAC1E,CAAC;QACD,OAAM;IACR,CAAC;IACD,IAAI,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,UAAU,yBAAyB,CAAC,CAAA;QACjF,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC;YAAE,MAAM,GAAG,CAAA;QAClF,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,UAAU,kBAAkB,CAAC,CAAA;IAC1E,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,kBAAkB,CAChC,OAAgB,EAChB,WAA+C,OAAO,CAAC,QAAQ;IAE/D,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACvC,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,8CAA8C,CAAC,EAAE,CAAA;IACxG,CAAC;IAED,IAAI,IAAI,CAAA;IACR,IAAI,CAAC;QACH,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAA;IAC9D,CAAC;IACD,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5C,OAAO;YACL,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,8CAA8C,CAAC;SAClE,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QAC/E,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YAC1C,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,oBAAoB,IAAI,CAAC,GAAG,wBAAwB,CAAC,CAAA;QAC5E,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;YAC/D,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAA;QAC3F,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC3C,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IACtC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,gCAAgC,CAAC,CAAA;IACxD,CAAC;SAAM,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,aAAa,IAAI,mDAAmD,CAAC,CAAA;IAC5F,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAA;IACvE,IAAI,OAAO,KAAK,eAAe;QAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,kCAAkC,OAAO,EAAE,CAAC,CAAA;IAClG,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;IACpC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,gCAAgC,CAAC,CAAA;IACxD,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACtE,QAAQ,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,QAAQ,oBAAoB,CAAC,CAAA;YAC1E,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,QAAQ,aAAa,CAAC,CAAA;QACnE,CAAC;QACD,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,QAAQ,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;YAC5E,IAAI,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;oBACtC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,MAAM,wBAAwB,CAAC,CAAA;gBAC5E,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,QAAQ,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,MAAM,aAAa,CAAC,CAAA;YACjE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC1C,QAAQ,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,UAAU,wBAAwB,CAAC,CAAA;gBAC5E,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,QAAQ,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,UAAU,aAAa,CAAC,CAAA;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;AACzC,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,iBAAiB,CAC/B,MAAyB,EACzB,WAA+C,OAAO,CAAC,QAAQ;IAE/D,OAAO,gBAAgB,CAAC,QAAQ,CAAC,KAAK,OAAO;QAC3C,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC;QAChC,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,sBAAsB,CAAC,MAAyB;IACvD,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,OAAO;EACT,cAAc;qBACK,eAAe;;sBAEd,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;yBAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;sBAChC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;;;;;;kBAM/B,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;qBACnB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;kBACvB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;;;;;;;;;;;;CAYnC,CAAA;IACC,CAAC;IACD,OAAO;EACP,cAAc;qBACK,eAAe;sBACd,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;wBAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;;;;;;kBAMvC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;oBACpB,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;;;;;;;;;;;;CAY3C,CAAA;AACD,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAyB;IACvD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC;QACvC,CAAC,CAAC,GAAG,oBAAoB;sBACP,eAAe;;uBAEd,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;0BAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;uBAChC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;CACjD;QACG,CAAC,CAAC,GAAG,oBAAoB;sBACP,eAAe;uBACd,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;yBAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;CACzD,CAAA;IACC,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC;QACrC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,mCAAmC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C;QAC/I,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,6BAA6B,CAAA;IACtE,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC;QAC1C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACrC,OAAO,GAAG,MAAM;;;yBAGO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;8BAC1B,SAAS;;;;;;;;;;;;;;;sCAeD,IAAI;;;;;;;;;;;;;;CAczC,CAAA;AACD,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,IAAI,QAAQ,CAAC,UAAU,CAAC,cAAc,cAAc,IAAI,CAAC;QAAE,OAAO,OAAO,CAAA;IACzE,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,oBAAoB,IAAI,CAAC;QAAE,OAAO,OAAO,CAAA;IACpE,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,IAAI,CAAC,QAAgB,EAAE,GAAW;IACzC,OAAO,IAAI,MAAM,CAAC,aAAa,GAAG,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACvE,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAA;IAC/C,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACnC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC1C,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAA;QAC7C,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAA;YACvD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAA;YAClD,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAA;YACjE,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YAC7C,MAAM,IAAI,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACzC,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAC3D,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;gBACzC,CAAC,CAAC,IAAI,CAAA;QACV,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAA;QACnD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,IAAI,CAAA;QACrC,MAAM,UAAU,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC9C,OAAO,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAA;AAC9C,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAe,EAAE,IAAsB;IACvE,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACpD,KAAK,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1F,uEAAuE;QACvE,6DAA6D;QAC7D,wEAAwE;QACxE,2EAA2E;QAC3E,wEAAwE;QACxE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAChD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,oEAAoE,CAAC,CAAA;QAC7F,CAAC;QACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;YAC/E,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,oBAAoB,IAAI,CAAC,GAAG,yBAAyB,CAAC,CAAA;YAC9E,CAAC;YACD,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAC5B,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,iDAAiD,CAAC,CAAA;IAC3E,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IAC/E,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,oBAAoB,IAAI,CAAC,GAAG,yBAAyB,CAAC,CAAA;IAC/E,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAA;AAClE,CAAC"}
@@ -1,6 +1,73 @@
1
1
  /** Canonical lifecycle event vocabulary shared by installation and execution. */
2
2
  import { type HookInstallableHarness } from './harnesses.js';
3
- export declare const HOOK_EVENTS: readonly ["session-start", "subagent-start", "activation-stop", "user-prompt-submit", "stop", "session-end"];
4
- export type HookEvent = (typeof HOOK_EVENTS)[number];
3
+ /**
4
+ * One harness-neutral table for the lifecycle events this CLI build serves.
5
+ *
6
+ * Builders, generated-plugin discovery lists, ownership regexes, and
7
+ * `HOOK_EVENTS` all derive from this. Per-harness *shape* (async Stop,
8
+ * Cursor `loop_limit`, OpenCode native joint names) stays at the adapter;
9
+ * this table owns names, budgets, and which harnesses receive each event.
10
+ *
11
+ * Timeouts are seconds. Document Stop is not taken from `timeoutSeconds`:
12
+ * Question Routing hosts use the full-window budget, and the Cursor `stop`
13
+ * handler uses the non-routing blocking budget.
14
+ */
15
+ export declare const HOOK_EVENT_TABLE: readonly [{
16
+ readonly notifai: "session-start";
17
+ readonly document: "SessionStart";
18
+ readonly cursor: "sessionStart";
19
+ readonly openclaw: true;
20
+ readonly opencodeDiscovery: false;
21
+ readonly timeoutSeconds: 5;
22
+ }, {
23
+ readonly notifai: "subagent-start";
24
+ readonly document: "SubagentStart";
25
+ readonly cursor: null;
26
+ readonly openclaw: true;
27
+ readonly opencodeDiscovery: false;
28
+ readonly timeoutSeconds: 5;
29
+ }, {
30
+ readonly notifai: "activation-stop";
31
+ readonly document: null;
32
+ readonly cursor: "stop";
33
+ readonly openclaw: false;
34
+ readonly opencodeDiscovery: false;
35
+ readonly timeoutSeconds: 5;
36
+ readonly cursorLoopLimit: 1;
37
+ }, {
38
+ readonly notifai: "user-prompt-submit";
39
+ readonly document: "UserPromptSubmit";
40
+ readonly cursor: "beforeSubmitPrompt";
41
+ readonly openclaw: true;
42
+ readonly opencodeDiscovery: true;
43
+ readonly timeoutSeconds: 15;
44
+ }, {
45
+ readonly notifai: "stop";
46
+ readonly document: "Stop";
47
+ readonly cursor: "stop";
48
+ readonly openclaw: true;
49
+ readonly opencodeDiscovery: true;
50
+ readonly timeoutSeconds: 5;
51
+ readonly cursorLoopLimit: 3;
52
+ }, {
53
+ readonly notifai: "session-end";
54
+ readonly document: "SessionEnd";
55
+ readonly cursor: "sessionEnd";
56
+ readonly openclaw: true;
57
+ readonly opencodeDiscovery: true;
58
+ readonly timeoutSeconds: 3;
59
+ }];
60
+ export type HookEvent = (typeof HOOK_EVENT_TABLE)[number]['notifai'];
61
+ export declare const HOOK_EVENTS: readonly HookEvent[];
62
+ /** Alternation of Notifai hook-event tokens for command ownership regexes. */
63
+ export declare const HOOK_EVENT_PATTERN: string;
64
+ export declare const HOOK_EVENT_COMMAND_RE: RegExp;
65
+ /**
66
+ * OpenCode has no settings document, so discovery reconstructs the joints
67
+ * the generated module reports as handlers. Session start/subagent start
68
+ * arrive through `experimental.chat.system.transform` rather than this list.
69
+ */
70
+ export declare const OPENCODE_EVENTS: (readonly ["SessionStart" | "SubagentStart" | "UserPromptSubmit" | "Stop" | "SessionEnd", "session-start" | "subagent-start" | "stop" | "user-prompt-submit" | "session-end"])[];
71
+ export declare const OPENCLAW_EVENTS: (readonly ["SessionStart" | "SubagentStart" | "UserPromptSubmit" | "Stop" | "SessionEnd", "session-start" | "subagent-start" | "stop" | "user-prompt-submit" | "session-end"])[];
5
72
  /** Lifecycle handlers one installed harness must carry in this CLI build. */
6
73
  export declare function requiredHookEvents(harness: HookInstallableHarness): readonly HookEvent[];
@@ -1,22 +1,84 @@
1
1
  /** Canonical lifecycle event vocabulary shared by installation and execution. */
2
2
  import {} from './harnesses.js';
3
- // ---------------------------------------------------------------------------
4
- // hook / ask / close — harness integration
5
- // ---------------------------------------------------------------------------
6
- export const HOOK_EVENTS = [
7
- 'session-start',
8
- 'subagent-start',
9
- 'activation-stop',
10
- 'user-prompt-submit',
11
- 'stop',
12
- 'session-end',
3
+ /**
4
+ * One harness-neutral table for the lifecycle events this CLI build serves.
5
+ *
6
+ * Builders, generated-plugin discovery lists, ownership regexes, and
7
+ * `HOOK_EVENTS` all derive from this. Per-harness *shape* (async Stop,
8
+ * Cursor `loop_limit`, OpenCode native joint names) stays at the adapter;
9
+ * this table owns names, budgets, and which harnesses receive each event.
10
+ *
11
+ * Timeouts are seconds. Document Stop is not taken from `timeoutSeconds`:
12
+ * Question Routing hosts use the full-window budget, and the Cursor `stop`
13
+ * handler uses the non-routing blocking budget.
14
+ */
15
+ export const HOOK_EVENT_TABLE = [
16
+ {
17
+ notifai: 'session-start',
18
+ document: 'SessionStart',
19
+ cursor: 'sessionStart',
20
+ openclaw: true,
21
+ opencodeDiscovery: false,
22
+ timeoutSeconds: 5,
23
+ },
24
+ {
25
+ notifai: 'subagent-start',
26
+ document: 'SubagentStart',
27
+ cursor: null,
28
+ openclaw: true,
29
+ opencodeDiscovery: false,
30
+ timeoutSeconds: 5,
31
+ },
32
+ {
33
+ notifai: 'activation-stop',
34
+ document: null,
35
+ cursor: 'stop',
36
+ openclaw: false,
37
+ opencodeDiscovery: false,
38
+ timeoutSeconds: 5,
39
+ cursorLoopLimit: 1,
40
+ },
41
+ {
42
+ notifai: 'user-prompt-submit',
43
+ document: 'UserPromptSubmit',
44
+ cursor: 'beforeSubmitPrompt',
45
+ openclaw: true,
46
+ opencodeDiscovery: true,
47
+ timeoutSeconds: 15,
48
+ },
49
+ {
50
+ notifai: 'stop',
51
+ document: 'Stop',
52
+ cursor: 'stop',
53
+ openclaw: true,
54
+ opencodeDiscovery: true,
55
+ timeoutSeconds: 5,
56
+ cursorLoopLimit: 3,
57
+ },
58
+ {
59
+ notifai: 'session-end',
60
+ document: 'SessionEnd',
61
+ cursor: 'sessionEnd',
62
+ openclaw: true,
63
+ opencodeDiscovery: true,
64
+ timeoutSeconds: 3,
65
+ },
13
66
  ];
67
+ export const HOOK_EVENTS = HOOK_EVENT_TABLE.map((row) => row.notifai);
68
+ /** Alternation of Notifai hook-event tokens for command ownership regexes. */
69
+ export const HOOK_EVENT_PATTERN = HOOK_EVENTS.join('|');
70
+ export const HOOK_EVENT_COMMAND_RE = new RegExp(` hook (${HOOK_EVENT_PATTERN})\\b`);
71
+ /**
72
+ * OpenCode has no settings document, so discovery reconstructs the joints
73
+ * the generated module reports as handlers. Session start/subagent start
74
+ * arrive through `experimental.chat.system.transform` rather than this list.
75
+ */
76
+ export const OPENCODE_EVENTS = HOOK_EVENT_TABLE.filter((row) => row.opencodeDiscovery && row.document !== null).map((row) => [row.document, row.notifai]);
77
+ export const OPENCLAW_EVENTS = HOOK_EVENT_TABLE.filter((row) => row.openclaw && row.document !== null).map((row) => [row.document, row.notifai]);
14
78
  /** Lifecycle handlers one installed harness must carry in this CLI build. */
15
79
  export function requiredHookEvents(harness) {
16
80
  if (harness === 'opencode' || harness === 'openclaw')
17
81
  return [];
18
- return harness === 'cursor'
19
- ? ['session-start', 'activation-stop', 'user-prompt-submit', 'stop', 'session-end']
20
- : ['session-start', 'subagent-start', 'user-prompt-submit', 'stop', 'session-end'];
82
+ return HOOK_EVENT_TABLE.filter((row) => harness === 'cursor' ? row.cursor !== null : row.document !== null).map((row) => row.notifai);
21
83
  }
22
84
  //# sourceMappingURL=hook-events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook-events.js","sourceRoot":"","sources":["../src/hook-events.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,OAAO,EAA+B,MAAM,gBAAgB,CAAA;AAE5D,8EAA8E;AAC9E,2CAA2C;AAC3C,8EAA8E;AAE9E,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,oBAAoB;IACpB,MAAM;IACN,aAAa;CACL,CAAA;AAIV,6EAA6E;AAC7E,MAAM,UAAU,kBAAkB,CAAC,OAA+B;IAChE,IAAI,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,UAAU;QAAE,OAAO,EAAE,CAAA;IAC/D,OAAO,OAAO,KAAK,QAAQ;QACzB,CAAC,CAAC,CAAC,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,EAAE,aAAa,CAAC;QACnF,CAAC,CAAC,CAAC,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,EAAE,aAAa,CAAC,CAAA;AACtF,CAAC"}
1
+ {"version":3,"file":"hook-events.js","sourceRoot":"","sources":["../src/hook-events.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { acknowledgementBlockContext, amendAcceptedAnswers, answersContext, fini
7
7
  import { clearMatchingProjectSession, writeProjectSession } from './hook-project-sessions.js';
8
8
  import { claimHandoffState, claimQuestionPush, releaseQuestionPush } from './hook-question-lock.js';
9
9
  import { closeQuietly, drainOrphanRetirements, drainRetirements, finalizeReplies, orphanRetirements, pendingAnsweredByPrompt, retirePendings, retiringQuestion, } from './hook-question-retirement.js';
10
- import { clearFrozenSubmission, dropPendingQuestion, isSamePending, pendingQuestions, rememberQuestionState, sourceContextAtHookEvent, summarizeRequestIds, } from './hook-question-state.js';
10
+ import { admitQueuedQuestion, clearFrozenSubmission, dropPendingQuestion, isSamePending, pendingQuestions, questionSubmissionAttempted, queuedQuestionStillEligible, rememberQuestionState, sourceContextAtHookEvent, summarizeRequestIds, } from './hook-question-state.js';
11
11
  import { clearSessionState, markSessionEnded, pendingList, readSessionState, sessionHasEnded, sessionStatePath, updateSessionState, writeSessionState, writeSessionStateUnlocked, } from './hook-session-state.js';
12
12
  import { userPromptContextOutput } from './session-activation.js';
13
13
  import { QUESTION_STOP_TEARDOWN_HEADROOM_SECONDS, QUESTION_SUBMISSION_COMPLETION_HEADROOM_SECONDS, QUESTION_WAITER_CEILING_SECONDS, } from './question-timing.js';
@@ -106,16 +106,29 @@ async function prepareQuestionSubmission(ctx, options) {
106
106
  owner_deadline_at: options.ownerDeadlineAt,
107
107
  };
108
108
  }
109
- async function submitQuestion(ctx, intent) {
110
- const receipt = await ctx.client.submit({
111
- request_id: intent.request_id,
112
- idempotency_key: intent.idempotency_key,
113
- draft: intent.draft,
114
- }, 0);
115
- if (receipt.request_id !== intent.request_id) {
116
- throw new Error(`server replay returned ${receipt.request_id}, expected reserved ${intent.request_id}`);
109
+ function submitQuestion(ctx, sessionId, entry, intent, notes) {
110
+ try {
111
+ const attempt = admitQueuedQuestion(sessionId, ctx.env, entry, intent, ctx.now(), async () => {
112
+ const receipt = await ctx.client.submit({
113
+ request_id: intent.request_id,
114
+ idempotency_key: intent.idempotency_key,
115
+ draft: intent.draft,
116
+ }, 0);
117
+ if (receipt.request_id !== intent.request_id) {
118
+ throw new Error(`server replay returned ${receipt.request_id}, expected reserved ${intent.request_id}`);
119
+ }
120
+ return receipt;
121
+ });
122
+ if (attempt === null)
123
+ notes.push('the question was retired before submission; not uploading it');
124
+ return attempt;
125
+ }
126
+ catch (err) {
127
+ // Only synchronous local admission failed. The callback returns a promise,
128
+ // so transport failures stay on the caller's ambiguous-response path.
129
+ notes.push(`could not admit the queued question; preserving it without upload: ${String(err)}`);
130
+ return null;
117
131
  }
118
- return receipt;
119
132
  }
120
133
  function canSubmitCompleteWindow(ctx, intent, fallbackWindowSeconds) {
121
134
  const frozenWindowSeconds = intent.draft.reply?.expires_in_seconds ?? fallbackWindowSeconds;
@@ -441,7 +454,7 @@ export async function handleUserPromptSubmit(ctx, envelope) {
441
454
  const retiring = [...(current.retiring ?? [])];
442
455
  const matchedNow = pendingAnsweredByPrompt(envelope.prompt, pendingList(current));
443
456
  const unmatched = pendingList(current).filter((entry) => !matchedNow.some((item) => isSamePending(item, entry)));
444
- for (const entry of matchedNow.filter((item) => item.request_id !== undefined)) {
457
+ for (const entry of matchedNow.filter(questionSubmissionAttempted)) {
445
458
  const retirement = retiringQuestion(entry, 'answered_elsewhere', envelope.cwd);
446
459
  if (retirement !== null &&
447
460
  !retiring.some((parked) => parked.request_id === retirement.request_id)) {
@@ -474,7 +487,7 @@ export async function handleUserPromptSubmit(ctx, envelope) {
474
487
  if (current.continuation !== undefined) {
475
488
  next.continuation = { ...current.continuation, count: 0 };
476
489
  }
477
- return matchedNow.reduce((remembered, entry) => rememberQuestionState(remembered, entry, entry.request_id === undefined ? 'withdrawn' : 'retired'), next);
490
+ return matchedNow.reduce((remembered, entry) => rememberQuestionState(remembered, entry, questionSubmissionAttempted(entry) ? 'retired' : 'withdrawn'), next);
478
491
  });
479
492
  // The bridge that lets a plain `notifai ask` find the hook's canonical
480
493
  // session: an agent shell command gets no hook payload, and not every
@@ -989,6 +1002,10 @@ async function escalate(ctx, envelope, sessionId, unasked, alreadyLive, notes, h
989
1002
  const submitted = [];
990
1003
  const admissionAnswers = [];
991
1004
  for (const entry of unasked) {
1005
+ if (!queuedQuestionStillEligible(sessionId, ctx.env, entry)) {
1006
+ notes.push('the question was retired before submission; not uploading it');
1007
+ continue;
1008
+ }
992
1009
  // The service owns how long the answer is accepted. This process begins
993
1010
  // before submission, so its larger maximum-window budget includes startup
994
1011
  // headroom and remains alive through the complete committed window.
@@ -1063,7 +1080,10 @@ async function escalate(ctx, envelope, sessionId, unasked, alreadyLive, notes, h
1063
1080
  let receipt;
1064
1081
  let admissionConfirmed = false;
1065
1082
  try {
1066
- receipt = await submitQuestion(ctx, intent);
1083
+ const attempt = submitQuestion(ctx, sessionId, entry, intent, notes);
1084
+ if (attempt === null)
1085
+ continue;
1086
+ receipt = await attempt;
1067
1087
  admissionConfirmed = true;
1068
1088
  }
1069
1089
  catch (caught) {
@@ -1113,7 +1133,10 @@ async function escalate(ctx, envelope, sessionId, unasked, alreadyLive, notes, h
1113
1133
  notes.push('the Agent Session ended before recovered submission');
1114
1134
  continue;
1115
1135
  }
1116
- receipt = await submitQuestion(ctx, intent);
1136
+ const attempt = submitQuestion(ctx, sessionId, entry, intent, notes);
1137
+ if (attempt === null)
1138
+ continue;
1139
+ receipt = await attempt;
1117
1140
  admissionConfirmed = true;
1118
1141
  }
1119
1142
  catch (retryErr) {
@@ -1247,7 +1270,7 @@ async function escalate(ctx, envelope, sessionId, unasked, alreadyLive, notes, h
1247
1270
  if (!retiring.some((parked) => parked.request_id === retirement.request_id)) {
1248
1271
  retiring.push(retirement);
1249
1272
  }
1250
- return { ...current, retiring };
1273
+ return rememberQuestionState({ ...current, retiring }, live, 'retired');
1251
1274
  });
1252
1275
  }
1253
1276
  if (sessionHasEnded(sessionId, ctx.env)) {
@@ -1258,6 +1281,12 @@ async function escalate(ctx, envelope, sessionId, unasked, alreadyLive, notes, h
1258
1281
  notes.push('the Agent Session ended during submission; queued the question for retirement');
1259
1282
  continue;
1260
1283
  }
1284
+ if (!pendingList(readSessionState(sessionId, ctx.env)).some((candidate) => isSamePending(candidate, entry))) {
1285
+ // A local close won after admission. Never resurrect the queue or wait
1286
+ // for an answer to a retired question; settle its reserved remote id.
1287
+ await drainRetirements(ctx, sessionId, ctx.env);
1288
+ continue;
1289
+ }
1261
1290
  submitted.push(live);
1262
1291
  }
1263
1292
  if (admissionAnswers.length > 0) {