poe-code 2.0.3 → 2.0.5
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 +17 -30
- package/dist/cli/command-runner.d.ts +1 -1
- package/dist/cli/commands/configure.d.ts +0 -2
- package/dist/cli/commands/configure.js +99 -34
- package/dist/cli/commands/configure.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +4 -0
- package/dist/cli/commands/doctor.js +73 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/remove.d.ts +1 -0
- package/dist/cli/commands/remove.js +41 -28
- package/dist/cli/commands/remove.js.map +1 -1
- package/dist/cli/commands/shared.d.ts +9 -12
- package/dist/cli/commands/shared.js +26 -24
- package/dist/cli/commands/shared.js.map +1 -1
- package/dist/cli/commands/spawn.d.ts +1 -0
- package/dist/cli/commands/spawn.js +14 -5
- package/dist/cli/commands/spawn.js.map +1 -1
- package/dist/cli/commands/test.d.ts +4 -0
- package/dist/cli/commands/test.js +36 -0
- package/dist/cli/commands/test.js.map +1 -0
- package/dist/cli/constants.d.ts +12 -9
- package/dist/cli/constants.js +15 -9
- package/dist/cli/constants.js.map +1 -1
- package/dist/cli/container.d.ts +3 -3
- package/dist/cli/context.d.ts +4 -13
- package/dist/cli/context.js +19 -149
- package/dist/cli/context.js.map +1 -1
- package/dist/cli/error-logger.js +1 -1
- package/dist/cli/error-logger.js.map +1 -1
- package/dist/cli/errors.d.ts +0 -10
- package/dist/cli/errors.js +0 -12
- package/dist/cli/errors.js.map +1 -1
- package/dist/cli/logger.js +9 -11
- package/dist/cli/logger.js.map +1 -1
- package/dist/cli/options.d.ts +13 -4
- package/dist/cli/options.js +12 -11
- package/dist/cli/options.js.map +1 -1
- package/dist/cli/program.js +5 -2
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/prompts.d.ts +14 -4
- package/dist/cli/prompts.js +12 -24
- package/dist/cli/prompts.js.map +1 -1
- package/dist/cli/service-registry.d.ts +37 -15
- package/dist/cli/service-registry.js.map +1 -1
- package/dist/cli/telemetry.d.ts +1 -1
- package/dist/cli/ui/service-menu.d.ts +2 -2
- package/dist/cli/ui/theme.js +6 -6
- package/dist/cli/ui/theme.js.map +1 -1
- package/dist/providers/claude-code.d.ts +10 -46
- package/dist/providers/claude-code.js +94 -224
- package/dist/providers/claude-code.js.map +1 -1
- package/dist/providers/codex.d.ts +14 -40
- package/dist/providers/codex.js +74 -177
- package/dist/providers/codex.js.map +1 -1
- package/dist/providers/create-provider.d.ts +26 -0
- package/dist/providers/create-provider.js +120 -0
- package/dist/providers/create-provider.js.map +1 -0
- package/dist/providers/index.d.ts +2 -2
- package/dist/providers/index.js +4 -10
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/opencode.d.ts +3 -43
- package/dist/providers/opencode.js +112 -173
- package/dist/providers/opencode.js.map +1 -1
- package/dist/providers/provider-helpers.d.ts +10 -0
- package/dist/providers/provider-helpers.js +62 -0
- package/dist/providers/provider-helpers.js.map +1 -0
- package/dist/providers/versioned-provider.d.ts +3 -0
- package/dist/providers/versioned-provider.js +9 -0
- package/dist/providers/versioned-provider.js.map +1 -0
- package/dist/services/credentials.d.ts +14 -0
- package/dist/services/credentials.js +123 -22
- package/dist/services/credentials.js.map +1 -1
- package/dist/services/model-strategy.d.ts +1 -1
- package/dist/services/model-strategy.js +20 -15
- package/dist/services/model-strategy.js.map +1 -1
- package/dist/services/mutation-events.d.ts +4 -0
- package/dist/services/mutation-events.js +56 -0
- package/dist/services/mutation-events.js.map +1 -0
- package/dist/services/service-install.d.ts +3 -4
- package/dist/services/service-install.js +30 -12
- package/dist/services/service-install.js.map +1 -1
- package/dist/services/service-manifest.d.ts +49 -21
- package/dist/services/service-manifest.js +261 -64
- package/dist/services/service-manifest.js.map +1 -1
- package/dist/tools/label-generator.d.ts +2 -2
- package/dist/tools/label-generator.js +1 -1
- package/dist/tools/label-generator.js.map +1 -1
- package/dist/utils/binary-version.d.ts +6 -0
- package/dist/utils/binary-version.js +35 -0
- package/dist/utils/binary-version.js.map +1 -0
- package/dist/utils/command-checks.d.ts +39 -0
- package/dist/utils/command-checks.js +116 -0
- package/dist/utils/command-checks.js.map +1 -0
- package/package.json +6 -8
- package/dist/providers/roo-code.d.ts +0 -41
- package/dist/providers/roo-code.js +0 -201
- package/dist/providers/roo-code.js.map +0 -1
- package/dist/utils/prerequisites.d.ts +0 -41
- package/dist/utils/prerequisites.js +0 -92
- package/dist/utils/prerequisites.js.map +0 -1
package/dist/providers/codex.js
CHANGED
|
@@ -1,100 +1,22 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import { createBackupMutation, ensureDirectory,
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { createBinaryExistsCheck, createCommandExpectationCheck } from "../utils/command-checks.js";
|
|
2
|
+
import { isTomlTable } from "../utils/toml.js";
|
|
3
|
+
import { createBackupMutation, ensureDirectory, tomlTemplateMergeMutation, tomlPruneMutation } from "../services/service-manifest.js";
|
|
4
|
+
import { createProvider } from "./create-provider.js";
|
|
5
|
+
import { createBinaryVersionResolver } from "./versioned-provider.js";
|
|
6
|
+
import { CODEX_MODELS, DEFAULT_CODEX_MODEL, DEFAULT_REASONING } from "../cli/constants.js";
|
|
7
7
|
const CODEX_PROVIDER_ID = "poe";
|
|
8
8
|
const CODEX_BASE_URL = "https://api.poe.com/v1";
|
|
9
9
|
const CODEX_TOP_LEVEL_FIELDS = [
|
|
10
10
|
"model",
|
|
11
11
|
"model_reasoning_effort"
|
|
12
12
|
];
|
|
13
|
-
const
|
|
14
|
-
const CODEX_MANIFEST = {
|
|
15
|
-
id: "codex",
|
|
16
|
-
summary: "Configure Codex to use Poe as the model provider.",
|
|
17
|
-
prerequisites: {
|
|
18
|
-
after: ["codex-cli-health"]
|
|
19
|
-
},
|
|
20
|
-
configure: [
|
|
21
|
-
ensureDirectory({
|
|
22
|
-
path: ({ options }) => path.dirname(options.configPath),
|
|
23
|
-
label: "Ensure Codex config directory"
|
|
24
|
-
}),
|
|
25
|
-
createBackupMutation({
|
|
26
|
-
target: ({ options }) => options.configPath,
|
|
27
|
-
timestamp: ({ options }) => options.timestamp,
|
|
28
|
-
label: "Create Codex config backup"
|
|
29
|
-
}),
|
|
30
|
-
{
|
|
31
|
-
kind: "transformFile",
|
|
32
|
-
target: ({ options }) => options.configPath,
|
|
33
|
-
label: "Merge Codex configuration",
|
|
34
|
-
async transform({ content, context }) {
|
|
35
|
-
let document;
|
|
36
|
-
if (content == null) {
|
|
37
|
-
document = {};
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
try {
|
|
41
|
-
document = parseTomlDocument(content);
|
|
42
|
-
}
|
|
43
|
-
catch {
|
|
44
|
-
document = {};
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
const rendered = await renderTemplate(CODEX_CONFIG_TEMPLATE_ID, { ...context.options });
|
|
48
|
-
const templateDocument = parseTomlDocument(rendered);
|
|
49
|
-
const nextTable = mergeTomlTables(document, templateDocument);
|
|
50
|
-
const nextContent = serializeTomlDocument(nextTable);
|
|
51
|
-
return {
|
|
52
|
-
content: nextContent,
|
|
53
|
-
changed: nextContent !== (content ?? "")
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
],
|
|
58
|
-
remove: [
|
|
59
|
-
{
|
|
60
|
-
kind: "transformFile",
|
|
61
|
-
target: ({ options }) => options.configPath,
|
|
62
|
-
label: "Remove Codex managed configuration",
|
|
63
|
-
transform({ content }) {
|
|
64
|
-
if (content == null) {
|
|
65
|
-
return { content: null, changed: false };
|
|
66
|
-
}
|
|
67
|
-
let document;
|
|
68
|
-
try {
|
|
69
|
-
document = parseTomlDocument(content);
|
|
70
|
-
}
|
|
71
|
-
catch {
|
|
72
|
-
return { content, changed: false };
|
|
73
|
-
}
|
|
74
|
-
const result = stripCodexConfiguration(document);
|
|
75
|
-
if (!result.changed) {
|
|
76
|
-
return { content, changed: false };
|
|
77
|
-
}
|
|
78
|
-
if (result.empty) {
|
|
79
|
-
return { content: null, changed: true };
|
|
80
|
-
}
|
|
81
|
-
const nextContent = serializeTomlDocument(document);
|
|
82
|
-
return {
|
|
83
|
-
content: nextContent,
|
|
84
|
-
changed: nextContent !== content
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
]
|
|
89
|
-
};
|
|
90
|
-
const CODEX_INSTALL_DEFINITION = {
|
|
13
|
+
export const CODEX_INSTALL_DEFINITION = {
|
|
91
14
|
id: "codex",
|
|
92
15
|
summary: "Codex CLI",
|
|
93
|
-
check:
|
|
16
|
+
check: createBinaryExistsCheck("codex", "codex-cli-binary", "Codex CLI binary must exist"),
|
|
94
17
|
steps: [
|
|
95
18
|
{
|
|
96
19
|
id: "install-codex-cli-npm",
|
|
97
|
-
description: "Install Codex CLI via npm",
|
|
98
20
|
command: "npm",
|
|
99
21
|
args: ["install", "-g", "@openai/codex"]
|
|
100
22
|
}
|
|
@@ -160,39 +82,14 @@ function matchesExpectedProviderConfig(table) {
|
|
|
160
82
|
function isTableEmpty(value) {
|
|
161
83
|
return isTomlTable(value) && Object.keys(value).length === 0;
|
|
162
84
|
}
|
|
163
|
-
export async function configureCodex(options, runOptions) {
|
|
164
|
-
await runServiceConfigure(CODEX_MANIFEST, {
|
|
165
|
-
fs: options.fs,
|
|
166
|
-
options
|
|
167
|
-
}, runOptions);
|
|
168
|
-
}
|
|
169
85
|
const CODEX_DEFAULT_EXEC_ARGS = ["--full-auto"];
|
|
170
|
-
export function buildCodexExecArgs(prompt, extraArgs = []) {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
export async function spawnCodex(options) {
|
|
174
|
-
const args = buildCodexExecArgs(options.prompt, options.args);
|
|
175
|
-
return options.runCommand("codex", args);
|
|
176
|
-
}
|
|
177
|
-
export async function removeCodex(options, runOptions) {
|
|
178
|
-
return runServiceRemove(CODEX_MANIFEST, {
|
|
179
|
-
fs: options.fs,
|
|
180
|
-
options
|
|
181
|
-
}, runOptions);
|
|
182
|
-
}
|
|
183
|
-
export async function installCodex(context) {
|
|
184
|
-
return runServiceInstall(CODEX_INSTALL_DEFINITION, context);
|
|
185
|
-
}
|
|
186
|
-
export function registerCodexPrerequisites(prerequisites) {
|
|
187
|
-
prerequisites.registerAfter(createCodexCliHealthCheck());
|
|
188
|
-
}
|
|
189
|
-
function createCodexBinaryCheck() {
|
|
190
|
-
return createBinaryExistsCheck("codex", "codex-cli-binary", "Codex CLI binary must exist");
|
|
86
|
+
export function buildCodexExecArgs(prompt, extraArgs = [], model) {
|
|
87
|
+
const modelArgs = model ? ["--model", model] : [];
|
|
88
|
+
return [...modelArgs, "exec", prompt, ...CODEX_DEFAULT_EXEC_ARGS, ...extraArgs];
|
|
191
89
|
}
|
|
192
90
|
function createCodexVersionCheck() {
|
|
193
91
|
return {
|
|
194
92
|
id: "codex-cli-version",
|
|
195
|
-
description: "Codex CLI responds to --version",
|
|
196
93
|
async run({ runCommand }) {
|
|
197
94
|
const result = await runCommand("codex", ["--version"]);
|
|
198
95
|
if (result.exitCode !== 0) {
|
|
@@ -201,79 +98,79 @@ function createCodexVersionCheck() {
|
|
|
201
98
|
}
|
|
202
99
|
};
|
|
203
100
|
}
|
|
204
|
-
|
|
205
|
-
return {
|
|
206
|
-
id: "codex-cli-health",
|
|
207
|
-
description: "Codex CLI health check must succeed",
|
|
208
|
-
async run({ runCommand }) {
|
|
209
|
-
const result = await spawnCodex({
|
|
210
|
-
prompt: "Output exactly: CODEX_OK",
|
|
211
|
-
runCommand
|
|
212
|
-
});
|
|
213
|
-
if (result.exitCode !== 0) {
|
|
214
|
-
const detail = formatCommandRunnerResult(result);
|
|
215
|
-
throw new Error([
|
|
216
|
-
`Codex CLI health check failed with exit code ${result.exitCode}.`,
|
|
217
|
-
detail
|
|
218
|
-
].join("\n"));
|
|
219
|
-
}
|
|
220
|
-
const output = result.stdout.trim();
|
|
221
|
-
if (output !== "CODEX_OK") {
|
|
222
|
-
const detail = formatCommandRunnerResult(result);
|
|
223
|
-
throw new Error([
|
|
224
|
-
`Codex CLI health check failed: expected "CODEX_OK" but received "${output}".`,
|
|
225
|
-
detail
|
|
226
|
-
].join("\n"));
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
export const codexAdapter = {
|
|
101
|
+
export const codexService = createProvider({
|
|
232
102
|
name: "codex",
|
|
233
103
|
label: "Codex",
|
|
104
|
+
id: "codex",
|
|
105
|
+
summary: "Configure Codex to use Poe as the model provider.",
|
|
234
106
|
branding: {
|
|
235
107
|
colors: {
|
|
236
108
|
dark: "#D5D9DF",
|
|
237
109
|
light: "#7A7F86"
|
|
238
110
|
}
|
|
239
111
|
},
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
logger: (message) => context.logger.info(message)
|
|
254
|
-
});
|
|
112
|
+
configurePrompts: {
|
|
113
|
+
model: {
|
|
114
|
+
label: "Codex model",
|
|
115
|
+
defaultValue: DEFAULT_CODEX_MODEL,
|
|
116
|
+
choices: CODEX_MODELS.map((id) => ({
|
|
117
|
+
title: id,
|
|
118
|
+
value: id
|
|
119
|
+
}))
|
|
120
|
+
},
|
|
121
|
+
reasoningEffort: {
|
|
122
|
+
label: "Codex reasoning effort",
|
|
123
|
+
defaultValue: DEFAULT_REASONING
|
|
124
|
+
}
|
|
255
125
|
},
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
}, options.mutationHooks ? { hooks: options.mutationHooks } : undefined);
|
|
126
|
+
test(context) {
|
|
127
|
+
return context.runCheck(createCommandExpectationCheck({
|
|
128
|
+
id: "codex-cli-health",
|
|
129
|
+
command: "codex",
|
|
130
|
+
args: buildCodexExecArgs("Output exactly: CODEX_OK", [], DEFAULT_CODEX_MODEL),
|
|
131
|
+
expectedOutput: "CODEX_OK"
|
|
132
|
+
}));
|
|
264
133
|
},
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
134
|
+
manifest: {
|
|
135
|
+
"*": {
|
|
136
|
+
configure: [
|
|
137
|
+
ensureDirectory({ path: "~/.codex" }),
|
|
138
|
+
createBackupMutation({
|
|
139
|
+
target: "~/.codex/config.toml",
|
|
140
|
+
timestamp: ({ options }) => options.timestamp
|
|
141
|
+
}),
|
|
142
|
+
tomlTemplateMergeMutation({
|
|
143
|
+
target: "~/.codex/config.toml",
|
|
144
|
+
templateId: "codex/config.toml.hbs",
|
|
145
|
+
context: ({ options }) => ({
|
|
146
|
+
apiKey: options.apiKey,
|
|
147
|
+
model: options.model,
|
|
148
|
+
reasoningEffort: options.reasoningEffort
|
|
149
|
+
})
|
|
150
|
+
})
|
|
151
|
+
],
|
|
152
|
+
remove: [
|
|
153
|
+
tomlPruneMutation({
|
|
154
|
+
target: "~/.codex/config.toml",
|
|
155
|
+
prune: (document) => {
|
|
156
|
+
const result = stripCodexConfiguration(document);
|
|
157
|
+
if (!result.changed) {
|
|
158
|
+
return { changed: false, result: document };
|
|
159
|
+
}
|
|
160
|
+
return {
|
|
161
|
+
changed: true,
|
|
162
|
+
result: result.empty ? null : document
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
})
|
|
166
|
+
]
|
|
167
|
+
}
|
|
270
168
|
},
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
});
|
|
169
|
+
versionResolver: createBinaryVersionResolver("codex"),
|
|
170
|
+
install: CODEX_INSTALL_DEFINITION,
|
|
171
|
+
spawn(context, options) {
|
|
172
|
+
const args = buildCodexExecArgs(options.prompt, options.args, options.model);
|
|
173
|
+
return context.command.runCommand("codex", args);
|
|
277
174
|
}
|
|
278
|
-
};
|
|
175
|
+
});
|
|
279
176
|
//# sourceMappingURL=codex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/providers/codex.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/providers/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ProviderService, ProviderBranding, ProviderConfigurePrompts } from "../cli/service-registry.js";
|
|
2
|
+
import type { CliEnvironment } from "../cli/environment.js";
|
|
3
|
+
import { type ServiceManifestDefinition } from "../services/service-manifest.js";
|
|
4
|
+
import { type ServiceInstallDefinition } from "../services/service-install.js";
|
|
5
|
+
import type { ProviderVersionResolver } from "./versioned-provider.js";
|
|
6
|
+
interface ManifestVersionDefinition<ConfigureOptions, RemoveOptions> {
|
|
7
|
+
configure: ServiceManifestDefinition<ConfigureOptions, RemoveOptions>["configure"];
|
|
8
|
+
remove?: ServiceManifestDefinition<ConfigureOptions, RemoveOptions>["remove"];
|
|
9
|
+
}
|
|
10
|
+
interface CreateProviderOptions<TPaths extends Record<string, unknown>, ConfigureOptions, RemoveOptions, SpawnOptions> {
|
|
11
|
+
name: string;
|
|
12
|
+
label: string;
|
|
13
|
+
id: string;
|
|
14
|
+
summary: string;
|
|
15
|
+
branding?: ProviderBranding;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
configurePrompts?: ProviderConfigurePrompts;
|
|
18
|
+
manifest: ServiceManifestDefinition<ConfigureOptions, RemoveOptions> | Record<string, ManifestVersionDefinition<ConfigureOptions, RemoveOptions>>;
|
|
19
|
+
install?: ServiceInstallDefinition;
|
|
20
|
+
resolvePaths?: (env: CliEnvironment) => TPaths;
|
|
21
|
+
test?: ProviderService<TPaths, ConfigureOptions, RemoveOptions, SpawnOptions>["test"];
|
|
22
|
+
spawn?: ProviderService<TPaths, ConfigureOptions, RemoveOptions, SpawnOptions>["spawn"];
|
|
23
|
+
versionResolver?: ProviderVersionResolver<TPaths>;
|
|
24
|
+
}
|
|
25
|
+
export declare function createProvider<TPaths extends Record<string, unknown> = Record<string, any>, ConfigureOptions = any, RemoveOptions = ConfigureOptions, SpawnOptions = any>(options: CreateProviderOptions<TPaths, ConfigureOptions, RemoveOptions, SpawnOptions>): ProviderService<TPaths, ConfigureOptions, RemoveOptions, SpawnOptions>;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { satisfies } from "semver";
|
|
2
|
+
import { createServiceManifest } from "../services/service-manifest.js";
|
|
3
|
+
import { runServiceInstall } from "../services/service-install.js";
|
|
4
|
+
export function createProvider(options) {
|
|
5
|
+
const manifestEntries = buildManifestEntries(options);
|
|
6
|
+
const defaultManifest = manifestEntries.find((entry) => entry.range === "*")?.manifest ??
|
|
7
|
+
manifestEntries[0].manifest;
|
|
8
|
+
const provider = {
|
|
9
|
+
id: options.id,
|
|
10
|
+
summary: options.summary,
|
|
11
|
+
name: options.name,
|
|
12
|
+
label: options.label,
|
|
13
|
+
branding: options.branding,
|
|
14
|
+
disabled: options.disabled,
|
|
15
|
+
configurePrompts: options.configurePrompts,
|
|
16
|
+
resolvePaths: options.resolvePaths ??
|
|
17
|
+
(() => ({})),
|
|
18
|
+
async configure(context, runOptions) {
|
|
19
|
+
await defaultManifest.configure(context, runOptions);
|
|
20
|
+
},
|
|
21
|
+
async remove(context, runOptions) {
|
|
22
|
+
return defaultManifest.remove(context, runOptions);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
if (options.install) {
|
|
26
|
+
provider.install = createInstallRunner(options.install);
|
|
27
|
+
}
|
|
28
|
+
if (options.test) {
|
|
29
|
+
provider.test = options.test;
|
|
30
|
+
}
|
|
31
|
+
if (options.spawn) {
|
|
32
|
+
provider.spawn = options.spawn;
|
|
33
|
+
}
|
|
34
|
+
const hasMultipleVersions = manifestEntries.length > 1;
|
|
35
|
+
if (hasMultipleVersions || options.versionResolver) {
|
|
36
|
+
provider.resolveVersion = async (context) => {
|
|
37
|
+
const version = options.versionResolver
|
|
38
|
+
? await safeResolveVersion(options.versionResolver, context)
|
|
39
|
+
: null;
|
|
40
|
+
const manifest = selectManifest(manifestEntries, version) ?? defaultManifest;
|
|
41
|
+
const variant = bindManifest(provider, manifest, version);
|
|
42
|
+
return { version, adapter: variant };
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
return provider;
|
|
46
|
+
}
|
|
47
|
+
function buildManifestEntries(options) {
|
|
48
|
+
const input = options.manifest;
|
|
49
|
+
const map = isVersionedManifest(input)
|
|
50
|
+
? input
|
|
51
|
+
: { "*": input };
|
|
52
|
+
return Object.entries(map).map(([range, definition]) => {
|
|
53
|
+
const normalized = isVersionedManifest(input)
|
|
54
|
+
? {
|
|
55
|
+
id: options.id,
|
|
56
|
+
summary: options.summary,
|
|
57
|
+
configure: definition.configure,
|
|
58
|
+
remove: definition.remove
|
|
59
|
+
}
|
|
60
|
+
: definition;
|
|
61
|
+
return {
|
|
62
|
+
range,
|
|
63
|
+
manifest: createServiceManifest(normalized)
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function isVersionedManifest(value) {
|
|
68
|
+
if (typeof value !== "object" || value == null || Array.isArray(value)) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
return !("id" in value && "summary" in value);
|
|
72
|
+
}
|
|
73
|
+
async function safeResolveVersion(resolver, context) {
|
|
74
|
+
try {
|
|
75
|
+
return await resolver(context);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
context.logger.verbose(`Version detection failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function selectManifest(entries, version) {
|
|
83
|
+
if (version) {
|
|
84
|
+
for (const entry of entries) {
|
|
85
|
+
if (entry.range === "*") {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
if (satisfies(version, entry.range, { includePrerelease: true })) {
|
|
89
|
+
return entry.manifest;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return entries.find((entry) => entry.range === "*")?.manifest ?? null;
|
|
94
|
+
}
|
|
95
|
+
function bindManifest(base, manifest, version) {
|
|
96
|
+
if (base.configure === manifest.configure &&
|
|
97
|
+
base.remove === manifest.remove) {
|
|
98
|
+
return base;
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
...base,
|
|
102
|
+
configure(context, runOptions) {
|
|
103
|
+
return manifest.configure(context, runOptions);
|
|
104
|
+
},
|
|
105
|
+
remove(context, runOptions) {
|
|
106
|
+
return manifest.remove(context, runOptions);
|
|
107
|
+
},
|
|
108
|
+
resolveVersion: async () => ({ version, adapter: base })
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function createInstallRunner(definition) {
|
|
112
|
+
return async (context) => {
|
|
113
|
+
await runServiceInstall(definition, {
|
|
114
|
+
isDryRun: context.logger.context.dryRun,
|
|
115
|
+
runCommand: context.command.runCommand,
|
|
116
|
+
logger: (message) => context.logger.info(message)
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=create-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-provider.js","sourceRoot":"","sources":["../../src/providers/create-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function getDefaultProviders():
|
|
1
|
+
import type { ProviderService } from "../cli/service-registry.js";
|
|
2
|
+
export declare function getDefaultProviders(): ProviderService[];
|
package/dist/providers/index.js
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { rooCodeAdapter } from "./roo-code.js";
|
|
1
|
+
import { claudeCodeService } from "./claude-code.js";
|
|
2
|
+
import { codexService } from "./codex.js";
|
|
3
|
+
import { openCodeService } from "./opencode.js";
|
|
5
4
|
export function getDefaultProviders() {
|
|
6
|
-
return [
|
|
7
|
-
claudeCodeAdapter,
|
|
8
|
-
codexAdapter,
|
|
9
|
-
openCodeAdapter,
|
|
10
|
-
rooCodeAdapter
|
|
11
|
-
];
|
|
5
|
+
return [claudeCodeService, codexService, openCodeService];
|
|
12
6
|
}
|
|
13
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,MAAM,UAAU,mBAAmB;IACjC,OAAO,CAAC,iBAAiB,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -1,43 +1,3 @@
|
|
|
1
|
-
import type
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import type { CommandRunner, CommandRunnerResult, PrerequisiteManager } from "../utils/prerequisites.js";
|
|
5
|
-
import { type ServiceRunOptions } from "../services/service-manifest.js";
|
|
6
|
-
import { type InstallContext } from "../services/service-install.js";
|
|
7
|
-
export interface OpenCodePaths extends Record<string, string> {
|
|
8
|
-
configPath: string;
|
|
9
|
-
authPath: string;
|
|
10
|
-
}
|
|
11
|
-
export interface OpenCodeConfigureOptions {
|
|
12
|
-
apiKey: string;
|
|
13
|
-
mutationHooks?: ServiceMutationHooks;
|
|
14
|
-
}
|
|
15
|
-
export interface OpenCodeRemoveOptions {
|
|
16
|
-
mutationHooks?: ServiceMutationHooks;
|
|
17
|
-
}
|
|
18
|
-
export interface OpenCodeSpawnOptions {
|
|
19
|
-
prompt: string;
|
|
20
|
-
args: string[];
|
|
21
|
-
}
|
|
22
|
-
export interface ConfigureOpenCodeOptions {
|
|
23
|
-
fs: FileSystem;
|
|
24
|
-
configPath: string;
|
|
25
|
-
authPath: string;
|
|
26
|
-
apiKey: string;
|
|
27
|
-
}
|
|
28
|
-
export interface RemoveOpenCodeOptions {
|
|
29
|
-
fs: FileSystem;
|
|
30
|
-
configPath: string;
|
|
31
|
-
authPath: string;
|
|
32
|
-
}
|
|
33
|
-
export interface SpawnOpenCodeOptions {
|
|
34
|
-
prompt: string;
|
|
35
|
-
args?: string[];
|
|
36
|
-
runCommand: CommandRunner;
|
|
37
|
-
}
|
|
38
|
-
export declare function configureOpenCode(options: ConfigureOpenCodeOptions, runOptions?: ServiceRunOptions): Promise<void>;
|
|
39
|
-
export declare function spawnOpenCode(options: SpawnOpenCodeOptions): Promise<CommandRunnerResult>;
|
|
40
|
-
export declare function removeOpenCode(options: RemoveOpenCodeOptions, runOptions?: ServiceRunOptions): Promise<boolean>;
|
|
41
|
-
export declare function installOpenCode(context: InstallContext): Promise<boolean>;
|
|
42
|
-
export declare function registerOpenCodePrerequisites(prerequisites: PrerequisiteManager): void;
|
|
43
|
-
export declare const openCodeAdapter: ProviderAdapter<OpenCodePaths, OpenCodeConfigureOptions, OpenCodeRemoveOptions, OpenCodeSpawnOptions>;
|
|
1
|
+
import { type ServiceInstallDefinition } from "../services/service-install.js";
|
|
2
|
+
export declare const OPEN_CODE_INSTALL_DEFINITION: ServiceInstallDefinition;
|
|
3
|
+
export declare const openCodeService: import("../cli/service-registry.js").ProviderService<Record<string, string>, unknown, unknown, any>;
|