@sponsio/sdk 0.1.0-alpha.3 → 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.
- package/bin/sponsio.cjs +11 -0
- package/contracts/benchmark/agentdojo.yaml +551 -0
- package/contracts/benchmark/odcv_bench.yaml +393 -0
- package/contracts/benchmark/redcode_exec.yaml +488 -0
- package/contracts/benchmark/swebench.yaml +176 -0
- package/contracts/benchmark/tau2_bench.yaml +984 -0
- package/contracts/capability/credentials.yaml +8 -8
- package/contracts/capability/database.yaml +6 -6
- package/contracts/capability/filesystem-strict.yaml +4 -4
- package/contracts/capability/filesystem.yaml +9 -9
- package/contracts/capability/host-config-integrity.yaml +285 -0
- package/contracts/capability/self-modify.yaml +214 -9
- package/contracts/capability/shell.yaml +25 -32
- package/contracts/capability/subagent.yaml +5 -5
- package/contracts/core/llm_safety.yaml +21 -13
- package/contracts/incident/claude-code-secret-bypass.yaml +11 -12
- package/contracts/incident/cursor-railway-wipe.yaml +3 -3
- package/contracts/incident/mcp-composition.yaml +12 -12
- package/contracts/incident/openclaw.yaml +54 -45
- package/contracts/incident/subagent-escape.yaml +4 -4
- package/contracts/premium/.gitkeep +5 -6
- package/dist/cli/check.d.ts +2 -0
- package/dist/cli/check.d.ts.map +1 -0
- package/dist/cli/check.js +283 -0
- package/dist/cli/check.js.map +1 -0
- package/dist/cli/cli.d.ts +25 -0
- package/dist/cli/cli.d.ts.map +1 -0
- package/dist/cli/cli.js +459 -0
- package/dist/cli/cli.js.map +1 -0
- package/dist/cli/config.d.ts +88 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +243 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/demo.d.ts +12 -0
- package/dist/cli/demo.d.ts.map +1 -0
- package/dist/cli/demo.js +350 -0
- package/dist/cli/demo.js.map +1 -0
- package/dist/cli/doctor.d.ts +11 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +201 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/eval.d.ts +2 -0
- package/dist/cli/eval.d.ts.map +1 -0
- package/dist/cli/eval.js +361 -0
- package/dist/cli/eval.js.map +1 -0
- package/dist/cli/explain.d.ts +2 -0
- package/dist/cli/explain.d.ts.map +1 -0
- package/dist/cli/explain.js +266 -0
- package/dist/cli/explain.js.map +1 -0
- package/dist/cli/export-sessions.d.ts +2 -0
- package/dist/cli/export-sessions.d.ts.map +1 -0
- package/dist/cli/export-sessions.js +182 -0
- package/dist/cli/export-sessions.js.map +1 -0
- package/dist/cli/export.d.ts +2 -0
- package/dist/cli/export.d.ts.map +1 -0
- package/dist/cli/export.js +222 -0
- package/dist/cli/export.js.map +1 -0
- package/dist/cli/extractors/common.d.ts +27 -0
- package/dist/cli/extractors/common.d.ts.map +1 -0
- package/dist/cli/extractors/common.js +107 -0
- package/dist/cli/extractors/common.js.map +1 -0
- package/dist/cli/extractors/generic.d.ts +37 -0
- package/dist/cli/extractors/generic.d.ts.map +1 -0
- package/dist/cli/extractors/generic.js +185 -0
- package/dist/cli/extractors/generic.js.map +1 -0
- package/dist/cli/extractors/langchain.d.ts +18 -0
- package/dist/cli/extractors/langchain.d.ts.map +1 -0
- package/dist/cli/extractors/langchain.js +86 -0
- package/dist/cli/extractors/langchain.js.map +1 -0
- package/dist/cli/extractors/vercel.d.ts +17 -0
- package/dist/cli/extractors/vercel.d.ts.map +1 -0
- package/dist/cli/extractors/vercel.js +46 -0
- package/dist/cli/extractors/vercel.js.map +1 -0
- package/dist/cli/index.d.ts +38 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +146 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init.d.ts +2 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +177 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/mode.d.ts +2 -0
- package/dist/cli/mode.d.ts.map +1 -0
- package/dist/cli/mode.js +71 -0
- package/dist/cli/mode.js.map +1 -0
- package/dist/cli/onboard.d.ts +88 -0
- package/dist/cli/onboard.d.ts.map +1 -0
- package/dist/cli/onboard.js +758 -0
- package/dist/cli/onboard.js.map +1 -0
- package/dist/cli/otlp.d.ts +27 -0
- package/dist/cli/otlp.d.ts.map +1 -0
- package/dist/cli/otlp.js +79 -0
- package/dist/cli/otlp.js.map +1 -0
- package/dist/cli/package.json +1 -0
- package/dist/cli/packs.d.ts +16 -0
- package/dist/cli/packs.d.ts.map +1 -0
- package/dist/cli/packs.js +184 -0
- package/dist/cli/packs.js.map +1 -0
- package/dist/cli/patterns.d.ts +16 -0
- package/dist/cli/patterns.d.ts.map +1 -0
- package/dist/cli/patterns.js +136 -0
- package/dist/cli/patterns.js.map +1 -0
- package/dist/cli/prompt.d.ts +2 -0
- package/dist/cli/prompt.d.ts.map +1 -0
- package/dist/cli/prompt.js +54 -0
- package/dist/cli/prompt.js.map +1 -0
- package/dist/cli/replay.d.ts +2 -0
- package/dist/cli/replay.d.ts.map +1 -0
- package/dist/cli/replay.js +196 -0
- package/dist/cli/replay.js.map +1 -0
- package/dist/cli/report.d.ts +57 -0
- package/dist/cli/report.d.ts.map +1 -0
- package/dist/cli/report.js +298 -0
- package/dist/cli/report.js.map +1 -0
- package/dist/cli/scan.d.ts +2 -0
- package/dist/cli/scan.d.ts.map +1 -0
- package/dist/cli/scan.js +172 -0
- package/dist/cli/scan.js.map +1 -0
- package/dist/cli/skill.d.ts +15 -0
- package/dist/cli/skill.d.ts.map +1 -0
- package/dist/cli/skill.js +131 -0
- package/dist/cli/skill.js.map +1 -0
- package/dist/cli/tokens.d.ts +31 -0
- package/dist/cli/tokens.d.ts.map +1 -0
- package/dist/cli/tokens.js +73 -0
- package/dist/cli/tokens.js.map +1 -0
- package/dist/cli/types.d.ts +46 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +3 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/validate.d.ts +19 -0
- package/dist/cli/validate.d.ts.map +1 -0
- package/dist/cli/validate.js +205 -0
- package/dist/cli/validate.js.map +1 -0
- package/dist/cli/zod.d.ts +36 -0
- package/dist/cli/zod.d.ts.map +1 -0
- package/dist/cli/zod.js +226 -0
- package/dist/cli/zod.js.map +1 -0
- package/dist/contract.d.ts +13 -13
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +21 -21
- package/dist/contract.js.map +1 -1
- package/dist/core/config-loader.d.ts +1 -1
- package/dist/core/config-loader.d.ts.map +1 -1
- package/dist/core/config-loader.js +100 -26
- package/dist/core/config-loader.js.map +1 -1
- package/dist/core/evaluator.d.ts +9 -1
- package/dist/core/evaluator.d.ts.map +1 -1
- package/dist/core/evaluator.js +189 -13
- package/dist/core/evaluator.js.map +1 -1
- package/dist/core/formula.d.ts +76 -17
- package/dist/core/formula.d.ts.map +1 -1
- package/dist/core/formula.js +83 -1
- package/dist/core/formula.js.map +1 -1
- package/dist/core/grounding.d.ts +50 -3
- package/dist/core/grounding.d.ts.map +1 -1
- package/dist/core/grounding.js +317 -141
- 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 +76 -4
- package/dist/core/nl-parser.js.map +1 -1
- package/dist/core/pack-loader.d.ts.map +1 -1
- package/dist/core/pack-loader.js +14 -2
- package/dist/core/pack-loader.js.map +1 -1
- package/dist/core/parser.d.ts.map +1 -1
- package/dist/core/parser.js +30 -1
- package/dist/core/parser.js.map +1 -1
- package/dist/core/pattern-factory.d.ts +4 -4
- package/dist/core/pattern-factory.d.ts.map +1 -1
- package/dist/core/pattern-factory.js +53 -4
- package/dist/core/pattern-factory.js.map +1 -1
- package/dist/core/patterns.d.ts +127 -5
- package/dist/core/patterns.d.ts.map +1 -1
- package/dist/core/patterns.js +267 -3
- package/dist/core/patterns.js.map +1 -1
- package/dist/core/session-log.d.ts.map +1 -1
- package/dist/core/session-log.js +20 -1
- package/dist/core/session-log.js.map +1 -1
- package/dist/core/spans.d.ts +1 -1
- package/dist/core/spans.d.ts.map +1 -1
- package/dist/core/spans.js.map +1 -1
- package/dist/core/sto.d.ts +30 -66
- package/dist/core/sto.d.ts.map +1 -1
- package/dist/core/sto.js +39 -100
- package/dist/core/sto.js.map +1 -1
- package/dist/index.d.ts +83 -33
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +194 -142
- package/dist/index.js.map +1 -1
- package/dist/integrations/openai-agents.d.ts.map +1 -1
- package/dist/integrations/openai-agents.js +6 -4
- package/dist/integrations/openai-agents.js.map +1 -1
- package/dist/integrations/vercel-ai.d.ts.map +1 -1
- package/dist/integrations/vercel-ai.js +21 -3
- package/dist/integrations/vercel-ai.js.map +1 -1
- package/dist/render/tokens.d.ts.map +1 -1
- package/dist/render/tokens.js +1 -0
- package/dist/render/tokens.js.map +1 -1
- package/package.json +35 -7
- package/prompts/onboard.md +246 -0
- package/prompts/scan.md +123 -0
- package/skills/SKILL.md +432 -0
package/dist/core/patterns.d.ts
CHANGED
|
@@ -17,19 +17,46 @@
|
|
|
17
17
|
* Workflow hygiene (6): dryRunBeforeCommit, backupBeforeDestructive,
|
|
18
18
|
* auditAfter, approvalFreshness, sanitizedBeforeSink, duplicateCallLimit
|
|
19
19
|
*/
|
|
20
|
-
import { Formula } from "./formula.js";
|
|
20
|
+
import { Formula, Atom } from "./formula.js";
|
|
21
21
|
export interface DetFormula {
|
|
22
22
|
formula: Formula;
|
|
23
23
|
desc: string;
|
|
24
24
|
patternName: string;
|
|
25
25
|
liveness: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Per-contract enforcement mode: `enforce` | `observe`.
|
|
28
|
+
*
|
|
29
|
+
* Overrides the engine's global mode for this contract alone —
|
|
30
|
+
* mirrors Python's `ContractEntry.mode`. `undefined` means "no
|
|
31
|
+
* opinion" and the global mode applies; that distinction matters,
|
|
32
|
+
* since defaulting to `observe` here would silently downgrade every
|
|
33
|
+
* contract that simply did not mention a mode.
|
|
34
|
+
*/
|
|
35
|
+
mode?: "enforce" | "observe";
|
|
26
36
|
}
|
|
27
|
-
export interface
|
|
37
|
+
export interface AssumeGuaranteePair {
|
|
28
38
|
assumption: DetFormula;
|
|
29
|
-
|
|
39
|
+
guarantee: DetFormula;
|
|
30
40
|
}
|
|
31
41
|
export declare function mustPrecede(before: string, after: string): DetFormula;
|
|
32
42
|
export declare function alwaysFollowedBy(trigger: string, response: string): DetFormula;
|
|
43
|
+
/**
|
|
44
|
+
* Prescriptive next-step obligation: ``G(trigger -> X(next_action))``.
|
|
45
|
+
*
|
|
46
|
+
* When ``trigger`` holds at the current event, the agent must satisfy
|
|
47
|
+
* ``next_action`` at the very next event. Prescriptive counterpart to
|
|
48
|
+
* the block-style patterns (``never_together``, ``arg_blacklist``):
|
|
49
|
+
* instead of "you must not do X", a workflow_step says "you must do X
|
|
50
|
+
* next".
|
|
51
|
+
*
|
|
52
|
+
* Both arguments are arbitrary atoms (called(...), ctx(k, v),
|
|
53
|
+
* arg_field_has(...), etc.), so the same factory covers tool ordering,
|
|
54
|
+
* ctx-driven remediation, and arg-conditional follow-ups.
|
|
55
|
+
*
|
|
56
|
+
* NOT marked liveness: X is one-step bounded and the runtime can decide
|
|
57
|
+
* the obligation after a single event, unlike F.
|
|
58
|
+
*/
|
|
59
|
+
export declare function workflowStep(trigger: Atom, nextAction: Atom, desc?: string): DetFormula;
|
|
33
60
|
export declare function noReversal(commitment: string, contradiction: string): DetFormula;
|
|
34
61
|
export declare function requiresPermission(tool: string, permission: string): DetFormula;
|
|
35
62
|
export declare function noDataLeak(source: string, external: string): DetFormula;
|
|
@@ -54,14 +81,109 @@ export declare function scopeLimit(tool: string, allowedPaths: string[]): DetFor
|
|
|
54
81
|
export declare function argLengthLimit(tool: string, param: string, maxChars: number): DetFormula;
|
|
55
82
|
export declare function dataIntact(boundTool: string, originalPaths: string[]): DetFormula;
|
|
56
83
|
export declare function destructiveActionGate(tool: string, approverRole?: string): DetFormula;
|
|
57
|
-
export declare function untrustedSourceGate(source: string, sink: string, confirm?: string):
|
|
84
|
+
export declare function untrustedSourceGate(source: string, sink: string, confirm?: string): AssumeGuaranteePair;
|
|
58
85
|
export declare function requiredStepsCompletion(trigger: string, steps: string[]): DetFormula;
|
|
59
86
|
export declare function toolAllowlist(allowedTools: string[]): DetFormula;
|
|
87
|
+
/**
|
|
88
|
+
* Substitute a forbidden tool call with a pre-approved safe one.
|
|
89
|
+
*
|
|
90
|
+
* Parity with Python ``sponsio.patterns.library.redirect_to_safe``:
|
|
91
|
+
* compiles to ``G(Not(called(unsafe)))``, so any call to ``unsafe`` is
|
|
92
|
+
* a violation.
|
|
93
|
+
*
|
|
94
|
+
* **Important runtime caveat.** The TS SDK is currently det-only and
|
|
95
|
+
* has no strategy / dispatch system. The formula side of
|
|
96
|
+
* ``redirectToSafe`` works here (a violation IS surfaced), but the TS
|
|
97
|
+
* SDK does NOT yet do the Python-side trick of bundling a
|
|
98
|
+
* ``RedirectToSafe`` strategy on the formula and having adapter
|
|
99
|
+
* ``wrap()`` paths substitute the call. The runtime outcome on TS is
|
|
100
|
+
* functionally a block: the unsafe tool is rejected, and the user's
|
|
101
|
+
* application loop has to decide whether to dispatch the safe
|
|
102
|
+
* substitute manually. Full strategy / dispatch parity is tracked as
|
|
103
|
+
* a separate work item. Users wiring redirect-style contracts who
|
|
104
|
+
* need transparent substitution should stay on the Python SDK
|
|
105
|
+
* (LangGraph adapter) until the TS strategy port lands.
|
|
106
|
+
*/
|
|
107
|
+
export declare function redirectToSafe(unsafe: string, safe: string): DetFormula;
|
|
60
108
|
export declare function dangerousBashCommands(forbidden?: string[]): DetFormula;
|
|
61
109
|
export declare function dangerousSqlVerbs(tool?: string, forbidden?: string[]): DetFormula;
|
|
62
110
|
export declare function irreversibleOnce(action: string): DetFormula;
|
|
63
|
-
export declare function confirmAfterSource(source: string, action: string):
|
|
111
|
+
export declare function confirmAfterSource(source: string, action: string): AssumeGuaranteePair;
|
|
64
112
|
export declare function tokenBudget(maxTokens: number, scope?: string): DetFormula;
|
|
65
113
|
export declare function argValueRange(tool: string, field: string, minVal?: number, maxVal?: number): DetFormula;
|
|
66
114
|
export declare function delegationDepthLimit(maxDepth: number): DetFormula;
|
|
115
|
+
/**
|
|
116
|
+
* Response length must stay within the given word / character budget.
|
|
117
|
+
*
|
|
118
|
+
* Grounded against ``response_words`` / ``response_chars`` populated on
|
|
119
|
+
* ``llm_response`` events with content. At non-response events both
|
|
120
|
+
* default to 0, so the constraint is vacuously satisfied.
|
|
121
|
+
*/
|
|
122
|
+
export declare function maxLength(opts: {
|
|
123
|
+
maxWords?: number;
|
|
124
|
+
maxChars?: number;
|
|
125
|
+
desc?: string;
|
|
126
|
+
}): DetFormula;
|
|
127
|
+
/**
|
|
128
|
+
* Response must not contain regex-detectable PII (SSN, CC, email, phone).
|
|
129
|
+
*
|
|
130
|
+
* Uses the ``llm_said`` grounding atom — the selected default patterns
|
|
131
|
+
* are joined with ``|`` and matched against each ``llm_response`` event.
|
|
132
|
+
* For semantic PII detection (names, contextual identifiers) use a sto
|
|
133
|
+
* atom; this pattern only covers syntactic PII.
|
|
134
|
+
*/
|
|
135
|
+
export declare function noPii(fields?: string[]): DetFormula;
|
|
136
|
+
/**
|
|
137
|
+
* Response must not contain any of the given keywords. Keywords are
|
|
138
|
+
* escaped and joined into a word-boundary-anchored regex checked
|
|
139
|
+
* against each ``llm_response`` event via ``llm_said``.
|
|
140
|
+
*
|
|
141
|
+
* JS regex doesn't support inline ``(?i)`` flags — we lower-case the
|
|
142
|
+
* regex by expanding letters to ``[aA]``-style char classes, matching
|
|
143
|
+
* Python's ``(?i)`` semantics.
|
|
144
|
+
*/
|
|
145
|
+
export declare function noKeywords(words: string[]): DetFormula;
|
|
146
|
+
/**
|
|
147
|
+
* When ``tool`` is called, ``ctx[key]`` must be one of ``allowedValues``.
|
|
148
|
+
* Fail-closed: missing context evaluates to violation, so forgetting
|
|
149
|
+
* to wire ``observeContext`` is loud rather than silent.
|
|
150
|
+
*/
|
|
151
|
+
export declare function ctxRequired(tool: string, key: string, allowedValues: string[]): DetFormula;
|
|
152
|
+
/**
|
|
153
|
+
* When ``tool`` is called, ``ctx[key]`` must match the regex ``pattern``.
|
|
154
|
+
* Regex variant of :func:`ctxRequired` for cases where the allowed set
|
|
155
|
+
* is better expressed as a pattern than an exhaustive list.
|
|
156
|
+
*/
|
|
157
|
+
export declare function ctxMatchesRequired(tool: string, key: string, pattern: string): DetFormula;
|
|
158
|
+
/**
|
|
159
|
+
* Constrain how recently a predicate was last true. The argument is the
|
|
160
|
+
* grounded predicate key string (e.g. ``"called(refund)"`` or
|
|
161
|
+
* ``"ctx(approval.role, alice)"``) — same convention as Python's
|
|
162
|
+
* ``time_since`` factory.
|
|
163
|
+
*/
|
|
164
|
+
export declare function timeSince(predicateKey: string, maxSeconds: number): DetFormula;
|
|
165
|
+
/**
|
|
166
|
+
* Gate ``action`` on a recent allow-decision approval from ``role``.
|
|
167
|
+
*
|
|
168
|
+
* Compiles to::
|
|
169
|
+
* G(called(action) → (
|
|
170
|
+
* ctx_matches("approval.role", role)
|
|
171
|
+
* ∧ ctx_matches("approval.decision", "allow")
|
|
172
|
+
* ∧ time_since("ctx(approval.role, role)") ≤ maxSeconds
|
|
173
|
+
* ))
|
|
174
|
+
*
|
|
175
|
+
* Pairs with ``observeApproval({role, decision})`` on the integration
|
|
176
|
+
* side.
|
|
177
|
+
*/
|
|
178
|
+
export declare function approvalActive(action: string, role: string, maxSeconds: number): DetFormula;
|
|
179
|
+
/**
|
|
180
|
+
* @deprecated — use :func:`mutualExclusion` instead.
|
|
181
|
+
*
|
|
182
|
+
* In sequential traces, two tool calls are always at different
|
|
183
|
+
* timesteps, so the formula ``G(¬(called(A) ∧ called(B)))`` is
|
|
184
|
+
* trivially satisfied and can never detect violations. Delegates to
|
|
185
|
+
* ``mutualExclusion`` for correct behavior; kept so yaml authored
|
|
186
|
+
* against Python's deprecated entry still loads.
|
|
187
|
+
*/
|
|
188
|
+
export declare function neverTogether(a: string, b: string): DetFormula;
|
|
67
189
|
//# sourceMappingURL=patterns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../src/core/patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,OAAO,
|
|
1
|
+
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../src/core/patterns.ts"],"names":[],"mappings":"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"}
|
package/dist/core/patterns.js
CHANGED
|
@@ -125,6 +125,33 @@ export function alwaysFollowedBy(trigger, response) {
|
|
|
125
125
|
liveness: true,
|
|
126
126
|
};
|
|
127
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Prescriptive next-step obligation: ``G(trigger -> X(next_action))``.
|
|
130
|
+
*
|
|
131
|
+
* When ``trigger`` holds at the current event, the agent must satisfy
|
|
132
|
+
* ``next_action`` at the very next event. Prescriptive counterpart to
|
|
133
|
+
* the block-style patterns (``never_together``, ``arg_blacklist``):
|
|
134
|
+
* instead of "you must not do X", a workflow_step says "you must do X
|
|
135
|
+
* next".
|
|
136
|
+
*
|
|
137
|
+
* Both arguments are arbitrary atoms (called(...), ctx(k, v),
|
|
138
|
+
* arg_field_has(...), etc.), so the same factory covers tool ordering,
|
|
139
|
+
* ctx-driven remediation, and arg-conditional follow-ups.
|
|
140
|
+
*
|
|
141
|
+
* NOT marked liveness: X is one-step bounded and the runtime can decide
|
|
142
|
+
* the obligation after a single event, unlike F.
|
|
143
|
+
*/
|
|
144
|
+
export function workflowStep(trigger, nextAction, desc) {
|
|
145
|
+
const f = new G(new Implies(trigger, new X(nextAction)));
|
|
146
|
+
const triggerStr = `${trigger.predicate}(${trigger.args.join(", ")})`;
|
|
147
|
+
const nextStr = `${nextAction.predicate}(${nextAction.args.join(", ")})`;
|
|
148
|
+
return {
|
|
149
|
+
formula: f,
|
|
150
|
+
desc: desc ?? `after ${triggerStr} the next event must satisfy ${nextStr}`,
|
|
151
|
+
patternName: "workflow_step",
|
|
152
|
+
liveness: false,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
128
155
|
export function noReversal(commitment, contradiction) {
|
|
129
156
|
ensureDistinct(commitment, contradiction, "noReversal", "commitment", "contradiction");
|
|
130
157
|
const f = new G(new Implies(called(commitment), new G(new Not(called(contradiction)))));
|
|
@@ -187,7 +214,11 @@ export function deadline(trigger, action, steps) {
|
|
|
187
214
|
formula: f,
|
|
188
215
|
desc: `\`${action}\` must occur within ${steps} steps of \`${trigger}\``,
|
|
189
216
|
patternName: "deadline",
|
|
190
|
-
liveness:
|
|
217
|
+
// Bounded-window liveness: ``X(boundedEventually(action, steps))``
|
|
218
|
+
// is decidable on a bounded prefix (steps + 1 events past the
|
|
219
|
+
// trigger), so it CAN fire mid-session — runtime parity with
|
|
220
|
+
// Python ``deadline.liveness == False``.
|
|
221
|
+
liveness: false,
|
|
191
222
|
};
|
|
192
223
|
}
|
|
193
224
|
export function mustConfirm(action) {
|
|
@@ -392,7 +423,7 @@ export function untrustedSourceGate(source, sink, confirm = "") {
|
|
|
392
423
|
patternName: "untrusted_source_gate_assumption",
|
|
393
424
|
liveness: false,
|
|
394
425
|
},
|
|
395
|
-
|
|
426
|
+
guarantee: mustPrecede(confirmAction, sink),
|
|
396
427
|
};
|
|
397
428
|
}
|
|
398
429
|
export function requiredStepsCompletion(trigger, steps) {
|
|
@@ -451,6 +482,35 @@ export function toolAllowlist(allowedTools) {
|
|
|
451
482
|
liveness: false,
|
|
452
483
|
};
|
|
453
484
|
}
|
|
485
|
+
/**
|
|
486
|
+
* Substitute a forbidden tool call with a pre-approved safe one.
|
|
487
|
+
*
|
|
488
|
+
* Parity with Python ``sponsio.patterns.library.redirect_to_safe``:
|
|
489
|
+
* compiles to ``G(Not(called(unsafe)))``, so any call to ``unsafe`` is
|
|
490
|
+
* a violation.
|
|
491
|
+
*
|
|
492
|
+
* **Important runtime caveat.** The TS SDK is currently det-only and
|
|
493
|
+
* has no strategy / dispatch system. The formula side of
|
|
494
|
+
* ``redirectToSafe`` works here (a violation IS surfaced), but the TS
|
|
495
|
+
* SDK does NOT yet do the Python-side trick of bundling a
|
|
496
|
+
* ``RedirectToSafe`` strategy on the formula and having adapter
|
|
497
|
+
* ``wrap()`` paths substitute the call. The runtime outcome on TS is
|
|
498
|
+
* functionally a block: the unsafe tool is rejected, and the user's
|
|
499
|
+
* application loop has to decide whether to dispatch the safe
|
|
500
|
+
* substitute manually. Full strategy / dispatch parity is tracked as
|
|
501
|
+
* a separate work item. Users wiring redirect-style contracts who
|
|
502
|
+
* need transparent substitution should stay on the Python SDK
|
|
503
|
+
* (LangGraph adapter) until the TS strategy port lands.
|
|
504
|
+
*/
|
|
505
|
+
export function redirectToSafe(unsafe, safe) {
|
|
506
|
+
ensureDistinct(unsafe, safe, "redirectToSafe", "unsafe", "safe");
|
|
507
|
+
return {
|
|
508
|
+
formula: new G(new Not(called(unsafe))),
|
|
509
|
+
desc: `redirect \`${unsafe}\` -> \`${safe}\``,
|
|
510
|
+
patternName: "redirect_to_safe",
|
|
511
|
+
liveness: false,
|
|
512
|
+
};
|
|
513
|
+
}
|
|
454
514
|
export function dangerousBashCommands(forbidden) {
|
|
455
515
|
const defaults = [
|
|
456
516
|
"sed -i", "rm -rf", "cp /app/data", "mv /app/data",
|
|
@@ -531,7 +591,7 @@ export function confirmAfterSource(source, action) {
|
|
|
531
591
|
patternName: "confirm_after_source_assumption",
|
|
532
592
|
liveness: false,
|
|
533
593
|
},
|
|
534
|
-
|
|
594
|
+
guarantee: mustPrecede(confirm, action),
|
|
535
595
|
};
|
|
536
596
|
}
|
|
537
597
|
// --- Resource / delegation patterns ---
|
|
@@ -582,4 +642,208 @@ export function delegationDepthLimit(maxDepth) {
|
|
|
582
642
|
liveness: false,
|
|
583
643
|
};
|
|
584
644
|
}
|
|
645
|
+
// --- Layer 3 — Response content patterns ---
|
|
646
|
+
/** Default PII regex set, mirrored from Python ``_DEFAULT_PII_PATTERNS``. */
|
|
647
|
+
const DEFAULT_PII_PATTERNS = {
|
|
648
|
+
ssn: "\\b\\d{3}-\\d{2}-\\d{4}\\b",
|
|
649
|
+
credit_card: "\\b\\d{4}[\\s-]?\\d{4}[\\s-]?\\d{4}[\\s-]?\\d{4}\\b",
|
|
650
|
+
email: "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b",
|
|
651
|
+
phone: "\\b(?:\\+?1[-.\\s]?)?\\(?\\d{3}\\)?[-.\\s]?\\d{3}[-.\\s]?\\d{4}\\b",
|
|
652
|
+
};
|
|
653
|
+
/**
|
|
654
|
+
* Response length must stay within the given word / character budget.
|
|
655
|
+
*
|
|
656
|
+
* Grounded against ``response_words`` / ``response_chars`` populated on
|
|
657
|
+
* ``llm_response`` events with content. At non-response events both
|
|
658
|
+
* default to 0, so the constraint is vacuously satisfied.
|
|
659
|
+
*/
|
|
660
|
+
export function maxLength(opts) {
|
|
661
|
+
const { maxWords, maxChars, desc } = opts;
|
|
662
|
+
if (maxWords == null && maxChars == null) {
|
|
663
|
+
throw new Error("max_length requires maxWords or maxChars");
|
|
664
|
+
}
|
|
665
|
+
const parts = [];
|
|
666
|
+
if (maxWords != null)
|
|
667
|
+
parts.push(new Le(new Var("response_words"), new Const(maxWords)));
|
|
668
|
+
if (maxChars != null)
|
|
669
|
+
parts.push(new Le(new Var("response_chars"), new Const(maxChars)));
|
|
670
|
+
const body = parts.length === 1 ? parts[0] : new And(parts[0], parts[1]);
|
|
671
|
+
const f = new G(body);
|
|
672
|
+
let descStr;
|
|
673
|
+
if (desc)
|
|
674
|
+
descStr = desc;
|
|
675
|
+
else if (maxWords != null && maxChars != null)
|
|
676
|
+
descStr = `response ≤ ${maxWords} words and ≤ ${maxChars} chars`;
|
|
677
|
+
else if (maxWords != null)
|
|
678
|
+
descStr = `response ≤ ${maxWords} words`;
|
|
679
|
+
else
|
|
680
|
+
descStr = `response ≤ ${maxChars} chars`;
|
|
681
|
+
return {
|
|
682
|
+
formula: f,
|
|
683
|
+
desc: descStr,
|
|
684
|
+
patternName: "max_length",
|
|
685
|
+
liveness: false,
|
|
686
|
+
};
|
|
687
|
+
}
|
|
688
|
+
/**
|
|
689
|
+
* Response must not contain regex-detectable PII (SSN, CC, email, phone).
|
|
690
|
+
*
|
|
691
|
+
* Uses the ``llm_said`` grounding atom — the selected default patterns
|
|
692
|
+
* are joined with ``|`` and matched against each ``llm_response`` event.
|
|
693
|
+
* For semantic PII detection (names, contextual identifiers) use a sto
|
|
694
|
+
* atom; this pattern only covers syntactic PII.
|
|
695
|
+
*/
|
|
696
|
+
export function noPii(fields) {
|
|
697
|
+
const selected = fields ?? Object.keys(DEFAULT_PII_PATTERNS);
|
|
698
|
+
const unknown = selected.filter((f) => !(f in DEFAULT_PII_PATTERNS));
|
|
699
|
+
if (unknown.length > 0) {
|
|
700
|
+
throw new Error(`unknown PII field(s): ${JSON.stringify(unknown.sort())}. ` +
|
|
701
|
+
`Available: ${JSON.stringify(Object.keys(DEFAULT_PII_PATTERNS).sort())}`);
|
|
702
|
+
}
|
|
703
|
+
const pattern = selected.map((f) => DEFAULT_PII_PATTERNS[f]).join("|");
|
|
704
|
+
const f = new G(new Not(new Atom("llm_said", [pattern])));
|
|
705
|
+
return {
|
|
706
|
+
formula: f,
|
|
707
|
+
desc: `response must not contain PII (${selected.join(", ")})`,
|
|
708
|
+
patternName: "no_pii",
|
|
709
|
+
liveness: false,
|
|
710
|
+
};
|
|
711
|
+
}
|
|
712
|
+
/**
|
|
713
|
+
* Response must not contain any of the given keywords. Keywords are
|
|
714
|
+
* escaped and joined into a word-boundary-anchored regex checked
|
|
715
|
+
* against each ``llm_response`` event via ``llm_said``.
|
|
716
|
+
*
|
|
717
|
+
* JS regex doesn't support inline ``(?i)`` flags — we lower-case the
|
|
718
|
+
* regex by expanding letters to ``[aA]``-style char classes, matching
|
|
719
|
+
* Python's ``(?i)`` semantics.
|
|
720
|
+
*/
|
|
721
|
+
export function noKeywords(words) {
|
|
722
|
+
if (!words || words.length === 0) {
|
|
723
|
+
throw new Error("no_keywords requires at least one keyword");
|
|
724
|
+
}
|
|
725
|
+
const pattern = `\\b(${words.map((w) => caseInsensitiveLiteral(w)).join("|")})\\b`;
|
|
726
|
+
const f = new G(new Not(new Atom("llm_said", [pattern])));
|
|
727
|
+
return {
|
|
728
|
+
formula: f,
|
|
729
|
+
desc: `response must not contain keywords: ${JSON.stringify(words)}`,
|
|
730
|
+
patternName: "no_keywords",
|
|
731
|
+
liveness: false,
|
|
732
|
+
};
|
|
733
|
+
}
|
|
734
|
+
// --- Layer 3 — External-fact (ctx) patterns ---
|
|
735
|
+
/**
|
|
736
|
+
* When ``tool`` is called, ``ctx[key]`` must be one of ``allowedValues``.
|
|
737
|
+
* Fail-closed: missing context evaluates to violation, so forgetting
|
|
738
|
+
* to wire ``observeContext`` is loud rather than silent.
|
|
739
|
+
*/
|
|
740
|
+
export function ctxRequired(tool, key, allowedValues) {
|
|
741
|
+
ensureNonEmpty(tool, "ctxRequired", "tool");
|
|
742
|
+
ensureNonEmpty(key, "ctxRequired", "key");
|
|
743
|
+
if (!allowedValues || allowedValues.length === 0) {
|
|
744
|
+
throw new Error("ctx_required: 'allowed_values' must not be empty — an empty " +
|
|
745
|
+
"allowlist rejects every call to the tool. Use " +
|
|
746
|
+
"`tool_allowlist([])` if you really want to block everything.");
|
|
747
|
+
}
|
|
748
|
+
const cleanValues = allowedValues.map((v) => String(v));
|
|
749
|
+
let disjunction = new Atom("ctx", [key, cleanValues[0]]);
|
|
750
|
+
for (let i = 1; i < cleanValues.length; i++) {
|
|
751
|
+
disjunction = new Or(disjunction, new Atom("ctx", [key, cleanValues[i]]));
|
|
752
|
+
}
|
|
753
|
+
const f = new G(new Implies(called(tool), disjunction));
|
|
754
|
+
return {
|
|
755
|
+
formula: f,
|
|
756
|
+
desc: `${tool} requires ctx[${key}] ∈ [${cleanValues.join(", ")}]`,
|
|
757
|
+
patternName: "ctx_required",
|
|
758
|
+
liveness: false,
|
|
759
|
+
};
|
|
760
|
+
}
|
|
761
|
+
/**
|
|
762
|
+
* When ``tool`` is called, ``ctx[key]`` must match the regex ``pattern``.
|
|
763
|
+
* Regex variant of :func:`ctxRequired` for cases where the allowed set
|
|
764
|
+
* is better expressed as a pattern than an exhaustive list.
|
|
765
|
+
*/
|
|
766
|
+
export function ctxMatchesRequired(tool, key, pattern) {
|
|
767
|
+
ensureNonEmpty(tool, "ctxMatchesRequired", "tool");
|
|
768
|
+
ensureNonEmpty(key, "ctxMatchesRequired", "key");
|
|
769
|
+
ensureNonEmpty(pattern, "ctxMatchesRequired", "pattern");
|
|
770
|
+
const f = new G(new Implies(called(tool), new Atom("ctx_matches", [key, pattern])));
|
|
771
|
+
return {
|
|
772
|
+
formula: f,
|
|
773
|
+
desc: `${tool} requires ctx[${key}] to match /${pattern}/`,
|
|
774
|
+
patternName: "ctx_matches_required",
|
|
775
|
+
liveness: false,
|
|
776
|
+
};
|
|
777
|
+
}
|
|
778
|
+
// --- Time-window patterns (event-clock) ---
|
|
779
|
+
/**
|
|
780
|
+
* Constrain how recently a predicate was last true. The argument is the
|
|
781
|
+
* grounded predicate key string (e.g. ``"called(refund)"`` or
|
|
782
|
+
* ``"ctx(approval.role, alice)"``) — same convention as Python's
|
|
783
|
+
* ``time_since`` factory.
|
|
784
|
+
*/
|
|
785
|
+
export function timeSince(predicateKey, maxSeconds) {
|
|
786
|
+
ensureNonEmpty(predicateKey, "timeSince", "predicate_key");
|
|
787
|
+
if (typeof maxSeconds !== "number" || !Number.isFinite(maxSeconds) || maxSeconds < 0) {
|
|
788
|
+
throw new Error(`time_since: max_seconds must be a non-negative number (got ${maxSeconds}).`);
|
|
789
|
+
}
|
|
790
|
+
const f = new G(new Le(new Var("time_since", predicateKey), new Const(maxSeconds)));
|
|
791
|
+
return {
|
|
792
|
+
formula: f,
|
|
793
|
+
desc: `${predicateKey} must have occurred within last ${maxSeconds}s`,
|
|
794
|
+
patternName: "time_since",
|
|
795
|
+
liveness: false,
|
|
796
|
+
};
|
|
797
|
+
}
|
|
798
|
+
/**
|
|
799
|
+
* Gate ``action`` on a recent allow-decision approval from ``role``.
|
|
800
|
+
*
|
|
801
|
+
* Compiles to::
|
|
802
|
+
* G(called(action) → (
|
|
803
|
+
* ctx_matches("approval.role", role)
|
|
804
|
+
* ∧ ctx_matches("approval.decision", "allow")
|
|
805
|
+
* ∧ time_since("ctx(approval.role, role)") ≤ maxSeconds
|
|
806
|
+
* ))
|
|
807
|
+
*
|
|
808
|
+
* Pairs with ``observeApproval({role, decision})`` on the integration
|
|
809
|
+
* side.
|
|
810
|
+
*/
|
|
811
|
+
export function approvalActive(action, role, maxSeconds) {
|
|
812
|
+
ensureNonEmpty(action, "approvalActive", "action");
|
|
813
|
+
ensureNonEmpty(role, "approvalActive", "role");
|
|
814
|
+
if (typeof maxSeconds !== "number" || !Number.isFinite(maxSeconds) || maxSeconds < 0) {
|
|
815
|
+
throw new Error(`approval_active: max_seconds must be a non-negative number (got ${maxSeconds}).`);
|
|
816
|
+
}
|
|
817
|
+
// Match Python: ``role_key = f"ctx(approval.role, {role})"`` — exact
|
|
818
|
+
// string used as the time_since target. predKey would escape spaces /
|
|
819
|
+
// commas; keep the unescaped form so the time_since extractor passes
|
|
820
|
+
// the right key through to grounding's ``state.last_ts`` lookup.
|
|
821
|
+
const roleKey = `ctx(approval.role, ${role})`;
|
|
822
|
+
const escaped = role.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
823
|
+
const body = new And(new And(new Atom("ctx_matches", ["approval.role", escaped]), new Atom("ctx_matches", ["approval.decision", "allow"])), new Le(new Var("time_since", roleKey), new Const(maxSeconds)));
|
|
824
|
+
const f = new G(new Implies(called(action), body));
|
|
825
|
+
return {
|
|
826
|
+
formula: f,
|
|
827
|
+
desc: `${action} requires active ${role} approval (≤${maxSeconds}s old)`,
|
|
828
|
+
patternName: "approval_active",
|
|
829
|
+
liveness: false,
|
|
830
|
+
};
|
|
831
|
+
}
|
|
832
|
+
/**
|
|
833
|
+
* @deprecated — use :func:`mutualExclusion` instead.
|
|
834
|
+
*
|
|
835
|
+
* In sequential traces, two tool calls are always at different
|
|
836
|
+
* timesteps, so the formula ``G(¬(called(A) ∧ called(B)))`` is
|
|
837
|
+
* trivially satisfied and can never detect violations. Delegates to
|
|
838
|
+
* ``mutualExclusion`` for correct behavior; kept so yaml authored
|
|
839
|
+
* against Python's deprecated entry still loads.
|
|
840
|
+
*/
|
|
841
|
+
export function neverTogether(a, b) {
|
|
842
|
+
const me = mutualExclusion(a, b);
|
|
843
|
+
return {
|
|
844
|
+
...me,
|
|
845
|
+
patternName: "never_together",
|
|
846
|
+
desc: `${a} and ${b} must never occur together`,
|
|
847
|
+
};
|
|
848
|
+
}
|
|
585
849
|
//# sourceMappingURL=patterns.js.map
|
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-log.d.ts","sourceRoot":"","sources":["../../src/core/session-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;
|
|
1
|
+
{"version":3,"file":"session-log.d.ts","sourceRoot":"","sources":["../../src/core/session-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAsFH;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAA0B,EACpC,KAAK,GAAE,MAAuB,GAC7B,MAAM,EAAE,CAgEV;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,SAAS,GACT,UAAU,GACV,WAAW,GACX,QAAQ,GACR,UAAU,GACV,YAAY,CAAC;AAEjB,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB;;;;;;;OAOG;IACH,QAAQ,EAAE,KAAK,GAAG,KAAK,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE;QACN,MAAM,EAAE,aAAa,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,gDAAgD;IAChD,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,aAAa;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB;IA8B/D,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;CAcjC"}
|
package/dist/core/session-log.js
CHANGED
|
@@ -52,7 +52,26 @@ const SAFE_AGENT_ID_RE = /[^A-Za-z0-9._:\-]/g;
|
|
|
52
52
|
function sanitizeAgentId(agentId) {
|
|
53
53
|
if (!agentId)
|
|
54
54
|
return "_unknown";
|
|
55
|
-
|
|
55
|
+
// Char-loop strip (ReDoS-free): both anchored ``[._]+`` regex forms
|
|
56
|
+
// still get flagged by CodeQL js/polynomial-redos because the engine
|
|
57
|
+
// is conservative about ``+$`` patterns even though they're linear.
|
|
58
|
+
// Equivalent to Python ``str.strip("._")``.
|
|
59
|
+
const replaced = agentId.replace(SAFE_AGENT_ID_RE, "_");
|
|
60
|
+
let start = 0;
|
|
61
|
+
while (start < replaced.length) {
|
|
62
|
+
const c = replaced.charCodeAt(start);
|
|
63
|
+
if (c !== 46 /* . */ && c !== 95 /* _ */)
|
|
64
|
+
break;
|
|
65
|
+
start++;
|
|
66
|
+
}
|
|
67
|
+
let end = replaced.length;
|
|
68
|
+
while (end > start) {
|
|
69
|
+
const c = replaced.charCodeAt(end - 1);
|
|
70
|
+
if (c !== 46 && c !== 95)
|
|
71
|
+
break;
|
|
72
|
+
end--;
|
|
73
|
+
}
|
|
74
|
+
const cleaned = replaced.slice(start, end);
|
|
56
75
|
if (!cleaned || cleaned === "." || cleaned === "..")
|
|
57
76
|
return "_unknown";
|
|
58
77
|
return cleaned.slice(0, 128);
|