@botiverse/oar 0.40.0 → 0.42.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 (192) hide show
  1. package/README.md +7 -2
  2. package/dist/contracts/failure.d.ts +21 -0
  3. package/dist/contracts/failure.d.ts.map +1 -0
  4. package/dist/contracts/failure.js +2 -0
  5. package/dist/contracts/failure.js.map +1 -0
  6. package/dist/contracts/records.d.ts +9 -6
  7. package/dist/contracts/records.d.ts.map +1 -1
  8. package/dist/contracts/runtime-failure-error.d.ts +23 -0
  9. package/dist/contracts/runtime-failure-error.d.ts.map +1 -0
  10. package/dist/contracts/runtime-failure-error.js +27 -0
  11. package/dist/contracts/runtime-failure-error.js.map +1 -0
  12. package/dist/contracts/runtime.d.ts +5 -5
  13. package/dist/contracts/runtime.d.ts.map +1 -1
  14. package/dist/contracts/session-options.d.ts +12 -0
  15. package/dist/contracts/session-options.d.ts.map +1 -1
  16. package/dist/contracts/session.d.ts +17 -3
  17. package/dist/contracts/session.d.ts.map +1 -1
  18. package/dist/index.d.ts +2 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +1 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/observe/display-text.d.ts +7 -3
  23. package/dist/observe/display-text.d.ts.map +1 -1
  24. package/dist/observe/display-text.js +19 -3
  25. package/dist/observe/display-text.js.map +1 -1
  26. package/dist/observe/events.d.ts +1 -1
  27. package/dist/observe/events.js +2 -2
  28. package/dist/observe/events.js.map +1 -1
  29. package/dist/observe/failure-advice.d.ts +17 -0
  30. package/dist/observe/failure-advice.d.ts.map +1 -0
  31. package/dist/observe/failure-advice.js +18 -0
  32. package/dist/observe/failure-advice.js.map +1 -0
  33. package/dist/observe/index.d.ts +2 -0
  34. package/dist/observe/index.d.ts.map +1 -1
  35. package/dist/observe/index.js +1 -0
  36. package/dist/observe/index.js.map +1 -1
  37. package/dist/runtimes/antigravity/session.d.ts +1 -0
  38. package/dist/runtimes/antigravity/session.d.ts.map +1 -1
  39. package/dist/runtimes/antigravity/session.js +15 -0
  40. package/dist/runtimes/antigravity/session.js.map +1 -1
  41. package/dist/runtimes/claude/content.d.ts +21 -0
  42. package/dist/runtimes/claude/content.d.ts.map +1 -0
  43. package/dist/runtimes/claude/content.js +107 -0
  44. package/dist/runtimes/claude/content.js.map +1 -0
  45. package/dist/runtimes/claude/failure.d.ts +15 -0
  46. package/dist/runtimes/claude/failure.d.ts.map +1 -0
  47. package/dist/runtimes/claude/failure.js +44 -0
  48. package/dist/runtimes/claude/failure.js.map +1 -0
  49. package/dist/runtimes/claude/launch.d.ts.map +1 -1
  50. package/dist/runtimes/claude/launch.js +2 -1
  51. package/dist/runtimes/claude/launch.js.map +1 -1
  52. package/dist/runtimes/claude/projection.d.ts +5 -0
  53. package/dist/runtimes/claude/projection.d.ts.map +1 -1
  54. package/dist/runtimes/claude/projection.js +21 -51
  55. package/dist/runtimes/claude/projection.js.map +1 -1
  56. package/dist/runtimes/claude/session.d.ts.map +1 -1
  57. package/dist/runtimes/claude/session.js +2 -1
  58. package/dist/runtimes/claude/session.js.map +1 -1
  59. package/dist/runtimes/codex/app-server-client.d.ts +3 -0
  60. package/dist/runtimes/codex/app-server-client.d.ts.map +1 -1
  61. package/dist/runtimes/codex/app-server-client.js +1 -0
  62. package/dist/runtimes/codex/app-server-client.js.map +1 -1
  63. package/dist/runtimes/codex/failure.d.ts +6 -0
  64. package/dist/runtimes/codex/failure.d.ts.map +1 -0
  65. package/dist/runtimes/codex/failure.js +45 -0
  66. package/dist/runtimes/codex/failure.js.map +1 -0
  67. package/dist/runtimes/codex/home-initialization.d.ts.map +1 -1
  68. package/dist/runtimes/codex/home-initialization.js +5 -0
  69. package/dist/runtimes/codex/home-initialization.js.map +1 -1
  70. package/dist/runtimes/codex/open.d.ts.map +1 -1
  71. package/dist/runtimes/codex/open.js +2 -0
  72. package/dist/runtimes/codex/open.js.map +1 -1
  73. package/dist/runtimes/codex/projection.d.ts.map +1 -1
  74. package/dist/runtimes/codex/projection.js +8 -13
  75. package/dist/runtimes/codex/projection.js.map +1 -1
  76. package/dist/runtimes/codex/rpc-control.d.ts +2 -1
  77. package/dist/runtimes/codex/rpc-control.d.ts.map +1 -1
  78. package/dist/runtimes/codex/rpc-control.js +4 -2
  79. package/dist/runtimes/codex/rpc-control.js.map +1 -1
  80. package/dist/runtimes/codex/session.d.ts.map +1 -1
  81. package/dist/runtimes/codex/session.js +6 -3
  82. package/dist/runtimes/codex/session.js.map +1 -1
  83. package/dist/runtimes/codex/tool-denials.d.ts +14 -0
  84. package/dist/runtimes/codex/tool-denials.d.ts.map +1 -0
  85. package/dist/runtimes/codex/tool-denials.js +73 -0
  86. package/dist/runtimes/codex/tool-denials.js.map +1 -0
  87. package/dist/runtimes/cursor/failure.d.ts +2 -0
  88. package/dist/runtimes/cursor/failure.d.ts.map +1 -0
  89. package/dist/runtimes/cursor/failure.js +17 -0
  90. package/dist/runtimes/cursor/failure.js.map +1 -0
  91. package/dist/runtimes/cursor/model.d.ts +12 -1
  92. package/dist/runtimes/cursor/model.d.ts.map +1 -1
  93. package/dist/runtimes/cursor/model.js +29 -0
  94. package/dist/runtimes/cursor/model.js.map +1 -1
  95. package/dist/runtimes/cursor/sdk.d.ts +1 -0
  96. package/dist/runtimes/cursor/sdk.d.ts.map +1 -1
  97. package/dist/runtimes/cursor/sdk.js.map +1 -1
  98. package/dist/runtimes/cursor/session.d.ts.map +1 -1
  99. package/dist/runtimes/cursor/session.js +2 -10
  100. package/dist/runtimes/cursor/session.js.map +1 -1
  101. package/dist/runtimes/grok/failure.d.ts +3 -0
  102. package/dist/runtimes/grok/failure.d.ts.map +1 -0
  103. package/dist/runtimes/grok/failure.js +36 -0
  104. package/dist/runtimes/grok/failure.js.map +1 -0
  105. package/dist/runtimes/grok/index.d.ts +1 -0
  106. package/dist/runtimes/grok/index.d.ts.map +1 -1
  107. package/dist/runtimes/grok/index.js +2 -1
  108. package/dist/runtimes/grok/index.js.map +1 -1
  109. package/dist/runtimes/grok/session.d.ts +2 -0
  110. package/dist/runtimes/grok/session.d.ts.map +1 -1
  111. package/dist/runtimes/grok/session.js +7 -0
  112. package/dist/runtimes/grok/session.js.map +1 -1
  113. package/dist/runtimes/kimi/session.d.ts.map +1 -1
  114. package/dist/runtimes/kimi/session.js +1 -0
  115. package/dist/runtimes/kimi/session.js.map +1 -1
  116. package/dist/runtimes/opencode/index.d.ts +1 -0
  117. package/dist/runtimes/opencode/index.d.ts.map +1 -1
  118. package/dist/runtimes/opencode/index.js +2 -1
  119. package/dist/runtimes/opencode/index.js.map +1 -1
  120. package/dist/runtimes/opencode/session.d.ts +2 -0
  121. package/dist/runtimes/opencode/session.d.ts.map +1 -1
  122. package/dist/runtimes/opencode/session.js +5 -0
  123. package/dist/runtimes/opencode/session.js.map +1 -1
  124. package/dist/runtimes/pi/failure.d.ts +12 -0
  125. package/dist/runtimes/pi/failure.d.ts.map +1 -0
  126. package/dist/runtimes/pi/failure.js +18 -0
  127. package/dist/runtimes/pi/failure.js.map +1 -0
  128. package/dist/runtimes/pi/open.d.ts.map +1 -1
  129. package/dist/runtimes/pi/open.js +1 -0
  130. package/dist/runtimes/pi/open.js.map +1 -1
  131. package/dist/runtimes/pi/projection.d.ts +9 -2
  132. package/dist/runtimes/pi/projection.d.ts.map +1 -1
  133. package/dist/runtimes/pi/projection.js +6 -6
  134. package/dist/runtimes/pi/projection.js.map +1 -1
  135. package/dist/runtimes/pi/resolve.d.ts.map +1 -1
  136. package/dist/runtimes/pi/resolve.js +2 -1
  137. package/dist/runtimes/pi/resolve.js.map +1 -1
  138. package/dist/runtimes/pi/session.d.ts.map +1 -1
  139. package/dist/runtimes/pi/session.js +9 -1
  140. package/dist/runtimes/pi/session.js.map +1 -1
  141. package/dist/shared/acp/failure.d.ts +14 -0
  142. package/dist/shared/acp/failure.d.ts.map +1 -0
  143. package/dist/shared/acp/failure.js +63 -0
  144. package/dist/shared/acp/failure.js.map +1 -0
  145. package/dist/shared/acp/process.d.ts +3 -0
  146. package/dist/shared/acp/process.d.ts.map +1 -1
  147. package/dist/shared/acp/process.js +1 -0
  148. package/dist/shared/acp/process.js.map +1 -1
  149. package/dist/shared/acp/profile.d.ts +3 -0
  150. package/dist/shared/acp/profile.d.ts.map +1 -1
  151. package/dist/shared/acp/profile.js +6 -4
  152. package/dist/shared/acp/profile.js.map +1 -1
  153. package/dist/shared/acp/projection.d.ts +1 -3
  154. package/dist/shared/acp/projection.d.ts.map +1 -1
  155. package/dist/shared/acp/projection.js +1 -12
  156. package/dist/shared/acp/projection.js.map +1 -1
  157. package/dist/shared/acp/session.d.ts.map +1 -1
  158. package/dist/shared/acp/session.js +1 -0
  159. package/dist/shared/acp/session.js.map +1 -1
  160. package/dist/shared/acp/turns.d.ts +2 -0
  161. package/dist/shared/acp/turns.d.ts.map +1 -1
  162. package/dist/shared/acp/turns.js +5 -3
  163. package/dist/shared/acp/turns.js.map +1 -1
  164. package/dist/shared/control-input.d.ts +4 -0
  165. package/dist/shared/control-input.d.ts.map +1 -0
  166. package/dist/shared/control-input.js +9 -0
  167. package/dist/shared/control-input.js.map +1 -0
  168. package/dist/shared/executable/process-resources.d.ts +11 -0
  169. package/dist/shared/executable/process-resources.d.ts.map +1 -0
  170. package/dist/shared/executable/process-resources.js +139 -0
  171. package/dist/shared/executable/process-resources.js.map +1 -0
  172. package/dist/shared/executable/process.d.ts +3 -0
  173. package/dist/shared/executable/process.d.ts.map +1 -1
  174. package/dist/shared/executable/process.js +2 -0
  175. package/dist/shared/executable/process.js.map +1 -1
  176. package/dist/shared/failure-class.d.ts +36 -4
  177. package/dist/shared/failure-class.d.ts.map +1 -1
  178. package/dist/shared/failure-class.js +103 -5
  179. package/dist/shared/failure-class.js.map +1 -1
  180. package/dist/shared/mcp-servers.d.ts +5 -1
  181. package/dist/shared/mcp-servers.d.ts.map +1 -1
  182. package/dist/shared/mcp-servers.js +11 -5
  183. package/dist/shared/mcp-servers.js.map +1 -1
  184. package/dist/shared/session-kernel.d.ts +5 -2
  185. package/dist/shared/session-kernel.d.ts.map +1 -1
  186. package/dist/shared/session-kernel.js +2 -1
  187. package/dist/shared/session-kernel.js.map +1 -1
  188. package/dist/shared/session-options.d.ts +1 -1
  189. package/dist/shared/session-options.d.ts.map +1 -1
  190. package/dist/shared/session-options.js +5 -5
  191. package/dist/shared/session-options.js.map +1 -1
  192. package/package.json +1 -1
@@ -1,15 +1,113 @@
1
+ import { asRecord, parseJson } from "./json.js";
1
2
  /**
2
- * Best-effort classification of vendor error prose. The patterns are pinned
3
- * by the vendor snapshot tests: when a runtime changes its wording, the
4
- * snapshot moves and this table gets a conscious update.
3
+ * What an HTTP status means at the providers (the Anthropic, OpenAI and
4
+ * Gemini error references) when nothing richer says. A 401 says the
5
+ * credential failed, not whether it was missing or refused; a 400 is any
6
+ * rejected request.
7
+ */
8
+ export function failureFromStatus(status) {
9
+ switch (status) {
10
+ case 400: return "invalid_request";
11
+ case 401: return "auth";
12
+ case 402: return "billing";
13
+ case 404: return "model_unavailable";
14
+ case 429: return "rate_limited";
15
+ case 503:
16
+ case 529: return "overloaded";
17
+ default: return status >= 500 && status < 600 ? "provider" : "unknown";
18
+ }
19
+ }
20
+ /**
21
+ * Provider error `code`s and `type`s some runtime was observed to carry:
22
+ * OpenAI's codes (and its ChatGPT backend's `usage_limit_reached`,
23
+ * `usage_not_included`), Anthropic's types. An OpenAI 429 is a quota or a
24
+ * billing failure when its code says so, throttling only when it does not.
25
+ */
26
+ const ERROR_CODES = {
27
+ invalid_api_key: "auth",
28
+ model_not_found: "model_unavailable",
29
+ rate_limit_exceeded: "rate_limited",
30
+ insufficient_quota: "quota",
31
+ organization_usage_limit_exceeded: "quota",
32
+ usage_limit_reached: "quota",
33
+ usage_not_included: "quota",
34
+ credit_balance_exhausted: "billing",
35
+ context_length_exceeded: "input_too_large",
36
+ server_is_overloaded: "overloaded",
37
+ authentication_error: "auth",
38
+ not_found_error: "model_unavailable",
39
+ rate_limit_error: "rate_limited",
40
+ billing_error: "billing",
41
+ overloaded_error: "overloaded",
42
+ api_error: "provider",
43
+ server_error: "provider",
44
+ invalid_request_error: "invalid_request",
45
+ };
46
+ /** The class a provider error code or type names; null for one no runtime was seen to carry. */
47
+ export function failureFromErrorCode(code) {
48
+ return ERROR_CODES[code] ?? null;
49
+ }
50
+ /**
51
+ * Anthropic's 400s that have no type of their own (both are
52
+ * `invalid_request_error`): an organization's spend limit and an exhausted
53
+ * credit balance. Matched on the API's own wording, the last resort for the
54
+ * adapters that carry Anthropic's message (claude, pi); pinned by their
55
+ * vendor tests.
56
+ */
57
+ export function anthropicLimitText(message) {
58
+ if (/credit balance is too low/iu.test(message)) {
59
+ return "billing";
60
+ }
61
+ if (/reached your specified API usage limits/iu.test(message)) {
62
+ return "quota";
63
+ }
64
+ return null;
65
+ }
66
+ /**
67
+ * A provider's JSON error body, as Anthropic (`{type: "error", error: {type,
68
+ * message}}`) and OpenAI (`{error: {code, type, message}}`) send it: the
69
+ * class its code names, else its type's (Anthropic's 400 wording first).
70
+ * Null when `text` is no such body or names nothing known.
71
+ */
72
+ export function failureFromErrorBody(text) {
73
+ const error = asRecord(asRecord(parseJson(text))?.error);
74
+ if (error === null) {
75
+ return null;
76
+ }
77
+ const code = typeof error.code === "string" ? failureFromErrorCode(error.code) : null;
78
+ if (code !== null) {
79
+ return code;
80
+ }
81
+ const message = typeof error.message === "string" ? error.message : "";
82
+ if (error.type === "invalid_request_error") {
83
+ return anthropicLimitText(message) ?? "invalid_request";
84
+ }
85
+ return typeof error.type === "string" ? failureFromErrorCode(error.type) : null;
86
+ }
87
+ /**
88
+ * Best-effort classification of vendor error prose: the documented last
89
+ * resort of the adapters whose runtime reports no structure for a failure
90
+ * (opencode's prompt errors, cursor's run errors). The patterns are pinned by
91
+ * the vendor snapshot tests: when a runtime changes its wording, the snapshot
92
+ * moves and this table gets a conscious update.
5
93
  */
6
94
  export function classifyFailure(reason) {
7
- if (/\b401\b|authenticat(?:e|ed|ion)|\boauth\b|unauthorized|invalid (?:user )?(?:x-)?api[- ]?key|log(?:ged)? ?in/iu.test(reason)) {
95
+ if (/\b401\b|authenticat(?:e|ed|ion)|\boauth\b|unauthorized|invalid (?:user )?(?:x-)?api[- ]?key|x-api-key|log(?:ged)? ?in/iu.test(reason)) {
8
96
  return "auth";
9
97
  }
10
- if (/\b429\b|rate.?limit|quota|usage limit/iu.test(reason)) {
98
+ const limit = anthropicLimitText(reason);
99
+ if (limit !== null) {
100
+ return limit;
101
+ }
102
+ if (/\b429\b|rate.?limit/iu.test(reason)) {
103
+ return "rate_limited";
104
+ }
105
+ if (/quota|usage limit/iu.test(reason)) {
11
106
  return "quota";
12
107
  }
108
+ if (/billing/iu.test(reason)) {
109
+ return "billing";
110
+ }
13
111
  if (/\b400\b|invalid_request|issue with the selected model|model .* (?:does not|doesn't|may not) exist|unknown model|invalid model/iu.test(reason)) {
14
112
  return "invalid_request";
15
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"failure-class.js","sourceRoot":"","sources":["../../src/shared/failure-class.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,IAAI,+GAA+G,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjI,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,yCAAyC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3D,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,iIAAiI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACnJ,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,IAAI,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"failure-class.js","sourceRoot":"","sources":["../../src/shared/failure-class.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,10 @@ export declare function checkMcpServerNames(servers: readonly McpServer[]): void
23
23
  * entries hold none.
24
24
  */
25
25
  export declare function mcpCredentialRedactor(servers: readonly McpServer[] | undefined): (text: string) => string;
26
- /** `error` with its message and stack passed through `redact` (in place, so its class and fields stay); anything else as it is. */
26
+ /**
27
+ * `error` with its message and stack passed through `redact`, and so every
28
+ * error down its `cause` chain (a `RuntimeFailureError` keeps the agent's
29
+ * error there); in place, so classes and fields stay. Anything else as it is.
30
+ */
27
31
  export declare function redactError(error: unknown, redact: (text: string) => string): unknown;
28
32
  //# sourceMappingURL=mcp-servers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-servers.d.ts","sourceRoot":"","sources":["../../src/shared/mcp-servers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAQzD,sFAAsF;AACtF,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAC1E,gEAAgE;AAChE,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAE/D,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,IAAI,aAAa,CAE1E;AAED,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAE5D;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,GAAG,SAAS,SAAS,EAAE,GAAG,IAAI,CAWtG;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,CAYvE;AAWD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAMzG;AAED,mIAAmI;AACnI,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,CAQrF"}
1
+ {"version":3,"file":"mcp-servers.d.ts","sourceRoot":"","sources":["../../src/shared/mcp-servers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAQzD,sFAAsF;AACtF,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAC1E,gEAAgE;AAChE,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAE/D,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,IAAI,aAAa,CAE1E;AAED,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAE5D;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,GAAG,SAAS,SAAS,EAAE,GAAG,IAAI,CAWtG;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,CAYvE;AAWD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAMzG;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,CAUrF"}
@@ -57,12 +57,18 @@ export function mcpCredentialRedactor(servers) {
57
57
  }
58
58
  return (text) => values.reduce((redacted, value) => redacted.replaceAll(value, "[redacted]"), text);
59
59
  }
60
- /** `error` with its message and stack passed through `redact` (in place, so its class and fields stay); anything else as it is. */
60
+ /**
61
+ * `error` with its message and stack passed through `redact`, and so every
62
+ * error down its `cause` chain (a `RuntimeFailureError` keeps the agent's
63
+ * error there); in place, so classes and fields stay. Anything else as it is.
64
+ */
61
65
  export function redactError(error, redact) {
62
- if (error instanceof Error) {
63
- error.message = redact(error.message);
64
- if (error.stack !== undefined) {
65
- error.stack = redact(error.stack);
66
+ const seen = new Set();
67
+ for (let current = error; current instanceof Error && !seen.has(current); current = current.cause) {
68
+ seen.add(current);
69
+ current.message = redact(current.message);
70
+ if (current.stack !== undefined) {
71
+ current.stack = redact(current.stack);
66
72
  }
67
73
  }
68
74
  return error;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-servers.js","sourceRoot":"","sources":["../../src/shared/mcp-servers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-servers.js","sourceRoot":"","sources":["../../src/shared/mcp-servers.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,9 @@ export interface RecordAt {
26
26
  * adapter decide, and records the accept/reject response; and the
27
27
  * reachability rule: once the stream holds an `exited` response or a
28
28
  * `dispose` request, control is rejected here without consulting the
29
- * adapter (record-stream.md, "Reachability is read off the stream").
29
+ * adapter (record-stream.md, "Reachability is read off the stream");
30
+ * - empty prompt/steer/queue input without images is recorded and refused
31
+ * before the adapter is consulted (conversation.md, "Images").
30
32
  *
31
33
  * What is deliberately NOT here: any gate on facts. Nothing in the kernel
32
34
  * decides whether a runtime frame may enter the stream; control never
@@ -49,7 +51,8 @@ export interface SessionKernel {
49
51
  * A `toRuntime` control action: record the request, decide, record the
50
52
  * response. Exceptions from `decide` become a rejected response carrying the
51
53
  * message. When the stream already says the runtime is unreachable (see
52
- * `unreachable()`), the request is rejected without consulting `decide`.
54
+ * `unreachable()`), or input is empty with no images, the request is
55
+ * rejected without consulting `decide`.
53
56
  */
54
57
  control(body: RequestBody, decide: (request: RequestRecord) => ResponseBody | Promise<ResponseBody>, at?: RecordAt): Promise<ControlResult>;
55
58
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"session-kernel.d.ts","sourceRoot":"","sources":["../../src/shared/session-kernel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,MAAM,EACN,SAAS,EACT,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACZ,MAAM,yBAAyB,CAAC;AAEjC,gHAAgH;AAChH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,8DAA8D;IAC9D,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC7C,gHAAgH;IAChH,OAAO,CAAC,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG;QAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,aAAa,CAAC;IACjH,iDAAiD;IACjD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,cAAc,CAAC;IAC9E;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5I;;;;;;OAMG;IACH,WAAW,IAAI;QAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,UAAU,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3H,SAAS,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IACpE,OAAO,IAAI,SAAS,QAAQ,EAAE,CAAC;IAC/B,KAAK,IAAI,YAAY,CAAC;IACtB,gGAAgG;IAChG,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,wIAAwI;IACxI,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAqBD,wBAAgB,mBAAmB,CAAC,SAAS,GAAE,MAAqB,GAAG,aAAa,CAgGnF"}
1
+ {"version":3,"file":"session-kernel.d.ts","sourceRoot":"","sources":["../../src/shared/session-kernel.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,MAAM,EACN,SAAS,EACT,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACZ,MAAM,yBAAyB,CAAC;AAEjC,gHAAgH;AAChH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,8DAA8D;IAC9D,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC7C,gHAAgH;IAChH,OAAO,CAAC,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG;QAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,aAAa,CAAC;IACjH,iDAAiD;IACjD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,cAAc,CAAC;IAC9E;;;;;;OAMG;IACH,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5I;;;;;;OAMG;IACH,WAAW,IAAI;QAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,UAAU,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3H,SAAS,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IACpE,OAAO,IAAI,SAAS,QAAQ,EAAE,CAAC;IAC/B,KAAK,IAAI,YAAY,CAAC;IACtB,gGAAgG;IAChG,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,wIAAwI;IACxI,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAqBD,wBAAgB,mBAAmB,CAAC,SAAS,GAAE,MAAqB,GAAG,aAAa,CAgGnF"}
@@ -1,3 +1,4 @@
1
+ import { emptyInputRefusal } from "./control-input.js";
1
2
  import { randomUUID } from "node:crypto";
2
3
  async function settle(decide, issued) {
3
4
  try {
@@ -61,7 +62,7 @@ export function createSessionKernel(sessionId = randomUUID()) {
61
62
  async control(body, decide, at) {
62
63
  const blocked = unreachable();
63
64
  const issued = request("toRuntime", body, at);
64
- const decided = blocked ?? await settle(decide, issued);
65
+ const decided = blocked ?? emptyInputRefusal(body) ?? await settle(decide, issued);
65
66
  return { request: issued, response: respond(issued.id, decided, at) };
66
67
  },
67
68
  unreachable,
@@ -1 +1 @@
1
- {"version":3,"file":"session-kernel.js","sourceRoot":"","sources":["../../src/shared/session-kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAuFzC,KAAK,UAAU,MAAM,CACnB,MAAwE,EACxE,MAAqB;IAErB,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC7G,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,QAA0B,EAAE,MAAgB;IAC3D,IAAI,CAAC;QACH,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;IACrE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,YAAoB,UAAU,EAAE;IAClE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC9C,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAkC,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;IACzF,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,MAAM,GAAG,CAAqB,KAM7B,EAAE,EAAwB,EAAK,EAAE;QACtC,MAAM,MAAM,GAAG,EAAE,EAAE,MAAM,CAAC;QAC1B,MAAM,MAAM,GAAG,KAAK,CAAC;YACnB,SAAS,EAAE,EAAE,EAAE,SAAS,IAAI,SAAS;YACrC,SAAS,EAAE,EAAE,EAAE,SAAS,IAAI,EAAE;YAC9B,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;YAC3C,GAAG;YACH,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;SACvB,CAAC,CAAC;QACH,GAAG,IAAI,CAAC,CAAC;QACT,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjB,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChE,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACpG,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAA6C,EAAE;QACjE,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QAChF,CAAC;QACD,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/F,CAAC,CAAC;IACF,MAAM,OAAO,GAA6B,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAChE,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5G,MAAM,OAAO,GAA6B,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAChE,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEjF,OAAO;QACL,SAAS;QACT,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QACrF,OAAO;QACP,OAAO;QACP,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAC5B,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,OAAO,IAAI,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QACxE,CAAC;QACD,WAAW;QACX,SAAS,CAAC,QAAQ,EAAE,MAAM;YACxB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,SAAS,SAAS,SAAS,EAAE,CAAC,CAAC;gBACrF,CAAC;gBACD,KAAK,MAAM,MAAM,IAAI,GAAG,EAAE,CAAC;oBACzB,IAAI,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACjC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,GAAG,EAAE;gBACV,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG;QAClB,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QAChE,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACnB,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI;YACP,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"session-kernel.js","sourceRoot":"","sources":["../../src/shared/session-kernel.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { RefusableSessionOption, RefusedSessionOptions } from "../contracts/runtime.js";
2
2
  import type { SessionOptions } from "../contracts/session.js";
3
- /** Whether `options` gives `key`: any value for a prompt, a non-empty map for `env`, a non-empty list for `mcpServers`. */
3
+ /** Whether `options` gives `key`: any value for a prompt, a non-empty map for `env`, a non-empty list for `mcpServers` or `disallowedTools`. */
4
4
  export declare function sessionOptionGiven(options: SessionOptions, key: RefusableSessionOption): boolean;
5
5
  /** Reject an open that gives an option the runtime declares refused: an `UnsupportedOptionError` naming it, with the declared reason. */
6
6
  export declare function refuseSessionOptions(refused: RefusedSessionOptions, options: SessionOptions): void;
@@ -1 +1 @@
1
- {"version":3,"file":"session-options.d.ts","sourceRoot":"","sources":["../../src/shared/session-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC7F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,2HAA2H;AAC3H,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAQhG;AAED,yIAAyI;AACzI,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAOlG"}
1
+ {"version":3,"file":"session-options.d.ts","sourceRoot":"","sources":["../../src/shared/session-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC7F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,gJAAgJ;AAChJ,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAQhG;AAED,yIAAyI;AACzI,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAOlG"}
@@ -1,20 +1,20 @@
1
1
  import { UnsupportedOptionError } from "../contracts/errors.js";
2
- /** Whether `options` gives `key`: any value for a prompt, a non-empty map for `env`, a non-empty list for `mcpServers`. */
2
+ /** Whether `options` gives `key`: any value for a prompt, a non-empty map for `env`, a non-empty list for `mcpServers` or `disallowedTools`. */
3
3
  export function sessionOptionGiven(options, key) {
4
4
  if (key === "env") {
5
5
  return options.env !== undefined && Object.keys(options.env).length > 0;
6
6
  }
7
- if (key === "mcpServers") {
8
- return options.mcpServers !== undefined && options.mcpServers.length > 0;
7
+ if (key === "mcpServers" || key === "disallowedTools") {
8
+ return options[key] !== undefined && options[key].length > 0;
9
9
  }
10
10
  return options[key] !== undefined;
11
11
  }
12
12
  /** Reject an open that gives an option the runtime declares refused: an `UnsupportedOptionError` naming it, with the declared reason. */
13
13
  export function refuseSessionOptions(refused, options) {
14
- for (const key of ["systemPrompt", "appendSystemPrompt", "env", "mcpServers"]) {
14
+ for (const key of ["systemPrompt", "appendSystemPrompt", "env", "mcpServers", "disallowedTools"]) {
15
15
  const reason = refused[key];
16
16
  if (reason !== undefined && sessionOptionGiven(options, key)) {
17
- throw new UnsupportedOptionError(key, reason);
17
+ throw new UnsupportedOptionError(key, key === "disallowedTools" ? `${reason}: ${JSON.stringify(options.disallowedTools)}` : reason);
18
18
  }
19
19
  }
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-options.js","sourceRoot":"","sources":["../../src/shared/session-options.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,2HAA2H;AAC3H,MAAM,UAAU,kBAAkB,CAAC,OAAuB,EAAE,GAA2B;IACrF,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;AACpC,CAAC;AAED,yIAAyI;AACzI,MAAM,UAAU,oBAAoB,CAAC,OAA8B,EAAE,OAAuB;IAC1F,KAAK,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,oBAAoB,EAAE,KAAK,EAAE,YAAY,CAAU,EAAE,CAAC;QACvF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,SAAS,IAAI,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"session-options.js","sourceRoot":"","sources":["../../src/shared/session-options.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,gJAAgJ;AAChJ,MAAM,UAAU,kBAAkB,CAAC,OAAuB,EAAE,GAA2B;IACrF,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,iBAAiB,EAAE,CAAC;QACtD,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;AACpC,CAAC;AAED,yIAAyI;AACzI,MAAM,UAAU,oBAAoB,CAAC,OAA8B,EAAE,OAAuB;IAC1F,KAAK,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,oBAAoB,EAAE,KAAK,EAAE,YAAY,EAAE,iBAAiB,CAAU,EAAE,CAAC;QAC1G,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,SAAS,IAAI,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,sBAAsB,CAAC,GAAG,EAAE,GAAG,KAAK,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACtI,CAAC;IACH,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botiverse/oar",
3
- "version": "0.40.0",
3
+ "version": "0.42.0",
4
4
  "description": "A programming interface for all agent harnesses: provider-independent contracts for controlling and observing agent runtimes",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",