deepclause-sdk 0.0.88 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +418 -914
  3. package/dist/agent.d.ts +19 -2
  4. package/dist/agent.d.ts.map +1 -1
  5. package/dist/agent.js +221 -4
  6. package/dist/agent.js.map +1 -1
  7. package/dist/cli/config.d.ts +323 -176
  8. package/dist/cli/config.d.ts.map +1 -1
  9. package/dist/cli/config.js +146 -188
  10. package/dist/cli/config.js.map +1 -1
  11. package/dist/cli/index.d.ts +3 -2
  12. package/dist/cli/index.d.ts.map +1 -1
  13. package/dist/cli/index.js +61 -425
  14. package/dist/cli/index.js.map +1 -1
  15. package/dist/cli/login.d.ts +29 -0
  16. package/dist/cli/login.d.ts.map +1 -0
  17. package/dist/cli/login.js +184 -0
  18. package/dist/cli/login.js.map +1 -0
  19. package/dist/cli/readline.d.ts +6 -0
  20. package/dist/cli/readline.d.ts.map +1 -0
  21. package/dist/cli/readline.js +15 -0
  22. package/dist/cli/readline.js.map +1 -0
  23. package/dist/cli/repl-bin.d.ts +9 -0
  24. package/dist/cli/repl-bin.d.ts.map +1 -0
  25. package/dist/cli/repl-bin.js +16 -0
  26. package/dist/cli/repl-bin.js.map +1 -0
  27. package/dist/cli/repl.d.ts +191 -0
  28. package/dist/cli/repl.d.ts.map +1 -0
  29. package/dist/cli/repl.js +1232 -0
  30. package/dist/cli/repl.js.map +1 -0
  31. package/dist/cli/run.d.ts +17 -18
  32. package/dist/cli/run.d.ts.map +1 -1
  33. package/dist/cli/run.js +196 -183
  34. package/dist/cli/run.js.map +1 -1
  35. package/dist/cli/set-backend.d.ts +53 -0
  36. package/dist/cli/set-backend.d.ts.map +1 -0
  37. package/dist/cli/set-backend.js +259 -0
  38. package/dist/cli/set-backend.js.map +1 -0
  39. package/dist/cli/visualize.d.ts +38 -0
  40. package/dist/cli/visualize.d.ts.map +1 -0
  41. package/dist/cli/visualize.js +125 -0
  42. package/dist/cli/visualize.js.map +1 -0
  43. package/dist/compiler.d.ts +5 -52
  44. package/dist/compiler.d.ts.map +1 -1
  45. package/dist/compiler.js +4 -768
  46. package/dist/compiler.js.map +1 -1
  47. package/dist/index.d.ts +29 -2
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +20 -2
  50. package/dist/index.js.map +1 -1
  51. package/dist/judge/index.d.ts +9 -0
  52. package/dist/judge/index.d.ts.map +1 -0
  53. package/dist/judge/index.js +6 -0
  54. package/dist/judge/index.js.map +1 -0
  55. package/dist/judge/jev.d.ts +21 -0
  56. package/dist/judge/jev.d.ts.map +1 -0
  57. package/dist/judge/jev.js +218 -0
  58. package/dist/judge/jev.js.map +1 -0
  59. package/dist/judge/llm.d.ts +23 -0
  60. package/dist/judge/llm.d.ts.map +1 -0
  61. package/dist/judge/llm.js +120 -0
  62. package/dist/judge/llm.js.map +1 -0
  63. package/dist/judge/marshal.d.ts +26 -0
  64. package/dist/judge/marshal.d.ts.map +1 -0
  65. package/dist/judge/marshal.js +266 -0
  66. package/dist/judge/marshal.js.map +1 -0
  67. package/dist/judge/mock.d.ts +28 -0
  68. package/dist/judge/mock.d.ts.map +1 -0
  69. package/dist/judge/mock.js +98 -0
  70. package/dist/judge/mock.js.map +1 -0
  71. package/dist/judge/types.d.ts +95 -0
  72. package/dist/judge/types.d.ts.map +1 -0
  73. package/dist/judge/types.js +23 -0
  74. package/dist/judge/types.js.map +1 -0
  75. package/dist/prolog/bridge.d.ts +5 -1
  76. package/dist/prolog/bridge.d.ts.map +1 -1
  77. package/dist/prolog/bridge.js +29 -1
  78. package/dist/prolog/bridge.js.map +1 -1
  79. package/dist/prolog-src/deepclause_analysis.pl +10 -2
  80. package/dist/prolog-src/deepclause_mi.pl +2522 -118
  81. package/dist/repl/agent.d.ts +72 -0
  82. package/dist/repl/agent.d.ts.map +1 -0
  83. package/dist/repl/agent.js +366 -0
  84. package/dist/repl/agent.js.map +1 -0
  85. package/dist/repl/auth.d.ts +45 -0
  86. package/dist/repl/auth.d.ts.map +1 -0
  87. package/dist/repl/auth.js +116 -0
  88. package/dist/repl/auth.js.map +1 -0
  89. package/dist/repl/backend.d.ts +290 -0
  90. package/dist/repl/backend.d.ts.map +1 -0
  91. package/dist/repl/backend.js +370 -0
  92. package/dist/repl/backend.js.map +1 -0
  93. package/dist/repl/compaction.d.ts +122 -0
  94. package/dist/repl/compaction.d.ts.map +1 -0
  95. package/dist/repl/compaction.js +318 -0
  96. package/dist/repl/compaction.js.map +1 -0
  97. package/dist/repl/export.d.ts +30 -0
  98. package/dist/repl/export.d.ts.map +1 -0
  99. package/dist/repl/export.js +23 -0
  100. package/dist/repl/export.js.map +1 -0
  101. package/dist/repl/frames.d.ts +21 -0
  102. package/dist/repl/frames.d.ts.map +1 -0
  103. package/dist/repl/frames.js +79 -0
  104. package/dist/repl/frames.js.map +1 -0
  105. package/dist/repl/harness-tools.d.ts +74 -0
  106. package/dist/repl/harness-tools.d.ts.map +1 -0
  107. package/dist/repl/harness-tools.js +121 -0
  108. package/dist/repl/harness-tools.js.map +1 -0
  109. package/dist/repl/highlight.d.ts +30 -0
  110. package/dist/repl/highlight.d.ts.map +1 -0
  111. package/dist/repl/highlight.js +285 -0
  112. package/dist/repl/highlight.js.map +1 -0
  113. package/dist/repl/history.d.ts +234 -0
  114. package/dist/repl/history.d.ts.map +1 -0
  115. package/dist/repl/history.js +661 -0
  116. package/dist/repl/history.js.map +1 -0
  117. package/dist/repl/index.d.ts +120 -0
  118. package/dist/repl/index.d.ts.map +1 -0
  119. package/dist/repl/index.js +107 -0
  120. package/dist/repl/index.js.map +1 -0
  121. package/dist/repl/judge.d.ts +51 -0
  122. package/dist/repl/judge.d.ts.map +1 -0
  123. package/dist/repl/judge.js +58 -0
  124. package/dist/repl/judge.js.map +1 -0
  125. package/dist/repl/markdown.d.ts +25 -0
  126. package/dist/repl/markdown.d.ts.map +1 -0
  127. package/dist/repl/markdown.js +103 -0
  128. package/dist/repl/markdown.js.map +1 -0
  129. package/dist/repl/picker.d.ts +34 -0
  130. package/dist/repl/picker.d.ts.map +1 -0
  131. package/dist/repl/picker.js +81 -0
  132. package/dist/repl/picker.js.map +1 -0
  133. package/dist/repl/project-context.d.ts +16 -0
  134. package/dist/repl/project-context.d.ts.map +1 -0
  135. package/dist/repl/project-context.js +23 -0
  136. package/dist/repl/project-context.js.map +1 -0
  137. package/dist/repl/render.d.ts +160 -0
  138. package/dist/repl/render.d.ts.map +1 -0
  139. package/dist/repl/render.js +715 -0
  140. package/dist/repl/render.js.map +1 -0
  141. package/dist/repl/session.d.ts +356 -0
  142. package/dist/repl/session.d.ts.map +1 -0
  143. package/dist/repl/session.js +1275 -0
  144. package/dist/repl/session.js.map +1 -0
  145. package/dist/repl/status.d.ts +100 -0
  146. package/dist/repl/status.d.ts.map +1 -0
  147. package/dist/repl/status.js +218 -0
  148. package/dist/repl/status.js.map +1 -0
  149. package/dist/repl/tools.d.ts +53 -0
  150. package/dist/repl/tools.d.ts.map +1 -0
  151. package/dist/repl/tools.js +307 -0
  152. package/dist/repl/tools.js.map +1 -0
  153. package/dist/repl/toolset.d.ts +32 -0
  154. package/dist/repl/toolset.d.ts.map +1 -0
  155. package/dist/repl/toolset.js +82 -0
  156. package/dist/repl/toolset.js.map +1 -0
  157. package/dist/repl/tui/editor.d.ts +17 -0
  158. package/dist/repl/tui/editor.d.ts.map +1 -0
  159. package/dist/repl/tui/editor.js +39 -0
  160. package/dist/repl/tui/editor.js.map +1 -0
  161. package/dist/repl/tui/status-bar.d.ts +26 -0
  162. package/dist/repl/tui/status-bar.d.ts.map +1 -0
  163. package/dist/repl/tui/status-bar.js +47 -0
  164. package/dist/repl/tui/status-bar.js.map +1 -0
  165. package/dist/repl/tui/theme.d.ts +30 -0
  166. package/dist/repl/tui/theme.d.ts.map +1 -0
  167. package/dist/repl/tui/theme.js +81 -0
  168. package/dist/repl/tui/theme.js.map +1 -0
  169. package/dist/repl/tui/transcript.d.ts +39 -0
  170. package/dist/repl/tui/transcript.d.ts.map +1 -0
  171. package/dist/repl/tui/transcript.js +123 -0
  172. package/dist/repl/tui/transcript.js.map +1 -0
  173. package/dist/runner.d.ts +145 -13
  174. package/dist/runner.d.ts.map +1 -1
  175. package/dist/runner.js +600 -282
  176. package/dist/runner.js.map +1 -1
  177. package/dist/sdk.d.ts.map +1 -1
  178. package/dist/sdk.js +56 -32
  179. package/dist/sdk.js.map +1 -1
  180. package/dist/system/assets/docs/AGENT_PROMPT.md +1373 -0
  181. package/dist/system/assets/docs/DML_AUTHORING.md +195 -0
  182. package/dist/system/assets/docs/DML_REFERENCE.md +393 -72
  183. package/dist/system/assets/docs/HARNESS_EXAMPLES.md +172 -0
  184. package/dist/system/assets/docs/HARNESS_PATTERNS.md +562 -0
  185. package/dist/system/assets/docs/META_PROMPT.md +68 -0
  186. package/dist/system/assets/docs/PROLOG_SNIPPETS.md +117 -0
  187. package/dist/system/assets/index.d.ts +9 -17
  188. package/dist/system/assets/index.d.ts.map +1 -1
  189. package/dist/system/assets/index.js +26 -85
  190. package/dist/system/assets/index.js.map +1 -1
  191. package/dist/system/runtime/agentvm-manager.d.ts +9 -2
  192. package/dist/system/runtime/agentvm-manager.d.ts.map +1 -1
  193. package/dist/system/runtime/agentvm-manager.js +70 -44
  194. package/dist/system/runtime/agentvm-manager.js.map +1 -1
  195. package/dist/system/runtime/media.d.ts +23 -0
  196. package/dist/system/runtime/media.d.ts.map +1 -0
  197. package/dist/system/runtime/media.js +55 -0
  198. package/dist/system/runtime/media.js.map +1 -0
  199. package/dist/system/runtime/shell-limits.d.ts +21 -0
  200. package/dist/system/runtime/shell-limits.d.ts.map +1 -0
  201. package/dist/system/runtime/shell-limits.js +39 -0
  202. package/dist/system/runtime/shell-limits.js.map +1 -0
  203. package/dist/system/runtime/shell-manager.d.ts +8 -3
  204. package/dist/system/runtime/shell-manager.d.ts.map +1 -1
  205. package/dist/system/runtime/shell-manager.js +56 -39
  206. package/dist/system/runtime/shell-manager.js.map +1 -1
  207. package/dist/system/runtime/shell-tool-events.js +5 -0
  208. package/dist/system/runtime/shell-tool-events.js.map +1 -1
  209. package/dist/system/runtime/token-usage.d.ts +2 -0
  210. package/dist/system/runtime/token-usage.d.ts.map +1 -1
  211. package/dist/system/runtime/token-usage.js +7 -0
  212. package/dist/system/runtime/token-usage.js.map +1 -1
  213. package/dist/tools.d.ts +3 -21
  214. package/dist/tools.d.ts.map +1 -1
  215. package/dist/tools.js +14 -168
  216. package/dist/tools.js.map +1 -1
  217. package/dist/types.d.ts +149 -118
  218. package/dist/types.d.ts.map +1 -1
  219. package/dist/validate.d.ts +19 -0
  220. package/dist/validate.d.ts.map +1 -0
  221. package/dist/validate.js +338 -0
  222. package/dist/validate.js.map +1 -0
  223. package/dist/visualize/index.d.ts +52 -0
  224. package/dist/visualize/index.d.ts.map +1 -0
  225. package/dist/visualize/index.js +189 -0
  226. package/dist/visualize/index.js.map +1 -0
  227. package/package.json +17 -15
  228. package/src/prolog-src/deepclause_analysis.pl +10 -2
  229. package/src/prolog-src/deepclause_mi.pl +2522 -118
  230. package/dist/cli/commands.d.ts +0 -42
  231. package/dist/cli/commands.d.ts.map +0 -1
  232. package/dist/cli/commands.js +0 -246
  233. package/dist/cli/commands.js.map +0 -1
  234. package/dist/cli/compile.d.ts +0 -99
  235. package/dist/cli/compile.d.ts.map +0 -1
  236. package/dist/cli/compile.js +0 -363
  237. package/dist/cli/compile.js.map +0 -1
  238. package/dist/cli/default-skills.d.ts +0 -10
  239. package/dist/cli/default-skills.d.ts.map +0 -1
  240. package/dist/cli/default-skills.js +0 -206
  241. package/dist/cli/default-skills.js.map +0 -1
  242. package/dist/cli/interactive.d.ts +0 -2
  243. package/dist/cli/interactive.d.ts.map +0 -1
  244. package/dist/cli/interactive.js +0 -20
  245. package/dist/cli/interactive.js.map +0 -1
  246. package/dist/cli/mcp.d.ts +0 -56
  247. package/dist/cli/mcp.d.ts.map +0 -1
  248. package/dist/cli/mcp.js +0 -138
  249. package/dist/cli/mcp.js.map +0 -1
  250. package/dist/cli/prompt.d.ts +0 -2
  251. package/dist/cli/prompt.d.ts.map +0 -1
  252. package/dist/cli/prompt.js +0 -2
  253. package/dist/cli/prompt.js.map +0 -1
  254. package/dist/cli/search.d.ts +0 -19
  255. package/dist/cli/search.d.ts.map +0 -1
  256. package/dist/cli/search.js +0 -189
  257. package/dist/cli/search.js.map +0 -1
  258. package/dist/cli/tool-args.d.ts +0 -2
  259. package/dist/cli/tool-args.d.ts.map +0 -1
  260. package/dist/cli/tool-args.js +0 -39
  261. package/dist/cli/tool-args.js.map +0 -1
  262. package/dist/cli/tools.d.ts +0 -36
  263. package/dist/cli/tools.d.ts.map +0 -1
  264. package/dist/cli/tools.js +0 -229
  265. package/dist/cli/tools.js.map +0 -1
  266. package/dist/cli/tui/index.d.ts +0 -22
  267. package/dist/cli/tui/index.d.ts.map +0 -1
  268. package/dist/cli/tui/index.js +0 -29
  269. package/dist/cli/tui/index.js.map +0 -1
  270. package/dist/cli/tui.d.ts +0 -167
  271. package/dist/cli/tui.d.ts.map +0 -1
  272. package/dist/cli/tui.js +0 -5228
  273. package/dist/cli/tui.js.map +0 -1
  274. package/dist/compiler_prompt.d.ts +0 -20
  275. package/dist/compiler_prompt.d.ts.map +0 -1
  276. package/dist/compiler_prompt.js +0 -870
  277. package/dist/compiler_prompt.js.map +0 -1
  278. package/dist/deepclause-cli.skill +0 -0
  279. package/dist/prolog-src/deepclause_mi.pl.bak +0 -570
  280. package/dist/system/assets/compactors/default-memory-compactor.dml +0 -6
  281. package/dist/system/assets/docs/CONDUCTOR_PROMPT.md +0 -105
  282. package/dist/system/assets/docs/DML_COMPILER_PROMPT.md +0 -700
  283. package/dist/system/assets/docs/TUI.md +0 -150
  284. package/dist/system/assets/recipes/deepclause-coding-workflow/SKILL.md +0 -100
  285. package/dist/system/assets/skills/conductor.dml +0 -76
  286. package/dist/system/assets/skills/deep-planner.dml +0 -412
  287. package/dist/system/assets/skills/plan.dml +0 -429
  288. package/dist/system/assets/skills/security-planner.dml +0 -337
  289. package/dist/system/assets/skills/skill-creator.dml +0 -187
  290. package/dist/system/runtime/catalog-recipes.d.ts +0 -24
  291. package/dist/system/runtime/catalog-recipes.d.ts.map +0 -1
  292. package/dist/system/runtime/catalog-recipes.js +0 -273
  293. package/dist/system/runtime/catalog-recipes.js.map +0 -1
  294. package/dist/system/runtime/catalog-skills.d.ts +0 -50
  295. package/dist/system/runtime/catalog-skills.d.ts.map +0 -1
  296. package/dist/system/runtime/catalog-skills.js +0 -152
  297. package/dist/system/runtime/catalog-skills.js.map +0 -1
  298. package/dist/system/runtime/conductor.d.ts +0 -105
  299. package/dist/system/runtime/conductor.d.ts.map +0 -1
  300. package/dist/system/runtime/conductor.js +0 -732
  301. package/dist/system/runtime/conductor.js.map +0 -1
  302. package/dist/system/runtime/console-capture.d.ts +0 -9
  303. package/dist/system/runtime/console-capture.d.ts.map +0 -1
  304. package/dist/system/runtime/console-capture.js +0 -67
  305. package/dist/system/runtime/console-capture.js.map +0 -1
  306. package/dist/system/runtime/dml-executor.d.ts +0 -52
  307. package/dist/system/runtime/dml-executor.d.ts.map +0 -1
  308. package/dist/system/runtime/dml-executor.js +0 -203
  309. package/dist/system/runtime/dml-executor.js.map +0 -1
  310. package/dist/system/runtime/runtime-tools.d.ts +0 -31
  311. package/dist/system/runtime/runtime-tools.d.ts.map +0 -1
  312. package/dist/system/runtime/runtime-tools.js +0 -312
  313. package/dist/system/runtime/runtime-tools.js.map +0 -1
  314. package/dist/system/runtime/skill-creator.d.ts +0 -38
  315. package/dist/system/runtime/skill-creator.d.ts.map +0 -1
  316. package/dist/system/runtime/skill-creator.js +0 -763
  317. package/dist/system/runtime/skill-creator.js.map +0 -1
  318. package/src/prolog-src/deepclause_mi.pl.bak +0 -570
@@ -0,0 +1,117 @@
1
+ # Common Prolog/DML snippets (tested)
2
+
3
+ Tested against the bundled SWI-Prolog. These are **glue**, not the shape of a
4
+ skill: use a snippet to bind or check a value between `task/N` steps, not to
5
+ write a Prolog algorithm. Prefer a `task/N`/`prompt/N` step when the
6
+ transformation is open-ended (`DML_AUTHORING.md` §0).
7
+ `Y` is the output; `>>` introduces a yall lambda.
8
+
9
+ ## Strings
10
+
11
+ | Task | Snippet | Result |
12
+ |---|---|---|
13
+ | Split on a separator | `split_string("a,b,,c", ",", "", L)` | `[a,b,'',c]` |
14
+ | Join | `atomic_list_concat([a,b,c], "-", S)` | `a-b-c` |
15
+ | Join (strings) | `atomics_to_string([a,b,c], "-", S)` | `a-b-c` |
16
+ | Lower / upper | `string_lower("AbC", L)` / `string_upper("AbC", U)` | `abc` / `ABC` |
17
+ | Atom case | `downcase_atom('ABC', L)` / `upcase_atom('abc', U)` | `abc` / `ABC` |
18
+ | Collapse whitespace | `normalize_space(string(T), " a b ")` | `a b` |
19
+ | Build a string | `format(string(S), "~w/~w", [A, B])` | `a/b` |
20
+ | Number <-> string | `number_string(42, S)` / `atom_number("42", N)` | `"42"` / `42` |
21
+ | Substring test | `sub_string(S, _, _, _, "needle")` | true |
22
+ | Substring test (atom) | `sub_atom(A, _, _, _, needle)` | true |
23
+ | Concat | `string_concat("a", "b", S)` | `ab` |
24
+ | Char list | `string_chars("abc", L)` | `[a,b,c]` |
25
+ | JSON string -> dict | `atom_json_dict('{"a":[1,2]}', D, []), get_dict(a, D, A)` | `[1,2]` |
26
+
27
+ In `task/`, `output/`, `answer/` description strings, `{Var}` interpolates the
28
+ bound value; in `format/3` use `~w`.
29
+
30
+ ## Regex (SWI PCRE — verified behavior)
31
+
32
+ | Task | Snippet | Result |
33
+ |---|---|---|
34
+ | Match test | `re_match("^[a-z]+[0-9]+$", S)` | true/false |
35
+ | Match with options | `re_match("(?i)hello", S, [])` | true (case-insensitive) |
36
+ | Capture groups | `re_matchsub("(?<user>[a-z]+)-(?<id>[0-9]+)", S, M, []), get_dict(id, M, Id)` | dict `_{0:..., user:..., id:...}` |
37
+ | Replace (first match) | `re_replace("[0-9]+", "#", "a1b22c333", R)` | `a#b22c333` |
38
+ | Collect every match | `re_foldl([M,Acc,[M|Acc]]>>true, "[0-9]+", "a1b22c333", [], L, []), reverse(L, Ms)` | `[_{0:"1"},_{0:"22"},_{0:"333"}]` |
39
+
40
+ Notes: `re_replace/4` here replaces only the **first** match — collect all matches
41
+ with `re_foldl/6` (or loop) to replace every one. `re_match/3` takes an options
42
+ list, not a capture variable; use `re_matchsub/4` to capture groups. Prefix a
43
+ pattern with `(?i)` for case-insensitive matching.
44
+
45
+ ## Wildcards (`wildcard_match/2`)
46
+
47
+ | Pattern | Example | Result |
48
+ |---|---|---|
49
+ | `*` any run | `wildcard_match("*.dml", "skill.dml")` | true |
50
+ | `?` one char | `wildcard_match("a?c", "abc")` | true |
51
+ | `[a-z]` class | `wildcard_match("[a-z]*", "abc")` | true |
52
+ | `{a,b}` alternation | `wildcard_match("{a,b}*", "bzz")` | true |
53
+
54
+ ## Lists
55
+
56
+ | Task | Snippet | Result |
57
+ |---|---|---|
58
+ | Membership | `member(X, [1,2,3])` | enumerates |
59
+ | Concatenate | `append([1,2], [3], L)` | `[1,2,3]` |
60
+ | Length | `length([a,b,c], N)` | `3` |
61
+ | Enumerate range | `numlist(1, 5, L)` | `[1,2,3,4,5]` |
62
+ | Collect | `findall(X, between(1,3,X), L)` | `[1,2,3]` |
63
+ | Map | `maplist([X,Y]>>(Y is X*X), [1,2,3], L)` | `[1,4,9]` |
64
+ | Filter (keep) | `include([X]>>(0 is X mod 2), [1,2,3,4], L)` | `[2,4]` |
65
+ | Filter (drop) | `exclude([X]>>(0 is X mod 2), [1,2,3,4], L)` | `[1,3]` |
66
+ | Fold | `foldl([X,A0,A]>>(A is A0+X), [1,2,3], 0, S)` | `6` |
67
+ | Sum / min / max | `sum_list([1,2,3], S)` / `min_list/2` / `max_list/2` / `max_member/2` | `6` |
68
+ | Aggregate | `aggregate_all(sum(X), member(X,[1,2,3]), S)` | `6` |
69
+ | Count | `aggregate_all(count, between(1,5,_), N)` | `5` |
70
+ | Sort + dedupe | `sort([3,1,2,1], L)` | `[1,2,3]` |
71
+ | Stable sort | `msort([3,1,2], L)` | `[1,2,3]` |
72
+ | Sort by value (pairs) | `sort(2, @>=, [a-1,b-3,c-2], L)` | `[b-3,c-2,a-1]` |
73
+ | Key sort (stable) | `keysort([b-2,a-1,c-2], L)` | `[a-1,b-2,c-2]` |
74
+ | Dedupe | `list_to_set([a,b,a,c], L)` | `[a,b,c]` |
75
+ | Set difference | `subtract([1,2,3,4], [2], L)` | `[1,3,4]` |
76
+ | Intersection / union | `intersection([1,2,3],[2,3,4],L)` / `union([1,2],[2,3],L)` | `[2,3]` / `[1,2,3]` |
77
+ | Partition | `partition([X]>>(0 is X mod 2), [1,2,3,4], E, O)` | `E=[2,4], O=[1,3]` |
78
+ | Index (0-based) | `nth0(1, [a,b,c], E)` | `b` |
79
+ | Last | `last([a,b,c], E)` | `c` |
80
+ | Group by key | `group_pairs_by_key([a-1,a-2,b-3], G)` | `[a-[1,2], b-[3]]` |
81
+
82
+ `sort/4`'s first argument is the **argument position** to sort on (here `2` =
83
+ the value in each `Key-Value`), not a sort mode.
84
+
85
+ ## Dicts and data
86
+
87
+ | Task | Snippet |
88
+ |---|---|
89
+ | Read a field | `D = point{x:1,y:2}, get_dict(x, D, X)` |
90
+ | Keys | `dict_keys(a{x:1,y:2}, K)` → `[x,y]` |
91
+ | Add/replace a field | `put_dict(score, a{name:"n"}, 9, D2)` |
92
+
93
+ ## Numbers and time
94
+
95
+ | Task | Snippet |
96
+ |---|---|
97
+ | Range (generator) | `between(1, 6, N)` |
98
+ | Random int in range | `random_between(1, 6, N)` |
99
+ | Epoch seconds | `get_time(T)` |
100
+ | Broken-down time | `get_time(T), stamp_date_time(T, DT, local)` |
101
+ | Format a time | `format_time(string(S), "%Y-%m-%d", 1700000000)` → `2023-11-15` |
102
+
103
+ ## Things that bite
104
+
105
+ - `re_replace/4` replaces only the **first** match (verified); use `re_foldl/6`
106
+ to collect all matches.
107
+ - `re_match/3` takes an options list; use `re_matchsub/4` for capture groups.
108
+ - `sort/4`'s first argument is the argument position, not a mode.
109
+ - A top-level `:- use_module(library(clpfd)).` is required before `#=`/`ins`.
110
+ - Untrusted data (URLs, file contents, user text) goes through files/stdin,
111
+ never interpolated into a shell command.
112
+ - `{Var}` interpolates **only** in `task/N`/`prompt/N` descriptions; use
113
+ `format/3` (`~w`/`~q`/`~s`) everywhere else. A string literal escapes `\n`,
114
+ `\"`, `\\`; a quoted atom doubles `'` (`'it''s'`).
115
+ - Building a command: single-quote known paths/flags, pass data via files/stdin,
116
+ never splice untrusted text in. Write foreign code to a file (quoted heredoc
117
+ `<<'EOF'`) rather than embedding it in a DML string.
@@ -1,26 +1,18 @@
1
- export type SystemSkillAssetName = 'conductor' | 'skill-creator' | 'plan' | 'deep-planner' | 'security-planner';
2
- export type SystemPromptAssetName = 'conductor' | 'skill-creator' | 'task';
3
- export type SystemCompactorAssetName = 'default-session-compactor' | 'default-loop-compactor';
4
- export type WorkspaceDocAssetName = 'tui' | 'dml-reference';
1
+ export type SystemPromptAssetName = 'task';
2
+ export type WorkspaceDocAssetName = 'dml-reference' | 'dml-authoring' | 'harness-examples' | 'harness-patterns' | 'prolog-snippets';
5
3
  interface SystemAssetLookupOptions {
6
4
  workspaceRoot?: string;
7
5
  workspacePath?: string;
8
6
  }
9
- export declare function getSystemSkillAssetPath(name: SystemSkillAssetName): string;
10
7
  export declare function getSystemPromptAssetPath(name: SystemPromptAssetName): string;
11
- export declare function getSystemCompactorAssetPath(name: SystemCompactorAssetName): string;
12
8
  export declare function getWorkspaceDocAssetPath(name: WorkspaceDocAssetName): string;
13
- export declare function getPackagedRecipeAssetsDir(): string;
14
- export declare function getWorkspaceRecipeAssetsDir(workspaceRoot: string): string;
15
- export declare function getSystemAssetSourcePaths(workspaceRoot?: string): {
16
- conductorDml: string;
17
- conductorPrompt: string;
18
- planDml: string;
19
- skillCreatorDml: string;
20
- skillCreatorPrompt: string;
21
- taskPrompt: string;
22
- };
23
- export declare function readSystemSkillAsset(name: SystemSkillAssetName, options?: SystemAssetLookupOptions): Promise<string>;
9
+ /** Bundled authoring-agent system prompt (`AGENT_PROMPT.md`). */
10
+ export declare function getAgentPromptAssetPath(): string;
11
+ /**
12
+ * Read the authoring-agent system prompt, preferring a workspace override at
13
+ * `.deepclause/system/AGENT_PROMPT.md` over the bundled asset.
14
+ */
15
+ export declare function readAgentPromptAsset(options?: SystemAssetLookupOptions): Promise<string>;
24
16
  export declare function readSystemPromptAsset(name: SystemPromptAssetName, options?: SystemAssetLookupOptions): Promise<string>;
25
17
  export {};
26
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/system/assets/index.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,eAAe,GAAG,MAAM,GAAG,cAAc,GAAG,kBAAkB,CAAC;AAChH,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,eAAe,GAAG,MAAM,CAAC;AAC3E,MAAM,MAAM,wBAAwB,GAAG,2BAA2B,GAAG,wBAAwB,CAAC;AAC9F,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,eAAe,CAAC;AAU5D,UAAU,wBAAwB;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAqCD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAE1E;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAE5E;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,wBAAwB,GAAG,MAAM,CAElF;AAWD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAE5E;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAED,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEzE;AA8FD,wBAAgB,yBAAyB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB,CASA;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,oBAAoB,EAC1B,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,qBAAqB,EAC3B,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,MAAM,CAAC,CAEjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/system/assets/index.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAC3C,MAAM,MAAM,qBAAqB,GAC7B,eAAe,GACf,eAAe,GACf,kBAAkB,GAClB,kBAAkB,GAClB,iBAAiB,CAAC;AAOtB,UAAU,wBAAwB;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AASD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAE5E;AAkBD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAE5E;AAED,iEAAiE;AACjE,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,MAAM,CAAC,CAUlG;AAkDD,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,qBAAqB,EAC3B,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,MAAM,CAAC,CAEjB"}
@@ -4,68 +4,53 @@ import { dirname, join, resolve } from 'path';
4
4
  import { fileURLToPath } from 'url';
5
5
  const __filename = fileURLToPath(import.meta.url);
6
6
  const __dirname = dirname(__filename);
7
- const SKILLS_DIR = join(__dirname, 'skills');
8
- const COMPACTORS_DIR = join(__dirname, 'compactors');
9
7
  const DOCS_DIR = join(__dirname, 'docs');
10
- const RECIPES_DIR = join(__dirname, 'recipes');
11
8
  const SYSTEM_OVERRIDE_DIR = '.deepclause/system';
12
- function getSystemSkillFileName(name) {
13
- switch (name) {
14
- case 'conductor':
15
- return 'conductor.dml';
16
- case 'skill-creator':
17
- return 'skill-creator.dml';
18
- case 'plan':
19
- return 'plan.dml';
20
- case 'deep-planner':
21
- return 'deep-planner.dml';
22
- case 'security-planner':
23
- return 'security-planner.dml';
24
- }
25
- }
26
9
  function getSystemPromptFileName(name) {
27
10
  switch (name) {
28
- case 'conductor':
29
- return 'CONDUCTOR_PROMPT.md';
30
- case 'skill-creator':
31
- return 'DML_COMPILER_PROMPT.md';
32
11
  case 'task':
33
12
  return 'TASK_PROMPT.md';
34
13
  }
35
14
  }
36
- function getSystemCompactorFileName(name) {
37
- switch (name) {
38
- case 'default-session-compactor':
39
- return 'default-session-compactor.dml';
40
- case 'default-loop-compactor':
41
- return 'default-loop-compactor.dml';
42
- }
43
- }
44
- export function getSystemSkillAssetPath(name) {
45
- return join(SKILLS_DIR, getSystemSkillFileName(name));
46
- }
47
15
  export function getSystemPromptAssetPath(name) {
48
16
  return join(DOCS_DIR, getSystemPromptFileName(name));
49
17
  }
50
- export function getSystemCompactorAssetPath(name) {
51
- return join(COMPACTORS_DIR, getSystemCompactorFileName(name));
52
- }
53
18
  function getWorkspaceDocFileName(name) {
54
19
  switch (name) {
55
- case 'tui':
56
- return 'TUI.md';
57
20
  case 'dml-reference':
58
21
  return 'DML_REFERENCE.md';
22
+ case 'dml-authoring':
23
+ return 'DML_AUTHORING.md';
24
+ case 'harness-examples':
25
+ return 'HARNESS_EXAMPLES.md';
26
+ case 'harness-patterns':
27
+ return 'HARNESS_PATTERNS.md';
28
+ case 'prolog-snippets':
29
+ return 'PROLOG_SNIPPETS.md';
59
30
  }
60
31
  }
61
32
  export function getWorkspaceDocAssetPath(name) {
62
33
  return join(DOCS_DIR, getWorkspaceDocFileName(name));
63
34
  }
64
- export function getPackagedRecipeAssetsDir() {
65
- return RECIPES_DIR;
35
+ /** Bundled authoring-agent system prompt (`AGENT_PROMPT.md`). */
36
+ export function getAgentPromptAssetPath() {
37
+ return join(DOCS_DIR, 'AGENT_PROMPT.md');
66
38
  }
67
- export function getWorkspaceRecipeAssetsDir(workspaceRoot) {
68
- return join(workspaceRoot, SYSTEM_OVERRIDE_DIR, 'recipes');
39
+ /**
40
+ * Read the authoring-agent system prompt, preferring a workspace override at
41
+ * `.deepclause/system/AGENT_PROMPT.md` over the bundled asset.
42
+ */
43
+ export async function readAgentPromptAsset(options = {}) {
44
+ const overridePath = findWorkspaceOverridePathSync('AGENT_PROMPT.md', options);
45
+ if (overridePath) {
46
+ try {
47
+ return await readFile(overridePath, 'utf8');
48
+ }
49
+ catch {
50
+ // Fall through to the bundled asset.
51
+ }
52
+ }
53
+ return readFile(getAgentPromptAssetPath(), 'utf8');
69
54
  }
70
55
  function getWorkspaceOverridePath(workspaceRoot, fileName) {
71
56
  return join(workspaceRoot, SYSTEM_OVERRIDE_DIR, fileName);
@@ -91,19 +76,6 @@ function findWorkspaceOverridePathSync(fileName, options = {}) {
91
76
  }
92
77
  return null;
93
78
  }
94
- async function resolveSystemSkillAssetPath(name, options = {}) {
95
- const overridePath = findWorkspaceOverridePathSync(getSystemSkillFileName(name), options);
96
- if (overridePath) {
97
- try {
98
- await access(overridePath);
99
- return overridePath;
100
- }
101
- catch {
102
- // Fall back to the packaged asset when no workspace override exists.
103
- }
104
- }
105
- return getSystemSkillAssetPath(name);
106
- }
107
79
  async function resolveSystemPromptAssetPath(name, options = {}) {
108
80
  const overridePath = findWorkspaceOverridePathSync(getSystemPromptFileName(name), options);
109
81
  if (overridePath) {
@@ -117,37 +89,6 @@ async function resolveSystemPromptAssetPath(name, options = {}) {
117
89
  }
118
90
  return getSystemPromptAssetPath(name);
119
91
  }
120
- function resolveSystemSkillAssetPathSync(name, workspaceRoot) {
121
- if (workspaceRoot) {
122
- const overridePath = getWorkspaceOverridePath(workspaceRoot, getSystemSkillFileName(name));
123
- if (existsSync(overridePath)) {
124
- return overridePath;
125
- }
126
- }
127
- return getSystemSkillAssetPath(name);
128
- }
129
- function resolveSystemPromptAssetPathSync(name, workspaceRoot) {
130
- if (workspaceRoot) {
131
- const overridePath = getWorkspaceOverridePath(workspaceRoot, getSystemPromptFileName(name));
132
- if (existsSync(overridePath)) {
133
- return overridePath;
134
- }
135
- }
136
- return getSystemPromptAssetPath(name);
137
- }
138
- export function getSystemAssetSourcePaths(workspaceRoot) {
139
- return {
140
- conductorDml: resolveSystemSkillAssetPathSync('conductor', workspaceRoot),
141
- conductorPrompt: resolveSystemPromptAssetPathSync('conductor', workspaceRoot),
142
- planDml: resolveSystemSkillAssetPathSync('plan', workspaceRoot),
143
- skillCreatorDml: resolveSystemSkillAssetPathSync('skill-creator', workspaceRoot),
144
- skillCreatorPrompt: resolveSystemPromptAssetPathSync('skill-creator', workspaceRoot),
145
- taskPrompt: resolveSystemPromptAssetPathSync('task', workspaceRoot),
146
- };
147
- }
148
- export async function readSystemSkillAsset(name, options = {}) {
149
- return readFile(await resolveSystemSkillAssetPath(name, options), 'utf8');
150
- }
151
92
  export async function readSystemPromptAsset(name, options = {}) {
152
93
  return readFile(await resolveSystemPromptAssetPath(name, options), 'utf8');
153
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/system/assets/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/system/assets/index.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,12 @@ export interface ShellExecResult {
7
7
  pid?: number;
8
8
  backend: 'host' | 'sandbox';
9
9
  backendLabel?: string;
10
+ /** Wall-clock duration of the command, in milliseconds. */
11
+ timeMs: number;
12
+ }
13
+ export interface ShellExecOptions {
14
+ /** Wall-clock timeout in ms; overrides `DC_HOST_SHELL_TIMEOUT_MS`. 0 disables. */
15
+ timeoutMs?: number;
10
16
  }
11
17
  export interface ShellExecStartEvent {
12
18
  command: string;
@@ -39,10 +45,11 @@ export interface ShellExecObserver {
39
45
  export declare class AgentVMManager {
40
46
  private readonly workspacePath;
41
47
  private readonly network;
48
+ private readonly defaultTimeoutMs?;
42
49
  private vm;
43
50
  readonly kind: "sandbox";
44
- constructor(workspacePath: string, network: boolean);
45
- exec(command: string, signal?: AbortSignal, observer?: ShellExecObserver): Promise<ShellExecResult>;
51
+ constructor(workspacePath: string, network: boolean, defaultTimeoutMs?: number | undefined);
52
+ exec(command: string, signal?: AbortSignal, observer?: ShellExecObserver, options?: ShellExecOptions): Promise<ShellExecResult>;
46
53
  dispose(): Promise<void>;
47
54
  private getVM;
48
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agentvm-manager.d.ts","sourceRoot":"","sources":["../../../src/system/runtime/agentvm-manager.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAChD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAChD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC9C;AAED,qBAAa,cAAc;IAKvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL1B,OAAO,CAAC,EAAE,CAAwB;IAClC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;gBAGhB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,OAAO;IAG7B,IAAI,CACR,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,OAAO,CAAC,eAAe,CAAC;IAoFrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAOhB,KAAK;CAepB"}
1
+ {"version":3,"file":"agentvm-manager.d.ts","sourceRoot":"","sources":["../../../src/system/runtime/agentvm-manager.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAChD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAChD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC9C;AAED,qBAAa,cAAc;IAKvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IANpC,OAAO,CAAC,EAAE,CAAwB;IAClC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;gBAGhB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,OAAO,EAChB,gBAAgB,CAAC,EAAE,MAAM,YAAA;IAGtC,IAAI,CACR,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,iBAAiB,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC;IAyGrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAOhB,KAAK;CAepB"}
@@ -1,66 +1,87 @@
1
+ import { resolveShellTimeoutMs } from './shell-limits.js';
1
2
  let AgentVMClass = null;
2
3
  export class AgentVMManager {
3
4
  workspacePath;
4
5
  network;
6
+ defaultTimeoutMs;
5
7
  vm = null;
6
8
  kind = 'sandbox';
7
- constructor(workspacePath, network) {
9
+ constructor(workspacePath, network, defaultTimeoutMs) {
8
10
  this.workspacePath = workspacePath;
9
11
  this.network = network;
12
+ this.defaultTimeoutMs = defaultTimeoutMs;
10
13
  }
11
- async exec(command, signal, observer) {
14
+ async exec(command, signal, observer, options) {
12
15
  if (signal?.aborted) {
13
16
  throw abortError(signal.reason);
14
17
  }
18
+ const startedAt = Date.now();
19
+ const timeoutMs = resolveShellTimeoutMs(options?.timeoutMs ?? this.defaultTimeoutMs);
15
20
  const vm = await this.getVM();
16
21
  observer?.onStart?.({ command, backend: this.kind, backendLabel: 'sandbox[agentvm]' });
17
- const result = signal
18
- ? await new Promise((resolve, reject) => {
19
- let settled = false;
20
- const finishResolve = (value) => {
21
- if (settled) {
22
+ let timedOut = false;
23
+ const result = await new Promise((resolve, reject) => {
24
+ let settled = false;
25
+ let timer = null;
26
+ const cleanup = () => {
27
+ signal?.removeEventListener('abort', onAbort);
28
+ if (timer) {
29
+ clearTimeout(timer);
30
+ timer = null;
31
+ }
32
+ };
33
+ const finishResolve = (value) => {
34
+ if (settled)
35
+ return;
36
+ settled = true;
37
+ cleanup();
38
+ resolve(value);
39
+ };
40
+ const finishReject = (error) => {
41
+ if (settled)
42
+ return;
43
+ settled = true;
44
+ cleanup();
45
+ reject(error);
46
+ };
47
+ const onAbort = () => {
48
+ void this.dispose().catch(() => { });
49
+ finishReject(abortError(signal?.reason));
50
+ };
51
+ signal?.addEventListener('abort', onAbort, { once: true });
52
+ if (timeoutMs > 0) {
53
+ timer = setTimeout(() => {
54
+ if (settled || signal?.aborted)
22
55
  return;
23
- }
24
- settled = true;
25
- cleanup();
26
- resolve(value);
27
- };
28
- const finishReject = (error) => {
29
- if (settled) {
30
- return;
31
- }
32
- settled = true;
33
- cleanup();
34
- reject(error);
35
- };
36
- const cleanup = () => {
37
- signal.removeEventListener('abort', onAbort);
38
- };
39
- const onAbort = () => {
56
+ timedOut = true;
40
57
  void this.dispose().catch(() => { });
58
+ finishResolve({
59
+ stdout: '',
60
+ stderr: `Command timed out after ${timeoutMs}ms`,
61
+ exitCode: 124,
62
+ });
63
+ }, timeoutMs);
64
+ timer.unref?.();
65
+ }
66
+ void vm.exec(command)
67
+ .then((value) => {
68
+ if (signal?.aborted) {
41
69
  finishReject(abortError(signal.reason));
42
- };
43
- signal.addEventListener('abort', onAbort, { once: true });
44
- void vm.exec(command)
45
- .then((value) => {
46
- if (signal.aborted) {
47
- finishReject(abortError(signal.reason));
48
- return;
49
- }
50
- finishResolve(value);
51
- })
52
- .catch((error) => {
53
- if (signal.aborted) {
54
- finishReject(abortError(signal.reason));
55
- return;
56
- }
57
- finishReject(error);
58
- });
70
+ return;
71
+ }
72
+ finishResolve(value);
59
73
  })
60
- : await vm.exec(command);
74
+ .catch((error) => {
75
+ if (signal?.aborted) {
76
+ finishReject(abortError(signal.reason));
77
+ return;
78
+ }
79
+ finishReject(error);
80
+ });
81
+ });
61
82
  const stdout = result.stdout ?? '';
62
83
  const stderr = result.stderr ?? '';
63
- const exitCode = result.exitCode ?? 0;
84
+ const exitCode = timedOut ? 124 : (result.exitCode ?? 0);
64
85
  const execResult = {
65
86
  success: exitCode === 0,
66
87
  stdout,
@@ -68,7 +89,12 @@ export class AgentVMManager {
68
89
  exitCode,
69
90
  backend: this.kind,
70
91
  backendLabel: 'sandbox[agentvm]',
71
- summary: exitCode === 0 ? 'Command completed successfully' : (stderr || `Command failed with exit code ${exitCode}`),
92
+ summary: timedOut
93
+ ? `Command timed out after ${timeoutMs}ms`
94
+ : exitCode === 0
95
+ ? 'Command completed successfully'
96
+ : (stderr || `Command failed with exit code ${exitCode}`),
97
+ timeMs: Date.now() - startedAt,
72
98
  };
73
99
  if (stdout) {
74
100
  observer?.onStdout?.({ command, chunk: stdout, backend: this.kind, backendLabel: execResult.backendLabel });
@@ -1 +1 @@
1
- {"version":3,"file":"agentvm-manager.js","sourceRoot":"","sources":["../../../src/system/runtime/agentvm-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentvm-manager.js","sourceRoot":"","sources":["../../../src/system/runtime/agentvm-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,IAAI,YAAY,GAA+F,IAAI,CAAC;AAoDpH,MAAM,OAAO,cAAc;IAKN;IACA;IACA;IANX,EAAE,GAAmB,IAAI,CAAC;IACzB,IAAI,GAAG,SAAkB,CAAC;IAEnC,YACmB,aAAqB,EACrB,OAAgB,EAChB,gBAAyB;QAFzB,kBAAa,GAAb,aAAa,CAAQ;QACrB,YAAO,GAAP,OAAO,CAAS;QAChB,qBAAgB,GAAhB,gBAAgB,CAAS;IACzC,CAAC;IAEJ,KAAK,CAAC,IAAI,CACR,OAAe,EACf,MAAoB,EACpB,QAA4B,EAC5B,OAA0B;QAE1B,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACrF,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAEvF,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAuC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzF,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,KAAK,GAAyC,IAAI,CAAC;YACvD,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC9C,IAAI,KAAK,EAAE,CAAC;oBACV,YAAY,CAAC,KAAK,CAAC,CAAC;oBACpB,KAAK,GAAG,IAAI,CAAC;gBACf,CAAC;YACH,CAAC,CAAC;YACF,MAAM,aAAa,GAAG,CAAC,KAA2C,EAAE,EAAE;gBACpE,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC;YACF,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,EAAE;gBACtC,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC;YACF,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACpC,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YAC3C,CAAC,CAAC;YAEF,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACtB,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO;wBAAE,OAAO;oBACvC,QAAQ,GAAG,IAAI,CAAC;oBAChB,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oBACpC,aAAa,CAAC;wBACZ,MAAM,EAAE,EAAE;wBACV,MAAM,EAAE,2BAA2B,SAAS,IAAI;wBAChD,QAAQ,EAAE,GAAG;qBACqC,CAAC,CAAC;gBACxD,CAAC,EAAE,SAAS,CAAC,CAAC;gBACd,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;YAClB,CAAC;YACD,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;iBAClB,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;gBACd,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;oBACpB,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;oBACxC,OAAO;gBACT,CAAC;gBACD,aAAa,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;oBACpB,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;oBACxC,OAAO;gBACT,CAAC;gBACD,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;QACzD,MAAM,UAAU,GAAoB;YAClC,OAAO,EAAE,QAAQ,KAAK,CAAC;YACvB,MAAM;YACN,MAAM;YACN,QAAQ;YACR,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,YAAY,EAAE,kBAAkB;YAChC,OAAO,EAAE,QAAQ;gBACf,CAAC,CAAC,2BAA2B,SAAS,IAAI;gBAC1C,CAAC,CAAC,QAAQ,KAAK,CAAC;oBACd,CAAC,CAAC,gCAAgC;oBAClC,CAAC,CAAC,CAAC,MAAM,IAAI,iCAAiC,QAAQ,EAAE,CAAC;YAC7D,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SAC/B,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;QAC9G,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;QAC9G,CAAC;QACD,QAAQ,EAAE,MAAM,EAAE,CAAC;YACjB,OAAO;YACP,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,QAAQ;YACR,OAAO,EAAE,UAAU,CAAC,OAAO;SAC5B,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAC/C,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,IAAI,CAAC,EAAE,GAAG,IAAI,YAAa,CAAC;gBAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE;aAC7C,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;CACF;AAED,SAAS,UAAU,CAAC,MAAe;IACjC,OAAO,MAAM,YAAY,KAAK;QAC5B,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;AACrF,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Media references → resolved bytes.
3
+ *
4
+ * Media are workspace files. DML and conversation memory carry only
5
+ * `media(Path, Mime)`; the host resolves them to base64 when a model call needs
6
+ * the bytes. See `docs/DML_MEDIA.md`.
7
+ */
8
+ import type { LLMBackendMedia, MediaRef } from '../../types.js';
9
+ /** Mime types DML may reference (and that pi accepts as image input). */
10
+ export declare const MEDIA_MIME_BY_EXT: Record<string, string>;
11
+ export declare const DEFAULT_MEDIA_MAX_BYTES: number;
12
+ /** Mime for a media path, or undefined when the extension is not allowed. */
13
+ export declare function mimeForMediaPath(file: string): string | undefined;
14
+ /** Resolve a workspace-relative media path, rejecting traversal/absolute paths. */
15
+ export declare function resolveMediaPath(workspacePath: string, relPath: string): string;
16
+ export interface ReadMediaOptions {
17
+ maxBytes?: number;
18
+ }
19
+ /** Read one media reference into base64, enforcing the size cap. */
20
+ export declare function resolveMediaRef(workspacePath: string, ref: MediaRef, options?: ReadMediaOptions): Promise<LLMBackendMedia>;
21
+ /** Read a list of media references (missing entries resolve to nothing). */
22
+ export declare function resolveMediaRefs(workspacePath: string, refs: MediaRef[] | undefined, options?: ReadMediaOptions): Promise<LLMBackendMedia[]>;
23
+ //# sourceMappingURL=media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/system/runtime/media.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEhE,yEAAyE;AACzE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMpD,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAmB,CAAC;AAExD,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEjE;AAED,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAU/E;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,oEAAoE;AACpE,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,QAAQ,EACb,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAQ1B;AAED,4EAA4E;AAC5E,wBAAsB,gBAAgB,CACpC,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAS,EAC5B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,EAAE,CAAC,CAO5B"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Media references → resolved bytes.
3
+ *
4
+ * Media are workspace files. DML and conversation memory carry only
5
+ * `media(Path, Mime)`; the host resolves them to base64 when a model call needs
6
+ * the bytes. See `docs/DML_MEDIA.md`.
7
+ */
8
+ import * as fs from 'fs/promises';
9
+ import * as path from 'path';
10
+ /** Mime types DML may reference (and that pi accepts as image input). */
11
+ export const MEDIA_MIME_BY_EXT = {
12
+ '.png': 'image/png',
13
+ '.jpg': 'image/jpeg',
14
+ '.jpeg': 'image/jpeg',
15
+ '.gif': 'image/gif',
16
+ '.webp': 'image/webp',
17
+ };
18
+ export const DEFAULT_MEDIA_MAX_BYTES = 10 * 1024 * 1024;
19
+ /** Mime for a media path, or undefined when the extension is not allowed. */
20
+ export function mimeForMediaPath(file) {
21
+ return MEDIA_MIME_BY_EXT[path.extname(file).toLowerCase()];
22
+ }
23
+ /** Resolve a workspace-relative media path, rejecting traversal/absolute paths. */
24
+ export function resolveMediaPath(workspacePath, relPath) {
25
+ const workspace = path.resolve(workspacePath);
26
+ if (path.isAbsolute(relPath)) {
27
+ throw new Error(`media path must be workspace-relative: ${relPath}`);
28
+ }
29
+ const abs = path.resolve(workspace, relPath);
30
+ if (abs !== workspace && !abs.startsWith(workspace + path.sep)) {
31
+ throw new Error(`media path escapes the workspace: ${relPath}`);
32
+ }
33
+ return abs;
34
+ }
35
+ /** Read one media reference into base64, enforcing the size cap. */
36
+ export async function resolveMediaRef(workspacePath, ref, options = {}) {
37
+ const maxBytes = options.maxBytes ?? DEFAULT_MEDIA_MAX_BYTES;
38
+ const abs = resolveMediaPath(workspacePath, ref.path);
39
+ const data = await fs.readFile(abs);
40
+ if (data.byteLength > maxBytes) {
41
+ throw new Error(`media exceeds ${maxBytes} bytes: ${ref.path}`);
42
+ }
43
+ return { mimeType: ref.mimeType, data: data.toString('base64') };
44
+ }
45
+ /** Read a list of media references (missing entries resolve to nothing). */
46
+ export async function resolveMediaRefs(workspacePath, refs, options = {}) {
47
+ if (!refs || refs.length === 0)
48
+ return [];
49
+ const out = [];
50
+ for (const ref of refs) {
51
+ out.push(await resolveMediaRef(workspacePath, ref, options));
52
+ }
53
+ return out;
54
+ }
55
+ //# sourceMappingURL=media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/system/runtime/media.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAI7B,yEAAyE;AACzE,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAExD,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,gBAAgB,CAAC,aAAqB,EAAE,OAAe;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,0CAA0C,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7C,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAMD,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,aAAqB,EACrB,GAAa,EACb,UAA4B,EAAE;IAE9B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,uBAAuB,CAAC;IAC7D,MAAM,GAAG,GAAG,gBAAgB,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,IAAI,CAAC,UAAU,GAAG,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,WAAW,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,aAAqB,EACrB,IAA4B,EAC5B,UAA4B,EAAE;IAE9B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CAAC,MAAM,eAAe,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}