@nodetool-ai/execution 0.8.1 → 0.8.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 (158) hide show
  1. package/README.md +23 -127
  2. package/dist/.nodetool-build-stamp +1 -1
  3. package/dist/app-debug/app-spec.d.ts.map +1 -1
  4. package/dist/app-debug/app-spec.js +3 -0
  5. package/dist/app-debug/app-spec.js.map +1 -1
  6. package/dist/app-debug/application-target.d.ts +1 -1
  7. package/dist/app-debug/application-target.d.ts.map +1 -1
  8. package/dist/app-debug/application-target.js +5 -3
  9. package/dist/app-debug/application-target.js.map +1 -1
  10. package/dist/app-debug/index.d.ts +4 -2
  11. package/dist/app-debug/index.d.ts.map +1 -1
  12. package/dist/app-debug/index.js +3 -2
  13. package/dist/app-debug/index.js.map +1 -1
  14. package/dist/app-debug/run-recording.d.ts +20 -0
  15. package/dist/app-debug/run-recording.d.ts.map +1 -0
  16. package/dist/app-debug/run-recording.js +105 -0
  17. package/dist/app-debug/run-recording.js.map +1 -0
  18. package/dist/app-debug/runtime.d.ts +2 -0
  19. package/dist/app-debug/runtime.d.ts.map +1 -1
  20. package/dist/app-debug/runtime.js +14 -3
  21. package/dist/app-debug/runtime.js.map +1 -1
  22. package/dist/app-debug/simulate.d.ts +10 -1
  23. package/dist/app-debug/simulate.d.ts.map +1 -1
  24. package/dist/app-debug/simulate.js +57 -26
  25. package/dist/app-debug/simulate.js.map +1 -1
  26. package/dist/app-debug/summarize.d.ts +1 -0
  27. package/dist/app-debug/summarize.d.ts.map +1 -1
  28. package/dist/app-debug/summarize.js +1 -0
  29. package/dist/app-debug/summarize.js.map +1 -1
  30. package/dist/app-debug/types.d.ts +6 -4
  31. package/dist/app-debug/types.d.ts.map +1 -1
  32. package/dist/app-run-generation.d.ts +8 -0
  33. package/dist/app-run-generation.d.ts.map +1 -0
  34. package/dist/app-run-generation.js +61 -0
  35. package/dist/app-run-generation.js.map +1 -0
  36. package/dist/browser-app-run.d.ts +10 -0
  37. package/dist/browser-app-run.d.ts.map +1 -0
  38. package/dist/browser-app-run.js +108 -0
  39. package/dist/browser-app-run.js.map +1 -0
  40. package/dist/browser-run-spans.d.ts +4 -0
  41. package/dist/browser-run-spans.d.ts.map +1 -0
  42. package/dist/browser-run-spans.js +115 -0
  43. package/dist/browser-run-spans.js.map +1 -0
  44. package/dist/browser-trace-policy.d.ts +12 -0
  45. package/dist/browser-trace-policy.d.ts.map +1 -0
  46. package/dist/browser-trace-policy.js +40 -0
  47. package/dist/browser-trace-policy.js.map +1 -0
  48. package/dist/cost-ledger.d.ts +3 -0
  49. package/dist/cost-ledger.d.ts.map +1 -1
  50. package/dist/cost-ledger.js +23 -2
  51. package/dist/cost-ledger.js.map +1 -1
  52. package/dist/debug/types.d.ts +1 -0
  53. package/dist/debug/types.d.ts.map +1 -1
  54. package/dist/generation-lifecycle.d.ts +5 -4
  55. package/dist/generation-lifecycle.d.ts.map +1 -1
  56. package/dist/generation-lifecycle.js +71 -10
  57. package/dist/generation-lifecycle.js.map +1 -1
  58. package/dist/generation-recovery-worker.d.ts.map +1 -1
  59. package/dist/generation-recovery-worker.js +2 -0
  60. package/dist/generation-recovery-worker.js.map +1 -1
  61. package/dist/generation-tracker.d.ts +2 -15
  62. package/dist/generation-tracker.d.ts.map +1 -1
  63. package/dist/generation-tracker.js +92 -6
  64. package/dist/generation-tracker.js.map +1 -1
  65. package/dist/index.d.ts +9 -2
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +6 -1
  68. package/dist/index.js.map +1 -1
  69. package/dist/js-script-debug/index.d.ts +1 -0
  70. package/dist/js-script-debug/index.d.ts.map +1 -1
  71. package/dist/js-script-debug/index.js +1 -0
  72. package/dist/js-script-debug/index.js.map +1 -1
  73. package/dist/js-script-debug/type-check.d.ts +16 -0
  74. package/dist/js-script-debug/type-check.d.ts.map +1 -0
  75. package/dist/js-script-debug/type-check.js +139 -0
  76. package/dist/js-script-debug/type-check.js.map +1 -0
  77. package/dist/js-script-debug/validate.d.ts +8 -0
  78. package/dist/js-script-debug/validate.d.ts.map +1 -1
  79. package/dist/js-script-debug/validate.js +4 -0
  80. package/dist/js-script-debug/validate.js.map +1 -1
  81. package/dist/message-stream.d.ts +1 -32
  82. package/dist/message-stream.d.ts.map +1 -1
  83. package/dist/message-stream.js +1 -57
  84. package/dist/message-stream.js.map +1 -1
  85. package/dist/preflight.d.ts +43 -2
  86. package/dist/preflight.d.ts.map +1 -1
  87. package/dist/preflight.js +78 -4
  88. package/dist/preflight.js.map +1 -1
  89. package/dist/run-trace-store.d.ts +9 -0
  90. package/dist/run-trace-store.d.ts.map +1 -0
  91. package/dist/run-trace-store.js +57 -0
  92. package/dist/run-trace-store.js.map +1 -0
  93. package/dist/runs.d.ts +16 -0
  94. package/dist/runs.d.ts.map +1 -0
  95. package/dist/runs.js +431 -0
  96. package/dist/runs.js.map +1 -0
  97. package/dist/service/app-debug-service.d.ts +4 -2
  98. package/dist/service/app-debug-service.d.ts.map +1 -1
  99. package/dist/service/app-debug-service.js +73 -31
  100. package/dist/service/app-debug-service.js.map +1 -1
  101. package/dist/service/app-operation.d.ts +38 -0
  102. package/dist/service/app-operation.d.ts.map +1 -0
  103. package/dist/service/app-operation.js +269 -0
  104. package/dist/service/app-operation.js.map +1 -0
  105. package/dist/service/app-run-server.d.ts +3 -1
  106. package/dist/service/app-run-server.d.ts.map +1 -1
  107. package/dist/service/app-run-server.js +22 -14
  108. package/dist/service/app-run-server.js.map +1 -1
  109. package/dist/service/index.d.ts +4 -0
  110. package/dist/service/index.d.ts.map +1 -1
  111. package/dist/service/index.js +2 -0
  112. package/dist/service/index.js.map +1 -1
  113. package/dist/service/run-trace-lifecycle.d.ts +34 -0
  114. package/dist/service/run-trace-lifecycle.d.ts.map +1 -0
  115. package/dist/service/run-trace-lifecycle.js +135 -0
  116. package/dist/service/run-trace-lifecycle.js.map +1 -0
  117. package/dist/service/workflow-run.d.ts +5 -16
  118. package/dist/service/workflow-run.d.ts.map +1 -1
  119. package/dist/service/workflow-run.js +54 -52
  120. package/dist/service/workflow-run.js.map +1 -1
  121. package/dist/session.d.ts +1 -1
  122. package/dist/session.d.ts.map +1 -1
  123. package/dist/session.js +109 -100
  124. package/dist/session.js.map +1 -1
  125. package/dist/sketch-debug/markdown.d.ts.map +1 -1
  126. package/dist/sketch-debug/markdown.js +1 -0
  127. package/dist/sketch-debug/markdown.js.map +1 -1
  128. package/dist/sketch-debug/report.d.ts.map +1 -1
  129. package/dist/sketch-debug/report.js +4 -4
  130. package/dist/sketch-debug/report.js.map +1 -1
  131. package/dist/sketch-debug/types.d.ts +2 -0
  132. package/dist/sketch-debug/types.d.ts.map +1 -1
  133. package/dist/timeline-debug/frame-geometry.d.ts +118 -0
  134. package/dist/timeline-debug/frame-geometry.d.ts.map +1 -0
  135. package/dist/timeline-debug/frame-geometry.js +231 -0
  136. package/dist/timeline-debug/frame-geometry.js.map +1 -0
  137. package/dist/timeline-debug/index.d.ts +1 -0
  138. package/dist/timeline-debug/index.d.ts.map +1 -1
  139. package/dist/timeline-debug/index.js +1 -0
  140. package/dist/timeline-debug/index.js.map +1 -1
  141. package/dist/timeline-debug/legibility.d.ts +8 -4
  142. package/dist/timeline-debug/legibility.d.ts.map +1 -1
  143. package/dist/timeline-debug/legibility.js +47 -18
  144. package/dist/timeline-debug/legibility.js.map +1 -1
  145. package/dist/timeline-debug/score.d.ts +110 -0
  146. package/dist/timeline-debug/score.d.ts.map +1 -0
  147. package/dist/timeline-debug/score.js +231 -0
  148. package/dist/timeline-debug/score.js.map +1 -0
  149. package/dist/timeline-debug/showcase.d.ts +12 -0
  150. package/dist/timeline-debug/showcase.d.ts.map +1 -1
  151. package/dist/timeline-debug/showcase.js +669 -13
  152. package/dist/timeline-debug/showcase.js.map +1 -1
  153. package/dist/timeline-debug/validate.d.ts.map +1 -1
  154. package/dist/timeline-debug/validate.js +121 -2
  155. package/dist/timeline-debug/validate.js.map +1 -1
  156. package/dist/types.d.ts +18 -10
  157. package/dist/types.d.ts.map +1 -1
  158. package/package.json +13 -13
package/dist/session.js CHANGED
@@ -1,21 +1,15 @@
1
- /**
2
- * `ExecutionSession` — the one place that constructs `WorkflowRunner`.
3
- *
4
- * See the package README for the wiring-inventory table this facade is
5
- * derived from (Track A / task A1 of docs/RELIABILITY_TASKS.md) and
6
- * docs/RELIABILITY_ARCHITECTURE.md §7 for the target API shape.
7
- */
1
+ import { withRegisteredRunTrace, settleRegisteredRunTrace } from "./service/run-trace-lifecycle.js";
2
+ /** Canonical lifecycle for top-level Node/server workflow runs. */
8
3
  import { randomUUID } from "node:crypto";
9
4
  import { createLogger } from "@nodetool-ai/config";
10
5
  import { hydrateGraphNodeFlags } from "@nodetool-ai/node-sdk";
11
- import { Graph, WorkflowRunner, withExplicitNodeFlags } from "@nodetool-ai/kernel";
12
- import { PERMISSION_GATE_CONTEXT_KEY, connectPythonBridgeForGraph, headlessGate } from "@nodetool-ai/runtime";
6
+ import { Graph, WorkflowRunner, withExplicitNodeFlags, MessageStream } from "@nodetool-ai/kernel";
7
+ import { PERMISSION_GATE_CONTEXT_KEY, inAppRunCostAccount, connectPythonBridgeForGraph, headlessGate } from "@nodetool-ai/runtime";
13
8
  import { createExecutorResolver } from "./executor-resolver.js";
14
9
  import { WORKFLOW_RUN_HOST, buildWorkspaceExecutionContext } from "./service/workflow-workspace.js";
15
10
  import { normalizeGraph } from "./normalize-graph.js";
16
11
  import { assertPreflight } from "./preflight.js";
17
12
  import { rewriteOutputNames } from "./output-names.js";
18
- import { MessageStream } from "./message-stream.js";
19
13
  import { attachRunCostLedger, nodeTypeLookup } from "./cost-ledger.js";
20
14
  const log = createLogger("nodetool.execution.session");
21
15
  export class ExecutionSession {
@@ -40,16 +34,10 @@ export class ExecutionSession {
40
34
  this.stream = init.captureMessages
41
35
  ? new MessageStream(init.context, init.messageBufferLimit)
42
36
  : null;
43
- // Every generation this run pays for lands in the ledger `nodetool costs`
44
- // reads. Attached here, at the one seam all surfaces share, so image and
45
- // video spend is recorded whether the run came from the CLI, the debug
46
- // harness, an app, or the websocket server.
47
- // No `projectId`/`documentId`: a session is constructed from a graph and a
48
- // job id, and no host passes project attribution down to it. The rows carry
49
- // a null rather than being attributed to the loose bucket.
50
37
  const detachLedger = init.recordCosts
51
38
  ? attachRunCostLedger(init.context, {
52
39
  userId: init.userId,
40
+ appRunContext: init.context.appRunContext ?? undefined,
53
41
  workflowId: init.workflowId,
54
42
  projectId: init.projectId ?? null,
55
43
  documentId: init.documentId ?? null,
@@ -81,15 +69,17 @@ export class ExecutionSession {
81
69
  if (init.triggerEvent) {
82
70
  runRequest.trigger_event = init.triggerEvent;
83
71
  }
84
- this.resultPromise = init.runner
85
- .run(runRequest, init.graph)
86
- .then((result) => {
72
+ this.resultPromise = Promise.resolve()
73
+ .then(() => withRegisteredRunTrace(init.context, "workflow.run", () => inAppRunCostAccount(init.context.appRunCostAccount, () => init.runner.run(runRequest, init.graph))))
74
+ .then(async (result) => {
75
+ await settleRegisteredRunTrace(init.context, result.status === "cancelled" ? "cancelled" : result.status === "failed" ? "failed" : "completed", result.error);
87
76
  void init.lifecycle?.jobEnd({
88
77
  ...boundary,
89
78
  reason: this.endReason(result.status)
90
79
  });
91
80
  return result;
92
- }, (err) => {
81
+ }, async (err) => {
82
+ await settleRegisteredRunTrace(init.context, "failed", err instanceof Error ? err.message : String(err));
93
83
  // `run()` documents that it never rejects, but the boundary must
94
84
  // close even if that ever stops being true — an abandoned run is
95
85
  // exactly the leak `job.end` exists to prevent.
@@ -101,21 +91,14 @@ export class ExecutionSession {
101
91
  clearTimeout(this.runTimeoutHandle);
102
92
  this.runTimeoutHandle = null;
103
93
  }
104
- init.closeBridge();
105
- // The terminal message was emitted synchronously before run()
106
- // resolved (ProcessingContext.emit() calls listeners inline), so the
107
- // stream can close now without dropping it. The same holds for the
108
- // ledger: every prediction/node_update it prices was already delivered.
109
- detachLedger?.();
110
- this.stream?.close();
111
94
  try {
112
- await init.context.workspace?.cleanupScratch?.();
95
+ init.closeBridge();
113
96
  }
114
- catch (err) {
115
- log.warn("Workspace scratch cleanup failed", {
116
- jobId: this.jobId,
117
- error: err instanceof Error ? err.message : String(err)
118
- });
97
+ finally {
98
+ await detachLedger?.settled();
99
+ detachLedger?.();
100
+ this.stream?.close();
101
+ await cleanupWorkspace(init.context, this.jobId);
119
102
  }
120
103
  });
121
104
  this.resultPromise
@@ -141,15 +124,16 @@ export class ExecutionSession {
141
124
  "has no per-node timeout hook (only run-level cancel()). Omit it " +
142
125
  "or use limits.runTimeoutMs.");
143
126
  }
144
- if (!options.registry && !options.resolveExecutor) {
145
- throw new Error("ExecutionSession: either registry or resolveExecutor must be provided " +
127
+ if (!options.registry &&
128
+ !options.resolveExecutor &&
129
+ !options.executorResolverFactory) {
130
+ throw new Error("ExecutionSession: either registry or resolveExecutor (or executorResolverFactory) must be provided " +
146
131
  "(registry builds the default registry+bridge resolver; resolveExecutor " +
147
132
  "bypasses it for a host with its own resolution, e.g. the WS runner).");
148
133
  }
149
134
  const jobId = options.jobId ?? randomUUID();
150
135
  const workflowId = options.workflowId ?? null;
151
136
  const registry = options.registry;
152
- const normalized = normalizeGraph(options.graph);
153
137
  // A caller that brings no context still gets one that can reach the
154
138
  // secret store. The bare `new ProcessingContext(...)` this replaced
155
139
  // resolved no secret at all, so a graph with a provider node failed on
@@ -170,7 +154,8 @@ export class ExecutionSession {
170
154
  // headless one here. A caller that already has a user to ask — a chat
171
155
  // turn's `run_node` — set its gate before handing the context in, and
172
156
  // keeps it.
173
- if (context.get(PERMISSION_GATE_CONTEXT_KEY) === undefined) {
157
+ if (options.installHeadlessPermissionGate !== false &&
158
+ context.get(PERMISSION_GATE_CONTEXT_KEY) === undefined) {
174
159
  context.set(PERMISSION_GATE_CONTEXT_KEY, headlessGate(WORKFLOW_RUN_HOST));
175
160
  }
176
161
  // Refuse a graph this runtime cannot honour before anything is paid for:
@@ -186,21 +171,7 @@ export class ExecutionSession {
186
171
  // registry says so itself.
187
172
  const providerConfiguration = options.providerConfiguration ??
188
173
  (context.hasProviderResolver ? () => [] : undefined);
189
- await assertPreflight(normalized, {
190
- catalogs: options.catalogs,
191
- providerConfiguration,
192
- resolveSecret: (key) => context.getSecret(key)
193
- });
194
- // A caller injecting its own `resolveExecutor` (see the option doc)
195
- // typically also owns its own Python bridge — never connect a second one
196
- // behind its back. `bridgeFactory` remains available for that caller to
197
- // opt back in explicitly (e.g. handing this facade an already-connected
198
- // bridge instance to close on its behalf).
199
- const bridgeFactory = options.bridgeFactory ??
200
- (options.resolveExecutor
201
- ? async () => null
202
- : connectPythonBridgeForGraph);
203
- const bridge = await bridgeFactory(normalized.nodes, (t) => registry ? registry.has(t) : false);
174
+ let bridge = null;
204
175
  let bridgeClosed = false;
205
176
  const closeBridge = () => {
206
177
  if (bridgeClosed)
@@ -208,8 +179,25 @@ export class ExecutionSession {
208
179
  bridgeClosed = true;
209
180
  bridge?.close();
210
181
  };
211
- let hydrated;
212
182
  try {
183
+ const normalized = normalizeGraph(options.graph);
184
+ if (options.preflight !== false) {
185
+ await assertPreflight(normalized, {
186
+ catalogs: options.catalogs,
187
+ params: options.params,
188
+ providerConfiguration,
189
+ ...(registry && { registry }),
190
+ resolveSecret: (key) => context.getSecret(key)
191
+ });
192
+ }
193
+ // A resolver supplied directly already owns its bridge. A factory
194
+ // instead receives the connection owned and closed by this session.
195
+ const bridgeFactory = options.bridgeFactory ??
196
+ (options.resolveExecutor
197
+ ? async () => null
198
+ : (nodes, hasTsExecutor) => connectPythonBridgeForGraph(nodes, hasTsExecutor, options.bridgeOptions));
199
+ bridge = await bridgeFactory(normalized.nodes, options.hasTsExecutor ?? ((type) => registry?.has(type) ?? false));
200
+ let hydrated;
213
201
  if (options.resolveNodeType) {
214
202
  // Richer path: resolves `propertyTypes`/`outputs` from registry
215
203
  // metadata too (async — the resolver may lazy-load a namespace),
@@ -234,55 +222,65 @@ export class ExecutionSession {
234
222
  // unchanged.
235
223
  hydrated = withExplicitNodeFlags(normalized);
236
224
  }
225
+ if (options.requireTerminalResult) {
226
+ rewriteOutputNames(hydrated);
227
+ }
228
+ const resolveExecutor = options.resolveExecutor ??
229
+ options.executorResolverFactory?.(bridge) ??
230
+ (registry ? createExecutorResolver(registry, bridge) : null);
231
+ if (!resolveExecutor) {
232
+ throw new Error("ExecutionSession: no executor resolver available");
233
+ }
234
+ const runnerOptions = {
235
+ resolveExecutor,
236
+ executionContext: context,
237
+ validateNode: options.validateNode,
238
+ bufferLimit: options.limits?.bufferLimit ?? null,
239
+ strict: options.strict
240
+ };
241
+ if (options.supervisor) {
242
+ runnerOptions.supervisor = options.supervisor;
243
+ }
244
+ const runner = new WorkflowRunner(jobId, runnerOptions);
245
+ try {
246
+ await options.persistence?.onAccepted?.(jobId);
247
+ }
248
+ catch (err) {
249
+ log.warn("persistence.onAccepted threw", {
250
+ jobId,
251
+ error: err instanceof Error ? err.message : String(err)
252
+ });
253
+ }
254
+ return new ExecutionSession({
255
+ jobId,
256
+ workflowId,
257
+ graph: hydrated,
258
+ runner,
259
+ context,
260
+ persistence: options.persistence ?? null,
261
+ params: options.params ?? {},
262
+ triggerEvent: options.triggerEvent ?? null,
263
+ bridge,
264
+ lifecycle: options.jobLifecycleBridge ?? bridge,
265
+ userId: context.userId,
266
+ closeBridge,
267
+ runTimeoutMs: options.limits?.runTimeoutMs,
268
+ captureMessages: options.captureMessages === true,
269
+ messageBufferLimit: options.limits?.messageBufferLimit,
270
+ recordCosts: options.recordCosts !== false,
271
+ projectId: options.projectId,
272
+ documentId: options.documentId
273
+ });
237
274
  }
238
275
  catch (err) {
239
- closeBridge();
276
+ try {
277
+ closeBridge();
278
+ }
279
+ finally {
280
+ await cleanupWorkspace(context, jobId);
281
+ }
240
282
  throw err;
241
283
  }
242
- if (options.requireTerminalResult) {
243
- rewriteOutputNames(hydrated);
244
- }
245
- const resolveExecutor = options.resolveExecutor ?? createExecutorResolver(registry, bridge);
246
- const runnerOptions = {
247
- resolveExecutor,
248
- executionContext: context,
249
- validateNode: options.validateNode,
250
- bufferLimit: options.limits?.bufferLimit ?? null,
251
- strict: options.strict
252
- };
253
- if (options.supervisor) {
254
- runnerOptions.supervisor = options.supervisor;
255
- }
256
- const runner = new WorkflowRunner(jobId, runnerOptions);
257
- try {
258
- await options.persistence?.onAccepted?.(jobId);
259
- }
260
- catch (err) {
261
- log.warn("persistence.onAccepted threw", {
262
- jobId,
263
- error: err instanceof Error ? err.message : String(err)
264
- });
265
- }
266
- return new ExecutionSession({
267
- jobId,
268
- workflowId,
269
- graph: hydrated,
270
- runner,
271
- context,
272
- persistence: options.persistence ?? null,
273
- params: options.params ?? {},
274
- triggerEvent: options.triggerEvent ?? null,
275
- bridge,
276
- lifecycle: options.jobLifecycleBridge ?? bridge,
277
- userId: context.userId,
278
- closeBridge,
279
- runTimeoutMs: options.limits?.runTimeoutMs,
280
- captureMessages: options.captureMessages === true,
281
- messageBufferLimit: options.limits?.messageBufferLimit,
282
- recordCosts: options.recordCosts !== false,
283
- projectId: options.projectId,
284
- documentId: options.documentId
285
- });
286
284
  }
287
285
  /**
288
286
  * Live message stream — closes once the run reaches a terminal state.
@@ -298,7 +296,7 @@ export class ExecutionSession {
298
296
  }
299
297
  return this.stream;
300
298
  }
301
- /** The run's terminal result. Never rejects — kernel failures resolve as `status: "failed"`. */
299
+ /** Terminal result. Kernel failures resolve as failed, unexpected lifecycle errors reject. */
302
300
  get result() {
303
301
  return this.resultPromise;
304
302
  }
@@ -350,4 +348,15 @@ export class ExecutionSession {
350
348
  this.runner.cancel();
351
349
  }
352
350
  }
351
+ async function cleanupWorkspace(context, jobId) {
352
+ try {
353
+ await context.workspace?.cleanupScratch?.();
354
+ }
355
+ catch (err) {
356
+ log.warn("Workspace scratch cleanup failed", {
357
+ jobId,
358
+ error: err instanceof Error ? err.message : String(err)
359
+ });
360
+ }
361
+ }
353
362
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EACL,KAAK,EACL,cAAc,EACd,qBAAqB,EAEtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,2BAA2B,EAE3B,2BAA2B,EAC3B,YAAY,EACb,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EACL,iBAAiB,EACjB,8BAA8B,EAC/B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvE,MAAM,GAAG,GAAG,YAAY,CAAC,4BAA4B,CAAC,CAAC;AAEvD,MAAM,OAAO,gBAAgB;IAClB,KAAK,CAAS;IACd,UAAU,CAAgB;IAC1B,KAAK,CAAoB;IAEjB,MAAM,CAAiB;IACxC,yEAAyE;IACxD,MAAM,CAAuB;IAC7B,WAAW,CAAyC;IACpD,MAAM,CAA0C;IAChD,aAAa,CAAqB;IAC3C,gBAAgB,GAAyC,IAAI,CAAC;IAC9D,aAAa,GAAkB,IAAI,CAAC;IAE5C,YAAoB,IAmBnB;QACC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe;YAChC,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC;YAC1D,CAAC,CAAC,IAAI,CAAC;QAET,0EAA0E;QAC1E,yEAAyE;QACzE,uEAAuE;QACvE,4CAA4C;QAC5C,2EAA2E;QAC3E,4EAA4E;QAC5E,2DAA2D;QAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW;YACnC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE;gBAChC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;gBACjC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;gBACnC,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gBAC1C,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC;aACpD,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACxB,CAAC;QAED,0EAA0E;QAC1E,yEAAyE;QACzE,4EAA4E;QAC5E,wEAAwE;QACxE,oCAAoC;QACpC,MAAM,QAAQ,GAAG;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QACF,KAAK,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAQxC,MAAM,UAAU,GAAqB;YACnC,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS;YACzC,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QACF,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM;aAC7B,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC;aAC3B,IAAI,CACH,CAAC,MAAM,EAAE,EAAE;YACT,KAAK,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;gBAC1B,GAAG,QAAQ;gBACX,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;aACtC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC,EACD,CAAC,GAAY,EAAE,EAAE;YACf,iEAAiE;YACjE,iEAAiE;YACjE,gDAAgD;YAChD,KAAK,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YAClE,MAAM,GAAG,CAAC;QACZ,CAAC,CACF;aACA,OAAO,CAAC,KAAK,IAAI,EAAE;YAClB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC/B,CAAC;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,8DAA8D;YAC9D,qEAAqE;YACrE,mEAAmE;YACnE,wEAAwE;YACxE,YAAY,EAAE,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,EAAE,CAAC;YACnD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CAAC,kCAAkC,EAAE;oBAC3C,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,aAAa;aACf,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC;aACxD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE;gBACvC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,yDAAyD;IACjD,SAAS,CACf,MAA2B;QAE3B,IAAI,MAAM,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;QACzC,IAAI,MAAM,KAAK,WAAW;YAAE,OAAO,WAAW,CAAC;QAC/C,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,OAAgC;QAEhC,IAAI,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,oEAAoE;gBAClE,kEAAkE;gBAClE,6BAA6B,CAChC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CACb,wEAAwE;gBACtE,yEAAyE;gBACzE,sEAAsE,CACzE,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;QAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAElC,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEjD,oEAAoE;QACpE,oEAAoE;QACpE,uEAAuE;QACvE,sEAAsE;QACtE,qEAAqE;QACrE,mDAAmD;QACnD,MAAM,OAAO,GACX,OAAO,CAAC,OAAO;YACf,8BAA8B,CAAC;gBAC7B,KAAK;gBACL,UAAU;gBACV,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,IAAI;gBACf,qBAAqB,EAAE,IAAI;aAC5B,CAAC,CAAC;QACL,wEAAwE;QACxE,yEAAyE;QACzE,oEAAoE;QACpE,sEAAsE;QACtE,sEAAsE;QACtE,YAAY;QACZ,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,yEAAyE;QACzE,wDAAwD;QACxD,yEAAyE;QACzE,0EAA0E;QAC1E,qEAAqE;QACrE,yEAAyE;QACzE,2EAA2E;QAC3E,4EAA4E;QAC5E,wEAAwE;QACxE,uEAAuE;QACvE,2BAA2B;QAC3B,MAAM,qBAAqB,GACzB,OAAO,CAAC,qBAAqB;YAC7B,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAEvD,MAAM,eAAe,CAAC,UAAU,EAAE;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,qBAAqB;YACrB,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC;SAC/C,CAAC,CAAC;QAEH,oEAAoE;QACpE,yEAAyE;QACzE,wEAAwE;QACxE,wEAAwE;QACxE,2CAA2C;QAC3C,MAAM,aAAa,GACjB,OAAO,CAAC,aAAa;YACrB,CAAC,OAAO,CAAC,eAAe;gBACtB,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI;gBAClB,CAAC,CAAC,2BAA2B,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CACzD,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CACnC,CAAC;QACF,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,MAAM,WAAW,GAAG,GAAS,EAAE;YAC7B,IAAI,YAAY;gBAAE,OAAO;YACzB,YAAY,GAAG,IAAI,CAAC;YACpB,MAAM,EAAE,KAAK,EAAE,CAAC;QAClB,CAAC,CAAC;QAEF,IAAI,QAA2B,CAAC;QAChC,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC5B,gEAAgE;gBAChE,iEAAiE;gBACjE,gEAAgE;gBAChE,6DAA6D;gBAC7D,iEAAiE;gBACjE,6CAA6C;gBAC7C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE;oBAClD,QAAQ,EAAE,OAAO,CAAC,eAAe;iBAClC,CAAC,CAAC;gBACH,QAAQ,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACpE,CAAC;iBAAM,IAAI,QAAQ,EAAE,CAAC;gBACpB,QAAQ,GAAG,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,kEAAkE;gBAClE,oEAAoE;gBACpE,+DAA+D;gBAC/D,iEAAiE;gBACjE,qEAAqE;gBACrE,aAAa;gBACb,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,EAAE,CAAC;YACd,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAClC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,eAAe,GACnB,OAAO,CAAC,eAAe,IAAI,sBAAsB,CAAC,QAAS,EAAE,MAAM,CAAC,CAAC;QAEvE,MAAM,aAAa,GAAoD;YACrE,eAAe;YACf,gBAAgB,EAAE,OAAO;YACzB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,IAAI,IAAI;YAChD,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC;QACF,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,aAAa,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAChD,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAExD,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE;gBACvC,KAAK;gBACL,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,gBAAgB,CAAC;YAC1B,KAAK;YACL,UAAU;YACV,KAAK,EAAE,QAAQ;YACf,MAAM;YACN,OAAO;YACP,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;YACxC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;YAC5B,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI;YAC1C,MAAM;YACN,SAAS,EAAE,OAAO,CAAC,kBAAkB,IAAI,MAAM;YAC/C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,WAAW;YACX,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY;YAC1C,eAAe,EAAE,OAAO,CAAC,eAAe,KAAK,IAAI;YACjD,kBAAkB,EAAE,OAAO,CAAC,MAAM,EAAE,kBAAkB;YACtD,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,KAAK;YAC1C,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,IAAI,QAAQ;QACV,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,mEAAmE;gBACjE,kEAAkE;gBAClE,gDAAgD,CACnD,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,gGAAgG;IAChG,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACH,gBAAgB;QACd,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;YACtC,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,2BAA2B;YAChE,uEAAuE;YACvE,gCAAgC;YAChC,aAAa,EAAE,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,2BAA2B,EAAE,IAAI,CAAC,MAAM,EAAE,mBAAmB,IAAI,CAAC;SACnE,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,4FAA4F;IAC5F,SAAS,CACP,SAAiB,EACjB,KAAc,EACd,YAAqB;QAErB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC;IAED,+EAA+E;IAC/E,iBAAiB,CAAC,SAAiB,EAAE,YAAqB;QACxD,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;OAOG;IACH,oBAAoB,CAClB,MAAc,EACd,UAAmC;QAEnC,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,MAAe;QACpB,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,IAAI,CAAC,aAAa,IAAI,WAAW,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACpG,mEAAmE;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EACL,KAAK,EACL,cAAc,EACd,qBAAqB,EACrB,aAAa,EAEd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,2BAA2B,EAE3B,mBAAmB,EACnB,2BAA2B,EAC3B,YAAY,EACb,MAAM,sBAAsB,CAAC;AAS9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EACL,iBAAiB,EACjB,8BAA8B,EAC/B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvE,MAAM,GAAG,GAAG,YAAY,CAAC,4BAA4B,CAAC,CAAC;AAEvD,MAAM,OAAO,gBAAgB;IAClB,KAAK,CAAS;IACd,UAAU,CAAgB;IAC1B,KAAK,CAAoB;IAEjB,MAAM,CAAiB;IACxC,yEAAyE;IACxD,MAAM,CAAuB;IAC7B,WAAW,CAAyC;IACpD,MAAM,CAA0C;IAChD,aAAa,CAAqB;IAC3C,gBAAgB,GAAyC,IAAI,CAAC;IAC9D,aAAa,GAAkB,IAAI,CAAC;IAE5C,YAAoB,IAmBnB;QACC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe;YAChC,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC;YAC1D,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW;YACnC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE;gBAChC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,SAAS;gBACtD,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;gBACjC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;gBACnC,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gBAC1C,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC;aACpD,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACxB,CAAC;QAED,0EAA0E;QAC1E,yEAAyE;QACzE,4EAA4E;QAC5E,wEAAwE;QACxE,oCAAoC;QACpC,MAAM,QAAQ,GAAG;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QACF,KAAK,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAQxC,MAAM,UAAU,GAAqB;YACnC,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS;YACzC,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QACF,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,EAAE;aACnC,IAAI,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC1K,IAAI,CACH,KAAK,EAAE,MAAM,EAAE,EAAE;YACf,MAAM,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9J,KAAK,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;gBAC1B,GAAG,QAAQ;gBACX,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;aACtC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC,EACD,KAAK,EAAE,GAAY,EAAE,EAAE;YACrB,MAAM,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACzG,iEAAiE;YACjE,iEAAiE;YACjE,gDAAgD;YAChD,KAAK,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YAClE,MAAM,GAAG,CAAC;QACZ,CAAC,CACF;aACA,OAAO,CAAC,KAAK,IAAI,EAAE;YAClB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC/B,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;oBAAS,CAAC;gBACT,MAAM,YAAY,EAAE,OAAO,EAAE,CAAC;gBAC9B,YAAY,EAAE,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;gBACrB,MAAM,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACnD,CAAC;QACH,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,aAAa;aACf,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC;aACxD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE;gBACvC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,yDAAyD;IACjD,SAAS,CACf,MAA2B;QAE3B,IAAI,MAAM,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;QACzC,IAAI,MAAM,KAAK,WAAW;YAAE,OAAO,WAAW,CAAC;QAC/C,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,OAAgC;QAEhC,IAAI,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,oEAAoE;gBAClE,kEAAkE;gBAClE,6BAA6B,CAChC,CAAC;QACJ,CAAC;QAED,IACE,CAAC,OAAO,CAAC,QAAQ;YACjB,CAAC,OAAO,CAAC,eAAe;YACxB,CAAC,OAAO,CAAC,uBAAuB,EAChC,CAAC;YACD,MAAM,IAAI,KAAK,CACb,qGAAqG;gBACnG,yEAAyE;gBACzE,sEAAsE,CACzE,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;QAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAElC,oEAAoE;QACpE,oEAAoE;QACpE,uEAAuE;QACvE,sEAAsE;QACtE,qEAAqE;QACrE,mDAAmD;QACnD,MAAM,OAAO,GACX,OAAO,CAAC,OAAO;YACf,8BAA8B,CAAC;gBAC7B,KAAK;gBACL,UAAU;gBACV,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,IAAI;gBACf,qBAAqB,EAAE,IAAI;aAC5B,CAAC,CAAC;QACL,wEAAwE;QACxE,yEAAyE;QACzE,oEAAoE;QACpE,sEAAsE;QACtE,sEAAsE;QACtE,YAAY;QACZ,IACE,OAAO,CAAC,6BAA6B,KAAK,KAAK;YAC/C,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,KAAK,SAAS,EACtD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,yEAAyE;QACzE,wDAAwD;QACxD,yEAAyE;QACzE,0EAA0E;QAC1E,qEAAqE;QACrE,yEAAyE;QACzE,2EAA2E;QAC3E,4EAA4E;QAC5E,wEAAwE;QACxE,uEAAuE;QACvE,2BAA2B;QAC3B,MAAM,qBAAqB,GACzB,OAAO,CAAC,qBAAqB;YAC7B,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAEvD,IAAI,MAAM,GAA4B,IAAI,CAAC;QAC3C,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,MAAM,WAAW,GAAG,GAAS,EAAE;YAC7B,IAAI,YAAY;gBAAE,OAAO;YACzB,YAAY,GAAG,IAAI,CAAC;YACpB,MAAM,EAAE,KAAK,EAAE,CAAC;QAClB,CAAC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;gBAChC,MAAM,eAAe,CAAC,UAAU,EAAE;oBAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,qBAAqB;oBACrB,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC;oBAC7B,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC;iBAC/C,CAAC,CAAC;YACL,CAAC;YACD,kEAAkE;YAClE,oEAAoE;YACpE,MAAM,aAAa,GACjB,OAAO,CAAC,aAAa;gBACrB,CAAC,OAAO,CAAC,eAAe;oBACtB,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI;oBAClB,CAAC,CAAC,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,CACvB,2BAA2B,CACzB,KAAK,EACL,aAAa,EACb,OAAO,CAAC,aAAa,CACtB,CAAC,CAAC;YACX,MAAM,GAAG,MAAM,aAAa,CAC1B,UAAU,CAAC,KAAK,EAChB,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAClE,CAAC;YAEF,IAAI,QAA2B,CAAC;YAChC,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC5B,gEAAgE;gBAChE,iEAAiE;gBACjE,gEAAgE;gBAChE,6DAA6D;gBAC7D,iEAAiE;gBACjE,6CAA6C;gBAC7C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE;oBAClD,QAAQ,EAAE,OAAO,CAAC,eAAe;iBAClC,CAAC,CAAC;gBACH,QAAQ,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACpE,CAAC;iBAAM,IAAI,QAAQ,EAAE,CAAC;gBACpB,QAAQ,GAAG,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,kEAAkE;gBAClE,oEAAoE;gBACpE,+DAA+D;gBAC/D,iEAAiE;gBACjE,qEAAqE;gBACrE,aAAa;gBACb,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;YAC/C,CAAC;YAED,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;gBAClC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;YAED,MAAM,eAAe,GACnB,OAAO,CAAC,eAAe;gBACvB,OAAO,CAAC,uBAAuB,EAAE,CAAC,MAAM,CAAC;gBACzC,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/D,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,aAAa,GAAoD;gBACrE,eAAe;gBACf,gBAAgB,EAAE,OAAO;gBACzB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,IAAI,IAAI;gBAChD,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC;YACF,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,aAAa,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YAChD,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YAExD,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE;oBACvC,KAAK;oBACL,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC,CAAC;YACL,CAAC;YAED,OAAO,IAAI,gBAAgB,CAAC;gBAC1B,KAAK;gBACL,UAAU;gBACV,KAAK,EAAE,QAAQ;gBACf,MAAM;gBACN,OAAO;gBACP,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;gBACxC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;gBAC5B,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI;gBAC1C,MAAM;gBACN,SAAS,EAAE,OAAO,CAAC,kBAAkB,IAAI,MAAM;gBAC/C,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,WAAW;gBACX,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY;gBAC1C,eAAe,EAAE,OAAO,CAAC,eAAe,KAAK,IAAI;gBACjD,kBAAkB,EAAE,OAAO,CAAC,MAAM,EAAE,kBAAkB;gBACtD,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,KAAK;gBAC1C,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,WAAW,EAAE,CAAC;YAChB,CAAC;oBAAS,CAAC;gBACT,MAAM,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,IAAI,QAAQ;QACV,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,mEAAmE;gBACjE,kEAAkE;gBAClE,gDAAgD,CACnD,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,8FAA8F;IAC9F,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACH,gBAAgB;QACd,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;YACtC,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,2BAA2B;YAChE,uEAAuE;YACvE,gCAAgC;YAChC,aAAa,EAAE,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,2BAA2B,EAAE,IAAI,CAAC,MAAM,EAAE,mBAAmB,IAAI,CAAC;SACnE,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,4FAA4F;IAC5F,SAAS,CACP,SAAiB,EACjB,KAAc,EACd,YAAqB;QAErB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC;IAED,+EAA+E;IAC/E,iBAAiB,CAAC,SAAiB,EAAE,YAAqB;QACxD,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;OAOG;IACH,oBAAoB,CAClB,MAAc,EACd,UAAmC;QAEnC,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,MAAe;QACpB,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,IAAI,CAAC,aAAa,IAAI,WAAW,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF;AAED,KAAK,UAAU,gBAAgB,CAC7B,OAA0B,EAC1B,KAAa;IAEb,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,EAAE,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,kCAAkC,EAAE;YAC3C,KAAK;YACL,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/sketch-debug/markdown.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA+EtE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAyD5E"}
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/sketch-debug/markdown.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA+EtE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA0D5E"}
@@ -57,6 +57,7 @@ export function renderSketchReportMarkdown(report) {
57
57
  lines.push(`# Sketch debug: ${title}`);
58
58
  lines.push("");
59
59
  lines.push(`${report.verdict.ok ? "✅" : "❌"} ${report.verdict.headline}`);
60
+ lines.push("", "Visual output verified: false. This verdict covers document structure and replayed edits only.");
60
61
  lines.push("");
61
62
  lines.push(`Target: \`${report.target.ref}\` (${report.target.kind})`);
62
63
  lines.push(`Document: ${report.meta.width}×${report.meta.height} on ${report.meta.backgroundColor} · ` +
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/sketch-debug/markdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/sketch-debug/markdown.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/sketch-debug/report.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAEV,iBAAiB,EACjB,iBAAiB,EAEjB,uBAAuB,EAExB,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,eAAe,CAAC;AAyGvB,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,0DAA0D;IAC1D,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,YAAY,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACzC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,sBAAsB,GAC5B,iBAAiB,CAiCnB"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/sketch-debug/report.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAEV,iBAAiB,EACjB,iBAAiB,EAEjB,uBAAuB,EAExB,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,eAAe,CAAC;AAwGvB,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,0DAA0D;IAC1D,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,YAAY,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACzC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,sBAAsB,GAC5B,iBAAiB,CAkCnB"}
@@ -10,9 +10,8 @@ const DEFAULTS = {
10
10
  * property of the harness, not of the document it was pointed at.
11
11
  */
12
12
  const NOT_SIMULATED = [
13
- "Pixels — layer bitmaps are never decoded, composited, or diffed.",
14
- "Rendering and flattening — no canvas exists, so blend modes and effects produce nothing to look at.",
15
- "Painting tools — brush, eraser, fill, gradient and transform strokes leave no marks headlessly.",
13
+ "Pixels in the saved document — existing layer bitmaps are not loaded into the replay bridge.",
14
+ "Visual output of the saved document — replay paints and composites new strokes, but the report validates structure and does not inspect that composite.",
16
15
  "Generation providers — no imagery is produced; bindings are checked structurally only.",
17
16
  "Asset I/O — asset ids are never resolved, fetched, or uploaded.",
18
17
  "Generation bindings after edits — the headless bridge tracks a layer's prompt/provider/model but not the persisted binding record, so a post-edit document is validated with no bindings."
@@ -55,7 +54,7 @@ function buildSketchVerdict(validation, interactions, finalValidation) {
55
54
  const ok = issues.length === 0;
56
55
  const warningCount = warnings.length;
57
56
  const headline = ok
58
- ? `Sketch is sound — ${interactions.length} interaction(s) ran clean` +
57
+ ? `Sketch structure is valid — ${interactions.length} interaction(s) ran clean` +
59
58
  (warningCount > 0 ? `, ${warningCount} warning(s)` : "") +
60
59
  "."
61
60
  : `Sketch has ${issues.length} problem(s)` +
@@ -80,6 +79,7 @@ export function buildSketchDebugReport(input) {
80
79
  // — describes the sketch the report is about.
81
80
  const meta = describeDocument(input.finalDocument ?? input.document, input.meta);
82
81
  const report = {
82
+ visual_output_verified: false,
83
83
  target: input.target,
84
84
  meta,
85
85
  validation,
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/sketch-debug/report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/sketch-debug/report.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,sBAAsB,EAEvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,EACtB,QAAQ,EACT,MAAM,kBAAkB,CAAC;AAK1B,MAAM,QAAQ,GAAG;IACf,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,eAAe,EAAE,SAAS;CAClB,CAAC;AAEX;;;GAGG;AACH,MAAM,aAAa,GAA0B;IAC3C,8FAA8F;IAC9F,yJAAyJ;IACzJ,wFAAwF;IACxF,iEAAiE;IACjE,2LAA2L;CAC5L,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CACpE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEvE,MAAM,KAAK,GAAG,CAAC,KAAc,EAAU,EAAE,CACvC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1C,SAAS,gBAAgB,CACvB,QAAiB,EACjB,IAAsC;IAEtC,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,IAAI,GAAG,CAAC,KAAc,EAAE,QAAgB,EAAU,EAAE,CACxD,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnD,MAAM,UAAU,GACd,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC;QAC9B,CAAC,CAAC,MAAM,CAAC,eAAe;QACxB,CAAC,CAAC,CAAC,IAAI,EAAE,eAAe,IAAI,QAAQ,CAAC,eAAe,CAAC,CAAC;IAE1D,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5D,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChE,eAAe,EAAE,UAAU;QAC3B,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;QAChC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,KAAuB,EAAU,EAAE;IACnD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC;IAC1C,OAAO,KAAK;QACV,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE;QAC9C,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;AACzC,CAAC,CAAC;AAEF,SAAS,kBAAkB,CACzB,UAA4B,EAC5B,YAAoD,EACpD,eAA6C;IAE7C,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAa;QACvB,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClC,GAAG,WAAW,CAAC,GAAG,CAChB,CAAC,IAAI,EAAE,EAAE,CACP,iBAAiB,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9E;QACD,GAAG,CAAC,eAAe,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CACpC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,QAAQ,CAAC,KAAK,CAAC,EAAE,CAC9C;KACF,CAAC;IACF,MAAM,QAAQ,GAAa;QACzB,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;QACpC,GAAG,CAAC,eAAe,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CACtC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,QAAQ,CAAC,KAAK,CAAC,EAAE,CAC9C;KACF,CAAC;IAEF,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAC/B,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC;IACrC,MAAM,QAAQ,GAAG,EAAE;QACjB,CAAC,CAAC,+BAA+B,YAAY,CAAC,MAAM,2BAA2B;YAC7E,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG;QACL,CAAC,CAAC,cAAc,MAAM,CAAC,MAAM,aAAa;YACxC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBACrB,CAAC,CAAC,KAAK,WAAW,CAAC,MAAM,wBAAwB;gBACjD,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtB,OAAO,YAAY,GAAG,CAAC;QACrB,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;QACpC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC/B,CAAC;AAcD,MAAM,UAAU,sBAAsB,CACpC,KAA6B;IAE7B,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACtE,yEAAyE;IACzE,2EAA2E;IAC3E,MAAM,eAAe,GACnB,KAAK,CAAC,aAAa,KAAK,SAAS;QAC/B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;IAE9C,4EAA4E;IAC5E,8CAA8C;IAC9C,MAAM,IAAI,GAAG,gBAAgB,CAC3B,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,QAAQ,EACrC,KAAK,CAAC,IAAI,CACX,CAAC;IAGF,MAAM,MAAM,GAAiB;QAC3B,sBAAsB,EAAE,KAAK;QAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI;QACJ,UAAU;QACV,YAAY;QACZ,YAAY,EAAE,CAAC,GAAG,aAAa,CAAC;QAChC,OAAO,EAAE,kBAAkB,CAAC,UAAU,EAAE,YAAY,EAAE,eAAe,CAAC;KACvE,CAAC;IACF,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACvC,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,CAAC,eAAe,GAAG,eAAe,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -45,6 +45,8 @@ export interface SketchDocumentMeta {
45
45
  bindingCount: number;
46
46
  }
47
47
  export interface SketchDebugReport {
48
+ /** This harness checks structure, not the visual output of the saved document. */
49
+ visual_output_verified: false;
48
50
  target: SketchDebugTarget;
49
51
  meta: SketchDocumentMeta;
50
52
  /** Static validation of the input document. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sketch-debug/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,6CAA6C;AAC7C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,kDAAkD;AAClD,MAAM,WAAW,uBAAuB;IACtC,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,kBAAkB,CAAC;IACzB,+CAA+C;IAC/C,UAAU,EAAE,gBAAgB,CAAC;IAC7B,2CAA2C;IAC3C,YAAY,EAAE,uBAAuB,EAAE,CAAC;IACxC,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qEAAqE;IACrE,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,uEAAuE;IACvE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,YAAY,CAAC;CACvB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sketch-debug/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,6CAA6C;AAC7C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,kDAAkD;AAClD,MAAM,WAAW,uBAAuB;IACtC,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,kFAAkF;IAClF,sBAAsB,EAAE,KAAK,CAAC;IAC9B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,kBAAkB,CAAC;IACzB,+CAA+C;IAC/C,UAAU,EAAE,gBAAgB,CAAC;IAC7B,2CAA2C;IAC3C,YAAY,EAAE,uBAAuB,EAAE,CAAC;IACxC,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qEAAqE;IACrE,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,uEAAuE;IACvE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,YAAY,CAAC;CACvB"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * frame-geometry — a clip's static axis-aligned box in frame pixels.
3
+ *
4
+ * Shared by every timeline-debug check that needs to know roughly where a
5
+ * clip sits on screen without rendering: `showcase.ts` (frame coverage, text
6
+ * collision) and `legibility.ts` (which shape is actually the backdrop
7
+ * behind a title). One computation here, not two that could disagree about
8
+ * where a clip is.
9
+ *
10
+ * Static geometry only, same rule `showcase.ts` documents for its own
11
+ * checks: no rendered pixels, no sampled animation curves, no occlusion. A
12
+ * box is the clip's own authored (or layout-resolved) transform projected
13
+ * into frame pixels — the scene model's placement math
14
+ * (`buildTransformMatrix`, `layoutTextBlock`), not a second implementation
15
+ * of it — composed through every ancestor group's transform in one matrix,
16
+ * the way `parentMatrix` composes it for a real render.
17
+ */
18
+ import type { ClipTransform, TimelineClip } from "@nodetool-ai/protocol/api-schemas/timeline.js";
19
+ export interface Box {
20
+ x: number;
21
+ y: number;
22
+ width: number;
23
+ height: number;
24
+ }
25
+ /** Pre-transform box in frame pixels. `undefined` for a kind this proxy does
26
+ * not measure (audio, group, adjustment). A media clip's box is the whole
27
+ * frame — its contain-fit base scale is applied in `frameBoxFor`.
28
+ *
29
+ * `sizeOverride` is the box a flex container resized this leaf to
30
+ * (`resolveClipLayoutsWithDiagnostics`'s `sizes` map) — the same override
31
+ * `sceneModel.ts`'s `emitMedia` applies to the clip it hands the renderer, so
32
+ * a flex-resized plate or a rewrapped text block measures at the size it
33
+ * actually draws at, not its pre-layout authored one. */
34
+ export declare function localBox(clip: TimelineClip, canvas: {
35
+ width: number;
36
+ height: number;
37
+ }, sizeOverride?: {
38
+ width: number;
39
+ height: number;
40
+ }): Box | undefined;
41
+ export declare function projectPoint(x: number, y: number, matrix: Float32Array, canvas: {
42
+ width: number;
43
+ height: number;
44
+ }): {
45
+ x: number;
46
+ y: number;
47
+ };
48
+ export declare function projectBox(box: Box, matrix: Float32Array, canvas: {
49
+ width: number;
50
+ height: number;
51
+ }): Box;
52
+ /** Root-first chain of the clip and every ancestor group it is parented to.
53
+ * Stops at the first non-group parent, same as the scene model. */
54
+ export declare function ancestorChain(clip: TimelineClip, byId: ReadonlyMap<string, TimelineClip>): TimelineClip[];
55
+ /** Whether `clip` or an ancestor carries a 3D tilt (`rotationX`/`rotationY`)
56
+ * or `perspective`. An axis-aligned box is not a sound proxy for a layer
57
+ * under a projective transform: the true screen footprint is a distorted
58
+ * quadrilateral, and its AABB can be several times taller or narrower than
59
+ * the source box even for ordinary content — a tilted phone-mockup card is
60
+ * the shipped example that shows it. Checks relying on the frame box skip
61
+ * these clips rather than report a geometry the transform makes up. */
62
+ export declare function hasPerspectiveAncestor(clip: TimelineClip, byId: ReadonlyMap<string, TimelineClip>): boolean;
63
+ /** `clip`'s transform, or the position/scale a `row`/`stack`/`relative`
64
+ * container resolved for it — the same override the renderer places a
65
+ * layout-managed child with. A clip's own `transform` is stale once it sits
66
+ * in a container: the container decides its box, and measuring the authored
67
+ * field instead reads two stack siblings as stacked at the same spot no
68
+ * matter how far the container's `gapPx` actually holds them apart. */
69
+ export declare function resolvedTransform(clip: TimelineClip, resolved: ReadonlyMap<string, ClipTransform>): ClipTransform;
70
+ /** `transform` with any 3D tilt zeroed — same position/scale/z-rotation, no
71
+ * `rotationX`/`rotationY`/`perspective`. Used only for frame coverage (see
72
+ * `showcase.ts`'s `checkFrameUnderfilled`), where an untilted footprint is a
73
+ * closer approximation of "how much of the frame this covers" than a
74
+ * projective AABB, which can be inflated or skewed under a tilt in a way
75
+ * area alone should not be. */
76
+ export declare function untiltedTransform(transform: ClipTransform): ClipTransform;
77
+ /** `clip`'s (or an overridden local box's) axis-aligned box in frame pixels,
78
+ * composing every ancestor group's transform into one matrix before
79
+ * projecting — a rotated ancestor does not inflate the box the way
80
+ * re-projecting an AABB at each level would. Static: the authored transform,
81
+ * not an animated sample. `flattenPerspective` strips 3D tilt from every
82
+ * ancestor first (see `untiltedTransform`) — an approximation a caller opts
83
+ * into explicitly, never the default.
84
+ *
85
+ * `resolved` (`resolveClipLayoutsWithDiagnostics`'s `transforms` map) is
86
+ * PARENT-LOCAL (packages/timeline/AGENTS.md, "PARENT-LOCAL"): a flex-managed
87
+ * clip's resolved `position` is relative to its flex root's own untranslated
88
+ * frame, with every intermediate flex container's own translation already
89
+ * folded in — never the root's own placement, and never doubled. The
90
+ * renderer (`sceneModel.ts`'s `groupPatchedClips`) adds each ancestor's real
91
+ * translation back exactly once by zeroing a flex-managed *ancestor's* own
92
+ * `position` before composing it (keeping any rotation/scale the author put
93
+ * on it — flex only ever touches `position`), while the target clip itself
94
+ * keeps its full resolved position. This mirrors that: only an ancestor
95
+ * (never the clip whose box this is) gets its flex-resolved position
96
+ * stripped.
97
+ */
98
+ export declare function composedMatrix(clip: TimelineClip, canvas: {
99
+ width: number;
100
+ height: number;
101
+ }, byId: ReadonlyMap<string, TimelineClip>, resolved: ReadonlyMap<string, ClipTransform>, flattenPerspective?: boolean): Float32Array;
102
+ export declare function frameBoxFor(clip: TimelineClip, canvas: {
103
+ width: number;
104
+ height: number;
105
+ }, byId: ReadonlyMap<string, TimelineClip>, resolved: ReadonlyMap<string, ClipTransform>, overrideLocal?: Box, flattenPerspective?: boolean, sizes?: ReadonlyMap<string, {
106
+ width: number;
107
+ height: number;
108
+ }>): Box | undefined;
109
+ /** A box covering this much of the frame is a bed, not content — see
110
+ * `showcase.ts`. Not used by `legibility.ts`, which wants the opposite: a
111
+ * full-frame shape is still a valid backdrop to read a colour off. */
112
+ export declare const BACKGROUND_COVERAGE = 0.9;
113
+ export declare function isBackgroundBed(box: Box, canvas: {
114
+ width: number;
115
+ height: number;
116
+ }): boolean;
117
+ export declare function containsBox(outer: Box, inner: Box, eps?: number): boolean;
118
+ //# sourceMappingURL=frame-geometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame-geometry.d.ts","sourceRoot":"","sources":["../../src/timeline-debug/frame-geometry.ts"],"names":[],"mappings":"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"}