agentfootprint 7.17.0 → 7.19.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 (202) hide show
  1. package/AGENTS.md +1 -1
  2. package/CLAUDE.md +2 -2
  3. package/ai-instructions/claude-code/SKILL.md +1 -1
  4. package/dist/adapters/hosting/agentcore.js +23 -9
  5. package/dist/adapters/hosting/agentcore.js.map +1 -1
  6. package/dist/core/Agent.js +57 -2
  7. package/dist/core/Agent.js.map +1 -1
  8. package/dist/core/RunnerBase.js +16 -1
  9. package/dist/core/RunnerBase.js.map +1 -1
  10. package/dist/core/agent/AgentBuilder.js +117 -1
  11. package/dist/core/agent/AgentBuilder.js.map +1 -1
  12. package/dist/core/agent/middleware/errors.js +54 -0
  13. package/dist/core/agent/middleware/errors.js.map +1 -0
  14. package/dist/core/agent/middleware/index.js +23 -0
  15. package/dist/core/agent/middleware/index.js.map +1 -0
  16. package/dist/core/agent/middleware/ledger.js +61 -0
  17. package/dist/core/agent/middleware/ledger.js.map +1 -0
  18. package/dist/core/agent/middleware/outcomes.js +66 -0
  19. package/dist/core/agent/middleware/outcomes.js.map +1 -0
  20. package/dist/core/agent/middleware/runChain.js +144 -0
  21. package/dist/core/agent/middleware/runChain.js.map +1 -0
  22. package/dist/core/agent/middleware/types.js +41 -0
  23. package/dist/core/agent/middleware/types.js.map +1 -0
  24. package/dist/core/agent/stages/prepareFinal.js +10 -0
  25. package/dist/core/agent/stages/prepareFinal.js.map +1 -1
  26. package/dist/core/agent/stages/route.js +62 -1
  27. package/dist/core/agent/stages/route.js.map +1 -1
  28. package/dist/core/agent/stages/seed.js +130 -85
  29. package/dist/core/agent/stages/seed.js.map +1 -1
  30. package/dist/core/agent/stages/toolCalls.js +208 -8
  31. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  32. package/dist/core/durabilityBarrier.js +68 -0
  33. package/dist/core/durabilityBarrier.js.map +1 -0
  34. package/dist/core/pause.js +19 -1
  35. package/dist/core/pause.js.map +1 -1
  36. package/dist/esm/adapters/hosting/agentcore.d.ts +4 -4
  37. package/dist/esm/adapters/hosting/agentcore.js +24 -10
  38. package/dist/esm/adapters/hosting/agentcore.js.map +1 -1
  39. package/dist/esm/core/Agent.d.ts +9 -1
  40. package/dist/esm/core/Agent.js +58 -3
  41. package/dist/esm/core/Agent.js.map +1 -1
  42. package/dist/esm/core/RunnerBase.js +16 -1
  43. package/dist/esm/core/RunnerBase.js.map +1 -1
  44. package/dist/esm/core/agent/AgentBuilder.d.ts +97 -0
  45. package/dist/esm/core/agent/AgentBuilder.js +117 -1
  46. package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
  47. package/dist/esm/core/agent/buildAgentChart.d.ts +2 -2
  48. package/dist/esm/core/agent/middleware/errors.d.ts +51 -0
  49. package/dist/esm/core/agent/middleware/errors.js +50 -0
  50. package/dist/esm/core/agent/middleware/errors.js.map +1 -0
  51. package/dist/esm/core/agent/middleware/index.d.ts +16 -0
  52. package/dist/esm/core/agent/middleware/index.js +16 -0
  53. package/dist/esm/core/agent/middleware/index.js.map +1 -0
  54. package/dist/esm/core/agent/middleware/ledger.d.ts +40 -0
  55. package/dist/esm/core/agent/middleware/ledger.js +57 -0
  56. package/dist/esm/core/agent/middleware/ledger.js.map +1 -0
  57. package/dist/esm/core/agent/middleware/outcomes.d.ts +45 -0
  58. package/dist/esm/core/agent/middleware/outcomes.js +60 -0
  59. package/dist/esm/core/agent/middleware/outcomes.js.map +1 -0
  60. package/dist/esm/core/agent/middleware/runChain.d.ts +104 -0
  61. package/dist/esm/core/agent/middleware/runChain.js +139 -0
  62. package/dist/esm/core/agent/middleware/runChain.js.map +1 -0
  63. package/dist/esm/core/agent/middleware/types.d.ts +191 -0
  64. package/dist/esm/core/agent/middleware/types.js +40 -0
  65. package/dist/esm/core/agent/middleware/types.js.map +1 -0
  66. package/dist/esm/core/agent/stages/prepareFinal.d.ts +10 -0
  67. package/dist/esm/core/agent/stages/prepareFinal.js +10 -0
  68. package/dist/esm/core/agent/stages/prepareFinal.js.map +1 -1
  69. package/dist/esm/core/agent/stages/route.d.ts +29 -0
  70. package/dist/esm/core/agent/stages/route.js +60 -0
  71. package/dist/esm/core/agent/stages/route.js.map +1 -1
  72. package/dist/esm/core/agent/stages/seed.d.ts +16 -1
  73. package/dist/esm/core/agent/stages/seed.js +130 -85
  74. package/dist/esm/core/agent/stages/seed.js.map +1 -1
  75. package/dist/esm/core/agent/stages/toolCalls.d.ts +44 -0
  76. package/dist/esm/core/agent/stages/toolCalls.js +208 -8
  77. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  78. package/dist/esm/core/agent/types.d.ts +18 -0
  79. package/dist/esm/core/durabilityBarrier.d.ts +61 -0
  80. package/dist/esm/core/durabilityBarrier.js +63 -0
  81. package/dist/esm/core/durabilityBarrier.js.map +1 -0
  82. package/dist/esm/core/pause.d.ts +42 -0
  83. package/dist/esm/core/pause.js +17 -0
  84. package/dist/esm/core/pause.js.map +1 -1
  85. package/dist/esm/events/dispatcher.d.ts +1 -1
  86. package/dist/esm/events/dispatcher.js.map +1 -1
  87. package/dist/esm/events/payloads.d.ts +26 -0
  88. package/dist/esm/events/registry.d.ts +5 -1
  89. package/dist/esm/events/registry.js +4 -0
  90. package/dist/esm/events/registry.js.map +1 -1
  91. package/dist/esm/hosting/durability.d.ts +92 -0
  92. package/dist/esm/hosting/durability.js +174 -0
  93. package/dist/esm/hosting/durability.js.map +1 -0
  94. package/dist/esm/hosting/envelope.d.ts +75 -14
  95. package/dist/esm/hosting/envelope.js +141 -16
  96. package/dist/esm/hosting/envelope.js.map +1 -1
  97. package/dist/esm/hosting/errors.d.ts +60 -11
  98. package/dist/esm/hosting/errors.js +92 -18
  99. package/dist/esm/hosting/errors.js.map +1 -1
  100. package/dist/esm/hosting/httpHost.d.ts +17 -1
  101. package/dist/esm/hosting/httpHost.js +42 -6
  102. package/dist/esm/hosting/httpHost.js.map +1 -1
  103. package/dist/esm/hosting/index.d.ts +7 -4
  104. package/dist/esm/hosting/index.js +6 -3
  105. package/dist/esm/hosting/index.js.map +1 -1
  106. package/dist/esm/hosting/nodeHost.d.ts +4 -2
  107. package/dist/esm/hosting/nodeHost.js +14 -3
  108. package/dist/esm/hosting/nodeHost.js.map +1 -1
  109. package/dist/esm/hosting/standingAgent.d.ts +22 -7
  110. package/dist/esm/hosting/standingAgent.js +144 -32
  111. package/dist/esm/hosting/standingAgent.js.map +1 -1
  112. package/dist/esm/hosting/types.d.ts +193 -19
  113. package/dist/esm/index.d.ts +2 -1
  114. package/dist/esm/index.js +13 -1
  115. package/dist/esm/index.js.map +1 -1
  116. package/dist/esm/lib/mcp/mcpServe.js +39 -6
  117. package/dist/esm/lib/mcp/mcpServe.js.map +1 -1
  118. package/dist/esm/lib/mcp/types.d.ts +16 -0
  119. package/dist/events/dispatcher.js.map +1 -1
  120. package/dist/events/registry.js +4 -0
  121. package/dist/events/registry.js.map +1 -1
  122. package/dist/hosting/durability.js +178 -0
  123. package/dist/hosting/durability.js.map +1 -0
  124. package/dist/hosting/envelope.js +146 -18
  125. package/dist/hosting/envelope.js.map +1 -1
  126. package/dist/hosting/errors.js +95 -19
  127. package/dist/hosting/errors.js.map +1 -1
  128. package/dist/hosting/httpHost.js +42 -6
  129. package/dist/hosting/httpHost.js.map +1 -1
  130. package/dist/hosting/index.js +10 -2
  131. package/dist/hosting/index.js.map +1 -1
  132. package/dist/hosting/nodeHost.js +14 -3
  133. package/dist/hosting/nodeHost.js.map +1 -1
  134. package/dist/hosting/standingAgent.js +142 -30
  135. package/dist/hosting/standingAgent.js.map +1 -1
  136. package/dist/index.js +31 -14
  137. package/dist/index.js.map +1 -1
  138. package/dist/lib/mcp/mcpServe.js +39 -6
  139. package/dist/lib/mcp/mcpServe.js.map +1 -1
  140. package/dist/types/adapters/hosting/agentcore.d.ts +4 -4
  141. package/dist/types/adapters/hosting/agentcore.d.ts.map +1 -1
  142. package/dist/types/core/Agent.d.ts +9 -1
  143. package/dist/types/core/Agent.d.ts.map +1 -1
  144. package/dist/types/core/RunnerBase.d.ts.map +1 -1
  145. package/dist/types/core/agent/AgentBuilder.d.ts +97 -0
  146. package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
  147. package/dist/types/core/agent/buildAgentChart.d.ts +2 -2
  148. package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
  149. package/dist/types/core/agent/middleware/errors.d.ts +52 -0
  150. package/dist/types/core/agent/middleware/errors.d.ts.map +1 -0
  151. package/dist/types/core/agent/middleware/index.d.ts +17 -0
  152. package/dist/types/core/agent/middleware/index.d.ts.map +1 -0
  153. package/dist/types/core/agent/middleware/ledger.d.ts +41 -0
  154. package/dist/types/core/agent/middleware/ledger.d.ts.map +1 -0
  155. package/dist/types/core/agent/middleware/outcomes.d.ts +46 -0
  156. package/dist/types/core/agent/middleware/outcomes.d.ts.map +1 -0
  157. package/dist/types/core/agent/middleware/runChain.d.ts +105 -0
  158. package/dist/types/core/agent/middleware/runChain.d.ts.map +1 -0
  159. package/dist/types/core/agent/middleware/types.d.ts +192 -0
  160. package/dist/types/core/agent/middleware/types.d.ts.map +1 -0
  161. package/dist/types/core/agent/stages/prepareFinal.d.ts +10 -0
  162. package/dist/types/core/agent/stages/prepareFinal.d.ts.map +1 -1
  163. package/dist/types/core/agent/stages/route.d.ts +29 -0
  164. package/dist/types/core/agent/stages/route.d.ts.map +1 -1
  165. package/dist/types/core/agent/stages/seed.d.ts +16 -1
  166. package/dist/types/core/agent/stages/seed.d.ts.map +1 -1
  167. package/dist/types/core/agent/stages/toolCalls.d.ts +44 -0
  168. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  169. package/dist/types/core/agent/types.d.ts +18 -0
  170. package/dist/types/core/agent/types.d.ts.map +1 -1
  171. package/dist/types/core/durabilityBarrier.d.ts +62 -0
  172. package/dist/types/core/durabilityBarrier.d.ts.map +1 -0
  173. package/dist/types/core/pause.d.ts +42 -0
  174. package/dist/types/core/pause.d.ts.map +1 -1
  175. package/dist/types/events/dispatcher.d.ts +1 -1
  176. package/dist/types/events/dispatcher.d.ts.map +1 -1
  177. package/dist/types/events/payloads.d.ts +26 -0
  178. package/dist/types/events/payloads.d.ts.map +1 -1
  179. package/dist/types/events/registry.d.ts +5 -1
  180. package/dist/types/events/registry.d.ts.map +1 -1
  181. package/dist/types/hosting/durability.d.ts +93 -0
  182. package/dist/types/hosting/durability.d.ts.map +1 -0
  183. package/dist/types/hosting/envelope.d.ts +75 -14
  184. package/dist/types/hosting/envelope.d.ts.map +1 -1
  185. package/dist/types/hosting/errors.d.ts +60 -11
  186. package/dist/types/hosting/errors.d.ts.map +1 -1
  187. package/dist/types/hosting/httpHost.d.ts +17 -1
  188. package/dist/types/hosting/httpHost.d.ts.map +1 -1
  189. package/dist/types/hosting/index.d.ts +7 -4
  190. package/dist/types/hosting/index.d.ts.map +1 -1
  191. package/dist/types/hosting/nodeHost.d.ts +4 -2
  192. package/dist/types/hosting/nodeHost.d.ts.map +1 -1
  193. package/dist/types/hosting/standingAgent.d.ts +22 -7
  194. package/dist/types/hosting/standingAgent.d.ts.map +1 -1
  195. package/dist/types/hosting/types.d.ts +193 -19
  196. package/dist/types/hosting/types.d.ts.map +1 -1
  197. package/dist/types/index.d.ts +2 -1
  198. package/dist/types/index.d.ts.map +1 -1
  199. package/dist/types/lib/mcp/mcpServe.d.ts.map +1 -1
  200. package/dist/types/lib/mcp/types.d.ts +16 -0
  201. package/dist/types/lib/mcp/types.d.ts.map +1 -1
  202. package/package.json +1 -1
@@ -0,0 +1,63 @@
1
+ /**
2
+ * core/durabilityBarrier — the one seam a durable session composer may hold
3
+ * inside a run, and nothing else may.
4
+ *
5
+ * ── What it is ───────────────────────────────────────────────────────────────
6
+ * A run's tool dispatch asks, once per ReAct iteration, "is there a durable
7
+ * write still in flight from the LAST iteration?" and — only if there is —
8
+ * waits for it before executing this iteration's tools. That is the entire
9
+ * mechanism. It exists because the alternative is a bound nobody can state:
10
+ * without it, iteration N's tools can run while iteration N-1's write is still
11
+ * on the wire, so a crash replays MORE than one iteration of side effects and
12
+ * "how much can re-execute?" has no answer.
13
+ *
14
+ * ── Why it is a WeakMap and not an option ────────────────────────────────────
15
+ * This is deliberately **not** a public extension point. footprintjs's stage
16
+ * seams and phase chain are closed here, and a general "run something between
17
+ * my stages" hook would be a new one — it would let any consumer inject
18
+ * latency, ordering and failures into a traversal, and every later feature
19
+ * would have to reason about it. So the barrier is keyed off the runner
20
+ * instance in a module-private WeakMap that appears on no barrel and no
21
+ * subpath: `agentfootprint/hosting`'s session writer installs it, the tool
22
+ * dispatch reads it, and there is no third party. Nothing in the public API
23
+ * surface mentions it, which is the point.
24
+ *
25
+ * ── Why it costs nothing when nobody installed one ───────────────────────────
26
+ * {@link pendingDurableWrite} returns `undefined` — not a resolved promise —
27
+ * when no barrier is installed, so the dispatch loop does not `await`, does not
28
+ * schedule a microtask, and produces byte-identical timing to an agent that
29
+ * never heard of durability.
30
+ *
31
+ * Pattern: Instance-keyed private capability (a WeakMap "friend" channel).
32
+ * Role: core/ layer, internal. No events, no state, no scope.
33
+ *
34
+ * @internal
35
+ */
36
+ const barriers = new WeakMap();
37
+ /**
38
+ * Install the barrier for one runner. Returns the uninstall function; the
39
+ * caller owns it, exactly as `attach()` and `on()` hand back their own.
40
+ *
41
+ * Last install wins. One runner has at most one barrier because one composer
42
+ * owns its durability — two would be two answers to "has the last write
43
+ * landed?", and a run cannot honour both.
44
+ *
45
+ * @internal
46
+ */
47
+ export function installDurabilityBarrier(owner, barrier) {
48
+ barriers.set(owner, barrier);
49
+ return () => {
50
+ if (barriers.get(owner) === barrier)
51
+ barriers.delete(owner);
52
+ };
53
+ }
54
+ /**
55
+ * The durable write still in flight for this runner, or `undefined` when there
56
+ * is no barrier installed or nothing outstanding.
57
+ *
58
+ * @internal
59
+ */
60
+ export function pendingDurableWrite(owner) {
61
+ return barriers.get(owner)?.();
62
+ }
63
+ //# sourceMappingURL=durabilityBarrier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"durabilityBarrier.js","sourceRoot":"","sources":["../../../src/core/durabilityBarrier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAWH,MAAM,QAAQ,GAAG,IAAI,OAAO,EAA6B,CAAC;AAE1D;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAa,EAAE,OAA0B;IAChF,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7B,OAAO,GAAG,EAAE;QACV,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,OAAO;YAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;AACjC,CAAC"}
@@ -37,6 +37,31 @@ export interface RunnerPauseOutcome {
37
37
  * (`checkInApproved` / `checkInDeclined`).
38
38
  */
39
39
  readonly checkIn?: CheckInRequest;
40
+ /**
41
+ * Present ONLY when a `toolMiddleware` answered `ask` — the question it put
42
+ * to a person, plus the middleware that asked. Absent for every other pause,
43
+ * which is the discriminant.
44
+ *
45
+ * Resume with a `CheckInDecision` (`checkInApproved` / `checkInDeclined`).
46
+ * That is deliberate rather than a second decision type: a person approving
47
+ * is a person approving, whether the gate was a tool's `checkIn` or a
48
+ * middleware's `ask`, and one word for one thing beats a synonym.
49
+ *
50
+ * The answer is a DECISION, not a result. Approve and the chain resumes from
51
+ * the next middleware and the REAL tool runs; decline and the model receives
52
+ * a denial it can adapt to. Nobody — not the middleware, not the person —
53
+ * gets to write the tool's answer.
54
+ */
55
+ readonly ask?: MiddlewareAsk;
56
+ }
57
+ /** The question a `toolMiddleware` put to a person, as it rides the checkpoint. */
58
+ export interface MiddlewareAsk {
59
+ /** The question, in the middleware author's own words. */
60
+ readonly question: string;
61
+ /** Anything else the answering UI should render. Never interpreted here. */
62
+ readonly detail?: unknown;
63
+ /** `name` of the middleware that asked. */
64
+ readonly middleware: string;
40
65
  }
41
66
  /** Type guard — discriminates `RunnerPauseOutcome` from a normal `TOut`. */
42
67
  export declare function isPaused<T>(result: T | RunnerPauseOutcome): result is RunnerPauseOutcome;
@@ -55,6 +80,23 @@ export declare function isPaused<T>(result: T | RunnerPauseOutcome): result is R
55
80
  export declare function isCheckInPause(result: unknown): result is RunnerPauseOutcome & {
56
81
  readonly checkIn: CheckInRequest;
57
82
  };
83
+ /**
84
+ * Type guard — is this a middleware-ask pause (a `toolMiddleware` answered
85
+ * `ask`), as opposed to a check-in or a plain `askHuman` pause? Narrows `ask`
86
+ * to present.
87
+ *
88
+ * @example
89
+ * const out = await agent.run({ message });
90
+ * if (isAskPause(out)) {
91
+ * const yes = await showToHuman(out.ask.question); // asked by out.ask.middleware
92
+ * await agent.resume(out.checkpoint, yes
93
+ * ? checkInApproved({ by: 'alice' })
94
+ * : checkInDeclined({ by: 'alice', note: 'not this one' }));
95
+ * }
96
+ */
97
+ export declare function isAskPause(result: unknown): result is RunnerPauseOutcome & {
98
+ readonly ask: MiddlewareAsk;
99
+ };
58
100
  /**
59
101
  * Control-flow error raised by `pauseHere()` inside a tool's `execute()`.
60
102
  * Caught by the Agent's tool-call stage, which forwards to `scope.$pause()`.
@@ -34,6 +34,23 @@ export function isPaused(result) {
34
34
  export function isCheckInPause(result) {
35
35
  return isPaused(result) && result.checkIn !== undefined;
36
36
  }
37
+ /**
38
+ * Type guard — is this a middleware-ask pause (a `toolMiddleware` answered
39
+ * `ask`), as opposed to a check-in or a plain `askHuman` pause? Narrows `ask`
40
+ * to present.
41
+ *
42
+ * @example
43
+ * const out = await agent.run({ message });
44
+ * if (isAskPause(out)) {
45
+ * const yes = await showToHuman(out.ask.question); // asked by out.ask.middleware
46
+ * await agent.resume(out.checkpoint, yes
47
+ * ? checkInApproved({ by: 'alice' })
48
+ * : checkInDeclined({ by: 'alice', note: 'not this one' }));
49
+ * }
50
+ */
51
+ export function isAskPause(result) {
52
+ return isPaused(result) && result.ask !== undefined;
53
+ }
37
54
  /**
38
55
  * Control-flow error raised by `pauseHere()` inside a tool's `execute()`.
39
56
  * Caught by the Agent's tool-call stage, which forwards to `scope.$pause()`.
@@ -1 +1 @@
1
- {"version":3,"file":"pause.js","sourceRoot":"","sources":["../../../src/core/pause.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA2BH,4EAA4E;AAC5E,MAAM,UAAU,QAAQ,CAAI,MAA8B;IACxD,OAAO,CACL,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAK,MAA6B,CAAC,MAAM,KAAK,IAAI,CAChG,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAe;IAEf,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAK,MAA6B,CAAC,OAAO,KAAK,SAAS,CAAC;AAClF,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,CAAU;IACvB,YAAY,IAAa;QACvB,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,kEAAkE;QAClE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,OAAO,CACL,GAAG,YAAY,YAAY;QAC3B,CAAC,GAAG,YAAY,KAAK;YACnB,GAAG,CAAC,IAAI,KAAK,cAAc;YAC3B,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CACrD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"pause.js","sourceRoot":"","sources":["../../../src/core/pause.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAqDH,4EAA4E;AAC5E,MAAM,UAAU,QAAQ,CAAI,MAA8B;IACxD,OAAO,CACL,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAK,MAA6B,CAAC,MAAM,KAAK,IAAI,CAChG,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAe;IAEf,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAK,MAA6B,CAAC,OAAO,KAAK,SAAS,CAAC;AAClF,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,UAAU,CACxB,MAAe;IAEf,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAK,MAA6B,CAAC,GAAG,KAAK,SAAS,CAAC;AAC9E,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,CAAU;IACvB,YAAY,IAAa;QACvB,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,kEAAkE;QAClE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,OAAO,CACL,GAAG,YAAY,YAAY;QAC3B,CAAC,GAAG,YAAY,KAAK;YACnB,GAAG,CAAC,IAAI,KAAK,cAAc;YAC3B,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CACrD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC"}
@@ -30,7 +30,7 @@ export interface ListenOptions {
30
30
  readonly signal?: AbortSignal;
31
31
  }
32
32
  export type Unsubscribe = () => void;
33
- export type DomainWildcard = 'agentfootprint.composition.*' | 'agentfootprint.agent.*' | 'agentfootprint.stream.*' | 'agentfootprint.context.*' | 'agentfootprint.memory.*' | 'agentfootprint.tools.*' | 'agentfootprint.skill.*' | 'agentfootprint.permission.*' | 'agentfootprint.risk.*' | 'agentfootprint.fallback.*' | 'agentfootprint.cost.*' | 'agentfootprint.eval.*' | 'agentfootprint.error.*' | 'agentfootprint.pause.*' | 'agentfootprint.checkin.*' | 'agentfootprint.embedding.*';
33
+ export type DomainWildcard = 'agentfootprint.composition.*' | 'agentfootprint.agent.*' | 'agentfootprint.stream.*' | 'agentfootprint.context.*' | 'agentfootprint.memory.*' | 'agentfootprint.tools.*' | 'agentfootprint.skill.*' | 'agentfootprint.permission.*' | 'agentfootprint.risk.*' | 'agentfootprint.fallback.*' | 'agentfootprint.cost.*' | 'agentfootprint.eval.*' | 'agentfootprint.error.*' | 'agentfootprint.pause.*' | 'agentfootprint.checkin.*' | 'agentfootprint.middleware.*' | 'agentfootprint.embedding.*';
34
34
  export type AllWildcard = '*';
35
35
  export type WildcardSubscription = DomainWildcard | AllWildcard;
36
36
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../src/events/dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA0BxC;2EAC2E;AAC3E,MAAM,eAAe,GAAgB,GAAG,EAAE,CAAC,SAAS,CAAC;AAmDrD;;;GAGG;AACH,SAAS,WAAW,CAAC,MAA2B;IAC9C,KAAK,MAAM,MAAM,IAAI,MAAM;QAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC;AAED,wEAAwE;AAExE;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IACT,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;IAChD,eAAe,GAAG,IAAI,GAAG,EAA+B,CAAC;IACzD,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1D,qEAAqE;IAErE;;;OAGG;IACH,eAAe,CAAC,IAA6B;QAC3C,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnD,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1C,CAAC;IAiBD,EAAE,CACA,IAAY,EACZ,QAA8C,EAC9C,OAAuB;QAEvB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAiBD,IAAI,CACF,IAAY,EACZ,QAA8C,EAC9C,OAAqC;QAErC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACK,SAAS,CACf,IAAY,EACZ,QAA8C,EAC9C,OAAuB;QAEvB,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;QAC/B,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,kEAAkE;YAClE,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,MAAM,OAAO,GAAmB;YAC9B,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC;YAC9B,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,IAAI;SAC7B,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE/C,IAAI,CAAC,MAAM;YAAE,OAAO,MAAM,CAAC;QAE3B,sEAAsE;QACtE,8DAA8D;QAC9D,oEAAoE;QACpE,qEAAqE;QACrE,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,MAAM,EAAE,CAAC;QACX,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE;YACrB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEF,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,MAAM,EAAE,CAAC;QACX,CAAC,CAAC;IACJ,CAAC;IAUD,GAAG,CAAC,IAAY,EAAE,QAA8C;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,QAAkB,CAAC,IAAI,QAAQ,CAAC;QACpE,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC;YAC5B,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAY,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC;YAC1E,IAAI,cAAc,KAAK,UAAU,EAAE,CAAC;gBAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACtB,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;gBACnB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC/B,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,kBAAkB;QAChB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAgBD,aAAa,CAAC,IAAa;QACzB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QACnC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC;QAChE,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YAAE,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qEAAqE;IAErE;;;;;;OAMG;IACH,QAAQ,CAAC,KAA0B;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9B,yEAAyE;QACzE,6EAA6E;QAC7E,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;YAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/B,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,IAAI,CAAC,WAAW,CAAC,GAAG,SAAS,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,qEAAqE;IAE7D,WAAW,CAAC,IAAY,EAAE,MAAsB;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnB,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACK,WAAW,CAAC,IAAY,EAAE,MAA2B;QAC3D,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO;QAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,MAAM;gBAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM;YAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAEO,YAAY,CAAC,IAAY;QAC/B,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;gBACnB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,SAAS,CAAC,IAAY;QAC5B,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEO,UAAU,CAAC,MAAuC,EAAE,KAA0B;QACpF,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QACzC,qEAAqE;QACrE,+DAA+D;QAC/D,gEAAgE;QAChE,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAC7B,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACtB,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,kDAAkD;YACxE,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,kEAAkE;gBAClE,oEAAoE;gBACpE,oEAAoE;gBACpE,IAAI,SAAS,EAAE,EAAE,CAAC;oBAChB,sCAAsC;oBACtC,OAAO,CAAC,KAAK,CAAC,kCAAkC,KAAK,CAAC,IAAI,UAAU,EAAE,GAAG,CAAC,CAAC;gBAC7E,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,SAAiB;QACjC,+DAA+D;QAC/D,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC3C,OAAO,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;CACF;AAED,wEAAwE;AAExE;;;;GAIG;AACH,oJAAoJ;AACpJ,MAAM,YAAY,GAAG,IAAI,OAAO,EAAoB,CAAC;AAErD;;;;;;;GAOG;AACH,SAAS,UAAU,CACjB,QAA8C,EAC9C,IAAY;IAEZ,IAAI,CAAC,SAAS,EAAE;QAAE,OAAO,QAAQ,CAAC;IAElC,MAAM,OAAO,GAAG,CAAC,KAA0B,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAY,CAAC;QAC1C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;YAC7D,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACV,kCAAkC,IAAI,yBAAyB;gBAC7D,0EAA0E;gBAC1E,sEAAsE;gBACtE,+DAA+D,CAClE,CAAC;YACF,8DAA8D;YAC7D,MAA2B,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBAClD,sCAAsC;gBACtC,OAAO,CAAC,KAAK,CAAC,0CAA0C,IAAI,aAAa,EAAE,GAAG,CAAC,CAAC;YAClF,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,YAAY,CAAC,GAAG,CAAC,OAA4B,EAAE,QAAQ,CAAC,CAAC;IACzD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../src/events/dispatcher.ts"],"names":[],"mappings":"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"}
@@ -329,6 +329,32 @@ export interface CheckInDecisionPayload {
329
329
  readonly by: string;
330
330
  readonly note?: string;
331
331
  }
332
+ /**
333
+ * One link of a `toolMiddleware` / `messageMiddleware` chain answered.
334
+ *
335
+ * Its own domain rather than a `permission.check` with a different label:
336
+ * a middleware decision is not a permission check, and reporting it as one
337
+ * would make every consumer reading that channel believe a checker they
338
+ * never configured had fired.
339
+ *
340
+ * Deliberately carries no `before` / `after` — the values live in the
341
+ * committed `middlewareDecisions` ledger, under whatever redaction the run
342
+ * configured. An event stream is a fan-out to sinks we do not control, and
343
+ * a scrubbed value should not leave the run through it.
344
+ */
345
+ export interface MiddlewareDecisionPayload {
346
+ readonly middleware: string;
347
+ readonly at: 'tool' | 'message';
348
+ readonly phase?: 'input' | 'output';
349
+ readonly toolName?: string;
350
+ readonly toolCallId?: string;
351
+ readonly iteration: number;
352
+ readonly outcome: 'allow' | 'deny' | 'ask';
353
+ /** True when this link changed the value the chain carries forward. */
354
+ readonly changed: boolean;
355
+ /** The transform's `why`, the denial's `reason`, or the ask's `question`. */
356
+ readonly why?: string;
357
+ }
332
358
  export interface MemoryStrategyAppliedPayload {
333
359
  readonly strategyId: string;
334
360
  readonly strategyKind: 'sliding-window' | 'summarizing' | 'semantic' | 'fact-extraction' | 'hybrid';
@@ -16,7 +16,7 @@
16
16
  * major bump. See agentfootprint_v2_detailed_design.md for rules.
17
17
  */
18
18
  import type { AgentfootprintEventEnvelope } from './types.js';
19
- import type { AgentHandoffPayload, AgentIterationEndPayload, AgentIterationStartPayload, AgentRouteDecidedPayload, AgentTurnEndPayload, AgentTurnStartPayload, CompositionEnterPayload, CompositionExitPayload, ConditionalRouteDecidedPayload, ContextBudgetPressurePayload, ContextEvaluatedPayload, ContextEvictedPayload, ContextInjectedPayload, ContextSlotComposedPayload, CostLimitHitPayload, CostTickPayload, EmbeddingGeneratedPayload, ErrorFatalPayload, ErrorRecoveredPayload, ErrorRetriedPayload, EvalScorePayload, EvalThresholdCrossedPayload, AgentOutputSchemaValidationFailedPayload, AgentThinkingParseFailedPayload, StreamThinkingDeltaPayload, StreamThinkingEndPayload, FallbackTriggeredPayload, LLMEndPayload, LLMStartPayload, LLMTokenPayload, LoopIterationExitPayload, LoopIterationStartPayload, MemoryAttachedPayload, MemoryDetachedPayload, MemoryStrategyAppliedPayload, MemoryWrittenPayload, ParallelBranchCompletePayload, ParallelForkStartPayload, ParallelMergeEndPayload, PauseRequestPayload, PauseResumePayload, CheckInRequestPayload, CheckInDecisionPayload, PermissionCheckPayload, PermissionGateClosedPayload, PermissionHaltPayload, PermissionGateOpenedPayload, CredentialRequestedPayload, CredentialAcquiredPayload, CredentialAuthorizationRequiredPayload, CredentialFailedPayload, ReliabilityFailFastPayload, ReliabilityRetriedPayload, ReliabilityRecoveredPayload, RiskFlaggedPayload, SkillActivatedPayload, SkillDeactivatedPayload, SkillRejectedPayload, ToolEndPayload, ToolsActivatedPayload, ToolsDeactivatedPayload, ToolsDiscoveryStartedPayload, ToolsDiscoveryCompletedPayload, ToolsDiscoveryFailedPayload, ToolsOfferedPayload, ToolStartPayload, ValidationArgsInvalidPayload } from './payloads.js';
19
+ import type { AgentHandoffPayload, AgentIterationEndPayload, AgentIterationStartPayload, AgentRouteDecidedPayload, AgentTurnEndPayload, AgentTurnStartPayload, CompositionEnterPayload, CompositionExitPayload, ConditionalRouteDecidedPayload, ContextBudgetPressurePayload, ContextEvaluatedPayload, ContextEvictedPayload, ContextInjectedPayload, ContextSlotComposedPayload, CostLimitHitPayload, CostTickPayload, EmbeddingGeneratedPayload, ErrorFatalPayload, ErrorRecoveredPayload, ErrorRetriedPayload, EvalScorePayload, EvalThresholdCrossedPayload, AgentOutputSchemaValidationFailedPayload, AgentThinkingParseFailedPayload, StreamThinkingDeltaPayload, StreamThinkingEndPayload, FallbackTriggeredPayload, LLMEndPayload, LLMStartPayload, LLMTokenPayload, LoopIterationExitPayload, LoopIterationStartPayload, MemoryAttachedPayload, MemoryDetachedPayload, MemoryStrategyAppliedPayload, MemoryWrittenPayload, ParallelBranchCompletePayload, ParallelForkStartPayload, ParallelMergeEndPayload, PauseRequestPayload, PauseResumePayload, CheckInRequestPayload, CheckInDecisionPayload, PermissionCheckPayload, PermissionGateClosedPayload, PermissionHaltPayload, PermissionGateOpenedPayload, CredentialRequestedPayload, CredentialAcquiredPayload, CredentialAuthorizationRequiredPayload, CredentialFailedPayload, ReliabilityFailFastPayload, ReliabilityRetriedPayload, ReliabilityRecoveredPayload, RiskFlaggedPayload, SkillActivatedPayload, SkillDeactivatedPayload, SkillRejectedPayload, ToolEndPayload, ToolsActivatedPayload, ToolsDeactivatedPayload, ToolsDiscoveryStartedPayload, ToolsDiscoveryCompletedPayload, ToolsDiscoveryFailedPayload, ToolsOfferedPayload, ToolStartPayload, ValidationArgsInvalidPayload, MiddlewareDecisionPayload } from './payloads.js';
20
20
  export declare const EVENT_NAMES: {
21
21
  readonly composition: {
22
22
  readonly enter: "agentfootprint.composition.enter";
@@ -120,6 +120,9 @@ export declare const EVENT_NAMES: {
120
120
  readonly request: "agentfootprint.checkin.request";
121
121
  readonly decision: "agentfootprint.checkin.decision";
122
122
  };
123
+ readonly middleware: {
124
+ readonly decision: "agentfootprint.middleware.decision";
125
+ };
123
126
  readonly embedding: {
124
127
  readonly generated: "agentfootprint.embedding.generated";
125
128
  };
@@ -191,6 +194,7 @@ export interface AgentfootprintEventMap {
191
194
  'agentfootprint.pause.resume': AgentfootprintEventEnvelope<'agentfootprint.pause.resume', PauseResumePayload>;
192
195
  'agentfootprint.checkin.request': AgentfootprintEventEnvelope<'agentfootprint.checkin.request', CheckInRequestPayload>;
193
196
  'agentfootprint.checkin.decision': AgentfootprintEventEnvelope<'agentfootprint.checkin.decision', CheckInDecisionPayload>;
197
+ 'agentfootprint.middleware.decision': AgentfootprintEventEnvelope<'agentfootprint.middleware.decision', MiddlewareDecisionPayload>;
194
198
  'agentfootprint.embedding.generated': AgentfootprintEventEnvelope<'agentfootprint.embedding.generated', EmbeddingGeneratedPayload>;
195
199
  }
196
200
  /** Union of every typed event. Consumers use this for exhaustive `switch`. */
@@ -121,6 +121,9 @@ export const EVENT_NAMES = {
121
121
  request: 'agentfootprint.checkin.request',
122
122
  decision: 'agentfootprint.checkin.decision',
123
123
  },
124
+ middleware: {
125
+ decision: 'agentfootprint.middleware.decision',
126
+ },
124
127
  embedding: {
125
128
  generated: 'agentfootprint.embedding.generated',
126
129
  },
@@ -196,6 +199,7 @@ export const ALL_EVENT_TYPES = [
196
199
  'agentfootprint.pause.resume',
197
200
  'agentfootprint.checkin.request',
198
201
  'agentfootprint.checkin.decision',
202
+ 'agentfootprint.middleware.decision',
199
203
  'agentfootprint.embedding.generated',
200
204
  ];
201
205
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/events/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/events/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * hosting/durability — how often a run's progress becomes crash-survivable.
3
+ *
4
+ * A standing agent that only writes at the end of a turn is one restart away
5
+ * from losing everything the turn had done: the tool calls it made, the results
6
+ * it read, the iterations it spent. This is the dial that decides how much of
7
+ * that survives, and what it costs.
8
+ *
9
+ * ── Where a mid-run write can honestly come from ─────────────────────────────
10
+ * From the COMMIT boundary, and nowhere else. footprintjs commits a stage's
11
+ * writes after the stage function returns, and committed state is
12
+ * immutable-after-swap — so `ScopeRecorder.onCommit` is the one moment where
13
+ * "what the run has agreed on so far" is a real, complete, consistent thing.
14
+ * Reading the agent's live state at any other moment would be reading a stage's
15
+ * work in progress.
16
+ *
17
+ * There is no mid-run engine checkpoint to store: footprintjs builds a
18
+ * `FlowchartCheckpoint` only at a pause (`getCheckpoint()` is documented as "the
19
+ * most recent PAUSED execution"). So what a mid-run write can carry is a
20
+ * CONVERSATION — the same `AgentRunCheckpoint` every finished turn stores — and
21
+ * that is exactly enough, because that is what the next turn resumes from.
22
+ *
23
+ * ── Why it writes on SOME commits and not all of them ────────────────────────
24
+ * A two-iteration turn commits about forty times. Exactly two of those commits
25
+ * change the conversation: `Initialize` (the user's message lands) and
26
+ * `ToolCalls` (an iteration's assistant turn and its tool results land). Every
27
+ * other commit would store bytes identical to the last write. So the trigger is
28
+ * "this commit wrote `history`", which is not an optimisation but the honest
29
+ * reading of the question: the conversation moved iff `history` moved.
30
+ *
31
+ * ── What a commit boundary actually guarantees, and what it does not ─────────
32
+ * It guarantees the whole stage. The agent dispatches ALL of one iteration's
33
+ * tool calls inside one stage body, so a crash part-way through that body stores
34
+ * nothing from it and a replay re-runs that iteration's tools. That is the
35
+ * shipped idempotency requirement, unchanged — mutating tools must be
36
+ * idempotent, keyed on stable call content rather than `ctx.toolCallId`. What
37
+ * `'sync'` adds is a BOUND on it: iteration N's tools do not start until
38
+ * iteration N-1's write has landed, so the replay is the current iteration and
39
+ * never an earlier one.
40
+ *
41
+ * Pattern: an observer (`CombinedRecorder`) for the snapshot, a serialiser for
42
+ * the writes, and — for `'sync'` only — a barrier the tool dispatch waits on.
43
+ * Role: internal to `standingAgent`. Deliberately not exported: it is how the
44
+ * composer keeps its promise, not a second way to write to a store.
45
+ */
46
+ import type { CombinedRecorder } from 'footprintjs';
47
+ import type { AgentRunCheckpoint } from '../core/runCheckpoint.js';
48
+ import type { DurabilityMode } from './types.js';
49
+ /** What the writer needs from the composer around it. */
50
+ export interface DurableWriterOptions {
51
+ /** `'async'` or `'sync'`. `'exit'` never builds a writer at all. */
52
+ readonly mode: Exclude<DurabilityMode, 'exit'>;
53
+ /**
54
+ * The session this run belongs to, asked at every commit. `undefined` means
55
+ * "nothing to write to" — an anonymous request, or no run of ours in flight —
56
+ * and the commit is ignored.
57
+ */
58
+ readonly session: () => string | undefined;
59
+ /** The run id to stamp on the conversation, for correlating back to the run. */
60
+ readonly runId: () => string | undefined;
61
+ /** Where the conversation goes. */
62
+ readonly write: (sessionId: string, conversation: AgentRunCheckpoint) => Promise<void>;
63
+ }
64
+ /** The composer's handle on its own durability. */
65
+ export interface DurableWriter {
66
+ /** Attach this to the agent to start observing commits. */
67
+ readonly recorder: CombinedRecorder;
68
+ /** Install the tool-dispatch barrier. Returns the uninstall function. */
69
+ install(agent: object): () => void;
70
+ /**
71
+ * Everything outstanding has landed.
72
+ *
73
+ * The composer awaits this before writing a run's FINAL envelope, and that
74
+ * ordering is load-bearing rather than tidy: an `'async'` conversation write
75
+ * still in flight would otherwise land AFTER the terminal envelope and
76
+ * overwrite it — turning a stored pause back into a plain conversation and
77
+ * losing the question a person was asked.
78
+ *
79
+ * **Rejects when the newest write did not land.** Fail-closed on purpose: a
80
+ * store that refused the run's progress has not made it durable, and both
81
+ * things waiting on this — the next tool call under `'sync'`, and the reply —
82
+ * would otherwise proceed on a promise nobody kept.
83
+ */
84
+ settle(): Promise<void>;
85
+ }
86
+ /**
87
+ * Build the writer.
88
+ *
89
+ * Under `'sync'` it also answers the tool-dispatch barrier, which is what turns
90
+ * "we write often" into a bound on how much can re-run.
91
+ */
92
+ export declare function durableWriter(options: DurableWriterOptions): DurableWriter;
@@ -0,0 +1,174 @@
1
+ /**
2
+ * hosting/durability — how often a run's progress becomes crash-survivable.
3
+ *
4
+ * A standing agent that only writes at the end of a turn is one restart away
5
+ * from losing everything the turn had done: the tool calls it made, the results
6
+ * it read, the iterations it spent. This is the dial that decides how much of
7
+ * that survives, and what it costs.
8
+ *
9
+ * ── Where a mid-run write can honestly come from ─────────────────────────────
10
+ * From the COMMIT boundary, and nowhere else. footprintjs commits a stage's
11
+ * writes after the stage function returns, and committed state is
12
+ * immutable-after-swap — so `ScopeRecorder.onCommit` is the one moment where
13
+ * "what the run has agreed on so far" is a real, complete, consistent thing.
14
+ * Reading the agent's live state at any other moment would be reading a stage's
15
+ * work in progress.
16
+ *
17
+ * There is no mid-run engine checkpoint to store: footprintjs builds a
18
+ * `FlowchartCheckpoint` only at a pause (`getCheckpoint()` is documented as "the
19
+ * most recent PAUSED execution"). So what a mid-run write can carry is a
20
+ * CONVERSATION — the same `AgentRunCheckpoint` every finished turn stores — and
21
+ * that is exactly enough, because that is what the next turn resumes from.
22
+ *
23
+ * ── Why it writes on SOME commits and not all of them ────────────────────────
24
+ * A two-iteration turn commits about forty times. Exactly two of those commits
25
+ * change the conversation: `Initialize` (the user's message lands) and
26
+ * `ToolCalls` (an iteration's assistant turn and its tool results land). Every
27
+ * other commit would store bytes identical to the last write. So the trigger is
28
+ * "this commit wrote `history`", which is not an optimisation but the honest
29
+ * reading of the question: the conversation moved iff `history` moved.
30
+ *
31
+ * ── What a commit boundary actually guarantees, and what it does not ─────────
32
+ * It guarantees the whole stage. The agent dispatches ALL of one iteration's
33
+ * tool calls inside one stage body, so a crash part-way through that body stores
34
+ * nothing from it and a replay re-runs that iteration's tools. That is the
35
+ * shipped idempotency requirement, unchanged — mutating tools must be
36
+ * idempotent, keyed on stable call content rather than `ctx.toolCallId`. What
37
+ * `'sync'` adds is a BOUND on it: iteration N's tools do not start until
38
+ * iteration N-1's write has landed, so the replay is the current iteration and
39
+ * never an earlier one.
40
+ *
41
+ * Pattern: an observer (`CombinedRecorder`) for the snapshot, a serialiser for
42
+ * the writes, and — for `'sync'` only — a barrier the tool dispatch waits on.
43
+ * Role: internal to `standingAgent`. Deliberately not exported: it is how the
44
+ * composer keeps its promise, not a second way to write to a store.
45
+ */
46
+ import { installDurabilityBarrier } from '../core/durabilityBarrier.js';
47
+ /**
48
+ * Build the writer.
49
+ *
50
+ * Under `'sync'` it also answers the tool-dispatch barrier, which is what turns
51
+ * "we write often" into a bound on how much can re-run.
52
+ */
53
+ export function durableWriter(options) {
54
+ const { mode, session, runId, write } = options;
55
+ /** The write currently on the wire, or `undefined` when nothing is. */
56
+ let inFlight;
57
+ /**
58
+ * The newest snapshot that has not been started yet. At most ONE, and a newer
59
+ * one replaces it: the conversation only grows, so a superseded snapshot is a
60
+ * prefix of the one replacing it and writing it first would buy nothing.
61
+ */
62
+ let queued;
63
+ /**
64
+ * Why the NEWEST write did not land, or `undefined` when it did. Cleared by a
65
+ * write that succeeds — a store that failed once and then took the newer
66
+ * state has made that state durable, and reporting the older failure would be
67
+ * describing a problem that no longer exists.
68
+ */
69
+ let failure;
70
+ /** Per-run accumulation, rebuilt from the commits themselves. */
71
+ let history = [];
72
+ let userMessage = '';
73
+ let iteration = 0;
74
+ function pump() {
75
+ if (inFlight !== undefined || queued === undefined)
76
+ return;
77
+ const next = queued;
78
+ queued = undefined;
79
+ inFlight = write(next.sessionId, next.conversation)
80
+ .then(() => {
81
+ failure = undefined;
82
+ }, (err) => {
83
+ failure = new Error(`[hosting] the session store did not accept this run's progress, so nothing ` +
84
+ `after this point may proceed as if it had` +
85
+ (mode === 'sync' ? ` — the next tool call was not allowed to run` : '') +
86
+ `. Underlying error: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
87
+ })
88
+ .then(() => {
89
+ inFlight = undefined;
90
+ pump();
91
+ });
92
+ }
93
+ function enqueue(sessionId) {
94
+ queued = {
95
+ sessionId,
96
+ conversation: {
97
+ version: 1,
98
+ runId: runId() ?? 'unknown',
99
+ // The commit event hands over the stage's retained write view. Clone on
100
+ // the way to a store so nothing a persistence layer does can reach back
101
+ // into the run's own snapshot.
102
+ history: structuredClone(history),
103
+ lastCompletedIteration: iteration,
104
+ originalInput: { message: userMessage },
105
+ checkpointedAt: Date.now(),
106
+ },
107
+ };
108
+ pump();
109
+ }
110
+ const recorder = {
111
+ id: 'af-hosting-durability',
112
+ // INLINE, always. A write delivered one beat behind is a write that can be
113
+ // lost by the very crash it exists to survive — and under `'sync'` the
114
+ // barrier would be waiting on a snapshot the queue had not handed over yet.
115
+ // The causal-evidence bridge and the compaction meter are inline for the
116
+ // same class of reason.
117
+ delivery: 'inline',
118
+ onCommit(event) {
119
+ let conversationMoved = false;
120
+ for (const mutation of event.mutations) {
121
+ if (mutation.key === 'history' && Array.isArray(mutation.value)) {
122
+ history = mutation.value;
123
+ conversationMoved = true;
124
+ }
125
+ else if (mutation.key === 'userMessage' && typeof mutation.value === 'string') {
126
+ userMessage = mutation.value;
127
+ }
128
+ else if (mutation.key === 'iteration' && typeof mutation.value === 'number') {
129
+ iteration = mutation.value;
130
+ }
131
+ }
132
+ if (!conversationMoved)
133
+ return;
134
+ const sessionId = session();
135
+ if (sessionId === undefined)
136
+ return;
137
+ enqueue(sessionId);
138
+ },
139
+ // A fresh run starts from a fresh conversation. Without this a resumed run
140
+ // whose first commit has not landed yet could stamp the previous run's
141
+ // history onto this run's id.
142
+ clear() {
143
+ history = [];
144
+ userMessage = '';
145
+ iteration = 0;
146
+ },
147
+ };
148
+ const settle = async () => {
149
+ // Loop rather than await once: a write that completes may release a queued
150
+ // successor, and "settled" has to mean nothing is left.
151
+ while (inFlight !== undefined || queued !== undefined) {
152
+ pump();
153
+ await inFlight;
154
+ }
155
+ if (failure)
156
+ throw failure;
157
+ };
158
+ return {
159
+ recorder,
160
+ install(agent) {
161
+ // `'async'` deliberately takes NO barrier: its whole promise is that the
162
+ // run does not wait, and a barrier would be that promise broken quietly.
163
+ if (mode !== 'sync')
164
+ return () => undefined;
165
+ return installDurabilityBarrier(agent, () => {
166
+ if (inFlight === undefined && queued === undefined && failure === undefined)
167
+ return undefined;
168
+ return settle();
169
+ });
170
+ },
171
+ settle,
172
+ };
173
+ }
174
+ //# sourceMappingURL=durability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"durability.js","sourceRoot":"","sources":["../../../src/hosting/durability.ts"],"names":[],"mappings":"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"}