deepclause-sdk 0.0.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 +446 -0
- package/dist/agent.d.ts +44 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +518 -0
- package/dist/agent.js.map +1 -0
- package/dist/cli/commands.d.ts +37 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/cli/commands.js +105 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/compile.d.ts +88 -0
- package/dist/cli/compile.d.ts.map +1 -0
- package/dist/cli/compile.js +362 -0
- package/dist/cli/compile.js.map +1 -0
- package/dist/cli/config.d.ts +265 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +272 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +287 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/mcp.d.ts +56 -0
- package/dist/cli/mcp.d.ts.map +1 -0
- package/dist/cli/mcp.js +138 -0
- package/dist/cli/mcp.js.map +1 -0
- package/dist/cli/prompt.d.ts +20 -0
- package/dist/cli/prompt.d.ts.map +1 -0
- package/dist/cli/prompt.js +669 -0
- package/dist/cli/prompt.js.map +1 -0
- package/dist/cli/run.d.ts +33 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +429 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/search.d.ts +25 -0
- package/dist/cli/search.d.ts.map +1 -0
- package/dist/cli/search.js +125 -0
- package/dist/cli/search.js.map +1 -0
- package/dist/cli/tools.d.ts +36 -0
- package/dist/cli/tools.d.ts.map +1 -0
- package/dist/cli/tools.js +204 -0
- package/dist/cli/tools.js.map +1 -0
- package/dist/cli/tui/index.d.ts +22 -0
- package/dist/cli/tui/index.d.ts.map +1 -0
- package/dist/cli/tui/index.js +29 -0
- package/dist/cli/tui/index.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/prolog/bridge.d.ts +21 -0
- package/dist/prolog/bridge.d.ts.map +1 -0
- package/dist/prolog/bridge.js +226 -0
- package/dist/prolog/bridge.js.map +1 -0
- package/dist/prolog/loader.d.ts +40 -0
- package/dist/prolog/loader.d.ts.map +1 -0
- package/dist/prolog/loader.js +133 -0
- package/dist/prolog/loader.js.map +1 -0
- package/dist/prolog-src/deepclause_memory.pl +45 -0
- package/dist/prolog-src/deepclause_mi.pl +1978 -0
- package/dist/prolog-src/deepclause_mi.pl.bak +570 -0
- package/dist/prolog-src/deepclause_strings.pl +89 -0
- package/dist/runner.d.ts +143 -0
- package/dist/runner.d.ts.map +1 -0
- package/dist/runner.js +1095 -0
- package/dist/runner.js.map +1 -0
- package/dist/sdk.d.ts +9 -0
- package/dist/sdk.d.ts.map +1 -0
- package/dist/sdk.js +131 -0
- package/dist/sdk.js.map +1 -0
- package/dist/tools.d.ts +22 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +138 -0
- package/dist/tools.js.map +1 -0
- package/dist/types.d.ts +186 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +79 -0
- package/src/prolog-src/deepclause_memory.pl +45 -0
- package/src/prolog-src/deepclause_mi.pl +1978 -0
- package/src/prolog-src/deepclause_mi.pl.bak +570 -0
- package/src/prolog-src/deepclause_strings.pl +89 -0
- package/vendor/swipl-wasm/LICENSE.txt +41 -0
- package/vendor/swipl-wasm/dist/bin/index.js +25 -0
- package/vendor/swipl-wasm/dist/common.d.ts +88 -0
- package/vendor/swipl-wasm/dist/generateImage.d.ts +6 -0
- package/vendor/swipl-wasm/dist/generateImage.js +76 -0
- package/vendor/swipl-wasm/dist/index.d.ts +2 -0
- package/vendor/swipl-wasm/dist/index.js +1 -0
- package/vendor/swipl-wasm/dist/loadImage.d.ts +2 -0
- package/vendor/swipl-wasm/dist/loadImage.js +10 -0
- package/vendor/swipl-wasm/dist/loadImageDefault.d.ts +2 -0
- package/vendor/swipl-wasm/dist/loadImageDefault.js +11 -0
- package/vendor/swipl-wasm/dist/strToBuffer.d.ts +8 -0
- package/vendor/swipl-wasm/dist/strToBuffer.js +41 -0
- package/vendor/swipl-wasm/dist/swipl/swipl-bundle-no-data.d.ts +2 -0
- package/vendor/swipl-wasm/dist/swipl/swipl-bundle-no-data.js +2 -0
- package/vendor/swipl-wasm/dist/swipl/swipl-bundle.d.ts +2 -0
- package/vendor/swipl-wasm/dist/swipl/swipl-bundle.js +2 -0
- package/vendor/swipl-wasm/dist/swipl/swipl-web.d.ts +2 -0
- package/vendor/swipl-wasm/dist/swipl/swipl-web.data +0 -0
- package/vendor/swipl-wasm/dist/swipl/swipl-web.js +2 -0
- package/vendor/swipl-wasm/dist/swipl/swipl-web.wasm +0 -0
- package/vendor/swipl-wasm/dist/swipl/swipl-win.js +1 -0
- package/vendor/swipl-wasm/dist/swipl/swipl-win.wasm +0 -0
- package/vendor/swipl-wasm/dist/swipl/swipl.d.ts +2 -0
- package/vendor/swipl-wasm/dist/swipl/swipl.js +1 -0
- package/vendor/swipl-wasm/dist/swipl/swipl.wasm +0 -0
- package/vendor/swipl-wasm/dist/swipl-node.d.ts +2 -0
- package/vendor/swipl-wasm/dist/swipl-node.js +17 -0
- package/vendor/swipl-wasm/package.json +129 -0
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DeepClause CLI - Tool Resolution Module
|
|
3
|
+
*
|
|
4
|
+
* Handles MCP server connections and tool discovery.
|
|
5
|
+
*/
|
|
6
|
+
import { getMCPServers } from './config.js';
|
|
7
|
+
// =============================================================================
|
|
8
|
+
// Built-in AgentVM Tools
|
|
9
|
+
// =============================================================================
|
|
10
|
+
const AGENTVM_TOOLS = [
|
|
11
|
+
{
|
|
12
|
+
name: 'vm_exec',
|
|
13
|
+
description: 'Execute a shell command in a sandboxed Alpine Linux VM with Python. Returns stdout, stderr, and exit code.',
|
|
14
|
+
provider: 'agentvm',
|
|
15
|
+
schema: {
|
|
16
|
+
type: 'object',
|
|
17
|
+
properties: {
|
|
18
|
+
command: { type: 'string', description: 'Shell command to execute (e.g., "python3 script.py", "echo hello", "ls -la")' }
|
|
19
|
+
},
|
|
20
|
+
required: ['command']
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
];
|
|
24
|
+
// =============================================================================
|
|
25
|
+
// Built-in Search Tools
|
|
26
|
+
// =============================================================================
|
|
27
|
+
const SEARCH_TOOLS = [
|
|
28
|
+
{
|
|
29
|
+
name: 'web_search',
|
|
30
|
+
description: 'Search the web using Brave Search API. Returns structured results with titles, URLs, and descriptions.',
|
|
31
|
+
provider: 'brave',
|
|
32
|
+
schema: {
|
|
33
|
+
type: 'object',
|
|
34
|
+
properties: {
|
|
35
|
+
query: { type: 'string', description: 'Search query' },
|
|
36
|
+
count: { type: 'number', description: 'Number of results (default: 10, max: 20)' },
|
|
37
|
+
freshness: { type: 'string', description: 'Filter by freshness: pd (past day), pw (past week), pm (past month), py (past year)' }
|
|
38
|
+
},
|
|
39
|
+
required: ['query']
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'news_search',
|
|
44
|
+
description: 'Search for recent news articles using Brave Search API.',
|
|
45
|
+
provider: 'brave',
|
|
46
|
+
schema: {
|
|
47
|
+
type: 'object',
|
|
48
|
+
properties: {
|
|
49
|
+
query: { type: 'string', description: 'Search query' },
|
|
50
|
+
count: { type: 'number', description: 'Number of results (default: 10, max: 20)' },
|
|
51
|
+
freshness: { type: 'string', description: 'Filter by freshness: pd (past day), pw (past week), pm (past month)' }
|
|
52
|
+
},
|
|
53
|
+
required: ['query']
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
];
|
|
57
|
+
// =============================================================================
|
|
58
|
+
// Tool Resolution
|
|
59
|
+
// =============================================================================
|
|
60
|
+
/**
|
|
61
|
+
* List all available tools from AgentVM, Search, and configured MCP servers
|
|
62
|
+
*/
|
|
63
|
+
export async function listTools(workspaceRoot, options = {}) {
|
|
64
|
+
const { loadConfig } = await import('./config.js');
|
|
65
|
+
const config = await loadConfig(workspaceRoot);
|
|
66
|
+
const tools = [...AGENTVM_TOOLS, ...SEARCH_TOOLS];
|
|
67
|
+
// Get tools from MCP servers
|
|
68
|
+
const mcpServers = getMCPServers(config);
|
|
69
|
+
for (const [serverName, serverConfig] of Object.entries(mcpServers)) {
|
|
70
|
+
try {
|
|
71
|
+
const serverTools = await getToolsFromMCPServer(serverName, serverConfig);
|
|
72
|
+
tools.push(...serverTools);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
// Add error entry for failed server
|
|
76
|
+
tools.push({
|
|
77
|
+
name: `[${serverName}]`,
|
|
78
|
+
description: `Failed to connect: ${error.message}`,
|
|
79
|
+
provider: serverName,
|
|
80
|
+
error: error.message
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (options.json) {
|
|
85
|
+
return JSON.stringify(tools, null, 2);
|
|
86
|
+
}
|
|
87
|
+
return formatToolsList(tools);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Resolve specific tools by name, verifying they are available
|
|
91
|
+
*/
|
|
92
|
+
export async function resolveTools(config, toolNames) {
|
|
93
|
+
const resolved = {};
|
|
94
|
+
const missing = [];
|
|
95
|
+
// All built-in tools (AgentVM + Search)
|
|
96
|
+
const builtInTools = [...AGENTVM_TOOLS, ...SEARCH_TOOLS];
|
|
97
|
+
// Check built-in tools first
|
|
98
|
+
for (const name of toolNames) {
|
|
99
|
+
const builtInTool = builtInTools.find(t => t.name === name);
|
|
100
|
+
if (builtInTool) {
|
|
101
|
+
resolved[name] = builtInTool;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// Check MCP servers for remaining tools
|
|
105
|
+
const remainingTools = toolNames.filter(name => !resolved[name]);
|
|
106
|
+
if (remainingTools.length > 0) {
|
|
107
|
+
const mcpServers = getMCPServers(config);
|
|
108
|
+
for (const [serverName, serverConfig] of Object.entries(mcpServers)) {
|
|
109
|
+
try {
|
|
110
|
+
const serverTools = await getToolsFromMCPServer(serverName, serverConfig);
|
|
111
|
+
for (const tool of serverTools) {
|
|
112
|
+
if (remainingTools.includes(tool.name) && !resolved[tool.name]) {
|
|
113
|
+
resolved[tool.name] = tool;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
// Server failed, continue checking others
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// Check for missing tools
|
|
123
|
+
for (const name of toolNames) {
|
|
124
|
+
if (!resolved[name]) {
|
|
125
|
+
missing.push(name);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (missing.length > 0) {
|
|
129
|
+
throw new Error(`Missing tools: ${missing.join(', ')}. Configure MCP servers or check tool names.`);
|
|
130
|
+
}
|
|
131
|
+
return resolved;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Check if all required tools are available
|
|
135
|
+
*/
|
|
136
|
+
export async function verifyTools(config, toolNames) {
|
|
137
|
+
try {
|
|
138
|
+
await resolveTools(config, toolNames);
|
|
139
|
+
return { available: true, missing: [] };
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
const match = error.message.match(/Missing tools: (.+)\./);
|
|
143
|
+
const missing = match ? match[1].split(', ') : toolNames;
|
|
144
|
+
return { available: false, missing };
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// =============================================================================
|
|
148
|
+
// MCP Server Integration
|
|
149
|
+
// =============================================================================
|
|
150
|
+
/**
|
|
151
|
+
* Get tools from an MCP server
|
|
152
|
+
*/
|
|
153
|
+
async function getToolsFromMCPServer(serverName, serverConfig) {
|
|
154
|
+
// Use the MCP module for server connection
|
|
155
|
+
const { getMCPServerTools } = await import('./mcp.js');
|
|
156
|
+
return getMCPServerTools(serverName, serverConfig);
|
|
157
|
+
}
|
|
158
|
+
// =============================================================================
|
|
159
|
+
// Formatting
|
|
160
|
+
// =============================================================================
|
|
161
|
+
function formatToolsList(tools) {
|
|
162
|
+
const byProvider = new Map();
|
|
163
|
+
for (const tool of tools) {
|
|
164
|
+
const existing = byProvider.get(tool.provider) || [];
|
|
165
|
+
existing.push(tool);
|
|
166
|
+
byProvider.set(tool.provider, existing);
|
|
167
|
+
}
|
|
168
|
+
const lines = [];
|
|
169
|
+
for (const [provider, providerTools] of byProvider) {
|
|
170
|
+
let icon;
|
|
171
|
+
let type;
|
|
172
|
+
switch (provider) {
|
|
173
|
+
case 'agentvm':
|
|
174
|
+
icon = '🖥️';
|
|
175
|
+
type = 'built-in';
|
|
176
|
+
break;
|
|
177
|
+
case 'brave':
|
|
178
|
+
icon = '🔍';
|
|
179
|
+
type = 'built-in';
|
|
180
|
+
break;
|
|
181
|
+
default:
|
|
182
|
+
icon = '📦';
|
|
183
|
+
type = 'MCP';
|
|
184
|
+
}
|
|
185
|
+
lines.push(`${icon} ${provider} (${type})`);
|
|
186
|
+
for (const tool of providerTools) {
|
|
187
|
+
if (tool.error) {
|
|
188
|
+
lines.push(` ⚠️ ${tool.name} - ${tool.description}`);
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
lines.push(` ├─ ${tool.name} - ${tool.description}`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
lines.push('');
|
|
195
|
+
}
|
|
196
|
+
return lines.join('\n');
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Get all built-in tools (AgentVM + Search)
|
|
200
|
+
*/
|
|
201
|
+
export function getAgentVMTools() {
|
|
202
|
+
return [...AGENTVM_TOOLS, ...SEARCH_TOOLS];
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/cli/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DeepClause CLI - Terminal UI Module (Stub)
|
|
3
|
+
*
|
|
4
|
+
* TODO: Full implementation in Phase 5
|
|
5
|
+
*/
|
|
6
|
+
export interface TUIOptions {
|
|
7
|
+
headless?: boolean;
|
|
8
|
+
verbose?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Render execution progress in TUI
|
|
12
|
+
*/
|
|
13
|
+
export declare function renderExecution(_options: TUIOptions): void;
|
|
14
|
+
/**
|
|
15
|
+
* Render compilation progress in TUI
|
|
16
|
+
*/
|
|
17
|
+
export declare function renderCompilation(_options: TUIOptions): void;
|
|
18
|
+
/**
|
|
19
|
+
* Check if TUI should be used
|
|
20
|
+
*/
|
|
21
|
+
export declare function shouldUseTUI(options: TUIOptions): boolean;
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI,CAE1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI,CAE5D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAKzD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DeepClause CLI - Terminal UI Module (Stub)
|
|
3
|
+
*
|
|
4
|
+
* TODO: Full implementation in Phase 5
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Render execution progress in TUI
|
|
8
|
+
*/
|
|
9
|
+
export function renderExecution(_options) {
|
|
10
|
+
// TODO: Implement in Phase 5
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Render compilation progress in TUI
|
|
14
|
+
*/
|
|
15
|
+
export function renderCompilation(_options) {
|
|
16
|
+
// TODO: Implement in Phase 5
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Check if TUI should be used
|
|
20
|
+
*/
|
|
21
|
+
export function shouldUseTUI(options) {
|
|
22
|
+
// Use TUI unless headless mode or not a TTY
|
|
23
|
+
if (options.headless)
|
|
24
|
+
return false;
|
|
25
|
+
if (!process.stdout.isTTY)
|
|
26
|
+
return false;
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/tui/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAoB;IAClD,6BAA6B;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAoB;IACpD,6BAA6B;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAmB;IAC9C,4CAA4C;IAC5C,IAAI,OAAO,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DeepClause SDK - Simplified DML Language Runtime
|
|
3
|
+
*
|
|
4
|
+
* A neurosymbolic AI system combining Prolog-based symbolic reasoning
|
|
5
|
+
* with LLM-powered task execution.
|
|
6
|
+
*/
|
|
7
|
+
export { createDeepClause } from './sdk.js';
|
|
8
|
+
export type { CreateOptions, DeepClauseSDK, RunOptions, DMLEvent, TraceEntry, ToolDefinition, ToolPolicy } from './types.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,QAAQ,EACR,UAAU,EACV,cAAc,EACd,UAAU,EACX,MAAM,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JavaScript-Prolog Bridge utilities
|
|
3
|
+
*/
|
|
4
|
+
import type { LanguageModel } from 'ai';
|
|
5
|
+
/**
|
|
6
|
+
* Create a model provider for the Vercel AI SDK
|
|
7
|
+
*/
|
|
8
|
+
export declare function createModelProvider(provider: string, model: string, baseUrl?: string): LanguageModel;
|
|
9
|
+
/**
|
|
10
|
+
* Convert a JavaScript value to a Prolog term string
|
|
11
|
+
*/
|
|
12
|
+
export declare function jsToPrologTerm(value: unknown): string;
|
|
13
|
+
/**
|
|
14
|
+
* Convert a Prolog term to a JavaScript value
|
|
15
|
+
*/
|
|
16
|
+
export declare function prologTermToJs(term: unknown): unknown;
|
|
17
|
+
/**
|
|
18
|
+
* Parse a Prolog term string into arguments
|
|
19
|
+
*/
|
|
20
|
+
export declare function parsePrologArgs(termStr: string): unknown[];
|
|
21
|
+
//# sourceMappingURL=bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/prolog/bridge.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,GACf,aAAa,CAkCf;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAqCrD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CA2CrD;AAgBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,CA2D1D"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JavaScript-Prolog Bridge utilities
|
|
3
|
+
*/
|
|
4
|
+
import { google } from '@ai-sdk/google';
|
|
5
|
+
import { anthropic } from '@ai-sdk/anthropic';
|
|
6
|
+
import { createOpenAI } from '@ai-sdk/openai';
|
|
7
|
+
/**
|
|
8
|
+
* Create a model provider for the Vercel AI SDK
|
|
9
|
+
*/
|
|
10
|
+
export function createModelProvider(provider, model, baseUrl) {
|
|
11
|
+
switch (provider) {
|
|
12
|
+
case 'google':
|
|
13
|
+
return google(model);
|
|
14
|
+
case 'anthropic':
|
|
15
|
+
return anthropic(model);
|
|
16
|
+
case 'openai': {
|
|
17
|
+
const openai = createOpenAI({
|
|
18
|
+
apiKey: process.env.OPENAI_API_KEY,
|
|
19
|
+
baseURL: baseUrl,
|
|
20
|
+
});
|
|
21
|
+
return openai(model);
|
|
22
|
+
}
|
|
23
|
+
case 'openrouter': {
|
|
24
|
+
const openrouter = createOpenAI({
|
|
25
|
+
name: 'openrouter',
|
|
26
|
+
baseURL: 'https://openrouter.ai/api/v1',
|
|
27
|
+
apiKey: process.env.OPENROUTER_API_KEY,
|
|
28
|
+
});
|
|
29
|
+
return openrouter(model);
|
|
30
|
+
}
|
|
31
|
+
default: {
|
|
32
|
+
// Default to OpenAI-compatible
|
|
33
|
+
const defaultProvider = createOpenAI({
|
|
34
|
+
apiKey: process.env.OPENAI_API_KEY,
|
|
35
|
+
baseURL: baseUrl,
|
|
36
|
+
});
|
|
37
|
+
return defaultProvider(model);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Convert a JavaScript value to a Prolog term string
|
|
43
|
+
*/
|
|
44
|
+
export function jsToPrologTerm(value) {
|
|
45
|
+
if (value === null || value === undefined) {
|
|
46
|
+
return 'null';
|
|
47
|
+
}
|
|
48
|
+
if (typeof value === 'string') {
|
|
49
|
+
// Escape special characters and wrap in double quotes
|
|
50
|
+
const escaped = value
|
|
51
|
+
.replace(/\\/g, '\\\\')
|
|
52
|
+
.replace(/"/g, '\\"')
|
|
53
|
+
.replace(/\n/g, '\\n')
|
|
54
|
+
.replace(/\r/g, '\\r')
|
|
55
|
+
.replace(/\t/g, '\\t');
|
|
56
|
+
return `"${escaped}"`;
|
|
57
|
+
}
|
|
58
|
+
if (typeof value === 'number') {
|
|
59
|
+
return String(value);
|
|
60
|
+
}
|
|
61
|
+
if (typeof value === 'boolean') {
|
|
62
|
+
return value ? 'true' : 'false';
|
|
63
|
+
}
|
|
64
|
+
if (Array.isArray(value)) {
|
|
65
|
+
const items = value.map(jsToPrologTerm).join(', ');
|
|
66
|
+
return `[${items}]`;
|
|
67
|
+
}
|
|
68
|
+
if (typeof value === 'object') {
|
|
69
|
+
const entries = Object.entries(value)
|
|
70
|
+
.map(([k, v]) => `${sanitizeAtom(k)}: ${jsToPrologTerm(v)}`)
|
|
71
|
+
.join(', ');
|
|
72
|
+
return `dict{${entries}}`;
|
|
73
|
+
}
|
|
74
|
+
return String(value);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Convert a Prolog term to a JavaScript value
|
|
78
|
+
*/
|
|
79
|
+
export function prologTermToJs(term) {
|
|
80
|
+
if (term === null || term === undefined) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
// Handle Prolog atoms/strings
|
|
84
|
+
if (typeof term === 'string') {
|
|
85
|
+
// Try to parse as JSON first
|
|
86
|
+
try {
|
|
87
|
+
return JSON.parse(term);
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return term;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// Numbers pass through
|
|
94
|
+
if (typeof term === 'number') {
|
|
95
|
+
return term;
|
|
96
|
+
}
|
|
97
|
+
// Booleans pass through
|
|
98
|
+
if (typeof term === 'boolean') {
|
|
99
|
+
return term;
|
|
100
|
+
}
|
|
101
|
+
// Handle arrays (Prolog lists)
|
|
102
|
+
if (Array.isArray(term)) {
|
|
103
|
+
return term.map(prologTermToJs);
|
|
104
|
+
}
|
|
105
|
+
// Handle objects (Prolog dicts or structures)
|
|
106
|
+
if (typeof term === 'object') {
|
|
107
|
+
const result = {};
|
|
108
|
+
for (const [key, value] of Object.entries(term)) {
|
|
109
|
+
// Skip the 'functor' property that represents the dict tag
|
|
110
|
+
if (key !== 'functor' && key !== '_') {
|
|
111
|
+
result[key] = prologTermToJs(value);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return result;
|
|
115
|
+
}
|
|
116
|
+
return term;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Sanitize a string to be a valid Prolog atom
|
|
120
|
+
*/
|
|
121
|
+
function sanitizeAtom(str) {
|
|
122
|
+
// If it starts with lowercase and contains only valid chars, it's already valid
|
|
123
|
+
if (/^[a-z][a-zA-Z0-9_]*$/.test(str)) {
|
|
124
|
+
return str;
|
|
125
|
+
}
|
|
126
|
+
// Otherwise, quote it
|
|
127
|
+
const escaped = str.replace(/'/g, "''");
|
|
128
|
+
return `'${escaped}'`;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Parse a Prolog term string into arguments
|
|
132
|
+
*/
|
|
133
|
+
export function parsePrologArgs(termStr) {
|
|
134
|
+
// Simple parser for common cases
|
|
135
|
+
const match = termStr.match(/\((.+)\)$/s);
|
|
136
|
+
if (!match) {
|
|
137
|
+
return [];
|
|
138
|
+
}
|
|
139
|
+
const content = match[1];
|
|
140
|
+
const args = [];
|
|
141
|
+
let current = '';
|
|
142
|
+
let depth = 0;
|
|
143
|
+
let inString = false;
|
|
144
|
+
let stringChar = '';
|
|
145
|
+
let escaped = false;
|
|
146
|
+
for (const char of content) {
|
|
147
|
+
if (escaped) {
|
|
148
|
+
current += char;
|
|
149
|
+
escaped = false;
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
if (char === '\\') {
|
|
153
|
+
current += char;
|
|
154
|
+
escaped = true;
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
if (!inString) {
|
|
158
|
+
if (char === '"' || char === "'") {
|
|
159
|
+
inString = true;
|
|
160
|
+
stringChar = char;
|
|
161
|
+
current += char;
|
|
162
|
+
}
|
|
163
|
+
else if ('([{'.includes(char)) {
|
|
164
|
+
depth++;
|
|
165
|
+
current += char;
|
|
166
|
+
}
|
|
167
|
+
else if (')]}'.includes(char)) {
|
|
168
|
+
depth--;
|
|
169
|
+
current += char;
|
|
170
|
+
}
|
|
171
|
+
else if (char === ',' && depth === 0) {
|
|
172
|
+
args.push(parseArgValue(current.trim()));
|
|
173
|
+
current = '';
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
current += char;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
current += char;
|
|
181
|
+
if (char === stringChar) {
|
|
182
|
+
inString = false;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (current.trim()) {
|
|
187
|
+
args.push(parseArgValue(current.trim()));
|
|
188
|
+
}
|
|
189
|
+
return args;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Parse a single argument value
|
|
193
|
+
*/
|
|
194
|
+
function parseArgValue(str) {
|
|
195
|
+
// Quoted string
|
|
196
|
+
if ((str.startsWith('"') && str.endsWith('"')) ||
|
|
197
|
+
(str.startsWith("'") && str.endsWith("'"))) {
|
|
198
|
+
return str.slice(1, -1)
|
|
199
|
+
.replace(/\\n/g, '\n')
|
|
200
|
+
.replace(/\\r/g, '\r')
|
|
201
|
+
.replace(/\\t/g, '\t')
|
|
202
|
+
.replace(/\\"/g, '"')
|
|
203
|
+
.replace(/\\'/g, "'")
|
|
204
|
+
.replace(/\\\\/g, '\\');
|
|
205
|
+
}
|
|
206
|
+
// Number
|
|
207
|
+
const num = Number(str);
|
|
208
|
+
if (!isNaN(num) && str !== '') {
|
|
209
|
+
return num;
|
|
210
|
+
}
|
|
211
|
+
// Boolean atoms
|
|
212
|
+
if (str === 'true')
|
|
213
|
+
return true;
|
|
214
|
+
if (str === 'false')
|
|
215
|
+
return false;
|
|
216
|
+
// Null
|
|
217
|
+
if (str === 'null' || str === '[]')
|
|
218
|
+
return null;
|
|
219
|
+
// List (simplified - just return as string for now)
|
|
220
|
+
if (str.startsWith('[')) {
|
|
221
|
+
return str;
|
|
222
|
+
}
|
|
223
|
+
// Atom or variable
|
|
224
|
+
return str;
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/prolog/bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SWI-Prolog WASM Loader
|
|
3
|
+
*/
|
|
4
|
+
interface Query {
|
|
5
|
+
next(): unknown;
|
|
6
|
+
once(): unknown;
|
|
7
|
+
}
|
|
8
|
+
interface Prolog {
|
|
9
|
+
call(goal: string, opts?: {
|
|
10
|
+
module?: string;
|
|
11
|
+
async?: boolean;
|
|
12
|
+
}): unknown;
|
|
13
|
+
query(goal: string, input?: Record<string, unknown>): Query;
|
|
14
|
+
forEach(goal: string, input?: unknown, callback?: (prolog: Prolog, answer: unknown) => void): Promise<unknown>;
|
|
15
|
+
}
|
|
16
|
+
interface FSFilesystems {
|
|
17
|
+
NODEFS: unknown;
|
|
18
|
+
MEMFS: unknown;
|
|
19
|
+
}
|
|
20
|
+
export interface SWIPLModule {
|
|
21
|
+
prolog: Prolog;
|
|
22
|
+
FS: typeof FS & {
|
|
23
|
+
filesystems: FSFilesystems;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Load and initialize SWI-Prolog WASM
|
|
28
|
+
*/
|
|
29
|
+
export declare function loadProlog(): Promise<SWIPLModule>;
|
|
30
|
+
/**
|
|
31
|
+
* Mount a workspace directory to /workspace in the WASM filesystem
|
|
32
|
+
* Uses NODEFS for direct host filesystem access
|
|
33
|
+
*/
|
|
34
|
+
export declare function mountWorkspace(swipl: SWIPLModule, workspacePath: string): void;
|
|
35
|
+
/**
|
|
36
|
+
* Get the currently mounted workspace path
|
|
37
|
+
*/
|
|
38
|
+
export declare function getWorkspacePath(): string | null;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/prolog/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,UAAU,KAAK;IACb,IAAI,IAAI,OAAO,CAAC;IAChB,IAAI,IAAI,OAAO,CAAC;CACjB;AAGD,UAAU,MAAM;IACd,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;IACzE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;IAC5D,OAAO,CACL,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,GACnD,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAGD,UAAU,aAAa;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB;AAGD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,OAAO,EAAE,GAAG;QAAE,WAAW,EAAE,aAAa,CAAA;KAAE,CAAC;CAChD;AAWD;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,CAevD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAuC9E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAEhD"}
|