@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.
- package/README.md +7 -2
- package/dist/contracts/failure.d.ts +21 -0
- package/dist/contracts/failure.d.ts.map +1 -0
- package/dist/contracts/failure.js +2 -0
- package/dist/contracts/failure.js.map +1 -0
- package/dist/contracts/records.d.ts +9 -6
- package/dist/contracts/records.d.ts.map +1 -1
- package/dist/contracts/runtime-failure-error.d.ts +23 -0
- package/dist/contracts/runtime-failure-error.d.ts.map +1 -0
- package/dist/contracts/runtime-failure-error.js +27 -0
- package/dist/contracts/runtime-failure-error.js.map +1 -0
- package/dist/contracts/runtime.d.ts +5 -5
- package/dist/contracts/runtime.d.ts.map +1 -1
- package/dist/contracts/session-options.d.ts +12 -0
- package/dist/contracts/session-options.d.ts.map +1 -1
- package/dist/contracts/session.d.ts +17 -3
- package/dist/contracts/session.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/observe/display-text.d.ts +7 -3
- package/dist/observe/display-text.d.ts.map +1 -1
- package/dist/observe/display-text.js +19 -3
- package/dist/observe/display-text.js.map +1 -1
- package/dist/observe/events.d.ts +1 -1
- package/dist/observe/events.js +2 -2
- package/dist/observe/events.js.map +1 -1
- package/dist/observe/failure-advice.d.ts +17 -0
- package/dist/observe/failure-advice.d.ts.map +1 -0
- package/dist/observe/failure-advice.js +18 -0
- package/dist/observe/failure-advice.js.map +1 -0
- package/dist/observe/index.d.ts +2 -0
- package/dist/observe/index.d.ts.map +1 -1
- package/dist/observe/index.js +1 -0
- package/dist/observe/index.js.map +1 -1
- package/dist/runtimes/antigravity/session.d.ts +1 -0
- package/dist/runtimes/antigravity/session.d.ts.map +1 -1
- package/dist/runtimes/antigravity/session.js +15 -0
- package/dist/runtimes/antigravity/session.js.map +1 -1
- package/dist/runtimes/claude/content.d.ts +21 -0
- package/dist/runtimes/claude/content.d.ts.map +1 -0
- package/dist/runtimes/claude/content.js +107 -0
- package/dist/runtimes/claude/content.js.map +1 -0
- package/dist/runtimes/claude/failure.d.ts +15 -0
- package/dist/runtimes/claude/failure.d.ts.map +1 -0
- package/dist/runtimes/claude/failure.js +44 -0
- package/dist/runtimes/claude/failure.js.map +1 -0
- package/dist/runtimes/claude/launch.d.ts.map +1 -1
- package/dist/runtimes/claude/launch.js +2 -1
- package/dist/runtimes/claude/launch.js.map +1 -1
- package/dist/runtimes/claude/projection.d.ts +5 -0
- package/dist/runtimes/claude/projection.d.ts.map +1 -1
- package/dist/runtimes/claude/projection.js +21 -51
- package/dist/runtimes/claude/projection.js.map +1 -1
- package/dist/runtimes/claude/session.d.ts.map +1 -1
- package/dist/runtimes/claude/session.js +2 -1
- package/dist/runtimes/claude/session.js.map +1 -1
- package/dist/runtimes/codex/app-server-client.d.ts +3 -0
- package/dist/runtimes/codex/app-server-client.d.ts.map +1 -1
- package/dist/runtimes/codex/app-server-client.js +1 -0
- package/dist/runtimes/codex/app-server-client.js.map +1 -1
- package/dist/runtimes/codex/failure.d.ts +6 -0
- package/dist/runtimes/codex/failure.d.ts.map +1 -0
- package/dist/runtimes/codex/failure.js +45 -0
- package/dist/runtimes/codex/failure.js.map +1 -0
- package/dist/runtimes/codex/home-initialization.d.ts.map +1 -1
- package/dist/runtimes/codex/home-initialization.js +5 -0
- package/dist/runtimes/codex/home-initialization.js.map +1 -1
- package/dist/runtimes/codex/open.d.ts.map +1 -1
- package/dist/runtimes/codex/open.js +2 -0
- package/dist/runtimes/codex/open.js.map +1 -1
- package/dist/runtimes/codex/projection.d.ts.map +1 -1
- package/dist/runtimes/codex/projection.js +8 -13
- package/dist/runtimes/codex/projection.js.map +1 -1
- package/dist/runtimes/codex/rpc-control.d.ts +2 -1
- package/dist/runtimes/codex/rpc-control.d.ts.map +1 -1
- package/dist/runtimes/codex/rpc-control.js +4 -2
- package/dist/runtimes/codex/rpc-control.js.map +1 -1
- package/dist/runtimes/codex/session.d.ts.map +1 -1
- package/dist/runtimes/codex/session.js +6 -3
- package/dist/runtimes/codex/session.js.map +1 -1
- package/dist/runtimes/codex/tool-denials.d.ts +14 -0
- package/dist/runtimes/codex/tool-denials.d.ts.map +1 -0
- package/dist/runtimes/codex/tool-denials.js +73 -0
- package/dist/runtimes/codex/tool-denials.js.map +1 -0
- package/dist/runtimes/cursor/failure.d.ts +2 -0
- package/dist/runtimes/cursor/failure.d.ts.map +1 -0
- package/dist/runtimes/cursor/failure.js +17 -0
- package/dist/runtimes/cursor/failure.js.map +1 -0
- package/dist/runtimes/cursor/model.d.ts +12 -1
- package/dist/runtimes/cursor/model.d.ts.map +1 -1
- package/dist/runtimes/cursor/model.js +29 -0
- package/dist/runtimes/cursor/model.js.map +1 -1
- package/dist/runtimes/cursor/sdk.d.ts +1 -0
- package/dist/runtimes/cursor/sdk.d.ts.map +1 -1
- package/dist/runtimes/cursor/sdk.js.map +1 -1
- package/dist/runtimes/cursor/session.d.ts.map +1 -1
- package/dist/runtimes/cursor/session.js +2 -10
- package/dist/runtimes/cursor/session.js.map +1 -1
- package/dist/runtimes/grok/failure.d.ts +3 -0
- package/dist/runtimes/grok/failure.d.ts.map +1 -0
- package/dist/runtimes/grok/failure.js +36 -0
- package/dist/runtimes/grok/failure.js.map +1 -0
- package/dist/runtimes/grok/index.d.ts +1 -0
- package/dist/runtimes/grok/index.d.ts.map +1 -1
- package/dist/runtimes/grok/index.js +2 -1
- package/dist/runtimes/grok/index.js.map +1 -1
- package/dist/runtimes/grok/session.d.ts +2 -0
- package/dist/runtimes/grok/session.d.ts.map +1 -1
- package/dist/runtimes/grok/session.js +7 -0
- package/dist/runtimes/grok/session.js.map +1 -1
- package/dist/runtimes/kimi/session.d.ts.map +1 -1
- package/dist/runtimes/kimi/session.js +1 -0
- package/dist/runtimes/kimi/session.js.map +1 -1
- package/dist/runtimes/opencode/index.d.ts +1 -0
- package/dist/runtimes/opencode/index.d.ts.map +1 -1
- package/dist/runtimes/opencode/index.js +2 -1
- package/dist/runtimes/opencode/index.js.map +1 -1
- package/dist/runtimes/opencode/session.d.ts +2 -0
- package/dist/runtimes/opencode/session.d.ts.map +1 -1
- package/dist/runtimes/opencode/session.js +5 -0
- package/dist/runtimes/opencode/session.js.map +1 -1
- package/dist/runtimes/pi/failure.d.ts +12 -0
- package/dist/runtimes/pi/failure.d.ts.map +1 -0
- package/dist/runtimes/pi/failure.js +18 -0
- package/dist/runtimes/pi/failure.js.map +1 -0
- package/dist/runtimes/pi/open.d.ts.map +1 -1
- package/dist/runtimes/pi/open.js +1 -0
- package/dist/runtimes/pi/open.js.map +1 -1
- package/dist/runtimes/pi/projection.d.ts +9 -2
- package/dist/runtimes/pi/projection.d.ts.map +1 -1
- package/dist/runtimes/pi/projection.js +6 -6
- package/dist/runtimes/pi/projection.js.map +1 -1
- package/dist/runtimes/pi/resolve.d.ts.map +1 -1
- package/dist/runtimes/pi/resolve.js +2 -1
- package/dist/runtimes/pi/resolve.js.map +1 -1
- package/dist/runtimes/pi/session.d.ts.map +1 -1
- package/dist/runtimes/pi/session.js +9 -1
- package/dist/runtimes/pi/session.js.map +1 -1
- package/dist/shared/acp/failure.d.ts +14 -0
- package/dist/shared/acp/failure.d.ts.map +1 -0
- package/dist/shared/acp/failure.js +63 -0
- package/dist/shared/acp/failure.js.map +1 -0
- package/dist/shared/acp/process.d.ts +3 -0
- package/dist/shared/acp/process.d.ts.map +1 -1
- package/dist/shared/acp/process.js +1 -0
- package/dist/shared/acp/process.js.map +1 -1
- package/dist/shared/acp/profile.d.ts +3 -0
- package/dist/shared/acp/profile.d.ts.map +1 -1
- package/dist/shared/acp/profile.js +6 -4
- package/dist/shared/acp/profile.js.map +1 -1
- package/dist/shared/acp/projection.d.ts +1 -3
- package/dist/shared/acp/projection.d.ts.map +1 -1
- package/dist/shared/acp/projection.js +1 -12
- package/dist/shared/acp/projection.js.map +1 -1
- package/dist/shared/acp/session.d.ts.map +1 -1
- package/dist/shared/acp/session.js +1 -0
- package/dist/shared/acp/session.js.map +1 -1
- package/dist/shared/acp/turns.d.ts +2 -0
- package/dist/shared/acp/turns.d.ts.map +1 -1
- package/dist/shared/acp/turns.js +5 -3
- package/dist/shared/acp/turns.js.map +1 -1
- package/dist/shared/control-input.d.ts +4 -0
- package/dist/shared/control-input.d.ts.map +1 -0
- package/dist/shared/control-input.js +9 -0
- package/dist/shared/control-input.js.map +1 -0
- package/dist/shared/executable/process-resources.d.ts +11 -0
- package/dist/shared/executable/process-resources.d.ts.map +1 -0
- package/dist/shared/executable/process-resources.js +139 -0
- package/dist/shared/executable/process-resources.js.map +1 -0
- package/dist/shared/executable/process.d.ts +3 -0
- package/dist/shared/executable/process.d.ts.map +1 -1
- package/dist/shared/executable/process.js +2 -0
- package/dist/shared/executable/process.js.map +1 -1
- package/dist/shared/failure-class.d.ts +36 -4
- package/dist/shared/failure-class.d.ts.map +1 -1
- package/dist/shared/failure-class.js +103 -5
- package/dist/shared/failure-class.js.map +1 -1
- package/dist/shared/mcp-servers.d.ts +5 -1
- package/dist/shared/mcp-servers.d.ts.map +1 -1
- package/dist/shared/mcp-servers.js +11 -5
- package/dist/shared/mcp-servers.js.map +1 -1
- package/dist/shared/session-kernel.d.ts +5 -2
- package/dist/shared/session-kernel.d.ts.map +1 -1
- package/dist/shared/session-kernel.js +2 -1
- package/dist/shared/session-kernel.js.map +1 -1
- package/dist/shared/session-options.d.ts +1 -1
- package/dist/shared/session-options.d.ts.map +1 -1
- package/dist/shared/session-options.js +5 -5
- package/dist/shared/session-options.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,15 +1,113 @@
|
|
|
1
|
+
import { asRecord, parseJson } from "./json.js";
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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
|
-
|
|
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":"
|
|
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
|
-
/**
|
|
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
|
|
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
|
-
/**
|
|
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
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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()`),
|
|
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":"
|
|
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;
|
|
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,
|
|
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
|
|
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,
|
|
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.
|
|
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",
|