wicked-crew 0.7.6 → 0.7.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/dist/api/diagnostics.d.ts +143 -0
- package/dist/api/diagnostics.d.ts.map +1 -0
- package/dist/api/diagnostics.js +417 -0
- package/dist/api/diagnostics.js.map +1 -0
- package/dist/api/multiscope.d.ts +47 -0
- package/dist/api/multiscope.d.ts.map +1 -0
- package/dist/api/multiscope.js +106 -0
- package/dist/api/multiscope.js.map +1 -0
- package/dist/api/routes.d.ts +7 -0
- package/dist/api/routes.d.ts.map +1 -1
- package/dist/api/routes.js +46 -3
- package/dist/api/routes.js.map +1 -1
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +17 -3
- package/dist/api/server.js.map +1 -1
- package/dist/api/testing.d.ts +26 -1
- package/dist/api/testing.d.ts.map +1 -1
- package/dist/api/testing.js +137 -2
- package/dist/api/testing.js.map +1 -1
- package/dist/campaigns/plan.d.ts +32 -1
- package/dist/campaigns/plan.d.ts.map +1 -1
- package/dist/campaigns/plan.js +86 -0
- package/dist/campaigns/plan.js.map +1 -1
- package/dist/campaigns/routes.d.ts +104 -0
- package/dist/campaigns/routes.d.ts.map +1 -1
- package/dist/campaigns/routes.js +43 -10
- package/dist/campaigns/routes.js.map +1 -1
- package/dist/studio/assets/index-BdQQv2hz.js +537 -0
- package/dist/studio/assets/index-BmmNnS2d.css +32 -0
- package/dist/studio/index.html +2 -2
- package/dist/studio/testid-inventory.json +541 -222
- package/endpoint-manifest.json +26 -2
- package/package.json +2 -2
- package/dist/studio/assets/index-Bj7TB0yo.js +0 -533
- package/dist/studio/assets/index-DJzyQBx3.css +0 -32
package/dist/campaigns/routes.js
CHANGED
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
* 400 ("fix your request").
|
|
14
14
|
*/
|
|
15
15
|
import { z } from 'zod';
|
|
16
|
-
import { CampaignsUnsupportedError } from '../core/adapter.js';
|
|
16
|
+
import { CampaignsUnsupportedError, ProjectsUnsupportedError, } from '../core/adapter.js';
|
|
17
17
|
import { API_PREFIX } from '../api/api-prefix.js';
|
|
18
|
-
import {
|
|
18
|
+
import { resolveScopeRepos } from '../api/multiscope.js';
|
|
19
|
+
import { buildCampaign, fanScenarios } from './plan.js';
|
|
19
20
|
const V = API_PREFIX;
|
|
20
21
|
function message(err) {
|
|
21
22
|
return err instanceof Error ? err.message : String(err);
|
|
@@ -45,7 +46,8 @@ const ScenarioSchema = z
|
|
|
45
46
|
repoRef: z.string().optional(),
|
|
46
47
|
})
|
|
47
48
|
.strict();
|
|
48
|
-
|
|
49
|
+
// Exported for tests/wire-contract.test.ts — the request-direction drift pin (task #84).
|
|
50
|
+
export const LaunchCampaignSchema = z
|
|
49
51
|
.object({
|
|
50
52
|
id: z.string().optional(),
|
|
51
53
|
name: z.string().max(200).optional(),
|
|
@@ -53,6 +55,13 @@ const LaunchCampaignSchema = z
|
|
|
53
55
|
policy: z.enum(['fail_fast', 'continue_independent', 'human_gate_on_failure']).optional(),
|
|
54
56
|
maxConcurrency: z.number().int().min(1).max(64).optional(),
|
|
55
57
|
clisJson: z.string().optional(),
|
|
58
|
+
// The pinned multiscope wire (see api/multiscope.ts): explicit codebase attachments and/or
|
|
59
|
+
// a project whose crew.repo members crew resolves server-side. Neither ⇒ today's behavior.
|
|
60
|
+
projectId: z.string().min(1).optional(),
|
|
61
|
+
repoRefs: z
|
|
62
|
+
.array(z.string().min(1))
|
|
63
|
+
.min(1, 'repoRefs must name at least one registered repo — omit the field to scope by project alone')
|
|
64
|
+
.optional(),
|
|
56
65
|
})
|
|
57
66
|
.strict();
|
|
58
67
|
export function registerCampaignRoutes(app, adapter, deps) {
|
|
@@ -60,11 +69,12 @@ export function registerCampaignRoutes(app, adapter, deps) {
|
|
|
60
69
|
config: {
|
|
61
70
|
manifest: {
|
|
62
71
|
requestType: 'LaunchCampaignBody',
|
|
63
|
-
responseType: '
|
|
64
|
-
// 400: zod reject / mapping reject (inline-byte rule, unknown dep,
|
|
65
|
-
// reject (cycle, empty);
|
|
66
|
-
//
|
|
67
|
-
|
|
72
|
+
responseType: 'LaunchCampaignResponse',
|
|
73
|
+
// 400: zod reject / mapping reject (inline-byte rule, unknown dep, bad repoRef,
|
|
74
|
+
// repo-less project, …) / engine def reject (cycle, empty); 404: unknown projectId;
|
|
75
|
+
// 409: campaign id already exists / archived project; 501: engine addon lacks the
|
|
76
|
+
// campaign bindings (or the project bindings, when projectId is used).
|
|
77
|
+
statusCodes: [201, 400, 404, 409, 501],
|
|
68
78
|
},
|
|
69
79
|
},
|
|
70
80
|
}, async (req, reply) => {
|
|
@@ -80,8 +90,24 @@ export function registerCampaignRoutes(app, adapter, deps) {
|
|
|
80
90
|
.code(400)
|
|
81
91
|
.send({ error: 'clisJson must be a JSON array of AgenticCli seats' });
|
|
82
92
|
}
|
|
83
|
-
|
|
93
|
+
// The pinned multiscope wire: resolve projectId/repoRefs to registered repos (fail-closed,
|
|
94
|
+
// errors name the bad token), then fan unpinned scenarios — one node per repo, SAME
|
|
95
|
+
// campaign (one engine run is one repo: run_spec.repo_ref is a single ref).
|
|
96
|
+
const scope = await resolveScopeRepos(adapter, {
|
|
97
|
+
projectId: body.projectId,
|
|
98
|
+
repoRefs: body.repoRefs,
|
|
99
|
+
});
|
|
100
|
+
if (!scope.ok) {
|
|
101
|
+
return reply.code(scope.status).send({ error: scope.error });
|
|
102
|
+
}
|
|
103
|
+
const multiscope = body.projectId !== undefined || body.repoRefs !== undefined;
|
|
104
|
+
const fanned = fanScenarios(body.scenarios, scope.repos);
|
|
105
|
+
const built = buildCampaign({ ...body, scenarios: fanned.scenarios }, clis);
|
|
84
106
|
const campaignId = await adapter.launchCampaign(built.def, built.workflows);
|
|
107
|
+
// The fanned nodes' attempt-0 run ids — the engine keys node run ids
|
|
108
|
+
// `{campaign}:{node}:a{attempt}` and attempts are 0-based, so these are the ids the
|
|
109
|
+
// scheduler will dispatch (a human Retry mints a1 and the campaign detail carries it).
|
|
110
|
+
const runIds = fanned.runOrder.map((nodeId) => `${campaignId}:${nodeId}:a0`);
|
|
85
111
|
deps.audit.record('campaign.launched', deps.actorOf(req), {
|
|
86
112
|
detail: {
|
|
87
113
|
campaignId,
|
|
@@ -89,14 +115,21 @@ export function registerCampaignRoutes(app, adapter, deps) {
|
|
|
89
115
|
edges: built.def.edges.length,
|
|
90
116
|
policy: built.def.policy,
|
|
91
117
|
maxConcurrency: built.def.max_concurrency,
|
|
118
|
+
...(body.projectId !== undefined ? { projectId: body.projectId } : {}),
|
|
119
|
+
...(scope.repos.length > 0 ? { repoRefs: scope.repos.map((r) => r.id) } : {}),
|
|
92
120
|
},
|
|
93
121
|
});
|
|
94
|
-
|
|
122
|
+
// `runIds` is ADDITIVE: present exactly when the caller used the multiscope fields
|
|
123
|
+
// (a legacy body keeps the legacy `{ campaignId }` answer byte-for-byte).
|
|
124
|
+
return reply.code(201).send(multiscope ? { campaignId, runIds } : { campaignId });
|
|
95
125
|
}
|
|
96
126
|
catch (err) {
|
|
97
127
|
if (err instanceof CampaignsUnsupportedError) {
|
|
98
128
|
return reply.code(501).send({ error: err.message });
|
|
99
129
|
}
|
|
130
|
+
if (err instanceof ProjectsUnsupportedError) {
|
|
131
|
+
return reply.code(501).send({ error: err.message });
|
|
132
|
+
}
|
|
100
133
|
const msg = message(err);
|
|
101
134
|
// A campaign id that already exists is a state conflict on a real resource.
|
|
102
135
|
if (/already exists|already launched/i.test(msg)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/campaigns/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/campaigns/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,yBAAyB,EACzB,wBAAwB,GAEzB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,CAAC,GAAG,UAAU,CAAC;AAErB,SAAS,OAAO,CAAC,GAAY;IAC3B,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED;gGACgG;AAChG,SAAS,WAAW,CAAC,GAAe,EAAE,IAAY;IAChD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1F,MAAM,KAAK,GACT,OAAO,CAAC,MAAM,GAAG,CAAC;QAChB,CAAC,CAAC,GAAG,IAAI,kBAAkB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO;aAC9D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;aACtB,IAAI,CAAC,IAAI,CAAC,oCACX,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAChC,kBAAkB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,8CAA8C;QACpG,CAAC,CAAC,IAAI,CAAC;IACX,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/D,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvE,KAAK,EAAE,CAAC;SACL,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;SACvE,MAAM,EAAE;SACR,QAAQ,EAAE;IACb,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,yFAAyF;AACzF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACpC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,sBAAsB,EAAE,uBAAuB,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzF,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,2FAA2F;IAC3F,2FAA2F;IAC3F,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvC,QAAQ,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACxB,GAAG,CAAC,CAAC,EAAE,4FAA4F,CAAC;SACpG,QAAQ,EAAE;CACd,CAAC;KACD,MAAM,EAAE,CAAC;AASZ,MAAM,UAAU,sBAAsB,CACpC,GAAoB,EACpB,OAAoB,EACpB,IAAwB;IAExB,GAAG,CAAC,IAAI,CACN,GAAG,CAAC,YAAY,EAChB;QACE,MAAM,EAAE;YACN,QAAQ,EAAE;gBACR,WAAW,EAAE,oBAAoB;gBACjC,YAAY,EAAE,wBAAwB;gBACtC,gFAAgF;gBAChF,oFAAoF;gBACpF,kFAAkF;gBAClF,uEAAuE;gBACvE,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;aACvC;SACF;KACF,EACD,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAA0B,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,IAAI,GACR,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAe,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACzF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,OAAO,KAAK;qBACT,IAAI,CAAC,GAAG,CAAC;qBACT,IAAI,CAAC,EAAE,KAAK,EAAE,mDAAmD,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,2FAA2F;YAC3F,oFAAoF;YACpF,4EAA4E;YAC5E,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE;gBAC7C,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;gBACd,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC;YAC/E,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACzD,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;YAC5E,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC5E,qEAAqE;YACrE,oFAAoF;YACpF,uFAAuF;YACvF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,UAAU,IAAI,MAAM,KAAK,CAAC,CAAC;YAC7E,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACxD,MAAM,EAAE;oBACN,UAAU;oBACV,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;oBAC7B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;oBAC7B,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM;oBACxB,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe;oBACzC,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC9E;aACF,CAAC,CAAC;YACH,mFAAmF;YACnF,0EAA0E;YAC1E,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QACpF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,yBAAyB,EAAE,CAAC;gBAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,GAAG,YAAY,wBAAwB,EAAE,CAAC;gBAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YACzB,4EAA4E;YAC5E,IAAI,kCAAkC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,GAAG,CAAC,YAAY,EAChB;QACE,MAAM,EAAE;YACN,QAAQ,EAAE,EAAE,YAAY,EAAE,2BAA2B,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;SACjF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACpB,IAAI,CAAC;YACH,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;QACrD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,yBAAyB,EAAE,CAAC;gBAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,GAAG,CAAC,gBAAgB,EACpB;QACE,MAAM,EAAE;YACN,QAAQ,EAAE,EAAE,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;SACnF;KACF,EACD,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAwB,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAClD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,EAAE,QAAQ,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,yBAAyB,EAAE,CAAC;gBAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,4FAA4F;IAC5F,6EAA6E;IAC7E,MAAM,UAAU,GAAG,CACjB,MAA2B,EAC3B,GAAoC,EACpC,EAAE;QACF,GAAG,CAAC,IAAI,CACN,GAAG,CAAC,kBAAkB,MAAM,EAAE,EAC9B;YACE,MAAM,EAAE;gBACN,QAAQ,EAAE;oBACR,YAAY,EAAE,gDAAgD;oBAC9D,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;iBAClC;aACF;SACF,EACD,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;YACnB,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAwB,CAAC;YAC5C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBAChG,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE;iBACnC,CAAC,CAAC;gBACH,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;YACpC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,yBAAyB,EAAE,CAAC;oBAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtD,CAAC;gBACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;gBACzB,IAAI,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC9C,CAAC;gBACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC,CAAC;IACF,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
|