@proappstore/cli 2.6.40 → 2.6.42
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.
- package/dist/create.js +2 -2
- package/dist/create.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-auth.d.ts +3 -0
- package/dist/mcp-auth.d.ts.map +1 -0
- package/dist/mcp-auth.js +131 -0
- package/dist/mcp-auth.js.map +1 -0
- package/dist/mcp-remote-auth-relay.test.d.ts +2 -0
- package/dist/mcp-remote-auth-relay.test.d.ts.map +1 -0
- package/dist/mcp-remote-auth-relay.test.js +95 -0
- package/dist/mcp-remote-auth-relay.test.js.map +1 -0
- package/dist/mcp-remote-auth.d.ts +140 -0
- package/dist/mcp-remote-auth.d.ts.map +1 -0
- package/dist/mcp-remote-auth.js +472 -0
- package/dist/mcp-remote-auth.js.map +1 -0
- package/dist/mcp-remote-auth.test.d.ts +2 -0
- package/dist/mcp-remote-auth.test.d.ts.map +1 -0
- package/dist/mcp-remote-auth.test.js +367 -0
- package/dist/mcp-remote-auth.test.js.map +1 -0
- package/dist/publish.js +2 -2
- package/dist/publish.js.map +1 -1
- package/package.json +1 -1
package/dist/create.js
CHANGED
|
@@ -51,8 +51,8 @@ const TEXT_EXTENSIONS = new Set([
|
|
|
51
51
|
]);
|
|
52
52
|
const SKIP_DIRS = new Set(['.git', 'node_modules', 'dist', '.cache']);
|
|
53
53
|
export async function createApp(appId, opts = {}) {
|
|
54
|
-
if (!/^[a-z][a-z0-9-]*$/.test(appId) || appId.length >
|
|
55
|
-
process.stderr.write(`Invalid app ID "${appId}". Use lowercase letters, numbers, hyphens
|
|
54
|
+
if (!/^[a-z][a-z0-9-]*$/.test(appId) || appId.length > 57 || appId.startsWith('about-')) {
|
|
55
|
+
process.stderr.write(`Invalid app ID "${appId}". Use lowercase letters, numbers, hyphens; max 57 chars; no about- prefix.\n`);
|
|
56
56
|
process.exit(1);
|
|
57
57
|
}
|
|
58
58
|
const targetDir = resolve(appId);
|
package/dist/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -16,6 +16,7 @@ import { integrateCommand } from './integrate.js';
|
|
|
16
16
|
import { workerCommand } from './worker.js';
|
|
17
17
|
import { hookCommand } from './hook.js';
|
|
18
18
|
import { scheduleCommand } from './schedule.js';
|
|
19
|
+
import { mcpAuthCommand } from './mcp-auth.js';
|
|
19
20
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
20
21
|
const pkg = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf8'));
|
|
21
22
|
const program = new Command();
|
|
@@ -60,6 +61,7 @@ program.addCommand(integrateCommand);
|
|
|
60
61
|
program.addCommand(workerCommand);
|
|
61
62
|
program.addCommand(hookCommand);
|
|
62
63
|
program.addCommand(scheduleCommand);
|
|
64
|
+
program.addCommand(mcpAuthCommand);
|
|
63
65
|
program.parseAsync().catch((err) => {
|
|
64
66
|
const msg = err instanceof Error ? err.message : String(err);
|
|
65
67
|
process.stderr.write(`pas: ${msg}\n`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-auth.d.ts","sourceRoot":"","sources":["../src/mcp-auth.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwCpC,eAAO,MAAM,cAAc,SA4ExB,CAAC"}
|
package/dist/mcp-auth.js
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { readFileSync } from 'node:fs';
|
|
3
|
+
import { homedir, hostname } from 'node:os';
|
|
4
|
+
import { dirname, join } from 'node:path';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
import { readConfig, resolveToken } from './lib/config.js';
|
|
8
|
+
import { connect, DEFAULT_SERVER_NAME, DEFAULT_TOKEN_ENV, disconnect, identity, mcpResource, readCredential, RemoteAuthError, } from './mcp-remote-auth.js';
|
|
9
|
+
// `pas mcp-auth` (#356): connect a headless machine's MCP client to ProAppStore, approved from a phone.
|
|
10
|
+
// Protocol: docs/mcp-remote-auth-client.md.
|
|
11
|
+
const pkg = JSON.parse(readFileSync(join(dirname(fileURLToPath(import.meta.url)), '..', 'package.json'), 'utf8'));
|
|
12
|
+
const MCP_ORIGIN = process.env.PAS_MCP_ORIGIN ?? 'https://mcp.proappstore.online';
|
|
13
|
+
function realDeps() {
|
|
14
|
+
return {
|
|
15
|
+
fetch,
|
|
16
|
+
runPags: (args, stdin) => new Promise((resolve, reject) => {
|
|
17
|
+
const child = spawn('pags', args, { stdio: ['pipe', 'pipe', 'pipe'] });
|
|
18
|
+
let stdout = '';
|
|
19
|
+
let stderr = '';
|
|
20
|
+
child.stdout.on('data', (d) => { stdout += d.toString(); });
|
|
21
|
+
child.stderr.on('data', (d) => { stderr += d.toString(); });
|
|
22
|
+
child.on('error', reject);
|
|
23
|
+
child.on('close', (code) => resolve({ code: code ?? 1, stdout, stderr }));
|
|
24
|
+
child.stdin.end(stdin ?? '');
|
|
25
|
+
}),
|
|
26
|
+
sleep: (ms) => new Promise((r) => setTimeout(r, ms)),
|
|
27
|
+
now: () => Date.now(),
|
|
28
|
+
out: (line) => { process.stdout.write(`${line}\n`); },
|
|
29
|
+
dir: join(homedir(), '.proappstore', 'mcp'),
|
|
30
|
+
pid: process.pid,
|
|
31
|
+
isAlive: (pid) => { try {
|
|
32
|
+
process.kill(pid, 0);
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return false;
|
|
37
|
+
} },
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function fail(e) {
|
|
41
|
+
process.stderr.write(`pas: ${e instanceof RemoteAuthError ? e.message : e instanceof Error ? e.message : String(e)}\n`);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
export const mcpAuthCommand = new Command('mcp-auth')
|
|
45
|
+
.description('Connect this machine\'s MCP client to ProAppStore, approved from your phone (no browser on this machine).')
|
|
46
|
+
.addCommand(new Command('connect')
|
|
47
|
+
.description('Start a sign-in request, get it approved on your phone, and store the new MCP credential.')
|
|
48
|
+
.option('--app <id>', 'connect to one app\'s MCP endpoint (/mcp/apps/<id>) instead of the platform /mcp')
|
|
49
|
+
.option('--name <name>', 'local name for this connection', DEFAULT_SERVER_NAME)
|
|
50
|
+
.option('--agent <id>', 'the MCP client the credential is for, shown on the approval page', 'codex')
|
|
51
|
+
.option('--machine <label>', 'how this machine is named on the approval page', hostname())
|
|
52
|
+
.option('--no-relay', 'do not notify your phone through ProAgentStore; open the printed approval link yourself')
|
|
53
|
+
.action(async (opts) => {
|
|
54
|
+
try {
|
|
55
|
+
const cfg = await readConfig();
|
|
56
|
+
const resource = mcpResource(MCP_ORIGIN, opts.app);
|
|
57
|
+
const result = await connect(realDeps(), {
|
|
58
|
+
apiBase: cfg.apiBase,
|
|
59
|
+
bearer: resolveToken(),
|
|
60
|
+
resource,
|
|
61
|
+
name: opts.name,
|
|
62
|
+
agent: identity(opts.agent, opts.agent === 'codex' ? 'Codex' : opts.agent),
|
|
63
|
+
machine: identity(opts.machine, opts.machine),
|
|
64
|
+
relay: opts.relay,
|
|
65
|
+
clientVersion: pkg.version,
|
|
66
|
+
});
|
|
67
|
+
process.stdout.write([
|
|
68
|
+
`Connected "${result.name}" to ${result.resource}. The credential is stored in ~/.proappstore/mcp/${result.name}.json (0600).`,
|
|
69
|
+
'To use it from Codex (once, a separate server entry; your existing ones are untouched):',
|
|
70
|
+
` codex mcp add ${result.name} --url ${result.resource} --bearer-token-env-var ${DEFAULT_TOKEN_ENV}`,
|
|
71
|
+
'then start Codex with the credential in its environment only:',
|
|
72
|
+
` pas mcp-auth exec --name ${result.name} -- codex`,
|
|
73
|
+
'',
|
|
74
|
+
].join('\n'));
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
fail(e);
|
|
78
|
+
}
|
|
79
|
+
}))
|
|
80
|
+
.addCommand(new Command('status')
|
|
81
|
+
.description('Show the stored connection (never the credential itself).')
|
|
82
|
+
.option('--name <name>', 'local connection name', DEFAULT_SERVER_NAME)
|
|
83
|
+
.action(async (opts) => {
|
|
84
|
+
try {
|
|
85
|
+
const stored = await readCredential(realDeps(), opts.name);
|
|
86
|
+
if (!stored) {
|
|
87
|
+
process.stdout.write(`No connection "${opts.name}". Run \`pas mcp-auth connect\`.\n`);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
const left = stored.expires_at - Date.now();
|
|
91
|
+
process.stdout.write(`"${opts.name}": ${stored.resource}, ${left > 0 ? `valid for ${Math.round(left / 60_000)} more minutes` : 'expired — run `pas mcp-auth connect` again'}.\n`);
|
|
92
|
+
}
|
|
93
|
+
catch (e) {
|
|
94
|
+
fail(e);
|
|
95
|
+
}
|
|
96
|
+
}))
|
|
97
|
+
.addCommand(new Command('exec')
|
|
98
|
+
.description(`Run a command (e.g. codex) with the stored credential in ${DEFAULT_TOKEN_ENV}, for that process only.`)
|
|
99
|
+
.option('--name <name>', 'local connection name', DEFAULT_SERVER_NAME)
|
|
100
|
+
.option('--env-var <name>', 'environment variable to set', DEFAULT_TOKEN_ENV)
|
|
101
|
+
.argument('<command...>', 'the command to run, after --')
|
|
102
|
+
.action(async (command, opts) => {
|
|
103
|
+
try {
|
|
104
|
+
const stored = await readCredential(realDeps(), opts.name);
|
|
105
|
+
if (!stored)
|
|
106
|
+
throw new RemoteAuthError('no_credential', `No connection "${opts.name}". Run \`pas mcp-auth connect\` first.`);
|
|
107
|
+
if (stored.expires_at <= Date.now())
|
|
108
|
+
throw new RemoteAuthError('no_credential', `The connection "${opts.name}" has expired. Run \`pas mcp-auth connect\` again.`);
|
|
109
|
+
if (!/^[A-Z_][A-Z0-9_]*$/.test(opts.envVar))
|
|
110
|
+
throw new RemoteAuthError('no_credential', `invalid environment variable name "${opts.envVar}"`);
|
|
111
|
+
const child = spawn(command[0], command.slice(1), { stdio: 'inherit', env: { ...process.env, [opts.envVar]: stored.access_token } });
|
|
112
|
+
child.on('error', (err) => fail(err));
|
|
113
|
+
child.on('close', (code) => process.exit(code ?? 1));
|
|
114
|
+
}
|
|
115
|
+
catch (e) {
|
|
116
|
+
fail(e);
|
|
117
|
+
}
|
|
118
|
+
}))
|
|
119
|
+
.addCommand(new Command('disconnect')
|
|
120
|
+
.description('Forget this machine\'s stored connection (local only; your ProAppStore account and other machines are unaffected).')
|
|
121
|
+
.option('--name <name>', 'local connection name', DEFAULT_SERVER_NAME)
|
|
122
|
+
.action(async (opts) => {
|
|
123
|
+
try {
|
|
124
|
+
const existed = await disconnect(realDeps(), opts.name);
|
|
125
|
+
process.stdout.write(existed ? `Removed "${opts.name}" from this machine.\n` : `No connection "${opts.name}" on this machine.\n`);
|
|
126
|
+
}
|
|
127
|
+
catch (e) {
|
|
128
|
+
fail(e);
|
|
129
|
+
}
|
|
130
|
+
}));
|
|
131
|
+
//# sourceMappingURL=mcp-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-auth.js","sourceRoot":"","sources":["../src/mcp-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-remote-auth-relay.test.d.ts","sourceRoot":"","sources":["../src/mcp-remote-auth-relay.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { assertRelaySafe, checkPagsVersion, identity, mcpResource, relayToAgent, RemoteAuthError, reportRelayState, } from './mcp-remote-auth.js';
|
|
3
|
+
// #356: the PAGS relay contract (ProAgentStore docs/remote-auth-relay.md) as this client keeps it:
|
|
4
|
+
// only the documented public fields leave the machine; exit 2 is a refusal, 1 is retried with the
|
|
5
|
+
// same JSON; state reports are best effort.
|
|
6
|
+
const DETAILS = {
|
|
7
|
+
request_id: `req_${'a'.repeat(43)}`,
|
|
8
|
+
agent: { id: 'codex', label: 'Codex' },
|
|
9
|
+
machine: { id: 'mac-42', label: 'Remote Mac' },
|
|
10
|
+
resource: 'https://mcp.proappstore.online/mcp',
|
|
11
|
+
scopes: [],
|
|
12
|
+
approval_url: `https://api.proappstore.online/v1/mcp/broker/v2/requests/req_${'a'.repeat(43)}/approve`,
|
|
13
|
+
expires_at: 1_800_000_600_000,
|
|
14
|
+
};
|
|
15
|
+
function pags(exits, calls = []) {
|
|
16
|
+
return {
|
|
17
|
+
fetch: (async () => { throw new Error('no network in relay tests'); }),
|
|
18
|
+
runPags: async (args, stdin) => {
|
|
19
|
+
calls.push({ args, ...(stdin !== undefined ? { stdin } : {}) });
|
|
20
|
+
const code = exits.shift() ?? 0;
|
|
21
|
+
return { code, stdout: code === 0 ? '{"id":"rar_1","url":"https://pags.test/console/remote-auth/rar_1","state":"pending","duplicate":false}\n' : '', stderr: '' };
|
|
22
|
+
},
|
|
23
|
+
sleep: async () => undefined,
|
|
24
|
+
now: () => 0,
|
|
25
|
+
out: () => undefined,
|
|
26
|
+
dir: '/nonexistent',
|
|
27
|
+
pid: 1,
|
|
28
|
+
isAlive: () => false,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
describe('what may be relayed', () => {
|
|
32
|
+
it('accepts exactly the documented public fields', () => {
|
|
33
|
+
expect(() => assertRelaySafe(DETAILS)).not.toThrow();
|
|
34
|
+
});
|
|
35
|
+
it.each([
|
|
36
|
+
['a top-level secret', { ...DETAILS, machine_proof: 'x' }],
|
|
37
|
+
['a nested secret', { ...DETAILS, machine: { ...DETAILS.machine, private_key: 'x' } }],
|
|
38
|
+
['a verifier', { ...DETAILS, code_verifier: 'x' }],
|
|
39
|
+
['a token deep in an array', { ...DETAILS, scopes: [{ token: 'x' }] }],
|
|
40
|
+
])('refuses %s before anything leaves the machine', (_what, details) => {
|
|
41
|
+
const calls = [];
|
|
42
|
+
expect(() => assertRelaySafe(details)).toThrow(RemoteAuthError);
|
|
43
|
+
return expect(relayToAgent(pags([], calls), details)).rejects.toMatchObject({ code: 'relay_refused' }).then(() => expect(calls).toEqual([]));
|
|
44
|
+
});
|
|
45
|
+
it('refuses an approval URL carrying parameters', () => {
|
|
46
|
+
expect(() => assertRelaySafe({ ...DETAILS, approval_url: `${DETAILS.approval_url}?code=x` })).toThrow(/parameters/);
|
|
47
|
+
expect(() => assertRelaySafe({ ...DETAILS, approval_url: 'http://api.proappstore.online/x' })).toThrow(/parameters/);
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
describe('relaying', () => {
|
|
51
|
+
it('sends the request once on stdin and returns the PAGS request', async () => {
|
|
52
|
+
const calls = [];
|
|
53
|
+
expect(await relayToAgent(pags([0], calls), DETAILS)).toMatchObject({ id: 'rar_1', duplicate: false });
|
|
54
|
+
expect(calls).toEqual([{ args: ['remote-auth', 'relay'], stdin: JSON.stringify(DETAILS) }]);
|
|
55
|
+
});
|
|
56
|
+
it('retries a transport failure (exit 1) with the identical JSON, so PAGS treats it as the same request', async () => {
|
|
57
|
+
const calls = [];
|
|
58
|
+
await relayToAgent(pags([1, 1, 0], calls), DETAILS);
|
|
59
|
+
expect(calls).toHaveLength(3);
|
|
60
|
+
expect(new Set(calls.map((c) => c.stdin)).size).toBe(1);
|
|
61
|
+
});
|
|
62
|
+
it('gives up after three transport failures, and never retries a refusal (exit 2)', async () => {
|
|
63
|
+
await expect(relayToAgent(pags([1, 1, 1]), DETAILS)).rejects.toMatchObject({ code: 'network' });
|
|
64
|
+
const calls = [];
|
|
65
|
+
await expect(relayToAgent(pags([2], calls), DETAILS)).rejects.toMatchObject({ code: 'relay_refused' });
|
|
66
|
+
expect(calls).toHaveLength(1);
|
|
67
|
+
});
|
|
68
|
+
it('reports a state as `pags remote-auth state <id> <state>`, and a failed report is not fatal', async () => {
|
|
69
|
+
const calls = [];
|
|
70
|
+
expect(await reportRelayState(pags([0], calls), 'rar_1', 'approved_awaiting_machine')).toBe(true);
|
|
71
|
+
expect(calls[0].args).toEqual(['remote-auth', 'state', 'rar_1', 'approved_awaiting_machine']);
|
|
72
|
+
expect(await reportRelayState(pags([1]), 'rar_1', 'connected')).toBe(false);
|
|
73
|
+
const broken = { ...pags([]), runPags: async () => { throw new Error('gone'); } };
|
|
74
|
+
expect(await reportRelayState(broken, 'rar_1', 'connected')).toBe(false);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
describe('preflight', () => {
|
|
78
|
+
it.each([['0.4.121', true], ['pags 0.4.130', true], ['0.5.0', true], ['1.0.0', true], ['0.4.120', false], ['0.3.999', false]])('pags %s supported: %s', async (version, ok) => {
|
|
79
|
+
const deps = { ...pags([]), runPags: async () => ({ code: 0, stdout: version, stderr: '' }) };
|
|
80
|
+
if (ok)
|
|
81
|
+
await expect(checkPagsVersion(deps)).resolves.toBeTruthy();
|
|
82
|
+
else
|
|
83
|
+
await expect(checkPagsVersion(deps)).rejects.toMatchObject({ code: 'old_cli' });
|
|
84
|
+
});
|
|
85
|
+
it('the resource is exactly /mcp or /mcp/apps/:appId on an https origin', () => {
|
|
86
|
+
expect(mcpResource('https://mcp.proappstore.online/')).toBe('https://mcp.proappstore.online/mcp');
|
|
87
|
+
expect(mcpResource('https://mcp.proappstore.online', 'stash')).toBe('https://mcp.proappstore.online/mcp/apps/stash');
|
|
88
|
+
expect(() => mcpResource('https://mcp.proappstore.online', 'Bad/App')).toThrow(RemoteAuthError);
|
|
89
|
+
expect(() => mcpResource('http://mcp.proappstore.online')).toThrow(/https/);
|
|
90
|
+
});
|
|
91
|
+
it('agent and machine names are made broker-safe', () => {
|
|
92
|
+
expect(identity('Serge\'s MacBook Pro', 'Serge’s MacBook Pro')).toEqual({ id: 'Serge-s-MacBook-Pro', label: 'Serge?s MacBook Pro' });
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
//# sourceMappingURL=mcp-remote-auth-relay.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-remote-auth-relay.test.js","sourceRoot":"","sources":["../src/mcp-remote-auth-relay.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PAS #356: the machine (client) half of remote MCP sign-in from a phone.
|
|
3
|
+
*
|
|
4
|
+
* Contracts, not invented here:
|
|
5
|
+
* - the PAS broker v2 (#355, docs/mcp-remote-auth-broker.md, backend/src/routes/mcp-broker.ts);
|
|
6
|
+
* - the PAGS relay (ProAgentStore #1005, its docs/remote-auth-relay.md): `pags remote-auth relay`
|
|
7
|
+
* takes the request's public details on stdin and pushes the owner a link to that one request.
|
|
8
|
+
*
|
|
9
|
+
* The machine keeps its proof, PKCE verifier and P-256 private key; only their hash, the challenge
|
|
10
|
+
* and the public key leave it. The result is ECDH-encrypted to this machine. Nothing secret is ever
|
|
11
|
+
* written to stdout/stderr, a URL, the relay or an error message.
|
|
12
|
+
*/
|
|
13
|
+
export declare const BROKER_PREFIX = "/v1/mcp/broker/v2";
|
|
14
|
+
export declare const BROKER_VERSION = "2026-10-10";
|
|
15
|
+
export declare const MIN_PAGS_VERSION = "0.4.121";
|
|
16
|
+
/** Broker poll floor: the server answers an earlier poll with `429 slow_down`. */
|
|
17
|
+
export declare const POLL_MS = 2000;
|
|
18
|
+
/** A separate Codex server name by default, so an existing working entry is never touched. */
|
|
19
|
+
export declare const DEFAULT_SERVER_NAME = "proappstore-remote";
|
|
20
|
+
export declare const DEFAULT_TOKEN_ENV = "PAS_REMOTE_MCP_TOKEN";
|
|
21
|
+
export declare const RELAY_STATES: readonly ["pending", "approving", "approved_awaiting_machine", "consumed", "connected", "denied", "expired", "cancelled", "failed"];
|
|
22
|
+
export type BrokerStatus = typeof RELAY_STATES[number];
|
|
23
|
+
export type RemoteAuthErrorCode = 'not_signed_in' | 'invalid_resource' | 'busy' | 'pags_missing' | 'old_cli' | 'relay_refused' | 'unavailable' | 'denied' | 'cancelled' | 'expired' | 'failed' | 'network' | 'health_check_failed' | 'no_credential';
|
|
24
|
+
/** A user-readable, actionable failure. Its message never carries secret material. */
|
|
25
|
+
export declare class RemoteAuthError extends Error {
|
|
26
|
+
readonly code: RemoteAuthErrorCode;
|
|
27
|
+
constructor(code: RemoteAuthErrorCode, message: string);
|
|
28
|
+
}
|
|
29
|
+
export interface Identity {
|
|
30
|
+
id: string;
|
|
31
|
+
label: string;
|
|
32
|
+
}
|
|
33
|
+
export interface RemoteAuthDeps {
|
|
34
|
+
fetch: typeof fetch;
|
|
35
|
+
/** Run `pags <args>`, `stdin` piped in. A missing binary rejects with an ENOENT error. */
|
|
36
|
+
runPags: (args: string[], stdin?: string) => Promise<{
|
|
37
|
+
code: number;
|
|
38
|
+
stdout: string;
|
|
39
|
+
stderr: string;
|
|
40
|
+
}>;
|
|
41
|
+
sleep: (ms: number) => Promise<void>;
|
|
42
|
+
now: () => number;
|
|
43
|
+
/** One line to the user (stdout). Never passed a secret. */
|
|
44
|
+
out: (line: string) => void;
|
|
45
|
+
/** Protected state directory, e.g. ~/.proappstore/mcp. */
|
|
46
|
+
dir: string;
|
|
47
|
+
pid: number;
|
|
48
|
+
isAlive: (pid: number) => boolean;
|
|
49
|
+
}
|
|
50
|
+
export interface MachineSecrets {
|
|
51
|
+
/** Sent only to the broker's machine endpoints, never relayed or printed. */
|
|
52
|
+
proof: string;
|
|
53
|
+
verifier: string;
|
|
54
|
+
privateKeyPkcs8: string;
|
|
55
|
+
/** Public: sent when the request is created. */
|
|
56
|
+
proofHash: string;
|
|
57
|
+
challenge: string;
|
|
58
|
+
publicKeySpki: string;
|
|
59
|
+
}
|
|
60
|
+
/** A fresh machine proof, PKCE S256 pair and P-256 key for one request. */
|
|
61
|
+
export declare function generateMachineSecrets(): Promise<MachineSecrets>;
|
|
62
|
+
export interface Envelope {
|
|
63
|
+
iv: string;
|
|
64
|
+
ephemeral_public_key: string;
|
|
65
|
+
ciphertext: string;
|
|
66
|
+
}
|
|
67
|
+
export interface McpCredential {
|
|
68
|
+
access_token: string;
|
|
69
|
+
token_type: string;
|
|
70
|
+
resource: string;
|
|
71
|
+
expires_in: number;
|
|
72
|
+
}
|
|
73
|
+
/** Open the broker's sealed result: ECDH P-256 → SHA-256 → AES-GCM, the request id as associated data. */
|
|
74
|
+
export declare function openEnvelope(envelope: Envelope, privateKeyPkcs8: string, requestId: string): Promise<McpCredential>;
|
|
75
|
+
/** Exactly `<origin>/mcp` or `<origin>/mcp/apps/:appId` — the only resources the broker accepts. */
|
|
76
|
+
export declare function mcpResource(origin: string, appId?: string): string;
|
|
77
|
+
/** A broker-valid identity: the id restricted to [A-Za-z0-9._:-], the label to printable ASCII. */
|
|
78
|
+
export declare function identity(id: string, label: string): Identity;
|
|
79
|
+
export interface RelayDetails {
|
|
80
|
+
request_id: string;
|
|
81
|
+
agent: Identity;
|
|
82
|
+
machine: Identity;
|
|
83
|
+
resource: string;
|
|
84
|
+
scopes: [];
|
|
85
|
+
approval_url: string;
|
|
86
|
+
expires_at: number;
|
|
87
|
+
}
|
|
88
|
+
export interface RelayResult {
|
|
89
|
+
id: string;
|
|
90
|
+
url: string;
|
|
91
|
+
state: string;
|
|
92
|
+
duplicate: boolean;
|
|
93
|
+
}
|
|
94
|
+
/** Only the documented public fields, at any depth, and an approval URL with no query: anything else is refused before it leaves the machine. */
|
|
95
|
+
export declare function assertRelaySafe(value: unknown, path?: string): void;
|
|
96
|
+
/** The `pags` CLI must exist and be at least 0.4.121 (the first with `remote-auth`). */
|
|
97
|
+
export declare function checkPagsVersion(deps: RemoteAuthDeps): Promise<string>;
|
|
98
|
+
/** `pags remote-auth relay`: exit 2 is a refused input; 1 is transport, retried with the same JSON (a duplicate, no second push). */
|
|
99
|
+
export declare function relayToAgent(deps: RemoteAuthDeps, details: RelayDetails): Promise<RelayResult>;
|
|
100
|
+
/** `pags remote-auth state <rar_id> <state>`. Best effort: the page is a view; the broker is authoritative. */
|
|
101
|
+
export declare function reportRelayState(deps: RemoteAuthDeps, rarId: string, state: BrokerStatus): Promise<boolean>;
|
|
102
|
+
/** A harmless authenticated MCP read (JSON-RPC `initialize`); the MCP worker records it as the broker's connected receipt. */
|
|
103
|
+
export declare function performMcpHealthCheck(deps: RemoteAuthDeps, resource: string, token: string, clientVersion: string): Promise<boolean>;
|
|
104
|
+
export interface StoredCredential {
|
|
105
|
+
version: 1;
|
|
106
|
+
resource: string;
|
|
107
|
+
token_type: string;
|
|
108
|
+
access_token: string;
|
|
109
|
+
expires_at: number;
|
|
110
|
+
installed_at: number;
|
|
111
|
+
}
|
|
112
|
+
/** Replace the stored credential only now that it is known to work. */
|
|
113
|
+
export declare function installMcpCredential(deps: RemoteAuthDeps, name: string, credential: McpCredential): Promise<void>;
|
|
114
|
+
export declare function readCredential(deps: RemoteAuthDeps, name: string): Promise<StoredCredential | null>;
|
|
115
|
+
/** Local only: forget this machine's stored credential and any open attempt. No global logout. */
|
|
116
|
+
export declare function disconnect(deps: RemoteAuthDeps, name: string): Promise<boolean>;
|
|
117
|
+
export interface ConnectOptions {
|
|
118
|
+
apiBase: string;
|
|
119
|
+
/** The owner's PAS session from `pas login`, used only to create the request. */
|
|
120
|
+
bearer: string | null;
|
|
121
|
+
resource: string;
|
|
122
|
+
name: string;
|
|
123
|
+
agent: Identity;
|
|
124
|
+
machine: Identity;
|
|
125
|
+
relay: boolean;
|
|
126
|
+
clientVersion: string;
|
|
127
|
+
}
|
|
128
|
+
export interface ConnectResult {
|
|
129
|
+
requestId: string;
|
|
130
|
+
resource: string;
|
|
131
|
+
name: string;
|
|
132
|
+
resumed: boolean;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Create (or resume) one request, relay it, wait for the owner, redeem, prove the credential with an
|
|
136
|
+
* authenticated MCP read, install it, and only then report `connected`. The previous credential is
|
|
137
|
+
* replaced only after the read succeeded.
|
|
138
|
+
*/
|
|
139
|
+
export declare function connect(deps: RemoteAuthDeps, opts: ConnectOptions): Promise<ConnectResult>;
|
|
140
|
+
//# sourceMappingURL=mcp-remote-auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-remote-auth.d.ts","sourceRoot":"","sources":["../src/mcp-remote-auth.ts"],"names":[],"mappings":"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"}
|