@sammorrowdrums/mcpi-ext 0.2.1 → 1.0.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 (199) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +137 -47
  3. package/dist/code-mode/eligibility.d.ts +29 -4
  4. package/dist/code-mode/eligibility.js +56 -6
  5. package/dist/code-mode/executor.d.ts +19 -1
  6. package/dist/code-mode/executor.js +73 -8
  7. package/dist/code-mode/index.d.ts +54 -12
  8. package/dist/code-mode/index.js +157 -65
  9. package/dist/code-mode/isolated-vm.d.ts +65 -0
  10. package/dist/code-mode/isolated-vm.js +116 -0
  11. package/dist/code-mode/tools.d.ts +4 -1
  12. package/dist/code-mode/tools.js +7 -4
  13. package/dist/code-mode/type-hints.d.ts +2 -2
  14. package/dist/code-mode/type-hints.js +24 -8
  15. package/dist/docker-e2e.d.ts +0 -1
  16. package/dist/docker-e2e.js +0 -1
  17. package/dist/index.d.ts +9 -1
  18. package/dist/index.js +146 -67
  19. package/dist/mcp/call-tool-result.d.ts +10 -0
  20. package/dist/mcp/call-tool-result.js +70 -0
  21. package/dist/mcp/client-factory.d.ts +59 -0
  22. package/dist/mcp/client-factory.js +76 -0
  23. package/dist/mcp/client-manager.d.ts +61 -19
  24. package/dist/mcp/client-manager.js +223 -64
  25. package/dist/mcp/config-loader.d.ts +0 -1
  26. package/dist/mcp/config-loader.js +0 -1
  27. package/dist/mcp/config.d.ts +11 -1
  28. package/dist/mcp/config.js +15 -1
  29. package/dist/mcp/gateway-defaults.d.ts +14 -0
  30. package/dist/mcp/gateway-defaults.js +21 -0
  31. package/dist/mcp/host-approval.d.ts +16 -0
  32. package/dist/mcp/host-approval.js +19 -0
  33. package/dist/mcp/host-elicitation.d.ts +19 -0
  34. package/dist/mcp/host-elicitation.js +94 -0
  35. package/dist/mcp/index.d.ts +4 -1
  36. package/dist/mcp/index.js +4 -1
  37. package/dist/mcp/policy.d.ts +314 -0
  38. package/dist/mcp/policy.js +848 -0
  39. package/dist/routing/facilities.d.ts +109 -0
  40. package/dist/routing/facilities.js +175 -0
  41. package/dist/routing/format.d.ts +24 -0
  42. package/dist/routing/format.js +64 -0
  43. package/dist/routing/index.d.ts +4 -0
  44. package/dist/routing/index.js +4 -0
  45. package/dist/routing/seam.d.ts +35 -0
  46. package/dist/routing/seam.js +28 -0
  47. package/dist/routing/tripwire.d.ts +42 -0
  48. package/dist/routing/tripwire.js +80 -0
  49. package/dist/skills/discover.d.ts +5 -3
  50. package/dist/skills/discover.js +37 -12
  51. package/dist/skills/format.d.ts +4 -1
  52. package/dist/skills/format.js +8 -4
  53. package/dist/skills/index.d.ts +2 -2
  54. package/dist/skills/index.js +1 -1
  55. package/dist/skills/load-skill-tool.d.ts +23 -7
  56. package/dist/skills/load-skill-tool.js +112 -33
  57. package/dist/skills/mcp-tool-proxy.d.ts +4 -8
  58. package/dist/skills/mcp-tool-proxy.js +22 -97
  59. package/dist/skills/sep2640/client.d.ts +91 -0
  60. package/dist/skills/sep2640/client.js +160 -0
  61. package/dist/skills/sep2640/discover.d.ts +33 -0
  62. package/dist/skills/sep2640/discover.js +82 -0
  63. package/dist/skills/sep2640/index.d.ts +13 -0
  64. package/dist/skills/sep2640/index.js +13 -0
  65. package/dist/skills/sep2640/integrity.d.ts +58 -0
  66. package/dist/skills/sep2640/integrity.js +185 -0
  67. package/dist/skills/sep2640/load.d.ts +61 -0
  68. package/dist/skills/sep2640/load.js +90 -0
  69. package/dist/skills/sep2640/protocol.d.ts +146 -0
  70. package/dist/skills/sep2640/protocol.js +214 -0
  71. package/dist/skills/sep2640/spec.d.ts +76 -0
  72. package/dist/skills/sep2640/spec.js +88 -0
  73. package/dist/skills/skill-registry.d.ts +48 -2
  74. package/dist/skills/skill-registry.js +40 -3
  75. package/dist/tool-cli/bridge.d.ts +14 -0
  76. package/dist/tool-cli/bridge.js +196 -0
  77. package/dist/tool-cli/format.d.ts +17 -5
  78. package/dist/tool-cli/format.js +36 -20
  79. package/dist/tool-cli/index.d.ts +5 -2
  80. package/dist/tool-cli/index.js +3 -1
  81. package/dist/tool-cli/provider.d.ts +21 -0
  82. package/dist/tool-cli/provider.js +114 -0
  83. package/dist/tool-cli/startup.d.ts +22 -0
  84. package/dist/tool-cli/startup.js +47 -0
  85. package/package.json +78 -30
  86. package/dist/code-mode/code-mode-integration.test.d.ts +0 -2
  87. package/dist/code-mode/code-mode-integration.test.d.ts.map +0 -1
  88. package/dist/code-mode/code-mode-integration.test.js +0 -116
  89. package/dist/code-mode/code-mode-integration.test.js.map +0 -1
  90. package/dist/code-mode/eligibility.d.ts.map +0 -1
  91. package/dist/code-mode/eligibility.js.map +0 -1
  92. package/dist/code-mode/eligibility.test.d.ts +0 -2
  93. package/dist/code-mode/eligibility.test.d.ts.map +0 -1
  94. package/dist/code-mode/eligibility.test.js +0 -53
  95. package/dist/code-mode/eligibility.test.js.map +0 -1
  96. package/dist/code-mode/executor.d.ts.map +0 -1
  97. package/dist/code-mode/executor.js.map +0 -1
  98. package/dist/code-mode/executor.test.d.ts +0 -2
  99. package/dist/code-mode/executor.test.d.ts.map +0 -1
  100. package/dist/code-mode/executor.test.js +0 -130
  101. package/dist/code-mode/executor.test.js.map +0 -1
  102. package/dist/code-mode/index.d.ts.map +0 -1
  103. package/dist/code-mode/index.js.map +0 -1
  104. package/dist/code-mode/tools.d.ts.map +0 -1
  105. package/dist/code-mode/tools.js.map +0 -1
  106. package/dist/code-mode/type-hints.d.ts.map +0 -1
  107. package/dist/code-mode/type-hints.js.map +0 -1
  108. package/dist/code-mode/type-hints.test.d.ts +0 -2
  109. package/dist/code-mode/type-hints.test.d.ts.map +0 -1
  110. package/dist/code-mode/type-hints.test.js +0 -157
  111. package/dist/code-mode/type-hints.test.js.map +0 -1
  112. package/dist/docker-e2e.d.ts.map +0 -1
  113. package/dist/docker-e2e.js.map +0 -1
  114. package/dist/docker-e2e.test.d.ts +0 -2
  115. package/dist/docker-e2e.test.d.ts.map +0 -1
  116. package/dist/docker-e2e.test.js +0 -176
  117. package/dist/docker-e2e.test.js.map +0 -1
  118. package/dist/index.d.ts.map +0 -1
  119. package/dist/index.js.map +0 -1
  120. package/dist/index.test.d.ts +0 -2
  121. package/dist/index.test.d.ts.map +0 -1
  122. package/dist/index.test.js +0 -8
  123. package/dist/index.test.js.map +0 -1
  124. package/dist/mcp/client-manager.d.ts.map +0 -1
  125. package/dist/mcp/client-manager.js.map +0 -1
  126. package/dist/mcp/client-manager.test.d.ts +0 -2
  127. package/dist/mcp/client-manager.test.d.ts.map +0 -1
  128. package/dist/mcp/client-manager.test.js +0 -204
  129. package/dist/mcp/client-manager.test.js.map +0 -1
  130. package/dist/mcp/config-loader.d.ts.map +0 -1
  131. package/dist/mcp/config-loader.js.map +0 -1
  132. package/dist/mcp/config-loader.test.d.ts +0 -2
  133. package/dist/mcp/config-loader.test.d.ts.map +0 -1
  134. package/dist/mcp/config-loader.test.js +0 -93
  135. package/dist/mcp/config-loader.test.js.map +0 -1
  136. package/dist/mcp/config.d.ts.map +0 -1
  137. package/dist/mcp/config.js.map +0 -1
  138. package/dist/mcp/index.d.ts.map +0 -1
  139. package/dist/mcp/index.js.map +0 -1
  140. package/dist/skills/discover.d.ts.map +0 -1
  141. package/dist/skills/discover.js.map +0 -1
  142. package/dist/skills/format.d.ts.map +0 -1
  143. package/dist/skills/format.js.map +0 -1
  144. package/dist/skills/format.test.d.ts +0 -2
  145. package/dist/skills/format.test.d.ts.map +0 -1
  146. package/dist/skills/format.test.js +0 -63
  147. package/dist/skills/format.test.js.map +0 -1
  148. package/dist/skills/index.d.ts.map +0 -1
  149. package/dist/skills/index.js.map +0 -1
  150. package/dist/skills/load-skill-tool.d.ts.map +0 -1
  151. package/dist/skills/load-skill-tool.js.map +0 -1
  152. package/dist/skills/mcp-tool-proxy.d.ts.map +0 -1
  153. package/dist/skills/mcp-tool-proxy.js.map +0 -1
  154. package/dist/skills/skill-integration.test.d.ts +0 -2
  155. package/dist/skills/skill-integration.test.d.ts.map +0 -1
  156. package/dist/skills/skill-integration.test.js +0 -119
  157. package/dist/skills/skill-integration.test.js.map +0 -1
  158. package/dist/skills/skill-registry.d.ts.map +0 -1
  159. package/dist/skills/skill-registry.js.map +0 -1
  160. package/dist/skills/skill-registry.test.d.ts +0 -2
  161. package/dist/skills/skill-registry.test.d.ts.map +0 -1
  162. package/dist/skills/skill-registry.test.js +0 -67
  163. package/dist/skills/skill-registry.test.js.map +0 -1
  164. package/dist/test-servers/weather-server.d.ts +0 -12
  165. package/dist/test-servers/weather-server.d.ts.map +0 -1
  166. package/dist/test-servers/weather-server.js +0 -139
  167. package/dist/test-servers/weather-server.js.map +0 -1
  168. package/dist/test-servers/weather-stdio.d.ts +0 -2
  169. package/dist/test-servers/weather-stdio.d.ts.map +0 -1
  170. package/dist/test-servers/weather-stdio.js +0 -11
  171. package/dist/test-servers/weather-stdio.js.map +0 -1
  172. package/dist/tool-cli/cli.d.ts +0 -3
  173. package/dist/tool-cli/cli.d.ts.map +0 -1
  174. package/dist/tool-cli/cli.js +0 -179
  175. package/dist/tool-cli/cli.js.map +0 -1
  176. package/dist/tool-cli/constants.d.ts +0 -7
  177. package/dist/tool-cli/constants.d.ts.map +0 -1
  178. package/dist/tool-cli/constants.js +0 -15
  179. package/dist/tool-cli/constants.js.map +0 -1
  180. package/dist/tool-cli/format.d.ts.map +0 -1
  181. package/dist/tool-cli/format.js.map +0 -1
  182. package/dist/tool-cli/format.test.d.ts +0 -2
  183. package/dist/tool-cli/format.test.d.ts.map +0 -1
  184. package/dist/tool-cli/format.test.js +0 -30
  185. package/dist/tool-cli/format.test.js.map +0 -1
  186. package/dist/tool-cli/index.d.ts.map +0 -1
  187. package/dist/tool-cli/index.js.map +0 -1
  188. package/dist/tool-cli/rpc-client.d.ts +0 -6
  189. package/dist/tool-cli/rpc-client.d.ts.map +0 -1
  190. package/dist/tool-cli/rpc-client.js +0 -25
  191. package/dist/tool-cli/rpc-client.js.map +0 -1
  192. package/dist/tool-cli/rpc-server.d.ts +0 -48
  193. package/dist/tool-cli/rpc-server.d.ts.map +0 -1
  194. package/dist/tool-cli/rpc-server.js +0 -220
  195. package/dist/tool-cli/rpc-server.js.map +0 -1
  196. package/dist/tool-cli/rpc-server.test.d.ts +0 -2
  197. package/dist/tool-cli/rpc-server.test.d.ts.map +0 -1
  198. package/dist/tool-cli/rpc-server.test.js +0 -154
  199. package/dist/tool-cli/rpc-server.test.js.map +0 -1
@@ -0,0 +1,47 @@
1
+ import { PORT_ENV_VAR, TOKEN_ENV_VAR } from "@sammorrowdrums/tool-cli/client";
2
+ import { formatToolCliBridgeError, isToolCliCompatibilityError, TOOL_CLI_HOST_ENV_VAR, TOOL_CLI_LOCAL_HOST, verifyToolCliBridge, } from "./bridge.js";
3
+ /** Mask inherited credentials until this session has verified its own bridge endpoint. */
4
+ export function withholdToolCliCredentials(environment) {
5
+ environment.setEnv(TOOL_CLI_HOST_ENV_VAR, TOOL_CLI_LOCAL_HOST);
6
+ environment.setEnv(PORT_ENV_VAR, "");
7
+ environment.setEnv(TOKEN_ENV_VAR, "");
8
+ }
9
+ /** Start, authenticate, and expose tool-cli only when both bridge and bash are usable. */
10
+ export async function startToolCliBridge(options) {
11
+ const { bash, environment, log, server } = options;
12
+ withholdToolCliCredentials(environment);
13
+ if (bash.kind !== "registered") {
14
+ const reason = bash.kind === "absent"
15
+ ? "no host bash tool is active"
16
+ : `the host tool registry could not confirm bash (${bash.reason})`;
17
+ log(`[tool-cli] Bridge not started: ${reason}`);
18
+ return { kind: "no_bash", reason };
19
+ }
20
+ try {
21
+ const endpoint = await server.start(log);
22
+ const bridgeInfo = await (options.verify ?? verifyToolCliBridge)(endpoint);
23
+ environment.setEnv(PORT_ENV_VAR, String(endpoint.port));
24
+ environment.setEnv(TOKEN_ENV_VAR, endpoint.token);
25
+ log(`[tool-cli] Verified ${bridgeInfo.bridgeProtocol.name} v${bridgeInfo.bridgeProtocol.version} ` +
26
+ `from ${bridgeInfo.serverImplementation.name}@${bridgeInfo.serverImplementation.version}`);
27
+ return { kind: "verified", port: endpoint.port, bridgeInfo };
28
+ }
29
+ catch (error) {
30
+ let cleanupError;
31
+ try {
32
+ await server.stop();
33
+ }
34
+ catch (caught) {
35
+ cleanupError = caught;
36
+ }
37
+ withholdToolCliCredentials(environment);
38
+ const reason = formatToolCliBridgeError(error) +
39
+ (cleanupError !== undefined
40
+ ? ` Bridge cleanup also failed: ${formatToolCliBridgeError(cleanupError)}`
41
+ : "");
42
+ log(`[tool-cli] Bridge unavailable: ${reason}`);
43
+ return cleanupError === undefined && isToolCliCompatibilityError(error)
44
+ ? { kind: "incompatible", reason }
45
+ : { kind: "failed", reason };
46
+ }
47
+ }
package/package.json CHANGED
@@ -1,48 +1,96 @@
1
1
  {
2
2
  "name": "@sammorrowdrums/mcpi-ext",
3
- "version": "0.2.1",
4
- "dependencies": {
5
- "@modelcontextprotocol/sdk": "^1.29.0",
6
- "@sammorrowdrums/tool-cli": "^0.3.0",
7
- "isolated-vm": "^6.1.2",
8
- "typebox": "^1.1.31",
9
- "zod": "^4.3.6"
3
+ "version": "1.0.0",
4
+ "description": "MCP extension for mcpi — skills, tool-cli, and code mode behind one authorization boundary",
5
+ "keywords": [
6
+ "mcp",
7
+ "model-context-protocol",
8
+ "mcpi",
9
+ "extension",
10
+ "skills",
11
+ "agent",
12
+ "tool-cli",
13
+ "code-mode"
14
+ ],
15
+ "homepage": "https://github.com/SamMorrowDrums/mcpi-ext#readme",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/SamMorrowDrums/mcpi-ext.git"
10
19
  },
11
- "peerDependencies": {
12
- "@sammorrowdrums/mcpi": ">=0.70.9"
20
+ "bugs": {
21
+ "url": "https://github.com/SamMorrowDrums/mcpi-ext/issues"
13
22
  },
14
- "devDependencies": {
15
- "@eslint/js": "^10.0.1",
16
- "@sammorrowdrums/mcpi": "^0.70.9",
17
- "@types/node": "^25.6.0",
18
- "eslint": "^10.2.1",
19
- "eslint-config-prettier": "^10.1.8",
20
- "prettier": "^3.8.3",
21
- "typescript": "^6.0.3",
22
- "typescript-eslint": "^8.59.0",
23
- "vitest": "^4.1.5"
23
+ "author": "Sam Morrow",
24
+ "license": "MIT",
25
+ "type": "module",
26
+ "main": "./dist/index.js",
27
+ "types": "./dist/index.d.ts",
28
+ "exports": {
29
+ ".": {
30
+ "types": "./dist/index.d.ts",
31
+ "default": "./dist/index.js"
32
+ },
33
+ "./package.json": "./package.json"
34
+ },
35
+ "files": [
36
+ "dist/**/*.js",
37
+ "dist/**/*.d.ts",
38
+ "!dist/**/*.test.js",
39
+ "!dist/**/*.test.d.ts",
40
+ "!dist/test-servers/**",
41
+ "!dist/**/*.map",
42
+ "LICENSE",
43
+ "README.md"
44
+ ],
45
+ "engines": {
46
+ "node": ">=22.13.0"
24
47
  },
25
48
  "scripts": {
26
49
  "build": "tsc",
50
+ "build:release": "node --run clean && tsc -p tsconfig.build.json",
27
51
  "check": "tsc --noEmit",
52
+ "clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
28
53
  "dev": "tsc --watch",
29
54
  "format": "prettier --write .",
30
55
  "format:check": "prettier --check .",
31
56
  "lint": "eslint .",
32
57
  "lint:fix": "eslint --fix .",
33
- "prepublishOnly": "npm run build",
58
+ "prepublishOnly": "node --run build:release && node --run release:check",
59
+ "release:check": "node scripts/release-check.mjs",
34
60
  "start": "node dist/index.js",
35
61
  "test": "vitest --run"
36
62
  },
37
- "engines": {
38
- "node": ">=22.13.0"
63
+ "dependencies": {
64
+ "@modelcontextprotocol/client": "2.0.0",
65
+ "@modelcontextprotocol/server": "2.0.0",
66
+ "@sammorrowdrums/tool-cli": "^1.0.2",
67
+ "typebox": "^1.3.25",
68
+ "zod": "^4.3.6"
39
69
  },
40
- "description": "MCP extension for mcpi — tiered progressive tool discovery",
41
- "files": [
42
- "dist"
43
- ],
44
- "license": "MIT",
45
- "main": "./dist/index.js",
46
- "type": "module",
47
- "types": "./dist/index.d.ts"
70
+ "optionalDependencies": {
71
+ "isolated-vm": "~6.2.0"
72
+ },
73
+ "peerDependencies": {
74
+ "@sammorrowdrums/mcpi": ">=0.85.0 <1.0.0"
75
+ },
76
+ "devDependencies": {
77
+ "@eslint/js": "^10.0.1",
78
+ "@sammorrowdrums/mcpi": ">=0.70.9 <1.0.0",
79
+ "@types/node": "^25.6.0",
80
+ "eslint": "^10.10.0",
81
+ "eslint-config-prettier": "^10.1.8",
82
+ "prettier": "^3.9.6",
83
+ "typescript": "^6.0.3",
84
+ "typescript-eslint": "^8.69.0",
85
+ "vitest": "^4.1.11"
86
+ },
87
+ "overrides": {
88
+ "fast-uri": "^3.1.5",
89
+ "qs": "^6.16.0",
90
+ "@anthropic-ai/sdk": ">=0.91.1"
91
+ },
92
+ "publishConfig": {
93
+ "access": "public",
94
+ "provenance": true
95
+ }
48
96
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=code-mode-integration.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-mode-integration.test.d.ts","sourceRoot":"","sources":["../../src/code-mode/code-mode-integration.test.ts"],"names":[],"mappings":""}
@@ -1,116 +0,0 @@
1
- import { describe, it, expect, beforeAll, afterAll } from "vitest";
2
- import { McpClientManager } from "../mcp/client-manager.js";
3
- import { CodeModeManager } from "./index.js";
4
- /**
5
- * Integration test: connect to the test weather server, verify code mode
6
- * eligibility, type hint generation, and sandboxed execution with real
7
- * MCP tool calls returning structuredContent.
8
- */
9
- describe("code mode integration (weather server)", () => {
10
- const manager = new McpClientManager();
11
- const codeMode = new CodeModeManager();
12
- beforeAll(async () => {
13
- await manager.connectAll({
14
- mcpServers: {
15
- "test-weather": {
16
- type: "stdio",
17
- command: "node",
18
- args: ["dist/test-servers/weather-stdio.js"],
19
- },
20
- },
21
- });
22
- codeMode.initialize(manager);
23
- });
24
- afterAll(async () => {
25
- await manager.disconnectAll();
26
- });
27
- it("discovers eligible tools with readOnlyHint + outputSchema", () => {
28
- const eligible = codeMode.getEligibleTools();
29
- expect(eligible.length).toBeGreaterThanOrEqual(2);
30
- const names = eligible.map((t) => t.name).sort();
31
- expect(names).toContain("check_weather_for_city");
32
- expect(names).toContain("check_weekly_forecast_for_city");
33
- expect(names).toContain("echo");
34
- });
35
- it("generates type hints for eligible tools", () => {
36
- const hints = codeMode.getTypeHints();
37
- expect(hints).toContain("declare const codemode");
38
- expect(hints).toContain("check_weather_for_city");
39
- expect(hints).toContain("check_weekly_forecast_for_city");
40
- expect(hints).toContain("echo");
41
- expect(hints).toContain("listTools");
42
- });
43
- it("reports as active", () => {
44
- expect(codeMode.isActive).toBe(true);
45
- });
46
- it("generates system prompt section", () => {
47
- const section = codeMode.formatSystemPromptSection();
48
- expect(section).toContain("<code_mode>");
49
- expect(section).toContain("code_search");
50
- expect(section).toContain("code_execute");
51
- expect(section).toContain("declare const codemode");
52
- });
53
- it("executes code that calls a single tool", async () => {
54
- const result = await codeMode.executeCode(`
55
- const weather = await codemode.check_weather_for_city({ city: "Tokyo" });
56
- return weather;
57
- `);
58
- expect(result.error).toBeUndefined();
59
- expect(result.result).toHaveProperty("temperature", 26);
60
- expect(result.result).toHaveProperty("conditions", "Sunny");
61
- expect(result.result).toHaveProperty("humidity", 55);
62
- });
63
- it("executes code that chains multiple tool calls", async () => {
64
- const result = await codeMode.executeCode(`
65
- const cities = ["London", "Tokyo"];
66
- const results = [];
67
- for (const city of cities) {
68
- const w = await codemode.check_weather_for_city({ city });
69
- results.push({ city, temp: w.temperature });
70
- }
71
- return results;
72
- `);
73
- expect(result.error).toBeUndefined();
74
- expect(result.result).toEqual([
75
- { city: "London", temp: 14 },
76
- { city: "Tokyo", temp: 26 },
77
- ]);
78
- });
79
- it("executes code that uses listTools", async () => {
80
- const result = await codeMode.executeCode(`
81
- const tools = await codemode.listTools();
82
- return tools.sort();
83
- `);
84
- expect(result.error).toBeUndefined();
85
- const names = result.result;
86
- expect(names).toContain("check_weather_for_city");
87
- expect(names).toContain("echo");
88
- });
89
- it("executes code that calls echo tool", async () => {
90
- const result = await codeMode.executeCode(`
91
- const r = await codemode.echo({ message: "hello code mode" });
92
- return r;
93
- `);
94
- expect(result.error).toBeUndefined();
95
- expect(result.result).toEqual({ echo: "hello code mode" });
96
- });
97
- it("handles tool errors gracefully", async () => {
98
- const result = await codeMode.executeCode(`
99
- const w = await codemode.check_weather_for_city({ city: "Atlantis" });
100
- return w;
101
- `);
102
- // Atlantis isn't in the data — server returns text-only content (no structuredContent)
103
- // The executor should still return something (parsed text or raw string)
104
- expect(result.error).toBeUndefined();
105
- expect(result.result).toBeDefined();
106
- });
107
- it("search mode works for tool discovery", async () => {
108
- const result = await codeMode.searchTools(`
109
- const tools = await codemode.listTools();
110
- return tools;
111
- `);
112
- expect(result.error).toBeUndefined();
113
- expect(Array.isArray(result.result)).toBe(true);
114
- });
115
- });
116
- //# sourceMappingURL=code-mode-integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-mode-integration.test.js","sourceRoot":"","sources":["../../src/code-mode/code-mode-integration.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"eligibility.d.ts","sourceRoot":"","sources":["../../src/code-mode/eligibility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEjE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAG5D;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,EAAE,CAExE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"eligibility.js","sourceRoot":"","sources":["../../src/code-mode/eligibility.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAa;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAqD,CAAC;IAC/E,OAAO,WAAW,EAAE,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;AACzE,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAAC,UAA4B;IAC3D,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAC7D,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=eligibility.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eligibility.test.d.ts","sourceRoot":"","sources":["../../src/code-mode/eligibility.test.ts"],"names":[],"mappings":""}
@@ -1,53 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { isEligibleForCodeMode } from "./eligibility.js";
3
- function makeTool(overrides = {}) {
4
- return {
5
- name: "test_tool",
6
- description: "A test tool",
7
- inputSchema: { type: "object", properties: {} },
8
- serverName: "test-server",
9
- ...overrides,
10
- };
11
- }
12
- describe("isEligibleForCodeMode", () => {
13
- it("returns true when readOnlyHint is true and outputSchema is defined", () => {
14
- const tool = makeTool({
15
- annotations: { readOnlyHint: true },
16
- outputSchema: { type: "object", properties: { result: { type: "string" } } },
17
- });
18
- expect(isEligibleForCodeMode(tool)).toBe(true);
19
- });
20
- it("returns false when readOnlyHint is false", () => {
21
- const tool = makeTool({
22
- annotations: { readOnlyHint: false },
23
- outputSchema: { type: "object", properties: {} },
24
- });
25
- expect(isEligibleForCodeMode(tool)).toBe(false);
26
- });
27
- it("returns false when readOnlyHint is missing", () => {
28
- const tool = makeTool({
29
- annotations: {},
30
- outputSchema: { type: "object", properties: {} },
31
- });
32
- expect(isEligibleForCodeMode(tool)).toBe(false);
33
- });
34
- it("returns false when annotations is undefined", () => {
35
- const tool = makeTool({
36
- annotations: undefined,
37
- outputSchema: { type: "object", properties: {} },
38
- });
39
- expect(isEligibleForCodeMode(tool)).toBe(false);
40
- });
41
- it("returns false when outputSchema is missing", () => {
42
- const tool = makeTool({
43
- annotations: { readOnlyHint: true },
44
- outputSchema: undefined,
45
- });
46
- expect(isEligibleForCodeMode(tool)).toBe(false);
47
- });
48
- it("returns false when both readOnlyHint and outputSchema are missing", () => {
49
- const tool = makeTool();
50
- expect(isEligibleForCodeMode(tool)).toBe(false);
51
- });
52
- });
53
- //# sourceMappingURL=eligibility.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eligibility.test.js","sourceRoot":"","sources":["../../src/code-mode/eligibility.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,SAAS,QAAQ,CAAC,YAA8B,EAAE;IAChD,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,aAAa;QAC1B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/C,UAAU,EAAE,aAAa;QACzB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;YACnC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;SAC7E,CAAC,CAAC;QACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE;YACpC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;SACjD,CAAC,CAAC;QACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,WAAW,EAAE,EAAE;YACf,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;SACjD,CAAC,CAAC;QACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;SACjD,CAAC,CAAC;QACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;YACnC,YAAY,EAAE,SAAS;SACxB,CAAC,CAAC;QACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/code-mode/executor.ts"],"names":[],"mappings":"AAGA,gCAAgC;AAChC,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,6DAA6D;AAC7D,MAAM,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEnG,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,aAAa,CAAC,CAUxB;AA6ED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA6BlD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/code-mode/executor.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=executor.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executor.test.d.ts","sourceRoot":"","sources":["../../src/code-mode/executor.test.ts"],"names":[],"mappings":""}
@@ -1,130 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { executeInSandbox, normalizeCode } from "./executor.js";
3
- describe("normalizeCode", () => {
4
- it("strips markdown code fences", () => {
5
- expect(normalizeCode("```js\nconst x = 1;\n```")).toBe("const x = 1;");
6
- });
7
- it("strips typescript fences", () => {
8
- expect(normalizeCode("```typescript\nconst x = 1;\n```")).toBe("const x = 1;");
9
- });
10
- it("wraps arrow function in invocation", () => {
11
- expect(normalizeCode("async () => { return 42; }")).toBe("return (async () => { return 42; })();");
12
- });
13
- it("wraps function declaration in invocation", () => {
14
- const code = "async function main() { return 42; }";
15
- const result = normalizeCode(code);
16
- expect(result).toContain("async function main()");
17
- expect(result).toContain("return main();");
18
- });
19
- it("strips export default", () => {
20
- const result = normalizeCode("export default async () => { return 42; }");
21
- expect(result).toContain("return (async () => { return 42; })();");
22
- });
23
- it("leaves bare code as-is", () => {
24
- expect(normalizeCode("const x = 1;\nreturn x;")).toBe("const x = 1;\nreturn x;");
25
- });
26
- });
27
- describe("executeInSandbox", () => {
28
- it("executes simple code and returns result", async () => {
29
- const result = await executeInSandbox("return 2 + 2;", [], async () => ({}), {
30
- timeoutMs: 5000,
31
- });
32
- expect(result.result).toBe(4);
33
- expect(result.error).toBeUndefined();
34
- });
35
- it("captures console.log output", async () => {
36
- const result = await executeInSandbox('console.log("hello", "world"); return 1;', [], async () => ({}), { timeoutMs: 5000 });
37
- expect(result.result).toBe(1);
38
- expect(result.logs).toContain("hello world");
39
- });
40
- it("dispatches tool calls through the callback", async () => {
41
- const dispatched = [];
42
- const dispatch = async (name, args) => {
43
- dispatched.push({ name, args });
44
- return { results: ["doc1", "doc2"] };
45
- };
46
- const code = `
47
- const result = await codemode.search_docs({ query: "test" });
48
- return result;
49
- `;
50
- const result = await executeInSandbox(code, ["search_docs"], dispatch, { timeoutMs: 5000 });
51
- expect(result.error).toBeUndefined();
52
- expect(result.result).toEqual({ results: ["doc1", "doc2"] });
53
- expect(dispatched).toHaveLength(1);
54
- expect(dispatched[0].name).toBe("search_docs");
55
- expect(dispatched[0].args).toEqual({ query: "test" });
56
- });
57
- it("handles tools with special characters in names", async () => {
58
- const dispatched = [];
59
- const dispatch = async (name) => {
60
- dispatched.push(name);
61
- return { ok: true };
62
- };
63
- const code = `
64
- const result = await codemode.github_list_repos({});
65
- return result;
66
- `;
67
- const result = await executeInSandbox(code, ["github.list-repos"], dispatch, {
68
- timeoutMs: 5000,
69
- });
70
- expect(result.error).toBeUndefined();
71
- expect(dispatched).toContain("github.list-repos");
72
- });
73
- it("returns error for invalid code", async () => {
74
- const result = await executeInSandbox("throw new Error('boom');", [], async () => ({}), {
75
- timeoutMs: 5000,
76
- });
77
- expect(result.error).toContain("boom");
78
- expect(result.result).toBeUndefined();
79
- });
80
- it("enforces timeout", async () => {
81
- const result = await executeInSandbox("while(true) {}", [], async () => ({}), {
82
- timeoutMs: 100,
83
- });
84
- expect(result.error).toBeDefined();
85
- expect(result.result).toBeUndefined();
86
- });
87
- it("chains multiple tool calls", async () => {
88
- const calls = [];
89
- const dispatch = async (name, args) => {
90
- calls.push(name);
91
- if (name === "list_items")
92
- return { items: ["a", "b", "c"] };
93
- if (name === "get_details")
94
- return { detail: `info for ${args.id}` };
95
- return {};
96
- };
97
- const code = `
98
- const { items } = await codemode.list_items({});
99
- const details = [];
100
- for (const id of items) {
101
- const d = await codemode.get_details({ id });
102
- details.push(d.detail);
103
- }
104
- return details;
105
- `;
106
- const result = await executeInSandbox(code, ["list_items", "get_details"], dispatch, {
107
- timeoutMs: 5000,
108
- });
109
- expect(result.error).toBeUndefined();
110
- expect(result.result).toEqual(["info for a", "info for b", "info for c"]);
111
- expect(calls).toEqual(["list_items", "get_details", "get_details", "get_details"]);
112
- });
113
- it("prevents imports", async () => {
114
- const code = 'import("fs")';
115
- const result = await executeInSandbox(code, [], async () => ({}), { timeoutMs: 5000 });
116
- expect(result.error).toBeDefined();
117
- });
118
- it("listTools returns available tools", async () => {
119
- const code = `
120
- const tools = await codemode.listTools();
121
- return tools;
122
- `;
123
- const result = await executeInSandbox(code, ["search", "execute"], async () => ({}), {
124
- timeoutMs: 5000,
125
- });
126
- expect(result.error).toBeUndefined();
127
- expect(result.result).toEqual(["search", "execute"]);
128
- });
129
- });
130
- //# sourceMappingURL=executor.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executor.test.js","sourceRoot":"","sources":["../../src/code-mode/executor.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/code-mode/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAKpE,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE9F,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D,wCAAwC;IACxC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,OAAO,CAAyB;gBAE5B,OAAO,GAAE,sBAA2B;IAIhD,iFAAiF;IACjF,UAAU,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAK9C,0EAA0E;IAC1E,OAAO,IAAI,IAAI;IASf,kEAAkE;IAClE,YAAY,IAAI,MAAM;IAItB,0BAA0B;IAC1B,gBAAgB,IAAI,OAAO,EAAE;IAI7B,gDAAgD;IAChD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,0DAA0D;IACpD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAIvD,+CAA+C;IACzC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAIvD,uEAAuE;IACvE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;IAOX,oDAAoD;IACpD,yBAAyB,IAAI,MAAM;YAwErB,OAAO;CAqDtB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/code-mode/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAO9F;;;GAGG;AACH,MAAM,OAAO,eAAe;IAClB,UAAU,GAA4B,IAAI,CAAC;IAC3C,aAAa,GAAc,EAAE,CAAC;IAC9B,SAAS,GAAG,EAAE,CAAC;IACf,OAAO,CAAyB;IAExC,YAAY,UAAkC,EAAE;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,iFAAiF;IACjF,UAAU,CAAC,UAA4B;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,0EAA0E;IAC1E,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAC7B,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAChB,eAAe,IAAI,CAAC,aAAa,CAAC,MAAM,sBAAsB,IAAI,CAAC,SAAS,CAAC,MAAM,sBAAsB,CAC1G,CAAC;IACJ,CAAC;IAED,kEAAkE;IAClE,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,0BAA0B;IAC1B,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,gDAAgD;IAChD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,0DAA0D;IAC1D,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,+CAA+C;IAC/C,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,uEAAuE;IACvE,WAAW;QACT,OAAO;YACL,UAAU,EAAE,oBAAoB,CAAC,IAAI,CAAC;YACtC,WAAW,EAAE,qBAAqB,CAAC,IAAI,CAAC;SACzC,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,yBAAyB;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAE9B,OAAO;YACL,EAAE;YACF,aAAa;YACb,cAAc;YACd,EAAE;YACF,+EAA+E;YAC/E,EAAE;YACF,iGAAiG;YACjG,+EAA+E;YAC/E,+FAA+F;YAC/F,wGAAwG;YACxG,kGAAkG;YAClG,EAAE;YACF,6FAA6F;YAC7F,EAAE;YACF,wFAAwF;YACxF,EAAE;YACF,iCAAiC;YACjC,EAAE;YACF,uHAAuH;YACvH,2FAA2F;YAC3F,mGAAmG;YACnG,+EAA+E;YAC/E,EAAE;YACF,iGAAiG;YACjG,iGAAiG;YACjG,EAAE;YACF,qGAAqG;YACrG,kGAAkG;YAClG,EAAE;YACF,uBAAuB;YACvB,EAAE;YACF,0FAA0F;YAC1F,iGAAiG;YACjG,sGAAsG;YACtG,EAAE;YACF,4FAA4F;YAC5F,uDAAuD;YACvD,EAAE;YACF,eAAe;YACf,uCAAuC;YACvC,6DAA6D;YAC7D,8EAA8E;YAC9E,KAAK;YACL,EAAE;YACF,eAAe;YACf,gDAAgD;YAChD,oBAAoB;YACpB,eAAe;YACf,gBAAgB;YAChB,qEAAqE;YACrE,sCAAsC;YACtC,+DAA+D;YAC/D,KAAK;YACL,yCAAyC;YACzC,WAAW;YACX,GAAG;YACH,gBAAgB;YAChB,KAAK;YACL,EAAE;YACF,qBAAqB;YACrB,EAAE;YACF,eAAe;YACf,IAAI,CAAC,SAAS;YACd,KAAK;YACL,cAAc;SACf,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,IAAY;QAChC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,2BAA2B,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC7E,CAAC;QAED,0EAA0E;QAC1E,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAExD,MAAM,QAAQ,GAAG,KAAK,EAAE,QAAgB,EAAE,IAA6B,EAAE,EAAE;YACzE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,yCAAyC,CAAC,CAAC;YAC9E,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,UAAU,oBAAoB,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1E,2DAA2D;YAC3D,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBAC7B,OAAO,MAAM,CAAC,iBAAiB,CAAC;YAClC,CAAC;YAED,oCAAoC;YACpC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO;qBAC7B,MAAM,CACL,CAAC,CAAC,EAAuC,EAAE,CACzC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,MAAM,IAAI,CAAC,CACrD;qBACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAEtB,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtC,IAAI,CAAC;oBACH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC9B,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,QAAQ,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,OAAO,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE;YACjD,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YACrC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;SAClC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/code-mode/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,QAAA,MAAM,SAAS;;EAKb,CAAC;AAEH,KAAK,aAAa,GAAG,MAAM,CAAC,OAAO,SAAS,CAAC,CAAC;AAE9C,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAoCD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe;;;;;;;yBAS1C,MAAM,UACX,aAAa,WACZ,WAAW,GAAG,SAAS,aACrB,SAAS,QACd,gBAAgB,GACrB,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;EAMnD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe;;;;;;;yBAS3C,MAAM,UACX,aAAa,WACZ,WAAW,GAAG,SAAS,aACrB,SAAS,QACd,gBAAgB,GACrB,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;EAMnD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/code-mode/tools.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"type-hints.d.ts","sourceRoot":"","sources":["../../src/code-mode/type-hints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,UAAU,EAClB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACxC,KAAK,SAAI,EACT,IAAI,kBAAwB,GAC3B,MAAM,CAqER;AAyED,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAwC1D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"type-hints.js","sourceRoot":"","sources":["../../src/code-mode/type-hints.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=type-hints.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"type-hints.test.d.ts","sourceRoot":"","sources":["../../src/code-mode/type-hints.test.ts"],"names":[],"mappings":""}