@gaunt-sloth/core 2.0.0-alpha.23 → 2.0.0-alpha.25
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 +43 -18
- package/dist/config/colour.d.ts +38 -0
- package/dist/config/colour.js +36 -0
- package/dist/config/colour.js.map +1 -0
- package/dist/config/defaults.d.ts +6 -7
- package/dist/config/defaults.js +4 -8
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/loader.d.ts +50 -3
- package/dist/config/loader.js +345 -29
- package/dist/config/loader.js.map +1 -1
- package/dist/config/mouse.d.ts +50 -0
- package/dist/config/mouse.js +44 -0
- package/dist/config/mouse.js.map +1 -0
- package/dist/config/profiles.d.ts +68 -0
- package/dist/config/profiles.js +93 -0
- package/dist/config/profiles.js.map +1 -0
- package/dist/config/schema.d.ts +2441 -116
- package/dist/config/schema.js +930 -19
- package/dist/config/schema.js.map +1 -1
- package/dist/config/shell-policy.d.ts +466 -116
- package/dist/config/shell-policy.js +273 -62
- package/dist/config/shell-policy.js.map +1 -1
- package/dist/config/tool-descriptions.d.ts +165 -0
- package/dist/config/tool-descriptions.js +229 -0
- package/dist/config/tool-descriptions.js.map +1 -0
- package/dist/config/types.d.ts +139 -6
- package/dist/config/types.js.map +1 -1
- package/dist/config.d.ts +4 -0
- package/dist/config.js +4 -0
- package/dist/config.js.map +1 -1
- package/dist/core/GthAbstractAgent.d.ts +85 -2
- package/dist/core/GthAbstractAgent.js +194 -1
- package/dist/core/GthAbstractAgent.js.map +1 -1
- package/dist/core/GthAgentRunner.d.ts +341 -58
- package/dist/core/GthAgentRunner.js +857 -149
- package/dist/core/GthAgentRunner.js.map +1 -1
- package/dist/core/GthLangChainAgent.d.ts +99 -0
- package/dist/core/GthLangChainAgent.js +388 -3
- package/dist/core/GthLangChainAgent.js.map +1 -1
- package/dist/core/approvals/annotations.d.ts +122 -0
- package/dist/core/approvals/annotations.js +137 -0
- package/dist/core/approvals/annotations.js.map +1 -0
- package/dist/core/approvals/grants.d.ts +216 -0
- package/dist/core/approvals/grants.js +469 -0
- package/dist/core/approvals/grants.js.map +1 -0
- package/dist/core/approvals/matcher.d.ts +202 -0
- package/dist/core/approvals/matcher.js +267 -0
- package/dist/core/approvals/matcher.js.map +1 -0
- package/dist/core/approvals/mcpSubjects.d.ts +40 -0
- package/dist/core/approvals/mcpSubjects.js +99 -0
- package/dist/core/approvals/mcpSubjects.js.map +1 -0
- package/dist/core/approvals/toolAnnotationSources.d.ts +105 -0
- package/dist/core/approvals/toolAnnotationSources.js +277 -0
- package/dist/core/approvals/toolAnnotationSources.js.map +1 -0
- package/dist/core/approvals/toolHost.d.ts +46 -0
- package/dist/core/approvals/toolHost.js +108 -0
- package/dist/core/approvals/toolHost.js.map +1 -0
- package/dist/core/debugCapture.d.ts +16 -0
- package/dist/core/debugCapture.js.map +1 -1
- package/dist/core/launchBanner.d.ts +120 -0
- package/dist/core/launchBanner.js +399 -0
- package/dist/core/launchBanner.js.map +1 -0
- package/dist/core/plainToolIndication.js +61 -35
- package/dist/core/plainToolIndication.js.map +1 -1
- package/dist/core/refusal.d.ts +53 -0
- package/dist/core/refusal.js +129 -0
- package/dist/core/refusal.js.map +1 -0
- package/dist/core/shell/approvalStop.d.ts +75 -0
- package/dist/core/shell/approvalStop.js +108 -0
- package/dist/core/shell/approvalStop.js.map +1 -0
- package/dist/core/shell/arity.d.ts +6 -0
- package/dist/core/shell/arity.js +20 -6
- package/dist/core/shell/arity.js.map +1 -1
- package/dist/core/shell/denylist.d.ts +11 -0
- package/dist/core/shell/denylist.js +37 -0
- package/dist/core/shell/denylist.js.map +1 -0
- package/dist/core/shell/normalize.d.ts +41 -1
- package/dist/core/shell/normalize.js +58 -4
- package/dist/core/shell/normalize.js.map +1 -1
- package/dist/core/shell/openWorld.d.ts +138 -0
- package/dist/core/shell/openWorld.js +523 -0
- package/dist/core/shell/openWorld.js.map +1 -0
- package/dist/core/shell/rater.d.ts +560 -0
- package/dist/core/shell/rater.js +895 -0
- package/dist/core/shell/rater.js.map +1 -0
- package/dist/core/shell/raterModel.d.ts +41 -0
- package/dist/core/shell/raterModel.js +51 -0
- package/dist/core/shell/raterModel.js.map +1 -0
- package/dist/core/shell/rejection.d.ts +66 -0
- package/dist/core/shell/rejection.js +38 -0
- package/dist/core/shell/rejection.js.map +1 -0
- package/dist/core/toolCallRepair/grammar.d.ts +41 -0
- package/dist/core/toolCallRepair/grammar.js +116 -0
- package/dist/core/toolCallRepair/grammar.js.map +1 -0
- package/dist/core/toolCallRepair/index.d.ts +2 -0
- package/dist/core/toolCallRepair/index.js +7 -0
- package/dist/core/toolCallRepair/index.js.map +1 -0
- package/dist/core/toolCallRepair/payload.d.ts +36 -0
- package/dist/core/toolCallRepair/payload.js +341 -0
- package/dist/core/toolCallRepair/payload.js.map +1 -0
- package/dist/core/toolCallRepair/promote.d.ts +45 -0
- package/dist/core/toolCallRepair/promote.js +90 -0
- package/dist/core/toolCallRepair/promote.js.map +1 -0
- package/dist/core/toolDisplay.d.ts +14 -1
- package/dist/core/toolDisplay.js +69 -12
- package/dist/core/toolDisplay.js.map +1 -1
- package/dist/core/toolOutputChannel.d.ts +33 -6
- package/dist/core/toolOutputChannel.js +61 -8
- package/dist/core/toolOutputChannel.js.map +1 -1
- package/dist/core/types.d.ts +71 -9
- package/dist/core/types.js.map +1 -1
- package/dist/providers/geminiSchemaSanitizer.d.ts +6 -3
- package/dist/providers/geminiSchemaSanitizer.js +152 -6
- package/dist/providers/geminiSchemaSanitizer.js.map +1 -1
- package/dist/providers/modelDiscovery.d.ts +18 -4
- package/dist/providers/modelDiscovery.js +67 -17
- package/dist/providers/modelDiscovery.js.map +1 -1
- package/dist/providers/openai.js +34 -0
- package/dist/providers/openai.js.map +1 -1
- package/dist/runtime/askStructured.d.ts +8 -7
- package/dist/runtime/askStructured.js +8 -7
- package/dist/runtime/askStructured.js.map +1 -1
- package/dist/runtime/conversation.js +89 -76
- package/dist/runtime/conversation.js.map +1 -1
- package/dist/runtime/singleShot.js +71 -60
- package/dist/runtime/singleShot.js.map +1 -1
- package/dist/utils/ProgressIndicator.d.ts +21 -0
- package/dist/utils/ProgressIndicator.js +30 -3
- package/dist/utils/ProgressIndicator.js.map +1 -1
- package/dist/utils/consoleUtils.d.ts +30 -0
- package/dist/utils/consoleUtils.js +27 -2
- package/dist/utils/consoleUtils.js.map +1 -1
- package/dist/utils/crashHandler.d.ts +87 -0
- package/dist/utils/crashHandler.js +128 -0
- package/dist/utils/crashHandler.js.map +1 -0
- package/dist/utils/debugDump.d.ts +58 -0
- package/dist/utils/debugDump.js +149 -15
- package/dist/utils/debugDump.js.map +1 -1
- package/dist/utils/llmUtils.d.ts +22 -8
- package/dist/utils/llmUtils.js +48 -8
- package/dist/utils/llmUtils.js.map +1 -1
- package/dist/utils/redactSecrets.js +68 -20
- package/dist/utils/redactSecrets.js.map +1 -1
- package/dist/utils/systemUtils.d.ts +17 -0
- package/dist/utils/systemUtils.js +17 -0
- package/dist/utils/systemUtils.js.map +1 -1
- package/package.json +5 -2
- package/schema/gsloth-config.schema.json +1484 -466
- package/dist/core/shell/allowlist.d.ts +0 -75
- package/dist/core/shell/allowlist.js +0 -187
- package/dist/core/shell/allowlist.js.map +0 -1
- package/dist/core/shell/judge.d.ts +0 -161
- package/dist/core/shell/judge.js +0 -261
- package/dist/core/shell/judge.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDisplay.js","sourceRoot":"","sources":["../../src/core/toolDisplay.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toolDisplay.js","sourceRoot":"","sources":["../../src/core/toolDisplay.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
* - The toolkits call {@link emitToolOutput} instead of writing to stdout/`displayInfo`.
|
|
12
12
|
* - With NO subscriber (every non-TUI surface: `--no-tui`, piped, `exec`, the AG-UI server),
|
|
13
13
|
* the DEFAULT SINK reproduces the historical behaviour byte-for-byte — `displayInfo` for the
|
|
14
|
-
* notice, `stdout.write` for chunks
|
|
14
|
+
* notice, `stdout.write` for chunks, `displayWarning`/`displayError` for a failure-path
|
|
15
|
+
* warning/error — so headless output is unchanged.
|
|
15
16
|
* - The Ink TUI subscribes for the duration of a turn via {@link mergeToolOutputIntoEvents},
|
|
16
17
|
* which converts each chunk into a typed `tool_output` {@link AgentStreamEvent} attributed to
|
|
17
18
|
* its tool call, merged live into the turn's event stream so it lands in `foldEvents`.
|
|
@@ -19,6 +20,12 @@
|
|
|
19
20
|
* Single-subscriber by design: one process hosts at most one interactive TUI session, and the
|
|
20
21
|
* non-TUI surfaces never subscribe. (Concurrent server sessions — AG-UI/ACP — stay on the
|
|
21
22
|
* default sink, exactly as before.)
|
|
23
|
+
*
|
|
24
|
+
* TUI-C31 hardens the seam's edge windows: failure-path warnings/errors now travel the channel
|
|
25
|
+
* too ({@link GthToolOutputChunk} `kind: 'warning' | 'error'`, residual a); the merge drains a
|
|
26
|
+
* straggler queued in the unsubscribe microwindow (residual b) and cleans up on early-`return()`
|
|
27
|
+
* (residual c); and {@link setToolOutputSuppressed} lets the mounted TUI suppress a
|
|
28
|
+
* post-unsubscribe straggler between turns instead of leaking it to raw stdout (residual d).
|
|
22
29
|
*/
|
|
23
30
|
import type { AgentStreamEvent } from '#src/core/types.js';
|
|
24
31
|
/** One emitted piece of live tool output, attributed to the tool (and call) that produced it. */
|
|
@@ -32,11 +39,19 @@ export interface GthToolOutputChunk {
|
|
|
32
39
|
toolName: string;
|
|
33
40
|
/**
|
|
34
41
|
* `notice` — the "🔧 Executing …" announcement (historically `displayInfo`);
|
|
35
|
-
* `output` — a verbatim child stdout/stderr chunk (historically `stdout.write`)
|
|
42
|
+
* `output` — a verbatim child stdout/stderr chunk (historically `stdout.write`);
|
|
43
|
+
* `warning` / `error` — a failure-path advisory (historically `displayWarning`/`displayError`),
|
|
44
|
+
* e.g. a hardline refusal or a spawn-level failure. TUI-C31 (a): routing these through the
|
|
45
|
+
* channel keeps them out of raw stdout while the Ink frame is mounted; the default sink still
|
|
46
|
+
* renders them via `displayWarning`/`displayError` for every non-TUI surface, byte-for-byte.
|
|
47
|
+
*/
|
|
48
|
+
kind: 'notice' | 'output' | 'warning' | 'error';
|
|
49
|
+
/**
|
|
50
|
+
* The text, verbatim. Notices carry NO leading newline — raw-console framing (the historical
|
|
51
|
+
* leading `\n`) is the default sink's concern, not the producer's. A `warning`/`error` DOES
|
|
52
|
+
* carry whatever leading framing its historical `displayWarning`/`displayError` call had (the
|
|
53
|
+
* default sink forwards it unchanged), so headless output stays byte-for-byte identical.
|
|
36
54
|
*/
|
|
37
|
-
kind: 'notice' | 'output';
|
|
38
|
-
/** The text, verbatim. Notices carry NO leading newline — raw-console framing (the historical
|
|
39
|
-
* leading `\n`) is the default sink's concern, not the producer's. */
|
|
40
55
|
text: string;
|
|
41
56
|
}
|
|
42
57
|
export type GthToolOutputListener = (chunk: GthToolOutputChunk) => void;
|
|
@@ -47,10 +62,22 @@ export type GthToolOutputListener = (chunk: GthToolOutputChunk) => void;
|
|
|
47
62
|
* a newer subscriber).
|
|
48
63
|
*/
|
|
49
64
|
export declare function subscribeToolOutput(listener: GthToolOutputListener): () => void;
|
|
65
|
+
/**
|
|
66
|
+
* TUI-C31 (d): mark whether a terminal-owning surface (the Ink TUI) is mounted. While mounted,
|
|
67
|
+
* the default sink SUPPRESSES output that has no per-turn subscriber (a post-turn straggler)
|
|
68
|
+
* rather than writing it raw over the managed frame. The TUI session sets this `true` around the
|
|
69
|
+
* whole session (`render()` … `waitUntilExit()`) and back to `false` on unmount, so once the TUI
|
|
70
|
+
* is gone the default (headless) stdout sink is fully restored. An active per-turn subscriber
|
|
71
|
+
* always takes precedence, so legitimate in-turn output is untouched.
|
|
72
|
+
*/
|
|
73
|
+
export declare function setToolOutputSuppressed(value: boolean): void;
|
|
50
74
|
/**
|
|
51
75
|
* Emit one piece of live tool output. Routed to the active subscriber when present (the Ink
|
|
52
76
|
* TUI), otherwise to the DEFAULT SINK, which reproduces the pre-TUI-C17 behaviour exactly:
|
|
53
|
-
* the notice via `displayInfo` with its historical leading newline, chunks via `stdout.write
|
|
77
|
+
* the notice via `displayInfo` with its historical leading newline, chunks via `stdout.write`,
|
|
78
|
+
* a warning via `displayWarning` and an error via `displayError` (TUI-C31 a). While the TUI is
|
|
79
|
+
* mounted but no subscriber is attached (between turns), a no-subscriber emit is SUPPRESSED
|
|
80
|
+
* rather than written raw over the managed frame (TUI-C31 d).
|
|
54
81
|
*/
|
|
55
82
|
export declare function emitToolOutput(chunk: GthToolOutputChunk): void;
|
|
56
83
|
/**
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import { displayInfo } from '#src/utils/consoleUtils.js';
|
|
1
|
+
import { displayError, displayInfo, displayWarning } from '#src/utils/consoleUtils.js';
|
|
2
2
|
import { stdout } from '#src/utils/systemUtils.js';
|
|
3
3
|
let activeListener = null;
|
|
4
|
+
/**
|
|
5
|
+
* TUI-C31 (d): true while a surface owns the terminal frame (the mounted Ink TUI) but no
|
|
6
|
+
* per-turn subscriber is attached — i.e. BETWEEN turns. In that window a straggler child that
|
|
7
|
+
* outlived the kill grace must NOT reach raw stdout (it would corrupt Ink's managed frame), so
|
|
8
|
+
* the default sink drops it instead. Off by default, so every headless surface is unaffected.
|
|
9
|
+
*/
|
|
10
|
+
let suppressed = false;
|
|
4
11
|
/**
|
|
5
12
|
* Subscribe to live tool output, replacing the default stdout/`displayInfo` sink for as long
|
|
6
13
|
* as the subscription is active. Returns an unsubscribe function. Last subscriber wins; the
|
|
@@ -15,21 +22,46 @@ export function subscribeToolOutput(listener) {
|
|
|
15
22
|
}
|
|
16
23
|
};
|
|
17
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* TUI-C31 (d): mark whether a terminal-owning surface (the Ink TUI) is mounted. While mounted,
|
|
27
|
+
* the default sink SUPPRESSES output that has no per-turn subscriber (a post-turn straggler)
|
|
28
|
+
* rather than writing it raw over the managed frame. The TUI session sets this `true` around the
|
|
29
|
+
* whole session (`render()` … `waitUntilExit()`) and back to `false` on unmount, so once the TUI
|
|
30
|
+
* is gone the default (headless) stdout sink is fully restored. An active per-turn subscriber
|
|
31
|
+
* always takes precedence, so legitimate in-turn output is untouched.
|
|
32
|
+
*/
|
|
33
|
+
export function setToolOutputSuppressed(value) {
|
|
34
|
+
suppressed = value;
|
|
35
|
+
}
|
|
18
36
|
/**
|
|
19
37
|
* Emit one piece of live tool output. Routed to the active subscriber when present (the Ink
|
|
20
38
|
* TUI), otherwise to the DEFAULT SINK, which reproduces the pre-TUI-C17 behaviour exactly:
|
|
21
|
-
* the notice via `displayInfo` with its historical leading newline, chunks via `stdout.write
|
|
39
|
+
* the notice via `displayInfo` with its historical leading newline, chunks via `stdout.write`,
|
|
40
|
+
* a warning via `displayWarning` and an error via `displayError` (TUI-C31 a). While the TUI is
|
|
41
|
+
* mounted but no subscriber is attached (between turns), a no-subscriber emit is SUPPRESSED
|
|
42
|
+
* rather than written raw over the managed frame (TUI-C31 d).
|
|
22
43
|
*/
|
|
23
44
|
export function emitToolOutput(chunk) {
|
|
24
45
|
if (activeListener) {
|
|
25
46
|
activeListener(chunk);
|
|
26
47
|
return;
|
|
27
48
|
}
|
|
28
|
-
if (
|
|
29
|
-
|
|
49
|
+
if (suppressed) {
|
|
50
|
+
// TUI mounted, between turns: drop the straggler instead of corrupting the managed frame.
|
|
51
|
+
return;
|
|
30
52
|
}
|
|
31
|
-
|
|
32
|
-
|
|
53
|
+
switch (chunk.kind) {
|
|
54
|
+
case 'notice':
|
|
55
|
+
displayInfo(`\n${chunk.text}`);
|
|
56
|
+
break;
|
|
57
|
+
case 'warning':
|
|
58
|
+
displayWarning(chunk.text);
|
|
59
|
+
break;
|
|
60
|
+
case 'error':
|
|
61
|
+
displayError(chunk.text);
|
|
62
|
+
break;
|
|
63
|
+
default:
|
|
64
|
+
stdout.write(chunk.text);
|
|
33
65
|
}
|
|
34
66
|
}
|
|
35
67
|
/** Convert one channel chunk into its typed {@link AgentStreamEvent} representation. */
|
|
@@ -39,7 +71,12 @@ function toEvent(chunk) {
|
|
|
39
71
|
...(chunk.toolCallId !== undefined ? { id: chunk.toolCallId } : {}),
|
|
40
72
|
name: chunk.toolName,
|
|
41
73
|
chunk: chunk.text,
|
|
42
|
-
|
|
74
|
+
// A `notice` is chrome; a failure-path `warning`/`error` is also chrome relative to the child's
|
|
75
|
+
// own stdout/stderr `output`, so it lands on the view-model's separate `notice` field (never
|
|
76
|
+
// counted as a raw output line) rather than styled as command output.
|
|
77
|
+
...(chunk.kind === 'notice' || chunk.kind === 'warning' || chunk.kind === 'error'
|
|
78
|
+
? { isNotice: true }
|
|
79
|
+
: {}),
|
|
43
80
|
};
|
|
44
81
|
}
|
|
45
82
|
/**
|
|
@@ -98,12 +135,28 @@ export async function* mergeToolOutputIntoEvents(inner) {
|
|
|
98
135
|
});
|
|
99
136
|
}
|
|
100
137
|
await pump;
|
|
138
|
+
// TUI-C31 (b): the subscriber is still attached at this point, so a straggler chunk can be
|
|
139
|
+
// pushed in the microwindow between the loop's last drain and the unsubscribe (the child
|
|
140
|
+
// flushed one final line as the turn ended). Detach the subscriber FIRST — after which no
|
|
141
|
+
// further chunk can be queued — THEN drain whatever is already queued, so nothing enqueued is
|
|
142
|
+
// silently dropped.
|
|
143
|
+
unsubscribe();
|
|
144
|
+
while (queue.length > 0) {
|
|
145
|
+
yield queue.shift();
|
|
146
|
+
}
|
|
101
147
|
if (failed)
|
|
102
148
|
throw error;
|
|
103
149
|
}
|
|
104
150
|
finally {
|
|
151
|
+
// TUI-C31 (c): also reached on early-stop — a consumer `return()`/`throw` into this generator
|
|
152
|
+
// while it is suspended (e.g. at a yield, the way a `for await` aborts). Make that path clean:
|
|
153
|
+
// unsubscribe (idempotent — a stale unsubscribe is a no-op) so the subscription never leaks,
|
|
154
|
+
// settle any pending wake resolver, and best-effort release the inner stream. This is
|
|
155
|
+
// deliberately fire-and-forget: `inner` may be parked on an await that its own `return()`
|
|
156
|
+
// cannot interrupt, and AWAITING the pump here would hang the consumer's `return()` on exactly
|
|
157
|
+
// that unresolvable inner — so we release and let go rather than block.
|
|
105
158
|
unsubscribe();
|
|
106
|
-
|
|
159
|
+
notify();
|
|
107
160
|
if (!done) {
|
|
108
161
|
void inner.return?.(undefined).catch(() => { });
|
|
109
162
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolOutputChannel.js","sourceRoot":"","sources":["../../src/core/toolOutputChannel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"toolOutputChannel.js","sourceRoot":"","sources":["../../src/core/toolOutputChannel.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { GthConfig } from '#src/config.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { DeclaredToolAnnotations } from '#src/core/approvals/annotations.js';
|
|
3
|
+
import type { ShellSafetyVerdict } from '#src/core/shell/rater.js';
|
|
3
4
|
import type { BaseMessage } from '@langchain/core/messages';
|
|
4
5
|
import type { RunnableConfig } from '@langchain/core/runnables';
|
|
5
6
|
import type { StructuredToolInterface } from '@langchain/core/tools';
|
|
@@ -158,19 +159,60 @@ export interface PendingToolInterrupt {
|
|
|
158
159
|
name: string;
|
|
159
160
|
args: Record<string, unknown>;
|
|
160
161
|
/**
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
* can show
|
|
164
|
-
*
|
|
162
|
+
* CFG-26 — when the AI rater escalated this `run_shell_command` to the human (rather than
|
|
163
|
+
* approving it or bouncing it back to the model), the rater's verdict is attached here so the
|
|
164
|
+
* approval surface can show an "AI rater (<tier>): <reason>" notice. Absent when the rater is
|
|
165
|
+
* off, or when the command reached the human without being rated.
|
|
165
166
|
*/
|
|
166
167
|
safetyVerdict?: ShellSafetyVerdict;
|
|
168
|
+
/**
|
|
169
|
+
* EXT-71 §3.2 — when this call reached the human because a declared `approvals.escalate` entry
|
|
170
|
+
* matched it, the entry that fired, rendered for display. It is the provenance the prompt shows:
|
|
171
|
+
* an escalation the user cannot trace to the line they wrote reads as the gate malfunctioning.
|
|
172
|
+
* Absent whenever the escalation came from the rung or the rater instead.
|
|
173
|
+
*/
|
|
174
|
+
escalatedBy?: string;
|
|
175
|
+
/**
|
|
176
|
+
* EXT-71 §6 — **what a sticky choice will store**, rendered in the object form the user would
|
|
177
|
+
* write in a config file, e.g. `{ "type": "shell", "matcher": "exact", "pattern": "npm test" }`.
|
|
178
|
+
* The menu MUST show this at the moment of the choice, on every surface: the user is shown the
|
|
179
|
+
* thing they are agreeing to rather than a generalization of it, which is what makes the display
|
|
180
|
+
* honest and cheap at once.
|
|
181
|
+
*
|
|
182
|
+
* **For a tool call the stored thing is the tool, not the arguments** (§4.7.4), so this reads
|
|
183
|
+
* e.g. `{ "type": "mcpTool", "server": "fetcher", "matcher": "exact", "pattern": "fetch_url",
|
|
184
|
+
* "host": "docs.internal.example" }`. That is the one place a grant is deliberately broader than
|
|
185
|
+
* what the human was shown, which is why the display carries the most weight there.
|
|
186
|
+
*
|
|
187
|
+
* Absent exactly where no sticky grant is on offer — a `catastrophic` outcome (§4.2 withdraws
|
|
188
|
+
* the persistent grants), a rung that remembers nothing, a command that does not statically
|
|
189
|
+
* resolve, or a tool call naming more than one host (which has no honest single-host entry) — so
|
|
190
|
+
* a prompt never advertises a control that has already been withdrawn.
|
|
191
|
+
*/
|
|
192
|
+
grantPreview?: string;
|
|
193
|
+
/**
|
|
194
|
+
* §6 — **the same grant in the words a menu control is written in**: `npm test` for a shell
|
|
195
|
+
* command, `tool gth_web_fetch (host docs.internal.example)` or `mcpTool jira/create_issue` for a
|
|
196
|
+
* tool call. It is what the *always approve* control names, so the control reads as
|
|
197
|
+
* *always approve this tool for this host* rather than as a bare key.
|
|
198
|
+
*
|
|
199
|
+
* It is rendered by `describeApprovalEntry` — the one-liner every other provenance message uses,
|
|
200
|
+
* including the §4.7.4 notice that later withdraws the grant. Sharing the renderer is the point:
|
|
201
|
+
* a menu that describes a grant differently from the notice that withdraws it is how a user stops
|
|
202
|
+
* trusting either.
|
|
203
|
+
*
|
|
204
|
+
* Present exactly when {@link grantPreview} is, since both are rendered from the one entry
|
|
205
|
+
* `recordApproval` would write.
|
|
206
|
+
*/
|
|
207
|
+
grantSummary?: string;
|
|
167
208
|
}
|
|
168
209
|
/**
|
|
169
|
-
* Persistence scope for an `approve` decision (
|
|
210
|
+
* Persistence scope for an `approve` decision (spec §6):
|
|
170
211
|
* - `once` — run this single invocation only; remember nothing (the default).
|
|
171
|
-
* - `session` — remember
|
|
172
|
-
* instance, so
|
|
173
|
-
*
|
|
212
|
+
* - `session` — remember **this command**, as an `exact` entry (§3.1), for the life of this runner
|
|
213
|
+
* instance, so the same command stops re-prompting. A longer variant of it still asks: the menu
|
|
214
|
+
* never widens, and breadth is something a human writes in a config file.
|
|
215
|
+
* - `always` — additionally persist that entry to the project store
|
|
174
216
|
* (`.gsloth/.gsloth-settings/shell-allowlist.json`) so it survives across runs.
|
|
175
217
|
*/
|
|
176
218
|
export type ToolApprovalScope = 'once' | 'session' | 'always';
|
|
@@ -222,6 +264,26 @@ export interface GthAgentInterface {
|
|
|
222
264
|
* approve/reject confirmation loop.
|
|
223
265
|
*/
|
|
224
266
|
getPendingToolInterrupts?(runConfig: RunnableConfig): Promise<PendingToolInterrupt[]>;
|
|
267
|
+
/**
|
|
268
|
+
* EXT-58 (spec §4.4) — the names of the tools registered with the graph at `init`. The runner
|
|
269
|
+
* intersects them with the built-in summaries table to tell the rater which already-granted
|
|
270
|
+
* built-ins it may offer as an alternative, so a suggestion can never name a tool the model does
|
|
271
|
+
* not have. Optional: an agent that does not track its tools simply omits it, and the rater then
|
|
272
|
+
* receives no granted list (and so suggests nothing).
|
|
273
|
+
*/
|
|
274
|
+
getRegisteredToolNames?(): string[];
|
|
275
|
+
/**
|
|
276
|
+
* EXT-70 (spec §4.7.1) — what the connected MCP servers declared about their own tools in their
|
|
277
|
+
* `tools/list` responses, keyed by the REGISTERED tool name (`mcp__<server>__<tool>`). The runner
|
|
278
|
+
* reads it as the `mcp` half of a declared-annotation lookup when it computes a call's effective
|
|
279
|
+
* annotation set.
|
|
280
|
+
*
|
|
281
|
+
* These are **claims, not credentials**: nothing here has been trusted, and an entry only becomes
|
|
282
|
+
* load-bearing where the user's `approvals.mcp` block believes that hint from that server.
|
|
283
|
+
* Optional — an agent that tracks no tools omits it, and every tool is then fail-closed, which is
|
|
284
|
+
* exactly what a fully distrustful configuration computes anyway.
|
|
285
|
+
*/
|
|
286
|
+
getDeclaredMcpToolAnnotations?(): ReadonlyMap<string, DeclaredToolAnnotations>;
|
|
225
287
|
/**
|
|
226
288
|
* GS2-16 — reset the per-run analytics accumulator so the NEXT turn's token/tool totals start
|
|
227
289
|
* from zero. Called by {@link GthAgentRunner} at each turn boundary (the runner is reused across
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAaA;;;;GAIG;AACH,MAAM,CAAN,IAAY,WAQX;AARD,WAAY,WAAW;IACrB,+CAAS,CAAA;IACT,6CAAQ,CAAA;IACR,mDAAW,CAAA;IACX,mDAAW,CAAA;IACX,mDAAW,CAAA;IACX,+CAAS,CAAA;IACT,iDAAU,CAAA;AACZ,CAAC,EARW,WAAW,KAAX,WAAW,QAQtB"}
|
|
@@ -37,9 +37,12 @@ import type { BaseChatModel } from '@langchain/core/language_models/chat_models'
|
|
|
37
37
|
*/
|
|
38
38
|
export declare const GEMINI_SUPPORTED_SCHEMA_KEYWORDS: ReadonlySet<string>;
|
|
39
39
|
/**
|
|
40
|
-
* Pure, recursive
|
|
41
|
-
*
|
|
42
|
-
*
|
|
40
|
+
* Pure, recursive normaliser: returns a cleaned DEEP COPY of a JSON-Schema containing only keywords
|
|
41
|
+
* Gemini's function-declaration `Schema` accepts, so its OpenAPI-3.0 subset accepts the tool. At each
|
|
42
|
+
* node the SAFE composition keywords are first RESOLVED into supported equivalents
|
|
43
|
+
* ({@link resolveComposition}: `const` → `enum`, clean `allOf` → shallow merge) and only then does the
|
|
44
|
+
* allowlist drop the rest. Does not mutate the input. `anyOf` unions survive; `$ref`/`oneOf`/`not` are
|
|
45
|
+
* dropped (see {@link resolveComposition} for why the last three are deferred, not resolved).
|
|
43
46
|
*/
|
|
44
47
|
export declare function sanitizeGeminiToolSchema<T = unknown>(schema: T): T;
|
|
45
48
|
/**
|
|
@@ -50,6 +50,144 @@ function cloneLiteral(value) {
|
|
|
50
50
|
return value;
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
+
/** Structural equality by JSON serialisation. Used only for CONSERVATIVE conflict detection during
|
|
54
|
+
* an `allOf` merge: a false "not equal" (e.g. key-order differences) merely makes the merge abort to
|
|
55
|
+
* the safe drop, never produces an unsound merge — so a best-effort compare is sufficient here. */
|
|
56
|
+
function jsonEqual(a, b) {
|
|
57
|
+
return JSON.stringify(a) === JSON.stringify(b);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* A `const` is resolved to `enum` ONLY when its value is a SCALAR (string / number / boolean / null).
|
|
61
|
+
* An object- or array-valued `const` is deliberately NOT resolved: synthesising an object/array-valued
|
|
62
|
+
* `enum` is a plausible-but-unverified Gemini 400 path, so we leave it to fall through to the safe
|
|
63
|
+
* allowlist drop (typeless `{}`) — exactly the prior GS2-58 behaviour, never widened.
|
|
64
|
+
*/
|
|
65
|
+
function isScalarConst(value) {
|
|
66
|
+
return (value === null ||
|
|
67
|
+
typeof value === 'string' ||
|
|
68
|
+
typeof value === 'number' ||
|
|
69
|
+
typeof value === 'boolean');
|
|
70
|
+
}
|
|
71
|
+
/** Infer the Gemini `type` for a SCALAR `const` value when the schema declares none. Numbers map to
|
|
72
|
+
* the general `number` (integer vs number is not "obvious" from a literal); `null` yields no type. */
|
|
73
|
+
function inferTypeFromConst(value) {
|
|
74
|
+
switch (typeof value) {
|
|
75
|
+
case 'string':
|
|
76
|
+
return 'string';
|
|
77
|
+
case 'boolean':
|
|
78
|
+
return 'boolean';
|
|
79
|
+
case 'number':
|
|
80
|
+
return 'number';
|
|
81
|
+
default:
|
|
82
|
+
return undefined; // null (the only other scalar reaching here) → no type
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Attempt a shallow merge of `node.allOf` (a list of subschemas) into the parent node. Gemini has no
|
|
87
|
+
* `allOf`, so GS2-58 simply drops it — losing any content carried only by the branches. When every
|
|
88
|
+
* branch is a plain-object subschema that merges CLEANLY, we fold it in instead:
|
|
89
|
+
* - `properties` are unioned (a property name appearing in the parent or two branches with DIFFERENT
|
|
90
|
+
* schemas is a conflict → abort);
|
|
91
|
+
* - `required` arrays are unioned;
|
|
92
|
+
* - any other (scalar) keyword is copied, but a key already set — on the parent or an earlier branch —
|
|
93
|
+
* to a DIFFERENT value is a conflict → abort.
|
|
94
|
+
* On ANY conflict, or if a branch is not a plain object (a boolean subschema `true`/`false`), returns
|
|
95
|
+
* `null` so the caller leaves `allOf` in place for the allowlist to drop — the safe GS2-58 behaviour,
|
|
96
|
+
* never a guessed merge. Note a branch carrying an UNRESOLVED keyword (e.g. `{ $ref: '#/…' }`) is still
|
|
97
|
+
* a plain object, so the merge PROCEEDS: the other branches merge and the `$ref` is copied onto the
|
|
98
|
+
* parent, where the allowlist then drops it — still safe, and higher-fidelity than dropping every
|
|
99
|
+
* branch. Returns a fresh object (never mutates `node`) with `allOf` removed on success.
|
|
100
|
+
*/
|
|
101
|
+
function mergeAllOf(node) {
|
|
102
|
+
const branches = node.allOf;
|
|
103
|
+
if (!Array.isArray(branches) || branches.length === 0)
|
|
104
|
+
return null;
|
|
105
|
+
if (!branches.every(isPlainObject))
|
|
106
|
+
return null;
|
|
107
|
+
const acc = { ...node };
|
|
108
|
+
delete acc.allOf;
|
|
109
|
+
const props = isPlainObject(acc.properties) ? { ...acc.properties } : {};
|
|
110
|
+
let sawProps = isPlainObject(acc.properties);
|
|
111
|
+
const required = new Set(Array.isArray(acc.required) ? acc.required : []);
|
|
112
|
+
let sawRequired = Array.isArray(acc.required);
|
|
113
|
+
for (const branch of branches) {
|
|
114
|
+
for (const [key, value] of Object.entries(branch)) {
|
|
115
|
+
if (key === 'properties') {
|
|
116
|
+
if (!isPlainObject(value))
|
|
117
|
+
return null;
|
|
118
|
+
for (const [name, sub] of Object.entries(value)) {
|
|
119
|
+
if (name in props && !jsonEqual(props[name], sub))
|
|
120
|
+
return null; // conflicting property
|
|
121
|
+
props[name] = sub;
|
|
122
|
+
}
|
|
123
|
+
sawProps = true;
|
|
124
|
+
}
|
|
125
|
+
else if (key === 'required') {
|
|
126
|
+
if (Array.isArray(value))
|
|
127
|
+
for (const r of value)
|
|
128
|
+
required.add(r);
|
|
129
|
+
sawRequired = true;
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
// scalar / other keyword: parent and every branch must agree on it.
|
|
133
|
+
if (key in acc && !jsonEqual(acc[key], value))
|
|
134
|
+
return null;
|
|
135
|
+
acc[key] = value;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (sawProps)
|
|
140
|
+
acc.properties = props;
|
|
141
|
+
if (sawRequired)
|
|
142
|
+
acc.required = [...required];
|
|
143
|
+
return acc;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Resolve the SAFE structural-composition keywords Gemini rejects into supported equivalents, BEFORE
|
|
147
|
+
* {@link sanitizeNode}'s allowlist drops the rest. Its output feeds the same allowlist + `exclusive*`
|
|
148
|
+
* rewrite pass, so merged-in `properties`/`items`/`anyOf` are still recursed and a merged-in
|
|
149
|
+
* `exclusiveMinimum` is still rewritten. A strict NO-OP (returns the input node) when the node carries
|
|
150
|
+
* none of the handled keywords, so clean schemas pass through byte-identical.
|
|
151
|
+
*
|
|
152
|
+
* Implemented (high-fidelity, no external context needed):
|
|
153
|
+
* - SCALAR `const` → `enum: [value]` (+ infer `type` from the value when the node declares none).
|
|
154
|
+
* Gemini has no `const` but supports `enum`; a single-value `enum` is an exact model of `const`.
|
|
155
|
+
* Presence (`'const' in node`), not truthiness, so `const: 0 / false / '' / null` resolve too.
|
|
156
|
+
* An OBJECT/ARRAY-valued `const` is NOT resolved (see {@link isScalarConst}) — it falls through to
|
|
157
|
+
* the safe allowlist drop (typeless `{}`), never widening into an unverified object-`enum` 400 path.
|
|
158
|
+
* - `allOf` of plain-object branches → shallow-merged when clean (see {@link mergeAllOf}); otherwise
|
|
159
|
+
* left for the allowlist to drop.
|
|
160
|
+
*
|
|
161
|
+
* Deliberately NOT resolved — kept as the safe GS2-58 drop (see the GS2-68 characterization tests):
|
|
162
|
+
* - `oneOf` / `not`: `oneOf` is XOR, semantically distinct from `anyOf`'s OR, so remapping it would
|
|
163
|
+
* silently change a tool's contract; `not` has no Gemini equivalent. Both are dropped.
|
|
164
|
+
* - `$ref` / `$defs` / `definitions`: inlining a same-document `$ref` is only sound when fully self-
|
|
165
|
+
* contained AND cycle-guarded, and is NEAR-ZERO in practice — `@langchain/mcp-adapters` dereferences
|
|
166
|
+
* `$ref` and merges `allOf` UPSTREAM before tools reach this boundary, and gaunt-sloth's own zod
|
|
167
|
+
* tools inline+type their schemas. No live path authors a bare `$ref` here, so this is DEFERRED
|
|
168
|
+
* (GS2-68): a `$ref`-only property still sanitizes to a typeless `{}` — non-400 and callable, just
|
|
169
|
+
* without type fidelity. A raw non-adapter tool that needs it should dereference upstream, not here.
|
|
170
|
+
*/
|
|
171
|
+
function resolveComposition(node) {
|
|
172
|
+
let out = node;
|
|
173
|
+
if ('const' in node && !('enum' in node) && isScalarConst(node.const)) {
|
|
174
|
+
if (out === node)
|
|
175
|
+
out = { ...node };
|
|
176
|
+
out.enum = [cloneLiteral(node.const)];
|
|
177
|
+
if (!('type' in out)) {
|
|
178
|
+
const inferred = inferTypeFromConst(node.const);
|
|
179
|
+
if (inferred)
|
|
180
|
+
out.type = inferred;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
if (Array.isArray(out.allOf)) {
|
|
184
|
+
const merged = mergeAllOf(out);
|
|
185
|
+
if (merged)
|
|
186
|
+
out = merged;
|
|
187
|
+
// else: leave `allOf` in place → the allowlist drops it (safe GS2-58 behaviour).
|
|
188
|
+
}
|
|
189
|
+
return out;
|
|
190
|
+
}
|
|
53
191
|
/**
|
|
54
192
|
* Recursively normalise one schema node to Gemini's supported subset:
|
|
55
193
|
* - rewrite `exclusiveMinimum`→`minimum` / `exclusiveMaximum`→`maximum` (Gemini has no exclusive
|
|
@@ -66,8 +204,12 @@ function sanitizeNode(node) {
|
|
|
66
204
|
if (!isPlainObject(node)) {
|
|
67
205
|
return node;
|
|
68
206
|
}
|
|
207
|
+
// Resolve the safe composition keywords (const → enum, clean allOf → shallow merge) BEFORE the
|
|
208
|
+
// allowlist drop, so their content survives; the allowlist below then still guarantees no
|
|
209
|
+
// unsupported keyword escapes. `resolved` is `node` itself when nothing needed resolving.
|
|
210
|
+
const resolved = resolveComposition(node);
|
|
69
211
|
const out = {};
|
|
70
|
-
for (const [key, value] of Object.entries(
|
|
212
|
+
for (const [key, value] of Object.entries(resolved)) {
|
|
71
213
|
// Allowlist: silently drop any keyword Gemini's Schema type does not declare (this is where
|
|
72
214
|
// $defs / definitions / patternProperties / const / multipleOf / $ref / allOf / oneOf / not /
|
|
73
215
|
// additionalProperties / $schema / exclusive* are removed).
|
|
@@ -95,12 +237,13 @@ function sanitizeNode(node) {
|
|
|
95
237
|
// exclusive* → inclusive of the SAME value. Gemini has no exclusive bound; args are hints, so the
|
|
96
238
|
// loosening is accepted. When both an exclusive and an inclusive bound are present, keep the TIGHTER
|
|
97
239
|
// one (higher lower-bound / lower upper-bound) rather than letting the exclusive value clobber it.
|
|
98
|
-
|
|
240
|
+
// Read from `resolved` so a bound merged in from an `allOf` branch is rewritten too.
|
|
241
|
+
const exclusiveMinimum = resolved.exclusiveMinimum;
|
|
99
242
|
if (typeof exclusiveMinimum === 'number') {
|
|
100
243
|
out.minimum =
|
|
101
244
|
typeof out.minimum === 'number' ? Math.max(out.minimum, exclusiveMinimum) : exclusiveMinimum;
|
|
102
245
|
}
|
|
103
|
-
const exclusiveMaximum =
|
|
246
|
+
const exclusiveMaximum = resolved.exclusiveMaximum;
|
|
104
247
|
if (typeof exclusiveMaximum === 'number') {
|
|
105
248
|
out.maximum =
|
|
106
249
|
typeof out.maximum === 'number' ? Math.min(out.maximum, exclusiveMaximum) : exclusiveMaximum;
|
|
@@ -108,9 +251,12 @@ function sanitizeNode(node) {
|
|
|
108
251
|
return out;
|
|
109
252
|
}
|
|
110
253
|
/**
|
|
111
|
-
* Pure, recursive
|
|
112
|
-
*
|
|
113
|
-
*
|
|
254
|
+
* Pure, recursive normaliser: returns a cleaned DEEP COPY of a JSON-Schema containing only keywords
|
|
255
|
+
* Gemini's function-declaration `Schema` accepts, so its OpenAPI-3.0 subset accepts the tool. At each
|
|
256
|
+
* node the SAFE composition keywords are first RESOLVED into supported equivalents
|
|
257
|
+
* ({@link resolveComposition}: `const` → `enum`, clean `allOf` → shallow merge) and only then does the
|
|
258
|
+
* allowlist drop the rest. Does not mutate the input. `anyOf` unions survive; `$ref`/`oneOf`/`not` are
|
|
259
|
+
* dropped (see {@link resolveComposition} for why the last three are deferred, not resolved).
|
|
114
260
|
*/
|
|
115
261
|
export function sanitizeGeminiToolSchema(schema) {
|
|
116
262
|
return sanitizeNode(schema);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geminiSchemaSanitizer.js","sourceRoot":"","sources":["../../src/providers/geminiSchemaSanitizer.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAI7E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAwB,IAAI,GAAG,CAAC;IAC3E,OAAO;IACP,SAAS;IACT,aAAa;IACb,MAAM;IACN,SAAS;IACT,QAAQ;IACR,OAAO;IACP,UAAU;IACV,WAAW;IACX,eAAe;IACf,SAAS;IACT,UAAU;IACV,WAAW;IACX,eAAe;IACf,SAAS;IACT,UAAU;IACV,SAAS;IACT,YAAY;IACZ,kBAAkB;IAClB,UAAU;IACV,OAAO;IACP,MAAM;CACP,CAAC,CAAC;AAEH,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,oGAAoG;AACpG,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,0FAA0F;QAC1F,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,YAAY,CAAC,IAAa;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"geminiSchemaSanitizer.js","sourceRoot":"","sources":["../../src/providers/geminiSchemaSanitizer.ts"],"names":[],"mappings":"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"}
|