@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.
Files changed (195) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +88 -0
  3. package/dist/index.d.ts +16 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +52 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/mcp/activation.d.ts +60 -0
  8. package/dist/mcp/activation.d.ts.map +1 -0
  9. package/dist/mcp/activation.js +139 -0
  10. package/dist/mcp/activation.js.map +1 -0
  11. package/dist/mcp/clientPool.d.ts +202 -0
  12. package/dist/mcp/clientPool.d.ts.map +1 -0
  13. package/dist/mcp/clientPool.js +469 -0
  14. package/dist/mcp/clientPool.js.map +1 -0
  15. package/dist/mcp/index.d.ts +18 -0
  16. package/dist/mcp/index.d.ts.map +1 -0
  17. package/dist/mcp/index.js +28 -0
  18. package/dist/mcp/index.js.map +1 -0
  19. package/dist/mcp/server.d.ts +43 -0
  20. package/dist/mcp/server.d.ts.map +1 -0
  21. package/dist/mcp/server.js +130 -0
  22. package/dist/mcp/server.js.map +1 -0
  23. package/dist/mcp/toolAdapter.d.ts +57 -0
  24. package/dist/mcp/toolAdapter.d.ts.map +1 -0
  25. package/dist/mcp/toolAdapter.js +223 -0
  26. package/dist/mcp/toolAdapter.js.map +1 -0
  27. package/dist/mcp/types.d.ts +122 -0
  28. package/dist/mcp/types.d.ts.map +1 -0
  29. package/dist/mcp/types.js +15 -0
  30. package/dist/mcp/types.js.map +1 -0
  31. package/dist/providers/deterministic-provider.d.ts +21 -0
  32. package/dist/providers/deterministic-provider.d.ts.map +1 -0
  33. package/dist/providers/deterministic-provider.js +80 -0
  34. package/dist/providers/deterministic-provider.js.map +1 -0
  35. package/dist/providers/provider-client.d.ts +12 -0
  36. package/dist/providers/provider-client.d.ts.map +1 -0
  37. package/dist/providers/provider-client.js +11 -0
  38. package/dist/providers/provider-client.js.map +1 -0
  39. package/dist/runtime/AgentRuntime.d.ts +67 -0
  40. package/dist/runtime/AgentRuntime.d.ts.map +1 -0
  41. package/dist/runtime/AgentRuntime.js +382 -0
  42. package/dist/runtime/AgentRuntime.js.map +1 -0
  43. package/dist/security/secretPatterns.d.ts +76 -0
  44. package/dist/security/secretPatterns.d.ts.map +1 -0
  45. package/dist/security/secretPatterns.js +290 -0
  46. package/dist/security/secretPatterns.js.map +1 -0
  47. package/dist/tools/ask-user-tool.d.ts +19 -0
  48. package/dist/tools/ask-user-tool.d.ts.map +1 -0
  49. package/dist/tools/ask-user-tool.js +148 -0
  50. package/dist/tools/ask-user-tool.js.map +1 -0
  51. package/dist/tools/compactMessages.d.ts +52 -0
  52. package/dist/tools/compactMessages.d.ts.map +1 -0
  53. package/dist/tools/compactMessages.js +158 -0
  54. package/dist/tools/compactMessages.js.map +1 -0
  55. package/dist/tools/core-tools.d.ts +29 -0
  56. package/dist/tools/core-tools.d.ts.map +1 -0
  57. package/dist/tools/core-tools.js +2214 -0
  58. package/dist/tools/core-tools.js.map +1 -0
  59. package/dist/tools/git-tools.d.ts +32 -0
  60. package/dist/tools/git-tools.d.ts.map +1 -0
  61. package/dist/tools/git-tools.js +330 -0
  62. package/dist/tools/git-tools.js.map +1 -0
  63. package/dist/tools/index.d.ts +15 -0
  64. package/dist/tools/index.d.ts.map +1 -0
  65. package/dist/tools/index.js +31 -0
  66. package/dist/tools/index.js.map +1 -0
  67. package/dist/tools/language-adapters.d.ts +48 -0
  68. package/dist/tools/language-adapters.d.ts.map +1 -0
  69. package/dist/tools/language-adapters.js +299 -0
  70. package/dist/tools/language-adapters.js.map +1 -0
  71. package/dist/tools/loop/compactionTrigger.d.ts +47 -0
  72. package/dist/tools/loop/compactionTrigger.d.ts.map +1 -0
  73. package/dist/tools/loop/compactionTrigger.js +32 -0
  74. package/dist/tools/loop/compactionTrigger.js.map +1 -0
  75. package/dist/tools/loop/finalAnswerNudges.d.ts +68 -0
  76. package/dist/tools/loop/finalAnswerNudges.d.ts.map +1 -0
  77. package/dist/tools/loop/finalAnswerNudges.js +87 -0
  78. package/dist/tools/loop/finalAnswerNudges.js.map +1 -0
  79. package/dist/tools/loop/goalAnchor.d.ts +72 -0
  80. package/dist/tools/loop/goalAnchor.d.ts.map +1 -0
  81. package/dist/tools/loop/goalAnchor.js +76 -0
  82. package/dist/tools/loop/goalAnchor.js.map +1 -0
  83. package/dist/tools/loop/llmStream.d.ts +70 -0
  84. package/dist/tools/loop/llmStream.d.ts.map +1 -0
  85. package/dist/tools/loop/llmStream.js +181 -0
  86. package/dist/tools/loop/llmStream.js.map +1 -0
  87. package/dist/tools/loop/parallelExecute.d.ts +57 -0
  88. package/dist/tools/loop/parallelExecute.d.ts.map +1 -0
  89. package/dist/tools/loop/parallelExecute.js +54 -0
  90. package/dist/tools/loop/parallelExecute.js.map +1 -0
  91. package/dist/tools/loop/singleToolExecute.d.ts +71 -0
  92. package/dist/tools/loop/singleToolExecute.d.ts.map +1 -0
  93. package/dist/tools/loop/singleToolExecute.js +139 -0
  94. package/dist/tools/loop/singleToolExecute.js.map +1 -0
  95. package/dist/tools/loop/toolCallNormalize.d.ts +57 -0
  96. package/dist/tools/loop/toolCallNormalize.d.ts.map +1 -0
  97. package/dist/tools/loop/toolCallNormalize.js +99 -0
  98. package/dist/tools/loop/toolCallNormalize.js.map +1 -0
  99. package/dist/tools/loop/turnSetup.d.ts +43 -0
  100. package/dist/tools/loop/turnSetup.d.ts.map +1 -0
  101. package/dist/tools/loop/turnSetup.js +48 -0
  102. package/dist/tools/loop/turnSetup.js.map +1 -0
  103. package/dist/tools/ocr.d.ts +52 -0
  104. package/dist/tools/ocr.d.ts.map +1 -0
  105. package/dist/tools/ocr.js +238 -0
  106. package/dist/tools/ocr.js.map +1 -0
  107. package/dist/tools/post-edit-checks.d.ts +46 -0
  108. package/dist/tools/post-edit-checks.d.ts.map +1 -0
  109. package/dist/tools/post-edit-checks.js +236 -0
  110. package/dist/tools/post-edit-checks.js.map +1 -0
  111. package/dist/tools/skill-loader.d.ts +94 -0
  112. package/dist/tools/skill-loader.d.ts.map +1 -0
  113. package/dist/tools/skill-loader.js +422 -0
  114. package/dist/tools/skill-loader.js.map +1 -0
  115. package/dist/tools/skill-registry.d.ts +44 -0
  116. package/dist/tools/skill-registry.d.ts.map +1 -0
  117. package/dist/tools/skill-registry.js +118 -0
  118. package/dist/tools/skill-registry.js.map +1 -0
  119. package/dist/tools/skill-types.d.ts +38 -0
  120. package/dist/tools/skill-types.d.ts.map +1 -0
  121. package/dist/tools/skill-types.js +10 -0
  122. package/dist/tools/skill-types.js.map +1 -0
  123. package/dist/tools/skills/code-review-skill.d.ts +9 -0
  124. package/dist/tools/skills/code-review-skill.d.ts.map +1 -0
  125. package/dist/tools/skills/code-review-skill.js +66 -0
  126. package/dist/tools/skills/code-review-skill.js.map +1 -0
  127. package/dist/tools/skills/core-skill.d.ts +13 -0
  128. package/dist/tools/skills/core-skill.d.ts.map +1 -0
  129. package/dist/tools/skills/core-skill.js +23 -0
  130. package/dist/tools/skills/core-skill.js.map +1 -0
  131. package/dist/tools/skills/git-skill.d.ts +10 -0
  132. package/dist/tools/skills/git-skill.d.ts.map +1 -0
  133. package/dist/tools/skills/git-skill.js +30 -0
  134. package/dist/tools/skills/git-skill.js.map +1 -0
  135. package/dist/tools/skills/index.d.ts +17 -0
  136. package/dist/tools/skills/index.d.ts.map +1 -0
  137. package/dist/tools/skills/index.js +49 -0
  138. package/dist/tools/skills/index.js.map +1 -0
  139. package/dist/tools/skills/interaction-skill.d.ts +14 -0
  140. package/dist/tools/skills/interaction-skill.d.ts.map +1 -0
  141. package/dist/tools/skills/interaction-skill.js +24 -0
  142. package/dist/tools/skills/interaction-skill.js.map +1 -0
  143. package/dist/tools/skills/mail-search-skill.d.ts +25 -0
  144. package/dist/tools/skills/mail-search-skill.d.ts.map +1 -0
  145. package/dist/tools/skills/mail-search-skill.js +343 -0
  146. package/dist/tools/skills/mail-search-skill.js.map +1 -0
  147. package/dist/tools/skills/plan-skill.d.ts +10 -0
  148. package/dist/tools/skills/plan-skill.d.ts.map +1 -0
  149. package/dist/tools/skills/plan-skill.js +126 -0
  150. package/dist/tools/skills/plan-skill.js.map +1 -0
  151. package/dist/tools/skills/semantic-search-skill.d.ts +22 -0
  152. package/dist/tools/skills/semantic-search-skill.d.ts.map +1 -0
  153. package/dist/tools/skills/semantic-search-skill.js +244 -0
  154. package/dist/tools/skills/semantic-search-skill.js.map +1 -0
  155. package/dist/tools/skills/test-gen-skill.d.ts +9 -0
  156. package/dist/tools/skills/test-gen-skill.d.ts.map +1 -0
  157. package/dist/tools/skills/test-gen-skill.js +123 -0
  158. package/dist/tools/skills/test-gen-skill.js.map +1 -0
  159. package/dist/tools/tool-registry.d.ts +60 -0
  160. package/dist/tools/tool-registry.d.ts.map +1 -0
  161. package/dist/tools/tool-registry.js +200 -0
  162. package/dist/tools/tool-registry.js.map +1 -0
  163. package/dist/tools/tool-types.d.ts +281 -0
  164. package/dist/tools/tool-types.d.ts.map +1 -0
  165. package/dist/tools/tool-types.js +10 -0
  166. package/dist/tools/tool-types.js.map +1 -0
  167. package/dist/tools/tool-use-loop.d.ts +231 -0
  168. package/dist/tools/tool-use-loop.d.ts.map +1 -0
  169. package/dist/tools/tool-use-loop.js +2057 -0
  170. package/dist/tools/tool-use-loop.js.map +1 -0
  171. package/dist/tools/tool-use-parser.d.ts +78 -0
  172. package/dist/tools/tool-use-parser.d.ts.map +1 -0
  173. package/dist/tools/tool-use-parser.js +427 -0
  174. package/dist/tools/tool-use-parser.js.map +1 -0
  175. package/dist/tools/toolAvailabilityDetector.d.ts +48 -0
  176. package/dist/tools/toolAvailabilityDetector.d.ts.map +1 -0
  177. package/dist/tools/toolAvailabilityDetector.js +156 -0
  178. package/dist/tools/toolAvailabilityDetector.js.map +1 -0
  179. package/dist/tools/unified-patch.d.ts +87 -0
  180. package/dist/tools/unified-patch.d.ts.map +1 -0
  181. package/dist/tools/unified-patch.js +217 -0
  182. package/dist/tools/unified-patch.js.map +1 -0
  183. package/dist/types/agent.d.ts +69 -0
  184. package/dist/types/agent.d.ts.map +1 -0
  185. package/dist/types/agent.js +54 -0
  186. package/dist/types/agent.js.map +1 -0
  187. package/dist/types/tasks.d.ts +22 -0
  188. package/dist/types/tasks.d.ts.map +1 -0
  189. package/dist/types/tasks.js +3 -0
  190. package/dist/types/tasks.js.map +1 -0
  191. package/dist/utils/event-emitter.d.ts +13 -0
  192. package/dist/utils/event-emitter.d.ts.map +1 -0
  193. package/dist/utils/event-emitter.js +54 -0
  194. package/dist/utils/event-emitter.js.map +1 -0
  195. 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"}