@substrat-run/vertical-host 0.158.0 → 0.160.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.
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +5 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +41 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +235 -33
- package/dist/index.js.map +1 -1
- package/dist/invocation-log.d.ts +58 -1
- package/dist/invocation-log.d.ts.map +1 -1
- package/dist/invocation-log.js +24 -0
- package/dist/invocation-log.js.map +1 -1
- package/dist/mcp.d.ts +0 -72
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +88 -0
- package/dist/mcp.js.map +1 -1
- package/dist/model.d.ts +47 -2
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +30 -4
- package/dist/model.js.map +1 -1
- package/package.json +7 -7
package/dist/mcp.d.ts
CHANGED
|
@@ -1,75 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The MCP surface, derived from the SAME declarations as the route table.
|
|
3
|
-
*
|
|
4
|
-
* A vertical already says everything a tool needs: `summary` is a sentence, `input`
|
|
5
|
-
* is a real Zod object, `permission` is the key the operation checks, and `http` is
|
|
6
|
-
* the statement that this operation faces the network at all. So this is a THIRD
|
|
7
|
-
* rendering of one catalog — REST, OpenAPI, MCP — and not a second description of
|
|
8
|
-
* anything. There is nothing to declare and nothing to keep in sync: a vertical that
|
|
9
|
-
* mounts its operations has an MCP endpoint, zero rows of setup (#112).
|
|
10
|
-
*
|
|
11
|
-
* ## `http` is the declaration
|
|
12
|
-
*
|
|
13
|
-
* An operation with `http` becomes a tool; one without does not. That is the exact
|
|
14
|
-
* boundary `mountOperations` already draws — a composed engine's in-scope operations
|
|
15
|
-
* carry no `http`, because the engine is entity-agnostic and does not own a URL shape,
|
|
16
|
-
* so the vertical decides theirs. An `mcp:` block in the model would restate a fact
|
|
17
|
-
* `http` already carries, and would drift the first time a route was renamed.
|
|
18
|
-
*
|
|
19
|
-
* ## Exposure is not authorization
|
|
20
|
-
*
|
|
21
|
-
* Every tool maps to a route that already exists, behind the same bearer verification
|
|
22
|
-
* and the same `assertAllowed(await ctx.check(…))` inside the operation. Anything an
|
|
23
|
-
* agent can do here it could already do with `curl` and the same token, which is why
|
|
24
|
-
* this can default ON without being a permission decision made by omission. It is a
|
|
25
|
-
* rendering, not a new door.
|
|
26
|
-
*
|
|
27
|
-
* The corollary is the split this file draws between two kinds of failure:
|
|
28
|
-
* **authentication** is transport-level (no principal ⇒ HTTP 401, which is what makes
|
|
29
|
-
* a client start its OAuth flow), while **authorization** is in-band (`isError: true`
|
|
30
|
-
* on the tool result, so the agent reads "you may not do that" and picks something
|
|
31
|
-
* else instead of the whole session failing).
|
|
32
|
-
*
|
|
33
|
-
* ## What this does NOT solve
|
|
34
|
-
*
|
|
35
|
-
* Tool COUNT. ticket0 routes 59 operations, and its `desk-admin` role holds 16 of its
|
|
36
|
-
* 19 permission keys — so filtering a tool list by what the caller may do would remove
|
|
37
|
-
* almost nothing for the one persona most likely to hold an MCP client. Curation is
|
|
38
|
-
* `mcp: false` today (declaration-time, "never a tool for anyone" — the recording and
|
|
39
|
-
* service operations), and per-consumer app scoping later (#111), which is where a
|
|
40
|
-
* COHERENT subset actually belongs: which tools a consumer needs is a fact about the
|
|
41
|
-
* consumer, not about the operation or the caller.
|
|
42
|
-
*
|
|
43
|
-
* A permission filter is still worth having as a least-privilege floor — dramatic for
|
|
44
|
-
* a narrow principal, marginal for an admin — but it needs a way to read a principal's
|
|
45
|
-
* keys that `ScopeStub` does not have. The shape it would take already exists for
|
|
46
|
-
* connectors (`grants(): Promise<PermissionKey[]>`, scope-host.ts). Left out here
|
|
47
|
-
* deliberately: `tools/list` filtering is invisible to the protocol, so adding it
|
|
48
|
-
* later breaks no client.
|
|
49
|
-
*
|
|
50
|
-
* ## Delegated calls (#1824)
|
|
51
|
-
*
|
|
52
|
-
* Another app may call this endpoint FOR a user, with a token the team auth-server minted by
|
|
53
|
-
* RFC 8693 exchange: the user as `sub`, the app acting as `act`, and a `scope` of this
|
|
54
|
-
* vertical's permission keys. That scope is a CEILING, not a grant: a call is allowed only
|
|
55
|
-
* when the tool's leading permission key is inside it, and then the operation's own
|
|
56
|
-
* `ctx.check` still asks whether the user holds it. So a delegated call does at most what
|
|
57
|
-
* the user may AND what was delegated.
|
|
58
|
-
*
|
|
59
|
-
* The bearer verifier (`@substrat-run/vertical-auth`) decides whether a delegated token is
|
|
60
|
-
* admitted at all, and only through this mount's CHANNEL: `mcpChannelOf(c)` names the resource
|
|
61
|
-
* this endpoint answers as, for the span of its own `resolveStub` call and nowhere else, and
|
|
62
|
-
* the verifier admits a delegated token only when handed it. The subject it resolves reports
|
|
63
|
-
* the delegation, the vertical's `resolveStub` hands that back with `setMcpDelegation`, and
|
|
64
|
-
* every `tools/call` is held to it before the operation is invoked. Two things fail closed:
|
|
65
|
-
*
|
|
66
|
-
* - A tool with no single leading key (`narrows`, or no permission declared) is out of
|
|
67
|
-
* every delegated scope, since no key says what it reaches.
|
|
68
|
-
* - A bearer that carries `act` with no delegation handed over has every call refused.
|
|
69
|
-
* That is a host that admitted the token without wiring the ceiling, or a verifier too
|
|
70
|
-
* old to know `act` and taking it for the user. Read without the signature, like the
|
|
71
|
-
* audience check below, which is safe for the same reason: it can only refuse.
|
|
72
|
-
*/
|
|
73
1
|
import type { Context, Hono } from 'hono';
|
|
74
2
|
import { type ScopeStub } from '@substrat-run/kernel';
|
|
75
3
|
import { type OutputWalk } from './field-coverage.js';
|
package/dist/mcp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AA0EA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAc1C,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGxE,OAAO,EAAqC,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAczF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,YAAI,YAAY,EAAE,YAAY,EAAE,YAAY,CAAU,CAAC;AAEzF,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAe1D,wDAAwD;AACxD,MAAM,WAAW,OAAO;IACtB,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE;QACpB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;QAC/B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;QAClC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;KAClC,CAAC;IACF,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,gHAAgH;IAChH,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAErD;AAgID;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,CAsDlF;AA0BD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;;;OAOG;IACH,QAAQ,CAAC,oBAAoB,EACzB,SAAS,MAAM,EAAE,GACjB,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IACrE,sFAAsF;IACtF,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,iGAAiG;IACjG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,sFAAsF;IACtF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IACtD;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E;AAoED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,6EAA6E;AAC7E,eAAO,MAAM,kBAAkB,0BAA0B,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,CAMxF;AAQD,mFAAmF;AACnF,MAAM,WAAW,UAAU;IACzB,+FAA+F;IAC/F,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAI1D;AAwDD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,QAAQ,CAEtB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACxB,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC5C,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,EAC/C,OAAO,GAAE,eAAe,GAAG;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAoajC"}
|
package/dist/mcp.js
CHANGED
|
@@ -1,3 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The MCP surface, derived from the SAME declarations as the route table.
|
|
3
|
+
*
|
|
4
|
+
* A vertical already says everything a tool needs: `summary` is a sentence, `input`
|
|
5
|
+
* is a real Zod object, `permission` is the key the operation checks, and `http` is
|
|
6
|
+
* the statement that this operation faces the network at all. So this is a THIRD
|
|
7
|
+
* rendering of one catalog — REST, OpenAPI, MCP — and not a second description of
|
|
8
|
+
* anything. There is nothing to declare and nothing to keep in sync: a vertical that
|
|
9
|
+
* mounts its operations has an MCP endpoint, zero rows of setup (#112).
|
|
10
|
+
*
|
|
11
|
+
* ## `http` is the declaration
|
|
12
|
+
*
|
|
13
|
+
* An operation with `http` becomes a tool; one without does not. That is the exact
|
|
14
|
+
* boundary `mountOperations` already draws — a composed engine's in-scope operations
|
|
15
|
+
* carry no `http`, because the engine is entity-agnostic and does not own a URL shape,
|
|
16
|
+
* so the vertical decides theirs. An `mcp:` block in the model would restate a fact
|
|
17
|
+
* `http` already carries, and would drift the first time a route was renamed.
|
|
18
|
+
*
|
|
19
|
+
* ## Exposure is not authorization
|
|
20
|
+
*
|
|
21
|
+
* Every tool maps to a route that already exists, behind the same bearer verification
|
|
22
|
+
* and the same `assertAllowed(await ctx.check(…))` inside the operation. Anything an
|
|
23
|
+
* agent can do here it could already do with `curl` and the same token, which is why
|
|
24
|
+
* this can default ON without being a permission decision made by omission. It is a
|
|
25
|
+
* rendering, not a new door.
|
|
26
|
+
*
|
|
27
|
+
* The corollary is the split this file draws between two kinds of failure:
|
|
28
|
+
* **authentication** is transport-level (no principal ⇒ HTTP 401, which is what makes
|
|
29
|
+
* a client start its OAuth flow), while **authorization** is in-band (`isError: true`
|
|
30
|
+
* on the tool result, so the agent reads "you may not do that" and picks something
|
|
31
|
+
* else instead of the whole session failing).
|
|
32
|
+
*
|
|
33
|
+
* ## What this does NOT solve
|
|
34
|
+
*
|
|
35
|
+
* Tool COUNT. ticket0 routes 59 operations, and its `desk-admin` role holds 16 of its
|
|
36
|
+
* 19 permission keys — so filtering a tool list by what the caller may do would remove
|
|
37
|
+
* almost nothing for the one persona most likely to hold an MCP client. Curation is
|
|
38
|
+
* `mcp: false` today (declaration-time, "never a tool for anyone" — the recording and
|
|
39
|
+
* service operations), and per-consumer app scoping later (#111), which is where a
|
|
40
|
+
* COHERENT subset actually belongs: which tools a consumer needs is a fact about the
|
|
41
|
+
* consumer, not about the operation or the caller.
|
|
42
|
+
*
|
|
43
|
+
* A permission filter is still worth having as a least-privilege floor — dramatic for
|
|
44
|
+
* a narrow principal, marginal for an admin — but it needs a way to read a principal's
|
|
45
|
+
* keys that `ScopeStub` does not have. The shape it would take already exists for
|
|
46
|
+
* connectors (`grants(): Promise<PermissionKey[]>`, scope-host.ts). Left out here
|
|
47
|
+
* deliberately: `tools/list` filtering is invisible to the protocol, so adding it
|
|
48
|
+
* later breaks no client.
|
|
49
|
+
*
|
|
50
|
+
* ## Delegated calls (#1824)
|
|
51
|
+
*
|
|
52
|
+
* Another app may call this endpoint FOR a user, with a token the team auth-server minted by
|
|
53
|
+
* RFC 8693 exchange: the user as `sub`, the app acting as `act`, and a `scope` of this
|
|
54
|
+
* vertical's permission keys. That scope is a CEILING, not a grant: a call is allowed only
|
|
55
|
+
* when the tool's leading permission key is inside it, and then the operation's own
|
|
56
|
+
* `ctx.check` still asks whether the user holds it. So a delegated call does at most what
|
|
57
|
+
* the user may AND what was delegated.
|
|
58
|
+
*
|
|
59
|
+
* The bearer verifier (`@substrat-run/vertical-auth`) decides whether a delegated token is
|
|
60
|
+
* admitted at all, and only through this mount's CHANNEL: `mcpChannelOf(c)` names the resource
|
|
61
|
+
* this endpoint answers as, for the span of its own `resolveStub` call and nowhere else, and
|
|
62
|
+
* the verifier admits a delegated token only when handed it. The subject it resolves reports
|
|
63
|
+
* the delegation, the vertical's `resolveStub` hands that back with `setMcpDelegation`, and
|
|
64
|
+
* every `tools/call` is held to it before the operation is invoked. Two things fail closed:
|
|
65
|
+
*
|
|
66
|
+
* - A tool with no single leading key (`narrows`, or no permission declared) is out of
|
|
67
|
+
* every delegated scope, since no key says what it reaches.
|
|
68
|
+
* - A bearer that carries `act` with no delegation handed over has every call refused.
|
|
69
|
+
* That is a host that admitted the token without wiring the ceiling, or a verifier too
|
|
70
|
+
* old to know `act` and taking it for the user. Read without the signature, like the
|
|
71
|
+
* audience check below, which is safe for the same reason: it can only refuse.
|
|
72
|
+
*/
|
|
73
|
+
import { recordAuthCheck } from '@substrat-run/contracts/auth-diagnostics';
|
|
1
74
|
import { HTTPException } from 'hono/http-exception';
|
|
2
75
|
import { z, listPageQuery, LIST_PAGE_DEFAULT, LIST_PAGE_MAX, LIST_SORT_PARAM, MCP_AUTHORIZATION_SERVERS_PATH, mcpEndpointPath, mcpResourceOf, errorCodeOf, } from '@substrat-run/contracts';
|
|
3
76
|
import { externalInput, externalResult } from './wire.js';
|
|
@@ -641,6 +714,8 @@ app, operations, resolveStub, options = {}) {
|
|
|
641
714
|
app.get(wellKnown, document);
|
|
642
715
|
app.get('/.well-known/oauth-protected-resource', document);
|
|
643
716
|
app.post(path, async (c) => {
|
|
717
|
+
const record = c.get?.(INVOCATION_RECORD_KEY)
|
|
718
|
+
?? invocationStampOf(c.req.raw)?.record;
|
|
644
719
|
let body;
|
|
645
720
|
try {
|
|
646
721
|
body = await c.req.json();
|
|
@@ -685,6 +760,9 @@ app, operations, resolveStub, options = {}) {
|
|
|
685
760
|
*/
|
|
686
761
|
const refusal = audienceRefusal(c.req.header('authorization'), resourceFor(c));
|
|
687
762
|
if (refusal) {
|
|
763
|
+
recordAuthCheck({ stage: 'mcp-audience', outcome: 'refused', reason: 'resource-mismatch' });
|
|
764
|
+
if (record)
|
|
765
|
+
record.problemCode = 'unauthenticated';
|
|
688
766
|
const res = problemResponse(c, new HTTPException(401, { message: refusal }));
|
|
689
767
|
const challenged = new Response(res.body, res);
|
|
690
768
|
challenged.headers.set('WWW-Authenticate', challengeFor(c, 'error="invalid_token"', `error_description="${refusal}"`));
|
|
@@ -710,6 +788,16 @@ app, operations, resolveStub, options = {}) {
|
|
|
710
788
|
let stub;
|
|
711
789
|
try {
|
|
712
790
|
stub = await resolveStub(c);
|
|
791
|
+
recordAuthCheck({ stage: 'mcp-caller', outcome: 'accepted', reason: 'caller-resolved' });
|
|
792
|
+
}
|
|
793
|
+
catch (error) {
|
|
794
|
+
const status = statusOf(error);
|
|
795
|
+
const refused = status === 401 || status === 403;
|
|
796
|
+
recordAuthCheck({ stage: 'mcp-caller', outcome: refused ? 'refused' : 'error', reason: refused ? 'caller-refused' : 'caller-error' });
|
|
797
|
+
const code = errorCodeOf(error) ?? (status === 401 ? 'unauthenticated' : status === 403 ? 'forbidden' : undefined);
|
|
798
|
+
if (record && code)
|
|
799
|
+
record.problemCode = code;
|
|
800
|
+
throw error;
|
|
713
801
|
}
|
|
714
802
|
finally {
|
|
715
803
|
set(MCP_CHANNEL_KEY, undefined);
|
package/dist/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAyEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACL,CAAC,EACD,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,8BAA8B,EAC9B,eAAe,EACf,aAAa,EACb,WAAW,GACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAkB,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,WAAW,EAAyB,MAAM,qBAAqB,CAAC;AACvI,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAmB,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAatG;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAU,CAAC;AAEzF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AA+C1D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,OAAO,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,YAAY,CAAC,MAAiB;IACrC,qEAAqE;IACrE,2EAA2E;IAC3E,IAAI,CAAE,MAAyC,EAAE,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IACjG,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAG1E,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,SAAS,YAAY,CAAC,UAAmB;IACvC,IAAI,OAAO,UAAU,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC;IACtD,MAAM,GAAG,GAAI,UAAmD,EAAE,GAAG,CAAC;IACtE,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC;AAED,kGAAkG;AAClG,SAAS,WAAW,CAAC,KAA6C;IAChE,MAAM,KAAK,GAAI,KAAoE,EAAE,KAAK,CAAC;IAC3F,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAI,MAAsF,EAAE,IAAI,EAAE,GAAG,CAAC;QAC/G,IAAI,GAAG,EAAE,IAAI,KAAK,SAAS;YAAE,SAAS;QACtC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACjF,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,UAAU,CAAC,OAA2B,EAAE,KAAiC;IAChF,OAAO;QACL,mFAAmF;QACnF,kFAAkF;QAClF,6EAA6E;QAC7E,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,iCAAiC,aAAa,aAAa,iBAAiB,8CAA8C;SACxI;QACD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oDAAoD,EAAE;QAC7F,oFAAoF;QACpF,qFAAqF;QACrF,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;YACrB,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,2BAA2B,KAAK,IAAI,EAAE,CAAC;SACtI;QACD,GAAG,CAAC,OAAO,KAAK,SAAS;YACvB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,OAAO,GAAG,EAAE,EAAE,CAAC;KACpG,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,KAAwB;IAC3C,OAAO;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE;QAC3C,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,IAAI;QACjB,WAAW,EACT,4FAA4F;YAC5F,qFAAqF;KACxF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,OAAO,CAAC,KAAc,EAAE,IAA4B,EAAE,MAAyB;IACtF,MAAM,IAAI,GAAG,CAAC,KAAc,EAAW,EAAE;QACvC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACtF,yFAAyF;QACzF,6DAA6D;QAC7D,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAG,KAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CACrG,CAAC;IACJ,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,EAAE,IAAI;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAE,KAA+B,CAAC,OAAO,CAAC,EAAE,CAAC;QACzH,MAAM,IAAI,GAAG,KAA+B,CAAC;QAC7C,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,UAA4C;IACrE,MAAM,KAAK,GAAc,EAAE,CAAC;IAC5B,uBAAuB,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAE/D,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACvD,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,CAAwB,CAAC;QACxD,6EAA6E;QAC7E,IAAI,CAAC,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,KAAK;YAAE,SAAS;QAE5C,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QACxF,MAAM,KAAK,GAAG,QAAyE,CAAC;QACxF,MAAM,WAAW,GAA4B;YAC3C,GAAG,QAAQ;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;gBAC3B,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAClE;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9B,MAAM,UAAU,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QACnE,kFAAkF;QAClF,8EAA8E;QAC9E,2FAA2F;QAC3F,MAAM,UAAU,GACd,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;YACzD,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM;YACnE,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,UAAU;YAAE,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,GAAI,WAAW,CAAC,YAAY,CAAY,EAAE,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1H,MAAM,UAAU,GAAG,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QAC/C,KAAK,CAAC,IAAI,CAAC;YACT,IAAI;YACJ,SAAS;YACT,gFAAgF;YAChF,+EAA+E;YAC/E,iCAAiC;YACjC,WAAW,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,OAAO,IAAI,SAAS;YACtE,WAAW;YACX,WAAW,EAAE;gBACX,YAAY,EAAE,MAAM,KAAK,KAAK;gBAC9B,eAAe,EAAE,MAAM,KAAK,QAAQ;gBACpC,cAAc,EAAE,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,QAAQ;aAC5E;YACD,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC;YAC7B,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC;YAC7B,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;YACnD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,KAAgB;IACpC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,IAAI,GAAG,mBAAmB,CAAC;IAC/B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;QACjC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YACb,IAAI,GAAG,MAAM,CAAC;YACd,IAAI,GAAG,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAsED,MAAM,SAAS,GAAG,CAAC,EAAM,EAAE,MAAe,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAChF,MAAM,QAAQ,GAAG,CAAC,EAAM,EAAE,IAAY,EAAE,OAAe,EAAE,IAAc,EAAE,EAAE,CAAC,CAAC;IAC3E,OAAO,EAAE,KAAK;IACd,EAAE;IACF,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;CAClE,CAAC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,SAAS,UAAU,CAAC,MAAe,EAAE,MAAoE;IACvG,wDAAwD;IACxD,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAChF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAS,eAAe,CAAC,aAAiC,EAAE,QAAgB;IAC1E,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,qFAAqF;IACrF,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iCAAiC,QAAQ,EAAE,CAAC;AAC3F,CAAC;AAYD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAU,EAAE,UAAqC;IAChF,IAAI,CAAC,UAAU;QAAE,OAAO;IACvB,CAAiE,CAAC,GAAG,CAAC,kBAAkB,EAAE;QACzF,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,KAAK,EAAE,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;KAC7B,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAQ7C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAC,CAAU;IACrC,MAAM,OAAO,GAAI,CAAsC,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAI,OAAqD,EAAE,QAAQ,CAAC;IAClF,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5D,CAAC;AAQD,iGAAiG;AACjG,SAAS,SAAS,CAAC,CAAU;IAC3B,MAAM,MAAM,GAAI,CAAsC,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC;IACjF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,sDAAsD;QACtD,MAAM,KAAK,GAAI,MAAqC,EAAE,KAAK,CAAC;QAC5D,OAAO,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACjH,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5E,CAAC;AAED,uFAAuF;AACvF,SAAS,cAAc,CAAC,OAAmB,EAAE,IAAa;IACxD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,OAAO,KAAK,UAAU;QAAE,OAAO,mDAAmD,CAAC;IACvF,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,kCAAkC,IAAI,CAAC,IAAI,iEAAiE,CAAC;IACtH,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACxC,OAAO,kCAAkC,IAAI,CAAC,IAAI,cAAc,IAAI,CAAC,UAAU,wCAAwC,CAAC;IAC1H,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,qFAAqF;AACrF,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvE,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,QAAQ,CAAC,GAAY;IAC5B,MAAM,MAAM,GAAI,GAAmC,EAAE,MAAM,CAAC;IAC5D,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC9C,OAAO,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;AACpC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,QAAQ;AACtB,8DAA8D;AAC9D,GAAwB,EACxB,UAA4C,EAC5C,WAA+C,EAC/C,OAAO,GAAqD,EAAE;IAE9D,0EAA0E;IAC1E,uBAAuB,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/D,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,wCAAwC,IAAI,EAAE,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,IAAI,YAAY,CAAC,KAAK,CAAC;QACrD,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,IAAI,GAAG;KAC5C,CAAC;IAEF,kEAAkE;IAClE,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,IAA6B,EAAuC,EAAE;QACtG,iFAAiF;QACjF,oFAAoF;QACpF,IAAI,OAAO,GAA4B,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,0EAA0E;YAC1E,qEAAqE;YACrE,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC;gBAC/B,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC;gBACvB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;gBACzB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC;aACxB,CAAC,CAAC;YACH,OAAO,GAAG;gBACR,GAAG,OAAO;gBACV,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC7D,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;aAC3D,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5B,mFAAmF;YACnF,+EAA+E;YAC/E,iFAAiF;YACjF,mFAAmF;YACnF,wEAAwE;YACxE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,KAAK,EAChB,EAAM,EACN,MAA2C,EAC3C,IAAe,EACf,UAAyB,EACzB,OAAmB,EACnB,EAAE;QACF,MAAM,IAAI,GAAG,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,MAAM,CAAC,MAAM,CAAY,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3F,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjD,IAAI,CAAC,IAAI;YAAE,OAAO,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,iBAAiB,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC;QAE5E,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GACpC,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACxE,CAAC,CAAE,OAAmC;YACtC,CAAC,CAAE,EAA8B,CAAC;QAEtC,qFAAqF;QACrF,oFAAoF;QACpF,gFAAgF;QAChF,IAAI,MAA+E,CAAC;QACpF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACvC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;oBACpC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACnE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gBAClB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9E,iFAAiF;oBACjF,OAAO,SAAS,CACd,EAAE,EACF,SAAS,CACP,qEAAqE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;wBAChG,oFAAoF;wBACpF,kFAAkF;wBAClF,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC5H,CACF,CAAC;gBACJ,CAAC;gBACD,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,WAAuB,EAAE,CAAC;YACtE,CAAC;QACH,CAAC;aAAM,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YACpC,IAAgC,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC;QAC5D,CAAC;QAED,mFAAmF;QACnF,sFAAsF;QACtF,oFAAoF;QACpF,6DAA6D;QAC7D,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;QAC5C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAClC,OAAO,MAAM,CAAC,WAAW,CAAC;YAC1B,OAAO,MAAM,CAAC,OAAO,CAAC;YACtB,oFAAoF;YACpF,+EAA+E;YAC/E,OAAO,MAAM,CAAC,YAAY,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC;YACH,oFAAoF;YACpF,0FAA0F;YAC1F,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC9C,IAAI,OAAO;gBAAE,MAAM,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE;gBACrF,oEAAoE;gBACpE,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;gBACvD,GAAG,CAAC,MAAM;oBACR,CAAC,CAAC;wBACE,SAAS,EAAE,CAAC,MAAgD,EAAE,EAAE;4BAC9D,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;wBAC1B,CAAC;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;YACH,mFAAmF;YACnF,sFAAsF;YACtF,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC1D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC9D,IAAI,QAAQ;oBAAE,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC;YAC/C,CAAC;YACD,OAAO,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,kFAAkF;YAClF,6EAA6E;YAC7E,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC,YAAY,CAAC;YACvC,iFAAiF;YACjF,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,MAAM,IAAI,IAAI,KAAK,SAAS;gBAAE,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;YAC5D,2EAA2E;YAC3E,6EAA6E;YAC7E,6EAA6E;YAC7E,2EAA2E;YAC3E,2EAA2E;YAC3E,mFAAmF;YACnF,mFAAmF;YACnF,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG;gBAAE,MAAM,GAAG,CAAC;YACrC,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAChC,OAAO,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,EAClB,GAAQ,EACR,IAAe,EACf,UAAyB,EACzB,OAAmB,EACK,EAAE;QAC1B,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC;QAC1B,MAAM,cAAc,GAAG,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC;QAC5C,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;YACnB,KAAK,YAAY,EAAE,CAAC;gBAClB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,iBAAiB,CAAC,CAAC;gBAC9C,MAAM,OAAO,GACX,OAAO,KAAK,KAAK,QAAQ,IAAK,qBAA2C,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACvF,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC/B,OAAO,SAAS,CAAC,EAAE,EAAE;oBACnB,eAAe,EAAE,OAAO;oBACxB,mEAAmE;oBACnE,0EAA0E;oBAC1E,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE;oBAC/C,UAAU;iBACX,CAAC,CAAC;YACL,CAAC;YACD,KAAK,2BAA2B,CAAC;YACjC,KAAK,yBAAyB;gBAC5B,OAAO,IAAI,CAAC;YACd,KAAK,MAAM;gBACT,OAAO,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACnD,KAAK,YAAY,EAAE,CAAC;gBAClB,OAAO,SAAS,CAAC,EAAE,EAAE;oBACnB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACvB,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;qBAC3B,CAAC,CAAC;iBACJ,CAAC,CAAC;YACL,CAAC;YACD,KAAK,YAAY;gBACf,OAAO,MAAM,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAC/D;gBACE,OAAO,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,qBAAqB,GAAG,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;QACvG,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,EAAE,GAA6B,OAAO,CAAC,iBAAiB,IAAI;QAChE,qFAAqF;QACrF,oFAAoF;QACpF,6EAA6E;QAC7E,oBAAoB,EAAE,KAAK,EAAE,CAAU,EAAqB,EAAE;YAC5D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,8BAA8B,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/C,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACzB,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC/B,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACjC,+EAA+E;YAC/E,IAAI,YAAY,CAAC;YACjB,IAAI,CAAC;gBAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,kCAAkC,CAAC,CAAC;YACnF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAC/G,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC;gBAAE,OAAO,EAAE,CAAC;YAC9G,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAA+C,CAAC;YACvG,MAAM,OAAO,GAAG,QAAQ,EAAE,qBAAqB,CAAC;YAChD,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9F,CAAC;KACF,CAAC;IAEF;;;;;;OAMG;IACH,MAAM,WAAW,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE1G;;;;OAIG;IACH,MAAM,YAAY,GAAG,CAAC,CAAU,EAAE,GAAG,MAAgB,EAAU,EAAE;QAC/D,OAAO,UAAU,CAAC,sBAAsB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,SAAS,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5G,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAU,EAAE,EAAE;QACpC,MAAM,OAAO,GACX,OAAO,EAAE,CAAC,oBAAoB,KAAK,UAAU;YAC3C,CAAC,CAAC,MAAM,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAClC,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC;QAC9B,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC,IAAI,CAAC;YACZ,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;YACxB,gFAAgF;YAChF,+EAA+E;YAC/E,uEAAuE;YACvE,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,wBAAwB,EAAE,CAAC,QAAQ,CAAC;YACpC,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7E,CAAC,CAAC;IACL,CAAC,CAAC;IACF,kFAAkF;IAClF,8EAA8E;IAC9E,+EAA+E;IAC/E,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC7B,GAAG,CAAC,GAAG,CAAC,uCAAuC,EAAE,QAAQ,CAAC,CAAC;IAE3D,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACzB,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;QACD,kFAAkF;QAClF,gEAAgE;QAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAc,CAAC,CAAC,CAAC,CAAC,IAAW,CAAC,CAAC;QACvE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,EAAE,GAAG,CAAC,CAAC;QAEzF;;;;;;;;;;;;;;;WAeG;QACH,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC;QACvG,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACjD,IAAI,CAAC,aAAa,IAAI,MAAM,KAAK,SAAS,IAAI,CAAE,qBAA2C,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7G,OAAO,CAAC,CAAC,IAAI,CACX,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,eAAe,mBAAmB,KAAK,MAAM,EAAE,EAAE;gBACtE,SAAS,EAAE,CAAC,GAAG,qBAAqB,CAAC;aACtC,CAAC,EACF,GAAG,CACJ,CAAC;QACJ,CAAC;QAED;;;;;;WAMG;QACH,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,EAAE,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC7E,MAAM,UAAU,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC/C,UAAU,CAAC,OAAO,CAAC,GAAG,CACpB,kBAAkB,EAClB,YAAY,CAAC,CAAC,EAAE,uBAAuB,EAAE,sBAAsB,OAAO,GAAG,CAAC,CAC3E,CAAC;YACF,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH;;;;;;;;;;;;eAYG;YACH,MAAM,GAAG,GAAI,CAA0E,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpG,GAAG,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnD,IAAI,IAAe,CAAC;YACpB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;oBAAS,CAAC;gBACT,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;YAClC,CAAC;YACD,sFAAsF;YACtF,0BAA0B;YAC1B,MAAM,GAAG,GAAI,CAAsC,CAAC,GAAG,CAAC;YACxD,MAAM,UAAU,GAAkB;gBAChC,wEAAwE;gBACxE,MAAM,EAAG,GAAG,EAAE,CAAC,qBAAqB,CAAkC,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM;gBAC9G,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;gBAC5B,4EAA4E;gBAC5E,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;aAC7C,CAAC;YACF,IAAI,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;gBAAE,UAAU,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;YAC5G,mFAAmF;YACnF,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC7B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBACpC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;oBACxD,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;gBAC3D,IAAI,KAAK;oBAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mFAAmF;YACnF,2DAA2D;YAC3D,EAAE;YACF,iFAAiF;YACjF,wEAAwE;YACxE,iFAAiF;YACjF,oFAAoF;YACpF,8EAA8E;YAC9E,oFAAoF;YACpF,iFAAiF;YACjF,+EAA+E;YAC/E,kFAAkF;YAClF,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG;gBAAE,MAAM,GAAG,CAAC;YACrC,kFAAkF;YAClF,oFAAoF;YACpF,iFAAiF;YACjF,+EAA+E;YAC/E,4EAA4E;YAC5E,wBAAwB;YACxB,EAAE;YACF,6EAA6E;YAC7E,kFAAkF;YAClF,2EAA2E;YAC3E,gFAAgF;YAChF,wCAAwC;YACxC,MAAM,QAAQ,GAAI,GAAgC,EAAE,GAAG,CAAC;YACxD,MAAM,MAAM,GACV,QAAQ,YAAY,QAAQ;gBAC1B,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9E,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;gBAAE,OAAO,MAAM,CAAC;YAC1D,6EAA6E;YAC7E,wEAAwE;YACxE,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9C,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,0EAA0E;QAC1E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACnD,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,OAAO,CAAC,CAAC,CAAY,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,sFAAsF;IACtF,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChC,iFAAiF;IACjF,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,mCAAmC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IACtG,2FAA2F;IAC3F,yFAAyF;IACzF,mCAAmC;IACnC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QAC9B,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,IAAI,EAAE,CAAC;QAC9C,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,0BAA0B,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AACvC,CAAC"}
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/model.d.ts
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
*/
|
|
27
27
|
import { type LanguageModelUsage } from 'ai';
|
|
28
28
|
import { ProviderError, type CredentialEnv, type DirectFactories, type HostingInfo, type StepTokens } from '@substrat-run/model-providers';
|
|
29
|
-
import { type ModelAttribution, type ModelUsageLine } from '@substrat-run/contracts';
|
|
29
|
+
import { type ModelAttribution, type ModelUsageLine, type z } from '@substrat-run/contracts';
|
|
30
30
|
export type { HostingInfo, ModelAttribution, ModelUsageLine };
|
|
31
31
|
export { ProviderError };
|
|
32
32
|
/** What the guard sees before anything is sent: which model, on whose behalf. */
|
|
@@ -34,12 +34,55 @@ export interface ModelIntent {
|
|
|
34
34
|
readonly spec: string;
|
|
35
35
|
readonly attribution: ModelAttribution;
|
|
36
36
|
}
|
|
37
|
+
/** One turn of a conversation the caller keeps: what was said, by whom. */
|
|
38
|
+
export interface ModelMessage {
|
|
39
|
+
readonly role: 'user' | 'assistant';
|
|
40
|
+
readonly content: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* A tool the model may call, provider-neutral. `input` is the schema the model's arguments are
|
|
44
|
+
* parsed with before `execute` sees them; `execute` is the caller's code, which runs with the
|
|
45
|
+
* caller's own authority, so whatever it checks is what the tool checks. Its result goes back to
|
|
46
|
+
* the model as the tool's output.
|
|
47
|
+
*/
|
|
48
|
+
export interface ModelTool<I = unknown> {
|
|
49
|
+
readonly description: string;
|
|
50
|
+
readonly input: z.ZodType<I>;
|
|
51
|
+
readonly execute: (input: I) => Promise<unknown>;
|
|
52
|
+
}
|
|
37
53
|
export interface ModelRequest extends ModelIntent {
|
|
38
54
|
readonly system?: string;
|
|
39
|
-
|
|
55
|
+
/** One question. Exactly one of `prompt` and `messages`. */
|
|
56
|
+
readonly prompt?: string;
|
|
57
|
+
/** A conversation, oldest first, ending with the user's turn. Exactly one of `prompt` and `messages`. */
|
|
58
|
+
readonly messages?: readonly ModelMessage[];
|
|
59
|
+
/**
|
|
60
|
+
* Tools the model may call. A call to one runs its `execute` and hands the result back, and
|
|
61
|
+
* the model goes on, up to `maxSteps` model calls in all. The guard runs ONCE, before the
|
|
62
|
+
* first: a request with tools is one decision to spend, however many steps it takes.
|
|
63
|
+
*/
|
|
64
|
+
readonly tools?: Readonly<Record<string, ModelTool<any>>>;
|
|
65
|
+
/** The most model calls one request may make when tools are given. Default 4, at most 8. */
|
|
66
|
+
readonly maxSteps?: number;
|
|
40
67
|
readonly maxOutputTokens?: number;
|
|
41
68
|
readonly temperature?: number;
|
|
42
69
|
}
|
|
70
|
+
/** One model call inside a run, and the tool calls it made: what a turn record shows. */
|
|
71
|
+
export interface ModelRunStep {
|
|
72
|
+
readonly text: string;
|
|
73
|
+
readonly toolCalls: ReadonlyArray<{
|
|
74
|
+
readonly callId: string;
|
|
75
|
+
readonly tool: string;
|
|
76
|
+
readonly input: unknown;
|
|
77
|
+
}>;
|
|
78
|
+
readonly toolResults: ReadonlyArray<{
|
|
79
|
+
readonly callId: string;
|
|
80
|
+
readonly tool: string;
|
|
81
|
+
readonly output: unknown;
|
|
82
|
+
}>;
|
|
83
|
+
}
|
|
84
|
+
/** The ceiling on `maxSteps`: a run that needs more is a loop the host should be driving. */
|
|
85
|
+
export declare const MODEL_MAX_STEPS = 8;
|
|
43
86
|
export interface ModelRun {
|
|
44
87
|
readonly text: string;
|
|
45
88
|
readonly finishReason: string;
|
|
@@ -47,6 +90,8 @@ export interface ModelRun {
|
|
|
47
90
|
readonly label: string;
|
|
48
91
|
/** The one governance fact this call produced; already handed to `record`. */
|
|
49
92
|
readonly line: ModelUsageLine;
|
|
93
|
+
/** Each model call the run made, in order. One step when no tools were given. */
|
|
94
|
+
readonly steps: readonly ModelRunStep[];
|
|
50
95
|
}
|
|
51
96
|
/** What a settings screen shows for a spec before anyone runs it. */
|
|
52
97
|
export interface ModelStatus {
|
package/dist/model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
package/dist/model.js
CHANGED
|
@@ -24,11 +24,13 @@
|
|
|
24
24
|
* metadata, spend limits) are layered on that row by the provider package when the
|
|
25
25
|
* host asks for them; the line this produces is the same for every row.
|
|
26
26
|
*/
|
|
27
|
-
import { generateText } from 'ai';
|
|
27
|
+
import { generateText, stepCountIs, tool, zodSchema } from 'ai';
|
|
28
28
|
import { createModel, credentialsFrom, hostingInfo, providerRow, listCostOfSteps, normalizeModelSpec, parseModelSpec, ProviderError, requestHeadersFor, } from '@substrat-run/model-providers';
|
|
29
29
|
import { createWorkersAI } from 'workers-ai-provider';
|
|
30
30
|
import { modelAttribution, modelUsageLine } from '@substrat-run/contracts';
|
|
31
31
|
export { ProviderError };
|
|
32
|
+
/** The ceiling on `maxSteps`: a run that needs more is a loop the host should be driving. */
|
|
33
|
+
export const MODEL_MAX_STEPS = 8;
|
|
32
34
|
const DESCRIBE_MISSING = (envVar) => `${envVar} is not set on the platform`;
|
|
33
35
|
export function stepTokensOf(usage) {
|
|
34
36
|
const input = usage?.inputTokens;
|
|
@@ -79,6 +81,14 @@ export function createModelHost(options) {
|
|
|
79
81
|
// threw, spending money that no ledger line accounted for. Parse, don't trust
|
|
80
82
|
// (and the five-key limit is the whole reason this schema is `.strict()`).
|
|
81
83
|
const attribution = modelAttribution.parse(request.attribution);
|
|
84
|
+
// The shape of the request, checked before anything billable too.
|
|
85
|
+
if ((request.prompt === undefined) === (request.messages === undefined)) {
|
|
86
|
+
throw new TypeError('a model request takes exactly one of `prompt` and `messages`');
|
|
87
|
+
}
|
|
88
|
+
const maxSteps = request.maxSteps ?? 4;
|
|
89
|
+
if (!Number.isInteger(maxSteps) || maxSteps < 1 || maxSteps > MODEL_MAX_STEPS) {
|
|
90
|
+
throw new RangeError(`maxSteps must be an integer from 1 to ${MODEL_MAX_STEPS}`);
|
|
91
|
+
}
|
|
82
92
|
// Then resolve: an unknown provider or an unconfigured row is refused before the
|
|
83
93
|
// guard is consulted, so a budget is never charged for a call that could not have
|
|
84
94
|
// happened.
|
|
@@ -96,17 +106,28 @@ export function createModelHost(options) {
|
|
|
96
106
|
// metadata and payload retention off; for every other row, nothing. The host does
|
|
97
107
|
// not know which.
|
|
98
108
|
const headers = requestHeadersFor(resolved.provider, { attribution: request.attribution, env: options.env });
|
|
109
|
+
const tools = request.tools
|
|
110
|
+
? Object.fromEntries(Object.entries(request.tools).map(([name, t]) => [
|
|
111
|
+
name,
|
|
112
|
+
// The SDK's `zodSchema` names zod's input type parameter more narrowly than ours: the same
|
|
113
|
+
// zod v4 schema at run time, so the cast changes a type, not a value.
|
|
114
|
+
tool({ description: t.description, inputSchema: zodSchema(t.input), execute: (input) => t.execute(input) }),
|
|
115
|
+
]))
|
|
116
|
+
: undefined;
|
|
99
117
|
const started = now();
|
|
100
118
|
const result = await generateText({
|
|
101
119
|
model: resolved.model,
|
|
102
120
|
...(Object.keys(headers).length ? { headers } : {}),
|
|
103
121
|
...(request.system ? { system: request.system } : {}),
|
|
104
|
-
prompt: request.prompt,
|
|
122
|
+
...(request.messages ? { messages: request.messages.map((m) => ({ role: m.role, content: m.content })) } : { prompt: request.prompt }),
|
|
123
|
+
...(tools ? { tools, stopWhen: stepCountIs(maxSteps) } : {}),
|
|
105
124
|
...(request.maxOutputTokens !== undefined ? { maxOutputTokens: request.maxOutputTokens } : {}),
|
|
106
125
|
...(request.temperature !== undefined ? { temperature: request.temperature } : {}),
|
|
107
126
|
});
|
|
108
127
|
const finished = now();
|
|
109
128
|
const tokens = stepTokensOf(result.totalUsage);
|
|
129
|
+
// Priced per step, since a rate card with tiers or cache rates prices each call on its own.
|
|
130
|
+
const stepTokens = result.steps.length > 0 ? result.steps.map((st) => stepTokensOf(st.usage)) : [tokens];
|
|
110
131
|
const line = modelUsageLine.parse({
|
|
111
132
|
attribution,
|
|
112
133
|
model,
|
|
@@ -117,12 +138,17 @@ export function createModelHost(options) {
|
|
|
117
138
|
outputTokens: tokens.outputTokens,
|
|
118
139
|
cachedInputTokens: tokens.cachedInputTokens,
|
|
119
140
|
cacheWriteTokens: tokens.cacheWriteTokens,
|
|
120
|
-
listUsd: tokens.reported ? listCostOfSteps(model,
|
|
141
|
+
listUsd: tokens.reported ? listCostOfSteps(model, stepTokens) : null,
|
|
121
142
|
at: finished.toISOString(),
|
|
122
143
|
elapsedMs: Math.max(0, finished.getTime() - started.getTime()),
|
|
123
144
|
});
|
|
124
145
|
await options.record?.(line);
|
|
125
|
-
|
|
146
|
+
const steps = result.steps.map((st) => ({
|
|
147
|
+
text: st.text,
|
|
148
|
+
toolCalls: st.toolCalls.map((c) => ({ callId: c.toolCallId, tool: c.toolName, input: c.input })),
|
|
149
|
+
toolResults: st.toolResults.map((r) => ({ callId: r.toolCallId, tool: r.toolName, output: r.output })),
|
|
150
|
+
}));
|
|
151
|
+
return { text: result.text, finishReason: result.finishReason, label: resolved.label, line, steps };
|
|
126
152
|
};
|
|
127
153
|
return { status, run };
|
|
128
154
|
}
|
package/dist/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@substrat-run/vertical-host",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.160.0",
|
|
4
4
|
"description": "The platform's /internal/* surface + error envelope, authored once — mount it in a vertical worker instead of re-copying the control-plane contract",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"repository": {
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
"ai": "7.0.142",
|
|
30
30
|
"hono": "^4.13.13",
|
|
31
31
|
"workers-ai-provider": "^4.0.0",
|
|
32
|
-
"@substrat-run/contracts": "^0.
|
|
33
|
-
"@substrat-run/
|
|
34
|
-
"@substrat-run/
|
|
32
|
+
"@substrat-run/contracts": "^0.160.0",
|
|
33
|
+
"@substrat-run/model-providers": "^0.5.50",
|
|
34
|
+
"@substrat-run/kernel": "^0.160.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@scalar/api-reference": "1.75.0",
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
"better-sqlite3": "^13.0.3",
|
|
40
40
|
"typescript": "^7.0.0",
|
|
41
41
|
"vitest": "^5.0.5",
|
|
42
|
-
"@substrat-run/
|
|
43
|
-
"@substrat-run/
|
|
44
|
-
"@substrat-run/
|
|
42
|
+
"@substrat-run/contract-tests": "^0.160.0",
|
|
43
|
+
"@substrat-run/adapter-sqlite": "^0.160.0",
|
|
44
|
+
"@substrat-run/vertical-auth": "^0.28.0"
|
|
45
45
|
},
|
|
46
46
|
"publishConfig": {
|
|
47
47
|
"access": "public"
|