@intutic/shared-types 1.10.0 → 2.0.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 (122) hide show
  1. package/README.md +1 -1
  2. package/dist/anomaly.d.ts +11 -0
  3. package/dist/anomaly.d.ts.map +1 -1
  4. package/dist/api-contracts.d.ts +97 -9
  5. package/dist/api-contracts.d.ts.map +1 -1
  6. package/dist/api-contracts.js +9 -0
  7. package/dist/api-contracts.js.map +1 -1
  8. package/dist/auth.d.ts +164 -1
  9. package/dist/auth.d.ts.map +1 -1
  10. package/dist/auth.js +39 -1
  11. package/dist/auth.js.map +1 -1
  12. package/dist/billing.d.ts +2 -99
  13. package/dist/billing.d.ts.map +1 -1
  14. package/dist/billing.js +2 -17
  15. package/dist/billing.js.map +1 -1
  16. package/dist/enums.d.ts +341 -4
  17. package/dist/enums.d.ts.map +1 -1
  18. package/dist/enums.js +369 -6
  19. package/dist/enums.js.map +1 -1
  20. package/dist/errors.d.ts +20 -1
  21. package/dist/errors.d.ts.map +1 -1
  22. package/dist/errors.js +20 -1
  23. package/dist/errors.js.map +1 -1
  24. package/dist/finops.d.ts +97 -1
  25. package/dist/finops.d.ts.map +1 -1
  26. package/dist/governanceCoverage.d.ts +82 -0
  27. package/dist/governanceCoverage.d.ts.map +1 -0
  28. package/dist/governanceCoverage.js +72 -0
  29. package/dist/governanceCoverage.js.map +1 -0
  30. package/dist/guardrailIr.d.ts +287 -0
  31. package/dist/guardrailIr.d.ts.map +1 -0
  32. package/dist/guardrailIr.js +301 -0
  33. package/dist/guardrailIr.js.map +1 -0
  34. package/dist/guardrailRender.d.ts +154 -0
  35. package/dist/guardrailRender.d.ts.map +1 -0
  36. package/dist/guardrailRender.js +440 -0
  37. package/dist/guardrailRender.js.map +1 -0
  38. package/dist/identity.d.ts +75 -0
  39. package/dist/identity.d.ts.map +1 -1
  40. package/dist/identity.js +5 -1
  41. package/dist/identity.js.map +1 -1
  42. package/dist/index.d.ts +34 -14
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +124 -2
  45. package/dist/index.js.map +1 -1
  46. package/dist/intelligence.d.ts +37 -11
  47. package/dist/intelligence.d.ts.map +1 -1
  48. package/dist/intelligence.js.map +1 -1
  49. package/dist/modelCatalog.d.ts +89 -0
  50. package/dist/modelCatalog.d.ts.map +1 -0
  51. package/dist/modelCatalog.generated.d.ts +7217 -0
  52. package/dist/modelCatalog.generated.d.ts.map +1 -0
  53. package/dist/modelCatalog.generated.js +577 -0
  54. package/dist/modelCatalog.generated.js.map +1 -0
  55. package/dist/modelCatalog.js +112 -0
  56. package/dist/modelCatalog.js.map +1 -0
  57. package/dist/notifications.d.ts +134 -2
  58. package/dist/notifications.d.ts.map +1 -1
  59. package/dist/observability.d.ts +4 -0
  60. package/dist/observability.d.ts.map +1 -1
  61. package/dist/policyGuardrails.d.ts +433 -0
  62. package/dist/policyGuardrails.d.ts.map +1 -0
  63. package/dist/policyGuardrails.js +91 -0
  64. package/dist/policyGuardrails.js.map +1 -0
  65. package/dist/posturePresets.d.ts +74 -0
  66. package/dist/posturePresets.d.ts.map +1 -0
  67. package/dist/posturePresets.js +139 -0
  68. package/dist/posturePresets.js.map +1 -0
  69. package/dist/providerVerification.d.ts +64 -0
  70. package/dist/providerVerification.d.ts.map +1 -0
  71. package/dist/providerVerification.js +184 -0
  72. package/dist/providerVerification.js.map +1 -0
  73. package/dist/providers.d.ts +93 -0
  74. package/dist/providers.d.ts.map +1 -0
  75. package/dist/providers.js +176 -0
  76. package/dist/providers.js.map +1 -0
  77. package/dist/rulePredicateDsl.d.ts +101 -0
  78. package/dist/rulePredicateDsl.d.ts.map +1 -0
  79. package/dist/rulePredicateDsl.js +263 -0
  80. package/dist/rulePredicateDsl.js.map +1 -0
  81. package/dist/rulePredicateEval.d.ts +38 -0
  82. package/dist/rulePredicateEval.d.ts.map +1 -0
  83. package/dist/rulePredicateEval.js +124 -0
  84. package/dist/rulePredicateEval.js.map +1 -0
  85. package/dist/scriptScan.d.ts +162 -0
  86. package/dist/scriptScan.d.ts.map +1 -0
  87. package/dist/scriptScan.js +362 -0
  88. package/dist/scriptScan.js.map +1 -0
  89. package/dist/secretPatterns.d.ts +43 -0
  90. package/dist/secretPatterns.d.ts.map +1 -0
  91. package/dist/secretPatterns.js +73 -0
  92. package/dist/secretPatterns.js.map +1 -0
  93. package/dist/skillScan.d.ts +166 -0
  94. package/dist/skillScan.d.ts.map +1 -0
  95. package/dist/skillScan.js +398 -0
  96. package/dist/skillScan.js.map +1 -0
  97. package/dist/sop.d.ts +188 -9
  98. package/dist/sop.d.ts.map +1 -1
  99. package/dist/sop.js +54 -2
  100. package/dist/sop.js.map +1 -1
  101. package/dist/sourceProviders.d.ts +41 -0
  102. package/dist/sourceProviders.d.ts.map +1 -0
  103. package/dist/sourceProviders.js +48 -0
  104. package/dist/sourceProviders.js.map +1 -0
  105. package/dist/sync.d.ts +98 -8
  106. package/dist/sync.d.ts.map +1 -1
  107. package/dist/sync.js.map +1 -1
  108. package/dist/toon.d.ts +80 -0
  109. package/dist/toon.d.ts.map +1 -0
  110. package/dist/toon.js +278 -0
  111. package/dist/toon.js.map +1 -0
  112. package/dist/usage.d.ts +23 -0
  113. package/dist/usage.d.ts.map +1 -1
  114. package/dist/wasmHost.d.ts +58 -0
  115. package/dist/wasmHost.d.ts.map +1 -0
  116. package/dist/wasmHost.js +80 -0
  117. package/dist/wasmHost.js.map +1 -0
  118. package/dist/workspaceSettings.d.ts +463 -21
  119. package/dist/workspaceSettings.d.ts.map +1 -1
  120. package/dist/workspaceSettings.js +86 -1
  121. package/dist/workspaceSettings.js.map +1 -1
  122. package/package.json +4 -3
@@ -0,0 +1,440 @@
1
+ "use strict";
2
+ /**
3
+ * Guardrail renderers and their parsers (LLD #71).
4
+ *
5
+ * Two artifacts come out of the IR, and both are read by code this package
6
+ * does not own:
7
+ *
8
+ * - **Hook rules** become `{toolPattern, argPattern, reason}` — the shape
9
+ * `services/sync-daemon/src/lib/policySnapshot.ts` turns into a
10
+ * `policy-snapshot.rules` line and the emitted gate scripts match with
11
+ * `new RegExp(toolPattern)` / `new RegExp(argPattern)` against the tool name
12
+ * and `JSON.stringify(tool_input)`. The tool pattern must be portable ERE
13
+ * (the daemon's `assertPortableEre` refuses `\s`, `(?`, anchors, …); the
14
+ * argument pattern is exempt from that but must mean the same thing to JS
15
+ * `RegExp` and Python `re`, because the bash gates delegate it to `python3`.
16
+ * - **Front-matter lines** become the YAML-ish block `packages/proxy/src/sops.rs`
17
+ * parses with `parse_front_matter`. `parseFrontMatterEnforcing` below is a
18
+ * line-for-line mirror of that parser's split semantics so a render can be
19
+ * re-parsed and compared to the IR it came from — and so the cargo fixture
20
+ * test can prove the Rust side reads the same fields.
21
+ *
22
+ * Every renderer is byte-stable: the same IR always yields the same bytes, so
23
+ * a rendered artifact is content-addressable and a reviewer diffing two
24
+ * versions sees only what changed.
25
+ *
26
+ * @module
27
+ */
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.MAX_QUOTE_IN_REASON = exports.MAX_REASON_CHARS = void 0;
30
+ exports.escapeRegexLiteral = escapeRegexLiteral;
31
+ exports.renderToolPattern = renderToolPattern;
32
+ exports.renderArgPattern = renderArgPattern;
33
+ exports.renderGuardrailSopFile = renderGuardrailSopFile;
34
+ exports.scrubReason = scrubReason;
35
+ exports.renderHookReason = renderHookReason;
36
+ exports.renderHookRule = renderHookRule;
37
+ exports.renderFrontMatterLines = renderFrontMatterLines;
38
+ exports.splitFrontMatter = splitFrontMatter;
39
+ exports.parseFrontMatterEnforcing = parseFrontMatterEnforcing;
40
+ exports.isEnforceableFrontMatter = isEnforceableFrontMatter;
41
+ exports.frontMatterToIrs = frontMatterToIrs;
42
+ exports.frontMatterIrsOf = frontMatterIrsOf;
43
+ const guardrailIr_js_1 = require("./guardrailIr.js");
44
+ /** Longest reason the gates print and the hook-events route accepts with margin (its cap is 512). */
45
+ exports.MAX_REASON_CHARS = 300;
46
+ /** Longest quote embedded in a reason; truncated with an ellipsis beyond it. */
47
+ exports.MAX_QUOTE_IN_REASON = 200;
48
+ /**
49
+ * Escape a literal for a regex that both JS `RegExp` (no flags) and Python
50
+ * `re` compile identically: every non-alphanumeric ASCII character is
51
+ * backslash-escaped, alphanumerics never are (`\d`-style escapes would mean
52
+ * something else). Non-ASCII characters are left alone — neither engine
53
+ * treats them as syntax.
54
+ */
55
+ function escapeRegexLiteral(literal) {
56
+ return literal.replace(/[^A-Za-z0-9_\u0080-\uFFFF]/g, (c) => `\\${c}`);
57
+ }
58
+ /**
59
+ * The tool half of a hook rule. Tokens are alternated inside one group; the
60
+ * only character a token may contain that is regex syntax is `.`, and it is
61
+ * escaped. Anchored, because two of the three consumers (`matchSopRule` and
62
+ * the MCP proxy's `matchRule`) test the pattern unanchored against the bare
63
+ * tool name — `Bash` would match `BashHistory` there. The daemon strips the
64
+ * anchors and wraps the pattern for whole-token matching itself, so all three
65
+ * read it as "exactly this tool".
66
+ */
67
+ function renderToolPattern(tools) {
68
+ const escaped = [...new Set(tools)].sort().map((t) => t.replace(/[\\.]/g, (c) => `\\${c}`));
69
+ return escaped.length === 1 ? `^${escaped[0]}$` : `^(${escaped.join('|')})$`;
70
+ }
71
+ /**
72
+ * The argument half: one positive lookahead per required literal, one
73
+ * negative lookahead per forbidden literal, over the whole serialised input.
74
+ * `[\s\S]*` rather than `.*` so a multi-line argument (a heredoc in a Bash
75
+ * command) is still searched end to end. Undefined when there is nothing to
76
+ * say about the arguments.
77
+ */
78
+ function renderArgPattern(contains = [], notContains = []) {
79
+ const positive = [...new Set(contains)].sort().map((l) => `(?=[\\s\\S]*${escapeRegexLiteral(l)})`);
80
+ const negative = [...new Set(notContains)].sort().map((l) => `(?![\\s\\S]*${escapeRegexLiteral(l)})`);
81
+ const all = [...positive, ...negative];
82
+ if (all.length === 0)
83
+ return undefined;
84
+ // Every matcher searches (`RegExp.test`, Python `re.search`), trying each
85
+ // start position. A positive lookahead is position-independent enough — if
86
+ // the literal is anywhere ahead of position 0 the search succeeds there —
87
+ // but a negative one is not: at a start position past the excluded
88
+ // literal it holds, so an unanchored exclusion never excludes. Anchoring
89
+ // pins every lookahead to the start of the input. Only patterns with an
90
+ // exclusion carry the anchor, so a required-only pattern renders to the
91
+ // same bytes it always has.
92
+ return negative.length > 0 ? `^${all.join('')}` : all.join('');
93
+ }
94
+ function renderGuardrailSopFile(input) {
95
+ const extra = [];
96
+ if (input.sourceUrl)
97
+ extra.push(`source: ${scrubReason(input.sourceUrl)}`);
98
+ if (input.cite)
99
+ extra.push(`cite: ${scrubReason(input.cite)}`);
100
+ if (input.shadow)
101
+ extra.push('mode: shadow');
102
+ return `---\n${[input.lines, ...extra].join('\n')}\n---\n# ${scrubReason(input.title)}\n\n${input.body}\n`;
103
+ }
104
+ /** Tabs and newlines would break the `.rules` projection; collapse them. */
105
+ function scrubReason(text) {
106
+ return text.replace(/[\t\r\n]+/g, ' ').replace(/ {2,}/g, ' ').trim();
107
+ }
108
+ /**
109
+ * The reason a developer sees on stderr when the rule fires:
110
+ * `<title> — policy: "<quote>" (<url>)`. The citation travels into the block
111
+ * message itself, which is the whole point of a grounded guardrail.
112
+ */
113
+ function renderHookReason(title, citation) {
114
+ const cleanTitle = scrubReason(title);
115
+ const suffix = citation.sourceUrl ? ` (${scrubReason(citation.sourceUrl)})` : '';
116
+ const frame = `${cleanTitle} — policy: ""${suffix}`;
117
+ const room = Math.max(0, Math.min(exports.MAX_QUOTE_IN_REASON, exports.MAX_REASON_CHARS - frame.length));
118
+ let quote = scrubReason(citation.quote);
119
+ if (quote.length > room)
120
+ quote = room > 1 ? `${quote.slice(0, room - 1)}…` : '';
121
+ return `${cleanTitle} — policy: "${quote}"${suffix}`.slice(0, exports.MAX_REASON_CHARS);
122
+ }
123
+ function renderHookRule(ir, citation) {
124
+ const argPattern = renderArgPattern(ir.argContains, ir.argNotContains);
125
+ return {
126
+ toolPattern: renderToolPattern(ir.tools),
127
+ ...(argPattern ? { argPattern } : {}),
128
+ reason: renderHookReason(ir.title, citation),
129
+ };
130
+ }
131
+ // ─── Front matter: render ──────────────────────────────────────────────
132
+ const FRONT_MATTER_KEY_ORDER = ['roles', 'deny_tools', 'review_before', 'requires_before', 'forbid_after', 'max_calls', 'forbid_with'];
133
+ /**
134
+ * The front-matter lines for a set of IRs — no fences, no `mode:`; the
135
+ * projection that ships them adds those. One line per rule for the pair
136
+ * keys (the Rust parser splits `requires_before:`/`forbid_after:`/`max_calls:`
137
+ * on commas but `forbid_with:` deliberately not, so one-per-line is the only
138
+ * shape that is right for all four), and one comma-joined line for the list
139
+ * keys. Deterministic: sorted, deduplicated, fixed key order.
140
+ */
141
+ function renderFrontMatterLines(irs) {
142
+ const lines = [];
143
+ const roles = new Set();
144
+ const denyTools = new Set();
145
+ const reviewBefore = new Set();
146
+ const requiresBefore = new Set();
147
+ const forbidAfter = new Set();
148
+ const maxCalls = new Map();
149
+ const forbidWith = new Set();
150
+ for (const ir of irs) {
151
+ for (const r of ir.roles ?? [])
152
+ roles.add(r.toLowerCase());
153
+ switch (ir.kind) {
154
+ case 'deny_tools':
155
+ for (const t of ir.tools)
156
+ denyTools.add(t);
157
+ break;
158
+ case 'review_before':
159
+ for (const t of ir.tokens)
160
+ reviewBefore.add(t);
161
+ break;
162
+ case 'requires_before':
163
+ requiresBefore.add(`${ir.first} -> ${ir.then}`);
164
+ break;
165
+ case 'forbid_after':
166
+ forbidAfter.add(`${ir.first} -> ${ir.then}`);
167
+ break;
168
+ case 'max_calls': {
169
+ // Two bounds on one token: the tighter one is the policy.
170
+ const prior = maxCalls.get(ir.token);
171
+ maxCalls.set(ir.token, prior === undefined ? ir.limit : Math.min(prior, ir.limit));
172
+ break;
173
+ }
174
+ case 'forbid_with':
175
+ forbidWith.add(`${ir.taint}, ${ir.token}`);
176
+ break;
177
+ }
178
+ }
179
+ for (const key of FRONT_MATTER_KEY_ORDER) {
180
+ switch (key) {
181
+ case 'roles':
182
+ if (roles.size)
183
+ lines.push(`roles: ${[...roles].sort().join(', ')}`);
184
+ break;
185
+ case 'deny_tools':
186
+ if (denyTools.size)
187
+ lines.push(`deny_tools: ${[...denyTools].sort().join(', ')}`);
188
+ break;
189
+ case 'review_before':
190
+ if (reviewBefore.size)
191
+ lines.push(`review_before: ${[...reviewBefore].sort().join(', ')}`);
192
+ break;
193
+ case 'requires_before':
194
+ for (const rule of [...requiresBefore].sort())
195
+ lines.push(`requires_before: ${rule}`);
196
+ break;
197
+ case 'forbid_after':
198
+ for (const rule of [...forbidAfter].sort())
199
+ lines.push(`forbid_after: ${rule}`);
200
+ break;
201
+ case 'max_calls':
202
+ for (const token of [...maxCalls.keys()].sort())
203
+ lines.push(`max_calls: ${token} <= ${maxCalls.get(token)}`);
204
+ break;
205
+ case 'forbid_with':
206
+ for (const rule of [...forbidWith].sort())
207
+ lines.push(`forbid_with: ${rule}`);
208
+ break;
209
+ }
210
+ }
211
+ return lines.join('\n');
212
+ }
213
+ /**
214
+ * Split a document into the text between its `---` fences and the body,
215
+ * with the Rust parser's fallback contract: no fence, or an unterminated
216
+ * one, means the whole document is body and there is no front matter.
217
+ */
218
+ function splitFrontMatter(raw) {
219
+ const trimmed = raw.trimStart();
220
+ if (!trimmed.startsWith('---'))
221
+ return { front: '', body: raw.trim() };
222
+ const rest = trimmed.slice(3);
223
+ const end = rest.indexOf('\n---');
224
+ if (end === -1)
225
+ return { front: '', body: raw.trim() };
226
+ return { front: rest.slice(0, end), body: rest.slice(end + '\n---'.length).trim() };
227
+ }
228
+ const QUOTE_CHARS = new Set(['"', "'"]);
229
+ const QUOTE_AND_BRACKET_CHARS = new Set(['"', "'", '[', ']']);
230
+ /**
231
+ * Strip any run of `chars` from both ends, in linear time. A regex spelled
232
+ * `/["']+$/` is quadratic on a long run of quotes that does not reach the end
233
+ * of the string (the same trap `policySnapshot.ts`'s `stripEnd` documents).
234
+ */
235
+ function trimChars(s, chars) {
236
+ let start = 0;
237
+ let end = s.length;
238
+ while (start < end && chars.has(s[start]))
239
+ start++;
240
+ while (end > start && chars.has(s[end - 1]))
241
+ end--;
242
+ return s.slice(start, end);
243
+ }
244
+ /** `trim_matches(['"', '\'', '[', ']'])` — strips any run of those from both ends. */
245
+ function trimQuotesAndBrackets(s) {
246
+ return trimChars(s, QUOTE_AND_BRACKET_CHARS);
247
+ }
248
+ function keyValues(front, key) {
249
+ const out = [];
250
+ for (const line of front.split('\n')) {
251
+ const t = line.trim();
252
+ if (t.startsWith(key))
253
+ out.push(t.slice(key.length));
254
+ }
255
+ return out;
256
+ }
257
+ /** The `list("key:", lower)` closure: split on commas, trim, strip quotes/brackets, drop empties. */
258
+ function listKey(front, key, lower) {
259
+ const out = [];
260
+ for (const value of keyValues(front, key)) {
261
+ for (const raw of value.split(',')) {
262
+ const t = trimQuotesAndBrackets(raw.trim());
263
+ if (t)
264
+ out.push(lower ? t.toLowerCase() : t);
265
+ }
266
+ }
267
+ return out;
268
+ }
269
+ function parseOrdering(raw) {
270
+ let lhs;
271
+ let rhs;
272
+ let adjacent;
273
+ const tight = raw.indexOf('~>');
274
+ const loose = raw.indexOf('->');
275
+ if (tight !== -1) {
276
+ lhs = raw.slice(0, tight);
277
+ rhs = raw.slice(tight + 2);
278
+ adjacent = true;
279
+ }
280
+ else if (loose !== -1) {
281
+ lhs = raw.slice(0, loose);
282
+ rhs = raw.slice(loose + 2);
283
+ adjacent = false;
284
+ }
285
+ else {
286
+ return { ok: false, error: `${JSON.stringify(raw)}: expected \`A -> B\` or \`A ~> B\`` };
287
+ }
288
+ lhs = lhs.trim();
289
+ rhs = rhs.trim();
290
+ if (!lhs || !rhs)
291
+ return { ok: false, error: `${JSON.stringify(raw)}: both sides must be non-empty` };
292
+ for (const side of [lhs, rhs]) {
293
+ if (side.split(/\s+/).length > 1) {
294
+ return { ok: false, error: `${JSON.stringify(side)} looks like a shell command. Ordering rules name tools or actions, never commands` };
295
+ }
296
+ }
297
+ return { ok: true, rule: [lhs, rhs, adjacent] };
298
+ }
299
+ function parseRules(front, key) {
300
+ const ok = [];
301
+ const errors = [];
302
+ for (const value of keyValues(front, key)) {
303
+ for (const piece of value.split(',')) {
304
+ const raw = trimQuotesAndBrackets(piece.trim()).trim();
305
+ if (!raw)
306
+ continue;
307
+ const parsed = parseOrdering(raw);
308
+ if (parsed.ok)
309
+ ok.push(parsed.rule);
310
+ else
311
+ errors.push(`${key} ${parsed.error}`);
312
+ }
313
+ }
314
+ return { ok, errors };
315
+ }
316
+ function parseCountBound(raw) {
317
+ const at = raw.indexOf('<=');
318
+ if (at === -1)
319
+ return { ok: false, error: `${JSON.stringify(raw)}: expected \`A <= N\`` };
320
+ const token = raw.slice(0, at).trim();
321
+ const rhs = raw.slice(at + 2).trim();
322
+ if (!token)
323
+ return { ok: false, error: `${JSON.stringify(raw)}: the tool or action must be named` };
324
+ if (token.split(/\s+/).length > 1) {
325
+ return { ok: false, error: `${JSON.stringify(token)} looks like a shell command. Count bounds name tools or actions, never commands` };
326
+ }
327
+ if (!/^\d+$/.test(rhs))
328
+ return { ok: false, error: `${JSON.stringify(raw)}: ${JSON.stringify(rhs)} is not a whole number` };
329
+ return { ok: true, rule: [token, Number(rhs)] };
330
+ }
331
+ function parseCooccurrence(raw) {
332
+ const at = raw.indexOf(',');
333
+ if (at === -1)
334
+ return { ok: false, error: `${JSON.stringify(raw)}: expected \`taint(), token\`` };
335
+ const taint = raw.slice(0, at).trim().toLowerCase();
336
+ const token = raw.slice(at + 1).trim();
337
+ if (taint !== 'secrets()' && taint !== 'pii()') {
338
+ return { ok: false, error: `${JSON.stringify(raw.slice(0, at).trim())}: the left side must be \`secrets()\` or \`pii()\`` };
339
+ }
340
+ if (!token)
341
+ return { ok: false, error: `${JSON.stringify(raw)}: the right side must name a tool or action` };
342
+ if (token.split(/\s+/).length > 1) {
343
+ return { ok: false, error: `${JSON.stringify(token)} is not a single tool or action token. Write one rule per line` };
344
+ }
345
+ return { ok: true, rule: [taint, token] };
346
+ }
347
+ function parseItems(front, key, splitOnComma, f) {
348
+ const ok = [];
349
+ const errors = [];
350
+ for (const value of keyValues(front, key)) {
351
+ const pieces = splitOnComma ? value.split(',') : [value];
352
+ for (const piece of pieces) {
353
+ const raw = trimQuotesAndBrackets(piece.trim()).trim();
354
+ if (!raw)
355
+ continue;
356
+ const parsed = f(raw);
357
+ if (parsed.ok)
358
+ ok.push(parsed.rule);
359
+ else
360
+ errors.push(`${key} ${parsed.error}`);
361
+ }
362
+ }
363
+ return { ok, errors };
364
+ }
365
+ function parseMode(front) {
366
+ const first = keyValues(front, 'mode:')[0];
367
+ if (first === undefined)
368
+ return 'enforce';
369
+ return trimChars(first.trim(), QUOTE_CHARS).toLowerCase() === 'shadow' ? 'shadow' : 'enforce';
370
+ }
371
+ /**
372
+ * Parse the text between the fences exactly as `parse_front_matter` in
373
+ * sops.rs does: a key is a line prefix, list keys split on commas and strip
374
+ * quotes/brackets, `requires_before`/`forbid_after` parse `A -> B`,
375
+ * `max_calls` parses `A <= N` (comma-split), `forbid_with` parses
376
+ * `taint(), token` (never comma-split), unknown keys are ignored, and an
377
+ * unparseable rule is reported rather than dropped.
378
+ */
379
+ function parseFrontMatterEnforcing(front) {
380
+ const requires = parseRules(front, 'requires_before:');
381
+ const forbids = parseRules(front, 'forbid_after:');
382
+ const counts = parseItems(front, 'max_calls:', true, parseCountBound);
383
+ const cooccur = parseItems(front, 'forbid_with:', false, parseCooccurrence);
384
+ return {
385
+ roles: listKey(front, 'roles:', true),
386
+ allowHarnesses: listKey(front, 'allow_harnesses:', true),
387
+ denyTools: listKey(front, 'deny_tools:', false),
388
+ planSteps: listKey(front, 'plan_steps:', false),
389
+ scopePaths: listKey(front, 'scope_paths:', false),
390
+ reviewBefore: listKey(front, 'review_before:', false),
391
+ requiresBefore: requires.ok,
392
+ forbidAfter: forbids.ok,
393
+ maxCalls: counts.ok,
394
+ forbidWith: cooccur.ok,
395
+ mode: parseMode(front),
396
+ errors: [...requires.errors, ...forbids.errors, ...counts.errors, ...cooccur.errors],
397
+ };
398
+ }
399
+ /** Mirror of `is_enforceable`: does this front matter declare anything the proxy can act on? */
400
+ function isEnforceableFrontMatter(fm) {
401
+ return (fm.denyTools.length > 0 ||
402
+ fm.allowHarnesses.length > 0 ||
403
+ fm.planSteps.length > 0 ||
404
+ fm.scopePaths.length > 0 ||
405
+ fm.reviewBefore.length > 0 ||
406
+ fm.requiresBefore.length > 0 ||
407
+ fm.forbidAfter.length > 0 ||
408
+ fm.maxCalls.length > 0 ||
409
+ fm.forbidWith.length > 0);
410
+ }
411
+ /**
412
+ * The IRs a parsed front matter expresses — the inverse of
413
+ * {@link renderFrontMatterLines} for the six generated keys. Allowlist keys
414
+ * (`allow_harnesses`, `plan_steps`, `scope_paths`) have no IR and are not
415
+ * returned; adjacency (`~>`) rules are returned as plain ordering rules,
416
+ * which is the only shape the IR offers.
417
+ */
418
+ function frontMatterToIrs(fm) {
419
+ const roles = fm.roles.length ? { roles: [...fm.roles] } : {};
420
+ const irs = [];
421
+ if (fm.denyTools.length)
422
+ irs.push({ kind: 'deny_tools', tools: [...fm.denyTools], ...roles });
423
+ if (fm.reviewBefore.length)
424
+ irs.push({ kind: 'review_before', tokens: [...fm.reviewBefore], ...roles });
425
+ for (const [first, then] of fm.requiresBefore)
426
+ irs.push({ kind: 'requires_before', first, then, ...roles });
427
+ for (const [first, then] of fm.forbidAfter)
428
+ irs.push({ kind: 'forbid_after', first, then, ...roles });
429
+ for (const [token, limit] of fm.maxCalls)
430
+ irs.push({ kind: 'max_calls', token, limit, ...roles });
431
+ for (const [taint, token] of fm.forbidWith) {
432
+ irs.push({ kind: 'forbid_with', taint: taint, token, ...roles });
433
+ }
434
+ return irs;
435
+ }
436
+ /** Render a mixed IR list's front-matter half; non-front-matter kinds are ignored. */
437
+ function frontMatterIrsOf(irs) {
438
+ return irs.filter(guardrailIr_js_1.isFrontMatterIr);
439
+ }
440
+ //# sourceMappingURL=guardrailRender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardrailRender.js","sourceRoot":"","sources":["../src/guardrailRender.ts"],"names":[],"mappings":"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"}
@@ -98,4 +98,79 @@ export declare const UpdateUserProfileSchema: z.ZodObject<{
98
98
  avatarUrl?: string | undefined;
99
99
  }>;
100
100
  export type UpdateUserProfileInput = z.infer<typeof UpdateUserProfileSchema>;
101
+ export interface ScimUserResource {
102
+ schemas: string[];
103
+ id?: string;
104
+ externalId?: string;
105
+ userName: string;
106
+ name?: {
107
+ givenName?: string;
108
+ familyName?: string;
109
+ formatted?: string;
110
+ };
111
+ emails?: Array<{
112
+ value: string;
113
+ primary?: boolean;
114
+ type?: string;
115
+ }>;
116
+ active?: boolean;
117
+ groups?: Array<{
118
+ value: string;
119
+ display?: string;
120
+ }>;
121
+ meta?: {
122
+ resourceType?: string;
123
+ created?: string;
124
+ lastModified?: string;
125
+ location?: string;
126
+ };
127
+ }
128
+ export interface ScimListResponse {
129
+ schemas: ['urn:ietf:params:scim:api:messages:2.0:ListResponse'];
130
+ totalResults: number;
131
+ startIndex: number;
132
+ itemsPerPage: number;
133
+ Resources: ScimUserResource[];
134
+ }
135
+ export interface ScimPatchOp {
136
+ schemas: ['urn:ietf:params:scim:api:messages:2.0:PatchOp'];
137
+ Operations: Array<{
138
+ op: 'add' | 'replace' | 'remove';
139
+ path?: string;
140
+ value?: unknown;
141
+ }>;
142
+ }
143
+ export interface OffboardingStepResult {
144
+ step: 1 | 2 | 3 | 4 | 5 | 6 | 7;
145
+ name: string;
146
+ status: 'completed' | 'failed' | 'skipped';
147
+ detail: Record<string, unknown>;
148
+ durationMs: number;
149
+ }
150
+ export interface OffboardingResult {
151
+ userId: string;
152
+ memberId: string;
153
+ workspaceId: string;
154
+ steps: OffboardingStepResult[];
155
+ totalDurationMs: number;
156
+ completedAt: string;
157
+ }
158
+ export interface ScimTokenInfo {
159
+ tokenId: string;
160
+ workspaceId: string;
161
+ label: string | null;
162
+ expiresAt: string | null;
163
+ createdAt: string;
164
+ }
165
+ export declare const CreateScimTokenSchema: z.ZodObject<{
166
+ label: z.ZodOptional<z.ZodString>;
167
+ expiresInDays: z.ZodOptional<z.ZodNumber>;
168
+ }, "strip", z.ZodTypeAny, {
169
+ label?: string | undefined;
170
+ expiresInDays?: number | undefined;
171
+ }, {
172
+ label?: string | undefined;
173
+ expiresInDays?: number | undefined;
174
+ }>;
175
+ export type CreateScimTokenInput = z.infer<typeof CreateScimTokenSchema>;
101
176
  //# sourceMappingURL=identity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,YAAY,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,CAAA;IAC3C,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;CAClB;AAID,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IAEZ,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,aAAa,GAAG,eAAe,CAAA;IACtE,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,aAAa,EAAE,OAAO,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUlC,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAI5E,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAID,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA"}
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"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"}
package/dist/identity.js CHANGED
@@ -8,7 +8,7 @@
8
8
  * @module
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.UpdateUserProfileSchema = exports.CreateSsoProviderSchema = void 0;
11
+ exports.CreateScimTokenSchema = exports.UpdateUserProfileSchema = exports.CreateSsoProviderSchema = void 0;
12
12
  const zod_1 = require("zod");
13
13
  exports.CreateSsoProviderSchema = zod_1.z.object({
14
14
  name: zod_1.z.string().min(1).max(255),
@@ -26,4 +26,8 @@ exports.UpdateUserProfileSchema = zod_1.z.object({
26
26
  displayName: zod_1.z.string().min(1).max(255).optional(),
27
27
  avatarUrl: zod_1.z.string().url().optional(),
28
28
  });
29
+ exports.CreateScimTokenSchema = zod_1.z.object({
30
+ label: zod_1.z.string().min(1).max(255).optional(),
31
+ expiresInDays: zod_1.z.number().int().min(1).max(365).optional(),
32
+ });
29
33
  //# sourceMappingURL=identity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,6BAAuB;AA+CV,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,oEAAoE;IACpE,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IAC5E,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACxB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,MAAM,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACnE,aAAa,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACzC,WAAW,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;CACjF,CAAC,CAAA;AAqBF,wBAAwB;AAEX,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAClD,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAA"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,6BAAuB;AA+CV,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,oEAAoE;IACpE,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IAC5E,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACxB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,MAAM,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACnE,aAAa,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACzC,WAAW,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;CACjF,CAAC,CAAA;AAqBF,wBAAwB;AAEX,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAClD,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAA;AAwEW,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC5C,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CAC3D,CAAC,CAAA"}