@sponsio/sdk 0.1.0-alpha.3 → 0.1.0

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 (176) hide show
  1. package/bin/sponsio.cjs +11 -0
  2. package/contracts/capability/credentials.yaml +8 -8
  3. package/contracts/capability/database.yaml +6 -6
  4. package/contracts/capability/filesystem-strict.yaml +4 -4
  5. package/contracts/capability/filesystem.yaml +9 -9
  6. package/contracts/capability/host-config-integrity.yaml +285 -0
  7. package/contracts/capability/self-modify.yaml +214 -9
  8. package/contracts/capability/shell.yaml +25 -32
  9. package/contracts/capability/subagent.yaml +5 -5
  10. package/contracts/core/llm_safety.yaml +23 -13
  11. package/contracts/incident/claude-code-secret-bypass.yaml +10 -11
  12. package/contracts/incident/cursor-railway-wipe.yaml +3 -3
  13. package/contracts/incident/mcp-composition.yaml +12 -12
  14. package/contracts/incident/openclaw.yaml +53 -45
  15. package/contracts/incident/subagent-escape.yaml +4 -4
  16. package/dist/cli/check.d.ts +2 -0
  17. package/dist/cli/check.d.ts.map +1 -0
  18. package/dist/cli/check.js +283 -0
  19. package/dist/cli/check.js.map +1 -0
  20. package/dist/cli/cli.d.ts +25 -0
  21. package/dist/cli/cli.d.ts.map +1 -0
  22. package/dist/cli/cli.js +459 -0
  23. package/dist/cli/cli.js.map +1 -0
  24. package/dist/cli/config.d.ts +88 -0
  25. package/dist/cli/config.d.ts.map +1 -0
  26. package/dist/cli/config.js +243 -0
  27. package/dist/cli/config.js.map +1 -0
  28. package/dist/cli/demo.d.ts +12 -0
  29. package/dist/cli/demo.d.ts.map +1 -0
  30. package/dist/cli/demo.js +350 -0
  31. package/dist/cli/demo.js.map +1 -0
  32. package/dist/cli/doctor.d.ts +11 -0
  33. package/dist/cli/doctor.d.ts.map +1 -0
  34. package/dist/cli/doctor.js +201 -0
  35. package/dist/cli/doctor.js.map +1 -0
  36. package/dist/cli/eval.d.ts +2 -0
  37. package/dist/cli/eval.d.ts.map +1 -0
  38. package/dist/cli/eval.js +361 -0
  39. package/dist/cli/eval.js.map +1 -0
  40. package/dist/cli/explain.d.ts +2 -0
  41. package/dist/cli/explain.d.ts.map +1 -0
  42. package/dist/cli/explain.js +266 -0
  43. package/dist/cli/explain.js.map +1 -0
  44. package/dist/cli/export-sessions.d.ts +2 -0
  45. package/dist/cli/export-sessions.d.ts.map +1 -0
  46. package/dist/cli/export-sessions.js +182 -0
  47. package/dist/cli/export-sessions.js.map +1 -0
  48. package/dist/cli/export.d.ts +2 -0
  49. package/dist/cli/export.d.ts.map +1 -0
  50. package/dist/cli/export.js +222 -0
  51. package/dist/cli/export.js.map +1 -0
  52. package/dist/cli/extractors/common.d.ts +27 -0
  53. package/dist/cli/extractors/common.d.ts.map +1 -0
  54. package/dist/cli/extractors/common.js +107 -0
  55. package/dist/cli/extractors/common.js.map +1 -0
  56. package/dist/cli/extractors/generic.d.ts +37 -0
  57. package/dist/cli/extractors/generic.d.ts.map +1 -0
  58. package/dist/cli/extractors/generic.js +185 -0
  59. package/dist/cli/extractors/generic.js.map +1 -0
  60. package/dist/cli/extractors/langchain.d.ts +18 -0
  61. package/dist/cli/extractors/langchain.d.ts.map +1 -0
  62. package/dist/cli/extractors/langchain.js +86 -0
  63. package/dist/cli/extractors/langchain.js.map +1 -0
  64. package/dist/cli/extractors/vercel.d.ts +17 -0
  65. package/dist/cli/extractors/vercel.d.ts.map +1 -0
  66. package/dist/cli/extractors/vercel.js +46 -0
  67. package/dist/cli/extractors/vercel.js.map +1 -0
  68. package/dist/cli/index.d.ts +38 -0
  69. package/dist/cli/index.d.ts.map +1 -0
  70. package/dist/cli/index.js +146 -0
  71. package/dist/cli/index.js.map +1 -0
  72. package/dist/cli/init.d.ts +2 -0
  73. package/dist/cli/init.d.ts.map +1 -0
  74. package/dist/cli/init.js +177 -0
  75. package/dist/cli/init.js.map +1 -0
  76. package/dist/cli/mode.d.ts +2 -0
  77. package/dist/cli/mode.d.ts.map +1 -0
  78. package/dist/cli/mode.js +71 -0
  79. package/dist/cli/mode.js.map +1 -0
  80. package/dist/cli/onboard.d.ts +88 -0
  81. package/dist/cli/onboard.d.ts.map +1 -0
  82. package/dist/cli/onboard.js +758 -0
  83. package/dist/cli/onboard.js.map +1 -0
  84. package/dist/cli/otlp.d.ts +27 -0
  85. package/dist/cli/otlp.d.ts.map +1 -0
  86. package/dist/cli/otlp.js +79 -0
  87. package/dist/cli/otlp.js.map +1 -0
  88. package/dist/cli/package.json +1 -0
  89. package/dist/cli/packs.d.ts +16 -0
  90. package/dist/cli/packs.d.ts.map +1 -0
  91. package/dist/cli/packs.js +184 -0
  92. package/dist/cli/packs.js.map +1 -0
  93. package/dist/cli/patterns.d.ts +15 -0
  94. package/dist/cli/patterns.d.ts.map +1 -0
  95. package/dist/cli/patterns.js +135 -0
  96. package/dist/cli/patterns.js.map +1 -0
  97. package/dist/cli/prompt.d.ts +2 -0
  98. package/dist/cli/prompt.d.ts.map +1 -0
  99. package/dist/cli/prompt.js +54 -0
  100. package/dist/cli/prompt.js.map +1 -0
  101. package/dist/cli/replay.d.ts +2 -0
  102. package/dist/cli/replay.d.ts.map +1 -0
  103. package/dist/cli/replay.js +196 -0
  104. package/dist/cli/replay.js.map +1 -0
  105. package/dist/cli/report.d.ts +57 -0
  106. package/dist/cli/report.d.ts.map +1 -0
  107. package/dist/cli/report.js +298 -0
  108. package/dist/cli/report.js.map +1 -0
  109. package/dist/cli/scan.d.ts +2 -0
  110. package/dist/cli/scan.d.ts.map +1 -0
  111. package/dist/cli/scan.js +172 -0
  112. package/dist/cli/scan.js.map +1 -0
  113. package/dist/cli/skill.d.ts +15 -0
  114. package/dist/cli/skill.d.ts.map +1 -0
  115. package/dist/cli/skill.js +131 -0
  116. package/dist/cli/skill.js.map +1 -0
  117. package/dist/cli/tokens.d.ts +31 -0
  118. package/dist/cli/tokens.d.ts.map +1 -0
  119. package/dist/cli/tokens.js +73 -0
  120. package/dist/cli/tokens.js.map +1 -0
  121. package/dist/cli/types.d.ts +46 -0
  122. package/dist/cli/types.d.ts.map +1 -0
  123. package/dist/cli/types.js +3 -0
  124. package/dist/cli/types.js.map +1 -0
  125. package/dist/cli/validate.d.ts +19 -0
  126. package/dist/cli/validate.d.ts.map +1 -0
  127. package/dist/cli/validate.js +205 -0
  128. package/dist/cli/validate.js.map +1 -0
  129. package/dist/cli/zod.d.ts +36 -0
  130. package/dist/cli/zod.d.ts.map +1 -0
  131. package/dist/cli/zod.js +226 -0
  132. package/dist/cli/zod.js.map +1 -0
  133. package/dist/contract.d.ts +13 -13
  134. package/dist/contract.d.ts.map +1 -1
  135. package/dist/contract.js +21 -21
  136. package/dist/contract.js.map +1 -1
  137. package/dist/core/config-loader.d.ts +1 -1
  138. package/dist/core/config-loader.js +35 -17
  139. package/dist/core/config-loader.js.map +1 -1
  140. package/dist/core/grounding.d.ts +49 -2
  141. package/dist/core/grounding.d.ts.map +1 -1
  142. package/dist/core/grounding.js +302 -142
  143. package/dist/core/grounding.js.map +1 -1
  144. package/dist/core/nl-parser.d.ts.map +1 -1
  145. package/dist/core/nl-parser.js +74 -2
  146. package/dist/core/nl-parser.js.map +1 -1
  147. package/dist/core/pattern-factory.d.ts +4 -4
  148. package/dist/core/pattern-factory.d.ts.map +1 -1
  149. package/dist/core/pattern-factory.js +46 -4
  150. package/dist/core/pattern-factory.js.map +1 -1
  151. package/dist/core/patterns.d.ts +78 -4
  152. package/dist/core/patterns.d.ts.map +1 -1
  153. package/dist/core/patterns.js +211 -3
  154. package/dist/core/patterns.js.map +1 -1
  155. package/dist/core/spans.d.ts +1 -1
  156. package/dist/core/spans.d.ts.map +1 -1
  157. package/dist/core/spans.js.map +1 -1
  158. package/dist/core/sto.d.ts +32 -62
  159. package/dist/core/sto.d.ts.map +1 -1
  160. package/dist/core/sto.js +32 -90
  161. package/dist/core/sto.js.map +1 -1
  162. package/dist/index.d.ts +77 -32
  163. package/dist/index.d.ts.map +1 -1
  164. package/dist/index.js +172 -133
  165. package/dist/index.js.map +1 -1
  166. package/dist/integrations/openai-agents.d.ts.map +1 -1
  167. package/dist/integrations/openai-agents.js +5 -4
  168. package/dist/integrations/openai-agents.js.map +1 -1
  169. package/dist/render/tokens.d.ts.map +1 -1
  170. package/dist/render/tokens.js +1 -0
  171. package/dist/render/tokens.js.map +1 -1
  172. package/package.json +28 -4
  173. package/prompts/onboard.md +250 -0
  174. package/prompts/refresh.md +118 -0
  175. package/prompts/scan.md +125 -0
  176. package/skills/SKILL.md +502 -0
@@ -7,7 +7,7 @@
7
7
  * "tool `X` at most 3 times"
8
8
  * "tools `A` and `B` are mutually exclusive"
9
9
  */
10
- import { mustPrecede, alwaysFollowedBy, rateLimit, idempotent, mutualExclusion, noReversal, cooldown, deadline, } from "./patterns.js";
10
+ import { mustPrecede, alwaysFollowedBy, rateLimit, idempotent, mutualExclusion, noReversal, cooldown, deadline, maxLength, noPii, noKeywords, } from "./patterns.js";
11
11
  import { Atom } from "./formula.js";
12
12
  /** Extract backtick-wrapped tool names from NL text. */
13
13
  function extractTools(text) {
@@ -100,7 +100,79 @@ function parseBareCalledAtom(text, tools) {
100
100
  }
101
101
  return null;
102
102
  }
103
+ // Response-content NL patterns — matched BEFORE the generic keyword
104
+ // rules so length / PII / no-keyword constraints route to the
105
+ // response-content det pipeline. Mirrors Python's
106
+ // ``_try_response_content_patterns``.
107
+ const LENGTH_PATTERN = /(?:response|output)\s+(?:must\s+be\s+)?(?:under|at\s+most|no\s+more\s+than|fewer\s+than|max(?:imum)?)\s+(\d+)\s+(words?|characters?|chars?)/i;
108
+ const NO_PII_PATTERN = /(?:response|output).*(?:must|should)\s+not\s+contain\s+(?:any\s+)?(pii|personal\s+info(?:rmation)?|ssns?|credit[\s-]?cards?|emails?(?:\s+address(?:es)?)?|phones?(?:\s+numbers?)?)/i;
109
+ const NO_KEYWORD_PATTERN = /(?:response|output)\s+(?:must|should)\s+not\s+(?:contain|include|mention)\s+(?:the\s+)?(?:words?|keywords?|terms?|phrase)\s+[`"']?([^`"']+)[`"']?/i;
110
+ const PII_KEYWORD_TO_FIELDS = {
111
+ ssn: ["ssn"],
112
+ ssns: ["ssn"],
113
+ "credit card": ["credit_card"],
114
+ "credit cards": ["credit_card"],
115
+ "credit-card": ["credit_card"],
116
+ "credit-cards": ["credit_card"],
117
+ email: ["email"],
118
+ emails: ["email"],
119
+ "email address": ["email"],
120
+ "email addresses": ["email"],
121
+ phone: ["phone"],
122
+ phones: ["phone"],
123
+ "phone number": ["phone"],
124
+ "phone numbers": ["phone"],
125
+ };
126
+ function tryResponseContent(text) {
127
+ // max_length
128
+ let m = text.match(LENGTH_PATTERN);
129
+ if (m) {
130
+ const n = parseInt(m[1], 10);
131
+ const unit = m[2].toLowerCase();
132
+ try {
133
+ if (unit.includes("char"))
134
+ return maxLength({ maxChars: n, desc: text });
135
+ return maxLength({ maxWords: n, desc: text });
136
+ }
137
+ catch {
138
+ return null;
139
+ }
140
+ }
141
+ // no_pii — narrow to specific category if mentioned, else full union.
142
+ m = text.match(NO_PII_PATTERN);
143
+ if (m) {
144
+ const raw = m[1].toLowerCase().replace(/-/g, " ").replace(/\s+/g, " ").trim();
145
+ const fields = PII_KEYWORD_TO_FIELDS[raw];
146
+ try {
147
+ return noPii(fields);
148
+ }
149
+ catch {
150
+ return null;
151
+ }
152
+ }
153
+ // no_keywords
154
+ m = text.match(NO_KEYWORD_PATTERN);
155
+ if (m) {
156
+ const raw = m[1].trim().replace(/\.$/, "");
157
+ const words = raw.split(/[,\s]+/).map((w) => w.trim()).filter((w) => w.length > 0);
158
+ if (words.length === 0)
159
+ return null;
160
+ try {
161
+ return noKeywords(words);
162
+ }
163
+ catch {
164
+ return null;
165
+ }
166
+ }
167
+ return null;
168
+ }
103
169
  export function parseNl(text) {
170
+ // P2 response-content patterns first — keep them ahead of the
171
+ // generic keyword cascade so "response must not contain emails"
172
+ // doesn't get swallowed by something more general.
173
+ const respFormula = tryResponseContent(text);
174
+ if (respFormula)
175
+ return respFormula;
104
176
  const lower = text.toLowerCase();
105
177
  const tools = extractTools(text);
106
178
  for (const rule of KEYWORD_RULES) {
@@ -146,7 +218,7 @@ export function parseNl(text) {
146
218
  continue;
147
219
  }
148
220
  }
149
- // Fallback: single-atom phrasings used in A/E contract assumptions.
221
+ // Fallback: single-atom phrasings used in A/G contract assumptions.
150
222
  return parseBareCalledAtom(text, tools);
151
223
  }
152
224
  //# sourceMappingURL=nl-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nl-parser.js","sourceRoot":"","sources":["../../src/core/nl-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nl-parser.js","sourceRoot":"","sources":["../../src/core/nl-parser.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@
16
16
  * ``A: { pattern: called, args: [read, ".env"] }``), so the TS loader
17
17
  * needs to build them from the same shape.
18
18
  */
19
- import { type DetFormula, type AssumptionEnforcementPair } from "./patterns.js";
19
+ import { type DetFormula, type AssumeGuaranteePair } from "./patterns.js";
20
20
  /** Error raised when a pattern name is unknown or args don't line up. */
21
21
  export declare class PatternFactoryError extends Error {
22
22
  }
@@ -30,9 +30,9 @@ export declare class PatternFactoryError extends Error {
30
30
  * arrays. We coerce leniently so a hand-authored yaml doesn't
31
31
  * crash on ``args: ["3"]`` instead of ``args: [3]``.
32
32
  */
33
- export declare function buildPatternByName(pattern: string, args: unknown[]): DetFormula | AssumptionEnforcementPair | null;
34
- /** Type guard: is this an A/E pair (``untrusted_source_gate`` / ``confirm_after_source``)? */
35
- export declare function isAePair(v: DetFormula | AssumptionEnforcementPair): v is AssumptionEnforcementPair;
33
+ export declare function buildPatternByName(pattern: string, args: unknown[]): DetFormula | AssumeGuaranteePair | null;
34
+ /** Type guard: is this an A/G pair (``untrusted_source_gate`` / ``confirm_after_source``)? */
35
+ export declare function isAgPair(v: DetFormula | AssumeGuaranteePair): v is AssumeGuaranteePair;
36
36
  /** All det pattern names this factory can build. Used by ``patterns`` CLI + tests. */
37
37
  export declare const KNOWN_DET_PATTERNS: readonly string[];
38
38
  //# sourceMappingURL=pattern-factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pattern-factory.d.ts","sourceRoot":"","sources":["../../src/core/pattern-factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAqCL,KAAK,UAAU,EACf,KAAK,yBAAyB,EAC/B,MAAM,eAAe,CAAC;AAGvB,yEAAyE;AACzE,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AAiDjD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,EAAE,GACd,UAAU,GAAG,yBAAyB,GAAG,IAAI,CAiO/C;AAED,8FAA8F;AAC9F,wBAAgB,QAAQ,CACtB,CAAC,EAAE,UAAU,GAAG,yBAAyB,GACxC,CAAC,IAAI,yBAAyB,CAKhC;AAED,sFAAsF;AACtF,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAuC9C,CAAC"}
1
+ {"version":3,"file":"pattern-factory.d.ts","sourceRoot":"","sources":["../../src/core/pattern-factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EA6CL,KAAK,UAAU,EACf,KAAK,mBAAmB,EACzB,MAAM,eAAe,CAAC;AAGvB,yEAAyE;AACzE,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AAiDjD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,EAAE,GACd,UAAU,GAAG,mBAAmB,GAAG,IAAI,CAyRzC;AAED,8FAA8F;AAC9F,wBAAgB,QAAQ,CACtB,CAAC,EAAE,UAAU,GAAG,mBAAmB,GAClC,CAAC,IAAI,mBAAmB,CAK1B;AAED,sFAAsF;AACtF,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EA+C9C,CAAC"}
@@ -16,7 +16,7 @@
16
16
  * ``A: { pattern: called, args: [read, ".env"] }``), so the TS loader
17
17
  * needs to build them from the same shape.
18
18
  */
19
- import { mustPrecede, alwaysFollowedBy, noReversal, requiresPermission, noDataLeak, mutualExclusion, rateLimit, idempotent, deadline, mustConfirm, cooldown, segregationOfDuty, boundedRetry, loopDetection, dryRunBeforeCommit, backupBeforeDestructive, auditAfter, approvalFreshness, sanitizedBeforeSink, duplicateCallLimit, argAllowlist, argBlacklist, scopeLimit, argLengthLimit, dataIntact, destructiveActionGate, untrustedSourceGate, requiredStepsCompletion, toolAllowlist, dangerousBashCommands, dangerousSqlVerbs, irreversibleOnce, confirmAfterSource, tokenBudget, argValueRange, delegationDepthLimit, } from "./patterns.js";
19
+ import { mustPrecede, alwaysFollowedBy, noReversal, requiresPermission, noDataLeak, mutualExclusion, rateLimit, idempotent, deadline, mustConfirm, cooldown, segregationOfDuty, boundedRetry, loopDetection, dryRunBeforeCommit, backupBeforeDestructive, auditAfter, approvalFreshness, sanitizedBeforeSink, duplicateCallLimit, argAllowlist, argBlacklist, scopeLimit, argLengthLimit, dataIntact, destructiveActionGate, untrustedSourceGate, requiredStepsCompletion, toolAllowlist, dangerousBashCommands, dangerousSqlVerbs, irreversibleOnce, confirmAfterSource, tokenBudget, argValueRange, delegationDepthLimit, maxLength, noPii, noKeywords, ctxRequired, ctxMatchesRequired, timeSince, approvalActive, neverTogether, } from "./patterns.js";
20
20
  import { Atom } from "./formula.js";
21
21
  /** Error raised when a pattern name is unknown or args don't line up. */
22
22
  export class PatternFactoryError extends Error {
@@ -169,14 +169,48 @@ export function buildPatternByName(pattern, args) {
169
169
  return tokenBudget(asNum(needArg(args, 0, "max_tokens"), "max_tokens"), args.length >= 2 ? asStr(args[1], "scope") : undefined);
170
170
  case "delegation_depth_limit":
171
171
  return delegationDepthLimit(asNum(needArg(args, 0, "max_depth"), "max_depth"));
172
+ // Layer 3 — response content
173
+ case "max_length": {
174
+ // Python signature: max_length(max_words=None, max_chars=None, desc="")
175
+ // YAML positional: [max_words, max_chars] (either may be null/missing).
176
+ const maxWords = args.length >= 1 && args[0] != null
177
+ ? asNum(args[0], "max_words")
178
+ : undefined;
179
+ const maxChars = args.length >= 2 && args[1] != null
180
+ ? asNum(args[1], "max_chars")
181
+ : undefined;
182
+ return maxLength({ maxWords, maxChars });
183
+ }
184
+ case "no_pii": {
185
+ // Python signature: no_pii(fields=None, desc="")
186
+ const fields = args.length >= 1 && args[0] != null
187
+ ? asStrList(args[0], "fields")
188
+ : undefined;
189
+ return noPii(fields);
190
+ }
191
+ case "no_keywords":
192
+ return noKeywords(asStrList(needArg(args, 0, "words"), "words"));
193
+ // Layer 3 — external-fact (ctx) patterns
194
+ case "ctx_required":
195
+ return ctxRequired(asStr(needArg(args, 0, "tool"), "tool"), asStr(needArg(args, 1, "key"), "key"), asStrList(needArg(args, 2, "allowed_values"), "allowed_values"));
196
+ case "ctx_matches_required":
197
+ return ctxMatchesRequired(asStr(needArg(args, 0, "tool"), "tool"), asStr(needArg(args, 1, "key"), "key"), asStr(needArg(args, 2, "pattern"), "pattern"));
198
+ // Time-window patterns
199
+ case "time_since":
200
+ return timeSince(asStr(needArg(args, 0, "predicate_key"), "predicate_key"), asNum(needArg(args, 1, "max_seconds"), "max_seconds"));
201
+ case "approval_active":
202
+ return approvalActive(asStr(needArg(args, 0, "action"), "action"), asStr(needArg(args, 1, "role"), "role"), asNum(needArg(args, 2, "max_seconds"), "max_seconds"));
203
+ // Deprecated alias (mirrors Python — delegates to mutual_exclusion).
204
+ case "never_together":
205
+ return neverTogether(asStr(needArg(args, 0, "a"), "a"), asStr(needArg(args, 1, "b"), "b"));
172
206
  default:
173
207
  return null;
174
208
  }
175
209
  }
176
- /** Type guard: is this an A/E pair (``untrusted_source_gate`` / ``confirm_after_source``)? */
177
- export function isAePair(v) {
210
+ /** Type guard: is this an A/G pair (``untrusted_source_gate`` / ``confirm_after_source``)? */
211
+ export function isAgPair(v) {
178
212
  return (v.assumption !== undefined &&
179
- v.enforcement !== undefined);
213
+ v.guarantee !== undefined);
180
214
  }
181
215
  /** All det pattern names this factory can build. Used by ``patterns`` CLI + tests. */
182
216
  export const KNOWN_DET_PATTERNS = Object.freeze([
@@ -218,5 +252,13 @@ export const KNOWN_DET_PATTERNS = Object.freeze([
218
252
  "irreversible_once",
219
253
  "token_budget",
220
254
  "delegation_depth_limit",
255
+ "max_length",
256
+ "no_pii",
257
+ "no_keywords",
258
+ "ctx_required",
259
+ "ctx_matches_required",
260
+ "time_since",
261
+ "approval_active",
262
+ "never_together",
221
263
  ]);
222
264
  //# sourceMappingURL=pattern-factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pattern-factory.js","sourceRoot":"","sources":["../../src/core/pattern-factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,SAAS,EACT,UAAU,EACV,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,cAAc,EACd,UAAU,EACV,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,oBAAoB,GAGrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,yEAAyE;AACzE,MAAM,OAAO,mBAAoB,SAAQ,KAAK;CAAG;AAEjD,SAAS,KAAK,CAAC,CAAU,EAAE,KAAa;IACtC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,IAAI,mBAAmB,CAC3B,uBAAuB,KAAK,SAAS,OAAO,CAAC,EAAE,CAChD,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,CAAU,EAAE,KAAa;IACtC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,IAAI,mBAAmB,CAC3B,uBAAuB,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CACzD,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,CAAU,EAAE,KAAa;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,mBAAmB,CAC3B,gCAAgC,KAAK,SAAS,OAAO,CAAC,EAAE,CACzD,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,OAAO,CAAI,IAAe,EAAE,CAAS,EAAE,KAAa;IAC3D,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,mBAAmB,CAAC,gBAAgB,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,CAAM,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CACpB,IAAU,EACV,WAAmB,EACnB,IAAY;IAEZ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC/D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,IAAe;IAEf,QAAQ,OAAO,EAAE,CAAC;QAChB,gEAAgE;QAChE,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;YACrD,+DAA+D;YAC/D,2DAA2D;YAC3D,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACrB,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;gBACzD,OAAO,aAAa,CAClB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAC/C,aAAa,EACb,eAAe,IAAI,KAAK,cAAc,GAAG,CAC1C,CAAC;YACJ,CAAC;YACD,OAAO,aAAa,CAClB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,EAC1B,QAAQ,EACR,UAAU,IAAI,GAAG,CAClB,CAAC;QACJ,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;YACrD,MAAM,cAAc,GAAG,KAAK,CAC1B,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,iBAAiB,CAAC,EACnC,iBAAiB,CAClB,CAAC;YACF,OAAO,aAAa,CAClB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAC/C,aAAa,EACb,eAAe,IAAI,KAAK,cAAc,GAAG,CAC1C,CAAC;QACJ,CAAC;QAED,SAAS;QACT,KAAK,cAAc;YACjB,OAAO,WAAW,CAChB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAC3C,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAC1C,CAAC;QACJ,KAAK,cAAc;YACjB,OAAO,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAClE,KAAK,qBAAqB;YACxB,OAAO,kBAAkB,CACvB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EACvC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,CACpD,CAAC;QACJ,KAAK,cAAc;YACjB,OAAO,UAAU,CACf,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAC3C,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAChD,CAAC;QACJ,KAAK,yBAAyB;YAC5B,OAAO,qBAAqB,CAC1B,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EACvC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAC/D,CAAC;QAEJ,aAAa;QACb,KAAK,aAAa;YAChB,OAAO,UAAU,CACf,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EACnD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,eAAe,CAAC,EAAE,eAAe,CAAC,CAC1D,CAAC;QACJ,KAAK,qBAAqB;YACxB,OAAO,iBAAiB,CACtB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EACjC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAClC,CAAC;QACJ,KAAK,oBAAoB;YACvB,OAAO,gBAAgB,CACrB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAC7C,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAChD,CAAC;QACJ,KAAK,2BAA2B;YAC9B,OAAO,uBAAuB,CAC5B,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAC7C,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAC9C,CAAC;QAEJ,cAAc;QACd,KAAK,YAAY;YACf,OAAO,SAAS,CACd,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EACvC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAClD,CAAC;QACJ,KAAK,YAAY;YACf,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7D,KAAK,UAAU;YACb,OAAO,QAAQ,CACb,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAC3C,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAC1C,CAAC;QACJ,KAAK,UAAU;YACb,OAAO,QAAQ,CACb,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAC7C,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAC3C,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAC1C,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO,YAAY,CACjB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAC3C,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,EAAE,aAAa,CAAC,CACtD,CAAC;QACJ,KAAK,gBAAgB;YACnB,OAAO,aAAa,CAClB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAC3C,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,CAC9D,CAAC;QACJ,KAAK,uBAAuB;YAC1B,OAAO,kBAAkB,CACvB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAC7C,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAC5C,CAAC;QACJ,KAAK,2BAA2B;YAC9B,OAAO,uBAAuB,CAC5B,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAC3C,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAC5C,CAAC;QACJ,KAAK,aAAa;YAChB,OAAO,UAAU,CACf,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAC3C,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAC1C,CAAC;QACJ,KAAK,oBAAoB;YACvB,OAAO,iBAAiB,CACtB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAC/C,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAC3C,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAC1C,CAAC;QACJ,KAAK,uBAAuB;YAC1B,OAAO,mBAAmB,CACxB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAC3C,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EACjD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CACxC,CAAC;QACJ,KAAK,sBAAsB;YACzB,OAAO,kBAAkB,CACvB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EACvC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,cAAc,CAAC,EAAE,cAAc,CAAC,EACvD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAClD,CAAC;QAEJ,YAAY;QACZ,KAAK,kBAAkB;YACrB,OAAO,eAAe,CACpB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EACjC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAClC,CAAC;QACJ,KAAK,gBAAgB;YACnB,OAAO,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,eAAe,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;QAEtF,kBAAkB;QAClB,KAAK,eAAe;YAClB,OAAO,YAAY,CACjB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EACvC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EACzC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CACpD,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO,YAAY,CACjB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EACvC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EACzC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CACpD,CAAC;QACJ,KAAK,aAAa;YAChB,OAAO,UAAU,CACf,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EACvC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,eAAe,CAAC,EAAE,eAAe,CAAC,CAC9D,CAAC;QACJ,KAAK,kBAAkB;YACrB,OAAO,cAAc,CACnB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EACvC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EACzC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAClD,CAAC;QACJ,KAAK,aAAa;YAChB,OAAO,UAAU,CACf,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EACnD,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,CAChE,CAAC;QACJ,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpF,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpF,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;QAED,mBAAmB;QACnB,KAAK,uBAAuB;YAC1B,OAAO,mBAAmB,CACxB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAC3C,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EACvC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CACzD,CAAC;QACJ,KAAK,sBAAsB;YACzB,OAAO,kBAAkB,CACvB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAC3C,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAC5C,CAAC;QACJ,KAAK,yBAAyB;YAC5B,OAAO,qBAAqB,CAC1B,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAC/D,CAAC;QACJ,KAAK,qBAAqB;YACxB,OAAO,iBAAiB,CACtB,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EACrD,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAC/D,CAAC;QACJ,KAAK,mBAAmB;YACtB,OAAO,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEvE,WAAW;QACX,KAAK,cAAc;YACjB,OAAO,WAAW,CAChB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EACnD,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CACvD,CAAC;QACJ,KAAK,wBAAwB;YAC3B,OAAO,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QAEjF;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,QAAQ,CACtB,CAAyC;IAEzC,OAAO,CACJ,CAA+B,CAAC,UAAU,KAAK,SAAS;QACxD,CAA+B,CAAC,WAAW,KAAK,SAAS,CAC3D,CAAC;AACJ,CAAC;AAED,sFAAsF;AACtF,MAAM,CAAC,MAAM,kBAAkB,GAAsB,MAAM,CAAC,MAAM,CAAC;IACjE,QAAQ;IACR,aAAa;IACb,cAAc;IACd,cAAc;IACd,qBAAqB;IACrB,cAAc;IACd,yBAAyB;IACzB,aAAa;IACb,qBAAqB;IACrB,oBAAoB;IACpB,2BAA2B;IAC3B,YAAY;IACZ,YAAY;IACZ,UAAU;IACV,UAAU;IACV,eAAe;IACf,gBAAgB;IAChB,uBAAuB;IACvB,2BAA2B;IAC3B,aAAa;IACb,oBAAoB;IACpB,uBAAuB;IACvB,sBAAsB;IACtB,kBAAkB;IAClB,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,aAAa;IACb,kBAAkB;IAClB,aAAa;IACb,iBAAiB;IACjB,uBAAuB;IACvB,sBAAsB;IACtB,yBAAyB;IACzB,qBAAqB;IACrB,mBAAmB;IACnB,cAAc;IACd,wBAAwB;CACzB,CAAC,CAAC"}
1
+ {"version":3,"file":"pattern-factory.js","sourceRoot":"","sources":["../../src/core/pattern-factory.ts"],"names":[],"mappings":"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"}
@@ -24,9 +24,9 @@ export interface DetFormula {
24
24
  patternName: string;
25
25
  liveness: boolean;
26
26
  }
27
- export interface AssumptionEnforcementPair {
27
+ export interface AssumeGuaranteePair {
28
28
  assumption: DetFormula;
29
- enforcement: DetFormula;
29
+ guarantee: DetFormula;
30
30
  }
31
31
  export declare function mustPrecede(before: string, after: string): DetFormula;
32
32
  export declare function alwaysFollowedBy(trigger: string, response: string): DetFormula;
@@ -54,14 +54,88 @@ export declare function scopeLimit(tool: string, allowedPaths: string[]): DetFor
54
54
  export declare function argLengthLimit(tool: string, param: string, maxChars: number): DetFormula;
55
55
  export declare function dataIntact(boundTool: string, originalPaths: string[]): DetFormula;
56
56
  export declare function destructiveActionGate(tool: string, approverRole?: string): DetFormula;
57
- export declare function untrustedSourceGate(source: string, sink: string, confirm?: string): AssumptionEnforcementPair;
57
+ export declare function untrustedSourceGate(source: string, sink: string, confirm?: string): AssumeGuaranteePair;
58
58
  export declare function requiredStepsCompletion(trigger: string, steps: string[]): DetFormula;
59
59
  export declare function toolAllowlist(allowedTools: string[]): DetFormula;
60
60
  export declare function dangerousBashCommands(forbidden?: string[]): DetFormula;
61
61
  export declare function dangerousSqlVerbs(tool?: string, forbidden?: string[]): DetFormula;
62
62
  export declare function irreversibleOnce(action: string): DetFormula;
63
- export declare function confirmAfterSource(source: string, action: string): AssumptionEnforcementPair;
63
+ export declare function confirmAfterSource(source: string, action: string): AssumeGuaranteePair;
64
64
  export declare function tokenBudget(maxTokens: number, scope?: string): DetFormula;
65
65
  export declare function argValueRange(tool: string, field: string, minVal?: number, maxVal?: number): DetFormula;
66
66
  export declare function delegationDepthLimit(maxDepth: number): DetFormula;
67
+ /**
68
+ * Response length must stay within the given word / character budget.
69
+ *
70
+ * Grounded against ``response_words`` / ``response_chars`` populated on
71
+ * ``llm_response`` events with content. At non-response events both
72
+ * default to 0, so the constraint is vacuously satisfied.
73
+ */
74
+ export declare function maxLength(opts: {
75
+ maxWords?: number;
76
+ maxChars?: number;
77
+ desc?: string;
78
+ }): DetFormula;
79
+ /**
80
+ * Response must not contain regex-detectable PII (SSN, CC, email, phone).
81
+ *
82
+ * Uses the ``llm_said`` grounding atom — the selected default patterns
83
+ * are joined with ``|`` and matched against each ``llm_response`` event.
84
+ * For semantic PII detection (names, contextual identifiers) use a sto
85
+ * atom; this pattern only covers syntactic PII.
86
+ */
87
+ export declare function noPii(fields?: string[]): DetFormula;
88
+ /**
89
+ * Response must not contain any of the given keywords. Keywords are
90
+ * escaped and joined into a word-boundary-anchored regex checked
91
+ * against each ``llm_response`` event via ``llm_said``.
92
+ *
93
+ * JS regex doesn't support inline ``(?i)`` flags — we lower-case the
94
+ * regex by expanding letters to ``[aA]``-style char classes, matching
95
+ * Python's ``(?i)`` semantics.
96
+ */
97
+ export declare function noKeywords(words: string[]): DetFormula;
98
+ /**
99
+ * When ``tool`` is called, ``ctx[key]`` must be one of ``allowedValues``.
100
+ * Fail-closed: missing context evaluates to violation, so forgetting
101
+ * to wire ``observeContext`` is loud rather than silent.
102
+ */
103
+ export declare function ctxRequired(tool: string, key: string, allowedValues: string[]): DetFormula;
104
+ /**
105
+ * When ``tool`` is called, ``ctx[key]`` must match the regex ``pattern``.
106
+ * Regex variant of :func:`ctxRequired` for cases where the allowed set
107
+ * is better expressed as a pattern than an exhaustive list.
108
+ */
109
+ export declare function ctxMatchesRequired(tool: string, key: string, pattern: string): DetFormula;
110
+ /**
111
+ * Constrain how recently a predicate was last true. The argument is the
112
+ * grounded predicate key string (e.g. ``"called(refund)"`` or
113
+ * ``"ctx(approval.role, alice)"``) — same convention as Python's
114
+ * ``time_since`` factory.
115
+ */
116
+ export declare function timeSince(predicateKey: string, maxSeconds: number): DetFormula;
117
+ /**
118
+ * Gate ``action`` on a recent allow-decision approval from ``role``.
119
+ *
120
+ * Compiles to::
121
+ * G(called(action) → (
122
+ * ctx_matches("approval.role", role)
123
+ * ∧ ctx_matches("approval.decision", "allow")
124
+ * ∧ time_since("ctx(approval.role, role)") ≤ maxSeconds
125
+ * ))
126
+ *
127
+ * Pairs with ``observeApproval({role, decision})`` on the integration
128
+ * side.
129
+ */
130
+ export declare function approvalActive(action: string, role: string, maxSeconds: number): DetFormula;
131
+ /**
132
+ * @deprecated — use :func:`mutualExclusion` instead.
133
+ *
134
+ * In sequential traces, two tool calls are always at different
135
+ * timesteps, so the formula ``G(¬(called(A) ∧ called(B)))`` is
136
+ * trivially satisfied and can never detect violations. Delegates to
137
+ * ``mutualExclusion`` for correct behavior; kept so yaml authored
138
+ * against Python's deprecated entry still loads.
139
+ */
140
+ export declare function neverTogether(a: string, b: string): DetFormula;
67
141
  //# sourceMappingURL=patterns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../src/core/patterns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../src/core/patterns.ts"],"names":[],"mappings":"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"}
@@ -187,7 +187,11 @@ export function deadline(trigger, action, steps) {
187
187
  formula: f,
188
188
  desc: `\`${action}\` must occur within ${steps} steps of \`${trigger}\``,
189
189
  patternName: "deadline",
190
- liveness: true,
190
+ // Bounded-window liveness: ``X(boundedEventually(action, steps))``
191
+ // is decidable on a bounded prefix (steps + 1 events past the
192
+ // trigger), so it CAN fire mid-session — runtime parity with
193
+ // Python ``deadline.liveness == False``.
194
+ liveness: false,
191
195
  };
192
196
  }
193
197
  export function mustConfirm(action) {
@@ -392,7 +396,7 @@ export function untrustedSourceGate(source, sink, confirm = "") {
392
396
  patternName: "untrusted_source_gate_assumption",
393
397
  liveness: false,
394
398
  },
395
- enforcement: mustPrecede(confirmAction, sink),
399
+ guarantee: mustPrecede(confirmAction, sink),
396
400
  };
397
401
  }
398
402
  export function requiredStepsCompletion(trigger, steps) {
@@ -531,7 +535,7 @@ export function confirmAfterSource(source, action) {
531
535
  patternName: "confirm_after_source_assumption",
532
536
  liveness: false,
533
537
  },
534
- enforcement: mustPrecede(confirm, action),
538
+ guarantee: mustPrecede(confirm, action),
535
539
  };
536
540
  }
537
541
  // --- Resource / delegation patterns ---
@@ -582,4 +586,208 @@ export function delegationDepthLimit(maxDepth) {
582
586
  liveness: false,
583
587
  };
584
588
  }
589
+ // --- Layer 3 — Response content patterns ---
590
+ /** Default PII regex set, mirrored from Python ``_DEFAULT_PII_PATTERNS``. */
591
+ const DEFAULT_PII_PATTERNS = {
592
+ ssn: "\\b\\d{3}-\\d{2}-\\d{4}\\b",
593
+ credit_card: "\\b\\d{4}[\\s-]?\\d{4}[\\s-]?\\d{4}[\\s-]?\\d{4}\\b",
594
+ email: "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b",
595
+ phone: "\\b(?:\\+?1[-.\\s]?)?\\(?\\d{3}\\)?[-.\\s]?\\d{3}[-.\\s]?\\d{4}\\b",
596
+ };
597
+ /**
598
+ * Response length must stay within the given word / character budget.
599
+ *
600
+ * Grounded against ``response_words`` / ``response_chars`` populated on
601
+ * ``llm_response`` events with content. At non-response events both
602
+ * default to 0, so the constraint is vacuously satisfied.
603
+ */
604
+ export function maxLength(opts) {
605
+ const { maxWords, maxChars, desc } = opts;
606
+ if (maxWords == null && maxChars == null) {
607
+ throw new Error("max_length requires maxWords or maxChars");
608
+ }
609
+ const parts = [];
610
+ if (maxWords != null)
611
+ parts.push(new Le(new Var("response_words"), new Const(maxWords)));
612
+ if (maxChars != null)
613
+ parts.push(new Le(new Var("response_chars"), new Const(maxChars)));
614
+ const body = parts.length === 1 ? parts[0] : new And(parts[0], parts[1]);
615
+ const f = new G(body);
616
+ let descStr;
617
+ if (desc)
618
+ descStr = desc;
619
+ else if (maxWords != null && maxChars != null)
620
+ descStr = `response ≤ ${maxWords} words and ≤ ${maxChars} chars`;
621
+ else if (maxWords != null)
622
+ descStr = `response ≤ ${maxWords} words`;
623
+ else
624
+ descStr = `response ≤ ${maxChars} chars`;
625
+ return {
626
+ formula: f,
627
+ desc: descStr,
628
+ patternName: "max_length",
629
+ liveness: false,
630
+ };
631
+ }
632
+ /**
633
+ * Response must not contain regex-detectable PII (SSN, CC, email, phone).
634
+ *
635
+ * Uses the ``llm_said`` grounding atom — the selected default patterns
636
+ * are joined with ``|`` and matched against each ``llm_response`` event.
637
+ * For semantic PII detection (names, contextual identifiers) use a sto
638
+ * atom; this pattern only covers syntactic PII.
639
+ */
640
+ export function noPii(fields) {
641
+ const selected = fields ?? Object.keys(DEFAULT_PII_PATTERNS);
642
+ const unknown = selected.filter((f) => !(f in DEFAULT_PII_PATTERNS));
643
+ if (unknown.length > 0) {
644
+ throw new Error(`unknown PII field(s): ${JSON.stringify(unknown.sort())}. ` +
645
+ `Available: ${JSON.stringify(Object.keys(DEFAULT_PII_PATTERNS).sort())}`);
646
+ }
647
+ const pattern = selected.map((f) => DEFAULT_PII_PATTERNS[f]).join("|");
648
+ const f = new G(new Not(new Atom("llm_said", [pattern])));
649
+ return {
650
+ formula: f,
651
+ desc: `response must not contain PII (${selected.join(", ")})`,
652
+ patternName: "no_pii",
653
+ liveness: false,
654
+ };
655
+ }
656
+ /**
657
+ * Response must not contain any of the given keywords. Keywords are
658
+ * escaped and joined into a word-boundary-anchored regex checked
659
+ * against each ``llm_response`` event via ``llm_said``.
660
+ *
661
+ * JS regex doesn't support inline ``(?i)`` flags — we lower-case the
662
+ * regex by expanding letters to ``[aA]``-style char classes, matching
663
+ * Python's ``(?i)`` semantics.
664
+ */
665
+ export function noKeywords(words) {
666
+ if (!words || words.length === 0) {
667
+ throw new Error("no_keywords requires at least one keyword");
668
+ }
669
+ const pattern = `\\b(${words.map((w) => caseInsensitiveLiteral(w)).join("|")})\\b`;
670
+ const f = new G(new Not(new Atom("llm_said", [pattern])));
671
+ return {
672
+ formula: f,
673
+ desc: `response must not contain keywords: ${JSON.stringify(words)}`,
674
+ patternName: "no_keywords",
675
+ liveness: false,
676
+ };
677
+ }
678
+ // --- Layer 3 — External-fact (ctx) patterns ---
679
+ /**
680
+ * When ``tool`` is called, ``ctx[key]`` must be one of ``allowedValues``.
681
+ * Fail-closed: missing context evaluates to violation, so forgetting
682
+ * to wire ``observeContext`` is loud rather than silent.
683
+ */
684
+ export function ctxRequired(tool, key, allowedValues) {
685
+ ensureNonEmpty(tool, "ctxRequired", "tool");
686
+ ensureNonEmpty(key, "ctxRequired", "key");
687
+ if (!allowedValues || allowedValues.length === 0) {
688
+ throw new Error("ctx_required: 'allowed_values' must not be empty — an empty " +
689
+ "allowlist rejects every call to the tool. Use " +
690
+ "`tool_allowlist([])` if you really want to block everything.");
691
+ }
692
+ const cleanValues = allowedValues.map((v) => String(v));
693
+ let disjunction = new Atom("ctx", [key, cleanValues[0]]);
694
+ for (let i = 1; i < cleanValues.length; i++) {
695
+ disjunction = new Or(disjunction, new Atom("ctx", [key, cleanValues[i]]));
696
+ }
697
+ const f = new G(new Implies(called(tool), disjunction));
698
+ return {
699
+ formula: f,
700
+ desc: `${tool} requires ctx[${key}] ∈ [${cleanValues.join(", ")}]`,
701
+ patternName: "ctx_required",
702
+ liveness: false,
703
+ };
704
+ }
705
+ /**
706
+ * When ``tool`` is called, ``ctx[key]`` must match the regex ``pattern``.
707
+ * Regex variant of :func:`ctxRequired` for cases where the allowed set
708
+ * is better expressed as a pattern than an exhaustive list.
709
+ */
710
+ export function ctxMatchesRequired(tool, key, pattern) {
711
+ ensureNonEmpty(tool, "ctxMatchesRequired", "tool");
712
+ ensureNonEmpty(key, "ctxMatchesRequired", "key");
713
+ ensureNonEmpty(pattern, "ctxMatchesRequired", "pattern");
714
+ const f = new G(new Implies(called(tool), new Atom("ctx_matches", [key, pattern])));
715
+ return {
716
+ formula: f,
717
+ desc: `${tool} requires ctx[${key}] to match /${pattern}/`,
718
+ patternName: "ctx_matches_required",
719
+ liveness: false,
720
+ };
721
+ }
722
+ // --- Time-window patterns (event-clock) ---
723
+ /**
724
+ * Constrain how recently a predicate was last true. The argument is the
725
+ * grounded predicate key string (e.g. ``"called(refund)"`` or
726
+ * ``"ctx(approval.role, alice)"``) — same convention as Python's
727
+ * ``time_since`` factory.
728
+ */
729
+ export function timeSince(predicateKey, maxSeconds) {
730
+ ensureNonEmpty(predicateKey, "timeSince", "predicate_key");
731
+ if (typeof maxSeconds !== "number" || !Number.isFinite(maxSeconds) || maxSeconds < 0) {
732
+ throw new Error(`time_since: max_seconds must be a non-negative number (got ${maxSeconds}).`);
733
+ }
734
+ const f = new G(new Le(new Var("time_since", predicateKey), new Const(maxSeconds)));
735
+ return {
736
+ formula: f,
737
+ desc: `${predicateKey} must have occurred within last ${maxSeconds}s`,
738
+ patternName: "time_since",
739
+ liveness: false,
740
+ };
741
+ }
742
+ /**
743
+ * Gate ``action`` on a recent allow-decision approval from ``role``.
744
+ *
745
+ * Compiles to::
746
+ * G(called(action) → (
747
+ * ctx_matches("approval.role", role)
748
+ * ∧ ctx_matches("approval.decision", "allow")
749
+ * ∧ time_since("ctx(approval.role, role)") ≤ maxSeconds
750
+ * ))
751
+ *
752
+ * Pairs with ``observeApproval({role, decision})`` on the integration
753
+ * side.
754
+ */
755
+ export function approvalActive(action, role, maxSeconds) {
756
+ ensureNonEmpty(action, "approvalActive", "action");
757
+ ensureNonEmpty(role, "approvalActive", "role");
758
+ if (typeof maxSeconds !== "number" || !Number.isFinite(maxSeconds) || maxSeconds < 0) {
759
+ throw new Error(`approval_active: max_seconds must be a non-negative number (got ${maxSeconds}).`);
760
+ }
761
+ // Match Python: ``role_key = f"ctx(approval.role, {role})"`` — exact
762
+ // string used as the time_since target. predKey would escape spaces /
763
+ // commas; keep the unescaped form so the time_since extractor passes
764
+ // the right key through to grounding's ``state.last_ts`` lookup.
765
+ const roleKey = `ctx(approval.role, ${role})`;
766
+ const escaped = role.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
767
+ 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)));
768
+ const f = new G(new Implies(called(action), body));
769
+ return {
770
+ formula: f,
771
+ desc: `${action} requires active ${role} approval (≤${maxSeconds}s old)`,
772
+ patternName: "approval_active",
773
+ liveness: false,
774
+ };
775
+ }
776
+ /**
777
+ * @deprecated — use :func:`mutualExclusion` instead.
778
+ *
779
+ * In sequential traces, two tool calls are always at different
780
+ * timesteps, so the formula ``G(¬(called(A) ∧ called(B)))`` is
781
+ * trivially satisfied and can never detect violations. Delegates to
782
+ * ``mutualExclusion`` for correct behavior; kept so yaml authored
783
+ * against Python's deprecated entry still loads.
784
+ */
785
+ export function neverTogether(a, b) {
786
+ const me = mutualExclusion(a, b);
787
+ return {
788
+ ...me,
789
+ patternName: "never_together",
790
+ desc: `${a} and ${b} must never occur together`,
791
+ };
792
+ }
585
793
  //# sourceMappingURL=patterns.js.map