@sponsio/sdk 0.2.0-alpha.4 → 0.2.0-alpha.9

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 (88) hide show
  1. package/contracts/capability/destructive.yaml +213 -0
  2. package/contracts/capability/factual-claims.yaml +79 -0
  3. package/contracts/capability/host-config-integrity.yaml +42 -9
  4. package/contracts/capability/self-modify.yaml +32 -1
  5. package/contracts/capability/shell.yaml +19 -10
  6. package/contracts/incident/claude-code-secret-bypass.yaml +46 -14
  7. package/contracts/incident/cursor-railway-wipe.yaml +60 -4
  8. package/contracts/incident/openclaw.yaml +9 -63
  9. package/dist/cli/cli.js +32 -0
  10. package/dist/cli/cli.js.map +1 -1
  11. package/dist/cli/packs.d.ts.map +1 -1
  12. package/dist/cli/packs.js +13 -7
  13. package/dist/cli/packs.js.map +1 -1
  14. package/dist/cloud/client.d.ts +76 -0
  15. package/dist/cloud/client.d.ts.map +1 -0
  16. package/dist/cloud/client.js +198 -0
  17. package/dist/cloud/client.js.map +1 -0
  18. package/dist/cloud/evidence.d.ts +108 -0
  19. package/dist/cloud/evidence.d.ts.map +1 -0
  20. package/dist/cloud/evidence.js +184 -0
  21. package/dist/cloud/evidence.js.map +1 -0
  22. package/dist/cloud/privacy.d.ts +67 -0
  23. package/dist/cloud/privacy.d.ts.map +1 -0
  24. package/dist/cloud/privacy.js +170 -0
  25. package/dist/cloud/privacy.js.map +1 -0
  26. package/dist/cloud/view-model.d.ts +49 -0
  27. package/dist/cloud/view-model.d.ts.map +1 -0
  28. package/dist/cloud/view-model.js +172 -0
  29. package/dist/cloud/view-model.js.map +1 -0
  30. package/dist/core/config-loader.js +16 -0
  31. package/dist/core/config-loader.js.map +1 -1
  32. package/dist/core/evaluator.d.ts +2 -0
  33. package/dist/core/evaluator.d.ts.map +1 -1
  34. package/dist/core/evaluator.js +90 -4
  35. package/dist/core/evaluator.js.map +1 -1
  36. package/dist/core/formula.d.ts.map +1 -1
  37. package/dist/core/formula.js +12 -0
  38. package/dist/core/formula.js.map +1 -1
  39. package/dist/core/grounding.d.ts +43 -7
  40. package/dist/core/grounding.d.ts.map +1 -1
  41. package/dist/core/grounding.js +192 -26
  42. package/dist/core/grounding.js.map +1 -1
  43. package/dist/core/nl-parser.d.ts +1 -1
  44. package/dist/core/nl-parser.d.ts.map +1 -1
  45. package/dist/core/nl-parser.js +616 -40
  46. package/dist/core/nl-parser.js.map +1 -1
  47. package/dist/core/pattern-factory.d.ts.map +1 -1
  48. package/dist/core/pattern-factory.js +7 -1
  49. package/dist/core/pattern-factory.js.map +1 -1
  50. package/dist/core/patterns.d.ts +69 -0
  51. package/dist/core/patterns.d.ts.map +1 -1
  52. package/dist/core/patterns.js +133 -10
  53. package/dist/core/patterns.js.map +1 -1
  54. package/dist/core/tool-names.d.ts +59 -0
  55. package/dist/core/tool-names.d.ts.map +1 -0
  56. package/dist/core/tool-names.js +128 -0
  57. package/dist/core/tool-names.js.map +1 -0
  58. package/dist/index.d.ts +144 -0
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +367 -32
  61. package/dist/index.js.map +1 -1
  62. package/dist/integrations/claude-agent.d.ts +5 -0
  63. package/dist/integrations/claude-agent.d.ts.map +1 -1
  64. package/dist/integrations/claude-agent.js +42 -13
  65. package/dist/integrations/claude-agent.js.map +1 -1
  66. package/dist/integrations/google-adk.d.ts +5 -3
  67. package/dist/integrations/google-adk.d.ts.map +1 -1
  68. package/dist/integrations/google-adk.js +9 -5
  69. package/dist/integrations/google-adk.js.map +1 -1
  70. package/dist/integrations/langchain.d.ts +7 -0
  71. package/dist/integrations/langchain.d.ts.map +1 -1
  72. package/dist/integrations/langchain.js +21 -3
  73. package/dist/integrations/langchain.js.map +1 -1
  74. package/dist/integrations/openai-agents.d.ts +22 -10
  75. package/dist/integrations/openai-agents.d.ts.map +1 -1
  76. package/dist/integrations/openai-agents.js +51 -12
  77. package/dist/integrations/openai-agents.js.map +1 -1
  78. package/dist/integrations/openai.d.ts +11 -0
  79. package/dist/integrations/openai.d.ts.map +1 -1
  80. package/dist/integrations/openai.js +130 -48
  81. package/dist/integrations/openai.js.map +1 -1
  82. package/dist/integrations/vercel-ai.d.ts +20 -9
  83. package/dist/integrations/vercel-ai.d.ts.map +1 -1
  84. package/dist/integrations/vercel-ai.js +131 -50
  85. package/dist/integrations/vercel-ai.js.map +1 -1
  86. package/package.json +12 -8
  87. package/prompts/onboard.md +17 -4
  88. package/contracts/core/llm_safety.yaml +0 -138
@@ -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,35 +251,64 @@ 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];
150
298
  }
151
- state.lastTool = tool;
152
- v[predKey("consecutive_count", tool)] = state.consecutiveCounts[tool];
153
299
  // arg_value(tool, field) — raw value for Term-based lookups.
154
300
  // ``ArgValue(tool, field)`` reads state[predKey("arg_value", tool,
155
301
  // field)] for runtime comparisons (e.g. Eq(ArgValue(tool, "amount"),
156
302
  // CtxValue("approved_amount"))). Emit unconditionally for every arg
157
303
  // field, every tool_call — Terms read by direct key lookup, not via
158
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``.
159
308
  if (event.args) {
160
309
  for (const [field, val] of Object.entries(event.args)) {
161
- v[predKey("arg_value", tool, field)] = val;
310
+ for (const alias of aliases)
311
+ v[predKey("arg_value", alias, field)] = val;
162
312
  }
163
313
  }
164
314
  // called_with / count_with — regex on serialized args
@@ -175,7 +325,7 @@ export function groundEvent(event, state, contentAtoms) {
175
325
  if (parts.length >= 2) {
176
326
  const targetTool = parts[0];
177
327
  const pattern = parts.slice(1).join("|");
178
- if (targetTool === tool) {
328
+ if (toolMatches(targetTool, aliases)) {
179
329
  const matched = new RegExp(pattern).test(argsStr);
180
330
  v[predKey("called_with", targetTool, pattern)] = matched;
181
331
  if (matched) {
@@ -195,7 +345,7 @@ export function groundEvent(event, state, contentAtoms) {
195
345
  if (parts.length >= 2) {
196
346
  const targetTool = parts[0];
197
347
  const pattern = parts.slice(1).join("|");
198
- if (targetTool === tool) {
348
+ if (toolMatches(targetTool, aliases)) {
199
349
  v[predKey("arg_has", targetTool, pattern)] = new RegExp(pattern).test(argsStr);
200
350
  }
201
351
  }
@@ -210,7 +360,7 @@ export function groundEvent(event, state, contentAtoms) {
210
360
  const targetTool = parts[0];
211
361
  const field = parts[1];
212
362
  const pattern = parts.slice(2).join("|");
213
- if (targetTool === tool) {
363
+ if (toolMatches(targetTool, aliases)) {
214
364
  const fieldVal = event.args[field];
215
365
  const matched = fieldVal != null && new RegExp(pattern).test(String(fieldVal));
216
366
  v[predKey("arg_field_has", targetTool, field, pattern)] = matched;
@@ -227,7 +377,7 @@ export function groundEvent(event, state, contentAtoms) {
227
377
  const targetTool = parts[0];
228
378
  const field = parts[1];
229
379
  const maxChars = parseInt(parts[2], 10) || 500;
230
- if (targetTool === tool) {
380
+ if (toolMatches(targetTool, aliases)) {
231
381
  const fieldVal = event.args[field] ?? "";
232
382
  v[predKey("arg_length_exceeds", targetTool, field, String(maxChars))] =
233
383
  String(fieldVal).length > maxChars;
@@ -246,13 +396,13 @@ export function groundEvent(event, state, contentAtoms) {
246
396
  if (parts.length >= 2) {
247
397
  const targetTool = parts[0];
248
398
  const field = parts[1];
249
- if (targetTool === tool) {
399
+ if (toolMatches(targetTool, aliases)) {
250
400
  let numericVal = null;
251
- // Strategy 1: direct dict key
252
- if (event.args && field in event.args) {
253
- const val = event.args[field];
254
- const n = typeof val === "number" ? val : parseFloat(String(val));
255
- 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)
256
406
  numericVal = n;
257
407
  }
258
408
  // Strategy 2: CLI --field VALUE
@@ -288,10 +438,10 @@ export function groundEvent(event, state, contentAtoms) {
288
438
  if (parts.length >= 2) {
289
439
  const targetTool = parts[0];
290
440
  const prefixes = parts.slice(1);
291
- if (targetTool === tool) {
441
+ if (toolMatches(targetTool, aliases)) {
292
442
  const paths = argsStr.match(/(\/[^\s;|&>"']+)/g) ?? [];
293
443
  const allWithin = paths.length === 0 ||
294
- paths.every((p) => prefixes.some((pre) => p.startsWith(pre)));
444
+ paths.every((p) => prefixes.some((pre) => pathWithin(p, pre)));
295
445
  v[predKey("arg_paths_within", targetTool, ...prefixes)] = allWithin;
296
446
  }
297
447
  }
@@ -342,6 +492,22 @@ export function groundEvent(event, state, contentAtoms) {
342
492
  }
343
493
  }
344
494
  }
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
+ }
345
511
  // ── ctx(k, v) / ctx_value(k) — emit per current_ctx entry, every event ─
346
512
  // ctx(k, v) is the boolean atom (k==v). ctx_value(k) carries the raw
347
513
  // value so Term-based comparisons can read it without hard-coding the
@@ -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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"}
@@ -8,5 +8,5 @@
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"}