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.
Files changed (111) hide show
  1. package/README.md +446 -0
  2. package/dist/agent.d.ts +44 -0
  3. package/dist/agent.d.ts.map +1 -0
  4. package/dist/agent.js +518 -0
  5. package/dist/agent.js.map +1 -0
  6. package/dist/cli/commands.d.ts +37 -0
  7. package/dist/cli/commands.d.ts.map +1 -0
  8. package/dist/cli/commands.js +105 -0
  9. package/dist/cli/commands.js.map +1 -0
  10. package/dist/cli/compile.d.ts +88 -0
  11. package/dist/cli/compile.d.ts.map +1 -0
  12. package/dist/cli/compile.js +362 -0
  13. package/dist/cli/compile.js.map +1 -0
  14. package/dist/cli/config.d.ts +265 -0
  15. package/dist/cli/config.d.ts.map +1 -0
  16. package/dist/cli/config.js +272 -0
  17. package/dist/cli/config.js.map +1 -0
  18. package/dist/cli/index.d.ts +8 -0
  19. package/dist/cli/index.d.ts.map +1 -0
  20. package/dist/cli/index.js +287 -0
  21. package/dist/cli/index.js.map +1 -0
  22. package/dist/cli/mcp.d.ts +56 -0
  23. package/dist/cli/mcp.d.ts.map +1 -0
  24. package/dist/cli/mcp.js +138 -0
  25. package/dist/cli/mcp.js.map +1 -0
  26. package/dist/cli/prompt.d.ts +20 -0
  27. package/dist/cli/prompt.d.ts.map +1 -0
  28. package/dist/cli/prompt.js +669 -0
  29. package/dist/cli/prompt.js.map +1 -0
  30. package/dist/cli/run.d.ts +33 -0
  31. package/dist/cli/run.d.ts.map +1 -0
  32. package/dist/cli/run.js +429 -0
  33. package/dist/cli/run.js.map +1 -0
  34. package/dist/cli/search.d.ts +25 -0
  35. package/dist/cli/search.d.ts.map +1 -0
  36. package/dist/cli/search.js +125 -0
  37. package/dist/cli/search.js.map +1 -0
  38. package/dist/cli/tools.d.ts +36 -0
  39. package/dist/cli/tools.d.ts.map +1 -0
  40. package/dist/cli/tools.js +204 -0
  41. package/dist/cli/tools.js.map +1 -0
  42. package/dist/cli/tui/index.d.ts +22 -0
  43. package/dist/cli/tui/index.d.ts.map +1 -0
  44. package/dist/cli/tui/index.js +29 -0
  45. package/dist/cli/tui/index.js.map +1 -0
  46. package/dist/index.d.ts +9 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +8 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/prolog/bridge.d.ts +21 -0
  51. package/dist/prolog/bridge.d.ts.map +1 -0
  52. package/dist/prolog/bridge.js +226 -0
  53. package/dist/prolog/bridge.js.map +1 -0
  54. package/dist/prolog/loader.d.ts +40 -0
  55. package/dist/prolog/loader.d.ts.map +1 -0
  56. package/dist/prolog/loader.js +133 -0
  57. package/dist/prolog/loader.js.map +1 -0
  58. package/dist/prolog-src/deepclause_memory.pl +45 -0
  59. package/dist/prolog-src/deepclause_mi.pl +1978 -0
  60. package/dist/prolog-src/deepclause_mi.pl.bak +570 -0
  61. package/dist/prolog-src/deepclause_strings.pl +89 -0
  62. package/dist/runner.d.ts +143 -0
  63. package/dist/runner.d.ts.map +1 -0
  64. package/dist/runner.js +1095 -0
  65. package/dist/runner.js.map +1 -0
  66. package/dist/sdk.d.ts +9 -0
  67. package/dist/sdk.d.ts.map +1 -0
  68. package/dist/sdk.js +131 -0
  69. package/dist/sdk.js.map +1 -0
  70. package/dist/tools.d.ts +22 -0
  71. package/dist/tools.d.ts.map +1 -0
  72. package/dist/tools.js +138 -0
  73. package/dist/tools.js.map +1 -0
  74. package/dist/types.d.ts +186 -0
  75. package/dist/types.d.ts.map +1 -0
  76. package/dist/types.js +5 -0
  77. package/dist/types.js.map +1 -0
  78. package/package.json +79 -0
  79. package/src/prolog-src/deepclause_memory.pl +45 -0
  80. package/src/prolog-src/deepclause_mi.pl +1978 -0
  81. package/src/prolog-src/deepclause_mi.pl.bak +570 -0
  82. package/src/prolog-src/deepclause_strings.pl +89 -0
  83. package/vendor/swipl-wasm/LICENSE.txt +41 -0
  84. package/vendor/swipl-wasm/dist/bin/index.js +25 -0
  85. package/vendor/swipl-wasm/dist/common.d.ts +88 -0
  86. package/vendor/swipl-wasm/dist/generateImage.d.ts +6 -0
  87. package/vendor/swipl-wasm/dist/generateImage.js +76 -0
  88. package/vendor/swipl-wasm/dist/index.d.ts +2 -0
  89. package/vendor/swipl-wasm/dist/index.js +1 -0
  90. package/vendor/swipl-wasm/dist/loadImage.d.ts +2 -0
  91. package/vendor/swipl-wasm/dist/loadImage.js +10 -0
  92. package/vendor/swipl-wasm/dist/loadImageDefault.d.ts +2 -0
  93. package/vendor/swipl-wasm/dist/loadImageDefault.js +11 -0
  94. package/vendor/swipl-wasm/dist/strToBuffer.d.ts +8 -0
  95. package/vendor/swipl-wasm/dist/strToBuffer.js +41 -0
  96. package/vendor/swipl-wasm/dist/swipl/swipl-bundle-no-data.d.ts +2 -0
  97. package/vendor/swipl-wasm/dist/swipl/swipl-bundle-no-data.js +2 -0
  98. package/vendor/swipl-wasm/dist/swipl/swipl-bundle.d.ts +2 -0
  99. package/vendor/swipl-wasm/dist/swipl/swipl-bundle.js +2 -0
  100. package/vendor/swipl-wasm/dist/swipl/swipl-web.d.ts +2 -0
  101. package/vendor/swipl-wasm/dist/swipl/swipl-web.data +0 -0
  102. package/vendor/swipl-wasm/dist/swipl/swipl-web.js +2 -0
  103. package/vendor/swipl-wasm/dist/swipl/swipl-web.wasm +0 -0
  104. package/vendor/swipl-wasm/dist/swipl/swipl-win.js +1 -0
  105. package/vendor/swipl-wasm/dist/swipl/swipl-win.wasm +0 -0
  106. package/vendor/swipl-wasm/dist/swipl/swipl.d.ts +2 -0
  107. package/vendor/swipl-wasm/dist/swipl/swipl.js +1 -0
  108. package/vendor/swipl-wasm/dist/swipl/swipl.wasm +0 -0
  109. package/vendor/swipl-wasm/dist/swipl-node.d.ts +2 -0
  110. package/vendor/swipl-wasm/dist/swipl-node.js +17 -0
  111. 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"}
@@ -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,8 @@
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
+ //# sourceMappingURL=index.js.map
@@ -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"}