edict-lang 1.1.0 → 1.2.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.
Files changed (40) hide show
  1. package/dist/ast/nodes.d.ts +12 -3
  2. package/dist/ast/nodes.d.ts.map +1 -1
  3. package/dist/ast/nodes.js +1 -0
  4. package/dist/ast/nodes.js.map +1 -1
  5. package/dist/checker/check.js +9 -0
  6. package/dist/checker/check.js.map +1 -1
  7. package/dist/codegen/builtins.d.ts.map +1 -1
  8. package/dist/codegen/builtins.js +219 -0
  9. package/dist/codegen/builtins.js.map +1 -1
  10. package/dist/codegen/codegen.d.ts.map +1 -1
  11. package/dist/codegen/codegen.js +109 -18
  12. package/dist/codegen/codegen.js.map +1 -1
  13. package/dist/codegen/runner.d.ts.map +1 -1
  14. package/dist/codegen/runner.js +224 -15
  15. package/dist/codegen/runner.js.map +1 -1
  16. package/dist/errors/error-catalog.d.ts +33 -0
  17. package/dist/errors/error-catalog.d.ts.map +1 -0
  18. package/dist/errors/error-catalog.js +618 -0
  19. package/dist/errors/error-catalog.js.map +1 -0
  20. package/dist/index.d.ts +3 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +2 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/mcp/create-server.d.ts.map +1 -1
  25. package/dist/mcp/create-server.js +54 -5
  26. package/dist/mcp/create-server.js.map +1 -1
  27. package/dist/mcp/handlers.d.ts +5 -1
  28. package/dist/mcp/handlers.d.ts.map +1 -1
  29. package/dist/mcp/handlers.js +17 -2
  30. package/dist/mcp/handlers.js.map +1 -1
  31. package/dist/mcp/minimal-schema.d.ts +8 -0
  32. package/dist/mcp/minimal-schema.d.ts.map +1 -0
  33. package/dist/mcp/minimal-schema.js +34 -0
  34. package/dist/mcp/minimal-schema.js.map +1 -0
  35. package/dist/resolver/resolve.js +4 -0
  36. package/dist/resolver/resolve.js.map +1 -1
  37. package/dist/validator/node-validators.d.ts.map +1 -1
  38. package/dist/validator/node-validators.js +12 -0
  39. package/dist/validator/node-validators.js.map +1 -1
  40. package/package.json +1 -1
@@ -11,6 +11,43 @@
11
11
  */
12
12
  export async function run(wasm, entryFn = "main") {
13
13
  const outputParts = [];
14
+ // Late-bound references — set after instantiation
15
+ let instance;
16
+ /**
17
+ * Write a string result into WASM memory at __heap_ptr,
18
+ * advance __heap_ptr (8-byte aligned), set __str_ret_len, and return ptr.
19
+ */
20
+ function writeStringResult(str, encoder) {
21
+ const encoded = encoder.encode(str);
22
+ const memoryBuffer = instance.exports.memory.buffer;
23
+ const getHeapPtr = instance.exports.__get_heap_ptr;
24
+ const setHeapPtr = instance.exports.__set_heap_ptr;
25
+ const setStrRetLen = instance.exports.__set_str_ret_len;
26
+ const resultPtr = getHeapPtr();
27
+ const dest = new Uint8Array(memoryBuffer, resultPtr, encoded.length);
28
+ dest.set(encoded);
29
+ setHeapPtr(resultPtr + Math.ceil(encoded.length / 8) * 8);
30
+ setStrRetLen(encoded.length);
31
+ return resultPtr;
32
+ }
33
+ /**
34
+ * Allocate a new array on the WASM heap: [length: i32][elem0: i32]...
35
+ * Advances __heap_ptr (8-byte aligned) and returns the new array pointer.
36
+ */
37
+ function writeArrayResult(elements) {
38
+ const memoryBuffer = instance.exports.memory.buffer;
39
+ const getHeapPtr = instance.exports.__get_heap_ptr;
40
+ const setHeapPtr = instance.exports.__set_heap_ptr;
41
+ const totalSize = 4 + elements.length * 4; // header + elements
42
+ const resultPtr = getHeapPtr();
43
+ const view = new DataView(memoryBuffer);
44
+ view.setInt32(resultPtr, elements.length, true); // write length
45
+ for (let i = 0; i < elements.length; i++) {
46
+ view.setInt32(resultPtr + 4 + i * 4, elements[i], true);
47
+ }
48
+ setHeapPtr(resultPtr + Math.ceil(totalSize / 8) * 8);
49
+ return resultPtr;
50
+ }
14
51
  const importObject = {
15
52
  host: {
16
53
  /**
@@ -39,20 +76,76 @@ export async function run(wasm, entryFn = "main") {
39
76
  const needle = decoder.decode(new Uint8Array(memoryBuffer, needlePtr, needleLen));
40
77
  const replacement = decoder.decode(new Uint8Array(memoryBuffer, replPtr, replLen));
41
78
  const result = haystack.replaceAll(needle, replacement);
42
- const encoded = encoder.encode(result);
43
- // Read current heap pointer via exported getter
44
- const getHeapPtr = instance.exports.__get_heap_ptr;
45
- const setHeapPtr = instance.exports.__set_heap_ptr;
46
- const setStrRetLen = instance.exports.__set_str_ret_len;
47
- const resultPtr = getHeapPtr();
48
- // Write result into WASM memory
49
- const dest = new Uint8Array(memoryBuffer, resultPtr, encoded.length);
50
- dest.set(encoded);
51
- // Advance heap pointer (8-byte aligned)
52
- setHeapPtr(resultPtr + Math.ceil(encoded.length / 8) * 8);
53
- // Set __str_ret_len so callers can read the result length
54
- setStrRetLen(encoded.length);
55
- return resultPtr;
79
+ return writeStringResult(result, encoder);
80
+ },
81
+ // =================================================================
82
+ // String builtins
83
+ // =================================================================
84
+ string_length: (ptr, len) => {
85
+ const memoryBuffer = instance.exports.memory.buffer;
86
+ const str = new TextDecoder().decode(new Uint8Array(memoryBuffer, ptr, len));
87
+ return str.length;
88
+ },
89
+ substring: (ptr, len, start, end) => {
90
+ const memoryBuffer = instance.exports.memory.buffer;
91
+ const str = new TextDecoder().decode(new Uint8Array(memoryBuffer, ptr, len));
92
+ const result = str.substring(start, end);
93
+ return writeStringResult(result, new TextEncoder());
94
+ },
95
+ string_concat: (aPtr, aLen, bPtr, bLen) => {
96
+ const memoryBuffer = instance.exports.memory.buffer;
97
+ const decoder = new TextDecoder();
98
+ const a = decoder.decode(new Uint8Array(memoryBuffer, aPtr, aLen));
99
+ const b = decoder.decode(new Uint8Array(memoryBuffer, bPtr, bLen));
100
+ return writeStringResult(a + b, new TextEncoder());
101
+ },
102
+ string_indexOf: (hayPtr, hayLen, needlePtr, needleLen) => {
103
+ const memoryBuffer = instance.exports.memory.buffer;
104
+ const decoder = new TextDecoder();
105
+ const haystack = decoder.decode(new Uint8Array(memoryBuffer, hayPtr, hayLen));
106
+ const needle = decoder.decode(new Uint8Array(memoryBuffer, needlePtr, needleLen));
107
+ return haystack.indexOf(needle);
108
+ },
109
+ toUpperCase: (ptr, len) => {
110
+ const memoryBuffer = instance.exports.memory.buffer;
111
+ const str = new TextDecoder().decode(new Uint8Array(memoryBuffer, ptr, len));
112
+ return writeStringResult(str.toUpperCase(), new TextEncoder());
113
+ },
114
+ toLowerCase: (ptr, len) => {
115
+ const memoryBuffer = instance.exports.memory.buffer;
116
+ const str = new TextDecoder().decode(new Uint8Array(memoryBuffer, ptr, len));
117
+ return writeStringResult(str.toLowerCase(), new TextEncoder());
118
+ },
119
+ string_trim: (ptr, len) => {
120
+ const memoryBuffer = instance.exports.memory.buffer;
121
+ const str = new TextDecoder().decode(new Uint8Array(memoryBuffer, ptr, len));
122
+ return writeStringResult(str.trim(), new TextEncoder());
123
+ },
124
+ string_startsWith: (strPtr, strLen, prefixPtr, prefixLen) => {
125
+ const memoryBuffer = instance.exports.memory.buffer;
126
+ const decoder = new TextDecoder();
127
+ const str = decoder.decode(new Uint8Array(memoryBuffer, strPtr, strLen));
128
+ const prefix = decoder.decode(new Uint8Array(memoryBuffer, prefixPtr, prefixLen));
129
+ return str.startsWith(prefix) ? 1 : 0;
130
+ },
131
+ string_endsWith: (strPtr, strLen, suffixPtr, suffixLen) => {
132
+ const memoryBuffer = instance.exports.memory.buffer;
133
+ const decoder = new TextDecoder();
134
+ const str = decoder.decode(new Uint8Array(memoryBuffer, strPtr, strLen));
135
+ const suffix = decoder.decode(new Uint8Array(memoryBuffer, suffixPtr, suffixLen));
136
+ return str.endsWith(suffix) ? 1 : 0;
137
+ },
138
+ string_contains: (hayPtr, hayLen, needlePtr, needleLen) => {
139
+ const memoryBuffer = instance.exports.memory.buffer;
140
+ const decoder = new TextDecoder();
141
+ const haystack = decoder.decode(new Uint8Array(memoryBuffer, hayPtr, hayLen));
142
+ const needle = decoder.decode(new Uint8Array(memoryBuffer, needlePtr, needleLen));
143
+ return haystack.includes(needle) ? 1 : 0;
144
+ },
145
+ string_repeat: (ptr, len, count) => {
146
+ const memoryBuffer = instance.exports.memory.buffer;
147
+ const str = new TextDecoder().decode(new Uint8Array(memoryBuffer, ptr, len));
148
+ return writeStringResult(str.repeat(count), new TextEncoder());
56
149
  },
57
150
  // =================================================================
58
151
  // Math builtins
@@ -65,9 +158,125 @@ export async function run(wasm, entryFn = "main") {
65
158
  floor: (x) => (Math.floor(x) | 0),
66
159
  ceil: (x) => (Math.ceil(x) | 0),
67
160
  round: (x) => (Math.round(x) | 0),
161
+ // =================================================================
162
+ // Type conversion builtins
163
+ // =================================================================
164
+ intToString: (value) => {
165
+ return writeStringResult(String(value), new TextEncoder());
166
+ },
167
+ floatToString: (value) => {
168
+ return writeStringResult(String(value), new TextEncoder());
169
+ },
170
+ boolToString: (value) => {
171
+ return writeStringResult(value ? "true" : "false", new TextEncoder());
172
+ },
173
+ floatToInt: (value) => (Math.trunc(value) | 0),
174
+ intToFloat: (value) => value,
175
+ // =================================================================
176
+ // Array builtins — operate on [length: i32][elem0: i32][elem1: i32]...
177
+ // =================================================================
178
+ array_length: (arrPtr) => {
179
+ const memoryBuffer = instance.exports.memory.buffer;
180
+ const view = new DataView(memoryBuffer);
181
+ return view.getInt32(arrPtr, true);
182
+ },
183
+ array_get: (arrPtr, index) => {
184
+ const memoryBuffer = instance.exports.memory.buffer;
185
+ const view = new DataView(memoryBuffer);
186
+ const length = view.getInt32(arrPtr, true);
187
+ if (index < 0 || index >= length)
188
+ return 0; // safe default for OOB
189
+ return view.getInt32(arrPtr + 4 + index * 4, true);
190
+ },
191
+ array_set: (arrPtr, index, value) => {
192
+ const memoryBuffer = instance.exports.memory.buffer;
193
+ const view = new DataView(memoryBuffer);
194
+ const length = view.getInt32(arrPtr, true);
195
+ // Copy all elements into a new array with the updated value
196
+ const elems = [];
197
+ for (let i = 0; i < length; i++) {
198
+ elems.push(i === index ? value : view.getInt32(arrPtr + 4 + i * 4, true));
199
+ }
200
+ return writeArrayResult(elems);
201
+ },
202
+ array_push: (arrPtr, value) => {
203
+ const memoryBuffer = instance.exports.memory.buffer;
204
+ const view = new DataView(memoryBuffer);
205
+ const length = view.getInt32(arrPtr, true);
206
+ const elems = [];
207
+ for (let i = 0; i < length; i++) {
208
+ elems.push(view.getInt32(arrPtr + 4 + i * 4, true));
209
+ }
210
+ elems.push(value);
211
+ return writeArrayResult(elems);
212
+ },
213
+ array_pop: (arrPtr) => {
214
+ const memoryBuffer = instance.exports.memory.buffer;
215
+ const view = new DataView(memoryBuffer);
216
+ const length = view.getInt32(arrPtr, true);
217
+ if (length === 0)
218
+ return writeArrayResult([]);
219
+ const elems = [];
220
+ for (let i = 0; i < length - 1; i++) {
221
+ elems.push(view.getInt32(arrPtr + 4 + i * 4, true));
222
+ }
223
+ return writeArrayResult(elems);
224
+ },
225
+ array_concat: (aPtr, bPtr) => {
226
+ const memoryBuffer = instance.exports.memory.buffer;
227
+ const view = new DataView(memoryBuffer);
228
+ const aLen = view.getInt32(aPtr, true);
229
+ const bLen = view.getInt32(bPtr, true);
230
+ const elems = [];
231
+ for (let i = 0; i < aLen; i++) {
232
+ elems.push(view.getInt32(aPtr + 4 + i * 4, true));
233
+ }
234
+ for (let i = 0; i < bLen; i++) {
235
+ elems.push(view.getInt32(bPtr + 4 + i * 4, true));
236
+ }
237
+ return writeArrayResult(elems);
238
+ },
239
+ array_slice: (arrPtr, start, end) => {
240
+ const memoryBuffer = instance.exports.memory.buffer;
241
+ const view = new DataView(memoryBuffer);
242
+ const length = view.getInt32(arrPtr, true);
243
+ // Clamp indices to [0, length]
244
+ const s = Math.max(0, Math.min(start, length));
245
+ const e = Math.max(s, Math.min(end, length));
246
+ const elems = [];
247
+ for (let i = s; i < e; i++) {
248
+ elems.push(view.getInt32(arrPtr + 4 + i * 4, true));
249
+ }
250
+ return writeArrayResult(elems);
251
+ },
252
+ array_isEmpty: (arrPtr) => {
253
+ const memoryBuffer = instance.exports.memory.buffer;
254
+ const view = new DataView(memoryBuffer);
255
+ return view.getInt32(arrPtr, true) === 0 ? 1 : 0;
256
+ },
257
+ array_contains: (arrPtr, value) => {
258
+ const memoryBuffer = instance.exports.memory.buffer;
259
+ const view = new DataView(memoryBuffer);
260
+ const length = view.getInt32(arrPtr, true);
261
+ for (let i = 0; i < length; i++) {
262
+ if (view.getInt32(arrPtr + 4 + i * 4, true) === value)
263
+ return 1;
264
+ }
265
+ return 0;
266
+ },
267
+ array_reverse: (arrPtr) => {
268
+ const memoryBuffer = instance.exports.memory.buffer;
269
+ const view = new DataView(memoryBuffer);
270
+ const length = view.getInt32(arrPtr, true);
271
+ const elems = [];
272
+ for (let i = length - 1; i >= 0; i--) {
273
+ elems.push(view.getInt32(arrPtr + 4 + i * 4, true));
274
+ }
275
+ return writeArrayResult(elems);
276
+ },
68
277
  },
69
278
  };
70
- const { instance } = await WebAssembly.instantiate(wasm, importObject);
279
+ ({ instance } = await WebAssembly.instantiate(wasm, importObject));
71
280
  let returnValue;
72
281
  let exitCode = 0;
73
282
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/codegen/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/codegen/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * A single entry in the error catalog.
3
+ */
4
+ export interface ErrorCatalogEntry {
5
+ /** Discriminator string (e.g., "type_mismatch") */
6
+ type: string;
7
+ /** Pipeline stage that produces this error */
8
+ pipeline_stage: "validator" | "resolver" | "type_checker" | "effect_checker" | "contract_verifier" | "patch";
9
+ /** All fields present on this error (excluding the `error` discriminator) */
10
+ fields: {
11
+ name: string;
12
+ type: string;
13
+ }[];
14
+ /** Minimal AST that triggers this error */
15
+ example_cause: Record<string, unknown>;
16
+ /** The corrected AST that fixes the error */
17
+ example_fix: Record<string, unknown>;
18
+ }
19
+ /**
20
+ * The full error catalog returned by the edict://errors resource.
21
+ */
22
+ export interface ErrorCatalog {
23
+ /** Total number of error types */
24
+ count: number;
25
+ /** All error types grouped by pipeline stage */
26
+ errors: ErrorCatalogEntry[];
27
+ }
28
+ /**
29
+ * Build the complete error catalog. This is a pure function with no dependencies
30
+ * on runtime state — the catalog is static and derived from type definitions.
31
+ */
32
+ export declare function buildErrorCatalog(): ErrorCatalog;
33
+ //# sourceMappingURL=error-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-catalog.d.ts","sourceRoot":"","sources":["../../src/errors/error-catalog.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,cAAc,EAAE,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,gBAAgB,GAAG,mBAAmB,GAAG,OAAO,CAAC;IAC7G,6EAA6E;IAC7E,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzC,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,YAAY,CAomBhD"}