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,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.