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.
Files changed (100) hide show
  1. package/README.md +17 -30
  2. package/dist/cli/command-runner.d.ts +1 -1
  3. package/dist/cli/commands/configure.d.ts +0 -2
  4. package/dist/cli/commands/configure.js +99 -34
  5. package/dist/cli/commands/configure.js.map +1 -1
  6. package/dist/cli/commands/doctor.d.ts +4 -0
  7. package/dist/cli/commands/doctor.js +73 -0
  8. package/dist/cli/commands/doctor.js.map +1 -0
  9. package/dist/cli/commands/remove.d.ts +1 -0
  10. package/dist/cli/commands/remove.js +41 -28
  11. package/dist/cli/commands/remove.js.map +1 -1
  12. package/dist/cli/commands/shared.d.ts +9 -12
  13. package/dist/cli/commands/shared.js +26 -24
  14. package/dist/cli/commands/shared.js.map +1 -1
  15. package/dist/cli/commands/spawn.d.ts +1 -0
  16. package/dist/cli/commands/spawn.js +14 -5
  17. package/dist/cli/commands/spawn.js.map +1 -1
  18. package/dist/cli/commands/test.d.ts +4 -0
  19. package/dist/cli/commands/test.js +36 -0
  20. package/dist/cli/commands/test.js.map +1 -0
  21. package/dist/cli/constants.d.ts +12 -9
  22. package/dist/cli/constants.js +15 -9
  23. package/dist/cli/constants.js.map +1 -1
  24. package/dist/cli/container.d.ts +3 -3
  25. package/dist/cli/context.d.ts +4 -13
  26. package/dist/cli/context.js +19 -149
  27. package/dist/cli/context.js.map +1 -1
  28. package/dist/cli/error-logger.js +1 -1
  29. package/dist/cli/error-logger.js.map +1 -1
  30. package/dist/cli/errors.d.ts +0 -10
  31. package/dist/cli/errors.js +0 -12
  32. package/dist/cli/errors.js.map +1 -1
  33. package/dist/cli/logger.js +9 -11
  34. package/dist/cli/logger.js.map +1 -1
  35. package/dist/cli/options.d.ts +13 -4
  36. package/dist/cli/options.js +12 -11
  37. package/dist/cli/options.js.map +1 -1
  38. package/dist/cli/program.js +5 -2
  39. package/dist/cli/program.js.map +1 -1
  40. package/dist/cli/prompts.d.ts +14 -4
  41. package/dist/cli/prompts.js +12 -24
  42. package/dist/cli/prompts.js.map +1 -1
  43. package/dist/cli/service-registry.d.ts +37 -15
  44. package/dist/cli/service-registry.js.map +1 -1
  45. package/dist/cli/telemetry.d.ts +1 -1
  46. package/dist/cli/ui/service-menu.d.ts +2 -2
  47. package/dist/cli/ui/theme.js +6 -6
  48. package/dist/cli/ui/theme.js.map +1 -1
  49. package/dist/providers/claude-code.d.ts +10 -46
  50. package/dist/providers/claude-code.js +94 -224
  51. package/dist/providers/claude-code.js.map +1 -1
  52. package/dist/providers/codex.d.ts +14 -40
  53. package/dist/providers/codex.js +74 -177
  54. package/dist/providers/codex.js.map +1 -1
  55. package/dist/providers/create-provider.d.ts +26 -0
  56. package/dist/providers/create-provider.js +120 -0
  57. package/dist/providers/create-provider.js.map +1 -0
  58. package/dist/providers/index.d.ts +2 -2
  59. package/dist/providers/index.js +4 -10
  60. package/dist/providers/index.js.map +1 -1
  61. package/dist/providers/opencode.d.ts +3 -43
  62. package/dist/providers/opencode.js +112 -173
  63. package/dist/providers/opencode.js.map +1 -1
  64. package/dist/providers/provider-helpers.d.ts +10 -0
  65. package/dist/providers/provider-helpers.js +62 -0
  66. package/dist/providers/provider-helpers.js.map +1 -0
  67. package/dist/providers/versioned-provider.d.ts +3 -0
  68. package/dist/providers/versioned-provider.js +9 -0
  69. package/dist/providers/versioned-provider.js.map +1 -0
  70. package/dist/services/credentials.d.ts +14 -0
  71. package/dist/services/credentials.js +123 -22
  72. package/dist/services/credentials.js.map +1 -1
  73. package/dist/services/model-strategy.d.ts +1 -1
  74. package/dist/services/model-strategy.js +20 -15
  75. package/dist/services/model-strategy.js.map +1 -1
  76. package/dist/services/mutation-events.d.ts +4 -0
  77. package/dist/services/mutation-events.js +56 -0
  78. package/dist/services/mutation-events.js.map +1 -0
  79. package/dist/services/service-install.d.ts +3 -4
  80. package/dist/services/service-install.js +30 -12
  81. package/dist/services/service-install.js.map +1 -1
  82. package/dist/services/service-manifest.d.ts +49 -21
  83. package/dist/services/service-manifest.js +261 -64
  84. package/dist/services/service-manifest.js.map +1 -1
  85. package/dist/tools/label-generator.d.ts +2 -2
  86. package/dist/tools/label-generator.js +1 -1
  87. package/dist/tools/label-generator.js.map +1 -1
  88. package/dist/utils/binary-version.d.ts +6 -0
  89. package/dist/utils/binary-version.js +35 -0
  90. package/dist/utils/binary-version.js.map +1 -0
  91. package/dist/utils/command-checks.d.ts +39 -0
  92. package/dist/utils/command-checks.js +116 -0
  93. package/dist/utils/command-checks.js.map +1 -0
  94. package/package.json +6 -8
  95. package/dist/providers/roo-code.d.ts +0 -41
  96. package/dist/providers/roo-code.js +0 -201
  97. package/dist/providers/roo-code.js.map +0 -1
  98. package/dist/utils/prerequisites.d.ts +0 -41
  99. package/dist/utils/prerequisites.js +0 -92
  100. package/dist/utils/prerequisites.js.map +0 -1
@@ -1,100 +1,22 @@
1
- import path from "node:path";
2
- import { createBinaryExistsCheck, formatCommandRunnerResult } from "../utils/prerequisites.js";
3
- import { createBackupMutation, ensureDirectory, runServiceConfigure, runServiceRemove } from "../services/service-manifest.js";
4
- import { parseTomlDocument, serializeTomlDocument, mergeTomlTables, isTomlTable } from "../utils/toml.js";
5
- import { runServiceInstall } from "../services/service-install.js";
6
- import { renderTemplate } from "../utils/templates.js";
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 CODEX_CONFIG_TEMPLATE_ID = "codex/config.toml.hbs";
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: createCodexBinaryCheck(),
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
- return ["exec", prompt, ...CODEX_DEFAULT_EXEC_ARGS, ...extraArgs];
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
- function createCodexCliHealthCheck() {
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
- supportsSpawn: true,
241
- resolvePaths(env) {
242
- return {
243
- configPath: env.resolveHomePath(".codex", "config.toml")
244
- };
245
- },
246
- registerPrerequisites(manager) {
247
- registerCodexPrerequisites(manager);
248
- },
249
- async install(context) {
250
- await installCodex({
251
- isDryRun: context.logger.context.dryRun,
252
- runCommand: context.command.runCommand,
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
- async configure(context, options) {
257
- await configureCodex({
258
- fs: context.command.fs,
259
- configPath: context.paths.configPath,
260
- apiKey: options.apiKey,
261
- model: options.model,
262
- reasoningEffort: options.reasoningEffort
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
- async remove(context, options) {
266
- return await removeCodex({
267
- fs: context.command.fs,
268
- configPath: context.paths.configPath
269
- }, options.mutationHooks ? { hooks: options.mutationHooks } : undefined);
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
- async spawn(context, options) {
272
- return await spawnCodex({
273
- prompt: options.prompt,
274
- args: options.args,
275
- runCommand: context.command.runCommand
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":"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"}
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 { ProviderAdapter } from "../cli/service-registry.js";
2
- export declare function getDefaultProviders(): ProviderAdapter[];
1
+ import type { ProviderService } from "../cli/service-registry.js";
2
+ export declare function getDefaultProviders(): ProviderService[];
@@ -1,13 +1,7 @@
1
- import { claudeCodeAdapter } from "./claude-code.js";
2
- import { codexAdapter } from "./codex.js";
3
- import { openCodeAdapter } from "./opencode.js";
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;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,iBAA+C;QAC/C,YAA0C;QAC1C,eAA6C;QAC7C,cAA4C;KAC7C,CAAC;AACJ,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 { ProviderAdapter } from "../cli/service-registry.js";
2
- import type { ServiceMutationHooks } from "../services/service-manifest.js";
3
- import type { FileSystem } from "../utils/file-system.js";
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>;