agentfootprint 9.114.2 → 9.115.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 (230) hide show
  1. package/AGENTS.md +1 -1
  2. package/CAPABILITIES.md +3 -0
  3. package/ai-instructions/claude-code/SKILL.md +1 -1
  4. package/dist/adapters/hosting/agentCoreA2A.js +5 -0
  5. package/dist/adapters/hosting/agentCoreA2A.js.map +1 -1
  6. package/dist/adapters/hosting/agentcore.js +5 -0
  7. package/dist/adapters/hosting/agentcore.js.map +1 -1
  8. package/dist/adapters/hosting/foundryResponses.js +5 -0
  9. package/dist/adapters/hosting/foundryResponses.js.map +1 -1
  10. package/dist/adapters/observability/agentcore.js +18 -5
  11. package/dist/adapters/observability/agentcore.js.map +1 -1
  12. package/dist/adapters/observability/audit.js +17 -4
  13. package/dist/adapters/observability/audit.js.map +1 -1
  14. package/dist/adapters/observability/otel.js +890 -33
  15. package/dist/adapters/observability/otel.js.map +1 -1
  16. package/dist/artifacts/capability.js +9 -3
  17. package/dist/artifacts/capability.js.map +1 -1
  18. package/dist/bridge/eventMeta.js +40 -1
  19. package/dist/bridge/eventMeta.js.map +1 -1
  20. package/dist/core/Agent.js +40 -6
  21. package/dist/core/Agent.js.map +1 -1
  22. package/dist/core/RunnerBase.js +32 -1
  23. package/dist/core/RunnerBase.js.map +1 -1
  24. package/dist/core/agent/AgentBuilder.js +13 -1
  25. package/dist/core/agent/AgentBuilder.js.map +1 -1
  26. package/dist/core/agent/stages/toolCalls.js +64 -7
  27. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  28. package/dist/core/flowchartAsTool.js +8 -2
  29. package/dist/core/flowchartAsTool.js.map +1 -1
  30. package/dist/core/runbook/runbookAsTool.js +7 -2
  31. package/dist/core/runbook/runbookAsTool.js.map +1 -1
  32. package/dist/core/toolShownArgs.js +55 -0
  33. package/dist/core/toolShownArgs.js.map +1 -0
  34. package/dist/esm/adapters/hosting/agentCoreA2A.d.ts +14 -1
  35. package/dist/esm/adapters/hosting/agentCoreA2A.js +5 -0
  36. package/dist/esm/adapters/hosting/agentCoreA2A.js.map +1 -1
  37. package/dist/esm/adapters/hosting/agentcore.d.ts +18 -2
  38. package/dist/esm/adapters/hosting/agentcore.js +5 -0
  39. package/dist/esm/adapters/hosting/agentcore.js.map +1 -1
  40. package/dist/esm/adapters/hosting/foundryResponses.d.ts +15 -1
  41. package/dist/esm/adapters/hosting/foundryResponses.js +5 -0
  42. package/dist/esm/adapters/hosting/foundryResponses.js.map +1 -1
  43. package/dist/esm/adapters/observability/agentcore.d.ts +17 -5
  44. package/dist/esm/adapters/observability/agentcore.js +18 -5
  45. package/dist/esm/adapters/observability/agentcore.js.map +1 -1
  46. package/dist/esm/adapters/observability/audit.d.ts +6 -2
  47. package/dist/esm/adapters/observability/audit.js +17 -4
  48. package/dist/esm/adapters/observability/audit.js.map +1 -1
  49. package/dist/esm/adapters/observability/otel.d.ts +240 -11
  50. package/dist/esm/adapters/observability/otel.js +890 -33
  51. package/dist/esm/adapters/observability/otel.js.map +1 -1
  52. package/dist/esm/artifacts/capability.d.ts +3 -1
  53. package/dist/esm/artifacts/capability.js +9 -3
  54. package/dist/esm/artifacts/capability.js.map +1 -1
  55. package/dist/esm/bridge/eventMeta.d.ts +32 -0
  56. package/dist/esm/bridge/eventMeta.js +38 -0
  57. package/dist/esm/bridge/eventMeta.js.map +1 -1
  58. package/dist/esm/core/Agent.d.ts +18 -5
  59. package/dist/esm/core/Agent.js +42 -8
  60. package/dist/esm/core/Agent.js.map +1 -1
  61. package/dist/esm/core/RunnerBase.d.ts +20 -0
  62. package/dist/esm/core/RunnerBase.js +32 -1
  63. package/dist/esm/core/RunnerBase.js.map +1 -1
  64. package/dist/esm/core/agent/AgentBuilder.js +13 -1
  65. package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
  66. package/dist/esm/core/agent/stages/toolCalls.d.ts +11 -0
  67. package/dist/esm/core/agent/stages/toolCalls.js +64 -7
  68. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  69. package/dist/esm/core/flowchartAsTool.js +8 -2
  70. package/dist/esm/core/flowchartAsTool.js.map +1 -1
  71. package/dist/esm/core/runbook/runbookAsTool.js +7 -2
  72. package/dist/esm/core/runbook/runbookAsTool.js.map +1 -1
  73. package/dist/esm/core/toolShownArgs.d.ts +62 -0
  74. package/dist/esm/core/toolShownArgs.js +49 -0
  75. package/dist/esm/core/toolShownArgs.js.map +1 -0
  76. package/dist/esm/events/payloads.d.ts +122 -6
  77. package/dist/esm/events/registry.d.ts +3 -1
  78. package/dist/esm/events/registry.js +2 -0
  79. package/dist/esm/events/registry.js.map +1 -1
  80. package/dist/esm/events/types.d.ts +7 -0
  81. package/dist/esm/hosting/artifactWire.d.ts +10 -2
  82. package/dist/esm/hosting/artifactWire.js +20 -2
  83. package/dist/esm/hosting/artifactWire.js.map +1 -1
  84. package/dist/esm/hosting/doorGuard.d.ts +280 -0
  85. package/dist/esm/hosting/doorGuard.js +499 -0
  86. package/dist/esm/hosting/doorGuard.js.map +1 -0
  87. package/dist/esm/hosting/errors.d.ts +113 -0
  88. package/dist/esm/hosting/errors.js +177 -0
  89. package/dist/esm/hosting/errors.js.map +1 -1
  90. package/dist/esm/hosting/httpHost.d.ts +32 -3
  91. package/dist/esm/hosting/httpHost.js +218 -4
  92. package/dist/esm/hosting/httpHost.js.map +1 -1
  93. package/dist/esm/hosting/index.d.ts +7 -5
  94. package/dist/esm/hosting/index.js +10 -3
  95. package/dist/esm/hosting/index.js.map +1 -1
  96. package/dist/esm/hosting/ingressRecord.d.ts +64 -10
  97. package/dist/esm/hosting/ingressRecord.js +65 -6
  98. package/dist/esm/hosting/ingressRecord.js.map +1 -1
  99. package/dist/esm/hosting/nodeHost.d.ts +32 -2
  100. package/dist/esm/hosting/nodeHost.js +10 -0
  101. package/dist/esm/hosting/nodeHost.js.map +1 -1
  102. package/dist/esm/hosting/standingAgent.js +362 -51
  103. package/dist/esm/hosting/standingAgent.js.map +1 -1
  104. package/dist/esm/hosting/turnArtifacts.d.ts +93 -0
  105. package/dist/esm/hosting/turnArtifacts.js +126 -0
  106. package/dist/esm/hosting/turnArtifacts.js.map +1 -0
  107. package/dist/esm/hosting/types.d.ts +196 -3
  108. package/dist/esm/hosting/types.js +10 -0
  109. package/dist/esm/hosting/types.js.map +1 -1
  110. package/dist/esm/hosting/webSocketConversation.d.ts +15 -1
  111. package/dist/esm/hosting/webSocketConversation.js +54 -2
  112. package/dist/esm/hosting/webSocketConversation.js.map +1 -1
  113. package/dist/esm/integrity/disposition/ledger.d.ts +8 -0
  114. package/dist/esm/integrity/disposition/ledger.js +0 -0
  115. package/dist/esm/integrity/disposition/ledger.js.map +1 -1
  116. package/dist/esm/lib/mcp/mcpServe.js +39 -2
  117. package/dist/esm/lib/mcp/mcpServe.js.map +1 -1
  118. package/dist/esm/lib/mcp/types.d.ts +30 -0
  119. package/dist/esm/recorders/observability/commentary/artifactPhrases.d.ts +4 -0
  120. package/dist/esm/recorders/observability/commentary/artifactPhrases.js +9 -0
  121. package/dist/esm/recorders/observability/commentary/artifactPhrases.js.map +1 -1
  122. package/dist/esm/recorders/observability/commentary/commentaryTemplates.js +30 -3
  123. package/dist/esm/recorders/observability/commentary/commentaryTemplates.js.map +1 -1
  124. package/dist/esm/recorders/observability/recordRun.d.ts +12 -0
  125. package/dist/esm/recorders/observability/recordRun.js +17 -1
  126. package/dist/esm/recorders/observability/recordRun.js.map +1 -1
  127. package/dist/esm/strategies/attach.js +87 -1
  128. package/dist/esm/strategies/attach.js.map +1 -1
  129. package/dist/events/registry.js +2 -0
  130. package/dist/events/registry.js.map +1 -1
  131. package/dist/hosting/artifactWire.js +21 -3
  132. package/dist/hosting/artifactWire.js.map +1 -1
  133. package/dist/hosting/doorGuard.js +509 -0
  134. package/dist/hosting/doorGuard.js.map +1 -0
  135. package/dist/hosting/errors.js +183 -1
  136. package/dist/hosting/errors.js.map +1 -1
  137. package/dist/hosting/httpHost.js +218 -4
  138. package/dist/hosting/httpHost.js.map +1 -1
  139. package/dist/hosting/index.js +19 -2
  140. package/dist/hosting/index.js.map +1 -1
  141. package/dist/hosting/ingressRecord.js +66 -6
  142. package/dist/hosting/ingressRecord.js.map +1 -1
  143. package/dist/hosting/nodeHost.js +11 -1
  144. package/dist/hosting/nodeHost.js.map +1 -1
  145. package/dist/hosting/standingAgent.js +359 -48
  146. package/dist/hosting/standingAgent.js.map +1 -1
  147. package/dist/hosting/turnArtifacts.js +130 -0
  148. package/dist/hosting/turnArtifacts.js.map +1 -0
  149. package/dist/hosting/types.js +11 -1
  150. package/dist/hosting/types.js.map +1 -1
  151. package/dist/hosting/webSocketConversation.js +54 -2
  152. package/dist/hosting/webSocketConversation.js.map +1 -1
  153. package/dist/integrity/disposition/ledger.js +0 -0
  154. package/dist/integrity/disposition/ledger.js.map +1 -1
  155. package/dist/lib/mcp/mcpServe.js +39 -2
  156. package/dist/lib/mcp/mcpServe.js.map +1 -1
  157. package/dist/recorders/observability/commentary/artifactPhrases.js +10 -1
  158. package/dist/recorders/observability/commentary/artifactPhrases.js.map +1 -1
  159. package/dist/recorders/observability/commentary/commentaryTemplates.js +29 -2
  160. package/dist/recorders/observability/commentary/commentaryTemplates.js.map +1 -1
  161. package/dist/recorders/observability/recordRun.js +20 -3
  162. package/dist/recorders/observability/recordRun.js.map +1 -1
  163. package/dist/strategies/attach.js +87 -1
  164. package/dist/strategies/attach.js.map +1 -1
  165. package/dist/types/adapters/hosting/agentCoreA2A.d.ts +14 -1
  166. package/dist/types/adapters/hosting/agentCoreA2A.d.ts.map +1 -1
  167. package/dist/types/adapters/hosting/agentcore.d.ts +18 -2
  168. package/dist/types/adapters/hosting/agentcore.d.ts.map +1 -1
  169. package/dist/types/adapters/hosting/foundryResponses.d.ts +15 -1
  170. package/dist/types/adapters/hosting/foundryResponses.d.ts.map +1 -1
  171. package/dist/types/adapters/observability/agentcore.d.ts +17 -5
  172. package/dist/types/adapters/observability/agentcore.d.ts.map +1 -1
  173. package/dist/types/adapters/observability/audit.d.ts +6 -2
  174. package/dist/types/adapters/observability/audit.d.ts.map +1 -1
  175. package/dist/types/adapters/observability/otel.d.ts +240 -11
  176. package/dist/types/adapters/observability/otel.d.ts.map +1 -1
  177. package/dist/types/artifacts/capability.d.ts +3 -1
  178. package/dist/types/artifacts/capability.d.ts.map +1 -1
  179. package/dist/types/bridge/eventMeta.d.ts +32 -0
  180. package/dist/types/bridge/eventMeta.d.ts.map +1 -1
  181. package/dist/types/core/Agent.d.ts +18 -5
  182. package/dist/types/core/Agent.d.ts.map +1 -1
  183. package/dist/types/core/RunnerBase.d.ts +20 -0
  184. package/dist/types/core/RunnerBase.d.ts.map +1 -1
  185. package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
  186. package/dist/types/core/agent/stages/toolCalls.d.ts +11 -0
  187. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  188. package/dist/types/core/flowchartAsTool.d.ts.map +1 -1
  189. package/dist/types/core/runbook/runbookAsTool.d.ts.map +1 -1
  190. package/dist/types/core/toolShownArgs.d.ts +63 -0
  191. package/dist/types/core/toolShownArgs.d.ts.map +1 -0
  192. package/dist/types/events/payloads.d.ts +122 -6
  193. package/dist/types/events/payloads.d.ts.map +1 -1
  194. package/dist/types/events/registry.d.ts +3 -1
  195. package/dist/types/events/registry.d.ts.map +1 -1
  196. package/dist/types/events/types.d.ts +7 -0
  197. package/dist/types/events/types.d.ts.map +1 -1
  198. package/dist/types/hosting/artifactWire.d.ts +10 -2
  199. package/dist/types/hosting/artifactWire.d.ts.map +1 -1
  200. package/dist/types/hosting/doorGuard.d.ts +281 -0
  201. package/dist/types/hosting/doorGuard.d.ts.map +1 -0
  202. package/dist/types/hosting/errors.d.ts +113 -0
  203. package/dist/types/hosting/errors.d.ts.map +1 -1
  204. package/dist/types/hosting/httpHost.d.ts +32 -3
  205. package/dist/types/hosting/httpHost.d.ts.map +1 -1
  206. package/dist/types/hosting/index.d.ts +7 -5
  207. package/dist/types/hosting/index.d.ts.map +1 -1
  208. package/dist/types/hosting/ingressRecord.d.ts +64 -10
  209. package/dist/types/hosting/ingressRecord.d.ts.map +1 -1
  210. package/dist/types/hosting/nodeHost.d.ts +32 -2
  211. package/dist/types/hosting/nodeHost.d.ts.map +1 -1
  212. package/dist/types/hosting/standingAgent.d.ts.map +1 -1
  213. package/dist/types/hosting/turnArtifacts.d.ts +94 -0
  214. package/dist/types/hosting/turnArtifacts.d.ts.map +1 -0
  215. package/dist/types/hosting/types.d.ts +196 -3
  216. package/dist/types/hosting/types.d.ts.map +1 -1
  217. package/dist/types/hosting/webSocketConversation.d.ts +15 -1
  218. package/dist/types/hosting/webSocketConversation.d.ts.map +1 -1
  219. package/dist/types/integrity/disposition/ledger.d.ts +8 -0
  220. package/dist/types/integrity/disposition/ledger.d.ts.map +1 -1
  221. package/dist/types/lib/mcp/mcpServe.d.ts.map +1 -1
  222. package/dist/types/lib/mcp/types.d.ts +30 -0
  223. package/dist/types/lib/mcp/types.d.ts.map +1 -1
  224. package/dist/types/recorders/observability/commentary/artifactPhrases.d.ts +4 -0
  225. package/dist/types/recorders/observability/commentary/artifactPhrases.d.ts.map +1 -1
  226. package/dist/types/recorders/observability/commentary/commentaryTemplates.d.ts.map +1 -1
  227. package/dist/types/recorders/observability/recordRun.d.ts +12 -0
  228. package/dist/types/recorders/observability/recordRun.d.ts.map +1 -1
  229. package/dist/types/strategies/attach.d.ts.map +1 -1
  230. package/package.json +1 -1
@@ -0,0 +1,281 @@
1
+ /**
2
+ * hosting/doorGuard — what a request has to be before any handler sees it.
3
+ *
4
+ * const guard = doorGuard({ name: 'auth', allowedHosts: ['neo.corp.example'] });
5
+ * const refusal = guard.check(req); // an IncomingMessage works as-is
6
+ * if (refusal) return answer(refusal.status, refusal.message, refusal.code);
7
+ *
8
+ * ── The threat, in one paragraph ────────────────────────────────────────────
9
+ * A door with no verifier, reachable only inside a company network, looks safe
10
+ * because the network is the fence. It is not: every person inside the fence
11
+ * runs a browser, and every web page they open can make that browser send
12
+ * requests to the door FROM INSIDE. Three ways, all live before this file:
13
+ *
14
+ * 1. **A forged request (CSRF).** A page on any site can make the browser
15
+ * POST a JSON-shaped body as `text/plain` (or as a form, or with no
16
+ * content type at all) without asking the server first — a CORS "simple"
17
+ * request. The door parsed it as JSON and ran a turn: model budget spent,
18
+ * tools called, a conversation stored. The attacker cannot read the reply;
19
+ * they do not need to.
20
+ * 2. **DNS rebinding.** A page on an attacker's domain re-points its OWN name
21
+ * at the door's address. The browser now treats the attacker's page as
22
+ * same-origin with the door, so it may send anything and READ the answer.
23
+ * 3. **A cross-site WebSocket.** A WebSocket is not bound by the same-origin
24
+ * policy at all; any page can open one, and only the server can say no.
25
+ *
26
+ * ── The rules, one owner ────────────────────────────────────────────────────
27
+ * `check()` judges a request that CHANGES something — every method but GET,
28
+ * HEAD and OPTIONS, plus every WebSocket upgrade (a GET that opens a channel):
29
+ *
30
+ * - **Host** (with `allowedHosts` set, or defaulted to the loopback names on
31
+ * a loopback bind; judged on EVERY method): a name this door was not
32
+ * configured for is refused, 421. First, because under rebinding the other
33
+ * two checks pass — the Host header, which no page can set, is the one
34
+ * fact that still names the attacker. `X-Forwarded-Host` is never read for
35
+ * it: a rebinding page is same-origin and may set that header itself.
36
+ * - **Origin**: a browser request from a page this door does not allow is
37
+ * refused, 403 — including `Origin: null`. A request WITHOUT an Origin is a
38
+ * script or a server (browsers always send one on these requests) and is
39
+ * not judged by it; that is what keeps every non-browser client working.
40
+ * - **Fetch metadata**, as defence in depth: a request the browser itself
41
+ * marked `Sec-Fetch-Site: cross-site` is refused (403) unless its Origin is
42
+ * one `allowedOrigins` LISTS — so a proxy that strips `Origin` but forwards
43
+ * `Sec-Fetch-*` still cannot let a forged request through. For a WebSocket
44
+ * handshake these two are the whole defence: the browser API cannot set a
45
+ * header, so there is no preflight to force.
46
+ * - **Content type** (not for an upgrade — it has no body): anything but
47
+ * `application/json` is refused, 415. A browser must ask first (a
48
+ * preflight, which this host never approves) before it sends that type
49
+ * across origins, so requiring it makes a forged request one the browser
50
+ * refuses to send. It is the same property a required custom header buys
51
+ * (RFC 10017 §6.1.3.3.2), without breaking every JSON client that already
52
+ * sends the header and no other.
53
+ *
54
+ * `checkSessionId()` is the fourth bound, and it is not about browsers: a
55
+ * session id is caller data that rides every stored row, log line and trace
56
+ * span of a conversation, so a door refuses one over
57
+ * {@link MAX_SESSION_ID_LENGTH} or carrying a control character.
58
+ *
59
+ * Where it runs: `httpHost` calls `check()` on every request to its request
60
+ * door and on every conversation upgrade, and `checkSessionId()` on the id each
61
+ * dialect reads. An application's OWN routes beside the door (a sign-in route
62
+ * on `onUnhandled`, say) are the application's, and arrive untouched — so this
63
+ * is exported for them to call, and the rule keeps one spelling.
64
+ *
65
+ * Pure: no socket, no clock, no I/O. The design note is
66
+ * `docs/design/2026-09-door-hardening.md`.
67
+ */
68
+ import { HostNotAllowedError, InvalidSessionIdError, OriginNotAllowedError, UnsupportedMediaTypeError } from './errors.js';
69
+ /**
70
+ * The longest session id any door carries, in UTF-16 code units — JavaScript's
71
+ * own `string.length`.
72
+ *
73
+ * 400 is the width the reference SQL session store gives its `session_id`
74
+ * column (`NVARCHAR(400)`, which counts the same units), so no id this door
75
+ * admits is one a store refuses AFTER the model was paid for. The id formats in
76
+ * use fit with room to spare — a UUID is 36 — and there is deliberately no
77
+ * knob: a correlation handle wider than this is not one anybody needs.
78
+ */
79
+ export declare const MAX_SESSION_ID_LENGTH = 400;
80
+ /**
81
+ * The cross-site rules a host enforces at its doors. Every field is optional,
82
+ * and the defaults are the safe ones — see each field for what it costs.
83
+ */
84
+ export interface CrossSiteOptions {
85
+ /**
86
+ * The page origins allowed to drive this door from a browser —
87
+ * `['https://app.corp.example']`: scheme, host and port, nothing after.
88
+ *
89
+ * **Unset (the default):** a browser request is served only from a page on
90
+ * this door's own name — its Origin must match the request's `Host`, or an
91
+ * `X-Forwarded-Host` a proxy added. That is every app served from the same
92
+ * host as its door, unchanged; an app on ANOTHER origin must be listed.
93
+ *
94
+ * **Know what the default does not do:** it does not stop DNS rebinding.
95
+ * There, the attacker's page and the request's Host both carry the
96
+ * attacker's name, so they match. {@link CrossSiteOptions.allowedHosts} is
97
+ * the defence for that.
98
+ *
99
+ * A listed origin may be on another SITE by design, so a request from one
100
+ * passes even when the browser marks it `Sec-Fetch-Site: cross-site`. Any
101
+ * other request marked that way is refused — the catch for a proxy that
102
+ * strips `Origin`. A reverse proxy must forward `Origin` and `Sec-Fetch-*`
103
+ * unchanged.
104
+ *
105
+ * `'any'` turns both browser checks off — for a door no browser page can
106
+ * reach with a user's ambient authority. `'null'` and `'*'` are refused at
107
+ * construction: the first is every sandboxed frame on every site, the second
108
+ * would read as a pattern it is not.
109
+ */
110
+ readonly allowedOrigins?: readonly string[] | 'any';
111
+ /**
112
+ * The names this door answers for — `['neo.corp.example']`. A request whose
113
+ * `Host` names anything else is refused with 421, which is what stops DNS
114
+ * rebinding. Matched case-insensitively; an entry without a port matches any
115
+ * port, an entry with one matches only it; IPv6 in brackets (`'[::1]'`).
116
+ *
117
+ * **Unset on a LOOPBACK bind** (`127.0.0.1`, `::1`, `localhost` — a host
118
+ * binding its own socket there): `localhost`, `127.0.0.1` and `[::1]`, any
119
+ * port, silently. Such a socket has no other name, so this refuses nobody
120
+ * and closes rebinding on a developer's own machine.
121
+ *
122
+ * **Unset on any other bind:** every Host is served, and the host prints
123
+ * ONE warning at boot naming this option. A deliberate staged default:
124
+ * refusing at boot would stop existing deployments starting.
125
+ *
126
+ * `'any'` serves every Host on purpose and prints nothing — for a door whose
127
+ * port no browser can reach (a platform's front door in front of it). An
128
+ * empty list is refused at construction: it could never serve anything.
129
+ *
130
+ * Health probes are not judged: a load balancer or kubelet sends the
131
+ * target's ADDRESS as Host, and a probe that failed on it would restart a
132
+ * healthy server.
133
+ */
134
+ readonly allowedHosts?: readonly string[] | 'any';
135
+ /**
136
+ * Refuse a request that changes something unless it says
137
+ * `content-type: application/json` (415). Default `true`.
138
+ *
139
+ * `false` is the named escape hatch for a NON-BROWSER integration that
140
+ * cannot send the header. It removes the half of the defence that does not
141
+ * depend on Origin — so set it only on a door no browser can reach, and
142
+ * keep `allowedOrigins` and `allowedHosts` doing their part.
143
+ */
144
+ readonly requireJsonContentType?: boolean;
145
+ }
146
+ /** {@link doorGuard}'s options: the rules, plus who is refusing. */
147
+ export interface DoorGuardOptions extends CrossSiteOptions {
148
+ /** Who refuses — every refusal names it, as every host refusal does. */
149
+ readonly name: string;
150
+ /**
151
+ * The address this door's socket is bound to, when the door bound it
152
+ * itself. A loopback address with `allowedHosts` unset makes the loopback
153
+ * names the list (see {@link loopbackAllowedHosts}), and a refusal then
154
+ * says the list was defaulted and how to set one. Absent: nothing is
155
+ * inferred.
156
+ */
157
+ readonly bindHost?: string;
158
+ }
159
+ /**
160
+ * The parts of a request the guard reads. A `node:http` `IncomingMessage` is
161
+ * one as it stands; so is a plain `{ method, headers }`. Header names are
162
+ * matched case-insensitively.
163
+ */
164
+ export interface DoorRequest {
165
+ /** The HTTP method. Absent is judged as a request that changes something. */
166
+ readonly method?: string;
167
+ readonly headers: Readonly<Record<string, string | readonly string[] | undefined>>;
168
+ }
169
+ /** Why a request may not enter — one of three, each carrying its own `status`. */
170
+ export type CrossSiteRefusal = UnsupportedMediaTypeError | OriginNotAllowedError | HostNotAllowedError;
171
+ /** A guard, built once, asked per request. */
172
+ export interface DoorGuard {
173
+ /** The refusal this request earns at the door, or `undefined` to let it in. */
174
+ check(request: DoorRequest): CrossSiteRefusal | undefined;
175
+ /**
176
+ * `true` when `allowedHosts` was left unset — the door answers any Host and
177
+ * the host says so once at boot. `false` for a list or for `'any'`.
178
+ */
179
+ readonly allowedHostsUnset: boolean;
180
+ /**
181
+ * `true` when both browser rules are off (`allowedOrigins: 'any'` and
182
+ * `requireJsonContentType: false`) — the host says so once at boot.
183
+ */
184
+ readonly browserRulesOff: boolean;
185
+ }
186
+ /**
187
+ * Build a guard. Configuration a door could only ever misread is refused HERE,
188
+ * at construction, by name — never discovered as a mystery 403 in production.
189
+ */
190
+ export declare function doorGuard(options: DoorGuardOptions): DoorGuard;
191
+ /**
192
+ * The session-id bound — `undefined` for an id a door may carry (or none).
193
+ *
194
+ * A session id is one to {@link MAX_SESSION_ID_LENGTH} characters of VISIBLE
195
+ * ASCII (0x21–0x7E) — the rule MCP gives its own session ids. Why ASCII and
196
+ * not "Unicode minus the dangerous parts":
197
+ *
198
+ * - **One id, one byte string, from every field.** Node reads a header value
199
+ * as latin1 and a JSON body as UTF-8, so `café` in `x-session-id` and `café`
200
+ * in the body were two different stored conversations. With ASCII only,
201
+ * the two readings cannot differ.
202
+ * - **Nothing a log, a span or a store can reinterpret.** Controls, line and
203
+ * paragraph separators (U+2028/9), bidi overrides (U+202E), zero-width
204
+ * characters and lone surrogates (which any UTF-8 store rewrites to U+FFFD,
205
+ * merging two ids) are all outside it — no list of exceptions to keep up.
206
+ * - Every id format in use already fits: UUIDs, platform runtime ids, `conv_…`.
207
+ *
208
+ * The empty string is refused too: every caller that sent `""` shared ONE
209
+ * conversation. The length is judged first, so an over-long id costs one
210
+ * comparison — after a body read that `maxBodyBytes` bounds.
211
+ */
212
+ export declare function checkSessionId(sessionId: string | undefined, hostName: string): InvalidSessionIdError | undefined;
213
+ /**
214
+ * The names a LOOPBACK-bound door answers to when `allowedHosts` was not set —
215
+ * `localhost`, `127.0.0.1`, `[::1]` (and the bound address itself when it is
216
+ * another `127.x`), any port: the socket already fixes the port, so a name is
217
+ * all a rebinding page can vary. `undefined` for any other bind.
218
+ *
219
+ * It closes DNS rebinding on the classic victim, a developer's own machine,
220
+ * and the MCP SDK's `createMcpExpressApp` does the same for a localhost bind.
221
+ * What it refuses that is legitimate, stated rather than discovered:
222
+ *
223
+ * - **A reverse proxy on the same machine that forwards the PUBLIC name** in
224
+ * `Host` (nginx `proxy_set_header Host $host`) — the common case, and the
225
+ * recommended "bind 127.0.0.1 behind nginx" setup. The proxy's requests
226
+ * arrive on loopback carrying `neo.corp.example`, which the socket cannot
227
+ * tell from a rebinding page. List that name in `allowedHosts`; the 421
228
+ * says so, naming this default (`HostNotAllowedError` · `rule`).
229
+ * - A hosts-file alias for a loopback address — the same fix.
230
+ *
231
+ * Both fail loudly and in the safe direction, and the fix is the option such
232
+ * a deployment should set anyway.
233
+ *
234
+ * @internal — `doorGuard` asks it with the address a door bound
235
+ * (`DoorGuardOptions.bindHost`).
236
+ */
237
+ export declare function loopbackAllowedHosts(bindHost: string | undefined): readonly string[] | undefined;
238
+ /**
239
+ * `localhost`, any `127.x` literal, and `::1` or `::ffff:127.x` in ANY IPv6
240
+ * spelling (bracketed or not, `0:0:0:0:0:0:0:1`, leading zeros) — IPv6 is
241
+ * canonicalised by the WHATWG URL parser before it is compared.
242
+ */
243
+ export declare function isLoopbackBind(bindHost: string | undefined): boolean;
244
+ /**
245
+ * The cross-site rules for a door a PLATFORM fronts — the hosted-runtime
246
+ * adapters' defaults, with whatever the deployment set kept as given.
247
+ *
248
+ * Exempt by default, and why, once for every such adapter: the platform's own
249
+ * front door is the only way to the container's port, and the credential it
250
+ * demands is one no web page holds (a signed request, a bearer the caller
251
+ * attaches) — so a forged browser request cannot authenticate and no browser
252
+ * can reach the port to rebind it. The browser rules would protect nothing
253
+ * there, and which headers the platform forwards (its content type, Origin,
254
+ * Host) is not a fact this library has verified; enforcing them could refuse
255
+ * the platform's own forwarding. Any rule the deployment sets is enforced
256
+ * exactly as on every other door. The session-id bound is NOT exempt: it is
257
+ * not about browsers.
258
+ *
259
+ * @internal — the adapters' shared default, not a public setting.
260
+ */
261
+ export declare function platformFrontedDoor(options: CrossSiteOptions, bindHost: string | undefined): CrossSiteOptions;
262
+ /**
263
+ * Said once per host name per process, at boot, when a door serves with the
264
+ * browser rules OFF (`allowedOrigins: 'any'` and `requireJsonContentType:
265
+ * false` — the hosted-runtime adapters' default on a non-loopback bind). Those
266
+ * rules are off because a platform's front door is supposed to be the only way
267
+ * in; a self-hoster on `0.0.0.0` needs to hear that it is not.
268
+ *
269
+ * @internal — the words have one owner; `httpHost` decides when.
270
+ */
271
+ export declare function warnBrowserRulesOff(hostName: string): void;
272
+ /**
273
+ * The staged default, said out loud: a host serving with `allowedHosts` unset
274
+ * prints this ONCE per host name per process, at boot. A name is how every
275
+ * refusal identifies a host, so two hosts sharing one are one door to anyone
276
+ * reading the log — and once is what keeps a warning from becoming noise.
277
+ *
278
+ * @internal — the words have one owner; `httpHost` decides when.
279
+ */
280
+ export declare function warnAllowedHostsUnset(hostName: string): void;
281
+ //# sourceMappingURL=doorGuard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doorGuard.d.ts","sourceRoot":"","sources":["../../../src/hosting/doorGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AAEH,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EAE1B,MAAM,aAAa,CAAC;AAErB;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,KAAK,CAAC;IACpD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,KAAK,CAAC;IAClD;;;;;;;;OAQG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAC3C;AAED,oEAAoE;AACpE,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;CACpF;AAED,kFAAkF;AAClF,MAAM,MAAM,gBAAgB,GACxB,yBAAyB,GACzB,qBAAqB,GACrB,mBAAmB,CAAC;AAExB,8CAA8C;AAC9C,MAAM,WAAW,SAAS;IACxB,+EAA+E;IAC/E,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,gBAAgB,GAAG,SAAS,CAAC;IAC1D;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAKD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CA6B9D;AA2CD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,QAAQ,EAAE,MAAM,GACf,qBAAqB,GAAG,SAAS,CAiBnC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAQhG;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAWpE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,gBAAgB,CAkBlB;AAKD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAY1D;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAc5D"}
@@ -226,6 +226,28 @@ export declare class ArtifactNotCarriedError extends Error {
226
226
  readonly ref: string;
227
227
  constructor(ref: string, hostName?: string);
228
228
  }
229
+ /**
230
+ * Refused when host code uses a turn's artifact hand-over
231
+ * (`HostReply.turnArtifacts`) after that turn ended.
232
+ *
233
+ * The hand-over is live only while the hook runs: the composer awaits the
234
+ * hook while the session's lane is held, waits for every operation the hook
235
+ * started, then revokes the binding before the reply ends. A verb called
236
+ * after that is refused by name rather than performed. The footprintjs
237
+ * `ScopeFacade · assertLive` law, one layer up: a handle held past its stage
238
+ * is refused, because a write made outside its turn lands on whatever run the
239
+ * instance is serving by then — in the shared shape, another person's — and
240
+ * makes the record lie.
241
+ *
242
+ * The fix is always the same: file INSIDE the hook (`await
243
+ * turn.artifacts.put(...)`), and carry the ticket onward from there.
244
+ */
245
+ export declare class TurnArtifactsExpiredError extends Error {
246
+ readonly code: "ERR_TURN_ARTIFACTS_EXPIRED";
247
+ /** Which verb was called after the turn ended. */
248
+ readonly op: 'put' | 'head' | 'get' | 'delete' | 'list';
249
+ constructor(op: 'put' | 'head' | 'get' | 'delete' | 'list');
250
+ }
229
251
  /**
230
252
  * Thrown when a store hands back something that is **present but unreadable**
231
253
  * where a `CheckpointEnvelope` should be.
@@ -523,5 +545,96 @@ export declare class WireRequestRefusal extends Error {
523
545
  /** HTTP status for this refusal. Default 400 — the request is what is wrong. */
524
546
  status?: number);
525
547
  }
548
+ /**
549
+ * A request that changes something did not say `content-type: application/json`.
550
+ *
551
+ * The door is a JSON API, and that is only half the reason. The other half is
552
+ * the web: a page on ANY site can make a browser send `text/plain`,
553
+ * `application/x-www-form-urlencoded` or `multipart/form-data` — or no content
554
+ * type at all — without asking the server first (a CORS "simple" request). A
555
+ * browser must ask first (a preflight, which this host never approves) before
556
+ * it sends `application/json` across origins. Requiring it is what turns a
557
+ * forged request into one the browser refuses to send.
558
+ */
559
+ export declare class UnsupportedMediaTypeError extends Error {
560
+ readonly code: "ERR_UNSUPPORTED_MEDIA_TYPE";
561
+ /** 415 Unsupported Media Type. */
562
+ readonly status: 415;
563
+ constructor(hostName: string);
564
+ }
565
+ /**
566
+ * Which browser fact refused an {@link OriginNotAllowedError}.
567
+ *
568
+ * - `'same-host'` — `allowedOrigins` is unset and the page's Origin is not
569
+ * this door's own name.
570
+ * - `'listed'` — the page's Origin is not in `allowedOrigins`.
571
+ * - `'fetch-metadata'` — the browser marked the request `Sec-Fetch-Site:
572
+ * cross-site` and its Origin is not one `allowedOrigins` lists. This is the
573
+ * one that still fires when a proxy strips `Origin` but forwards the Fetch
574
+ * metadata beside it.
575
+ */
576
+ export type OriginRefusalRule = 'same-host' | 'listed' | 'fetch-metadata';
577
+ /**
578
+ * A browser request came from a page whose origin this door does not allow —
579
+ * or from an opaque origin (`Origin: null`), which any sandboxed frame on any
580
+ * site can produce and which is therefore never allowed — or the browser said
581
+ * outright that it was sent cross-site.
582
+ *
583
+ * Only BROWSERS send `Origin` (on every request that changes something, and on
584
+ * every WebSocket handshake), so a request without one is a script or a
585
+ * server — unless the same request carries the browser's own `Sec-Fetch-Site:
586
+ * cross-site`, which is how a stripped `Origin` still gets caught.
587
+ */
588
+ export declare class OriginNotAllowedError extends Error {
589
+ readonly code: "ERR_ORIGIN_NOT_ALLOWED";
590
+ /** 403 Forbidden. */
591
+ readonly status: 403;
592
+ /** Which browser fact refused it. */
593
+ readonly rule: OriginRefusalRule;
594
+ constructor(hostName: string, rule: OriginRefusalRule);
595
+ }
596
+ /**
597
+ * A request named a Host this door was not configured to answer for.
598
+ *
599
+ * The DNS-rebinding defence: a page on an attacker's domain re-points its OWN
600
+ * name at this server's address, and from then on the browser treats it as
601
+ * same-origin with the door — so every other check passes, and the Host header
602
+ * (which no page can set) is the one fact that still names the attacker.
603
+ * 421 is the status HTTP defines for exactly this (RFC 9110 §15.5.20: a target
604
+ * "that does not match an origin for which the server has been configured").
605
+ */
606
+ export declare class HostNotAllowedError extends Error {
607
+ readonly code: "ERR_HOST_NOT_ALLOWED";
608
+ /** 421 Misdirected Request. */
609
+ readonly status: 421;
610
+ /**
611
+ * Where the list came from: `'listed'` — the deployment's own
612
+ * `allowedHosts`; `'loopback-default'` — nobody set one, and the door is
613
+ * bound to a loopback address, so it answers the loopback names only.
614
+ */
615
+ readonly rule: 'listed' | 'loopback-default';
616
+ constructor(hostName: string, rule?: 'listed' | 'loopback-default');
617
+ }
618
+ /**
619
+ * A session id the door will not carry: empty, longer than the ceiling, or
620
+ * holding anything but visible ASCII (0x21–0x7E).
621
+ *
622
+ * A session id is caller data that travels everywhere the conversation does —
623
+ * the store's key, every log line, every exported trace span of every turn.
624
+ * Unbounded, one caller with no credentials could make every span of a turn
625
+ * carry megabytes; with a control, a line separator or a bidi override, it
626
+ * could forge or disguise a line in any log that prints it; with non-ASCII,
627
+ * the same id read from a header (latin1) and from a body (UTF-8) would be two
628
+ * different conversations. So it is bounded at the door, before any of that
629
+ * happens. The refusal says how long the id was, never what it said.
630
+ */
631
+ export declare class InvalidSessionIdError extends Error {
632
+ readonly code: "ERR_INVALID_SESSION_ID";
633
+ /** 400 Bad Request — the caller can send a valid id and continue. */
634
+ readonly status: 400;
635
+ /** Which rule the id broke. Never the id. */
636
+ readonly reason: 'empty' | 'too-long' | 'invalid-character';
637
+ constructor(reason: 'empty' | 'too-long' | 'invalid-character', hostName: string, length: number, limit: number);
638
+ }
526
639
  export declare function requireCapability(host: AgentHost | ConversationHost, capability: HostCapability): void;
527
640
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/hosting/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/hosting/errors.ts"],"names":[],"mappings":"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"}
@@ -63,12 +63,28 @@
63
63
  * whichever closes last; on a caller-owned one each door attaches and detaches
64
64
  * its own listener and neither touches the socket.
65
65
  *
66
+ * ── The door guard, on both doors ────────────────────────────────────────────
67
+ * Being able to reach the port is not permission: every browser inside the
68
+ * network can be steered by any page it opens. So before any handler sees a
69
+ * request, the request door and the conversation door ask one guard
70
+ * (`doorGuard.ts`): a Host this door was not configured for (421), a browser
71
+ * origin it does not allow (403), a state-changing request that does not say
72
+ * it is JSON (415) — and, once a dialect has read it, a session id over the
73
+ * bound (400). Judged on the headers alone — a refused body is never parsed,
74
+ * only drained when small so its sender reads the answer — and never invited
75
+ * with a `100 Continue` on a socket this host owns. Answered with the
76
+ * refusal's own sentence, reported to `onRefusal` listeners. Probes (the
77
+ * health GET, the HEAD probe) are never asked; routes handed to `onUnhandled`
78
+ * are the caller's. A loopback bind with `allowedHosts` unset answers the
79
+ * loopback names only.
80
+ *
66
81
  * Pattern: Template method via configuration (Strategy on the wire format).
67
82
  * Everything HTTP lives here and in the wires; `types.ts` knows none of it.
68
83
  */
69
84
  /// <reference types="node" />
70
85
  import type { IncomingMessage, Server, ServerResponse } from 'node:http';
71
86
  import type { ArtifactWireRequest, ArtifactWireResult } from './artifactWire.js';
87
+ import { type CrossSiteOptions } from './doorGuard.js';
72
88
  import type { SessionWireRequest, SessionWireResult } from './sessionWire.js';
73
89
  import type { AgentHost, ConversationHandler, ConversationHost, ConversationLimits, HostCapability, HostHandle, HostHandler, PendingAsk } from './types.js';
74
90
  import { type ConversationHandshake, type HandshakeFacts } from './webSocketConversation.js';
@@ -305,8 +321,16 @@ export interface HttpWire {
305
321
  */
306
322
  readConversation?(facts: HandshakeFacts): ConversationHandshake;
307
323
  }
308
- /** Options for {@link httpHost}. */
309
- export interface HttpHostOptions {
324
+ /**
325
+ * Options for {@link httpHost}.
326
+ *
327
+ * The three cross-site fields — `allowedOrigins`, `allowedHosts`,
328
+ * `requireJsonContentType` — come from {@link CrossSiteOptions} and are
329
+ * enforced by this host's door guard on its request door and its conversation
330
+ * door alike, before any handler sees a request. Their defaults are the safe
331
+ * ones; see `doorGuard.ts` for what each costs.
332
+ */
333
+ export interface HttpHostOptions extends CrossSiteOptions {
310
334
  /**
311
335
  * Which adapter this is. Every refusal names it, so a caller reading an error
312
336
  * learns which adapter said no rather than which file it came from.
@@ -331,7 +355,12 @@ export interface HttpHostOptions {
331
355
  * not bind.
332
356
  */
333
357
  readonly port?: number;
334
- /** Interface to bind. Default `'0.0.0.0'`. Refused together with `server`, for the same reason. */
358
+ /**
359
+ * Interface to bind. Default `'0.0.0.0'`. Refused together with `server`, for the same reason.
360
+ *
361
+ * Every interface means every name that resolves to one of them — which is
362
+ * why a host serving with `allowedHosts` unset says so once at boot.
363
+ */
335
364
  readonly hostname?: string;
336
365
  /** What this adapter claims beyond the baseline. Default `['streaming']`. */
337
366
  readonly capabilities?: readonly HostCapability[];
@@ -1 +1 @@
1
- {"version":3,"file":"httpHost.d.ts","sourceRoot":"","sources":["../../../src/hosting/httpHost.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"httpHost.d.ts","sourceRoot":"","sources":["../../../src/hosting/httpHost.ts"],"names":[],"mappings":"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"}
@@ -92,7 +92,7 @@
92
92
  * });
93
93
  * process.on('SIGTERM', () => void handle.close());
94
94
  */
95
- export { nodeHost, jsonWire, jsonWireWith, DEFAULT_SESSION_HEADER } from './nodeHost.js';
95
+ export { nodeHost, jsonWire, jsonWireWith, DEFAULT_SESSION_HEADER, DEFAULT_NODE_MAX_BODY_BYTES, } from './nodeHost.js';
96
96
  export type { NodeHost, NodeHostHandle, NodeHostOptions, JsonWireOptions } from './nodeHost.js';
97
97
  export { httpHost, headerValue } from './httpHost.js';
98
98
  export type { ConversationHandshake, HandshakeFacts, HttpHost, HttpHostHandle, HttpHostOptions, FailureOrigin, HttpRequestFacts, HttpWire, StreamFrame, StreamFraming, } from './httpHost.js';
@@ -101,9 +101,11 @@ export { sqliteSessions, SqliteUnavailableError, UnreadableSessionFileError, } f
101
101
  export type { SqliteSessions, SqliteSessionsOptions } from './sqliteSessions.js';
102
102
  export { toEnvelope, envelopeOwner, envelopeTranscript, toPausedEnvelope, readEnvelope, readPausedRun, checkEnvelope, } from './envelope.js';
103
103
  export { standingAgent } from './standingAgent.js';
104
- export { DEFAULT_MAX_ACTIVE_SESSIONS, DEFAULT_SWEEP_LIMIT } from './types.js';
105
- export { requireCapability, HostClosedError, ConcurrentRunError, PauseNotCarriedError, AwaitingDecisionError, NoPendingAskError, UnreadableEnvelopeError, ConversationClosedError, FrameTooLargeError, InvalidWireOpError, ArtifactSessionRequiredError, NoArtifactStoreError, ArtifactNotFoundError, ArtifactNotCarriedError, IdentityNotVerifiedError, VerifierUnavailableError, AdmissionRefusedError, SessionOpNeedsIdentityError, SessionIndexUnavailableError, SessionRetentionUnavailableError, SessionNotFoundError, SessionOwnershipConflictError, SessionsNotCarriedError, RequestTooLargeError, WireRequestRefusal, } from './errors.js';
106
- export type { IdentityFailureClass } from './errors.js';
104
+ export { DEFAULT_MAX_ACTIVE_SESSIONS, DEFAULT_SWEEP_LIMIT, TURN_ARTIFACTS_TIMEOUT_MS, } from './types.js';
105
+ export { requireCapability, HostClosedError, ConcurrentRunError, PauseNotCarriedError, AwaitingDecisionError, NoPendingAskError, UnreadableEnvelopeError, ConversationClosedError, FrameTooLargeError, InvalidWireOpError, ArtifactSessionRequiredError, NoArtifactStoreError, ArtifactNotFoundError, ArtifactNotCarriedError, TurnArtifactsExpiredError, IdentityNotVerifiedError, VerifierUnavailableError, AdmissionRefusedError, SessionOpNeedsIdentityError, SessionIndexUnavailableError, SessionRetentionUnavailableError, SessionNotFoundError, SessionOwnershipConflictError, SessionsNotCarriedError, RequestTooLargeError, WireRequestRefusal, UnsupportedMediaTypeError, OriginNotAllowedError, HostNotAllowedError, InvalidSessionIdError, } from './errors.js';
106
+ export type { IdentityFailureClass, OriginRefusalRule } from './errors.js';
107
+ export { checkSessionId, doorGuard, MAX_SESSION_ID_LENGTH } from './doorGuard.js';
108
+ export type { CrossSiteOptions, CrossSiteRefusal, DoorGuard, DoorGuardOptions, DoorRequest, } from './doorGuard.js';
107
109
  export { sessionRetention } from './sessionRetention.js';
108
110
  export { resolveSessionOwner } from './sessionOwnership.js';
109
111
  export { formatConformanceReport, runSessionLifecycleCase, runSessionLifecycleConformance, sessionLifecycleConformance, } from './conformance/index.js';
@@ -119,5 +121,5 @@ export { ALL_WIRE_OPS, isWireOp, refuseUnknownWireOp, WIRE_OPS } from './wireOps
119
121
  export type { WireOpName } from './wireOps.js';
120
122
  export { readArtifactWireOp, artifactWireBody, ARTIFACT_HEAD_OP, ARTIFACT_GET_OP, } from './artifactWire.js';
121
123
  export type { ArtifactWireRequest, ArtifactWireResult } from './artifactWire.js';
122
- export type { AgentHost, CheckpointEnvelope, ConcurrentInvokePolicy, ConversationClose, ConversationEnvelope, ConversationHandler, ConversationHost, ConversationLimits, DurabilityMode, HostCapability, HostConversation, HostHandle, HostHandler, HostReply, HostRequest, PausedRun, PausedRunEnvelope, PendingAsk, SessionExpiryPolicy, SessionLifecycle, SessionListOptions, SessionListPage, SessionRetention, SessionSweep, SessionSweepOptions, SessionSweepResult, StandingAgentBaseOptions, StandingAgentOptions, StandingAgentPoolOptions, StandingAgentSharedOptions, Unsubscribe, WakeReason, } from './types.js';
124
+ export type { AgentHost, CheckpointEnvelope, ConcurrentInvokePolicy, ConversationClose, ConversationEnvelope, ConversationHandler, ConversationHost, ConversationLimits, DurabilityMode, HostCapability, HostConversation, HostHandle, HostHandler, HostRefusal, HostReply, HostRequest, PausedRun, PausedRunEnvelope, PendingAsk, SessionExpiryPolicy, SessionLifecycle, SessionListOptions, SessionListPage, SessionRetention, SessionSweep, SessionSweepOptions, SessionSweepResult, StandingAgentBaseOptions, StandingAgentOptions, StandingAgentPoolOptions, StandingAgentSharedOptions, TurnArtifacts, Unsubscribe, WakeReason, } from './types.js';
123
125
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hosting/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hosting/index.ts"],"names":[],"mappings":"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"}