@tempo-ai/mcp 0.0.108-staging.2 → 0.0.108

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
@@ -2,7 +2,7 @@
2
2
  import { createRequire as __tempoCreateRequire } from 'node:module'; const require = __tempoCreateRequire(import.meta.url);
3
3
  import {
4
4
  run
5
- } from "./chunk-ZREHCLUJ.js";
5
+ } from "./chunk-TLB5CTFV.js";
6
6
  import "./chunk-KFUOQZBJ.js";
7
7
 
8
8
  // src/bin.ts
@@ -8,7 +8,7 @@ import {
8
8
  import { Client } from "@modelcontextprotocol/sdk/client/index.js";
9
9
  import { InMemoryTransport } from "@modelcontextprotocol/sdk/inMemory.js";
10
10
  async function connectAggregate(options) {
11
- const { createTempoAggregate } = await import("./serve-PVYMDC76.js");
11
+ const { createTempoAggregate } = await import("./serve-C7D3CKVT.js");
12
12
  const handle = await createTempoAggregate(options);
13
13
  const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
14
14
  const client = new Client({ name: "tempo-mcp-cli", version: "0" });
@@ -127,4 +127,4 @@ export {
127
127
  runCall,
128
128
  runTools
129
129
  };
130
- //# sourceMappingURL=call-Y6OFNGWK.js.map
130
+ //# sourceMappingURL=call-VWBUQAPD.js.map
@@ -157,7 +157,7 @@ async function run(argv) {
157
157
  process.stderr.write(USAGE);
158
158
  return 1;
159
159
  }
160
- const { runServe } = await import("./serve-PVYMDC76.js");
160
+ const { runServe } = await import("./serve-C7D3CKVT.js");
161
161
  return await runServe(options);
162
162
  }
163
163
  switch (subcommand) {
@@ -172,11 +172,11 @@ async function run(argv) {
172
172
  return await runToken(rest);
173
173
  }
174
174
  case "tools": {
175
- const { runTools } = await import("./call-Y6OFNGWK.js");
175
+ const { runTools } = await import("./call-VWBUQAPD.js");
176
176
  return await runTools(rest);
177
177
  }
178
178
  case "call": {
179
- const { runCall } = await import("./call-Y6OFNGWK.js");
179
+ const { runCall } = await import("./call-VWBUQAPD.js");
180
180
  return await runCall(rest);
181
181
  }
182
182
  default:
@@ -195,4 +195,4 @@ async function run(argv) {
195
195
  export {
196
196
  run
197
197
  };
198
- //# sourceMappingURL=chunk-ZREHCLUJ.js.map
198
+ //# sourceMappingURL=chunk-TLB5CTFV.js.map
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __tempoCreateRequire } from 'node:module'; const require = __tempoCreateRequire(import.meta.url);
2
2
  import {
3
3
  run
4
- } from "./chunk-ZREHCLUJ.js";
4
+ } from "./chunk-TLB5CTFV.js";
5
5
  import "./chunk-KFUOQZBJ.js";
6
6
  export {
7
7
  run
@@ -48572,6 +48572,8 @@ on:
48572
48572
 
48573
48573
  permissions:
48574
48574
  contents: read
48575
+ # Compatibility with older CLIs during rollout; the current CLI publishes
48576
+ # all statuses through the Tempo GitHub App instead of this token.
48575
48577
  statuses: write
48576
48578
  pull-requests: write
48577
48579
  # GitHub OIDC is the only credential Tempo accepts. No secret is stored.
@@ -48649,14 +48651,6 @@ jobs:
48649
48651
  # optimization, so a registry hiccup must not fail the run.
48650
48652
  - run: npx --yes @tempo-ai/visual-review@latest claim || echo "::warning::capture claim announcement unavailable; capture claims after setup"
48651
48653
 
48652
- - if: github.event_name == 'pull_request'
48653
- run: |
48654
- gh api "repos/\${{ github.repository }}/statuses/\${{ github.event.pull_request.head.sha }}" \\
48655
- -f state=pending -f context=visual-review \\
48656
- -f "description=capturing storyboards\u2026"
48657
- env:
48658
- GH_TOKEN: \${{ github.token }}
48659
-
48660
48654
  - uses: pnpm/action-setup@v4
48661
48655
  - uses: actions/setup-node@v4
48662
48656
  with:
@@ -48695,16 +48689,13 @@ jobs:
48695
48689
  run: npx --yes @tempo-ai/visual-review@latest claim --release || echo "::warning::capture claim release unavailable; the lease expires on its own"
48696
48690
 
48697
48691
  - if: failure() && github.event_name == 'pull_request'
48698
- run: |
48699
- gh api "repos/\${{ github.repository }}/statuses/\${{ github.event.pull_request.head.sha }}" \\
48700
- -f state=failure -f context=visual-review \\
48701
- -f "description=capture failed \u2014 see workflow logs"
48692
+ run: npx --yes @tempo-ai/visual-review@latest report --fallback-failure --sha \${{ github.event.pull_request.head.sha }}
48702
48693
  env:
48703
48694
  GH_TOKEN: \${{ github.token }}
48704
48695
 
48705
- # Polls the run until Tempo has compared it, then posts the verdict and the
48706
- # sticky PR comment. Approvals in the Tempo report flip the check afterwards
48707
- # without a CI re-run.
48696
+ # Polls the run until Tempo has compared it, then posts the sticky PR
48697
+ # comment. Tempo's GitHub App owns every status, including declarations,
48698
+ # failures, and portal approvals \u2014 no CI re-run needed for an approval.
48708
48699
  report:
48709
48700
  needs: capture
48710
48701
  if: github.event_name == 'pull_request'
@@ -48874,6 +48865,9 @@ ${hostDirComment(tempoDir)}${tempoDir === "." ? "" : ` - run: cd ${tempoDir
48874
48865
  }
48875
48866
  function analyzeExistingWorkflow(workflow, options) {
48876
48867
  const body = workflow.split("\n").filter((line) => !/^\s*#/.test(line)).join("\n");
48868
+ const hasClaimStart = /@tempo-ai\/visual-review@[^\s"']+[ \t]+claim(?=[ \t]*(?:$|[|&;#'"]))/m.test(
48869
+ body.replace(/\\\r?\n[ \t]*/g, " ")
48870
+ );
48877
48871
  const drift = [];
48878
48872
  const push = (item) => drift.push(item);
48879
48873
  if (!/id-token:\s*write/.test(body)) {
@@ -48892,7 +48886,7 @@ function analyzeExistingWorkflow(workflow, options) {
48892
48886
  push({
48893
48887
  code: "missing_permissions",
48894
48888
  message: `The workflow does not grant ${missingPermissions.join(", ")}.`,
48895
- fix: "Under `permissions:` grant `contents: read` (checkout), `statuses: write` (the pending / fallback `visual-review` status) and `pull-requests: write` (the sticky report comment)."
48889
+ fix: "Under `permissions:` grant `contents: read` (checkout), `statuses: write` (compatibility with older CLI releases) and `pull-requests: write` (the sticky report comment). Current releases publish statuses through the Tempo GitHub App."
48896
48890
  });
48897
48891
  }
48898
48892
  if (!workflowHasPullRequestTrigger(body)) {
@@ -48935,7 +48929,7 @@ function analyzeExistingWorkflow(workflow, options) {
48935
48929
  fix: "Add `npx --yes @tempo-ai/visual-review@latest capture --parallel 2` (with `TEMPO_DEVSERVER_PROTECTED_ROOTS: ${{ github.workspace }}`) after the install and browser steps \u2014 without it nothing is captured or compared."
48936
48930
  });
48937
48931
  }
48938
- if (!/visual-review@[^\s"']+\s+claim\b/.test(body)) {
48932
+ if (!hasClaimStart) {
48939
48933
  push({
48940
48934
  code: "missing_claim_step",
48941
48935
  message: "No `claim` step runs before dependency setup.",
@@ -48964,11 +48958,12 @@ function analyzeExistingWorkflow(workflow, options) {
48964
48958
  fix: "Gate capture on `!contains(github.event.pull_request.body, '<!-- tempo-no-visual-change -->')` and add the `no-visual-change` job that posts success."
48965
48959
  });
48966
48960
  }
48967
- if (!/state=pending/.test(body) || !/context=visual-review/.test(body)) {
48961
+ const hasLegacyPendingStatus = /state=pending/.test(body) && /context=visual-review/.test(body);
48962
+ if (!hasClaimStart && !hasLegacyPendingStatus) {
48968
48963
  push({
48969
48964
  code: "missing_pending_status",
48970
48965
  message: "The workflow never posts the `visual-review` status as pending.",
48971
- fix: "Post `-f state=pending -f context=visual-review` on the PR head at capture start so the check appears within a minute of the push instead of only when capture finishes."
48966
+ fix: "Add `npx --yes @tempo-ai/visual-review@latest claim` after checkout and before dependency setup; it posts pending on the PR head through the Tempo GitHub App, so every visual-review status has the same publisher."
48972
48967
  });
48973
48968
  }
48974
48969
  return drift;
@@ -51339,7 +51334,7 @@ function buildBackends(runtime, toolsets, workspace) {
51339
51334
  }
51340
51335
 
51341
51336
  // src/version.ts
51342
- var CLI_VERSION = "0.0.108-staging.2";
51337
+ var CLI_VERSION = "0.0.108";
51343
51338
 
51344
51339
  // src/canvas-hooks.ts
51345
51340
  var import_pngjs4 = __toESM(require_png(), 1);
@@ -52276,4 +52271,4 @@ export {
52276
52271
  runServe,
52277
52272
  scopeParamsFor
52278
52273
  };
52279
- //# sourceMappingURL=serve-PVYMDC76.js.map
52274
+ //# sourceMappingURL=serve-C7D3CKVT.js.map