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,249 +1,119 @@
1
- import path from "node:path";
2
- import { createBinaryExistsCheck, formatCommandRunnerResult } from "../utils/prerequisites.js";
3
- import { ensureDirectory, jsonMergeMutation, jsonPruneMutation, runServiceConfigure, runServiceRemove, writeTemplateMutation } from "../services/service-manifest.js";
4
- import { runServiceInstall } from "../services/service-install.js";
5
- import { CLAUDE_MODEL_OPUS, CLAUDE_MODEL_SONNET, CLAUDE_MODEL_HAIKU } from "../cli/constants.js";
6
- import { isJsonObject } from "../utils/json.js";
7
- const KEY_HELPER_TEMPLATE_ID = "claude-code/anthropic_key.sh.hbs";
8
- const KEY_HELPER_MODE = 0o700;
9
- const EMPTY_JSON_DOCUMENT = `${JSON.stringify({}, null, 2)}\n`;
10
- const CLAUDE_ENV_SHAPE = {
11
- apiKeyHelper: true,
12
- env: {
13
- ANTHROPIC_BASE_URL: true,
14
- ANTHROPIC_DEFAULT_HAIKU_MODEL: true,
15
- ANTHROPIC_DEFAULT_SONNET_MODEL: true,
16
- ANTHROPIC_DEFAULT_OPUS_MODEL: true
17
- },
18
- model: true
19
- };
20
- const CLAUDE_CODE_MANIFEST = {
21
- id: "claude-code",
22
- summary: "Configure Claude Code to route through Poe.",
23
- prerequisites: {
24
- after: ["claude-cli-health"]
25
- },
26
- configure: [
27
- ensureDirectory({
28
- path: ({ options }) => path.dirname(options.settingsPath),
29
- label: "Ensure Claude settings directory"
30
- }),
31
- writeTemplateMutation({
32
- target: ({ options }) => options.keyHelperPath,
33
- templateId: KEY_HELPER_TEMPLATE_ID,
34
- context: ({ options }) => ({
35
- credentialsPathLiteral: toSingleQuotedLiteral(options.credentialsPath)
36
- }),
37
- label: "Write API key helper script"
38
- }),
39
- createChmodMutation(),
40
- recoverInvalidSettingsMutation(),
41
- jsonMergeMutation({
42
- target: ({ options }) => options.settingsPath,
43
- label: "Merge Claude settings",
44
- value: ({ options }) => ({
45
- apiKeyHelper: options.keyHelperPath,
46
- env: {
47
- ANTHROPIC_BASE_URL: "https://api.poe.com",
48
- ANTHROPIC_DEFAULT_HAIKU_MODEL: CLAUDE_MODEL_HAIKU,
49
- ANTHROPIC_DEFAULT_SONNET_MODEL: CLAUDE_MODEL_SONNET,
50
- ANTHROPIC_DEFAULT_OPUS_MODEL: CLAUDE_MODEL_OPUS
51
- },
52
- model: options.defaultModel
53
- })
54
- })
55
- ],
56
- remove: [
57
- jsonPruneMutation({
58
- target: ({ options }) => options.settingsPath,
59
- label: "Prune Claude settings",
60
- shape: () => CLAUDE_ENV_SHAPE
61
- }),
62
- removeKeyHelperMutation()
63
- ]
64
- };
65
- const CLAUDE_CODE_INSTALL_DEFINITION = {
1
+ import { createBinaryExistsCheck, createCommandExpectationCheck } from "../utils/command-checks.js";
2
+ import { ensureDirectory, jsonMergeMutation, jsonPruneMutation, removeFileMutation, writeTemplateMutation } from "../services/service-manifest.js";
3
+ import { CLAUDE_CODE_VARIANTS, DEFAULT_CLAUDE_CODE_MODEL } from "../cli/constants.js";
4
+ import { makeExecutableMutation, quoteSinglePath } from "./provider-helpers.js";
5
+ import { createProvider } from "./create-provider.js";
6
+ import { createBinaryVersionResolver } from "./versioned-provider.js";
7
+ export const CLAUDE_CODE_INSTALL_DEFINITION = {
66
8
  id: "claude-code",
67
9
  summary: "Claude CLI",
68
- check: createClaudeCliBinaryCheck(),
10
+ check: createBinaryExistsCheck("claude", "claude-cli-binary", "Claude CLI binary must exist"),
69
11
  steps: [
70
12
  {
71
13
  id: "install-claude-cli-npm",
72
- description: "Install Claude CLI via npm",
73
14
  command: "npm",
74
15
  args: ["install", "-g", "@anthropic-ai/claude-code"]
75
16
  }
76
17
  ],
77
18
  successMessage: "Installed Claude CLI via npm."
78
19
  };
79
- function createChmodMutation() {
80
- return {
81
- kind: "transformFile",
82
- target: ({ options }) => options.keyHelperPath,
83
- label: "Make API key helper executable",
84
- async transform({ content, context }) {
85
- if (typeof context.fs.chmod === "function" &&
86
- content != null) {
87
- await context.fs.chmod(context.options.keyHelperPath, KEY_HELPER_MODE);
88
- }
89
- return { content, changed: false };
90
- }
91
- };
92
- }
93
- function removeKeyHelperMutation() {
94
- return {
95
- kind: "removeFile",
96
- target: ({ options }) => options.keyHelperPath,
97
- label: "Remove API key helper script"
98
- };
99
- }
100
- function recoverInvalidSettingsMutation() {
101
- return {
102
- kind: "transformFile",
103
- target: ({ options }) => options.settingsPath,
104
- label: "Recover invalid Claude settings",
105
- async transform({ content, context }) {
106
- if (content == null || isJsonDocument(content)) {
107
- return { content, changed: false };
108
- }
109
- const backupPath = createInvalidBackupPath(context.options.settingsPath);
110
- await context.fs.writeFile(backupPath, content, { encoding: "utf8" });
111
- return {
112
- content: EMPTY_JSON_DOCUMENT,
113
- changed: true
114
- };
115
- }
116
- };
117
- }
118
- function isJsonDocument(content) {
119
- try {
120
- const parsed = JSON.parse(content);
121
- return isJsonObject(parsed);
122
- }
123
- catch {
124
- return false;
125
- }
126
- }
127
- function createInvalidBackupPath(settingsPath) {
128
- const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
129
- return `${settingsPath}.invalid-${timestamp}.json`;
130
- }
131
- function toSingleQuotedLiteral(targetPath) {
132
- const escaped = targetPath.replace(/'/g, `'\\''`);
133
- return `'${escaped}'`;
20
+ const CLAUDE_SPAWN_DEFAULTS = [
21
+ "--allowedTools",
22
+ "Bash,Read",
23
+ "--permission-mode",
24
+ "acceptEdits",
25
+ "--output-format",
26
+ "text"
27
+ ];
28
+ function buildClaudeArgs(prompt, extraArgs, model) {
29
+ const modelArgs = model ? ["--model", model] : [];
30
+ return ["-p", prompt, ...modelArgs, ...CLAUDE_SPAWN_DEFAULTS, ...(extraArgs ?? [])];
134
31
  }
135
- export async function configureClaudeCode(options, runOptions) {
136
- await runServiceConfigure(CLAUDE_CODE_MANIFEST, {
137
- fs: options.fs,
138
- options
139
- }, runOptions);
140
- }
141
- export async function spawnClaudeCode(options) {
142
- const defaults = [
143
- "-p",
144
- options.prompt,
145
- "--allowedTools",
146
- "Bash,Read",
147
- "--permission-mode",
148
- "acceptEdits",
149
- "--output-format",
150
- "text"
151
- ];
152
- const args = [...defaults, ...(options.args ?? [])];
153
- return options.runCommand("claude", args);
154
- }
155
- export async function removeClaudeCode(options, runOptions) {
156
- return runServiceRemove(CLAUDE_CODE_MANIFEST, {
157
- fs: options.fs,
158
- options
159
- }, runOptions);
160
- }
161
- export function registerClaudeCodePrerequisites(prerequisites) {
162
- prerequisites.registerAfter(createClaudeCliHealthCheck());
163
- }
164
- export async function installClaudeCode(context) {
165
- return runServiceInstall(CLAUDE_CODE_INSTALL_DEFINITION, context);
166
- }
167
- export function createClaudeCliBinaryCheck() {
168
- return createBinaryExistsCheck("claude", "claude-cli-binary", "Claude CLI binary must exist");
169
- }
170
- function createClaudeCliHealthCheck() {
171
- return {
172
- id: "claude-cli-health",
173
- description: "Claude CLI health check must succeed",
174
- async run({ runCommand }) {
175
- const result = await spawnClaudeCode({
176
- prompt: "Output exactly: CLAUDE_CODE_OK",
177
- runCommand
178
- });
179
- if (result.exitCode !== 0) {
180
- const detail = formatCommandRunnerResult(result);
181
- throw new Error([
182
- `Claude CLI health check failed with exit code ${result.exitCode}.`,
183
- detail
184
- ].join("\n"));
185
- }
186
- const output = result.stdout.trim();
187
- if (output !== "CLAUDE_CODE_OK") {
188
- const detail = formatCommandRunnerResult(result);
189
- throw new Error([
190
- `Claude CLI health check failed: expected "CLAUDE_CODE_OK" but received "${output}".`,
191
- detail
192
- ].join("\n"));
193
- }
194
- }
195
- };
196
- }
197
- export const claudeCodeAdapter = {
32
+ export const claudeCodeService = createProvider({
198
33
  name: "claude-code",
199
34
  label: "Claude Code",
35
+ id: "claude-code",
36
+ summary: "Configure Claude Code to route through Poe.",
200
37
  branding: {
201
38
  colors: {
202
39
  dark: "#C15F3C",
203
40
  light: "#C15F3C"
204
41
  }
205
42
  },
206
- supportsSpawn: true,
207
- resolvePaths(env) {
208
- return {
209
- settingsPath: env.resolveHomePath(".claude", "settings.json"),
210
- keyHelperPath: env.resolveHomePath(".claude", "anthropic_key.sh"),
211
- credentialsPath: env.credentialsPath
212
- };
213
- },
214
- registerPrerequisites(manager) {
215
- registerClaudeCodePrerequisites(manager);
216
- },
217
- async install(context) {
218
- await installClaudeCode({
219
- isDryRun: context.logger.context.dryRun,
220
- runCommand: context.command.runCommand,
221
- logger: (message) => context.logger.info(message)
222
- });
43
+ configurePrompts: {
44
+ model: {
45
+ label: "Claude Code default model",
46
+ defaultValue: DEFAULT_CLAUDE_CODE_MODEL,
47
+ choices: Object.values(CLAUDE_CODE_VARIANTS).map((id) => ({
48
+ title: id,
49
+ value: id
50
+ }))
51
+ }
223
52
  },
224
- async configure(context, options) {
225
- await configureClaudeCode({
226
- fs: context.command.fs,
227
- apiKey: options.apiKey,
228
- settingsPath: context.paths.settingsPath,
229
- keyHelperPath: context.paths.keyHelperPath,
230
- credentialsPath: context.paths.credentialsPath,
231
- defaultModel: options.defaultModel
232
- }, options.mutationHooks ? { hooks: options.mutationHooks } : undefined);
53
+ test(context) {
54
+ return context.runCheck(createCommandExpectationCheck({
55
+ id: "claude-cli-health",
56
+ command: "claude",
57
+ args: buildClaudeArgs("Output exactly: CLAUDE_CODE_OK", undefined, DEFAULT_CLAUDE_CODE_MODEL),
58
+ expectedOutput: "CLAUDE_CODE_OK"
59
+ }));
233
60
  },
234
- async remove(context, options) {
235
- return await removeClaudeCode({
236
- fs: context.command.fs,
237
- settingsPath: context.paths.settingsPath,
238
- keyHelperPath: context.paths.keyHelperPath
239
- }, options.mutationHooks ? { hooks: options.mutationHooks } : undefined);
61
+ manifest: {
62
+ "*": {
63
+ configure: [
64
+ ensureDirectory({
65
+ path: "~/.claude"
66
+ }),
67
+ writeTemplateMutation({
68
+ target: "~/.claude/anthropic_key.sh",
69
+ templateId: "claude-code/anthropic_key.sh.hbs",
70
+ context: ({ env }) => ({
71
+ credentialsPathLiteral: quoteSinglePath(env.credentialsPath)
72
+ })
73
+ }),
74
+ makeExecutableMutation({
75
+ target: "~/.claude/anthropic_key.sh",
76
+ mode: 0o700
77
+ }),
78
+ jsonMergeMutation({
79
+ target: "~/.claude/settings.json",
80
+ value: ({ options, env }) => ({
81
+ apiKeyHelper: env.resolveHomePath(".claude", "anthropic_key.sh"),
82
+ env: {
83
+ ANTHROPIC_BASE_URL: "https://api.poe.com",
84
+ ANTHROPIC_DEFAULT_HAIKU_MODEL: CLAUDE_CODE_VARIANTS.haiku,
85
+ ANTHROPIC_DEFAULT_SONNET_MODEL: CLAUDE_CODE_VARIANTS.sonnet,
86
+ ANTHROPIC_DEFAULT_OPUS_MODEL: CLAUDE_CODE_VARIANTS.opus
87
+ },
88
+ model: options.defaultModel
89
+ })
90
+ })
91
+ ],
92
+ remove: [
93
+ jsonPruneMutation({
94
+ target: "~/.claude/settings.json",
95
+ shape: () => ({
96
+ apiKeyHelper: true,
97
+ env: {
98
+ ANTHROPIC_BASE_URL: true,
99
+ ANTHROPIC_DEFAULT_HAIKU_MODEL: true,
100
+ ANTHROPIC_DEFAULT_SONNET_MODEL: true,
101
+ ANTHROPIC_DEFAULT_OPUS_MODEL: true
102
+ },
103
+ model: true
104
+ })
105
+ }),
106
+ removeFileMutation({
107
+ target: "~/.claude/anthropic_key.sh"
108
+ })
109
+ ]
110
+ }
240
111
  },
241
- async spawn(context, options) {
242
- return await spawnClaudeCode({
243
- prompt: options.prompt,
244
- args: options.args,
245
- runCommand: context.command.runCommand
246
- });
112
+ versionResolver: createBinaryVersionResolver("claude"),
113
+ install: CLAUDE_CODE_INSTALL_DEFINITION,
114
+ spawn(context, options) {
115
+ const args = buildClaudeArgs(options.prompt, options.args, options.model);
116
+ return context.command.runCommand("claude", args);
247
117
  }
248
- };
118
+ });
249
119
  //# sourceMappingURL=claude-code.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/providers/claude-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/providers/claude-code.ts"],"names":[],"mappings":"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"}
@@ -1,46 +1,20 @@
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 CodexPaths extends Record<string, string> {
8
- configPath: string;
9
- }
10
- export interface CodexConfigureOptions {
11
- apiKey: string;
12
- model: string;
13
- reasoningEffort: string;
14
- mutationHooks?: ServiceMutationHooks;
15
- }
16
- export interface CodexRemoveOptions {
17
- mutationHooks?: ServiceMutationHooks;
18
- }
19
- export interface CodexSpawnOptions {
20
- prompt: string;
21
- args: string[];
22
- }
23
- export interface ConfigureCodexOptions {
24
- fs: FileSystem;
25
- configPath: string;
1
+ import type { CliEnvironment } from "../cli/environment.js";
2
+ import { type ServiceInstallDefinition } from "../services/service-install.js";
3
+ type CodexConfigureContext = {
4
+ env: CliEnvironment;
26
5
  apiKey: string;
27
6
  model: string;
28
7
  reasoningEffort: string;
29
8
  timestamp?: () => string;
30
- }
31
- export interface RemoveCodexOptions {
32
- fs: FileSystem;
33
- configPath: string;
34
- }
35
- export interface SpawnCodexOptions {
9
+ };
10
+ type CodexRemoveContext = {
11
+ env: CliEnvironment;
12
+ };
13
+ export declare const CODEX_INSTALL_DEFINITION: ServiceInstallDefinition;
14
+ export declare function buildCodexExecArgs(prompt: string, extraArgs?: string[], model?: string): string[];
15
+ export declare const codexService: import("../cli/service-registry.js").ProviderService<Record<string, never>, CodexConfigureContext, CodexRemoveContext, {
36
16
  prompt: string;
37
17
  args?: string[];
38
- runCommand: CommandRunner;
39
- }
40
- export declare function configureCodex(options: ConfigureCodexOptions, runOptions?: ServiceRunOptions): Promise<void>;
41
- export declare function buildCodexExecArgs(prompt: string, extraArgs?: string[]): string[];
42
- export declare function spawnCodex(options: SpawnCodexOptions): Promise<CommandRunnerResult>;
43
- export declare function removeCodex(options: RemoveCodexOptions, runOptions?: ServiceRunOptions): Promise<boolean>;
44
- export declare function installCodex(context: InstallContext): Promise<boolean>;
45
- export declare function registerCodexPrerequisites(prerequisites: PrerequisiteManager): void;
46
- export declare const codexAdapter: ProviderAdapter<CodexPaths, CodexConfigureOptions, CodexRemoveOptions, CodexSpawnOptions>;
18
+ model?: string;
19
+ }>;
20
+ export {};