@introspection-ai/recipes 0.25.1 → 0.26.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 (98) hide show
  1. package/dist/mcp-chunks/{auth-command-4WFRNU2I.js → auth-command-JBYNHHMV.js} +23 -27
  2. package/dist/mcp-chunks/call-arguments-S4EGFKUQ.js +15 -0
  3. package/dist/mcp-chunks/{call-command-JBIKXOGC.js → call-command-467BVXTE.js} +32 -33
  4. package/dist/mcp-chunks/{chunk-IPNSPKQK.js → chunk-3Q2Q7SBU.js} +12 -14
  5. package/dist/mcp-chunks/chunk-66P5FXP3.js +31 -0
  6. package/dist/mcp-chunks/{chunk-TF2YTYE4.js → chunk-6DVS7RBO.js} +1 -1
  7. package/dist/mcp-chunks/{chunk-IME7DGLJ.js → chunk-AK5ZEDEF.js} +2 -2
  8. package/dist/mcp-chunks/{chunk-OP3IW2V6.js → chunk-AP5VHS73.js} +2 -2
  9. package/dist/mcp-chunks/{chunk-B2LNXGAP.js → chunk-AS27BTCS.js} +1 -1
  10. package/dist/mcp-chunks/{chunk-MOEZ43ZL.js → chunk-BC2HDCYV.js} +1 -1
  11. package/dist/mcp-chunks/{chunk-RSTKSBVF.js → chunk-BSCNF4NY.js} +2 -2
  12. package/dist/mcp-chunks/chunk-BTU34BUG.js +1182 -0
  13. package/dist/mcp-chunks/{chunk-HN7WPMCA.js → chunk-CN5YF3IQ.js} +21042 -3688
  14. package/dist/mcp-chunks/{chunk-G6OMDUNG.js → chunk-CZ43ZITK.js} +1 -1
  15. package/dist/mcp-chunks/{chunk-JG4TRUPF.js → chunk-D2P2IV4H.js} +1 -1
  16. package/dist/mcp-chunks/{chunk-3R2WK3NB.js → chunk-DMBE47LM.js} +6 -6
  17. package/dist/mcp-chunks/{chunk-WTMJMM3B.js → chunk-EP22XMWK.js} +3 -30
  18. package/dist/mcp-chunks/{chunk-ITCCROID.js → chunk-EUDC3ICZ.js} +5 -5
  19. package/dist/mcp-chunks/{chunk-FX5NYWBH.js → chunk-G4H535MI.js} +3 -21
  20. package/dist/mcp-chunks/{chunk-HCOKLSOB.js → chunk-GA4ZYSRX.js} +4 -4
  21. package/dist/mcp-chunks/{chunk-C2KNLFZR.js → chunk-GEVQ2GJW.js} +2 -2
  22. package/dist/mcp-chunks/{chunk-WYLHHXI6.js → chunk-GK4LA4E6.js} +26 -11
  23. package/dist/mcp-chunks/{chunk-QZUC2T72.js → chunk-GL4AA5QV.js} +2 -2
  24. package/dist/mcp-chunks/{chunk-KW3ANJ36.js → chunk-HBN3ESMH.js} +4 -4
  25. package/dist/mcp-chunks/{chunk-ELA77TDC.js → chunk-HKZZGSDV.js} +4 -4
  26. package/dist/mcp-chunks/{chunk-36VIJRYY.js → chunk-HTXQPQPB.js} +4 -4
  27. package/dist/mcp-chunks/{chunk-3JGS7LQB.js → chunk-I7JR2GIC.js} +2 -2
  28. package/dist/mcp-chunks/{chunk-AIKLVBYU.js → chunk-IO2IMWYS.js} +2 -2
  29. package/dist/mcp-chunks/{chunk-RD7NHCRK.js → chunk-J2WP6ERZ.js} +39 -42
  30. package/dist/mcp-chunks/{chunk-HLRCUHNO.js → chunk-KJNNO5Z6.js} +1 -1
  31. package/dist/mcp-chunks/{chunk-4ZNBWL65.js → chunk-L2LGMX5P.js} +2 -2
  32. package/dist/mcp-chunks/chunk-LG3GLOSA.js +513 -0
  33. package/dist/mcp-chunks/{chunk-CZKDJZER.js → chunk-LTR626QF.js} +1 -1
  34. package/dist/mcp-chunks/{chunk-FS5JIKT6.js → chunk-LYWEATXZ.js} +6 -6
  35. package/dist/mcp-chunks/{chunk-YIRGLKDA.js → chunk-M62ESEOY.js} +45 -14
  36. package/dist/mcp-chunks/{chunk-V5AYEKSL.js → chunk-MJHMXYMO.js} +52 -81
  37. package/dist/mcp-chunks/{chunk-7WOKCV6Q.js → chunk-N7ZWX3WW.js} +1 -1
  38. package/dist/mcp-chunks/chunk-NTABJCUL.js +123 -0
  39. package/dist/mcp-chunks/{chunk-EPT4MYOF.js → chunk-OABFKFSL.js} +11 -11
  40. package/dist/mcp-chunks/{chunk-SCOMDV54.js → chunk-OB256NMD.js} +1 -1
  41. package/dist/mcp-chunks/{chunk-IYWYVHHD.js → chunk-OZQTZWW4.js} +1 -1
  42. package/dist/mcp-chunks/{chunk-ITR7FQM3.js → chunk-QIBGY4IX.js} +2 -2
  43. package/dist/mcp-chunks/{chunk-ZOAQDFAO.js → chunk-REEFOL44.js} +1 -1
  44. package/dist/mcp-chunks/{chunk-ED2WN5BI.js → chunk-SUNOYTQJ.js} +3 -3
  45. package/dist/mcp-chunks/{chunk-Y3EDWN2P.js → chunk-TFU4NKFJ.js} +1 -1
  46. package/dist/mcp-chunks/{chunk-EMSNQHZZ.js → chunk-TGPIW6F6.js} +1 -1
  47. package/dist/mcp-chunks/{chunk-SNKXMWDB.js → chunk-UCJ7YDFN.js} +1 -1
  48. package/dist/mcp-chunks/{chunk-TPHPAEDH.js → chunk-WUEDIOR5.js} +1 -1
  49. package/dist/mcp-chunks/{chunk-FAJPJTOC.js → chunk-XCNWICLD.js} +1 -1
  50. package/dist/mcp-chunks/{chunk-6YZW3XAE.js → chunk-XFQSUC7T.js} +5 -5
  51. package/dist/mcp-chunks/{chunk-GQ6NSIDS.js → chunk-Y3L5LWBY.js} +3037 -747
  52. package/dist/mcp-chunks/{chunk-53NRFMB3.js → chunk-YI5SMRFH.js} +46 -25
  53. package/dist/mcp-chunks/{chunk-GUXMP7QB.js → chunk-YPTN46JQ.js} +2 -2
  54. package/dist/mcp-chunks/{chunk-I5GI2A2D.js → chunk-YVH36MGQ.js} +2 -2
  55. package/dist/mcp-chunks/{chunk-ASG4OY3M.js → chunk-Z6QEOUMK.js} +22 -23
  56. package/dist/mcp-chunks/{cli-XU26MUCN.js → cli-TN6JTLTS.js} +108 -77
  57. package/dist/mcp-chunks/client-G33HPQAC.js +29 -0
  58. package/dist/mcp-chunks/{config-command-UQMMIK2U.js → config-command-LICU56ZH.js} +27 -28
  59. package/dist/mcp-chunks/daemon-command-JLVHGWHB.js +29 -0
  60. package/dist/mcp-chunks/{dist-DM2RXZMU.js → dist-MFAWSKGH.js} +80 -46
  61. package/dist/mcp-chunks/{emit-ts-command-KAOL6DAN.js → emit-ts-command-FVX3JMSN.js} +18 -18
  62. package/dist/mcp-chunks/{generate-cli-runner-AK6XNRTK.js → generate-cli-runner-L2L7VMCA.js} +53 -51
  63. package/dist/mcp-chunks/generated-daemon-runtime-DC6IL7E7.js +29 -0
  64. package/dist/mcp-chunks/{inspect-cli-command-6FVJO7H2.js → inspect-cli-command-Y5D3GRE2.js} +9 -10
  65. package/dist/mcp-chunks/{launch-EIT73HX4.js → launch-ZFY6CM2A.js} +1 -1
  66. package/dist/mcp-chunks/{lifecycle-QH4TUI3K.js → lifecycle-H7DIW5DM.js} +1 -1
  67. package/dist/mcp-chunks/{list-command-UOB2XZK7.js → list-command-55LCLW4S.js} +34 -35
  68. package/dist/mcp-chunks/{output-utils-6YXH23T7.js → output-utils-YYHI637S.js} +3 -3
  69. package/dist/mcp-chunks/{prompt-CH6TK0bC-ZB6RFAXR.js → prompt-CH6TK0bC-DZLFAAPK.js} +1 -1
  70. package/dist/mcp-chunks/{record-command-FO5TTERC.js → record-command-PWIBYC5J.js} +5 -5
  71. package/dist/mcp-chunks/{replay-command-SCBPCGQ7.js → replay-command-QHZZZMXF.js} +6 -6
  72. package/dist/mcp-chunks/{resource-command-S2J7XEMV.js → resource-command-HMR2KXWK.js} +9 -10
  73. package/dist/mcp-chunks/{result-utils-OME6HGS6.js → result-utils-UGCQSRJ4.js} +3 -4
  74. package/dist/mcp-chunks/runtime-ZNFPZXKE.js +36 -0
  75. package/dist/mcp-chunks/runtime-wrapper-I4B3OROR.js +10 -0
  76. package/dist/mcp-chunks/{serve-command-DDBZZSG6.js → serve-command-NTDI3YPN.js} +29 -34
  77. package/dist/mcp-chunks/{timeouts-HNGNKDQN.js → timeouts-35UDWFA7.js} +3 -3
  78. package/dist/mcp-chunks/{vault-command-TJZYS3YI.js → vault-command-D5QZL4FI.js} +4 -6
  79. package/dist/mcp-daemon.js +26 -31
  80. package/dist/mcp-run-worker.js +26 -31
  81. package/docs/pi-extension.md +1 -1
  82. package/docs/recipe-format.md +7 -3
  83. package/docs/recipe-templates.md +46 -0
  84. package/package.json +14 -14
  85. package/dist/mcp-chunks/call-arguments-4DWPBLQP.js +0 -15
  86. package/dist/mcp-chunks/chunk-3Z7MFS6K.js +0 -86
  87. package/dist/mcp-chunks/chunk-AD3FQ73K.js +0 -39
  88. package/dist/mcp-chunks/chunk-BWW4XRUC.js +0 -1931
  89. package/dist/mcp-chunks/chunk-DTZHEVKC.js +0 -12
  90. package/dist/mcp-chunks/chunk-H3JCYHGS.js +0 -1018
  91. package/dist/mcp-chunks/chunk-IRTJXFWA.js +0 -28
  92. package/dist/mcp-chunks/chunk-NTHUNCXJ.js +0 -526
  93. package/dist/mcp-chunks/chunk-OD3MSMXY.js +0 -15
  94. package/dist/mcp-chunks/chunk-PZ323CXI.js +0 -17394
  95. package/dist/mcp-chunks/client-OT34CKRH.js +0 -21
  96. package/dist/mcp-chunks/daemon-command-YCIOZGPZ.js +0 -35
  97. package/dist/mcp-chunks/runtime-QIPMLIJI.js +0 -39
  98. package/dist/mcp-chunks/runtime-wrapper-X4YFKMJI.js +0 -16
@@ -1,19 +1,12 @@
1
1
  import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
2
2
  import {
3
- isUnauthorizedError
4
- } from "./chunk-IRTJXFWA.js";
5
- import {
6
- ProtocolErrorCode
7
- } from "./chunk-PZ323CXI.js";
8
- import {
9
- DAEMON_OAUTH_FLOW_ERROR_CODE,
10
- DAEMON_OPERATION_TIMEOUT_CODE
11
- } from "./chunk-3Z7MFS6K.js";
3
+ MCPORTER_VERSION
4
+ } from "./chunk-NTABJCUL.js";
12
5
  import {
13
6
  isKeepAliveServer
14
- } from "./chunk-JG4TRUPF.js";
7
+ } from "./chunk-D2P2IV4H.js";
15
8
 
16
- // node_modules/.pnpm/mcporter@0.13.8/node_modules/mcporter/dist/daemon/runtime-wrapper.js
9
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/daemon/runtime-wrapper.js
17
10
  function createKeepAliveRuntime(base, options) {
18
11
  if (!options.daemonClient || options.keepAliveServers.size === 0) {
19
12
  return base;
@@ -24,11 +17,18 @@ var KeepAliveRuntime = class {
24
17
  base;
25
18
  daemon;
26
19
  keepAliveServers;
27
- restartPromises = /* @__PURE__ */ new Map();
28
20
  constructor(base, daemon, keepAliveServers) {
29
21
  this.base = base;
30
22
  this.daemon = daemon;
31
23
  this.keepAliveServers = keepAliveServers;
24
+ const info = base.getClientInfo?.();
25
+ if (info)
26
+ this.daemon.setDefinitions(base.getDefinitions(), info);
27
+ else
28
+ this.daemon.setDefinitions(base.getDefinitions());
29
+ }
30
+ getClientInfo() {
31
+ return this.base.getClientInfo?.() ?? { name: "mcporter", version: MCPORTER_VERSION };
32
32
  }
33
33
  listServers() {
34
34
  return this.base.listServers();
@@ -41,6 +41,7 @@ var KeepAliveRuntime = class {
41
41
  }
42
42
  registerDefinition(definition, options) {
43
43
  this.base.registerDefinition(definition, options);
44
+ this.daemon.setDefinitions(this.base.getDefinitions(), this.base.getClientInfo?.());
44
45
  if (isKeepAliveServer(definition)) {
45
46
  this.keepAliveServers.add(definition.name);
46
47
  } else {
@@ -50,12 +51,33 @@ var KeepAliveRuntime = class {
50
51
  async getInstructions(server) {
51
52
  return this.base.getInstructions?.(server);
52
53
  }
53
- async listTools(server, options) {
54
- if (options?.oauthSessionOptions) {
55
- return this.base.listTools(server, options);
54
+ async getServerMetadata(server, options) {
55
+ if (this.shouldUseDaemon(server)) {
56
+ this.assertBrokerOptions(options);
57
+ return this.daemon.getServerMetadata({
58
+ server,
59
+ autoAuthorize: options?.autoAuthorize,
60
+ allowCachedAuth: options?.allowCachedAuth,
61
+ disableOAuth: options?.disableOAuth,
62
+ timeoutMs: options?.timeoutMs
63
+ });
56
64
  }
65
+ if (this.base.getServerMetadata)
66
+ return this.base.getServerMetadata(server, options);
67
+ const { client } = await this.base.connect(server, {
68
+ ...options,
69
+ disableOAuth: options?.autoAuthorize === false ? true : options?.disableOAuth
70
+ });
71
+ return { instructions: client.getInstructions(), serverInfo: client.getServerVersion() };
72
+ }
73
+ assertBrokerOptions(options) {
74
+ if (options?.oauthSessionOptions)
75
+ throw new Error("Interactive OAuth sessions require explicit authentication outside the keep-alive runtime.");
76
+ }
77
+ async listTools(server, options) {
57
78
  if (this.shouldUseDaemon(server)) {
58
- return await this.invokeWithRestart(server, "listTools", () => this.daemon.listTools({
79
+ this.assertBrokerOptions(options);
80
+ return await this.invokeOnce(server, "listTools", () => this.daemon.listTools({
59
81
  server,
60
82
  includeSchema: options?.includeSchema,
61
83
  autoAuthorize: options?.autoAuthorize,
@@ -68,7 +90,7 @@ var KeepAliveRuntime = class {
68
90
  }
69
91
  async callTool(server, toolName, options) {
70
92
  if (this.shouldUseDaemon(server)) {
71
- return this.invokeWithRestart(server, "callTool", () => this.daemon.callTool({
93
+ return this.invokeOnce(server, "callTool", () => this.daemon.callTool({
72
94
  server,
73
95
  tool: toolName,
74
96
  args: options?.args,
@@ -79,21 +101,17 @@ var KeepAliveRuntime = class {
79
101
  return this.base.callTool(server, toolName, options);
80
102
  }
81
103
  async listResources(server, options) {
82
- if (options?.oauthSessionOptions) {
83
- return this.base.listResources(server, options);
84
- }
85
104
  const { allowCachedAuth, disableOAuth, ...params } = options ?? {};
86
105
  if (this.shouldUseDaemon(server)) {
87
- return this.invokeWithRestart(server, "listResources", () => this.daemon.listResources({ server, params, allowCachedAuth, disableOAuth }));
106
+ this.assertBrokerOptions(options);
107
+ return this.invokeOnce(server, "listResources", () => this.daemon.listResources({ server, params, allowCachedAuth, disableOAuth }));
88
108
  }
89
109
  return this.base.listResources(server, options);
90
110
  }
91
111
  async readResource(server, uri, options) {
92
- if (options?.oauthSessionOptions) {
93
- return this.base.readResource(server, uri, options);
94
- }
95
112
  if (this.shouldUseDaemon(server)) {
96
- return this.invokeWithRestart(server, "readResource", () => this.daemon.readResource({
113
+ this.assertBrokerOptions(options);
114
+ return this.invokeOnce(server, "readResource", () => this.daemon.readResource({
97
115
  server,
98
116
  uri,
99
117
  allowCachedAuth: options?.allowCachedAuth,
@@ -103,11 +121,17 @@ var KeepAliveRuntime = class {
103
121
  return this.base.readResource(server, uri, options);
104
122
  }
105
123
  async connect(server, options) {
124
+ if (this.shouldUseDaemon(server))
125
+ throw new Error("Raw connections are unavailable for broker-owned servers; use runtime operations or getServerMetadata.");
106
126
  return this.base.connect(server, options);
107
127
  }
108
128
  async close(server) {
109
129
  if (!server) {
110
- await this.base.close();
130
+ try {
131
+ await this.daemon.release();
132
+ } finally {
133
+ await this.base.close();
134
+ }
111
135
  return;
112
136
  }
113
137
  if (this.shouldUseDaemon(server)) {
@@ -120,63 +144,10 @@ var KeepAliveRuntime = class {
120
144
  shouldUseDaemon(server) {
121
145
  return this.keepAliveServers.has(server);
122
146
  }
123
- async invokeWithRestart(server, operation, action) {
124
- try {
125
- return await action();
126
- } catch (error) {
127
- if (!shouldRestartDaemonServer(error)) {
128
- throw error;
129
- }
130
- logDaemonRetry(server, operation, error);
131
- await this.restartServer(server);
132
- return action();
133
- }
134
- }
135
- async restartServer(server) {
136
- const existing = this.restartPromises.get(server);
137
- if (existing) {
138
- await existing;
139
- return;
140
- }
141
- const restart = this.daemon.closeServer({ server }).catch(() => {
142
- });
143
- this.restartPromises.set(server, restart);
144
- try {
145
- await restart;
146
- } finally {
147
- this.restartPromises.delete(server);
148
- }
147
+ async invokeOnce(_server, _operation, action) {
148
+ return action();
149
149
  }
150
150
  };
151
- var NON_FATAL_CODES = /* @__PURE__ */ new Set([ProtocolErrorCode.InvalidRequest, ProtocolErrorCode.MethodNotFound, ProtocolErrorCode.InvalidParams]);
152
- function shouldRestartDaemonServer(error) {
153
- if (!error) {
154
- return false;
155
- }
156
- if (typeof error === "object") {
157
- const code2 = error.code;
158
- if (code2 === DAEMON_OPERATION_TIMEOUT_CODE || code2 === DAEMON_OAUTH_FLOW_ERROR_CODE) {
159
- return false;
160
- }
161
- }
162
- if (isUnauthorizedError(error)) {
163
- return false;
164
- }
165
- const code = protocolErrorCode(error);
166
- if (code !== void 0) {
167
- return !NON_FATAL_CODES.has(code);
168
- }
169
- return true;
170
- }
171
- function protocolErrorCode(error) {
172
- if (!error || typeof error !== "object" || !("code" in error))
173
- return void 0;
174
- return typeof error.code === "number" ? error.code : void 0;
175
- }
176
- function logDaemonRetry(server, operation, error) {
177
- const reason = error instanceof Error ? error.message : String(error);
178
- console.error(`[mcporter] Restarting '${server}' before retrying ${operation}: ${reason}`);
179
- }
180
151
 
181
152
  export {
182
153
  createKeepAliveRuntime
@@ -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.13.8/node_modules/mcporter/dist/logging.js
3
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/logging.js
4
4
  var LOG_LEVEL_ORDER = {
5
5
  debug: 10,
6
6
  info: 20,
@@ -0,0 +1,123 @@
1
+ import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
2
+
3
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/package.json
4
+ var package_default = {
5
+ name: "mcporter",
6
+ version: "0.13.10",
7
+ description: "TypeScript runtime and CLI for connecting to configured Model Context Protocol servers.",
8
+ keywords: [
9
+ "cli",
10
+ "mcp",
11
+ "model-context-protocol"
12
+ ],
13
+ license: "MIT",
14
+ author: "OpenClaw",
15
+ repository: {
16
+ type: "git",
17
+ url: "git+https://github.com/openclaw/mcporter.git"
18
+ },
19
+ bin: {
20
+ mcporter: "dist/cli.js"
21
+ },
22
+ files: [
23
+ "dist",
24
+ "README.md",
25
+ "LICENSE"
26
+ ],
27
+ type: "module",
28
+ main: "dist/index.js",
29
+ module: "dist/index.js",
30
+ types: "dist/index.d.ts",
31
+ exports: {
32
+ ".": {
33
+ import: "./dist/index.js",
34
+ types: "./dist/index.d.ts"
35
+ },
36
+ "./cli": {
37
+ import: "./dist/cli.js",
38
+ types: "./dist/cli.d.ts"
39
+ }
40
+ },
41
+ publishConfig: {
42
+ access: "public"
43
+ },
44
+ dependencies: {
45
+ "@iarna/toml": "^2.2.5",
46
+ "@modelcontextprotocol/client": "^2.0.0",
47
+ "@modelcontextprotocol/server": "^2.0.0",
48
+ acorn: "^8.18.0",
49
+ commander: "^15.0.0",
50
+ "es-toolkit": "^1.52.0",
51
+ "jsonc-parser": "^3.3.1",
52
+ ora: "^9.4.1",
53
+ rolldown: "1.2.7",
54
+ zod: "^4.5.4"
55
+ },
56
+ devDependencies: {
57
+ "@modelcontextprotocol/sdk": "^1.30.0",
58
+ "@types/estree": "^1.0.9",
59
+ "@types/express": "^5.0.6",
60
+ "@types/node": "^26.4.1",
61
+ "@typescript/native": "npm:typescript@^7.0.2",
62
+ "@vitest/coverage-v8": "^5.0.0",
63
+ "bun-types": "^1.4.0",
64
+ "cross-env": "^10.1.0",
65
+ express: "^5.2.1",
66
+ oxfmt: "^0.66.0",
67
+ oxlint: "^1.81.0",
68
+ "oxlint-tsgolint": "^7.0.2001",
69
+ rimraf: "^6.1.3",
70
+ tsx: "^4.23.13",
71
+ typescript: "npm:@typescript/typescript6@^6.0.2",
72
+ vite: "8.2.2",
73
+ vitest: "^5.0.0"
74
+ },
75
+ devEngines: {
76
+ runtime: [
77
+ {
78
+ name: "node",
79
+ version: ">=24"
80
+ }
81
+ ]
82
+ },
83
+ engines: {
84
+ node: ">=24"
85
+ },
86
+ scripts: {
87
+ mcporter: "tsx src/cli.ts",
88
+ mcp: "pnpm exec tsx src/cli.ts",
89
+ build: `tsc -p tsconfig.build.json && node -e "require('fs').chmodSync('dist/cli.js', 0o755)"`,
90
+ "build:bun": "bun scripts/build-bun.ts",
91
+ check: "pnpm format:check && pnpm lint:oxlint && pnpm typecheck",
92
+ format: "oxfmt .",
93
+ "format:check": "oxfmt --check .",
94
+ lint: "pnpm check",
95
+ "lint:oxlint": "oxlint --type-aware --tsconfig tsconfig.json --report-unused-disable-directives --deny-warnings --max-warnings=0 --allow eslint/no-underscore-dangle",
96
+ typecheck: "tsc --project tsconfig.json --noEmit",
97
+ test: "cross-env MCPORTER_TEST_REPORTER=quiet pnpm test:verbose",
98
+ "test:quiet": "cross-env MCPORTER_TEST_REPORTER=quiet pnpm test:verbose",
99
+ "test:verbose": "pnpm build && node scripts/test-runner.js",
100
+ "test:live": "MCP_LIVE_TESTS=1 vitest run tests/live",
101
+ "test:coverage": "pnpm build && cross-env MCPORTER_TEST_REPORTER=quiet vitest run --coverage",
102
+ clean: "rimraf dist",
103
+ dev: "tsc -w -p tsconfig.build.json",
104
+ "docs:list": "pnpm exec tsx scripts/docs-list.ts",
105
+ "docs:site": "node scripts/build-docs-site.mjs",
106
+ "generate:schema": "tsx scripts/generate-json-schema.ts",
107
+ "mcporter:list": "pnpm exec tsx src/cli.ts list",
108
+ "mcporter:call": "pnpm exec tsx src/cli.ts call",
109
+ "check:changed": "pnpm run check",
110
+ "test:changed": "pnpm run test",
111
+ "crabbox:hydrate": "crabbox actions hydrate",
112
+ "crabbox:run": "crabbox run",
113
+ "crabbox:stop": "crabbox stop",
114
+ "crabbox:warmup": "crabbox warmup"
115
+ }
116
+ };
117
+
118
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/version.js
119
+ var MCPORTER_VERSION = package_default.version;
120
+
121
+ export {
122
+ MCPORTER_VERSION
123
+ };
@@ -1,21 +1,21 @@
1
1
  import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
2
2
  import {
3
3
  CliUsageError
4
- } from "./chunk-CZKDJZER.js";
4
+ } from "./chunk-LTR626QF.js";
5
5
  import {
6
6
  consumeTimeoutFlag
7
- } from "./chunk-AIKLVBYU.js";
7
+ } from "./chunk-IO2IMWYS.js";
8
8
  import {
9
9
  extractEphemeralServerFlags
10
- } from "./chunk-MOEZ43ZL.js";
10
+ } from "./chunk-BC2HDCYV.js";
11
11
  import {
12
12
  splitHttpToolSelector
13
- } from "./chunk-G6OMDUNG.js";
13
+ } from "./chunk-CZ43ZITK.js";
14
14
  import {
15
15
  consumeOutputFormat
16
- } from "./chunk-Y3EDWN2P.js";
16
+ } from "./chunk-TFU4NKFJ.js";
17
17
 
18
- // node_modules/.pnpm/mcporter@0.13.8/node_modules/mcporter/dist/cli/call-arguments.js
18
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/cli/call-arguments.js
19
19
  import fs from "node:fs";
20
20
 
21
21
  // node_modules/.pnpm/acorn@8.18.0/node_modules/acorn/dist/acorn.mjs
@@ -5715,7 +5715,7 @@ function parseExpressionAt2(input, pos, options) {
5715
5715
  return Parser.parseExpressionAt(input, pos, options);
5716
5716
  }
5717
5717
 
5718
- // node_modules/.pnpm/mcporter@0.13.8/node_modules/mcporter/dist/cli/call-expression-parser.js
5718
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/cli/call-expression-parser.js
5719
5719
  var ACORN_OPTIONS = {
5720
5720
  ecmaVersion: "latest",
5721
5721
  sourceType: "module"
@@ -5885,7 +5885,7 @@ function isSupportedValue(node) {
5885
5885
  return type === "Literal" || type === "ArrayExpression" || type === "ObjectExpression" || type === "UnaryExpression";
5886
5886
  }
5887
5887
 
5888
- // node_modules/.pnpm/mcporter@0.13.8/node_modules/mcporter/dist/cli/call-argument-expression.js
5888
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/cli/call-argument-expression.js
5889
5889
  function parseLeadingCallExpression(rawToken) {
5890
5890
  try {
5891
5891
  return extractHttpCallExpression(rawToken) ?? parseCallExpressionFragment(rawToken);
@@ -5935,7 +5935,7 @@ function buildCallExpressionUsageError(error) {
5935
5935
  return new CliUsageError(lines.join("\n"));
5936
5936
  }
5937
5937
 
5938
- // node_modules/.pnpm/mcporter@0.13.8/node_modules/mcporter/dist/cli/call-argument-values.js
5938
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/cli/call-argument-values.js
5939
5939
  function parseKeyValueToken(token, nextToken) {
5940
5940
  const eqIndex = token.indexOf("=");
5941
5941
  if (eqIndex !== -1) {
@@ -6019,7 +6019,7 @@ function warnMissingNamedArgumentValue(key) {
6019
6019
  console.warn(lines.join(" "));
6020
6020
  }
6021
6021
 
6022
- // node_modules/.pnpm/mcporter@0.13.8/node_modules/mcporter/dist/cli/call-help.js
6022
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/cli/call-help.js
6023
6023
  var CALL_HELP_ARGUMENT_LINES = [
6024
6024
  " key=value / key:value Flag-style named arguments.",
6025
6025
  " key=@path Read a UTF-8 string value from a file; use @@ for a literal @.",
@@ -6062,7 +6062,7 @@ function buildUnvalidatedCallFlagMessage(token, server, tool) {
6062
6062
  ].join("\n");
6063
6063
  }
6064
6064
 
6065
- // node_modules/.pnpm/mcporter@0.13.8/node_modules/mcporter/dist/cli/call-arguments.js
6065
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/cli/call-arguments.js
6066
6066
  var FLAG_HANDLERS = {
6067
6067
  "--server": handleServerFlag,
6068
6068
  "--mcp": handleServerFlag,
@@ -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.13.8/node_modules/mcporter/dist/cli/terminal.js
3
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/cli/terminal.js
4
4
  var forceColorRaw = process.env.FORCE_COLOR?.toLowerCase();
5
5
  var forceDisableColor = forceColorRaw === "0" || forceColorRaw === "false";
6
6
  var forceEnableColor = forceColorRaw === "1" || forceColorRaw === "true" || forceColorRaw === "2" || forceColorRaw === "3";
@@ -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.13.8/node_modules/mcporter/dist/definition-fields.js
3
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/definition-fields.js
4
4
  var SHARED_DEFINITION_FIELDS = [
5
5
  "auth",
6
6
  "tokenCacheDir",
@@ -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.13.8/node_modules/mcporter/dist/process-utils.js
3
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/process-utils.js
4
4
  function isProcessRunning(pid) {
5
5
  if (!Number.isInteger(pid) || pid <= 0) {
6
6
  return false;
@@ -13,7 +13,7 @@ function isProcessRunning(pid) {
13
13
  }
14
14
  }
15
15
 
16
- // node_modules/.pnpm/mcporter@0.13.8/node_modules/mcporter/dist/fs-json.js
16
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/fs-json.js
17
17
  import crypto from "node:crypto";
18
18
  import { constants } from "node:fs";
19
19
  import fs from "node:fs/promises";
@@ -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.13.8/node_modules/mcporter/dist/runtime/elicitation.js
3
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/runtime/elicitation.js
4
4
  import readline from "node:readline";
5
5
  var NON_INTERACTIVE_ELICITATION_HINT = "Server requested interactive input; run mcporter in a terminal.";
6
6
  function createInteractiveElicitationResponder(options = {}) {
@@ -2,10 +2,10 @@ import { createRequire as __createRequire } from "node:module"; const require =
2
2
  import {
3
3
  createCallResult,
4
4
  describeConnectionIssue
5
- } from "./chunk-4ZNBWL65.js";
5
+ } from "./chunk-L2LGMX5P.js";
6
6
  import {
7
7
  createRuntime
8
- } from "./chunk-GQ6NSIDS.js";
8
+ } from "./chunk-Y3L5LWBY.js";
9
9
 
10
10
  // node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/esm/context/context.js
11
11
  function createContextKey(description) {
@@ -1510,7 +1510,7 @@ function loadMcporterCli() {
1510
1510
  if (mcporterCliPromise) return mcporterCliPromise;
1511
1511
  const previousDisableAutorun = process.env.MCPORTER_DISABLE_AUTORUN;
1512
1512
  process.env.MCPORTER_DISABLE_AUTORUN = "1";
1513
- mcporterCliPromise = import("./cli-XU26MUCN.js").finally(() => {
1513
+ mcporterCliPromise = import("./cli-TN6JTLTS.js").finally(() => {
1514
1514
  if (previousDisableAutorun === void 0) {
1515
1515
  delete process.env.MCPORTER_DISABLE_AUTORUN;
1516
1516
  } else {
@@ -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.13.8/node_modules/mcporter/dist/cli/output-format.js
3
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/cli/output-format.js
4
4
  function consumeOutputFormat(args, options = {}) {
5
5
  const allowed = options.allowed ?? ["auto", "text", "markdown", "json", "raw"];
6
6
  const defaultFormat = options.defaultFormat ?? "auto";
@@ -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.13.8/node_modules/mcporter/dist/sdk-stdio-logging.js
3
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/sdk-stdio-logging.js
4
4
  var STDIO_LOGS_FORCED = process.env.MCPORTER_STDIO_LOGS === "1";
5
5
  var STDIO_TRACE_ENABLED = process.env.MCPORTER_STDIO_TRACE === "1";
6
6
  var stdioLogMode = STDIO_LOGS_FORCED ? "always" : "auto";
@@ -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.13.8/node_modules/mcporter/dist/cli/json-output.js
3
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/cli/json-output.js
4
4
  function buildConnectionIssueEnvelope(params) {
5
5
  return {
6
6
  server: params.server,
@@ -3368,7 +3368,7 @@ function useColor() {
3368
3368
  // node_modules/.pnpm/commander@15.0.0/node_modules/commander/index.js
3369
3369
  var program = new Command();
3370
3370
 
3371
- // node_modules/.pnpm/mcporter@0.13.8/node_modules/mcporter/dist/cli/generate/tools.js
3371
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/cli/generate/tools.js
3372
3372
  function resolveSchemaType(value) {
3373
3373
  if (value === "integer") {
3374
3374
  return "number";
@@ -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.13.8/node_modules/mcporter/dist/cli/record-replay-env.js
3
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/cli/record-replay-env.js
4
4
  var KEEP_ALIVE_DISABLED_FOR_MODE = "*";
5
5
  function buildRecordCommandEnv(sessionName, server) {
6
6
  return buildModeEnv({
@@ -2,15 +2,15 @@ import { createRequire as __createRequire } from "node:module"; const require =
2
2
  import {
3
3
  buildFallbackLiteral,
4
4
  pickExampleLiteral
5
- } from "./chunk-TPHPAEDH.js";
5
+ } from "./chunk-WUEDIOR5.js";
6
6
  import {
7
7
  cyanText,
8
8
  dimText,
9
9
  extraDimText,
10
10
  yellowText
11
- } from "./chunk-SCOMDV54.js";
11
+ } from "./chunk-OB256NMD.js";
12
12
 
13
- // node_modules/.pnpm/mcporter@0.13.8/node_modules/mcporter/dist/cli/list-signature.js
13
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/cli/list-signature.js
14
14
  function formatFunctionSignature(name, options, outputSchema, formatOptions) {
15
15
  const colorize = formatOptions?.colorize !== false;
16
16
  const keyword = colorize ? extraDimText("function") : "function";
@@ -255,7 +255,7 @@ function formatArrayItemType(type) {
255
255
  }
256
256
  }
257
257
 
258
- // node_modules/.pnpm/mcporter@0.13.8/node_modules/mcporter/dist/cli/list-doc-comments.js
258
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/cli/list-doc-comments.js
259
259
  var DEFAULT_WRAP_WIDTH = 100;
260
260
  function buildDocComment(description, options, opts) {
261
261
  const colorize = opts?.colorize !== false;
@@ -366,7 +366,7 @@ function wrapCommentText(text, width = DEFAULT_WRAP_WIDTH) {
366
366
  return lines;
367
367
  }
368
368
 
369
- // node_modules/.pnpm/mcporter@0.13.8/node_modules/mcporter/dist/cli/list-detail-helpers.js
369
+ // node_modules/.pnpm/mcporter@0.13.10/node_modules/mcporter/dist/cli/list-detail-helpers.js
370
370
  var DEFAULT_MIN_VISIBLE_PARAMS = 5;
371
371
  function selectDisplayOptions(options, requiredOnly, minVisible = DEFAULT_MIN_VISIBLE_PARAMS) {
372
372
  if (!requiredOnly || options.length <= minVisible) {