@raidiant/notifai 9.2.1 → 9.3.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.
Files changed (114) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +8 -5
  3. package/dist/claude-wake.js +11 -0
  4. package/dist/claude-wake.js.map +1 -1
  5. package/dist/codex-wake.js +9 -0
  6. package/dist/codex-wake.js.map +1 -1
  7. package/dist/commands-core.d.ts +0 -3
  8. package/dist/commands-core.js.map +1 -1
  9. package/dist/commands-doctor.js +41 -2
  10. package/dist/commands-doctor.js.map +1 -1
  11. package/dist/commands-harness-context.d.ts +2 -2
  12. package/dist/commands-harness-context.js +1 -1
  13. package/dist/commands-hook-shape.d.ts +4 -3
  14. package/dist/commands-hook-shape.js +19 -10
  15. package/dist/commands-hook-shape.js.map +1 -1
  16. package/dist/commands-hooks.js +66 -15
  17. package/dist/commands-hooks.js.map +1 -1
  18. package/dist/commands-init.js +12 -1
  19. package/dist/commands-init.js.map +1 -1
  20. package/dist/commands-project.d.ts +4 -0
  21. package/dist/commands-project.js +41 -0
  22. package/dist/commands-project.js.map +1 -0
  23. package/dist/commands-send-support.js +1 -22
  24. package/dist/commands-send-support.js.map +1 -1
  25. package/dist/commands-send.js +11 -5
  26. package/dist/commands-send.js.map +1 -1
  27. package/dist/commands-skill.js +58 -0
  28. package/dist/commands-skill.js.map +1 -1
  29. package/dist/commands.d.ts +1 -0
  30. package/dist/commands.js +1 -0
  31. package/dist/commands.js.map +1 -1
  32. package/dist/config-schema.js +2 -2
  33. package/dist/config-schema.js.map +1 -1
  34. package/dist/config.d.ts +8 -8
  35. package/dist/config.js +6 -9
  36. package/dist/config.js.map +1 -1
  37. package/dist/guidance-content.d.ts +3 -0
  38. package/dist/guidance-content.js +20 -0
  39. package/dist/guidance-content.js.map +1 -1
  40. package/dist/guidance-render.js +3 -3
  41. package/dist/guidance-render.js.map +1 -1
  42. package/dist/harnesses.js +2 -2
  43. package/dist/harnesses.js.map +1 -1
  44. package/dist/hooks.d.ts +26 -50
  45. package/dist/hooks.js +391 -150
  46. package/dist/hooks.js.map +1 -1
  47. package/dist/install-hooks.d.ts +7 -28
  48. package/dist/install-hooks.js +18 -37
  49. package/dist/install-hooks.js.map +1 -1
  50. package/dist/invocation-context.d.ts +1 -1
  51. package/dist/invocation-context.js +2 -2
  52. package/dist/invocation-context.js.map +1 -1
  53. package/dist/program.d.ts +4 -1
  54. package/dist/program.js +33 -15
  55. package/dist/program.js.map +1 -1
  56. package/dist/project-enablement.d.ts +15 -0
  57. package/dist/project-enablement.js +87 -0
  58. package/dist/project-enablement.js.map +1 -0
  59. package/dist/question-timing.d.ts +46 -0
  60. package/dist/question-timing.js +48 -0
  61. package/dist/question-timing.js.map +1 -0
  62. package/dist/readiness.d.ts +7 -0
  63. package/dist/readiness.js.map +1 -1
  64. package/dist/send.d.ts +4 -2
  65. package/dist/send.js +6 -1
  66. package/dist/send.js.map +1 -1
  67. package/dist/session-activation.d.ts +1 -1
  68. package/dist/session-activation.js +3 -4
  69. package/dist/session-activation.js.map +1 -1
  70. package/package.json +2 -2
  71. package/src/claude-wake.test.ts +1 -0
  72. package/src/claude-wake.ts +10 -0
  73. package/src/codex-wake.test.ts +1 -0
  74. package/src/codex-wake.ts +9 -0
  75. package/src/commands-core.ts +0 -3
  76. package/src/commands-doctor.ts +48 -4
  77. package/src/commands-harness-context.ts +2 -2
  78. package/src/commands-hook-shape.ts +26 -10
  79. package/src/commands-hooks.ts +62 -16
  80. package/src/commands-init.ts +11 -1
  81. package/src/commands-project.ts +47 -0
  82. package/src/commands-send-support.ts +1 -27
  83. package/src/commands-send.ts +9 -4
  84. package/src/commands-skill.test.ts +44 -0
  85. package/src/commands-skill.ts +57 -0
  86. package/src/commands.test.ts +47 -17
  87. package/src/commands.ts +5 -0
  88. package/src/config-schema.ts +2 -2
  89. package/src/config.test.ts +2 -3
  90. package/src/config.ts +12 -15
  91. package/src/guidance-content.ts +22 -0
  92. package/src/guidance-render.ts +3 -3
  93. package/src/harnesses.ts +2 -2
  94. package/src/hook-adapter.test.ts +27 -8
  95. package/src/hooks.test.ts +808 -80
  96. package/src/hooks.ts +525 -181
  97. package/src/install-hooks.test.ts +8 -12
  98. package/src/install-hooks.ts +21 -37
  99. package/src/invocation-context.test.ts +1 -1
  100. package/src/invocation-context.ts +2 -2
  101. package/src/program.test.ts +18 -0
  102. package/src/program.ts +36 -14
  103. package/src/project-enablement.test.ts +55 -0
  104. package/src/project-enablement.ts +99 -0
  105. package/src/question-timing.ts +56 -0
  106. package/src/readiness.ts +8 -1
  107. package/src/send.ts +10 -3
  108. package/src/session-activation.ts +3 -4
  109. package/src/skill.test.ts +2 -2
  110. package/dist/orca-session-title.d.ts +0 -10
  111. package/dist/orca-session-title.js +0 -99
  112. package/dist/orca-session-title.js.map +0 -1
  113. package/src/orca-session-title.test.ts +0 -95
  114. package/src/orca-session-title.ts +0 -105
package/dist/config.d.ts CHANGED
@@ -10,8 +10,8 @@ import { CLI_SOUNDS, INTERRUPTION_LEVELS } from '@raidiant/notifai-protocol';
10
10
  * preference that evaporates mid-session is worse than none.
11
11
  *
12
12
  * `project-local` is a personal file under the user's config directory, keyed
13
- * by the project root so a checkout does not have to gitignore anything. Shared
14
- * `.notifai/config.toml` stays in the tree for committed project identity.
13
+ * by the Project root so a checkout does not have to gitignore anything. Shared
14
+ * `.notifai/config.toml` stays in the tree for committed Project identity.
15
15
  *
16
16
  * `config show --explain` surfaces the winning layer per key.
17
17
  */
@@ -47,8 +47,8 @@ export interface CliConfig {
47
47
  * elapses does the question reach companion devices.
48
48
  *
49
49
  * A timer, and only a timer. Whether the user happens to be at this keyboard
50
- * decides nothing — the waiter no longer holds their terminal, so there is
51
- * nothing for their presence to protect them from.
50
+ * decides nothing; the harness-specific owner continues waiting either in
51
+ * the held turn or out of band.
52
52
  */
53
53
  ask_grace_seconds: ResolvedValue<number>;
54
54
  /**
@@ -67,7 +67,7 @@ export interface CliConfig {
67
67
  * usefulness.
68
68
  */
69
69
  log_max_bytes: ResolvedValue<number>;
70
- /** How long the server keeps accepting an answer to a question. */
70
+ /** How long the server accepts an answer and Question Routing owns its return path. */
71
71
  reply_window_seconds: ResolvedValue<number>;
72
72
  /** Log files kept in total, the active one included. */
73
73
  log_max_files: ResolvedValue<number>;
@@ -130,9 +130,9 @@ export declare function sessionConfigPath(sessionId: string, env?: NodeJS.Proces
130
130
  */
131
131
  export declare function sanitizeSessionId(sessionId: string): string;
132
132
  /**
133
- * Pointer from a project directory to the harness session currently working in
133
+ * Pointer from a Project directory to the Agent Session currently working in
134
134
  * it, written by the UserPromptSubmit hook. Without it `notifai ask` has no way
135
- * to learn its own session id: an ordinary agent shell command receives no hook
135
+ * to learn its own Agent Session id: an ordinary agent shell command receives no hook
136
136
  * payload, and no harness exports one into the environment.
137
137
  */
138
138
  export declare function projectSessionPointerPath(cwd: string, env?: NodeJS.ProcessEnv): string;
@@ -166,7 +166,7 @@ export declare function loadConfig(options: {
166
166
  cwd?: string;
167
167
  env?: NodeJS.ProcessEnv;
168
168
  flags?: FlagOverrides;
169
- /** Harness session id; enables the session override layer when present. */
169
+ /** Agent Session id; enables the Agent Session override layer when present. */
170
170
  sessionId?: string | undefined;
171
171
  }): CliConfig;
172
172
  export {};
package/dist/config.js CHANGED
@@ -128,9 +128,9 @@ export function sanitizeSessionId(sessionId) {
128
128
  return readable === '' ? digest : `${readable}-${digest}`;
129
129
  }
130
130
  /**
131
- * Pointer from a project directory to the harness session currently working in
131
+ * Pointer from a Project directory to the Agent Session currently working in
132
132
  * it, written by the UserPromptSubmit hook. Without it `notifai ask` has no way
133
- * to learn its own session id: an ordinary agent shell command receives no hook
133
+ * to learn its own Agent Session id: an ordinary agent shell command receives no hook
134
134
  * payload, and no harness exports one into the environment.
135
135
  */
136
136
  export function projectSessionPointerPath(cwd, env = process.env) {
@@ -203,17 +203,14 @@ export function findProjectLocalConfigPath(startDir, env = process.env) {
203
203
  }
204
204
  /**
205
205
  * Ranges every layer is clamped to. Config is readable from a repository, so an
206
- * out-of-range value is attacker input, not a typo: an unbounded grace window
207
- * would consume the waiter's whole ceiling and silently leave no time at all in
208
- * which the user's answer could still be accepted.
206
+ * out-of-range value is attacker input, not a typo.
209
207
  */
210
208
  const NUMERIC_BOUNDS = {
211
209
  wait_seconds: { min: 0, max: 300 },
212
210
  ttl_seconds: { min: 0, max: 7 * 24 * 3600 },
213
- // A plain number, no longer derived from a hook budget's leftovers. Six
214
- // minutes leaves two clear minutes of the waiter's 480s ceiling, so the
215
- // longest window a user can choose still leaves an answer window the server
216
- // will accept — with room to spare for a timer that wakes late.
211
+ // Six minutes is the supported terminal-first preference bound. The Stop
212
+ // owner carries separate startup headroom, so this never shortens the answer
213
+ // window that begins after submission.
217
214
  ask_grace_seconds: { min: 0, max: 360 },
218
215
  // The floor is the shortest window the wire contract accepts; the ceiling is
219
216
  // the point past which a question would outlive the retained content it
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,9 @@ export interface GuidanceTopic {
22
22
  /** The Markdown the agent reads. */
23
23
  content: string;
24
24
  }
25
+ /** Canonical lifecycle vocabulary, always emitted from trusted CLI source. */
26
+ export declare const AGENT_TERMS_PREAMBLE = "# Notifai terms\n\nAn **Agent Event** is something that happened in the agent's work: completion,\nfailure, a blocker, a question that needs the User, or another meaningful\nchange. It stays inside the agent team until the Notification Request owner\ndecides it should reach the User.\n\nA **Notification Request** is the deliberate User-visible message or question\nsubmitted through Notifai about an Agent Event. It is not every event and it\nis not an internal worker report.\n\nThe root agent owns Notification Requests by default. Ordinary workers report\nAgent Events to their parent and do not notify the User themselves. Explicit\ndelegation transfers that ownership for the delegated work.";
27
+ export declare const AGENT_TERMS_FALLBACK = "# Notifai terms\n\nAn **Agent Event** is a meaningful occurrence in agent work. A **Notification\nRequest** is a deliberate User-visible message about one. Root owns requests;\nworkers report events unless ownership is explicitly delegated.";
25
28
  /**
26
29
  * Topic order is reading order: decide first, then each thing an agent writes,
27
30
  * in the order it writes them.
@@ -14,6 +14,26 @@
14
14
  * finished, what went wrong, what needs them. A detail earns its place only
15
15
  * when it changes what the user does next.
16
16
  */
17
+ /** Canonical lifecycle vocabulary, always emitted from trusted CLI source. */
18
+ export const AGENT_TERMS_PREAMBLE = `# Notifai terms
19
+
20
+ An **Agent Event** is something that happened in the agent's work: completion,
21
+ failure, a blocker, a question that needs the User, or another meaningful
22
+ change. It stays inside the agent team until the Notification Request owner
23
+ decides it should reach the User.
24
+
25
+ A **Notification Request** is the deliberate User-visible message or question
26
+ submitted through Notifai about an Agent Event. It is not every event and it
27
+ is not an internal worker report.
28
+
29
+ The root agent owns Notification Requests by default. Ordinary workers report
30
+ Agent Events to their parent and do not notify the User themselves. Explicit
31
+ delegation transfers that ownership for the delegated work.`;
32
+ export const AGENT_TERMS_FALLBACK = `# Notifai terms
33
+
34
+ An **Agent Event** is a meaningful occurrence in agent work. A **Notification
35
+ Request** is a deliberate User-visible message about one. Root owns requests;
36
+ workers report events unless ownership is explicitly delegated.`;
17
37
  const WHEN_TO_NOTIFY = `# When to notify
18
38
 
19
39
  Notify when something changed for the user:
@@ -1 +1 @@
1
- {"version":3,"file":"guidance-content.js","sourceRoot":"","sources":["../src/guidance-content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAWH,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBtB,CAAA;AAED,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBd,CAAA;AAED,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCd,CAAA;AAED,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BjB,CAAA;AAED,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;CAiBxB,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA6B;IACxD;QACE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,qCAAqC;QAC9C,OAAO,EAAE,cAAc;KACxB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,qCAAqC;QAC9C,OAAO,EAAE,MAAM;KAChB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,uDAAuD;QAChE,OAAO,EAAE,MAAM;KAChB;IACD;QACE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,2CAA2C;QACpD,OAAO,EAAE,SAAS;KACnB;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,kCAAkC;QAC3C,OAAO,EAAE,gBAAgB;KAC1B;CACF,CAAA;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AAC9D,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCA+BJ,CAAA"}
1
+ {"version":3,"file":"guidance-content.js","sourceRoot":"","sources":["../src/guidance-content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAWH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;4DAawB,CAAA;AAE5D,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;gEAI4B,CAAA;AAEhE,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBtB,CAAA;AAED,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBd,CAAA;AAED,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCd,CAAA;AAED,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BjB,CAAA;AAED,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;CAiBxB,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA6B;IACxD;QACE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,qCAAqC;QAC9C,OAAO,EAAE,cAAc;KACxB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,qCAAqC;QAC9C,OAAO,EAAE,MAAM;KAChB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,uDAAuD;QAChE,OAAO,EAAE,MAAM;KAChB;IACD;QACE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,2CAA2C;QACpD,OAAO,EAAE,SAAS;KACnB;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,kCAAkC;QAC3C,OAAO,EAAE,gBAAgB;KAC1B;CACF,CAAA;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AAC9D,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCA+BJ,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { Buffer } from 'node:buffer';
2
2
  import { describeSource } from './config-schema.js';
3
- import { GUIDANCE_TRUST_PREAMBLE } from './guidance-content.js';
3
+ import { AGENT_TERMS_FALLBACK, AGENT_TERMS_PREAMBLE, GUIDANCE_TRUST_PREAMBLE } from './guidance-content.js';
4
4
  import { resolveGuidance } from './guidance.js';
5
5
  const AUTHORITY_LABEL = {
6
6
  user: 'you',
@@ -19,7 +19,7 @@ export function renderGuidance(topics) {
19
19
  `${filePath === null ? '' : ` file=${encodeURIComponent(filePath)}`} -->`;
20
20
  return `${marker}\n${markerSafe(topic.content).trimEnd()}`;
21
21
  });
22
- return [GUIDANCE_TRUST_PREAMBLE, ...blocks].join('\n\n');
22
+ return [GUIDANCE_TRUST_PREAMBLE, AGENT_TERMS_PREAMBLE, ...blocks].join('\n\n');
23
23
  }
24
24
  /** Hard ceiling for model-visible lifecycle context, including repository topics. */
25
25
  export const GUIDANCE_CONTEXT_MAX_BYTES = 24_000;
@@ -33,7 +33,7 @@ export function boundedEffectiveGuidance(options) {
33
33
  ok: false,
34
34
  bytes,
35
35
  max_bytes: maxBytes,
36
- fallback: `${GUIDANCE_TRUST_PREAMBLE}\n\n` +
36
+ fallback: `${GUIDANCE_TRUST_PREAMBLE}\n\n${AGENT_TERMS_FALLBACK}\n\n` +
37
37
  `Notifai guidance is ${bytes} bytes, above the ${maxBytes}-byte lifecycle limit. ` +
38
38
  'Before deciding whether or how to notify, run `notifai guidance` once in this session. ' +
39
39
  'Do not infer or partially follow the omitted topics.',
@@ -1 +1 @@
1
- {"version":3,"file":"guidance-render.js","sourceRoot":"","sources":["../src/guidance-render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAsD,MAAM,eAAe,CAAA;AAEnG,MAAM,eAAe,GAAsC;IACzD,IAAI,EAAE,KAAK;IACX,UAAU,EAAE,iBAAiB;IAC7B,OAAO,EAAE,iBAAiB;CAC3B,CAAA;AAED,MAAM,YAAY,GAAG,kBAAkB,CAAA;AAEvC,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,4BAA4B,CAAC,CAAA;AACxG,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,cAAc,CAAC,MAAwC;IACrE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAClC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACvD,MAAM,MAAM,GACV,QAAQ,YAAY,UAAU,KAAK,CAAC,IAAI,SAAS,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACnF,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;QAC3E,OAAO,GAAG,MAAM,KAAK,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAA;IAC5D,CAAC,CAAC,CAAA;IACF,OAAO,CAAC,uBAAuB,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAC1D,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAA;AAMhD,MAAM,UAAU,wBAAwB,CAAC,OAIxC;IACC,MAAM,OAAO,GAAG,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,0BAA0B,CAAA;IAC/D,IAAI,KAAK,IAAI,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAC1D,OAAO;QACL,EAAE,EAAE,KAAK;QACT,KAAK;QACL,SAAS,EAAE,QAAQ;QACnB,QAAQ,EACN,GAAG,uBAAuB,MAAM;YAChC,uBAAuB,KAAK,qBAAqB,QAAQ,yBAAyB;YAClF,yFAAyF;YACzF,sDAAsD;KACzD,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"guidance-render.js","sourceRoot":"","sources":["../src/guidance-render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC3G,OAAO,EAAE,eAAe,EAAsD,MAAM,eAAe,CAAA;AAEnG,MAAM,eAAe,GAAsC;IACzD,IAAI,EAAE,KAAK;IACX,UAAU,EAAE,iBAAiB;IAC7B,OAAO,EAAE,iBAAiB;CAC3B,CAAA;AAED,MAAM,YAAY,GAAG,kBAAkB,CAAA;AAEvC,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,4BAA4B,CAAC,CAAA;AACxG,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,cAAc,CAAC,MAAwC;IACrE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAClC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACvD,MAAM,MAAM,GACV,QAAQ,YAAY,UAAU,KAAK,CAAC,IAAI,SAAS,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACnF,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;QAC3E,OAAO,GAAG,MAAM,KAAK,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAA;IAC5D,CAAC,CAAC,CAAA;IACF,OAAO,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAChF,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAA;AAMhD,MAAM,UAAU,wBAAwB,CAAC,OAIxC;IACC,MAAM,OAAO,GAAG,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,0BAA0B,CAAA;IAC/D,IAAI,KAAK,IAAI,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAC1D,OAAO;QACL,EAAE,EAAE,KAAK;QACT,KAAK;QACL,SAAS,EAAE,QAAQ;QACnB,QAAQ,EACN,GAAG,uBAAuB,OAAO,oBAAoB,MAAM;YAC3D,uBAAuB,KAAK,qBAAqB,QAAQ,yBAAyB;YAClF,yFAAyF;YACzF,sDAAsD;KACzD,CAAA;AACH,CAAC"}
package/dist/harnesses.js CHANGED
@@ -14,12 +14,12 @@ export const HARNESS_CAPABILITIES = {
14
14
  'claude-code': {
15
15
  stopContinuation: 'decision-block',
16
16
  deliveryRoutes: ['hook-continuation', 'inbox-socket', 'cold-resume', 'hold-for-next-turn'],
17
- deliveryContract: 'the Stop hook returns at once and waits out of band, then posts the answer into this same session over its own inbox socket; a session that has stopped is resumed only once a liveness probe proves it stopped',
17
+ deliveryContract: 'the Stop hook returns at once and waits out of band through the complete answer window, then posts the answer into this same session over its own inbox socket; a session that has stopped is resumed only once a liveness probe proves it stopped',
18
18
  },
19
19
  codex: {
20
20
  stopContinuation: 'decision-block',
21
21
  deliveryRoutes: ['hook-continuation', 'cold-resume', 'hold-for-next-turn'],
22
- deliveryContract: 'live Stop continuation while the turn is held; once it returns, a stopped thread is resumed behind its writer lock and anything else waits for the next turn',
22
+ 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',
23
23
  },
24
24
  cursor: {
25
25
  stopContinuation: 'unsupported',
@@ -1 +1 @@
1
- {"version":3,"file":"harnesses.js","sourceRoot":"","sources":["../src/harnesses.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAA;AAIhF,MAAM,CAAC,MAAM,cAAc,GAA4B;IACrD,aAAa,EAAE,aAAa;IAC5B,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACrB,CAAA;AAqBD;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAuC;IACtE,aAAa,EAAE;QACb,gBAAgB,EAAE,gBAAgB;QAClC,cAAc,EAAE,CAAC,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB,CAAC;QAC1F,gBAAgB,EACd,iNAAiN;KACpN;IACD,KAAK,EAAE;QACL,gBAAgB,EAAE,gBAAgB;QAClC,cAAc,EAAE,CAAC,mBAAmB,EAAE,aAAa,EAAE,oBAAoB,CAAC;QAC1E,gBAAgB,EACd,8JAA8J;KACjK;IACD,MAAM,EAAE;QACN,gBAAgB,EAAE,aAAa;QAC/B,cAAc,EAAE,CAAC,aAAa,CAAC;QAC/B,gBAAgB,EACd,gIAAgI;KACnI;IACD,QAAQ,EAAE;QACR,gBAAgB,EAAE,aAAa;QAC/B,cAAc,EAAE,CAAC,aAAa,CAAC;QAC/B,gBAAgB,EACd,gFAAgF;KACnF;CACF,CAAA"}
1
+ {"version":3,"file":"harnesses.js","sourceRoot":"","sources":["../src/harnesses.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAA;AAIhF,MAAM,CAAC,MAAM,cAAc,GAA4B;IACrD,aAAa,EAAE,aAAa;IAC5B,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACrB,CAAA;AAqBD;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAuC;IACtE,aAAa,EAAE;QACb,gBAAgB,EAAE,gBAAgB;QAClC,cAAc,EAAE,CAAC,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB,CAAC;QAC1F,gBAAgB,EACd,oPAAoP;KACvP;IACD,KAAK,EAAE;QACL,gBAAgB,EAAE,gBAAgB;QAClC,cAAc,EAAE,CAAC,mBAAmB,EAAE,aAAa,EAAE,oBAAoB,CAAC;QAC1E,gBAAgB,EACd,0JAA0J;KAC7J;IACD,MAAM,EAAE;QACN,gBAAgB,EAAE,aAAa;QAC/B,cAAc,EAAE,CAAC,aAAa,CAAC;QAC/B,gBAAgB,EACd,gIAAgI;KACnI;IACD,QAAQ,EAAE;QACR,gBAAgB,EAAE,aAAa;QAC/B,cAAc,EAAE,CAAC,aAAa,CAAC;QAC/B,gBAAgB,EACd,gFAAgF;KACnF;CACF,CAAA"}
package/dist/hooks.d.ts CHANGED
@@ -12,12 +12,11 @@ import { type DeliveryRoute, type Harness } from './harnesses.js';
12
12
  * proven exact-session continuation fail closed at question admission.
13
13
  *
14
14
  * Where the user is standing no longer decides anything here. It used to: the
15
- * turn-end hook held the terminal for as long as it waited, so waiting was
16
- * only defensible while the person was demonstrably not at the keyboard. On
17
- * Claude Code the handler now returns instantly and the waiter runs out of
18
- * band, and nothing is monopolised in the first place — so the question is
19
- * simply whether the user wants to be reached, which they answer once in
20
- * configuration rather than implicitly with every keystroke.
15
+ * old turn-end route held the terminal briefly and made keyboard presence an
16
+ * input to whether it waited. The current policy is explicit instead: Claude
17
+ * Code owns the complete answer window out of band, while Codex owns it by
18
+ * holding the asking turn. Neither infers notification preference from
19
+ * keystrokes.
21
20
  */
22
21
  /** Fields we read from harness hook JSON. Everything else is passed through. */
23
22
  export interface HookEnvelope {
@@ -127,6 +126,11 @@ interface AcceptedAnswerDelivery {
127
126
  * passes through.
128
127
  */
129
128
  delivery_attempts?: number;
129
+ /**
130
+ * Linearization point between delivery and SessionEnd. Once recorded, the
131
+ * route began first; before it, SessionEnd cancellation wins.
132
+ */
133
+ delivery_committed_at?: number;
130
134
  /** Turns this answer has been held without being handed to the agent. */
131
135
  held_deliveries?: number;
132
136
  }
@@ -185,15 +189,13 @@ export interface PendingQuestion {
185
189
  collapse_key?: string;
186
190
  /** Exact fanout of the live question; routing config may change afterwards. */
187
191
  device_ids?: string[];
188
- /** Absolute end of the server reply window and its local continuation owner. */
192
+ /** Absolute end of the server reply window. */
189
193
  reply_deadline_at?: number;
190
194
  /**
191
- * When this Stop owner stops listening for a direct wake. Distinct from
192
- * `reply_deadline_at`: the server may still accept an answer for a day after
193
- * this owner has returned. A later Stop that treats the reply window as a
194
- * fresh waiter ceiling monopolizes the claim and skips newly registered
195
- * questions. Absent on state written before this field existed — treated as
196
- * already spent, because that is the shape a degraded waiter left behind.
195
+ * Absolute process-owner deadline. It begins before submission and includes
196
+ * startup headroom, so it must be later than `reply_deadline_at`. Absent on
197
+ * state written before ownership was persisted — treated as already spent
198
+ * instead of inventing a fresh multi-day claim.
197
199
  */
198
200
  owner_deadline_at?: number;
199
201
  /** Frozen before the first network byte, so an ambiguous submit is replayable. */
@@ -207,51 +209,17 @@ interface PendingSubmissionIntent {
207
209
  draft: NotificationDraftT;
208
210
  owner_deadline_at: number;
209
211
  }
210
- /**
211
- * The waiter's whole wall clock: the terminal-first timer, submission, and the
212
- * wait for an answer, from the moment the turn-end hook starts.
213
- *
214
- * One plain ceiling, deliberately not a budget carved into reserves. The
215
- * reserves existed to fit every phase inside a *held* turn; on Claude Code the
216
- * turn is not held any more, and on a host that still holds one the useful
217
- * question is only how long that host is willing to wait in total.
218
- */
219
- export declare const WAITER_CEILING_SECONDS = 480;
220
- /**
221
- * The same wall clock where the waiter runs in the background instead of
222
- * inside a held turn.
223
- *
224
- * On a host that holds its turn, 480 s is a real cost to the person sitting in
225
- * front of it, and the number above is right. On Claude Code the Stop hook
226
- * returns at once and the waiter is detached, so the same 480 s buys nothing
227
- * and costs a direct wake: an answer arriving at minute nine had to wait for
228
- * the session's next turn even though nothing was blocked.
229
- *
230
- * This sits under `CLAUDE_ASYNC_STOP_TIMEOUT_SECONDS` (3600) with headroom,
231
- * because that declaration's kill is silent, and under the reply window the
232
- * question was pushed with. Past it the journal still delivers at the next
233
- * turn — the ceiling decides how long a *direct* wake stays possible, never
234
- * whether the answer survives.
235
- */
236
- export declare const DETACHED_WAITER_CEILING_SECONDS = 3300;
237
- /** The waiter's wall clock, which depends on whether a turn is held open for it. */
238
- export declare function waiterCeilingSeconds(detached: boolean): number;
239
212
  /**
240
213
  * The wire contract's shortest reply window. A question submitted with less
241
214
  * than this is rejected outright, and accepting one would in any case let the
242
215
  * server go on taking an answer after the waiter that owns it has returned.
243
216
  */
244
217
  export declare const MIN_REPLY_WINDOW_SECONDS = 60;
245
- /**
246
- * HTTP budget reserved for the waiter's final reply fetch and close fence.
247
- * Taken from the owner deadline rather than added after it, so the hook does
248
- * not block past its ceiling. A near-zero remainder used to produce a
249
- * misleading 0s timeout and an unproven retirement.
250
- */
251
- export declare const FINALIZATION_NETWORK_BUDGET_SECONDS = 3;
252
218
  export interface HookOutcome {
253
219
  /** Written to stdout verbatim — the harness parses this as output. */
254
220
  stdout?: string;
221
+ /** Commit a blocking continuation immediately before the harness stdout write. */
222
+ commitStdout?: () => boolean;
255
223
  /** Whether stdout takes over the turn, rather than adding prompt context. */
256
224
  decided?: boolean;
257
225
  /** Diagnostics; harnesses surface hook stderr in the transcript. */
@@ -266,6 +234,12 @@ export interface ContinuationEvent {
266
234
  remaining: number;
267
235
  request_ids: string[];
268
236
  journal_recorded_at: number;
237
+ /**
238
+ * Must be called immediately before the route's irreversible harness write.
239
+ * It atomically orders that write against SessionEnd; false means cancellation
240
+ * won and the route must hand nothing over.
241
+ */
242
+ commitDelivery(): boolean;
269
243
  }
270
244
  /**
271
245
  * How much a route's own return proves about where the answer ended up.
@@ -292,6 +266,8 @@ export type DeliveryAcknowledgement = 'delivered' | 'stdout' | 'held';
292
266
  /** What a route returns: the hook's outcome plus what the attempt proved. */
293
267
  export interface DeliveryOutcome {
294
268
  stdout?: string;
269
+ /** Deferred SessionEnd fence for a blocking stdout continuation. */
270
+ commitStdout?: () => boolean;
295
271
  notes?: string[];
296
272
  log?: Record<string, unknown>;
297
273
  acknowledgement: DeliveryAcknowledgement;
@@ -330,7 +306,7 @@ export declare function confirmCursorStopActivation(sessionId: string, env: Node
330
306
  /** A fresh/cleared Cursor lifecycle makes its next Stop the fallback owner again. */
331
307
  export declare function resetCursorStopActivation(sessionId: string, env: NodeJS.ProcessEnv): void;
332
308
  export declare function pruneAbandonedSessions(env: NodeJS.ProcessEnv, now?: number, maxAgeMs?: number): number;
333
- export declare function claimQuestionPush(sessionId: string, env: NodeJS.ProcessEnv, now?: number, beforeStaleReplace?: () => void): boolean;
309
+ export declare function claimQuestionPush(sessionId: string, env: NodeJS.ProcessEnv, now?: number, beforeStaleReplace?: () => void, ownerDeadlineAt?: number): boolean;
334
310
  export declare function releaseQuestionPush(sessionId: string, env: NodeJS.ProcessEnv): void;
335
311
  export interface ProjectSessionPointer {
336
312
  sessionId: string;