edict-lang 1.5.0 → 1.6.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 (158) hide show
  1. package/README.md +39 -13
  2. package/dist/ast/nodes.d.ts +1 -0
  3. package/dist/ast/nodes.d.ts.map +1 -1
  4. package/dist/ast/nodes.js.map +1 -1
  5. package/dist/builtins/builtin-types.d.ts +20 -0
  6. package/dist/builtins/builtin-types.d.ts.map +1 -0
  7. package/dist/builtins/builtin-types.js +6 -0
  8. package/dist/builtins/builtin-types.js.map +1 -0
  9. package/dist/builtins/builtins.d.ts +2 -23
  10. package/dist/builtins/builtins.d.ts.map +1 -1
  11. package/dist/builtins/builtins.js +2 -690
  12. package/dist/builtins/builtins.js.map +1 -1
  13. package/dist/builtins/domains/array.d.ts +3 -0
  14. package/dist/builtins/domains/array.d.ts.map +1 -0
  15. package/dist/builtins/domains/array.js +236 -0
  16. package/dist/builtins/domains/array.js.map +1 -0
  17. package/dist/builtins/domains/core.d.ts +3 -0
  18. package/dist/builtins/domains/core.d.ts.map +1 -0
  19. package/dist/builtins/domains/core.js +45 -0
  20. package/dist/builtins/domains/core.js.map +1 -0
  21. package/dist/builtins/domains/crypto.d.ts +3 -0
  22. package/dist/builtins/domains/crypto.d.ts.map +1 -0
  23. package/dist/builtins/domains/crypto.js +49 -0
  24. package/dist/builtins/domains/crypto.js.map +1 -0
  25. package/dist/builtins/domains/datetime.d.ts +3 -0
  26. package/dist/builtins/domains/datetime.d.ts.map +1 -0
  27. package/dist/builtins/domains/datetime.js +45 -0
  28. package/dist/builtins/domains/datetime.js.map +1 -0
  29. package/dist/builtins/domains/http.d.ts +3 -0
  30. package/dist/builtins/domains/http.d.ts.map +1 -0
  31. package/dist/builtins/domains/http.js +55 -0
  32. package/dist/builtins/domains/http.js.map +1 -0
  33. package/dist/builtins/domains/int64.d.ts +3 -0
  34. package/dist/builtins/domains/int64.d.ts.map +1 -0
  35. package/dist/builtins/domains/int64.js +31 -0
  36. package/dist/builtins/domains/int64.js.map +1 -0
  37. package/dist/builtins/domains/io.d.ts +3 -0
  38. package/dist/builtins/domains/io.d.ts.map +1 -0
  39. package/dist/builtins/domains/io.js +79 -0
  40. package/dist/builtins/domains/io.js.map +1 -0
  41. package/dist/builtins/domains/json.d.ts +3 -0
  42. package/dist/builtins/domains/json.d.ts.map +1 -0
  43. package/dist/builtins/domains/json.js +47 -0
  44. package/dist/builtins/domains/json.js.map +1 -0
  45. package/dist/builtins/domains/math.d.ts +3 -0
  46. package/dist/builtins/domains/math.d.ts.map +1 -0
  47. package/dist/builtins/domains/math.js +47 -0
  48. package/dist/builtins/domains/math.js.map +1 -0
  49. package/dist/builtins/domains/option.d.ts +3 -0
  50. package/dist/builtins/domains/option.d.ts.map +1 -0
  51. package/dist/builtins/domains/option.js +56 -0
  52. package/dist/builtins/domains/option.js.map +1 -0
  53. package/dist/builtins/domains/random.d.ts +3 -0
  54. package/dist/builtins/domains/random.d.ts.map +1 -0
  55. package/dist/builtins/domains/random.js +50 -0
  56. package/dist/builtins/domains/random.js.map +1 -0
  57. package/dist/builtins/domains/regex.d.ts +3 -0
  58. package/dist/builtins/domains/regex.d.ts.map +1 -0
  59. package/dist/builtins/domains/regex.js +69 -0
  60. package/dist/builtins/domains/regex.js.map +1 -0
  61. package/dist/builtins/domains/result.d.ts +3 -0
  62. package/dist/builtins/domains/result.d.ts.map +1 -0
  63. package/dist/builtins/domains/result.js +84 -0
  64. package/dist/builtins/domains/result.js.map +1 -0
  65. package/dist/builtins/domains/string.d.ts +3 -0
  66. package/dist/builtins/domains/string.d.ts.map +1 -0
  67. package/dist/builtins/domains/string.js +139 -0
  68. package/dist/builtins/domains/string.js.map +1 -0
  69. package/dist/builtins/domains/type-conversion.d.ts +3 -0
  70. package/dist/builtins/domains/type-conversion.d.ts.map +1 -0
  71. package/dist/builtins/domains/type-conversion.js +42 -0
  72. package/dist/builtins/domains/type-conversion.js.map +1 -0
  73. package/dist/builtins/host-helpers.d.ts +66 -0
  74. package/dist/builtins/host-helpers.d.ts.map +1 -0
  75. package/dist/builtins/host-helpers.js +127 -0
  76. package/dist/builtins/host-helpers.js.map +1 -0
  77. package/dist/builtins/registry.d.ts +48 -0
  78. package/dist/builtins/registry.d.ts.map +1 -0
  79. package/dist/builtins/registry.js +118 -0
  80. package/dist/builtins/registry.js.map +1 -0
  81. package/dist/check.d.ts +9 -2
  82. package/dist/check.d.ts.map +1 -1
  83. package/dist/check.js +30 -9
  84. package/dist/check.js.map +1 -1
  85. package/dist/checker/check.d.ts +18 -1
  86. package/dist/checker/check.d.ts.map +1 -1
  87. package/dist/checker/check.js +88 -82
  88. package/dist/checker/check.js.map +1 -1
  89. package/dist/codegen/codegen.d.ts +4 -9
  90. package/dist/codegen/codegen.d.ts.map +1 -1
  91. package/dist/codegen/codegen.js +50 -171
  92. package/dist/codegen/codegen.js.map +1 -1
  93. package/dist/codegen/compile-calls.d.ts.map +1 -1
  94. package/dist/codegen/compile-calls.js +36 -6
  95. package/dist/codegen/compile-calls.js.map +1 -1
  96. package/dist/codegen/compile-data.js +1 -1
  97. package/dist/codegen/compile-data.js.map +1 -1
  98. package/dist/codegen/compile-expr.d.ts +10 -0
  99. package/dist/codegen/compile-expr.d.ts.map +1 -0
  100. package/dist/codegen/compile-expr.js +156 -0
  101. package/dist/codegen/compile-expr.js.map +1 -0
  102. package/dist/codegen/compile-match.js +1 -1
  103. package/dist/codegen/compile-match.js.map +1 -1
  104. package/dist/codegen/compile-scalars.d.ts.map +1 -1
  105. package/dist/codegen/compile-scalars.js +9 -8
  106. package/dist/codegen/compile-scalars.js.map +1 -1
  107. package/dist/codegen/imports.d.ts +4 -1
  108. package/dist/codegen/imports.d.ts.map +1 -1
  109. package/dist/codegen/imports.js +4 -1
  110. package/dist/codegen/imports.js.map +1 -1
  111. package/dist/codegen/runner.d.ts +1 -1
  112. package/dist/codegen/runner.d.ts.map +1 -1
  113. package/dist/codegen/runner.js +3 -2
  114. package/dist/codegen/runner.js.map +1 -1
  115. package/dist/codegen/types.d.ts +5 -0
  116. package/dist/codegen/types.d.ts.map +1 -1
  117. package/dist/codegen/types.js.map +1 -1
  118. package/dist/compact/expand.d.ts.map +1 -1
  119. package/dist/compact/expand.js +1 -0
  120. package/dist/compact/expand.js.map +1 -1
  121. package/dist/compile.js +1 -1
  122. package/dist/compile.js.map +1 -1
  123. package/dist/contracts/verify.d.ts +10 -2
  124. package/dist/contracts/verify.d.ts.map +1 -1
  125. package/dist/contracts/verify.js +26 -21
  126. package/dist/contracts/verify.js.map +1 -1
  127. package/dist/effects/call-graph.d.ts.map +1 -1
  128. package/dist/effects/call-graph.js +21 -2
  129. package/dist/effects/call-graph.js.map +1 -1
  130. package/dist/effects/effect-check.d.ts +10 -2
  131. package/dist/effects/effect-check.d.ts.map +1 -1
  132. package/dist/effects/effect-check.js +12 -7
  133. package/dist/effects/effect-check.js.map +1 -1
  134. package/dist/errors/structured-errors.d.ts +22 -0
  135. package/dist/errors/structured-errors.d.ts.map +1 -1
  136. package/dist/errors/structured-errors.js +6 -0
  137. package/dist/errors/structured-errors.js.map +1 -1
  138. package/dist/index.d.ts +6 -3
  139. package/dist/index.d.ts.map +1 -1
  140. package/dist/index.js +4 -2
  141. package/dist/index.js.map +1 -1
  142. package/dist/mcp/create-server.js +1 -1
  143. package/dist/mcp/create-server.js.map +1 -1
  144. package/dist/mcp/handlers.d.ts +3 -1
  145. package/dist/mcp/handlers.d.ts.map +1 -1
  146. package/dist/mcp/handlers.js +12 -4
  147. package/dist/mcp/handlers.js.map +1 -1
  148. package/dist/resolver/resolve.d.ts.map +1 -1
  149. package/dist/resolver/resolve.js +40 -8
  150. package/dist/resolver/resolve.js.map +1 -1
  151. package/dist/validator/node-validators.d.ts.map +1 -1
  152. package/dist/validator/node-validators.js +26 -0
  153. package/dist/validator/node-validators.js.map +1 -1
  154. package/package.json +1 -1
  155. package/dist/codegen/host-functions.d.ts +0 -35
  156. package/dist/codegen/host-functions.d.ts.map +0 -1
  157. package/dist/codegen/host-functions.js +0 -680
  158. package/dist/codegen/host-functions.js.map +0 -1
package/README.md CHANGED
@@ -36,11 +36,22 @@ Contract Verifier ── unproven? → StructuredError + counterexample → Agen
36
36
  - **WASM compilation** — Verified programs compile to WebAssembly via binaryen and run in Node.js.
37
37
  - **MCP interface** — All tools exposed via [Model Context Protocol](https://modelcontextprotocol.io/) for direct agent integration.
38
38
 
39
+ ## Execution Model
40
+
41
+ Edict compiles to **WebAssembly** and runs in a sandboxed VM. This is a deliberate security decision — not a limitation:
42
+
43
+ - **No ambient authority** — compiled WASM cannot access the filesystem, network, or OS unless the host explicitly provides those capabilities via the pluggable `EdictHostAdapter` interface
44
+ - **Compile-time capability declaration** — the effect system (`io`, `reads`, `writes`, `fails`) lets the host inspect what a program requires _before_ running it
45
+ - **Runtime enforcement** — `RunLimits` controls execution timeout, memory ceiling, and filesystem sandboxing
46
+ - **Defense-in-depth** — agent-generated code that runs immediately needs stronger isolation than human-reviewed code. The effect system + WASM sandbox + host adapter pattern provides exactly that
47
+
48
+ Host capabilities available through adapters: filesystem (sandboxed), HTTP, crypto (SHA-256, MD5, HMAC), environment variables, CLI arguments. New capabilities are added by extending `EdictHostAdapter`.
49
+
39
50
  ## Quick Start
40
51
 
41
52
  ```bash
42
53
  npm install
43
- npm test # 488 tests, ~1.5s
54
+ npm test # 1073 tests across 62 files
44
55
  npm run mcp # start MCP server (stdio transport)
45
56
  ```
46
57
 
@@ -49,18 +60,25 @@ npm run mcp # start MCP server (stdio transport)
49
60
  | Tool | Description |
50
61
  |---|---|
51
62
  | `edict_schema` | Returns the full AST JSON Schema — the spec for how to write programs |
52
- | `edict_examples` | Returns 10 example programs as JSON ASTs |
63
+ | `edict_version` | Returns compiler version and capability info |
64
+ | `edict_examples` | Returns 18 example programs as JSON ASTs |
53
65
  | `edict_validate` | Validates AST structure (field names, types, node kinds) |
54
66
  | `edict_check` | Full pipeline: validate → resolve names → type check → effect check → verify contracts |
55
67
  | `edict_compile` | Compiles a checked AST to WASM (returns base64-encoded binary) |
56
68
  | `edict_run` | Executes a compiled WASM binary, returns output and exit code |
69
+ | `edict_patch` | Applies targeted AST patches by nodeId and re-checks |
70
+ | `edict_errors` | Returns machine-readable catalog of all error types |
71
+ | `edict_lint` | Runs non-blocking quality analysis and returns warnings |
57
72
 
58
73
  ### MCP Resources
59
74
 
60
75
  | URI | Description |
61
76
  |---|---|
62
- | `edict://schema` | The AST JSON Schema |
77
+ | `edict://schema` | The full AST JSON Schema |
78
+ | `edict://schema/minimal` | Minimal schema variant for token-efficient bootstrap |
63
79
  | `edict://examples` | All example programs |
80
+ | `edict://errors` | Machine-readable error catalog |
81
+ | `edict://schema/patch` | JSON Schema for the AST patch protocol |
64
82
 
65
83
  ## Example Program
66
84
 
@@ -134,15 +152,23 @@ src/
134
152
  ├── effects/ # Effect checking (call-graph propagation)
135
153
  ├── contracts/ # Contract verification (Z3/SMT integration)
136
154
  ├── codegen/ # WASM code generation (binaryen)
137
- │ ├── codegen.ts # AST → WASM compilation
138
- │ ├── runner.ts # WASM execution (Node.js WebAssembly API)
139
- │ ├── builtins.ts # Built-in functions (print)
155
+ │ ├── codegen.ts # AST → WASM module orchestration
156
+ │ ├── compile-expr.ts # Expression compilation
157
+ │ ├── compile-*.ts # Specialized compilers (calls, data, match, scalars)
158
+ │ ├── runner.ts # WASM execution (Node.js WebAssembly API)
159
+ │ ├── host-adapter.ts # EdictHostAdapter interface
160
+ │ ├── closures.ts # Closure capture and compilation
161
+ │ ├── hof-generators.ts # Higher-order function WASM generators
140
162
  │ └── string-table.ts # String interning for WASM memory
141
- ├── mcp/ # MCP server (tools + resources)
163
+ ├── builtins/ # Builtin registry and domain-specific builtins
164
+ ├── compact/ # Compact AST format (token-efficient for agents)
165
+ ├── lint/ # Non-blocking quality warnings
166
+ ├── patch/ # Surgical AST patching by nodeId
167
+ ├── mcp/ # MCP server (tools + resources + prompts)
142
168
  └── errors/ # Structured error types
143
169
 
144
- tests/ # 488 tests across 21 files
145
- examples/ # 10 example programs as JSON ASTs
170
+ tests/ # 1073 tests across 62 files
171
+ examples/ # 18 example programs as JSON ASTs
146
172
  schema/ # Auto-generated JSON Schema
147
173
  ```
148
174
 
@@ -150,7 +176,7 @@ schema/ # Auto-generated JSON Schema
150
176
 
151
177
  | Type | Example |
152
178
  |---|---|
153
- | Basic | `Int`, `Float`, `String`, `Bool` |
179
+ | Basic | `Int`, `Int64`, `Float`, `String`, `Bool` |
154
180
  | Array | `Array<Int>` |
155
181
  | Option | `Option<String>` |
156
182
  | Result | `Result<String, String>` |
@@ -178,9 +204,9 @@ Pre/post conditions are verified at compile time using Z3:
178
204
  "kind": "post",
179
205
  "id": "post-001",
180
206
  "condition": {
181
- "kind": "binop", "op": ">",
182
- "left": { "kind": "ident", "name": "result" },
183
- "right": { "kind": "ident", "name": "x" }
207
+ "kind": "binop", "id": "binop-001", "op": ">",
208
+ "left": { "kind": "ident", "id": "ident-result-001", "name": "result" },
209
+ "right": { "kind": "ident", "id": "ident-x-001", "name": "x" }
184
210
  }
185
211
  }
186
212
  ```
@@ -24,6 +24,7 @@ export interface Import {
24
24
  id: string;
25
25
  module: string;
26
26
  names: string[];
27
+ types?: Record<string, TypeExpr>;
27
28
  }
28
29
  export type Definition = FunctionDef | TypeDef | RecordDef | EnumDef | ConstDef;
29
30
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/ast/nodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/ast/nodes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/ast/nodes.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAChF,0EAA0E;AAC1E,uDAAuD;AAiBvD,MAAM,CAAC,MAAM,aAAa,GAAsB;IAC5C,MAAM;IACN,OAAO;IACP,QAAQ;IACR,IAAI;IACJ,OAAO;CACD,CAAC;AA4LX,MAAM,CAAC,MAAM,gBAAgB,GAA8B;IACvD,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,GAAG;IACH,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,SAAS;CACH,CAAC;AAYX,MAAM,CAAC,MAAM,eAAe,GAA6B,CAAC,KAAK,EAAE,GAAG,CAAU,CAAC;AA2I/E,gFAAgF;AAChF,4CAA4C;AAC5C,gFAAgF;AAEhF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,IAAI;IACJ,MAAM;IACN,QAAQ;IACR,MAAM;IACN,OAAO;CACD,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,SAAS;IACT,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,IAAI;IACJ,KAAK;IACL,OAAO;IACP,OAAO;IACP,YAAY;IACZ,aAAa;IACb,kBAAkB;IAClB,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,eAAe;CACT,CAAC;AAEX,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,SAAS;IACT,SAAS;IACT,OAAO;IACP,OAAO;CACD,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,iBAAiB;IACjB,UAAU;IACV,SAAS;IACT,aAAa;CACP,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,KAAK;IACL,OAAO;IACP,OAAO;IACP,QAAQ;IACR,MAAM;CACA,CAAC;AAEX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,QAAQ;IACR,QAAQ;IACR,GAAG,sBAAsB;IACzB,OAAO;IACP,OAAO;IACP,SAAS;IACT,KAAK;IACL,MAAM;IACN,KAAK;IACL,YAAY;IACZ,GAAG,sBAAsB;IACzB,GAAG,gBAAgB;IACnB,GAAG,mBAAmB;CAChB,CAAC"}
1
+ {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/ast/nodes.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAChF,0EAA0E;AAC1E,uDAAuD;AAiBvD,MAAM,CAAC,MAAM,aAAa,GAAsB;IAC5C,MAAM;IACN,OAAO;IACP,QAAQ;IACR,IAAI;IACJ,OAAO;CACD,CAAC;AA6LX,MAAM,CAAC,MAAM,gBAAgB,GAA8B;IACvD,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,GAAG;IACH,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,SAAS;CACH,CAAC;AAYX,MAAM,CAAC,MAAM,eAAe,GAA6B,CAAC,KAAK,EAAE,GAAG,CAAU,CAAC;AA2I/E,gFAAgF;AAChF,4CAA4C;AAC5C,gFAAgF;AAEhF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,IAAI;IACJ,MAAM;IACN,QAAQ;IACR,MAAM;IACN,OAAO;CACD,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,SAAS;IACT,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,IAAI;IACJ,KAAK;IACL,OAAO;IACP,OAAO;IACP,YAAY;IACZ,aAAa;IACb,kBAAkB;IAClB,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,eAAe;CACT,CAAC;AAEX,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,SAAS;IACT,SAAS;IACT,OAAO;IACP,OAAO;CACD,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,iBAAiB;IACjB,UAAU;IACV,SAAS;IACT,aAAa;CACP,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,KAAK;IACL,OAAO;IACP,OAAO;IACP,QAAQ;IACR,MAAM;CACA,CAAC;AAEX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,QAAQ;IACR,QAAQ;IACR,GAAG,sBAAsB;IACzB,OAAO;IACP,OAAO;IACP,SAAS;IACT,KAAK;IACL,MAAM;IACN,KAAK;IACL,YAAY;IACZ,GAAG,sBAAsB;IACzB,GAAG,gBAAgB;IACnB,GAAG,mBAAmB;CAChB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { FunctionType } from "../ast/types.js";
2
+ import type { HostContext } from "./host-helpers.js";
3
+ import type binaryen from "binaryen";
4
+ /** Co-located builtin definition — type signature + implementation together. */
5
+ export interface BuiltinDef {
6
+ /** Builtin function name (e.g., "print", "array_map"). */
7
+ name: string;
8
+ /** Edict-level function type signature (includes effects, params, returnType). */
9
+ type: FunctionType;
10
+ /** Implementation: host-imported or WASM-native. */
11
+ impl: BuiltinImpl;
12
+ }
13
+ export type BuiltinImpl = {
14
+ kind: "host";
15
+ factory: (ctx: HostContext) => Function;
16
+ } | {
17
+ kind: "wasm";
18
+ generator: (mod: binaryen.Module) => void;
19
+ };
20
+ //# sourceMappingURL=builtin-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-types.d.ts","sourceRoot":"","sources":["../../src/builtins/builtin-types.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,gFAAgF;AAChF,MAAM,WAAW,UAAU;IACvB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,IAAI,EAAE,YAAY,CAAC;IACnB,oDAAoD;IACpD,IAAI,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,MAAM,WAAW,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,QAAQ,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAA;CAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ // =============================================================================
2
+ // Builtin type definitions — shared by registry and domain files
3
+ // =============================================================================
4
+ // Extracted to break the circular import between registry.ts ↔ domain files.
5
+ export {};
6
+ //# sourceMappingURL=builtin-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-types.js","sourceRoot":"","sources":["../../src/builtins/builtin-types.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,iEAAiE;AACjE,gFAAgF;AAChF,6EAA6E"}
@@ -1,24 +1,3 @@
1
- import type { FunctionType } from "../ast/types.js";
2
- export interface BuiltinFunction {
3
- /** Edict-level function type signature (includes effects, params, returnType) */
4
- type: FunctionType;
5
- /** WASM import: [module, base] names */
6
- wasmImport: [string, string];
7
- }
8
- /**
9
- * All built-in functions.
10
- *
11
- * `print` takes a String and returns a String (the value printed).
12
- * At the WASM level, it's imported as host.print(ptr, len) → ptr
13
- * (returns the same pointer for passthrough).
14
- */
15
- export declare const BUILTIN_FUNCTIONS: ReadonlyMap<string, BuiltinFunction>;
16
- /**
17
- * Check if a name refers to a built-in function.
18
- */
19
- export declare function isBuiltin(name: string): boolean;
20
- /**
21
- * Get the built-in function definition, or undefined.
22
- */
23
- export declare function getBuiltin(name: string): BuiltinFunction | undefined;
1
+ export { BUILTIN_FUNCTIONS, isBuiltin, getBuiltin } from "./registry.js";
2
+ export type { BuiltinFunction } from "./registry.js";
24
3
  //# sourceMappingURL=builtins.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../src/builtins/builtins.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD,MAAM,WAAW,eAAe;IAC5B,iFAAiF;IACjF,IAAI,EAAE,YAAY,CAAC;IACnB,wCAAwC;IACxC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAwpBjE,CAAC;AAEH;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEpE"}
1
+ {"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../src/builtins/builtins.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}