@sponsio/sdk 0.1.0 → 0.2.0-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/contracts/benchmark/agentdojo.yaml +551 -0
- package/contracts/benchmark/odcv_bench.yaml +393 -0
- package/contracts/benchmark/redcode_exec.yaml +488 -0
- package/contracts/benchmark/swebench.yaml +176 -0
- package/contracts/benchmark/tau2_bench.yaml +984 -0
- package/contracts/capability/destructive.yaml +213 -0
- package/contracts/capability/factual-claims.yaml +79 -0
- package/contracts/capability/host-config-integrity.yaml +42 -9
- package/contracts/capability/self-modify.yaml +32 -1
- package/contracts/capability/shell.yaml +19 -10
- package/contracts/incident/claude-code-secret-bypass.yaml +48 -16
- package/contracts/incident/cursor-railway-wipe.yaml +60 -4
- package/contracts/incident/openclaw.yaml +9 -62
- package/contracts/premium/.gitkeep +5 -6
- package/dist/cli/cli.js +32 -0
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/packs.d.ts.map +1 -1
- package/dist/cli/packs.js +14 -8
- package/dist/cli/packs.js.map +1 -1
- package/dist/cli/patterns.d.ts +5 -4
- package/dist/cli/patterns.d.ts.map +1 -1
- package/dist/cli/patterns.js +11 -10
- package/dist/cli/patterns.js.map +1 -1
- package/dist/cli/prompt.js +5 -5
- package/dist/cli/prompt.js.map +1 -1
- package/dist/cli/scan.js +2 -2
- package/dist/cli/skill.d.ts +1 -1
- package/dist/cli/skill.js +1 -1
- package/dist/cli/validate.js +5 -5
- package/dist/cli/validate.js.map +1 -1
- package/dist/cloud/client.d.ts +76 -0
- package/dist/cloud/client.d.ts.map +1 -0
- package/dist/cloud/client.js +198 -0
- package/dist/cloud/client.js.map +1 -0
- package/dist/cloud/evidence.d.ts +108 -0
- package/dist/cloud/evidence.d.ts.map +1 -0
- package/dist/cloud/evidence.js +184 -0
- package/dist/cloud/evidence.js.map +1 -0
- package/dist/cloud/privacy.d.ts +67 -0
- package/dist/cloud/privacy.d.ts.map +1 -0
- package/dist/cloud/privacy.js +170 -0
- package/dist/cloud/privacy.js.map +1 -0
- package/dist/cloud/view-model.d.ts +49 -0
- package/dist/cloud/view-model.d.ts.map +1 -0
- package/dist/cloud/view-model.js +172 -0
- package/dist/cloud/view-model.js.map +1 -0
- package/dist/core/config-loader.d.ts.map +1 -1
- package/dist/core/config-loader.js +81 -9
- package/dist/core/config-loader.js.map +1 -1
- package/dist/core/evaluator.d.ts +11 -1
- package/dist/core/evaluator.d.ts.map +1 -1
- package/dist/core/evaluator.js +275 -13
- package/dist/core/evaluator.js.map +1 -1
- package/dist/core/formula.d.ts +76 -17
- package/dist/core/formula.d.ts.map +1 -1
- package/dist/core/formula.js +83 -1
- package/dist/core/formula.js.map +1 -1
- package/dist/core/grounding.d.ts +44 -8
- package/dist/core/grounding.d.ts.map +1 -1
- package/dist/core/grounding.js +197 -26
- package/dist/core/grounding.js.map +1 -1
- package/dist/core/nl-parser.d.ts +2 -2
- package/dist/core/nl-parser.d.ts.map +1 -1
- package/dist/core/nl-parser.js +617 -41
- package/dist/core/nl-parser.js.map +1 -1
- package/dist/core/pack-loader.d.ts.map +1 -1
- package/dist/core/pack-loader.js +14 -2
- package/dist/core/pack-loader.js.map +1 -1
- package/dist/core/parser.d.ts.map +1 -1
- package/dist/core/parser.js +30 -1
- package/dist/core/parser.js.map +1 -1
- package/dist/core/pattern-factory.d.ts.map +1 -1
- package/dist/core/pattern-factory.js +14 -1
- package/dist/core/pattern-factory.js.map +1 -1
- package/dist/core/patterns.d.ts +118 -1
- package/dist/core/patterns.d.ts.map +1 -1
- package/dist/core/patterns.js +189 -10
- package/dist/core/patterns.js.map +1 -1
- package/dist/core/session-log.d.ts.map +1 -1
- package/dist/core/session-log.js +20 -1
- package/dist/core/session-log.js.map +1 -1
- package/dist/core/sto.d.ts +21 -27
- package/dist/core/sto.d.ts.map +1 -1
- package/dist/core/sto.js +30 -33
- package/dist/core/sto.js.map +1 -1
- package/dist/core/tool-names.d.ts +59 -0
- package/dist/core/tool-names.d.ts.map +1 -0
- package/dist/core/tool-names.js +128 -0
- package/dist/core/tool-names.js.map +1 -0
- package/dist/index.d.ts +181 -32
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +415 -67
- package/dist/index.js.map +1 -1
- package/dist/integrations/claude-agent.d.ts +5 -0
- package/dist/integrations/claude-agent.d.ts.map +1 -1
- package/dist/integrations/claude-agent.js +42 -13
- package/dist/integrations/claude-agent.js.map +1 -1
- package/dist/integrations/google-adk.d.ts +5 -3
- package/dist/integrations/google-adk.d.ts.map +1 -1
- package/dist/integrations/google-adk.js +9 -5
- package/dist/integrations/google-adk.js.map +1 -1
- package/dist/integrations/langchain.d.ts +7 -0
- package/dist/integrations/langchain.d.ts.map +1 -1
- package/dist/integrations/langchain.js +21 -3
- package/dist/integrations/langchain.js.map +1 -1
- package/dist/integrations/openai-agents.d.ts +22 -10
- package/dist/integrations/openai-agents.d.ts.map +1 -1
- package/dist/integrations/openai-agents.js +55 -15
- package/dist/integrations/openai-agents.js.map +1 -1
- package/dist/integrations/openai.d.ts +11 -0
- package/dist/integrations/openai.d.ts.map +1 -1
- package/dist/integrations/openai.js +130 -48
- package/dist/integrations/openai.js.map +1 -1
- package/dist/integrations/vercel-ai.d.ts +20 -9
- package/dist/integrations/vercel-ai.d.ts.map +1 -1
- package/dist/integrations/vercel-ai.js +131 -32
- package/dist/integrations/vercel-ai.js.map +1 -1
- package/package.json +17 -9
- package/prompts/onboard.md +26 -17
- package/prompts/scan.md +3 -5
- package/skills/SKILL.md +13 -83
- package/contracts/core/llm_safety.yaml +0 -140
- package/prompts/refresh.md +0 -118
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What may leave this machine.
|
|
3
|
+
*
|
|
4
|
+
* Port of ``sponsio/bridge/privacy.py``. Enforcement already happened
|
|
5
|
+
* here — the det checks are pure and local — so nothing in this file can
|
|
6
|
+
* change a verdict. It only narrows what the console is shown, which is
|
|
7
|
+
* what makes it cheap: the run's shape is all the cloud needs to render
|
|
8
|
+
* a dashboard, count a finding, or meter usage.
|
|
9
|
+
*/
|
|
10
|
+
import { createHash } from "node:crypto";
|
|
11
|
+
export const LEVELS = ["full", "shape", "hashed", "metadata", "tool_calls"];
|
|
12
|
+
const DEFAULT = "full";
|
|
13
|
+
const STRICTEST = "tool_calls";
|
|
14
|
+
function isLevel(v) {
|
|
15
|
+
return LEVELS.includes(v);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* The level in force. The environment beats the argument, deliberately:
|
|
19
|
+
* the person who decides what may leave a machine is the operator of
|
|
20
|
+
* that machine, not the author of the agent running on it.
|
|
21
|
+
*/
|
|
22
|
+
export function resolve(explicit) {
|
|
23
|
+
const env = (process.env.SPONSIO_PRIVACY ?? "").trim().toLowerCase();
|
|
24
|
+
if (isLevel(env))
|
|
25
|
+
return env;
|
|
26
|
+
if (env) {
|
|
27
|
+
// An unrecognised value is far more likely to be a typo in a
|
|
28
|
+
// deployment that meant to tighten than a request to loosen, so it
|
|
29
|
+
// fails closed, to the strictest level there is.
|
|
30
|
+
return STRICTEST;
|
|
31
|
+
}
|
|
32
|
+
if (explicit && isLevel(explicit))
|
|
33
|
+
return explicit;
|
|
34
|
+
return DEFAULT;
|
|
35
|
+
}
|
|
36
|
+
function typeOf(value) {
|
|
37
|
+
if (value === null || value === undefined)
|
|
38
|
+
return "<null>";
|
|
39
|
+
if (typeof value === "boolean")
|
|
40
|
+
return "<bool>";
|
|
41
|
+
if (typeof value === "number") {
|
|
42
|
+
// The one place the two runtimes cannot agree. JavaScript has a
|
|
43
|
+
// single number type, so a value Python reports as ``<float>``
|
|
44
|
+
// because it was written 250.0 arrives here indistinguishable from
|
|
45
|
+
// 250 and is reported ``<int>``. Reporting every number as a float
|
|
46
|
+
// to match would misdescribe every integer, which is worse: a shape
|
|
47
|
+
// is read to answer "what did the agent pass", and the answer for
|
|
48
|
+
// this runtime is that it passed a number JavaScript calls integral.
|
|
49
|
+
return Number.isInteger(value) ? "<int>" : "<float>";
|
|
50
|
+
}
|
|
51
|
+
if (typeof value === "string")
|
|
52
|
+
return `<str:${value.length}>`;
|
|
53
|
+
if (Array.isArray(value))
|
|
54
|
+
return `<list:${value.length}>`;
|
|
55
|
+
if (typeof value === "object") {
|
|
56
|
+
const parts = Object.entries(value).map(([k, v]) => `${k}: ${typeOf(v)}`);
|
|
57
|
+
return `{${parts.join(", ")}}`;
|
|
58
|
+
}
|
|
59
|
+
return `<${typeof value}>`;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The structure of an argument set, with every value replaced.
|
|
63
|
+
*
|
|
64
|
+
* Lengths survive for strings and lists because "the model passed a
|
|
65
|
+
* 40 000-character path" is a debugging fact and not content, and it is
|
|
66
|
+
* the one an oversize-argument rule fires on.
|
|
67
|
+
*/
|
|
68
|
+
export function shape(args) {
|
|
69
|
+
if (args === null || args === undefined)
|
|
70
|
+
return "";
|
|
71
|
+
if (typeof args === "object" && !Array.isArray(args)) {
|
|
72
|
+
const parts = Object.entries(args).map(([k, v]) => `"${k}": ${typeOf(v)}`);
|
|
73
|
+
return `{${parts.join(", ")}}`;
|
|
74
|
+
}
|
|
75
|
+
return typeOf(args);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* ``json.dumps`` as Python writes it, which is what the other runtime
|
|
79
|
+
* hashes and displays.
|
|
80
|
+
*
|
|
81
|
+
* ``JSON.stringify`` omits the spaces Python puts after ``,`` and
|
|
82
|
+
* ``:``. That is invisible in a console and decisive in a digest: the
|
|
83
|
+
* same arguments hashed to different values on the two sides, so
|
|
84
|
+
* duplicate and loop detection disagreed about whether two calls were
|
|
85
|
+
* the same call. ``sortKeys`` additionally makes two calls that differ
|
|
86
|
+
* only in key order agree, which is what the digest is for.
|
|
87
|
+
*/
|
|
88
|
+
export function pyJson(value, sortKeys = false) {
|
|
89
|
+
const seen = new WeakSet();
|
|
90
|
+
const walk = (v) => {
|
|
91
|
+
if (v === null || v === undefined)
|
|
92
|
+
return "null";
|
|
93
|
+
if (typeof v === "string")
|
|
94
|
+
return JSON.stringify(v);
|
|
95
|
+
if (typeof v === "number" || typeof v === "boolean")
|
|
96
|
+
return JSON.stringify(v);
|
|
97
|
+
if (typeof v !== "object")
|
|
98
|
+
return JSON.stringify(String(v));
|
|
99
|
+
if (seen.has(v))
|
|
100
|
+
return JSON.stringify("[circular]");
|
|
101
|
+
seen.add(v);
|
|
102
|
+
if (Array.isArray(v))
|
|
103
|
+
return "[" + v.map(walk).join(", ") + "]";
|
|
104
|
+
const o = v;
|
|
105
|
+
const keys = sortKeys ? Object.keys(o).sort() : Object.keys(o);
|
|
106
|
+
return "{" + keys.map((k) => `${JSON.stringify(k)}: ${walk(o[k])}`).join(", ") + "}";
|
|
107
|
+
};
|
|
108
|
+
try {
|
|
109
|
+
return walk(value);
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return String(value);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* A stable short hash of an argument set. An equality token, not a
|
|
117
|
+
* signature, which is why twelve hex characters is enough: it is what
|
|
118
|
+
* lets duplicate and loop detection keep working with no content.
|
|
119
|
+
*/
|
|
120
|
+
export function digest(args) {
|
|
121
|
+
if (args === null || args === undefined)
|
|
122
|
+
return "";
|
|
123
|
+
return ("sha256:" +
|
|
124
|
+
createHash("sha256").update(pyJson(args, true)).digest("hex").slice(0, 12));
|
|
125
|
+
}
|
|
126
|
+
/** What ``argsPreview`` carries at this level. */
|
|
127
|
+
export function preview(args, level, fullPreview) {
|
|
128
|
+
if (level === "full")
|
|
129
|
+
return fullPreview;
|
|
130
|
+
if (level === "shape")
|
|
131
|
+
return shape(args);
|
|
132
|
+
if (level === "hashed")
|
|
133
|
+
return digest(args);
|
|
134
|
+
return "";
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* What a model turn may quote of itself. A response is the most
|
|
138
|
+
* content-bearing field in the payload, so it goes one level earlier
|
|
139
|
+
* than arguments do.
|
|
140
|
+
*/
|
|
141
|
+
export function say(text, level) {
|
|
142
|
+
return level === "metadata" || level === "tool_calls" ? "" : text;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Whether a step of this type is recorded at all.
|
|
146
|
+
*
|
|
147
|
+
* Only ``tool_calls`` drops whole steps. Every other level keeps the
|
|
148
|
+
* shape of the run and empties fields; this one keeps the action lane
|
|
149
|
+
* alone, because that is what the customer asked for by name.
|
|
150
|
+
*/
|
|
151
|
+
export function keepsStep(stepType, level) {
|
|
152
|
+
return level === "tool_calls" ? stepType === "tool_call" : true;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* A stamp for the run, so a reader knows what they are not seeing.
|
|
156
|
+
*
|
|
157
|
+
* A dashboard showing empty arguments has to be able to say whether the
|
|
158
|
+
* agent passed none or the deployment declined to send them.
|
|
159
|
+
*/
|
|
160
|
+
export function describe(level) {
|
|
161
|
+
return {
|
|
162
|
+
level,
|
|
163
|
+
sendsArguments: level === "full",
|
|
164
|
+
sendsArgumentShapes: level === "full" || level === "shape",
|
|
165
|
+
sendsOutputText: level === "full" || level === "shape" || level === "hashed",
|
|
166
|
+
sendsClaimValues: level === "full" || level === "shape" || level === "hashed",
|
|
167
|
+
sendsOutputLane: level !== "tool_calls",
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=privacy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"privacy.js","sourceRoot":"","sources":["../../src/cloud/privacy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One finished run, in the shape the cloud stores.
|
|
3
|
+
*
|
|
4
|
+
* Port of the projection in ``sponsio/bridge/session.py``. Field names
|
|
5
|
+
* are Python's, not new ones: the server, the console and the findings
|
|
6
|
+
* pipeline all read this object, and a TypeScript run that spelled
|
|
7
|
+
* ``argsPreview`` differently would upload successfully and then appear
|
|
8
|
+
* as a run with no arguments and no rules.
|
|
9
|
+
*/
|
|
10
|
+
import type { DetFormula } from "../core/patterns.js";
|
|
11
|
+
import type { AgentTurnSpan } from "../core/spans.js";
|
|
12
|
+
import type { DetViolation } from "../index.js";
|
|
13
|
+
import * as privacy from "./privacy.js";
|
|
14
|
+
/** Parity with ``bridge.spans.slug``. */
|
|
15
|
+
export declare function slug(text: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* One line, truncated. Truncation happens before the value leaves the
|
|
18
|
+
* machine, so an argument that should never have been sent cannot be
|
|
19
|
+
* reconstructed from what was.
|
|
20
|
+
*/
|
|
21
|
+
export declare function argsPreview(args: unknown, limit?: number): string;
|
|
22
|
+
/** A run id with enough entropy that two runs cannot silently become one. */
|
|
23
|
+
export declare function newSessionId(): string;
|
|
24
|
+
export interface RunSpan {
|
|
25
|
+
span: AgentTurnSpan;
|
|
26
|
+
/** The violations the check produced, in the order it produced them. */
|
|
27
|
+
violations: DetViolation[];
|
|
28
|
+
/** What kind of step this was; only ``tool_call`` survives `tool_calls`. */
|
|
29
|
+
type?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface ViewModelInput {
|
|
32
|
+
agentId: string;
|
|
33
|
+
mode: string;
|
|
34
|
+
sessionId: string;
|
|
35
|
+
startedAt: number;
|
|
36
|
+
contracts: DetFormula[];
|
|
37
|
+
spans: RunSpan[];
|
|
38
|
+
privacyLevel: privacy.PrivacyLevel;
|
|
39
|
+
/** Which book this run enforced, when it came from the cloud. */
|
|
40
|
+
rulebookStamp?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Build the run object.
|
|
44
|
+
*
|
|
45
|
+
* The privacy level is applied here rather than at the transport, so
|
|
46
|
+
* there is one place that decides what leaves and no path around it.
|
|
47
|
+
*/
|
|
48
|
+
export declare function buildViewModel(input: ViewModelInput): Record<string, unknown>;
|
|
49
|
+
//# sourceMappingURL=view-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-model.d.ts","sourceRoot":"","sources":["../../src/cloud/view-model.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAKxC,yCAAyC;AACzC,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,SAAM,GAAG,MAAM,CAO9D;AA4BD,6EAA6E;AAC7E,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,aAAa,CAAC;IACpB,wEAAwE;IACxE,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC;IACnC,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAUD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuG7E"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One finished run, in the shape the cloud stores.
|
|
3
|
+
*
|
|
4
|
+
* Port of the projection in ``sponsio/bridge/session.py``. Field names
|
|
5
|
+
* are Python's, not new ones: the server, the console and the findings
|
|
6
|
+
* pipeline all read this object, and a TypeScript run that spelled
|
|
7
|
+
* ``argsPreview`` differently would upload successfully and then appear
|
|
8
|
+
* as a run with no arguments and no rules.
|
|
9
|
+
*/
|
|
10
|
+
import { randomBytes } from "node:crypto";
|
|
11
|
+
import * as privacy from "./privacy.js";
|
|
12
|
+
import { pyJson } from "./privacy.js";
|
|
13
|
+
const SLUG = /[^a-z0-9]+/g;
|
|
14
|
+
/** Parity with ``bridge.spans.slug``. */
|
|
15
|
+
export function slug(text) {
|
|
16
|
+
return String(text).trim().toLowerCase().replace(SLUG, "-").replace(/^-|-$/g, "") || "rule";
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* One line, truncated. Truncation happens before the value leaves the
|
|
20
|
+
* machine, so an argument that should never have been sent cannot be
|
|
21
|
+
* reconstructed from what was.
|
|
22
|
+
*/
|
|
23
|
+
export function argsPreview(args, limit = 160) {
|
|
24
|
+
if (args === null || args === undefined)
|
|
25
|
+
return "";
|
|
26
|
+
// Python's json.dumps spacing, so the same call renders identically in
|
|
27
|
+
// the console whichever runtime recorded it.
|
|
28
|
+
let text = pyJson(args);
|
|
29
|
+
text = text.split(/\s+/).join(" ");
|
|
30
|
+
return text.length <= limit ? text : text.slice(0, limit - 1) + "…";
|
|
31
|
+
}
|
|
32
|
+
/** Statuses the console has a colour for. */
|
|
33
|
+
const KNOWN_ACTIONS = new Set([
|
|
34
|
+
"blocked", "escalated", "redirected", "retrying", "warned", "observed",
|
|
35
|
+
]);
|
|
36
|
+
function stepStatus(span, violations) {
|
|
37
|
+
if (!violations.length)
|
|
38
|
+
return "ok";
|
|
39
|
+
const acted = violations.find((v) => v.action && KNOWN_ACTIONS.has(v.action));
|
|
40
|
+
if (acted?.action)
|
|
41
|
+
return acted.action;
|
|
42
|
+
return span.blocked ? "blocked" : "observed";
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Hex from the system CSPRNG, as Python's ``secrets.token_hex`` does.
|
|
46
|
+
*
|
|
47
|
+
* ``Math.random()`` is not one, and this is the one place where that
|
|
48
|
+
* matters: the server keys a run by its id and upserts, so two runs
|
|
49
|
+
* sharing an id silently become one and the older is overwritten with no
|
|
50
|
+
* error. A booting fleet seeds ``Math.random`` from a clock they share.
|
|
51
|
+
*/
|
|
52
|
+
function hex(chars) {
|
|
53
|
+
return randomBytes(Math.ceil(chars / 2))
|
|
54
|
+
.toString("hex")
|
|
55
|
+
.slice(0, chars);
|
|
56
|
+
}
|
|
57
|
+
/** A run id with enough entropy that two runs cannot silently become one. */
|
|
58
|
+
export function newSessionId() {
|
|
59
|
+
return "run-" + hex(16);
|
|
60
|
+
}
|
|
61
|
+
function firstContractName(span) {
|
|
62
|
+
for (const child of span.children ?? []) {
|
|
63
|
+
const named = child;
|
|
64
|
+
if (named.contractName)
|
|
65
|
+
return named.contractName;
|
|
66
|
+
}
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Build the run object.
|
|
71
|
+
*
|
|
72
|
+
* The privacy level is applied here rather than at the transport, so
|
|
73
|
+
* there is one place that decides what leaves and no path around it.
|
|
74
|
+
*/
|
|
75
|
+
export function buildViewModel(input) {
|
|
76
|
+
const { privacyLevel: level } = input;
|
|
77
|
+
const byLabel = new Map(input.contracts.map((c) => [c.desc, c]));
|
|
78
|
+
const violationCounts = new Map();
|
|
79
|
+
const traceId = hex(32);
|
|
80
|
+
const steps = [];
|
|
81
|
+
input.spans.forEach((entry, idx) => {
|
|
82
|
+
const type = entry.type ?? "tool_call";
|
|
83
|
+
if (!privacy.keepsStep(type, level))
|
|
84
|
+
return;
|
|
85
|
+
const rawArgs = entry.span.attributes.args;
|
|
86
|
+
const violations = entry.violations.map((v) => {
|
|
87
|
+
const contract = byLabel.get(v.desc);
|
|
88
|
+
const label = v.desc;
|
|
89
|
+
violationCounts.set(label, (violationCounts.get(label) ?? 0) + 1);
|
|
90
|
+
return {
|
|
91
|
+
contractId: slug(label),
|
|
92
|
+
contractLabel: label,
|
|
93
|
+
category: "Prohibited",
|
|
94
|
+
kind: "guarantee",
|
|
95
|
+
severity: "HIGH",
|
|
96
|
+
pipeline: "det",
|
|
97
|
+
enforcement: {
|
|
98
|
+
strategy: v.action === "escalated" ? "EscalateToHuman" : "DetBlock",
|
|
99
|
+
action: v.action ?? "observed",
|
|
100
|
+
},
|
|
101
|
+
evidence: `Runtime det violation: ${label}`,
|
|
102
|
+
reason: label,
|
|
103
|
+
// The rule's identity, which is what the cloud groups findings
|
|
104
|
+
// by. Without it a violation carries only its English sentence
|
|
105
|
+
// and a reworded rule loses its own history.
|
|
106
|
+
pattern: contract?.patternName ?? v.ruleId ?? "",
|
|
107
|
+
args: contract?.args ?? [],
|
|
108
|
+
};
|
|
109
|
+
});
|
|
110
|
+
steps.push({
|
|
111
|
+
id: `s${idx}`,
|
|
112
|
+
serviceName: entry.span.agentId || input.agentId,
|
|
113
|
+
traceId,
|
|
114
|
+
spanId: "0".repeat(16),
|
|
115
|
+
type,
|
|
116
|
+
tool: entry.span.action,
|
|
117
|
+
argsPreview: privacy.preview(rawArgs, level, argsPreview(rawArgs)),
|
|
118
|
+
durationMs: Number((entry.span.durationMs() ?? 0).toFixed(2)),
|
|
119
|
+
status: stepStatus(entry.span, entry.violations),
|
|
120
|
+
verdict: {
|
|
121
|
+
blocked: entry.span.blocked,
|
|
122
|
+
contractsChecked: entry.span.totalContractsChecked,
|
|
123
|
+
violations,
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
const contracts = input.contracts.map((c) => ({
|
|
128
|
+
id: slug(c.desc),
|
|
129
|
+
label: c.desc,
|
|
130
|
+
status: (violationCounts.get(c.desc) ?? 0) > 0 ? "watching" : "armed",
|
|
131
|
+
pipeline: "det",
|
|
132
|
+
violationCount: violationCounts.get(c.desc) ?? 0,
|
|
133
|
+
pattern: c.patternName,
|
|
134
|
+
args: c.args ?? [],
|
|
135
|
+
source: "policy",
|
|
136
|
+
boundAgents: [],
|
|
137
|
+
}));
|
|
138
|
+
const total = steps.length;
|
|
139
|
+
const failed = steps.filter((s) => s.status !== "ok").length;
|
|
140
|
+
const blocked = steps.filter((s) => s.status === "blocked").length;
|
|
141
|
+
const vm = {
|
|
142
|
+
session: {
|
|
143
|
+
id: input.sessionId,
|
|
144
|
+
agentId: input.agentId,
|
|
145
|
+
mode: input.mode,
|
|
146
|
+
startedAt: input.startedAt,
|
|
147
|
+
},
|
|
148
|
+
agents: [{ id: input.agentId, label: input.agentId }],
|
|
149
|
+
edges: [],
|
|
150
|
+
steps,
|
|
151
|
+
contracts,
|
|
152
|
+
summary: {
|
|
153
|
+
passRate: total ? (total - failed) / total : 1,
|
|
154
|
+
totalSteps: total,
|
|
155
|
+
detBlocks: blocked,
|
|
156
|
+
stoRetries: 0,
|
|
157
|
+
escalations: steps.filter((s) => s.status === "escalated").length,
|
|
158
|
+
contractsArmed: contracts.filter((c) => c.violationCount === 0).length,
|
|
159
|
+
contractsTotal: contracts.length,
|
|
160
|
+
stopped: blocked,
|
|
161
|
+
},
|
|
162
|
+
// So a reader can tell "the agent passed no arguments" from "this
|
|
163
|
+
// deployment does not send them".
|
|
164
|
+
privacy: privacy.describe(level),
|
|
165
|
+
};
|
|
166
|
+
if (input.rulebookStamp) {
|
|
167
|
+
vm.rulebook = input.rulebookStamp;
|
|
168
|
+
vm.rulebookRef = input.rulebookStamp;
|
|
169
|
+
}
|
|
170
|
+
return vm;
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=view-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-model.js","sourceRoot":"","sources":["../../src/cloud/view-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/core/config-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/core/config-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA+BhD,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,SAAS,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC;IACnC,iEAAiE;IACjE,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,yEAAyE;IACzE,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,mEAAmE;IACnE,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B;;;OAGG;IACH,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,cAAc,GAAG,kBAAkB,CAAC;IAC3E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,WAAW,GACX,WAAW,GACX,mBAAmB,GACnB,oBAAoB,GACpB,eAAe,GACf,kBAAkB,GAClB,gBAAgB,CAAC;AAErB;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB;mCAC+B;IAC/B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,0CAA0C;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CAC1C;AAiBD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CA6D5E"}
|
|
@@ -30,16 +30,31 @@ import { readFileSync } from "node:fs";
|
|
|
30
30
|
import { createRequire } from "node:module";
|
|
31
31
|
import { buildPatternByName, isAgPair, PatternFactoryError, } from "./pattern-factory.js";
|
|
32
32
|
import { parseRepr, ParseError } from "./parser.js";
|
|
33
|
+
import { parseNl } from "./nl-parser.js";
|
|
33
34
|
import { And, G, Implies } from "./formula.js";
|
|
34
35
|
import { loadPackContracts } from "./pack-loader.js";
|
|
35
36
|
import { dirname, resolve as resolvePath } from "node:path";
|
|
36
37
|
// Use createRequire so we can lazily load the optional `yaml` package
|
|
37
38
|
// without breaking non-yaml users (ESM dynamic import would force the
|
|
38
39
|
// entire constructor path async, which we don't want).
|
|
39
|
-
|
|
40
|
+
//
|
|
41
|
+
// Built lazily on first use rather than at module load. On runtimes
|
|
42
|
+
// where the SDK is bundled but YAML config is never used (Cloudflare
|
|
43
|
+
// Workers, Deno Deploy), `import.meta.url` is `undefined` and an eager
|
|
44
|
+
// `createRequire(undefined)` throws at import time, taking the whole
|
|
45
|
+
// bundle down. Deferring the call means a Worker that never loads YAML
|
|
46
|
+
// never touches `createRequire`; the `?? noop` guard keeps it from
|
|
47
|
+
// throwing in the rare case it is reached on such a runtime.
|
|
48
|
+
let _requireCjs = null;
|
|
49
|
+
function getRequireCjs() {
|
|
50
|
+
if (_requireCjs === null) {
|
|
51
|
+
_requireCjs = createRequire(import.meta.url ?? "file:///sponsio-noop.js");
|
|
52
|
+
}
|
|
53
|
+
return _requireCjs;
|
|
54
|
+
}
|
|
40
55
|
function loadYamlLib() {
|
|
41
56
|
try {
|
|
42
|
-
return
|
|
57
|
+
return getRequireCjs()("yaml");
|
|
43
58
|
}
|
|
44
59
|
catch {
|
|
45
60
|
throw new Error("[sponsio] config loading requires the `yaml` package. " +
|
|
@@ -80,7 +95,13 @@ export function loadSponsoConfig(path, agentId) {
|
|
|
80
95
|
const contracts = [];
|
|
81
96
|
const stoSpecs = [];
|
|
82
97
|
const runtime = getObject(parsed["runtime"]);
|
|
83
|
-
|
|
98
|
+
// Yaml mode precedence mirrors Python: `runtime.mode` >
|
|
99
|
+
// `defaults.mode` > bare top-level `mode:`. The top-level key is how
|
|
100
|
+
// docs/reference/config-yaml.md documents the global default, so a
|
|
101
|
+
// file written exactly as documented has to work here too.
|
|
102
|
+
const mode = extractModeKey(runtime, "runtime.mode", path) ??
|
|
103
|
+
extractModeKey(getObject(parsed["defaults"]), "defaults.mode", path) ??
|
|
104
|
+
parseModeValue(parsed["mode"], "mode", path);
|
|
84
105
|
const dashboard = extractDashboard(runtime);
|
|
85
106
|
const judge = extractJudge(parsed["judge"]);
|
|
86
107
|
const agents = getObject(parsed["agents"]);
|
|
@@ -150,13 +171,24 @@ function extractJudge(raw) {
|
|
|
150
171
|
/* -----------------------------------------------------------------
|
|
151
172
|
* helpers
|
|
152
173
|
* -----------------------------------------------------------------*/
|
|
153
|
-
function
|
|
154
|
-
if (!
|
|
174
|
+
function extractModeKey(block, keyName, path) {
|
|
175
|
+
if (!block)
|
|
155
176
|
return undefined;
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
177
|
+
return parseModeValue(block["mode"], keyName, path);
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Validate one `mode:` value. An unrecognised value is a typo the user
|
|
181
|
+
* wants to hear about, not something to silently ignore — silently
|
|
182
|
+
* ignoring it is exactly how the top-level key spent its life
|
|
183
|
+
* documented and inert (mirrors Python's `_parse_top_level_mode`).
|
|
184
|
+
*/
|
|
185
|
+
function parseModeValue(raw, keyName, path) {
|
|
186
|
+
if (raw === undefined || raw === null)
|
|
187
|
+
return undefined;
|
|
188
|
+
const norm = typeof raw === "string" ? raw.trim().toLowerCase() : raw;
|
|
189
|
+
if (norm === "enforce" || norm === "observe")
|
|
190
|
+
return norm;
|
|
191
|
+
throw new Error(`[sponsio] ${path}: \`${keyName}\` must be one of ['enforce', 'observe'], got ${JSON.stringify(raw)}`);
|
|
160
192
|
}
|
|
161
193
|
function extractDashboard(runtime) {
|
|
162
194
|
if (!runtime)
|
|
@@ -197,6 +229,30 @@ const STO_ATOMS = new Set([
|
|
|
197
229
|
"injection_free",
|
|
198
230
|
]);
|
|
199
231
|
function projectContract(entry) {
|
|
232
|
+
const projected = projectContractShape(entry);
|
|
233
|
+
// Per-contract `mode:` — overrides the global mode for this contract
|
|
234
|
+
// alone (mirrors Python's ContractEntry.mode; absent stays distinct
|
|
235
|
+
// from `observe`, and an unrecognised value raises rather than being
|
|
236
|
+
// ignored). NL entries are parsed here so the mode has a formula to
|
|
237
|
+
// ride on; an unparseable NL contract is inert anyway, so its mode
|
|
238
|
+
// is moot and the ctor's warning covers it.
|
|
239
|
+
if (!isObject(entry))
|
|
240
|
+
return projected;
|
|
241
|
+
const cMode = parseModeValue(entry["mode"], "contracts[].mode", "config");
|
|
242
|
+
if (!cMode)
|
|
243
|
+
return projected;
|
|
244
|
+
if (projected.kind === "det") {
|
|
245
|
+
projected.value.mode = cMode;
|
|
246
|
+
return projected;
|
|
247
|
+
}
|
|
248
|
+
if (projected.kind === "nl") {
|
|
249
|
+
const parsed = parseNl(projected.value);
|
|
250
|
+
if (parsed)
|
|
251
|
+
return { kind: "det", value: { ...parsed, mode: cMode } };
|
|
252
|
+
}
|
|
253
|
+
return projected;
|
|
254
|
+
}
|
|
255
|
+
function projectContractShape(entry) {
|
|
200
256
|
// Simplest form: a bare string on the contracts list.
|
|
201
257
|
if (typeof entry === "string") {
|
|
202
258
|
return { kind: "nl", value: entry };
|
|
@@ -293,6 +349,16 @@ function projectContract(entry) {
|
|
|
293
349
|
desc: desc || `${aBuilt.formula.desc} => ${eBuilt.formula.desc}`,
|
|
294
350
|
patternName: `${aBuilt.formula.patternName}__implies__${eBuilt.formula.patternName}`,
|
|
295
351
|
liveness: eBuilt.formula.liveness,
|
|
352
|
+
// The enforcement side owns the strategy. Rebuilding a contract
|
|
353
|
+
// field by field is how `redirect_to_safe` lost its substitute:
|
|
354
|
+
// the formula survived, the strategy did not, and every redirect
|
|
355
|
+
// came back as a plain block.
|
|
356
|
+
...(eBuilt.formula.strategy !== undefined
|
|
357
|
+
? { strategy: eBuilt.formula.strategy }
|
|
358
|
+
: {}),
|
|
359
|
+
...(eBuilt.formula.safeName !== undefined
|
|
360
|
+
? { safeName: eBuilt.formula.safeName }
|
|
361
|
+
: {}),
|
|
296
362
|
};
|
|
297
363
|
return { kind: "det", value: composed };
|
|
298
364
|
}
|
|
@@ -302,6 +368,12 @@ function projectContract(entry) {
|
|
|
302
368
|
desc: desc || eBuilt.formula.desc,
|
|
303
369
|
patternName: eBuilt.formula.patternName,
|
|
304
370
|
liveness: eBuilt.formula.liveness,
|
|
371
|
+
...(eBuilt.formula.strategy !== undefined
|
|
372
|
+
? { strategy: eBuilt.formula.strategy }
|
|
373
|
+
: {}),
|
|
374
|
+
...(eBuilt.formula.safeName !== undefined
|
|
375
|
+
? { safeName: eBuilt.formula.safeName }
|
|
376
|
+
: {}),
|
|
305
377
|
};
|
|
306
378
|
return { kind: "det", value: naked };
|
|
307
379
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/core/config-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EACL,kBAAkB,EAClB,QAAQ,EACR,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAgB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AAE5D,sEAAsE;AACtE,sEAAsE;AACtE,uDAAuD;AACvD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAqElD,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,MAAM,CAAY,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,wDAAwD;YACtD,mCAAmC,CACtC,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,OAAe;IAC5D,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAE9B,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,4CAA4C,CAC9D,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAsB,EAAE,CAAC;IAEvC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,MAAM;QACvB,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;QAChE,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,UAAU,EAAE,CAAC;QACf,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,oEAAoE;IACpE,kEAAkE;IAClE,kEAAkE;IAClE,iEAAiE;IACjE,aAAa;IACb,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC;IAC9C,cAAc,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrE,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEzE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAClE,CAAC;AAED,SAAS,cAAc,CACrB,GAAY,EACZ,OAAe,EACf,MAA+B,EAC/B,MAAyB,EACzB,OAAsB;IAEtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO;IAChC,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,uCAAuC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7F,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QACnE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI;gBAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;iBACrD,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK;gBAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;iBAC3D,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK;gBAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;;gBAC3D,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,GAAY;IAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;IAChC,MAAM,YAAY,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAoB,EAAE,CAAC;IACjC,IAAI,QAAQ,KAAK,QAAQ;QAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAClD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAC/D,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO;QAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACnE,IACE,YAAY,KAAK,OAAO;QACxB,YAAY,KAAK,MAAM;QACvB,YAAY,KAAK,MAAM,EACvB,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC;AAED;;sEAEsE;AAEtE,SAAS,WAAW,CAAC,OAAuC;IAI1D,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IACjD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CACvB,OAAuC;IAEvC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IAC9D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAA8B,EAC9B,MAA+B,EAC/B,MAAyB,EACzB,OAAsB;IAEtB,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO;IAEhC,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAc;IACrC,MAAM;IACN,WAAW;IACX,WAAW;IACX,mBAAmB;IACnB,oBAAoB;IACpB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;CACjB,CAAC,CAAC;AAQH,SAAS,eAAe,CAAC,KAAc;IACrC,sDAAsD;IACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE;gBACN,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,mCAAmC,OAAO,KAAK,EAAE;aAC1D;SACF,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,6CAA6C;IAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAEzC,kEAAkE;IAClE,8DAA8D;IAC9D,wDAAwD;IACxD,yDAAyD;IACzD,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;QACrD,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC;YAC/C,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE;oBACN,IAAI,EAAE,cAAc;oBACpB,MAAM,EACJ,IAAI;wBACJ,mEAAmE;iBACtE;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,gEAAgE;IAChE,gDAAgD;IAChD,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1C,IAAI,SAAS,CAAC,GAAG,CAAC,OAAsB,CAAC,EAAE,CAAC;YAC1C,OAAO,UAAU,CAAC,OAAsB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,6DAA6D;IAC7D,kEAAkE;IAClE,4BAA4B;IAC5B,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,EAAE,CAAC;QACzD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACrC,CAAC;IAED,gDAAgD;IAChD,gBAAgB;IAChB,iDAAiD;IACjD,8BAA8B;IAC9B,4CAA4C;IAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1C,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,+DAA+D;QAC/D,+DAA+D;QAC/D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,+DAA+D;YAC/D,gEAAgE;YAChE,gDAAgD;YAChD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7C,CAAC;IAED,6DAA6D;IAC7D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1C,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAChC,2DAA2D;YAC3D,yDAAyD;YACzD,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE;oBACN,IAAI,EAAE,qBAAqB;oBAC3B,MAAM,EAAE,GAAG,IAAI,IAAI,UAAU,oDAAoD;iBAClF;aACF,CAAC;QACJ,CAAC;QACD,4DAA4D;QAC5D,4DAA4D;QAC5D,iEAAiE;QACjE,2DAA2D;QAC3D,iEAAiE;QACjE,oBAAoB;QACpB,MAAM,QAAQ,GAAe;YAC3B,OAAO,EAAE,IAAI,CAAC,CACZ,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAC5D;YACD,IAAI,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;YAChE,WAAW,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,cAAc,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE;YACpF,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;SAClC,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAED,4BAA4B;IAC5B,MAAM,KAAK,GAAe;QACxB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;QAC/B,IAAI,EAAE,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI;QACjC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW;QACvC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;KAClC,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC;AAOD;qDACqD;AACrD,SAAS,eAAe,CACtB,GAAY,EACZ,IAAe,EACf,UAAkB;IAElB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACtC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,wDAAwD;YACxD,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE;oBACN,IAAI,EAAE,kBAAkB;oBACxB,MAAM,EAAE,GAAG,UAAU,IAAI,UAAU,aAAa,IAAI,GAAG;iBACxD;aACF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE;gBACN,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,GAAG,UAAU,IAAI,UAAU,2BAA2B;aAC/D;SACF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE;oBACN,IAAI,EAAE,kBAAkB;oBACxB,MAAM,EAAE,GAAG,UAAU,IAAI,UAAU,WAAW,IAAI,GAAG;iBACtD;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC/C,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,+DAA+D;QAC/D,gEAAgE;QAChE,0DAA0D;QAC1D,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;YAClD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO;oBACL,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE;wBACN,IAAI,EAAE,qBAAqB;wBAC3B,MAAM,EAAE,GAAG,UAAU,IAAI,UAAU,iBAAiB,IAAI,8BAA8B;qBACvF;iBACF,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE;oBACN,IAAI,EAAE,kBAAkB;oBACxB,MAAM,EAAE,GAAG,UAAU,IAAI,UAAU,gBAAgB,IAAI,GAAG;iBAC3D;aACF,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAY,KAAK;aAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACrB,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAgC,CAAE,CAAC;QACtF,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE;gBACP,OAAO,EAAE,QAAQ;gBACjB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC1C,WAAW,EAAE,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAClE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;aACxC;SACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE;gBACN,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,GAAG,UAAU,IAAI,UAAU,KAAK,IAAI,kCAAkC;aAC/E;SACF,CAAC;IACJ,CAAC;IAED,+DAA+D;IAC/D,gEAAgE;IAChE,kEAAkE;IAClE,kEAAkE;IAClE,gEAAgE;IAChE,0DAA0D;IAC1D,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,UAAU,GACd,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,EAAE;QACvD,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE;QACtB,CAAC,CAAC,UAAU,CAAC;IAEjB,kEAAkE;IAClE,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;IACvB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE;oBACP,OAAO,EAAE,CAAC;oBACV,4DAA4D;oBAC5D,6DAA6D;oBAC7D,uDAAuD;oBACvD,IAAI,EAAE,UAAU,IAAI,GAAG;oBACvB,WAAW,EAAE,KAAK;oBAClB,QAAQ,EAAE,KAAK;iBAChB;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClE,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE;oBACN,IAAI,EAAE,qBAAqB;oBAC3B,MAAM,EAAE,GAAG,UAAU,IAAI,UAAU,KAAK,IAAI,sBAAsB,GAAG,EAAE;iBACxE;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,MAAM,CAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAChD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO;oBACL,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE;wBACN,IAAI,EAAE,qBAAqB;wBAC3B,MAAM,EAAE,UAAU,IAAI,WAAW,OAAO,EAAE;qBAC3C;iBACF,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;YACtD,0DAA0D;YAC1D,6DAA6D;YAC7D,MAAM,QAAQ,GACZ,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,EAAE;gBACvD,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE;gBACxC,CAAC,CAAC,GAAG,CAAC;YACV,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GACP,GAAG,YAAY,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE;oBACN,IAAI,EAAE,qBAAqB;oBAC3B,MAAM,EAAE,GAAG,UAAU,IAAI,UAAU,aAAa,OAAO,MAAM,GAAG,EAAE;iBACnE;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACtD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IACxD,CAAC;IAED,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE;YACN,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,GAAG,UAAU,IAAI,UAAU,KAAK,IAAI,4BAA4B;SACzE;KACF,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CACjB,IAAiB,EACjB,MAA+B,EAC/B,IAAY;IAEZ,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,SAAS,GAAG,GAAG,CAAC;IACpB,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACtE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,MAAM,cAAc,GAClB,OAAO,MAAM,CAAC,iBAAiB,CAAC,KAAK,QAAQ;QAC3C,CAAC,CAAE,MAAM,CAAC,iBAAiB,CAAY;QACvC,CAAC,CAAC,SAAS,CAAC;IAEhB,+DAA+D;IAC/D,2DAA2D;IAC3D,+DAA+D;IAC/D,yBAAyB;IACzB,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,eAAe,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,qBAAqB,CAAC;QACvE,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE;gBACN,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,GAAG,IAAI,IAAI,IAAI,4BAA4B,IAAI,GAAG;aAC3D;SACF,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GACf,IAAI,KAAK,MAAM;QACb,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,GAAG;QACpB,CAAC,CAAC,IAAI,KAAK,eAAe;YACxB,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC,GAAG;YAC7B,CAAC,CAAC,IAAI,CAAC;IAEb,MAAM,IAAI,GAAoB;QAC5B,IAAI;QACJ,IAAI,EAAE,IAAI,IAAI,WAAW;QACzB,SAAS;QACT,IAAI;KACL,CAAC;IACF,IAAI,cAAc;QAAE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,OAAO,CAAC,CAAS;IACxB,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACpB,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACpB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,cAAc,CAAC,GAAY,EAAE,OAAsB;IAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO;IAChC,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,SAAS,CAAC,CAAU;IAC3B,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,CAAC;AAED,SAAS,QAAQ,CAAC,CAAU,EAAE,QAAgB;IAC5C,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC9C,CAAC"}
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/core/config-loader.ts"],"names":[],"mappings":"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"}
|