runpane 2.4.129 → 2.4.131

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 (46) hide show
  1. package/README.md +13 -0
  2. package/dist/agentTasks.d.ts +8 -0
  3. package/dist/agentTasks.d.ts.map +1 -0
  4. package/dist/agentTasks.js +123 -0
  5. package/dist/agentTasks.js.map +1 -0
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +30 -0
  8. package/dist/cli.js.map +1 -1
  9. package/dist/commands.d.ts +7 -0
  10. package/dist/commands.d.ts.map +1 -1
  11. package/dist/commands.js +73 -10
  12. package/dist/commands.js.map +1 -1
  13. package/dist/daemonActions.d.ts +16 -0
  14. package/dist/daemonActions.d.ts.map +1 -0
  15. package/dist/daemonActions.js +98 -0
  16. package/dist/daemonActions.js.map +1 -0
  17. package/dist/docs-index.json +1 -0
  18. package/dist/docs.d.ts +18 -0
  19. package/dist/docs.d.ts.map +1 -0
  20. package/dist/docs.js +123 -0
  21. package/dist/docs.js.map +1 -0
  22. package/dist/generated/contract.d.ts +1337 -12
  23. package/dist/generated/contract.d.ts.map +1 -1
  24. package/dist/generated/contract.js +3763 -1121
  25. package/dist/generated/contract.js.map +1 -1
  26. package/dist/links.d.ts +13 -0
  27. package/dist/links.d.ts.map +1 -0
  28. package/dist/links.js +57 -0
  29. package/dist/links.js.map +1 -0
  30. package/dist/localControl.d.ts +220 -1
  31. package/dist/localControl.d.ts.map +1 -1
  32. package/dist/localControl.js +36 -18
  33. package/dist/localControl.js.map +1 -1
  34. package/dist/mcp.d.ts +12 -0
  35. package/dist/mcp.d.ts.map +1 -0
  36. package/dist/mcp.js +189 -0
  37. package/dist/mcp.js.map +1 -0
  38. package/dist/mcpSdk.d.ts +3 -0
  39. package/dist/mcpSdk.d.ts.map +1 -0
  40. package/dist/mcpSdk.js +74 -0
  41. package/dist/mcpSdk.js.LEGAL.txt +8 -0
  42. package/dist/mcpTools.d.ts +78 -0
  43. package/dist/mcpTools.d.ts.map +1 -0
  44. package/dist/mcpTools.js +195 -0
  45. package/dist/mcpTools.js.map +1 -0
  46. package/package.json +5 -2
@@ -0,0 +1,8 @@
1
+ Bundled license information:
2
+
3
+ @modelcontextprotocol/server/dist/src-CX2iR2pK.mjs:
4
+ /*!
5
+ * content-type
6
+ * Copyright(c) 2015 Douglas Christopher Wilson
7
+ * MIT Licensed
8
+ */
@@ -0,0 +1,78 @@
1
+ import { type JsonObject } from './boundaryDecoder';
2
+ /**
3
+ * The slice of the runpane contract that MCP tools are generated from. Every
4
+ * command with result `jsonSchemas` becomes a tool; its inputs are the union of
5
+ * the flags in its `usage` lines and its `agentContext` arguments, plus
6
+ * `--pane-dir` for daemon commands. Its output schema is the command's `*Result` schema.
7
+ */
8
+ export interface McpToolContract {
9
+ commands: readonly {
10
+ name: string;
11
+ summary: string;
12
+ usage: readonly string[];
13
+ mutates?: boolean;
14
+ additive?: boolean;
15
+ idempotent?: boolean;
16
+ openWorld?: boolean;
17
+ toolsets?: readonly string[];
18
+ jsonSchemas?: readonly string[];
19
+ }[];
20
+ /** Named JSON Schemas; `#/jsonSchemas/...` refs inside them resolve against the contract root. */
21
+ jsonSchemas: unknown;
22
+ flags: Readonly<Record<string, readonly {
23
+ name: string;
24
+ value?: string;
25
+ description?: string;
26
+ }[]>>;
27
+ agentContext: {
28
+ commands: Readonly<Record<string, {
29
+ details?: string;
30
+ requiresPaneDaemon?: boolean;
31
+ notes?: readonly string[];
32
+ arguments: readonly {
33
+ name: string;
34
+ value?: string;
35
+ required?: boolean;
36
+ description?: string;
37
+ }[];
38
+ }>>;
39
+ };
40
+ }
41
+ interface McpToolParameter {
42
+ flag: string;
43
+ property: string;
44
+ takesValue: boolean;
45
+ }
46
+ export interface McpTool {
47
+ name: string;
48
+ title: string;
49
+ command: string;
50
+ /** Contract toolsets that serve this tool (`runpane mcp --toolsets`). */
51
+ toolsets: readonly string[];
52
+ description: string;
53
+ parameters: McpToolParameter[];
54
+ inputSchema: {
55
+ type: 'object';
56
+ properties: Record<string, {
57
+ type: 'string' | 'boolean';
58
+ description: string;
59
+ }>;
60
+ required?: string[];
61
+ additionalProperties: false;
62
+ };
63
+ outputSchema: JsonObject;
64
+ /** MCP tool annotations; see the `additive`, `idempotent`, and `openWorld` contract fields. */
65
+ annotations: {
66
+ title: string;
67
+ readOnlyHint: boolean;
68
+ destructiveHint: boolean;
69
+ idempotentHint: boolean;
70
+ openWorldHint: boolean;
71
+ };
72
+ }
73
+ export declare const CONFIRM_FLAG = "--yes";
74
+ export declare function buildMcpTools(contract?: McpToolContract): McpTool[];
75
+ /** Builds the argv for one tool call; the result is `runpane <argv>` with `--json`. */
76
+ export declare function buildToolArgv(tool: McpTool, input?: JsonObject): string[];
77
+ export {};
78
+ //# sourceMappingURL=mcpTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpTools.d.ts","sourceRoot":"","sources":["../src/mcpTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,UAAU,EAAkB,MAAM,mBAAmB,CAAC;AAG9F;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,SAAS;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;QACzB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAC7B,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACjC,EAAE,CAAC;IACJ,kGAAkG;IAClG,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC,CAAC;IACnG,YAAY,EAAE;QACZ,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;YAChC,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;YAC7B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;YAC1B,SAAS,EAAE,SAAS;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,KAAK,CAAC,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;gBAAC,WAAW,CAAC,EAAE,MAAM,CAAA;aAAE,EAAE,CAAC;SAClG,CAAC,CAAC,CAAC;KACL,CAAC;CACH;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,oBAAoB,EAAE,KAAK,CAAC;KAC7B,CAAC;IACF,YAAY,EAAE,UAAU,CAAC;IACzB,+FAA+F;IAC/F,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,OAAO,CAAC;QACzB,cAAc,EAAE,OAAO,CAAC;QACxB,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;CACH;AAOD,eAAO,MAAM,YAAY,UAAU,CAAC;AAKpC,wBAAgB,aAAa,CAAC,QAAQ,GAAE,eAAkC,GAAG,OAAO,EAAE,CAMrF;AAqID,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,GAAE,UAAe,GAAG,MAAM,EAAE,CAoB7E"}
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CONFIRM_FLAG = void 0;
4
+ exports.buildMcpTools = buildMcpTools;
5
+ exports.buildToolArgv = buildToolArgv;
6
+ const boundaryDecoder_1 = require("./boundaryDecoder");
7
+ const contract_1 = require("./generated/contract");
8
+ // --json is always passed; --follow streams forever, which a single tool call cannot return.
9
+ const OMITTED_FLAGS = new Set(['--json', '--follow', '--help']);
10
+ const FLAG_PATTERN = /--[a-z][a-z0-9-]*/g;
11
+ // Clients sometimes send numeric flags such as timeoutMs as JSON numbers.
12
+ const flagValueSchema = boundaryDecoder_1.boundary.union(boundaryDecoder_1.boundary.string, boundaryDecoder_1.boundary.number);
13
+ exports.CONFIRM_FLAG = '--yes';
14
+ const CONFIRM_DESCRIPTION = 'Confirm this change (the CLI\'s --yes). Pane refuses mutating calls without it.';
15
+ function buildMcpTools(contract = contract_1.RUNPANE_CONTRACT) {
16
+ const globalFlags = new Map(Object.values(contract.flags).flat().map((flag) => [flag.name, flag]));
17
+ const schemas = (0, boundaryDecoder_1.decodeBoundary)(JSON.parse(JSON.stringify(contract.jsonSchemas)), boundaryDecoder_1.boundary.jsonObject);
18
+ return contract.commands
19
+ .filter((command) => command.jsonSchemas && command.jsonSchemas.length > 0)
20
+ .map((command) => buildTool(contract, command, globalFlags, schemas));
21
+ }
22
+ function buildTool(contract, command, globalFlags, schemas) {
23
+ const context = contract.agentContext.commands[command.name];
24
+ const contextArgs = new Map((context?.arguments ?? []).map((arg) => [arg.name, arg]));
25
+ const usage = command.usage.join(' ');
26
+ const flagNames = new Set();
27
+ for (const flag of usage.match(FLAG_PATTERN) ?? [])
28
+ flagNames.add(flag);
29
+ for (const arg of context?.arguments ?? []) {
30
+ if (arg.name.startsWith('--'))
31
+ flagNames.add(arg.name);
32
+ }
33
+ // Every daemon command accepts --pane-dir, even where its usage line omits it.
34
+ if (context?.requiresPaneDaemon)
35
+ flagNames.add('--pane-dir');
36
+ const parameters = [];
37
+ const properties = {};
38
+ const required = [];
39
+ for (const flag of flagNames) {
40
+ if (OMITTED_FLAGS.has(flag))
41
+ continue;
42
+ const contextArg = contextArgs.get(flag);
43
+ const globalFlag = globalFlags.get(flag);
44
+ const placeholder = contextArg?.value ?? globalFlag?.value ?? usagePlaceholder(usage, flag);
45
+ const isConfirm = flag === exports.CONFIRM_FLAG;
46
+ const baseDescription = isConfirm
47
+ ? CONFIRM_DESCRIPTION
48
+ : contextArg?.description ?? globalFlag?.description ?? '';
49
+ const parameter = { flag, property: toProperty(flag), takesValue: placeholder !== undefined };
50
+ parameters.push(parameter);
51
+ properties[parameter.property] = {
52
+ type: parameter.takesValue ? 'string' : 'boolean',
53
+ description: placeholder ? `${baseDescription} Expects ${placeholder}.`.trim() : baseDescription,
54
+ };
55
+ const isRequired = !isConfirm
56
+ && command.usage.every((line) => requiredFlagsIn(line).has(flag))
57
+ && (contextArg === undefined || contextArg.required === true);
58
+ if (isRequired)
59
+ required.push(parameter.property);
60
+ }
61
+ const inputSchema = { type: 'object', properties, additionalProperties: false };
62
+ if (required.length > 0)
63
+ inputSchema.required = required;
64
+ const mutates = command.mutates === true;
65
+ const title = `runpane ${command.name}`;
66
+ return {
67
+ name: toToolName(command.name),
68
+ title,
69
+ command: command.name,
70
+ toolsets: command.toolsets ?? [],
71
+ description: [
72
+ command.summary,
73
+ context?.details,
74
+ ...(context?.notes ?? []),
75
+ `Returns the JSON of \`runpane ${command.name} --json\`.`,
76
+ ].filter(Boolean).join('\n'),
77
+ parameters,
78
+ inputSchema,
79
+ outputSchema: buildOutputSchema(command.jsonSchemas ?? [], schemas),
80
+ annotations: {
81
+ title,
82
+ readOnlyHint: !mutates,
83
+ // The MCP default for a tool that changes state is destructive; the contract marks the additive ones.
84
+ destructiveHint: mutates && command.additive !== true,
85
+ idempotentHint: command.idempotent === true,
86
+ openWorldHint: command.openWorld === true,
87
+ },
88
+ };
89
+ }
90
+ /**
91
+ * An object schema accepting any of the command's `*Result` schemas, with contract-root refs
92
+ * (`#/jsonSchemas/...`) inlined so the schema stands alone. Refs local to a result schema
93
+ * (`#/$defs/...`) keep working because its `$defs` move to the root with it.
94
+ */
95
+ function buildOutputSchema(names, schemas) {
96
+ const results = names.filter((name) => name.endsWith('Result')).map((name) => inlineContractRefs(schemas[name], schemas));
97
+ const defs = {};
98
+ const variants = results.map((result) => {
99
+ const variant = (0, boundaryDecoder_1.decodeBoundary)(result, boundaryDecoder_1.boundary.jsonObject);
100
+ const { $defs, ...rest } = variant;
101
+ Object.assign(defs, (0, boundaryDecoder_1.decodeBoundary)($defs ?? {}, boundaryDecoder_1.boundary.jsonObject));
102
+ return rest;
103
+ });
104
+ const outputSchema = variants.length === 1 ? { ...variants[0], type: 'object' } : { type: 'object', oneOf: variants };
105
+ if (Object.keys(defs).length > 0)
106
+ outputSchema.$defs = defs;
107
+ return outputSchema;
108
+ }
109
+ const CONTRACT_REF_PREFIX = '#/jsonSchemas/';
110
+ const refSchema = boundaryDecoder_1.boundary.object({ $ref: boundaryDecoder_1.boundary.string });
111
+ function inlineContractRefs(node, schemas, depth = 0) {
112
+ if (depth > 32)
113
+ throw new Error('runpane contract schema refs nest too deeply');
114
+ if (node === undefined)
115
+ throw new Error('runpane contract names a JSON schema that does not exist');
116
+ if (Array.isArray(node))
117
+ return node.map((item) => inlineContractRefs(item, schemas, depth + 1));
118
+ const object = asObject(node);
119
+ if (!object)
120
+ return node;
121
+ const ref = asRef(object);
122
+ if (ref?.startsWith(CONTRACT_REF_PREFIX)) {
123
+ const target = ref.slice(CONTRACT_REF_PREFIX.length).split('/')
124
+ .reduce((current, segment) => (Array.isArray(current) ? current[Number(segment)] : asObject(current)?.[segment]), schemas);
125
+ return inlineContractRefs(target, schemas, depth + 1);
126
+ }
127
+ const inlined = Object.fromEntries(Object.entries(object).map(([key, value]) => [key, inlineContractRefs(value, schemas, depth + 1)]));
128
+ // Several MCP clients read `type` as one string, so `type: ["string", "null"]` becomes an equivalent `anyOf`.
129
+ const { type, ...rest } = inlined;
130
+ if (!Array.isArray(type) || rest.anyOf !== undefined)
131
+ return inlined;
132
+ return { ...rest, anyOf: type.map((member) => ({ type: member })) };
133
+ }
134
+ function asObject(value) {
135
+ if (value === undefined || value === null || Array.isArray(value))
136
+ return undefined;
137
+ try {
138
+ return (0, boundaryDecoder_1.decodeBoundary)(value, boundaryDecoder_1.boundary.jsonObject);
139
+ }
140
+ catch {
141
+ return undefined;
142
+ }
143
+ }
144
+ function asRef(value) {
145
+ try {
146
+ return (0, boundaryDecoder_1.decodeBoundary)(value, refSchema).$ref;
147
+ }
148
+ catch {
149
+ return undefined;
150
+ }
151
+ }
152
+ /** Builds the argv for one tool call; the result is `runpane <argv>` with `--json`. */
153
+ function buildToolArgv(tool, input = {}) {
154
+ const argv = tool.command.split(' ');
155
+ const known = new Set(tool.parameters.map((parameter) => parameter.property));
156
+ const unknown = Object.keys(input).filter((key) => !known.has(key));
157
+ if (unknown.length > 0) {
158
+ throw new Error(`Unknown argument(s) for ${tool.name}: ${unknown.join(', ')}`);
159
+ }
160
+ for (const parameter of tool.parameters) {
161
+ const value = input[parameter.property];
162
+ if (value === undefined || value === null || value === false)
163
+ continue;
164
+ if (!parameter.takesValue) {
165
+ if (value !== true)
166
+ throw new Error(`${parameter.property} must be a boolean.`);
167
+ argv.push(parameter.flag);
168
+ continue;
169
+ }
170
+ // `--flag=value` keeps values that start with "-" (like "- [ ] item") from reading as flags.
171
+ argv.push(`${parameter.flag}=${String((0, boundaryDecoder_1.decodeBoundary)(value, flagValueSchema))}`);
172
+ }
173
+ argv.push('--json');
174
+ return argv;
175
+ }
176
+ function requiredFlagsIn(usageLine) {
177
+ let line = usageLine;
178
+ let previous;
179
+ do {
180
+ previous = line;
181
+ line = line.replace(/\[[^[\]]*\]|\([^()]*\)/g, '');
182
+ } while (line !== previous);
183
+ return new Set(line.match(FLAG_PATTERN) ?? []);
184
+ }
185
+ function usagePlaceholder(usage, flag) {
186
+ const match = new RegExp(`${flag} (<[^>]+>|[a-z]+(?:\\|[a-z]+)+)`).exec(usage);
187
+ return match?.[1];
188
+ }
189
+ function toProperty(flag) {
190
+ return flag.slice(2).replace(/-([a-z0-9])/g, (_, letter) => letter.toUpperCase());
191
+ }
192
+ function toToolName(command) {
193
+ return command.replace(/[\s-]+/g, '_');
194
+ }
195
+ //# sourceMappingURL=mcpTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpTools.js","sourceRoot":"","sources":["../src/mcpTools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "runpane",
3
- "version": "2.4.129",
3
+ "version": "2.4.131",
4
4
  "description": "Thin npm installer and remote setup CLI for Pane",
5
5
  "license": "AGPL-3.0",
6
6
  "homepage": "https://runpane.com",
@@ -22,7 +22,7 @@
22
22
  "README.md"
23
23
  ],
24
24
  "scripts": {
25
- "build": "tsc && node scripts/mark-executable.js",
25
+ "build": "tsc && node scripts/bundle-mcp-sdk.js && node scripts/build-docs-index.js && node scripts/mark-executable.js",
26
26
  "lint": "pnpm --dir ../.. run lint:ox:runpane && pnpm run lint:eslint",
27
27
  "lint:eslint": "eslint src --ext .ts",
28
28
  "typecheck": "tsc --noEmit",
@@ -36,7 +36,10 @@
36
36
  },
37
37
  "devDependencies": {
38
38
  "@eslint/js": "^9.17.0",
39
+ "@modelcontextprotocol/sdk": "1.16.0",
40
+ "@modelcontextprotocol/server": "2.0.0",
39
41
  "@types/node": "^22.10.2",
42
+ "esbuild": "0.25.7",
40
43
  "eslint": "^9.17.0",
41
44
  "typescript": "^5.7.2",
42
45
  "typescript-eslint": "^8.19.0"