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.
- package/LICENSE +21 -0
- package/README.md +418 -914
- package/dist/agent.d.ts +19 -2
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +221 -4
- package/dist/agent.js.map +1 -1
- package/dist/cli/config.d.ts +323 -176
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +146 -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 +61 -425
- 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 +191 -0
- package/dist/cli/repl.d.ts.map +1 -0
- package/dist/cli/repl.js +1232 -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 +196 -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 +38 -0
- package/dist/cli/visualize.d.ts.map +1 -0
- package/dist/cli/visualize.js +125 -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 +29 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -2
- package/dist/index.js.map +1 -1
- package/dist/judge/index.d.ts +9 -0
- package/dist/judge/index.d.ts.map +1 -0
- package/dist/judge/index.js +6 -0
- package/dist/judge/index.js.map +1 -0
- package/dist/judge/jev.d.ts +21 -0
- package/dist/judge/jev.d.ts.map +1 -0
- package/dist/judge/jev.js +218 -0
- package/dist/judge/jev.js.map +1 -0
- package/dist/judge/llm.d.ts +23 -0
- package/dist/judge/llm.d.ts.map +1 -0
- package/dist/judge/llm.js +120 -0
- package/dist/judge/llm.js.map +1 -0
- package/dist/judge/marshal.d.ts +26 -0
- package/dist/judge/marshal.d.ts.map +1 -0
- package/dist/judge/marshal.js +266 -0
- package/dist/judge/marshal.js.map +1 -0
- package/dist/judge/mock.d.ts +28 -0
- package/dist/judge/mock.d.ts.map +1 -0
- package/dist/judge/mock.js +98 -0
- package/dist/judge/mock.js.map +1 -0
- package/dist/judge/types.d.ts +95 -0
- package/dist/judge/types.d.ts.map +1 -0
- package/dist/judge/types.js +23 -0
- package/dist/judge/types.js.map +1 -0
- package/dist/prolog/bridge.d.ts +5 -1
- package/dist/prolog/bridge.d.ts.map +1 -1
- package/dist/prolog/bridge.js +29 -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 +2522 -118
- package/dist/repl/agent.d.ts +72 -0
- package/dist/repl/agent.d.ts.map +1 -0
- package/dist/repl/agent.js +366 -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 +290 -0
- package/dist/repl/backend.d.ts.map +1 -0
- package/dist/repl/backend.js +370 -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 +74 -0
- package/dist/repl/harness-tools.d.ts.map +1 -0
- package/dist/repl/harness-tools.js +121 -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/index.d.ts +120 -0
- package/dist/repl/index.d.ts.map +1 -0
- package/dist/repl/index.js +107 -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/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 +160 -0
- package/dist/repl/render.d.ts.map +1 -0
- package/dist/repl/render.js +715 -0
- package/dist/repl/render.js.map +1 -0
- package/dist/repl/session.d.ts +356 -0
- package/dist/repl/session.d.ts.map +1 -0
- package/dist/repl/session.js +1275 -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 +39 -0
- package/dist/repl/tui/transcript.d.ts.map +1 -0
- package/dist/repl/tui/transcript.js +123 -0
- package/dist/repl/tui/transcript.js.map +1 -0
- package/dist/runner.d.ts +145 -13
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +600 -282
- package/dist/runner.js.map +1 -1
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +56 -32
- package/dist/sdk.js.map +1 -1
- package/dist/system/assets/docs/AGENT_PROMPT.md +1373 -0
- package/dist/system/assets/docs/DML_AUTHORING.md +195 -0
- package/dist/system/assets/docs/DML_REFERENCE.md +393 -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 +149 -118
- 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/index.d.ts +52 -0
- package/dist/visualize/index.d.ts.map +1 -0
- package/dist/visualize/index.js +189 -0
- package/dist/visualize/index.js.map +1 -0
- package/package.json +17 -15
- package/src/prolog-src/deepclause_analysis.pl +10 -2
- package/src/prolog-src/deepclause_mi.pl +2522 -118
- 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/compactors/default-memory-compactor.dml +0 -6
- 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/tools.js
CHANGED
|
@@ -1,189 +1,35 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Tool management utilities
|
|
2
|
+
* Tool management utilities.
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*/
|
|
7
|
-
export const BUILTIN_COMPILE_TOOLS = [
|
|
8
|
-
{
|
|
9
|
-
name: 'vm_exec',
|
|
10
|
-
description: 'Execute a shell command using the active workspace shell backend. With --sandbox, this runs inside AgentVM.',
|
|
11
|
-
provider: 'agentvm',
|
|
12
|
-
schema: {
|
|
13
|
-
type: 'object',
|
|
14
|
-
properties: {
|
|
15
|
-
command: { type: 'string', description: 'Shell command to execute (e.g., "python3 script.py", "echo hello", "ls -la")' }
|
|
16
|
-
},
|
|
17
|
-
required: ['command']
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
name: 'web_search',
|
|
22
|
-
description: 'Search the web. Uses Brave Search API if BRAVE_API_KEY is set, otherwise falls back to Bing (no key required).',
|
|
23
|
-
provider: 'brave',
|
|
24
|
-
schema: {
|
|
25
|
-
type: 'object',
|
|
26
|
-
properties: {
|
|
27
|
-
query: { type: 'string', description: 'Search query' },
|
|
28
|
-
count: { type: 'number', description: 'Number of results (default: 10, max: 20)' },
|
|
29
|
-
freshness: { type: 'string', description: 'Filter by freshness: pd (past day), pw (past week), pm (past month), py (past year)' }
|
|
30
|
-
},
|
|
31
|
-
required: ['query']
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
name: 'news_search',
|
|
36
|
-
description: 'Search for recent news articles. Uses Brave Search API if BRAVE_API_KEY is set, otherwise falls back to Bing (no key required).',
|
|
37
|
-
provider: 'brave',
|
|
38
|
-
schema: {
|
|
39
|
-
type: 'object',
|
|
40
|
-
properties: {
|
|
41
|
-
query: { type: 'string', description: 'Search query' },
|
|
42
|
-
count: { type: 'number', description: 'Number of results (default: 10, max: 20)' },
|
|
43
|
-
freshness: { type: 'string', description: 'Filter by freshness: pd (past day), pw (past week), pm (past month)' }
|
|
44
|
-
},
|
|
45
|
-
required: ['query']
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
];
|
|
49
|
-
/**
|
|
50
|
-
* Get all built-in tools for compilation
|
|
51
|
-
*/
|
|
52
|
-
export function getBuiltInCompileTools() {
|
|
53
|
-
return [...BUILTIN_COMPILE_TOOLS];
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Check if a tool is allowed by the current policy
|
|
5
|
+
* Check if a tool is allowed by the current policy.
|
|
57
6
|
*/
|
|
58
7
|
export function checkToolPolicy(toolName, policy) {
|
|
59
|
-
//
|
|
8
|
+
// ask_user is the human-in-the-loop channel, not a capability. It only
|
|
9
|
+
// relays a question and is exempt from the capability whitelist/blacklist.
|
|
10
|
+
if (toolName === 'ask_user') {
|
|
11
|
+
return { allowed: true };
|
|
12
|
+
}
|
|
60
13
|
if (!policy) {
|
|
61
14
|
return { allowed: true };
|
|
62
15
|
}
|
|
63
|
-
const matches = policy.tools.some(pattern => matchToolPattern(pattern, toolName));
|
|
16
|
+
const matches = policy.tools.some((pattern) => matchToolPattern(pattern, toolName));
|
|
64
17
|
if (policy.mode === 'whitelist') {
|
|
65
18
|
if (matches) {
|
|
66
19
|
return { allowed: true };
|
|
67
20
|
}
|
|
68
|
-
return {
|
|
69
|
-
allowed: false,
|
|
70
|
-
reason: `Tool '${toolName}' is not in the whitelist`
|
|
71
|
-
};
|
|
21
|
+
return { allowed: false, reason: `Tool '${toolName}' is not in the whitelist` };
|
|
72
22
|
}
|
|
73
|
-
// Blacklist mode
|
|
74
23
|
if (matches) {
|
|
75
|
-
return {
|
|
76
|
-
allowed: false,
|
|
77
|
-
reason: `Tool '${toolName}' is blocked by blacklist`
|
|
78
|
-
};
|
|
24
|
+
return { allowed: false, reason: `Tool '${toolName}' is blocked by blacklist` };
|
|
79
25
|
}
|
|
80
26
|
return { allowed: true };
|
|
81
27
|
}
|
|
82
|
-
/**
|
|
83
|
-
* Match a tool name against a pattern (supports wildcards)
|
|
84
|
-
*/
|
|
28
|
+
/** Match a tool name against a pattern (supports `*` wildcards). */
|
|
85
29
|
function matchToolPattern(pattern, toolName) {
|
|
86
|
-
// Convert glob pattern to regex
|
|
87
30
|
const regexPattern = pattern
|
|
88
|
-
.replace(/[.+^${}()|[\]\\]/g, '\\$&')
|
|
89
|
-
.replace(/\*/g, '.*');
|
|
90
|
-
|
|
91
|
-
return regex.test(toolName);
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Extract tool name from a Prolog term
|
|
95
|
-
* e.g., "web_search(query)" -> "web_search"
|
|
96
|
-
*/
|
|
97
|
-
export function extractToolName(term) {
|
|
98
|
-
const match = term.match(/^([a-z_][a-z0-9_]*)/i);
|
|
99
|
-
return match ? match[1] : term;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Parse tool arguments from a Prolog term
|
|
103
|
-
* e.g., "web_search(\"query\", 10)" -> ["query", 10]
|
|
104
|
-
*/
|
|
105
|
-
export function parseToolArgs(term) {
|
|
106
|
-
// Find the content between parentheses
|
|
107
|
-
const match = term.match(/\((.+)\)$/s);
|
|
108
|
-
if (!match) {
|
|
109
|
-
return [];
|
|
110
|
-
}
|
|
111
|
-
const argsStr = match[1];
|
|
112
|
-
const args = [];
|
|
113
|
-
// Simple parsing (doesn't handle all edge cases)
|
|
114
|
-
let current = '';
|
|
115
|
-
let depth = 0;
|
|
116
|
-
let inString = false;
|
|
117
|
-
let stringChar = '';
|
|
118
|
-
for (let i = 0; i < argsStr.length; i++) {
|
|
119
|
-
const char = argsStr[i];
|
|
120
|
-
const prevChar = i > 0 ? argsStr[i - 1] : '';
|
|
121
|
-
if (!inString) {
|
|
122
|
-
if (char === '"' || char === "'") {
|
|
123
|
-
inString = true;
|
|
124
|
-
stringChar = char;
|
|
125
|
-
current += char;
|
|
126
|
-
}
|
|
127
|
-
else if (char === '(' || char === '[' || char === '{') {
|
|
128
|
-
depth++;
|
|
129
|
-
current += char;
|
|
130
|
-
}
|
|
131
|
-
else if (char === ')' || char === ']' || char === '}') {
|
|
132
|
-
depth--;
|
|
133
|
-
current += char;
|
|
134
|
-
}
|
|
135
|
-
else if (char === ',' && depth === 0) {
|
|
136
|
-
args.push(parseValue(current.trim()));
|
|
137
|
-
current = '';
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
current += char;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
current += char;
|
|
145
|
-
if (char === stringChar && prevChar !== '\\') {
|
|
146
|
-
inString = false;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
if (current.trim()) {
|
|
151
|
-
args.push(parseValue(current.trim()));
|
|
152
|
-
}
|
|
153
|
-
return args;
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Parse a single value from Prolog term string
|
|
157
|
-
*/
|
|
158
|
-
function parseValue(str) {
|
|
159
|
-
// String literal
|
|
160
|
-
if ((str.startsWith('"') && str.endsWith('"')) ||
|
|
161
|
-
(str.startsWith("'") && str.endsWith("'"))) {
|
|
162
|
-
return str.slice(1, -1)
|
|
163
|
-
.replace(/\\"/g, '"')
|
|
164
|
-
.replace(/\\'/g, "'")
|
|
165
|
-
.replace(/\\\\/g, '\\');
|
|
166
|
-
}
|
|
167
|
-
// Number
|
|
168
|
-
const num = Number(str);
|
|
169
|
-
if (!isNaN(num)) {
|
|
170
|
-
return num;
|
|
171
|
-
}
|
|
172
|
-
// Boolean
|
|
173
|
-
if (str === 'true')
|
|
174
|
-
return true;
|
|
175
|
-
if (str === 'false')
|
|
176
|
-
return false;
|
|
177
|
-
// List
|
|
178
|
-
if (str.startsWith('[') && str.endsWith(']')) {
|
|
179
|
-
// Recursively parse list items
|
|
180
|
-
const inner = str.slice(1, -1);
|
|
181
|
-
if (!inner.trim())
|
|
182
|
-
return [];
|
|
183
|
-
// For simplicity, just return the string for now
|
|
184
|
-
return str;
|
|
185
|
-
}
|
|
186
|
-
// Atom or variable
|
|
187
|
-
return str;
|
|
31
|
+
.replace(/[.+^${}()|[\]\\]/g, '\\$&')
|
|
32
|
+
.replace(/\*/g, '.*');
|
|
33
|
+
return new RegExp(`^${regexPattern}$`).test(toolName);
|
|
188
34
|
}
|
|
189
35
|
//# sourceMappingURL=tools.js.map
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,MAAyB;IAEzB,uEAAuE;IACvE,2EAA2E;IAC3E,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEpF,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,QAAQ,2BAA2B,EAAE,CAAC;IAClF,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,QAAQ,2BAA2B,EAAE,CAAC;IAClF,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,oEAAoE;AACpE,SAAS,gBAAgB,CAAC,OAAe,EAAE,QAAgB;IACzD,MAAM,YAAY,GAAG,OAAO;SACzB,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC;SACpC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACxB,OAAO,IAAI,MAAM,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxD,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Type definitions for DeepClause SDK
|
|
3
3
|
*/
|
|
4
4
|
import { z } from 'zod';
|
|
5
|
+
import type { JudgeBackend, JudgeCapabilities } from './judge/types.js';
|
|
6
|
+
export type { JudgeAnswer, JudgeBackend, JudgeBackendRequest, JudgeBackendResponse, JudgeBasis, JudgeCapabilities, JudgeLevel, JudgeOption, JudgeQuestion, JudgeQuestionKind, JudgeSelection, JudgeUsage, JsonValue, } from './judge/types.js';
|
|
5
7
|
/**
|
|
6
8
|
* Options for creating a DeepClause SDK instance
|
|
7
9
|
*/
|
|
@@ -26,53 +28,81 @@ export interface CreateOptions {
|
|
|
26
28
|
debug?: boolean;
|
|
27
29
|
/** Provider-specific options passed to the AI SDK (e.g. Google thinkingConfig, OpenAI reasoningEffort) */
|
|
28
30
|
providerOptions?: Record<string, Record<string, any>>;
|
|
29
|
-
/** Optional memory compaction settings for task()/prompt() execution */
|
|
30
|
-
compaction?: CompactionOptions;
|
|
31
31
|
/** Reasoning effort type (auto-resolved from model database) */
|
|
32
32
|
reasoningType?: import('./system/config/model-database.js').ReasoningType;
|
|
33
33
|
/** Reasoning budget map for token-based reasoning control */
|
|
34
34
|
reasoningBudgetMap?: Record<string, number>;
|
|
35
35
|
/** Model context window in tokens (from model database) */
|
|
36
36
|
contextWindow?: number;
|
|
37
|
+
/** Host-provided LLM backend. When set, no provider credentials or environment variables are used. */
|
|
38
|
+
llmBackend?: LLMBackend;
|
|
39
|
+
/** Default judgment backend. When omitted, an LLM judge backend is created from the model options. */
|
|
40
|
+
judgeBackend?: JudgeBackend;
|
|
41
|
+
/** Named judgment backends selectable from DML with with_judgment/2. */
|
|
42
|
+
judgeBackends?: Record<string, JudgeBackend>;
|
|
43
|
+
/** Name of the default judgment backend. Defaults to the first registered backend. */
|
|
44
|
+
defaultJudge?: string;
|
|
37
45
|
}
|
|
38
|
-
|
|
39
|
-
export
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
46
|
+
/** A workspace-relative media reference (never the bytes). */
|
|
47
|
+
export interface MediaRef {
|
|
48
|
+
path: string;
|
|
49
|
+
mimeType: string;
|
|
50
|
+
}
|
|
51
|
+
/** Resolved media bytes attached to a backend message (base64). */
|
|
52
|
+
export interface LLMBackendMedia {
|
|
53
|
+
mimeType: string;
|
|
54
|
+
data: string;
|
|
55
|
+
}
|
|
56
|
+
export interface LLMBackendMessage {
|
|
57
|
+
role: 'system' | 'user' | 'assistant' | 'tool';
|
|
58
|
+
content: string;
|
|
59
|
+
/** Resolved media bytes to send with this message. */
|
|
60
|
+
media?: LLMBackendMedia[];
|
|
61
|
+
/** Reference-only media carried through to conversation memory. */
|
|
62
|
+
mediaRefs?: MediaRef[];
|
|
63
|
+
toolCalls?: LLMBackendToolCall[];
|
|
64
|
+
toolCallId?: string;
|
|
65
|
+
toolName?: string;
|
|
66
|
+
/** Opaque host-native message used to preserve provider state across backend calls. */
|
|
67
|
+
providerData?: unknown;
|
|
68
|
+
}
|
|
69
|
+
export interface LLMBackendTool {
|
|
70
|
+
name: string;
|
|
71
|
+
description: string;
|
|
72
|
+
parameters: Record<string, unknown>;
|
|
73
|
+
}
|
|
74
|
+
export interface LLMBackendToolCall {
|
|
75
|
+
id: string;
|
|
76
|
+
name: string;
|
|
77
|
+
arguments: Record<string, unknown>;
|
|
78
|
+
}
|
|
79
|
+
export interface LLMBackendRequest {
|
|
80
|
+
messages: LLMBackendMessage[];
|
|
81
|
+
tools?: LLMBackendTool[];
|
|
82
|
+
temperature?: number;
|
|
83
|
+
maxTokens?: number;
|
|
84
|
+
signal?: AbortSignal;
|
|
85
|
+
/** Receives model text as it becomes available. Backends may emit one final chunk. */
|
|
86
|
+
onText?: (chunk: string) => void;
|
|
87
|
+
/** Receives reasoning/thinking text as it becomes available (display only). */
|
|
88
|
+
onReasoning?: (chunk: string) => void;
|
|
59
89
|
}
|
|
60
|
-
export interface
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
|
|
90
|
+
export interface LLMBackendResponse {
|
|
91
|
+
text: string;
|
|
92
|
+
toolCalls?: LLMBackendToolCall[];
|
|
93
|
+
usage?: LLMUsage;
|
|
94
|
+
finishReason?: 'stop' | 'length' | 'tool_use' | 'error' | 'aborted';
|
|
95
|
+
/** Accumulated reasoning/thinking text (display only; not written to DML memory). */
|
|
96
|
+
reasoning?: string;
|
|
97
|
+
/** Opaque host-native assistant message to replay on a subsequent backend call. */
|
|
98
|
+
providerData?: unknown;
|
|
69
99
|
}
|
|
70
|
-
export interface
|
|
71
|
-
|
|
72
|
-
enabled?: boolean;
|
|
73
|
-
/** Compactor bindings evaluated at specific runtime hook points. */
|
|
74
|
-
bindings?: CompactorBinding[];
|
|
100
|
+
export interface LLMBackend {
|
|
101
|
+
complete(request: LLMBackendRequest): Promise<LLMBackendResponse>;
|
|
75
102
|
}
|
|
103
|
+
export type CompactionScope = 'session' | 'loop' | 'run';
|
|
104
|
+
export type CompactionTrigger = 'before_user_message' | 'before_model_call' | 'before_task' | 'after_task';
|
|
105
|
+
export type CompactionAction = 'running' | 'applied' | 'skipped' | 'failed';
|
|
76
106
|
/**
|
|
77
107
|
* Options for running DML code
|
|
78
108
|
*/
|
|
@@ -83,6 +113,8 @@ export interface RunOptions {
|
|
|
83
113
|
params?: Record<string, unknown>;
|
|
84
114
|
/** Path to workspace directory */
|
|
85
115
|
workspacePath?: string;
|
|
116
|
+
/** Per-run default judgment backend name override. */
|
|
117
|
+
judgeBackend?: string;
|
|
86
118
|
/** Maximum number of execution steps (gas) */
|
|
87
119
|
gasLimit?: number;
|
|
88
120
|
/** Handler for user input requests */
|
|
@@ -92,8 +124,6 @@ export interface RunOptions {
|
|
|
92
124
|
/** Initial conversation messages seeded into memory before DML execution.
|
|
93
125
|
* These appear as proper memory messages, not in the synthesized system prompt. */
|
|
94
126
|
initialMessages?: MemoryMessage[];
|
|
95
|
-
/** Per-run override for SDK compaction settings. */
|
|
96
|
-
compaction?: CompactionOptions;
|
|
97
127
|
}
|
|
98
128
|
/**
|
|
99
129
|
* Trace entry for execution logging
|
|
@@ -126,9 +156,49 @@ export interface LLMUsage {
|
|
|
126
156
|
cacheWriteTokens?: number;
|
|
127
157
|
reasoningTokens?: number;
|
|
128
158
|
}
|
|
129
|
-
|
|
130
|
-
|
|
159
|
+
/**
|
|
160
|
+
* A single rendered variable binding from a goal-mode solution.
|
|
161
|
+
* `value` is the Prolog text of the binding ('_' when unbound).
|
|
162
|
+
*/
|
|
163
|
+
export interface DMLBinding {
|
|
164
|
+
name: string;
|
|
165
|
+
value: string;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* One goal-mode answer. A goal with N solutions yields N solution events.
|
|
169
|
+
* `deterministic` is an optimization hint only; the pager can always offer
|
|
170
|
+
* the next solution.
|
|
171
|
+
*/
|
|
172
|
+
export interface DMLSolution {
|
|
173
|
+
bindings: DMLBinding[];
|
|
174
|
+
deterministic: boolean;
|
|
175
|
+
}
|
|
176
|
+
/** Frame metadata attached to events emitted by a nested/reentrant run. */
|
|
177
|
+
export interface FrameEventMeta {
|
|
178
|
+
frameId?: string;
|
|
179
|
+
depth?: number;
|
|
180
|
+
frameKind?: FrameKind;
|
|
181
|
+
}
|
|
182
|
+
export interface DMLEvent extends FrameEventMeta {
|
|
183
|
+
type: 'output' | 'log' | 'answer' | 'input_required' | 'error' | 'finished' | 'stream' | 'reasoning' | 'tool_call' | 'model_call' | 'usage' | 'memory_compaction' | 'task_activity' | 'solution' | 'meta_result' | 'media';
|
|
131
184
|
content?: string;
|
|
185
|
+
/** Media produced by a step (path in the workspace, optional inline base64). */
|
|
186
|
+
media?: {
|
|
187
|
+
path?: string;
|
|
188
|
+
mimeType: string;
|
|
189
|
+
data?: string;
|
|
190
|
+
};
|
|
191
|
+
/** Model-call lifecycle (only for 'model_call' events). */
|
|
192
|
+
modelCallState?: 'started' | 'completed' | 'failed';
|
|
193
|
+
/** Model id for a 'model_call' event, when known. */
|
|
194
|
+
modelId?: string;
|
|
195
|
+
/** Goal-mode solution (only for 'solution' events). */
|
|
196
|
+
solution?: DMLSolution;
|
|
197
|
+
/** Prompt-mode meta task result (only for 'meta_result' events). */
|
|
198
|
+
metaResult?: {
|
|
199
|
+
code: string;
|
|
200
|
+
answer: string;
|
|
201
|
+
};
|
|
132
202
|
prompt?: string;
|
|
133
203
|
/** Execution trace (only present in 'finished' event when trace mode enabled) */
|
|
134
204
|
trace?: TraceEntry[];
|
|
@@ -148,6 +218,8 @@ export interface DMLEvent {
|
|
|
148
218
|
toolBackend?: 'host' | 'sandbox';
|
|
149
219
|
/** Tool exit code when available (only for 'tool_call' events) */
|
|
150
220
|
toolExitCode?: number;
|
|
221
|
+
/** Wall-clock duration of the tool call in ms (only for completed/failed 'tool_call' events) */
|
|
222
|
+
toolDurationMs?: number;
|
|
151
223
|
/** Tool summary message when available (only for 'tool_call' events) */
|
|
152
224
|
toolSummary?: string;
|
|
153
225
|
/** Tool failure message when available (only for 'tool_call' events) */
|
|
@@ -160,8 +232,6 @@ export interface DMLEvent {
|
|
|
160
232
|
compactionTrigger?: CompactionTrigger;
|
|
161
233
|
/** Compaction action outcome (only for 'memory_compaction' events) */
|
|
162
234
|
compactionAction?: CompactionAction;
|
|
163
|
-
/** Binding label used for the compaction event when available */
|
|
164
|
-
compactionBindingName?: string;
|
|
165
235
|
/** Estimated tokens before compaction (only for 'memory_compaction' events) */
|
|
166
236
|
beforeTokens?: number;
|
|
167
237
|
/** Estimated tokens after compaction (only for 'memory_compaction' events) */
|
|
@@ -174,84 +244,34 @@ export interface DMLEvent {
|
|
|
174
244
|
taskDescription?: string;
|
|
175
245
|
/** Correlation ID for matching start/end of a step (only for 'task_activity' events) */
|
|
176
246
|
taskId?: string;
|
|
247
|
+
/** Judgment backend name (only for judge activity events) */
|
|
248
|
+
judgeBackend?: string;
|
|
249
|
+
/** Judged question ids (only for judge activity events) */
|
|
250
|
+
judgeQuestionIds?: string[];
|
|
251
|
+
/** Judgment step lifecycle state (only for judge activity events) */
|
|
252
|
+
judgeState?: 'started' | 'completed' | 'failed';
|
|
253
|
+
/** Which subsystem produced a usage event. */
|
|
254
|
+
usageSource?: 'llm' | 'judge';
|
|
255
|
+
/** Model that produced a usage event. */
|
|
256
|
+
usageModel?: string;
|
|
177
257
|
}
|
|
178
258
|
/**
|
|
179
259
|
* Tool definition for registering external tools
|
|
180
260
|
*/
|
|
261
|
+
/** Per-call context handed to a tool's `execute`. */
|
|
262
|
+
export interface ToolExecutionContext {
|
|
263
|
+
/** Abort signal for the current turn; long-running tools should honor it. */
|
|
264
|
+
signal?: AbortSignal;
|
|
265
|
+
/** Stream events produced while the tool runs (e.g. an `execute` child frame). */
|
|
266
|
+
onEvent?: (event: DMLEvent) => void;
|
|
267
|
+
}
|
|
181
268
|
export interface ToolDefinition {
|
|
182
269
|
/** Human-readable description of what the tool does */
|
|
183
270
|
description: string;
|
|
184
271
|
/** JSON Schema for tool parameters */
|
|
185
272
|
parameters: JsonSchema;
|
|
186
273
|
/** Function to execute the tool */
|
|
187
|
-
execute: (args: Record<string, unknown
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Tool representation for the compiler
|
|
191
|
-
*/
|
|
192
|
-
export interface CompileTool {
|
|
193
|
-
name: string;
|
|
194
|
-
description: string;
|
|
195
|
-
provider: string;
|
|
196
|
-
schema?: object;
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Static Analysis Warning
|
|
200
|
-
*/
|
|
201
|
-
export interface AnalysisWarning {
|
|
202
|
-
level: 'critical' | 'high' | 'medium' | 'low';
|
|
203
|
-
message: string;
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Result of DML Analysis
|
|
207
|
-
*/
|
|
208
|
-
export interface AnalysisResult {
|
|
209
|
-
valid: boolean;
|
|
210
|
-
warnings: AnalysisWarning[];
|
|
211
|
-
capabilities: string[];
|
|
212
|
-
auditorReport?: string;
|
|
213
|
-
error?: string;
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* Options for DML compilation
|
|
217
|
-
*/
|
|
218
|
-
export interface CompileOptions {
|
|
219
|
-
/** Model to use for compilation */
|
|
220
|
-
model?: string;
|
|
221
|
-
/** Provider for the model */
|
|
222
|
-
provider?: 'openai' | 'anthropic' | 'google' | 'openrouter';
|
|
223
|
-
/** Temperature for LLM calls (0-1) */
|
|
224
|
-
temperature?: number;
|
|
225
|
-
/** Maximum number of compilation attempts */
|
|
226
|
-
maxAttempts?: number;
|
|
227
|
-
/** Enable verbose logging during compilation */
|
|
228
|
-
verbose?: boolean;
|
|
229
|
-
/** Custom tools to describe to the compiler */
|
|
230
|
-
tools?: CompileTool[];
|
|
231
|
-
/** Run LLM-based security audit */
|
|
232
|
-
audit?: boolean;
|
|
233
|
-
/** Base URL for the LLM API (e.g. a proxy endpoint) */
|
|
234
|
-
baseUrl?: string;
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* Result of a DML compilation
|
|
238
|
-
*/
|
|
239
|
-
export interface CompileResult {
|
|
240
|
-
/** Compiled DML code */
|
|
241
|
-
dml: string;
|
|
242
|
-
/** Tool dependencies extracted from the DML */
|
|
243
|
-
tools: string[];
|
|
244
|
-
/** Brief explanation of what the program does */
|
|
245
|
-
explanation?: string;
|
|
246
|
-
/** Number of attempts taken to compile */
|
|
247
|
-
attempts?: number;
|
|
248
|
-
/** Validation details */
|
|
249
|
-
valid: boolean;
|
|
250
|
-
errors?: string[];
|
|
251
|
-
/** Static and Semantic Analysis results */
|
|
252
|
-
analysis?: AnalysisResult;
|
|
253
|
-
/** Token usage from LLM calls during compilation */
|
|
254
|
-
usageByModel?: import('./system/runtime/token-usage.js').TokenUsageByModel;
|
|
274
|
+
execute: (args: Record<string, unknown>, context?: ToolExecutionContext) => Promise<unknown>;
|
|
255
275
|
}
|
|
256
276
|
/**
|
|
257
277
|
* JSON Schema type for tool parameters
|
|
@@ -285,13 +305,6 @@ export interface DeepClauseSDK {
|
|
|
285
305
|
* @yields DML events (output, log, answer, etc.)
|
|
286
306
|
*/
|
|
287
307
|
runDML(code: string, options?: RunOptions): AsyncGenerator<DMLEvent>;
|
|
288
|
-
/**
|
|
289
|
-
* Compile Markdown task description to DML
|
|
290
|
-
* @param source - Markdown content or path to .md file
|
|
291
|
-
* @param options - Compilation options
|
|
292
|
-
* @returns Compiled DML and metadata
|
|
293
|
-
*/
|
|
294
|
-
compile(source: string, options?: CompileOptions): Promise<CompileResult>;
|
|
295
308
|
/**
|
|
296
309
|
* Register an external tool
|
|
297
310
|
* @param name - Tool name (used in exec())
|
|
@@ -325,11 +338,27 @@ export interface DeepClauseSDK {
|
|
|
325
338
|
* @returns Array of memory messages (system, user, assistant)
|
|
326
339
|
*/
|
|
327
340
|
getMemory(): MemoryMessage[];
|
|
341
|
+
/** Register or replace a named judgment backend. */
|
|
342
|
+
registerJudgeBackend(name: string, backend: JudgeBackend): void;
|
|
343
|
+
/** Select the default judgment backend by name. */
|
|
344
|
+
setJudgeBackend(name: string): void;
|
|
345
|
+
/** List registered judgment backend names. */
|
|
346
|
+
getJudgeBackends(): string[];
|
|
347
|
+
/** Get the capabilities of a judgment backend (default when omitted). */
|
|
348
|
+
getJudgeCapabilities(name?: string): JudgeCapabilities;
|
|
328
349
|
/**
|
|
329
350
|
* Clean up resources
|
|
330
351
|
*/
|
|
331
352
|
dispose(): Promise<void>;
|
|
332
353
|
}
|
|
354
|
+
/**
|
|
355
|
+
* Kind of execution frame in the runner's reentrant frame stack.
|
|
356
|
+
*
|
|
357
|
+
* - `query` — the default engine created by `runDML` (one solution / agent_main)
|
|
358
|
+
* - `nested` — an `execute` child frame run by the authoring agent
|
|
359
|
+
* - `object` — a harness run after a prompt commit (runtime tool policy)
|
|
360
|
+
*/
|
|
361
|
+
export type FrameKind = 'query' | 'nested' | 'object';
|
|
333
362
|
/**
|
|
334
363
|
* Variable with type information for type-safe LLM outputs
|
|
335
364
|
*/
|
|
@@ -356,6 +385,8 @@ export interface PrologResponse {
|
|
|
356
385
|
export interface MemoryMessage {
|
|
357
386
|
role: 'system' | 'user' | 'assistant';
|
|
358
387
|
content: string;
|
|
388
|
+
/** Reference-only media attached to this message (resolved at call time). */
|
|
389
|
+
media?: MediaRef[];
|
|
359
390
|
}
|
|
360
391
|
/**
|
|
361
392
|
* Agent loop tool definitions
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DML validation and linting.
|
|
3
|
+
*
|
|
4
|
+
* Parses DML with the real Prolog reader and applies structural/lint checks.
|
|
5
|
+
* This is the surviving part of the old compiler module (the Markdown->DML
|
|
6
|
+
* generator was removed); it is exported as `deepclause-sdk/validate` and used
|
|
7
|
+
* by the CLI's `validate_dml` runtime tool and by downstream apps
|
|
8
|
+
* (`deepclause-pi`, `sop2harness`).
|
|
9
|
+
*/
|
|
10
|
+
export interface ValidationResult {
|
|
11
|
+
valid: boolean;
|
|
12
|
+
errors: string[];
|
|
13
|
+
warnings?: string[];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Validate DML code using the actual Prolog parser
|
|
17
|
+
*/
|
|
18
|
+
export declare function validateWithProlog(dml: string): Promise<ValidationResult>;
|
|
19
|
+
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAkBD;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAyF/E"}
|