@minicor/mcp-server 3.8.0 → 3.9.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 (75) hide show
  1. package/README.md +33 -1
  2. package/dist/__tests__/builder-discovery.test.d.ts +2 -0
  3. package/dist/__tests__/builder-discovery.test.d.ts.map +1 -0
  4. package/dist/__tests__/builder-discovery.test.js +120 -0
  5. package/dist/__tests__/builder-discovery.test.js.map +1 -0
  6. package/dist/__tests__/codemode.test.js +35 -0
  7. package/dist/__tests__/codemode.test.js.map +1 -1
  8. package/dist/__tests__/config-stores.test.d.ts +2 -0
  9. package/dist/__tests__/config-stores.test.d.ts.map +1 -0
  10. package/dist/__tests__/config-stores.test.js +88 -0
  11. package/dist/__tests__/config-stores.test.js.map +1 -0
  12. package/dist/__tests__/dev-mode-draft.test.d.ts +2 -0
  13. package/dist/__tests__/dev-mode-draft.test.d.ts.map +1 -0
  14. package/dist/__tests__/dev-mode-draft.test.js +260 -0
  15. package/dist/__tests__/dev-mode-draft.test.js.map +1 -0
  16. package/dist/__tests__/disk-token-store.test.d.ts +2 -0
  17. package/dist/__tests__/disk-token-store.test.d.ts.map +1 -0
  18. package/dist/__tests__/disk-token-store.test.js +231 -0
  19. package/dist/__tests__/disk-token-store.test.js.map +1 -0
  20. package/dist/__tests__/laminar-client.test.js +130 -0
  21. package/dist/__tests__/laminar-client.test.js.map +1 -1
  22. package/dist/__tests__/lib-dev-mode.test.d.ts +2 -0
  23. package/dist/__tests__/lib-dev-mode.test.d.ts.map +1 -0
  24. package/dist/__tests__/lib-dev-mode.test.js +48 -0
  25. package/dist/__tests__/lib-dev-mode.test.js.map +1 -0
  26. package/dist/__tests__/server-profile.test.d.ts +2 -0
  27. package/dist/__tests__/server-profile.test.d.ts.map +1 -0
  28. package/dist/__tests__/server-profile.test.js +311 -0
  29. package/dist/__tests__/server-profile.test.js.map +1 -0
  30. package/dist/builder-index.d.ts +3 -0
  31. package/dist/builder-index.d.ts.map +1 -0
  32. package/dist/builder-index.js +5 -0
  33. package/dist/builder-index.js.map +1 -0
  34. package/dist/codemode.d.ts +3 -1
  35. package/dist/codemode.d.ts.map +1 -1
  36. package/dist/codemode.js +20 -6
  37. package/dist/codemode.js.map +1 -1
  38. package/dist/disk-token-store.d.ts +101 -0
  39. package/dist/disk-token-store.d.ts.map +1 -0
  40. package/dist/disk-token-store.js +398 -0
  41. package/dist/disk-token-store.js.map +1 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +64 -118
  44. package/dist/index.js.map +1 -1
  45. package/dist/laminar-client.d.ts +105 -0
  46. package/dist/laminar-client.d.ts.map +1 -1
  47. package/dist/laminar-client.js +41 -1
  48. package/dist/laminar-client.js.map +1 -1
  49. package/dist/lib.d.ts +4 -0
  50. package/dist/lib.d.ts.map +1 -1
  51. package/dist/lib.js +16 -51
  52. package/dist/lib.js.map +1 -1
  53. package/dist/server-profile.d.ts +11 -0
  54. package/dist/server-profile.d.ts.map +1 -0
  55. package/dist/server-profile.js +104 -0
  56. package/dist/server-profile.js.map +1 -0
  57. package/dist/setup.d.ts +1 -0
  58. package/dist/setup.d.ts.map +1 -1
  59. package/dist/setup.js +21 -47
  60. package/dist/setup.js.map +1 -1
  61. package/dist/tools/builder-discovery.d.ts +17 -0
  62. package/dist/tools/builder-discovery.d.ts.map +1 -0
  63. package/dist/tools/builder-discovery.js +131 -0
  64. package/dist/tools/builder-discovery.js.map +1 -0
  65. package/dist/tools/core.d.ts.map +1 -1
  66. package/dist/tools/core.js +5 -45
  67. package/dist/tools/core.js.map +1 -1
  68. package/dist/tools/dev-mode-draft.d.ts +3 -0
  69. package/dist/tools/dev-mode-draft.d.ts.map +1 -0
  70. package/dist/tools/dev-mode-draft.js +279 -0
  71. package/dist/tools/dev-mode-draft.js.map +1 -0
  72. package/dist/tools/vm.d.ts.map +1 -1
  73. package/dist/tools/vm.js +3 -35
  74. package/dist/tools/vm.js.map +1 -1
  75. package/package.json +2 -1
@@ -0,0 +1,311 @@
1
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
2
+ import { InMemoryTransport } from "@modelcontextprotocol/sdk/inMemory.js";
3
+ import { afterEach, describe, expect, it, vi } from "vitest";
4
+ import { buildCodeModeInstructions } from "../codemode.js";
5
+ import { createMinicorServer } from "../lib.js";
6
+ import { BUILDER_INSTRUCTIONS, parseServerProfile, serverNameForProfile, } from "../server-profile.js";
7
+ const BUILDER_TOOLS = [
8
+ "add_test_case",
9
+ "answer_build_question",
10
+ "create_config_store",
11
+ "create_workflow",
12
+ "delete_config_store",
13
+ "delete_job",
14
+ "delete_middleware",
15
+ "dev_mode_add_step",
16
+ "dev_mode_delete_draft",
17
+ "dev_mode_edit_step",
18
+ "dev_mode_get_run_status",
19
+ "dev_mode_get_step",
20
+ "dev_mode_get_step_list",
21
+ "dev_mode_get_workspace",
22
+ "dev_mode_load",
23
+ "dev_mode_publish",
24
+ "dev_mode_regroup",
25
+ "dev_mode_remove_step",
26
+ "dev_mode_reorder",
27
+ "dev_mode_run",
28
+ "dev_mode_stop_run",
29
+ "get_build_status",
30
+ "get_config_properties",
31
+ "get_config_property",
32
+ "get_config_store",
33
+ "get_job",
34
+ "get_job_execution",
35
+ "get_test_report",
36
+ "get_workflow",
37
+ "inspect_job_execution",
38
+ "list_config_stores",
39
+ "list_middlewares",
40
+ "list_workspace_api_keys",
41
+ "list_workflows",
42
+ "list_workspaces",
43
+ "publish_job",
44
+ "register_job",
45
+ "register_middleware",
46
+ "remove_config_property",
47
+ "restore_config_store",
48
+ "run_job",
49
+ "run_tests",
50
+ "set_middleware_api_key",
51
+ "teach_job",
52
+ "update_build_run",
53
+ "update_config_property",
54
+ "update_job",
55
+ "vm_list",
56
+ ].sort();
57
+ afterEach(() => {
58
+ vi.unstubAllGlobals();
59
+ });
60
+ describe("MCP server profiles", () => {
61
+ it("parses the builder profile without changing the full default", () => {
62
+ expect(parseServerProfile([], {})).toBe("full");
63
+ expect(parseServerProfile(["--profile", "builder"], {})).toBe("builder");
64
+ expect(parseServerProfile(["--profile=builder"], {})).toBe("builder");
65
+ expect(parseServerProfile([], { MINICOR_MCP_PROFILE: "builder" })).toBe("builder");
66
+ expect(() => parseServerProfile(["--profile"], {})).toThrow("Missing value");
67
+ expect(() => parseServerProfile(["--profile="], {})).toThrow("Missing value");
68
+ expect(() => parseServerProfile(["--profile", "unknown"], {})).toThrow("Unknown MCP profile");
69
+ });
70
+ it("uses a distinct server name and no session lifecycle for builder", () => {
71
+ expect(serverNameForProfile("builder")).toBe("minicor-builder");
72
+ expect(BUILDER_INSTRUCTIONS).not.toContain("session_start");
73
+ expect(BUILDER_INSTRUCTIONS).not.toContain("session_end");
74
+ const codeModeInstructions = buildCodeModeInstructions(BUILDER_INSTRUCTIONS, { sessionLifecycle: false });
75
+ expect(codeModeInstructions).not.toContain("session_start");
76
+ expect(codeModeInstructions).not.toContain("session_end");
77
+ expect(codeModeInstructions).toContain("minicor.dev_mode_run");
78
+ });
79
+ it("exposes exactly the focused builder allowlist", async () => {
80
+ const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
81
+ const embedded = await createMinicorServer(serverTransport, {
82
+ profile: "builder",
83
+ credentials: {
84
+ access_token: "test-token",
85
+ refresh_token: "test-refresh-token",
86
+ expires_at: Date.now() + 3_600_000,
87
+ },
88
+ baseUrl: "https://api.test.com",
89
+ codeMode: false,
90
+ });
91
+ const client = new Client({ name: "test-client", version: "1.0.0" });
92
+ try {
93
+ await client.connect(clientTransport);
94
+ const result = await client.listTools();
95
+ const names = result.tools.map((tool) => tool.name).sort();
96
+ expect(names).toEqual(BUILDER_TOOLS);
97
+ expect(names).not.toContain("session_start");
98
+ expect(names).not.toContain("vm_connect");
99
+ expect(names).not.toContain("execute_workflow");
100
+ }
101
+ finally {
102
+ await client.close();
103
+ await embedded.close();
104
+ }
105
+ });
106
+ it("routes execution status, cooperative stop, and draft deletion", async () => {
107
+ const fetchMock = vi.fn(async (input, init) => {
108
+ if (init?.method === "DELETE") {
109
+ return new Response(null, { status: 204 });
110
+ }
111
+ const body = String(input).endsWith("/status?workspaceId=11")
112
+ ? {
113
+ active: true,
114
+ currentStepKey: "f2",
115
+ lastCompletedStepKey: "f1",
116
+ stopRequested: false,
117
+ }
118
+ : { stopRequested: true };
119
+ return new Response(JSON.stringify(body), {
120
+ status: 200,
121
+ headers: { "Content-Type": "application/json" },
122
+ });
123
+ });
124
+ vi.stubGlobal("fetch", fetchMock);
125
+ const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
126
+ const embedded = await createMinicorServer(serverTransport, {
127
+ profile: "builder",
128
+ credentials: {
129
+ access_token: "test-token",
130
+ refresh_token: "test-refresh-token",
131
+ expires_at: Date.now() + 3_600_000,
132
+ },
133
+ baseUrl: "https://api.test.com",
134
+ codeMode: false,
135
+ });
136
+ const client = new Client({ name: "test-client", version: "1.0.0" });
137
+ try {
138
+ await client.connect(clientTransport);
139
+ await client.callTool({
140
+ name: "dev_mode_get_run_status",
141
+ arguments: { workspaceId: 11, workflowId: 42 },
142
+ });
143
+ await client.callTool({
144
+ name: "dev_mode_stop_run",
145
+ arguments: { workspaceId: 11, workflowId: 42 },
146
+ });
147
+ await client.callTool({
148
+ name: "dev_mode_delete_draft",
149
+ arguments: { workspaceId: 11, workflowId: 42, confirm: true },
150
+ });
151
+ expect(fetchMock.mock.calls.map(([input, init]) => ({
152
+ method: init?.method,
153
+ url: String(input),
154
+ body: init?.body,
155
+ }))).toEqual([
156
+ {
157
+ method: "GET",
158
+ url: "https://api.test.com/dev-mode/run/42/status?workspaceId=11",
159
+ body: undefined,
160
+ },
161
+ {
162
+ method: "POST",
163
+ url: "https://api.test.com/dev-mode/run/42/stop?workspaceId=11",
164
+ body: undefined,
165
+ },
166
+ {
167
+ method: "DELETE",
168
+ url: "https://api.test.com/dev-mode/drafts/42?workspaceId=11",
169
+ body: undefined,
170
+ },
171
+ ]);
172
+ }
173
+ finally {
174
+ await client.close();
175
+ await embedded.close();
176
+ }
177
+ });
178
+ it("supports the create, configure, edit, run, and publish lifecycle", async () => {
179
+ const fetchMock = vi.fn(async (_input, _init) => new Response(JSON.stringify({ ok: true }), {
180
+ status: 200,
181
+ headers: { "Content-Type": "application/json" },
182
+ }));
183
+ vi.stubGlobal("fetch", fetchMock);
184
+ const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
185
+ const embedded = await createMinicorServer(serverTransport, {
186
+ profile: "builder",
187
+ credentials: {
188
+ access_token: "test-token",
189
+ refresh_token: "test-refresh-token",
190
+ expires_at: Date.now() + 3_600_000,
191
+ },
192
+ baseUrl: "https://api.test.com",
193
+ codeMode: false,
194
+ });
195
+ const client = new Client({ name: "test-client", version: "1.0.0" });
196
+ try {
197
+ await client.connect(clientTransport);
198
+ await client.callTool({
199
+ name: "create_workflow",
200
+ arguments: {
201
+ workspaceId: 11,
202
+ name: "Builder flow",
203
+ description: "Developed through the builder MCP",
204
+ },
205
+ });
206
+ await client.callTool({
207
+ name: "dev_mode_load",
208
+ arguments: { workspaceId: 11, workflowId: 42 },
209
+ });
210
+ await client.callTool({
211
+ name: "dev_mode_edit_step",
212
+ arguments: {
213
+ workspaceId: 11,
214
+ key: "f1",
215
+ program: "return data;",
216
+ },
217
+ });
218
+ await client.callTool({
219
+ name: "create_config_store",
220
+ arguments: {
221
+ workspaceId: 11,
222
+ name: "Builder test",
223
+ externalId: "builder-test",
224
+ properties: [{ key: "username", value: "initial" }],
225
+ },
226
+ });
227
+ await client.callTool({
228
+ name: "update_config_property",
229
+ arguments: {
230
+ workspaceId: 11,
231
+ externalId: "builder-test",
232
+ key: "username",
233
+ value: "updated",
234
+ },
235
+ });
236
+ await client.callTool({
237
+ name: "dev_mode_run",
238
+ arguments: {
239
+ workspaceId: 11,
240
+ vmId: 99,
241
+ configurationExternalId: "builder-test",
242
+ input: { customerId: "123" },
243
+ },
244
+ });
245
+ await client.callTool({
246
+ name: "dev_mode_publish",
247
+ arguments: { workspaceId: 11, confirm: true },
248
+ });
249
+ const requests = fetchMock.mock.calls.map(([input, init]) => ({
250
+ method: init?.method,
251
+ url: String(input),
252
+ body: init?.body ? JSON.parse(String(init.body)) : undefined,
253
+ }));
254
+ expect(requests).toEqual([
255
+ {
256
+ method: "POST",
257
+ url: "https://api.test.com/workflow",
258
+ body: {
259
+ workspaceId: 11,
260
+ name: "Builder flow",
261
+ description: "Developed through the builder MCP",
262
+ },
263
+ },
264
+ {
265
+ method: "POST",
266
+ url: "https://api.test.com/dev-mode/load?workspaceId=11",
267
+ body: { workflowId: 42 },
268
+ },
269
+ {
270
+ method: "PUT",
271
+ url: "https://api.test.com/dev-mode/steps/f1?workspaceId=11",
272
+ body: { program: "return data;" },
273
+ },
274
+ {
275
+ method: "POST",
276
+ url: "https://api.test.com/configurations",
277
+ body: {
278
+ workspaceId: 11,
279
+ name: "Builder test",
280
+ externalId: "builder-test",
281
+ properties: [{ key: "username", value: "initial" }],
282
+ },
283
+ },
284
+ {
285
+ method: "PUT",
286
+ url: "https://api.test.com/configurations/builder-test/properties?workspaceId=11",
287
+ body: { key: "username", value: "updated" },
288
+ },
289
+ {
290
+ method: "POST",
291
+ url: "https://api.test.com/dev-mode/run?workspaceId=11",
292
+ body: {
293
+ input: { customerId: "123" },
294
+ configurationExternalId: "builder-test",
295
+ vmId: 99,
296
+ },
297
+ },
298
+ {
299
+ method: "POST",
300
+ url: "https://api.test.com/dev-mode/publish?workspaceId=11",
301
+ body: undefined,
302
+ },
303
+ ]);
304
+ }
305
+ finally {
306
+ await client.close();
307
+ await embedded.close();
308
+ }
309
+ });
310
+ });
311
+ //# sourceMappingURL=server-profile.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-profile.test.js","sourceRoot":"","sources":["../../src/__tests__/server-profile.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=builder-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder-index.d.ts","sourceRoot":"","sources":["../src/builder-index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ process.env.MINICOR_MCP_PROFILE = "builder";
3
+ await import("./index.js");
4
+ export {};
5
+ //# sourceMappingURL=builder-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder-index.js","sourceRoot":"","sources":["../src/builder-index.ts"],"names":[],"mappings":";AAEA,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,SAAS,CAAC;AAE5C,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC"}
@@ -43,7 +43,9 @@ export declare class CodeModeToolRegistry {
43
43
  private uniqueApiName;
44
44
  }
45
45
  export declare function shouldUseCodeMode(): boolean;
46
- export declare function buildCodeModeInstructions(baseInstructions: string): string;
46
+ export declare function buildCodeModeInstructions(baseInstructions: string, options?: {
47
+ sessionLifecycle?: boolean;
48
+ }): string;
47
49
  export declare function asMcpServer(registry: CodeModeToolRegistry): McpServer;
48
50
  export declare function compactToolDocs(tools: ToolDoc[]): {
49
51
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"codemode.d.ts","sourceRoot":"","sources":["../src/codemode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyBzE,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,OAAO,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAigBD,qBAAa,oBAAoB;IAQ7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAC/D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAGnB,MAAM,EAAE,SAAS,EAClC,OAAO,GAAE,eAAoB;IAO/B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAgCjC,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAIrB,oBAAoB;IAoDpB,IAAI,IAAI,OAAO,EAAE;IAIX,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;gBAMlC,WAAW,GAAG,OAAO;qBAChB,MAAM;iBACV,OAAO;gBACR,MAAM;cACR,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;;YAkGrC,MAAM;IAWpB,OAAO,CAAC,aAAa;CAUtB;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAQ3C;AAED,wBAAgB,yBAAyB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAgB1E;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,oBAAoB,GAAG,SAAS,CAErE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE;;;;;;;;;;IAE/C"}
1
+ {"version":3,"file":"codemode.d.ts","sourceRoot":"","sources":["../src/codemode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyBzE,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,OAAO,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAigBD,qBAAa,oBAAoB;IAQ7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAC/D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAGnB,MAAM,EAAE,SAAS,EAClC,OAAO,GAAE,eAAoB;IAO/B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAgCjC,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAIrB,oBAAoB;IAoDpB,IAAI,IAAI,OAAO,EAAE;IAIX,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;gBAMlC,WAAW,GAAG,OAAO;qBAChB,MAAM;iBACV,OAAO;gBACR,MAAM;cACR,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;;YAkGrC,MAAM;IAqBpB,OAAO,CAAC,aAAa;CAUtB;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAQ3C;AAED,wBAAgB,yBAAyB,CACvC,gBAAgB,EAAE,MAAM,EACxB,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3C,MAAM,CAyBR;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,oBAAoB,GAAG,SAAS,CAErE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE;;;;;;;;;;IAE/C"}
package/dist/codemode.js CHANGED
@@ -545,7 +545,7 @@ export class CodeModeToolRegistry {
545
545
  "Run JavaScript code that orchestrates the Minicor MCP API.",
546
546
  "Inside the sandbox, call Minicor tools as async functions on the `minicor` global, for example:",
547
547
  "`const workspaces = await minicor.list_workspaces({});`",
548
- "Use `await codemode.search(\"workflow\")` to discover methods and `await codemode.describe(\"minicor.create_rpa_flow\")` for parameter docs.",
548
+ "Use `await codemode.search(\"workflow\")` to discover methods and `await codemode.describe(\"minicor.list_workspaces\")` for parameter docs.",
549
549
  "Return a small JSON-serializable value or use console.log for progress. Tool calls should be awaited sequentially when actions depend on previous results.",
550
550
  "The sandbox has no require/process/fetch access; effects go through Minicor tool methods.",
551
551
  ].join("\n");
@@ -679,7 +679,13 @@ export class CodeModeToolRegistry {
679
679
  if (!tool) {
680
680
  throw new Error(`Unknown Minicor code-mode method "${apiName}". Use await codemode.search("...") to discover available methods.`);
681
681
  }
682
- const result = await tool.handler(args ?? {});
682
+ const parseResult = await z
683
+ .object(tool.inputSchema)
684
+ .safeParseAsync(args ?? {});
685
+ if (!parseResult.success) {
686
+ throw new Error(`Input validation error: Invalid arguments for tool ${tool.name}: ${parseResult.error.message}`);
687
+ }
688
+ const result = await tool.handler(parseResult.data);
683
689
  return toolResultToValue(result);
684
690
  }
685
691
  uniqueApiName(name) {
@@ -701,7 +707,16 @@ export function shouldUseCodeMode() {
701
707
  "";
702
708
  return ["1", "true", "on", "yes"].includes(flag.toLowerCase());
703
709
  }
704
- export function buildCodeModeInstructions(baseInstructions) {
710
+ export function buildCodeModeInstructions(baseInstructions, options = {}) {
711
+ const sessionLifecycle = options.sessionLifecycle ?? true;
712
+ const describeExample = sessionLifecycle
713
+ ? "minicor.session_start"
714
+ : "minicor.dev_mode_run";
715
+ const sessionInstructions = sessionLifecycle
716
+ ? `
717
+ If the current directory contains a minicor.json file, your first MCP action should be a \`codemode\` call whose code invokes \`await minicor.session_start({ directory: "<current directory>" })\`. Before ending work, invoke \`await minicor.session_end(...)\` through code mode.
718
+ `
719
+ : "";
705
720
  return `${baseInstructions}
706
721
 
707
722
  CODE MODE (EXPERIMENTAL):
@@ -711,10 +726,9 @@ If the server starts unauthenticated and only exposes \`setup_account\`, call \`
711
726
 
712
727
  Discovery inside code mode:
713
728
  - \`await codemode.search("workflow")\` finds relevant Minicor methods.
714
- - \`await codemode.describe("minicor.session_start")\` returns TypeScript-style parameter docs.
729
+ - \`await codemode.describe("${describeExample}")\` returns TypeScript-style parameter docs.
715
730
  - \`await codemode.list()\` lists all available methods.
716
-
717
- If the current directory contains a minicor.json file, your first MCP action should be a \`codemode\` call whose code invokes \`await minicor.session_start({ directory: "<current directory>" })\`. Before ending work, invoke \`await minicor.session_end(...)\` through code mode.
731
+ ${sessionInstructions}
718
732
 
719
733
  Code mode is opt-in: unset EXPERIMENTAL_USE_CODE_MODE to return to the default one-tool-per-operation MCP surface.`;
720
734
  }
@@ -1 +1 @@
1
- {"version":3,"file":"codemode.js","sourceRoot":"","sources":["../src/codemode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codemode.js","sourceRoot":"","sources":["../src/codemode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Cross-process-safe storage for the OAuth credentials used by the MCP.
3
+ *
4
+ * Reads stay synchronous because they are used while constructing clients.
5
+ * Mutations are asynchronous and serialized with an exclusive lock file so
6
+ * multiple MCP processes cannot lose one another's updates or rotate the same
7
+ * refresh token at the same time.
8
+ */
9
+ import { type Region } from "./paths.js";
10
+ export interface RegionTokens {
11
+ access_token: string;
12
+ refresh_token: string | null;
13
+ expires_at: number;
14
+ api_base?: string;
15
+ region?: Region;
16
+ }
17
+ /** On-disk format used by current multi-region installations. */
18
+ export type MultiRegionTokens = Partial<Record<Region, RegionTokens>>;
19
+ export interface RefreshedRegionTokens {
20
+ access_token: string;
21
+ expires_at: number;
22
+ /** Omit this when the server did not rotate the refresh token. */
23
+ refresh_token?: string | null;
24
+ api_base?: string;
25
+ region?: Region;
26
+ }
27
+ export interface RefreshTokenContext {
28
+ region: Region;
29
+ /** The most recent credentials read after taking the disk lock. */
30
+ tokens: Readonly<RegionTokens>;
31
+ refreshToken: string;
32
+ }
33
+ export type RefreshTokenCallback = (context: RefreshTokenContext) => Promise<RefreshedRegionTokens | null>;
34
+ export interface RefreshRegionResult {
35
+ tokens: RegionTokens;
36
+ /** `adopted` means another process already completed the refresh. */
37
+ source: "adopted" | "refreshed";
38
+ }
39
+ type PathOption = string | (() => string);
40
+ export interface DiskTokenStoreOptions {
41
+ /** Defaults to getTokenPath(), including its ~/.laminar fallback. */
42
+ readPath?: PathOption;
43
+ /** Defaults to getWriteTokenPath() under ~/.minicor. */
44
+ writePath?: PathOption;
45
+ /** A refreshed token must be valid beyond this buffer to be adopted. */
46
+ refreshBufferMs?: number;
47
+ lockRetryMs?: number;
48
+ lockTimeoutMs?: number;
49
+ staleLockMs?: number;
50
+ /** Injectable for deterministic expiry and lock tests. */
51
+ now?: () => number;
52
+ }
53
+ /** Normalize the legacy flat shape while preserving the current shape as-is. */
54
+ export declare function normalizeStoredTokens(raw: unknown): MultiRegionTokens;
55
+ export declare class DiskTokenStore {
56
+ private readonly readPathOption;
57
+ private readonly writePathOption;
58
+ private readonly refreshBufferMs;
59
+ private readonly lockRetryMs;
60
+ private readonly lockTimeoutMs;
61
+ private readonly staleLockMs;
62
+ private readonly now;
63
+ constructor(options?: DiskTokenStoreOptions);
64
+ /**
65
+ * Read all stored regions synchronously. Once the write destination exists,
66
+ * it takes precedence over an injected or legacy fallback read path.
67
+ */
68
+ readAll(): MultiRegionTokens;
69
+ readRegion(region: Region): RegionTokens | null;
70
+ /** Replace one region while preserving every other stored region. */
71
+ writeRegion(region: Region, tokens: RegionTokens): Promise<void>;
72
+ /** Remove current and legacy token files without racing a refresh/write. */
73
+ clear(): Promise<void>;
74
+ /**
75
+ * Atomically update a region from the latest value on disk. This is useful
76
+ * for metadata changes (for example api_base) that must not overwrite a
77
+ * token concurrently refreshed by another process.
78
+ */
79
+ updateRegion(region: Region, update: (current: Readonly<RegionTokens> | null) => RegionTokens | null): Promise<RegionTokens | null>;
80
+ /**
81
+ * Refresh a region without rotating the same refresh token in two MCPs.
82
+ *
83
+ * The caller supplies the access token it observed before requesting the
84
+ * refresh. After acquiring the cross-process lock, this method re-reads the
85
+ * file. If another process wrote a different, sufficiently valid access
86
+ * token, that token is adopted. Otherwise the callback runs under the lock
87
+ * with the latest refresh token and its result is merged and atomically
88
+ * persisted.
89
+ */
90
+ refreshRegion(region: Region, observedAccessToken: string, refresh: RefreshTokenCallback): Promise<RefreshRegionResult | null>;
91
+ private activeReadPath;
92
+ private isValidBeyondRefreshBuffer;
93
+ private withLock;
94
+ private acquireLock;
95
+ private removeStaleLock;
96
+ private removeAbandonedCleanupGuard;
97
+ private releaseLock;
98
+ private atomicWrite;
99
+ }
100
+ export {};
101
+ //# sourceMappingURL=disk-token-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disk-token-store.d.ts","sourceRoot":"","sources":["../src/disk-token-store.ts"],"names":[],"mappings":"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"}