@intutic/shared-types 1.9.0 → 1.10.1
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/README.md +1 -1
- package/dist/anomaly.d.ts +11 -0
- package/dist/anomaly.d.ts.map +1 -1
- package/dist/api-contracts.d.ts +97 -9
- package/dist/api-contracts.d.ts.map +1 -1
- package/dist/api-contracts.js +9 -0
- package/dist/api-contracts.js.map +1 -1
- package/dist/auth.d.ts +157 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +39 -1
- package/dist/auth.js.map +1 -1
- package/dist/billing.d.ts +2 -99
- package/dist/billing.d.ts.map +1 -1
- package/dist/billing.js +2 -17
- package/dist/billing.js.map +1 -1
- package/dist/enums.d.ts +341 -4
- package/dist/enums.d.ts.map +1 -1
- package/dist/enums.js +369 -6
- package/dist/enums.js.map +1 -1
- package/dist/errors.d.ts +20 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +20 -1
- package/dist/errors.js.map +1 -1
- package/dist/finops.d.ts +97 -1
- package/dist/finops.d.ts.map +1 -1
- package/dist/governanceCoverage.d.ts +82 -0
- package/dist/governanceCoverage.d.ts.map +1 -0
- package/dist/governanceCoverage.js +72 -0
- package/dist/governanceCoverage.js.map +1 -0
- package/dist/guardrailIr.d.ts +287 -0
- package/dist/guardrailIr.d.ts.map +1 -0
- package/dist/guardrailIr.js +301 -0
- package/dist/guardrailIr.js.map +1 -0
- package/dist/guardrailRender.d.ts +154 -0
- package/dist/guardrailRender.d.ts.map +1 -0
- package/dist/guardrailRender.js +440 -0
- package/dist/guardrailRender.js.map +1 -0
- package/dist/identity.d.ts +75 -0
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +5 -1
- package/dist/identity.js.map +1 -1
- package/dist/index.d.ts +34 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +124 -2
- package/dist/index.js.map +1 -1
- package/dist/intelligence.d.ts +37 -11
- package/dist/intelligence.d.ts.map +1 -1
- package/dist/intelligence.js.map +1 -1
- package/dist/modelCatalog.d.ts +89 -0
- package/dist/modelCatalog.d.ts.map +1 -0
- package/dist/modelCatalog.generated.d.ts +7204 -0
- package/dist/modelCatalog.generated.d.ts.map +1 -0
- package/dist/modelCatalog.generated.js +576 -0
- package/dist/modelCatalog.generated.js.map +1 -0
- package/dist/modelCatalog.js +112 -0
- package/dist/modelCatalog.js.map +1 -0
- package/dist/notifications.d.ts +134 -2
- package/dist/notifications.d.ts.map +1 -1
- package/dist/observability.d.ts +4 -0
- package/dist/observability.d.ts.map +1 -1
- package/dist/policyGuardrails.d.ts +433 -0
- package/dist/policyGuardrails.d.ts.map +1 -0
- package/dist/policyGuardrails.js +91 -0
- package/dist/policyGuardrails.js.map +1 -0
- package/dist/posturePresets.d.ts +74 -0
- package/dist/posturePresets.d.ts.map +1 -0
- package/dist/posturePresets.js +139 -0
- package/dist/posturePresets.js.map +1 -0
- package/dist/providerVerification.d.ts +64 -0
- package/dist/providerVerification.d.ts.map +1 -0
- package/dist/providerVerification.js +184 -0
- package/dist/providerVerification.js.map +1 -0
- package/dist/providers.d.ts +93 -0
- package/dist/providers.d.ts.map +1 -0
- package/dist/providers.js +176 -0
- package/dist/providers.js.map +1 -0
- package/dist/rulePredicateDsl.d.ts +101 -0
- package/dist/rulePredicateDsl.d.ts.map +1 -0
- package/dist/rulePredicateDsl.js +263 -0
- package/dist/rulePredicateDsl.js.map +1 -0
- package/dist/rulePredicateEval.d.ts +38 -0
- package/dist/rulePredicateEval.d.ts.map +1 -0
- package/dist/rulePredicateEval.js +124 -0
- package/dist/rulePredicateEval.js.map +1 -0
- package/dist/scriptScan.d.ts +162 -0
- package/dist/scriptScan.d.ts.map +1 -0
- package/dist/scriptScan.js +362 -0
- package/dist/scriptScan.js.map +1 -0
- package/dist/secretPatterns.d.ts +43 -0
- package/dist/secretPatterns.d.ts.map +1 -0
- package/dist/secretPatterns.js +73 -0
- package/dist/secretPatterns.js.map +1 -0
- package/dist/skillScan.d.ts +166 -0
- package/dist/skillScan.d.ts.map +1 -0
- package/dist/skillScan.js +398 -0
- package/dist/skillScan.js.map +1 -0
- package/dist/sop.d.ts +188 -9
- package/dist/sop.d.ts.map +1 -1
- package/dist/sop.js +54 -2
- package/dist/sop.js.map +1 -1
- package/dist/sourceProviders.d.ts +41 -0
- package/dist/sourceProviders.d.ts.map +1 -0
- package/dist/sourceProviders.js +48 -0
- package/dist/sourceProviders.js.map +1 -0
- package/dist/sync.d.ts +98 -8
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js.map +1 -1
- package/dist/toon.d.ts +80 -0
- package/dist/toon.d.ts.map +1 -0
- package/dist/toon.js +278 -0
- package/dist/toon.js.map +1 -0
- package/dist/usage.d.ts +23 -0
- package/dist/usage.d.ts.map +1 -1
- package/dist/wasmHost.d.ts +58 -0
- package/dist/wasmHost.d.ts.map +1 -0
- package/dist/wasmHost.js +80 -0
- package/dist/wasmHost.js.map +1 -0
- package/dist/workspaceSettings.d.ts +463 -21
- package/dist/workspaceSettings.d.ts.map +1 -1
- package/dist/workspaceSettings.js +86 -1
- package/dist/workspaceSettings.js.map +1 -1
- 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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"}
|
package/dist/identity.d.ts
CHANGED
|
@@ -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
|
package/dist/identity.d.ts.map
CHANGED
|
@@ -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
|
package/dist/identity.js.map
CHANGED
|
@@ -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"}
|