@sponsio/sdk 0.2.0-alpha.4 → 0.2.0-alpha.8
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/contracts/capability/destructive.yaml +213 -0
- package/contracts/capability/factual-claims.yaml +79 -0
- package/contracts/capability/host-config-integrity.yaml +42 -9
- package/contracts/capability/self-modify.yaml +32 -1
- package/contracts/capability/shell.yaml +19 -10
- package/contracts/incident/claude-code-secret-bypass.yaml +46 -14
- package/contracts/incident/cursor-railway-wipe.yaml +60 -4
- package/contracts/incident/openclaw.yaml +9 -63
- package/dist/cli/cli.js +32 -0
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/packs.d.ts.map +1 -1
- package/dist/cli/packs.js +13 -7
- package/dist/cli/packs.js.map +1 -1
- package/dist/cloud/client.d.ts +76 -0
- package/dist/cloud/client.d.ts.map +1 -0
- package/dist/cloud/client.js +198 -0
- package/dist/cloud/client.js.map +1 -0
- package/dist/cloud/evidence.d.ts +108 -0
- package/dist/cloud/evidence.d.ts.map +1 -0
- package/dist/cloud/evidence.js +184 -0
- package/dist/cloud/evidence.js.map +1 -0
- package/dist/cloud/privacy.d.ts +67 -0
- package/dist/cloud/privacy.d.ts.map +1 -0
- package/dist/cloud/privacy.js +170 -0
- package/dist/cloud/privacy.js.map +1 -0
- package/dist/cloud/view-model.d.ts +49 -0
- package/dist/cloud/view-model.d.ts.map +1 -0
- package/dist/cloud/view-model.js +172 -0
- package/dist/cloud/view-model.js.map +1 -0
- package/dist/core/config-loader.js +16 -0
- package/dist/core/config-loader.js.map +1 -1
- package/dist/core/evaluator.d.ts +2 -0
- package/dist/core/evaluator.d.ts.map +1 -1
- package/dist/core/evaluator.js +90 -4
- package/dist/core/evaluator.js.map +1 -1
- package/dist/core/grounding.d.ts +43 -7
- package/dist/core/grounding.d.ts.map +1 -1
- package/dist/core/grounding.js +180 -25
- package/dist/core/grounding.js.map +1 -1
- package/dist/core/nl-parser.d.ts +1 -1
- package/dist/core/nl-parser.d.ts.map +1 -1
- package/dist/core/nl-parser.js +616 -40
- package/dist/core/nl-parser.js.map +1 -1
- package/dist/core/pattern-factory.d.ts.map +1 -1
- package/dist/core/pattern-factory.js +7 -1
- package/dist/core/pattern-factory.js.map +1 -1
- package/dist/core/patterns.d.ts +69 -0
- package/dist/core/patterns.d.ts.map +1 -1
- package/dist/core/patterns.js +133 -10
- package/dist/core/patterns.js.map +1 -1
- package/dist/core/tool-names.d.ts +59 -0
- package/dist/core/tool-names.d.ts.map +1 -0
- package/dist/core/tool-names.js +128 -0
- package/dist/core/tool-names.js.map +1 -0
- package/dist/index.d.ts +144 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +367 -32
- package/dist/index.js.map +1 -1
- package/dist/integrations/claude-agent.d.ts +5 -0
- package/dist/integrations/claude-agent.d.ts.map +1 -1
- package/dist/integrations/claude-agent.js +42 -13
- package/dist/integrations/claude-agent.js.map +1 -1
- package/dist/integrations/google-adk.d.ts +5 -3
- package/dist/integrations/google-adk.d.ts.map +1 -1
- package/dist/integrations/google-adk.js +9 -5
- package/dist/integrations/google-adk.js.map +1 -1
- package/dist/integrations/langchain.d.ts +7 -0
- package/dist/integrations/langchain.d.ts.map +1 -1
- package/dist/integrations/langchain.js +21 -3
- package/dist/integrations/langchain.js.map +1 -1
- package/dist/integrations/openai-agents.d.ts +22 -10
- package/dist/integrations/openai-agents.d.ts.map +1 -1
- package/dist/integrations/openai-agents.js +51 -12
- package/dist/integrations/openai-agents.js.map +1 -1
- package/dist/integrations/openai.d.ts +11 -0
- package/dist/integrations/openai.d.ts.map +1 -1
- package/dist/integrations/openai.js +130 -48
- package/dist/integrations/openai.js.map +1 -1
- package/dist/integrations/vercel-ai.d.ts +20 -9
- package/dist/integrations/vercel-ai.d.ts.map +1 -1
- package/dist/integrations/vercel-ai.js +131 -50
- package/dist/integrations/vercel-ai.js.map +1 -1
- package/package.json +12 -8
- package/prompts/onboard.md +17 -4
- package/contracts/core/llm_safety.yaml +0 -138
package/dist/core/patterns.js
CHANGED
|
@@ -18,24 +18,31 @@
|
|
|
18
18
|
* auditAfter, approvalFreshness, sanitizedBeforeSink, duplicateCallLimit
|
|
19
19
|
*/
|
|
20
20
|
import { Atom, Not, And, Or, Implies, G, F, X, U, Le, Ge, Var, Const, } from "./formula.js";
|
|
21
|
+
import { canonicalTool } from "./tool-names.js";
|
|
21
22
|
// --- Helpers ---
|
|
23
|
+
//
|
|
24
|
+
// Tool names are canonicalised (see core/tool-names.ts) so a rule keys on
|
|
25
|
+
// the same spelling grounding emits for every variant of the call:
|
|
26
|
+
// ``Issue_Refund``, ``"issue_refund "`` and ``mcp__finance__issue_refund``
|
|
27
|
+
// all bind a rule written on ``issue_refund``. Parity with Python's
|
|
28
|
+
// ``_called`` / ``_count_var`` / ``_physical_tool``.
|
|
22
29
|
function called(tool) {
|
|
23
30
|
// Supports "tool:pattern" format — produces called_with atom.
|
|
24
31
|
if (tool.includes(":")) {
|
|
25
32
|
const [physical, pattern] = tool.split(":", 2);
|
|
26
|
-
return new Atom("called_with", [physical, pattern]);
|
|
33
|
+
return new Atom("called_with", [canonicalTool(physical), pattern]);
|
|
27
34
|
}
|
|
28
|
-
return new Atom("called", [tool]);
|
|
35
|
+
return new Atom("called", [canonicalTool(tool)]);
|
|
29
36
|
}
|
|
30
37
|
function countVar(tool) {
|
|
31
38
|
if (tool.includes(":")) {
|
|
32
39
|
const [physical, pattern] = tool.split(":", 2);
|
|
33
|
-
return new Var("count_with", physical, pattern);
|
|
40
|
+
return new Var("count_with", canonicalTool(physical), pattern);
|
|
34
41
|
}
|
|
35
|
-
return new Var("count", tool);
|
|
42
|
+
return new Var("count", canonicalTool(tool));
|
|
36
43
|
}
|
|
37
44
|
function physicalTool(tool) {
|
|
38
|
-
return tool.includes(":") ? tool.split(":", 1)[0] : tool;
|
|
45
|
+
return canonicalTool(tool.includes(":") ? tool.split(":", 1)[0] : tool);
|
|
39
46
|
}
|
|
40
47
|
/**
|
|
41
48
|
* Reject empty / whitespace-only tool names at factory time.
|
|
@@ -112,6 +119,7 @@ export function mustPrecede(before, after) {
|
|
|
112
119
|
formula: f,
|
|
113
120
|
desc: `tool \`${before}\` must precede \`${after}\``,
|
|
114
121
|
patternName: "must_precede",
|
|
122
|
+
args: [before, after],
|
|
115
123
|
liveness: false,
|
|
116
124
|
};
|
|
117
125
|
}
|
|
@@ -122,6 +130,7 @@ export function alwaysFollowedBy(trigger, response) {
|
|
|
122
130
|
formula: f,
|
|
123
131
|
desc: `\`${trigger}\` must always be followed by \`${response}\``,
|
|
124
132
|
patternName: "always_followed_by",
|
|
133
|
+
args: [trigger, response],
|
|
125
134
|
liveness: true,
|
|
126
135
|
};
|
|
127
136
|
}
|
|
@@ -149,6 +158,7 @@ export function workflowStep(trigger, nextAction, desc) {
|
|
|
149
158
|
formula: f,
|
|
150
159
|
desc: desc ?? `after ${triggerStr} the next event must satisfy ${nextStr}`,
|
|
151
160
|
patternName: "workflow_step",
|
|
161
|
+
args: [trigger, nextAction],
|
|
152
162
|
liveness: false,
|
|
153
163
|
};
|
|
154
164
|
}
|
|
@@ -159,6 +169,7 @@ export function noReversal(commitment, contradiction) {
|
|
|
159
169
|
formula: f,
|
|
160
170
|
desc: `cannot call \`${contradiction}\` after \`${commitment}\``,
|
|
161
171
|
patternName: "no_reversal",
|
|
172
|
+
args: [commitment, contradiction],
|
|
162
173
|
liveness: false,
|
|
163
174
|
};
|
|
164
175
|
}
|
|
@@ -168,6 +179,7 @@ export function requiresPermission(tool, permission) {
|
|
|
168
179
|
formula: f,
|
|
169
180
|
desc: `\`${tool}\` requires permission \`${permission}\``,
|
|
170
181
|
patternName: "requires_permission",
|
|
182
|
+
args: [tool, permission],
|
|
171
183
|
liveness: false,
|
|
172
184
|
};
|
|
173
185
|
}
|
|
@@ -178,6 +190,7 @@ export function noDataLeak(source, external) {
|
|
|
178
190
|
formula: f,
|
|
179
191
|
desc: `no data leak from \`${source}\` to \`${external}\``,
|
|
180
192
|
patternName: "no_data_leak",
|
|
193
|
+
args: [source, external],
|
|
181
194
|
liveness: false,
|
|
182
195
|
};
|
|
183
196
|
}
|
|
@@ -188,6 +201,7 @@ export function mutualExclusion(a, b) {
|
|
|
188
201
|
formula: f,
|
|
189
202
|
desc: `tools \`${a}\` and \`${b}\` are mutually exclusive`,
|
|
190
203
|
patternName: "mutual_exclusion",
|
|
204
|
+
args: [a, b],
|
|
191
205
|
liveness: false,
|
|
192
206
|
};
|
|
193
207
|
}
|
|
@@ -197,11 +211,20 @@ export function rateLimit(tool, maxCalls) {
|
|
|
197
211
|
formula: f,
|
|
198
212
|
desc: `tool \`${tool}\` at most ${maxCalls} times`,
|
|
199
213
|
patternName: "rate_limit",
|
|
214
|
+
args: [tool, maxCalls],
|
|
200
215
|
liveness: false,
|
|
201
216
|
};
|
|
202
217
|
}
|
|
203
218
|
export function idempotent(tool) {
|
|
204
|
-
|
|
219
|
+
// The spread would otherwise carry rate_limit's own args (tool, 1) into
|
|
220
|
+
// a rule whose identity is one tool, and the cloud groups findings by
|
|
221
|
+
// (patternName, args).
|
|
222
|
+
return {
|
|
223
|
+
...rateLimit(tool, 1),
|
|
224
|
+
patternName: "idempotent",
|
|
225
|
+
args: [tool],
|
|
226
|
+
desc: `\`${tool}\` at most once`,
|
|
227
|
+
};
|
|
205
228
|
}
|
|
206
229
|
export function deadline(trigger, action, steps) {
|
|
207
230
|
ensureDistinct(trigger, action, "deadline", "trigger", "action");
|
|
@@ -214,6 +237,7 @@ export function deadline(trigger, action, steps) {
|
|
|
214
237
|
formula: f,
|
|
215
238
|
desc: `\`${action}\` must occur within ${steps} steps of \`${trigger}\``,
|
|
216
239
|
patternName: "deadline",
|
|
240
|
+
args: [trigger, action, steps],
|
|
217
241
|
// Bounded-window liveness: ``X(boundedEventually(action, steps))``
|
|
218
242
|
// is decidable on a bounded prefix (steps + 1 events past the
|
|
219
243
|
// trigger), so it CAN fire mid-session — runtime parity with
|
|
@@ -228,6 +252,7 @@ export function mustConfirm(action) {
|
|
|
228
252
|
formula: f,
|
|
229
253
|
desc: `\`${action}\` requires confirmation (\`${confirm}\`)`,
|
|
230
254
|
patternName: "must_confirm",
|
|
255
|
+
args: [action],
|
|
231
256
|
liveness: false,
|
|
232
257
|
};
|
|
233
258
|
}
|
|
@@ -237,6 +262,7 @@ export function cooldown(action, steps) {
|
|
|
237
262
|
formula: f,
|
|
238
263
|
desc: `\`${action}\` has a cooldown of ${steps} steps`,
|
|
239
264
|
patternName: "cooldown",
|
|
265
|
+
args: [action, steps],
|
|
240
266
|
liveness: false,
|
|
241
267
|
};
|
|
242
268
|
}
|
|
@@ -248,6 +274,7 @@ export function segregationOfDuty(a, b) {
|
|
|
248
274
|
return {
|
|
249
275
|
...me,
|
|
250
276
|
patternName: "segregation_of_duty",
|
|
277
|
+
args: [a, b],
|
|
251
278
|
desc: `\`${a}\` and \`${b}\` must be performed by different agents`,
|
|
252
279
|
};
|
|
253
280
|
}
|
|
@@ -255,8 +282,9 @@ export function boundedRetry(action, maxRetries) {
|
|
|
255
282
|
const f = new G(new Le(countVar(action), new Const(maxRetries)));
|
|
256
283
|
return {
|
|
257
284
|
formula: f,
|
|
258
|
-
desc: `\`${action}\` limited to ${maxRetries} retries`,
|
|
285
|
+
desc: `\`${action}\` limited to ${maxRetries} ${maxRetries === 1 ? "retry" : "retries"}`,
|
|
259
286
|
patternName: "bounded_retry",
|
|
287
|
+
args: [action, maxRetries],
|
|
260
288
|
liveness: false,
|
|
261
289
|
};
|
|
262
290
|
}
|
|
@@ -267,6 +295,7 @@ export function loopDetection(action, maxConsecutive) {
|
|
|
267
295
|
formula: f,
|
|
268
296
|
desc: `\`${action}\` max ${maxConsecutive} consecutive calls`,
|
|
269
297
|
patternName: "loop_detection",
|
|
298
|
+
args: [action, maxConsecutive],
|
|
270
299
|
liveness: false,
|
|
271
300
|
};
|
|
272
301
|
}
|
|
@@ -277,6 +306,7 @@ export function dryRunBeforeCommit(dryRun, commit) {
|
|
|
277
306
|
...base,
|
|
278
307
|
desc: `\`${dryRun}\` dry-run must precede \`${commit}\``,
|
|
279
308
|
patternName: "dry_run_before_commit",
|
|
309
|
+
args: [dryRun, commit],
|
|
280
310
|
};
|
|
281
311
|
}
|
|
282
312
|
export function backupBeforeDestructive(backup, action) {
|
|
@@ -285,6 +315,7 @@ export function backupBeforeDestructive(backup, action) {
|
|
|
285
315
|
...base,
|
|
286
316
|
desc: `\`${backup}\` backup must precede destructive action \`${action}\``,
|
|
287
317
|
patternName: "backup_before_destructive",
|
|
318
|
+
args: [backup, action],
|
|
288
319
|
};
|
|
289
320
|
}
|
|
290
321
|
export function auditAfter(action, audit) {
|
|
@@ -293,6 +324,7 @@ export function auditAfter(action, audit) {
|
|
|
293
324
|
...base,
|
|
294
325
|
desc: `\`${action}\` must be followed by audit step \`${audit}\``,
|
|
295
326
|
patternName: "audit_after",
|
|
327
|
+
args: [action, audit],
|
|
296
328
|
liveness: true,
|
|
297
329
|
};
|
|
298
330
|
}
|
|
@@ -309,6 +341,7 @@ export function approvalFreshness(approval, action, steps) {
|
|
|
309
341
|
formula: f,
|
|
310
342
|
desc: `\`${action}\` requires approval \`${approval}\` within ${steps} steps`,
|
|
311
343
|
patternName: "approval_freshness",
|
|
344
|
+
args: [approval, action, steps],
|
|
312
345
|
liveness: false,
|
|
313
346
|
};
|
|
314
347
|
}
|
|
@@ -321,6 +354,7 @@ export function sanitizedBeforeSink(source, sanitizer, sink) {
|
|
|
321
354
|
formula: f,
|
|
322
355
|
desc: `after \`${source}\`, \`${sanitizer}\` must precede \`${sink}\``,
|
|
323
356
|
patternName: "sanitized_before_sink",
|
|
357
|
+
args: [source, sanitizer, sink],
|
|
324
358
|
liveness: false,
|
|
325
359
|
};
|
|
326
360
|
}
|
|
@@ -335,6 +369,7 @@ export function duplicateCallLimit(tool, argsPattern, maxCount) {
|
|
|
335
369
|
formula: f,
|
|
336
370
|
desc: `\`${tool}\` calls matching ${JSON.stringify(argsPattern)} at most ${maxCount} times`,
|
|
337
371
|
patternName: "duplicate_call_limit",
|
|
372
|
+
args: [tool, argsPattern, maxCount],
|
|
338
373
|
liveness: false,
|
|
339
374
|
};
|
|
340
375
|
}
|
|
@@ -350,6 +385,7 @@ export function argBlacklist(tool, field, patterns) {
|
|
|
350
385
|
formula: f,
|
|
351
386
|
desc: `\`${tool}\`.${field} must not match ${JSON.stringify(patterns)}`,
|
|
352
387
|
patternName: "arg_blacklist",
|
|
388
|
+
args: [tool, field, patterns],
|
|
353
389
|
liveness: false,
|
|
354
390
|
};
|
|
355
391
|
}
|
|
@@ -369,6 +405,7 @@ export function argAllowlist(tool, field, patterns) {
|
|
|
369
405
|
formula: f,
|
|
370
406
|
desc: `\`${tool}\`.${field} must match one of ${JSON.stringify(patterns)}`,
|
|
371
407
|
patternName: "arg_allowlist",
|
|
408
|
+
args: [tool, field, patterns],
|
|
372
409
|
liveness: false,
|
|
373
410
|
};
|
|
374
411
|
}
|
|
@@ -379,6 +416,7 @@ export function scopeLimit(tool, allowedPaths) {
|
|
|
379
416
|
formula: f,
|
|
380
417
|
desc: `\`${tool}\` restricted to paths: ${allowedPaths.join(", ")}`,
|
|
381
418
|
patternName: "scope_limit",
|
|
419
|
+
args: [tool, allowedPaths],
|
|
382
420
|
liveness: false,
|
|
383
421
|
};
|
|
384
422
|
}
|
|
@@ -389,6 +427,7 @@ export function argLengthLimit(tool, param, maxChars) {
|
|
|
389
427
|
formula: f,
|
|
390
428
|
desc: `\`${tool}\`.${param} must not exceed ${maxChars} characters`,
|
|
391
429
|
patternName: "arg_length_limit",
|
|
430
|
+
args: [tool, param, maxChars],
|
|
392
431
|
liveness: false,
|
|
393
432
|
};
|
|
394
433
|
}
|
|
@@ -398,6 +437,7 @@ export function dataIntact(boundTool, originalPaths) {
|
|
|
398
437
|
formula: f,
|
|
399
438
|
desc: `\`${boundTool}\` must use only original data from ${originalPaths.join(", ")}`,
|
|
400
439
|
patternName: "data_intact",
|
|
440
|
+
args: [boundTool, originalPaths],
|
|
401
441
|
liveness: false,
|
|
402
442
|
};
|
|
403
443
|
}
|
|
@@ -410,6 +450,7 @@ export function destructiveActionGate(tool, approverRole = "approver") {
|
|
|
410
450
|
formula: f,
|
|
411
451
|
desc: `\`${tool}\` is destructive and requires \`${approverRole}\` approval`,
|
|
412
452
|
patternName: "destructive_action_gate",
|
|
453
|
+
args: [tool, approverRole],
|
|
413
454
|
liveness: false,
|
|
414
455
|
};
|
|
415
456
|
}
|
|
@@ -460,6 +501,7 @@ export function requiredStepsCompletion(trigger, steps) {
|
|
|
460
501
|
formula: f,
|
|
461
502
|
desc: `after \`${trigger}\`, all steps must complete: ${steps.join(", ")}`,
|
|
462
503
|
patternName: "required_steps_completion",
|
|
504
|
+
args: [trigger, steps],
|
|
463
505
|
liveness: true,
|
|
464
506
|
};
|
|
465
507
|
}
|
|
@@ -477,8 +519,9 @@ export function toolAllowlist(allowedTools) {
|
|
|
477
519
|
const formula = new G(new Implies(new Atom("called_any"), disjunction));
|
|
478
520
|
return {
|
|
479
521
|
formula,
|
|
480
|
-
desc: `only
|
|
522
|
+
desc: `only [${allowedTools.join(", ")}] may be called`,
|
|
481
523
|
patternName: "tool_allowlist",
|
|
524
|
+
args: [allowedTools],
|
|
482
525
|
liveness: false,
|
|
483
526
|
};
|
|
484
527
|
}
|
|
@@ -502,19 +545,85 @@ export function toolAllowlist(allowedTools) {
|
|
|
502
545
|
* need transparent substitution should stay on the Python SDK
|
|
503
546
|
* (LangGraph adapter) until the TS strategy port lands.
|
|
504
547
|
*/
|
|
548
|
+
/**
|
|
549
|
+
* Every emitted claim of this predicate must verify as PASS.
|
|
550
|
+
*
|
|
551
|
+
* Compiles to `G(claim_emitted(pred) -> evidence_verdict(pred, PASS))`.
|
|
552
|
+
* Both atoms are grounded from the same `evidence` event, so the
|
|
553
|
+
* implication is decided at the timestep the verdict lands: a claim
|
|
554
|
+
* whose verdict is anything but PASS (MISMATCH, UNDERDETERMINED,
|
|
555
|
+
* NO_EVIDENCE, STALE, SOURCE_UNAVAILABLE, EXTRACTION_AMBIGUOUS)
|
|
556
|
+
* violates immediately.
|
|
557
|
+
*
|
|
558
|
+
* Parity with `sponsio.patterns.library.claim_requires_evidence`.
|
|
559
|
+
*/
|
|
560
|
+
export function claimRequiresEvidence(pred, desc) {
|
|
561
|
+
ensureNonEmpty(pred, "claimRequiresEvidence", "pred");
|
|
562
|
+
return {
|
|
563
|
+
formula: new G(new Implies(new Atom("claim_emitted", [pred]), new Atom("evidence_verdict", [pred, "PASS"]))),
|
|
564
|
+
desc: desc || `claims of ${pred} must verify against evidence (PASS)`,
|
|
565
|
+
patternName: "claim_requires_evidence",
|
|
566
|
+
args: [pred],
|
|
567
|
+
liveness: false,
|
|
568
|
+
};
|
|
569
|
+
}
|
|
570
|
+
/**
|
|
571
|
+
* An UNDERDETERMINED verdict must resolve to a clarify action.
|
|
572
|
+
*
|
|
573
|
+
* Compiles to `G(evidence_verdict(pred, UNDERDETERMINED) ->
|
|
574
|
+
* evidence_action(pred, clarify))`.
|
|
575
|
+
*
|
|
576
|
+
* Guards the policy wiring rather than the claim itself: when the
|
|
577
|
+
* evidence was ambiguous, the recorded action on that same event must be
|
|
578
|
+
* `clarify`. A project override that quietly releases or hard-blocks an
|
|
579
|
+
* ambiguous claim trips this contract.
|
|
580
|
+
*
|
|
581
|
+
* Parity with `sponsio.patterns.library.underdetermined_must_clarify`.
|
|
582
|
+
*/
|
|
583
|
+
export function underdeterminedMustClarify(pred, desc) {
|
|
584
|
+
ensureNonEmpty(pred, "underdeterminedMustClarify", "pred");
|
|
585
|
+
return {
|
|
586
|
+
formula: new G(new Implies(new Atom("evidence_verdict", [pred, "UNDERDETERMINED"]), new Atom("evidence_action", [pred, "clarify"]))),
|
|
587
|
+
desc: desc || `ambiguous ${pred} claims must be clarified, not released or blocked`,
|
|
588
|
+
patternName: "underdetermined_must_clarify",
|
|
589
|
+
args: [pred],
|
|
590
|
+
liveness: false,
|
|
591
|
+
};
|
|
592
|
+
}
|
|
505
593
|
export function redirectToSafe(unsafe, safe) {
|
|
506
594
|
ensureDistinct(unsafe, safe, "redirectToSafe", "unsafe", "safe");
|
|
507
595
|
return {
|
|
508
596
|
formula: new G(new Not(called(unsafe))),
|
|
509
597
|
desc: `redirect \`${unsafe}\` -> \`${safe}\``,
|
|
510
598
|
patternName: "redirect_to_safe",
|
|
599
|
+
args: [unsafe, safe],
|
|
511
600
|
liveness: false,
|
|
601
|
+
strategy: "redirect",
|
|
602
|
+
safeName: safe,
|
|
512
603
|
};
|
|
513
604
|
}
|
|
605
|
+
/**
|
|
606
|
+
* Recursive ``rm`` in any spelling: ``rm -rf``, ``rm -fr``, ``rm -Rf``,
|
|
607
|
+
* ``rm -r``, ``rm -f -r``, ``rm --recursive --force``, ``rm -v --recursive``.
|
|
608
|
+
* ``count_with`` is a regex over the serialized args, so a literal
|
|
609
|
+
* ``"rm -rf"`` only caught that one spelling. Mirrors
|
|
610
|
+
* ``RM_RECURSIVE_PATTERN`` in ``sponsio/patterns/library.py``; keep the
|
|
611
|
+
* two in sync.
|
|
612
|
+
*/
|
|
613
|
+
export const RM_RECURSIVE_PATTERN = "\\brm(?:\\s+(?:-[a-zA-Z]+|--[a-z-]+))*\\s+(?:-[a-zA-Z]*[rR][a-zA-Z]*|--recursive)(?=\\s|$)";
|
|
514
614
|
export function dangerousBashCommands(forbidden) {
|
|
615
|
+
// Same list and order as the Python default so the two runtimes emit
|
|
616
|
+
// identical descriptions and block the same commands.
|
|
515
617
|
const defaults = [
|
|
516
|
-
|
|
517
|
-
"
|
|
618
|
+
RM_RECURSIVE_PATTERN,
|
|
619
|
+
"sudo",
|
|
620
|
+
"chmod",
|
|
621
|
+
"sed -i",
|
|
622
|
+
"python -c",
|
|
623
|
+
"> /app",
|
|
624
|
+
"cp /app/data",
|
|
625
|
+
"mv /app/data",
|
|
626
|
+
"tee /app",
|
|
518
627
|
];
|
|
519
628
|
const cmds = forbidden ?? defaults;
|
|
520
629
|
// G(count_with(bash, cmd) <= 0) for each cmd — AND them all
|
|
@@ -527,6 +636,7 @@ export function dangerousBashCommands(forbidden) {
|
|
|
527
636
|
formula: f,
|
|
528
637
|
desc: `bash commands [${cmds.join(", ")}] are banned`,
|
|
529
638
|
patternName: "dangerous_bash_commands",
|
|
639
|
+
args: [cmds],
|
|
530
640
|
liveness: false,
|
|
531
641
|
};
|
|
532
642
|
}
|
|
@@ -569,6 +679,7 @@ export function dangerousSqlVerbs(tool = "execute_sql", forbidden) {
|
|
|
569
679
|
formula: f,
|
|
570
680
|
desc: `\`${tool}\` must not use SQL verbs [${verbs.join(", ")}]`,
|
|
571
681
|
patternName: "dangerous_sql_verbs",
|
|
682
|
+
args: [tool, verbs],
|
|
572
683
|
liveness: false,
|
|
573
684
|
};
|
|
574
685
|
}
|
|
@@ -578,6 +689,7 @@ export function irreversibleOnce(action) {
|
|
|
578
689
|
formula: f,
|
|
579
690
|
desc: `\`${action}\` is irreversible and may be called at most once`,
|
|
580
691
|
patternName: "irreversible_once",
|
|
692
|
+
args: [action],
|
|
581
693
|
liveness: false,
|
|
582
694
|
};
|
|
583
695
|
}
|
|
@@ -589,6 +701,7 @@ export function confirmAfterSource(source, action) {
|
|
|
589
701
|
formula: called(source),
|
|
590
702
|
desc: `\`${source}\` has been called`,
|
|
591
703
|
patternName: "confirm_after_source_assumption",
|
|
704
|
+
args: [source, action],
|
|
592
705
|
liveness: false,
|
|
593
706
|
},
|
|
594
707
|
guarantee: mustPrecede(confirm, action),
|
|
@@ -601,6 +714,7 @@ export function tokenBudget(maxTokens, scope = "total") {
|
|
|
601
714
|
formula: f,
|
|
602
715
|
desc: `session ${scope} tokens must not exceed ${maxTokens}`,
|
|
603
716
|
patternName: "token_budget",
|
|
717
|
+
args: [maxTokens, scope],
|
|
604
718
|
liveness: false,
|
|
605
719
|
};
|
|
606
720
|
}
|
|
@@ -630,6 +744,7 @@ export function argValueRange(tool, field, minVal, maxVal) {
|
|
|
630
744
|
formula: f,
|
|
631
745
|
desc: `\`${tool}\`.${field} must be in range ${rangeStr}`,
|
|
632
746
|
patternName: "arg_value_range",
|
|
747
|
+
args: [tool, field, minVal, maxVal],
|
|
633
748
|
liveness: false,
|
|
634
749
|
};
|
|
635
750
|
}
|
|
@@ -639,6 +754,7 @@ export function delegationDepthLimit(maxDepth) {
|
|
|
639
754
|
formula: f,
|
|
640
755
|
desc: `delegation chain must not exceed depth ${maxDepth}`,
|
|
641
756
|
patternName: "delegation_depth_limit",
|
|
757
|
+
args: [maxDepth],
|
|
642
758
|
liveness: false,
|
|
643
759
|
};
|
|
644
760
|
}
|
|
@@ -706,6 +822,7 @@ export function noPii(fields) {
|
|
|
706
822
|
formula: f,
|
|
707
823
|
desc: `response must not contain PII (${selected.join(", ")})`,
|
|
708
824
|
patternName: "no_pii",
|
|
825
|
+
args: [selected],
|
|
709
826
|
liveness: false,
|
|
710
827
|
};
|
|
711
828
|
}
|
|
@@ -728,6 +845,7 @@ export function noKeywords(words) {
|
|
|
728
845
|
formula: f,
|
|
729
846
|
desc: `response must not contain keywords: ${JSON.stringify(words)}`,
|
|
730
847
|
patternName: "no_keywords",
|
|
848
|
+
args: [words],
|
|
731
849
|
liveness: false,
|
|
732
850
|
};
|
|
733
851
|
}
|
|
@@ -755,6 +873,7 @@ export function ctxRequired(tool, key, allowedValues) {
|
|
|
755
873
|
formula: f,
|
|
756
874
|
desc: `${tool} requires ctx[${key}] ∈ [${cleanValues.join(", ")}]`,
|
|
757
875
|
patternName: "ctx_required",
|
|
876
|
+
args: [tool, key, cleanValues],
|
|
758
877
|
liveness: false,
|
|
759
878
|
};
|
|
760
879
|
}
|
|
@@ -772,6 +891,7 @@ export function ctxMatchesRequired(tool, key, pattern) {
|
|
|
772
891
|
formula: f,
|
|
773
892
|
desc: `${tool} requires ctx[${key}] to match /${pattern}/`,
|
|
774
893
|
patternName: "ctx_matches_required",
|
|
894
|
+
args: [tool, key, pattern],
|
|
775
895
|
liveness: false,
|
|
776
896
|
};
|
|
777
897
|
}
|
|
@@ -792,6 +912,7 @@ export function timeSince(predicateKey, maxSeconds) {
|
|
|
792
912
|
formula: f,
|
|
793
913
|
desc: `${predicateKey} must have occurred within last ${maxSeconds}s`,
|
|
794
914
|
patternName: "time_since",
|
|
915
|
+
args: [predicateKey, maxSeconds],
|
|
795
916
|
liveness: false,
|
|
796
917
|
};
|
|
797
918
|
}
|
|
@@ -826,6 +947,7 @@ export function approvalActive(action, role, maxSeconds) {
|
|
|
826
947
|
formula: f,
|
|
827
948
|
desc: `${action} requires active ${role} approval (≤${maxSeconds}s old)`,
|
|
828
949
|
patternName: "approval_active",
|
|
950
|
+
args: [action, role, maxSeconds],
|
|
829
951
|
liveness: false,
|
|
830
952
|
};
|
|
831
953
|
}
|
|
@@ -843,6 +965,7 @@ export function neverTogether(a, b) {
|
|
|
843
965
|
return {
|
|
844
966
|
...me,
|
|
845
967
|
patternName: "never_together",
|
|
968
|
+
args: [a, b],
|
|
846
969
|
desc: `${a} and ${b} must never occur together`,
|
|
847
970
|
};
|
|
848
971
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/core/patterns.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/core/patterns.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One canonical spelling for a tool name, shared by contracts and grounding.
|
|
3
|
+
*
|
|
4
|
+
* Port of sponsio/formulas/tool_names.py.
|
|
5
|
+
*
|
|
6
|
+
* Predicate keys are map keys: ``called(issue_refund)`` and
|
|
7
|
+
* ``called(Issue_Refund)`` are different entries, and a contract looks up
|
|
8
|
+
* the spelling its author typed. So a rule written against ``issue_refund``
|
|
9
|
+
* was silently inert against an event whose tool arrived as
|
|
10
|
+
* ``Issue_Refund``, as ``"issue_refund "`` with a stray space, or as
|
|
11
|
+
* ``mcp__finance__issue_refund`` (our own documented MCP wire format).
|
|
12
|
+
* ``mustPrecede`` compiles to ``Or(order-holds, never-called)``, so a name
|
|
13
|
+
* that never matches makes the second disjunct true and the contract
|
|
14
|
+
* reports satisfied while the guarded action runs unchecked.
|
|
15
|
+
*
|
|
16
|
+
* Two functions, used on opposite sides of the same join:
|
|
17
|
+
*
|
|
18
|
+
* - {@link canonicalTool}: what a *contract* keys on. Contracts are
|
|
19
|
+
* authored once, so they collapse to a single canonical spelling.
|
|
20
|
+
* - {@link toolAliases}: what an *event* answers to. A tool call is a fact
|
|
21
|
+
* and cannot be rewritten, so it is grounded under every spelling a
|
|
22
|
+
* contract might reasonably have used, canonical form included.
|
|
23
|
+
*
|
|
24
|
+
* Widening only ever makes more contracts apply to a given call, never
|
|
25
|
+
* fewer.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* Claude Code / MCP wire format: ``mcp__<server>__<tool>``, prefix in any
|
|
29
|
+
* case (``MCP__finance__x`` is the same call). The server segment has no
|
|
30
|
+
* ``__`` of its own; the tool segment may, so the split is on the FIRST
|
|
31
|
+
* ``__`` after the prefix. ``[^\n]`` rather than ``.`` because
|
|
32
|
+
* Python's ``.`` excludes only ``\n`` while JavaScript's also excludes
|
|
33
|
+
* ``\r`` and U+2028/2029.
|
|
34
|
+
*/
|
|
35
|
+
export declare const MCP_TOOL_RE: RegExp;
|
|
36
|
+
/**
|
|
37
|
+
* OpenClaw's MCP wire format: ``<server>__<tool>`` with no ``mcp__``
|
|
38
|
+
* prefix. Same split; consulted only when {@link MCP_TOOL_RE} did not
|
|
39
|
+
* match, so the ``mcp`` of a prefixed name is never read as a server.
|
|
40
|
+
*/
|
|
41
|
+
export declare const SERVER_TOOL_RE: RegExp;
|
|
42
|
+
/**
|
|
43
|
+
* The single spelling a contract keys on.
|
|
44
|
+
*
|
|
45
|
+
* Strips surrounding whitespace and case-folds. The MCP prefix is *not*
|
|
46
|
+
* stripped here: a contract that deliberately names
|
|
47
|
+
* ``mcp__finance__issue_refund`` means that server's tool and should not
|
|
48
|
+
* widen to every tool of that name. Grounding supplies the bare-name
|
|
49
|
+
* alias so the reverse direction still joins.
|
|
50
|
+
*/
|
|
51
|
+
export declare function canonicalTool(tool: string): string;
|
|
52
|
+
/**
|
|
53
|
+
* Every spelling an event's tool call should answer to.
|
|
54
|
+
*
|
|
55
|
+
* Ordered, duplicate-free, and always contains the raw name first so
|
|
56
|
+
* existing traces and predicate keys keep working unchanged.
|
|
57
|
+
*/
|
|
58
|
+
export declare function toolAliases(tool: string): string[];
|
|
59
|
+
//# sourceMappingURL=tool-names.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-names.d.ts","sourceRoot":"","sources":["../../src/core/tool-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,QAAyC,CAAC;AAElE;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAAmC,CAAC;AA4D/D;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAQlD"}
|