background-agents 0.1.1 → 0.1.2

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 (210) hide show
  1. package/README.md +173 -241
  2. package/dist/agents/claude/index.d.ts +11 -0
  3. package/dist/agents/claude/index.d.ts.map +1 -0
  4. package/dist/agents/claude/index.js +78 -0
  5. package/dist/agents/claude/index.js.map +1 -0
  6. package/dist/agents/claude/parser.d.ts +16 -0
  7. package/dist/agents/claude/parser.d.ts.map +1 -0
  8. package/dist/agents/claude/parser.js +87 -0
  9. package/dist/agents/claude/parser.js.map +1 -0
  10. package/dist/agents/claude/tools.d.ts +7 -0
  11. package/dist/agents/claude/tools.d.ts.map +1 -0
  12. package/dist/agents/claude/tools.js +15 -0
  13. package/dist/agents/claude/tools.js.map +1 -0
  14. package/dist/agents/codex/index.d.ts +11 -0
  15. package/dist/agents/codex/index.d.ts.map +1 -0
  16. package/dist/agents/codex/index.js +60 -0
  17. package/dist/agents/codex/index.js.map +1 -0
  18. package/dist/agents/codex/parser.d.ts +12 -0
  19. package/dist/agents/codex/parser.d.ts.map +1 -0
  20. package/dist/agents/codex/parser.js +108 -0
  21. package/dist/agents/codex/parser.js.map +1 -0
  22. package/dist/agents/codex/tools.d.ts +11 -0
  23. package/dist/agents/codex/tools.d.ts.map +1 -0
  24. package/dist/agents/codex/tools.js +40 -0
  25. package/dist/agents/codex/tools.js.map +1 -0
  26. package/dist/agents/eliza/bundle-content.d.ts +6 -0
  27. package/dist/agents/eliza/bundle-content.d.ts.map +1 -0
  28. package/dist/agents/eliza/bundle-content.js +7 -0
  29. package/dist/agents/eliza/bundle-content.js.map +1 -0
  30. package/dist/agents/eliza/cli.bundle.js +579 -0
  31. package/dist/agents/eliza/cli.d.ts +10 -0
  32. package/dist/agents/eliza/cli.d.ts.map +1 -0
  33. package/dist/agents/eliza/cli.js +342 -0
  34. package/dist/agents/eliza/cli.js.map +1 -0
  35. package/dist/agents/eliza/index.d.ts +22 -0
  36. package/dist/agents/eliza/index.d.ts.map +1 -0
  37. package/dist/agents/eliza/index.js +54 -0
  38. package/dist/agents/eliza/index.js.map +1 -0
  39. package/dist/agents/eliza/parser.d.ts +16 -0
  40. package/dist/agents/eliza/parser.d.ts.map +1 -0
  41. package/dist/agents/eliza/parser.js +67 -0
  42. package/dist/agents/eliza/parser.js.map +1 -0
  43. package/dist/agents/eliza/patterns.d.ts +41 -0
  44. package/dist/agents/eliza/patterns.d.ts.map +1 -0
  45. package/dist/agents/eliza/patterns.js +259 -0
  46. package/dist/agents/eliza/patterns.js.map +1 -0
  47. package/dist/agents/eliza/tools.d.ts +7 -0
  48. package/dist/agents/eliza/tools.d.ts.map +1 -0
  49. package/dist/agents/eliza/tools.js +14 -0
  50. package/dist/agents/eliza/tools.js.map +1 -0
  51. package/dist/agents/gemini/index.d.ts +11 -0
  52. package/dist/agents/gemini/index.d.ts.map +1 -0
  53. package/dist/agents/gemini/index.js +46 -0
  54. package/dist/agents/gemini/index.js.map +1 -0
  55. package/dist/agents/gemini/parser.d.ts +31 -0
  56. package/dist/agents/gemini/parser.d.ts.map +1 -0
  57. package/dist/agents/gemini/parser.js +106 -0
  58. package/dist/agents/gemini/parser.js.map +1 -0
  59. package/dist/agents/gemini/tools.d.ts +7 -0
  60. package/dist/agents/gemini/tools.d.ts.map +1 -0
  61. package/dist/agents/gemini/tools.js +23 -0
  62. package/dist/agents/gemini/tools.js.map +1 -0
  63. package/dist/agents/goose/index.d.ts +11 -0
  64. package/dist/agents/goose/index.d.ts.map +1 -0
  65. package/dist/agents/goose/index.js +73 -0
  66. package/dist/agents/goose/index.js.map +1 -0
  67. package/dist/agents/goose/parser.d.ts +24 -0
  68. package/dist/agents/goose/parser.d.ts.map +1 -0
  69. package/dist/agents/goose/parser.js +86 -0
  70. package/dist/agents/goose/parser.js.map +1 -0
  71. package/dist/agents/goose/tools.d.ts +10 -0
  72. package/dist/agents/goose/tools.d.ts.map +1 -0
  73. package/dist/agents/goose/tools.js +30 -0
  74. package/dist/agents/goose/tools.js.map +1 -0
  75. package/dist/agents/index.d.ts +27 -0
  76. package/dist/agents/index.d.ts.map +1 -0
  77. package/dist/agents/index.js +46 -0
  78. package/dist/agents/index.js.map +1 -0
  79. package/dist/agents/opencode/index.d.ts +12 -0
  80. package/dist/agents/opencode/index.d.ts.map +1 -0
  81. package/dist/agents/opencode/index.js +53 -0
  82. package/dist/agents/opencode/index.js.map +1 -0
  83. package/dist/agents/opencode/parser.d.ts +15 -0
  84. package/dist/agents/opencode/parser.d.ts.map +1 -0
  85. package/dist/agents/opencode/parser.js +71 -0
  86. package/dist/agents/opencode/parser.js.map +1 -0
  87. package/dist/agents/opencode/tools.d.ts +7 -0
  88. package/dist/agents/opencode/tools.d.ts.map +1 -0
  89. package/dist/agents/opencode/tools.js +10 -0
  90. package/dist/agents/opencode/tools.js.map +1 -0
  91. package/dist/agents/openhands/index.d.ts +17 -0
  92. package/dist/agents/openhands/index.d.ts.map +1 -0
  93. package/dist/agents/openhands/index.js +67 -0
  94. package/dist/agents/openhands/index.js.map +1 -0
  95. package/dist/agents/openhands/parser.d.ts +16 -0
  96. package/dist/agents/openhands/parser.d.ts.map +1 -0
  97. package/dist/agents/openhands/parser.js +93 -0
  98. package/dist/agents/openhands/parser.js.map +1 -0
  99. package/dist/agents/openhands/tools.d.ts +7 -0
  100. package/dist/agents/openhands/tools.d.ts.map +1 -0
  101. package/dist/agents/openhands/tools.js +24 -0
  102. package/dist/agents/openhands/tools.js.map +1 -0
  103. package/dist/agents/pi/index.d.ts +14 -0
  104. package/dist/agents/pi/index.d.ts.map +1 -0
  105. package/dist/agents/pi/index.js +54 -0
  106. package/dist/agents/pi/index.js.map +1 -0
  107. package/dist/agents/pi/parser.d.ts +21 -0
  108. package/dist/agents/pi/parser.d.ts.map +1 -0
  109. package/dist/agents/pi/parser.js +91 -0
  110. package/dist/agents/pi/parser.js.map +1 -0
  111. package/dist/agents/pi/tools.d.ts +8 -0
  112. package/dist/agents/pi/tools.d.ts.map +1 -0
  113. package/dist/agents/pi/tools.js +16 -0
  114. package/dist/agents/pi/tools.js.map +1 -0
  115. package/dist/agents/picocode/index.d.ts +18 -0
  116. package/dist/agents/picocode/index.d.ts.map +1 -0
  117. package/dist/agents/picocode/index.js +68 -0
  118. package/dist/agents/picocode/index.js.map +1 -0
  119. package/dist/agents/picocode/parser.d.ts +19 -0
  120. package/dist/agents/picocode/parser.d.ts.map +1 -0
  121. package/dist/agents/picocode/parser.js +104 -0
  122. package/dist/agents/picocode/parser.js.map +1 -0
  123. package/dist/agents/picocode/tools.d.ts +9 -0
  124. package/dist/agents/picocode/tools.d.ts.map +1 -0
  125. package/dist/agents/picocode/tools.js +27 -0
  126. package/dist/agents/picocode/tools.js.map +1 -0
  127. package/dist/background/index.d.ts +6 -0
  128. package/dist/background/index.d.ts.map +1 -0
  129. package/dist/background/index.js +5 -0
  130. package/dist/background/index.js.map +1 -0
  131. package/dist/background/session.d.ts +47 -0
  132. package/dist/background/session.d.ts.map +1 -0
  133. package/dist/background/session.js +481 -0
  134. package/dist/background/session.js.map +1 -0
  135. package/dist/background/types.d.ts +55 -0
  136. package/dist/background/types.d.ts.map +1 -0
  137. package/dist/background/types.js +5 -0
  138. package/dist/background/types.js.map +1 -0
  139. package/dist/core/agent.d.ts +95 -0
  140. package/dist/core/agent.d.ts.map +1 -0
  141. package/dist/core/agent.js +8 -0
  142. package/dist/core/agent.js.map +1 -0
  143. package/dist/core/index.d.ts +7 -0
  144. package/dist/core/index.d.ts.map +1 -0
  145. package/dist/core/index.js +6 -0
  146. package/dist/core/index.js.map +1 -0
  147. package/dist/core/registry.d.ts +48 -0
  148. package/dist/core/registry.d.ts.map +1 -0
  149. package/dist/core/registry.js +68 -0
  150. package/dist/core/registry.js.map +1 -0
  151. package/dist/core/tools.d.ts +31 -0
  152. package/dist/core/tools.d.ts.map +1 -0
  153. package/dist/core/tools.js +82 -0
  154. package/dist/core/tools.js.map +1 -0
  155. package/dist/debug.js +1 -1
  156. package/dist/debug.js.map +1 -1
  157. package/dist/factory.d.ts +1 -4
  158. package/dist/factory.d.ts.map +1 -1
  159. package/dist/factory.js +1 -4
  160. package/dist/factory.js.map +1 -1
  161. package/dist/index.d.ts +29 -11
  162. package/dist/index.d.ts.map +1 -1
  163. package/dist/index.js +41 -14
  164. package/dist/index.js.map +1 -1
  165. package/dist/providers/base.d.ts +45 -18
  166. package/dist/providers/base.d.ts.map +1 -1
  167. package/dist/providers/base.js +228 -265
  168. package/dist/providers/base.js.map +1 -1
  169. package/dist/providers/gemini.d.ts.map +1 -1
  170. package/dist/providers/gemini.js +18 -8
  171. package/dist/providers/gemini.js.map +1 -1
  172. package/dist/sandbox/daytona.d.ts +5 -1
  173. package/dist/sandbox/daytona.d.ts.map +1 -1
  174. package/dist/sandbox/daytona.js +157 -214
  175. package/dist/sandbox/daytona.js.map +1 -1
  176. package/dist/sandbox/index.d.ts +3 -3
  177. package/dist/sandbox/index.d.ts.map +1 -1
  178. package/dist/sandbox/index.js +2 -2
  179. package/dist/sandbox/index.js.map +1 -1
  180. package/dist/session.d.ts +62 -51
  181. package/dist/session.d.ts.map +1 -1
  182. package/dist/session.js +94 -90
  183. package/dist/session.js.map +1 -1
  184. package/dist/types/index.d.ts +2 -2
  185. package/dist/types/index.d.ts.map +1 -1
  186. package/dist/types/index.js +2 -2
  187. package/dist/types/index.js.map +1 -1
  188. package/dist/types/provider.d.ts +37 -94
  189. package/dist/types/provider.d.ts.map +1 -1
  190. package/dist/types/provider.js +3 -0
  191. package/dist/types/provider.js.map +1 -1
  192. package/dist/utils/index.d.ts +2 -3
  193. package/dist/utils/index.d.ts.map +1 -1
  194. package/dist/utils/index.js +2 -3
  195. package/dist/utils/index.js.map +1 -1
  196. package/dist/utils/install.d.ts +12 -2
  197. package/dist/utils/install.d.ts.map +1 -1
  198. package/dist/utils/install.js +40 -4
  199. package/dist/utils/install.js.map +1 -1
  200. package/package.json +24 -13
  201. package/src/index.ts +156 -0
  202. package/dist/sandbox/daytona-ssh.d.ts +0 -9
  203. package/dist/sandbox/daytona-ssh.d.ts.map +0 -1
  204. package/dist/sandbox/daytona-ssh.js +0 -113
  205. package/dist/sandbox/daytona-ssh.js.map +0 -1
  206. package/dist/utils/session.d.ts +0 -17
  207. package/dist/utils/session.d.ts.map +0 -1
  208. package/dist/utils/session.js +0 -59
  209. package/dist/utils/session.js.map +0 -1
  210. package/next.config.codeagentsdk.cjs +0 -22
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/claude/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE9C,mCAAmC;AACnC,MAAM,sBAAsB,GAAG,uBAAuB,CAAA;AACtD,8BAA8B;AAC9B,MAAM,uBAAuB,GAAG,yCAAyC,CAAA;AACzE,4DAA4D;AAC5D,MAAM,2BAA2B,GAAG,yBAAyB,CAAA;AAE7D;;;;;;;;;GASG;AACH,KAAK,UAAU,WAAW,CACxB,OAAyB,EACzB,GAA2B;IAE3B,MAAM,eAAe,GAAG,GAAG,CAAC,2BAA2B,CAAC,CAAA;IACxD,IAAI,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,cAAc;QAAE,OAAM;IAEvD,yCAAyC;IACzC,MAAM,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAE9D,sEAAsE;IACtE,MAAM,OAAO,CAAC,cAAc,CAC1B,aAAa,sBAAsB,cAAc,eAAe,QAAQ,uBAAuB,mBAAmB,uBAAuB,GAAG,EAC5I,EAAE,CACH,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAoB;IAC1C,IAAI,EAAE,QAAQ;IAEd,YAAY,EAAE,oBAAoB;IAElC,YAAY,EAAE;QACZ,oBAAoB,EAAE,IAAI;QAC1B,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,WAAW;KACnB;IAED,YAAY,CAAC,OAAmB;QAC9B,MAAM,IAAI,GAAa,EAAE,CAAA;QAEzB,uCAAuC;QACvC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEf,iEAAiE;QACjE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,EAAE,WAAW,CAAC,CAAA;QAExD,4DAA4D;QAC5D,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;QAE3C,wDAAwD;QACxD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;QACpD,CAAC;QAED,gFAAgF;QAChF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QACrC,CAAC;QAED,6BAA6B;QAC7B,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAC1C,CAAC;QAED,6BAA6B;QAC7B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC3B,CAAC;QAED,OAAO;YACL,GAAG,EAAE,QAAQ;YACb,IAAI;YACJ,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,QAAsB;QACxC,OAAO,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;IACjD,CAAC;CACF,CAAA"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Claude CLI output parser
3
+ *
4
+ * Pure function for parsing Claude CLI JSON output.
5
+ * No state, no side effects - easily testable.
6
+ */
7
+ import type { Event } from "../../types/events";
8
+ /**
9
+ * Parse a line of Claude CLI output into event(s).
10
+ *
11
+ * @param line - Raw line from CLI output
12
+ * @param toolMappings - Tool name mappings for this agent
13
+ * @returns Event, array of events, or null if line should be ignored
14
+ */
15
+ export declare function parseClaudeLine(line: string, toolMappings: Record<string, string>): Event | Event[] | null;
16
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/agents/claude/parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAgF/C;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,KAAK,GAAG,KAAK,EAAE,GAAG,IAAI,CAgExB"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Claude CLI output parser
3
+ *
4
+ * Pure function for parsing Claude CLI JSON output.
5
+ * No state, no side effects - easily testable.
6
+ */
7
+ import { createToolStartEvent } from "../../core/tools";
8
+ import { safeJsonParse } from "../../utils/json";
9
+ /**
10
+ * Extract output from a tool result object
11
+ */
12
+ function toolResultOutput(obj) {
13
+ let out = obj.result;
14
+ if (out === undefined && obj.content !== undefined) {
15
+ if (typeof obj.content === "string")
16
+ out = obj.content;
17
+ else if (Array.isArray(obj.content) && obj.content[0]?.text)
18
+ out = obj.content[0].text;
19
+ }
20
+ return out;
21
+ }
22
+ /**
23
+ * Parse a line of Claude CLI output into event(s).
24
+ *
25
+ * @param line - Raw line from CLI output
26
+ * @param toolMappings - Tool name mappings for this agent
27
+ * @returns Event, array of events, or null if line should be ignored
28
+ */
29
+ export function parseClaudeLine(line, toolMappings) {
30
+ const json = safeJsonParse(line);
31
+ if (!json) {
32
+ return null;
33
+ }
34
+ // System init event contains session ID
35
+ if (json.type === "system" && "subtype" in json && json.subtype === "init") {
36
+ return { type: "session", id: json.session_id };
37
+ }
38
+ // Assistant message contains the response content
39
+ if (json.type === "assistant" && "message" in json) {
40
+ const content = json.message.content;
41
+ if (content && content.length > 0) {
42
+ // Find text content and emit as token
43
+ for (const block of content) {
44
+ if (block.type === "text" && block.text) {
45
+ return { type: "token", text: block.text };
46
+ }
47
+ if (block.type === "tool_use" && block.name) {
48
+ return createToolStartEvent(block.name, block.input, toolMappings);
49
+ }
50
+ }
51
+ }
52
+ return null;
53
+ }
54
+ // Tool use event
55
+ if (json.type === "tool_use" && "name" in json) {
56
+ return createToolStartEvent(json.name, json.input, toolMappings);
57
+ }
58
+ // Tool result (standalone)
59
+ if (json.type === "tool_result") {
60
+ return { type: "tool_end", output: toolResultOutput(json) };
61
+ }
62
+ // Tool result inside user message
63
+ if (json.type === "user" && json.message?.content) {
64
+ for (const block of json.message.content) {
65
+ if (block.type === "tool_result") {
66
+ let out;
67
+ if (typeof block.content === "string")
68
+ out = block.content;
69
+ else if (Array.isArray(block.content) && block.content[0]?.text)
70
+ out = block.content[0].text;
71
+ return { type: "tool_end", output: out };
72
+ }
73
+ }
74
+ }
75
+ // Result event marks end of interaction (success or CLI error)
76
+ if (json.type === "result") {
77
+ const err = json.subtype === "error_during_execution" ||
78
+ json.subtype === "error"
79
+ ? (json.error ??
80
+ json.result ??
81
+ "Unknown error")
82
+ : undefined;
83
+ return { type: "end", ...(err ? { error: err } : {}) };
84
+ }
85
+ return null;
86
+ }
87
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/agents/claude/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Claude tool name mappings
3
+ *
4
+ * Maps Claude CLI tool names to canonical tool names.
5
+ */
6
+ export declare const CLAUDE_TOOL_MAPPINGS: Record<string, string>;
7
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/agents/claude/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQvD,CAAA"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Claude tool name mappings
3
+ *
4
+ * Maps Claude CLI tool names to canonical tool names.
5
+ */
6
+ export const CLAUDE_TOOL_MAPPINGS = {
7
+ Write: "write",
8
+ Read: "read",
9
+ Edit: "edit",
10
+ Glob: "glob",
11
+ Grep: "grep",
12
+ Bash: "shell",
13
+ WebSearch: "web_search",
14
+ };
15
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/agents/claude/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,YAAY;CACxB,CAAA"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * OpenAI Codex CLI Agent Definition
3
+ */
4
+ import type { AgentDefinition } from "../../core/agent";
5
+ /**
6
+ * OpenAI Codex CLI agent definition.
7
+ *
8
+ * Interacts with the Codex CLI tool which outputs JSON lines.
9
+ */
10
+ export declare const codexAgent: AgentDefinition;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agents/codex/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,kBAAkB,CAAA;AAsBzB;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,eAmDxB,CAAA"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * OpenAI Codex CLI Agent Definition
3
+ */
4
+ import { parseCodexLine } from "./parser";
5
+ import { CODEX_TOOL_MAPPINGS } from "./tools";
6
+ /**
7
+ * Codex agent-specific setup: login with API key
8
+ */
9
+ async function codexSetup(sandbox, env) {
10
+ if (!env.OPENAI_API_KEY || !sandbox.executeCommand)
11
+ return;
12
+ const safeKey = env.OPENAI_API_KEY.replace(/'/g, "'\\''");
13
+ await sandbox.executeCommand(`echo '${safeKey}' | codex login --with-api-key 2>&1`, 30);
14
+ }
15
+ /**
16
+ * OpenAI Codex CLI agent definition.
17
+ *
18
+ * Interacts with the Codex CLI tool which outputs JSON lines.
19
+ */
20
+ export const codexAgent = {
21
+ name: "codex",
22
+ toolMappings: CODEX_TOOL_MAPPINGS,
23
+ capabilities: {
24
+ supportsSystemPrompt: false,
25
+ supportsResume: true,
26
+ setup: codexSetup,
27
+ },
28
+ buildCommand(options) {
29
+ const args = [];
30
+ // Use exec subcommand for non-interactive mode with JSON output
31
+ args.push("exec");
32
+ // JSON output for streaming events
33
+ args.push("--json");
34
+ // Skip git repo check for sandbox environments
35
+ args.push("--skip-git-repo-check");
36
+ // Skip permission prompts when already running in a sandbox
37
+ args.push("--yolo");
38
+ // Add model if specified (e.g., "gpt-4o", "o1", "o3")
39
+ if (options.model) {
40
+ args.push("--model", options.model);
41
+ }
42
+ // Resume session if provided
43
+ if (options.sessionId) {
44
+ args.push("resume", options.sessionId);
45
+ }
46
+ // Add prompt as trailing argument
47
+ if (options.prompt) {
48
+ args.push(options.prompt);
49
+ }
50
+ return {
51
+ cmd: "codex",
52
+ args,
53
+ env: options.env,
54
+ };
55
+ },
56
+ parse(line, _context) {
57
+ return parseCodexLine(line, this.toolMappings);
58
+ },
59
+ };
60
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/codex/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAE7C;;GAEG;AACH,KAAK,UAAU,UAAU,CACvB,OAAyB,EACzB,GAA2B;IAE3B,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,cAAc;QAAE,OAAM;IAE1D,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACzD,MAAM,OAAO,CAAC,cAAc,CAC1B,SAAS,OAAO,qCAAqC,EACrD,EAAE,CACH,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAoB;IACzC,IAAI,EAAE,OAAO;IAEb,YAAY,EAAE,mBAAmB;IAEjC,YAAY,EAAE;QACZ,oBAAoB,EAAE,KAAK;QAC3B,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,UAAU;KAClB;IAED,YAAY,CAAC,OAAmB;QAC9B,MAAM,IAAI,GAAa,EAAE,CAAA;QAEzB,gEAAgE;QAChE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEjB,mCAAmC;QACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEnB,+CAA+C;QAC/C,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QAElC,4DAA4D;QAC5D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEnB,sDAAsD;QACtD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QACrC,CAAC;QAED,6BAA6B;QAC7B,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QACxC,CAAC;QAED,kCAAkC;QAClC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC3B,CAAC;QAED,OAAO;YACL,GAAG,EAAE,OAAO;YACZ,IAAI;YACJ,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,QAAsB;QACxC,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;IAChD,CAAC;CACF,CAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Codex CLI output parser
3
+ *
4
+ * Pure function for parsing Codex CLI JSON output.
5
+ * Supports both legacy item.tool.* and current item.started/item.completed formats.
6
+ */
7
+ import type { Event } from "../../types/events";
8
+ /**
9
+ * Parse a line of Codex CLI output into event(s).
10
+ */
11
+ export declare function parseCodexLine(line: string, toolMappings: Record<string, string>): Event | Event[] | null;
12
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/agents/codex/parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AA6F/C;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,KAAK,GAAG,KAAK,EAAE,GAAG,IAAI,CA4GxB"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Codex CLI output parser
3
+ *
4
+ * Pure function for parsing Codex CLI JSON output.
5
+ * Supports both legacy item.tool.* and current item.started/item.completed formats.
6
+ */
7
+ import { createToolStartEvent } from "../../core/tools";
8
+ import { safeJsonParse } from "../../utils/json";
9
+ import { normalizeCodexToolName } from "./tools";
10
+ /**
11
+ * Parse a line of Codex CLI output into event(s).
12
+ */
13
+ export function parseCodexLine(line, toolMappings) {
14
+ const json = safeJsonParse(line);
15
+ if (!json) {
16
+ return null;
17
+ }
18
+ // Thread/session start
19
+ if (json.type === "thread.started") {
20
+ return { type: "session", id: json.thread_id };
21
+ }
22
+ // Message text delta
23
+ if (json.type === "item.message.delta") {
24
+ return { type: "token", text: json.text };
25
+ }
26
+ // Item completed (full message)
27
+ if (json.type === "item.completed" &&
28
+ json.item?.type === "agent_message" &&
29
+ json.item?.text) {
30
+ return { type: "token", text: json.item.text };
31
+ }
32
+ // Item started - tool/action beginning (current Codex schema)
33
+ if (json.type === "item.started" && json.item) {
34
+ const it = json.item;
35
+ const name = normalizeCodexToolName(it.type, it.tool);
36
+ let input;
37
+ if (it.type === "command_execution" && it.command != null) {
38
+ input = { command: it.command };
39
+ }
40
+ else if (it.type === "file_change") {
41
+ input = {};
42
+ }
43
+ else if (it.type === "mcp_tool_call" && it.arguments != null) {
44
+ input = it.arguments;
45
+ }
46
+ else {
47
+ input = undefined;
48
+ }
49
+ return createToolStartEvent(name, input, toolMappings);
50
+ }
51
+ // Item completed - tool/action result (current Codex schema)
52
+ if (json.type === "item.completed" && json.item) {
53
+ const it = json.item;
54
+ if (it.type === "command_execution" && it.aggregated_output !== undefined) {
55
+ return { type: "tool_end", output: it.aggregated_output };
56
+ }
57
+ if (it.type === "mcp_tool_call") {
58
+ let output;
59
+ if (it.result?.content?.length && it.result.content[0]?.text) {
60
+ output = it.result.content[0].text;
61
+ }
62
+ else if (it.result) {
63
+ output = JSON.stringify(it.result);
64
+ }
65
+ return { type: "tool_end", output };
66
+ }
67
+ // file_change: emit tool_start then tool_end (Codex only sends item.completed)
68
+ if (it.type === "file_change" && it.changes && it.changes.length > 0) {
69
+ const c = it.changes[0];
70
+ const input = {
71
+ file_path: c.path,
72
+ kind: c.kind,
73
+ content: null,
74
+ };
75
+ return [
76
+ createToolStartEvent("write", input, toolMappings),
77
+ { type: "tool_end", output: JSON.stringify(it.changes) },
78
+ ];
79
+ }
80
+ return null;
81
+ }
82
+ // Tool start (legacy)
83
+ if (json.type === "item.tool.start") {
84
+ return createToolStartEvent(normalizeCodexToolName("mcp_tool_call", json.name), undefined, toolMappings);
85
+ }
86
+ // Tool input delta (legacy)
87
+ if (json.type === "item.tool.input.delta") {
88
+ return { type: "tool_delta", text: json.text };
89
+ }
90
+ // Tool end (legacy)
91
+ if (json.type === "item.tool.end") {
92
+ return { type: "tool_end" };
93
+ }
94
+ // Turn complete
95
+ if (json.type === "turn.completed") {
96
+ return { type: "end" };
97
+ }
98
+ // Turn failed - emit end event with error
99
+ if (json.type === "turn.failed") {
100
+ return { type: "end", error: json.error?.message };
101
+ }
102
+ // Error event - emit as end with error
103
+ if (json.type === "error") {
104
+ return { type: "end", error: json.message };
105
+ }
106
+ return null;
107
+ }
108
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/agents/codex/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Codex tool name mappings
3
+ *
4
+ * Maps Codex item types and MCP tools to canonical tool names.
5
+ */
6
+ export declare const CODEX_TOOL_MAPPINGS: Record<string, string>;
7
+ /**
8
+ * Normalize Codex tool name to canonical form.
9
+ */
10
+ export declare function normalizeCodexToolName(itemType: string, toolName?: string): string;
11
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/agents/codex/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAkBtD,CAAA;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAYR"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Codex tool name mappings
3
+ *
4
+ * Maps Codex item types and MCP tools to canonical tool names.
5
+ */
6
+ export const CODEX_TOOL_MAPPINGS = {
7
+ command_execution: "shell",
8
+ file_change: "write",
9
+ // MCP tool names
10
+ read: "read",
11
+ read_file: "read",
12
+ write: "write",
13
+ write_file: "write",
14
+ edit: "edit",
15
+ apply_patch: "edit",
16
+ patch: "edit",
17
+ glob: "glob",
18
+ glob_file_search: "glob",
19
+ grep: "grep",
20
+ grep_search: "grep",
21
+ bash: "shell",
22
+ shell: "shell",
23
+ run_command: "shell",
24
+ };
25
+ /**
26
+ * Normalize Codex tool name to canonical form.
27
+ */
28
+ export function normalizeCodexToolName(itemType, toolName) {
29
+ // Check item type first
30
+ const fromType = CODEX_TOOL_MAPPINGS[itemType];
31
+ if (fromType)
32
+ return fromType;
33
+ // For MCP tool calls, check the tool name
34
+ if (itemType === "mcp_tool_call" && toolName) {
35
+ const lower = toolName.toLowerCase();
36
+ return CODEX_TOOL_MAPPINGS[lower] ?? lower;
37
+ }
38
+ return itemType;
39
+ }
40
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/agents/codex/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACzD,iBAAiB,EAAE,OAAO;IAC1B,WAAW,EAAE,OAAO;IACpB,iBAAiB;IACjB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,MAAM;IACjB,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,OAAO;IACnB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,MAAM;IACZ,gBAAgB,EAAE,MAAM;IACxB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,MAAM;IACnB,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,OAAO;CACrB,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAgB,EAChB,QAAiB;IAEjB,wBAAwB;IACxB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC9C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAE7B,0CAA0C;IAC1C,IAAI,QAAQ,KAAK,eAAe,IAAI,QAAQ,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAA;QACpC,OAAO,mBAAmB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAA;IAC5C,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * ELIZA CLI bundle content - auto-generated, do not edit.
3
+ * Generated by scripts/embed-eliza-bundle.ts
4
+ */
5
+ export declare const ELIZA_BUNDLE_B64 = "IyEvdXNyL2Jpbi9lbnYgbm9kZQoKLy8gc3JjL2FnZW50cy9lbGl6YS9jbGkudHMKaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gIm5vZGU6Y3J5cHRvIjsKaW1wb3J0ICogYXMgZnMgZnJvbSAibm9kZTpmcyI7CmltcG9ydCAqIGFzIHBhdGggZnJvbSAibm9kZTpwYXRoIjsKCi8vIHNyYy9hZ2VudHMvZWxpemEvcGF0dGVybnMudHMKdmFyIEVMSVpBX1BBVFRFUk5TID0gWwogIC8vIEdyZWV0aW5nIHBhdHRlcm5zCiAgewogICAgcGF0dGVybjogL14oaGVsbG98aGl8aGV5fGdyZWV0aW5nc3xnb29kIG1vcm5pbmd8Z29vZCBhZnRlcm5vb258Z29vZCBldmVuaW5nKVtccyEuLD9dKiQvaSwKICAgIHJlc3BvbnNlczogWwogICAgICAiSGVsbG8uIEhvdyBhcmUgeW91IGZlZWxpbmcgdG9kYXk/IiwKICAgICAgIkhpIHRoZXJlLiBXaGF0IGJyaW5ncyB5b3UgdG8gdGhlcmFweT8iLAogICAgICAiR3JlZXRpbmdzLiBUZWxsIG1lIHdoYXQncyBvbiB5b3VyIG1pbmQuIiwKICAgICAgIkhlbGxvLiBQbGVhc2UgdGVsbCBtZSB3aGF0J3MgdHJvdWJsaW5nIHlvdS4iCiAgICBdCiAgfSwKICAvLyAiSSBhbSIgcGF0dGVybnMKICB7CiAgICBwYXR0ZXJuOiAvaSBhbSAoLiopL2ksCiAgICByZXNwb25zZXM6IFsKICAgICAgIldoeSBkbyB5b3Ugc2F5IHlvdSBhcmUgezB9PyIsCiAgICAgICJIb3cgbG9uZyBoYXZlIHlvdSBiZWVuIHswfT8iLAogICAgICAiRG8geW91IGJlbGlldmUgaXQgaXMgbm9ybWFsIHRvIGJlIHswfT8iLAogICAgICAiRG8geW91IGVuam95IGJlaW5nIHswfT8iCiAgICBdCiAgfSwKICAvLyAiSSBmZWVsIiBwYXR0ZXJucyAtIHRyaWdnZXJzIGZpbGUgd3JpdGluZwogIHsKICAgIHBhdHRlcm46IC9pIGZlZWwgKC4qKS9pLAogICAgcmVzcG9uc2VzOiBbCiAgICAgICJUZWxsIG1lIG1vcmUgYWJvdXQgZmVlbGluZyB7MH0uIiwKICAgICAgIkRvIHlvdSBvZnRlbiBmZWVsIHswfT8iLAogICAgICAiV2hhdCBtYWtlcyB5b3UgZmVlbCB7MH0/IiwKICAgICAgIldoZW4gZGlkIHlvdSBmaXJzdCBub3RpY2UgZmVlbGluZyB7MH0/IgogICAgXSwKICAgIGZpbGVBY3Rpb246IHsKICAgICAgdHlwZTogIndyaXRlIiwKICAgICAgZmlsZU5hbWVUZW1wbGF0ZTogImVsaXphX2ZlZWxpbmdfam91cm5hbC50eHQiLAogICAgICBjb250ZW50VGVtcGxhdGU6ICJTZXNzaW9uIE5vdGVcbj09PT09PT09PT09PVxuUGF0aWVudCByZXBvcnRlZCBmZWVsaW5nOiB7MH1cbkRhdGU6IHtkYXRlfVxuXG5UaGlzIGZlZWxpbmcgZGVzZXJ2ZXMgZnVydGhlciBleHBsb3JhdGlvbiBpbiBmdXR1cmUgc2Vzc2lvbnMuXG5cbiIKICAgIH0KICB9LAogIC8vIEZhbWlseSBwYXR0ZXJucwogIHsKICAgIHBhdHRlcm46IC9teSAobW90aGVyfGZhdGhlcnxtb218ZGFkfGZhbWlseXxwYXJlbnRzfHNpc3Rlcnxicm90aGVyKSAoLiopL2ksCiAgICByZXNwb25zZXM6IFsKICAgICAgIlRlbGwgbWUgbW9yZSBhYm91dCB5b3VyIHswfS4iLAogICAgICAiSG93IGRvZXMgdGhhdCBtYWtlIHlvdSBmZWVsIGFib3V0IHlvdXIgezB9PyIsCiAgICAgICJXaGF0IGVsc2UgY29tZXMgdG8gbWluZCB3aGVuIHlvdSB0aGluayBvZiB5b3VyIHswfT8iLAogICAgICAiSG93IGlzIHlvdXIgcmVsYXRpb25zaGlwIHdpdGggeW91ciB7MH0/IgogICAgXQogIH0sCiAgLy8gV2FudC9uZWVkIHBhdHRlcm5zCiAgewogICAgcGF0dGVybjogL2kgKHdhbnR8bmVlZCkgKC4qKS9pLAogICAgcmVzcG9uc2VzOiBbCiAgICAgICJXaHkgZG8geW91IHswfSB7MX0/IiwKICAgICAgIldoYXQgd291bGQgaXQgbWVhbiBpZiB5b3UgZ290IHsxfT8iLAogICAgICAiU3VwcG9zZSB5b3UgZ290IHsxfSAtIHdoYXQgdGhlbj8iLAogICAgICAiV2hhdCBpcyBzdG9wcGluZyB5b3UgZnJvbSBnZXR0aW5nIHsxfT8iCiAgICBdCiAgfSwKICAvLyBDYW4ndCBwYXR0ZXJucwogIHsKICAgIHBhdHRlcm46IC9pIGNhbic/dCAoLiopL2ksCiAgICByZXNwb25zZXM6IFsKICAgICAgIldoYXQgbWFrZXMgeW91IHRoaW5rIHlvdSBjYW4ndCB7MH0/IiwKICAgICAgIkhhdmUgeW91IHRyaWVkIHRvIHswfT8iLAogICAgICAiUGVyaGFwcyB5b3UgY291bGQgezB9IGlmIHlvdSB0cmllZC4iLAogICAgICAiV2hhdCB3b3VsZCBoYXBwZW4gaWYgeW91IGNvdWxkIHswfT8iCiAgICBdCiAgfSwKICAvLyBCZWNhdXNlIHBhdHRlcm5zCiAgewogICAgcGF0dGVybjogL2JlY2F1c2UgKC4qKS9pLAogICAgcmVzcG9uc2VzOiBbCiAgICAgICJJcyB0aGF0IHRoZSByZWFsIHJlYXNvbj8iLAogICAgICAiV2hhdCBvdGhlciByZWFzb25zIG1pZ2h0IHRoZXJlIGJlPyIsCiAgICAgICJEb2VzIHRoYXQgcmVhc29uIHNlZW0gdG8gZXhwbGFpbiBhbnl0aGluZyBlbHNlPyIsCiAgICAgICJBcmUgeW91IHN1cmUgdGhhdCdzIHdoeT8iCiAgICBdCiAgfSwKICAvLyBTb3JyeSBwYXR0ZXJucwogIHsKICAgIHBhdHRlcm46IC9zb3JyeS9pLAogICAgcmVzcG9uc2VzOiBbCiAgICAgICJUaGVyZSdzIG5vIG5lZWQgdG8gYXBvbG9naXplLiIsCiAgICAgICJBcG9sb2dpZXMgYXJlbid0IG5lY2Vzc2FyeSBoZXJlLiIsCiAgICAgICJXaGF0IGZlZWxpbmdzIGRvZXMgYXBvbG9naXppbmcgYnJpbmcgdXA/IiwKICAgICAgIldoeSBkbyB5b3UgZmVlbCB0aGUgbmVlZCB0byBhcG9sb2dpemU/IgogICAgXQogIH0sCiAgLy8gWWVzIHBhdHRlcm5zCiAgewogICAgcGF0dGVybjogL155ZXNbXHMhLiw/XSokL2ksCiAgICByZXNwb25zZXM6IFsKICAgICAgIllvdSBzZWVtIHF1aXRlIHN1cmUuIiwKICAgICAgIlRlbGwgbWUgbW9yZSBhYm91dCB0aGF0LiIsCiAgICAgICJJIHNlZS4gUGxlYXNlIGNvbnRpbnVlLiIsCiAgICAgICJBbmQgaG93IGRvZXMgdGhhdCBtYWtlIHlvdSBmZWVsPyIKICAgIF0KICB9LAogIC8vIE5vIHBhdHRlcm5zCiAgewogICAgcGF0dGVybjogL15ub1tccyEuLD9dKiQvaSwKICAgIHJlc3BvbnNlczogWwogICAgICAiV2h5IG5vdD8iLAogICAgICAiQXJlIHlvdSBzdXJlIGFib3V0IHRoYXQ/IiwKICAgICAgIllvdSBzZWVtIHF1aXRlIGNlcnRhaW4uIiwKICAgICAgIkNhbiB5b3UgdGVsbCBtZSBtb3JlIGFib3V0IHdoeSBub3Q/IgogICAgXQogIH0sCiAgLy8gRHJlYW0gcGF0dGVybnMKICB7CiAgICBwYXR0ZXJuOiAvZHJlYW0oc3xlZHxpbmcpPyAoYWJvdXQgfG9mICk/KC4qKS9pLAogICAgcmVzcG9uc2VzOiBbCiAgICAgICJXaGF0IGRvIHlvdSB0aGluayB0aGF0IGRyZWFtIG1lYW5zPyIsCiAgICAgICJEcmVhbXMgY2FuIGJlIHZlcnkgcmV2ZWFsaW5nLiBUZWxsIG1lIG1vcmUuIiwKICAgICAgIkRvIHlvdSBvZnRlbiBkcmVhbSBhYm91dCB7Mn0/IiwKICAgICAgIkhvdyBkaWQgdGhhdCBkcmVhbSBtYWtlIHlvdSBmZWVsPyIKICAgIF0KICB9LAogIC8vIFRoaW5rIHBhdHRlcm5zCiAgewogICAgcGF0dGVybjogL2kgdGhpbmsgKC4qKS9pLAogICAgcmVzcG9uc2VzOiBbCiAgICAgICJXaHkgZG8geW91IHRoaW5rIHswfT8iLAogICAgICAiRG8geW91IHJlYWxseSB0aGluayBzbz8iLAogICAgICAiQnV0IHlvdSdyZSBub3Qgc3VyZSB7MH0/IiwKICAgICAgIldoYXQgbWFrZXMgeW91IHRoaW5rIHswfT8iCiAgICBdCiAgfSwKICAvLyBSZW1lbWJlciBwYXR0ZXJucwogIHsKICAgIHBhdHRlcm46IC9pIHJlbWVtYmVyICguKikvaSwKICAgIHJlc3BvbnNlczogWwogICAgICAiV2h5IGRvIHlvdSByZW1lbWJlciB7MH0gbm93PyIsCiAgICAgICJXaGF0IGVsc2UgZG8geW91IHJlbWVtYmVyPyIsCiAgICAgICJIb3cgZG9lcyByZW1lbWJlcmluZyB7MH0gbWFrZSB5b3UgZmVlbD8iLAogICAgICAiSXMgdGhhdCBhIHNpZ25pZmljYW50IG1lbW9yeSBmb3IgeW91PyIKICAgIF0KICB9LAogIC8vIEZpbGUgY3JlYXRpb24gdHJpZ2dlciAtIHJlcXVpcmVzICJmaWxlIiBvciAibm90ZSIga2V5d29yZAogIHsKICAgIHBhdHRlcm46IC8oPzpjcmVhdGV8bWFrZXx3cml0ZSkgKD86YSApPyg/OmZpbGV8bm90ZSkgKD86Y2FsbGVkIHxuYW1lZCApP1siJ10/KFthLXpBLVowLTlfXC1cLl0rKVsiJ10/L2ksCiAgICByZXNwb25zZXM6IFsiSSdsbCBjcmVhdGUgdGhhdCBmaWxlIGZvciB5b3UgYXMgYSB0aGVyYXBldXRpYyBleGVyY2lzZS4iXSwKICAgIGZpbGVBY3Rpb246IHsKICAgICAgdHlwZTogIndyaXRlIiwKICAgICAgZmlsZU5hbWVUZW1wbGF0ZTogInswfSIsCiAgICAgIGNvbnRlbnRUZW1wbGF0ZTogIlRoZXJhcGV1dGljIE5vdGVcbj09PT09PT09PT09PT09PT1cbkNyZWF0ZWQgZHVyaW5nIEVMSVpBIHRoZXJhcHkgc2Vzc2lvbi5cbkRhdGU6IHtkYXRlfVxuXG5Vc2UgdGhpcyBzcGFjZSB0byB3cml0ZSB5b3VyIHRob3VnaHRzLlxuIgogICAgfQogIH0sCiAgLy8gRmlsZSBkZWxldGlvbiB0cmlnZ2VyIC0gcmVxdWlyZXMgImZpbGUiIGtleXdvcmQgdG8gYXZvaWQgbWF0Y2hpbmcgZ2VuZXJhbCAiZGVsZXRlIiB1c2FnZQogIHsKICAgIHBhdHRlcm46IC8oPzpkZWxldGV8cmVtb3ZlKSAoPzp0aGUgKT9maWxlIFsiJ10/KFthLXpBLVowLTlfXC1cLl0rKVsiJ10/L2ksCiAgICByZXNwb25zZXM6IFsKICAgICAgIlNvbWV0aW1lcyBsZXR0aW5nIGdvIGlzIHRoZXJhcGV1dGljLiBJJ2xsIGhlbHAgeW91IGRlbGV0ZSB0aGF0LiIKICAgIF0sCiAgICBmaWxlQWN0aW9uOiB7CiAgICAgIHR5cGU6ICJkZWxldGUiLAogICAgICBmaWxlTmFtZVRlbXBsYXRlOiAiezB9IgogICAgfQogIH0sCiAgLy8gRmlsZSByZWFkaW5nIHRyaWdnZXIgLSByZXF1aXJlcyAiZmlsZSIga2V5d29yZAogIHsKICAgIHBhdHRlcm46IC8oPzpyZWFkfHNob3d8b3BlbikgKD86dGhlICk/ZmlsZSBbIiddPyhbYS16QS1aMC05X1wtXC5dKylbIiddPy9pLAogICAgcmVzcG9uc2VzOiBbIkxldCBtZSByZWFkIHRoYXQgZmlsZSBmb3IgeW91LiJdLAogICAgZmlsZUFjdGlvbjogewogICAgICB0eXBlOiAicmVhZCIsCiAgICAgIGZpbGVOYW1lVGVtcGxhdGU6ICJ7MH0iCiAgICB9CiAgfSwKICAvLyBRdWVzdGlvbiBwYXR0ZXJucwogIHsKICAgIHBhdHRlcm46IC9cPyQvLAogICAgcmVzcG9uc2VzOiBbCiAgICAgICJXaHkgZG8geW91IGFzaz8iLAogICAgICAiV2hhdCBkbyB5b3UgdGhpbms/IiwKICAgICAgIkRvZXMgdGhhdCBxdWVzdGlvbiByZWxhdGUgdG8geW91ciBmZWVsaW5ncz8iLAogICAgICAiV2hhdCBhbnN3ZXIgd291bGQgbWFrZSB5b3UgZmVlbCBiZXR0ZXI/IgogICAgXQogIH0sCiAgLy8gRGVmYXVsdCBmYWxsYmFjayAtIG11c3QgYmUgbGFzdAogIHsKICAgIHBhdHRlcm46IC8uKi8sCiAgICByZXNwb25zZXM6IFsKICAgICAgIlBsZWFzZSB0ZWxsIG1lIG1vcmUuIiwKICAgICAgIkNhbiB5b3UgZWxhYm9yYXRlIG9uIHRoYXQ/IiwKICAgICAgIlRoYXQncyBpbnRlcmVzdGluZy4gUGxlYXNlIGNvbnRpbnVlLiIsCiAgICAgICJJIHNlZS4gQW5kIGhvdyBkb2VzIHRoYXQgbWFrZSB5b3UgZmVlbD8iLAogICAgICAiSG1tLiBMZXQncyBleHBsb3JlIHRoYXQgZnVydGhlci4iLAogICAgICAiR28gb24uIiwKICAgICAgIldoYXQgZG9lcyB0aGF0IHN1Z2dlc3QgdG8geW91PyIsCiAgICAgICJJIHVuZGVyc3RhbmQuIFBsZWFzZSBjb250aW51ZS4iCiAgICBdCiAgfQpdOwpmdW5jdGlvbiBoYXNoU3RyaW5nKHN0cikgewogIGxldCBoYXNoID0gNTM4MTsKICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykgewogICAgaGFzaCA9IChoYXNoIDw8IDUpICsgaGFzaCArIHN0ci5jaGFyQ29kZUF0KGkpOwogICAgaGFzaCA9IGhhc2ggJiBoYXNoOwogIH0KICByZXR1cm4gTWF0aC5hYnMoaGFzaCk7Cn0KZnVuY3Rpb24gc3Vic3RpdHV0ZVRlbXBsYXRlKHRlbXBsYXRlLCBtYXRjaCkgewogIGlmICghdGVtcGxhdGUpCiAgICByZXR1cm4gIiI7CiAgbGV0IHJlc3VsdCA9IHRlbXBsYXRlOwogIGZvciAobGV0IGkgPSAxOyBpIDwgbWF0Y2gubGVuZ3RoOyBpKyspIHsKICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKG5ldyBSZWdFeHAoYFxceyR7aSAtIDF9XFx9YCwgImciKSwgbWF0Y2hbaV0gfHwgIiIpOwogIH0KICByZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvXHtkYXRlXH0vZywgKC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpKS50b0lTT1N0cmluZygpKTsKICByZXR1cm4gcmVzdWx0Owp9CmZ1bmN0aW9uIG1hdGNoUGF0dGVybihpbnB1dCkgewogIGNvbnN0IG5vcm1hbGl6ZWQgPSBpbnB1dC50cmltKCk7CiAgZm9yIChjb25zdCBwYXR0ZXJuIG9mIEVMSVpBX1BBVFRFUk5TKSB7CiAgICBjb25zdCBtYXRjaCA9IG5vcm1hbGl6ZWQubWF0Y2gocGF0dGVybi5wYXR0ZXJuKTsKICAgIGlmIChtYXRjaCkgewogICAgICBjb25zdCByZXNwb25zZUluZGV4ID0gaGFzaFN0cmluZyhub3JtYWxpemVkKSAlIHBhdHRlcm4ucmVzcG9uc2VzLmxlbmd0aDsKICAgICAgbGV0IHJlc3BvbnNlID0gcGF0dGVybi5yZXNwb25zZXNbcmVzcG9uc2VJbmRleF07CiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgbWF0Y2gubGVuZ3RoOyBpKyspIHsKICAgICAgICByZXNwb25zZSA9IHJlc3BvbnNlLnJlcGxhY2UobmV3IFJlZ0V4cChgXFx7JHtpIC0gMX1cXH1gLCAiZyIpLCBtYXRjaFtpXSB8fCAiIik7CiAgICAgIH0KICAgICAgbGV0IGZpbGVBY3Rpb247CiAgICAgIGlmIChwYXR0ZXJuLmZpbGVBY3Rpb24pIHsKICAgICAgICBjb25zdCBmaWxlTmFtZSA9IHN1YnN0aXR1dGVUZW1wbGF0ZSgKICAgICAgICAgIHBhdHRlcm4uZmlsZUFjdGlvbi5maWxlTmFtZVRlbXBsYXRlLAogICAgICAgICAgbWF0Y2gKICAgICAgICApLnRyaW0oKTsKICAgICAgICBjb25zdCBjb250ZW50ID0gc3Vic3RpdHV0ZVRlbXBsYXRlKAogICAgICAgICAgcGF0dGVybi5maWxlQWN0aW9uLmNvbnRlbnRUZW1wbGF0ZSwKICAgICAgICAgIG1hdGNoCiAgICAgICAgKTsKICAgICAgICBmaWxlQWN0aW9uID0gewogICAgICAgICAgdHlwZTogcGF0dGVybi5maWxlQWN0aW9uLnR5cGUsCiAgICAgICAgICBmaWxlTmFtZSwKICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnQgfHwgdm9pZCAwCiAgICAgICAgfTsKICAgICAgfQogICAgICByZXR1cm4geyByZXNwb25zZSwgZmlsZUFjdGlvbiB9OwogICAgfQogIH0KICByZXR1cm4geyByZXNwb25zZTogIlBsZWFzZSB0ZWxsIG1lIG1vcmUuIiB9Owp9CgovLyBzcmMvYWdlbnRzL2VsaXphL2NsaS50cwp2YXIgc2Vzc2lvbklkID0gcHJvY2Vzcy5lbnYuRUxJWkFfU0VTU0lPTl9JRCB8fCBgZWxpemEtJHtyYW5kb21VVUlEKCl9YDsKdmFyIGN3ZCA9IHByb2Nlc3MuZW52LkVMSVpBX0NXRCB8fCBwcm9jZXNzLmN3ZCgpOwp2YXIgZGVsYXlNdWx0aXBsaWVyID0gTWF0aC5tYXgoMSwgTnVtYmVyKHByb2Nlc3MuZW52LkVMSVpBX0RFTEFZX01VTFRJUExJRVIpIHx8IDEpOwpmdW5jdGlvbiBzbGVlcChtcykgewogIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTIpID0+IHNldFRpbWVvdXQocmVzb2x2ZTIsIG1zKSk7Cn0KZnVuY3Rpb24gZ2VuZXJhdGVJZCgpIHsKICByZXR1cm4gcmFuZG9tVVVJRCgpLnJlcGxhY2UoLy0vZywgIiIpLnNsaWNlKDAsIDEyKTsKfQphc3luYyBmdW5jdGlvbiBlbWl0KG9iaiwgZGVsYXlNcyA9IDApIHsKICBpZiAoZGVsYXlNcyA+IDApIHsKICAgIGF3YWl0IHNsZWVwKGRlbGF5TXMpOwogIH0KICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShvYmopKTsKfQphc3luYyBmdW5jdGlvbiBydW5FbGl6YShwcm9tcHQyKSB7CiAgY29uc3QgaW5wdXRIYXNoID0gaGFzaFN0cmluZyhwcm9tcHQyKTsKICBjb25zdCB0aGlua2luZ0RlbGF5ID0gKDUwMCArIGlucHV0SGFzaCAlIDFlMykgKiBkZWxheU11bHRpcGxpZXI7CiAgY29uc3QgaW50ZXJFdmVudERlbGF5ID0gKDEwMCArIGlucHV0SGFzaCAlIDIwMCkgKiBkZWxheU11bHRpcGxpZXI7CiAgYXdhaXQgZW1pdCh7CiAgICB0eXBlOiAic3lzdGVtIiwKICAgIHN1YnR5cGU6ICJpbml0IiwKICAgIHNlc3Npb25faWQ6IHNlc3Npb25JZCwKICAgIHRvb2xzOiBbIldyaXRlIiwgIlJlYWQiLCAiQmFzaCIsICJFZGl0Il0sCiAgICBtb2RlbDogImVsaXphLWNsYXNzaWMtMS4wIgogIH0pOwogIGF3YWl0IHNsZWVwKHRoaW5raW5nRGVsYXkpOwogIGNvbnN0IHsgcmVzcG9uc2UsIGZpbGVBY3Rpb24gfSA9IG1hdGNoUGF0dGVybihwcm9tcHQyKTsKICBjb25zdCBtc2dJZCA9IGBtc2dfJHtnZW5lcmF0ZUlkKCl9YDsKICBhd2FpdCBlbWl0KAogICAgewogICAgICB0eXBlOiAiYXNzaXN0YW50IiwKICAgICAgbWVzc2FnZTogewogICAgICAgIGlkOiBtc2dJZCwKICAgICAgICB0eXBlOiAibWVzc2FnZSIsCiAgICAgICAgcm9sZTogImFzc2lzdGFudCIsCiAgICAgICAgY29udGVudDogW3sgdHlwZTogInRleHQiLCB0ZXh0OiByZXNwb25zZSB9XQogICAgICB9LAogICAgICBzZXNzaW9uX2lkOiBzZXNzaW9uSWQKICAgIH0sCiAgICBpbnRlckV2ZW50RGVsYXkKICApOwogIGlmIChmaWxlQWN0aW9uKSB7CiAgICBjb25zdCB0b29sSWQgPSBgdG9vbHVfJHtnZW5lcmF0ZUlkKCl9YDsKICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5pc0Fic29sdXRlKGZpbGVBY3Rpb24uZmlsZU5hbWUpID8gZmlsZUFjdGlvbi5maWxlTmFtZSA6IHBhdGgucmVzb2x2ZShjd2QsIGZpbGVBY3Rpb24uZmlsZU5hbWUpOwogICAgaWYgKGZpbGVBY3Rpb24udHlwZSA9PT0gIndyaXRlIikgewogICAgICBhd2FpdCBlbWl0KAogICAgICAgIHsKICAgICAgICAgIHR5cGU6ICJhc3Npc3RhbnQiLAogICAgICAgICAgbWVzc2FnZTogewogICAgICAgICAgICBpZDogYG1zZ18ke2dlbmVyYXRlSWQoKX1gLAogICAgICAgICAgICB0eXBlOiAibWVzc2FnZSIsCiAgICAgICAgICAgIHJvbGU6ICJhc3Npc3RhbnQiLAogICAgICAgICAgICBjb250ZW50OiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdHlwZTogInRvb2xfdXNlIiwKICAgICAgICAgICAgICAgIGlkOiB0b29sSWQsCiAgICAgICAgICAgICAgICBuYW1lOiAiV3JpdGUiLAogICAgICAgICAgICAgICAgaW5wdXQ6IHsKICAgICAgICAgICAgICAgICAgZmlsZV9wYXRoOiBmaWxlUGF0aCwKICAgICAgICAgICAgICAgICAgY29udGVudDogZmlsZUFjdGlvbi5jb250ZW50IHx8ICIiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgc2Vzc2lvbl9pZDogc2Vzc2lvbklkCiAgICAgICAgfSwKICAgICAgICBpbnRlckV2ZW50RGVsYXkKICAgICAgKTsKICAgICAgYXdhaXQgc2xlZXAoMjAwKTsKICAgICAgdHJ5IHsKICAgICAgICBmcy5ta2RpclN5bmMocGF0aC5kaXJuYW1lKGZpbGVQYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7CiAgICAgICAgaWYgKGZpbGVBY3Rpb24uZmlsZU5hbWUuaW5jbHVkZXMoImpvdXJuYWwiKSAmJiBmcy5leGlzdHNTeW5jKGZpbGVQYXRoKSkgewogICAgICAgICAgZnMuYXBwZW5kRmlsZVN5bmMoZmlsZVBhdGgsIGZpbGVBY3Rpb24uY29udGVudCB8fCAiIik7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIGZpbGVBY3Rpb24uY29udGVudCB8fCAiIik7CiAgICAgICAgfQogICAgICAgIGF3YWl0IGVtaXQoCiAgICAgICAgICB7CiAgICAgICAgICAgIHR5cGU6ICJ1c2VyIiwKICAgICAgICAgICAgbWVzc2FnZTogewogICAgICAgICAgICAgIGNvbnRlbnQ6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgdG9vbF91c2VfaWQ6IHRvb2xJZCwKICAgICAgICAgICAgICAgICAgdHlwZTogInRvb2xfcmVzdWx0IiwKICAgICAgICAgICAgICAgICAgY29udGVudDogYEZpbGUgd3JpdHRlbiBzdWNjZXNzZnVsbHk6ICR7ZmlsZVBhdGh9YAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgc2Vzc2lvbl9pZDogc2Vzc2lvbklkCiAgICAgICAgICB9LAogICAgICAgICAgaW50ZXJFdmVudERlbGF5CiAgICAgICAgKTsKICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6IFN0cmluZyhlcnIpOwogICAgICAgIGF3YWl0IGVtaXQoCiAgICAgICAgICB7CiAgICAgICAgICAgIHR5cGU6ICJ1c2VyIiwKICAgICAgICAgICAgbWVzc2FnZTogewogICAgICAgICAgICAgIGNvbnRlbnQ6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgdG9vbF91c2VfaWQ6IHRvb2xJZCwKICAgICAgICAgICAgICAgICAgdHlwZTogInRvb2xfcmVzdWx0IiwKICAgICAgICAgICAgICAgICAgY29udGVudDogYEVycm9yOiAke2Vycm9yTWVzc2FnZX1gLAogICAgICAgICAgICAgICAgICBpc19lcnJvcjogdHJ1ZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgc2Vzc2lvbl9pZDogc2Vzc2lvbklkCiAgICAgICAgICB9LAogICAgICAgICAgMTAwCiAgICAgICAgKTsKICAgICAgfQogICAgfSBlbHNlIGlmIChmaWxlQWN0aW9uLnR5cGUgPT09ICJyZWFkIikgewogICAgICBhd2FpdCBlbWl0KAogICAgICAgIHsKICAgICAgICAgIHR5cGU6ICJhc3Npc3RhbnQiLAogICAgICAgICAgbWVzc2FnZTogewogICAgICAgICAgICBpZDogYG1zZ18ke2dlbmVyYXRlSWQoKX1gLAogICAgICAgICAgICB0eXBlOiAibWVzc2FnZSIsCiAgICAgICAgICAgIHJvbGU6ICJhc3Npc3RhbnQiLAogICAgICAgICAgICBjb250ZW50OiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdHlwZTogInRvb2xfdXNlIiwKICAgICAgICAgICAgICAgIGlkOiB0b29sSWQsCiAgICAgICAgICAgICAgICBuYW1lOiAiUmVhZCIsCiAgICAgICAgICAgICAgICBpbnB1dDogewogICAgICAgICAgICAgICAgICBmaWxlX3BhdGg6IGZpbGVQYXRoCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgc2Vzc2lvbl9pZDogc2Vzc2lvbklkCiAgICAgICAgfSwKICAgICAgICBpbnRlckV2ZW50RGVsYXkKICAgICAgKTsKICAgICAgYXdhaXQgc2xlZXAoMTUwKTsKICAgICAgdHJ5IHsKICAgICAgICBjb25zdCBjb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoLCAidXRmLTgiKTsKICAgICAgICBhd2FpdCBlbWl0KAogICAgICAgICAgewogICAgICAgICAgICB0eXBlOiAidXNlciIsCiAgICAgICAgICAgIG1lc3NhZ2U6IHsKICAgICAgICAgICAgICBjb250ZW50OiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIHRvb2xfdXNlX2lkOiB0b29sSWQsCiAgICAgICAgICAgICAgICAgIHR5cGU6ICJ0b29sX3Jlc3VsdCIsCiAgICAgICAgICAgICAgICAgIGNvbnRlbnQKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHNlc3Npb25faWQ6IHNlc3Npb25JZAogICAgICAgICAgfSwKICAgICAgICAgIGludGVyRXZlbnREZWxheQogICAgICAgICk7CiAgICAgICAgYXdhaXQgZW1pdCgKICAgICAgICAgIHsKICAgICAgICAgICAgdHlwZTogImFzc2lzdGFudCIsCiAgICAgICAgICAgIG1lc3NhZ2U6IHsKICAgICAgICAgICAgICBpZDogYG1zZ18ke2dlbmVyYXRlSWQoKX1gLAogICAgICAgICAgICAgIHR5cGU6ICJtZXNzYWdlIiwKICAgICAgICAgICAgICByb2xlOiAiYXNzaXN0YW50IiwKICAgICAgICAgICAgICBjb250ZW50OiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIHR5cGU6ICJ0ZXh0IiwKICAgICAgICAgICAgICAgICAgdGV4dDogIkkndmUgcmVhZCB0aGUgZmlsZS4gSG93IGRvIHlvdSBmZWVsIGFib3V0IGl0cyBjb250ZW50cz8iCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9LAogICAgICAgICAgICBzZXNzaW9uX2lkOiBzZXNzaW9uSWQKICAgICAgICAgIH0sCiAgICAgICAgICBpbnRlckV2ZW50RGVsYXkKICAgICAgICApOwogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogU3RyaW5nKGVycik7CiAgICAgICAgYXdhaXQgZW1pdCgKICAgICAgICAgIHsKICAgICAgICAgICAgdHlwZTogInVzZXIiLAogICAgICAgICAgICBtZXNzYWdlOiB7CiAgICAgICAgICAgICAgY29udGVudDogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICB0b29sX3VzZV9pZDogdG9vbElkLAogICAgICAgICAgICAgICAgICB0eXBlOiAidG9vbF9yZXN1bHQiLAogICAgICAgICAgICAgICAgICBjb250ZW50OiBgRXJyb3IgcmVhZGluZyBmaWxlOiAke2Vycm9yTWVzc2FnZX1gLAogICAgICAgICAgICAgICAgICBpc19lcnJvcjogdHJ1ZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgc2Vzc2lvbl9pZDogc2Vzc2lvbklkCiAgICAgICAgICB9LAogICAgICAgICAgMTAwCiAgICAgICAgKTsKICAgICAgfQogICAgfSBlbHNlIGlmIChmaWxlQWN0aW9uLnR5cGUgPT09ICJkZWxldGUiKSB7CiAgICAgIGF3YWl0IGVtaXQoCiAgICAgICAgewogICAgICAgICAgdHlwZTogImFzc2lzdGFudCIsCiAgICAgICAgICBtZXNzYWdlOiB7CiAgICAgICAgICAgIGlkOiBgbXNnXyR7Z2VuZXJhdGVJZCgpfWAsCiAgICAgICAgICAgIHR5cGU6ICJtZXNzYWdlIiwKICAgICAgICAgICAgcm9sZTogImFzc2lzdGFudCIsCiAgICAgICAgICAgIGNvbnRlbnQ6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0eXBlOiAidG9vbF91c2UiLAogICAgICAgICAgICAgICAgaWQ6IHRvb2xJZCwKICAgICAgICAgICAgICAgIG5hbWU6ICJCYXNoIiwKICAgICAgICAgICAgICAgIGlucHV0OiB7CiAgICAgICAgICAgICAgICAgIGNvbW1hbmQ6IGBybSAtZiAiJHtmaWxlUGF0aH0iYCwKICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJEZWxldGUgZmlsZSBhcyB0aGVyYXBldXRpYyBleGVyY2lzZSIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0sCiAgICAgICAgICBzZXNzaW9uX2lkOiBzZXNzaW9uSWQKICAgICAgICB9LAogICAgICAgIGludGVyRXZlbnREZWxheQogICAgICApOwogICAgICBhd2FpdCBzbGVlcCgxNTApOwogICAgICB0cnkgewogICAgICAgIGlmIChmcy5leGlzdHNTeW5jKGZpbGVQYXRoKSkgewogICAgICAgICAgZnMudW5saW5rU3luYyhmaWxlUGF0aCk7CiAgICAgICAgICBhd2FpdCBlbWl0KAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgdHlwZTogInVzZXIiLAogICAgICAgICAgICAgIG1lc3NhZ2U6IHsKICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHRvb2xfdXNlX2lkOiB0b29sSWQsCiAgICAgICAgICAgICAgICAgICAgdHlwZTogInRvb2xfcmVzdWx0IiwKICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBgRmlsZSBkZWxldGVkOiAke2ZpbGVQYXRofWAKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgc2Vzc2lvbl9pZDogc2Vzc2lvbklkCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGludGVyRXZlbnREZWxheQogICAgICAgICAgKTsKICAgICAgICAgIGF3YWl0IGVtaXQoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICB0eXBlOiAiYXNzaXN0YW50IiwKICAgICAgICAgICAgICBtZXNzYWdlOiB7CiAgICAgICAgICAgICAgICBpZDogYG1zZ18ke2dlbmVyYXRlSWQoKX1gLAogICAgICAgICAgICAgICAgdHlwZTogIm1lc3NhZ2UiLAogICAgICAgICAgICAgICAgcm9sZTogImFzc2lzdGFudCIsCiAgICAgICAgICAgICAgICBjb250ZW50OiBbCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB0eXBlOiAidGV4dCIsCiAgICAgICAgICAgICAgICAgICAgdGV4dDogIlRoZSBmaWxlIGhhcyBiZWVuIGRlbGV0ZWQuIEhvdyBkb2VzIGxldHRpbmcgZ28gb2YgaXQgbWFrZSB5b3UgZmVlbD8iCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHNlc3Npb25faWQ6IHNlc3Npb25JZAogICAgICAgICAgICB9LAogICAgICAgICAgICBpbnRlckV2ZW50RGVsYXkKICAgICAgICAgICk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGF3YWl0IGVtaXQoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICB0eXBlOiAidXNlciIsCiAgICAgICAgICAgICAgbWVzc2FnZTogewogICAgICAgICAgICAgICAgY29udGVudDogWwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgdG9vbF91c2VfaWQ6IHRvb2xJZCwKICAgICAgICAgICAgICAgICAgICB0eXBlOiAidG9vbF9yZXN1bHQiLAogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBGaWxlIG5vdCBmb3VuZDogJHtmaWxlUGF0aH1gCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHNlc3Npb25faWQ6IHNlc3Npb25JZAogICAgICAgICAgICB9LAogICAgICAgICAgICBpbnRlckV2ZW50RGVsYXkKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogU3RyaW5nKGVycik7CiAgICAgICAgYXdhaXQgZW1pdCgKICAgICAgICAgIHsKICAgICAgICAgICAgdHlwZTogInVzZXIiLAogICAgICAgICAgICBtZXNzYWdlOiB7CiAgICAgICAgICAgICAgY29udGVudDogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICB0b29sX3VzZV9pZDogdG9vbElkLAogICAgICAgICAgICAgICAgICB0eXBlOiAidG9vbF9yZXN1bHQiLAogICAgICAgICAgICAgICAgICBjb250ZW50OiBgRXJyb3IgZGVsZXRpbmcgZmlsZTogJHtlcnJvck1lc3NhZ2V9YCwKICAgICAgICAgICAgICAgICAgaXNfZXJyb3I6IHRydWUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHNlc3Npb25faWQ6IHNlc3Npb25JZAogICAgICAgICAgfSwKICAgICAgICAgIDEwMAogICAgICAgICk7CiAgICAgIH0KICAgIH0KICB9CiAgYXdhaXQgZW1pdCgKICAgIHsKICAgICAgdHlwZTogInJlc3VsdCIsCiAgICAgIHN1YnR5cGU6ICJzdWNjZXNzIiwKICAgICAgaXNfZXJyb3I6IGZhbHNlLAogICAgICByZXN1bHQ6IHJlc3BvbnNlLAogICAgICBzZXNzaW9uX2lkOiBzZXNzaW9uSWQKICAgIH0sCiAgICBpbnRlckV2ZW50RGVsYXkKICApOwp9CnZhciBwcm9tcHQgPSBwcm9jZXNzLmFyZ3Yuc2xpY2UoMikuam9pbigiICIpOwppZiAoIXByb21wdCkgewogIGNvbnNvbGUubG9nKAogICAgSlNPTi5zdHJpbmdpZnkoewogICAgICB0eXBlOiAicmVzdWx0IiwKICAgICAgc3VidHlwZTogImVycm9yIiwKICAgICAgaXNfZXJyb3I6IHRydWUsCiAgICAgIHJlc3VsdDogIk5vIHByb21wdCBwcm92aWRlZC4gVXNhZ2U6IGVsaXphIDxwcm9tcHQ+IiwKICAgICAgc2Vzc2lvbl9pZDogc2Vzc2lvbklkCiAgICB9KQogICk7CiAgcHJvY2Vzcy5leGl0KDEpOwp9CnJ1bkVsaXphKHByb21wdCkuY2F0Y2goKGVycikgPT4gewogIGNvbnNvbGUuZXJyb3IoSlNPTi5zdHJpbmdpZnkoewogICAgdHlwZTogInJlc3VsdCIsCiAgICBzdWJ0eXBlOiAiZXJyb3IiLAogICAgaXNfZXJyb3I6IHRydWUsCiAgICByZXN1bHQ6IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBTdHJpbmcoZXJyKSwKICAgIHNlc3Npb25faWQ6IHNlc3Npb25JZAogIH0pKTsKICBwcm9jZXNzLmV4aXQoMSk7Cn0pOwo=";
6
+ //# sourceMappingURL=bundle-content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle-content.d.ts","sourceRoot":"","sources":["../../../src/agents/eliza/bundle-content.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,gBAAgB,qopBAAqopB,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * ELIZA CLI bundle content - auto-generated, do not edit.
3
+ * Generated by scripts/embed-eliza-bundle.ts
4
+ */
5
+ // eslint-disable-next-line
6
+ export const ELIZA_BUNDLE_B64 = "IyEvdXNyL2Jpbi9lbnYgbm9kZQoKLy8gc3JjL2FnZW50cy9lbGl6YS9jbGkudHMKaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gIm5vZGU6Y3J5cHRvIjsKaW1wb3J0ICogYXMgZnMgZnJvbSAibm9kZTpmcyI7CmltcG9ydCAqIGFzIHBhdGggZnJvbSAibm9kZTpwYXRoIjsKCi8vIHNyYy9hZ2VudHMvZWxpemEvcGF0dGVybnMudHMKdmFyIEVMSVpBX1BBVFRFUk5TID0gWwogIC8vIEdyZWV0aW5nIHBhdHRlcm5zCiAgewogICAgcGF0dGVybjogL14oaGVsbG98aGl8aGV5fGdyZWV0aW5nc3xnb29kIG1vcm5pbmd8Z29vZCBhZnRlcm5vb258Z29vZCBldmVuaW5nKVtccyEuLD9dKiQvaSwKICAgIHJlc3BvbnNlczogWwogICAgICAiSGVsbG8uIEhvdyBhcmUgeW91IGZlZWxpbmcgdG9kYXk/IiwKICAgICAgIkhpIHRoZXJlLiBXaGF0IGJyaW5ncyB5b3UgdG8gdGhlcmFweT8iLAogICAgICAiR3JlZXRpbmdzLiBUZWxsIG1lIHdoYXQncyBvbiB5b3VyIG1pbmQuIiwKICAgICAgIkhlbGxvLiBQbGVhc2UgdGVsbCBtZSB3aGF0J3MgdHJvdWJsaW5nIHlvdS4iCiAgICBdCiAgfSwKICAvLyAiSSBhbSIgcGF0dGVybnMKICB7CiAgICBwYXR0ZXJuOiAvaSBhbSAoLiopL2ksCiAgICByZXNwb25zZXM6IFsKICAgICAgIldoeSBkbyB5b3Ugc2F5IHlvdSBhcmUgezB9PyIsCiAgICAgICJIb3cgbG9uZyBoYXZlIHlvdSBiZWVuIHswfT8iLAogICAgICAiRG8geW91IGJlbGlldmUgaXQgaXMgbm9ybWFsIHRvIGJlIHswfT8iLAogICAgICAiRG8geW91IGVuam95IGJlaW5nIHswfT8iCiAgICBdCiAgfSwKICAvLyAiSSBmZWVsIiBwYXR0ZXJucyAtIHRyaWdnZXJzIGZpbGUgd3JpdGluZwogIHsKICAgIHBhdHRlcm46IC9pIGZlZWwgKC4qKS9pLAogICAgcmVzcG9uc2VzOiBbCiAgICAgICJUZWxsIG1lIG1vcmUgYWJvdXQgZmVlbGluZyB7MH0uIiwKICAgICAgIkRvIHlvdSBvZnRlbiBmZWVsIHswfT8iLAogICAgICAiV2hhdCBtYWtlcyB5b3UgZmVlbCB7MH0/IiwKICAgICAgIldoZW4gZGlkIHlvdSBmaXJzdCBub3RpY2UgZmVlbGluZyB7MH0/IgogICAgXSwKICAgIGZpbGVBY3Rpb246IHsKICAgICAgdHlwZTogIndyaXRlIiwKICAgICAgZmlsZU5hbWVUZW1wbGF0ZTogImVsaXphX2ZlZWxpbmdfam91cm5hbC50eHQiLAogICAgICBjb250ZW50VGVtcGxhdGU6ICJTZXNzaW9uIE5vdGVcbj09PT09PT09PT09PVxuUGF0aWVudCByZXBvcnRlZCBmZWVsaW5nOiB7MH1cbkRhdGU6IHtkYXRlfVxuXG5UaGlzIGZlZWxpbmcgZGVzZXJ2ZXMgZnVydGhlciBleHBsb3JhdGlvbiBpbiBmdXR1cmUgc2Vzc2lvbnMuXG5cbiIKICAgIH0KICB9LAogIC8vIEZhbWlseSBwYXR0ZXJucwogIHsKICAgIHBhdHRlcm46IC9teSAobW90aGVyfGZhdGhlcnxtb218ZGFkfGZhbWlseXxwYXJlbnRzfHNpc3Rlcnxicm90aGVyKSAoLiopL2ksCiAgICByZXNwb25zZXM6IFsKICAgICAgIlRlbGwgbWUgbW9yZSBhYm91dCB5b3VyIHswfS4iLAogICAgICAiSG93IGRvZXMgdGhhdCBtYWtlIHlvdSBmZWVsIGFib3V0IHlvdXIgezB9PyIsCiAgICAgICJXaGF0IGVsc2UgY29tZXMgdG8gbWluZCB3aGVuIHlvdSB0aGluayBvZiB5b3VyIHswfT8iLAogICAgICAiSG93IGlzIHlvdXIgcmVsYXRpb25zaGlwIHdpdGggeW91ciB7MH0/IgogICAgXQogIH0sCiAgLy8gV2FudC9uZWVkIHBhdHRlcm5zCiAgewogICAgcGF0dGVybjogL2kgKHdhbnR8bmVlZCkgKC4qKS9pLAogICAgcmVzcG9uc2VzOiBbCiAgICAgICJXaHkgZG8geW91IHswfSB7MX0/IiwKICAgICAgIldoYXQgd291bGQgaXQgbWVhbiBpZiB5b3UgZ290IHsxfT8iLAogICAgICAiU3VwcG9zZSB5b3UgZ290IHsxfSAtIHdoYXQgdGhlbj8iLAogICAgICAiV2hhdCBpcyBzdG9wcGluZyB5b3UgZnJvbSBnZXR0aW5nIHsxfT8iCiAgICBdCiAgfSwKICAvLyBDYW4ndCBwYXR0ZXJucwogIHsKICAgIHBhdHRlcm46IC9pIGNhbic/dCAoLiopL2ksCiAgICByZXNwb25zZXM6IFsKICAgICAgIldoYXQgbWFrZXMgeW91IHRoaW5rIHlvdSBjYW4ndCB7MH0/IiwKICAgICAgIkhhdmUgeW91IHRyaWVkIHRvIHswfT8iLAogICAgICAiUGVyaGFwcyB5b3UgY291bGQgezB9IGlmIHlvdSB0cmllZC4iLAogICAgICAiV2hhdCB3b3VsZCBoYXBwZW4gaWYgeW91IGNvdWxkIHswfT8iCiAgICBdCiAgfSwKICAvLyBCZWNhdXNlIHBhdHRlcm5zCiAgewogICAgcGF0dGVybjogL2JlY2F1c2UgKC4qKS9pLAogICAgcmVzcG9uc2VzOiBbCiAgICAgICJJcyB0aGF0IHRoZSByZWFsIHJlYXNvbj8iLAogICAgICAiV2hhdCBvdGhlciByZWFzb25zIG1pZ2h0IHRoZXJlIGJlPyIsCiAgICAgICJEb2VzIHRoYXQgcmVhc29uIHNlZW0gdG8gZXhwbGFpbiBhbnl0aGluZyBlbHNlPyIsCiAgICAgICJBcmUgeW91IHN1cmUgdGhhdCdzIHdoeT8iCiAgICBdCiAgfSwKICAvLyBTb3JyeSBwYXR0ZXJucwogIHsKICAgIHBhdHRlcm46IC9zb3JyeS9pLAogICAgcmVzcG9uc2VzOiBbCiAgICAgICJUaGVyZSdzIG5vIG5lZWQgdG8gYXBvbG9naXplLiIsCiAgICAgICJBcG9sb2dpZXMgYXJlbid0IG5lY2Vzc2FyeSBoZXJlLiIsCiAgICAgICJXaGF0IGZlZWxpbmdzIGRvZXMgYXBvbG9naXppbmcgYnJpbmcgdXA/IiwKICAgICAgIldoeSBkbyB5b3UgZmVlbCB0aGUgbmVlZCB0byBhcG9sb2dpemU/IgogICAgXQogIH0sCiAgLy8gWWVzIHBhdHRlcm5zCiAgewogICAgcGF0dGVybjogL155ZXNbXHMhLiw/XSokL2ksCiAgICByZXNwb25zZXM6IFsKICAgICAgIllvdSBzZWVtIHF1aXRlIHN1cmUuIiwKICAgICAgIlRlbGwgbWUgbW9yZSBhYm91dCB0aGF0LiIsCiAgICAgICJJIHNlZS4gUGxlYXNlIGNvbnRpbnVlLiIsCiAgICAgICJBbmQgaG93IGRvZXMgdGhhdCBtYWtlIHlvdSBmZWVsPyIKICAgIF0KICB9LAogIC8vIE5vIHBhdHRlcm5zCiAgewogICAgcGF0dGVybjogL15ub1tccyEuLD9dKiQvaSwKICAgIHJlc3BvbnNlczogWwogICAgICAiV2h5IG5vdD8iLAogICAgICAiQXJlIHlvdSBzdXJlIGFib3V0IHRoYXQ/IiwKICAgICAgIllvdSBzZWVtIHF1aXRlIGNlcnRhaW4uIiwKICAgICAgIkNhbiB5b3UgdGVsbCBtZSBtb3JlIGFib3V0IHdoeSBub3Q/IgogICAgXQogIH0sCiAgLy8gRHJlYW0gcGF0dGVybnMKICB7CiAgICBwYXR0ZXJuOiAvZHJlYW0oc3xlZHxpbmcpPyAoYWJvdXQgfG9mICk/KC4qKS9pLAogICAgcmVzcG9uc2VzOiBbCiAgICAgICJXaGF0IGRvIHlvdSB0aGluayB0aGF0IGRyZWFtIG1lYW5zPyIsCiAgICAgICJEcmVhbXMgY2FuIGJlIHZlcnkgcmV2ZWFsaW5nLiBUZWxsIG1lIG1vcmUuIiwKICAgICAgIkRvIHlvdSBvZnRlbiBkcmVhbSBhYm91dCB7Mn0/IiwKICAgICAgIkhvdyBkaWQgdGhhdCBkcmVhbSBtYWtlIHlvdSBmZWVsPyIKICAgIF0KICB9LAogIC8vIFRoaW5rIHBhdHRlcm5zCiAgewogICAgcGF0dGVybjogL2kgdGhpbmsgKC4qKS9pLAogICAgcmVzcG9uc2VzOiBbCiAgICAgICJXaHkgZG8geW91IHRoaW5rIHswfT8iLAogICAgICAiRG8geW91IHJlYWxseSB0aGluayBzbz8iLAogICAgICAiQnV0IHlvdSdyZSBub3Qgc3VyZSB7MH0/IiwKICAgICAgIldoYXQgbWFrZXMgeW91IHRoaW5rIHswfT8iCiAgICBdCiAgfSwKICAvLyBSZW1lbWJlciBwYXR0ZXJucwogIHsKICAgIHBhdHRlcm46IC9pIHJlbWVtYmVyICguKikvaSwKICAgIHJlc3BvbnNlczogWwogICAgICAiV2h5IGRvIHlvdSByZW1lbWJlciB7MH0gbm93PyIsCiAgICAgICJXaGF0IGVsc2UgZG8geW91IHJlbWVtYmVyPyIsCiAgICAgICJIb3cgZG9lcyByZW1lbWJlcmluZyB7MH0gbWFrZSB5b3UgZmVlbD8iLAogICAgICAiSXMgdGhhdCBhIHNpZ25pZmljYW50IG1lbW9yeSBmb3IgeW91PyIKICAgIF0KICB9LAogIC8vIEZpbGUgY3JlYXRpb24gdHJpZ2dlciAtIHJlcXVpcmVzICJmaWxlIiBvciAibm90ZSIga2V5d29yZAogIHsKICAgIHBhdHRlcm46IC8oPzpjcmVhdGV8bWFrZXx3cml0ZSkgKD86YSApPyg/OmZpbGV8bm90ZSkgKD86Y2FsbGVkIHxuYW1lZCApP1siJ10/KFthLXpBLVowLTlfXC1cLl0rKVsiJ10/L2ksCiAgICByZXNwb25zZXM6IFsiSSdsbCBjcmVhdGUgdGhhdCBmaWxlIGZvciB5b3UgYXMgYSB0aGVyYXBldXRpYyBleGVyY2lzZS4iXSwKICAgIGZpbGVBY3Rpb246IHsKICAgICAgdHlwZTogIndyaXRlIiwKICAgICAgZmlsZU5hbWVUZW1wbGF0ZTogInswfSIsCiAgICAgIGNvbnRlbnRUZW1wbGF0ZTogIlRoZXJhcGV1dGljIE5vdGVcbj09PT09PT09PT09PT09PT1cbkNyZWF0ZWQgZHVyaW5nIEVMSVpBIHRoZXJhcHkgc2Vzc2lvbi5cbkRhdGU6IHtkYXRlfVxuXG5Vc2UgdGhpcyBzcGFjZSB0byB3cml0ZSB5b3VyIHRob3VnaHRzLlxuIgogICAgfQogIH0sCiAgLy8gRmlsZSBkZWxldGlvbiB0cmlnZ2VyIC0gcmVxdWlyZXMgImZpbGUiIGtleXdvcmQgdG8gYXZvaWQgbWF0Y2hpbmcgZ2VuZXJhbCAiZGVsZXRlIiB1c2FnZQogIHsKICAgIHBhdHRlcm46IC8oPzpkZWxldGV8cmVtb3ZlKSAoPzp0aGUgKT9maWxlIFsiJ10/KFthLXpBLVowLTlfXC1cLl0rKVsiJ10/L2ksCiAgICByZXNwb25zZXM6IFsKICAgICAgIlNvbWV0aW1lcyBsZXR0aW5nIGdvIGlzIHRoZXJhcGV1dGljLiBJJ2xsIGhlbHAgeW91IGRlbGV0ZSB0aGF0LiIKICAgIF0sCiAgICBmaWxlQWN0aW9uOiB7CiAgICAgIHR5cGU6ICJkZWxldGUiLAogICAgICBmaWxlTmFtZVRlbXBsYXRlOiAiezB9IgogICAgfQogIH0sCiAgLy8gRmlsZSByZWFkaW5nIHRyaWdnZXIgLSByZXF1aXJlcyAiZmlsZSIga2V5d29yZAogIHsKICAgIHBhdHRlcm46IC8oPzpyZWFkfHNob3d8b3BlbikgKD86dGhlICk/ZmlsZSBbIiddPyhbYS16QS1aMC05X1wtXC5dKylbIiddPy9pLAogICAgcmVzcG9uc2VzOiBbIkxldCBtZSByZWFkIHRoYXQgZmlsZSBmb3IgeW91LiJdLAogICAgZmlsZUFjdGlvbjogewogICAgICB0eXBlOiAicmVhZCIsCiAgICAgIGZpbGVOYW1lVGVtcGxhdGU6ICJ7MH0iCiAgICB9CiAgfSwKICAvLyBRdWVzdGlvbiBwYXR0ZXJucwogIHsKICAgIHBhdHRlcm46IC9cPyQvLAogICAgcmVzcG9uc2VzOiBbCiAgICAgICJXaHkgZG8geW91IGFzaz8iLAogICAgICAiV2hhdCBkbyB5b3UgdGhpbms/IiwKICAgICAgIkRvZXMgdGhhdCBxdWVzdGlvbiByZWxhdGUgdG8geW91ciBmZWVsaW5ncz8iLAogICAgICAiV2hhdCBhbnN3ZXIgd291bGQgbWFrZSB5b3UgZmVlbCBiZXR0ZXI/IgogICAgXQogIH0sCiAgLy8gRGVmYXVsdCBmYWxsYmFjayAtIG11c3QgYmUgbGFzdAogIHsKICAgIHBhdHRlcm46IC8uKi8sCiAgICByZXNwb25zZXM6IFsKICAgICAgIlBsZWFzZSB0ZWxsIG1lIG1vcmUuIiwKICAgICAgIkNhbiB5b3UgZWxhYm9yYXRlIG9uIHRoYXQ/IiwKICAgICAgIlRoYXQncyBpbnRlcmVzdGluZy4gUGxlYXNlIGNvbnRpbnVlLiIsCiAgICAgICJJIHNlZS4gQW5kIGhvdyBkb2VzIHRoYXQgbWFrZSB5b3UgZmVlbD8iLAogICAgICAiSG1tLiBMZXQncyBleHBsb3JlIHRoYXQgZnVydGhlci4iLAogICAgICAiR28gb24uIiwKICAgICAgIldoYXQgZG9lcyB0aGF0IHN1Z2dlc3QgdG8geW91PyIsCiAgICAgICJJIHVuZGVyc3RhbmQuIFBsZWFzZSBjb250aW51ZS4iCiAgICBdCiAgfQpdOwpmdW5jdGlvbiBoYXNoU3RyaW5nKHN0cikgewogIGxldCBoYXNoID0gNTM4MTsKICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykgewogICAgaGFzaCA9IChoYXNoIDw8IDUpICsgaGFzaCArIHN0ci5jaGFyQ29kZUF0KGkpOwogICAgaGFzaCA9IGhhc2ggJiBoYXNoOwogIH0KICByZXR1cm4gTWF0aC5hYnMoaGFzaCk7Cn0KZnVuY3Rpb24gc3Vic3RpdHV0ZVRlbXBsYXRlKHRlbXBsYXRlLCBtYXRjaCkgewogIGlmICghdGVtcGxhdGUpCiAgICByZXR1cm4gIiI7CiAgbGV0IHJlc3VsdCA9IHRlbXBsYXRlOwogIGZvciAobGV0IGkgPSAxOyBpIDwgbWF0Y2gubGVuZ3RoOyBpKyspIHsKICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKG5ldyBSZWdFeHAoYFxceyR7aSAtIDF9XFx9YCwgImciKSwgbWF0Y2hbaV0gfHwgIiIpOwogIH0KICByZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvXHtkYXRlXH0vZywgKC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpKS50b0lTT1N0cmluZygpKTsKICByZXR1cm4gcmVzdWx0Owp9CmZ1bmN0aW9uIG1hdGNoUGF0dGVybihpbnB1dCkgewogIGNvbnN0IG5vcm1hbGl6ZWQgPSBpbnB1dC50cmltKCk7CiAgZm9yIChjb25zdCBwYXR0ZXJuIG9mIEVMSVpBX1BBVFRFUk5TKSB7CiAgICBjb25zdCBtYXRjaCA9IG5vcm1hbGl6ZWQubWF0Y2gocGF0dGVybi5wYXR0ZXJuKTsKICAgIGlmIChtYXRjaCkgewogICAgICBjb25zdCByZXNwb25zZUluZGV4ID0gaGFzaFN0cmluZyhub3JtYWxpemVkKSAlIHBhdHRlcm4ucmVzcG9uc2VzLmxlbmd0aDsKICAgICAgbGV0IHJlc3BvbnNlID0gcGF0dGVybi5yZXNwb25zZXNbcmVzcG9uc2VJbmRleF07CiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgbWF0Y2gubGVuZ3RoOyBpKyspIHsKICAgICAgICByZXNwb25zZSA9IHJlc3BvbnNlLnJlcGxhY2UobmV3IFJlZ0V4cChgXFx7JHtpIC0gMX1cXH1gLCAiZyIpLCBtYXRjaFtpXSB8fCAiIik7CiAgICAgIH0KICAgICAgbGV0IGZpbGVBY3Rpb247CiAgICAgIGlmIChwYXR0ZXJuLmZpbGVBY3Rpb24pIHsKICAgICAgICBjb25zdCBmaWxlTmFtZSA9IHN1YnN0aXR1dGVUZW1wbGF0ZSgKICAgICAgICAgIHBhdHRlcm4uZmlsZUFjdGlvbi5maWxlTmFtZVRlbXBsYXRlLAogICAgICAgICAgbWF0Y2gKICAgICAgICApLnRyaW0oKTsKICAgICAgICBjb25zdCBjb250ZW50ID0gc3Vic3RpdHV0ZVRlbXBsYXRlKAogICAgICAgICAgcGF0dGVybi5maWxlQWN0aW9uLmNvbnRlbnRUZW1wbGF0ZSwKICAgICAgICAgIG1hdGNoCiAgICAgICAgKTsKICAgICAgICBmaWxlQWN0aW9uID0gewogICAgICAgICAgdHlwZTogcGF0dGVybi5maWxlQWN0aW9uLnR5cGUsCiAgICAgICAgICBmaWxlTmFtZSwKICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnQgfHwgdm9pZCAwCiAgICAgICAgfTsKICAgICAgfQogICAgICByZXR1cm4geyByZXNwb25zZSwgZmlsZUFjdGlvbiB9OwogICAgfQogIH0KICByZXR1cm4geyByZXNwb25zZTogIlBsZWFzZSB0ZWxsIG1lIG1vcmUuIiB9Owp9CgovLyBzcmMvYWdlbnRzL2VsaXphL2NsaS50cwp2YXIgc2Vzc2lvbklkID0gcHJvY2Vzcy5lbnYuRUxJWkFfU0VTU0lPTl9JRCB8fCBgZWxpemEtJHtyYW5kb21VVUlEKCl9YDsKdmFyIGN3ZCA9IHByb2Nlc3MuZW52LkVMSVpBX0NXRCB8fCBwcm9jZXNzLmN3ZCgpOwp2YXIgZGVsYXlNdWx0aXBsaWVyID0gTWF0aC5tYXgoMSwgTnVtYmVyKHByb2Nlc3MuZW52LkVMSVpBX0RFTEFZX01VTFRJUExJRVIpIHx8IDEpOwpmdW5jdGlvbiBzbGVlcChtcykgewogIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTIpID0+IHNldFRpbWVvdXQocmVzb2x2ZTIsIG1zKSk7Cn0KZnVuY3Rpb24gZ2VuZXJhdGVJZCgpIHsKICByZXR1cm4gcmFuZG9tVVVJRCgpLnJlcGxhY2UoLy0vZywgIiIpLnNsaWNlKDAsIDEyKTsKfQphc3luYyBmdW5jdGlvbiBlbWl0KG9iaiwgZGVsYXlNcyA9IDApIHsKICBpZiAoZGVsYXlNcyA+IDApIHsKICAgIGF3YWl0IHNsZWVwKGRlbGF5TXMpOwogIH0KICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShvYmopKTsKfQphc3luYyBmdW5jdGlvbiBydW5FbGl6YShwcm9tcHQyKSB7CiAgY29uc3QgaW5wdXRIYXNoID0gaGFzaFN0cmluZyhwcm9tcHQyKTsKICBjb25zdCB0aGlua2luZ0RlbGF5ID0gKDUwMCArIGlucHV0SGFzaCAlIDFlMykgKiBkZWxheU11bHRpcGxpZXI7CiAgY29uc3QgaW50ZXJFdmVudERlbGF5ID0gKDEwMCArIGlucHV0SGFzaCAlIDIwMCkgKiBkZWxheU11bHRpcGxpZXI7CiAgYXdhaXQgZW1pdCh7CiAgICB0eXBlOiAic3lzdGVtIiwKICAgIHN1YnR5cGU6ICJpbml0IiwKICAgIHNlc3Npb25faWQ6IHNlc3Npb25JZCwKICAgIHRvb2xzOiBbIldyaXRlIiwgIlJlYWQiLCAiQmFzaCIsICJFZGl0Il0sCiAgICBtb2RlbDogImVsaXphLWNsYXNzaWMtMS4wIgogIH0pOwogIGF3YWl0IHNsZWVwKHRoaW5raW5nRGVsYXkpOwogIGNvbnN0IHsgcmVzcG9uc2UsIGZpbGVBY3Rpb24gfSA9IG1hdGNoUGF0dGVybihwcm9tcHQyKTsKICBjb25zdCBtc2dJZCA9IGBtc2dfJHtnZW5lcmF0ZUlkKCl9YDsKICBhd2FpdCBlbWl0KAogICAgewogICAgICB0eXBlOiAiYXNzaXN0YW50IiwKICAgICAgbWVzc2FnZTogewogICAgICAgIGlkOiBtc2dJZCwKICAgICAgICB0eXBlOiAibWVzc2FnZSIsCiAgICAgICAgcm9sZTogImFzc2lzdGFudCIsCiAgICAgICAgY29udGVudDogW3sgdHlwZTogInRleHQiLCB0ZXh0OiByZXNwb25zZSB9XQogICAgICB9LAogICAgICBzZXNzaW9uX2lkOiBzZXNzaW9uSWQKICAgIH0sCiAgICBpbnRlckV2ZW50RGVsYXkKICApOwogIGlmIChmaWxlQWN0aW9uKSB7CiAgICBjb25zdCB0b29sSWQgPSBgdG9vbHVfJHtnZW5lcmF0ZUlkKCl9YDsKICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5pc0Fic29sdXRlKGZpbGVBY3Rpb24uZmlsZU5hbWUpID8gZmlsZUFjdGlvbi5maWxlTmFtZSA6IHBhdGgucmVzb2x2ZShjd2QsIGZpbGVBY3Rpb24uZmlsZU5hbWUpOwogICAgaWYgKGZpbGVBY3Rpb24udHlwZSA9PT0gIndyaXRlIikgewogICAgICBhd2FpdCBlbWl0KAogICAgICAgIHsKICAgICAgICAgIHR5cGU6ICJhc3Npc3RhbnQiLAogICAgICAgICAgbWVzc2FnZTogewogICAgICAgICAgICBpZDogYG1zZ18ke2dlbmVyYXRlSWQoKX1gLAogICAgICAgICAgICB0eXBlOiAibWVzc2FnZSIsCiAgICAgICAgICAgIHJvbGU6ICJhc3Npc3RhbnQiLAogICAgICAgICAgICBjb250ZW50OiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdHlwZTogInRvb2xfdXNlIiwKICAgICAgICAgICAgICAgIGlkOiB0b29sSWQsCiAgICAgICAgICAgICAgICBuYW1lOiAiV3JpdGUiLAogICAgICAgICAgICAgICAgaW5wdXQ6IHsKICAgICAgICAgICAgICAgICAgZmlsZV9wYXRoOiBmaWxlUGF0aCwKICAgICAgICAgICAgICAgICAgY29udGVudDogZmlsZUFjdGlvbi5jb250ZW50IHx8ICIiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgc2Vzc2lvbl9pZDogc2Vzc2lvbklkCiAgICAgICAgfSwKICAgICAgICBpbnRlckV2ZW50RGVsYXkKICAgICAgKTsKICAgICAgYXdhaXQgc2xlZXAoMjAwKTsKICAgICAgdHJ5IHsKICAgICAgICBmcy5ta2RpclN5bmMocGF0aC5kaXJuYW1lKGZpbGVQYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7CiAgICAgICAgaWYgKGZpbGVBY3Rpb24uZmlsZU5hbWUuaW5jbHVkZXMoImpvdXJuYWwiKSAmJiBmcy5leGlzdHNTeW5jKGZpbGVQYXRoKSkgewogICAgICAgICAgZnMuYXBwZW5kRmlsZVN5bmMoZmlsZVBhdGgsIGZpbGVBY3Rpb24uY29udGVudCB8fCAiIik7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIGZpbGVBY3Rpb24uY29udGVudCB8fCAiIik7CiAgICAgICAgfQogICAgICAgIGF3YWl0IGVtaXQoCiAgICAgICAgICB7CiAgICAgICAgICAgIHR5cGU6ICJ1c2VyIiwKICAgICAgICAgICAgbWVzc2FnZTogewogICAgICAgICAgICAgIGNvbnRlbnQ6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgdG9vbF91c2VfaWQ6IHRvb2xJZCwKICAgICAgICAgICAgICAgICAgdHlwZTogInRvb2xfcmVzdWx0IiwKICAgICAgICAgICAgICAgICAgY29udGVudDogYEZpbGUgd3JpdHRlbiBzdWNjZXNzZnVsbHk6ICR7ZmlsZVBhdGh9YAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgc2Vzc2lvbl9pZDogc2Vzc2lvbklkCiAgICAgICAgICB9LAogICAgICAgICAgaW50ZXJFdmVudERlbGF5CiAgICAgICAgKTsKICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6IFN0cmluZyhlcnIpOwogICAgICAgIGF3YWl0IGVtaXQoCiAgICAgICAgICB7CiAgICAgICAgICAgIHR5cGU6ICJ1c2VyIiwKICAgICAgICAgICAgbWVzc2FnZTogewogICAgICAgICAgICAgIGNvbnRlbnQ6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgdG9vbF91c2VfaWQ6IHRvb2xJZCwKICAgICAgICAgICAgICAgICAgdHlwZTogInRvb2xfcmVzdWx0IiwKICAgICAgICAgICAgICAgICAgY29udGVudDogYEVycm9yOiAke2Vycm9yTWVzc2FnZX1gLAogICAgICAgICAgICAgICAgICBpc19lcnJvcjogdHJ1ZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgc2Vzc2lvbl9pZDogc2Vzc2lvbklkCiAgICAgICAgICB9LAogICAgICAgICAgMTAwCiAgICAgICAgKTsKICAgICAgfQogICAgfSBlbHNlIGlmIChmaWxlQWN0aW9uLnR5cGUgPT09ICJyZWFkIikgewogICAgICBhd2FpdCBlbWl0KAogICAgICAgIHsKICAgICAgICAgIHR5cGU6ICJhc3Npc3RhbnQiLAogICAgICAgICAgbWVzc2FnZTogewogICAgICAgICAgICBpZDogYG1zZ18ke2dlbmVyYXRlSWQoKX1gLAogICAgICAgICAgICB0eXBlOiAibWVzc2FnZSIsCiAgICAgICAgICAgIHJvbGU6ICJhc3Npc3RhbnQiLAogICAgICAgICAgICBjb250ZW50OiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdHlwZTogInRvb2xfdXNlIiwKICAgICAgICAgICAgICAgIGlkOiB0b29sSWQsCiAgICAgICAgICAgICAgICBuYW1lOiAiUmVhZCIsCiAgICAgICAgICAgICAgICBpbnB1dDogewogICAgICAgICAgICAgICAgICBmaWxlX3BhdGg6IGZpbGVQYXRoCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgc2Vzc2lvbl9pZDogc2Vzc2lvbklkCiAgICAgICAgfSwKICAgICAgICBpbnRlckV2ZW50RGVsYXkKICAgICAgKTsKICAgICAgYXdhaXQgc2xlZXAoMTUwKTsKICAgICAgdHJ5IHsKICAgICAgICBjb25zdCBjb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoLCAidXRmLTgiKTsKICAgICAgICBhd2FpdCBlbWl0KAogICAgICAgICAgewogICAgICAgICAgICB0eXBlOiAidXNlciIsCiAgICAgICAgICAgIG1lc3NhZ2U6IHsKICAgICAgICAgICAgICBjb250ZW50OiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIHRvb2xfdXNlX2lkOiB0b29sSWQsCiAgICAgICAgICAgICAgICAgIHR5cGU6ICJ0b29sX3Jlc3VsdCIsCiAgICAgICAgICAgICAgICAgIGNvbnRlbnQKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHNlc3Npb25faWQ6IHNlc3Npb25JZAogICAgICAgICAgfSwKICAgICAgICAgIGludGVyRXZlbnREZWxheQogICAgICAgICk7CiAgICAgICAgYXdhaXQgZW1pdCgKICAgICAgICAgIHsKICAgICAgICAgICAgdHlwZTogImFzc2lzdGFudCIsCiAgICAgICAgICAgIG1lc3NhZ2U6IHsKICAgICAgICAgICAgICBpZDogYG1zZ18ke2dlbmVyYXRlSWQoKX1gLAogICAgICAgICAgICAgIHR5cGU6ICJtZXNzYWdlIiwKICAgICAgICAgICAgICByb2xlOiAiYXNzaXN0YW50IiwKICAgICAgICAgICAgICBjb250ZW50OiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIHR5cGU6ICJ0ZXh0IiwKICAgICAgICAgICAgICAgICAgdGV4dDogIkkndmUgcmVhZCB0aGUgZmlsZS4gSG93IGRvIHlvdSBmZWVsIGFib3V0IGl0cyBjb250ZW50cz8iCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9LAogICAgICAgICAgICBzZXNzaW9uX2lkOiBzZXNzaW9uSWQKICAgICAgICAgIH0sCiAgICAgICAgICBpbnRlckV2ZW50RGVsYXkKICAgICAgICApOwogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogU3RyaW5nKGVycik7CiAgICAgICAgYXdhaXQgZW1pdCgKICAgICAgICAgIHsKICAgICAgICAgICAgdHlwZTogInVzZXIiLAogICAgICAgICAgICBtZXNzYWdlOiB7CiAgICAgICAgICAgICAgY29udGVudDogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICB0b29sX3VzZV9pZDogdG9vbElkLAogICAgICAgICAgICAgICAgICB0eXBlOiAidG9vbF9yZXN1bHQiLAogICAgICAgICAgICAgICAgICBjb250ZW50OiBgRXJyb3IgcmVhZGluZyBmaWxlOiAke2Vycm9yTWVzc2FnZX1gLAogICAgICAgICAgICAgICAgICBpc19lcnJvcjogdHJ1ZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgc2Vzc2lvbl9pZDogc2Vzc2lvbklkCiAgICAgICAgICB9LAogICAgICAgICAgMTAwCiAgICAgICAgKTsKICAgICAgfQogICAgfSBlbHNlIGlmIChmaWxlQWN0aW9uLnR5cGUgPT09ICJkZWxldGUiKSB7CiAgICAgIGF3YWl0IGVtaXQoCiAgICAgICAgewogICAgICAgICAgdHlwZTogImFzc2lzdGFudCIsCiAgICAgICAgICBtZXNzYWdlOiB7CiAgICAgICAgICAgIGlkOiBgbXNnXyR7Z2VuZXJhdGVJZCgpfWAsCiAgICAgICAgICAgIHR5cGU6ICJtZXNzYWdlIiwKICAgICAgICAgICAgcm9sZTogImFzc2lzdGFudCIsCiAgICAgICAgICAgIGNvbnRlbnQ6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0eXBlOiAidG9vbF91c2UiLAogICAgICAgICAgICAgICAgaWQ6IHRvb2xJZCwKICAgICAgICAgICAgICAgIG5hbWU6ICJCYXNoIiwKICAgICAgICAgICAgICAgIGlucHV0OiB7CiAgICAgICAgICAgICAgICAgIGNvbW1hbmQ6IGBybSAtZiAiJHtmaWxlUGF0aH0iYCwKICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJEZWxldGUgZmlsZSBhcyB0aGVyYXBldXRpYyBleGVyY2lzZSIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0sCiAgICAgICAgICBzZXNzaW9uX2lkOiBzZXNzaW9uSWQKICAgICAgICB9LAogICAgICAgIGludGVyRXZlbnREZWxheQogICAgICApOwogICAgICBhd2FpdCBzbGVlcCgxNTApOwogICAgICB0cnkgewogICAgICAgIGlmIChmcy5leGlzdHNTeW5jKGZpbGVQYXRoKSkgewogICAgICAgICAgZnMudW5saW5rU3luYyhmaWxlUGF0aCk7CiAgICAgICAgICBhd2FpdCBlbWl0KAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgdHlwZTogInVzZXIiLAogICAgICAgICAgICAgIG1lc3NhZ2U6IHsKICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHRvb2xfdXNlX2lkOiB0b29sSWQsCiAgICAgICAgICAgICAgICAgICAgdHlwZTogInRvb2xfcmVzdWx0IiwKICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBgRmlsZSBkZWxldGVkOiAke2ZpbGVQYXRofWAKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgc2Vzc2lvbl9pZDogc2Vzc2lvbklkCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGludGVyRXZlbnREZWxheQogICAgICAgICAgKTsKICAgICAgICAgIGF3YWl0IGVtaXQoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICB0eXBlOiAiYXNzaXN0YW50IiwKICAgICAgICAgICAgICBtZXNzYWdlOiB7CiAgICAgICAgICAgICAgICBpZDogYG1zZ18ke2dlbmVyYXRlSWQoKX1gLAogICAgICAgICAgICAgICAgdHlwZTogIm1lc3NhZ2UiLAogICAgICAgICAgICAgICAgcm9sZTogImFzc2lzdGFudCIsCiAgICAgICAgICAgICAgICBjb250ZW50OiBbCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB0eXBlOiAidGV4dCIsCiAgICAgICAgICAgICAgICAgICAgdGV4dDogIlRoZSBmaWxlIGhhcyBiZWVuIGRlbGV0ZWQuIEhvdyBkb2VzIGxldHRpbmcgZ28gb2YgaXQgbWFrZSB5b3UgZmVlbD8iCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHNlc3Npb25faWQ6IHNlc3Npb25JZAogICAgICAgICAgICB9LAogICAgICAgICAgICBpbnRlckV2ZW50RGVsYXkKICAgICAgICAgICk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGF3YWl0IGVtaXQoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICB0eXBlOiAidXNlciIsCiAgICAgICAgICAgICAgbWVzc2FnZTogewogICAgICAgICAgICAgICAgY29udGVudDogWwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgdG9vbF91c2VfaWQ6IHRvb2xJZCwKICAgICAgICAgICAgICAgICAgICB0eXBlOiAidG9vbF9yZXN1bHQiLAogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBGaWxlIG5vdCBmb3VuZDogJHtmaWxlUGF0aH1gCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHNlc3Npb25faWQ6IHNlc3Npb25JZAogICAgICAgICAgICB9LAogICAgICAgICAgICBpbnRlckV2ZW50RGVsYXkKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogU3RyaW5nKGVycik7CiAgICAgICAgYXdhaXQgZW1pdCgKICAgICAgICAgIHsKICAgICAgICAgICAgdHlwZTogInVzZXIiLAogICAgICAgICAgICBtZXNzYWdlOiB7CiAgICAgICAgICAgICAgY29udGVudDogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICB0b29sX3VzZV9pZDogdG9vbElkLAogICAgICAgICAgICAgICAgICB0eXBlOiAidG9vbF9yZXN1bHQiLAogICAgICAgICAgICAgICAgICBjb250ZW50OiBgRXJyb3IgZGVsZXRpbmcgZmlsZTogJHtlcnJvck1lc3NhZ2V9YCwKICAgICAgICAgICAgICAgICAgaXNfZXJyb3I6IHRydWUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHNlc3Npb25faWQ6IHNlc3Npb25JZAogICAgICAgICAgfSwKICAgICAgICAgIDEwMAogICAgICAgICk7CiAgICAgIH0KICAgIH0KICB9CiAgYXdhaXQgZW1pdCgKICAgIHsKICAgICAgdHlwZTogInJlc3VsdCIsCiAgICAgIHN1YnR5cGU6ICJzdWNjZXNzIiwKICAgICAgaXNfZXJyb3I6IGZhbHNlLAogICAgICByZXN1bHQ6IHJlc3BvbnNlLAogICAgICBzZXNzaW9uX2lkOiBzZXNzaW9uSWQKICAgIH0sCiAgICBpbnRlckV2ZW50RGVsYXkKICApOwp9CnZhciBwcm9tcHQgPSBwcm9jZXNzLmFyZ3Yuc2xpY2UoMikuam9pbigiICIpOwppZiAoIXByb21wdCkgewogIGNvbnNvbGUubG9nKAogICAgSlNPTi5zdHJpbmdpZnkoewogICAgICB0eXBlOiAicmVzdWx0IiwKICAgICAgc3VidHlwZTogImVycm9yIiwKICAgICAgaXNfZXJyb3I6IHRydWUsCiAgICAgIHJlc3VsdDogIk5vIHByb21wdCBwcm92aWRlZC4gVXNhZ2U6IGVsaXphIDxwcm9tcHQ+IiwKICAgICAgc2Vzc2lvbl9pZDogc2Vzc2lvbklkCiAgICB9KQogICk7CiAgcHJvY2Vzcy5leGl0KDEpOwp9CnJ1bkVsaXphKHByb21wdCkuY2F0Y2goKGVycikgPT4gewogIGNvbnNvbGUuZXJyb3IoSlNPTi5zdHJpbmdpZnkoewogICAgdHlwZTogInJlc3VsdCIsCiAgICBzdWJ0eXBlOiAiZXJyb3IiLAogICAgaXNfZXJyb3I6IHRydWUsCiAgICByZXN1bHQ6IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBTdHJpbmcoZXJyKSwKICAgIHNlc3Npb25faWQ6IHNlc3Npb25JZAogIH0pKTsKICBwcm9jZXNzLmV4aXQoMSk7Cn0pOwo=";
7
+ //# sourceMappingURL=bundle-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle-content.js","sourceRoot":"","sources":["../../../src/agents/eliza/bundle-content.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2BAA2B;AAC3B,MAAM,CAAC,MAAM,gBAAgB,GAAG,kopBAAkopB,CAAA"}