@acpus/web 0.1.0-alpha.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.
Files changed (141) hide show
  1. package/LICENSE +21 -0
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/client/api.d.ts +398 -0
  4. package/dist/client/api.d.ts.map +1 -0
  5. package/dist/client/api.js +73 -0
  6. package/dist/client/api.js.map +1 -0
  7. package/dist/client/assets/index-Cn1qpJ2F.css +1 -0
  8. package/dist/client/assets/index-DVV3hISu.js +2 -0
  9. package/dist/client/assets/vendor-B7fc3-WT.js +69 -0
  10. package/dist/client/assets/vendor-icons-BQrCRas_.js +241 -0
  11. package/dist/client/assets/vendor-json-view-B9Z7D9kT.css +1 -0
  12. package/dist/client/assets/vendor-json-view-uYZpLE5K.js +1 -0
  13. package/dist/client/assets/vendor-query-Co8PPx4J.js +1 -0
  14. package/dist/client/assets/vendor-radix-C9JUg2bE.js +1 -0
  15. package/dist/client/assets/vendor-react-BRGuIgbw.js +49 -0
  16. package/dist/client/index.html +26 -0
  17. package/dist/client/lib/utils.d.ts +3 -0
  18. package/dist/client/lib/utils.d.ts.map +1 -0
  19. package/dist/client/lib/utils.js +6 -0
  20. package/dist/client/lib/utils.js.map +1 -0
  21. package/dist/client/main.d.ts +2 -0
  22. package/dist/client/main.d.ts.map +1 -0
  23. package/dist/client/main.js +18 -0
  24. package/dist/client/main.js.map +1 -0
  25. package/dist/client/static-viz.d.ts +8 -0
  26. package/dist/client/static-viz.d.ts.map +1 -0
  27. package/dist/client/static-viz.js +10 -0
  28. package/dist/client/static-viz.js.map +1 -0
  29. package/dist/client/ui/App.d.ts +40 -0
  30. package/dist/client/ui/App.d.ts.map +1 -0
  31. package/dist/client/ui/App.js +742 -0
  32. package/dist/client/ui/App.js.map +1 -0
  33. package/dist/client/ui/RunGraph.d.ts +9 -0
  34. package/dist/client/ui/RunGraph.d.ts.map +1 -0
  35. package/dist/client/ui/RunGraph.js +294 -0
  36. package/dist/client/ui/RunGraph.js.map +1 -0
  37. package/dist/client/ui/StaticGraphApp.d.ts +22 -0
  38. package/dist/client/ui/StaticGraphApp.d.ts.map +1 -0
  39. package/dist/client/ui/StaticGraphApp.js +102 -0
  40. package/dist/client/ui/StaticGraphApp.js.map +1 -0
  41. package/dist/client/ui/Toast.d.ts +16 -0
  42. package/dist/client/ui/Toast.d.ts.map +1 -0
  43. package/dist/client/ui/Toast.js +41 -0
  44. package/dist/client/ui/Toast.js.map +1 -0
  45. package/dist/client/ui/shadcn/alert.d.ts +3 -0
  46. package/dist/client/ui/shadcn/alert.d.ts.map +1 -0
  47. package/dist/client/ui/shadcn/alert.js +6 -0
  48. package/dist/client/ui/shadcn/alert.js.map +1 -0
  49. package/dist/client/ui/shadcn/badge.d.ts +10 -0
  50. package/dist/client/ui/shadcn/badge.d.ts.map +1 -0
  51. package/dist/client/ui/shadcn/badge.js +19 -0
  52. package/dist/client/ui/shadcn/badge.js.map +1 -0
  53. package/dist/client/ui/shadcn/breadcrumb.d.ts +9 -0
  54. package/dist/client/ui/shadcn/breadcrumb.d.ts.map +1 -0
  55. package/dist/client/ui/shadcn/breadcrumb.js +15 -0
  56. package/dist/client/ui/shadcn/breadcrumb.js.map +1 -0
  57. package/dist/client/ui/shadcn/button.d.ts +12 -0
  58. package/dist/client/ui/shadcn/button.d.ts.map +1 -0
  59. package/dist/client/ui/shadcn/button.js +37 -0
  60. package/dist/client/ui/shadcn/button.js.map +1 -0
  61. package/dist/client/ui/shadcn/card.d.ts +6 -0
  62. package/dist/client/ui/shadcn/card.d.ts.map +1 -0
  63. package/dist/client/ui/shadcn/card.js +10 -0
  64. package/dist/client/ui/shadcn/card.js.map +1 -0
  65. package/dist/client/ui/shadcn/dialog.d.ts +11 -0
  66. package/dist/client/ui/shadcn/dialog.d.ts.map +1 -0
  67. package/dist/client/ui/shadcn/dialog.js +15 -0
  68. package/dist/client/ui/shadcn/dialog.js.map +1 -0
  69. package/dist/client/ui/shadcn/input.d.ts +5 -0
  70. package/dist/client/ui/shadcn/input.d.ts.map +1 -0
  71. package/dist/client/ui/shadcn/input.js +6 -0
  72. package/dist/client/ui/shadcn/input.js.map +1 -0
  73. package/dist/client/ui/shadcn/list.d.ts +8 -0
  74. package/dist/client/ui/shadcn/list.d.ts.map +1 -0
  75. package/dist/client/ui/shadcn/list.js +8 -0
  76. package/dist/client/ui/shadcn/list.js.map +1 -0
  77. package/dist/client/ui/shadcn/popover.d.ts +8 -0
  78. package/dist/client/ui/shadcn/popover.d.ts.map +1 -0
  79. package/dist/client/ui/shadcn/popover.js +11 -0
  80. package/dist/client/ui/shadcn/popover.js.map +1 -0
  81. package/dist/client/ui/shadcn/select.d.ts +9 -0
  82. package/dist/client/ui/shadcn/select.d.ts.map +1 -0
  83. package/dist/client/ui/shadcn/select.js +17 -0
  84. package/dist/client/ui/shadcn/select.js.map +1 -0
  85. package/dist/client/ui/shadcn/tabs.d.ts +7 -0
  86. package/dist/client/ui/shadcn/tabs.d.ts.map +1 -0
  87. package/dist/client/ui/shadcn/tabs.js +12 -0
  88. package/dist/client/ui/shadcn/tabs.js.map +1 -0
  89. package/dist/client/ui/shadcn/textarea.d.ts +3 -0
  90. package/dist/client/ui/shadcn/textarea.d.ts.map +1 -0
  91. package/dist/client/ui/shadcn/textarea.js +6 -0
  92. package/dist/client/ui/shadcn/textarea.js.map +1 -0
  93. package/dist/graph-renderer.d.ts +114 -0
  94. package/dist/graph-renderer.d.ts.map +1 -0
  95. package/dist/graph-renderer.js +673 -0
  96. package/dist/graph-renderer.js.map +1 -0
  97. package/dist/index.d.ts +5 -0
  98. package/dist/index.d.ts.map +1 -0
  99. package/dist/index.js +5 -0
  100. package/dist/index.js.map +1 -0
  101. package/dist/runtime-status.d.ts +10 -0
  102. package/dist/runtime-status.d.ts.map +1 -0
  103. package/dist/runtime-status.js +45 -0
  104. package/dist/runtime-status.js.map +1 -0
  105. package/dist/server/app.d.ts +11 -0
  106. package/dist/server/app.d.ts.map +1 -0
  107. package/dist/server/app.js +244 -0
  108. package/dist/server/app.js.map +1 -0
  109. package/dist/server/assets.d.ts +3 -0
  110. package/dist/server/assets.d.ts.map +1 -0
  111. package/dist/server/assets.js +45 -0
  112. package/dist/server/assets.js.map +1 -0
  113. package/dist/server/errors.d.ts +14 -0
  114. package/dist/server/errors.d.ts.map +1 -0
  115. package/dist/server/errors.js +13 -0
  116. package/dist/server/errors.js.map +1 -0
  117. package/dist/server/graph.d.ts +137 -0
  118. package/dist/server/graph.d.ts.map +1 -0
  119. package/dist/server/graph.js +592 -0
  120. package/dist/server/graph.js.map +1 -0
  121. package/dist/server/launcher.d.ts +15 -0
  122. package/dist/server/launcher.d.ts.map +1 -0
  123. package/dist/server/launcher.js +30 -0
  124. package/dist/server/launcher.js.map +1 -0
  125. package/dist/server/node-inspection.d.ts +108 -0
  126. package/dist/server/node-inspection.d.ts.map +1 -0
  127. package/dist/server/node-inspection.js +435 -0
  128. package/dist/server/node-inspection.js.map +1 -0
  129. package/dist/server/security.d.ts +12 -0
  130. package/dist/server/security.d.ts.map +1 -0
  131. package/dist/server/security.js +43 -0
  132. package/dist/server/security.js.map +1 -0
  133. package/dist/server/static-viz-assets.generated.d.ts +3 -0
  134. package/dist/server/static-viz-assets.generated.d.ts.map +1 -0
  135. package/dist/server/static-viz-assets.generated.js +4 -0
  136. package/dist/server/static-viz-assets.generated.js.map +1 -0
  137. package/dist/server/workflows.d.ts +75 -0
  138. package/dist/server/workflows.d.ts.map +1 -0
  139. package/dist/server/workflows.js +205 -0
  140. package/dist/server/workflows.js.map +1 -0
  141. package/package.json +65 -0
@@ -0,0 +1,30 @@
1
+ import { serve } from "@hono/node-server";
2
+ import { dirname, join } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { createWebApp } from "./app.js";
5
+ import { createAccessPolicy } from "./security.js";
6
+ export async function startWebServer(options) {
7
+ const host = options.host ?? "localhost";
8
+ const access = createAccessPolicy({ enabled: options.token === true });
9
+ const app = createWebApp({
10
+ cwd: options.cwd,
11
+ access,
12
+ staticDir: options.staticDir ?? defaultStaticDir(),
13
+ port: options.port ?? 0,
14
+ ...(options.ensureDaemonRunning === undefined ? {} : { ensureDaemonRunning: options.ensureDaemonRunning }),
15
+ });
16
+ const server = await new Promise(resolve => {
17
+ const running = serve({ fetch: app.fetch, hostname: host, port: options.port ?? 0 }, () => resolve(running));
18
+ });
19
+ const address = server.address();
20
+ const port = typeof address === "object" && address ? address.port : options.port;
21
+ return {
22
+ url: `http://${host}:${port}${access.token === undefined ? "" : `/?token=${encodeURIComponent(access.token)}`}`,
23
+ ...(access.token === undefined ? {} : { token: access.token }),
24
+ close: () => new Promise((resolve, reject) => server.close(error => error ? reject(error) : resolve())),
25
+ };
26
+ }
27
+ function defaultStaticDir() {
28
+ return join(dirname(fileURLToPath(import.meta.url)), "..", "client");
29
+ }
30
+ //# sourceMappingURL=launcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../src/server/launcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAiBnD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAyB;IAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC;IACzC,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC;IACvE,MAAM,GAAG,GAAG,YAAY,CAAC;QACvB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM;QACN,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,gBAAgB,EAAE;QAClD,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC;QACvB,GAAG,CAAC,OAAO,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,EAAE,CAAC;KAC3G,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAA2B,OAAO,CAAC,EAAE;QACnE,MAAM,OAAO,GAAG,KAAK,CACnB,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,EAAE,EAC7D,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CACvB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAElF,OAAO;QACL,GAAG,EAAE,UAAU,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;QAC/G,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAC9D,KAAK,EAAE,GAAG,EAAE,CACV,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KACnG,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AACvE,CAAC"}
@@ -0,0 +1,108 @@
1
+ import type { ArtifactRecord, RunInspection } from "@acpus/runtime";
2
+ export type NodeInspectionTarget = {
3
+ kind: "static-node" | "dynamic-node" | "frame" | "attempt" | "unknown";
4
+ id: string;
5
+ };
6
+ export type NodeInspectionContext = Array<{
7
+ nodeId: string;
8
+ kind: "fanout" | "loop";
9
+ itemKey?: string;
10
+ itemIndex?: number;
11
+ iteration?: number;
12
+ }>;
13
+ export type NodeInspectionResponse = {
14
+ target: NodeInspectionTarget;
15
+ staticNode?: RunInspection["staticNodes"][number];
16
+ summary: NodeInspectionSummary;
17
+ instances: NonNullable<RunInspection["run"]["dynamic"]>["nodeInstances"];
18
+ frames: NonNullable<RunInspection["run"]["dynamic"]>["frames"];
19
+ attempts: NonNullable<RunInspection["run"]["dynamic"]>["attempts"];
20
+ signalWaits: NonNullable<RunInspection["run"]["dynamic"]>["signalWaits"];
21
+ executionMetadata: NonNullable<RunInspection["run"]["dynamic"]>["executionMetadata"];
22
+ artifacts: ArtifactRecord[];
23
+ };
24
+ export type NodeInspectionSummary = {
25
+ targetKind: NodeInspectionTarget["kind"];
26
+ targetId: string;
27
+ runStatus: string;
28
+ runStartedAt?: string;
29
+ runFinishedAt?: string;
30
+ runDurationMs?: number;
31
+ nodeId?: string;
32
+ nodeKey?: string;
33
+ frameKey?: string;
34
+ nodeStatus?: string;
35
+ staticKind?: string;
36
+ staticOrder?: number;
37
+ input?: {
38
+ kind: "runtime" | "authored";
39
+ value: unknown;
40
+ };
41
+ output?: unknown;
42
+ error?: unknown;
43
+ prompt?: {
44
+ kind: "signal" | "artifact" | "authored";
45
+ text?: string;
46
+ artifactId?: string;
47
+ relativePath?: string;
48
+ mediaType?: string;
49
+ };
50
+ latestAttempt?: {
51
+ attemptId: string;
52
+ attemptNo: number;
53
+ status: string;
54
+ startedAt: string;
55
+ finishedAt?: string;
56
+ error?: unknown;
57
+ result?: unknown;
58
+ };
59
+ artifacts: ArtifactRecord[];
60
+ };
61
+ export type NodeExecutionInspection = {
62
+ target: NodeInspectionTarget;
63
+ nodeId?: string;
64
+ nodeKey?: string;
65
+ attemptId?: string;
66
+ available: boolean;
67
+ reason?: string;
68
+ summary: {
69
+ status?: string;
70
+ sessionName?: string;
71
+ turnCount?: number;
72
+ message?: string;
73
+ };
74
+ lastActiveAt?: string;
75
+ contextWindow?: {
76
+ used?: number;
77
+ size?: number;
78
+ percent?: number;
79
+ updatedAt?: string;
80
+ };
81
+ tokenUsage?: {
82
+ source?: string;
83
+ inputTokens?: number;
84
+ outputTokens?: number;
85
+ totalTokens?: number;
86
+ };
87
+ output?: {
88
+ tail: string;
89
+ totalBytes: number;
90
+ truncated: boolean;
91
+ };
92
+ toolCallCount?: number;
93
+ lastToolCalls: Array<{
94
+ turn: number;
95
+ toolCallId?: string;
96
+ toolName?: string;
97
+ status?: string;
98
+ startedAt?: string;
99
+ updatedAt?: string;
100
+ completedAt?: string;
101
+ durationMs?: number;
102
+ inputPreview?: string;
103
+ outputPreview?: string;
104
+ }>;
105
+ };
106
+ export declare function inspectNode(inspection: RunInspection, target: string, artifacts: ArtifactRecord[], context?: NodeInspectionContext): NodeInspectionResponse;
107
+ export declare function inspectNodeExecution(inspection: RunInspection, target: string, context?: NodeInspectionContext, loadTelemetryArtifact?: (artifactRef: unknown) => Promise<unknown | undefined>): Promise<NodeExecutionInspection>;
108
+ //# sourceMappingURL=node-inspection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-inspection.d.ts","sourceRoot":"","sources":["../../src/server/node-inspection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,435 @@
1
+ export function inspectNode(inspection, target, artifacts, context = []) {
2
+ const dynamic = inspection.run.dynamic;
3
+ const staticNode = inspection.staticNodes.find(node => node.nodeId === target);
4
+ const scoped = context.length > 0;
5
+ const instances = (dynamic?.nodeInstances.filter(instance => (instance.nodeKey === target || instance.nodeId === target) && (!scoped || pathMatchesContext(instance.instancePath, context))) ?? []);
6
+ const instanceKeys = new Set(instances.map(instance => instance.nodeKey));
7
+ const frames = dynamic?.frames.filter(frame => (frame.frameKey === target || frame.nodeKey === target || frame.nodeId === target)
8
+ && (!scoped || pathMatchesContext(frame.instancePath, context))) ?? [];
9
+ const frameKeys = new Set(frames.map(frame => frame.frameKey));
10
+ const attempts = dynamic?.attempts.filter(attempt => {
11
+ const matchesTarget = attempt.attemptId === target || attempt.nodeKey === target || attempt.nodeId === target || instanceKeys.has(attempt.nodeKey);
12
+ if (!matchesTarget)
13
+ return false;
14
+ return !scoped || instanceKeys.has(attempt.nodeKey);
15
+ }) ?? [];
16
+ const signalWaits = dynamic?.signalWaits.filter(wait => (wait.nodeKey === target || wait.nodeId === target || instanceKeys.has(wait.nodeKey))
17
+ && (!scoped || instanceKeys.has(wait.nodeKey))) ?? [];
18
+ const executionMetadata = dynamic?.executionMetadata.filter(item => itemMatchesAttempt(item, attempts.map(a => a.attemptId))) ?? [];
19
+ const targetKeys = new Set([
20
+ target,
21
+ ...instances.map(instance => instance.nodeKey),
22
+ ...attempts.map(attempt => attempt.nodeKey),
23
+ ...signalWaits.map(wait => wait.nodeKey),
24
+ ...frameKeys,
25
+ ]);
26
+ const filteredArtifacts = artifacts.filter(a => targetKeys.has(a.nodeKey));
27
+ const classifiedTarget = classifyTarget({
28
+ target,
29
+ staticNode: Boolean(staticNode),
30
+ dynamicNode: instances.some(i => i.nodeKey === target),
31
+ frame: frames.some(f => f.frameKey === target),
32
+ attempt: attempts.some(a => a.attemptId === target),
33
+ });
34
+ const leafArtifacts = staticNode === undefined || isLeafKind(staticNode.kind) ? filteredArtifacts : [];
35
+ return {
36
+ target: classifiedTarget,
37
+ ...(staticNode === undefined ? {} : { staticNode }),
38
+ summary: summarizeNode({
39
+ target: classifiedTarget,
40
+ run: inspection.run,
41
+ staticNode,
42
+ instances,
43
+ frames,
44
+ attempts,
45
+ signalWaits,
46
+ executionMetadata,
47
+ artifacts: leafArtifacts,
48
+ }),
49
+ instances,
50
+ frames,
51
+ attempts,
52
+ signalWaits,
53
+ executionMetadata,
54
+ artifacts: filteredArtifacts,
55
+ };
56
+ }
57
+ export async function inspectNodeExecution(inspection, target, context = [], loadTelemetryArtifact) {
58
+ const response = inspectNode(inspection, target, [], context);
59
+ const progress = latestAgentProgress(inspection, response, target, context.length > 0);
60
+ const agentEntries = response.executionMetadata.filter(item => item.kind === "agent_attempt");
61
+ const agentEntry = latestBy(progress?.attemptId ? agentEntries.filter(item => item.attemptId === progress.attemptId) : agentEntries, item => item.createdAt);
62
+ const metadata = agentEntry?.metadata;
63
+ const turns = agentTurns(metadata);
64
+ const progressToolCalls = toolCallsFromProgress(progress);
65
+ const metadataToolCalls = loadTelemetryArtifact && turns.length > 0
66
+ ? (await Promise.all(turns.map(turn => toolCallsForTurn(turn, loadTelemetryArtifact)))).flat().slice(-3)
67
+ : undefined;
68
+ const lastToolCalls = metadataToolCalls ?? progressToolCalls ?? [];
69
+ const contextWindow = contextWindowFromProgress(progress) ?? latestContextWindow(turns);
70
+ const tokenUsage = aggregateTokenUsage(turns) ?? tokenUsageFromProgress(progress);
71
+ const toolCallCount = totalToolCallCount(turns) ?? toolCallCountFromProgress(progress);
72
+ const available = progress !== undefined || agentEntry !== undefined;
73
+ const attemptId = progress?.attemptId ?? agentEntry?.attemptId;
74
+ return {
75
+ target: response.target,
76
+ ...(response.summary.nodeId ? { nodeId: response.summary.nodeId } : {}),
77
+ ...(response.summary.nodeKey ? { nodeKey: response.summary.nodeKey } : {}),
78
+ ...(attemptId ? { attemptId } : {}),
79
+ available,
80
+ ...(available ? {} : { reason: "No agent execution metadata exists for the selected scope." }),
81
+ summary: { ...agentExecutionSummary(metadata), ...agentProgressSummary(progress) },
82
+ ...(progress?.updatedAt ? { lastActiveAt: progress.updatedAt } : {}),
83
+ ...(contextWindow ? { contextWindow } : {}),
84
+ ...(tokenUsage ? { tokenUsage } : {}),
85
+ ...(progress?.output ? { output: progress.output } : {}),
86
+ ...(toolCallCount === undefined ? {} : { toolCallCount }),
87
+ lastToolCalls,
88
+ };
89
+ }
90
+ function summarizeNode(input) {
91
+ const latestAttempt = latestBy(input.attempts, attempt => attempt.startedAt);
92
+ const latestInstance = latestBy(input.instances, instance => instance.updatedAt);
93
+ const latestFrame = latestBy(input.frames, frame => frame.updatedAt);
94
+ const signalWait = latestBy(input.signalWaits, wait => wait.updatedAt ?? wait.createdAt);
95
+ const promptArtifact = input.artifacts.find(artifact => artifact.relativePath.endsWith("prompt.md"))
96
+ ?? input.artifacts.find(artifact => artifact.relativePath.includes("/prompt."));
97
+ const authoredPrompt = input.staticNode?.prompt ? renderTemplate(input.staticNode.prompt) : undefined;
98
+ const taskMetadata = latestBy(input.executionMetadata.filter(item => item.kind === "task_attempt"), item => item.createdAt)?.metadata;
99
+ const taskInput = metadataRecord(taskMetadata)?.input;
100
+ const authoredInput = input.staticNode?.kind === "task" && input.staticNode.input
101
+ ? Object.fromEntries(Object.entries(input.staticNode.input).map(([key, expr]) => [key, renderExpr(expr)]))
102
+ : undefined;
103
+ const nodeId = latestInstance?.nodeId ?? latestAttempt?.nodeId ?? latestFrame?.nodeId ?? input.staticNode?.nodeId;
104
+ const nodeKey = latestInstance?.nodeKey ?? latestAttempt?.nodeKey;
105
+ const nodeStatus = latestInstance?.status ?? latestAttempt?.status ?? latestFrame?.status ?? (input.staticNode ? "not_started" : undefined);
106
+ const runDuration = durationMs(input.run.createdAt, input.run.updatedAt);
107
+ return {
108
+ targetKind: input.target.kind,
109
+ targetId: input.target.id,
110
+ runStatus: input.run.status,
111
+ runStartedAt: input.run.createdAt,
112
+ ...(isTerminalRunStatus(input.run.status) ? {
113
+ runFinishedAt: input.run.updatedAt,
114
+ ...(runDuration === undefined ? {} : { runDurationMs: runDuration }),
115
+ } : {}),
116
+ ...(input.staticNode ? { staticKind: input.staticNode.kind, staticOrder: input.staticNode.order } : {}),
117
+ ...(nodeId !== undefined ? { nodeId } : {}),
118
+ ...(nodeKey !== undefined ? { nodeKey } : {}),
119
+ ...(latestFrame?.frameKey ? { frameKey: latestFrame.frameKey } : {}),
120
+ ...(nodeStatus !== undefined ? { nodeStatus } : {}),
121
+ ...(taskInput !== undefined ? { input: { kind: "runtime", value: taskInput } } : authoredInput !== undefined ? { input: { kind: "authored", value: authoredInput } } : {}),
122
+ ...(latestInstance?.output !== undefined ? { output: latestInstance.output } : latestAttempt?.result !== undefined ? { output: latestAttempt.result } : latestFrame?.result !== undefined ? { output: latestFrame.result } : {}),
123
+ ...(latestInstance?.error !== undefined ? { error: latestInstance.error } : latestAttempt?.error !== undefined ? { error: latestAttempt.error } : latestFrame?.error !== undefined ? { error: latestFrame.error } : {}),
124
+ ...(signalWait?.renderedPrompt
125
+ ? { prompt: { kind: "signal", text: signalWait.renderedPrompt } }
126
+ : promptArtifact
127
+ ? { prompt: { kind: "artifact", artifactId: promptArtifact.id, relativePath: promptArtifact.relativePath, ...(promptArtifact.mediaType !== undefined ? { mediaType: promptArtifact.mediaType } : {}) } }
128
+ : authoredPrompt !== undefined
129
+ ? { prompt: { kind: input.staticNode?.kind === "signal" ? "signal" : "authored", text: authoredPrompt } }
130
+ : {}),
131
+ ...(latestAttempt ? {
132
+ latestAttempt: {
133
+ attemptId: latestAttempt.attemptId,
134
+ attemptNo: latestAttempt.attemptNo,
135
+ status: latestAttempt.status,
136
+ startedAt: latestAttempt.startedAt,
137
+ ...(latestAttempt.finishedAt ? { finishedAt: latestAttempt.finishedAt } : {}),
138
+ ...(latestAttempt.error !== undefined ? { error: latestAttempt.error } : {}),
139
+ ...(latestAttempt.result !== undefined ? { result: latestAttempt.result } : {}),
140
+ },
141
+ } : {}),
142
+ artifacts: input.artifacts,
143
+ };
144
+ }
145
+ function classifyTarget(input) {
146
+ if (input.attempt)
147
+ return { kind: "attempt", id: input.target };
148
+ if (input.dynamicNode)
149
+ return { kind: "dynamic-node", id: input.target };
150
+ if (input.frame)
151
+ return { kind: "frame", id: input.target };
152
+ if (input.staticNode)
153
+ return { kind: "static-node", id: input.target };
154
+ return { kind: "unknown", id: input.target };
155
+ }
156
+ function itemMatchesAttempt(item, attemptIds) {
157
+ return item.attemptId !== undefined && attemptIds.includes(item.attemptId);
158
+ }
159
+ function pathMatchesContext(path, context) {
160
+ if (!Array.isArray(path))
161
+ return context.length === 0;
162
+ return context.every(selection => path.some(segment => segmentMatchesSelection(segment, selection)));
163
+ }
164
+ function segmentMatchesSelection(segment, selection) {
165
+ if (!segment || typeof segment !== "object")
166
+ return false;
167
+ const record = segment;
168
+ if (selection.kind === "fanout") {
169
+ return record.kind === "fanout"
170
+ && record.nodeId === selection.nodeId
171
+ && (selection.itemIndex === undefined || record.itemIndex === selection.itemIndex)
172
+ && (selection.itemKey === undefined || String(record.itemKey) === String(selection.itemKey));
173
+ }
174
+ return record.kind === "loop"
175
+ && record.nodeId === selection.nodeId
176
+ && record.iter === selection.iteration;
177
+ }
178
+ function metadataRecord(value) {
179
+ return value && typeof value === "object" && !Array.isArray(value) ? value : undefined;
180
+ }
181
+ function agentTurns(metadata) {
182
+ const turns = metadataRecord(metadata)?.turns;
183
+ if (!Array.isArray(turns))
184
+ return [];
185
+ return turns.flatMap(turn => {
186
+ const record = metadataRecord(turn);
187
+ return record ? [record] : [];
188
+ });
189
+ }
190
+ function agentExecutionSummary(metadata) {
191
+ const record = metadataRecord(metadata);
192
+ if (!record)
193
+ return {};
194
+ return {
195
+ ...(typeof record.status === "string" ? { status: record.status } : {}),
196
+ ...(typeof record.sessionName === "string" ? { sessionName: record.sessionName } : {}),
197
+ ...(typeof record.turnCount === "number" ? { turnCount: record.turnCount } : {}),
198
+ ...(typeof record.message === "string" ? { message: record.message } : {}),
199
+ };
200
+ }
201
+ function latestAgentProgress(inspection, response, target, scoped) {
202
+ const attemptIds = new Set(response.attempts.map(attempt => attempt.attemptId));
203
+ const attemptScoped = scoped || response.target.kind === "attempt";
204
+ const nodeKeys = new Set([
205
+ ...response.instances.map(instance => instance.nodeKey),
206
+ ...response.attempts.map(attempt => attempt.nodeKey),
207
+ response.summary.nodeKey,
208
+ ].filter((value) => typeof value === "string"));
209
+ return latestBy((inspection.run.dynamic?.progress ?? []).filter(progress => {
210
+ if (progress.kind !== "agent")
211
+ return false;
212
+ if (progress.attemptId !== undefined) {
213
+ if (attemptIds.has(progress.attemptId))
214
+ return true;
215
+ if (attemptScoped)
216
+ return false;
217
+ }
218
+ if (attemptScoped)
219
+ return false;
220
+ if (nodeKeys.has(progress.nodeKey))
221
+ return true;
222
+ if (scoped)
223
+ return false;
224
+ return progress.nodeKey === target || progress.nodeId === target;
225
+ }), progress => progress.updatedAt);
226
+ }
227
+ function agentProgressSummary(progress) {
228
+ if (!progress)
229
+ return {};
230
+ return {
231
+ status: progress.status,
232
+ ...(progress.message ? { message: progress.message } : {}),
233
+ };
234
+ }
235
+ function contextWindowFromProgress(progress) {
236
+ const context = metadataRecord(progress?.context);
237
+ if (!context)
238
+ return undefined;
239
+ return contextWindowFromRecord(context);
240
+ }
241
+ function latestContextWindow(turns) {
242
+ const context = [...turns].reverse()
243
+ .map(turn => metadataRecord(metadataRecord(turn.telemetry)?.context))
244
+ .find(Boolean);
245
+ if (!context)
246
+ return undefined;
247
+ return contextWindowFromRecord(context);
248
+ }
249
+ function contextWindowFromRecord(context) {
250
+ const used = numberField(context.used);
251
+ const size = numberField(context.size);
252
+ const updatedAt = stringField(context.updatedAt);
253
+ if (used === undefined && size === undefined && updatedAt === undefined)
254
+ return undefined;
255
+ return {
256
+ ...(used === undefined ? {} : { used }),
257
+ ...(size === undefined ? {} : { size }),
258
+ ...(used !== undefined && size !== undefined && size > 0 ? { percent: Math.round((used / size) * 100) } : {}),
259
+ ...(updatedAt ? { updatedAt } : {}),
260
+ };
261
+ }
262
+ function tokenUsageFromProgress(progress) {
263
+ const usage = metadataRecord(progress?.tokenUsage);
264
+ if (!usage)
265
+ return undefined;
266
+ return tokenUsageFromRecord(usage);
267
+ }
268
+ function aggregateTokenUsage(turns) {
269
+ let source;
270
+ let inputTokens = 0;
271
+ let outputTokens = 0;
272
+ let totalTokens = 0;
273
+ let hasUsage = false;
274
+ for (const turn of turns) {
275
+ const usage = metadataRecord(metadataRecord(turn.telemetry)?.tokenUsage);
276
+ if (!usage)
277
+ continue;
278
+ hasUsage = true;
279
+ if (typeof usage.source === "string")
280
+ source = usage.source;
281
+ inputTokens += numberField(usage.inputTokens) ?? 0;
282
+ outputTokens += numberField(usage.outputTokens) ?? 0;
283
+ totalTokens += numberField(usage.totalTokens) ?? 0;
284
+ }
285
+ return hasUsage ? {
286
+ ...(source ? { source } : {}),
287
+ inputTokens,
288
+ outputTokens,
289
+ totalTokens,
290
+ } : undefined;
291
+ }
292
+ function tokenUsageFromRecord(usage) {
293
+ const source = stringField(usage.source);
294
+ const inputTokens = numberField(usage.inputTokens);
295
+ const outputTokens = numberField(usage.outputTokens);
296
+ const totalTokens = numberField(usage.totalTokens);
297
+ if (source === undefined && inputTokens === undefined && outputTokens === undefined && totalTokens === undefined)
298
+ return undefined;
299
+ return {
300
+ ...(source ? { source } : {}),
301
+ ...(inputTokens === undefined ? {} : { inputTokens }),
302
+ ...(outputTokens === undefined ? {} : { outputTokens }),
303
+ ...(totalTokens === undefined ? {} : { totalTokens }),
304
+ };
305
+ }
306
+ function toolCallCountFromProgress(progress) {
307
+ return numberField(metadataRecord(progress?.tools)?.totalToolCallCount);
308
+ }
309
+ function totalToolCallCount(turns) {
310
+ let total = 0;
311
+ let hasTools = false;
312
+ for (const turn of turns) {
313
+ const count = numberField(metadataRecord(metadataRecord(turn.telemetry)?.tools)?.totalToolCallCount);
314
+ if (count === undefined)
315
+ continue;
316
+ hasTools = true;
317
+ total += count;
318
+ }
319
+ return hasTools ? total : undefined;
320
+ }
321
+ function toolCallsFromProgress(progress) {
322
+ const tools = metadataRecord(progress?.tools);
323
+ const calls = tools?.lastCalls;
324
+ if (!tools || !Array.isArray(calls))
325
+ return undefined;
326
+ const turn = numberField(tools.turn) ?? 0;
327
+ return calls.flatMap(call => {
328
+ const record = metadataRecord(call);
329
+ if (!record)
330
+ return [];
331
+ return [toolCallFromRecord(record, turn, "progress")];
332
+ });
333
+ }
334
+ async function toolCallsForTurn(turn, loadTelemetryArtifact) {
335
+ const turnNo = numberField(turn.turn) ?? 0;
336
+ const telemetry = metadataRecord(await loadTelemetryArtifact(turn.telemetryArtifact));
337
+ const calls = metadataRecord(metadataRecord(telemetry?.telemetry)?.tools)?.calls;
338
+ if (!Array.isArray(calls))
339
+ return [];
340
+ return calls.flatMap(call => {
341
+ const record = metadataRecord(call);
342
+ if (!record)
343
+ return [];
344
+ return [toolCallFromRecord(record, turnNo, "artifact")];
345
+ });
346
+ }
347
+ function toolCallFromRecord(record, turn, previewMode) {
348
+ const startedAt = stringField(record.startedAt);
349
+ const updatedAt = stringField(record.updatedAt);
350
+ const completedAt = stringField(record.completedAt);
351
+ const toolCallId = stringField(record.toolCallId);
352
+ const toolName = stringField(record.toolName);
353
+ const status = stringField(record.status);
354
+ const inputPreview = previewMode === "progress" ? stringField(record.inputPreview) : previewField(record.input);
355
+ const outputPreview = previewMode === "artifact" ? previewField(record.output) : undefined;
356
+ const duration = durationMs(startedAt, completedAt ?? "");
357
+ return {
358
+ turn,
359
+ ...(toolCallId ? { toolCallId } : {}),
360
+ ...(toolName ? { toolName } : {}),
361
+ ...(status ? { status } : {}),
362
+ ...(startedAt ? { startedAt } : {}),
363
+ ...(updatedAt ? { updatedAt } : {}),
364
+ ...(completedAt ? { completedAt } : {}),
365
+ ...(duration === undefined ? {} : { durationMs: duration }),
366
+ ...(inputPreview ? { inputPreview } : {}),
367
+ ...(outputPreview ? { outputPreview } : {}),
368
+ };
369
+ }
370
+ function previewField(value) {
371
+ const record = metadataRecord(value);
372
+ if (!record)
373
+ return undefined;
374
+ return typeof record.preview === "string" ? record.preview : undefined;
375
+ }
376
+ function numberField(value) {
377
+ return typeof value === "number" && Number.isFinite(value) ? value : undefined;
378
+ }
379
+ function stringField(value) {
380
+ return typeof value === "string" && value.length > 0 ? value : undefined;
381
+ }
382
+ function durationMs(startedAt, finishedAt) {
383
+ if (!startedAt)
384
+ return undefined;
385
+ const value = Date.parse(finishedAt) - Date.parse(startedAt);
386
+ return Number.isFinite(value) && value >= 0 ? value : undefined;
387
+ }
388
+ function isTerminalRunStatus(status) {
389
+ return status === "completed" || status === "failed" || status === "canceled";
390
+ }
391
+ function latestBy(items, getValue) {
392
+ return [...items].sort((left, right) => (getValue(right) ?? "").localeCompare(getValue(left) ?? ""))[0];
393
+ }
394
+ function isLeafKind(kind) {
395
+ return kind === "task" || kind === "agent" || kind === "signal" || kind === "assert";
396
+ }
397
+ function renderTemplate(template) {
398
+ return template.parts
399
+ .map(part => (part.kind === "text" ? part.value : `\${${renderExpr(part.expr)}}`))
400
+ .join("")
401
+ .replace(/\s+/g, " ")
402
+ .trim();
403
+ }
404
+ function renderExpr(expr) {
405
+ switch (expr.kind) {
406
+ case "literal":
407
+ return renderLiteral(expr.value);
408
+ case "ref":
409
+ return expr.path.join(".");
410
+ case "var":
411
+ return [expr.id, ...expr.path].join(".");
412
+ case "array":
413
+ return `[${expr.items.map(renderExpr).join(", ")}]`;
414
+ case "object":
415
+ return `{ ${Object.entries(expr.fields).map(([key, value]) => `${key}: ${renderExpr(value)}`).join(", ")} }`;
416
+ case "template":
417
+ return `\`${renderTemplate(expr.template)}\``;
418
+ case "lambda":
419
+ return `${expr.params.map(param => param.id).join(", ")} => ${renderExpr(expr.body)}`;
420
+ case "call":
421
+ return `${expr.fn}(${expr.args.map(renderExpr).join(", ")})`;
422
+ }
423
+ }
424
+ function renderLiteral(value) {
425
+ if (typeof value === "string")
426
+ return JSON.stringify(value);
427
+ if (value === null)
428
+ return "null";
429
+ if (Array.isArray(value))
430
+ return `[${value.map(renderLiteral).join(", ")}]`;
431
+ if (typeof value === "object")
432
+ return `{ ${Object.entries(value).map(([key, item]) => `${key}: ${renderLiteral(item)}`).join(", ")} }`;
433
+ return String(value);
434
+ }
435
+ //# sourceMappingURL=node-inspection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-inspection.js","sourceRoot":"","sources":["../../src/server/node-inspection.ts"],"names":[],"mappings":"AAgHA,MAAM,UAAU,WAAW,CAAC,UAAyB,EAAE,MAAc,EAAE,SAA2B,EAAE,UAAiC,EAAE;IACrI,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;IACvC,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAElC,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAC9C,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,kBAAkB,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAC3I,IAAI,EAAE,CAAC,CAAC;IACT,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAE1E,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC,MAAM,CACnC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC;WACtF,CAAC,CAAC,MAAM,IAAI,kBAAkB,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAClE,IAAI,EAAE,CAAC;IACR,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE/D,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QAClD,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,KAAK,MAAM,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnJ,IAAI,CAAC,aAAa;YAAE,OAAO,KAAK,CAAC;QACjC,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC,CAAC,IAAI,EAAE,CAAC;IAET,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,CAAC,MAAM,CAC7C,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;WACxF,CAAC,CAAC,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CACjD,IAAI,EAAE,CAAC;IAER,MAAM,iBAAiB,GAAG,OAAO,EAAE,iBAAiB,CAAC,MAAM,CACzD,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CACjE,IAAI,EAAE,CAAC;IAER,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;QACzB,MAAM;QACN,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC9C,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3C,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;QACxC,GAAG,SAAS;KACb,CAAC,CAAC;IACH,MAAM,iBAAiB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,MAAM,gBAAgB,GAAG,cAAc,CAAC;QACtC,MAAM;QACN,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC;QAC/B,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC;QACtD,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC;QAC9C,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC;KACpD,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvG,OAAO;QACL,MAAM,EAAE,gBAAgB;QACxB,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;QACnD,OAAO,EAAE,aAAa,CAAC;YACrB,MAAM,EAAE,gBAAgB;YACxB,GAAG,EAAE,UAAU,CAAC,GAAG;YACnB,UAAU;YACV,SAAS;YACT,MAAM;YACN,QAAQ;YACR,WAAW;YACX,iBAAiB;YACjB,SAAS,EAAE,aAAa;SACzB,CAAC;QACF,SAAS;QACT,MAAM;QACN,QAAQ;QACR,WAAW;QACX,iBAAiB;QACjB,SAAS,EAAE,iBAAiB;KAC7B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,UAAyB,EACzB,MAAc,EACd,UAAiC,EAAE,EACnC,qBAA8E;IAE9E,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvF,MAAM,YAAY,GAAG,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;IAC9F,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7J,MAAM,QAAQ,GAAG,UAAU,EAAE,QAAQ,CAAC;IACtC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,qBAAqB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QACjE,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxG,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,aAAa,GAAG,iBAAiB,IAAI,iBAAiB,IAAI,EAAE,CAAC;IACnE,MAAM,aAAa,GAAG,yBAAyB,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACxF,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAClF,MAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IACvF,MAAM,SAAS,GAAG,QAAQ,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,CAAC;IACrE,MAAM,SAAS,GAAG,QAAQ,EAAE,SAAS,IAAI,UAAU,EAAE,SAAS,CAAC;IAC/D,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,SAAS;QACT,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,4DAA4D,EAAE,CAAC;QAC9F,OAAO,EAAE,EAAE,GAAG,qBAAqB,CAAC,QAAQ,CAAC,EAAE,GAAG,oBAAoB,CAAC,QAAQ,CAAC,EAAE;QAClF,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;QACzD,aAAa;KACd,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAUtB;IACC,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7E,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjF,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IACzF,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;WAC/F,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAClF,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtG,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;IACtI,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;IACtD,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK;QAC/E,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1G,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,MAAM,GAAG,cAAc,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC;IAClH,MAAM,OAAO,GAAG,cAAc,EAAE,OAAO,IAAI,aAAa,EAAE,OAAO,CAAC;IAClE,MAAM,UAAU,GAAG,cAAc,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC5I,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzE,OAAO;QACL,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;QAC7B,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;QACzB,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM;QAC3B,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS;QACjC,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1C,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS;YAClC,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;SACrE,CAAC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvG,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1K,GAAG,CAAC,cAAc,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChO,GAAG,CAAC,cAAc,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvN,GAAG,CAAC,UAAU,EAAE,cAAc;YAC5B,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,cAAc,EAAE,EAAE;YACjE,CAAC,CAAC,cAAc;gBACd,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE,cAAc,CAAC,YAAY,EAAE,GAAG,CAAC,cAAc,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxM,CAAC,CAAC,cAAc,KAAK,SAAS;oBAC5B,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE;oBAC3G,CAAC,CAAC,EAAE,CAAC;QACT,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;YAClB,aAAa,EAAE;gBACb,SAAS,EAAE,aAAa,CAAC,SAAS;gBAClC,SAAS,EAAE,aAAa,CAAC,SAAS;gBAClC,MAAM,EAAE,aAAa,CAAC,MAAM;gBAC5B,SAAS,EAAE,aAAa,CAAC,SAAS;gBAClC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7E,GAAG,CAAC,aAAa,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5E,GAAG,CAAC,aAAa,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChF;SACF,CAAC,CAAC,CAAC,EAAE,CAAC;QACP,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAMvB;IACC,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IAChE,IAAI,KAAK,CAAC,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IACzE,IAAI,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IAC5D,IAAI,KAAK,CAAC,UAAU;QAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IACvE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,kBAAkB,CAAC,IAA4B,EAAE,UAAoB;IAC5E,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAa,EAAE,OAA8B;IACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;IACtD,OAAO,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AACvG,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAgB,EAAE,SAAwC;IACzF,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC1D,MAAM,MAAM,GAAG,OAAkC,CAAC;IAClD,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;eAC1B,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;eAClC,CAAC,SAAS,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,CAAC;eAC/E,CAAC,SAAS,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,KAAK,MAAM;WACxB,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;WAClC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,SAAS,CAAC;AAC3C,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAgC,CAAC,CAAC,CAAC,SAAS,CAAC;AACpH,CAAC;AAED,SAAS,UAAU,CAAC,QAAiB;IACnC,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC1B,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAiB;IAC9C,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO;QACL,GAAG,CAAC,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,GAAG,CAAC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3E,CAAC;AACJ,CAAC;AAID,SAAS,mBAAmB,CAAC,UAAyB,EAAE,QAAgC,EAAE,MAAc,EAAE,MAAe;IACvH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAChF,MAAM,aAAa,GAAG,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;IACnE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;QACvB,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvD,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;QACpD,QAAQ,CAAC,OAAO,CAAC,OAAO;KACzB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;IACjE,OAAO,QAAQ,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;QACzE,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;QAC5C,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,OAAO,IAAI,CAAC;YACpD,IAAI,aAAa;gBAAE,OAAO,KAAK,CAAC;QAClC,CAAC;QACD,IAAI,aAAa;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAChD,IAAI,MAAM;YAAE,OAAO,KAAK,CAAC;QACzB,OAAO,QAAQ,CAAC,OAAO,KAAK,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC;IACnE,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAkC;IAC9D,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3D,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAkC;IACnE,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAgC;IAC3D,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE;SACjC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;SACpE,IAAI,CAAC,OAAO,CAAC,CAAC;IACjB,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAgC;IAC/D,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1F,OAAO;QACL,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7G,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAkC;IAChE,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAgC;IAC3D,IAAI,MAA0B,CAAC;IAC/B,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;QACzE,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,QAAQ,GAAG,IAAI,CAAC;QAChB,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;YAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5D,WAAW,IAAI,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACnD,YAAY,IAAI,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACrD,WAAW,IAAI,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,QAAQ,CAAC,CAAC,CAAC;QAChB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,WAAW;QACX,YAAY;QACZ,WAAW;KACZ,CAAC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA8B;IAC1D,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACnD,IAAI,MAAM,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACnI,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QACrD,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;QACvD,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAkC;IACnE,OAAO,WAAW,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAgC;IAC1D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;QACrG,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,QAAQ,GAAG,IAAI,CAAC;QAChB,KAAK,IAAI,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAkC;IAC/D,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,KAAK,EAAE,SAAS,CAAC;IAC/B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC1B,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,IAA6B,EAC7B,qBAA6E;IAE7E,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,qBAAqB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACtF,MAAM,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IACjF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC1B,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA+B,EAAE,IAAY,EAAE,WAAoC;IAC7G,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChH,MAAM,aAAa,GAAG,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3F,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;IAC1D,OAAO;QACL,IAAI;QACJ,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;QAC3D,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,OAAO,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC;AAED,SAAS,UAAU,CAAC,SAA6B,EAAE,UAAkB;IACnE,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc;IACzC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,UAAU,CAAC;AAChF,CAAC;AAED,SAAS,QAAQ,CAAI,KAAU,EAAE,QAAyC;IACxE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1G,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,CAAC;AACvF,CAAC;AAED,SAAS,cAAc,CAAC,QAAoB;IAC1C,OAAO,QAAQ,CAAC,KAAK;SAClB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACjF,IAAI,CAAC,EAAE,CAAC;SACR,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,KAAK,KAAK;YACR,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,KAAK,OAAO;YACV,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACtD,KAAK,QAAQ;YACX,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/G,KAAK,UAAU;YACb,OAAO,KAAK,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChD,KAAK,QAAQ;YACX,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxF,KAAK,MAAM;YACT,OAAO,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACjE,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAgB;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5D,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC5E,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACvI,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { MiddlewareHandler } from "hono";
2
+ export type AccessPolicy = {
3
+ token?: string;
4
+ tokenHash?: string;
5
+ };
6
+ export type AccessPolicyOptions = {
7
+ enabled?: boolean;
8
+ token?: string;
9
+ };
10
+ export declare function createAccessPolicy(options?: AccessPolicyOptions): AccessPolicy;
11
+ export declare function requireToken(policy: AccessPolicy): MiddlewareHandler;
12
+ //# sourceMappingURL=security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/server/security.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,YAAY,CAIlF;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,iBAAiB,CAsBpE"}