@burtson-labs/agent-core 1.6.13
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/LICENSE +201 -0
- package/README.md +88 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +52 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/activation.d.ts +60 -0
- package/dist/mcp/activation.d.ts.map +1 -0
- package/dist/mcp/activation.js +139 -0
- package/dist/mcp/activation.js.map +1 -0
- package/dist/mcp/clientPool.d.ts +202 -0
- package/dist/mcp/clientPool.d.ts.map +1 -0
- package/dist/mcp/clientPool.js +469 -0
- package/dist/mcp/clientPool.js.map +1 -0
- package/dist/mcp/index.d.ts +18 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +28 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +43 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +130 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/toolAdapter.d.ts +57 -0
- package/dist/mcp/toolAdapter.d.ts.map +1 -0
- package/dist/mcp/toolAdapter.js +223 -0
- package/dist/mcp/toolAdapter.js.map +1 -0
- package/dist/mcp/types.d.ts +122 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +15 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/providers/deterministic-provider.d.ts +21 -0
- package/dist/providers/deterministic-provider.d.ts.map +1 -0
- package/dist/providers/deterministic-provider.js +80 -0
- package/dist/providers/deterministic-provider.js.map +1 -0
- package/dist/providers/provider-client.d.ts +12 -0
- package/dist/providers/provider-client.d.ts.map +1 -0
- package/dist/providers/provider-client.js +11 -0
- package/dist/providers/provider-client.js.map +1 -0
- package/dist/runtime/AgentRuntime.d.ts +67 -0
- package/dist/runtime/AgentRuntime.d.ts.map +1 -0
- package/dist/runtime/AgentRuntime.js +382 -0
- package/dist/runtime/AgentRuntime.js.map +1 -0
- package/dist/security/secretPatterns.d.ts +76 -0
- package/dist/security/secretPatterns.d.ts.map +1 -0
- package/dist/security/secretPatterns.js +290 -0
- package/dist/security/secretPatterns.js.map +1 -0
- package/dist/tools/ask-user-tool.d.ts +19 -0
- package/dist/tools/ask-user-tool.d.ts.map +1 -0
- package/dist/tools/ask-user-tool.js +148 -0
- package/dist/tools/ask-user-tool.js.map +1 -0
- package/dist/tools/compactMessages.d.ts +52 -0
- package/dist/tools/compactMessages.d.ts.map +1 -0
- package/dist/tools/compactMessages.js +158 -0
- package/dist/tools/compactMessages.js.map +1 -0
- package/dist/tools/core-tools.d.ts +29 -0
- package/dist/tools/core-tools.d.ts.map +1 -0
- package/dist/tools/core-tools.js +2214 -0
- package/dist/tools/core-tools.js.map +1 -0
- package/dist/tools/git-tools.d.ts +32 -0
- package/dist/tools/git-tools.d.ts.map +1 -0
- package/dist/tools/git-tools.js +330 -0
- package/dist/tools/git-tools.js.map +1 -0
- package/dist/tools/index.d.ts +15 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +31 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/language-adapters.d.ts +48 -0
- package/dist/tools/language-adapters.d.ts.map +1 -0
- package/dist/tools/language-adapters.js +299 -0
- package/dist/tools/language-adapters.js.map +1 -0
- package/dist/tools/loop/compactionTrigger.d.ts +47 -0
- package/dist/tools/loop/compactionTrigger.d.ts.map +1 -0
- package/dist/tools/loop/compactionTrigger.js +32 -0
- package/dist/tools/loop/compactionTrigger.js.map +1 -0
- package/dist/tools/loop/finalAnswerNudges.d.ts +68 -0
- package/dist/tools/loop/finalAnswerNudges.d.ts.map +1 -0
- package/dist/tools/loop/finalAnswerNudges.js +87 -0
- package/dist/tools/loop/finalAnswerNudges.js.map +1 -0
- package/dist/tools/loop/goalAnchor.d.ts +72 -0
- package/dist/tools/loop/goalAnchor.d.ts.map +1 -0
- package/dist/tools/loop/goalAnchor.js +76 -0
- package/dist/tools/loop/goalAnchor.js.map +1 -0
- package/dist/tools/loop/llmStream.d.ts +70 -0
- package/dist/tools/loop/llmStream.d.ts.map +1 -0
- package/dist/tools/loop/llmStream.js +181 -0
- package/dist/tools/loop/llmStream.js.map +1 -0
- package/dist/tools/loop/parallelExecute.d.ts +57 -0
- package/dist/tools/loop/parallelExecute.d.ts.map +1 -0
- package/dist/tools/loop/parallelExecute.js +54 -0
- package/dist/tools/loop/parallelExecute.js.map +1 -0
- package/dist/tools/loop/singleToolExecute.d.ts +71 -0
- package/dist/tools/loop/singleToolExecute.d.ts.map +1 -0
- package/dist/tools/loop/singleToolExecute.js +139 -0
- package/dist/tools/loop/singleToolExecute.js.map +1 -0
- package/dist/tools/loop/toolCallNormalize.d.ts +57 -0
- package/dist/tools/loop/toolCallNormalize.d.ts.map +1 -0
- package/dist/tools/loop/toolCallNormalize.js +99 -0
- package/dist/tools/loop/toolCallNormalize.js.map +1 -0
- package/dist/tools/loop/turnSetup.d.ts +43 -0
- package/dist/tools/loop/turnSetup.d.ts.map +1 -0
- package/dist/tools/loop/turnSetup.js +48 -0
- package/dist/tools/loop/turnSetup.js.map +1 -0
- package/dist/tools/ocr.d.ts +52 -0
- package/dist/tools/ocr.d.ts.map +1 -0
- package/dist/tools/ocr.js +238 -0
- package/dist/tools/ocr.js.map +1 -0
- package/dist/tools/post-edit-checks.d.ts +46 -0
- package/dist/tools/post-edit-checks.d.ts.map +1 -0
- package/dist/tools/post-edit-checks.js +236 -0
- package/dist/tools/post-edit-checks.js.map +1 -0
- package/dist/tools/skill-loader.d.ts +94 -0
- package/dist/tools/skill-loader.d.ts.map +1 -0
- package/dist/tools/skill-loader.js +422 -0
- package/dist/tools/skill-loader.js.map +1 -0
- package/dist/tools/skill-registry.d.ts +44 -0
- package/dist/tools/skill-registry.d.ts.map +1 -0
- package/dist/tools/skill-registry.js +118 -0
- package/dist/tools/skill-registry.js.map +1 -0
- package/dist/tools/skill-types.d.ts +38 -0
- package/dist/tools/skill-types.d.ts.map +1 -0
- package/dist/tools/skill-types.js +10 -0
- package/dist/tools/skill-types.js.map +1 -0
- package/dist/tools/skills/code-review-skill.d.ts +9 -0
- package/dist/tools/skills/code-review-skill.d.ts.map +1 -0
- package/dist/tools/skills/code-review-skill.js +66 -0
- package/dist/tools/skills/code-review-skill.js.map +1 -0
- package/dist/tools/skills/core-skill.d.ts +13 -0
- package/dist/tools/skills/core-skill.d.ts.map +1 -0
- package/dist/tools/skills/core-skill.js +23 -0
- package/dist/tools/skills/core-skill.js.map +1 -0
- package/dist/tools/skills/git-skill.d.ts +10 -0
- package/dist/tools/skills/git-skill.d.ts.map +1 -0
- package/dist/tools/skills/git-skill.js +30 -0
- package/dist/tools/skills/git-skill.js.map +1 -0
- package/dist/tools/skills/index.d.ts +17 -0
- package/dist/tools/skills/index.d.ts.map +1 -0
- package/dist/tools/skills/index.js +49 -0
- package/dist/tools/skills/index.js.map +1 -0
- package/dist/tools/skills/interaction-skill.d.ts +14 -0
- package/dist/tools/skills/interaction-skill.d.ts.map +1 -0
- package/dist/tools/skills/interaction-skill.js +24 -0
- package/dist/tools/skills/interaction-skill.js.map +1 -0
- package/dist/tools/skills/mail-search-skill.d.ts +25 -0
- package/dist/tools/skills/mail-search-skill.d.ts.map +1 -0
- package/dist/tools/skills/mail-search-skill.js +343 -0
- package/dist/tools/skills/mail-search-skill.js.map +1 -0
- package/dist/tools/skills/plan-skill.d.ts +10 -0
- package/dist/tools/skills/plan-skill.d.ts.map +1 -0
- package/dist/tools/skills/plan-skill.js +126 -0
- package/dist/tools/skills/plan-skill.js.map +1 -0
- package/dist/tools/skills/semantic-search-skill.d.ts +22 -0
- package/dist/tools/skills/semantic-search-skill.d.ts.map +1 -0
- package/dist/tools/skills/semantic-search-skill.js +244 -0
- package/dist/tools/skills/semantic-search-skill.js.map +1 -0
- package/dist/tools/skills/test-gen-skill.d.ts +9 -0
- package/dist/tools/skills/test-gen-skill.d.ts.map +1 -0
- package/dist/tools/skills/test-gen-skill.js +123 -0
- package/dist/tools/skills/test-gen-skill.js.map +1 -0
- package/dist/tools/tool-registry.d.ts +60 -0
- package/dist/tools/tool-registry.d.ts.map +1 -0
- package/dist/tools/tool-registry.js +200 -0
- package/dist/tools/tool-registry.js.map +1 -0
- package/dist/tools/tool-types.d.ts +281 -0
- package/dist/tools/tool-types.d.ts.map +1 -0
- package/dist/tools/tool-types.js +10 -0
- package/dist/tools/tool-types.js.map +1 -0
- package/dist/tools/tool-use-loop.d.ts +231 -0
- package/dist/tools/tool-use-loop.d.ts.map +1 -0
- package/dist/tools/tool-use-loop.js +2057 -0
- package/dist/tools/tool-use-loop.js.map +1 -0
- package/dist/tools/tool-use-parser.d.ts +78 -0
- package/dist/tools/tool-use-parser.d.ts.map +1 -0
- package/dist/tools/tool-use-parser.js +427 -0
- package/dist/tools/tool-use-parser.js.map +1 -0
- package/dist/tools/toolAvailabilityDetector.d.ts +48 -0
- package/dist/tools/toolAvailabilityDetector.d.ts.map +1 -0
- package/dist/tools/toolAvailabilityDetector.js +156 -0
- package/dist/tools/toolAvailabilityDetector.js.map +1 -0
- package/dist/tools/unified-patch.d.ts +87 -0
- package/dist/tools/unified-patch.d.ts.map +1 -0
- package/dist/tools/unified-patch.js +217 -0
- package/dist/tools/unified-patch.js.map +1 -0
- package/dist/types/agent.d.ts +69 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +54 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/tasks.d.ts +22 -0
- package/dist/types/tasks.d.ts.map +1 -0
- package/dist/types/tasks.js +3 -0
- package/dist/types/tasks.js.map +1 -0
- package/dist/utils/event-emitter.d.ts +13 -0
- package/dist/utils/event-emitter.d.ts.map +1 -0
- package/dist/utils/event-emitter.js +54 -0
- package/dist/utils/event-emitter.js.map +1 -0
- package/package.json +33 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-use-loop.js","sourceRoot":"","sources":["../../src/tools/tool-use-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* XML-based tool call parser for text-based tool use.
|
|
3
|
+
*
|
|
4
|
+
* Used with models that don't support native function calling
|
|
5
|
+
* (gemma3, bandit-core, qwen2.5, and similar open models).
|
|
6
|
+
*
|
|
7
|
+
* Protocol:
|
|
8
|
+
* Model emits: <tool_call>{"name": "read_file", "params": {"path": "src/x.ts"}}</tool_call>
|
|
9
|
+
* Host injects: <tool_result name="read_file">\n...output...\n</tool_result>
|
|
10
|
+
*/
|
|
11
|
+
export interface ParsedToolCall {
|
|
12
|
+
name: string;
|
|
13
|
+
params: Record<string, string>;
|
|
14
|
+
/** Raw matched string, for replacement/debugging. */
|
|
15
|
+
raw: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function parseToolCalls(text: string): ParsedToolCall[];
|
|
18
|
+
/** Returns true if the text contains at least one tool call (XML, fenced, bare JSON, or pythonic). */
|
|
19
|
+
export declare function hasToolCalls(text: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Does the text LOOK like it's trying to be a tool call even if none parse?
|
|
22
|
+
* Used to distinguish "model wrote prose" from "model tried a tool call but
|
|
23
|
+
* botched the JSON escaping" (common failure mode with long content strings).
|
|
24
|
+
*/
|
|
25
|
+
export declare function looksLikeAttemptedToolCall(text: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* True when the text contains a `<tool_result>` envelope the model
|
|
28
|
+
* should never have emitted — those tags are our injection format for
|
|
29
|
+
* feeding tool output BACK to the model in the next user message. When
|
|
30
|
+
* a model emits one in its own response, it has hallucinated a result
|
|
31
|
+
* (often after aggressive compaction strips its memory and it falls
|
|
32
|
+
* back to imitating the format it saw earlier). * after a 43k → 4.5k compaction, bandit-logic produced a final response
|
|
33
|
+
* containing `<tool_result name="read_file">` with fabricated file
|
|
34
|
+
* contents — the user-visible chat showed what looked like a real read.
|
|
35
|
+
*/
|
|
36
|
+
export declare function hasFabricatedToolResult(text: string): boolean;
|
|
37
|
+
/** Remove all tool_call AND tool_result markup from a string. tool_call
|
|
38
|
+
* markup is malformed-block leakage; tool_result markup is hallucinated
|
|
39
|
+
* (the model is fabricating tool output it never received). Both must
|
|
40
|
+
* be scrubbed before the response reaches the user-visible final answer
|
|
41
|
+
* so the chat doesn't show fake "I read this file" panels. */
|
|
42
|
+
export declare function stripToolCallMarkup(text: string): string;
|
|
43
|
+
/**
|
|
44
|
+
* Format a tool result for injection back into the conversation.
|
|
45
|
+
* The model sees this in the next user message.
|
|
46
|
+
*
|
|
47
|
+
* every output string is run through the secret redactor
|
|
48
|
+
* before the model sees it. This is the canonical chokepoint: any
|
|
49
|
+
* tool call (read_file, run_command, search_code, …) that ends up
|
|
50
|
+
* piping output back to the model goes through this function, so
|
|
51
|
+
* redacting here covers every path with a single edit. The redactor
|
|
52
|
+
* preserves the variable name on env-style secrets (`GITHUB_TOKEN=`
|
|
53
|
+
* stays, the value becomes `<REDACTED:env-secret>`) and replaces
|
|
54
|
+
* full-token matches with `<REDACTED:{kind}>` placeholders that
|
|
55
|
+
* still let the model reason about what KIND of thing was hidden.
|
|
56
|
+
*
|
|
57
|
+
* Opt-out: set BANDIT_NO_SECRET_REDACTION=1 in the host process env.
|
|
58
|
+
* The slash command `/secrets off` flips this at runtime. Off-switch
|
|
59
|
+
* exists for debugging the redactor itself; default-on is the right
|
|
60
|
+
* behavior for everyday use.
|
|
61
|
+
*/
|
|
62
|
+
export declare function formatToolResult(name: string, output: string, isError?: boolean): string;
|
|
63
|
+
/**
|
|
64
|
+
* Build a user message that contains multiple tool results.
|
|
65
|
+
* Used when the model made multiple tool calls in one response.
|
|
66
|
+
*/
|
|
67
|
+
export declare function buildToolResultsMessage(results: Array<{
|
|
68
|
+
name: string;
|
|
69
|
+
output: string;
|
|
70
|
+
isError?: boolean;
|
|
71
|
+
}>): string;
|
|
72
|
+
export declare function applySecretRedactionIfEnabled(text: string): string;
|
|
73
|
+
/**
|
|
74
|
+
* Strip all tool_call and tool_result markup (XML or fenced) from a string.
|
|
75
|
+
* Useful when extracting the model's "thinking" text around tool calls.
|
|
76
|
+
*/
|
|
77
|
+
export declare function stripToolMarkup(text: string): string;
|
|
78
|
+
//# sourceMappingURL=tool-use-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-use-parser.d.ts","sourceRoot":"","sources":["../../src/tools/tool-use-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;CACb;AAwGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAkF7D;AA4ED,sGAAsG;AACtG,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAUlD;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;;;8DAI8D;AAC9D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoBxD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAIxF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GAClE,MAAM,CAER;AAUD,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMlE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMpD"}
|
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* XML-based tool call parser for text-based tool use.
|
|
4
|
+
*
|
|
5
|
+
* Used with models that don't support native function calling
|
|
6
|
+
* (gemma3, bandit-core, qwen2.5, and similar open models).
|
|
7
|
+
*
|
|
8
|
+
* Protocol:
|
|
9
|
+
* Model emits: <tool_call>{"name": "read_file", "params": {"path": "src/x.ts"}}</tool_call>
|
|
10
|
+
* Host injects: <tool_result name="read_file">\n...output...\n</tool_result>
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.parseToolCalls = parseToolCalls;
|
|
14
|
+
exports.hasToolCalls = hasToolCalls;
|
|
15
|
+
exports.looksLikeAttemptedToolCall = looksLikeAttemptedToolCall;
|
|
16
|
+
exports.hasFabricatedToolResult = hasFabricatedToolResult;
|
|
17
|
+
exports.stripToolCallMarkup = stripToolCallMarkup;
|
|
18
|
+
exports.formatToolResult = formatToolResult;
|
|
19
|
+
exports.buildToolResultsMessage = buildToolResultsMessage;
|
|
20
|
+
exports.applySecretRedactionIfEnabled = applySecretRedactionIfEnabled;
|
|
21
|
+
exports.stripToolMarkup = stripToolMarkup;
|
|
22
|
+
const secretPatterns_1 = require("../security/secretPatterns");
|
|
23
|
+
// Accepted formats:
|
|
24
|
+
// <tool_call>{"name":"foo","params":{...}}</tool_call> (canonical)
|
|
25
|
+
// ```tool_call\n{"name":"foo","params":{...}}\n``` (fenced, common)
|
|
26
|
+
//
|
|
27
|
+
// The previous non-greedy regex failed whenever a tool-call payload itself
|
|
28
|
+
// contained the string `</tool_call>` (e.g. when todo_write's items value was
|
|
29
|
+
// a string describing another tool call). We now use brace-matching so we
|
|
30
|
+
// walk the real JSON boundaries instead of pattern-guessing.
|
|
31
|
+
/**
|
|
32
|
+
* Find the end index of a JSON object starting at `start` (which should
|
|
33
|
+
* point at the `{`). Returns the index of the matching `}` or -1.
|
|
34
|
+
* String-aware: brackets inside strings don't count. Handles escapes.
|
|
35
|
+
*/
|
|
36
|
+
function findJsonEnd(text, start) {
|
|
37
|
+
// Skip whitespace until the opening brace.
|
|
38
|
+
while (start < text.length && /\s/.test(text[start]))
|
|
39
|
+
start++;
|
|
40
|
+
if (text[start] !== '{')
|
|
41
|
+
return -1;
|
|
42
|
+
let depth = 0;
|
|
43
|
+
let inString = false;
|
|
44
|
+
let escape = false;
|
|
45
|
+
for (let i = start; i < text.length; i++) {
|
|
46
|
+
const c = text[i];
|
|
47
|
+
if (inString) {
|
|
48
|
+
if (escape) {
|
|
49
|
+
escape = false;
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
if (c === '\\') {
|
|
53
|
+
escape = true;
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (c === '"')
|
|
57
|
+
inString = false;
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (c === '"') {
|
|
61
|
+
inString = true;
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
if (c === '{')
|
|
65
|
+
depth++;
|
|
66
|
+
else if (c === '}') {
|
|
67
|
+
depth--;
|
|
68
|
+
if (depth === 0)
|
|
69
|
+
return i;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return -1;
|
|
73
|
+
}
|
|
74
|
+
/** Locate every `<tool_call>…</tool_call>` block using brace-balanced JSON. */
|
|
75
|
+
function findXmlBlocks(text) {
|
|
76
|
+
const out = [];
|
|
77
|
+
const opener = '<tool_call>';
|
|
78
|
+
const closer = '</tool_call>';
|
|
79
|
+
let i = 0;
|
|
80
|
+
while (i < text.length) {
|
|
81
|
+
const open = text.indexOf(opener, i);
|
|
82
|
+
if (open === -1)
|
|
83
|
+
break;
|
|
84
|
+
const jsonStart = open + opener.length;
|
|
85
|
+
const end = findJsonEnd(text, jsonStart);
|
|
86
|
+
if (end === -1) {
|
|
87
|
+
i = jsonStart;
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
// Require `</tool_call>` at (or near) the JSON end — tolerate whitespace.
|
|
91
|
+
let closeIdx = end + 1;
|
|
92
|
+
while (closeIdx < text.length && /\s/.test(text[closeIdx]))
|
|
93
|
+
closeIdx++;
|
|
94
|
+
if (text.slice(closeIdx, closeIdx + closer.length) !== closer) {
|
|
95
|
+
i = end + 1;
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
const inner = text.slice(jsonStart, end + 1);
|
|
99
|
+
const raw = text.slice(open, closeIdx + closer.length);
|
|
100
|
+
out.push({ raw, inner });
|
|
101
|
+
i = closeIdx + closer.length;
|
|
102
|
+
}
|
|
103
|
+
return out;
|
|
104
|
+
}
|
|
105
|
+
/** Locate every fenced ```tool_call … ``` block using brace-balanced JSON. */
|
|
106
|
+
function findFenceBlocks(text) {
|
|
107
|
+
const out = [];
|
|
108
|
+
const fenceStartRe = /```\s*tool_call\s*\n?/g;
|
|
109
|
+
let m;
|
|
110
|
+
while ((m = fenceStartRe.exec(text)) !== null) {
|
|
111
|
+
const jsonStart = m.index + m[0].length;
|
|
112
|
+
const end = findJsonEnd(text, jsonStart);
|
|
113
|
+
if (end === -1)
|
|
114
|
+
continue;
|
|
115
|
+
let closeIdx = end + 1;
|
|
116
|
+
while (closeIdx < text.length && /\s/.test(text[closeIdx]))
|
|
117
|
+
closeIdx++;
|
|
118
|
+
if (text.slice(closeIdx, closeIdx + 3) !== '```')
|
|
119
|
+
continue;
|
|
120
|
+
out.push({ raw: text.slice(m.index, closeIdx + 3), inner: text.slice(jsonStart, end + 1) });
|
|
121
|
+
fenceStartRe.lastIndex = closeIdx + 3;
|
|
122
|
+
}
|
|
123
|
+
return out;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Extract all tool call blocks from a model response. Accepts both the
|
|
127
|
+
* canonical <tool_call>…</tool_call> form and the markdown-fenced
|
|
128
|
+
* ```tool_call …``` variant. Returns an empty array if none found.
|
|
129
|
+
*/
|
|
130
|
+
/**
|
|
131
|
+
* Blank out fenced code blocks (```…``` / ~~~…~~~) so the WEAK tool-call
|
|
132
|
+
* fallbacks (bare-JSON, pythonic) don't misread a code EXAMPLE the model is
|
|
133
|
+
* demonstrating — e.g. a Python `print("…")` or a JSON snippet — as a tool
|
|
134
|
+
* call. Real tool calls use `<tool_call>` or ```tool_call, both consumed
|
|
135
|
+
* before the fallbacks run, so masking every other fence here is safe. The
|
|
136
|
+
* canonical/XML finders still see the original text.
|
|
137
|
+
*/
|
|
138
|
+
function stripFencedCode(text) {
|
|
139
|
+
return text
|
|
140
|
+
.replace(/```[\s\S]*?```/g, '')
|
|
141
|
+
.replace(/~~~[\s\S]*?~~~/g, '');
|
|
142
|
+
}
|
|
143
|
+
function parseToolCalls(text) {
|
|
144
|
+
const results = [];
|
|
145
|
+
const seen = new Set();
|
|
146
|
+
const consume = (block) => {
|
|
147
|
+
if (seen.has(block.raw))
|
|
148
|
+
return;
|
|
149
|
+
seen.add(block.raw);
|
|
150
|
+
try {
|
|
151
|
+
// Three things a model can do when emitting a tool_call, in order
|
|
152
|
+
// of frequency we've actually observed in the wild:
|
|
153
|
+
//
|
|
154
|
+
// (1) Wrapped under `params` — the shape we document. Works.
|
|
155
|
+
// (2) Wrapped under `arguments` — OpenAI / Anthropic convention.
|
|
156
|
+
// Open-source instruct-tuned models (including bandit-core-1)
|
|
157
|
+
// default to this because they were trained on thousands of
|
|
158
|
+
// function-calling examples using this name.
|
|
159
|
+
// (3) Wrapped under `parameters` — conflation of the schema word
|
|
160
|
+
// with the call-site word.
|
|
161
|
+
// (4) FLAT: {name, path, content, ...} with no wrapper at all.
|
|
162
|
+
// Also common with instruct-tuned models — they skip the
|
|
163
|
+
// wrapper entirely because the one-level structure is
|
|
164
|
+
// simpler. bandit-core-1 hits this case on every
|
|
165
|
+
// write_file call in the skills.create_markdown fixture.
|
|
166
|
+
//
|
|
167
|
+
// Before flat-key support, the parser returned an empty params
|
|
168
|
+
// object for case (4) and the tool immediately errored with
|
|
169
|
+
// "X parameter is required". The eval fixture caught it.
|
|
170
|
+
const parsed = JSON.parse(block.inner);
|
|
171
|
+
if (typeof parsed.name !== 'string' || !parsed.name)
|
|
172
|
+
return;
|
|
173
|
+
let paramsLike;
|
|
174
|
+
if (parsed.params && typeof parsed.params === 'object')
|
|
175
|
+
paramsLike = parsed.params;
|
|
176
|
+
else if (parsed.arguments && typeof parsed.arguments === 'object')
|
|
177
|
+
paramsLike = parsed.arguments;
|
|
178
|
+
else if (parsed.parameters && typeof parsed.parameters === 'object')
|
|
179
|
+
paramsLike = parsed.parameters;
|
|
180
|
+
else {
|
|
181
|
+
// Flat-key fallback: treat every top-level field other than `name`
|
|
182
|
+
// (and the already-tried wrapper keys, in case the model emitted
|
|
183
|
+
// both a wrapper AND flat keys) as a tool parameter.
|
|
184
|
+
const { name: _n, params: _p, arguments: _a, parameters: _pa, ...rest } = parsed;
|
|
185
|
+
paramsLike = rest;
|
|
186
|
+
}
|
|
187
|
+
const params = {};
|
|
188
|
+
for (const [k, v] of Object.entries(paramsLike)) {
|
|
189
|
+
params[k] = typeof v === 'string' ? v : JSON.stringify(v);
|
|
190
|
+
}
|
|
191
|
+
results.push({ name: parsed.name, params, raw: block.raw });
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
// Malformed JSON — skip.
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
for (const b of findXmlBlocks(text))
|
|
198
|
+
consume(b);
|
|
199
|
+
for (const b of findFenceBlocks(text))
|
|
200
|
+
consume(b);
|
|
201
|
+
// Bare-JSON fallback — with Qwen 2.5 Coder 32B via
|
|
202
|
+
// Ollama: model emits `{"name":"foo","arguments":{...}}` as its entire
|
|
203
|
+
// content field (Ollama's tag-based extractor only promotes tagged
|
|
204
|
+
// blocks to tool_calls, so bare JSON passes through as prose and our
|
|
205
|
+
// XML/fence finders miss it). Only fire when we haven't already
|
|
206
|
+
// consumed something — bare-JSON is the weakest signal.
|
|
207
|
+
// Weak fallbacks run against a fence-masked copy so a fenced code EXAMPLE
|
|
208
|
+
// (```python\nprint("x")\n```, a ```json snippet, etc.) isn't mistaken for
|
|
209
|
+
// a tool call. The canonical XML/```tool_call finders above used the raw text.
|
|
210
|
+
const masked = stripFencedCode(text);
|
|
211
|
+
if (results.length === 0) {
|
|
212
|
+
for (const b of findBareJsonBlocks(masked))
|
|
213
|
+
consume(b);
|
|
214
|
+
}
|
|
215
|
+
// Pythonic fallback — Qwen sometimes emits `toolname(args)` / `toolname
|
|
216
|
+
// path="x" content="y"` as prose. Less-structured still but recoverable
|
|
217
|
+
// if we see a tool name on a line by itself. Only fires as a last resort,
|
|
218
|
+
// and never inside a code fence (masked above) so a `print(...)` in a
|
|
219
|
+
// Python example doesn't become a phantom `print` tool call.
|
|
220
|
+
if (results.length === 0) {
|
|
221
|
+
for (const b of findPythonicBlocks(masked))
|
|
222
|
+
consume(b);
|
|
223
|
+
}
|
|
224
|
+
return results;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Find bare-JSON tool-call objects in text: `{"name":"X","arguments":{...}}`
|
|
228
|
+
* with no wrapping tags. Must be a top-level JSON object that contains
|
|
229
|
+
* at least a `name` string — we rely on `consume()` to validate the
|
|
230
|
+
* full shape.
|
|
231
|
+
*/
|
|
232
|
+
function findBareJsonBlocks(text) {
|
|
233
|
+
const out = [];
|
|
234
|
+
let i = 0;
|
|
235
|
+
while (i < text.length) {
|
|
236
|
+
const brace = text.indexOf('{', i);
|
|
237
|
+
if (brace < 0)
|
|
238
|
+
break;
|
|
239
|
+
const end = findJsonEnd(text, brace);
|
|
240
|
+
if (end < 0) {
|
|
241
|
+
i = brace + 1;
|
|
242
|
+
continue;
|
|
243
|
+
}
|
|
244
|
+
const inner = text.slice(brace, end + 1);
|
|
245
|
+
// Cheap pre-check so we don't try JSON.parse on every `{}` in prose.
|
|
246
|
+
if (/"name"\s*:\s*"/.test(inner) && /"(?:arguments|params|parameters)"\s*:/.test(inner)) {
|
|
247
|
+
out.push({ raw: inner, inner });
|
|
248
|
+
}
|
|
249
|
+
i = end + 1;
|
|
250
|
+
}
|
|
251
|
+
return out;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Find Python-function-call-style emissions: `toolname(args)` on a line
|
|
255
|
+
* by itself OR `toolname key="value" key2="value2"` as bare prose.
|
|
256
|
+
* Converts to a synthetic `{"name":..., "params":{...}}` block. Narrow
|
|
257
|
+
* on purpose — we only match lines that START with an identifier and
|
|
258
|
+
* are followed by either `(` or a key= pair.
|
|
259
|
+
*/
|
|
260
|
+
function findPythonicBlocks(text) {
|
|
261
|
+
const out = [];
|
|
262
|
+
const lines = text.split('\n');
|
|
263
|
+
for (const rawLine of lines) {
|
|
264
|
+
const line = rawLine.trim();
|
|
265
|
+
if (!line)
|
|
266
|
+
continue;
|
|
267
|
+
// `toolname(<json-ish>)` — e.g. `todo_write(["a","b"])` or `run_command({...})`.
|
|
268
|
+
const fnMatch = /^([a-z_][a-z0-9_]*)\s*\(([\s\S]+)\)\s*$/i.exec(line);
|
|
269
|
+
if (fnMatch) {
|
|
270
|
+
const [, name, body] = fnMatch;
|
|
271
|
+
// Try JSON-parse the body; if it parses as an array, attach as
|
|
272
|
+
// the canonical `items` param (matches todo_write's API). Object
|
|
273
|
+
// goes under `arguments`.
|
|
274
|
+
try {
|
|
275
|
+
const parsedBody = JSON.parse(body);
|
|
276
|
+
const inner = Array.isArray(parsedBody)
|
|
277
|
+
? JSON.stringify({ name, params: { items: JSON.stringify(parsedBody) } })
|
|
278
|
+
: JSON.stringify({ name, arguments: parsedBody });
|
|
279
|
+
out.push({ raw: rawLine, inner });
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
catch {
|
|
283
|
+
// Not valid JSON body; fall through to key-value path.
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
// `toolname key="value" key2="value with spaces"` — prose key=value pairs.
|
|
287
|
+
const kvMatch = /^([a-z_][a-z0-9_]*)\s+((?:[a-z_][a-z0-9_]*=(?:"[^"]*"|\S+)\s*)+)$/i.exec(line);
|
|
288
|
+
if (kvMatch) {
|
|
289
|
+
const [, name, rest] = kvMatch;
|
|
290
|
+
const params = {};
|
|
291
|
+
const pairRe = /([a-z_][a-z0-9_]*)=(?:"([^"]*)"|(\S+))/gi;
|
|
292
|
+
let match;
|
|
293
|
+
while ((match = pairRe.exec(rest)) !== null) {
|
|
294
|
+
const [, key, quoted, bare] = match;
|
|
295
|
+
params[key] = quoted ?? bare ?? '';
|
|
296
|
+
}
|
|
297
|
+
if (Object.keys(params).length > 0) {
|
|
298
|
+
out.push({ raw: rawLine, inner: JSON.stringify({ name, params }) });
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
return out;
|
|
303
|
+
}
|
|
304
|
+
/** Returns true if the text contains at least one tool call (XML, fenced, bare JSON, or pythonic). */
|
|
305
|
+
function hasToolCalls(text) {
|
|
306
|
+
if (findXmlBlocks(text).length > 0)
|
|
307
|
+
return true;
|
|
308
|
+
if (findFenceBlocks(text).length > 0)
|
|
309
|
+
return true;
|
|
310
|
+
// Only run the weaker fallbacks when the stronger ones missed — and against
|
|
311
|
+
// fence-masked text so a code example isn't read as a tool call (mirrors
|
|
312
|
+
// parseToolCalls so the two never disagree).
|
|
313
|
+
const masked = stripFencedCode(text);
|
|
314
|
+
if (findBareJsonBlocks(masked).length > 0)
|
|
315
|
+
return true;
|
|
316
|
+
if (findPythonicBlocks(masked).length > 0)
|
|
317
|
+
return true;
|
|
318
|
+
return false;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Does the text LOOK like it's trying to be a tool call even if none parse?
|
|
322
|
+
* Used to distinguish "model wrote prose" from "model tried a tool call but
|
|
323
|
+
* botched the JSON escaping" (common failure mode with long content strings).
|
|
324
|
+
*/
|
|
325
|
+
function looksLikeAttemptedToolCall(text) {
|
|
326
|
+
return /<tool_call\b|```\s*tool_call\b/i.test(text);
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* True when the text contains a `<tool_result>` envelope the model
|
|
330
|
+
* should never have emitted — those tags are our injection format for
|
|
331
|
+
* feeding tool output BACK to the model in the next user message. When
|
|
332
|
+
* a model emits one in its own response, it has hallucinated a result
|
|
333
|
+
* (often after aggressive compaction strips its memory and it falls
|
|
334
|
+
* back to imitating the format it saw earlier). * after a 43k → 4.5k compaction, bandit-logic produced a final response
|
|
335
|
+
* containing `<tool_result name="read_file">` with fabricated file
|
|
336
|
+
* contents — the user-visible chat showed what looked like a real read.
|
|
337
|
+
*/
|
|
338
|
+
function hasFabricatedToolResult(text) {
|
|
339
|
+
return /<tool_result\b/i.test(text);
|
|
340
|
+
}
|
|
341
|
+
/** Remove all tool_call AND tool_result markup from a string. tool_call
|
|
342
|
+
* markup is malformed-block leakage; tool_result markup is hallucinated
|
|
343
|
+
* (the model is fabricating tool output it never received). Both must
|
|
344
|
+
* be scrubbed before the response reaches the user-visible final answer
|
|
345
|
+
* so the chat doesn't show fake "I read this file" panels. */
|
|
346
|
+
function stripToolCallMarkup(text) {
|
|
347
|
+
let out = text;
|
|
348
|
+
// Drop well-formed XML blocks (covers <tool_call>...</tool_call>).
|
|
349
|
+
for (const b of findXmlBlocks(text))
|
|
350
|
+
out = out.replace(b.raw, '');
|
|
351
|
+
// Drop well-formed fenced blocks (```tool_call ... ```).
|
|
352
|
+
for (const b of findFenceBlocks(text))
|
|
353
|
+
out = out.replace(b.raw, '');
|
|
354
|
+
// Aggressively remove any leftover malformed tool_call markup. These
|
|
355
|
+
// regexes fire ONLY if a structured block wasn't already removed —
|
|
356
|
+
// after structured stripping, anything remaining is by definition not
|
|
357
|
+
// a valid block, so we can clear markup tags without hurting prose.
|
|
358
|
+
out = out.replace(/<\/?tool_call>/gi, '');
|
|
359
|
+
out = out.replace(/```\s*tool_call\s*/gi, '```');
|
|
360
|
+
// Hallucinated tool_result blocks. Match the well-formed envelope
|
|
361
|
+
// first (greedy-but-bounded by the closing tag) — the typical pattern
|
|
362
|
+
// is `<tool_result name="read_file">…fake content…</tool_result>`.
|
|
363
|
+
// After that, drop any orphaned opening/closing tags that survived a
|
|
364
|
+
// truncated or unterminated emission.
|
|
365
|
+
out = out.replace(/<tool_result\b[^>]*>[\s\S]*?<\/tool_result>/gi, '');
|
|
366
|
+
out = out.replace(/<\/?tool_result\b[^>]*>/gi, '');
|
|
367
|
+
return out;
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Format a tool result for injection back into the conversation.
|
|
371
|
+
* The model sees this in the next user message.
|
|
372
|
+
*
|
|
373
|
+
* every output string is run through the secret redactor
|
|
374
|
+
* before the model sees it. This is the canonical chokepoint: any
|
|
375
|
+
* tool call (read_file, run_command, search_code, …) that ends up
|
|
376
|
+
* piping output back to the model goes through this function, so
|
|
377
|
+
* redacting here covers every path with a single edit. The redactor
|
|
378
|
+
* preserves the variable name on env-style secrets (`GITHUB_TOKEN=`
|
|
379
|
+
* stays, the value becomes `<REDACTED:env-secret>`) and replaces
|
|
380
|
+
* full-token matches with `<REDACTED:{kind}>` placeholders that
|
|
381
|
+
* still let the model reason about what KIND of thing was hidden.
|
|
382
|
+
*
|
|
383
|
+
* Opt-out: set BANDIT_NO_SECRET_REDACTION=1 in the host process env.
|
|
384
|
+
* The slash command `/secrets off` flips this at runtime. Off-switch
|
|
385
|
+
* exists for debugging the redactor itself; default-on is the right
|
|
386
|
+
* behavior for everyday use.
|
|
387
|
+
*/
|
|
388
|
+
function formatToolResult(name, output, isError) {
|
|
389
|
+
const tag = isError ? `<tool_result name="${name}" status="error">` : `<tool_result name="${name}">`;
|
|
390
|
+
const safeOutput = applySecretRedactionIfEnabled(output);
|
|
391
|
+
return `${tag}\n${safeOutput}\n</tool_result>`;
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Build a user message that contains multiple tool results.
|
|
395
|
+
* Used when the model made multiple tool calls in one response.
|
|
396
|
+
*/
|
|
397
|
+
function buildToolResultsMessage(results) {
|
|
398
|
+
return results.map(r => formatToolResult(r.name, r.output, r.isError)).join('\n\n');
|
|
399
|
+
}
|
|
400
|
+
// ─── Secret redaction wiring ───────────────────────────────────────
|
|
401
|
+
// Hot path: formatToolResult fires for every tool result the model
|
|
402
|
+
// will see. The redactor is the single source of truth for "what
|
|
403
|
+
// looks like a secret" — see ../security/secretPatterns.ts.
|
|
404
|
+
//
|
|
405
|
+
// Opt-out: BANDIT_NO_SECRET_REDACTION=1 env. The slash command
|
|
406
|
+
// `/secrets off` flips this at runtime. Off-switch exists for
|
|
407
|
+
// debugging the redactor itself; default-on is the right behavior.
|
|
408
|
+
function applySecretRedactionIfEnabled(text) {
|
|
409
|
+
if (/^(1|true)$/i.test(process.env.BANDIT_NO_SECRET_REDACTION ?? '')) {
|
|
410
|
+
return text;
|
|
411
|
+
}
|
|
412
|
+
if (!text || text.length === 0)
|
|
413
|
+
return text;
|
|
414
|
+
return (0, secretPatterns_1.redactSecretsString)(text);
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* Strip all tool_call and tool_result markup (XML or fenced) from a string.
|
|
418
|
+
* Useful when extracting the model's "thinking" text around tool calls.
|
|
419
|
+
*/
|
|
420
|
+
function stripToolMarkup(text) {
|
|
421
|
+
return text
|
|
422
|
+
.replace(/<tool_call>[\s\S]*?<\/tool_call>/gi, '')
|
|
423
|
+
.replace(/```\s*tool_call\s*\n?[\s\S]*?\n?```/gi, '')
|
|
424
|
+
.replace(/<tool_result[^>]*>[\s\S]*?<\/tool_result>/gi, '')
|
|
425
|
+
.trim();
|
|
426
|
+
}
|
|
427
|
+
//# sourceMappingURL=tool-use-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-use-parser.js","sourceRoot":"","sources":["../../src/tools/tool-use-parser.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAiHH,wCAkFC;AA6ED,oCAUC;AAOD,gEAEC;AAYD,0DAEC;AAOD,kDAoBC;AAqBD,4CAIC;AAMD,0DAIC;AAUD,sEAMC;AAMD,0CAMC;AAzYD,+DAAiE;AASjE,oBAAoB;AACpB,mEAAmE;AACnE,oEAAoE;AACpE,EAAE;AACF,2EAA2E;AAC3E,8EAA8E;AAC9E,0EAA0E;AAC1E,6DAA6D;AAE7D;;;;GAIG;AACH,SAAS,WAAW,CAAC,IAAY,EAAE,KAAa;IAC9C,2CAA2C;IAC3C,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAE,KAAK,EAAE,CAAC;IAC9D,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG;QAAE,OAAO,CAAC,CAAC,CAAC;IACnC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,MAAM,EAAE,CAAC;gBAAC,MAAM,GAAG,KAAK,CAAC;gBAAC,SAAS;YAAC,CAAC;YACzC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBAAC,MAAM,GAAG,IAAI,CAAC;gBAAC,SAAS;YAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,GAAG;gBAAE,QAAQ,GAAG,KAAK,CAAC;YAChC,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAAC,QAAQ,GAAG,IAAI,CAAC;YAAC,SAAS;QAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;aAClB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACnB,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,+EAA+E;AAC/E,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,GAAG,GAAqC,EAAE,CAAC;IACjD,MAAM,MAAM,GAAG,aAAa,CAAC;IAC7B,MAAM,MAAM,GAAG,cAAc,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrC,IAAI,IAAI,KAAK,CAAC,CAAC;YAAE,MAAM;QACvB,MAAM,SAAS,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACvC,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACzC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YAAC,CAAC,GAAG,SAAS,CAAC;YAAC,SAAS;QAAC,CAAC;QAC5C,0EAA0E;QAC1E,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC;QACvB,OAAO,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAAE,QAAQ,EAAE,CAAC;QACvE,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;YAC9D,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAAC,SAAS;QACxB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACvD,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACzB,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8EAA8E;AAC9E,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,GAAG,GAAqC,EAAE,CAAC;IACjD,MAAM,YAAY,GAAG,wBAAwB,CAAC;IAC9C,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACxC,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACzC,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,SAAS;QACzB,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC;QACvB,OAAO,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAAE,QAAQ,EAAE,CAAC;QACvE,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,KAAK;YAAE,SAAS;QAC3D,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5F,YAAY,CAAC,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH;;;;;;;GAOG;AACH,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,IAAI;SACR,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,SAAgB,cAAc,CAAC,IAAY;IACzC,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,MAAM,OAAO,GAAG,CAAC,KAAqC,EAAQ,EAAE;QAC9D,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO;QAChC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC;YACH,kEAAkE;YAClE,oDAAoD;YACpD,EAAE;YACF,6DAA6D;YAC7D,iEAAiE;YACjE,8DAA8D;YAC9D,4DAA4D;YAC5D,6CAA6C;YAC7C,iEAAiE;YACjE,2BAA2B;YAC3B,+DAA+D;YAC/D,yDAAyD;YACzD,sDAAsD;YACtD,iDAAiD;YACjD,yDAAyD;YACzD,EAAE;YACF,+DAA+D;YAC/D,4DAA4D;YAC5D,yDAAyD;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAMpC,CAAC;YACF,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAE,OAAO;YAE5D,IAAI,UAAmC,CAAC;YACxC,IAAI,MAAM,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;gBAAE,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;iBAC9E,IAAI,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;gBAAE,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;iBAC5F,IAAI,MAAM,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;gBAAE,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;iBAC/F,CAAC;gBACJ,mEAAmE;gBACnE,iEAAiE;gBACjE,qDAAqD;gBACrD,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;gBACjF,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;YAED,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAClD,mDAAmD;IACnD,uEAAuE;IACvE,mEAAmE;IACnE,qEAAqE;IACrE,gEAAgE;IAChE,wDAAwD;IACxD,0EAA0E;IAC1E,2EAA2E;IAC3E,+EAA+E;IAC/E,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,wEAAwE;IACxE,wEAAwE;IACxE,0EAA0E;IAC1E,sEAAsE;IACtE,6DAA6D;IAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,GAAG,GAAqC,EAAE,CAAC;IACjD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM;QACrB,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QACzC,qEAAqE;QACrE,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,uCAAuC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACxF,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IACd,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,GAAG,GAAqC,EAAE,CAAC;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,iFAAiF;QACjF,MAAM,OAAO,GAAG,0CAA0C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC;YAC/B,+DAA+D;YAC/D,iEAAiE;YACjE,0BAA0B;YAC1B,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;oBACrC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;oBACzE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;gBACpD,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAClC,SAAS;YACX,CAAC;YAAC,MAAM,CAAC;gBACP,uDAAuD;YACzD,CAAC;QACH,CAAC;QACD,2EAA2E;QAC3E,MAAM,OAAO,GAAG,oEAAoE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChG,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC;YAC/B,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,0CAA0C,CAAC;YAC1D,IAAI,KAA6B,CAAC;YAClC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC5C,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;gBACpC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACrC,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,sGAAsG;AACtG,SAAgB,YAAY,CAAC,IAAY;IACvC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,4EAA4E;IAC5E,yEAAyE;IACzE,6CAA6C;IAC7C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAgB,0BAA0B,CAAC,IAAY;IACrD,OAAO,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,uBAAuB,CAAC,IAAY;IAClD,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED;;;;8DAI8D;AAC9D,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,mEAAmE;IACnE,KAAK,MAAM,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC;QAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAClE,yDAAyD;IACzD,KAAK,MAAM,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC;QAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpE,qEAAqE;IACrE,mEAAmE;IACnE,sEAAsE;IACtE,oEAAoE;IACpE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAC1C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;IACjD,kEAAkE;IAClE,sEAAsE;IACtE,mEAAmE;IACnE,qEAAqE;IACrE,sCAAsC;IACtC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,+CAA+C,EAAE,EAAE,CAAC,CAAC;IACvE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;IACnD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,gBAAgB,CAAC,IAAY,EAAE,MAAc,EAAE,OAAiB;IAC9E,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,sBAAsB,IAAI,mBAAmB,CAAC,CAAC,CAAC,sBAAsB,IAAI,IAAI,CAAC;IACrG,MAAM,UAAU,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACzD,OAAO,GAAG,GAAG,KAAK,UAAU,kBAAkB,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CACrC,OAAmE;IAEnE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtF,CAAC;AAED,sEAAsE;AACtE,mEAAmE;AACnE,iEAAiE;AACjE,4DAA4D;AAC5D,EAAE;AACF,+DAA+D;AAC/D,8DAA8D;AAC9D,mEAAmE;AACnE,SAAgB,6BAA6B,CAAC,IAAY;IACxD,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,EAAE,CAAC,EAAE,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,IAAA,oCAAmB,EAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI;SACR,OAAO,CAAC,oCAAoC,EAAE,EAAE,CAAC;SACjD,OAAO,CAAC,uCAAuC,EAAE,EAAE,CAAC;SACpD,OAAO,CAAC,6CAA6C,EAAE,EAAE,CAAC;SAC1D,IAAI,EAAE,CAAC;AACZ,CAAC"}
|