@post-print/agent-test 0.3.13 → 1.1.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 (78) hide show
  1. package/README.md +23 -7
  2. package/dist/cli.js +2 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/compare-scenario.d.ts +16 -28
  5. package/dist/compare-scenario.d.ts.map +1 -1
  6. package/dist/compare-scenario.js +163 -261
  7. package/dist/compare-scenario.js.map +1 -1
  8. package/dist/context-panel.d.ts +5 -0
  9. package/dist/context-panel.d.ts.map +1 -0
  10. package/dist/context-panel.js +60 -0
  11. package/dist/context-panel.js.map +1 -0
  12. package/dist/debug-bundle.d.ts.map +1 -1
  13. package/dist/debug-bundle.js +2 -0
  14. package/dist/debug-bundle.js.map +1 -1
  15. package/dist/expect.d.ts +1 -0
  16. package/dist/expect.d.ts.map +1 -1
  17. package/dist/expect.js +19 -0
  18. package/dist/expect.js.map +1 -1
  19. package/dist/html-report.d.ts.map +1 -1
  20. package/dist/html-report.js +238 -38
  21. package/dist/html-report.js.map +1 -1
  22. package/dist/index.d.ts +2 -2
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +1 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/live-isolation.d.ts +2 -0
  27. package/dist/live-isolation.d.ts.map +1 -1
  28. package/dist/live-isolation.js +66 -6
  29. package/dist/live-isolation.js.map +1 -1
  30. package/dist/record-trace.d.ts +7 -1
  31. package/dist/record-trace.d.ts.map +1 -1
  32. package/dist/record-trace.js.map +1 -1
  33. package/dist/run-suite.d.ts.map +1 -1
  34. package/dist/run-suite.js +137 -31
  35. package/dist/run-suite.js.map +1 -1
  36. package/dist/scenario-story.d.ts +4 -3
  37. package/dist/scenario-story.d.ts.map +1 -1
  38. package/dist/scenario-story.js +47 -71
  39. package/dist/scenario-story.js.map +1 -1
  40. package/dist/scenario-usage.d.ts.map +1 -1
  41. package/dist/scenario-usage.js +2 -3
  42. package/dist/scenario-usage.js.map +1 -1
  43. package/dist/types.d.ts +61 -24
  44. package/dist/types.d.ts.map +1 -1
  45. package/dist/validate-suite.d.ts.map +1 -1
  46. package/dist/validate-suite.js +100 -38
  47. package/dist/validate-suite.js.map +1 -1
  48. package/dist/viewer/catalog.d.ts +6 -2
  49. package/dist/viewer/catalog.d.ts.map +1 -1
  50. package/dist/viewer/catalog.js +14 -0
  51. package/dist/viewer/catalog.js.map +1 -1
  52. package/dist/viewer/compare-metrics.d.ts +30 -0
  53. package/dist/viewer/compare-metrics.d.ts.map +1 -0
  54. package/dist/viewer/compare-metrics.js +102 -0
  55. package/dist/viewer/compare-metrics.js.map +1 -0
  56. package/dist/viewer/context-files.d.ts +8 -0
  57. package/dist/viewer/context-files.d.ts.map +1 -0
  58. package/dist/viewer/context-files.js +57 -0
  59. package/dist/viewer/context-files.js.map +1 -0
  60. package/dist/viewer/events.d.ts +20 -0
  61. package/dist/viewer/events.d.ts.map +1 -1
  62. package/dist/viewer/events.js +2 -0
  63. package/dist/viewer/events.js.map +1 -1
  64. package/dist/viewer/live-runner.d.ts +6 -0
  65. package/dist/viewer/live-runner.d.ts.map +1 -1
  66. package/dist/viewer/live-runner.js +34 -5
  67. package/dist/viewer/live-runner.js.map +1 -1
  68. package/dist/viewer/page.d.ts.map +1 -1
  69. package/dist/viewer/page.js +1463 -93
  70. package/dist/viewer/page.js.map +1 -1
  71. package/dist/viewer/run-controller.d.ts +5 -0
  72. package/dist/viewer/run-controller.d.ts.map +1 -1
  73. package/dist/viewer/run-controller.js +27 -1
  74. package/dist/viewer/run-controller.js.map +1 -1
  75. package/dist/viewer/server.d.ts.map +1 -1
  76. package/dist/viewer/server.js +18 -11
  77. package/dist/viewer/server.js.map +1 -1
  78. package/package.json +7 -5
@@ -1,3 +1,4 @@
1
+ import type { ContextMode, ScenarioContextFile, ScenarioContextReason } from "../types.js";
1
2
  export interface ViewerEventEnvelope {
2
3
  suite: string;
3
4
  scenario: string;
@@ -14,6 +15,8 @@ export interface ViewerJudgeVerdictEvent {
14
15
  pass: boolean;
15
16
  rationale: string;
16
17
  }
18
+ export type ViewerContextReason = ScenarioContextReason;
19
+ export type ViewerContextFile = ScenarioContextFile;
17
20
  export type ViewerEvent = {
18
21
  type: "run_started";
19
22
  runId: string;
@@ -25,9 +28,19 @@ export type ViewerEvent = {
25
28
  skipped: number;
26
29
  } | ({
27
30
  type: "cell_started";
31
+ } & ViewerEventEnvelope) | ({
32
+ type: "status";
33
+ text: string;
28
34
  } & ViewerEventEnvelope) | ({
29
35
  type: "prompt";
30
36
  text: string;
37
+ } & ViewerEventEnvelope) | ({
38
+ type: "context";
39
+ /** Absent means harness-preamble for pre-1.1 event producers. */
40
+ mode?: ContextMode;
41
+ files: ViewerContextFile[];
42
+ /** Exact initial user input submitted through a builtin adapter. */
43
+ hostInput?: string;
31
44
  } & ViewerEventEnvelope) | ({
32
45
  type: "text";
33
46
  text: string;
@@ -41,6 +54,13 @@ export type ViewerEvent = {
41
54
  skipped?: boolean;
42
55
  durationMs: number;
43
56
  failures?: ViewerFailureEvent[];
57
+ metrics?: {
58
+ turns?: number;
59
+ tokens?: number;
60
+ tools?: number;
61
+ durationMs?: number;
62
+ passed?: boolean;
63
+ };
44
64
  } & ViewerEventEnvelope) | ({
45
65
  type: "judge";
46
66
  verdicts: ViewerJudgeVerdictEvent[];
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/viewer/events.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,WAAW,GACpB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACxF,CAAC;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GAAG,mBAAmB,CAAC,GAChD,CAAC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,mBAAmB,CAAC,GACxD,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,mBAAmB,CAAC,GACtD,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,mBAAmB,CAAC,GACtF,CAAC;IACD,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC/B,GAAG,mBAAmB,CAAC,GACxB,CAAC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,uBAAuB,EAAE,CAAA;CAAE,GAAG,mBAAmB,CAAC,GAC9E,CAAC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAcvE,kDAAkD;AAClD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAE5D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CActE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAKlE"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/viewer/events.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,9 @@ const EVENT_TYPES = new Set([
2
2
  "run_started",
3
3
  "run_finished",
4
4
  "cell_started",
5
+ "status",
5
6
  "prompt",
7
+ "context",
6
8
  "text",
7
9
  "tool",
8
10
  "cell_finished",
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/viewer/events.ts"],"names":[],"mappings":"AAoCA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAsB;IAChD,aAAa;IACb,cAAc;IACd,cAAc;IACd,QAAQ;IACR,MAAM;IACN,MAAM;IACN,eAAe;IACf,OAAO;IACP,OAAO;CACP,CAAC,CAAC;AAEH,kDAAkD;AAClD,MAAM,UAAU,iBAAiB,CAAC,KAAkB;IACnD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IAAI,CAAC;QACJ,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAa;IAClD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzE,OAAO,KAAK,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAI,KAA4B,CAAC,IAAI,CAAC;IAChD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,GAAG,CAAC,IAA2B,CAAC,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/viewer/events.ts"],"names":[],"mappings":"AAyDA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAsB;IAChD,aAAa;IACb,cAAc;IACd,cAAc;IACd,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;IACN,MAAM;IACN,eAAe;IACf,OAAO;IACP,OAAO;CACP,CAAC,CAAC;AAEH,kDAAkD;AAClD,MAAM,UAAU,iBAAiB,CAAC,KAAkB;IACnD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IAAI,CAAC;QACJ,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAa;IAClD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzE,OAAO,KAAK,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAI,KAA4B,CAAC,IAAI,CAAC;IAChD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,GAAG,CAAC,IAA2B,CAAC,CAAC;AACjF,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import type { HostAuthMode } from "@post-print/agent-harness";
2
+ import { type SpawnLiveScenarioOptions, type SpawnLiveScenarioResult } from "../live-isolation.js";
3
+ import type { ViewerJob } from "./catalog.js";
2
4
  import type { ViewerRunner } from "./run-controller.js";
3
5
  export interface LiveViewerRunnerOptions {
4
6
  cwd: string;
@@ -8,6 +10,10 @@ export interface LiveViewerRunnerOptions {
8
10
  timeoutMs?: number;
9
11
  authMode?: HostAuthMode;
10
12
  adapterModules?: string[];
13
+ /** Override host auth probe. Tests inject this. */
14
+ missingAuth?: (host: ViewerJob["host"]) => string | undefined;
15
+ /** Override isolated spawn. Tests inject this. */
16
+ spawnLiveScenario?: (options: SpawnLiveScenarioOptions) => Promise<SpawnLiveScenarioResult>;
11
17
  }
12
18
  /** Spawn one isolated child per viewer job. Forward NDJSON events to the UI. */
13
19
  export declare function createLiveViewerRunner(options: LiveViewerRunnerOptions): ViewerRunner;
@@ -1 +1 @@
1
- {"version":3,"file":"live-runner.d.ts","sourceRoot":"","sources":["../../src/viewer/live-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAO9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,uBAAuB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAWD,gFAAgF;AAChF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,YAAY,CAyDrF"}
1
+ {"version":3,"file":"live-runner.d.ts","sourceRoot":"","sources":["../../src/viewer/live-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,EAEN,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAG5B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,uBAAuB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,mDAAmD;IACnD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IAC9D,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAC5F;AAWD,gFAAgF;AAChF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,YAAY,CAsFrF"}
@@ -1,5 +1,5 @@
1
1
  import { missingAgentAuth } from "../doctor.js";
2
- import { killActiveLiveChildren, spawnLiveScenario } from "../live-isolation.js";
2
+ import { killActiveLiveChildren, spawnLiveScenario, subprocessFailureMessage, } from "../live-isolation.js";
3
3
  import { createLiveStagingSessionId } from "../record-trace.js";
4
4
  function envelope(job) {
5
5
  return {
@@ -14,9 +14,10 @@ export function createLiveViewerRunner(options) {
14
14
  return {
15
15
  async runJob(job, emit, signal) {
16
16
  const cell = envelope(job);
17
- const missing = missingAgentAuth(job.host);
17
+ emit({ type: "cell_started", ...cell });
18
+ emit({ type: "status", text: "Starting isolated child.", ...cell });
19
+ const missing = (options.missingAuth ?? missingAgentAuth)(job.host);
18
20
  if (missing) {
19
- emit({ type: "cell_started", ...cell });
20
21
  emit({ type: "error", message: missing, ...cell });
21
22
  emit({
22
23
  type: "cell_finished",
@@ -34,8 +35,10 @@ export function createLiveViewerRunner(options) {
34
35
  killActiveLiveChildren();
35
36
  };
36
37
  signal.addEventListener("abort", onAbort, { once: true });
38
+ const spawn = options.spawnLiveScenario ?? spawnLiveScenario;
39
+ let finished = false;
37
40
  try {
38
- await spawnLiveScenario({
41
+ const result = await spawn({
39
42
  cwd: options.cwd,
40
43
  suiteName: job.suite,
41
44
  scenarioName: job.scenario,
@@ -50,10 +53,36 @@ export function createLiveViewerRunner(options) {
50
53
  noTimeout: options.timeoutMs === 0,
51
54
  authMode: options.authMode,
52
55
  adapterModules: options.adapterModules,
53
- onViewerEvent: (event) => emit(event),
56
+ signal,
57
+ onViewerEvent: (event) => {
58
+ if (event.type === "cell_finished") {
59
+ finished = true;
60
+ }
61
+ if (signal.aborted) {
62
+ return;
63
+ }
64
+ emit(event);
65
+ },
54
66
  });
67
+ if (signal.aborted) {
68
+ return;
69
+ }
70
+ if (!finished && result.exitCode !== 0) {
71
+ const message = subprocessFailureMessage(result.exitCode, result.stderr);
72
+ emit({ type: "error", message, ...cell });
73
+ emit({
74
+ type: "cell_finished",
75
+ ...cell,
76
+ passed: false,
77
+ durationMs: 0,
78
+ failures: [{ matcher: "liveScenario", message }],
79
+ });
80
+ }
55
81
  }
56
82
  catch (error) {
83
+ if (signal.aborted) {
84
+ return;
85
+ }
57
86
  const message = error instanceof Error ? error.message : String(error);
58
87
  emit({ type: "error", message, ...cell });
59
88
  emit({
@@ -1 +1 @@
1
- {"version":3,"file":"live-runner.js","sourceRoot":"","sources":["../../src/viewer/live-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAehE,SAAS,QAAQ,CAAC,GAAc;IAC/B,OAAO;QACN,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpC,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,sBAAsB,CAAC,OAAgC;IACtE,OAAO;QACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM;YAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC3B,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;gBACxC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;gBACnD,IAAI,CAAC;oBACJ,IAAI,EAAE,eAAe;oBACrB,GAAG,IAAI;oBACP,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,CAAC;oBACb,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;iBACzD,CAAC,CAAC;gBACH,OAAO;YACR,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO;YACR,CAAC;YACD,MAAM,OAAO,GAAG,GAAS,EAAE;gBAC1B,sBAAsB,EAAE,CAAC;YAC1B,CAAC,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC;gBACJ,MAAM,iBAAiB,CAAC;oBACvB,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,SAAS,EAAE,GAAG,CAAC,KAAK;oBACpB,YAAY,EAAE,GAAG,CAAC,QAAQ;oBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,WAAW,EAAE,GAAG,CAAC,KAAK;oBACtB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,UAAU,EAAE,GAAG,CAAC,GAAG;oBACnB,gBAAgB,EAAE,0BAA0B,EAAE;oBAC9C,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS,KAAK,CAAC;oBAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,cAAc,EAAE,OAAO,CAAC,cAAc;oBACtC,aAAa,EAAE,CAAC,KAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;iBAClD,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvE,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;gBAC1C,IAAI,CAAC;oBACJ,IAAI,EAAE,eAAe;oBACrB,GAAG,IAAI;oBACP,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,CAAC;oBACb,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC;iBAChD,CAAC,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACV,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,CAAC;QACF,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"live-runner.js","sourceRoot":"","sources":["../../src/viewer/live-runner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/viewer/page.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAA6C,MAAM,cAAc,CAAC;AAsY7F,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAoD/D"}
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/viewer/page.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAA6C,MAAM,cAAc,CAAC;AA2tD7F,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAiE/D"}