@excitedjs/dreamux 0.1.2 → 0.1.4
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 +25 -29
- package/bin/dreamux +3 -2
- package/dist/admin/socket.js +1 -1
- package/dist/admin/socket.js.map +1 -1
- package/dist/cli/doctor.js +273 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/dreamux.js +257 -78
- package/dist/cli/dreamux.js.map +1 -1
- package/dist/cli/server-ctl.js +15 -13
- package/dist/cli/server-ctl.js.map +1 -1
- package/dist/cli/server.js +7 -7
- package/dist/codex/handshake.js +1 -1
- package/dist/codex/handshake.js.map +1 -1
- package/dist/db/repository.js +16 -0
- package/dist/db/repository.js.map +1 -1
- package/dist/dispatcher/runtime.js +8 -1
- package/dist/dispatcher/runtime.js.map +1 -1
- package/dist/feishu/bot.js +3 -3
- package/dist/feishu/bot.js.map +1 -1
- package/dist/onboard/commands.js +34 -0
- package/dist/onboard/commands.js.map +1 -0
- package/dist/onboard/config-files.js +113 -0
- package/dist/onboard/config-files.js.map +1 -0
- package/dist/onboard/ledger.js +113 -0
- package/dist/onboard/ledger.js.map +1 -0
- package/dist/onboard/plugins.js +202 -0
- package/dist/onboard/plugins.js.map +1 -0
- package/dist/onboard/run.js +150 -0
- package/dist/onboard/run.js.map +1 -0
- package/dist/onboard/service.js +138 -0
- package/dist/onboard/service.js.map +1 -0
- package/dist/onboard/types.js +2 -0
- package/dist/onboard/types.js.map +1 -0
- package/dist/onboard/wizard.js +149 -0
- package/dist/onboard/wizard.js.map +1 -0
- package/dist/runtime/config.js +14 -2
- package/dist/runtime/config.js.map +1 -1
- package/dist/runtime/dispatcher-codex-home.js +266 -0
- package/dist/runtime/dispatcher-codex-home.js.map +1 -0
- package/dist/runtime/paths.js +17 -2
- package/dist/runtime/paths.js.map +1 -1
- package/dist/server.js +1 -0
- package/dist/server.js.map +1 -1
- package/package.json +17 -15
- package/bin/server +0 -35
- package/bin/server-ctl +0 -28
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/dispatcher/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,OAAO,EAAE,YAAY,EAA4B,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAKnE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/dispatcher/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/feishu/bot.js
CHANGED
|
@@ -115,12 +115,12 @@ function normalizeInboundEvent(raw) {
|
|
|
115
115
|
raw,
|
|
116
116
|
};
|
|
117
117
|
}
|
|
118
|
-
export function createFakeFeishuBot(appId = '
|
|
118
|
+
export function createFakeFeishuBot(appId = 'fake-bot') {
|
|
119
119
|
const sent = [];
|
|
120
120
|
let handler = null;
|
|
121
121
|
let nextMessageId = 1;
|
|
122
122
|
let sendError = null;
|
|
123
|
-
const openId = `
|
|
123
|
+
const openId = `fake-open-id-${appId}`;
|
|
124
124
|
return {
|
|
125
125
|
appId,
|
|
126
126
|
get botOpenId() {
|
|
@@ -133,7 +133,7 @@ export function createFakeFeishuBot(appId = 'fake_bot') {
|
|
|
133
133
|
if (sendError !== null) {
|
|
134
134
|
throw sendError;
|
|
135
135
|
}
|
|
136
|
-
const id = `
|
|
136
|
+
const id = `message-fake-${nextMessageId++}`;
|
|
137
137
|
sent.push({ chatId: target.chatId, target, text, messageIds: [id] });
|
|
138
138
|
return { messageIds: [id] };
|
|
139
139
|
},
|
package/dist/feishu/bot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot.js","sourceRoot":"","sources":["../../src/feishu/bot.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bot.js","sourceRoot":"","sources":["../../src/feishu/bot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { execa } from 'execa';
|
|
2
|
+
export class ExecaCommandRunner {
|
|
3
|
+
async run(command, args, options = {}) {
|
|
4
|
+
if (options.dryRun)
|
|
5
|
+
return;
|
|
6
|
+
await execa(command, args, {
|
|
7
|
+
cwd: options.cwd,
|
|
8
|
+
env: options.env,
|
|
9
|
+
stdio: 'inherit',
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
async check(command, args, options = {}) {
|
|
13
|
+
if (options.dryRun)
|
|
14
|
+
return false;
|
|
15
|
+
const result = await execa(command, args, {
|
|
16
|
+
cwd: options.cwd,
|
|
17
|
+
env: options.env,
|
|
18
|
+
reject: false,
|
|
19
|
+
stdout: 'ignore',
|
|
20
|
+
stderr: 'ignore',
|
|
21
|
+
});
|
|
22
|
+
return result.exitCode === 0;
|
|
23
|
+
}
|
|
24
|
+
async capture(command, args, options = {}) {
|
|
25
|
+
if (options.dryRun)
|
|
26
|
+
return '';
|
|
27
|
+
const result = await execa(command, args, {
|
|
28
|
+
cwd: options.cwd,
|
|
29
|
+
env: options.env,
|
|
30
|
+
});
|
|
31
|
+
return result.stdout;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/onboard/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAI9B,MAAM,OAAO,kBAAkB;IAC7B,KAAK,CAAC,GAAG,CACP,OAAe,EACf,IAAc,EACd,UAII,EAAE;QAEN,IAAI,OAAO,CAAC,MAAM;YAAE,OAAO;QAC3B,MAAM,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YACzB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CACT,OAAe,EACf,IAAc,EACd,UAII,EAAE;QAEN,IAAI,OAAO,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YACxC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,OAAO,CACX,OAAe,EACf,IAAc,EACd,UAII,EAAE;QAEN,IAAI,OAAO,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YACxC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { parse as parseToml, stringify as stringifyToml } from 'smol-toml';
|
|
3
|
+
import { BUILT_IN_DEFAULTS } from '../runtime/config.js';
|
|
4
|
+
export const DISPATCHER_PERMISSION_PROFILE = 'dreamux-dispatcher';
|
|
5
|
+
export function buildDreamuxConfigToml(answers) {
|
|
6
|
+
return stringifyToml({
|
|
7
|
+
runtime_dir: answers.runtimeDir,
|
|
8
|
+
admin_socket: null,
|
|
9
|
+
codex: {
|
|
10
|
+
bin: answers.codexBin,
|
|
11
|
+
approval_policy: 'never',
|
|
12
|
+
sandbox_mode: 'workspace-write',
|
|
13
|
+
extra_args: [],
|
|
14
|
+
initialize_timeout_ms: BUILT_IN_DEFAULTS.codex.initialize_timeout_ms,
|
|
15
|
+
},
|
|
16
|
+
outbound: {
|
|
17
|
+
retries: BUILT_IN_DEFAULTS.outbound.retries,
|
|
18
|
+
retry_delay_ms: BUILT_IN_DEFAULTS.outbound.retry_delay_ms,
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
export function dreamuxConfigFromAnswers(answers) {
|
|
23
|
+
return {
|
|
24
|
+
runtime_dir: answers.runtimeDir,
|
|
25
|
+
admin_socket: null,
|
|
26
|
+
codex: {
|
|
27
|
+
bin: answers.codexBin,
|
|
28
|
+
approval_policy: 'never',
|
|
29
|
+
sandbox_mode: 'workspace-write',
|
|
30
|
+
extra_args: [],
|
|
31
|
+
initialize_timeout_ms: BUILT_IN_DEFAULTS.codex.initialize_timeout_ms,
|
|
32
|
+
},
|
|
33
|
+
outbound: {
|
|
34
|
+
retries: BUILT_IN_DEFAULTS.outbound.retries,
|
|
35
|
+
retry_delay_ms: BUILT_IN_DEFAULTS.outbound.retry_delay_ms,
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export function buildDispatcherCodexConfigToml(options) {
|
|
40
|
+
const existing = readExistingTomlObject(options.codexHomeConfigPath);
|
|
41
|
+
const pluginKey = pluginConfigKey(options.pluginRef, options.marketplaceName);
|
|
42
|
+
const marketplaces = objectValue(existing['marketplaces']);
|
|
43
|
+
const marketplace = objectValue(marketplaces[options.marketplaceName]);
|
|
44
|
+
const plugins = objectValue(existing['plugins']);
|
|
45
|
+
const plugin = objectValue(plugins[pluginKey]);
|
|
46
|
+
return stringifyToml({
|
|
47
|
+
...existing,
|
|
48
|
+
model: options.model,
|
|
49
|
+
approval_policy: 'never',
|
|
50
|
+
sandbox_mode: 'workspace-write',
|
|
51
|
+
default_permissions: DISPATCHER_PERMISSION_PROFILE,
|
|
52
|
+
sandbox_workspace_write: {
|
|
53
|
+
...objectValue(existing['sandbox_workspace_write']),
|
|
54
|
+
network_access: true,
|
|
55
|
+
},
|
|
56
|
+
permissions: {
|
|
57
|
+
...objectValue(existing['permissions']),
|
|
58
|
+
[DISPATCHER_PERMISSION_PROFILE]: {
|
|
59
|
+
...objectValue(objectValue(existing['permissions'])[DISPATCHER_PERMISSION_PROFILE]),
|
|
60
|
+
network: { enabled: true },
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
marketplaces: {
|
|
64
|
+
...marketplaces,
|
|
65
|
+
[options.marketplaceName]: {
|
|
66
|
+
...marketplace,
|
|
67
|
+
source: options.marketplaceSource,
|
|
68
|
+
source_type: marketplace['source_type'] ?? inferMarketplaceSourceType(options.marketplaceSource),
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
plugins: {
|
|
72
|
+
...plugins,
|
|
73
|
+
[pluginKey]: {
|
|
74
|
+
...plugin,
|
|
75
|
+
enabled: true,
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
export function dispatcherCodexArgsJson() {
|
|
81
|
+
return JSON.stringify({
|
|
82
|
+
approvalPolicy: 'never',
|
|
83
|
+
sandboxMode: 'workspace-write',
|
|
84
|
+
extraArgs: [],
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
function readExistingTomlObject(path) {
|
|
88
|
+
if (!existsSync(path))
|
|
89
|
+
return {};
|
|
90
|
+
const parsed = parseToml(readFileSync(path, 'utf8'));
|
|
91
|
+
return objectValue(parsed);
|
|
92
|
+
}
|
|
93
|
+
function objectValue(value) {
|
|
94
|
+
if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
|
|
95
|
+
return value;
|
|
96
|
+
}
|
|
97
|
+
return {};
|
|
98
|
+
}
|
|
99
|
+
function pluginConfigKey(pluginRef, marketplaceName) {
|
|
100
|
+
if (pluginRef.includes('@'))
|
|
101
|
+
return pluginRef;
|
|
102
|
+
return `${pluginRef}@${marketplaceName}`;
|
|
103
|
+
}
|
|
104
|
+
function inferMarketplaceSourceType(source) {
|
|
105
|
+
if (source.startsWith('http://') || source.startsWith('https://')) {
|
|
106
|
+
return 'git';
|
|
107
|
+
}
|
|
108
|
+
if (source.includes('/') && !source.startsWith('.') && !source.startsWith('/')) {
|
|
109
|
+
return 'github';
|
|
110
|
+
}
|
|
111
|
+
return 'local';
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=config-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-files.js","sourceRoot":"","sources":["../../src/onboard/config-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, readdirSync, statSync, writeFileSync, } from 'node:fs';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
export class TransparentFileLedger {
|
|
4
|
+
seen = new Map();
|
|
5
|
+
entries() {
|
|
6
|
+
return Array.from(this.seen.values()).sort((a, b) => a.path.localeCompare(b.path));
|
|
7
|
+
}
|
|
8
|
+
record(path, status, reason) {
|
|
9
|
+
const existing = this.seen.get(path);
|
|
10
|
+
if (existing === undefined) {
|
|
11
|
+
this.seen.set(path, { path, status, reason });
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
this.seen.set(path, {
|
|
15
|
+
path,
|
|
16
|
+
status: mergeStatus(existing.status, status),
|
|
17
|
+
reason: existing.reason === reason ? reason : `${existing.reason}; ${reason}`,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export function ensureDirectory(path, ledger, reason, options = {}) {
|
|
22
|
+
if (existsSync(path)) {
|
|
23
|
+
if (!statSync(path).isDirectory()) {
|
|
24
|
+
throw new Error(`expected directory but found a file: ${path}`);
|
|
25
|
+
}
|
|
26
|
+
ledger.record(path, 'unchanged', reason);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (!options.dryRun) {
|
|
30
|
+
mkdirSync(path, { recursive: true });
|
|
31
|
+
}
|
|
32
|
+
ledger.record(path, 'created', reason);
|
|
33
|
+
}
|
|
34
|
+
export function writeTextFile(path, content, ledger, reason, options = {}) {
|
|
35
|
+
const parent = dirname(path);
|
|
36
|
+
ensureDirectory(parent, ledger, `parent directory for ${reason}`, {
|
|
37
|
+
dryRun: options.dryRun,
|
|
38
|
+
});
|
|
39
|
+
let status;
|
|
40
|
+
if (!existsSync(path)) {
|
|
41
|
+
status = 'created';
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
const current = readFileSync(path, 'utf8');
|
|
45
|
+
status = current === content ? 'unchanged' : 'modified';
|
|
46
|
+
}
|
|
47
|
+
if (!options.dryRun && status !== 'unchanged') {
|
|
48
|
+
writeFileSync(path, content, {
|
|
49
|
+
mode: options.mode,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
ledger.record(path, status, reason);
|
|
53
|
+
return status;
|
|
54
|
+
}
|
|
55
|
+
export function ensureTextFile(path, initialContent, ledger, reason, options = {}) {
|
|
56
|
+
const parent = dirname(path);
|
|
57
|
+
ensureDirectory(parent, ledger, `parent directory for ${reason}`, {
|
|
58
|
+
dryRun: options.dryRun,
|
|
59
|
+
});
|
|
60
|
+
if (existsSync(path)) {
|
|
61
|
+
ledger.record(path, 'unchanged', reason);
|
|
62
|
+
return 'unchanged';
|
|
63
|
+
}
|
|
64
|
+
if (!options.dryRun) {
|
|
65
|
+
writeFileSync(path, initialContent, {
|
|
66
|
+
mode: options.mode,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
ledger.record(path, 'created', reason);
|
|
70
|
+
return 'created';
|
|
71
|
+
}
|
|
72
|
+
export function snapshotFiles(root) {
|
|
73
|
+
const out = new Map();
|
|
74
|
+
if (!existsSync(root))
|
|
75
|
+
return out;
|
|
76
|
+
const stack = [root];
|
|
77
|
+
while (stack.length > 0) {
|
|
78
|
+
const current = stack.pop();
|
|
79
|
+
if (current === undefined)
|
|
80
|
+
continue;
|
|
81
|
+
const stat = statSync(current);
|
|
82
|
+
if (stat.isFile()) {
|
|
83
|
+
out.set(current, readFileSync(current));
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (!stat.isDirectory())
|
|
87
|
+
continue;
|
|
88
|
+
for (const entry of readdirSync(current)) {
|
|
89
|
+
stack.push(join(current, entry));
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return out;
|
|
93
|
+
}
|
|
94
|
+
export function recordFileTreeChanges(root, before, ledger, reason) {
|
|
95
|
+
const after = snapshotFiles(root);
|
|
96
|
+
for (const [path, content] of after) {
|
|
97
|
+
const previous = before.get(path);
|
|
98
|
+
const status = previous === undefined
|
|
99
|
+
? 'created'
|
|
100
|
+
: Buffer.compare(previous, content) === 0
|
|
101
|
+
? 'unchanged'
|
|
102
|
+
: 'modified';
|
|
103
|
+
ledger.record(path, status, reason);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function mergeStatus(a, b) {
|
|
107
|
+
if (a === 'created' || b === 'created')
|
|
108
|
+
return 'created';
|
|
109
|
+
if (a === 'modified' || b === 'modified')
|
|
110
|
+
return 'modified';
|
|
111
|
+
return 'unchanged';
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=ledger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/onboard/ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { existsSync, readFileSync, readdirSync, statSync, } from 'node:fs';
|
|
2
|
+
import { basename, join } from 'node:path';
|
|
3
|
+
import { parse as parseToml } from 'smol-toml';
|
|
4
|
+
import { ensureDirectory, recordFileTreeChanges, snapshotFiles, } from './ledger.js';
|
|
5
|
+
export async function installCodexmuxPlugin(options) {
|
|
6
|
+
ensureDirectory(options.codexHome, options.ledger, 'dispatcher CODEX_HOME', {
|
|
7
|
+
dryRun: options.answers.dryRun,
|
|
8
|
+
});
|
|
9
|
+
const before = snapshotFiles(options.codexHome);
|
|
10
|
+
const env = { ...process.env, CODEX_HOME: options.codexHome };
|
|
11
|
+
if (!codexMarketplaceConfigured(options)) {
|
|
12
|
+
await options.runner.run(options.answers.codexBin, [
|
|
13
|
+
'plugin',
|
|
14
|
+
'marketplace',
|
|
15
|
+
'add',
|
|
16
|
+
options.answers.codexMarketplaceSource,
|
|
17
|
+
...sparseArgs(options.answers.codexMarketplaceSparse),
|
|
18
|
+
], {
|
|
19
|
+
env,
|
|
20
|
+
dryRun: options.answers.dryRun,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
if (!codexPluginInstalled(options.codexHome, options.answers.codexPluginRef)) {
|
|
24
|
+
await options.runner.run(options.answers.codexBin, ['plugin', 'add', options.answers.codexPluginRef], {
|
|
25
|
+
env,
|
|
26
|
+
dryRun: options.answers.dryRun,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
recordFileTreeChanges(options.codexHome, before, options.ledger, 'codex plugin install');
|
|
30
|
+
if (!options.answers.dryRun &&
|
|
31
|
+
!codexPluginInstalled(options.codexHome, options.answers.codexPluginRef)) {
|
|
32
|
+
throw new Error(`codex plugin install did not produce ${pluginName(options.answers.codexPluginRef)} under ${join(options.codexHome, 'plugins')}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export async function installClaudemuxPlugin(options) {
|
|
36
|
+
ensureDirectory(options.answers.claudeConfigDir, options.ledger, 'Claude config directory', { dryRun: options.answers.dryRun });
|
|
37
|
+
const before = snapshotFiles(options.answers.claudeConfigDir);
|
|
38
|
+
const env = {
|
|
39
|
+
...process.env,
|
|
40
|
+
CLAUDE_CONFIG_DIR: options.answers.claudeConfigDir,
|
|
41
|
+
};
|
|
42
|
+
const installedBefore = await claudePluginInstalled(options, env);
|
|
43
|
+
if (!installedBefore) {
|
|
44
|
+
if (!claudeMarketplaceConfigured(options.answers)) {
|
|
45
|
+
await options.runner.run(options.answers.claudeBin, [
|
|
46
|
+
'plugin',
|
|
47
|
+
'marketplace',
|
|
48
|
+
'add',
|
|
49
|
+
options.answers.claudeMarketplaceSource,
|
|
50
|
+
...sparseArgs(options.answers.claudeMarketplaceSparse),
|
|
51
|
+
'--scope',
|
|
52
|
+
'user',
|
|
53
|
+
], { env, dryRun: options.answers.dryRun });
|
|
54
|
+
}
|
|
55
|
+
await options.runner.run(options.answers.claudeBin, ['plugin', 'install', options.answers.claudePluginRef, '--scope', 'user'], { env, dryRun: options.answers.dryRun });
|
|
56
|
+
}
|
|
57
|
+
recordFileTreeChanges(options.answers.claudeConfigDir, before, options.ledger, 'claude plugin install');
|
|
58
|
+
if (!options.answers.dryRun && !(await claudePluginInstalled(options, env))) {
|
|
59
|
+
throw new Error(`claude plugin install did not report ${options.answers.claudePluginRef} in claude plugin list --json`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function sparseArgs(paths) {
|
|
63
|
+
return paths.flatMap((path) => ['--sparse', path]);
|
|
64
|
+
}
|
|
65
|
+
function codexMarketplaceConfigured(options) {
|
|
66
|
+
const configPath = join(options.codexHome, 'config.toml');
|
|
67
|
+
if (!existsSync(configPath))
|
|
68
|
+
return false;
|
|
69
|
+
try {
|
|
70
|
+
const parsed = parseToml(readFileSync(configPath, 'utf8'));
|
|
71
|
+
const marketplaces = recordValue(recordValue(parsed)['marketplaces']);
|
|
72
|
+
const marketplace = recordValue(marketplaces[options.answers.codexMarketplaceName]);
|
|
73
|
+
return marketplace['source'] === options.answers.codexMarketplaceSource;
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function codexPluginInstalled(codexHome, ref) {
|
|
80
|
+
return hasPathSegment(join(codexHome, 'plugins'), pluginName(ref), 6);
|
|
81
|
+
}
|
|
82
|
+
function claudeMarketplaceConfigured(answers) {
|
|
83
|
+
return (claudeSettingsHasMarketplace(answers) ||
|
|
84
|
+
claudeKnownMarketplacesHasMarketplace(answers));
|
|
85
|
+
}
|
|
86
|
+
function claudeSettingsHasMarketplace(answers) {
|
|
87
|
+
const settingsPath = join(answers.claudeConfigDir, 'settings.json');
|
|
88
|
+
const parsed = readJsonObject(settingsPath);
|
|
89
|
+
if (parsed === null)
|
|
90
|
+
return false;
|
|
91
|
+
const marketplaces = recordValue(parsed['extraKnownMarketplaces']);
|
|
92
|
+
const marketplace = recordValue(marketplaces[answers.claudeMarketplaceName]);
|
|
93
|
+
return claudeMarketplaceSourceMatches(marketplace, answers);
|
|
94
|
+
}
|
|
95
|
+
function claudeKnownMarketplacesHasMarketplace(answers) {
|
|
96
|
+
const knownPath = join(answers.claudeConfigDir, 'plugins', 'known_marketplaces.json');
|
|
97
|
+
const parsed = readJsonObject(knownPath);
|
|
98
|
+
if (parsed === null)
|
|
99
|
+
return false;
|
|
100
|
+
const marketplace = recordValue(parsed[answers.claudeMarketplaceName]);
|
|
101
|
+
return claudeMarketplaceSourceMatches(marketplace, answers);
|
|
102
|
+
}
|
|
103
|
+
function claudeMarketplaceSourceMatches(marketplace, answers) {
|
|
104
|
+
if (Object.keys(marketplace).length === 0)
|
|
105
|
+
return false;
|
|
106
|
+
const source = recordValue(marketplace['source']);
|
|
107
|
+
const directSource = stringValue(marketplace['source']);
|
|
108
|
+
if (directSource === answers.claudeMarketplaceSource)
|
|
109
|
+
return true;
|
|
110
|
+
const repo = stringValue(source['repo']);
|
|
111
|
+
if (repo === answers.claudeMarketplaceSource)
|
|
112
|
+
return true;
|
|
113
|
+
const path = stringValue(source['path']);
|
|
114
|
+
if (path === answers.claudeMarketplaceSource)
|
|
115
|
+
return true;
|
|
116
|
+
const url = stringValue(source['url']);
|
|
117
|
+
if (url === answers.claudeMarketplaceSource)
|
|
118
|
+
return true;
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
async function claudePluginInstalled(options, env) {
|
|
122
|
+
if (options.answers.dryRun)
|
|
123
|
+
return false;
|
|
124
|
+
let raw;
|
|
125
|
+
try {
|
|
126
|
+
raw = await options.runner.capture(options.answers.claudeBin, ['plugin', 'list', '--json'], { env });
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
let parsed;
|
|
132
|
+
try {
|
|
133
|
+
parsed = JSON.parse(raw);
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
if (!Array.isArray(parsed))
|
|
139
|
+
return false;
|
|
140
|
+
const expected = pluginName(options.answers.claudePluginRef);
|
|
141
|
+
const expectedRef = options.answers.claudePluginRef;
|
|
142
|
+
return parsed.some((item) => {
|
|
143
|
+
const record = recordValue(item);
|
|
144
|
+
return [record['name'], record['id'], record['plugin'], record['ref']].some((value) => value === expected || value === expectedRef);
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
function pluginName(ref) {
|
|
148
|
+
return ref.split('@')[0] ?? ref;
|
|
149
|
+
}
|
|
150
|
+
function hasPathSegment(root, segment, maxDepth) {
|
|
151
|
+
if (!existsSync(root))
|
|
152
|
+
return false;
|
|
153
|
+
const stack = [{ path: root, depth: 0 }];
|
|
154
|
+
while (stack.length > 0) {
|
|
155
|
+
const current = stack.pop();
|
|
156
|
+
if (current === undefined)
|
|
157
|
+
continue;
|
|
158
|
+
if (basename(current.path) === segment)
|
|
159
|
+
return true;
|
|
160
|
+
if (current.depth >= maxDepth)
|
|
161
|
+
continue;
|
|
162
|
+
let entries;
|
|
163
|
+
try {
|
|
164
|
+
entries = readdirSync(current.path);
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
for (const entry of entries) {
|
|
170
|
+
const child = join(current.path, entry);
|
|
171
|
+
try {
|
|
172
|
+
if (statSync(child).isDirectory()) {
|
|
173
|
+
stack.push({ path: child, depth: current.depth + 1 });
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
/* ignore transient filesystem races */
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
function recordValue(value) {
|
|
184
|
+
if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
|
|
185
|
+
return value;
|
|
186
|
+
}
|
|
187
|
+
return {};
|
|
188
|
+
}
|
|
189
|
+
function stringValue(value) {
|
|
190
|
+
return typeof value === 'string' ? value : null;
|
|
191
|
+
}
|
|
192
|
+
function readJsonObject(path) {
|
|
193
|
+
if (!existsSync(path))
|
|
194
|
+
return null;
|
|
195
|
+
try {
|
|
196
|
+
return recordValue(JSON.parse(readFileSync(path, 'utf8')));
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
return null;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=plugins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/onboard/plugins.ts"],"names":[],"mappings":"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"}
|