deepclause-sdk 0.0.89 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +481 -941
- package/dist/agent.d.ts +19 -2
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +75 -21
- package/dist/agent.js.map +1 -1
- package/dist/cli/config.d.ts +385 -178
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +161 -188
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/index.d.ts +3 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +85 -411
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/login.d.ts +29 -0
- package/dist/cli/login.d.ts.map +1 -0
- package/dist/cli/login.js +184 -0
- package/dist/cli/login.js.map +1 -0
- package/dist/cli/readline.d.ts +6 -0
- package/dist/cli/readline.d.ts.map +1 -0
- package/dist/cli/readline.js +15 -0
- package/dist/cli/readline.js.map +1 -0
- package/dist/cli/repl-bin.d.ts +9 -0
- package/dist/cli/repl-bin.d.ts.map +1 -0
- package/dist/cli/repl-bin.js +16 -0
- package/dist/cli/repl-bin.js.map +1 -0
- package/dist/cli/repl.d.ts +216 -0
- package/dist/cli/repl.d.ts.map +1 -0
- package/dist/cli/repl.js +1392 -0
- package/dist/cli/repl.js.map +1 -0
- package/dist/cli/run.d.ts +17 -18
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +202 -183
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/set-backend.d.ts +53 -0
- package/dist/cli/set-backend.d.ts.map +1 -0
- package/dist/cli/set-backend.js +259 -0
- package/dist/cli/set-backend.js.map +1 -0
- package/dist/cli/visualize.d.ts +42 -0
- package/dist/cli/visualize.d.ts.map +1 -0
- package/dist/cli/visualize.js +150 -0
- package/dist/cli/visualize.js.map +1 -0
- package/dist/compiler.d.ts +5 -52
- package/dist/compiler.d.ts.map +1 -1
- package/dist/compiler.js +4 -768
- package/dist/compiler.js.map +1 -1
- package/dist/index.d.ts +27 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -2
- package/dist/index.js.map +1 -1
- package/dist/prolog/bridge.d.ts +5 -1
- package/dist/prolog/bridge.d.ts.map +1 -1
- package/dist/prolog/bridge.js +10 -1
- package/dist/prolog/bridge.js.map +1 -1
- package/dist/prolog-src/deepclause_analysis.pl +10 -2
- package/dist/prolog-src/deepclause_mi.pl +2440 -49
- package/dist/repl/agent.d.ts +90 -0
- package/dist/repl/agent.d.ts.map +1 -0
- package/dist/repl/agent.js +410 -0
- package/dist/repl/agent.js.map +1 -0
- package/dist/repl/auth.d.ts +45 -0
- package/dist/repl/auth.d.ts.map +1 -0
- package/dist/repl/auth.js +116 -0
- package/dist/repl/auth.js.map +1 -0
- package/dist/repl/backend.d.ts +321 -0
- package/dist/repl/backend.d.ts.map +1 -0
- package/dist/repl/backend.js +415 -0
- package/dist/repl/backend.js.map +1 -0
- package/dist/repl/compaction.d.ts +122 -0
- package/dist/repl/compaction.d.ts.map +1 -0
- package/dist/repl/compaction.js +318 -0
- package/dist/repl/compaction.js.map +1 -0
- package/dist/repl/export.d.ts +30 -0
- package/dist/repl/export.d.ts.map +1 -0
- package/dist/repl/export.js +23 -0
- package/dist/repl/export.js.map +1 -0
- package/dist/repl/frames.d.ts +21 -0
- package/dist/repl/frames.d.ts.map +1 -0
- package/dist/repl/frames.js +79 -0
- package/dist/repl/frames.js.map +1 -0
- package/dist/repl/harness-tools.d.ts +99 -0
- package/dist/repl/harness-tools.d.ts.map +1 -0
- package/dist/repl/harness-tools.js +192 -0
- package/dist/repl/harness-tools.js.map +1 -0
- package/dist/repl/highlight.d.ts +30 -0
- package/dist/repl/highlight.d.ts.map +1 -0
- package/dist/repl/highlight.js +285 -0
- package/dist/repl/highlight.js.map +1 -0
- package/dist/repl/history.d.ts +234 -0
- package/dist/repl/history.d.ts.map +1 -0
- package/dist/repl/history.js +661 -0
- package/dist/repl/history.js.map +1 -0
- package/dist/repl/imagegen.d.ts +29 -0
- package/dist/repl/imagegen.d.ts.map +1 -0
- package/dist/repl/imagegen.js +84 -0
- package/dist/repl/imagegen.js.map +1 -0
- package/dist/repl/index.d.ts +130 -0
- package/dist/repl/index.d.ts.map +1 -0
- package/dist/repl/index.js +112 -0
- package/dist/repl/index.js.map +1 -0
- package/dist/repl/judge.d.ts +51 -0
- package/dist/repl/judge.d.ts.map +1 -0
- package/dist/repl/judge.js +58 -0
- package/dist/repl/judge.js.map +1 -0
- package/dist/repl/markdown.d.ts +25 -0
- package/dist/repl/markdown.d.ts.map +1 -0
- package/dist/repl/markdown.js +103 -0
- package/dist/repl/markdown.js.map +1 -0
- package/dist/repl/model-resolver.d.ts +59 -0
- package/dist/repl/model-resolver.d.ts.map +1 -0
- package/dist/repl/model-resolver.js +156 -0
- package/dist/repl/model-resolver.js.map +1 -0
- package/dist/repl/picker.d.ts +34 -0
- package/dist/repl/picker.d.ts.map +1 -0
- package/dist/repl/picker.js +81 -0
- package/dist/repl/picker.js.map +1 -0
- package/dist/repl/project-context.d.ts +16 -0
- package/dist/repl/project-context.d.ts.map +1 -0
- package/dist/repl/project-context.js +23 -0
- package/dist/repl/project-context.js.map +1 -0
- package/dist/repl/render.d.ts +187 -0
- package/dist/repl/render.d.ts.map +1 -0
- package/dist/repl/render.js +808 -0
- package/dist/repl/render.js.map +1 -0
- package/dist/repl/session.d.ts +424 -0
- package/dist/repl/session.d.ts.map +1 -0
- package/dist/repl/session.js +1473 -0
- package/dist/repl/session.js.map +1 -0
- package/dist/repl/status.d.ts +100 -0
- package/dist/repl/status.d.ts.map +1 -0
- package/dist/repl/status.js +218 -0
- package/dist/repl/status.js.map +1 -0
- package/dist/repl/tools.d.ts +53 -0
- package/dist/repl/tools.d.ts.map +1 -0
- package/dist/repl/tools.js +307 -0
- package/dist/repl/tools.js.map +1 -0
- package/dist/repl/toolset.d.ts +32 -0
- package/dist/repl/toolset.d.ts.map +1 -0
- package/dist/repl/toolset.js +82 -0
- package/dist/repl/toolset.js.map +1 -0
- package/dist/repl/tui/editor.d.ts +17 -0
- package/dist/repl/tui/editor.d.ts.map +1 -0
- package/dist/repl/tui/editor.js +39 -0
- package/dist/repl/tui/editor.js.map +1 -0
- package/dist/repl/tui/status-bar.d.ts +26 -0
- package/dist/repl/tui/status-bar.d.ts.map +1 -0
- package/dist/repl/tui/status-bar.js +47 -0
- package/dist/repl/tui/status-bar.js.map +1 -0
- package/dist/repl/tui/theme.d.ts +30 -0
- package/dist/repl/tui/theme.d.ts.map +1 -0
- package/dist/repl/tui/theme.js +81 -0
- package/dist/repl/tui/theme.js.map +1 -0
- package/dist/repl/tui/transcript.d.ts +41 -0
- package/dist/repl/tui/transcript.d.ts.map +1 -0
- package/dist/repl/tui/transcript.js +139 -0
- package/dist/repl/tui/transcript.js.map +1 -0
- package/dist/runner.d.ts +143 -13
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +532 -290
- package/dist/runner.js.map +1 -1
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +0 -32
- package/dist/sdk.js.map +1 -1
- package/dist/system/assets/docs/AGENT_PROMPT.md +1447 -0
- package/dist/system/assets/docs/DML_AUTHORING.md +195 -0
- package/dist/system/assets/docs/DML_REFERENCE.md +344 -72
- package/dist/system/assets/docs/HARNESS_EXAMPLES.md +172 -0
- package/dist/system/assets/docs/HARNESS_PATTERNS.md +562 -0
- package/dist/system/assets/docs/META_PROMPT.md +68 -0
- package/dist/system/assets/docs/PROLOG_SNIPPETS.md +117 -0
- package/dist/system/assets/index.d.ts +9 -17
- package/dist/system/assets/index.d.ts.map +1 -1
- package/dist/system/assets/index.js +26 -85
- package/dist/system/assets/index.js.map +1 -1
- package/dist/system/runtime/agentvm-manager.d.ts +9 -2
- package/dist/system/runtime/agentvm-manager.d.ts.map +1 -1
- package/dist/system/runtime/agentvm-manager.js +70 -44
- package/dist/system/runtime/agentvm-manager.js.map +1 -1
- package/dist/system/runtime/media.d.ts +23 -0
- package/dist/system/runtime/media.d.ts.map +1 -0
- package/dist/system/runtime/media.js +55 -0
- package/dist/system/runtime/media.js.map +1 -0
- package/dist/system/runtime/shell-limits.d.ts +21 -0
- package/dist/system/runtime/shell-limits.d.ts.map +1 -0
- package/dist/system/runtime/shell-limits.js +39 -0
- package/dist/system/runtime/shell-limits.js.map +1 -0
- package/dist/system/runtime/shell-manager.d.ts +8 -3
- package/dist/system/runtime/shell-manager.d.ts.map +1 -1
- package/dist/system/runtime/shell-manager.js +56 -39
- package/dist/system/runtime/shell-manager.js.map +1 -1
- package/dist/system/runtime/shell-tool-events.js +5 -0
- package/dist/system/runtime/shell-tool-events.js.map +1 -1
- package/dist/system/runtime/token-usage.d.ts +2 -0
- package/dist/system/runtime/token-usage.d.ts.map +1 -1
- package/dist/system/runtime/token-usage.js +7 -0
- package/dist/system/runtime/token-usage.js.map +1 -1
- package/dist/tools.d.ts +3 -21
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +14 -168
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +136 -119
- package/dist/types.d.ts.map +1 -1
- package/dist/validate.d.ts +19 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +338 -0
- package/dist/validate.js.map +1 -0
- package/dist/visualize/ascii.d.ts +55 -0
- package/dist/visualize/ascii.d.ts.map +1 -0
- package/dist/visualize/ascii.js +242 -0
- package/dist/visualize/ascii.js.map +1 -0
- package/dist/visualize/display.d.ts +24 -0
- package/dist/visualize/display.d.ts.map +1 -0
- package/dist/visualize/display.js +29 -0
- package/dist/visualize/display.js.map +1 -0
- package/dist/visualize/graphics.d.ts +35 -0
- package/dist/visualize/graphics.d.ts.map +1 -0
- package/dist/visualize/graphics.js +96 -0
- package/dist/visualize/graphics.js.map +1 -0
- package/dist/visualize/image.d.ts +38 -0
- package/dist/visualize/image.d.ts.map +1 -0
- package/dist/visualize/image.js +95 -0
- package/dist/visualize/image.js.map +1 -0
- package/dist/visualize/index.d.ts +59 -0
- package/dist/visualize/index.d.ts.map +1 -0
- package/dist/visualize/index.js +198 -0
- package/dist/visualize/index.js.map +1 -0
- package/dist/visualize/raster.d.ts +23 -0
- package/dist/visualize/raster.d.ts.map +1 -0
- package/dist/visualize/raster.js +47 -0
- package/dist/visualize/raster.js.map +1 -0
- package/dist/visualize/svg.d.ts +39 -0
- package/dist/visualize/svg.d.ts.map +1 -0
- package/dist/visualize/svg.js +148 -0
- package/dist/visualize/svg.js.map +1 -0
- package/dist/visualize/transcode.d.ts +13 -0
- package/dist/visualize/transcode.d.ts.map +1 -0
- package/dist/visualize/transcode.js +40 -0
- package/dist/visualize/transcode.js.map +1 -0
- package/docs/images/repl.png +0 -0
- package/package.json +19 -15
- package/src/prolog-src/deepclause_analysis.pl +10 -2
- package/src/prolog-src/deepclause_mi.pl +2440 -49
- package/dist/cli/commands.d.ts +0 -42
- package/dist/cli/commands.d.ts.map +0 -1
- package/dist/cli/commands.js +0 -246
- package/dist/cli/commands.js.map +0 -1
- package/dist/cli/compile.d.ts +0 -99
- package/dist/cli/compile.d.ts.map +0 -1
- package/dist/cli/compile.js +0 -363
- package/dist/cli/compile.js.map +0 -1
- package/dist/cli/default-skills.d.ts +0 -10
- package/dist/cli/default-skills.d.ts.map +0 -1
- package/dist/cli/default-skills.js +0 -206
- package/dist/cli/default-skills.js.map +0 -1
- package/dist/cli/interactive.d.ts +0 -2
- package/dist/cli/interactive.d.ts.map +0 -1
- package/dist/cli/interactive.js +0 -20
- package/dist/cli/interactive.js.map +0 -1
- package/dist/cli/mcp.d.ts +0 -56
- package/dist/cli/mcp.d.ts.map +0 -1
- package/dist/cli/mcp.js +0 -138
- package/dist/cli/mcp.js.map +0 -1
- package/dist/cli/prompt.d.ts +0 -2
- package/dist/cli/prompt.d.ts.map +0 -1
- package/dist/cli/prompt.js +0 -2
- package/dist/cli/prompt.js.map +0 -1
- package/dist/cli/search.d.ts +0 -19
- package/dist/cli/search.d.ts.map +0 -1
- package/dist/cli/search.js +0 -189
- package/dist/cli/search.js.map +0 -1
- package/dist/cli/tool-args.d.ts +0 -2
- package/dist/cli/tool-args.d.ts.map +0 -1
- package/dist/cli/tool-args.js +0 -39
- package/dist/cli/tool-args.js.map +0 -1
- package/dist/cli/tools.d.ts +0 -36
- package/dist/cli/tools.d.ts.map +0 -1
- package/dist/cli/tools.js +0 -229
- package/dist/cli/tools.js.map +0 -1
- package/dist/cli/tui/index.d.ts +0 -22
- package/dist/cli/tui/index.d.ts.map +0 -1
- package/dist/cli/tui/index.js +0 -29
- package/dist/cli/tui/index.js.map +0 -1
- package/dist/cli/tui.d.ts +0 -167
- package/dist/cli/tui.d.ts.map +0 -1
- package/dist/cli/tui.js +0 -5228
- package/dist/cli/tui.js.map +0 -1
- package/dist/compiler_prompt.d.ts +0 -20
- package/dist/compiler_prompt.d.ts.map +0 -1
- package/dist/compiler_prompt.js +0 -870
- package/dist/compiler_prompt.js.map +0 -1
- package/dist/deepclause-cli.skill +0 -0
- package/dist/prolog-src/deepclause_mi.pl.bak +0 -570
- package/dist/system/assets/docs/CONDUCTOR_PROMPT.md +0 -105
- package/dist/system/assets/docs/DML_COMPILER_PROMPT.md +0 -700
- package/dist/system/assets/docs/TUI.md +0 -150
- package/dist/system/assets/recipes/deepclause-coding-workflow/SKILL.md +0 -100
- package/dist/system/assets/skills/conductor.dml +0 -76
- package/dist/system/assets/skills/deep-planner.dml +0 -412
- package/dist/system/assets/skills/plan.dml +0 -429
- package/dist/system/assets/skills/security-planner.dml +0 -337
- package/dist/system/assets/skills/skill-creator.dml +0 -187
- package/dist/system/runtime/catalog-recipes.d.ts +0 -24
- package/dist/system/runtime/catalog-recipes.d.ts.map +0 -1
- package/dist/system/runtime/catalog-recipes.js +0 -273
- package/dist/system/runtime/catalog-recipes.js.map +0 -1
- package/dist/system/runtime/catalog-skills.d.ts +0 -50
- package/dist/system/runtime/catalog-skills.d.ts.map +0 -1
- package/dist/system/runtime/catalog-skills.js +0 -152
- package/dist/system/runtime/catalog-skills.js.map +0 -1
- package/dist/system/runtime/conductor.d.ts +0 -105
- package/dist/system/runtime/conductor.d.ts.map +0 -1
- package/dist/system/runtime/conductor.js +0 -732
- package/dist/system/runtime/conductor.js.map +0 -1
- package/dist/system/runtime/console-capture.d.ts +0 -9
- package/dist/system/runtime/console-capture.d.ts.map +0 -1
- package/dist/system/runtime/console-capture.js +0 -67
- package/dist/system/runtime/console-capture.js.map +0 -1
- package/dist/system/runtime/dml-executor.d.ts +0 -52
- package/dist/system/runtime/dml-executor.d.ts.map +0 -1
- package/dist/system/runtime/dml-executor.js +0 -203
- package/dist/system/runtime/dml-executor.js.map +0 -1
- package/dist/system/runtime/runtime-tools.d.ts +0 -31
- package/dist/system/runtime/runtime-tools.d.ts.map +0 -1
- package/dist/system/runtime/runtime-tools.js +0 -312
- package/dist/system/runtime/runtime-tools.js.map +0 -1
- package/dist/system/runtime/skill-creator.d.ts +0 -38
- package/dist/system/runtime/skill-creator.d.ts.map +0 -1
- package/dist/system/runtime/skill-creator.js +0 -763
- package/dist/system/runtime/skill-creator.js.map +0 -1
- package/src/prolog-src/deepclause_mi.pl.bak +0 -570
package/dist/cli/compile.js
DELETED
|
@@ -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
|
package/dist/cli/compile.js.map
DELETED
|
@@ -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 +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"}
|
package/dist/cli/interactive.js
DELETED
|
@@ -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"}
|