@tempoxyz/mercator 0.0.0
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/README.md +208 -0
- package/THIRD_PARTY_NOTICES.md +11 -0
- package/dist/agents.d.ts +26 -0
- package/dist/agents.js +152 -0
- package/dist/agents.js.map +1 -0
- package/dist/bin.d.ts +2 -0
- package/dist/bin.js +4 -0
- package/dist/bin.js.map +1 -0
- package/dist/client-selection.d.ts +13 -0
- package/dist/client-selection.js +97 -0
- package/dist/client-selection.js.map +1 -0
- package/dist/clients.d.ts +70 -0
- package/dist/clients.js +282 -0
- package/dist/clients.js.map +1 -0
- package/dist/codex-plugin.d.ts +52 -0
- package/dist/codex-plugin.js +417 -0
- package/dist/codex-plugin.js.map +1 -0
- package/dist/command.d.ts +17 -0
- package/dist/command.js +59 -0
- package/dist/command.js.map +1 -0
- package/dist/doctor.d.ts +10 -0
- package/dist/doctor.js +105 -0
- package/dist/doctor.js.map +1 -0
- package/dist/globe-frames.d.ts +6 -0
- package/dist/globe-frames.js +208 -0
- package/dist/globe-frames.js.map +1 -0
- package/dist/globe.d.ts +12 -0
- package/dist/globe.js +73 -0
- package/dist/globe.js.map +1 -0
- package/dist/index.d.ts +118 -0
- package/dist/index.js +568 -0
- package/dist/index.js.map +1 -0
- package/dist/native-payments.d.ts +34 -0
- package/dist/native-payments.js +191 -0
- package/dist/native-payments.js.map +1 -0
- package/dist/plugin-bundle/.codex-plugin/plugin.json +35 -0
- package/dist/plugin-bundle/.mcp.json +9 -0
- package/dist/plugin-bundle/README.md +26 -0
- package/dist/plugin-bundle/assets/favicon.svg +7 -0
- package/dist/plugin-bundle/assets/mercator-overview.png +0 -0
- package/dist/plugin-bundle/assets/service-network.png +0 -0
- package/dist/plugin-bundle/assets/workflow-composition.png +0 -0
- package/dist/setup-progress.d.ts +13 -0
- package/dist/setup-progress.js +22 -0
- package/dist/setup-progress.js.map +1 -0
- package/dist/submit.d.ts +15 -0
- package/dist/submit.js +127 -0
- package/dist/submit.js.map +1 -0
- package/dist/wallet.d.ts +77 -0
- package/dist/wallet.js +319 -0
- package/dist/wallet.js.map +1 -0
- package/package.json +56 -0
package/dist/clients.js
ADDED
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { lstat, mkdir, readFile, realpath, rename, stat, writeFile, } from 'node:fs/promises';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
import { dirname, join } from 'node:path';
|
|
5
|
+
import { commandAvailable, runCapturedCommand } from './command.js';
|
|
6
|
+
export const Client = {
|
|
7
|
+
Claude: 'claude',
|
|
8
|
+
Cline: 'cline',
|
|
9
|
+
Codex: 'codex',
|
|
10
|
+
Continue: 'continue',
|
|
11
|
+
Cursor: 'cursor',
|
|
12
|
+
Gemini: 'gemini',
|
|
13
|
+
Hermes: 'hermes',
|
|
14
|
+
OpenClaw: 'openclaw',
|
|
15
|
+
VsCode: 'vscode',
|
|
16
|
+
Windsurf: 'windsurf',
|
|
17
|
+
};
|
|
18
|
+
export const CLIENT_IDS = Object.values(Client);
|
|
19
|
+
export function setupPlan(client, url, options = {}) {
|
|
20
|
+
const home = options.home ?? homedir();
|
|
21
|
+
const cwd = options.cwd ?? process.cwd();
|
|
22
|
+
const mcpServers = { mercator: { url } };
|
|
23
|
+
switch (client) {
|
|
24
|
+
case Client.Codex:
|
|
25
|
+
return commandPlan('codex', ['mcp', 'add', 'mercator', '--url', url], {
|
|
26
|
+
args: ['mcp', 'get', 'mercator'],
|
|
27
|
+
command: 'codex',
|
|
28
|
+
url,
|
|
29
|
+
});
|
|
30
|
+
case Client.Claude:
|
|
31
|
+
return commandPlan('claude', ['mcp', 'add', '--scope', 'user', '--transport', 'http', 'mercator', url], {
|
|
32
|
+
args: ['mcp', 'get', 'mercator'],
|
|
33
|
+
command: 'claude',
|
|
34
|
+
url,
|
|
35
|
+
});
|
|
36
|
+
case Client.Gemini:
|
|
37
|
+
return commandPlan('gemini', ['mcp', 'add', 'mercator', url, '--transport', 'http', '--scope', 'user'], {
|
|
38
|
+
args: ['mcp', 'list'],
|
|
39
|
+
command: 'gemini',
|
|
40
|
+
serverName: 'mercator',
|
|
41
|
+
url,
|
|
42
|
+
});
|
|
43
|
+
case Client.OpenClaw:
|
|
44
|
+
return commandPlan('openclaw', ['mcp', 'add', 'mercator', '--url', url, '--transport', 'streamable-http'], {
|
|
45
|
+
args: ['mcp', 'show', 'mercator', '--json'],
|
|
46
|
+
command: 'openclaw',
|
|
47
|
+
url,
|
|
48
|
+
}, 'openclaw mcp unset mercator');
|
|
49
|
+
case Client.Hermes:
|
|
50
|
+
return commandPlan('hermes', ['mcp', 'add', 'mercator', '--url', url], {
|
|
51
|
+
args: ['mcp', 'list'],
|
|
52
|
+
command: 'hermes',
|
|
53
|
+
serverName: 'mercator',
|
|
54
|
+
url,
|
|
55
|
+
});
|
|
56
|
+
case Client.VsCode:
|
|
57
|
+
return {
|
|
58
|
+
args: ['--add-mcp', JSON.stringify({ name: 'mercator', type: 'http', url })],
|
|
59
|
+
command: 'code',
|
|
60
|
+
kind: 'command',
|
|
61
|
+
undo: 'Remove Mercator from the MCP: Open User Configuration command.',
|
|
62
|
+
};
|
|
63
|
+
case Client.Cursor:
|
|
64
|
+
return filePlan(join(home, '.cursor', 'mcp.json'), { mcpServers });
|
|
65
|
+
case Client.Windsurf:
|
|
66
|
+
return filePlan(join(home, '.codeium', 'windsurf', 'mcp_config.json'), {
|
|
67
|
+
mcpServers: { mercator: { serverUrl: url } },
|
|
68
|
+
});
|
|
69
|
+
case Client.Cline:
|
|
70
|
+
return filePlan(join(home, '.cline', 'mcp.json'), {
|
|
71
|
+
mcpServers: { mercator: { type: 'streamableHttp', url } },
|
|
72
|
+
});
|
|
73
|
+
case Client.Continue:
|
|
74
|
+
return filePlan(join(cwd, '.continue', 'mcpServers', 'mercator.json'), {
|
|
75
|
+
mcpServers: { mercator: { type: 'streamable-http', url } },
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/** Builds a conservative removal plan that never includes wallet state. */
|
|
80
|
+
export function removalPlan(client, options = {}) {
|
|
81
|
+
const home = options.home ?? homedir();
|
|
82
|
+
switch (client) {
|
|
83
|
+
case Client.Codex:
|
|
84
|
+
return { args: ['mcp', 'remove', 'mercator'], command: 'codex', kind: 'command' };
|
|
85
|
+
case Client.Claude:
|
|
86
|
+
return {
|
|
87
|
+
args: ['mcp', 'remove', '--scope', 'user', 'mercator'],
|
|
88
|
+
command: 'claude',
|
|
89
|
+
kind: 'command',
|
|
90
|
+
};
|
|
91
|
+
case Client.Gemini:
|
|
92
|
+
return { args: ['mcp', 'remove', 'mercator'], command: 'gemini', kind: 'command' };
|
|
93
|
+
case Client.OpenClaw:
|
|
94
|
+
return { args: ['mcp', 'unset', 'mercator'], command: 'openclaw', kind: 'command' };
|
|
95
|
+
case Client.Hermes:
|
|
96
|
+
return { args: ['mcp', 'remove', 'mercator'], command: 'hermes', kind: 'command' };
|
|
97
|
+
case Client.VsCode:
|
|
98
|
+
return vscodeRemovalPlan(home, options.platform ?? process.platform);
|
|
99
|
+
case Client.Cursor:
|
|
100
|
+
case Client.Windsurf:
|
|
101
|
+
case Client.Cline:
|
|
102
|
+
case Client.Continue: {
|
|
103
|
+
const plan = setupPlan(client, '', options);
|
|
104
|
+
if (plan.kind !== 'file')
|
|
105
|
+
throw new Error(`Expected a file plan for ${client}`);
|
|
106
|
+
return { kind: 'file', path: plan.path, serverContainer: 'mcpServers' };
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
export async function configurationState(plan, runCheck = runCommandCheck) {
|
|
111
|
+
if (plan.kind === 'file')
|
|
112
|
+
return fileConfigurationState(plan);
|
|
113
|
+
if (!plan.check)
|
|
114
|
+
return 'unknown';
|
|
115
|
+
const result = await runCheck(plan.check);
|
|
116
|
+
if (result.code !== 0)
|
|
117
|
+
return 'missing';
|
|
118
|
+
if (plan.check.serverName && !result.output.includes(plan.check.serverName))
|
|
119
|
+
return 'missing';
|
|
120
|
+
return result.output.includes(plan.check.url) ? 'current' : 'different';
|
|
121
|
+
}
|
|
122
|
+
export async function installedClients(isAvailable = commandAvailable) {
|
|
123
|
+
const commands = [
|
|
124
|
+
[Client.Codex, 'codex'],
|
|
125
|
+
[Client.Claude, 'claude'],
|
|
126
|
+
[Client.Cline, 'cline'],
|
|
127
|
+
[Client.Gemini, 'gemini'],
|
|
128
|
+
[Client.Hermes, 'hermes'],
|
|
129
|
+
[Client.OpenClaw, 'openclaw'],
|
|
130
|
+
[Client.VsCode, 'code'],
|
|
131
|
+
];
|
|
132
|
+
const present = await Promise.all(commands.map(async ([client, command]) => ({
|
|
133
|
+
client,
|
|
134
|
+
present: await isAvailable(command),
|
|
135
|
+
})));
|
|
136
|
+
return present.filter(({ present }) => present).map(({ client }) => client);
|
|
137
|
+
}
|
|
138
|
+
export async function mergeConfigFile(plan) {
|
|
139
|
+
let existing = {};
|
|
140
|
+
try {
|
|
141
|
+
existing = JSON.parse(await readFile(plan.path, 'utf8'));
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
if (!isMissingFile(error))
|
|
145
|
+
throw error;
|
|
146
|
+
}
|
|
147
|
+
const merged = deepMerge(existing, plan.config);
|
|
148
|
+
await writeJsonFile(plan.path, merged);
|
|
149
|
+
}
|
|
150
|
+
/** Removes only the Mercator server entry while preserving the rest of the file. */
|
|
151
|
+
export async function removeConfigFile(plan, options = {}) {
|
|
152
|
+
let existing;
|
|
153
|
+
try {
|
|
154
|
+
existing = JSON.parse(await readFile(plan.path, 'utf8'));
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
if (isMissingFile(error))
|
|
158
|
+
return 'missing';
|
|
159
|
+
throw error;
|
|
160
|
+
}
|
|
161
|
+
const servers = existing[plan.serverContainer];
|
|
162
|
+
if (!isRecord(servers) || !Object.hasOwn(servers, 'mercator'))
|
|
163
|
+
return 'missing';
|
|
164
|
+
if (options.dryRun)
|
|
165
|
+
return 'planned';
|
|
166
|
+
const { mercator: _mercator, ...remainingServers } = servers;
|
|
167
|
+
const updated = { ...existing, [plan.serverContainer]: remainingServers };
|
|
168
|
+
await writeJsonFile(plan.path, updated);
|
|
169
|
+
return 'removed';
|
|
170
|
+
}
|
|
171
|
+
function vscodeRemovalPlan(home, platform) {
|
|
172
|
+
if (platform === 'darwin') {
|
|
173
|
+
return {
|
|
174
|
+
kind: 'file',
|
|
175
|
+
path: join(home, 'Library', 'Application Support', 'Code', 'User', 'mcp.json'),
|
|
176
|
+
serverContainer: 'servers',
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
if (platform === 'linux') {
|
|
180
|
+
return {
|
|
181
|
+
kind: 'file',
|
|
182
|
+
path: join(home, '.config', 'Code', 'User', 'mcp.json'),
|
|
183
|
+
serverContainer: 'servers',
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
if (platform === 'win32') {
|
|
187
|
+
return {
|
|
188
|
+
kind: 'file',
|
|
189
|
+
path: join(home, 'AppData', 'Roaming', 'Code', 'User', 'mcp.json'),
|
|
190
|
+
serverContainer: 'servers',
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
return {
|
|
194
|
+
instructions: 'Run “MCP: Open User Configuration” and remove the mercator server.',
|
|
195
|
+
kind: 'manual',
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
function commandPlan(command, args, check, undo = `${command} mcp remove mercator`) {
|
|
199
|
+
return {
|
|
200
|
+
args,
|
|
201
|
+
...(check ? { check } : {}),
|
|
202
|
+
command,
|
|
203
|
+
kind: 'command',
|
|
204
|
+
undo,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
async function writeJsonFile(path, value) {
|
|
208
|
+
let target = path;
|
|
209
|
+
let mode = 0o600;
|
|
210
|
+
let pathExists = false;
|
|
211
|
+
try {
|
|
212
|
+
const pathStats = await lstat(path);
|
|
213
|
+
pathExists = true;
|
|
214
|
+
if (pathStats.isSymbolicLink())
|
|
215
|
+
target = await realpath(path);
|
|
216
|
+
const targetStats = await stat(target);
|
|
217
|
+
if (!targetStats.isFile())
|
|
218
|
+
throw new Error(`Configuration path is not a file: ${path}`);
|
|
219
|
+
mode = targetStats.mode & 0o777;
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
if (!isMissingFile(error) || pathExists)
|
|
223
|
+
throw error;
|
|
224
|
+
}
|
|
225
|
+
await mkdir(dirname(target), { recursive: true });
|
|
226
|
+
const temporary = `${target}.${process.pid}.${randomUUID()}.tmp`;
|
|
227
|
+
await writeFile(temporary, `${JSON.stringify(value, null, 2)}\n`, {
|
|
228
|
+
encoding: 'utf8',
|
|
229
|
+
mode,
|
|
230
|
+
});
|
|
231
|
+
await rename(temporary, target);
|
|
232
|
+
}
|
|
233
|
+
async function fileConfigurationState(plan) {
|
|
234
|
+
let existing;
|
|
235
|
+
try {
|
|
236
|
+
existing = JSON.parse(await readFile(plan.path, 'utf8'));
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
if (isMissingFile(error))
|
|
240
|
+
return 'missing';
|
|
241
|
+
throw error;
|
|
242
|
+
}
|
|
243
|
+
const servers = existing.mcpServers;
|
|
244
|
+
if (!isRecord(servers) || !Object.hasOwn(servers, 'mercator'))
|
|
245
|
+
return 'missing';
|
|
246
|
+
return containsConfiguration(existing, plan.config) ? 'current' : 'different';
|
|
247
|
+
}
|
|
248
|
+
async function runCommandCheck(check) {
|
|
249
|
+
return runCapturedCommand(check.command, check.args, { includeStderr: true });
|
|
250
|
+
}
|
|
251
|
+
function containsConfiguration(existing, expected) {
|
|
252
|
+
return Object.entries(expected).every(([key, expectedValue]) => {
|
|
253
|
+
const existingValue = existing[key];
|
|
254
|
+
if (isRecord(expectedValue)) {
|
|
255
|
+
return (isRecord(existingValue) && containsConfiguration(existingValue, expectedValue));
|
|
256
|
+
}
|
|
257
|
+
return existingValue === expectedValue;
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
function filePlan(path, config) {
|
|
261
|
+
return {
|
|
262
|
+
config,
|
|
263
|
+
kind: 'file',
|
|
264
|
+
path,
|
|
265
|
+
undo: `Remove the mercator entry from ${path}`,
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
function deepMerge(left, right) {
|
|
269
|
+
const merged = { ...left };
|
|
270
|
+
for (const [key, value] of Object.entries(right)) {
|
|
271
|
+
const current = merged[key];
|
|
272
|
+
merged[key] = isRecord(current) && isRecord(value) ? deepMerge(current, value) : value;
|
|
273
|
+
}
|
|
274
|
+
return merged;
|
|
275
|
+
}
|
|
276
|
+
function isRecord(value) {
|
|
277
|
+
return Boolean(value && typeof value === 'object' && !Array.isArray(value));
|
|
278
|
+
}
|
|
279
|
+
function isMissingFile(error) {
|
|
280
|
+
return error instanceof Error && 'code' in error && error.code === 'ENOENT';
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=clients.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clients.js","sourceRoot":"","sources":["../src/clients.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/** Installation state for the Mercator personal-marketplace plugin. */
|
|
2
|
+
type CodexPluginInstallStatus = 'already_configured' | 'configured' | 'planned' | 'updated';
|
|
3
|
+
/** Public result of installing the local Mercator plugin for Codex desktop surfaces. */
|
|
4
|
+
export type CodexPluginInstallResult = {
|
|
5
|
+
marketplacePath: string;
|
|
6
|
+
pluginPath: string;
|
|
7
|
+
reloadRequired: boolean;
|
|
8
|
+
status: CodexPluginInstallStatus;
|
|
9
|
+
};
|
|
10
|
+
/** Diagnostic state of the CLI-managed local Mercator plugin. */
|
|
11
|
+
export type CodexPluginInspection = {
|
|
12
|
+
error?: string;
|
|
13
|
+
expectedVersion: string;
|
|
14
|
+
installedVersion?: string;
|
|
15
|
+
marketplacePath: string;
|
|
16
|
+
pluginPath: string;
|
|
17
|
+
registered: boolean;
|
|
18
|
+
reloadRequired: boolean;
|
|
19
|
+
status: 'conflict' | 'missing' | 'outdated' | 'ready';
|
|
20
|
+
};
|
|
21
|
+
/** Public result of removing the CLI-managed local Mercator plugin. */
|
|
22
|
+
export type CodexPluginRemoveResult = {
|
|
23
|
+
marketplacePath: string;
|
|
24
|
+
pluginPath: string;
|
|
25
|
+
reloadRequired: boolean;
|
|
26
|
+
status: 'missing' | 'planned' | 'removed';
|
|
27
|
+
};
|
|
28
|
+
/** User-local filesystem locations used by the Mercator desktop plugin. */
|
|
29
|
+
export type CodexPluginPaths = {
|
|
30
|
+
lockPath: string;
|
|
31
|
+
marketplacePath: string;
|
|
32
|
+
pluginPath: string;
|
|
33
|
+
};
|
|
34
|
+
type InstallCodexPluginOptions = {
|
|
35
|
+
dryRun?: boolean;
|
|
36
|
+
home?: string;
|
|
37
|
+
packageVersion?: string;
|
|
38
|
+
pluginSource?: string;
|
|
39
|
+
};
|
|
40
|
+
type CodexPluginOptions = Omit<InstallCodexPluginOptions, 'dryRun'>;
|
|
41
|
+
/** Resolves native or simulated platform paths for packaged-install verification. */
|
|
42
|
+
export declare function resolveCodexPluginPaths(home: string, platform?: NodeJS.Platform): CodexPluginPaths;
|
|
43
|
+
/** Installs Mercator into the personal marketplace without requiring the Codex CLI. */
|
|
44
|
+
export declare function installCodexPlugin(options?: InstallCodexPluginOptions): Promise<CodexPluginInstallResult>;
|
|
45
|
+
/** Inspects the installed bundle and local registration without changing either. */
|
|
46
|
+
export declare function inspectCodexPlugin(options?: CodexPluginOptions): Promise<CodexPluginInspection>;
|
|
47
|
+
/** Removes only the plugin bundle and marketplace entry owned by Mercator CLI. */
|
|
48
|
+
export declare function removeCodexPlugin(options?: {
|
|
49
|
+
dryRun?: boolean;
|
|
50
|
+
home?: string;
|
|
51
|
+
}): Promise<CodexPluginRemoveResult>;
|
|
52
|
+
export {};
|