@n8n/fs-proxy 0.1.0-rc1

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 (106) hide show
  1. package/LICENSE.md +88 -0
  2. package/README.md +267 -0
  3. package/dist/build.tsbuildinfo +1 -0
  4. package/dist/cli.d.ts +2 -0
  5. package/dist/cli.js +189 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/config-templates.d.ts +10 -0
  8. package/dist/config-templates.js +39 -0
  9. package/dist/config-templates.js.map +1 -0
  10. package/dist/config.d.ts +67 -0
  11. package/dist/config.js +285 -0
  12. package/dist/config.js.map +1 -0
  13. package/dist/confirm-resource-cli.d.ts +4 -0
  14. package/dist/confirm-resource-cli.js +28 -0
  15. package/dist/confirm-resource-cli.js.map +1 -0
  16. package/dist/daemon.d.ts +11 -0
  17. package/dist/daemon.js +249 -0
  18. package/dist/daemon.js.map +1 -0
  19. package/dist/gateway-client.d.ts +38 -0
  20. package/dist/gateway-client.js +401 -0
  21. package/dist/gateway-client.js.map +1 -0
  22. package/dist/logger.d.ts +26 -0
  23. package/dist/logger.js +350 -0
  24. package/dist/logger.js.map +1 -0
  25. package/dist/settings-store.d.ts +29 -0
  26. package/dist/settings-store.js +224 -0
  27. package/dist/settings-store.js.map +1 -0
  28. package/dist/startup-config-cli.d.ts +5 -0
  29. package/dist/startup-config-cli.js +185 -0
  30. package/dist/startup-config-cli.js.map +1 -0
  31. package/dist/tools/browser/index.d.ts +14 -0
  32. package/dist/tools/browser/index.js +72 -0
  33. package/dist/tools/browser/index.js.map +1 -0
  34. package/dist/tools/filesystem/constants.d.ts +1 -0
  35. package/dist/tools/filesystem/constants.js +5 -0
  36. package/dist/tools/filesystem/constants.js.map +1 -0
  37. package/dist/tools/filesystem/copy-file.d.ts +14 -0
  38. package/dist/tools/filesystem/copy-file.js +65 -0
  39. package/dist/tools/filesystem/copy-file.js.map +1 -0
  40. package/dist/tools/filesystem/create-directory.d.ts +11 -0
  41. package/dist/tools/filesystem/create-directory.js +60 -0
  42. package/dist/tools/filesystem/create-directory.js.map +1 -0
  43. package/dist/tools/filesystem/delete.d.ts +11 -0
  44. package/dist/tools/filesystem/delete.js +64 -0
  45. package/dist/tools/filesystem/delete.js.map +1 -0
  46. package/dist/tools/filesystem/edit-file.d.ts +17 -0
  47. package/dist/tools/filesystem/edit-file.js +71 -0
  48. package/dist/tools/filesystem/edit-file.js.map +1 -0
  49. package/dist/tools/filesystem/fs-utils.d.ts +15 -0
  50. package/dist/tools/filesystem/fs-utils.js +178 -0
  51. package/dist/tools/filesystem/fs-utils.js.map +1 -0
  52. package/dist/tools/filesystem/get-file-tree.d.ts +14 -0
  53. package/dist/tools/filesystem/get-file-tree.js +38 -0
  54. package/dist/tools/filesystem/get-file-tree.js.map +1 -0
  55. package/dist/tools/filesystem/index.d.ts +3 -0
  56. package/dist/tools/filesystem/index.js +28 -0
  57. package/dist/tools/filesystem/index.js.map +1 -0
  58. package/dist/tools/filesystem/list-files.d.ts +17 -0
  59. package/dist/tools/filesystem/list-files.js +76 -0
  60. package/dist/tools/filesystem/list-files.js.map +1 -0
  61. package/dist/tools/filesystem/move.d.ts +14 -0
  62. package/dist/tools/filesystem/move.js +65 -0
  63. package/dist/tools/filesystem/move.js.map +1 -0
  64. package/dist/tools/filesystem/read-file.d.ts +17 -0
  65. package/dist/tools/filesystem/read-file.js +86 -0
  66. package/dist/tools/filesystem/read-file.js.map +1 -0
  67. package/dist/tools/filesystem/search-files.d.ts +23 -0
  68. package/dist/tools/filesystem/search-files.js +128 -0
  69. package/dist/tools/filesystem/search-files.js.map +1 -0
  70. package/dist/tools/filesystem/write-file.d.ts +14 -0
  71. package/dist/tools/filesystem/write-file.js +68 -0
  72. package/dist/tools/filesystem/write-file.js.map +1 -0
  73. package/dist/tools/monitor-utils.d.ts +2 -0
  74. package/dist/tools/monitor-utils.js +11 -0
  75. package/dist/tools/monitor-utils.js.map +1 -0
  76. package/dist/tools/mouse-keyboard/index.d.ts +2 -0
  77. package/dist/tools/mouse-keyboard/index.js +70 -0
  78. package/dist/tools/mouse-keyboard/index.js.map +1 -0
  79. package/dist/tools/mouse-keyboard/mouse-keyboard.d.ts +130 -0
  80. package/dist/tools/mouse-keyboard/mouse-keyboard.js +249 -0
  81. package/dist/tools/mouse-keyboard/mouse-keyboard.js.map +1 -0
  82. package/dist/tools/screenshot/index.d.ts +2 -0
  83. package/dist/tools/screenshot/index.js +26 -0
  84. package/dist/tools/screenshot/index.js.map +1 -0
  85. package/dist/tools/screenshot/screenshot.d.ts +22 -0
  86. package/dist/tools/screenshot/screenshot.js +91 -0
  87. package/dist/tools/screenshot/screenshot.js.map +1 -0
  88. package/dist/tools/shell/build-shell-resource.d.ts +1 -0
  89. package/dist/tools/shell/build-shell-resource.js +70 -0
  90. package/dist/tools/shell/build-shell-resource.js.map +1 -0
  91. package/dist/tools/shell/index.d.ts +2 -0
  92. package/dist/tools/shell/index.js +11 -0
  93. package/dist/tools/shell/index.js.map +1 -0
  94. package/dist/tools/shell/shell-execute.d.ts +17 -0
  95. package/dist/tools/shell/shell-execute.js +88 -0
  96. package/dist/tools/shell/shell-execute.js.map +1 -0
  97. package/dist/tools/test-utils.d.ts +3 -0
  98. package/dist/tools/test-utils.js +16 -0
  99. package/dist/tools/test-utils.js.map +1 -0
  100. package/dist/tools/types.d.ts +43 -0
  101. package/dist/tools/types.js +3 -0
  102. package/dist/tools/types.js.map +1 -0
  103. package/dist/tools/utils.d.ts +3 -0
  104. package/dist/tools/utils.js +19 -0
  105. package/dist/tools/utils.js.map +1 -0
  106. package/package.json +55 -0
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.textOf = textOf;
4
+ exports.structuredOf = structuredOf;
5
+ function textOf(result) {
6
+ const item = result.content[0];
7
+ if (item.type !== 'text')
8
+ throw new Error(`Expected text content, got ${item.type}`);
9
+ return item.text;
10
+ }
11
+ function structuredOf(result) {
12
+ if (!result.structuredContent)
13
+ throw new Error('Expected structuredContent');
14
+ return result.structuredContent;
15
+ }
16
+ //# sourceMappingURL=test-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../src/tools/test-utils.ts"],"names":[],"mappings":";;AAGA,wBAIC;AAGD,oCAGC;AAVD,SAAgB,MAAM,CAAC,MAAsB;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACrF,OAAO,IAAI,CAAC,IAAI,CAAC;AAClB,CAAC;AAGD,SAAgB,YAAY,CAAC,MAAsB;IAClD,IAAI,CAAC,MAAM,CAAC,iBAAiB;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC7E,OAAO,MAAM,CAAC,iBAA4C,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,43 @@
1
+ import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
2
+ import type { z } from 'zod';
3
+ import type { ToolGroup } from '../config';
4
+ export type { CallToolResult };
5
+ export interface McpTool {
6
+ name: string;
7
+ description?: string;
8
+ inputSchema: {
9
+ type: 'object';
10
+ properties?: Record<string, unknown>;
11
+ required?: string[];
12
+ };
13
+ annotations?: ToolAnnotations;
14
+ }
15
+ export interface ToolContext {
16
+ dir: string;
17
+ }
18
+ export interface ToolAnnotations {
19
+ category?: string;
20
+ readOnlyHint?: boolean;
21
+ destructiveHint?: boolean;
22
+ idempotentHint?: boolean;
23
+ openWorldHint?: boolean;
24
+ }
25
+ export interface AffectedResource {
26
+ toolGroup: ToolGroup;
27
+ resource: string;
28
+ description: string;
29
+ }
30
+ export type ResourceDecision = 'allowOnce' | 'allowForSession' | 'alwaysAllow' | 'denyOnce' | 'alwaysDeny';
31
+ export type ConfirmResourceAccess = (resource: AffectedResource) => ResourceDecision | Promise<ResourceDecision>;
32
+ export interface ToolDefinition<TSchema extends z.ZodType = z.ZodType> {
33
+ name: string;
34
+ description: string;
35
+ inputSchema: TSchema;
36
+ annotations?: ToolAnnotations;
37
+ execute(args: z.infer<TSchema>, context: ToolContext): CallToolResult | Promise<CallToolResult>;
38
+ getAffectedResources(args: z.infer<TSchema>, context: ToolContext): AffectedResource[] | Promise<AffectedResource[]>;
39
+ }
40
+ export interface ToolModule {
41
+ isSupported(): boolean | Promise<boolean>;
42
+ definitions: ToolDefinition[];
43
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { CallToolResult } from './types';
2
+ export declare function formatCallToolResult(data: Record<string, unknown>): CallToolResult;
3
+ export declare function formatErrorResult(message: string): CallToolResult;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatCallToolResult = formatCallToolResult;
4
+ exports.formatErrorResult = formatErrorResult;
5
+ function formatCallToolResult(data) {
6
+ return {
7
+ content: [{ type: 'text', text: JSON.stringify(data) }],
8
+ structuredContent: data,
9
+ };
10
+ }
11
+ function formatErrorResult(message) {
12
+ const data = { error: message };
13
+ return {
14
+ content: [{ type: 'text', text: JSON.stringify(data) }],
15
+ structuredContent: data,
16
+ isError: true,
17
+ };
18
+ }
19
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/tools/utils.ts"],"names":[],"mappings":";;AAGA,oDAKC;AAGD,8CAOC;AAfD,SAAgB,oBAAoB,CAAC,IAA6B;IACjE,OAAO;QACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,iBAAiB,EAAE,IAAI;KACvB,CAAC;AACH,CAAC;AAGD,SAAgB,iBAAiB,CAAC,OAAe;IAChD,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAChC,OAAO;QACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,iBAAiB,EAAE,IAAI;QACvB,OAAO,EAAE,IAAI;KACb,CAAC;AACH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@n8n/fs-proxy",
3
+ "version": "0.1.0-rc1",
4
+ "description": "Local AI gateway for n8n Instance AI — filesystem, shell, screenshots, mouse/keyboard, and browser automation",
5
+ "bin": {
6
+ "n8n-fs-proxy": "dist/cli.js"
7
+ },
8
+ "main": "dist/cli.js",
9
+ "exports": {
10
+ ".": "./dist/cli.js",
11
+ "./daemon": "./dist/daemon.js",
12
+ "./config": "./dist/config.js",
13
+ "./logger": "./dist/logger.js"
14
+ },
15
+ "module": "src/cli.ts",
16
+ "types": "dist/cli.d.ts",
17
+ "files": [
18
+ "dist/**/*"
19
+ ],
20
+ "dependencies": {
21
+ "@anthropic-ai/sandbox-runtime": "^0.0.42",
22
+ "@inquirer/prompts": "^8.3.2",
23
+ "@jitsi/robotjs": "^0.6.21",
24
+ "@modelcontextprotocol/sdk": "1.26.0",
25
+ "@vscode/ripgrep": "^1.17.1",
26
+ "eventsource": "^3.0.6",
27
+ "node-screenshots": "^0.2.8",
28
+ "picocolors": "1.0.1",
29
+ "sharp": "^0.34.5",
30
+ "yargs-parser": "21.1.1",
31
+ "zod": "3.25.67",
32
+ "zod-to-json-schema": "3.23.3",
33
+ "@n8n/mcp-browser": "0.1.0-rc1"
34
+ },
35
+ "devDependencies": {
36
+ "@types/node": "24.10.1",
37
+ "@types/yargs-parser": "21.0.0",
38
+ "@n8n/typescript-config": "1.3.0"
39
+ },
40
+ "scripts": {
41
+ "clean": "rimraf dist .turbo",
42
+ "start": "node dist/cli.js serve",
43
+ "dev": "pnpm watch",
44
+ "typecheck": "tsc --noEmit",
45
+ "build": "tsc -p tsconfig.build.json",
46
+ "format": "biome format --write src",
47
+ "format:check": "biome ci src",
48
+ "lint": "eslint . --quiet",
49
+ "lint:fix": "eslint . --fix",
50
+ "watch": "tsc -p tsconfig.build.json --watch",
51
+ "test": "jest",
52
+ "test:unit": "jest",
53
+ "test:dev": "jest --watch"
54
+ }
55
+ }