@filepad/agent-connect
Advanced tools
+7
-10
| #!/usr/bin/env node | ||
| // FILE MEMO: CLI entrypoint for Filepad pre-MCP runtime pairing. | ||
| // FILE MEMO: CLI entrypoint for Filepad remote MCP pairing. | ||
| import { pairAgent, renderPairResult, SUPPORTED_RUNTIMES, } from './index.js'; | ||
@@ -11,3 +11,3 @@ function readFlag(args, name) { | ||
| function isRuntime(value) { | ||
| return Boolean(value) && SUPPORTED_RUNTIMES.includes(value); | ||
| return SUPPORTED_RUNTIMES.some((runtime) => runtime === value); | ||
| } | ||
@@ -17,4 +17,4 @@ function parseArgs(argv) { | ||
| if (command !== 'pair' || !code) { | ||
| throw new Error('Usage: filepad-agent-connect pair <CODE> --runtime <runtime> [--base-url URL]\n' + | ||
| ' [--output json]'); | ||
| throw new Error('Usage: filepad-agent-connect pair <CODE> --runtime <runtime> [--base-url URL]\n' | ||
| + ' [--output json]'); | ||
| } | ||
@@ -30,5 +30,3 @@ const runtime = readFlag(argv, '--runtime'); | ||
| runtime, | ||
| baseUrl: readFlag(argv, '--base-url') ?? | ||
| process.env['FILEPAD_BASE_URL'] ?? | ||
| 'https://api.filepad.ai', | ||
| baseUrl: readFlag(argv, '--base-url') ?? process.env['FILEPAD_BASE_URL'] ?? 'https://api.filepad.ai', | ||
| label: readFlag(argv, '--label'), | ||
@@ -46,6 +44,5 @@ configPath: readFlag(argv, '--config-path'), | ||
| process.stdout.write(`${JSON.stringify(result, null, 2)}\n`); | ||
| return; | ||
| } | ||
| else { | ||
| process.stdout.write(`${renderPairResult(result)}\n`); | ||
| } | ||
| process.stdout.write(`${renderPairResult(result)}\n`); | ||
| } | ||
@@ -52,0 +49,0 @@ main().catch((error) => { |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,iEAAiE;AAEjE,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,kBAAkB,GAEnB,MAAM,YAAY,CAAC;AAcpB,SAAS,QAAQ,CAAC,IAAc,EAAE,IAAY;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACnC,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,SAAS,CAAC,KAAyB;IAC1C,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,KAAqB,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7B,IAAI,OAAO,KAAK,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,iFAAiF;YACjF,mBAAmB,CACpB,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,gDAAgD,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnG,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAE1C,OAAO;QACL,OAAO,EAAE,MAAM;QACf,IAAI;QACJ,OAAO;QACP,OAAO,EACL,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAC/B,wBAAwB;QAC1B,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;QAChC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;QAC3C,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;QAC3C,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QAC3C,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;IACvE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"} | ||
| {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,4DAA4D;AAC5D,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,kBAAkB,GAEnB,MAAM,YAAY,CAAC;AAEpB,SAAS,QAAQ,CAAC,IAAc,EAAE,IAAY;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACnC,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,SAAS,CAAC,KAAyB;IAC1C,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7B,IAAI,OAAO,KAAK,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,iFAAiF;cAC/E,mBAAmB,CACtB,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,gDAAgD,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1C,OAAO;QACL,OAAO,EAAE,MAAe;QACxB,IAAI;QACJ,OAAO;QACP,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,wBAAwB;QACpG,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;QAChC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;QAC3C,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;QAC3C,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAe,CAAC,CAAC,CAAC,MAAe;QAC7D,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;IACvE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"} |
+142
-67
@@ -1,63 +0,142 @@ | ||
| export type AgentRuntime = 'openclaw' | 'claude-code' | 'cursor' | 'windsurf' | 'codex' | 'generic-mcp'; | ||
| export type FilepadRemoteMcpServerConfig = { | ||
| transport: 'streamable_http' | 'sse'; | ||
| url: string; | ||
| headers?: Record<string, string> | undefined; | ||
| }; | ||
| export type AgentHostDesiredState = { | ||
| version: 1; | ||
| runtime: AgentRuntime; | ||
| scope: 'project' | 'user'; | ||
| mcp: { | ||
| enabled: boolean; | ||
| configPath: string; | ||
| configTarget: string; | ||
| }; | ||
| hooks: { | ||
| enabled: boolean; | ||
| configPath: string; | ||
| credentialsPath: string | null; | ||
| adapterPackage: string | null; | ||
| adapterVersion: string | null; | ||
| adapterBinary: string | null; | ||
| adapterCommand: string | null; | ||
| enforcementMode: 'off' | 'observe' | 'warn' | 'block' | null; | ||
| offlinePolicy: 'allow' | 'deny' | null; | ||
| events: string[]; | ||
| }; | ||
| }; | ||
| export type PairResponse = { | ||
| status: 'paired'; | ||
| workspace: { | ||
| id: string; | ||
| name: string; | ||
| owner: string; | ||
| }; | ||
| credentials: { | ||
| agentKeyId: string; | ||
| agentSecret: string; | ||
| expiresAt: string; | ||
| }; | ||
| hostConfig: { | ||
| runtime: AgentRuntime; | ||
| configPath: string; | ||
| server: FilepadRemoteMcpServerConfig; | ||
| restartInstruction: string; | ||
| requiresHostRestart?: boolean; | ||
| nativeToolsAvailable?: boolean; | ||
| afterRestartCommand?: string; | ||
| desiredState?: AgentHostDesiredState | undefined; | ||
| }; | ||
| handoff: { | ||
| sessionToken: string; | ||
| text: string; | ||
| nextStep: { | ||
| what: string; | ||
| how: string; | ||
| afterRestartCommand: string; | ||
| requiresHostRestart?: boolean; | ||
| nativeToolsAvailable?: boolean; | ||
| }; | ||
| } & Record<string, unknown>; | ||
| }; | ||
| import { z } from 'zod'; | ||
| export declare const SUPPORTED_RUNTIMES: readonly ["openclaw", "claude-code", "cursor", "windsurf", "codex", "generic-mcp"]; | ||
| export type AgentRuntime = (typeof SUPPORTED_RUNTIMES)[number]; | ||
| declare const remoteMcpServerSchema: z.ZodObject<{ | ||
| transport: z.ZodEnum<{ | ||
| streamable_http: "streamable_http"; | ||
| sse: "sse"; | ||
| }>; | ||
| url: z.ZodString; | ||
| headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; | ||
| }, z.core.$strict>; | ||
| export type FilepadRemoteMcpServerConfig = z.infer<typeof remoteMcpServerSchema>; | ||
| declare const desiredStateSchema: z.ZodObject<{ | ||
| version: z.ZodLiteral<1>; | ||
| runtime: z.ZodEnum<{ | ||
| openclaw: "openclaw"; | ||
| "claude-code": "claude-code"; | ||
| cursor: "cursor"; | ||
| windsurf: "windsurf"; | ||
| codex: "codex"; | ||
| "generic-mcp": "generic-mcp"; | ||
| }>; | ||
| scope: z.ZodEnum<{ | ||
| project: "project"; | ||
| user: "user"; | ||
| }>; | ||
| mcp: z.ZodObject<{ | ||
| enabled: z.ZodBoolean; | ||
| configPath: z.ZodString; | ||
| configTarget: z.ZodString; | ||
| }, z.core.$strict>; | ||
| hooks: z.ZodObject<{ | ||
| enabled: z.ZodBoolean; | ||
| configPath: z.ZodString; | ||
| credentialsPath: z.ZodNullable<z.ZodString>; | ||
| adapterPackage: z.ZodNullable<z.ZodString>; | ||
| adapterVersion: z.ZodNullable<z.ZodString>; | ||
| adapterBinary: z.ZodNullable<z.ZodString>; | ||
| adapterCommand: z.ZodNullable<z.ZodString>; | ||
| enforcementMode: z.ZodNullable<z.ZodEnum<{ | ||
| off: "off"; | ||
| observe: "observe"; | ||
| warn: "warn"; | ||
| block: "block"; | ||
| }>>; | ||
| offlinePolicy: z.ZodNullable<z.ZodEnum<{ | ||
| allow: "allow"; | ||
| deny: "deny"; | ||
| }>>; | ||
| events: z.ZodArray<z.ZodString>; | ||
| }, z.core.$strict>; | ||
| }, z.core.$strict>; | ||
| export type AgentHostDesiredState = z.infer<typeof desiredStateSchema>; | ||
| declare const pairResponseSchema: z.ZodObject<{ | ||
| status: z.ZodLiteral<"paired">; | ||
| workspace: z.ZodObject<{ | ||
| id: z.ZodString; | ||
| name: z.ZodString; | ||
| owner: z.ZodString; | ||
| }, z.core.$strict>; | ||
| credentials: z.ZodObject<{ | ||
| agentKeyId: z.ZodString; | ||
| agentSecret: z.ZodString; | ||
| expiresAt: z.ZodString; | ||
| }, z.core.$strict>; | ||
| hostConfig: z.ZodObject<{ | ||
| runtime: z.ZodEnum<{ | ||
| openclaw: "openclaw"; | ||
| "claude-code": "claude-code"; | ||
| cursor: "cursor"; | ||
| windsurf: "windsurf"; | ||
| codex: "codex"; | ||
| "generic-mcp": "generic-mcp"; | ||
| }>; | ||
| configPath: z.ZodString; | ||
| server: z.ZodObject<{ | ||
| transport: z.ZodEnum<{ | ||
| streamable_http: "streamable_http"; | ||
| sse: "sse"; | ||
| }>; | ||
| url: z.ZodString; | ||
| headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; | ||
| }, z.core.$strict>; | ||
| restartInstruction: z.ZodString; | ||
| requiresHostRestart: z.ZodOptional<z.ZodBoolean>; | ||
| nativeToolsAvailable: z.ZodOptional<z.ZodBoolean>; | ||
| afterRestartCommand: z.ZodOptional<z.ZodString>; | ||
| desiredState: z.ZodOptional<z.ZodObject<{ | ||
| version: z.ZodLiteral<1>; | ||
| runtime: z.ZodEnum<{ | ||
| openclaw: "openclaw"; | ||
| "claude-code": "claude-code"; | ||
| cursor: "cursor"; | ||
| windsurf: "windsurf"; | ||
| codex: "codex"; | ||
| "generic-mcp": "generic-mcp"; | ||
| }>; | ||
| scope: z.ZodEnum<{ | ||
| project: "project"; | ||
| user: "user"; | ||
| }>; | ||
| mcp: z.ZodObject<{ | ||
| enabled: z.ZodBoolean; | ||
| configPath: z.ZodString; | ||
| configTarget: z.ZodString; | ||
| }, z.core.$strict>; | ||
| hooks: z.ZodObject<{ | ||
| enabled: z.ZodBoolean; | ||
| configPath: z.ZodString; | ||
| credentialsPath: z.ZodNullable<z.ZodString>; | ||
| adapterPackage: z.ZodNullable<z.ZodString>; | ||
| adapterVersion: z.ZodNullable<z.ZodString>; | ||
| adapterBinary: z.ZodNullable<z.ZodString>; | ||
| adapterCommand: z.ZodNullable<z.ZodString>; | ||
| enforcementMode: z.ZodNullable<z.ZodEnum<{ | ||
| off: "off"; | ||
| observe: "observe"; | ||
| warn: "warn"; | ||
| block: "block"; | ||
| }>>; | ||
| offlinePolicy: z.ZodNullable<z.ZodEnum<{ | ||
| allow: "allow"; | ||
| deny: "deny"; | ||
| }>>; | ||
| events: z.ZodArray<z.ZodString>; | ||
| }, z.core.$strict>; | ||
| }, z.core.$strict>>; | ||
| }, z.core.$strict>; | ||
| handoff: z.ZodObject<{ | ||
| sessionToken: z.ZodString; | ||
| text: z.ZodString; | ||
| nextStep: z.ZodObject<{ | ||
| what: z.ZodString; | ||
| how: z.ZodString; | ||
| afterRestartCommand: z.ZodString; | ||
| requiresHostRestart: z.ZodOptional<z.ZodBoolean>; | ||
| nativeToolsAvailable: z.ZodOptional<z.ZodBoolean>; | ||
| }, z.core.$strict>; | ||
| }, z.core.$loose>; | ||
| }, z.core.$strict>; | ||
| export type PairResponse = z.infer<typeof pairResponseSchema>; | ||
| export type PairOptions = { | ||
@@ -72,6 +151,2 @@ code: string; | ||
| fetchImpl?: typeof fetch | undefined; | ||
| /** | ||
| * Test seam for host-native MCP registration. Production uses the runtime CLI | ||
| * where required, e.g. `claude mcp add-json` for Claude Code. | ||
| */ | ||
| mcpCommandRunner?: ((command: string, args: string[]) => Promise<void>) | undefined; | ||
@@ -98,5 +173,5 @@ }; | ||
| }; | ||
| export declare const SUPPORTED_RUNTIMES: readonly AgentRuntime[]; | ||
| export declare function pairAgent(options: PairOptions): Promise<PairResult>; | ||
| export declare function renderPairResult(result: PairResult): string; | ||
| export {}; | ||
| //# sourceMappingURL=index.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,kBAAkB,oFAOrB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,QAAA,MAAM,qBAAqB;;;;;;;kBAIhB,CAAC;AAEZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEjF,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAqBb,CAAC;AAEZ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEvE,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAiCb,CAAC;AAEZ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAgB9D,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,KAAK,GAAG,SAAS,CAAC;IACrC,gBAAgB,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;CACrF,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,mBAAmB,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACjE,iBAAiB,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3C,SAAS,EAAE;QACT,MAAM,EAAE,IAAI,CAAC;QACb,aAAa,EAAE,OAAO,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,oBAAoB,EAAE,OAAO,CAAC;QAC9B,mBAAmB,EAAE,OAAO,CAAC;QAC7B,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,CAAC;AAwRF,wBAAsB,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAyDzE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAwC3D"} |
+246
-102
@@ -7,2 +7,3 @@ // FILE MEMO: Remote Filepad MCP pairing helpers shared by the CLI and tests. | ||
| import { promisify } from 'node:util'; | ||
| import { z } from 'zod'; | ||
| const execFileAsync = promisify(execFile); | ||
@@ -17,5 +18,82 @@ export const SUPPORTED_RUNTIMES = [ | ||
| ]; | ||
| function isRecord(value) { | ||
| return Boolean(value) && typeof value === 'object' && !Array.isArray(value); | ||
| const remoteMcpServerSchema = z.object({ | ||
| transport: z.enum(['streamable_http', 'sse']), | ||
| url: z.string().url(), | ||
| headers: z.record(z.string(), z.string()).optional(), | ||
| }).strict(); | ||
| const desiredStateSchema = z.object({ | ||
| version: z.literal(1), | ||
| runtime: z.enum(SUPPORTED_RUNTIMES), | ||
| scope: z.enum(['project', 'user']), | ||
| mcp: z.object({ | ||
| enabled: z.boolean(), | ||
| configPath: z.string(), | ||
| configTarget: z.string(), | ||
| }).strict(), | ||
| hooks: z.object({ | ||
| enabled: z.boolean(), | ||
| configPath: z.string(), | ||
| credentialsPath: z.string().nullable(), | ||
| adapterPackage: z.string().nullable(), | ||
| adapterVersion: z.string().nullable(), | ||
| adapterBinary: z.string().nullable(), | ||
| adapterCommand: z.string().nullable(), | ||
| enforcementMode: z.enum(['off', 'observe', 'warn', 'block']).nullable(), | ||
| offlinePolicy: z.enum(['allow', 'deny']).nullable(), | ||
| events: z.array(z.string()), | ||
| }).strict(), | ||
| }).strict(); | ||
| const pairResponseSchema = z.object({ | ||
| status: z.literal('paired'), | ||
| workspace: z.object({ | ||
| id: z.string(), | ||
| name: z.string(), | ||
| owner: z.string(), | ||
| }).strict(), | ||
| credentials: z.object({ | ||
| agentKeyId: z.string(), | ||
| agentSecret: z.string(), | ||
| expiresAt: z.string(), | ||
| }).strict(), | ||
| hostConfig: z.object({ | ||
| runtime: z.enum(SUPPORTED_RUNTIMES), | ||
| configPath: z.string(), | ||
| server: remoteMcpServerSchema, | ||
| restartInstruction: z.string(), | ||
| requiresHostRestart: z.boolean().optional(), | ||
| nativeToolsAvailable: z.boolean().optional(), | ||
| afterRestartCommand: z.string().optional(), | ||
| desiredState: desiredStateSchema.optional(), | ||
| }).strict(), | ||
| handoff: z.object({ | ||
| sessionToken: z.string(), | ||
| text: z.string(), | ||
| nextStep: z.object({ | ||
| what: z.string(), | ||
| how: z.string(), | ||
| afterRestartCommand: z.string(), | ||
| requiresHostRestart: z.boolean().optional(), | ||
| nativeToolsAvailable: z.boolean().optional(), | ||
| }).strict(), | ||
| }).passthrough(), | ||
| }).strict(); | ||
| const unknownRecordSchema = z.record(z.string(), z.unknown()); | ||
| const nodeErrorSchema = z.object({ | ||
| code: z.string(), | ||
| }).passthrough(); | ||
| const pairErrorResponseSchema = z.object({ | ||
| error: z.object({ | ||
| code: z.string().optional(), | ||
| message: z.string().optional(), | ||
| details: z.unknown().optional(), | ||
| }).passthrough().optional(), | ||
| }).passthrough(); | ||
| function recordFromUnknown(value) { | ||
| const parsed = unknownRecordSchema.safeParse(value); | ||
| return parsed.success ? parsed.data : {}; | ||
| } | ||
| function nodeErrorCode(error) { | ||
| const parsed = nodeErrorSchema.safeParse(error); | ||
| return parsed.success ? parsed.data.code : undefined; | ||
| } | ||
| function expandHome(path) { | ||
@@ -34,25 +112,10 @@ if (path === '~') | ||
| switch (runtime) { | ||
| case 'openclaw': | ||
| return join(base, '.openclaw', 'openclaw.json'); | ||
| case 'claude-code': | ||
| return join(base, '.claude', 'settings.json'); | ||
| case 'cursor': | ||
| return join(base, '.cursor', 'mcp.json'); | ||
| case 'windsurf': | ||
| return join(base, '.codeium', 'windsurf', 'mcp_config.json'); | ||
| case 'codex': | ||
| return join(base, '.codex', 'mcp.json'); | ||
| case 'generic-mcp': | ||
| return join(process.cwd(), 'mcp.json'); | ||
| case 'openclaw': return join(base, '.openclaw', 'openclaw.json'); | ||
| case 'claude-code': return join(base, '.claude.json'); | ||
| case 'cursor': return join(base, '.cursor', 'mcp.json'); | ||
| case 'windsurf': return join(base, '.codeium', 'windsurf', 'mcp_config.json'); | ||
| case 'codex': return join(base, '.codex', 'config.toml'); | ||
| case 'generic-mcp': return join(process.cwd(), 'mcp.json'); | ||
| } | ||
| } | ||
| function isClaudeCodeNativeMcpTarget(path) { | ||
| return path.startsWith('claude-code://'); | ||
| } | ||
| function filesystemConfigPathForRuntime(runtime, configPath) { | ||
| if (runtime === 'claude-code' && isClaudeCodeNativeMcpTarget(configPath)) { | ||
| return defaultConfigPath(runtime); | ||
| } | ||
| return configPath; | ||
| } | ||
| async function chmodIfExists(path, mode) { | ||
@@ -63,4 +126,3 @@ try { | ||
| catch (error) { | ||
| const err = error; | ||
| if (err.code === 'ENOENT') | ||
| if (nodeErrorCode(error) === 'ENOENT') | ||
| return; | ||
@@ -73,6 +135,2 @@ throw error; | ||
| } | ||
| async function hardenClaudeCodeConfigFiles(configPath) { | ||
| await hardenSensitiveConfigFile(expandHome('~/.claude.json')); | ||
| await hardenSensitiveConfigFile(filesystemConfigPathForRuntime('claude-code', configPath)); | ||
| } | ||
| async function readJsonFile(path) { | ||
@@ -82,7 +140,6 @@ try { | ||
| const parsed = JSON.parse(text); | ||
| return isRecord(parsed) ? parsed : {}; | ||
| return recordFromUnknown(parsed); | ||
| } | ||
| catch (error) { | ||
| const err = error; | ||
| if (err.code === 'ENOENT') | ||
| if (nodeErrorCode(error) === 'ENOENT') | ||
| return {}; | ||
@@ -94,4 +151,4 @@ throw error; | ||
| if (runtime === 'openclaw') { | ||
| const mcp = isRecord(existing['mcp']) ? existing['mcp'] : {}; | ||
| const servers = isRecord(mcp['servers']) ? mcp['servers'] : {}; | ||
| const mcp = recordFromUnknown(existing['mcp']); | ||
| const servers = recordFromUnknown(mcp['servers']); | ||
| const updated = { ...existing }; | ||
@@ -110,5 +167,3 @@ delete updated['mcpServers']; | ||
| } | ||
| const mcpServers = isRecord(existing['mcpServers']) | ||
| ? existing['mcpServers'] | ||
| : {}; | ||
| const mcpServers = recordFromUnknown(existing['mcpServers']); | ||
| return { | ||
@@ -122,38 +177,133 @@ ...existing, | ||
| } | ||
| function tomlString(value) { | ||
| return JSON.stringify(value); | ||
| } | ||
| function stripCodexFilepadSection(toml) { | ||
| const lines = toml.split(/\r?\n/); | ||
| const kept = []; | ||
| let skipping = false; | ||
| for (const line of lines) { | ||
| const table = line.match(/^\s*\[([^\]]+)]\s*$/); | ||
| if (table) { | ||
| const name = table[1]?.trim(); | ||
| skipping = name === 'mcp_servers.filepad' || Boolean(name?.startsWith('mcp_servers.filepad.')); | ||
| } | ||
| if (!skipping) | ||
| kept.push(line); | ||
| } | ||
| return kept.join('\n').trimEnd(); | ||
| } | ||
| async function writeCodexConfig(configPath, server) { | ||
| const authorization = server.headers?.['Authorization']; | ||
| if (typeof authorization !== 'string' || authorization.length === 0) { | ||
| throw new Error('HOST_CONFIG_FAILED: Codex MCP requires an Authorization header from the pair response.'); | ||
| } | ||
| let existing = ''; | ||
| try { | ||
| existing = await readFile(configPath, 'utf8'); | ||
| } | ||
| catch (error) { | ||
| if (nodeErrorCode(error) !== 'ENOENT') | ||
| throw error; | ||
| } | ||
| const base = stripCodexFilepadSection(existing); | ||
| const section = [ | ||
| '[mcp_servers.filepad]', | ||
| `url = ${tomlString(server.url)}`, | ||
| `http_headers = { Authorization = ${tomlString(authorization)} }`, | ||
| ].join('\n'); | ||
| const next = `${base ? `${base}\n\n` : ''}${section}\n`; | ||
| await mkdir(dirname(configPath), { recursive: true }); | ||
| await writeFile(configPath, next, { mode: 0o600 }); | ||
| await hardenSensitiveConfigFile(configPath); | ||
| } | ||
| function claudeServerConfig(server) { | ||
| return { | ||
| type: 'http', | ||
| url: server.url, | ||
| ...(server.headers ? { headers: server.headers } : {}), | ||
| }; | ||
| } | ||
| async function writeClaudeCodeJsonConfig(configPath, server) { | ||
| const existing = await readJsonFile(configPath); | ||
| const mcpServers = recordFromUnknown(existing['mcpServers']); | ||
| const updated = { | ||
| ...existing, | ||
| mcpServers: { | ||
| ...mcpServers, | ||
| filepad: claudeServerConfig(server), | ||
| }, | ||
| }; | ||
| await mkdir(dirname(configPath), { recursive: true }); | ||
| await writeFile(configPath, `${JSON.stringify(updated, null, 2)}\n`, { mode: 0o600 }); | ||
| await hardenSensitiveConfigFile(configPath); | ||
| } | ||
| async function runMcpCommand(command, args, runner) { | ||
| if (runner) { | ||
| await runner(command, args); | ||
| return; | ||
| } | ||
| await execFileAsync(command, args); | ||
| } | ||
| async function registerClaudeCodeMcp(params) { | ||
| const scope = params.scope === 'project' ? 'local' : 'user'; | ||
| const authorization = params.server.headers?.['Authorization']; | ||
| try { | ||
| await runMcpCommand('claude', ['mcp', 'remove', '-s', scope, 'filepad'], params.mcpCommandRunner) | ||
| .catch(() => undefined); | ||
| await runMcpCommand('claude', [ | ||
| 'mcp', | ||
| 'add', | ||
| '--transport', | ||
| 'http', | ||
| '-s', | ||
| scope, | ||
| 'filepad', | ||
| params.server.url, | ||
| ...(authorization ? ['--header', `Authorization: ${authorization}`] : []), | ||
| ], params.mcpCommandRunner); | ||
| await hardenSensitiveConfigFile(params.configPath); | ||
| } | ||
| catch (error) { | ||
| void error; | ||
| await writeClaudeCodeJsonConfig(params.configPath, params.server); | ||
| } | ||
| } | ||
| async function writeRuntimeConfig(params) { | ||
| if (params.runtime === 'codex') { | ||
| await writeCodexConfig(params.configPath, params.server); | ||
| return; | ||
| } | ||
| if (params.runtime === 'claude-code') { | ||
| try { | ||
| const claudeScope = params.scope === 'project' ? 'local' : 'user'; | ||
| const args = [ | ||
| 'mcp', 'add-json', '-s', claudeScope, 'filepad', JSON.stringify(params.server), | ||
| ]; | ||
| if (params.mcpCommandRunner) { | ||
| // Test seam — use provided runner | ||
| await params.mcpCommandRunner('claude', args); | ||
| } | ||
| else { | ||
| await execFileAsync('claude', args); | ||
| } | ||
| await hardenClaudeCodeConfigFiles(params.configPath); | ||
| return; | ||
| } | ||
| catch { | ||
| // claude CLI unavailable/not in PATH, or native registration failed. | ||
| // Fall through to direct JSON patch using a real filesystem path. | ||
| } | ||
| await registerClaudeCodeMcp({ | ||
| configPath: params.configPath, | ||
| server: params.server, | ||
| scope: params.scope, | ||
| mcpCommandRunner: params.mcpCommandRunner, | ||
| }); | ||
| return; | ||
| } | ||
| const fileConfigPath = filesystemConfigPathForRuntime(params.runtime, params.configPath); | ||
| const existing = await readJsonFile(fileConfigPath); | ||
| const existing = await readJsonFile(params.configPath); | ||
| const updated = patchMcpConfig(params.runtime, existing, params.server); | ||
| await mkdir(dirname(fileConfigPath), { recursive: true }); | ||
| await writeFile(fileConfigPath, `${JSON.stringify(updated, null, 2)}\n`, { | ||
| mode: 0o600, | ||
| }); | ||
| await hardenSensitiveConfigFile(fileConfigPath); | ||
| await mkdir(dirname(params.configPath), { recursive: true }); | ||
| await writeFile(params.configPath, `${JSON.stringify(updated, null, 2)}\n`, { mode: 0o600 }); | ||
| await hardenSensitiveConfigFile(params.configPath); | ||
| } | ||
| function runtimeConfigTarget(runtime) { | ||
| return runtime === 'openclaw' | ||
| ? 'mcp.servers.filepad' | ||
| : 'mcpServers.filepad'; | ||
| if (runtime === 'openclaw') | ||
| return 'mcp.servers.filepad'; | ||
| if (runtime === 'codex') | ||
| return 'mcp_servers.filepad'; | ||
| return 'mcpServers.filepad'; | ||
| } | ||
| function resolveConfigPath(params) { | ||
| if (params.override) | ||
| return expandHome(params.override); | ||
| if (params.desiredState?.mcp.configPath) | ||
| return expandHome(params.desiredState.mcp.configPath); | ||
| if (params.runtime === 'codex' || params.runtime === 'claude-code') { | ||
| return defaultConfigPath(params.runtime); | ||
| } | ||
| return expandHome(params.responseConfigPath ?? defaultConfigPath(params.runtime)); | ||
| } | ||
| async function postPair(params) { | ||
@@ -176,20 +326,16 @@ const fetchImpl = params.fetchImpl ?? fetch; | ||
| } | ||
| catch { | ||
| catch (error) { | ||
| void error; | ||
| throw new Error(`PAIR_FAILED HTTP ${response.status}: ${text}`); | ||
| } | ||
| if (!response.ok) { | ||
| const err = isRecord(parsed) && isRecord(parsed['error']) | ||
| ? parsed['error'] | ||
| : undefined; | ||
| const code = typeof err?.['code'] === 'string' ? err['code'] : `HTTP_${response.status}`; | ||
| const message = typeof err?.['message'] === 'string' | ||
| ? err['message'] | ||
| : `Filepad pairing failed with HTTP ${response.status}`; | ||
| // Surface ZodError details so agents can diagnose schema mismatches | ||
| const detailStr = err?.['details'] | ||
| ? `\n details: ${JSON.stringify(err['details'])}` | ||
| : ''; | ||
| const parsedError = pairErrorResponseSchema.safeParse(parsed); | ||
| const err = parsedError.success ? parsedError.data.error : undefined; | ||
| const code = err?.code ?? `HTTP_${response.status}`; | ||
| const message = err?.message | ||
| ?? `Filepad pairing failed with HTTP ${response.status}`; | ||
| const detailStr = err?.details ? `\n details: ${JSON.stringify(err.details)}` : ''; | ||
| throw new Error(`${code}: ${message}${detailStr}`); | ||
| } | ||
| return parsed; | ||
| return pairResponseSchema.parse(parsed); | ||
| } | ||
@@ -199,17 +345,18 @@ export async function pairAgent(options) { | ||
| const desiredState = response.hostConfig.desiredState; | ||
| const configPath = expandHome(options.configPath ?? | ||
| desiredState?.mcp.configPath ?? | ||
| response.hostConfig.configPath ?? | ||
| defaultConfigPath(options.runtime)); | ||
| const structuredOutputPath = options.outputPath ?? | ||
| join(tmpdir(), `filepad-agent-connect-${process.pid}.json`); | ||
| const afterRestartTool = response.hostConfig.afterRestartCommand ?? | ||
| response.handoff.nextStep.afterRestartCommand ?? | ||
| 'filepad_bootstrap'; | ||
| const requiresHostRestart = response.hostConfig.requiresHostRestart ?? | ||
| response.handoff.nextStep.requiresHostRestart ?? | ||
| true; | ||
| const nativeToolsAvailable = response.hostConfig.nativeToolsAvailable ?? | ||
| response.handoff.nextStep.nativeToolsAvailable ?? | ||
| false; | ||
| const configPath = resolveConfigPath({ | ||
| runtime: options.runtime, | ||
| override: options.configPath, | ||
| desiredState, | ||
| responseConfigPath: response.hostConfig.configPath, | ||
| }); | ||
| const structuredOutputPath = options.outputPath ?? join(tmpdir(), `filepad-agent-connect-${process.pid}.json`); | ||
| const afterRestartTool = response.hostConfig.afterRestartCommand | ||
| ?? response.handoff.nextStep.afterRestartCommand | ||
| ?? 'filepad_bootstrap'; | ||
| const requiresHostRestart = response.hostConfig.requiresHostRestart | ||
| ?? response.handoff.nextStep.requiresHostRestart | ||
| ?? true; | ||
| const nativeToolsAvailable = response.hostConfig.nativeToolsAvailable | ||
| ?? response.handoff.nextStep.nativeToolsAvailable | ||
| ?? false; | ||
| const configTarget = desiredState?.mcp.configTarget ?? runtimeConfigTarget(options.runtime); | ||
@@ -276,10 +423,6 @@ const result = { | ||
| 'Agent-facing checks:', | ||
| baseUrl ? ` Health: ${baseUrl}/agent-api/v1/health` : ' Health: /agent-api/v1/health', | ||
| baseUrl ? ` Discovery: ${baseUrl}/agent-api/v1/discovery` : ' Discovery: /agent-api/v1/discovery', | ||
| baseUrl | ||
| ? ` Health: ${baseUrl.replace(/\/+$/g, '')}/agent-api/v1/health` | ||
| : ' Health: /agent-api/v1/health', | ||
| baseUrl | ||
| ? ` Discovery: ${baseUrl.replace(/\/+$/g, '')}/agent-api/v1/discovery` | ||
| : ' Discovery: /agent-api/v1/discovery', | ||
| baseUrl | ||
| ? ` HTTP bootstrap fallback: ${baseUrl.replace(/\/+$/g, '')}/agent-api/v1/workspaces/${workspaceId}/bootstrap (HMAC auth, or Authorization: Bearer <handoff.sessionToken> during setup)` | ||
| ? ` HTTP bootstrap fallback: ${baseUrl}/agent-api/v1/workspaces/${workspaceId}/bootstrap (HMAC auth, or Authorization: Bearer <handoff.sessionToken> during setup)` | ||
| : ` HTTP bootstrap fallback: /agent-api/v1/workspaces/${workspaceId}/bootstrap (HMAC auth, or Authorization: Bearer <handoff.sessionToken> during setup)`, | ||
@@ -299,3 +442,4 @@ ` Remote MCP transport: ${result.response.hostConfig.server.transport}`, | ||
| } | ||
| catch { | ||
| catch (error) { | ||
| void error; | ||
| return undefined; | ||
@@ -302,0 +446,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} |
+8
-5
| { | ||
| "name": "@filepad/agent-connect", | ||
| "version": "0.1.17", | ||
| "version": "0.1.18", | ||
| "description": "Remote MCP pairing CLI for Filepad Agent Access runtimes.", | ||
@@ -14,4 +14,3 @@ "type": "module", | ||
| "README.md", | ||
| "SECURITY.md", | ||
| "LICENSE" | ||
| "SECURITY.md" | ||
| ], | ||
@@ -25,3 +24,4 @@ "exports": { | ||
| "scripts": { | ||
| "build": "tsc -p tsconfig.build.json", | ||
| "clean": "node --input-type=module -e \"import fs from 'node:fs'; fs.rmSync('dist', { recursive: true, force: true });\"", | ||
| "build": "pnpm clean && tsc -p tsconfig.build.json", | ||
| "typecheck": "tsc -p tsconfig.json --noEmit", | ||
@@ -35,3 +35,3 @@ "test": "vitest run", | ||
| "mcp", | ||
| "openclaw", | ||
| "codex", | ||
| "claude" | ||
@@ -56,2 +56,5 @@ ], | ||
| }, | ||
| "dependencies": { | ||
| "zod": "^3.25.76" | ||
| }, | ||
| "devDependencies": { | ||
@@ -58,0 +61,0 @@ "typescript": "5.9.3", |
+12
-30
@@ -6,36 +6,18 @@ # @filepad/agent-connect | ||
| ```bash | ||
| npx -y @filepad/agent-connect@latest pair A3K9MZ2X --runtime openclaw | ||
| npx -y @filepad/agent-connect@latest pair A3K9MZ2X --runtime codex | ||
| ``` | ||
| The command exchanges a short Filepad pairing code, writes the runtime's remote | ||
| MCP endpoint configuration, prints a concise handoff for the current agent | ||
| session, and instructs the host to restart/reload MCP. After restart, call | ||
| `filepad_bootstrap`. | ||
| The command exchanges a short Filepad pairing code, writes the runtime's MCP | ||
| configuration in the native host format, prints a concise handoff, and asks the | ||
| host to restart or reload MCP tools. After restart, call `filepad_bootstrap`. | ||
| This package does not install contract verification hooks. Claude Code contract | ||
| verification is owned by `@filepad/runtime-adapter-claude-code`. | ||
| Runtime-specific configuration: | ||
| That restart/reload message is an expected success state, not a pairing | ||
| failure. Some runtimes, including Codex, load MCP tools only when a session | ||
| starts; the CLI therefore reports `paired=true`, `configWritten=true`, | ||
| `nativeToolsAvailable=false`, and `requiresHostRestart=true` so agents can | ||
| calmly ask the user to restart before continuing. | ||
| - `codex`: writes `~/.codex/config.toml` under `mcp_servers.filepad` with | ||
| `http_headers.Authorization`. | ||
| - `claude-code`: registers an HTTP MCP server with Claude Code and falls back | ||
| to the same `~/.claude.json` shape Claude writes natively. | ||
| - `openclaw`: writes `mcp.servers.filepad`. | ||
| - `cursor`, `windsurf`, `generic-mcp`: write `mcpServers.filepad`. | ||
| For `--runtime openclaw`, the CLI writes Filepad under | ||
| `mcp.servers.filepad`, matching OpenClaw's native config schema. Other generic | ||
| MCP clients use the standard `mcpServers.filepad` shape. | ||
| The handoff also prints agent-facing probes: | ||
| - public health: `/agent-api/v1/health` | ||
| - public discovery: `/agent-api/v1/discovery` | ||
| - authenticated HTTP bootstrap fallback: | ||
| `/agent-api/v1/workspaces/{workspaceId}/bootstrap` | ||
| - remote MCP stream: | ||
| `/mcp/v1/workspaces/{workspaceId}/stream` | ||
| Use `--output json` for automation: | ||
| ```bash | ||
| npx -y @filepad/agent-connect@latest pair A3K9MZ2X --runtime openclaw --output json | ||
| ``` | ||
| Use `--output json` for automation. |
+5
-20
@@ -1,22 +0,7 @@ | ||
| # Security Policy | ||
| # Security | ||
| ## Supported Versions | ||
| `agent-connect` stores a Filepad MCP bearer token in the local agent host | ||
| configuration so the selected host can authenticate after restart. Config files | ||
| written by this package are chmodded to `0600` when the platform allows it. | ||
| Security fixes are provided for the latest published `0.x` release of `@filepad/agent-connect`. | ||
| ## Reporting a Vulnerability | ||
| Email security reports to `security@filepad.ai`. | ||
| Please include: | ||
| - package name and version | ||
| - affected runtime or config writer | ||
| - reproduction steps | ||
| - expected impact | ||
| Do not open a public issue for vulnerabilities involving pairing codes, generated credentials, MCP config writes, request signing, secrets, or workspace data exposure. | ||
| ## Secret Handling | ||
| Pairing codes are short-lived and should be pasted into the target agent runtime only. The CLI exchanges the code for agent credentials, writes them into the selected runtime config, and stores a structured result in a temporary file. Rotate the Filepad key if credentials are copied into chat, logs, screenshots, or source control. | ||
| Report security issues to security@filepad.ai. |
-21
| MIT License | ||
| Copyright (c) Filepad | ||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||
| of this software and associated documentation files (the "Software"), to deal | ||
| in the Software without restriction, including without limitation the rights | ||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
| copies of the Software, and to permit persons to whom the Software is | ||
| furnished to do so, subject to the following conditions: | ||
| The above copyright notice and this permission notice shall be included in all | ||
| copies or substantial portions of the Software. | ||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
| SOFTWARE. |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
47431
30.02%659
48.76%1
Infinity%11
-8.33%23
-43.9%3
50%+ Added
+ Added