@tempo-ai/visual-review 0.0.113-staging.3 → 0.0.113

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bin.js CHANGED
@@ -6,7 +6,7 @@ async function main(argv = process.argv.slice(2)) {
6
6
  const [command, ...commandArgs] = argv;
7
7
  switch (command) {
8
8
  case "capture":
9
- return await (await import("./cli-AVHP73RY.js")).main(commandArgs);
9
+ return await (await import("./cli-BJVATWX4.js")).main(commandArgs);
10
10
  case "claim":
11
11
  return await (await import("./claim-J654JAS6.js")).main(commandArgs);
12
12
  case "report":
@@ -4246,6 +4246,16 @@ import os from "os";
4246
4246
  import path6 from "path";
4247
4247
  var PRE_BOOT_CLOCK_SLACK_MS = 5 * 60 * 1e3;
4248
4248
 
4249
+ // ../tempo-devserver/install-environment-fallback.ts
4250
+ function missingInstallEnvironment(error) {
4251
+ const message = error instanceof Error ? error.message : String(error);
4252
+ return /(?:^|[\s/"'])(?:docker|pnpm|yarn|bun)(?:["'])?: (?:command )?not found\b/im.test(
4253
+ message
4254
+ ) || /['"](?:docker|pnpm|yarn|bun)['"] is not recognized as an internal or external command/i.test(
4255
+ message
4256
+ ) || /cannot connect to the docker daemon/i.test(message) || /is the docker daemon running\?/i.test(message);
4257
+ }
4258
+
4249
4259
  // ../tempo-devserver/tempo-devserver.ts
4250
4260
  import { spawn as spawn5 } from "child_process";
4251
4261
  import { createHash as createHash3, randomUUID as randomUUID2 } from "crypto";
@@ -4869,7 +4879,7 @@ async function parcelEventToFileEvent(event, rootInfo) {
4869
4879
  // ../tempo-sdk/package.json
4870
4880
  var package_default = {
4871
4881
  name: "tempo-sdk",
4872
- version: "0.0.45",
4882
+ version: "0.0.51",
4873
4883
  type: "module",
4874
4884
  description: "Tempo SDK \u2014 Vite, Next.js, and Expo plugins for JSX annotation and shared page/storyboard types",
4875
4885
  repository: {
@@ -4950,7 +4960,7 @@ var package_default = {
4950
4960
  demo: "TEMPO=true pnpm --filter @tempo-modules/vite-annotate-plugin-demo dev",
4951
4961
  "demo:nextjs": "TEMPO=true pnpm --filter @tempo-modules/tempo-sdk-nextjs-demo dev",
4952
4962
  test: "vitest run",
4953
- "test:browser": "vitest run canvas-capture-determinism-browser.test.ts canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts",
4963
+ "test:browser": "vitest run asset-live-preview-browser.test.ts asset-popover-lifecycle-browser.test.ts component-controls-browser.test.ts canvas-controls-browser.test.ts canvas-capture-determinism-browser.test.ts canvas-host-vite-e2e.test.ts canvas-host-packed-sdk-e2e.test.ts error-tracking-e2e.test.ts",
4954
4964
  "test:watch": "vitest",
4955
4965
  "test:nextjs:unit": "vitest run nextjs-loader.test.ts nextjs-wrapper.test.ts nextjs-fixtures.test.ts nextjs-published.test.ts",
4956
4966
  "test:nextjs:integration": "vitest run nextjs-e2e-correctness.test.ts",
@@ -7345,6 +7355,7 @@ async function walkPagesDir(directory, collector) {
7345
7355
  var CanvasRegistry = class {
7346
7356
  constructor(projectRoot, tempoRoot, _pagesDir, options) {
7347
7357
  this.pendingRequestedCanvasPaths = null;
7358
+ this.requestedThisSession = /* @__PURE__ */ new Set();
7348
7359
  this.requestedCanvasesQueue = Promise.resolve();
7349
7360
  this.projectRoot = projectRoot;
7350
7361
  this.tempoRoot = tempoRoot;
@@ -7382,9 +7393,31 @@ var CanvasRegistry = class {
7382
7393
  async resetRequestedCanvases() {
7383
7394
  await this.runRequestedCanvasesExclusive(async () => {
7384
7395
  this.pendingRequestedCanvasPaths = null;
7396
+ this.requestedThisSession.clear();
7385
7397
  await rm3(this.requestedCanvasesPath, { force: true });
7386
7398
  });
7387
7399
  }
7400
+ /**
7401
+ * Drop demand registrations inherited from an older host session without
7402
+ * erasing canvases already requested through this registry instance.
7403
+ *
7404
+ * Canvas admission may run while first-time initialization is queued. The
7405
+ * registry queue makes both orderings safe: a reset that wins clears the old
7406
+ * file before admission writes it, while a reset that follows admission
7407
+ * observes the current-session request and preserves the file.
7408
+ */
7409
+ async resetStaleRequestedCanvases() {
7410
+ await this.runRequestedCanvasesExclusive(async () => {
7411
+ const requestedPaths = [...this.requestedThisSession];
7412
+ this.pendingRequestedCanvasPaths = requestedPaths;
7413
+ if (requestedPaths.length === 0) {
7414
+ await rm3(this.requestedCanvasesPath, { force: true });
7415
+ } else {
7416
+ await this.writeRequestedCanvasPaths(requestedPaths);
7417
+ }
7418
+ this.pendingRequestedCanvasPaths = null;
7419
+ });
7420
+ }
7388
7421
  requestedPathToAbsolutePath(relativePath) {
7389
7422
  if (typeof relativePath !== "string" || relativePath.length === 0) {
7390
7423
  return null;
@@ -7509,6 +7542,7 @@ var CanvasRegistry = class {
7509
7542
  }
7510
7543
  return this.runRequestedCanvasesExclusive(async () => {
7511
7544
  const requestedPath = this.toRequestedPath(absolutePath);
7545
+ this.requestedThisSession.add(requestedPath);
7512
7546
  const pruned = await this.pruneDeletedRequestedPaths(
7513
7547
  await this.readRequestedCanvasPaths()
7514
7548
  );
@@ -9567,9 +9601,24 @@ var TempoDevServer = class _TempoDevServer {
9567
9601
  }
9568
9602
  this.state.dependenciesInstalled = false;
9569
9603
  await this.persistStatus();
9570
- for (const step of steps) {
9604
+ try {
9605
+ for (const step of steps) {
9606
+ throwIfLaunchAborted(signal);
9607
+ await runInstallStep(step, signal);
9608
+ }
9609
+ } catch (error) {
9571
9610
  throwIfLaunchAborted(signal);
9572
- await runInstallStep(step, signal);
9611
+ if (!steps.some((step) => step.label === "custom tempo install") || !missingInstallEnvironment(error))
9612
+ throw error;
9613
+ const localSteps = await this.buildInstallSteps(false, false);
9614
+ if (!localSteps.length) throw error;
9615
+ console.warn(
9616
+ "[tempo-devserver] The configured installer needs unavailable local tooling; trying a local dependency install for this launch."
9617
+ );
9618
+ for (const step of localSteps) {
9619
+ throwIfLaunchAborted(signal);
9620
+ await runInstallStep(step, signal);
9621
+ }
9573
9622
  }
9574
9623
  };
9575
9624
  while (_TempoDevServer.installBarriers.has(this.projectRoot)) {
@@ -9599,9 +9648,9 @@ var TempoDevServer = class _TempoDevServer {
9599
9648
  throw error;
9600
9649
  }
9601
9650
  }
9602
- async buildInstallSteps(forceInstall) {
9651
+ async buildInstallSteps(forceInstall, useConfiguredScript = true) {
9603
9652
  const configuredInstall = this.config.scripts.install.trim();
9604
- if (!looksLikeGeneratedInstallScript(configuredInstall)) {
9653
+ if (useConfiguredScript && !looksLikeGeneratedInstallScript(configuredInstall)) {
9605
9654
  if (!forceInstall && await this.projectRootInstallReady() && await installCompletedForCurrentDeps(this.tempoRoot) && await this.tempoInstallReady()) {
9606
9655
  devLog("supervisor:custom_install_skipped_premat", {
9607
9656
  projectRoot: this.projectRoot,
@@ -9661,7 +9710,7 @@ var TempoDevServer = class _TempoDevServer {
9661
9710
  markerRoots: [this.tempoRoot]
9662
9711
  });
9663
9712
  }
9664
- if (!rootManager && !tempoManager) {
9713
+ if (useConfiguredScript && !rootManager && !tempoManager) {
9665
9714
  steps.push({
9666
9715
  cwd: this.commandCwd,
9667
9716
  command: configuredInstall,
@@ -10255,7 +10304,7 @@ var TempoDevServer = class _TempoDevServer {
10255
10304
  const firstInitialize = !this.state.initialized;
10256
10305
  const hostAlive = this.activeHostHasLivenessAuthority();
10257
10306
  if (firstInitialize && !hostAlive) {
10258
- await this.registry.resetRequestedCanvases();
10307
+ await this.registry.resetStaleRequestedCanvases();
10259
10308
  }
10260
10309
  const reconcileResult = await this.enqueueReconcile(
10261
10310
  "initialize",
@@ -14018,4 +14067,4 @@ export {
14018
14067
  buildBaselineCaptureArgs,
14019
14068
  main
14020
14069
  };
14021
- //# sourceMappingURL=chunk-MENKBHDB.js.map
14070
+ //# sourceMappingURL=chunk-RY7ZWRV5.js.map