@sponsio/sdk 0.1.0 → 0.2.0-alpha.10

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 (123) 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/capability/destructive.yaml +213 -0
  7. package/contracts/capability/factual-claims.yaml +79 -0
  8. package/contracts/capability/host-config-integrity.yaml +42 -9
  9. package/contracts/capability/self-modify.yaml +58 -12
  10. package/contracts/capability/shell.yaml +19 -10
  11. package/contracts/incident/claude-code-secret-bypass.yaml +48 -16
  12. package/contracts/incident/cursor-railway-wipe.yaml +60 -4
  13. package/contracts/incident/openclaw.yaml +9 -62
  14. package/contracts/premium/.gitkeep +5 -6
  15. package/dist/cli/cli.js +32 -0
  16. package/dist/cli/cli.js.map +1 -1
  17. package/dist/cli/packs.d.ts.map +1 -1
  18. package/dist/cli/packs.js +14 -8
  19. package/dist/cli/packs.js.map +1 -1
  20. package/dist/cli/patterns.d.ts +5 -4
  21. package/dist/cli/patterns.d.ts.map +1 -1
  22. package/dist/cli/patterns.js +11 -10
  23. package/dist/cli/patterns.js.map +1 -1
  24. package/dist/cli/prompt.js +5 -5
  25. package/dist/cli/prompt.js.map +1 -1
  26. package/dist/cli/scan.js +2 -2
  27. package/dist/cli/skill.d.ts +1 -1
  28. package/dist/cli/skill.js +1 -1
  29. package/dist/cli/validate.js +5 -5
  30. package/dist/cli/validate.js.map +1 -1
  31. package/dist/cloud/client.d.ts +76 -0
  32. package/dist/cloud/client.d.ts.map +1 -0
  33. package/dist/cloud/client.js +204 -0
  34. package/dist/cloud/client.js.map +1 -0
  35. package/dist/cloud/evidence.d.ts +108 -0
  36. package/dist/cloud/evidence.d.ts.map +1 -0
  37. package/dist/cloud/evidence.js +184 -0
  38. package/dist/cloud/evidence.js.map +1 -0
  39. package/dist/cloud/privacy.d.ts +67 -0
  40. package/dist/cloud/privacy.d.ts.map +1 -0
  41. package/dist/cloud/privacy.js +170 -0
  42. package/dist/cloud/privacy.js.map +1 -0
  43. package/dist/cloud/view-model.d.ts +49 -0
  44. package/dist/cloud/view-model.d.ts.map +1 -0
  45. package/dist/cloud/view-model.js +172 -0
  46. package/dist/cloud/view-model.js.map +1 -0
  47. package/dist/core/config-loader.d.ts.map +1 -1
  48. package/dist/core/config-loader.js +81 -9
  49. package/dist/core/config-loader.js.map +1 -1
  50. package/dist/core/evaluator.d.ts +11 -1
  51. package/dist/core/evaluator.d.ts.map +1 -1
  52. package/dist/core/evaluator.js +275 -13
  53. package/dist/core/evaluator.js.map +1 -1
  54. package/dist/core/formula.d.ts +76 -17
  55. package/dist/core/formula.d.ts.map +1 -1
  56. package/dist/core/formula.js +95 -1
  57. package/dist/core/formula.js.map +1 -1
  58. package/dist/core/grounding.d.ts +44 -8
  59. package/dist/core/grounding.d.ts.map +1 -1
  60. package/dist/core/grounding.js +208 -26
  61. package/dist/core/grounding.js.map +1 -1
  62. package/dist/core/nl-parser.d.ts +2 -2
  63. package/dist/core/nl-parser.d.ts.map +1 -1
  64. package/dist/core/nl-parser.js +617 -41
  65. package/dist/core/nl-parser.js.map +1 -1
  66. package/dist/core/pack-loader.d.ts.map +1 -1
  67. package/dist/core/pack-loader.js +14 -2
  68. package/dist/core/pack-loader.js.map +1 -1
  69. package/dist/core/parser.d.ts.map +1 -1
  70. package/dist/core/parser.js +30 -1
  71. package/dist/core/parser.js.map +1 -1
  72. package/dist/core/pattern-factory.d.ts.map +1 -1
  73. package/dist/core/pattern-factory.js +14 -1
  74. package/dist/core/pattern-factory.js.map +1 -1
  75. package/dist/core/patterns.d.ts +118 -1
  76. package/dist/core/patterns.d.ts.map +1 -1
  77. package/dist/core/patterns.js +189 -10
  78. package/dist/core/patterns.js.map +1 -1
  79. package/dist/core/session-log.d.ts.map +1 -1
  80. package/dist/core/session-log.js +20 -1
  81. package/dist/core/session-log.js.map +1 -1
  82. package/dist/core/sto.d.ts +21 -27
  83. package/dist/core/sto.d.ts.map +1 -1
  84. package/dist/core/sto.js +30 -33
  85. package/dist/core/sto.js.map +1 -1
  86. package/dist/core/tool-names.d.ts +59 -0
  87. package/dist/core/tool-names.d.ts.map +1 -0
  88. package/dist/core/tool-names.js +128 -0
  89. package/dist/core/tool-names.js.map +1 -0
  90. package/dist/index.d.ts +181 -32
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +415 -67
  93. package/dist/index.js.map +1 -1
  94. package/dist/integrations/claude-agent.d.ts +5 -0
  95. package/dist/integrations/claude-agent.d.ts.map +1 -1
  96. package/dist/integrations/claude-agent.js +42 -13
  97. package/dist/integrations/claude-agent.js.map +1 -1
  98. package/dist/integrations/google-adk.d.ts +5 -3
  99. package/dist/integrations/google-adk.d.ts.map +1 -1
  100. package/dist/integrations/google-adk.js +9 -5
  101. package/dist/integrations/google-adk.js.map +1 -1
  102. package/dist/integrations/langchain.d.ts +7 -0
  103. package/dist/integrations/langchain.d.ts.map +1 -1
  104. package/dist/integrations/langchain.js +21 -3
  105. package/dist/integrations/langchain.js.map +1 -1
  106. package/dist/integrations/openai-agents.d.ts +22 -10
  107. package/dist/integrations/openai-agents.d.ts.map +1 -1
  108. package/dist/integrations/openai-agents.js +55 -15
  109. package/dist/integrations/openai-agents.js.map +1 -1
  110. package/dist/integrations/openai.d.ts +11 -0
  111. package/dist/integrations/openai.d.ts.map +1 -1
  112. package/dist/integrations/openai.js +130 -48
  113. package/dist/integrations/openai.js.map +1 -1
  114. package/dist/integrations/vercel-ai.d.ts +20 -9
  115. package/dist/integrations/vercel-ai.d.ts.map +1 -1
  116. package/dist/integrations/vercel-ai.js +131 -32
  117. package/dist/integrations/vercel-ai.js.map +1 -1
  118. package/package.json +17 -9
  119. package/prompts/onboard.md +26 -17
  120. package/prompts/scan.md +3 -5
  121. package/skills/SKILL.md +13 -83
  122. package/contracts/core/llm_safety.yaml +0 -140
  123. package/prompts/refresh.md +0 -118
@@ -23,11 +23,14 @@
23
23
  * time_since(predicate_key) — event-clock delta since predicate last True
24
24
  */
25
25
  import { predKey } from "./formula.js";
26
+ import { numericString } from "./evaluator.js";
27
+ import { canonicalTool, toolAliases } from "./tool-names.js";
26
28
  export function newGroundingState() {
27
29
  return {
28
30
  callCounts: {},
29
31
  callWithCounts: {},
30
32
  lastTool: null,
33
+ lastToolAliases: [],
31
34
  consecutiveCounts: {},
32
35
  tokenCounts: {},
33
36
  delegationDepth: 0,
@@ -117,6 +120,124 @@ function escapeRegexLiteral(literal) {
117
120
  * Ctx atoms (``ctx(k, v)``), accumulator snapshots, and ``time_since``
118
121
  * fire on every event regardless of type (matching Python parity).
119
122
  */
123
+ /**
124
+ * Is `path` inside `prefix`, as directories rather than as text?
125
+ *
126
+ * A plain `startsWith` answered two different questions wrong. It let
127
+ * `/safe/../etc/passwd` through, because the string does begin with
128
+ * `/safe` — the oldest escape there is, against a rule whose whole
129
+ * purpose is confinement. And it counted `/safeguard/evil.txt` as inside
130
+ * `/safe`, because a prefix of the text is not a prefix of the path.
131
+ *
132
+ * Parity with Python's `_path_within` in `sponsio/tracer/grounding.py`.
133
+ */
134
+ function normalizePosix(input) {
135
+ const text = input.replace(/\\/g, "/");
136
+ const absolute = text.startsWith("/");
137
+ const out = [];
138
+ for (const segment of text.split("/")) {
139
+ if (segment === "" || segment === ".")
140
+ continue;
141
+ if (segment === "..") {
142
+ if (out.length && out[out.length - 1] !== "..")
143
+ out.pop();
144
+ else if (!absolute)
145
+ out.push("..");
146
+ continue;
147
+ }
148
+ out.push(segment);
149
+ }
150
+ const joined = out.join("/");
151
+ if (absolute)
152
+ return "/" + joined;
153
+ return joined || ".";
154
+ }
155
+ export function pathWithin(path, prefix) {
156
+ const normalized = normalizePosix(path);
157
+ const root = normalizePosix(prefix);
158
+ if (root === "/")
159
+ return normalized.startsWith("/");
160
+ return normalized === root || normalized.startsWith(root + "/");
161
+ }
162
+ /**
163
+ * Fail at construction on a contract pattern that is not a valid regular
164
+ * expression. Mirrors Python, where a malformed contract raises when the
165
+ * guard is built. Without this an ``llm_said`` / ``ctx_matches`` pattern
166
+ * that never compiles silently never matches (fail-open), and an
167
+ * ``arg_*`` pattern throws on the first tool call instead of at startup.
168
+ *
169
+ * Patterns are stored as ``args.join("|")``; each predicate knows which
170
+ * tail of that string is the regex, exactly as ``groundEvent`` reads it.
171
+ */
172
+ export function validateContentPatterns(atoms) {
173
+ const regexTail = {
174
+ called_with: 1, // (tool, pattern)
175
+ count_with: 1, // (tool, pattern)
176
+ arg_has: 1, // (tool, pattern)
177
+ arg_field_has: 2, // (tool, field, pattern)
178
+ llm_said: 0, // (pattern)
179
+ ctx_matches: 1, // (key, pattern)
180
+ };
181
+ for (const [pred, skip] of Object.entries(regexTail)) {
182
+ const set = atoms[pred];
183
+ if (!set)
184
+ continue;
185
+ for (const raw of set) {
186
+ const parts = raw.split("|");
187
+ if (parts.length <= skip)
188
+ continue;
189
+ const pattern = parts.slice(skip).join("|");
190
+ try {
191
+ new RegExp(pattern);
192
+ }
193
+ catch (err) {
194
+ const detail = err instanceof Error ? err.message : String(err);
195
+ throw new Error(`sponsio: contract pattern for ${pred} is not a valid regular ` +
196
+ `expression: ${JSON.stringify(pattern)} (${detail})`);
197
+ }
198
+ }
199
+ }
200
+ }
201
+ /**
202
+ * Read a tool argument as a number, the way a numeric cap needs it.
203
+ *
204
+ * ``"$5,000"``, ``"5,000"`` and ``"5000 USD"`` are the shapes a model
205
+ * writes for an amount. ``parseFloat`` read ``"5,000"`` as ``5`` and
206
+ * ``"$5,000"`` as nothing at all, and the evaluator reads a missing
207
+ * ``arg_numeric`` as ``0``, so ``argValueRange`` waved them through a cap
208
+ * that stopped ``5000``. The normalisation is the one ordered comparisons
209
+ * already use (``numericString`` in core/evaluator.ts), so both paths
210
+ * agree. Parity with Python ``numeric_arg`` in sponsio/tracer/grounding.py:
211
+ * a boolean reads as 0/1, a number as itself, anything else as undefined.
212
+ */
213
+ export function numericArg(value) {
214
+ if (typeof value === "boolean")
215
+ return value ? 1 : 0;
216
+ if (typeof value === "number")
217
+ return value;
218
+ if (typeof value === "string") {
219
+ const n = numericString(value);
220
+ return n === null ? undefined : n;
221
+ }
222
+ return undefined;
223
+ }
224
+ /**
225
+ * Does a contract's target tool name the tool this event called?
226
+ *
227
+ * The target is canonicalised and looked up among every spelling the
228
+ * event answers to (see core/tool-names.ts), so a rule on ``issue_refund``
229
+ * binds ``Issue_Refund``, ``"issue_refund "`` and
230
+ * ``mcp__finance__issue_refund``. Parity with Python ``_tool_matches``
231
+ * for plain names; the ``tool:argpattern`` form is split by the pattern
232
+ * factories before it reaches grounding in this runtime.
233
+ */
234
+ export function toolMatches(targetTool, aliases) {
235
+ const target = canonicalTool(targetTool);
236
+ for (const a of aliases)
237
+ if (a === target)
238
+ return true;
239
+ return false;
240
+ }
120
241
  export function groundEvent(event, state, contentAtoms) {
121
242
  const v = {};
122
243
  const eventType = event.event_type ?? "tool_call";
@@ -130,26 +251,66 @@ export function groundEvent(event, state, contentAtoms) {
130
251
  if (eventType === "tool_call") {
131
252
  const tool = event.tool;
132
253
  const argsStr = event.args ? JSON.stringify(event.args) : "";
133
- // called(tool)
134
- v[predKey("called", tool)] = true;
254
+ // called(tool) — grounded under every spelling a contract could
255
+ // reasonably have named it by: exact, whitespace-stripped, case-folded,
256
+ // and the bare name behind an ``mcp__server__`` prefix. A rule written
257
+ // against ``issue_refund`` was otherwise inert against
258
+ // ``mcp__finance__issue_refund``, and with ``mustPrecede`` compiling to
259
+ // ``Or(order-holds, never-called)`` that read as "satisfied".
260
+ // Canonical spellings only: ``predKey`` collapses the case variants of
261
+ // a tool-keyed predicate, so a per-raw-spelling counter would have two
262
+ // entries landing on one key, the snapshot loop writing whichever came
263
+ // last.
264
+ const aliases = [...new Set(toolAliases(tool).map(canonicalTool))];
265
+ for (const alias of aliases)
266
+ v[predKey("called", alias)] = true;
135
267
  // called_any — fires whenever any tool is invoked. Used by
136
268
  // ``tool_allowlist`` to encode "whenever any tool runs, it must
137
269
  // be one of the allowed ones".
138
270
  v[predKey("called_any")] = true;
139
- // count(tool)
140
- state.callCounts[tool] = (state.callCounts[tool] || 0) + 1;
141
- v[predKey("count", tool)] = state.callCounts[tool];
142
- // consecutive_count(tool)
143
- if (tool === state.lastTool) {
144
- state.consecutiveCounts[tool] = (state.consecutiveCounts[tool] || 1) + 1;
271
+ // count(tool) — one counter per alias, so ``rateLimit("issue_refund")``
272
+ // counts the MCP-prefixed and differently-cased calls too.
273
+ for (const alias of aliases) {
274
+ state.callCounts[alias] = (state.callCounts[alias] || 0) + 1;
275
+ v[predKey("count", alias)] = state.callCounts[alias];
276
+ }
277
+ // consecutive_count(tool) — keyed per alias like ``count``; "same tool
278
+ // again" is decided on the canonical form.
279
+ // ``search`` then ``mcp__web__search`` is the same tool again: the run
280
+ // continues when the alias sets overlap, not only on equal canonicals.
281
+ const canonical = canonicalTool(tool);
282
+ const lastAliases = new Set(state.lastToolAliases);
283
+ if (canonical === state.lastTool || aliases.some((a) => lastAliases.has(a))) {
284
+ for (const alias of aliases) {
285
+ state.consecutiveCounts[alias] = (state.consecutiveCounts[alias] || 1) + 1;
286
+ }
145
287
  }
146
288
  else {
147
- if (state.lastTool)
148
- state.consecutiveCounts[state.lastTool] = 0;
149
- state.consecutiveCounts[tool] = 1;
289
+ for (const stale of state.lastToolAliases)
290
+ state.consecutiveCounts[stale] = 0;
291
+ for (const alias of aliases)
292
+ state.consecutiveCounts[alias] = 1;
293
+ }
294
+ state.lastTool = canonical;
295
+ state.lastToolAliases = aliases;
296
+ for (const alias of aliases) {
297
+ v[predKey("consecutive_count", alias)] = state.consecutiveCounts[alias];
298
+ }
299
+ // arg_value(tool, field) — raw value for Term-based lookups.
300
+ // ``ArgValue(tool, field)`` reads state[predKey("arg_value", tool,
301
+ // field)] for runtime comparisons (e.g. Eq(ArgValue(tool, "amount"),
302
+ // CtxValue("approved_amount"))). Emit unconditionally for every arg
303
+ // field, every tool_call — Terms read by direct key lookup, not via
304
+ // contentAtoms extraction.
305
+ // Written under every alias (``predKey`` collapses the case variants),
306
+ // so ``ArgValue("issue_refund", "amount")`` reads a call that arrived as
307
+ // ``mcp__finance__issue_refund``.
308
+ if (event.args) {
309
+ for (const [field, val] of Object.entries(event.args)) {
310
+ for (const alias of aliases)
311
+ v[predKey("arg_value", alias, field)] = val;
312
+ }
150
313
  }
151
- state.lastTool = tool;
152
- v[predKey("consecutive_count", tool)] = state.consecutiveCounts[tool];
153
314
  // called_with / count_with — regex on serialized args
154
315
  if (contentAtoms) {
155
316
  const cwPatterns = new Set();
@@ -164,7 +325,7 @@ export function groundEvent(event, state, contentAtoms) {
164
325
  if (parts.length >= 2) {
165
326
  const targetTool = parts[0];
166
327
  const pattern = parts.slice(1).join("|");
167
- if (targetTool === tool) {
328
+ if (toolMatches(targetTool, aliases)) {
168
329
  const matched = new RegExp(pattern).test(argsStr);
169
330
  v[predKey("called_with", targetTool, pattern)] = matched;
170
331
  if (matched) {
@@ -184,7 +345,7 @@ export function groundEvent(event, state, contentAtoms) {
184
345
  if (parts.length >= 2) {
185
346
  const targetTool = parts[0];
186
347
  const pattern = parts.slice(1).join("|");
187
- if (targetTool === tool) {
348
+ if (toolMatches(targetTool, aliases)) {
188
349
  v[predKey("arg_has", targetTool, pattern)] = new RegExp(pattern).test(argsStr);
189
350
  }
190
351
  }
@@ -199,7 +360,7 @@ export function groundEvent(event, state, contentAtoms) {
199
360
  const targetTool = parts[0];
200
361
  const field = parts[1];
201
362
  const pattern = parts.slice(2).join("|");
202
- if (targetTool === tool) {
363
+ if (toolMatches(targetTool, aliases)) {
203
364
  const fieldVal = event.args[field];
204
365
  const matched = fieldVal != null && new RegExp(pattern).test(String(fieldVal));
205
366
  v[predKey("arg_field_has", targetTool, field, pattern)] = matched;
@@ -216,7 +377,7 @@ export function groundEvent(event, state, contentAtoms) {
216
377
  const targetTool = parts[0];
217
378
  const field = parts[1];
218
379
  const maxChars = parseInt(parts[2], 10) || 500;
219
- if (targetTool === tool) {
380
+ if (toolMatches(targetTool, aliases)) {
220
381
  const fieldVal = event.args[field] ?? "";
221
382
  v[predKey("arg_length_exceeds", targetTool, field, String(maxChars))] =
222
383
  String(fieldVal).length > maxChars;
@@ -235,13 +396,13 @@ export function groundEvent(event, state, contentAtoms) {
235
396
  if (parts.length >= 2) {
236
397
  const targetTool = parts[0];
237
398
  const field = parts[1];
238
- if (targetTool === tool) {
399
+ if (toolMatches(targetTool, aliases)) {
239
400
  let numericVal = null;
240
- // Strategy 1: direct dict key
241
- if (event.args && field in event.args) {
242
- const val = event.args[field];
243
- const n = typeof val === "number" ? val : parseFloat(String(val));
244
- if (!isNaN(n))
401
+ // Strategy 1: direct dict key, read with the same
402
+ // normaliser ordered comparisons use ("$5,000" -> 5000).
403
+ if (event.args && Object.prototype.hasOwnProperty.call(event.args, field)) {
404
+ const n = numericArg(event.args[field]);
405
+ if (n !== undefined)
245
406
  numericVal = n;
246
407
  }
247
408
  // Strategy 2: CLI --field VALUE
@@ -277,10 +438,10 @@ export function groundEvent(event, state, contentAtoms) {
277
438
  if (parts.length >= 2) {
278
439
  const targetTool = parts[0];
279
440
  const prefixes = parts.slice(1);
280
- if (targetTool === tool) {
441
+ if (toolMatches(targetTool, aliases)) {
281
442
  const paths = argsStr.match(/(\/[^\s;|&>"']+)/g) ?? [];
282
443
  const allWithin = paths.length === 0 ||
283
- paths.every((p) => prefixes.some((pre) => p.startsWith(pre)));
444
+ paths.every((p) => prefixes.some((pre) => pathWithin(p, pre)));
284
445
  v[predKey("arg_paths_within", targetTool, ...prefixes)] = allWithin;
285
446
  }
286
447
  }
@@ -331,9 +492,30 @@ export function groundEvent(event, state, contentAtoms) {
331
492
  }
332
493
  }
333
494
  }
334
- // ── ctx(k, v) — emit one atom per current_ctx entry, every event ─
495
+ else if (eventType === "evidence" && event.key) {
496
+ // A cloud claim-verification verdict fed back into the trace.
497
+ // `key` is the predicate name; `args` carries the server's verdict
498
+ // and policy action verbatim. No verdict computation happens here —
499
+ // the atoms only restate what the service answered, so contracts
500
+ // (`claim_requires_evidence`, `underdetermined_must_clarify`) can
501
+ // reference it. Verdict upper-cased, action lower-cased, matching
502
+ // the server's own vocabulary and Python's grounding.
503
+ v[predKey("claim_emitted", event.key)] = true;
504
+ const verdict = String(event.args?.verdict ?? "").toUpperCase();
505
+ if (verdict)
506
+ v[predKey("evidence_verdict", event.key, verdict)] = true;
507
+ const action = String(event.args?.action ?? "").toLowerCase();
508
+ if (action)
509
+ v[predKey("evidence_action", event.key, action)] = true;
510
+ }
511
+ // ── ctx(k, v) / ctx_value(k) — emit per current_ctx entry, every event ─
512
+ // ctx(k, v) is the boolean atom (k==v). ctx_value(k) carries the raw
513
+ // value so Term-based comparisons can read it without hard-coding the
514
+ // expected value: e.g. Eq(CtxValue("approved_amount"),
515
+ // ArgValue("issue_refund", "amount")).
335
516
  for (const [k, val] of Object.entries(state.currentCtx)) {
336
517
  v[predKey("ctx", k, val)] = true;
518
+ v[predKey("ctx_value", k)] = val;
337
519
  }
338
520
  // ── ctx_matches(key, pattern) — regex against current_ctx[key] ──
339
521
  if (contentAtoms && contentAtoms["ctx_matches"]) {
@@ -1 +1 @@
1
- {"version":3,"file":"grounding.js","sourceRoot":"","sources":["../../src/core/grounding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grounding.js","sourceRoot":"","sources":["../../src/core/grounding.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
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"
8
8
  * "tools `A` and `B` are mutually exclusive"
9
9
  */
10
10
  import type { DetFormula } from "./patterns.js";
11
- export declare function parseNl(text: string): DetFormula | null;
11
+ export declare function parseNl(input: string): DetFormula | null;
12
12
  //# sourceMappingURL=nl-parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nl-parser.d.ts","sourceRoot":"","sources":["../../src/core/nl-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAsLhD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAoDvD"}
1
+ {"version":3,"file":"nl-parser.d.ts","sourceRoot":"","sources":["../../src/core/nl-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAsoBhD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAkMxD"}