agentfootprint 7.18.0 → 7.19.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 (137) hide show
  1. package/AGENTS.md +7 -5
  2. package/README.md +3 -3
  3. package/ai-instructions/claude-code/SKILL.md +7 -5
  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 +6 -0
  7. package/dist/core/Agent.js.map +1 -1
  8. package/dist/core/agent/AgentBuilder.js +9 -0
  9. package/dist/core/agent/AgentBuilder.js.map +1 -1
  10. package/dist/core/agent/memoryRecallInjections.js +8 -0
  11. package/dist/core/agent/memoryRecallInjections.js.map +1 -1
  12. package/dist/core/agent/stages/toolCalls.js +13 -0
  13. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  14. package/dist/core/durabilityBarrier.js +68 -0
  15. package/dist/core/durabilityBarrier.js.map +1 -0
  16. package/dist/core/slots/buildMessagesSlot.js +23 -4
  17. package/dist/core/slots/buildMessagesSlot.js.map +1 -1
  18. package/dist/esm/adapters/hosting/agentcore.d.ts +4 -4
  19. package/dist/esm/adapters/hosting/agentcore.js +24 -10
  20. package/dist/esm/adapters/hosting/agentcore.js.map +1 -1
  21. package/dist/esm/core/Agent.js +6 -0
  22. package/dist/esm/core/Agent.js.map +1 -1
  23. package/dist/esm/core/agent/AgentBuilder.d.ts +5 -0
  24. package/dist/esm/core/agent/AgentBuilder.js +9 -0
  25. package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
  26. package/dist/esm/core/agent/memoryRecallInjections.js +8 -0
  27. package/dist/esm/core/agent/memoryRecallInjections.js.map +1 -1
  28. package/dist/esm/core/agent/stages/toolCalls.d.ts +21 -0
  29. package/dist/esm/core/agent/stages/toolCalls.js +13 -0
  30. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  31. package/dist/esm/core/durabilityBarrier.d.ts +61 -0
  32. package/dist/esm/core/durabilityBarrier.js +63 -0
  33. package/dist/esm/core/durabilityBarrier.js.map +1 -0
  34. package/dist/esm/core/slots/buildMessagesSlot.d.ts +16 -2
  35. package/dist/esm/core/slots/buildMessagesSlot.js +23 -4
  36. package/dist/esm/core/slots/buildMessagesSlot.js.map +1 -1
  37. package/dist/esm/hosting/durability.d.ts +92 -0
  38. package/dist/esm/hosting/durability.js +174 -0
  39. package/dist/esm/hosting/durability.js.map +1 -0
  40. package/dist/esm/hosting/envelope.d.ts +75 -14
  41. package/dist/esm/hosting/envelope.js +141 -16
  42. package/dist/esm/hosting/envelope.js.map +1 -1
  43. package/dist/esm/hosting/errors.d.ts +60 -11
  44. package/dist/esm/hosting/errors.js +92 -18
  45. package/dist/esm/hosting/errors.js.map +1 -1
  46. package/dist/esm/hosting/httpHost.d.ts +17 -1
  47. package/dist/esm/hosting/httpHost.js +42 -6
  48. package/dist/esm/hosting/httpHost.js.map +1 -1
  49. package/dist/esm/hosting/index.d.ts +7 -4
  50. package/dist/esm/hosting/index.js +6 -3
  51. package/dist/esm/hosting/index.js.map +1 -1
  52. package/dist/esm/hosting/nodeHost.d.ts +4 -2
  53. package/dist/esm/hosting/nodeHost.js +14 -3
  54. package/dist/esm/hosting/nodeHost.js.map +1 -1
  55. package/dist/esm/hosting/standingAgent.d.ts +22 -7
  56. package/dist/esm/hosting/standingAgent.js +144 -32
  57. package/dist/esm/hosting/standingAgent.js.map +1 -1
  58. package/dist/esm/hosting/types.d.ts +193 -19
  59. package/dist/esm/lib/injection-engine/factories/defineFact.d.ts +7 -11
  60. package/dist/esm/lib/injection-engine/factories/defineFact.js +9 -7
  61. package/dist/esm/lib/injection-engine/factories/defineFact.js.map +1 -1
  62. package/dist/esm/lib/injection-engine/factories/defineInstruction.d.ts +10 -19
  63. package/dist/esm/lib/injection-engine/factories/defineInstruction.js +6 -4
  64. package/dist/esm/lib/injection-engine/factories/defineInstruction.js.map +1 -1
  65. package/dist/esm/lib/injection-engine/messagesSlotRefusal.d.ts +31 -0
  66. package/dist/esm/lib/injection-engine/messagesSlotRefusal.js +40 -0
  67. package/dist/esm/lib/injection-engine/messagesSlotRefusal.js.map +1 -0
  68. package/dist/esm/lib/injection-engine/types.d.ts +12 -1
  69. package/dist/esm/lib/injection-engine/types.js.map +1 -1
  70. package/dist/esm/lib/mcp/mcpServe.d.ts +8 -0
  71. package/dist/esm/lib/mcp/mcpServe.js +25 -0
  72. package/dist/esm/lib/mcp/mcpServe.js.map +1 -1
  73. package/dist/esm/lib/mcp/types.d.ts +26 -0
  74. package/dist/hosting/durability.js +178 -0
  75. package/dist/hosting/durability.js.map +1 -0
  76. package/dist/hosting/envelope.js +146 -18
  77. package/dist/hosting/envelope.js.map +1 -1
  78. package/dist/hosting/errors.js +95 -19
  79. package/dist/hosting/errors.js.map +1 -1
  80. package/dist/hosting/httpHost.js +42 -6
  81. package/dist/hosting/httpHost.js.map +1 -1
  82. package/dist/hosting/index.js +10 -2
  83. package/dist/hosting/index.js.map +1 -1
  84. package/dist/hosting/nodeHost.js +14 -3
  85. package/dist/hosting/nodeHost.js.map +1 -1
  86. package/dist/hosting/standingAgent.js +142 -30
  87. package/dist/hosting/standingAgent.js.map +1 -1
  88. package/dist/lib/injection-engine/factories/defineFact.js +9 -7
  89. package/dist/lib/injection-engine/factories/defineFact.js.map +1 -1
  90. package/dist/lib/injection-engine/factories/defineInstruction.js +6 -4
  91. package/dist/lib/injection-engine/factories/defineInstruction.js.map +1 -1
  92. package/dist/lib/injection-engine/messagesSlotRefusal.js +44 -0
  93. package/dist/lib/injection-engine/messagesSlotRefusal.js.map +1 -0
  94. package/dist/lib/injection-engine/types.js.map +1 -1
  95. package/dist/lib/mcp/mcpServe.js +25 -0
  96. package/dist/lib/mcp/mcpServe.js.map +1 -1
  97. package/dist/types/adapters/hosting/agentcore.d.ts +4 -4
  98. package/dist/types/adapters/hosting/agentcore.d.ts.map +1 -1
  99. package/dist/types/core/Agent.d.ts.map +1 -1
  100. package/dist/types/core/agent/AgentBuilder.d.ts +5 -0
  101. package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
  102. package/dist/types/core/agent/memoryRecallInjections.d.ts.map +1 -1
  103. package/dist/types/core/agent/stages/toolCalls.d.ts +21 -0
  104. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  105. package/dist/types/core/durabilityBarrier.d.ts +62 -0
  106. package/dist/types/core/durabilityBarrier.d.ts.map +1 -0
  107. package/dist/types/core/slots/buildMessagesSlot.d.ts +16 -2
  108. package/dist/types/core/slots/buildMessagesSlot.d.ts.map +1 -1
  109. package/dist/types/hosting/durability.d.ts +93 -0
  110. package/dist/types/hosting/durability.d.ts.map +1 -0
  111. package/dist/types/hosting/envelope.d.ts +75 -14
  112. package/dist/types/hosting/envelope.d.ts.map +1 -1
  113. package/dist/types/hosting/errors.d.ts +60 -11
  114. package/dist/types/hosting/errors.d.ts.map +1 -1
  115. package/dist/types/hosting/httpHost.d.ts +17 -1
  116. package/dist/types/hosting/httpHost.d.ts.map +1 -1
  117. package/dist/types/hosting/index.d.ts +7 -4
  118. package/dist/types/hosting/index.d.ts.map +1 -1
  119. package/dist/types/hosting/nodeHost.d.ts +4 -2
  120. package/dist/types/hosting/nodeHost.d.ts.map +1 -1
  121. package/dist/types/hosting/standingAgent.d.ts +22 -7
  122. package/dist/types/hosting/standingAgent.d.ts.map +1 -1
  123. package/dist/types/hosting/types.d.ts +193 -19
  124. package/dist/types/hosting/types.d.ts.map +1 -1
  125. package/dist/types/lib/injection-engine/factories/defineFact.d.ts +7 -11
  126. package/dist/types/lib/injection-engine/factories/defineFact.d.ts.map +1 -1
  127. package/dist/types/lib/injection-engine/factories/defineInstruction.d.ts +10 -19
  128. package/dist/types/lib/injection-engine/factories/defineInstruction.d.ts.map +1 -1
  129. package/dist/types/lib/injection-engine/messagesSlotRefusal.d.ts +32 -0
  130. package/dist/types/lib/injection-engine/messagesSlotRefusal.d.ts.map +1 -0
  131. package/dist/types/lib/injection-engine/types.d.ts +12 -1
  132. package/dist/types/lib/injection-engine/types.d.ts.map +1 -1
  133. package/dist/types/lib/mcp/mcpServe.d.ts +8 -0
  134. package/dist/types/lib/mcp/mcpServe.d.ts.map +1 -1
  135. package/dist/types/lib/mcp/types.d.ts +26 -0
  136. package/dist/types/lib/mcp/types.d.ts.map +1 -1
  137. package/package.json +1 -1
@@ -384,6 +384,11 @@ export declare class AgentBuilder {
384
384
  * Register any `Injection`. Use this for power-user / custom flavors;
385
385
  * for built-in flavors use the typed sugar (`.skill`, `.steering`,
386
386
  * `.instruction`, `.fact`).
387
+ *
388
+ * An Injection carrying `inject.messages` is refused here — the named
389
+ * factories refuse the same thing at declaration, and this is the one
390
+ * funnel every flavor passes through, so a hand-built Injection cannot
391
+ * reach the run by going around them. See {@link messagesSlotRefusal}.
387
392
  */
388
393
  injection(injection: Injection): this;
389
394
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AgentBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/agent/AgentBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/agent/AgentBuilder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"memoryRecallInjections.d.ts","sourceRoot":"","sources":["../../../../src/core/agent/memoryRecallInjections.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAO3E,0FAA0F;AAC1F,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,eAAe,EAAE,CAyBnB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,gBAAgB,EAAE,SAAS,eAAe,EAAE,GAAG,SAAS,EACxD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,SAAS,eAAe,EAAE,CAK5B"}
1
+ {"version":3,"file":"memoryRecallInjections.d.ts","sourceRoot":"","sources":["../../../../src/core/agent/memoryRecallInjections.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAO3E,0FAA0F;AAC1F,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,eAAe,EAAE,CAyBnB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,gBAAgB,EAAE,SAAS,eAAe,EAAE,GAAG,SAAS,EACxD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,SAAS,eAAe,EAAE,CAK5B"}
@@ -101,6 +101,27 @@ export interface ToolCallsHandlerDeps {
101
101
  * proposed. Empty / undefined → not walked, no ledger key, no events.
102
102
  */
103
103
  readonly toolMiddleware?: readonly ToolMiddleware[];
104
+ /**
105
+ * The durable-write barrier (`core/durabilityBarrier.ts`). Asked ONCE per
106
+ * iteration, before any of this iteration's tools are dispatched: if the last
107
+ * iteration's state is still being written to a session store, wait for it.
108
+ *
109
+ * This is what bounds side-effect replay. Without it, iteration N's tools run
110
+ * while iteration N-1's write is in flight, so a crash can re-issue more than
111
+ * one iteration's worth of tool calls on replay and "how much re-executes?"
112
+ * has no answer. With it the answer is exactly one: the current iteration.
113
+ *
114
+ * Returns `undefined` when nobody installed a barrier — the ordinary case —
115
+ * and the dispatch loop then does not await at all, so an agent without a
116
+ * durable session composer is byte-identical in behaviour AND in timing.
117
+ *
118
+ * NOT a general extension point: the only installer is
119
+ * `agentfootprint/hosting`'s session writer, through a module-private
120
+ * WeakMap that appears on no barrel. See `core/durabilityBarrier.ts`.
121
+ *
122
+ * @internal
123
+ */
124
+ readonly awaitDurable?: () => Promise<void> | undefined;
104
125
  }
105
126
  /**
106
127
  * Build the pausable tool-call handler for the agent's chart.
@@ -1 +1 @@
1
- {"version":3,"file":"toolCalls.d.ts","sourceRoot":"","sources":["../../../../../src/core/agent/stages/toolCalls.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAIhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAc,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGjF,OAAO,EAIL,KAAK,qBAAqB,EAG3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,oBAAoB;IACnC;;4DAEwD;IACxD,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnD;;qDAEiD;IACjD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,YAAY,CAAC;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C;;4DAEwD;IACxD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C;;kEAE8D;IAC9D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACjD;;;8EAG0E;IAC1E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IACnD;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,CAAC;IAC1E;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC;IACzC;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CACrD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,oBAAoB,GACzB,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CA60BzC"}
1
+ {"version":3,"file":"toolCalls.d.ts","sourceRoot":"","sources":["../../../../../src/core/agent/stages/toolCalls.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAIhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAc,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGjF,OAAO,EAIL,KAAK,qBAAqB,EAG3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,oBAAoB;IACnC;;4DAEwD;IACxD,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnD;;qDAEiD;IACjD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,YAAY,CAAC;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C;;4DAEwD;IACxD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C;;kEAE8D;IAC9D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACjD;;;8EAG0E;IAC1E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IACnD;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,CAAC;IAC1E;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC;IACzC;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAEpD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;CACzD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,oBAAoB,GACzB,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CA01BzC"}
@@ -0,0 +1,62 @@
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
+ /**
37
+ * What a barrier answers: the write still in flight, or `undefined` when there
38
+ * is nothing to wait for. Returning `undefined` is the fast path and the
39
+ * common case — a mode that persists at run end only never installs one at all.
40
+ *
41
+ * @internal
42
+ */
43
+ export type DurabilityBarrier = () => Promise<void> | undefined;
44
+ /**
45
+ * Install the barrier for one runner. Returns the uninstall function; the
46
+ * caller owns it, exactly as `attach()` and `on()` hand back their own.
47
+ *
48
+ * Last install wins. One runner has at most one barrier because one composer
49
+ * owns its durability — two would be two answers to "has the last write
50
+ * landed?", and a run cannot honour both.
51
+ *
52
+ * @internal
53
+ */
54
+ export declare function installDurabilityBarrier(owner: object, barrier: DurabilityBarrier): () => void;
55
+ /**
56
+ * The durable write still in flight for this runner, or `undefined` when there
57
+ * is no barrier installed or nothing outstanding.
58
+ *
59
+ * @internal
60
+ */
61
+ export declare function pendingDurableWrite(owner: object): Promise<void> | undefined;
62
+ //# sourceMappingURL=durabilityBarrier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"durabilityBarrier.d.ts","sourceRoot":"","sources":["../../../src/core/durabilityBarrier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAIhE;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,IAAI,CAK9F;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAE5E"}
@@ -8,8 +8,22 @@
8
8
  * messages accumulated over iterations.
9
9
  * Emits: None directly; ContextRecorder sees the writes.
10
10
  *
11
- * Minimal scope for Phase 3e: pass-through of an input message history
12
- * array. Full MessageStrategy (windowing, summarizing) arrives in Phase 5.
11
+ * ── What this slot is, and is not ───────────────────────────────────
12
+ * It is the OBSERVABILITY PROJECTION of the conversation: one
13
+ * InjectionRecord per message, with the source, reason, role and
14
+ * recency a consumer needs to see what the turn was made of. It is not
15
+ * the wire. The request's message list comes from `scope.history`
16
+ * directly (`stages/callLLM.ts`), because the projection flattens away
17
+ * the LLM-protocol shape a provider needs — an assistant turn's
18
+ * `toolCalls[]`, a tool turn's `toolCallId`.
19
+ *
20
+ * Windowing and summarizing are not pending here either: they arrived in
21
+ * 7.16–7.17 as the window-strategy family, and they govern the window by
22
+ * editing `scope.history` at the loop-head window stage (`stages/window.ts`)
23
+ * — BEFORE this slot runs, so the projection and the wire describe the same
24
+ * past. Content declared for this slot is refused at the declaration site
25
+ * (`lib/injection-engine/messagesSlotRefusal.ts`) precisely because this
26
+ * slot cannot deliver it.
13
27
  */
14
28
  import type { FlowChart } from 'footprintjs';
15
29
  import type { ContextRole } from '../../events/types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"buildMessagesSlot.d.ts","sourceRoot":"","sources":["../../../../src/core/slots/buildMessagesSlot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,aAAa,CAAC;AAEzD,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMzE;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAMD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,kBAAuB,GAAG,SAAS,CAoF5E"}
1
+ {"version":3,"file":"buildMessagesSlot.d.ts","sourceRoot":"","sources":["../../../../src/core/slots/buildMessagesSlot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,aAAa,CAAC;AAEzD,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMzE;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAMD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,kBAAuB,GAAG,SAAS,CAyF5E"}
@@ -0,0 +1,93 @@
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;
93
+ //# sourceMappingURL=durability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"durability.d.ts","sourceRoot":"","sources":["../../../src/hosting/durability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAe,MAAM,aAAa,CAAC;AAIjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,yDAAyD;AACzD,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC3C,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACzC,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxF;AAED,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,yEAAyE;IACzE,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;IACnC;;;;;;;;;;;;;OAaG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAgI1E"}
@@ -1,17 +1,27 @@
1
1
  /**
2
- * hosting/envelope — pack a conversation for storage, and refuse to unpack one
3
- * you cannot read.
4
- *
5
- * Two functions and one rule: **an unknown format is refused by name, never
6
- * guessed at.** A store outlives the code that wrote to it. Somebody will
7
- * deploy a newer runtime, it will write a newer format, and an older instance
8
- * still running will read it. The only honest thing that older instance can do
9
- * is say which format it found, which ones it knows, and stop — because
10
- * "restore what I can and hope" means an agent answering from a conversation
11
- * that is missing whatever the older reader did not understand.
2
+ * hosting/envelope — pack a session for storage, and refuse to unpack one you
3
+ * cannot read.
4
+ *
5
+ * One rule, and everything here is a consequence of it: **an envelope this
6
+ * runtime cannot read is refused BY NAME, never guessed at.** A store outlives
7
+ * the code that wrote to it. Somebody will deploy a newer runtime, it will write
8
+ * a newer format, and an older instance still running will read it. The only
9
+ * honest thing that older instance can do is say which format it found, which
10
+ * ones it knows, and stop — because "restore what I can and hope" means an agent
11
+ * answering from a session that is missing whatever the older reader did not
12
+ * understand.
13
+ *
14
+ * ── Two formats, two readers, and why they refuse each other ─────────────────
15
+ * `readEnvelope` unpacks a CONVERSATION; `readPausedRun` unpacks a PAUSED RUN.
16
+ * Each refuses the other's format by name and points at its sibling. That looks
17
+ * fussy until you notice the alternative: one reader that quietly returned the
18
+ * conversation inside a paused run would hand back a session that LOOKS finished
19
+ * while a person is still waiting on a question nobody mentioned. That is a
20
+ * half-restore wearing a happy path, which is the exact failure the format field
21
+ * exists to prevent.
12
22
  */
13
23
  import { type AgentRunCheckpoint } from '../core/runCheckpoint.js';
14
- import type { CheckpointEnvelope } from './types.js';
24
+ import type { CheckpointEnvelope, ConversationEnvelope, PausedRun, PausedRunEnvelope } from './types.js';
15
25
  /**
16
26
  * Pack a conversation checkpoint for storage.
17
27
  *
@@ -19,7 +29,28 @@ import type { CheckpointEnvelope } from './types.js';
19
29
  * const conversation = agent.checkpoint();
20
30
  * if (conversation) await sessions.persist(sessionId, toEnvelope(conversation));
21
31
  */
22
- export declare function toEnvelope(checkpoint: AgentRunCheckpoint): CheckpointEnvelope;
32
+ export declare function toEnvelope(checkpoint: AgentRunCheckpoint): ConversationEnvelope;
33
+ /**
34
+ * Pack a paused run for storage — the engine checkpoint, the conversation as of
35
+ * the pause, and the question it is waiting on.
36
+ *
37
+ * Store it anywhere that speaks JSON. Note what JSON does and does not preserve
38
+ * here: `agent.resume()` reads `checkpoint.sharedState`, which round-trips
39
+ * unchanged; the engine's diagnostic halves lose their explicitly-`undefined`
40
+ * properties, because that is what `JSON.stringify` does to them. See
41
+ * {@link PausedRun}.
42
+ *
43
+ * @example
44
+ * const outcome = await agent.run({ message });
45
+ * if (isPaused(outcome)) {
46
+ * await sessions.persist(sessionId, toPausedEnvelope({
47
+ * checkpoint: outcome.checkpoint,
48
+ * conversation: agent.checkpoint()!,
49
+ * pending: { pauseData: outcome.pauseData },
50
+ * }));
51
+ * }
52
+ */
53
+ export declare function toPausedEnvelope(paused: PausedRun): PausedRunEnvelope;
23
54
  /**
24
55
  * Unpack a stored envelope back into a conversation checkpoint.
25
56
  *
@@ -27,8 +58,38 @@ export declare function toEnvelope(checkpoint: AgentRunCheckpoint): CheckpointEn
27
58
  * else wrote, in a format this runtime may not know, and typing the parameter
28
59
  * as the happy shape would be assuming the very thing that needs checking.
29
60
  *
30
- * @throws TypeError naming the format when it is one this runtime cannot read,
31
- * and naming the missing field when the conversation inside is malformed.
61
+ * @throws TypeError naming the format when it is one this runtime cannot read;
62
+ * naming the missing field when the conversation inside is malformed; and
63
+ * pointing at {@link readPausedRun} when the envelope holds a paused run,
64
+ * which is a session with a question outstanding rather than a conversation.
32
65
  */
33
66
  export declare function readEnvelope(envelope: unknown): AgentRunCheckpoint;
67
+ /**
68
+ * Unpack a stored envelope back into a paused run.
69
+ *
70
+ * @throws TypeError naming the format when it is one this runtime cannot read;
71
+ * pointing at {@link readEnvelope} when the envelope holds a plain
72
+ * conversation; and naming the missing field when the paused run inside is
73
+ * malformed.
74
+ */
75
+ export declare function readPausedRun(envelope: unknown): PausedRun;
76
+ /**
77
+ * Check that an envelope is one this runtime can read, and hand it back
78
+ * unchanged — without committing to which half you wanted.
79
+ *
80
+ * This is what a STORE wants. A store's job is to notice that the bytes it is
81
+ * about to hand over are unreadable, so the refusal names the store that
82
+ * produced them rather than whoever read them next; it has no business caring
83
+ * whether the session inside is mid-conversation or mid-question.
84
+ *
85
+ * @throws TypeError naming the format when this runtime cannot read it, or the
86
+ * missing field when the payload is malformed.
87
+ *
88
+ * @example
89
+ * async hydrate(sessionId) {
90
+ * const stored = await myStore.get(sessionId);
91
+ * return stored === undefined ? undefined : checkEnvelope(stored);
92
+ * }
93
+ */
94
+ export declare function checkEnvelope(envelope: unknown): CheckpointEnvelope;
34
95
  //# sourceMappingURL=envelope.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../../src/hosting/envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAKrD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,kBAAkB,GAAG,kBAAkB,CAE7E;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,kBAAkB,CAkBlE"}
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../../src/hosting/envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAKpB;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,kBAAkB,GAAG,oBAAoB,CAE/E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,iBAAiB,CAErE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,kBAAkB,CAUlE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAQ1D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,kBAAkB,CAOnE"}
@@ -3,17 +3,21 @@
3
3
  * same words.
4
4
  *
5
5
  * A refusal that varies by adapter is a refusal nobody can write a test or a
6
- * runbook against. These three carry a stable `code`, name WHO refused, and say
6
+ * runbook against. These five carry a stable `code`, name WHO refused, and say
7
7
  * what the caller should do instead. Adapters map the codes onto whatever their
8
8
  * transport uses to say "no" — that mapping is the adapter's business and lives
9
9
  * in the adapter, never here.
10
10
  *
11
- * `requireCapability` is the fourth refusal and the only one that is a
11
+ * Note what is NOT here: a run that paused. That is unfinished work rather than
12
+ * a refusal, and it leaves through `reply.awaiting(...)` — its own terminal —
13
+ * not through an error dressed up as one.
14
+ *
15
+ * `requireCapability` is the last refusal and the only one that is a
12
16
  * programming mistake rather than a runtime condition, so it throws a plain
13
17
  * `Error`: nothing branches on "I forgot to feature-detect", it just needs to
14
18
  * say so loudly and name the adapter it is talking about.
15
19
  */
16
- import type { AgentHost, HostCapability } from './types.js';
20
+ import type { AgentHost, HostCapability, PendingAsk } from './types.js';
17
21
  /**
18
22
  * Thrown when a request arrives at a host that is shutting down or shut down.
19
23
  *
@@ -44,22 +48,67 @@ export declare class ConcurrentRunError extends Error {
44
48
  constructor(sessionId: string, activeRunId?: string);
45
49
  }
46
50
  /**
47
- * Raised when a run paused to ask a person something and the reply cannot carry
48
- * a pause.
51
+ * Raised when a run paused to ask a person something and there is **nowhere to
52
+ * keep it**.
49
53
  *
50
54
  * **The run did not fail.** A pause is unfinished work: the agent stopped to ask
51
- * and is waiting for an answer. What cannot happen here is storing it — the
52
- * `'conversation-v1'` envelope holds a conversation, and a paused run is a
53
- * conversation plus an engine checkpoint. So nothing is written, and the
54
- * session keeps exactly the conversation it had before this request.
55
+ * and is waiting for an answer. Since 7.19 a paused run is stored as
56
+ * `'flowchart-v1'` and continued by a later request carrying a decision — so the
57
+ * one case left where a pause genuinely cannot be carried is a request with no
58
+ * session id. There is no session to store it under, and therefore no later
59
+ * request that could ever answer it.
60
+ *
61
+ * The other half of the old meaning — "the reply cannot carry a pause" — is
62
+ * gone: {@link HostReply.awaiting} carries it now. An adapter that has not
63
+ * implemented that terminal still gets its pause STORED (the store is not the
64
+ * transport's business) and this refusal on the wire, naming the session it can
65
+ * be answered on.
55
66
  */
56
67
  export declare class PauseNotCarriedError extends Error {
57
68
  readonly code: "ERR_PAUSE_NOT_CARRIED";
58
69
  /** The tool that asked, when the run recorded which one it was. */
59
70
  readonly toolName?: string;
60
- /** The session whose stored conversation was left untouched. */
71
+ /** The session the paused run was stored under, when there was one. */
61
72
  readonly sessionId?: string;
62
- constructor(toolName?: string, sessionId?: string);
73
+ /** Whether the paused run was stored. `false` means it is gone. */
74
+ readonly stored: boolean;
75
+ constructor(toolName?: string, sessionId?: string, stored?: boolean);
76
+ }
77
+ /**
78
+ * Thrown when a new message arrives for a session whose run is waiting on a
79
+ * person's decision.
80
+ *
81
+ * The message is NOT run and the pause is NOT discarded — those are the two ways
82
+ * this could have gone wrong. Answering the message would step over an
83
+ * outstanding consent gate; dropping the paused run to make room for the message
84
+ * would throw away work a person was asked about. So the request is refused, the
85
+ * pending question is named, and the session sits exactly where it was.
86
+ *
87
+ * Answer it by sending the same session a request carrying
88
+ * {@link HostRequest.decision}.
89
+ */
90
+ export declare class AwaitingDecisionError extends Error {
91
+ readonly code: "ERR_AWAITING_DECISION";
92
+ /** The session that is waiting. */
93
+ readonly sessionId: string;
94
+ /** What it is waiting on — the same payload `reply.awaiting()` delivered. */
95
+ readonly pending: PendingAsk;
96
+ constructor(sessionId: string, pending: PendingAsk);
97
+ }
98
+ /**
99
+ * Thrown when a request carries a decision for a session that is not waiting on
100
+ * one.
101
+ *
102
+ * Usually a duplicate delivery: the run was already continued, or already
103
+ * answered, and the same decision arrived twice. Running it as an ordinary
104
+ * message would put a raw approval into the conversation as if the user had
105
+ * typed it, so it is refused by name instead.
106
+ */
107
+ export declare class NoPendingAskError extends Error {
108
+ readonly code: "ERR_NO_PENDING_ASK";
109
+ /** The session the decision was addressed to. */
110
+ readonly sessionId: string;
111
+ constructor(sessionId: string);
63
112
  }
64
113
  /**
65
114
  * Assert that a host can do something, and throw a corrective error naming the
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/hosting/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D;;;;;GAKG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,oBAA8B;IAC3C,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,QAAQ,EAAE,MAAM;CAS7B;AAED;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,uBAAiC;IAC9C,gDAAgD;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;gBAElB,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;CAapD;AAED;;;;;;;;;GASG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,0BAAoC;IACjD,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEhB,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;CAiBlD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI,CASnF"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/hosting/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExE;;;;;GAKG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,oBAA8B;IAC3C,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,QAAQ,EAAE,MAAM;CAS7B;AAED;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,uBAAiC;IAC9C,gDAAgD;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;gBAElB,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;CAapD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,0BAAoC;IACjD,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,uEAAuE;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;gBAEb,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,UAAQ;CAsBlE;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,0BAAoC;IACjD,mCAAmC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;gBAEjB,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;CAgBnD;AAED;;;;;;;;GAQG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,IAAI,uBAAiC;IAC9C,iDAAiD;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,SAAS,EAAE,MAAM;CAW9B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI,CASnF"}
@@ -28,7 +28,7 @@
28
28
  * Pattern: Template method via configuration (Strategy on the wire format).
29
29
  * Everything HTTP lives here and in the wires; `types.ts` knows none of it.
30
30
  */
31
- import type { AgentHost, HostCapability, HostHandle, HostHandler } from './types.js';
31
+ import type { AgentHost, HostCapability, HostHandle, HostHandler, PendingAsk } from './types.js';
32
32
  /** Everything a {@link HttpWire} may read when pulling a request apart. */
33
33
  export interface HttpRequestFacts {
34
34
  /** The parsed JSON body, or `{}` for an empty one. */
@@ -57,6 +57,12 @@ export interface HttpWire {
57
57
  readRequest(facts: HttpRequestFacts): {
58
58
  readonly input: string;
59
59
  readonly sessionId?: string;
60
+ /**
61
+ * A person's answer to an outstanding question, when this request carries
62
+ * one. Its presence is what makes a request a RESUME rather than a new
63
+ * message, so a wire that never returns it can only ever start new turns.
64
+ */
65
+ readonly decision?: unknown;
60
66
  };
61
67
  /** Body for a health probe. `uptimeMs` is how long this host has been serving. */
62
68
  health(uptimeMs: number): unknown;
@@ -66,6 +72,16 @@ export interface HttpWire {
66
72
  failure(message: string, code?: string): unknown;
67
73
  /** Body for one streamed piece, when the caller asked for Server-Sent Events. */
68
74
  chunk(text: string): unknown;
75
+ /**
76
+ * Body for a reply that is WAITING on a person — the run paused, it is stored,
77
+ * and a later request carrying a decision continues it.
78
+ *
79
+ * Optional so a wire written before this terminal existed keeps compiling and
80
+ * keeps working. A host whose wire has no `awaiting` cannot describe the
81
+ * question, so it reports the named refusal instead — the run is still stored
82
+ * either way.
83
+ */
84
+ awaiting?(pending: PendingAsk): unknown;
69
85
  }
70
86
  /** Options for {@link httpHost}. */
71
87
  export interface HttpHostOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"httpHost.d.ts","sourceRoot":"","sources":["../../../src/hosting/httpHost.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAa,MAAM,YAAY,CAAC;AAEhG,2EAA2E;AAC3E,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACjD,oFAAoF;IACpF,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,wCAAwC;IACxC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9F,kFAAkF;IAClF,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,uCAAuC;IACvC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,0FAA0F;IAC1F,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACjD,iFAAiF;IACjF,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9B;AAED,oCAAoC;AACpC,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,uEAAuE;IACvE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CACnD;AAED,2DAA2D;AAC3D,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,qEAAqE;IACrE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,oDAAoD;AACpD,MAAM,WAAW,QAAS,SAAQ,SAAS;IACzC,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACtD;AAmBD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,QAAQ,CAsE3D;AA+HD;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,MAAM,EACZ,GAAG,SAAS,EAAE,MAAM,EAAE,GACrB,MAAM,GAAG,SAAS,CAMpB"}
1
+ {"version":3,"file":"httpHost.d.ts","sourceRoot":"","sources":["../../../src/hosting/httpHost.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAMH,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,UAAU,EACV,WAAW,EAEX,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB,2EAA2E;AAC3E,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACjD,oFAAoF;IACpF,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,wCAAwC;IACxC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG;QACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAC5B;;;;WAIG;QACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,kFAAkF;IAClF,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,uCAAuC;IACvC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,0FAA0F;IAC1F,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACjD,iFAAiF;IACjF,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B;;;;;;;;OAQG;IACH,QAAQ,CAAC,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC;CACzC;AAED,oCAAoC;AACpC,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,uEAAuE;IACvE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CACnD;AAED,2DAA2D;AAC3D,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,qEAAqE;IACrE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,oDAAoD;AACpD,MAAM,WAAW,QAAS,SAAQ,SAAS;IACzC,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACtD;AA8BD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,QAAQ,CAsE3D;AAyJD;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,MAAM,EACZ,GAAG,SAAS,EAAE,MAAM,EAAE,GACrB,MAAM,GAAG,SAAS,CAMpB"}
@@ -33,9 +33,12 @@
33
33
  * another. Two paths and five body shapes are all a second HTTP adapter
34
34
  * re-decides.
35
35
  * • `memorySessions()` — conversations in a Map, for tests and local dev.
36
- * • `standingAgent({ agent, sessions, host })` — the composer.
36
+ * • `standingAgent({ agent, sessions, host, durability? })` — the composer.
37
37
  * • `toEnvelope` / `readEnvelope` — pack a conversation, and refuse by name to
38
38
  * unpack a format this runtime does not know.
39
+ * • `toPausedEnvelope` / `readPausedRun` — the same for a run that stopped to
40
+ * ask a person something (`'flowchart-v1'`). `checkEnvelope` validates
41
+ * either without committing to which half you wanted — what a STORE wants.
39
42
  * • `requireCapability` — feature-detection with teeth.
40
43
  *
41
44
  * @example An agent that stays up and remembers
@@ -54,8 +57,8 @@ export type { NodeHost, NodeHostHandle, NodeHostOptions } from './nodeHost.js';
54
57
  export { httpHost, headerValue } from './httpHost.js';
55
58
  export type { HttpHost, HttpHostHandle, HttpHostOptions, HttpRequestFacts, HttpWire, } from './httpHost.js';
56
59
  export { memorySessions } from './memorySessions.js';
57
- export { toEnvelope, readEnvelope } from './envelope.js';
60
+ export { toEnvelope, toPausedEnvelope, readEnvelope, readPausedRun, checkEnvelope, } from './envelope.js';
58
61
  export { standingAgent } from './standingAgent.js';
59
- export { requireCapability, HostClosedError, ConcurrentRunError, PauseNotCarriedError, } from './errors.js';
60
- export type { AgentHost, CheckpointEnvelope, ConcurrentInvokePolicy, HostCapability, HostHandle, HostHandler, HostReply, HostRequest, SessionLifecycle, StandingAgentOptions, WakeReason, } from './types.js';
62
+ export { requireCapability, HostClosedError, ConcurrentRunError, PauseNotCarriedError, AwaitingDecisionError, NoPendingAskError, } from './errors.js';
63
+ export type { AgentHost, CheckpointEnvelope, ConcurrentInvokePolicy, ConversationEnvelope, DurabilityMode, HostCapability, HostHandle, HostHandler, HostReply, HostRequest, PausedRun, PausedRunEnvelope, PendingAsk, SessionLifecycle, StandingAgentOptions, WakeReason, } from './types.js';
61
64
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hosting/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EACV,QAAQ,EACR,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,QAAQ,GACT,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,SAAS,EACT,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,UAAU,EACV,WAAW,EACX,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,GACX,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hosting/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EACV,QAAQ,EACR,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,QAAQ,GACT,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,SAAS,EACT,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,UAAU,EACV,WAAW,EACX,SAAS,EACT,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,GACX,MAAM,YAAY,CAAC"}
@@ -7,8 +7,10 @@
7
7
  * reply.complete(await answer(request.input));
8
8
  * });
9
9
  *
10
- * Two routes: `POST /invoke` takes `{ input, sessionId? }` and answers
11
- * `{ output }`; `GET /health` answers `{ status: 'ok' }`. Both paths are
10
+ * Two routes: `POST /invoke` takes `{ input, sessionId?, decision? }` and
11
+ * answers `{ output }` — or `{ awaiting }` with a **202** when the run stopped
12
+ * to ask a person something, which a later `POST` carrying `decision` continues;
13
+ * `GET /health` answers `{ status: 'ok' }`. Both paths are
12
14
  * options, because the paths are the part most likely to be dictated to you by
13
15
  * whatever is in front of the process — a load balancer, a container contract,
14
16
  * a colleague's convention. A path is a deployment detail, so it is a knob
@@ -1 +1 @@
1
- {"version":3,"file":"nodeHost.d.ts","sourceRoot":"","sources":["../../../src/hosting/nodeHost.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAY,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE5F,oCAAoC;AACpC,MAAM,WAAW,eAAe;IAC9B,oEAAoE;IACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC;AAE5C,qDAAqD;AACrD,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC;AAIhC;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,EAAE,QAatB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,QAAQ,CAWhE"}
1
+ {"version":3,"file":"nodeHost.d.ts","sourceRoot":"","sources":["../../../src/hosting/nodeHost.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAY,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE5F,oCAAoC;AACpC,MAAM,WAAW,eAAe;IAC9B,oEAAoE;IACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC;AAE5C,qDAAqD;AACrD,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC;AAIhC;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,EAAE,QAsBtB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,QAAQ,CAWhE"}