arc-1-lsp 0.0.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 (51) hide show
  1. package/LICENSE +30 -0
  2. package/README.md +295 -0
  3. package/dist/adt-ls/cert.js +121 -0
  4. package/dist/adt-ls/cert.js.map +1 -0
  5. package/dist/adt-ls/destinations.js +116 -0
  6. package/dist/adt-ls/destinations.js.map +1 -0
  7. package/dist/adt-ls/discovery.js +59 -0
  8. package/dist/adt-ls/discovery.js.map +1 -0
  9. package/dist/adt-ls/driver.js +150 -0
  10. package/dist/adt-ls/driver.js.map +1 -0
  11. package/dist/adt-ls/lifecycle.js +96 -0
  12. package/dist/adt-ls/lifecycle.js.map +1 -0
  13. package/dist/adt-ls/mcp-federation.js +67 -0
  14. package/dist/adt-ls/mcp-federation.js.map +1 -0
  15. package/dist/adt-ls/mcp-lifecycle.js +10 -0
  16. package/dist/adt-ls/mcp-lifecycle.js.map +1 -0
  17. package/dist/adt-ls/repository.js +59 -0
  18. package/dist/adt-ls/repository.js.map +1 -0
  19. package/dist/adt-ls/session-retry.js +79 -0
  20. package/dist/adt-ls/session-retry.js.map +1 -0
  21. package/dist/adt-ls/tls-reverse-proxy.js +80 -0
  22. package/dist/adt-ls/tls-reverse-proxy.js.map +1 -0
  23. package/dist/btp/bridge.js +75 -0
  24. package/dist/btp/bridge.js.map +1 -0
  25. package/dist/btp/connectivity.js +27 -0
  26. package/dist/btp/connectivity.js.map +1 -0
  27. package/dist/btp/destination.js +22 -0
  28. package/dist/btp/destination.js.map +1 -0
  29. package/dist/btp/token.js +23 -0
  30. package/dist/btp/token.js.map +1 -0
  31. package/dist/btp/types.js +7 -0
  32. package/dist/btp/types.js.map +1 -0
  33. package/dist/btp/vcap.js +58 -0
  34. package/dist/btp/vcap.js.map +1 -0
  35. package/dist/index.js +35 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/server/auth.js +26 -0
  38. package/dist/server/auth.js.map +1 -0
  39. package/dist/server/config.js +53 -0
  40. package/dist/server/config.js.map +1 -0
  41. package/dist/server/engine.js +239 -0
  42. package/dist/server/engine.js.map +1 -0
  43. package/dist/server/http.js +52 -0
  44. package/dist/server/http.js.map +1 -0
  45. package/dist/server/logger.js +14 -0
  46. package/dist/server/logger.js.map +1 -0
  47. package/dist/server/safety.js +25 -0
  48. package/dist/server/safety.js.map +1 -0
  49. package/dist/server/server.js +186 -0
  50. package/dist/server/server.js.map +1 -0
  51. package/package.json +66 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/server/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * http-streamable transport for arc-1-lsp (required for BTP CF). Mounts the MCP
3
+ * SDK StreamableHTTPServerTransport at POST /mcp behind an API-key check, plus
4
+ * an unauthenticated GET /healthz for CF health checks. Stateless per-request
5
+ * (a fresh server+transport per call) — simple and adequate for the foundation
6
+ * deploy; session-stateful mode can come later.
7
+ */
8
+ import { createServer } from 'node:http';
9
+ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
10
+ import { checkApiKey, parseApiKeys } from './auth.js';
11
+ import { logger } from './logger.js';
12
+ export function startHttpServer(makeServer, config) {
13
+ const keys = parseApiKeys(config.apiKeys);
14
+ if (keys.length === 0) {
15
+ logger.warn('ARC1_API_KEYS not set — /mcp is UNAUTHENTICATED (acceptable for local dev only).');
16
+ }
17
+ const httpServer = createServer(async (req, res) => {
18
+ try {
19
+ if (req.method === 'GET' && req.url === '/healthz') {
20
+ res.writeHead(200, { 'content-type': 'text/plain' }).end('ok');
21
+ return;
22
+ }
23
+ if (!req.url || !req.url.startsWith('/mcp')) {
24
+ res.writeHead(404, { 'content-type': 'application/json' }).end(JSON.stringify({ error: 'not found' }));
25
+ return;
26
+ }
27
+ if (!checkApiKey({ authorization: req.headers.authorization, 'x-api-key': req.headers['x-api-key'] }, keys)) {
28
+ res.writeHead(401, { 'content-type': 'application/json' }).end(JSON.stringify({ error: 'unauthorized' }));
29
+ return;
30
+ }
31
+ const server = makeServer();
32
+ const transport = new StreamableHTTPServerTransport({ sessionIdGenerator: undefined });
33
+ res.on('close', () => {
34
+ transport.close();
35
+ server.close();
36
+ });
37
+ await server.connect(transport);
38
+ await transport.handleRequest(req, res);
39
+ }
40
+ catch (e) {
41
+ logger.error(`http handler error: ${e instanceof Error ? e.message : String(e)}`);
42
+ if (!res.headersSent) {
43
+ res.writeHead(500, { 'content-type': 'application/json' }).end(JSON.stringify({ error: 'internal error' }));
44
+ }
45
+ }
46
+ });
47
+ httpServer.listen(config.httpPort, '0.0.0.0', () => {
48
+ logger.info(`arc-1-lsp MCP server ready (http-streamable) on :${config.httpPort}/mcp`);
49
+ });
50
+ return httpServer;
51
+ }
52
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ const order = { debug: 0, info: 1, warn: 2, error: 3 };
2
+ const min = process.env.ARC1_LOG_LEVEL || 'info';
3
+ function emit(level, msg) {
4
+ if (order[level] < order[min])
5
+ return;
6
+ process.stderr.write(`[${level}] ${msg}\n`);
7
+ }
8
+ export const logger = {
9
+ debug: (m) => emit('debug', m),
10
+ info: (m) => emit('info', m),
11
+ warn: (m) => emit('warn', m),
12
+ error: (m) => emit('error', m),
13
+ };
14
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/server/logger.ts"],"names":[],"mappings":"AAKA,MAAM,KAAK,GAA0B,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAC9E,MAAM,GAAG,GAAW,OAAO,CAAC,GAAG,CAAC,cAAwB,IAAI,MAAM,CAAC;AAEnE,SAAS,IAAI,CAAC,KAAY,EAAE,GAAW;IACrC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO;IACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,GAAG,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,KAAK,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,IAAI,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,KAAK,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;CACvC,CAAC"}
@@ -0,0 +1,25 @@
1
+ /** Package allowlist match: `*` (any), exact, or `PREFIX*`. Case-insensitive. */
2
+ export function isPackageAllowed(allowed, pkg) {
3
+ const p = pkg.toUpperCase();
4
+ return allowed.some((raw) => {
5
+ const a = raw.toUpperCase();
6
+ if (a === '*')
7
+ return true;
8
+ if (a.endsWith('*'))
9
+ return p.startsWith(a.slice(0, -1));
10
+ return a === p;
11
+ });
12
+ }
13
+ /**
14
+ * Throw a clear error if a mutating action isn't permitted. `packageName` is
15
+ * checked against the allowlist when supplied (e.g. on create).
16
+ */
17
+ export function assertWriteAllowed(safety, opts) {
18
+ if (!safety.allowWrites) {
19
+ throw new Error(`Writes are disabled (read-only mode). Set ARC1_ALLOW_WRITES=true to enable ${opts.action}.`);
20
+ }
21
+ if (opts.packageName && !isPackageAllowed(safety.allowedPackages, opts.packageName)) {
22
+ throw new Error(`Package "${opts.packageName}" is not in the write allowlist [${safety.allowedPackages.join(', ')}]. Set ARC1_ALLOWED_PACKAGES to permit it.`);
23
+ }
24
+ }
25
+ //# sourceMappingURL=safety.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safety.js","sourceRoot":"","sources":["../../src/server/safety.ts"],"names":[],"mappings":"AAUA,iFAAiF;AACjF,MAAM,UAAU,gBAAgB,CAAC,OAAiB,EAAE,GAAW;IAC7D,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC5B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAC3B,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAmB,EAAE,IAA8C;IACpG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,8EAA8E,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAChH,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACpF,MAAM,IAAI,KAAK,CACb,YAAY,IAAI,CAAC,WAAW,oCAAoC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAC9I,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,186 @@
1
+ /**
2
+ * The arc-1-lsp MCP server (the "shell"). Reuses the ARC-1 shape — a small set
3
+ * of intent tools — but every tool is backed by the embedded adt-ls engine, not
4
+ * a hand-rolled ADT client. Foundation exposes two tools: `health` and
5
+ * `list_destinations`.
6
+ */
7
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
8
+ import { z } from 'zod';
9
+ function text(value) {
10
+ return {
11
+ content: [{ type: 'text', text: typeof value === 'string' ? value : JSON.stringify(value, null, 2) }],
12
+ };
13
+ }
14
+ export function createMcpServer(engine) {
15
+ const server = new McpServer({ name: 'arc-1-lsp', version: '0.0.1' });
16
+ server.registerTool('health', {
17
+ description: 'Report arc-1-lsp and embedded adt-ls health (adt-ls version, MCP port, up state). No SAP connection required.',
18
+ inputSchema: {},
19
+ }, async () => text(engine.health()));
20
+ server.registerTool('list_destinations', {
21
+ description: 'List the available ABAP system destinations, federated from the embedded adt-ls.',
22
+ inputSchema: {},
23
+ }, async () => text(await engine.callTool('abap_list_destinations', {})));
24
+ server.registerTool('list_creatable_objects', {
25
+ description: 'List the ABAP object types creatable on a connected system (federated from adt-ls). Uses the startup-connected destination when `destination` is omitted. Exercises a real backend call.',
26
+ inputSchema: {
27
+ destination: z
28
+ .string()
29
+ .optional()
30
+ .describe('Destination id; defaults to the destination connected at startup.'),
31
+ },
32
+ }, async ({ destination }) => {
33
+ const dest = destination ?? engine.connectedDestination;
34
+ if (!dest) {
35
+ return text('No ABAP destination is connected. Configure ARC1_SAP_HOST/PORT/USER/PASSWORD, or pass `destination`.');
36
+ }
37
+ return text(await engine.callTool('abap_creation-get_all_creatable_objects', { destination: dest }));
38
+ });
39
+ server.registerTool('search_objects', {
40
+ description: 'Search ABAP repository objects on the connected system by name pattern (e.g. "CL_ABAP*"). Returns name, type, description, and ADT uri for each hit.',
41
+ inputSchema: {
42
+ pattern: z.string().describe('Name pattern, e.g. "CL_ABAP_TYPEDESCR" or "ZCL_*".'),
43
+ maxResults: z.number().int().positive().max(200).optional().describe('Max hits (default 50).'),
44
+ types: z
45
+ .array(z.string())
46
+ .optional()
47
+ .describe('Optional ADT object-type filter (e.g. ["CLAS/OC"]); empty = all types.'),
48
+ },
49
+ }, async ({ pattern, maxResults, types }) => {
50
+ if (!engine.connectedDestination) {
51
+ return text('No ABAP destination is connected. Configure ARC1_SAP_* (see README).');
52
+ }
53
+ return text(await engine.search(pattern, { maxResults, types }));
54
+ });
55
+ server.registerTool('list_inactive_objects', {
56
+ description: 'List inactive (draft) objects on the connected system — those edited but not yet activated.',
57
+ inputSchema: {},
58
+ }, async () => {
59
+ if (!engine.connectedDestination) {
60
+ return text('No ABAP destination is connected. Configure ARC1_SAP_* (see README).');
61
+ }
62
+ return text(await engine.listInactiveObjects());
63
+ });
64
+ server.registerTool('list_users', {
65
+ description: 'List the system users on the connected ABAP system (id + display name).',
66
+ inputSchema: {},
67
+ }, async () => {
68
+ if (!engine.connectedDestination) {
69
+ return text('No ABAP destination is connected. Configure ARC1_SAP_* (see README).');
70
+ }
71
+ return text(await engine.listUsers());
72
+ });
73
+ server.registerTool('list_generators', {
74
+ description: 'List the object generators available on the connected system (e.g. RAP "OData UI Service") — what `generate_objects` can produce.',
75
+ inputSchema: {},
76
+ }, async () => {
77
+ const dest = engine.connectedDestination;
78
+ if (!dest)
79
+ return text('No ABAP destination is connected. Configure ARC1_SAP_* (see README).');
80
+ return text(await engine.callTool('abap_generators-list_generators', { destination: dest }));
81
+ });
82
+ server.registerTool('get_generator_schema', {
83
+ description: 'Get the input schema for a specific object generator (use `generatorId` from list_generators). Read-only. ' +
84
+ 'Object-referencing generators (e.g. OData UI / Web-API service) also need `referencedObjectType` + `referencedObjectName`.',
85
+ inputSchema: {
86
+ generatorId: z.string().describe('Generator id from list_generators (e.g. "x-ui-service").'),
87
+ package: z
88
+ .string()
89
+ .optional()
90
+ .describe('Target package the schema is contextualized for (adt-ls requires one; default "$TMP").'),
91
+ referencedObjectType: z
92
+ .string()
93
+ .optional()
94
+ .describe('For generators built from an object: the referenced object type ("TABL", "DDLS", "BDEF", …).'),
95
+ referencedObjectName: z
96
+ .string()
97
+ .optional()
98
+ .describe('For generators built from an object: the referenced object name (e.g. "SCARR").'),
99
+ },
100
+ }, async ({ generatorId, package: pkg, referencedObjectType, referencedObjectName }) => {
101
+ const dest = engine.connectedDestination;
102
+ if (!dest)
103
+ return text('No ABAP destination is connected. Configure ARC1_SAP_* (see README).');
104
+ // adt-ls's get_schema requires all of packageName + referencedObjectType + referencedObjectName
105
+ // (the latter two may be ""); object-referencing generators (UI / Web-API service) need a real reference.
106
+ return text(await engine.callTool('abap_generators-get_schema', {
107
+ destination: dest,
108
+ generatorId,
109
+ packageName: pkg ?? '$TMP',
110
+ referencedObjectType: referencedObjectType ?? '',
111
+ referencedObjectName: referencedObjectName ?? '',
112
+ }));
113
+ });
114
+ server.registerTool('get_object_type_details', {
115
+ description: 'Describe the fields required to create an object of a given ADT type (e.g. "CLAS/OC") — read-only creation metadata.',
116
+ inputSchema: {
117
+ objectType: z.string().describe('ADT object type, e.g. "CLAS/OC", "DDLS/DF".'),
118
+ name: z.string().optional().describe('Candidate object name (default placeholder).'),
119
+ },
120
+ }, async ({ objectType, name }) => {
121
+ const dest = engine.connectedDestination;
122
+ if (!dest)
123
+ return text('No ABAP destination is connected. Configure ARC1_SAP_* (see README).');
124
+ return text(await engine.callTool('abap_creation-get_object_type_details', {
125
+ destination: dest,
126
+ objectType,
127
+ name: name ?? 'Z_PLACEHOLDER',
128
+ }));
129
+ });
130
+ server.registerTool('get_service_binding', {
131
+ description: 'Inspect a published OData service binding (SRVB): binding type, OData version, published state, and service URIs. Find binding names via `search_objects` with types ["SRVB/SVB"].',
132
+ inputSchema: {
133
+ serviceBindingName: z.string().describe('Service binding name, e.g. "/DMO/API_TRAVEL_U_V2".'),
134
+ },
135
+ }, async ({ serviceBindingName }) => {
136
+ const dest = engine.connectedDestination;
137
+ if (!dest)
138
+ return text('No ABAP destination is connected. Configure ARC1_SAP_* (see README).');
139
+ return text(await engine.callTool('abap_business_services-fetch_services', { destination: dest, serviceBindingName }));
140
+ });
141
+ // ── Authoring loop (pure adt-ls; modern ABAP-Cloud object types only) ──
142
+ const objectType = z
143
+ .string()
144
+ .describe('ADT object type code, e.g. "CLAS/OC", "INTF/OI", "DDLS/DF" (modern ABAP-Cloud types).');
145
+ const include = z
146
+ .enum(['definitions', 'implementations', 'testclasses', 'macros'])
147
+ .optional()
148
+ .describe('Class local include to target; omit for the main source.');
149
+ server.registerTool('read_source', {
150
+ description: 'Read the source of an ABAP object by name + type (modern types: class/interface/CDS/…). Classic types (program/table/…) are not served by adt-ls headless — use main ARC-1 for those.',
151
+ inputSchema: { name: z.string(), objectType, include },
152
+ }, async ({ name, objectType: t, include: inc }) => text(await engine.lifecycle.readSource({ name, objectType: t, include: inc })));
153
+ server.registerTool('create_object', {
154
+ description: 'Create an ABAP object (mutating — requires ARC1_ALLOW_WRITES; package must be in the allowlist).',
155
+ inputSchema: {
156
+ objectType,
157
+ name: z.string(),
158
+ package: z.string().describe('Development package, e.g. "$TMP".'),
159
+ description: z.string(),
160
+ },
161
+ }, async ({ objectType: t, name, package: pkg, description }) => text(await engine.lifecycle.createObject({ objectType: t, name, packageName: pkg, description })));
162
+ server.registerTool('update_source', {
163
+ description: "Replace an object's source (mutating — requires ARC1_ALLOW_WRITES). Source is plain ABAP text.",
164
+ inputSchema: { name: z.string(), objectType, source: z.string(), include },
165
+ }, async ({ name, objectType: t, source, include: inc }) => {
166
+ await engine.lifecycle.updateSource({ name, objectType: t, source, include: inc });
167
+ return text({ updated: name });
168
+ });
169
+ server.registerTool('activate_object', {
170
+ description: 'Activate an object (mutating — requires ARC1_ALLOW_WRITES). Returns {success, diagnostics}; on syntax errors success is false with ranged diagnostics.',
171
+ inputSchema: { name: z.string(), objectType },
172
+ }, async ({ name, objectType: t }) => text(await engine.lifecycle.activate({ name, objectType: t })));
173
+ server.registerTool('run_unit_tests', {
174
+ description: 'Run ABAP Unit tests for an object by name + type.',
175
+ inputSchema: { name: z.string(), objectType },
176
+ }, async ({ name, objectType: t }) => text(await engine.lifecycle.runUnitTests({ name, objectType: t })));
177
+ server.registerTool('delete_object', {
178
+ description: 'Delete an ABAP object (mutating — requires ARC1_ALLOW_WRITES).',
179
+ inputSchema: { name: z.string(), objectType },
180
+ }, async ({ name, objectType: t }) => {
181
+ await engine.lifecycle.deleteObject({ name, objectType: t });
182
+ return text({ deleted: name });
183
+ });
184
+ return server;
185
+ }
186
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "arc-1-lsp",
3
+ "version": "0.0.1",
4
+ "description": "ARC-1 edition that delegates all ABAP/ADT work to SAP's embedded adt-ls language server.",
5
+ "keywords": [
6
+ "sap",
7
+ "abap",
8
+ "adt",
9
+ "adt-ls",
10
+ "mcp",
11
+ "model-context-protocol",
12
+ "claude",
13
+ "llm",
14
+ "ai",
15
+ "btp"
16
+ ],
17
+ "license": "MIT",
18
+ "author": "Marian Zeis",
19
+ "homepage": "https://github.com/marianfoo/arc-1-lsp#readme",
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/marianfoo/arc-1-lsp.git"
23
+ },
24
+ "bugs": {
25
+ "url": "https://github.com/marianfoo/arc-1-lsp/issues"
26
+ },
27
+ "type": "module",
28
+ "bin": {
29
+ "arc1-lsp": "dist/index.js"
30
+ },
31
+ "files": [
32
+ "dist",
33
+ "README.md",
34
+ "LICENSE"
35
+ ],
36
+ "publishConfig": {
37
+ "access": "public"
38
+ },
39
+ "engines": {
40
+ "node": ">=22"
41
+ },
42
+ "scripts": {
43
+ "build": "tsc -p tsconfig.json",
44
+ "dev": "tsx src/index.ts",
45
+ "dev:http": "ARC1_TRANSPORT=http-streamable tsx src/index.ts",
46
+ "test": "vitest run",
47
+ "test:watch": "vitest",
48
+ "typecheck": "tsc -p tsconfig.json --noEmit",
49
+ "lint": "biome check src tests",
50
+ "lint:fix": "biome check --write src tests",
51
+ "format": "biome format --write src tests"
52
+ },
53
+ "dependencies": {
54
+ "@modelcontextprotocol/sdk": "^1.12.0",
55
+ "commander": "^12.1.0",
56
+ "vscode-jsonrpc": "^8.2.0",
57
+ "zod": "^3.23.8"
58
+ },
59
+ "devDependencies": {
60
+ "@biomejs/biome": "^1.9.4",
61
+ "@types/node": "^22.9.0",
62
+ "tsx": "^4.19.2",
63
+ "typescript": "^5.6.3",
64
+ "vitest": "^2.1.5"
65
+ }
66
+ }