edict-lang 1.8.0 → 1.9.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.
- package/README.md +18 -5
- package/dist/ast/nodes.d.ts +127 -7
- package/dist/ast/nodes.d.ts.map +1 -1
- package/dist/ast/nodes.js +20 -0
- package/dist/ast/nodes.js.map +1 -1
- package/dist/ast/types.d.ts +42 -1
- package/dist/ast/types.d.ts.map +1 -1
- package/dist/ast/types.js +1 -1
- package/dist/ast/types.js.map +1 -1
- package/dist/ast/walk.d.ts.map +1 -1
- package/dist/ast/walk.js +6 -0
- package/dist/ast/walk.js.map +1 -1
- package/dist/builtins/builtin-types.d.ts +12 -0
- package/dist/builtins/builtin-types.d.ts.map +1 -1
- package/dist/builtins/domains/datetime.d.ts.map +1 -1
- package/dist/builtins/domains/datetime.js +2 -0
- package/dist/builtins/domains/datetime.js.map +1 -1
- package/dist/builtins/domains/http.d.ts.map +1 -1
- package/dist/builtins/domains/http.js +4 -0
- package/dist/builtins/domains/http.js.map +1 -1
- package/dist/builtins/domains/io.d.ts.map +1 -1
- package/dist/builtins/domains/io.js +5 -0
- package/dist/builtins/domains/io.js.map +1 -1
- package/dist/builtins/domains/random.d.ts.map +1 -1
- package/dist/builtins/domains/random.js +6 -0
- package/dist/builtins/domains/random.js.map +1 -1
- package/dist/builtins/registry.d.ts +23 -1
- package/dist/builtins/registry.d.ts.map +1 -1
- package/dist/builtins/registry.js +40 -3
- package/dist/builtins/registry.js.map +1 -1
- package/dist/check.d.ts +3 -0
- package/dist/check.d.ts.map +1 -1
- package/dist/check.js +3 -0
- package/dist/check.js.map +1 -1
- package/dist/checker/check.d.ts +7 -1
- package/dist/checker/check.d.ts.map +1 -1
- package/dist/checker/check.js +205 -19
- package/dist/checker/check.js.map +1 -1
- package/dist/checker/type-env.d.ts +4 -1
- package/dist/checker/type-env.d.ts.map +1 -1
- package/dist/checker/type-env.js +10 -0
- package/dist/checker/type-env.js.map +1 -1
- package/dist/checker/types-equal.d.ts.map +1 -1
- package/dist/checker/types-equal.js +21 -0
- package/dist/checker/types-equal.js.map +1 -1
- package/dist/codegen/codegen.d.ts +11 -0
- package/dist/codegen/codegen.d.ts.map +1 -1
- package/dist/codegen/codegen.js +11 -0
- package/dist/codegen/codegen.js.map +1 -1
- package/dist/codegen/collect-strings.js +6 -0
- package/dist/codegen/collect-strings.js.map +1 -1
- package/dist/codegen/recording-adapter.d.ts +14 -0
- package/dist/codegen/recording-adapter.d.ts.map +1 -0
- package/dist/codegen/recording-adapter.js +30 -0
- package/dist/codegen/recording-adapter.js.map +1 -0
- package/dist/codegen/replay-adapter.d.ts +21 -0
- package/dist/codegen/replay-adapter.d.ts.map +1 -0
- package/dist/codegen/replay-adapter.js +76 -0
- package/dist/codegen/replay-adapter.js.map +1 -0
- package/dist/codegen/replay-types.d.ts +24 -0
- package/dist/codegen/replay-types.d.ts.map +1 -0
- package/dist/codegen/replay-types.js +7 -0
- package/dist/codegen/replay-types.js.map +1 -0
- package/dist/codegen/runner.d.ts +9 -0
- package/dist/codegen/runner.d.ts.map +1 -1
- package/dist/codegen/runner.js +182 -3
- package/dist/codegen/runner.js.map +1 -1
- package/dist/codegen/types.d.ts.map +1 -1
- package/dist/codegen/types.js +16 -0
- package/dist/codegen/types.js.map +1 -1
- package/dist/compact/expand.d.ts +9 -3
- package/dist/compact/expand.d.ts.map +1 -1
- package/dist/compact/expand.js +10 -3
- package/dist/compact/expand.js.map +1 -1
- package/dist/compose/compose.d.ts +6 -0
- package/dist/compose/compose.d.ts.map +1 -1
- package/dist/compose/compose.js +6 -0
- package/dist/compose/compose.js.map +1 -1
- package/dist/contracts/generate-tests.d.ts +27 -0
- package/dist/contracts/generate-tests.d.ts.map +1 -0
- package/dist/contracts/generate-tests.js +300 -0
- package/dist/contracts/generate-tests.js.map +1 -0
- package/dist/contracts/translate-semantic.d.ts +13 -0
- package/dist/contracts/translate-semantic.d.ts.map +1 -0
- package/dist/contracts/translate-semantic.js +177 -0
- package/dist/contracts/translate-semantic.js.map +1 -0
- package/dist/contracts/verify.d.ts +21 -2
- package/dist/contracts/verify.d.ts.map +1 -1
- package/dist/contracts/verify.js +36 -5
- package/dist/contracts/verify.js.map +1 -1
- package/dist/effects/call-graph.d.ts +22 -3
- package/dist/effects/call-graph.d.ts.map +1 -1
- package/dist/effects/call-graph.js +39 -26
- package/dist/effects/call-graph.js.map +1 -1
- package/dist/effects/effect-check.d.ts +6 -0
- package/dist/effects/effect-check.d.ts.map +1 -1
- package/dist/effects/effect-check.js +36 -2
- package/dist/effects/effect-check.js.map +1 -1
- package/dist/errors/error-catalog.d.ts +3 -3
- package/dist/errors/error-catalog.d.ts.map +1 -1
- package/dist/errors/error-catalog.js +397 -781
- package/dist/errors/error-catalog.js.map +1 -1
- package/dist/errors/error-registry.d.ts +26 -0
- package/dist/errors/error-registry.d.ts.map +1 -0
- package/dist/errors/error-registry.js +157 -0
- package/dist/errors/error-registry.js.map +1 -0
- package/dist/errors/explain.d.ts +45 -0
- package/dist/errors/explain.d.ts.map +1 -0
- package/dist/errors/explain.js +84 -0
- package/dist/errors/explain.js.map +1 -0
- package/dist/errors/structured-errors.d.ts +108 -2
- package/dist/errors/structured-errors.d.ts.map +1 -1
- package/dist/errors/structured-errors.js +60 -2
- package/dist/errors/structured-errors.js.map +1 -1
- package/dist/incremental/check.d.ts +33 -0
- package/dist/incremental/check.d.ts.map +1 -0
- package/dist/incremental/check.js +157 -0
- package/dist/incremental/check.js.map +1 -0
- package/dist/incremental/dep-graph.d.ts +29 -0
- package/dist/incremental/dep-graph.d.ts.map +1 -0
- package/dist/incremental/dep-graph.js +200 -0
- package/dist/incremental/dep-graph.js.map +1 -0
- package/dist/incremental/diff.d.ts +14 -0
- package/dist/incremental/diff.d.ts.map +1 -0
- package/dist/incremental/diff.js +98 -0
- package/dist/incremental/diff.js.map +1 -0
- package/dist/index.d.ts +39 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +90 -18
- package/dist/index.js.map +1 -1
- package/dist/lint/lint.d.ts +7 -1
- package/dist/lint/lint.d.ts.map +1 -1
- package/dist/lint/lint.js +354 -5
- package/dist/lint/lint.js.map +1 -1
- package/dist/lint/warnings.d.ts +96 -2
- package/dist/lint/warnings.d.ts.map +1 -1
- package/dist/lint/warnings.js +88 -0
- package/dist/lint/warnings.js.map +1 -1
- package/dist/mcp/handlers.d.ts +28 -1
- package/dist/mcp/handlers.d.ts.map +1 -1
- package/dist/mcp/handlers.js +205 -22
- package/dist/mcp/handlers.js.map +1 -1
- package/dist/mcp/tools/check.d.ts.map +1 -1
- package/dist/mcp/tools/check.js +8 -5
- package/dist/mcp/tools/check.js.map +1 -1
- package/dist/mcp/tools/compile.d.ts.map +1 -1
- package/dist/mcp/tools/compile.js +8 -5
- package/dist/mcp/tools/compile.js.map +1 -1
- package/dist/mcp/tools/explain.d.ts +3 -0
- package/dist/mcp/tools/explain.d.ts.map +1 -0
- package/dist/mcp/tools/explain.js +21 -0
- package/dist/mcp/tools/explain.js.map +1 -0
- package/dist/mcp/tools/generate_tests.d.ts +3 -0
- package/dist/mcp/tools/generate_tests.d.ts.map +1 -0
- package/dist/mcp/tools/generate_tests.js +29 -0
- package/dist/mcp/tools/generate_tests.js.map +1 -0
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +6 -0
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/replay.d.ts +3 -0
- package/dist/mcp/tools/replay.d.ts.map +1 -0
- package/dist/mcp/tools/replay.js +40 -0
- package/dist/mcp/tools/replay.js.map +1 -0
- package/dist/mcp/tools/run.d.ts.map +1 -1
- package/dist/mcp/tools/run.js +5 -3
- package/dist/mcp/tools/run.js.map +1 -1
- package/dist/mcp/uasf.d.ts +6 -1
- package/dist/mcp/uasf.d.ts.map +1 -1
- package/dist/migration/migrate.d.ts +51 -0
- package/dist/migration/migrate.d.ts.map +1 -0
- package/dist/migration/migrate.js +174 -0
- package/dist/migration/migrate.js.map +1 -0
- package/dist/multi-module.d.ts +25 -0
- package/dist/multi-module.d.ts.map +1 -0
- package/dist/multi-module.js +215 -0
- package/dist/multi-module.js.map +1 -0
- package/dist/patch/apply.d.ts +11 -0
- package/dist/patch/apply.d.ts.map +1 -1
- package/dist/patch/apply.js +11 -0
- package/dist/patch/apply.js.map +1 -1
- package/dist/resolver/levenshtein.d.ts +9 -0
- package/dist/resolver/levenshtein.d.ts.map +1 -1
- package/dist/resolver/levenshtein.js +9 -0
- package/dist/resolver/levenshtein.js.map +1 -1
- package/dist/resolver/resolve.d.ts +8 -1
- package/dist/resolver/resolve.d.ts.map +1 -1
- package/dist/resolver/resolve.js +65 -2
- package/dist/resolver/resolve.js.map +1 -1
- package/dist/resolver/scope.d.ts +1 -1
- package/dist/resolver/scope.d.ts.map +1 -1
- package/dist/resolver/scope.js.map +1 -1
- package/dist/validator/schema-walker.d.ts.map +1 -1
- package/dist/validator/schema-walker.js +45 -1
- package/dist/validator/schema-walker.js.map +1 -1
- package/dist/validator/validate.d.ts +8 -1
- package/dist/validator/validate.d.ts.map +1 -1
- package/dist/validator/validate.js +8 -1
- package/dist/validator/validate.js.map +1 -1
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -35,6 +35,7 @@ Contract Verifier ── unproven? → StructuredError + counterexample → Agen
|
|
|
35
35
|
- **Contract verification** — Pre/post conditions verified at compile time by Z3 (via SMT). Failing contracts return concrete counterexamples.
|
|
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
|
+
- **Schema migration** — ASTs from older schema versions are auto-migrated. No breakage when the language evolves.
|
|
38
39
|
|
|
39
40
|
## Execution Model
|
|
40
41
|
|
|
@@ -51,7 +52,7 @@ Host capabilities available through adapters: filesystem (sandboxed), HTTP, cryp
|
|
|
51
52
|
|
|
52
53
|
```bash
|
|
53
54
|
npm install
|
|
54
|
-
npm test #
|
|
55
|
+
npm test # 1801 tests across 105 files
|
|
55
56
|
npm run mcp # start MCP server (stdio transport)
|
|
56
57
|
```
|
|
57
58
|
|
|
@@ -75,7 +76,7 @@ Supported platforms: `linux/amd64`, `linux/arm64`.
|
|
|
75
76
|
|---|---|
|
|
76
77
|
| `edict_schema` | Returns the full AST JSON Schema — the spec for how to write programs |
|
|
77
78
|
| `edict_version` | Returns compiler version and capability info |
|
|
78
|
-
| `edict_examples` | Returns
|
|
79
|
+
| `edict_examples` | Returns 38 example programs as JSON ASTs |
|
|
79
80
|
| `edict_validate` | Validates AST structure (field names, types, node kinds) |
|
|
80
81
|
| `edict_check` | Full pipeline: validate → resolve names → type check → effect check → verify contracts |
|
|
81
82
|
| `edict_compile` | Compiles a checked AST to WASM (returns base64-encoded binary) |
|
|
@@ -83,6 +84,13 @@ Supported platforms: `linux/amd64`, `linux/arm64`.
|
|
|
83
84
|
| `edict_patch` | Applies targeted AST patches by nodeId and re-checks |
|
|
84
85
|
| `edict_errors` | Returns machine-readable catalog of all error types |
|
|
85
86
|
| `edict_lint` | Runs non-blocking quality analysis and returns warnings |
|
|
87
|
+
| `edict_debug` | Execution tracing and crash diagnostics |
|
|
88
|
+
| `edict_compose` | Combines composable program fragments into a module |
|
|
89
|
+
| `edict_explain` | Explains AST nodes, errors, or compiler behavior |
|
|
90
|
+
| `edict_export` | Packages a program as a UASF portable skill |
|
|
91
|
+
| `edict_import_skill` | Imports and executes a UASF skill package |
|
|
92
|
+
| `edict_generate_tests` | Generates tests from Z3-verified contracts |
|
|
93
|
+
| `edict_replay` | Records and replays deterministic execution traces |
|
|
86
94
|
|
|
87
95
|
### MCP Resources
|
|
88
96
|
|
|
@@ -170,19 +178,24 @@ src/
|
|
|
170
178
|
│ ├── compile-expr.ts # Expression compilation
|
|
171
179
|
│ ├── compile-*.ts # Specialized compilers (calls, data, match, scalars)
|
|
172
180
|
│ ├── runner.ts # WASM execution (Node.js WebAssembly API)
|
|
173
|
-
│ ├── host-adapter.ts # EdictHostAdapter interface
|
|
181
|
+
│ ├── host-adapter.ts # EdictHostAdapter interface + platform adapters
|
|
174
182
|
│ ├── closures.ts # Closure capture and compilation
|
|
175
183
|
│ ├── hof-generators.ts # Higher-order function WASM generators
|
|
184
|
+
│ ├── recording-adapter.ts # Execution recording for replay
|
|
185
|
+
│ ├── replay-adapter.ts # Deterministic replay from recorded traces
|
|
176
186
|
│ └── string-table.ts # String interning for WASM memory
|
|
177
187
|
├── builtins/ # Builtin registry and domain-specific builtins
|
|
178
188
|
├── compact/ # Compact AST format (token-efficient for agents)
|
|
189
|
+
├── compose/ # Composable program fragments
|
|
190
|
+
├── incremental/ # Incremental checking (dependency graph + diff)
|
|
179
191
|
├── lint/ # Non-blocking quality warnings
|
|
180
192
|
├── patch/ # Surgical AST patching by nodeId
|
|
193
|
+
├── migration/ # Schema version migration (auto-upgrade older ASTs)
|
|
181
194
|
├── mcp/ # MCP server (tools + resources + prompts)
|
|
182
195
|
└── errors/ # Structured error types
|
|
183
196
|
|
|
184
|
-
tests/ #
|
|
185
|
-
examples/ #
|
|
197
|
+
tests/ # 1801 tests across 105 files
|
|
198
|
+
examples/ # 38 example programs (⭐→⭐⭐⭐ difficulty in README)
|
|
186
199
|
schema/ # Auto-generated JSON Schema
|
|
187
200
|
```
|
|
188
201
|
|
package/dist/ast/nodes.d.ts
CHANGED
|
@@ -6,6 +6,42 @@ export type { TypeExpr } from "./types.js";
|
|
|
6
6
|
*/
|
|
7
7
|
export type Effect = "pure" | "reads" | "writes" | "io" | "fails";
|
|
8
8
|
export declare const VALID_EFFECTS: readonly Effect[];
|
|
9
|
+
/**
|
|
10
|
+
* Retry backoff strategy for tool calls.
|
|
11
|
+
*/
|
|
12
|
+
export type BackoffKind = "fixed" | "linear" | "exponential";
|
|
13
|
+
export declare const VALID_BACKOFF_KINDS: readonly BackoffKind[];
|
|
14
|
+
/**
|
|
15
|
+
* Retry policy for tool calls — how often and how to back off.
|
|
16
|
+
*/
|
|
17
|
+
export interface RetryPolicy {
|
|
18
|
+
maxRetries: number;
|
|
19
|
+
backoff: BackoffKind;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Approval scope controls how often approval must be re-obtained.
|
|
23
|
+
*/
|
|
24
|
+
export type ApprovalScope = "per_call" | "per_session" | "per_module";
|
|
25
|
+
export declare const VALID_APPROVAL_SCOPES: readonly ApprovalScope[];
|
|
26
|
+
/**
|
|
27
|
+
* Approval gate on a function — requires explicit host approval before execution.
|
|
28
|
+
* Propagates through call chains: if a callee requires approval, the caller must too.
|
|
29
|
+
*/
|
|
30
|
+
export interface ApprovalGate {
|
|
31
|
+
required: boolean;
|
|
32
|
+
scope: ApprovalScope;
|
|
33
|
+
reason: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Structured blame / provenance annotation.
|
|
37
|
+
* Tracks which agent produced a module or function, when, and with what confidence.
|
|
38
|
+
*/
|
|
39
|
+
export interface BlameAnnotation {
|
|
40
|
+
author: string;
|
|
41
|
+
generatedAt: string;
|
|
42
|
+
confidence: number;
|
|
43
|
+
sourcePrompt?: string;
|
|
44
|
+
}
|
|
9
45
|
/**
|
|
10
46
|
* A complete Edict program / module.
|
|
11
47
|
*/
|
|
@@ -13,9 +49,13 @@ export interface EdictModule {
|
|
|
13
49
|
kind: "module";
|
|
14
50
|
id: string;
|
|
15
51
|
name: string;
|
|
52
|
+
schemaVersion?: string;
|
|
16
53
|
imports: Import[];
|
|
17
54
|
definitions: Definition[];
|
|
18
55
|
budget?: ComplexityConstraints;
|
|
56
|
+
blame?: BlameAnnotation;
|
|
57
|
+
minConfidence?: number;
|
|
58
|
+
capabilities?: string[];
|
|
19
59
|
}
|
|
20
60
|
/**
|
|
21
61
|
* A composable program fragment.
|
|
@@ -28,6 +68,7 @@ export interface EdictFragment {
|
|
|
28
68
|
requires: string[];
|
|
29
69
|
imports: Import[];
|
|
30
70
|
definitions: Definition[];
|
|
71
|
+
blame?: BlameAnnotation;
|
|
31
72
|
}
|
|
32
73
|
/**
|
|
33
74
|
* Import names from another module.
|
|
@@ -39,7 +80,7 @@ export interface Import {
|
|
|
39
80
|
names: string[];
|
|
40
81
|
types?: Record<string, TypeExpr>;
|
|
41
82
|
}
|
|
42
|
-
export type Definition = FunctionDef | TypeDef | RecordDef | EnumDef | ConstDef;
|
|
83
|
+
export type Definition = FunctionDef | TypeDef | RecordDef | EnumDef | ConstDef | ToolDef;
|
|
43
84
|
/**
|
|
44
85
|
* Function definition with effects, contracts, and body.
|
|
45
86
|
*/
|
|
@@ -52,8 +93,37 @@ export interface FunctionDef {
|
|
|
52
93
|
returnType?: TypeExpr;
|
|
53
94
|
contracts: Contract[];
|
|
54
95
|
constraints?: ComplexityConstraints;
|
|
96
|
+
intent?: IntentDeclaration;
|
|
97
|
+
approval?: ApprovalGate;
|
|
98
|
+
blame?: BlameAnnotation;
|
|
55
99
|
body: Expression[];
|
|
56
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Structured intent — what the function is trying to accomplish.
|
|
103
|
+
* Agents use this for re-synthesis, blame tracking, and specification diffing.
|
|
104
|
+
* Invariants reuse Expression and SemanticAssertion types for automated matching.
|
|
105
|
+
*/
|
|
106
|
+
export interface IntentDeclaration {
|
|
107
|
+
goal: string;
|
|
108
|
+
inputs: string[];
|
|
109
|
+
outputs: string[];
|
|
110
|
+
invariants: IntentInvariant[];
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* A structured invariant that can be automatically matched against contracts.
|
|
114
|
+
* Reuses existing Expression and SemanticAssertionKind — zero new vocabulary.
|
|
115
|
+
*/
|
|
116
|
+
export type IntentInvariant = ExpressionInvariant | SemanticInvariant;
|
|
117
|
+
export interface ExpressionInvariant {
|
|
118
|
+
kind: "expression";
|
|
119
|
+
expression: Expression;
|
|
120
|
+
}
|
|
121
|
+
export interface SemanticInvariant {
|
|
122
|
+
kind: "semantic";
|
|
123
|
+
assertion: SemanticAssertionKind;
|
|
124
|
+
target: string;
|
|
125
|
+
args?: string[];
|
|
126
|
+
}
|
|
57
127
|
/**
|
|
58
128
|
* Type alias definition.
|
|
59
129
|
*/
|
|
@@ -62,6 +132,7 @@ export interface TypeDef {
|
|
|
62
132
|
id: string;
|
|
63
133
|
name: string;
|
|
64
134
|
definition: TypeExpr;
|
|
135
|
+
blame?: BlameAnnotation;
|
|
65
136
|
}
|
|
66
137
|
/**
|
|
67
138
|
* Record (struct) definition.
|
|
@@ -71,6 +142,7 @@ export interface RecordDef {
|
|
|
71
142
|
id: string;
|
|
72
143
|
name: string;
|
|
73
144
|
fields: RecordField[];
|
|
145
|
+
blame?: BlameAnnotation;
|
|
74
146
|
}
|
|
75
147
|
/**
|
|
76
148
|
* A field in a record definition.
|
|
@@ -90,6 +162,7 @@ export interface EnumDef {
|
|
|
90
162
|
id: string;
|
|
91
163
|
name: string;
|
|
92
164
|
variants: EnumVariant[];
|
|
165
|
+
blame?: BlameAnnotation;
|
|
93
166
|
}
|
|
94
167
|
/**
|
|
95
168
|
* A variant of an enum. Fields are empty for unit variants (e.g., None).
|
|
@@ -109,6 +182,22 @@ export interface ConstDef {
|
|
|
109
182
|
name: string;
|
|
110
183
|
type: TypeExpr;
|
|
111
184
|
value: Expression;
|
|
185
|
+
blame?: BlameAnnotation;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Tool definition — declares a named external tool with a typed interface.
|
|
189
|
+
* The host provides the actual implementation at runtime.
|
|
190
|
+
* Tool names are in scope like functions; tool_call expressions reference them by name.
|
|
191
|
+
*/
|
|
192
|
+
export interface ToolDef {
|
|
193
|
+
kind: "tool";
|
|
194
|
+
id: string;
|
|
195
|
+
name: string;
|
|
196
|
+
uri: string;
|
|
197
|
+
params: Param[];
|
|
198
|
+
returnType: TypeExpr;
|
|
199
|
+
effects: Effect[];
|
|
200
|
+
blame?: BlameAnnotation;
|
|
112
201
|
}
|
|
113
202
|
/**
|
|
114
203
|
* Function parameter.
|
|
@@ -121,12 +210,29 @@ export interface Param {
|
|
|
121
210
|
}
|
|
122
211
|
/**
|
|
123
212
|
* Pre/post contract on a function.
|
|
213
|
+
* Must have exactly one of `condition` (manual expression) or `semantic` (pre-built assertion).
|
|
214
|
+
* `semantic` is only valid on `post` contracts (v1).
|
|
124
215
|
*/
|
|
125
216
|
export interface Contract {
|
|
126
217
|
kind: "pre" | "post";
|
|
127
218
|
id: string;
|
|
128
|
-
condition
|
|
219
|
+
condition?: Expression;
|
|
220
|
+
semantic?: SemanticAssertion;
|
|
129
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* A pre-built semantic assertion that translates to a proven-correct Z3 encoding.
|
|
224
|
+
* Agents use these instead of manually writing Z3-verifiable expressions.
|
|
225
|
+
*/
|
|
226
|
+
export interface SemanticAssertion {
|
|
227
|
+
assertion: SemanticAssertionKind;
|
|
228
|
+
target: string;
|
|
229
|
+
args?: string[];
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* The 7 built-in semantic assertion kinds.
|
|
233
|
+
*/
|
|
234
|
+
export type SemanticAssertionKind = "sorted" | "permutation_of" | "subset_of" | "sum_preserved" | "no_duplicates" | "length_preserved" | "bounded";
|
|
235
|
+
export declare const VALID_SEMANTIC_ASSERTIONS: readonly SemanticAssertionKind[];
|
|
130
236
|
/**
|
|
131
237
|
* Bounds on token complexity and program size to prevent runaway agents.
|
|
132
238
|
*/
|
|
@@ -136,7 +242,7 @@ export interface ComplexityConstraints {
|
|
|
136
242
|
maxCallDepth?: number;
|
|
137
243
|
maxBranches?: number;
|
|
138
244
|
}
|
|
139
|
-
export type Expression = Literal | Identifier | BinaryOp | UnaryOp | Call | IfExpr | LetExpr | MatchExpr | ArrayExpr | TupleExpr | RecordExpr | EnumConstructor | FieldAccess | LambdaExpr | BlockExpr | StringInterp | ForallExpr | ExistsExpr;
|
|
245
|
+
export type Expression = Literal | Identifier | BinaryOp | UnaryOp | Call | IfExpr | LetExpr | MatchExpr | ArrayExpr | TupleExpr | RecordExpr | EnumConstructor | FieldAccess | LambdaExpr | BlockExpr | StringInterp | ForallExpr | ExistsExpr | ToolCallExpr;
|
|
140
246
|
export interface Literal {
|
|
141
247
|
kind: "literal";
|
|
142
248
|
id: string;
|
|
@@ -302,10 +408,24 @@ export interface ExistsExpr {
|
|
|
302
408
|
};
|
|
303
409
|
body: Expression;
|
|
304
410
|
}
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
411
|
+
/**
|
|
412
|
+
* Tool call expression — invokes a declared tool by name.
|
|
413
|
+
* Named args via FieldInit (same pattern as RecordExpr/EnumConstructor).
|
|
414
|
+
* Always returns Result<T, String> where T is the tool's returnType.
|
|
415
|
+
*/
|
|
416
|
+
export interface ToolCallExpr {
|
|
417
|
+
kind: "tool_call";
|
|
418
|
+
id: string;
|
|
419
|
+
tool: string;
|
|
420
|
+
args: FieldInit[];
|
|
421
|
+
timeout?: number;
|
|
422
|
+
retryPolicy?: RetryPolicy;
|
|
423
|
+
fallback?: Expression;
|
|
424
|
+
}
|
|
425
|
+
export declare const VALID_DEFINITION_KINDS: readonly ["fn", "type", "record", "enum", "const", "tool"];
|
|
426
|
+
export declare const VALID_EXPRESSION_KINDS: readonly ["literal", "ident", "binop", "unop", "call", "if", "let", "match", "array", "tuple_expr", "record_expr", "enum_constructor", "access", "lambda", "block", "string_interp", "forall", "exists", "tool_call"];
|
|
427
|
+
export declare const VALID_TYPE_KINDS: readonly ["basic", "array", "option", "result", "unit_type", "refined", "fn_type", "named", "tuple", "confidence", "provenance", "capability", "fresh"];
|
|
308
428
|
export declare const VALID_PATTERN_KINDS: readonly ["literal_pattern", "wildcard", "binding", "constructor"];
|
|
309
429
|
export declare const VALID_BASIC_TYPE_NAMES: readonly ["Int", "Int64", "Float", "String", "Bool"];
|
|
310
|
-
export declare const ALL_VALID_KINDS: readonly ["module", "fragment", "import", "fn", "type", "record", "enum", "const", "param", "field", "variant", "pre", "post", "arm", "field_init", "constraints", "literal", "ident", "binop", "unop", "call", "if", "let", "match", "array", "tuple_expr", "record_expr", "enum_constructor", "access", "lambda", "block", "string_interp", "forall", "exists", "basic", "array", "option", "result", "unit_type", "refined", "fn_type", "named", "tuple", "literal_pattern", "wildcard", "binding", "constructor"];
|
|
430
|
+
export declare const ALL_VALID_KINDS: readonly ["module", "fragment", "import", "fn", "type", "record", "enum", "const", "tool", "param", "field", "variant", "pre", "post", "arm", "field_init", "constraints", "literal", "ident", "binop", "unop", "call", "if", "let", "match", "array", "tuple_expr", "record_expr", "enum_constructor", "access", "lambda", "block", "string_interp", "forall", "exists", "tool_call", "basic", "array", "option", "result", "unit_type", "refined", "fn_type", "named", "tuple", "confidence", "provenance", "capability", "fresh", "literal_pattern", "wildcard", "binding", "constructor"];
|
|
311
431
|
//# sourceMappingURL=nodes.d.ts.map
|
package/dist/ast/nodes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/ast/nodes.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAM3C;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC;AAElE,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAMjC,CAAC;AAMX;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/ast/nodes.ts"],"names":[],"mappings":"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"}
|
package/dist/ast/nodes.js
CHANGED
|
@@ -10,6 +10,20 @@ export const VALID_EFFECTS = [
|
|
|
10
10
|
"io",
|
|
11
11
|
"fails",
|
|
12
12
|
];
|
|
13
|
+
export const VALID_BACKOFF_KINDS = [
|
|
14
|
+
"fixed",
|
|
15
|
+
"linear",
|
|
16
|
+
"exponential",
|
|
17
|
+
];
|
|
18
|
+
export const VALID_APPROVAL_SCOPES = [
|
|
19
|
+
"per_call",
|
|
20
|
+
"per_session",
|
|
21
|
+
"per_module",
|
|
22
|
+
];
|
|
23
|
+
export const VALID_SEMANTIC_ASSERTIONS = [
|
|
24
|
+
"sorted", "permutation_of", "subset_of", "sum_preserved",
|
|
25
|
+
"no_duplicates", "length_preserved", "bounded",
|
|
26
|
+
];
|
|
13
27
|
export const VALID_BINARY_OPS = [
|
|
14
28
|
"+",
|
|
15
29
|
"-",
|
|
@@ -36,6 +50,7 @@ export const VALID_DEFINITION_KINDS = [
|
|
|
36
50
|
"record",
|
|
37
51
|
"enum",
|
|
38
52
|
"const",
|
|
53
|
+
"tool",
|
|
39
54
|
];
|
|
40
55
|
export const VALID_EXPRESSION_KINDS = [
|
|
41
56
|
"literal",
|
|
@@ -56,6 +71,7 @@ export const VALID_EXPRESSION_KINDS = [
|
|
|
56
71
|
"string_interp",
|
|
57
72
|
"forall",
|
|
58
73
|
"exists",
|
|
74
|
+
"tool_call",
|
|
59
75
|
];
|
|
60
76
|
export const VALID_TYPE_KINDS = [
|
|
61
77
|
"basic",
|
|
@@ -67,6 +83,10 @@ export const VALID_TYPE_KINDS = [
|
|
|
67
83
|
"fn_type",
|
|
68
84
|
"named",
|
|
69
85
|
"tuple",
|
|
86
|
+
"confidence",
|
|
87
|
+
"provenance",
|
|
88
|
+
"capability",
|
|
89
|
+
"fresh",
|
|
70
90
|
];
|
|
71
91
|
export const VALID_PATTERN_KINDS = [
|
|
72
92
|
"literal_pattern",
|
package/dist/ast/nodes.js.map
CHANGED
|
@@ -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;
|
|
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;AAWX,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACvD,OAAO;IACP,QAAQ;IACR,aAAa;CACP,CAAC;AAmBX,MAAM,CAAC,MAAM,qBAAqB,GAA6B;IAC3D,UAAU;IACV,aAAa;IACb,YAAY;CACN,CAAC;AAoQX,MAAM,CAAC,MAAM,yBAAyB,GAAqC;IACvE,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe;IACxD,eAAe,EAAE,kBAAkB,EAAE,SAAS;CACxC,CAAC;AAkEX,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;AAoL/E,gFAAgF;AAChF,4CAA4C;AAC5C,gFAAgF;AAEhF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,IAAI;IACJ,MAAM;IACN,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;CACA,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;IACf,QAAQ;IACR,QAAQ;IACR,WAAW;CACL,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;IACP,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,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,UAAU;IACV,QAAQ;IACR,GAAG,sBAAsB;IACzB,OAAO;IACP,OAAO;IACP,SAAS;IACT,KAAK;IACL,MAAM;IACN,KAAK;IACL,YAAY;IACZ,aAAa;IACb,GAAG,sBAAsB;IACzB,GAAG,gBAAgB;IACnB,GAAG,mBAAmB;CAChB,CAAC"}
|
package/dist/ast/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Union of all type expressions in Edict.
|
|
3
3
|
*/
|
|
4
|
-
export type TypeExpr = BasicType | ArrayType | OptionType | ResultType | UnitType | RefinedType | FunctionType | NamedType | TupleType;
|
|
4
|
+
export type TypeExpr = BasicType | ArrayType | OptionType | ResultType | UnitType | RefinedType | FunctionType | NamedType | TupleType | ConfidenceType | ProvenanceType | CapabilityType | FreshnessType;
|
|
5
5
|
/**
|
|
6
6
|
* Primitive types.
|
|
7
7
|
*/
|
|
@@ -74,5 +74,46 @@ export interface TupleType {
|
|
|
74
74
|
kind: "tuple";
|
|
75
75
|
elements: TypeExpr[];
|
|
76
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Confidence-typed value — tracks LLM uncertainty at the type level.
|
|
79
|
+
* Erased after type checking (zero runtime cost). Structurally transparent:
|
|
80
|
+
* Confidence<T, 0.9> is assignable to/from T.
|
|
81
|
+
*/
|
|
82
|
+
export interface ConfidenceType {
|
|
83
|
+
kind: "confidence";
|
|
84
|
+
base: TypeExpr;
|
|
85
|
+
confidence: number;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Provenance-typed value — tracks data origin at the type level.
|
|
89
|
+
* Erased after type checking (zero runtime cost). Structurally transparent:
|
|
90
|
+
* Provenance<T, "api:x"> is assignable to/from T.
|
|
91
|
+
*/
|
|
92
|
+
export interface ProvenanceType {
|
|
93
|
+
kind: "provenance";
|
|
94
|
+
base: TypeExpr;
|
|
95
|
+
sources: string[];
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Capability token — compile-time verified, unforgeable permission.
|
|
99
|
+
* Not a type wrapper (unlike confidence/provenance). Capabilities ARE the type.
|
|
100
|
+
* Erased at codegen (zero runtime cost). The host mints them; agents cannot forge them.
|
|
101
|
+
* Permissions are hierarchical: "net:smtp" subsumes "net:smtp:max_10" via prefix matching.
|
|
102
|
+
*/
|
|
103
|
+
export interface CapabilityType {
|
|
104
|
+
kind: "capability";
|
|
105
|
+
permissions: string[];
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Freshness-typed value — tracks temporal validity at the type level.
|
|
109
|
+
* Erased after type checking (zero runtime cost). Structurally transparent:
|
|
110
|
+
* Fresh<T, "5m"> is assignable to/from T.
|
|
111
|
+
* maxAge is a duration string: "30s", "5m", "1h", "200ms".
|
|
112
|
+
*/
|
|
113
|
+
export interface FreshnessType {
|
|
114
|
+
kind: "fresh";
|
|
115
|
+
base: TypeExpr;
|
|
116
|
+
maxAge: string;
|
|
117
|
+
}
|
|
77
118
|
import type { Expression, Effect } from "./nodes.js";
|
|
78
119
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/ast/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ast/types.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,MAAM,QAAQ,GACd,SAAS,GACT,SAAS,GACT,UAAU,GACV,UAAU,GACV,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,SAAS,GACT,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ast/types.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,MAAM,QAAQ,GACd,SAAS,GACT,SAAS,GACT,UAAU,GACV,UAAU,GACV,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,SAAS,GACT,SAAS,GACT,cAAc,GACd,cAAc,GACd,cAAc,GACd,aAAa,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,QAAQ,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,QAAQ,CAAC;IACb,GAAG,EAAE,QAAQ,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,UAAU,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,QAAQ,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAID,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/ast/types.js
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
// Edict AST Type Expressions
|
|
3
3
|
// =============================================================================
|
|
4
4
|
// Every possible type in the Edict type system.
|
|
5
|
-
// Types are compile-time only — unit types are erased after type checking.
|
|
5
|
+
// Types are compile-time only — unit types and confidence types are erased after type checking.
|
|
6
6
|
export {};
|
|
7
7
|
//# sourceMappingURL=types.js.map
|
package/dist/ast/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ast/types.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAChF,gDAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ast/types.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAChF,gDAAgD;AAChD,gGAAgG"}
|
package/dist/ast/walk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walk.d.ts","sourceRoot":"","sources":["../../src/ast/walk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,UAAU;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,KAAK,CAAC;IAE3C;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"walk.d.ts","sourceRoot":"","sources":["../../src/ast/walk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,UAAU;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,KAAK,CAAC;IAE3C;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,CAkFzG"}
|
package/dist/ast/walk.js
CHANGED
|
@@ -78,6 +78,12 @@ export function walkExpression(expr, visitor) {
|
|
|
78
78
|
walkExpression(expr.range.to, visitor);
|
|
79
79
|
walkExpression(expr.body, visitor);
|
|
80
80
|
break;
|
|
81
|
+
case "tool_call":
|
|
82
|
+
for (const f of expr.args)
|
|
83
|
+
walkExpression(f.value, visitor);
|
|
84
|
+
if (expr.fallback)
|
|
85
|
+
walkExpression(expr.fallback, visitor);
|
|
86
|
+
break;
|
|
81
87
|
default:
|
|
82
88
|
// Ensure all kinds are completely covered
|
|
83
89
|
void expr;
|
package/dist/ast/walk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walk.js","sourceRoot":"","sources":["../../src/ast/walk.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"walk.js","sourceRoot":"","sources":["../../src/ast/walk.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,18 @@ export interface BuiltinDef {
|
|
|
9
9
|
type: FunctionType;
|
|
10
10
|
/** Implementation: host-imported or WASM-native. */
|
|
11
11
|
impl: BuiltinImpl;
|
|
12
|
+
/**
|
|
13
|
+
* Whether this builtin's output depends on external state (time, random, IO).
|
|
14
|
+
* Required for host builtins with "reads" effect — enforced by test.
|
|
15
|
+
* When true, createHostImports auto-wraps the factory for record/replay.
|
|
16
|
+
*/
|
|
17
|
+
nondeterministic?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Provenance source tag for return values (e.g., "io:http", "io:random").
|
|
20
|
+
* When set, the type checker auto-wraps the return type in ProvenanceType
|
|
21
|
+
* so agents get data-origin tracking without manual annotation.
|
|
22
|
+
*/
|
|
23
|
+
provenance?: string;
|
|
12
24
|
}
|
|
13
25
|
export type BuiltinImpl = {
|
|
14
26
|
kind: "host";
|
|
@@ -1 +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;
|
|
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;IAClB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../../../src/builtins/domains/datetime.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAItD,eAAO,MAAM,iBAAiB,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../../../src/builtins/domains/datetime.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAItD,eAAO,MAAM,iBAAiB,EAAE,UAAU,EAwCzC,CAAC"}
|
|
@@ -7,6 +7,8 @@ export const DATETIME_BUILTINS = [
|
|
|
7
7
|
{
|
|
8
8
|
name: "now",
|
|
9
9
|
type: { kind: "fn_type", params: [], effects: ["reads"], returnType: INT64_TYPE },
|
|
10
|
+
nondeterministic: true,
|
|
11
|
+
provenance: "io:clock",
|
|
10
12
|
impl: { kind: "host", factory: () => () => BigInt(Date.now()) },
|
|
11
13
|
},
|
|
12
14
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../../src/builtins/domains/datetime.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,uDAAuD;AACvD,gFAAgF;AAGhF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAoB,MAAM,oBAAoB,CAAC;AAEvG,MAAM,CAAC,MAAM,iBAAiB,GAAiB;IAC3C;QACI,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE;QACjF,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE;KAC1E;IACD;QACI,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE;QACxG,IAAI,EAAE;YACF,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,CAAC,GAAgB,EAAE,EAAE,CAAC,CAAC,SAAiB,EAAE,MAAc,EAAU,EAAE;gBACzE,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBACvD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;gBACzC,OAAO,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAClF,CAAC;SACJ;KACJ;IACD;QACI,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE;QACzG,IAAI,EAAE;YACF,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,CAAC,GAAgB,EAAE,EAAE,CAAC,CAAC,MAAc,EAAE,OAAe,EAAU,EAAE;gBACvE,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBACvD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3B,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,GAAG,CAAC,CAAC;gBAC/D,CAAC;gBACD,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;SACJ;KACJ;IACD;QACI,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE;QACtG,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE;KACjF;CACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../../src/builtins/domains/datetime.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,uDAAuD;AACvD,gFAAgF;AAGhF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAoB,MAAM,oBAAoB,CAAC;AAEvG,MAAM,CAAC,MAAM,iBAAiB,GAAiB;IAC3C;QACI,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE;QACjF,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE;KAC1E;IACD;QACI,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE;QACxG,IAAI,EAAE;YACF,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,CAAC,GAAgB,EAAE,EAAE,CAAC,CAAC,SAAiB,EAAE,MAAc,EAAU,EAAE;gBACzE,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBACvD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;gBACzC,OAAO,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAClF,CAAC;SACJ;KACJ;IACD;QACI,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE;QACzG,IAAI,EAAE;YACF,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,CAAC,GAAgB,EAAE,EAAE,CAAC,CAAC,MAAc,EAAE,OAAe,EAAU,EAAE;gBACvE,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBACvD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3B,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,GAAG,CAAC,CAAC;gBAC/D,CAAC;gBACD,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;SACJ;KACJ;IACD;QACI,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE;QACtG,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE;KACjF;CACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/builtins/domains/http.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAkCtD,eAAO,MAAM,aAAa,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/builtins/domains/http.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAkCtD,eAAO,MAAM,aAAa,EAAE,UAAU,EAqCrC,CAAC"}
|
|
@@ -35,6 +35,7 @@ export const HTTP_BUILTINS = [
|
|
|
35
35
|
{
|
|
36
36
|
name: "httpGet",
|
|
37
37
|
type: { kind: "fn_type", params: [STRING_TYPE], effects: ["io"], returnType: RESULT_STRING_TYPE },
|
|
38
|
+
provenance: "io:http",
|
|
38
39
|
impl: {
|
|
39
40
|
kind: "host",
|
|
40
41
|
factory: (ctx) => (urlPtr) => fetchWithChecks(ctx, urlPtr, "GET"),
|
|
@@ -43,6 +44,7 @@ export const HTTP_BUILTINS = [
|
|
|
43
44
|
{
|
|
44
45
|
name: "httpPost",
|
|
45
46
|
type: { kind: "fn_type", params: [STRING_TYPE, STRING_TYPE], effects: ["io"], returnType: RESULT_STRING_TYPE },
|
|
47
|
+
provenance: "io:http",
|
|
46
48
|
impl: {
|
|
47
49
|
kind: "host",
|
|
48
50
|
factory: (ctx) => (urlPtr, bodyPtr) => fetchWithChecks(ctx, urlPtr, "POST", bodyPtr),
|
|
@@ -51,6 +53,7 @@ export const HTTP_BUILTINS = [
|
|
|
51
53
|
{
|
|
52
54
|
name: "httpPut",
|
|
53
55
|
type: { kind: "fn_type", params: [STRING_TYPE, STRING_TYPE], effects: ["io"], returnType: RESULT_STRING_TYPE },
|
|
56
|
+
provenance: "io:http",
|
|
54
57
|
impl: {
|
|
55
58
|
kind: "host",
|
|
56
59
|
factory: (ctx) => (urlPtr, bodyPtr) => fetchWithChecks(ctx, urlPtr, "PUT", bodyPtr),
|
|
@@ -59,6 +62,7 @@ export const HTTP_BUILTINS = [
|
|
|
59
62
|
{
|
|
60
63
|
name: "httpDelete",
|
|
61
64
|
type: { kind: "fn_type", params: [STRING_TYPE], effects: ["io"], returnType: RESULT_STRING_TYPE },
|
|
65
|
+
provenance: "io:http",
|
|
62
66
|
impl: {
|
|
63
67
|
kind: "host",
|
|
64
68
|
factory: (ctx) => (urlPtr) => fetchWithChecks(ctx, urlPtr, "DELETE"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/builtins/domains/http.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/builtins/domains/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../../src/builtins/domains/io.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAItD,eAAO,MAAM,WAAW,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../../src/builtins/domains/io.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAItD,eAAO,MAAM,WAAW,EAAE,UAAU,EA2EnC,CAAC"}
|