@introspection-ai/recipes 0.35.0 → 0.36.1

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 (92) hide show
  1. package/dist/mcp-chunks/{auth-command-SDTBVC2R.js → auth-command-GMMLBU24.js} +23 -23
  2. package/dist/mcp-chunks/call-arguments-WSURHOLV.js +16 -0
  3. package/dist/mcp-chunks/{call-command-WOZT2DLX.js → call-command-2VF6IKAZ.js} +33 -33
  4. package/dist/mcp-chunks/{chunk-WQBESOWG.js → chunk-22WCLO4D.js} +7 -6
  5. package/dist/mcp-chunks/{chunk-2IO3FXZJ.js → chunk-2JTXIMGE.js} +1 -1
  6. package/dist/mcp-chunks/{chunk-SVCKS5MW.js → chunk-347GOMV4.js} +5 -5
  7. package/dist/mcp-chunks/{chunk-IR5SMKTP.js → chunk-35LLRCRA.js} +303 -128
  8. package/dist/mcp-chunks/{chunk-EIXFNLU6.js → chunk-3AAF3FSI.js} +1 -1
  9. package/dist/mcp-chunks/{chunk-TKZA4MPW.js → chunk-4PN2J74H.js} +4 -4
  10. package/dist/mcp-chunks/{chunk-FWWPRZ37.js → chunk-4U4BUXQD.js} +16 -16
  11. package/dist/mcp-chunks/{chunk-XDARNDP3.js → chunk-5OO6WVPL.js} +1 -1
  12. package/dist/mcp-chunks/{chunk-4IXQQER3.js → chunk-5UK2JLTN.js} +5 -5
  13. package/dist/mcp-chunks/{chunk-M7VINGHY.js → chunk-6TIU2CDB.js} +7 -7
  14. package/dist/mcp-chunks/{chunk-VRTH73R5.js → chunk-6XC5JJWD.js} +73 -36
  15. package/dist/mcp-chunks/{chunk-OURSGEZX.js → chunk-7BVYBZ4J.js} +8 -8
  16. package/dist/mcp-chunks/{chunk-HM26TIPK.js → chunk-7IVXKYTI.js} +42 -22
  17. package/dist/mcp-chunks/{chunk-CO4CYU5W.js → chunk-ANNJGB6F.js} +62 -32
  18. package/dist/mcp-chunks/{chunk-TL7V3OBY.js → chunk-BIVX2WFX.js} +3 -3
  19. package/dist/mcp-chunks/{chunk-JRU5LZJQ.js → chunk-C4TJGC4F.js} +1 -1
  20. package/dist/mcp-chunks/{chunk-7X3JHUMH.js → chunk-CN5KSNWG.js} +1 -1
  21. package/dist/mcp-chunks/{chunk-UXI26V4F.js → chunk-D2SZ7KRY.js} +1 -1
  22. package/dist/mcp-chunks/{chunk-VWNF5PIF.js → chunk-D65GOMYV.js} +2 -2
  23. package/dist/mcp-chunks/{chunk-27XDYSXJ.js → chunk-DBNBEWRX.js} +4 -1
  24. package/dist/mcp-chunks/{chunk-P3S4OJPI.js → chunk-DUBQHYW4.js} +9 -9
  25. package/dist/mcp-chunks/{chunk-FMYP6JXX.js → chunk-ENBJFQ6H.js} +1 -1
  26. package/dist/mcp-chunks/{chunk-YTO7DITJ.js → chunk-FLUF2FRN.js} +3 -3
  27. package/dist/mcp-chunks/{chunk-IJTZ2ZRM.js → chunk-HFHIY5TO.js} +4 -4
  28. package/dist/mcp-chunks/{chunk-35JUFDQI.js → chunk-HI6VG5LR.js} +2 -2
  29. package/dist/mcp-chunks/{chunk-7OQUF6V6.js → chunk-IHOU2BEL.js} +2 -2
  30. package/dist/mcp-chunks/{chunk-7CI6DKEP.js → chunk-IMXPLUKE.js} +20 -20
  31. package/dist/mcp-chunks/{chunk-UHXTAPEC.js → chunk-LISNXOIQ.js} +1 -1
  32. package/dist/mcp-chunks/{chunk-ASFI5AJK.js → chunk-LRGMFF5S.js} +7 -7
  33. package/dist/mcp-chunks/{chunk-ALLS7CUV.js → chunk-LUVLTUKR.js} +1 -1
  34. package/dist/mcp-chunks/{chunk-SONMFI3S.js → chunk-LZUKBEQZ.js} +12 -12
  35. package/dist/mcp-chunks/{chunk-FQAJT6U2.js → chunk-O2C3HXGS.js} +1 -1
  36. package/dist/mcp-chunks/{chunk-EIF7GALA.js → chunk-OI3RTQXY.js} +1 -1
  37. package/dist/mcp-chunks/{chunk-CRX2G22W.js → chunk-OSTHIELS.js} +1 -1
  38. package/dist/mcp-chunks/{chunk-R636HUNL.js → chunk-P5YLK5G2.js} +17 -12
  39. package/dist/mcp-chunks/{chunk-YGRORKGT.js → chunk-QDFL757K.js} +99 -74
  40. package/dist/mcp-chunks/{chunk-DUJ5WAHC.js → chunk-QNZGFUKC.js} +2 -2
  41. package/dist/mcp-chunks/{chunk-GJ7DWMRT.js → chunk-R4OYHQ4V.js} +1 -1
  42. package/dist/mcp-chunks/{chunk-7ZZZ7MR2.js → chunk-RHXZKYM7.js} +1 -1
  43. package/dist/mcp-chunks/{chunk-POYT6GCW.js → chunk-RKQC2EE6.js} +2 -2
  44. package/dist/mcp-chunks/{chunk-43QNQO5C.js → chunk-RZZO3ZD4.js} +4 -4
  45. package/dist/mcp-chunks/{chunk-FUKRLUU7.js → chunk-SS7V7GVT.js} +4 -4
  46. package/dist/mcp-chunks/{chunk-FVZKQMZS.js → chunk-TYL2NVXI.js} +2 -2
  47. package/dist/mcp-chunks/{chunk-TDBM2UIR.js → chunk-U5QZHPCC.js} +10 -1
  48. package/dist/mcp-chunks/{chunk-6XBQDCGX.js → chunk-UQUM7ICD.js} +36 -17
  49. package/dist/mcp-chunks/{chunk-JQCSGX6E.js → chunk-VWPKJFK4.js} +2 -5
  50. package/dist/mcp-chunks/{chunk-AHDUZPNI.js → chunk-WXNGATQ7.js} +1 -1
  51. package/dist/mcp-chunks/{chunk-VCPUZFU7.js → chunk-YFCNRWLV.js} +2 -2
  52. package/dist/mcp-chunks/{chunk-IWXEOLJL.js → chunk-YPSODIQX.js} +18 -18
  53. package/dist/mcp-chunks/{chunk-CMDB57MS.js → chunk-YWFQPA4D.js} +2 -2
  54. package/dist/mcp-chunks/{chunk-YM7ZVYI2.js → chunk-ZI5XYM4C.js} +23 -7
  55. package/dist/mcp-chunks/{chunk-UYG7PAN2.js → chunk-ZJWZY54X.js} +2 -2
  56. package/dist/mcp-chunks/{chunk-ZLV5S5UP.js → chunk-ZXIF7MKN.js} +2 -2
  57. package/dist/mcp-chunks/{cli-67GWFF4R.js → cli-4OQD3H4N.js} +77 -70
  58. package/dist/mcp-chunks/client-LXKCCVMT.js +31 -0
  59. package/dist/mcp-chunks/{config-command-3IKIRWMW.js → config-command-72TCIWPV.js} +63 -36
  60. package/dist/mcp-chunks/daemon-command-QHS3ACBM.js +31 -0
  61. package/dist/mcp-chunks/{dist-YL3LFKVP.js → dist-74UCKZK5.js} +95 -69
  62. package/dist/mcp-chunks/{emit-ts-command-YWKROLL2.js → emit-ts-command-KD4ON2SE.js} +34 -22
  63. package/dist/mcp-chunks/{generate-cli-runner-CZEVY2Y7.js → generate-cli-runner-HWGI6HPL.js} +55 -49
  64. package/dist/mcp-chunks/generated-daemon-runtime-7ORS5KBR.js +31 -0
  65. package/dist/mcp-chunks/{inspect-cli-command-5Y2LORK5.js → inspect-cli-command-FT5JSB7V.js} +9 -9
  66. package/dist/mcp-chunks/{launch-43TA3HYF.js → launch-AHLKP2VM.js} +1 -1
  67. package/dist/mcp-chunks/{lifecycle-BY2ILXTB.js → lifecycle-BJDITFWN.js} +1 -1
  68. package/dist/mcp-chunks/{list-command-7RU7NNAV.js → list-command-YKF7RN6Y.js} +30 -30
  69. package/dist/mcp-chunks/{output-utils-2R3SA6KR.js → output-utils-LYB5IJRD.js} +3 -3
  70. package/dist/mcp-chunks/{prompt-CH6TK0bC-GKQOEUY4.js → prompt-CH6TK0bC-B3USYOND.js} +1 -1
  71. package/dist/mcp-chunks/{record-command-ROIRRNFS.js → record-command-MJW3Z5E5.js} +5 -5
  72. package/dist/mcp-chunks/{replay-command-Y2MYVQTL.js → replay-command-5ZHBUOLE.js} +6 -6
  73. package/dist/mcp-chunks/{resource-command-VUV7AYYQ.js → resource-command-L4I24AX5.js} +9 -9
  74. package/dist/mcp-chunks/{result-utils-5U7NVXDZ.js → result-utils-5WRI66KV.js} +3 -3
  75. package/dist/mcp-chunks/runtime-IKWDQLZF.js +38 -0
  76. package/dist/mcp-chunks/{runtime-wrapper-3BVFTSWJ.js → runtime-wrapper-WFMNIHD5.js} +3 -3
  77. package/dist/mcp-chunks/{serve-command-BXLQWHFW.js → serve-command-KNCSJUXS.js} +185 -78
  78. package/dist/mcp-chunks/{timeouts-6GL2F44N.js → timeouts-2ZHGSB3R.js} +3 -3
  79. package/dist/mcp-chunks/{vault-command-JCMW3DQA.js → vault-command-7EDL45AA.js} +4 -4
  80. package/dist/mcp-chunks/{webapi-UMWFGMQV.js → webapi-NNCZGUMZ.js} +46 -46
  81. package/dist/mcp-daemon.js +27 -27
  82. package/dist/mcp-run-worker.js +27 -27
  83. package/dist/pi-extension.d.ts.map +1 -1
  84. package/dist/pi-extension.js +8 -1
  85. package/dist/pi-extension.js.map +1 -1
  86. package/docs/slack.md +6 -0
  87. package/package.json +12 -12
  88. package/dist/mcp-chunks/call-arguments-ER7NWEPS.js +0 -16
  89. package/dist/mcp-chunks/client-MQMNAYYW.js +0 -31
  90. package/dist/mcp-chunks/daemon-command-OMOZ5MP7.js +0 -31
  91. package/dist/mcp-chunks/generated-daemon-runtime-SRFULTIT.js +0 -31
  92. package/dist/mcp-chunks/runtime-Q4SCCOQE.js +0 -38
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
2
2
 
3
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/lifecycle.js
3
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/lifecycle.js
4
4
  var DEFAULT_KEEP_ALIVE = /* @__PURE__ */ new Set(["chrome-devtools", "mobile-mcp", "playwright", "cloudbase"]);
5
5
  var includeOverride = parseList(process.env.MCPORTER_KEEPALIVE);
6
6
  var excludeOverride = parseList(process.env.MCPORTER_DISABLE_KEEPALIVE ?? process.env.MCPORTER_NO_KEEPALIVE);
@@ -4,12 +4,12 @@ import {
4
4
  extraDimText,
5
5
  redText,
6
6
  yellowText
7
- } from "./chunk-CRX2G22W.js";
7
+ } from "./chunk-OSTHIELS.js";
8
8
  import {
9
9
  analyzeConnectionError
10
- } from "./chunk-35JUFDQI.js";
10
+ } from "./chunk-HI6VG5LR.js";
11
11
 
12
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/cli/path-utils.js
12
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/cli/path-utils.js
13
13
  import os from "node:os";
14
14
  import path from "node:path";
15
15
  function formatPathForDisplay(filePath) {
@@ -19,7 +19,7 @@ function formatPathForDisplay(filePath) {
19
19
  return displayPath;
20
20
  }
21
21
 
22
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/cli/list-format.js
22
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/cli/list-format.js
23
23
  function renderServerListRow(result, timeoutMs, options = {}) {
24
24
  const description = result.server.description ? dimText(` \u2014 ${result.server.description}`) : "";
25
25
  const durationLabel = dimText(`${(result.durationMs / 1e3).toFixed(1)}s`);
@@ -2,27 +2,27 @@ import { createRequire as __createRequire } from "node:module"; const require =
2
2
  import {
3
3
  isRecord,
4
4
  parseJsonBuffer
5
- } from "./chunk-XDARNDP3.js";
5
+ } from "./chunk-5OO6WVPL.js";
6
6
  import {
7
7
  writeTextFileAtomic
8
- } from "./chunk-7OQUF6V6.js";
8
+ } from "./chunk-IHOU2BEL.js";
9
9
  import {
10
10
  homeConfigCandidates,
11
11
  listConfigLayerPaths,
12
12
  pathExists,
13
13
  pathExistsAsync,
14
14
  resolveConfigPath
15
- } from "./chunk-43QNQO5C.js";
15
+ } from "./chunk-RZZO3ZD4.js";
16
16
  import {
17
17
  expandHome,
18
18
  resolveEnvPlaceholders
19
- } from "./chunk-JQCSGX6E.js";
19
+ } from "./chunk-VWPKJFK4.js";
20
20
  import {
21
21
  resolveLifecycle
22
- } from "./chunk-EIXFNLU6.js";
22
+ } from "./chunk-3AAF3FSI.js";
23
23
  import {
24
24
  external_exports
25
- } from "./chunk-IR5SMKTP.js";
25
+ } from "./chunk-35LLRCRA.js";
26
26
  import {
27
27
  __commonJS,
28
28
  __require,
@@ -2024,14 +2024,14 @@ var require_toml = __commonJS({
2024
2024
  }
2025
2025
  });
2026
2026
 
2027
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/config.js
2027
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/config.js
2028
2028
  import path6 from "node:path";
2029
2029
 
2030
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/config/read-config.js
2030
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/config/read-config.js
2031
2031
  import fs from "node:fs/promises";
2032
2032
  import path from "node:path";
2033
2033
 
2034
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/config-schema.js
2034
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/config-schema.js
2035
2035
  var OAuthRequestedScopeSchema = external_exports.string().regex(/^[\x21\x23-\x5B\x5D-\x7E]+(?: [\x21\x23-\x5B\x5D-\x7E]+)*$/, "OAuth requested scope must be a non-empty, space-separated list of OAuth scope tokens.");
2036
2036
  var ImportKindSchema = external_exports.enum(["cursor", "claude-code", "claude-desktop", "codex", "windsurf", "opencode", "vscode"]).describe("Supported editor/client configurations to import MCP servers from");
2037
2037
  var DEFAULT_IMPORTS = [
@@ -2149,7 +2149,7 @@ var RawConfigSchema = external_exports.object({
2149
2149
  imports: external_exports.array(ImportKindSchema).optional().describe("Editor configurations to import servers from. Omit to use defaults, or set to [] to disable imports")
2150
2150
  }).describe("mcporter configuration file schema");
2151
2151
 
2152
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/config/read-config.js
2152
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/config/read-config.js
2153
2153
  async function loadConfigLayers(options, rootDir) {
2154
2154
  const explicitPath = options.configPath ?? process.env.MCPORTER_CONFIG;
2155
2155
  if (explicitPath) {
@@ -2216,12 +2216,12 @@ function includesErrnoMessage(error, code) {
2216
2216
  return typeof message === "string" && message.includes(code);
2217
2217
  }
2218
2218
 
2219
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/config/imports/external.js
2219
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/config/imports/external.js
2220
2220
  var import_toml = __toESM(require_toml(), 1);
2221
2221
  import fs2 from "node:fs/promises";
2222
2222
  import path3 from "node:path";
2223
2223
 
2224
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/config/imports/paths-utils.js
2224
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/config/imports/paths-utils.js
2225
2225
  import os from "node:os";
2226
2226
  import path2 from "node:path";
2227
2227
  function normalizeProjectPath(input) {
@@ -2249,7 +2249,7 @@ function pathsEqual(a, b) {
2249
2249
  return a === b;
2250
2250
  }
2251
2251
 
2252
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/config/imports/external.js
2252
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/config/imports/external.js
2253
2253
  async function readExternalEntries(filePath, options = {}) {
2254
2254
  if (!await pathExistsAsync(filePath)) {
2255
2255
  return null;
@@ -2501,7 +2501,7 @@ function shouldIgnoreParseError(error) {
2501
2501
  return "fromTOML" in error;
2502
2502
  }
2503
2503
 
2504
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/config/imports/paths.js
2504
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/config/imports/paths.js
2505
2505
  import os2 from "node:os";
2506
2506
  import path4 from "node:path";
2507
2507
  function pathsForImport(kind, rootDir) {
@@ -2635,7 +2635,7 @@ function dedupePaths(paths) {
2635
2635
  return result;
2636
2636
  }
2637
2637
 
2638
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/config-normalize.js
2638
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/config-normalize.js
2639
2639
  import fs3 from "node:fs";
2640
2640
  import path5 from "node:path";
2641
2641
  function normalizeServerEntry(name, raw, baseDir, source, sources, context = {}) {
@@ -2919,7 +2919,7 @@ function normalizeLogging(raw) {
2919
2919
  return void 0;
2920
2920
  }
2921
2921
 
2922
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/config.js
2922
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/config.js
2923
2923
  async function buildServerDefinitions(layers, rootDir) {
2924
2924
  const merged = /* @__PURE__ */ new Map();
2925
2925
  for (const layer of layers) {
@@ -4,7 +4,7 @@ import {
4
4
  printParseErrorCode
5
5
  } from "./chunk-T4MQCFIK.js";
6
6
 
7
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/config/imports/shared.js
7
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/config/imports/shared.js
8
8
  function parseJsonBuffer(buffer) {
9
9
  const errors = [];
10
10
  const parsed = parse(buffer, errors, { allowTrailingComma: true });
@@ -1,18 +1,18 @@
1
1
  import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
2
2
  import {
3
3
  findServerByHttpUrl
4
- } from "./chunk-DUJ5WAHC.js";
4
+ } from "./chunk-QNZGFUKC.js";
5
5
  import {
6
6
  persistEphemeralServer,
7
7
  resolveEphemeralServer,
8
8
  splitCommandLine
9
- } from "./chunk-ASFI5AJK.js";
9
+ } from "./chunk-LRGMFF5S.js";
10
10
  import {
11
11
  looksLikeHttpUrl,
12
12
  normalizeHttpUrlCandidate
13
- } from "./chunk-UHXTAPEC.js";
13
+ } from "./chunk-LISNXOIQ.js";
14
14
 
15
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/cli/adhoc-help.js
15
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/cli/adhoc-help.js
16
16
  var ADHOC_SERVER_HELP_ENTRIES = [
17
17
  { flag: "--http-url <url>", description: "Register an HTTP server for this run." },
18
18
  { flag: "--allow-http", description: "Permit plain http:// URLs with --http-url." },
@@ -36,7 +36,7 @@ function renderAdhocServerHelpLines(width = 23) {
36
36
  return ADHOC_SERVER_HELP_ENTRIES.map((entry) => ` ${entry.flag.padEnd(width)}${entry.description}`);
37
37
  }
38
38
 
39
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/cli/ephemeral-target.js
39
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/cli/ephemeral-target.js
40
40
  async function prepareEphemeralServerTarget(options) {
41
41
  let target = options.target;
42
42
  let spec = options.ephemeral ? { ...options.ephemeral } : void 0;
@@ -4,13 +4,13 @@ import {
4
4
  withFileLock,
5
5
  writeJsonFile,
6
6
  writeTextFileAtomic
7
- } from "./chunk-7OQUF6V6.js";
7
+ } from "./chunk-IHOU2BEL.js";
8
8
 
9
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/oauth-vault.js
9
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/oauth-vault.js
10
10
  import crypto from "node:crypto";
11
11
  import path2 from "node:path";
12
12
 
13
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/oauth-credential-validation.js
13
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/oauth-credential-validation.js
14
14
  function isRecord(value) {
15
15
  return Boolean(value && typeof value === "object" && !Array.isArray(value));
16
16
  }
@@ -31,7 +31,7 @@ function isStoredOAuthClientInformation(value) {
31
31
  return isOptionalString(value, "issuer");
32
32
  }
33
33
 
34
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/oauth-token-generation.js
34
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/oauth-token-generation.js
35
35
  import { randomUUID } from "node:crypto";
36
36
  import { isDeepStrictEqual } from "node:util";
37
37
  var TOKEN_GENERATION_FIELD = "__mcporter_generation";
@@ -111,7 +111,7 @@ function sameOAuthClientValue(left, right) {
111
111
  return isDeepStrictEqual(withoutClientGeneration(left), withoutClientGeneration(right));
112
112
  }
113
113
 
114
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/runtime/environment.js
114
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/runtime/environment.js
115
115
  import { AsyncLocalStorage } from "node:async_hooks";
116
116
  import os from "node:os";
117
117
  import path from "node:path";
@@ -134,7 +134,7 @@ function runtimeStateDir(kind) {
134
134
  return root && path.isAbsolute(root) ? path.join(root, "mcporter") : path.join(runtimeHome(), ".mcporter");
135
135
  }
136
136
 
137
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/oauth-vault.js
137
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/oauth-vault.js
138
138
  function getOAuthVaultPath() {
139
139
  return path2.join(runtimeStateDir("data"), "credentials.json");
140
140
  }
@@ -431,7 +431,7 @@ async function clearVaultEntry(definition, scope) {
431
431
  });
432
432
  }
433
433
 
434
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/oauth-persistence-stores.js
434
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/oauth-persistence-stores.js
435
435
  import fs from "node:fs/promises";
436
436
  import path3 from "node:path";
437
437
  function withStoredExpiry(tokens) {
@@ -16,52 +16,52 @@ import {
16
16
  resolveSystemPowerShellPath,
17
17
  secureDaemonDirectory,
18
18
  upgradeLegacyDaemonDirectory
19
- } from "./chunk-YGRORKGT.js";
19
+ } from "./chunk-QDFL757K.js";
20
20
  import {
21
21
  NON_INTERACTIVE_ELICITATION_HINT,
22
22
  createNonInteractiveElicitationResponder
23
- } from "./chunk-7ZZZ7MR2.js";
23
+ } from "./chunk-RHXZKYM7.js";
24
24
  import {
25
25
  isOAuthFlowError,
26
26
  resolveOAuthTimeoutFromEnv
27
- } from "./chunk-SONMFI3S.js";
27
+ } from "./chunk-LZUKBEQZ.js";
28
28
  import {
29
29
  withRuntimeEnvironment
30
- } from "./chunk-M7VINGHY.js";
30
+ } from "./chunk-6TIU2CDB.js";
31
31
  import {
32
32
  MCPORTER_VERSION
33
- } from "./chunk-IWXEOLJL.js";
33
+ } from "./chunk-YPSODIQX.js";
34
34
  import {
35
35
  getChromeDevtoolsRelayDecision,
36
36
  normalizeTimeout
37
- } from "./chunk-P3S4OJPI.js";
37
+ } from "./chunk-DUBQHYW4.js";
38
38
  import {
39
39
  RawEntrySchema,
40
40
  loadServerDefinitions
41
- } from "./chunk-FWWPRZ37.js";
41
+ } from "./chunk-4U4BUXQD.js";
42
42
  import {
43
43
  isProcessRunning,
44
44
  withFileLock,
45
45
  writeJsonFile
46
- } from "./chunk-7OQUF6V6.js";
46
+ } from "./chunk-IHOU2BEL.js";
47
47
  import {
48
48
  mcporterDir
49
- } from "./chunk-ZLV5S5UP.js";
49
+ } from "./chunk-ZXIF7MKN.js";
50
50
  import {
51
51
  isKeepAliveServer
52
- } from "./chunk-EIXFNLU6.js";
52
+ } from "./chunk-3AAF3FSI.js";
53
53
  import {
54
54
  SdkErrorCode,
55
55
  external_exports
56
- } from "./chunk-IR5SMKTP.js";
56
+ } from "./chunk-35LLRCRA.js";
57
57
 
58
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/daemon/socket-rpc.js
58
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/daemon/socket-rpc.js
59
59
  import { createHmac, randomBytes, timingSafeEqual } from "node:crypto";
60
60
  import fs from "node:fs/promises";
61
61
  import net from "node:net";
62
62
  import path from "node:path";
63
63
 
64
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/daemon/protocol.js
64
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/daemon/protocol.js
65
65
  var DAEMON_PROTOCOL_VERSION = 3;
66
66
  var MAX_DAEMON_PAYLOAD_BYTES = 4 * 1024 * 1024;
67
67
  var DAEMON_PROGRESS_INTERVAL_MS = 250;
@@ -86,7 +86,7 @@ function resolveProgressTiming(requestedIdleTimeoutMs) {
86
86
  };
87
87
  }
88
88
 
89
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/daemon/socket-rpc.js
89
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/daemon/socket-rpc.js
90
90
  async function daemonKey() {
91
91
  await secureDaemonDirectory();
92
92
  const file = path.join(daemonRunDir(), "user.key");
@@ -225,11 +225,11 @@ async function requestDaemon(socketPath, request, idleTimeoutMs) {
225
225
  }
226
226
  }
227
227
 
228
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/daemon/client.js
228
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/daemon/client.js
229
229
  import { randomUUID as randomUUID3 } from "node:crypto";
230
230
  import fs3 from "node:fs/promises";
231
231
 
232
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/daemon/process-retirement.js
232
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/daemon/process-retirement.js
233
233
  import { execFile } from "node:child_process";
234
234
  import { promisify } from "node:util";
235
235
  var exec = promisify(execFile);
@@ -428,24 +428,24 @@ async function awaitRetirement(identities) {
428
428
  throw new Error("Verified legacy processes have not retired; cutover remains blocked. No process was signalled.");
429
429
  }
430
430
 
431
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/daemon/migration.js
431
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/daemon/migration.js
432
432
  import fs2 from "node:fs/promises";
433
433
  import net2 from "node:net";
434
434
  import path2 from "node:path";
435
435
  import { randomUUID as randomUUID2 } from "node:crypto";
436
436
 
437
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/daemon/idle-timer.js
437
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/daemon/idle-timer.js
438
438
  var MAX_NATIVE_TIMER_MS = 2147483647;
439
439
  function idleTimerDelay(timeoutMs, lastActivity) {
440
440
  const remaining = timeoutMs - (Date.now() - lastActivity);
441
441
  return Math.min(MAX_NATIVE_TIMER_MS, Math.max(1, remaining > 0 ? remaining : timeoutMs));
442
442
  }
443
443
 
444
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/daemon/broker.js
444
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/daemon/broker.js
445
445
  import { AsyncLocalStorage } from "node:async_hooks";
446
446
  import { randomUUID } from "node:crypto";
447
447
 
448
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/daemon/view-codec.js
448
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/daemon/view-codec.js
449
449
  var command = external_exports.discriminatedUnion("kind", [
450
450
  external_exports.object({
451
451
  kind: external_exports.literal("stdio"),
@@ -485,7 +485,7 @@ function decodeView(value) {
485
485
  return { definitions, clientInfo: parsed.clientInfo };
486
486
  }
487
487
 
488
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/daemon/broker.js
488
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/daemon/broker.js
489
489
  var notices = new AsyncLocalStorage();
490
490
  var BrokerError = class extends Error {
491
491
  code;
@@ -494,6 +494,11 @@ var BrokerError = class extends Error {
494
494
  this.code = code;
495
495
  }
496
496
  };
497
+ var ExpiredViewError = class extends BrokerError {
498
+ constructor() {
499
+ super("view_expired", "Config view expired; register before a new operation.");
500
+ }
501
+ };
497
502
  var DaemonBroker = class {
498
503
  generation = randomUUID();
499
504
  views = /* @__PURE__ */ new Map();
@@ -529,7 +534,7 @@ var DaemonBroker = class {
529
534
  throw new BrokerError("daemon_generation_changed", "Daemon generation changed; register before a new operation. The request was not replayed.");
530
535
  const view = this.views.get(request.view ?? "");
531
536
  if (!view)
532
- throw new BrokerError("view_expired", "Config view expired; register before a new operation.");
537
+ throw new ExpiredViewError();
533
538
  view.lastUsed = Date.now();
534
539
  return view;
535
540
  }
@@ -809,7 +814,7 @@ var DaemonBroker = class {
809
814
  }
810
815
  };
811
816
 
812
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/daemon/migration.js
817
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/daemon/migration.js
813
818
  async function probeDaemon(socketPath, method = "status") {
814
819
  return new Promise((resolve) => {
815
820
  const socket = net2.createConnection(socketPath);
@@ -915,7 +920,7 @@ async function stopVerifiedLegacyDaemons() {
915
920
  }
916
921
  }
917
922
 
918
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/daemon/startup-readiness.js
923
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/daemon/startup-readiness.js
919
924
  var DAEMON_STARTUP_TIMEOUT_MS = 45e3;
920
925
  var DAEMON_STARTUP_SLOW_NOTICE_MS = 5e3;
921
926
  var DAEMON_STARTUP_POLL_INTERVAL_MS = 100;
@@ -962,7 +967,7 @@ function delay(ms) {
962
967
  });
963
968
  }
964
969
 
965
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/daemon/client.js
970
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/daemon/client.js
966
971
  var DEFAULT_DAEMON_TIMEOUT_MS = 3e4;
967
972
  function resolveDaemonPaths(configPath) {
968
973
  const key = "user";
@@ -973,6 +978,9 @@ function resolveDaemonPaths(configPath) {
973
978
  metadataPath: getDaemonMetadataPath(key)
974
979
  };
975
980
  }
981
+ var RenewViewError = class extends Error {
982
+ code = "view_expired";
983
+ };
976
984
  var DaemonClient = class {
977
985
  options;
978
986
  socketPath;
@@ -1036,8 +1044,14 @@ var DaemonClient = class {
1036
1044
  epoch.drained = resolve;
1037
1045
  });
1038
1046
  const handle = await epoch.registration?.catch(() => void 0);
1039
- if (handle)
1040
- await this.sendRequest("releaseView", {}, void 0, handle);
1047
+ if (handle) {
1048
+ try {
1049
+ await this.sendRequest("releaseView", {}, void 0, handle);
1050
+ } catch (error) {
1051
+ if (!(error instanceof RenewViewError))
1052
+ throw error;
1053
+ }
1054
+ }
1041
1055
  })();
1042
1056
  this.retiring.add(epoch.release);
1043
1057
  void epoch.release.finally(() => this.retiring.delete(epoch.release)).catch(() => {
@@ -1058,27 +1072,48 @@ var DaemonClient = class {
1058
1072
  const epoch = this.epoch ??= { definitions: this.definitions, clientInfo: this.clientInfo, active: 0 };
1059
1073
  epoch.active++;
1060
1074
  try {
1061
- epoch.registration ??= (async () => {
1075
+ epoch.registrationParams ??= (async () => {
1062
1076
  await this.ensureDaemon(timeoutMs);
1063
1077
  const definitions = epoch.definitions ?? await loadServerDefinitions({
1064
1078
  configPath: this.options.configExplicit ? this.options.configPath : void 0,
1065
1079
  rootDir: this.options.rootDir
1066
1080
  });
1067
1081
  const effective = await Promise.all(definitions.filter(isKeepAliveServer).map((definition2) => effectiveDefinition(definition2, process.env, "view")));
1068
- return this.sendRequest("registerView", {
1069
- definitions: effective,
1070
- clientInfo: epoch.clientInfo
1071
- });
1082
+ return { definitions: effective, clientInfo: epoch.clientInfo };
1072
1083
  })();
1084
+ const register = () => epoch.registrationParams.then((registrationParams) => this.sendRequest("registerView", registrationParams));
1085
+ const registration2 = epoch.registration ??= register();
1073
1086
  let handle;
1074
1087
  try {
1075
- handle = await epoch.registration;
1088
+ handle = await registration2;
1076
1089
  } catch (error) {
1077
1090
  void this.retire(epoch).catch(() => {
1078
1091
  });
1079
1092
  throw error;
1080
1093
  }
1081
- return await this.sendRequest(method, params, timeoutMs, handle);
1094
+ try {
1095
+ return await this.sendRequest(method, params, timeoutMs, handle);
1096
+ } catch (error) {
1097
+ if (!(error instanceof RenewViewError) || this.epoch !== epoch)
1098
+ throw error;
1099
+ if (epoch.registration === registration2)
1100
+ epoch.registration = register();
1101
+ let renewed;
1102
+ try {
1103
+ renewed = await epoch.registration;
1104
+ } catch (registrationError) {
1105
+ void this.retire(epoch).catch(() => {
1106
+ });
1107
+ throw registrationError;
1108
+ }
1109
+ if (this.epoch !== epoch)
1110
+ throw error;
1111
+ if (renewed.generation !== handle.generation)
1112
+ throw Object.assign(new Error("Daemon generation changed during config view renewal; request not replayed."), {
1113
+ code: "daemon_generation_changed"
1114
+ });
1115
+ return await this.sendRequest(method, params, timeoutMs, renewed);
1116
+ }
1082
1117
  } catch (error) {
1083
1118
  const code = error.code;
1084
1119
  if (code === "daemon_generation_changed" || code === "view_expired" || isTransportError(error))
@@ -1100,7 +1135,7 @@ var DaemonClient = class {
1100
1135
  if (previous && !isProcessRunning(previous.pid))
1101
1136
  throw new Error("Previous daemon exited unexpectedly; verify retirement of its transports before deliberate recovery. No replacement was launched.");
1102
1137
  this.startingPromise ??= (async () => {
1103
- const { launchDaemonDetached } = await import("./launch-43TA3HYF.js");
1138
+ const { launchDaemonDetached } = await import("./launch-AHLKP2VM.js");
1104
1139
  await launchDaemonDetached({
1105
1140
  configPath: this.options.configPath,
1106
1141
  metadataPath: this.metadataPath,
@@ -1145,7 +1180,8 @@ var DaemonClient = class {
1145
1180
  console.warn(`[mcporter] ${notice}`);
1146
1181
  }
1147
1182
  if (!parsed.ok) {
1148
- const error = new Error(parsed.error?.message ?? "Daemon error");
1183
+ const message = parsed.error?.message ?? "Daemon error";
1184
+ const error = parsed.error?.code === "view_expired" && parsed.error.retry === "renew_view" ? new RenewViewError(message) : new Error(message);
1149
1185
  error.code = parsed.error?.code;
1150
1186
  throw error;
1151
1187
  }
@@ -1192,6 +1228,7 @@ export {
1192
1228
  ProcessObservationError,
1193
1229
  idleTimerDelay,
1194
1230
  BrokerError,
1231
+ ExpiredViewError,
1195
1232
  DaemonBroker,
1196
1233
  legacyDaemons,
1197
1234
  assertLegacyDrained,
@@ -6,23 +6,23 @@ import {
6
6
  runtimeStateDir,
7
7
  sameOAuthTokenGeneration,
8
8
  vaultCredentialKeys
9
- } from "./chunk-M7VINGHY.js";
9
+ } from "./chunk-6TIU2CDB.js";
10
10
  import {
11
11
  canonicalizeFilePath,
12
12
  isFileLockTimeoutError,
13
13
  withFileLock
14
- } from "./chunk-7OQUF6V6.js";
14
+ } from "./chunk-IHOU2BEL.js";
15
15
  import {
16
16
  checkResourceAllowed,
17
17
  discoverOAuthServerInfo,
18
18
  refreshAuthorization,
19
19
  resourceUrlFromServerUrl
20
- } from "./chunk-IR5SMKTP.js";
20
+ } from "./chunk-35LLRCRA.js";
21
21
 
22
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/oauth-token-refresh.js
22
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/oauth-token-refresh.js
23
23
  import { Buffer } from "node:buffer";
24
24
 
25
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/oauth-client-info.js
25
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/oauth-client-info.js
26
26
  function buildStaticClientInformation(definition, options = {}) {
27
27
  if (!definition.oauthClientId) {
28
28
  return void 0;
@@ -48,7 +48,7 @@ function resolveOAuthClientSecret(definition, options = {}) {
48
48
  return definition.oauthClientSecret;
49
49
  }
50
50
 
51
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/oauth-refresh-lock.js
51
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/oauth-refresh-lock.js
52
52
  import { AsyncLocalStorage } from "node:async_hooks";
53
53
  import crypto from "node:crypto";
54
54
  import path from "node:path";
@@ -111,7 +111,7 @@ function filenameSafeLabel(value) {
111
111
  return value.replace(/[^A-Za-z0-9._-]+/g, "_").replace(/^[._-]+/, "").slice(0, LOCK_LABEL_MAX);
112
112
  }
113
113
 
114
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/oauth-token-refresh.js
114
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/oauth-token-refresh.js
115
115
  var TOKEN_EXPIRY_SKEW_SECONDS = 60;
116
116
  var TOKEN_REQUEST_TIMEOUT_MS = 1e4;
117
117
  var OAuthIssuerMismatchError = class extends Error {
@@ -506,7 +506,7 @@ function readClientSecret(definition, refreshClientSecretEnv) {
506
506
  return resolveOAuthClientSecret(definition, { rejectBlank: true });
507
507
  }
508
508
 
509
- // node_modules/.pnpm/mcporter@0.14.2/node_modules/mcporter/dist/oauth-persistence.js
509
+ // node_modules/.pnpm/mcporter@0.15.0/node_modules/mcporter/dist/oauth-persistence.js
510
510
  async function buildOAuthPersistence(definition, logger) {
511
511
  return await createOAuthPersistenceStores(definition, logger);
512
512
  }