@sponsio/sdk 0.1.0 → 0.2.0-alpha.4

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 (75) hide show
  1. package/contracts/benchmark/agentdojo.yaml +551 -0
  2. package/contracts/benchmark/odcv_bench.yaml +393 -0
  3. package/contracts/benchmark/redcode_exec.yaml +488 -0
  4. package/contracts/benchmark/swebench.yaml +176 -0
  5. package/contracts/benchmark/tau2_bench.yaml +984 -0
  6. package/contracts/core/llm_safety.yaml +12 -14
  7. package/contracts/incident/claude-code-secret-bypass.yaml +2 -2
  8. package/contracts/incident/openclaw.yaml +5 -4
  9. package/contracts/premium/.gitkeep +5 -6
  10. package/dist/cli/packs.js +3 -3
  11. package/dist/cli/packs.js.map +1 -1
  12. package/dist/cli/patterns.d.ts +5 -4
  13. package/dist/cli/patterns.d.ts.map +1 -1
  14. package/dist/cli/patterns.js +11 -10
  15. package/dist/cli/patterns.js.map +1 -1
  16. package/dist/cli/prompt.js +5 -5
  17. package/dist/cli/prompt.js.map +1 -1
  18. package/dist/cli/scan.js +2 -2
  19. package/dist/cli/skill.d.ts +1 -1
  20. package/dist/cli/skill.js +1 -1
  21. package/dist/cli/validate.js +5 -5
  22. package/dist/cli/validate.js.map +1 -1
  23. package/dist/core/config-loader.d.ts.map +1 -1
  24. package/dist/core/config-loader.js +65 -9
  25. package/dist/core/config-loader.js.map +1 -1
  26. package/dist/core/evaluator.d.ts +9 -1
  27. package/dist/core/evaluator.d.ts.map +1 -1
  28. package/dist/core/evaluator.js +189 -13
  29. package/dist/core/evaluator.js.map +1 -1
  30. package/dist/core/formula.d.ts +76 -17
  31. package/dist/core/formula.d.ts.map +1 -1
  32. package/dist/core/formula.js +83 -1
  33. package/dist/core/formula.js.map +1 -1
  34. package/dist/core/grounding.d.ts +1 -1
  35. package/dist/core/grounding.d.ts.map +1 -1
  36. package/dist/core/grounding.js +17 -1
  37. package/dist/core/grounding.js.map +1 -1
  38. package/dist/core/nl-parser.d.ts +1 -1
  39. package/dist/core/nl-parser.js +2 -2
  40. package/dist/core/nl-parser.js.map +1 -1
  41. package/dist/core/pack-loader.d.ts.map +1 -1
  42. package/dist/core/pack-loader.js +14 -2
  43. package/dist/core/pack-loader.js.map +1 -1
  44. package/dist/core/parser.d.ts.map +1 -1
  45. package/dist/core/parser.js +30 -1
  46. package/dist/core/parser.js.map +1 -1
  47. package/dist/core/pattern-factory.d.ts.map +1 -1
  48. package/dist/core/pattern-factory.js +8 -1
  49. package/dist/core/pattern-factory.js.map +1 -1
  50. package/dist/core/patterns.d.ts +49 -1
  51. package/dist/core/patterns.d.ts.map +1 -1
  52. package/dist/core/patterns.js +56 -0
  53. package/dist/core/patterns.js.map +1 -1
  54. package/dist/core/session-log.d.ts.map +1 -1
  55. package/dist/core/session-log.js +20 -1
  56. package/dist/core/session-log.js.map +1 -1
  57. package/dist/core/sto.d.ts +21 -27
  58. package/dist/core/sto.d.ts.map +1 -1
  59. package/dist/core/sto.js +30 -33
  60. package/dist/core/sto.js.map +1 -1
  61. package/dist/index.d.ts +37 -32
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +57 -44
  64. package/dist/index.js.map +1 -1
  65. package/dist/integrations/openai-agents.d.ts.map +1 -1
  66. package/dist/integrations/openai-agents.js +4 -3
  67. package/dist/integrations/openai-agents.js.map +1 -1
  68. package/dist/integrations/vercel-ai.d.ts.map +1 -1
  69. package/dist/integrations/vercel-ai.js +21 -3
  70. package/dist/integrations/vercel-ai.js.map +1 -1
  71. package/package.json +11 -7
  72. package/prompts/onboard.md +9 -13
  73. package/prompts/scan.md +3 -5
  74. package/skills/SKILL.md +13 -83
  75. package/prompts/refresh.md +0 -118
@@ -9,14 +9,183 @@
9
9
  * U → false (ψ never discharged)
10
10
  * X(φ) → true (weak next)
11
11
  */
12
+ import { predKey } from "./formula.js";
13
+ /**
14
+ * Resolve a Term to its underlying value at the current state.
15
+ *
16
+ * Var / Const: counter-style semantics (numeric value; 0 for missing).
17
+ * ArgValue / CtxValue: raw value from grounding (may be any type, or
18
+ * undefined when missing).
19
+ * UnaryFn / ArgLength: derived value (undefined when inner is missing
20
+ * or when the callable throws / .length is unsupported).
21
+ */
12
22
  function resolveArith(expr, state) {
13
- if (expr.kind === "Const")
14
- return expr.value;
15
- const key = expr.key();
16
- const val = state[key];
17
- if (typeof val === "number")
18
- return val;
19
- return 0; // default for missing variables
23
+ switch (expr.kind) {
24
+ case "Const":
25
+ return expr.value;
26
+ case "Var": {
27
+ const key = expr.key();
28
+ const val = state[key];
29
+ if (typeof val === "number")
30
+ return val;
31
+ return 0; // counter-style default for missing
32
+ }
33
+ case "ArgValue":
34
+ return state[predKey("arg_value", expr.tool, expr.field)];
35
+ case "CtxValue":
36
+ return state[predKey("ctx_value", expr.key)];
37
+ case "ArgLength": {
38
+ const v = state[predKey("arg_value", expr.tool, expr.field)];
39
+ if (v == null)
40
+ return undefined;
41
+ try {
42
+ if (typeof v.length === "number") {
43
+ return v.length;
44
+ }
45
+ if (typeof v === "string")
46
+ return v.length;
47
+ return undefined;
48
+ }
49
+ catch {
50
+ return undefined;
51
+ }
52
+ }
53
+ case "UnaryFn": {
54
+ const inner = resolveArith(expr.arg, state);
55
+ if (inner === undefined || inner === null)
56
+ return undefined;
57
+ try {
58
+ return expr.fn(inner);
59
+ }
60
+ catch {
61
+ return undefined;
62
+ }
63
+ }
64
+ }
65
+ }
66
+ /**
67
+ * Structural value-equality, matching Python's `==` for the value
68
+ * shapes that flow through grounding (numbers, strings, booleans,
69
+ * arrays, plain objects).
70
+ *
71
+ * The naive `l === r` diverged from the Python evaluator (`left ==
72
+ * right`) for composite values: an `Eq(ArgValue(...), CtxValue(...))`
73
+ * over list- or object-valued args compares by *value* in Python
74
+ * (`[1] == [1]` is True) but `===` compares arrays/objects by
75
+ * *reference* in JS (`[1] === [1]` is False). With the v0.2 Term
76
+ * abstraction making value-equality reachable, that gap could pass a
77
+ * contract in Python and fail it in TS on the same trace. `valuesEqual`
78
+ * closes it with element-/key-wise deep comparison.
79
+ */
80
+ function valuesEqual(a, b) {
81
+ if (a === b)
82
+ return true;
83
+ if (a === null || b === null || a === undefined || b === undefined) {
84
+ return false;
85
+ }
86
+ if (Array.isArray(a) || Array.isArray(b)) {
87
+ if (!Array.isArray(a) || !Array.isArray(b) || a.length !== b.length) {
88
+ return false;
89
+ }
90
+ return a.every((x, i) => valuesEqual(x, b[i]));
91
+ }
92
+ if (typeof a === "object" && typeof b === "object") {
93
+ const ka = Object.keys(a);
94
+ const kb = Object.keys(b);
95
+ if (ka.length !== kb.length)
96
+ return false;
97
+ return ka.every((k) => Object.prototype.hasOwnProperty.call(b, k) &&
98
+ valuesEqual(a[k], b[k]));
99
+ }
100
+ return false;
101
+ }
102
+ // Plain decimal / float / scientific literal, byte-identical to the Python
103
+ // side (sponsio/formulas/_compare.py). Excludes inf/nan/hex/empty so
104
+ // Number() and Python float() agree exactly on every accepted string.
105
+ const ORDERED_NUMERIC_RE = /^[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$/;
106
+ /** Numeric value of a plain-numeric string, else null. */
107
+ function numericString(v) {
108
+ if (typeof v === "string") {
109
+ const s = v.trim();
110
+ if (ORDERED_NUMERIC_RE.test(s)) {
111
+ const n = Number(s);
112
+ if (Number.isFinite(n))
113
+ return n;
114
+ }
115
+ }
116
+ return null;
117
+ }
118
+ /**
119
+ * Whether two operands are order-comparable the way Python is: two numbers,
120
+ * two strings, or bool/number mixes (Python treats bool as int). Anything
121
+ * else raises TypeError in Python, so we must return False rather than let
122
+ * JavaScript silently coerce.
123
+ */
124
+ function orderComparable(l, r) {
125
+ const tl = typeof l;
126
+ const tr = typeof r;
127
+ if (tl === "number" && tr === "number")
128
+ return true;
129
+ if (tl === "string" && tr === "string")
130
+ return true;
131
+ if ((tl === "boolean" || tl === "number") && (tr === "boolean" || tr === "number")) {
132
+ return true;
133
+ }
134
+ return false;
135
+ }
136
+ /**
137
+ * Compare two resolved values with the canonical "missing" semantics.
138
+ *
139
+ * If either operand is undefined / null, the comparison is False (the
140
+ * comparison cannot decide). Same for type errors (mismatched types).
141
+ * This is the Hoare-vacuity convention. `eq` uses `valuesEqual` for
142
+ * Python `==` parity on composite values.
143
+ *
144
+ * Ordered comparisons coerce a plain-numeric string operand (e.g. a raw
145
+ * `"5000"` tool argument) to a number when the other operand is numeric, so
146
+ * a numeric guard compares numerically and fails closed — identically to the
147
+ * Python runtime. Non-coercible mismatched operands return False (mirroring
148
+ * Python's TypeError) instead of using JavaScript's implicit coercion.
149
+ * See issue #108.
150
+ */
151
+ function safeCompare(op, left, right) {
152
+ if (left === undefined || left === null)
153
+ return false;
154
+ if (right === undefined || right === null)
155
+ return false;
156
+ let l = left;
157
+ let r = right;
158
+ if (op !== "eq") {
159
+ if (typeof l === "number" && typeof r === "string") {
160
+ const n = numericString(r);
161
+ if (n !== null)
162
+ r = n;
163
+ }
164
+ else if (typeof r === "number" && typeof l === "string") {
165
+ const n = numericString(l);
166
+ if (n !== null)
167
+ l = n;
168
+ }
169
+ if (!orderComparable(l, r))
170
+ return false;
171
+ }
172
+ try {
173
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
174
+ const la = l;
175
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
176
+ const ra = r;
177
+ switch (op) {
178
+ case "le": return la <= ra;
179
+ case "lt": return la < ra;
180
+ case "ge": return la >= ra;
181
+ case "gt": return la > ra;
182
+ case "eq": return valuesEqual(la, ra);
183
+ }
184
+ }
185
+ catch {
186
+ return false;
187
+ }
188
+ return false;
20
189
  }
21
190
  export function evaluate(formula, trace, pos = 0) {
22
191
  // Past end of trace — weak semantics
@@ -63,21 +232,28 @@ export function evaluate(formula, trace, pos = 0) {
63
232
  return false;
64
233
  }
65
234
  return false; // ψ never became true
66
- // --- Arithmetic ---
235
+ // --- Arithmetic / Term comparisons ---
67
236
  case "Le":
68
- return resolveArith(formula.left, state) <= resolveArith(formula.right, state);
237
+ return safeCompare("le", resolveArith(formula.left, state), resolveArith(formula.right, state));
69
238
  case "Lt":
70
- return resolveArith(formula.left, state) < resolveArith(formula.right, state);
239
+ return safeCompare("lt", resolveArith(formula.left, state), resolveArith(formula.right, state));
71
240
  case "Ge":
72
- return resolveArith(formula.left, state) >= resolveArith(formula.right, state);
241
+ return safeCompare("ge", resolveArith(formula.left, state), resolveArith(formula.right, state));
73
242
  case "Gt":
74
- return resolveArith(formula.left, state) > resolveArith(formula.right, state);
243
+ return safeCompare("gt", resolveArith(formula.left, state), resolveArith(formula.right, state));
75
244
  case "Eq":
76
- return resolveArith(formula.left, state) === resolveArith(formula.right, state);
245
+ return safeCompare("eq", resolveArith(formula.left, state), resolveArith(formula.right, state));
77
246
  case "Var":
78
247
  return Boolean(state[formula.key()] ?? false);
79
248
  case "Const":
80
249
  return formula.value !== 0;
250
+ // Terms cannot appear at formula-level (only as comparison operands)
251
+ // but the Formula type union includes them. Treat as truthy fallback.
252
+ case "ArgValue":
253
+ case "CtxValue":
254
+ case "ArgLength":
255
+ case "UnaryFn":
256
+ return false;
81
257
  default: {
82
258
  const _exhaustive = formula;
83
259
  throw new Error(`Unknown formula kind: ${_exhaustive.kind}`);
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../src/core/evaluator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../src/core/evaluator.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Direct port of sponsio/formulas/formula.py.
5
5
  * Three families: Propositional, Temporal (LTL), Arithmetic.
6
6
  */
7
- export type Formula = Atom | Not | And | Or | Implies | G | F | X | U | Le | Lt | Ge | Gt | Eq | Var | Const;
7
+ export type Formula = Atom | Not | And | Or | Implies | G | F | X | U | Le | Lt | Ge | Gt | Eq | Var | Const | ArgValue | CtxValue | UnaryFn | ArgLength;
8
8
  export declare class Atom {
9
9
  readonly predicate: string;
10
10
  readonly args: readonly string[];
@@ -68,36 +68,95 @@ export declare class Const {
68
68
  readonly kind: "Const";
69
69
  constructor(value: number);
70
70
  }
71
- export type ArithExpr = Var | Const;
71
+ /**
72
+ * Read ``args[field]`` from the current event when it is a call to ``tool``.
73
+ *
74
+ * Returns ``undefined`` ("missing" signal) when the current event is a
75
+ * call to a different tool, or not a tool call, or args[field] absent.
76
+ * Pair with ``Implies(called(tool), ...)`` to scope the rule cleanly.
77
+ */
78
+ export declare class ArgValue {
79
+ readonly tool: string;
80
+ readonly field: string;
81
+ readonly kind: "ArgValue";
82
+ constructor(tool: string, field: string);
83
+ }
84
+ /**
85
+ * Read a fact pushed via ``guard.observeContext({ key: value })``.
86
+ *
87
+ * Returns ``undefined`` when the key has never been pushed for this trace.
88
+ */
89
+ export declare class CtxValue {
90
+ readonly key: string;
91
+ readonly kind: "CtxValue";
92
+ constructor(key: string);
93
+ }
94
+ /**
95
+ * Apply a JavaScript callable to another Term's value.
96
+ *
97
+ * Common cases:
98
+ * new UnaryFn(s => String(s).toLowerCase(),
99
+ * new ArgValue("send_email", "subject"))
100
+ *
101
+ * If the inner Term resolves to undefined, UnaryFn also returns undefined.
102
+ * If the callable throws, UnaryFn returns undefined rather than crashing.
103
+ *
104
+ * The ``name`` field is for debug repr only.
105
+ */
106
+ export declare class UnaryFn {
107
+ readonly fn: (v: unknown) => unknown;
108
+ readonly arg: Term;
109
+ readonly name: string;
110
+ readonly kind: "UnaryFn";
111
+ constructor(fn: (v: unknown) => unknown, arg: Term, name?: string);
112
+ }
113
+ /**
114
+ * Convenience: ``args[field].length`` for the current event.
115
+ *
116
+ * Equivalent to ``new UnaryFn(v => (v as { length: number }).length,
117
+ * new ArgValue(tool, field))`` but exposed as its own class for clean
118
+ * repr and faster eval. Returns ``undefined`` when missing or not a
119
+ * .length-bearing value.
120
+ */
121
+ export declare class ArgLength {
122
+ readonly tool: string;
123
+ readonly field: string;
124
+ readonly kind: "ArgLength";
125
+ constructor(tool: string, field: string);
126
+ }
127
+ /** A Term is anything that resolves to a value at evaluation time. */
128
+ export type Term = Var | Const | ArgValue | CtxValue | UnaryFn | ArgLength;
129
+ /** Backward-compatible alias. */
130
+ export type ArithExpr = Term;
72
131
  export declare class Le {
73
- readonly left: ArithExpr;
74
- readonly right: ArithExpr;
132
+ readonly left: Term;
133
+ readonly right: Term;
75
134
  readonly kind: "Le";
76
- constructor(left: ArithExpr, right: ArithExpr);
135
+ constructor(left: Term, right: Term);
77
136
  }
78
137
  export declare class Lt {
79
- readonly left: ArithExpr;
80
- readonly right: ArithExpr;
138
+ readonly left: Term;
139
+ readonly right: Term;
81
140
  readonly kind: "Lt";
82
- constructor(left: ArithExpr, right: ArithExpr);
141
+ constructor(left: Term, right: Term);
83
142
  }
84
143
  export declare class Ge {
85
- readonly left: ArithExpr;
86
- readonly right: ArithExpr;
144
+ readonly left: Term;
145
+ readonly right: Term;
87
146
  readonly kind: "Ge";
88
- constructor(left: ArithExpr, right: ArithExpr);
147
+ constructor(left: Term, right: Term);
89
148
  }
90
149
  export declare class Gt {
91
- readonly left: ArithExpr;
92
- readonly right: ArithExpr;
150
+ readonly left: Term;
151
+ readonly right: Term;
93
152
  readonly kind: "Gt";
94
- constructor(left: ArithExpr, right: ArithExpr);
153
+ constructor(left: Term, right: Term);
95
154
  }
96
155
  export declare class Eq {
97
- readonly left: ArithExpr;
98
- readonly right: ArithExpr;
156
+ readonly left: Term;
157
+ readonly right: Term;
99
158
  readonly kind: "Eq";
100
- constructor(left: ArithExpr, right: ArithExpr);
159
+ constructor(left: Term, right: Term);
101
160
  }
102
161
  export declare function predKey(predicate: string, ...args: string[]): string;
103
162
  //# sourceMappingURL=formula.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formula.d.ts","sourceRoot":"","sources":["../../src/core/formula.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formula.d.ts","sourceRoot":"","sources":["../../src/core/formula.ts"],"names":[],"mappings":"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"}
@@ -82,7 +82,21 @@ export class U {
82
82
  this.right = right;
83
83
  }
84
84
  }
85
- // --- Arithmetic ---
85
+ // --- Arithmetic / Term abstraction ---
86
+ //
87
+ // Comparison nodes (Eq, Le, Lt, Ge, Gt) accept any ``Term`` on either
88
+ // side. A Term is anything that knows how to evaluate(state) -> value;
89
+ // the evaluator dispatches on `kind`. This lets contract authors
90
+ // compose runtime-bound values (``new ArgValue("issue_refund",
91
+ // "amount")``) against constants (``new Const(50)``) or against other
92
+ // runtime values (``new CtxValue("approved_amount")``) in the same
93
+ // comparison.
94
+ //
95
+ // Returning ``undefined`` from evaluation is the canonical "missing"
96
+ // signal: comparison evaluation treats either operand being missing as
97
+ // false (the comparison cannot decide). Wrap fragile comparisons in
98
+ // ``Implies(scopePredicate, comparison)`` to suppress them where the
99
+ // relevant arg is not applicable.
86
100
  export class Var {
87
101
  name;
88
102
  kind = "Var";
@@ -105,6 +119,74 @@ export class Const {
105
119
  this.value = value;
106
120
  }
107
121
  }
122
+ /**
123
+ * Read ``args[field]`` from the current event when it is a call to ``tool``.
124
+ *
125
+ * Returns ``undefined`` ("missing" signal) when the current event is a
126
+ * call to a different tool, or not a tool call, or args[field] absent.
127
+ * Pair with ``Implies(called(tool), ...)`` to scope the rule cleanly.
128
+ */
129
+ export class ArgValue {
130
+ tool;
131
+ field;
132
+ kind = "ArgValue";
133
+ constructor(tool, field) {
134
+ this.tool = tool;
135
+ this.field = field;
136
+ }
137
+ }
138
+ /**
139
+ * Read a fact pushed via ``guard.observeContext({ key: value })``.
140
+ *
141
+ * Returns ``undefined`` when the key has never been pushed for this trace.
142
+ */
143
+ export class CtxValue {
144
+ key;
145
+ kind = "CtxValue";
146
+ constructor(key) {
147
+ this.key = key;
148
+ }
149
+ }
150
+ /**
151
+ * Apply a JavaScript callable to another Term's value.
152
+ *
153
+ * Common cases:
154
+ * new UnaryFn(s => String(s).toLowerCase(),
155
+ * new ArgValue("send_email", "subject"))
156
+ *
157
+ * If the inner Term resolves to undefined, UnaryFn also returns undefined.
158
+ * If the callable throws, UnaryFn returns undefined rather than crashing.
159
+ *
160
+ * The ``name`` field is for debug repr only.
161
+ */
162
+ export class UnaryFn {
163
+ fn;
164
+ arg;
165
+ name;
166
+ kind = "UnaryFn";
167
+ constructor(fn, arg, name = "fn") {
168
+ this.fn = fn;
169
+ this.arg = arg;
170
+ this.name = name;
171
+ }
172
+ }
173
+ /**
174
+ * Convenience: ``args[field].length`` for the current event.
175
+ *
176
+ * Equivalent to ``new UnaryFn(v => (v as { length: number }).length,
177
+ * new ArgValue(tool, field))`` but exposed as its own class for clean
178
+ * repr and faster eval. Returns ``undefined`` when missing or not a
179
+ * .length-bearing value.
180
+ */
181
+ export class ArgLength {
182
+ tool;
183
+ field;
184
+ kind = "ArgLength";
185
+ constructor(tool, field) {
186
+ this.tool = tool;
187
+ this.field = field;
188
+ }
189
+ }
108
190
  export class Le {
109
191
  left;
110
192
  right;
@@ -1 +1 @@
1
- {"version":3,"file":"formula.js","sourceRoot":"","sources":["../../src/core/formula.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formula.js","sourceRoot":"","sources":["../../src/core/formula.ts"],"names":[],"mappings":"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"}
@@ -86,5 +86,5 @@ export declare function collectContentAtoms(formulas: Formula[]): Record<string,
86
86
  * Ctx atoms (``ctx(k, v)``), accumulator snapshots, and ``time_since``
87
87
  * fire on every event regardless of type (matching Python parity).
88
88
  */
89
- export declare function groundEvent(event: ToolEvent, state: GroundingState, contentAtoms?: Record<string, Set<string>>): Record<string, boolean | number>;
89
+ export declare function groundEvent(event: ToolEvent, state: GroundingState, contentAtoms?: Record<string, Set<string>>): Record<string, unknown>;
90
90
  //# sourceMappingURL=grounding.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grounding.d.ts","sourceRoot":"","sources":["../../src/core/grounding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,gGAAgG;IAChG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,uEAAuE;IACvE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACzB;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAalD;AAmCD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,OAAO,EAAE,GAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CA0B7B;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,cAAc,EACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GACzC,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,CA4TlC"}
1
+ {"version":3,"file":"grounding.d.ts","sourceRoot":"","sources":["../../src/core/grounding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,gGAAgG;IAChG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,uEAAuE;IACvE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACzB;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAalD;AAmCD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,OAAO,EAAE,GAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CA0B7B;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,cAAc,EACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GACzC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6UzB"}
@@ -150,6 +150,17 @@ export function groundEvent(event, state, contentAtoms) {
150
150
  }
151
151
  state.lastTool = tool;
152
152
  v[predKey("consecutive_count", tool)] = state.consecutiveCounts[tool];
153
+ // arg_value(tool, field) — raw value for Term-based lookups.
154
+ // ``ArgValue(tool, field)`` reads state[predKey("arg_value", tool,
155
+ // field)] for runtime comparisons (e.g. Eq(ArgValue(tool, "amount"),
156
+ // CtxValue("approved_amount"))). Emit unconditionally for every arg
157
+ // field, every tool_call — Terms read by direct key lookup, not via
158
+ // contentAtoms extraction.
159
+ if (event.args) {
160
+ for (const [field, val] of Object.entries(event.args)) {
161
+ v[predKey("arg_value", tool, field)] = val;
162
+ }
163
+ }
153
164
  // called_with / count_with — regex on serialized args
154
165
  if (contentAtoms) {
155
166
  const cwPatterns = new Set();
@@ -331,9 +342,14 @@ export function groundEvent(event, state, contentAtoms) {
331
342
  }
332
343
  }
333
344
  }
334
- // ── ctx(k, v) — emit one atom per current_ctx entry, every event ─
345
+ // ── ctx(k, v) / ctx_value(k) — emit per current_ctx entry, every event ─
346
+ // ctx(k, v) is the boolean atom (k==v). ctx_value(k) carries the raw
347
+ // value so Term-based comparisons can read it without hard-coding the
348
+ // expected value: e.g. Eq(CtxValue("approved_amount"),
349
+ // ArgValue("issue_refund", "amount")).
335
350
  for (const [k, val] of Object.entries(state.currentCtx)) {
336
351
  v[predKey("ctx", k, val)] = true;
352
+ v[predKey("ctx_value", k)] = val;
337
353
  }
338
354
  // ── ctx_matches(key, pattern) — regex against current_ctx[key] ──
339
355
  if (contentAtoms && contentAtoms["ctx_matches"]) {
@@ -1 +1 @@
1
- {"version":3,"file":"grounding.js","sourceRoot":"","sources":["../../src/core/grounding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAmDvC,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,UAAU,EAAE,EAAE;QACd,cAAc,EAAE,EAAE;QAClB,QAAQ,EAAE,IAAI;QACd,iBAAiB,EAAE,EAAE;QACrB,WAAW,EAAE,EAAE;QACf,eAAe,EAAE,CAAC;QAClB,UAAU,EAAE,EAAE;QACd,GAAG,EAAE,CAAC;QACN,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,IAAI,GAAG,EAAE;KACtB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAS;IACzC,aAAa;IACb,YAAY;IACZ,SAAS;IACT,eAAe;IACf,oBAAoB;IACpB,kBAAkB;IAClB,aAAa;IACb,UAAU;IACV,aAAa;IACb,YAAY;CACb,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAS;IACrC,YAAY;IACZ,OAAO;IACP,mBAAmB;IACnB,aAAa;IACb,aAAa;IACb,kBAAkB;IAClB,YAAY;CACb,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAmB;IAEnB,MAAM,KAAK,GAAgC,EAAE,CAAC;IAE9C,SAAS,IAAI,CAAC,IAAa;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC5B,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;gBAC1C,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC/B,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;gBAC1C,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,KAAgB,CAAC,CAAC;QAC/D,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,IAAe,CAAC,CAAC;QAC5D,IAAI,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,KAAgB,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe;IACzC,OAAO,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CACzB,KAAgB,EAChB,KAAqB,EACrB,YAA0C;IAE1C,MAAM,CAAC,GAAqC,EAAE,CAAC;IAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,IAAI,WAAW,CAAC;IAElD,qEAAqE;IACrE,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QACjC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE7D,eAAe;QACf,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAElC,2DAA2D;QAC3D,gEAAgE;QAChE,+BAA+B;QAC/B,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC;QAEhC,cAAc;QACd,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3D,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEnD,0BAA0B;QAC1B,IAAI,IAAI,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,CAAC,QAAQ;gBAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAChE,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtB,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEtE,sDAAsD;QACtD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;YACrC,KAAK,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,CAAC;oBAAE,KAAK,MAAM,CAAC,IAAI,CAAC;wBAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC;YAED,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACtB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACzC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;wBACxB,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAClD,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC;wBACzD,IAAI,OAAO,EAAE,CAAC;4BACZ,MAAM,KAAK,GAAG,GAAG,UAAU,IAAI,OAAO,EAAE,CAAC;4BACzC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;wBACvE,CAAC;wBACD,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;4BAC3C,KAAK,CAAC,cAAc,CAAC,GAAG,UAAU,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;YACH,CAAC;YAED,yBAAyB;YACzB,MAAM,cAAc,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,cAAc,IAAI,OAAO,EAAE,CAAC;gBAC9B,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;oBACjC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBACtB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACzC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;4BACxB,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACjF,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,sCAAsC;YACtC,MAAM,WAAW,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;YAClD,IAAI,WAAW,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC9B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;oBAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBACtB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACvB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACzC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;4BACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BACnC,MAAM,OAAO,GAAG,QAAQ,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;4BAC/E,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC;wBACpE,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,6CAA6C;YAC7C,MAAM,GAAG,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;YAC/C,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACtB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;oBACtB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBACtB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACvB,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;wBAC/C,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;4BACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;4BACzC,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gCACnE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC;wBACvC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,qEAAqE;YACrE,uBAAuB;YACvB,gCAAgC;YAChC,0CAA0C;YAC1C,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;YAC/C,IAAI,UAAU,EAAE,CAAC;gBACf,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;oBAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBACtB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACvB,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;4BACxB,IAAI,UAAU,GAAkB,IAAI,CAAC;4BAErC,8BAA8B;4BAC9B,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gCACtC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gCAC9B,MAAM,CAAC,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gCAClE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oCAAE,UAAU,GAAG,CAAC,CAAC;4BAChC,CAAC;4BAED,gCAAgC;4BAChC,IAAI,UAAU,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;gCAClC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,kBAAkB,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;gCACvF,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gCAChC,IAAI,CAAC;oCAAE,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACvC,CAAC;4BAED,+BAA+B;4BAC/B,IAAI,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gCAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gCAChD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gCACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gCAChC,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oCACxB,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oCAClC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;wCAAE,UAAU,GAAG,CAAC,CAAC;gCAChC,CAAC;4BACH,CAAC;4BAED,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;gCACvB,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC;4BAC5D,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,4EAA4E;YAC5E,MAAM,GAAG,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC7C,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;gBACnB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;oBACtB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBACtB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;4BACxB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;4BACvD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC;gCAClC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4BAChE,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC;wBACtE,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;QACxC,+DAA+D;QAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;QACpC,IAAI,OAAO,IAAI,YAAY,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YACxD,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3C,MAAM,OAAO,GAAG,GAAG,CAAC;gBACpB,IAAI,CAAC,OAAO;oBAAE,SAAS;gBACvB,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC;oBACH,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9C,CAAC;gBAAC,MAAM,CAAC;oBACP,uEAAuE;gBACzE,CAAC;gBACD,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,iFAAiF;QACjF,IAAI,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YAC3F,CAAC,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QACvC,CAAC;QACD,kEAAkE;QAClE,+DAA+D;QAC/D,8BAA8B;QAC9B,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/E,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAC3D,CAAC;IACH,CAAC;SAAM,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;QAC1C,yDAAyD;QACzD,8DAA8D;QAC9D,8DAA8D;QAC9D,4CAA4C;QAC5C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClD,IAAI,CAAC,IAAI,IAAI;oBAAE,SAAS;gBACxB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACxD,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;IACnC,CAAC;IACD,mEAAmE;IACnE,IAAI,YAAY,IAAI,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;QAChD,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzC,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;oBAChB,IAAI,CAAC;wBACH,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC1C,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,GAAG,KAAK,CAAC;oBAClB,CAAC;gBACH,CAAC;gBACD,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED,qFAAqF;IACrF,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAA4C,CAAC;QACvE,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrC,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;YAC9F,CAAC;YACD,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACtC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YACjG,CAAC;YACD,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;YACzD,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;QACzE,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7D,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IACzC,CAAC;IAED,gEAAgE;IAChE,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;QAC/B,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,KAAK,CAAC,eAAe,CAAC;IAEvD,6CAA6C;IAC7C,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACxD,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAC/B,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACxE,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,6DAA6D;IAC7D,gEAAgE;IAChE,+DAA+D;IAC/D,+DAA+D;IAC/D,4DAA4D;IAC5D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC;IAE3B,iEAAiE;IACjE,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;IACrB,IAAI,YAAY,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/C,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,SAAS,GAAG,GAAG,CAAC;YACtB,IAAI,KAAa,CAAC;YAClB,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC9B,KAAK,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,2DAA2D;gBAC3D,2DAA2D;gBAC3D,gDAAgD;gBAChD,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;YACD,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"grounding.js","sourceRoot":"","sources":["../../src/core/grounding.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * NL → Formula parser (rule-based keyword matching).
3
3
  *
4
- * Simplified port of sponsio/generation/nl_to_contract.py.
4
+ * Simplified port of sponsio/generation/dsl_to_contract.py.
5
5
  * Handles common NL patterns like:
6
6
  * "tool `A` must precede `B`"
7
7
  * "tool `X` at most 3 times"