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
@@ -1,363 +0,0 @@
1
- /**
2
- * DeepClause CLI - Compilation Module
3
- *
4
- * Compiles Markdown task descriptions to DML programs using an agentic loop
5
- * with LLM generation and Prolog validation.
6
- */
7
- import * as fs from 'fs/promises';
8
- import * as path from 'path';
9
- import * as crypto from 'crypto';
10
- import { applyResolvedModelConfig, buildModelOverride, getDefaultConfig, loadConfig, resolveModelSlot, } from './config.js';
11
- import { promptUser } from './interactive.js';
12
- import { compileWithSkillCreator } from '../system/runtime/skill-creator.js';
13
- import { extractDescription as extractDescriptionFromCompiler, extractParameters as extractParametersFromCompiler, extractToolDependencies as extractToolDependenciesFromCompiler, } from '../compiler.js';
14
- // =============================================================================
15
- // Status Indicator
16
- // =============================================================================
17
- const SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
18
- class StatusIndicator {
19
- frame = 0;
20
- interval = null;
21
- message = '';
22
- enabled;
23
- constructor(enabled = true) {
24
- this.enabled = enabled && process.stdout.isTTY === true;
25
- }
26
- start(message) {
27
- if (!this.enabled) {
28
- console.log(` ${message}`);
29
- return;
30
- }
31
- this.message = message;
32
- this.frame = 0;
33
- this.render();
34
- this.interval = setInterval(() => {
35
- this.frame = (this.frame + 1) % SPINNER_FRAMES.length;
36
- this.render();
37
- }, 80);
38
- }
39
- update(message) {
40
- this.message = message;
41
- if (!this.enabled) {
42
- console.log(` ${message}`);
43
- }
44
- else {
45
- this.render();
46
- }
47
- }
48
- render() {
49
- process.stdout.write(`\r${SPINNER_FRAMES[this.frame]} ${this.message}`.padEnd(80));
50
- }
51
- stop(finalMessage) {
52
- if (this.interval) {
53
- clearInterval(this.interval);
54
- this.interval = null;
55
- }
56
- if (this.enabled) {
57
- process.stdout.write('\r' + ' '.repeat(80) + '\r');
58
- }
59
- if (finalMessage) {
60
- console.log(finalMessage);
61
- }
62
- }
63
- }
64
- // =============================================================================
65
- // Main Compilation Functions
66
- // =============================================================================
67
- /**
68
- * Compile a Markdown task description to DML using an agentic loop
69
- */
70
- export async function compile(sourcePath, outputDir, options = {}) {
71
- const maxAttempts = options.maxAttempts ?? 3;
72
- const verbose = options.verbose ?? false;
73
- const shouldStream = options.stream ?? false;
74
- const shouldAudit = options.audit !== false;
75
- // Resolve paths
76
- const absoluteSource = path.resolve(sourcePath);
77
- const absoluteOutputDir = path.resolve(outputDir);
78
- // Read source file
79
- let markdown;
80
- try {
81
- markdown = await fs.readFile(absoluteSource, 'utf-8');
82
- }
83
- catch (error) {
84
- throw new Error(`Failed to read source file: ${absoluteSource}`);
85
- }
86
- // Calculate source hash
87
- const sourceHash = computeHash(markdown);
88
- // Determine output file names
89
- const baseName = path.basename(absoluteSource, path.extname(absoluteSource));
90
- const dmlPath = path.join(absoluteOutputDir, `${baseName}.dml`);
91
- const metaPath = path.join(absoluteOutputDir, `${baseName}.meta.json`);
92
- // Check for existing compilation (caching)
93
- if (!options.force && !options.validateOnly) {
94
- const existing = await loadExistingMeta(metaPath);
95
- if (existing && existing.sourceHash === sourceHash) {
96
- return {
97
- output: dmlPath,
98
- tools: existing.tools,
99
- skipped: true,
100
- valid: true,
101
- meta: existing
102
- };
103
- }
104
- }
105
- // Load config for model/provider (try cwd first, then source dir, then use defaults)
106
- let config;
107
- let workspaceRoot;
108
- try {
109
- workspaceRoot = process.cwd();
110
- config = await loadConfig(process.cwd());
111
- }
112
- catch {
113
- try {
114
- const sourceDir = path.dirname(absoluteSource).split('/.deepclause')[0];
115
- workspaceRoot = sourceDir;
116
- config = await loadConfig(sourceDir);
117
- }
118
- catch {
119
- // Use sensible defaults if no config found
120
- workspaceRoot = process.cwd();
121
- config = getDefaultConfig();
122
- }
123
- }
124
- const compileSelection = resolveModelSlot(config, 'compile', {
125
- modelId: buildModelOverride(options.model, options.provider),
126
- temperature: options.temperature,
127
- });
128
- applyResolvedModelConfig(compileSelection);
129
- const runSelection = resolveModelSlot(config, 'run');
130
- const runtimeOutput = [];
131
- const events = [];
132
- let executionTrace;
133
- const captureEvents = (options.headless
134
- || shouldStream
135
- || verbose
136
- || !!options.trace
137
- || !!options.onEvent);
138
- const status = new StatusIndicator(!captureEvents);
139
- if (!captureEvents) {
140
- status.start('Compiling...');
141
- }
142
- const handleEvent = (event) => {
143
- events.push(event);
144
- if (event.type === 'output' && event.content) {
145
- runtimeOutput.push(event.content);
146
- }
147
- if ((event.type === 'finished' || event.type === 'error') && event.trace) {
148
- executionTrace = event.trace;
149
- }
150
- options.onEvent?.(event);
151
- };
152
- try {
153
- const result = await compileWithSkillCreator(markdown, {
154
- sourcePath: absoluteSource,
155
- outputDir: absoluteOutputDir,
156
- baseName,
157
- workspaceRoot,
158
- workspacePath: path.resolve(config.workspace || './workspace'),
159
- config,
160
- compileSelection,
161
- runSelection,
162
- sandbox: options.sandbox,
163
- validateOnly: options.validateOnly,
164
- maxAttempts,
165
- verbose,
166
- stream: shouldStream,
167
- trace: !!options.trace,
168
- audit: shouldAudit,
169
- onUserInput: promptUser,
170
- signal: options.signal,
171
- onEvent: handleEvent,
172
- });
173
- if (!captureEvents) {
174
- status.stop();
175
- }
176
- if (options.trace && executionTrace) {
177
- const tracePath = path.resolve(options.trace);
178
- await fs.writeFile(tracePath, JSON.stringify(executionTrace, null, 2) + '\n');
179
- }
180
- if (!options.onEvent && !options.headless && result.analysis.warnings.length > 0) {
181
- console.log('\n⚠️ Static Analysis Warnings:');
182
- for (const warning of result.analysis.warnings) {
183
- const icon = warning.level === 'critical' ? '🔴' : warning.level === 'high' ? '🟠' : warning.level === 'medium' ? '🟡' : '⚪';
184
- console.log(` ${icon} [${warning.level.toUpperCase()}] ${warning.message}`);
185
- }
186
- }
187
- if (!options.onEvent && !options.headless) {
188
- console.log('\n✅ Compilation successful!\n');
189
- console.log(result.explanation);
190
- }
191
- return {
192
- output: dmlPath,
193
- tools: result.tools,
194
- skipped: false,
195
- valid: true,
196
- dml: result.dml,
197
- meta: result.meta,
198
- explanation: result.explanation,
199
- attempts: 1,
200
- analysis: result.analysis,
201
- runtimeOutput,
202
- trace: executionTrace,
203
- events,
204
- };
205
- }
206
- catch (error) {
207
- if (!captureEvents) {
208
- status.stop();
209
- }
210
- if (options.trace && executionTrace) {
211
- const tracePath = path.resolve(options.trace);
212
- await fs.writeFile(tracePath, JSON.stringify(executionTrace, null, 2) + '\n');
213
- }
214
- const compileError = error instanceof Error
215
- ? error
216
- : new Error(String(error));
217
- compileError.runtimeOutput = runtimeOutput;
218
- compileError.trace = executionTrace;
219
- compileError.events = events;
220
- throw compileError;
221
- }
222
- }
223
- /**
224
- * Compile all Markdown files in a directory
225
- */
226
- export async function compileAll(sourceDir, outputDir, options = {}) {
227
- const absoluteSourceDir = path.resolve(sourceDir);
228
- const absoluteOutputDir = path.resolve(outputDir);
229
- // Find all markdown files
230
- let files;
231
- try {
232
- const entries = await fs.readdir(absoluteSourceDir);
233
- files = entries.filter(f => f.endsWith('.md'));
234
- }
235
- catch (error) {
236
- throw new Error(`Failed to read source directory: ${absoluteSourceDir}`);
237
- }
238
- const result = {
239
- compiled: 0,
240
- skipped: 0,
241
- failed: 0,
242
- errors: []
243
- };
244
- // Compile each file
245
- for (const file of files) {
246
- const sourcePath = path.join(absoluteSourceDir, file);
247
- try {
248
- const compileResult = await compile(sourcePath, absoluteOutputDir, {
249
- ...options,
250
- stream: false, // Don't stream when batch compiling
251
- verbose: false,
252
- headless: true,
253
- });
254
- if (compileResult.skipped) {
255
- result.skipped++;
256
- }
257
- else {
258
- result.compiled++;
259
- }
260
- }
261
- catch (error) {
262
- result.failed++;
263
- result.errors.push({
264
- file,
265
- error: error.message
266
- });
267
- }
268
- }
269
- return result;
270
- }
271
- /**
272
- * Compile a natural language prompt directly to DML without saving to disk
273
- */
274
- export async function compilePrompt(prompt, options = {}) {
275
- const workspaceRoot = process.cwd();
276
- const config = await loadConfig(process.cwd());
277
- const compileSelection = resolveModelSlot(config, 'compile', {
278
- modelId: buildModelOverride(options.model, options.provider),
279
- temperature: options.temperature,
280
- });
281
- const runSelection = resolveModelSlot(config, 'run');
282
- const result = await compileWithSkillCreator(prompt, {
283
- sourcePath: 'oneshot.md',
284
- outputDir: path.resolve(config.dmlBase || '.deepclause/tools'),
285
- baseName: 'oneshot',
286
- workspaceRoot,
287
- workspacePath: path.resolve(config.workspace || './workspace'),
288
- config,
289
- compileSelection,
290
- runSelection,
291
- sandbox: options.sandbox,
292
- validateOnly: true,
293
- maxAttempts: options.maxAttempts,
294
- verbose: options.verbose,
295
- audit: options.audit !== false,
296
- onUserInput: promptUser,
297
- });
298
- return {
299
- dml: result.dml,
300
- tools: result.tools,
301
- };
302
- }
303
- // =============================================================================
304
- // Helpers
305
- // =============================================================================
306
- /**
307
- * Compute SHA-256 hash of content
308
- */
309
- function computeHash(content) {
310
- return 'sha256:' + crypto.createHash('sha256').update(content).digest('hex').substring(0, 16);
311
- }
312
- /**
313
- * Load existing meta file if it exists
314
- */
315
- async function loadExistingMeta(metaPath) {
316
- try {
317
- const content = await fs.readFile(metaPath, 'utf-8');
318
- return JSON.parse(content);
319
- }
320
- catch {
321
- return null;
322
- }
323
- }
324
- export const extractToolDependencies = extractToolDependenciesFromCompiler;
325
- export const extractParameters = extractParametersFromCompiler;
326
- export const extractDescription = extractDescriptionFromCompiler;
327
- export function validateDMLSyntax(dml) {
328
- const errors = [];
329
- if (!dml.includes('agent_main')) {
330
- errors.push('Missing agent_main predicate');
331
- }
332
- const stripped = dml
333
- .replace(/"(?:[^"\\]|\\.)*"/g, '""')
334
- .replace(/%.*$/gm, '')
335
- .replace(/\/\*[\s\S]*?\*\//g, '');
336
- let parenCount = 0;
337
- let bracketCount = 0;
338
- for (const char of stripped) {
339
- if (char === '(')
340
- parenCount++;
341
- if (char === ')')
342
- parenCount--;
343
- if (char === '[')
344
- bracketCount++;
345
- if (char === ']')
346
- bracketCount--;
347
- }
348
- if (parenCount !== 0) {
349
- errors.push('Unbalanced parentheses');
350
- }
351
- if (bracketCount !== 0) {
352
- errors.push('Unbalanced brackets');
353
- }
354
- const withoutQuotedStrings = dml.replace(/"(?:[^"\\]|\\.)*"/g, '');
355
- if ((withoutQuotedStrings.match(/"/g) || []).length % 2 !== 0) {
356
- errors.push('Unclosed string literal');
357
- }
358
- return {
359
- valid: errors.length === 0,
360
- errors: [...new Set(errors)],
361
- };
362
- }
363
- //# sourceMappingURL=compile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/cli/compile.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { MetaFile } from './compile.js';
2
- export interface DefaultSkillSeed {
3
- slug: string;
4
- dml: string;
5
- meta: MetaFile;
6
- }
7
- export declare function writeDefaultSkillSeeds(toolsDir: string, modelId: string): Promise<void>;
8
- export declare function ensureDefaultSkillSeeds(toolsDir: string, modelId: string): Promise<string[]>;
9
- export declare function getDefaultSkillSeeds(modelId: string, compiledAt?: string): DefaultSkillSeed[];
10
- //# sourceMappingURL=default-skills.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"default-skills.d.ts","sourceRoot":"","sources":["../../src/cli/default-skills.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,QAAQ,CAAC;CAChB;AA8GD,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO7F;AAED,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA0BlG;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,SAA2B,GAAG,gBAAgB,EAAE,CAuB/G"}
@@ -1,206 +0,0 @@
1
- import { createHash } from 'crypto';
2
- import * as fs from 'fs/promises';
3
- import * as path from 'path';
4
- const RESEARCH_SEARCH_READER_DML = `% Deep research helper skill that turns raw search results into readable notes.
5
-
6
- tool(search_web(Query, Results),
7
- "Search the web for background sources and evergreen references.") :-
8
- exec(web_search(query: Query, count: 8), Results).
9
-
10
- tool(search_news(Query, Results),
11
- "Search recent news when the topic is time-sensitive or fast-moving.") :-
12
- exec(news_search(query: Query, count: 5), Results).
13
-
14
- agent_main(Query) :-
15
- system("You turn raw search results into readable research notes.
16
- - Always call search_web.
17
- - Also call search_news when the query is time-sensitive, recent, or news-driven.
18
- - Convert the raw results into concise Markdown that a parent research skill can reuse.
19
- - Under Sources, list each source with its title, URL, and a one-line reason it matters.
20
- - Do not invent facts. If the search results are sparse or conflicting, say so clearly."),
21
-
22
- output("Gathering search results..."),
23
- task("For the query '{Query}':
24
- 1. Call search_web.
25
- 2. Call search_news as well if recency matters.
26
- 3. Convert the raw search results into a readable Markdown brief with these sections:
27
- - Overview
28
- - Key Findings
29
- - Sources
30
- Under Sources, list each source with its title, URL, and one-line relevance note.
31
- Store the final brief in SearchBrief.", SearchBrief),
32
-
33
- answer(SearchBrief).
34
- `;
35
- const DEEP_RESEARCH_DML = `% Deep research skill that builds a research plan, confirms it, and writes a cited report.
36
- % Adapted from the platform default deep-research example, but delegates searching to a child skill.
37
-
38
- tool(search_topic(Query, Summary),
39
- "Delegate a focused search to the research-search-reader child skill and return a readable digest.") :-
40
- exec(run_skill(slug: "research-search-reader", args: [Query]), Raw),
41
- ( get_dict(answer, Raw, Answer) ->
42
- Summary = Answer
43
- ; get_dict(error, Raw, Error) ->
44
- format(string(Summary), "Search helper failed: ~w", [Error])
45
- ; Summary = "Search helper returned no final answer."
46
- ).
47
-
48
- tool(ask_user(Prompt, Response), "Ask the user for clarification or plan approval.") :-
49
- exec(ask_user(prompt: Prompt), Result),
50
- get_dict(user_response, Result, Response).
51
-
52
- agent_main(Question) :-
53
- system("You are a meticulous research assistant. Your goal is to conduct comprehensive research, synthesize findings, and generate a detailed report with citations.
54
- - If the user's question is ambiguous, you must ask for clarification using the ask_user tool.
55
- - Build a clear research plan before doing the full investigation.
56
- - Use the search_topic tool to gather readable research notes with source links.
57
- - For controversial topics, present multiple viewpoints.
58
- - If you find limited sources, state this and describe your confidence level.
59
- - Always cite sources inline and include a Sources section at the end."),
60
-
61
- output("Step 1: Analyzing the research question..."),
62
- task("Analyze the user's question to identify key topics and sub-questions for research. Question: '{Question}'. Store the key topics as a formatted list in KeyTopics.", KeyTopics),
63
-
64
- output("Step 2: Creating a research plan..."),
65
- task("Based on these key topics, create a step-by-step research plan. Topics: {KeyTopics}. The plan should be clear and concise. Store the plan as a formatted string in ResearchPlan.", ResearchPlan),
66
-
67
- output("Step 3: Confirming the plan with the user..."),
68
- confirm_plan(ResearchPlan),
69
-
70
- output("Step 4: Executing research and generating the report..."),
71
- task("Execute the approved research plan: {ResearchPlan}.
72
- For each topic or sub-question, call search_topic to gather readable research notes with source links.
73
- Synthesize the returned digests into a coherent, well-structured Markdown report.
74
- The report must include inline citations and a Sources section at the end.
75
- Store the final, complete report in FinalReport.", FinalReport),
76
-
77
- output("Step 5: Saving the report to a file..."),
78
- generate_filename(Question, Filename),
79
- open(Filename, write, Stream),
80
- write(Stream, FinalReport),
81
- close(Stream),
82
-
83
- format(string(AnswerMsg), "Research complete. Report saved to ~s.", [Filename]),
84
- answer(AnswerMsg).
85
-
86
- confirm_plan(Plan) :-
87
- task("Present this research plan to the user and get their approval:
88
-
89
- {Plan}
90
-
91
- Use the ask_user tool to present the plan and ask if they approve.
92
- - If they approve (yes/ok/looks good/etc.), set Approved to 'yes'.
93
- - If they want changes, use ask_user to clarify what changes they want, then revise the plan and ask again. Continue this dialog until they approve.
94
- - If they want to cancel entirely, set Approved to 'cancelled'.
95
-
96
- Store 'yes' or 'cancelled' in Approved.", Approved),
97
- ( Approved == "yes" ->
98
- output("Plan approved. Proceeding with research.")
99
- ;
100
- answer("Research cancelled by user."), !, fail
101
- ).
102
-
103
- generate_filename(Question, Filename) :-
104
- task("Generate a short, file-safe slug from this question: '{Question}'. For example, 'What is the future of AI?' could become 'future_of_ai'. Use underscores instead of spaces. Store only the slug in Slug.", Slug),
105
- atom_string(SlugAtom, Slug),
106
- atom_concat('report_', SlugAtom, BaseName),
107
- atom_concat(BaseName, '.md', FilenameAtom),
108
- atom_string(FilenameAtom, Filename).
109
- `;
110
- export async function writeDefaultSkillSeeds(toolsDir, modelId) {
111
- const seeds = getDefaultSkillSeeds(modelId);
112
- for (const seed of seeds) {
113
- await fs.writeFile(path.join(toolsDir, `${seed.slug}.dml`), seed.dml, 'utf8');
114
- await fs.writeFile(path.join(toolsDir, `${seed.slug}.meta.json`), JSON.stringify(seed.meta, null, 2) + '\n', 'utf8');
115
- }
116
- }
117
- export async function ensureDefaultSkillSeeds(toolsDir, modelId) {
118
- const seeds = getDefaultSkillSeeds(modelId);
119
- const written = [];
120
- await fs.mkdir(toolsDir, { recursive: true });
121
- for (const seed of seeds) {
122
- const dmlPath = path.join(toolsDir, `${seed.slug}.dml`);
123
- const metaPath = path.join(toolsDir, `${seed.slug}.meta.json`);
124
- const dmlExists = await pathExists(dmlPath);
125
- const metaExists = await pathExists(metaPath);
126
- if (dmlExists && metaExists) {
127
- continue;
128
- }
129
- if (!dmlExists) {
130
- await fs.writeFile(dmlPath, seed.dml, 'utf8');
131
- }
132
- if (!metaExists) {
133
- await fs.writeFile(metaPath, JSON.stringify(seed.meta, null, 2) + '\n', 'utf8');
134
- }
135
- written.push(seed.slug);
136
- }
137
- return written;
138
- }
139
- export function getDefaultSkillSeeds(modelId, compiledAt = new Date().toISOString()) {
140
- const provider = getProviderFromModelId(modelId);
141
- return [
142
- createSeed({
143
- slug: 'research-search-reader',
144
- description: 'Helper skill that wraps web and news search and rewrites raw results into readable research notes.',
145
- dml: RESEARCH_SEARCH_READER_DML,
146
- parameters: [
147
- { name: 'query', description: 'Focused search query to summarize', required: true, position: 0 },
148
- ],
149
- tools: ['news_search', 'web_search'],
150
- }, modelId, provider, compiledAt),
151
- createSeed({
152
- slug: 'deep-research',
153
- description: 'Conducts multi-source web research on any topic and saves a cited Markdown report to your workspace.',
154
- dml: DEEP_RESEARCH_DML,
155
- parameters: [
156
- { name: 'question', description: 'Research question or topic', required: true, position: 0 },
157
- ],
158
- tools: ['ask_user', 'run_skill'],
159
- }, modelId, provider, compiledAt),
160
- ];
161
- }
162
- function createSeed(seed, modelId, provider, compiledAt) {
163
- const dml = ensureTrailingNewline(seed.dml);
164
- const sourceHash = `sha256:${createHash('sha256').update(dml).digest('hex').slice(0, 16)}`;
165
- return {
166
- slug: seed.slug,
167
- dml,
168
- meta: {
169
- version: '1.0.0',
170
- source: `deepclause:init:${seed.slug}`,
171
- sourceHash,
172
- compiledAt,
173
- model: modelId,
174
- provider,
175
- description: seed.description,
176
- parameters: seed.parameters,
177
- tools: [...seed.tools],
178
- history: [
179
- {
180
- version: 1,
181
- timestamp: compiledAt,
182
- sourceHash,
183
- model: modelId,
184
- provider,
185
- },
186
- ],
187
- },
188
- };
189
- }
190
- function getProviderFromModelId(modelId) {
191
- const [provider] = modelId.split(':', 1);
192
- return provider || 'openai';
193
- }
194
- async function pathExists(filePath) {
195
- try {
196
- await fs.access(filePath);
197
- return true;
198
- }
199
- catch {
200
- return false;
201
- }
202
- }
203
- function ensureTrailingNewline(value) {
204
- return value.endsWith('\n') ? value : `${value}\n`;
205
- }
206
- //# sourceMappingURL=default-skills.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"default-skills.js","sourceRoot":"","sources":["../../src/cli/default-skills.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function promptUser(prompt: string): Promise<string>;
2
- //# sourceMappingURL=interactive.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/cli/interactive.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB1D"}
@@ -1,20 +0,0 @@
1
- import * as readline from 'readline';
2
- export function promptUser(prompt) {
3
- return new Promise((resolve) => {
4
- const rl = readline.createInterface({
5
- input: process.stdin,
6
- output: process.stdout,
7
- });
8
- console.log('\n' + '─'.repeat(60));
9
- console.log('📝 USER INPUT REQUIRED:');
10
- console.log('─'.repeat(60));
11
- console.log(prompt);
12
- console.log('─'.repeat(60));
13
- rl.question('Your response: ', (answer) => {
14
- rl.close();
15
- console.log('─'.repeat(60) + '\n');
16
- resolve(answer);
17
- });
18
- });
19
- }
20
- //# sourceMappingURL=interactive.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/cli/interactive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAE5B,EAAE,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,EAAE;YACxC,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YACnC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}