@agent-deck/backend 1.7.0 → 1.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/lib/http-auth.d.ts +14 -0
  3. package/dist/lib/http-auth.d.ts.map +1 -1
  4. package/dist/lib/http-auth.js +25 -0
  5. package/dist/lib/http-auth.js.map +1 -1
  6. package/dist/mcp-server.d.ts +9 -0
  7. package/dist/mcp-server.d.ts.map +1 -1
  8. package/dist/mcp-server.js +112 -39
  9. package/dist/mcp-server.js.map +1 -1
  10. package/dist/mcp-stdio.d.ts +2 -0
  11. package/dist/mcp-stdio.d.ts.map +1 -0
  12. package/dist/mcp-stdio.js.map +1 -0
  13. package/dist/mcp-tools/test-harness.d.ts +2 -2
  14. package/dist/mcp-tools/test-harness.d.ts.map +1 -1
  15. package/dist/mcp-tools/test-harness.js +23 -15
  16. package/dist/mcp-tools/test-harness.js.map +1 -1
  17. package/dist/playbooks/playbook-parser.d.ts +8 -0
  18. package/dist/playbooks/playbook-parser.d.ts.map +1 -0
  19. package/dist/playbooks/playbook-parser.js +76 -0
  20. package/dist/playbooks/playbook-parser.js.map +1 -0
  21. package/dist/playbooks/playbook-service.d.ts +9 -0
  22. package/dist/playbooks/playbook-service.d.ts.map +1 -0
  23. package/dist/playbooks/playbook-service.js +107 -0
  24. package/dist/playbooks/playbook-service.js.map +1 -0
  25. package/dist/routes/trusted-session.d.ts.map +1 -1
  26. package/dist/routes/trusted-session.js +40 -4
  27. package/dist/routes/trusted-session.js.map +1 -1
  28. package/dist/scope/bindings-sidecar.d.ts +9 -0
  29. package/dist/scope/bindings-sidecar.d.ts.map +1 -0
  30. package/dist/scope/bindings-sidecar.js +57 -0
  31. package/dist/scope/bindings-sidecar.js.map +1 -0
  32. package/dist/scope/repo-deck.d.ts +10 -0
  33. package/dist/scope/repo-deck.d.ts.map +1 -0
  34. package/dist/scope/repo-deck.js +63 -0
  35. package/dist/scope/repo-deck.js.map +1 -0
  36. package/dist/test-local-mcp-e2e.d.ts +3 -0
  37. package/dist/test-local-mcp-e2e.d.ts.map +1 -0
  38. package/dist/test-local-mcp-e2e.js +104 -0
  39. package/dist/test-local-mcp-e2e.js.map +1 -0
  40. package/dist/trusted-session/route-policy-registry.d.ts.map +1 -1
  41. package/dist/trusted-session/route-policy-registry.js +2 -0
  42. package/dist/trusted-session/route-policy-registry.js.map +1 -1
  43. package/dist/trusted-session/store.d.ts +6 -0
  44. package/dist/trusted-session/store.d.ts.map +1 -1
  45. package/dist/trusted-session/store.js +30 -1
  46. package/dist/trusted-session/store.js.map +1 -1
  47. package/package.json +2 -2
  48. package/static-ui/assets/index-BV3jJARs.js +499 -0
  49. package/static-ui/assets/index-DppGBI7V.css +1 -0
  50. package/static-ui/favicon.png +0 -0
  51. package/static-ui/index.html +2 -2
  52. package/static-ui/assets/index-DUyowkPn.js +0 -499
  53. package/static-ui/assets/index-cJDgESGn.css +0 -1
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlaybookParseError = void 0;
4
+ exports.parseSimpleFrontmatter = parseSimpleFrontmatter;
5
+ exports.parsePlaybookFile = parsePlaybookFile;
6
+ const shared_1 = require("@agent-deck/shared");
7
+ class PlaybookParseError extends Error {
8
+ constructor(message) {
9
+ super(message);
10
+ this.name = 'PlaybookParseError';
11
+ }
12
+ }
13
+ exports.PlaybookParseError = PlaybookParseError;
14
+ /** Parse a minimal YAML-like frontmatter block (no external YAML dependency). */
15
+ function parseSimpleFrontmatter(block) {
16
+ const result = {};
17
+ let currentListKey = null;
18
+ for (const rawLine of block.split('\n')) {
19
+ const line = rawLine.trimEnd();
20
+ if (!line.trim()) {
21
+ continue;
22
+ }
23
+ const listMatch = line.match(/^\s+-\s+(.+)$/);
24
+ if (listMatch && currentListKey) {
25
+ const list = result[currentListKey];
26
+ if (Array.isArray(list)) {
27
+ list.push(stripQuotes(listMatch[1].trim()));
28
+ }
29
+ continue;
30
+ }
31
+ const kvMatch = line.match(/^([\w-]+):\s*(.*)$/);
32
+ if (!kvMatch) {
33
+ continue;
34
+ }
35
+ const [, key, rawValue] = kvMatch;
36
+ const value = rawValue.trim();
37
+ if (!value) {
38
+ currentListKey = key;
39
+ result[key] = [];
40
+ continue;
41
+ }
42
+ currentListKey = null;
43
+ result[key] = stripQuotes(value);
44
+ }
45
+ return result;
46
+ }
47
+ function stripQuotes(value) {
48
+ return value.replace(/^["']|["']$/g, '');
49
+ }
50
+ function parsePlaybookFile(content, filePath) {
51
+ const match = content.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n([\s\S]*)$/);
52
+ if (!match) {
53
+ throw new PlaybookParseError(`Missing YAML frontmatter in ${filePath}`);
54
+ }
55
+ const [, frontmatterBlock, body] = match;
56
+ const raw = parseSimpleFrontmatter(frontmatterBlock);
57
+ const frontmatter = shared_1.PlaybookFrontmatterSchema.parse({
58
+ id: raw.id,
59
+ triggers: Array.isArray(raw.triggers) ? raw.triggers : [],
60
+ connections: Array.isArray(raw.connections) ? raw.connections : [],
61
+ exec: typeof raw.exec === 'string' ? raw.exec : undefined,
62
+ skill: typeof raw.skill === 'string' ? raw.skill : undefined,
63
+ });
64
+ const source = filePath.includes('.agent-deck/playbooks')
65
+ ? 'repo'
66
+ : 'global';
67
+ return {
68
+ id: frontmatter.id,
69
+ path: filePath,
70
+ triggers: frontmatter.triggers,
71
+ source,
72
+ frontmatter,
73
+ body: body.trim(),
74
+ };
75
+ }
76
+ //# sourceMappingURL=playbook-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playbook-parser.js","sourceRoot":"","sources":["../../src/playbooks/playbook-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Playbook, PlaybookSummary } from '@agent-deck/shared';
2
+ export declare function getGlobalPlaybooksDir(): string;
3
+ export declare function discoverPlaybookPaths(workspaceRoot?: string): Promise<Array<{
4
+ filePath: string;
5
+ source: PlaybookSummary['source'];
6
+ }>>;
7
+ export declare function listPlaybooks(workspaceRoot?: string): Promise<PlaybookSummary[]>;
8
+ export declare function getPlaybook(playbookId: string, workspaceRoot?: string): Promise<Playbook | null>;
9
+ //# sourceMappingURL=playbook-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playbook-service.d.ts","sourceRoot":"","sources":["../../src/playbooks/playbook-service.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,eAAe,EAEhB,MAAM,oBAAoB,CAAC;AAK5B,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AA8CD,wBAAsB,qBAAqB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IACjF,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;CACnC,CAAC,CAAC,CA4BF;AAED,wBAAsB,aAAa,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAiBtF;AAED,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAW1B"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getGlobalPlaybooksDir = getGlobalPlaybooksDir;
7
+ exports.discoverPlaybookPaths = discoverPlaybookPaths;
8
+ exports.listPlaybooks = listPlaybooks;
9
+ exports.getPlaybook = getPlaybook;
10
+ const promises_1 = __importDefault(require("node:fs/promises"));
11
+ const node_path_1 = __importDefault(require("node:path"));
12
+ const shared_1 = require("@agent-deck/shared");
13
+ const yaml_sync_1 = require("../vault/yaml-sync");
14
+ const repo_deck_1 = require("../scope/repo-deck");
15
+ const playbook_parser_1 = require("./playbook-parser");
16
+ function getGlobalPlaybooksDir() {
17
+ return node_path_1.default.join((0, yaml_sync_1.getAgentDeckHome)(), 'playbooks');
18
+ }
19
+ async function pathExists(filePath) {
20
+ try {
21
+ await promises_1.default.access(filePath);
22
+ return true;
23
+ }
24
+ catch {
25
+ return false;
26
+ }
27
+ }
28
+ async function listMarkdownFiles(dir) {
29
+ if (!(await pathExists(dir))) {
30
+ return [];
31
+ }
32
+ const entries = await promises_1.default.readdir(dir, { withFileTypes: true });
33
+ return entries
34
+ .filter((entry) => entry.isFile() && entry.name.endsWith('.md'))
35
+ .map((entry) => node_path_1.default.join(dir, entry.name));
36
+ }
37
+ function resolvePlaybookPath(workspaceRoot, playbookPath) {
38
+ if (node_path_1.default.isAbsolute(playbookPath)) {
39
+ return playbookPath;
40
+ }
41
+ return node_path_1.default.join(node_path_1.default.resolve(workspaceRoot), playbookPath);
42
+ }
43
+ async function loadPlaybookFromFile(filePath, source) {
44
+ try {
45
+ const content = await promises_1.default.readFile(filePath, 'utf8');
46
+ const playbook = (0, playbook_parser_1.parsePlaybookFile)(content, filePath);
47
+ return { ...playbook, source };
48
+ }
49
+ catch (error) {
50
+ if (error instanceof playbook_parser_1.PlaybookParseError) {
51
+ console.warn(error.message);
52
+ return null;
53
+ }
54
+ throw error;
55
+ }
56
+ }
57
+ async function discoverPlaybookPaths(workspaceRoot) {
58
+ const discovered = new Map();
59
+ const addPath = (filePath, source) => {
60
+ const resolved = node_path_1.default.resolve(filePath);
61
+ if (!discovered.has(resolved)) {
62
+ discovered.set(resolved, { filePath: resolved, source });
63
+ }
64
+ };
65
+ if (workspaceRoot) {
66
+ const manifest = await (0, repo_deck_1.loadRepoDeckManifest)(workspaceRoot);
67
+ for (const playbookPath of manifest?.playbooks ?? []) {
68
+ addPath(resolvePlaybookPath(workspaceRoot, playbookPath), 'repo');
69
+ }
70
+ const repoDir = node_path_1.default.join(node_path_1.default.resolve(workspaceRoot), shared_1.REPO_PLAYBOOKS_DIR);
71
+ for (const filePath of await listMarkdownFiles(repoDir)) {
72
+ addPath(filePath, 'repo');
73
+ }
74
+ }
75
+ const globalDir = getGlobalPlaybooksDir();
76
+ for (const filePath of await listMarkdownFiles(globalDir)) {
77
+ addPath(filePath, 'global');
78
+ }
79
+ return [...discovered.values()];
80
+ }
81
+ async function listPlaybooks(workspaceRoot) {
82
+ const paths = await discoverPlaybookPaths(workspaceRoot);
83
+ const summaries = [];
84
+ for (const { filePath, source } of paths) {
85
+ const playbook = await loadPlaybookFromFile(filePath, source);
86
+ if (playbook) {
87
+ summaries.push({
88
+ id: playbook.id,
89
+ path: playbook.path,
90
+ triggers: playbook.triggers,
91
+ source: playbook.source,
92
+ });
93
+ }
94
+ }
95
+ return summaries.sort((a, b) => a.id.localeCompare(b.id));
96
+ }
97
+ async function getPlaybook(playbookId, workspaceRoot) {
98
+ const paths = await discoverPlaybookPaths(workspaceRoot);
99
+ for (const { filePath, source } of paths) {
100
+ const playbook = await loadPlaybookFromFile(filePath, source);
101
+ if (playbook?.id === playbookId) {
102
+ return playbook;
103
+ }
104
+ }
105
+ return null;
106
+ }
107
+ //# sourceMappingURL=playbook-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playbook-service.js","sourceRoot":"","sources":["../../src/playbooks/playbook-service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"trusted-session.d.ts","sourceRoot":"","sources":["../../src/routes/trusted-session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAkB,MAAM,SAAS,CAAC;AAkB/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAsDpE,wBAAsB,4BAA4B,CAAC,OAAO,EAAE,eAAe,iBA6W1E;AAED,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,eAAe,iBAmCzE;AAED,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,eAAe;QACvB,mBAAmB,EAAE,mBAAmB,CAAC;KAC1C;CACF"}
1
+ {"version":3,"file":"trusted-session.d.ts","sourceRoot":"","sources":["../../src/routes/trusted-session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAkB,MAAM,SAAS,CAAC;AAkB/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAsDpE,wBAAsB,4BAA4B,CAAC,OAAO,EAAE,eAAe,iBAuZ1E;AAED,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,eAAe,iBAmCzE;AAED,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,eAAe;QACvB,mBAAmB,EAAE,mBAAmB,CAAC;KAC1C;CACF"}
@@ -311,7 +311,7 @@ async function registerTrustedSessionRoutes(fastify) {
311
311
  });
312
312
  fastify.post('/mcp/connect', async (request, reply) => {
313
313
  try {
314
- const { grantSecret, mcpSessionId } = request.body;
314
+ const { grantSecret, mcpSessionId, claimedGrantId } = request.body;
315
315
  if (!grantSecret?.trim()) {
316
316
  throw new auth_1.TrustedAuthError('GRANT_REQUIRED', 'No valid workspace grant');
317
317
  }
@@ -319,16 +319,27 @@ async function registerTrustedSessionRoutes(fastify) {
319
319
  if (!grant) {
320
320
  throw new auth_1.TrustedAuthError('GRANT_REQUIRED', 'No valid workspace grant');
321
321
  }
322
+ const claimed = claimedGrantId?.trim();
323
+ if (claimed && claimed !== grant.id) {
324
+ throw new auth_1.TrustedAuthError('GRANT_REQUIRED', 'Claimed grant id does not match secret');
325
+ }
326
+ const mcpId = mcpSessionId?.trim();
322
327
  let session;
323
- if (mcpSessionId?.trim()) {
324
- session = store.findActiveRuntimeSessionForMcp(mcpSessionId.trim(), grant.id);
328
+ if (mcpId) {
329
+ // Ownership survives lease expiry / revoke: another grant must not
330
+ // create a replacement runtime row for the same MCP transport id.
331
+ const historical = store.findLatestRuntimeSessionByMcpSessionId(mcpId);
332
+ if (historical && historical.workspaceGrantId !== grant.id) {
333
+ throw new auth_1.TrustedAuthError('GRANT_REQUIRED', 'Grant does not own this MCP session');
334
+ }
335
+ session = store.findActiveRuntimeSessionForMcp(mcpId, grant.id);
325
336
  }
326
337
  if (!session) {
327
338
  session = store.createRuntimeSession({
328
339
  workspaceKeyId: grant.workspace_key_id,
329
340
  workspaceGrantId: grant.id,
330
341
  deckId: grant.deck_id,
331
- mcpSessionId: mcpSessionId?.trim(),
342
+ mcpSessionId: mcpId,
332
343
  });
333
344
  }
334
345
  const deck = await fastify.db.getDeck(session.deckId);
@@ -337,6 +348,7 @@ async function registerTrustedSessionRoutes(fastify) {
337
348
  data: {
338
349
  sessionId: session.sessionId,
339
350
  workspaceKey: session.workspaceKey,
351
+ workspaceGrantId: grant.id,
340
352
  deckId: session.deckId,
341
353
  deckName: deck?.name,
342
354
  mode: session.mode,
@@ -351,6 +363,30 @@ async function registerTrustedSessionRoutes(fastify) {
351
363
  throw error;
352
364
  }
353
365
  });
366
+ fastify.post('/mcp/disconnect', async (request, reply) => {
367
+ try {
368
+ const grantSecret = request.body.grantSecret?.trim();
369
+ const mcpSessionId = request.body.mcpSessionId?.trim();
370
+ if (!grantSecret || !mcpSessionId) {
371
+ throw new auth_1.TrustedAuthError('GRANT_REQUIRED', 'No valid workspace grant');
372
+ }
373
+ const grant = store.findActiveGrantBySecret(grantSecret);
374
+ if (!grant) {
375
+ throw new auth_1.TrustedAuthError('GRANT_REQUIRED', 'No valid workspace grant');
376
+ }
377
+ const session = store.findActiveRuntimeSessionForMcp(mcpSessionId, grant.id);
378
+ if (session) {
379
+ store.revokeRuntimeSession(session.sessionId);
380
+ }
381
+ return reply.send({ success: true, data: { revoked: Boolean(session) } });
382
+ }
383
+ catch (error) {
384
+ if (error instanceof auth_1.TrustedAuthError) {
385
+ return (0, auth_1.sendTrustedAuthError)(reply, error);
386
+ }
387
+ throw error;
388
+ }
389
+ });
354
390
  }
355
391
  async function registerDashboardAuthRoutes(fastify) {
356
392
  const store = fastify.trustedSessionStore;
@@ -1 +1 @@
1
- {"version":3,"file":"trusted-session.js","sourceRoot":"","sources":["../../src/routes/trusted-session.ts"],"names":[],"mappings":";;AA0EA,oEA6WC;AAED,kEAmCC;AA5dD,6CAA0C;AAI1C,+CAM4B;AAE5B,gDAAoD;AACpD,kDAKiC;AACjC,0DAA4F;AAE5F,oDAA+D;AAC/D,kEAAkG;AAElG,4EAA4E;AAC5E,SAAS,8BAA8B,CAAC,OAAuB,EAAE,gBAAwB;IACvF,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,kCAAyB,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,IAAI,CAAC,aAAa,IAAI,aAAa,KAAK,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC;QAChE,MAAM,IAAI,uBAAgB,CAAC,gBAAgB,EAAE,oCAAoC,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAA0B,EAC1B,cAAsB,EACtB,aAAqB;IAErB,MAAM,GAAG,GAAG,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;IACtD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,uBAAgB,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,MAAM,GAAG,IAAA,qCAA4B,EAAC,IAAA,kCAAyB,EAAC,aAAa,CAAC,CAAC,CAAC;IACtF,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QAC/B,MAAM,IAAI,uBAAgB,CACxB,0BAA0B,EAC1B,qEAAqE,CACtE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,+BAA+B,CACtC,OAAuB,EACvB,KAA0B;IAE1B,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,kCAAyB,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,OAAO,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,uBAAgB,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAClD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QAC3B,MAAM,IAAI,uBAAgB,CAAC,iBAAiB,EAAE,yDAAyD,CAAC,CAAC;IAC3G,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,uBAAgB,CAAC,iBAAiB,EAAE,mCAAmC,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,uBAAgB,CAAC,iBAAiB,EAAE,mCAAmC,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAEM,KAAK,UAAU,4BAA4B,CAAC,OAAwB;IACzE,MAAM,KAAK,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAE1C,OAAO,CAAC,IAAI,CACV,yBAAyB,EACzB,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,IAAA,iCAA0B,EAAC,OAAO,CAAC,CAAC;YAE1C,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAC/C,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC9C,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC,CAAC;YAChG,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAC7E,CAAC;YAED,MAAM,SAAS,GAAG,IAAA,kCAAyB,EAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,IAAA,qCAA4B,EAAC,SAAS,CAAC,CAAC;YACvD,MAAM,YAAY,GAAG,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,IAAA,2BAAmB,GAAE,CAAC;YACrC,MAAM,OAAO,GAAG,KAAK,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAE1E,OAAO,KAAK,CAAC,IAAI,CAAC;gBAChB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,YAAY,EAAE,YAAY,CAAC,EAAE;oBAC7B,OAAO,EAAE,OAAO,CAAC,EAAE;oBACnB,MAAM;oBACN,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,MAAM;oBACN,MAAM,EAAE,SAAkB;iBAC3B;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,uBAAgB,EAAE,CAAC;gBACtC,OAAO,IAAA,2BAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,CAAC,IAAI,CACV,2CAA2C,EAC3C,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,IAAA,iCAA0B,EAAC,OAAO,CAAC,CAAC;YAC1C,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACjD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,uBAAgB,EAAE,CAAC;gBACtC,OAAO,IAAA,2BAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,CAAC,IAAI,CACV,qCAAqC,EACrC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,IAAA,iCAA0B,EAAC,OAAO,CAAC,CAAC;YAE1C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YACnC,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC5B,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,gCAAgC;iBACxC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAEzD,OAAO,KAAK,CAAC,IAAI,CAAC;gBAChB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,OAAO,EAAE,SAAS,CAAC,EAAE;oBACrB,MAAM,EAAE,SAAS,CAAC,OAAO;oBACzB,QAAQ,EAAE,IAAI,EAAE,IAAI;oBACpB,MAAM,EAAE,SAAS,CAAC,MAAM;iBACzB;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,uBAAgB,EAAE,CAAC;gBACtC,OAAO,IAAA,2BAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvD,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,kCAAyB,CAAC,CAAC;YACjE,MAAM,SAAS,GAAG,OAAO,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,uBAAgB,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;YAC3E,CAAC;YAED,MAAM,GAAG,GAAG,KAAK,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBAC3B,MAAM,IAAI,uBAAgB,CAAC,iBAAiB,EAAE,yDAAyD,CAAC,CAAC;YAC3G,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBAC7C,MAAM,IAAI,uBAAgB,CAAC,iBAAiB,EAAE,mCAAmC,CAAC,CAAC;YACrF,CAAC;YAED,MAAM,OAAO,GAAG,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,uBAAgB,CAAC,iBAAiB,EAAE,mCAAmC,CAAC,CAAC;YACrF,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAEtD,OAAO,KAAK,CAAC,IAAI,CAAC;gBAChB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,QAAQ,EAAE,IAAI,EAAE,IAAI;oBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;iBACvC;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,uBAAgB,EAAE,CAAC;gBACtC,OAAO,IAAA,2BAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CACV,iBAAiB,EACjB,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAC/C,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC9C,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC,CAAC;YAChG,CAAC;YAED,MAAM,OAAO,GAAG,+BAA+B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAChE,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;YAEjE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAC7E,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC9B,OAAO,KAAK,CAAC,IAAI,CAAC;oBAChB,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE;wBACJ,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,QAAQ,EAAE,IAAI,CAAC,IAAI;wBACnB,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,YAAY,EAAE,KAAK;wBACnB,YAAY,EAAE,CAAC;qBAChB;iBACF,CAAC,CAAC;YACL,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACnC,MAAM,IAAI,uBAAgB,CAAC,gBAAgB,EAAE,kCAAkC,CAAC,CAAC;YACnF,CAAC;YAED,MAAM,cAAc,GAAG,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACpE,MAAM,OAAO,GAAG,KAAK,CAAC,6BAA6B,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC/E,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,uBAAgB,CAAC,iBAAiB,EAAE,mCAAmC,CAAC,CAAC;YACrF,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAEjE,OAAO,KAAK,CAAC,IAAI,CAAC;gBAChB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;oBAC9B,QAAQ,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;oBACpC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;oBAC1B,YAAY,EAAE,IAAI;oBAClB,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,0BAA0B,EAAE,cAAc;oBAC1C,gBAAgB,EACd,8GAA8G;iBACjH;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,uBAAgB,EAAE,CAAC;gBACtC,OAAO,IAAA,2BAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;QACzD,MAAM,OAAO,GAAG,KAAK,CAAC,0BAA0B,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACxB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,YAAY,GAAG,4BAA4B,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,YAAY,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC3I,OAAO;gBACL,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;gBACtC,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,QAAQ,EAAE,IAAI,EAAE,IAAI;gBACpB,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,YAAY;aACb,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CACV,0BAA0B,EAC1B,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAC1C,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC9B,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC;YACxF,CAAC;YAED,8BAA8B,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAE1D,MAAM,GAAG,GAAG,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;YACzD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBAC3B,MAAM,IAAI,uBAAgB,CAAC,iBAAiB,EAAE,mCAAmC,CAAC,CAAC;YACrF,CAAC;YAED,MAAM,SAAS,GAAG,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;YAC/D,MAAM,WAAW,GAAG,4BAA4B,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAEnI,OAAO,KAAK,CAAC,IAAI,CAAC;gBAChB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,WAAW,EAAE,SAAS,CAAC,EAAE;oBACzB,SAAS,EAAE,SAAS,CAAC,UAAU;oBAC/B,WAAW;iBACZ;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,uBAAgB,EAAE,CAAC;gBACtC,OAAO,IAAA,2BAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,CAAC,IAAI,CACV,gBAAgB,EAChB,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,4BAAgB,EAAC,OAAO,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAM,IAAA,2CAA4B,GAAE,CAAC;YACtD,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAA,gCAAiB,EAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACjE,MAAM,KAAK,GAAG,IAAA,qCAAoB,EAAC,OAAO,CAAC,CAAC;gBAC5C,IAAI,CAAC,KAAK,IAAI,CAAC,IAAA,8CAA6B,EAAC,KAAK,CAAC,EAAE,CAAC;oBACpD,MAAM,IAAI,uBAAgB,CAAC,oBAAoB,EAAE,mCAAmC,CAAC,CAAC;gBACxF,CAAC;YACH,CAAC;YAED,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YACvD,MAAM,QAAQ,GAAG,KAAK,CAAC,qBAAqB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;YAC5E,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,uBAAgB,CAAC,yBAAyB,EAAE,oDAAoD,CAAC,CAAC;YAC9G,CAAC;YAED,MAAM,QAAQ,GAAG,KAAK,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;YAC/D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,uBAAgB,CAAC,iBAAiB,EAAE,mCAAmC,CAAC,CAAC;YACrF,CAAC;YAED,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,uBAAgB,EAAE,CAAC;gBACtC,OAAO,IAAA,2BAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,CAAC,IAAI,CACV,aAAa,EACb,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAC1C,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC9B,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC;YACxF,CAAC;YAED,8BAA8B,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAE1D,MAAM,UAAU,GAAG,KAAK,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;YACpE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;YAChF,CAAC;YAED,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,uBAAgB,EAAE,CAAC;gBACtC,OAAO,IAAA,2BAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,CAAC,IAAI,CACV,cAAc,EACd,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YACnD,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;gBACzB,MAAM,IAAI,uBAAgB,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;YAC3E,CAAC;YAED,MAAM,KAAK,GAAG,KAAK,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;YACzD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,uBAAgB,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;YAC3E,CAAC;YAED,IAAI,OAAO,CAAC;YACZ,IAAI,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;gBACzB,OAAO,GAAG,KAAK,CAAC,8BAA8B,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,KAAK,CAAC,oBAAoB,CAAC;oBACnC,cAAc,EAAE,KAAK,CAAC,gBAAgB;oBACtC,gBAAgB,EAAE,KAAK,CAAC,EAAE;oBAC1B,MAAM,EAAE,KAAK,CAAC,OAAO;oBACrB,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE;iBACnC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAEtD,OAAO,KAAK,CAAC,IAAI,CAAC;gBAChB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,QAAQ,EAAE,IAAI,EAAE,IAAI;oBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC7B;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,uBAAgB,EAAE,CAAC;gBACtC,OAAO,IAAA,2BAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,2BAA2B,CAAC,OAAwB;IACxE,MAAM,KAAK,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAE1C,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACxD,IAAI,CAAC;YACH,MAAM,IAAA,iCAA0B,EAAC,OAAO,CAAC,CAAC;YAE1C,MAAM,KAAK,GAAG,IAAA,yBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,+BAAsB,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9E,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAE7C,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,+BAAsB,EAAE,EAAE,CAAC,CAAC;QAC7F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,uBAAgB,EAAE,CAAC;gBACtC,OAAO,IAAA,2BAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAA8B,oBAAoB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvF,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC,CAAC;QACjG,CAAC;QAED,MAAM,KAAK,GAAG,IAAA,kCAA2B,GAAE,CAAC;QAC5C,oEAAoE;QACpE,KAAK,CAAC,MAAM,CACV,YAAY,EACZ,GAAG,oCAA2B,IAAI,kBAAkB,CAAC,KAAK,CAAC,qCAAqC,CACjG,CAAC;QAEF,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"trusted-session.js","sourceRoot":"","sources":["../../src/routes/trusted-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { BindingEntry } from '@agent-deck/shared';
2
+ /** Write workspace-keyed binding for terminal status line; prune orphaned MCP session UUID keys. */
3
+ export declare function upsertWorkspaceDisplayBinding(workspaceRoot: string, entry: BindingEntry): Promise<void>;
4
+ export declare function readBindingForDisplay(options: {
5
+ sessionId?: string;
6
+ workspaceRoot: string;
7
+ }): Promise<BindingEntry | null>;
8
+ export declare function readBindingForWorkspace(workspaceRoot: string): Promise<BindingEntry | null>;
9
+ //# sourceMappingURL=bindings-sidecar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindings-sidecar.d.ts","sourceRoot":"","sources":["../../src/scope/bindings-sidecar.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EASb,MAAM,oBAAoB,CAAC;AAoC5B,oGAAoG;AACpG,wBAAsB,6BAA6B,CACjD,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAG/B;AAED,wBAAsB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAGjG"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.upsertWorkspaceDisplayBinding = upsertWorkspaceDisplayBinding;
7
+ exports.readBindingForDisplay = readBindingForDisplay;
8
+ exports.readBindingForWorkspace = readBindingForWorkspace;
9
+ const promises_1 = __importDefault(require("node:fs/promises"));
10
+ const node_path_1 = __importDefault(require("node:path"));
11
+ const shared_1 = require("@agent-deck/shared");
12
+ async function readBindingsFile() {
13
+ const merged = {};
14
+ for (const filePath of (0, shared_1.listBindingsFileCandidates)()) {
15
+ try {
16
+ const raw = await promises_1.default.readFile(filePath, 'utf8');
17
+ const parsed = shared_1.BindingsFileSchema.safeParse(JSON.parse(raw));
18
+ if (parsed.success) {
19
+ Object.assign(merged, parsed.data);
20
+ }
21
+ }
22
+ catch (error) {
23
+ if (error.code !== 'ENOENT') {
24
+ throw error;
25
+ }
26
+ }
27
+ }
28
+ return merged;
29
+ }
30
+ async function writeBindingsFile(bindings) {
31
+ const filePath = (0, shared_1.resolveBindingsFilePath)();
32
+ await promises_1.default.mkdir(node_path_1.default.dirname(filePath), { recursive: true });
33
+ await promises_1.default.writeFile(filePath, `${JSON.stringify(bindings, null, 2)}\n`, 'utf8');
34
+ }
35
+ function pruneLegacySessionKeys(bindings) {
36
+ for (const key of Object.keys(bindings)) {
37
+ if ((0, shared_1.isBindingSidecarSessionKey)(key)) {
38
+ delete bindings[key];
39
+ }
40
+ }
41
+ }
42
+ /** Write workspace-keyed binding for terminal status line; prune orphaned MCP session UUID keys. */
43
+ async function upsertWorkspaceDisplayBinding(workspaceRoot, entry) {
44
+ const bindings = await readBindingsFile();
45
+ bindings[(0, shared_1.normalizeWorkspaceRoot)(workspaceRoot)] = entry;
46
+ pruneLegacySessionKeys(bindings);
47
+ await writeBindingsFile(bindings);
48
+ }
49
+ async function readBindingForDisplay(options) {
50
+ const bindings = await readBindingsFile();
51
+ return (0, shared_1.resolveBindingEntry)(bindings, options);
52
+ }
53
+ async function readBindingForWorkspace(workspaceRoot) {
54
+ const bindings = await readBindingsFile();
55
+ return (0, shared_1.lookupWorkspaceBinding)(bindings, workspaceRoot);
56
+ }
57
+ //# sourceMappingURL=bindings-sidecar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindings-sidecar.js","sourceRoot":"","sources":["../../src/scope/bindings-sidecar.ts"],"names":[],"mappings":";;;;;AAiDA,sEAQC;AAED,sDAMC;AAED,0DAGC;AAtED,gEAAkC;AAClC,0DAA6B;AAC7B,+CAU4B;AAE5B,KAAK,UAAU,gBAAgB;IAC7B,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,KAAK,MAAM,QAAQ,IAAI,IAAA,mCAA0B,GAAE,EAAE,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,2BAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,QAAsB;IACrD,MAAM,QAAQ,GAAG,IAAA,gCAAuB,GAAE,CAAC;IAC3C,MAAM,kBAAE,CAAC,KAAK,CAAC,mBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,kBAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAsB;IACpD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,IAAI,IAAA,mCAA0B,EAAC,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;AACH,CAAC;AAED,oGAAoG;AAC7F,KAAK,UAAU,6BAA6B,CACjD,aAAqB,EACrB,KAAmB;IAEnB,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC1C,QAAQ,CAAC,IAAA,+BAAsB,EAAC,aAAa,CAAC,CAAC,GAAG,KAAK,CAAC;IACxD,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAC,OAG3C;IACC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC1C,OAAO,IAAA,4BAAmB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAAC,aAAqB;IACjE,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC1C,OAAO,IAAA,+BAAsB,EAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { RepoDeckManifest } from '@agent-deck/shared';
2
+ export declare class RepoDeckManifestError extends Error {
3
+ constructor(message: string);
4
+ }
5
+ /** Lightweight parser — avoids a YAML dependency for the single-field MVP manifest. */
6
+ export declare function parseRepoDeckManifest(content: string): RepoDeckManifest;
7
+ export declare function repoDeckManifestFilePath(workspaceRoot: string): string;
8
+ export declare function loadRepoDeckManifest(workspaceRoot: string): Promise<RepoDeckManifest | null>;
9
+ export declare function formatRepoDeckManifest(deckId: string, name?: string): string;
10
+ //# sourceMappingURL=repo-deck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-deck.d.ts","sourceRoot":"","sources":["../../src/scope/repo-deck.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAmD,MAAM,oBAAoB,CAAC;AAEvG,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAavE;AAED,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAsB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAiBlG;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAS5E"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RepoDeckManifestError = void 0;
7
+ exports.parseRepoDeckManifest = parseRepoDeckManifest;
8
+ exports.repoDeckManifestFilePath = repoDeckManifestFilePath;
9
+ exports.loadRepoDeckManifest = loadRepoDeckManifest;
10
+ exports.formatRepoDeckManifest = formatRepoDeckManifest;
11
+ const promises_1 = __importDefault(require("node:fs/promises"));
12
+ const node_path_1 = __importDefault(require("node:path"));
13
+ const shared_1 = require("@agent-deck/shared");
14
+ class RepoDeckManifestError extends Error {
15
+ constructor(message) {
16
+ super(message);
17
+ this.name = 'RepoDeckManifestError';
18
+ }
19
+ }
20
+ exports.RepoDeckManifestError = RepoDeckManifestError;
21
+ /** Lightweight parser — avoids a YAML dependency for the single-field MVP manifest. */
22
+ function parseRepoDeckManifest(content) {
23
+ const deckIdMatch = content.match(/^deck_id:\s*["']?([0-9a-f-]{36})["']?\s*$/im);
24
+ if (!deckIdMatch) {
25
+ throw new RepoDeckManifestError('deck_id is required in .agent-deck/deck.yaml');
26
+ }
27
+ const nameMatch = content.match(/^name:\s*["']?(.+?)["']?\s*$/im);
28
+ const raw = {
29
+ deck_id: deckIdMatch[1],
30
+ ...(nameMatch ? { name: nameMatch[1].trim() } : {}),
31
+ };
32
+ return shared_1.RepoDeckManifestSchema.parse(raw);
33
+ }
34
+ function repoDeckManifestFilePath(workspaceRoot) {
35
+ return node_path_1.default.join(node_path_1.default.resolve(workspaceRoot), shared_1.REPO_DECK_MANIFEST_PATH);
36
+ }
37
+ async function loadRepoDeckManifest(workspaceRoot) {
38
+ const filePath = repoDeckManifestFilePath(workspaceRoot);
39
+ try {
40
+ const content = await promises_1.default.readFile(filePath, 'utf8');
41
+ return parseRepoDeckManifest(content);
42
+ }
43
+ catch (error) {
44
+ if (error.code === 'ENOENT') {
45
+ return null;
46
+ }
47
+ if (error instanceof RepoDeckManifestError) {
48
+ throw error;
49
+ }
50
+ throw new RepoDeckManifestError(error instanceof Error ? error.message : 'Failed to read .agent-deck/deck.yaml');
51
+ }
52
+ }
53
+ function formatRepoDeckManifest(deckId, name) {
54
+ const lines = [
55
+ '# Link this repo to an Agent Deck (copy to .agent-deck/deck.yaml in your project)',
56
+ `deck_id: ${deckId}`,
57
+ ];
58
+ if (name) {
59
+ lines.push(`name: ${name}`);
60
+ }
61
+ return lines.join('\n') + '\n';
62
+ }
63
+ //# sourceMappingURL=repo-deck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-deck.js","sourceRoot":"","sources":["../../src/scope/repo-deck.ts"],"names":[],"mappings":";;;;;;AAYA,sDAaC;AAED,4DAEC;AAED,oDAiBC;AAED,wDASC;AA3DD,gEAAkC;AAClC,0DAA6B;AAC7B,+CAAuG;AAEvG,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AALD,sDAKC;AAED,uFAAuF;AACvF,SAAgB,qBAAqB,CAAC,OAAe;IACnD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,qBAAqB,CAAC,8CAA8C,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG;QACV,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;QACvB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;IAEF,OAAO,+BAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,mBAAI,CAAC,IAAI,CAAC,mBAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,gCAAuB,CAAC,CAAC;AACzE,CAAC;AAEM,KAAK,UAAU,oBAAoB,CAAC,aAAqB;IAC9D,MAAM,QAAQ,GAAG,wBAAwB,CAAC,aAAa,CAAC,CAAC;IAEzD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;YAC3C,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,IAAI,qBAAqB,CAC7B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,sCAAsC,CAChF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAgB,sBAAsB,CAAC,MAAc,EAAE,IAAa;IAClE,MAAM,KAAK,GAAG;QACZ,mFAAmF;QACnF,YAAY,MAAM,EAAE;KACrB,CAAC;IACF,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env tsx
2
+ export {};
3
+ //# sourceMappingURL=test-local-mcp-e2e.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-local-mcp-e2e.d.ts","sourceRoot":"","sources":["../src/test-local-mcp-e2e.ts"],"names":[],"mappings":""}