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,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SWI-Prolog WASM Loader
|
|
3
|
+
*/
|
|
4
|
+
import { readFileSync, existsSync, mkdirSync } from 'fs';
|
|
5
|
+
import { fileURLToPath } from 'url';
|
|
6
|
+
import { dirname, join, resolve } from 'path';
|
|
7
|
+
let swiplInstance = null;
|
|
8
|
+
let initPromise = null;
|
|
9
|
+
let currentWorkspacePath = null;
|
|
10
|
+
// Get the directory of this module for resolving Prolog source files
|
|
11
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
12
|
+
const __dirname = dirname(__filename);
|
|
13
|
+
const PROLOG_SRC_DIR = join(__dirname, '..', 'prolog-src');
|
|
14
|
+
/**
|
|
15
|
+
* Load and initialize SWI-Prolog WASM
|
|
16
|
+
*/
|
|
17
|
+
export async function loadProlog() {
|
|
18
|
+
// Return existing instance if available
|
|
19
|
+
if (swiplInstance) {
|
|
20
|
+
return swiplInstance;
|
|
21
|
+
}
|
|
22
|
+
// If initialization is in progress, wait for it
|
|
23
|
+
if (initPromise) {
|
|
24
|
+
return initPromise;
|
|
25
|
+
}
|
|
26
|
+
// Start initialization
|
|
27
|
+
initPromise = initializeProlog();
|
|
28
|
+
swiplInstance = await initPromise;
|
|
29
|
+
return swiplInstance;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Mount a workspace directory to /workspace in the WASM filesystem
|
|
33
|
+
* Uses NODEFS for direct host filesystem access
|
|
34
|
+
*/
|
|
35
|
+
export function mountWorkspace(swipl, workspacePath) {
|
|
36
|
+
const absolutePath = resolve(workspacePath);
|
|
37
|
+
// Ensure the host directory exists
|
|
38
|
+
if (!existsSync(absolutePath)) {
|
|
39
|
+
mkdirSync(absolutePath, { recursive: true });
|
|
40
|
+
}
|
|
41
|
+
// If same workspace is already mounted, skip
|
|
42
|
+
if (currentWorkspacePath === absolutePath) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
// Unmount previous workspace if any
|
|
46
|
+
if (currentWorkspacePath !== null) {
|
|
47
|
+
try {
|
|
48
|
+
swipl.FS.unmount('/workspace');
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// Ignore unmount errors
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// Mount the new workspace using NODEFS
|
|
55
|
+
try {
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
57
|
+
swipl.FS.mount(swipl.FS.filesystems.NODEFS, { root: absolutePath }, '/workspace');
|
|
58
|
+
currentWorkspacePath = absolutePath;
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
// If mount fails (maybe already mounted), try to remount
|
|
62
|
+
try {
|
|
63
|
+
swipl.FS.unmount('/workspace');
|
|
64
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
65
|
+
swipl.FS.mount(swipl.FS.filesystems.NODEFS, { root: absolutePath }, '/workspace');
|
|
66
|
+
currentWorkspacePath = absolutePath;
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
// If still fails, the directory might not exist in WASM FS
|
|
70
|
+
throw new Error(`Failed to mount workspace: ${error}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Get the currently mounted workspace path
|
|
76
|
+
*/
|
|
77
|
+
export function getWorkspacePath() {
|
|
78
|
+
return currentWorkspacePath;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Initialize SWI-Prolog WASM
|
|
82
|
+
*/
|
|
83
|
+
async function initializeProlog() {
|
|
84
|
+
// Dynamic import of swipl-wasm (CommonJS module)
|
|
85
|
+
const SWIPL = await import('swipl-wasm');
|
|
86
|
+
const initSWIPL = SWIPL.default || SWIPL;
|
|
87
|
+
// Create WASM instance
|
|
88
|
+
const swipl = await initSWIPL({
|
|
89
|
+
// Configuration options
|
|
90
|
+
arguments: [
|
|
91
|
+
'-g', 'true',
|
|
92
|
+
'--nosignals',
|
|
93
|
+
],
|
|
94
|
+
});
|
|
95
|
+
// Create required directories
|
|
96
|
+
try {
|
|
97
|
+
swipl.FS.mkdir('/tmp');
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
// Directory may already exist
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
swipl.FS.mkdir('/workspace');
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
// Directory may already exist
|
|
107
|
+
}
|
|
108
|
+
// Load the DeepClause Prolog modules
|
|
109
|
+
loadPrologModules(swipl);
|
|
110
|
+
return swipl;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Load DeepClause Prolog source files from disk
|
|
114
|
+
*/
|
|
115
|
+
function loadPrologModules(swipl) {
|
|
116
|
+
// List of Prolog modules to load (order matters for dependencies)
|
|
117
|
+
// Note: deepclause_memory.pl is deprecated - memory is now state-threaded in MI
|
|
118
|
+
const moduleNames = [
|
|
119
|
+
'deepclause_strings.pl',
|
|
120
|
+
'deepclause_mi.pl',
|
|
121
|
+
];
|
|
122
|
+
for (const name of moduleNames) {
|
|
123
|
+
// Read the source file from disk
|
|
124
|
+
const sourcePath = join(PROLOG_SRC_DIR, name);
|
|
125
|
+
const content = readFileSync(sourcePath, 'utf-8');
|
|
126
|
+
// Write to WASM virtual filesystem
|
|
127
|
+
const wasmPath = `/tmp/${name}`;
|
|
128
|
+
swipl.FS.writeFile(wasmPath, content);
|
|
129
|
+
// Consult the file
|
|
130
|
+
swipl.prolog.call(`consult('${wasmPath}')`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/prolog/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* deepclause_memory.pl - DEPRECATED Memory management for DeepClause SDK
|
|
3
|
+
*
|
|
4
|
+
* NOTE: As of v0.2.0, memory is managed via state threading in the
|
|
5
|
+
* meta-interpreter for proper backtracking support. This module is
|
|
6
|
+
* kept for backwards compatibility only.
|
|
7
|
+
*
|
|
8
|
+
* Memory is now automatically backtrackable - when Prolog backtracks,
|
|
9
|
+
* the memory state is automatically restored. No need for manual
|
|
10
|
+
* push_context/pop_context calls.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
:- module(deepclause_memory, [
|
|
14
|
+
create_memory/1,
|
|
15
|
+
push_memory/2,
|
|
16
|
+
pop_memory/1,
|
|
17
|
+
get_memory/2,
|
|
18
|
+
clear_memory/1,
|
|
19
|
+
push_context/1,
|
|
20
|
+
pop_context/1
|
|
21
|
+
]).
|
|
22
|
+
|
|
23
|
+
%% All operations are now no-ops or return empty results
|
|
24
|
+
%% Memory is managed internally by the meta-interpreter
|
|
25
|
+
|
|
26
|
+
%% create_memory(+Id) - No-op, kept for API compatibility
|
|
27
|
+
create_memory(_Id) :- true.
|
|
28
|
+
|
|
29
|
+
%% push_memory(+Id, +Message) - No-op, memory is managed by MI state
|
|
30
|
+
push_memory(_Id, _Message) :- true.
|
|
31
|
+
|
|
32
|
+
%% pop_memory(+Id) - No-op
|
|
33
|
+
pop_memory(_Id) :- true.
|
|
34
|
+
|
|
35
|
+
%% get_memory(+Id, -Messages) - Returns empty, memory comes from MI state
|
|
36
|
+
get_memory(_Id, []).
|
|
37
|
+
|
|
38
|
+
%% clear_memory(+Id) - No-op
|
|
39
|
+
clear_memory(_Id) :- true.
|
|
40
|
+
|
|
41
|
+
%% push_context(+Id) - No-op, backtracking is automatic
|
|
42
|
+
push_context(_Id) :- true.
|
|
43
|
+
|
|
44
|
+
%% pop_context(+Id) - No-op, backtracking is automatic
|
|
45
|
+
pop_context(_Id) :- true.
|