poe-code 0.1.26 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +110 -29
- package/dist/bin/poe-claude.js +16 -0
- package/dist/bin/poe-codex.js +16 -0
- package/dist/bin/poe-kimi-cli.js +16 -0
- package/dist/bin/poe-opencode.js +16 -0
- package/dist/cli/binary-aliases.d.ts +7 -0
- package/dist/cli/binary-aliases.js +26 -0
- package/dist/cli/binary-aliases.js.map +1 -0
- package/dist/cli/bootstrap.d.ts +4 -0
- package/dist/cli/bootstrap.js +78 -0
- package/dist/cli/bootstrap.js.map +1 -0
- package/dist/cli/command-runner.d.ts +1 -1
- package/dist/cli/command-runner.js +16 -2
- package/dist/cli/command-runner.js.map +1 -1
- package/dist/cli/commands/configure-payload.d.ts +15 -0
- package/dist/cli/commands/configure-payload.js +31 -0
- package/dist/cli/commands/configure-payload.js.map +1 -0
- package/dist/cli/commands/configure.d.ts +4 -3
- package/dist/cli/commands/configure.js +102 -101
- package/dist/cli/commands/configure.js.map +1 -1
- package/dist/cli/commands/ensure-isolated-config.d.ts +12 -0
- package/dist/cli/commands/ensure-isolated-config.js +53 -0
- package/dist/cli/commands/ensure-isolated-config.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +9 -0
- package/dist/cli/commands/generate.js +323 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/install.d.ts +4 -0
- package/dist/cli/commands/install.js +40 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/login.js +62 -8
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/{root.d.ts → mcp.d.ts} +1 -1
- package/dist/cli/commands/mcp.js +168 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/shared.d.ts +16 -11
- package/dist/cli/commands/shared.js +45 -24
- package/dist/cli/commands/shared.js.map +1 -1
- package/dist/cli/commands/spawn.d.ts +14 -4
- package/dist/cli/commands/spawn.js +92 -77
- package/dist/cli/commands/spawn.js.map +1 -1
- package/dist/cli/commands/test.d.ts +6 -4
- package/dist/cli/commands/test.js +111 -16
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/unconfigure.d.ts +7 -0
- package/dist/cli/commands/unconfigure.js +116 -0
- package/dist/cli/commands/unconfigure.js.map +1 -0
- package/dist/cli/commands/version.d.ts +3 -0
- package/dist/cli/commands/version.js +31 -0
- package/dist/cli/commands/version.js.map +1 -0
- package/dist/cli/commands/wrap.d.ts +3 -0
- package/dist/cli/commands/wrap.js +61 -0
- package/dist/cli/commands/wrap.js.map +1 -0
- package/dist/cli/constants.d.ts +23 -9
- package/dist/cli/constants.js +42 -9
- package/dist/cli/constants.js.map +1 -1
- package/dist/cli/container.d.ts +4 -10
- package/dist/cli/container.js +18 -22
- package/dist/cli/container.js.map +1 -1
- package/dist/cli/context.d.ts +9 -13
- package/dist/cli/context.js +45 -152
- package/dist/cli/context.js.map +1 -1
- package/dist/cli/environment.d.ts +2 -0
- package/dist/cli/environment.js +80 -0
- package/dist/cli/environment.js.map +1 -1
- package/dist/cli/error-logger.d.ts +18 -2
- package/dist/cli/error-logger.js +25 -7
- package/dist/cli/error-logger.js.map +1 -1
- package/dist/cli/errors.d.ts +14 -10
- package/dist/cli/errors.js +25 -12
- package/dist/cli/errors.js.map +1 -1
- package/dist/cli/exit-signals.d.ts +4 -0
- package/dist/cli/exit-signals.js +8 -0
- package/dist/cli/exit-signals.js.map +1 -0
- package/dist/cli/http.d.ts +1 -0
- package/dist/cli/isolated-env-runner.d.ts +10 -0
- package/dist/cli/isolated-env-runner.js +46 -0
- package/dist/cli/isolated-env-runner.js.map +1 -0
- package/dist/cli/isolated-env.d.ts +22 -0
- package/dist/cli/isolated-env.js +176 -0
- package/dist/cli/isolated-env.js.map +1 -0
- package/dist/cli/logger.d.ts +11 -1
- package/dist/cli/logger.js +101 -16
- package/dist/cli/logger.js.map +1 -1
- package/dist/cli/mcp-output-format.d.ts +2 -0
- package/dist/cli/mcp-output-format.js +22 -0
- package/dist/cli/mcp-output-format.js.map +1 -0
- package/dist/cli/mcp-server.d.ts +21 -0
- package/dist/cli/mcp-server.js +286 -0
- package/dist/cli/mcp-server.js.map +1 -0
- package/dist/cli/options.d.ts +18 -3
- package/dist/cli/options.js +39 -12
- package/dist/cli/options.js.map +1 -1
- package/dist/cli/poe-code-command-runner.d.ts +6 -0
- package/dist/cli/poe-code-command-runner.js +57 -0
- package/dist/cli/poe-code-command-runner.js.map +1 -0
- package/dist/cli/program.js +134 -23
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/prompt-runner.d.ts +10 -0
- package/dist/cli/prompt-runner.js +79 -0
- package/dist/cli/prompt-runner.js.map +1 -0
- package/dist/cli/prompts.d.ts +23 -7
- package/dist/cli/prompts.js +17 -33
- package/dist/cli/prompts.js.map +1 -1
- package/dist/cli/service-registry.d.ts +86 -21
- package/dist/cli/service-registry.js +60 -12
- package/dist/cli/service-registry.js.map +1 -1
- package/dist/cli/ui/service-menu.d.ts +7 -0
- package/dist/cli/ui/service-menu.js +43 -0
- package/dist/cli/ui/service-menu.js.map +1 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.js +7 -74
- package/dist/index.js.map +1 -1
- package/dist/providers/claude-code.d.ts +13 -0
- package/dist/providers/claude-code.js +136 -0
- package/dist/providers/claude-code.js.map +1 -0
- package/dist/providers/codex.d.ts +17 -0
- package/dist/providers/codex.js +144 -0
- package/dist/providers/codex.js.map +1 -0
- package/dist/providers/create-provider.d.ts +29 -0
- package/dist/providers/create-provider.js +63 -0
- package/dist/providers/create-provider.js.map +1 -0
- package/dist/providers/index.d.ts +2 -2
- package/dist/providers/index.js +5 -10
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/kimi.d.ts +4 -0
- package/dist/providers/kimi.js +123 -0
- package/dist/providers/kimi.js.map +1 -0
- package/dist/providers/opencode.d.ts +3 -0
- package/dist/providers/opencode.js +119 -0
- package/dist/providers/opencode.js.map +1 -0
- package/dist/providers/spawn-options.d.ts +12 -0
- package/dist/providers/spawn-options.js +2 -0
- package/dist/providers/spawn-options.js.map +1 -0
- package/dist/sdk/container.d.ts +18 -0
- package/dist/sdk/container.js +127 -0
- package/dist/sdk/container.js.map +1 -0
- package/dist/sdk/credentials.d.ts +9 -0
- package/dist/sdk/credentials.js +35 -0
- package/dist/sdk/credentials.js.map +1 -0
- package/dist/sdk/generate.d.ts +5 -0
- package/dist/sdk/generate.js +97 -0
- package/dist/sdk/generate.js.map +1 -0
- package/dist/sdk/spawn-core.d.ts +23 -0
- package/dist/sdk/spawn-core.js +105 -0
- package/dist/sdk/spawn-core.js.map +1 -0
- package/dist/sdk/spawn.d.ts +23 -0
- package/dist/sdk/spawn.js +41 -0
- package/dist/sdk/spawn.js.map +1 -0
- package/dist/sdk/types.d.ts +38 -0
- package/dist/sdk/types.js +2 -0
- package/dist/sdk/types.js.map +1 -0
- package/dist/services/client-instance.d.ts +12 -0
- package/dist/services/client-instance.js +36 -0
- package/dist/services/client-instance.js.map +1 -0
- package/dist/services/credentials.d.ts +13 -0
- package/dist/services/credentials.js +132 -14
- package/dist/services/credentials.js.map +1 -1
- package/dist/services/llm-client.d.ts +22 -0
- package/dist/services/llm-client.js +138 -0
- package/dist/services/llm-client.js.map +1 -0
- package/dist/services/media-download.d.ts +17 -0
- package/dist/services/media-download.js +42 -0
- package/dist/services/media-download.js.map +1 -0
- package/dist/services/model-strategy.d.ts +2 -2
- package/dist/services/model-strategy.js +36 -31
- package/dist/services/model-strategy.js.map +1 -1
- package/dist/services/mutation-events.d.ts +4 -0
- package/dist/services/mutation-events.js +53 -0
- package/dist/services/mutation-events.js.map +1 -0
- package/dist/services/service-install.d.ts +5 -4
- package/dist/services/service-install.js +36 -13
- package/dist/services/service-install.js.map +1 -1
- package/dist/services/version.d.ts +11 -0
- package/dist/services/version.js +28 -0
- package/dist/services/version.js.map +1 -0
- package/dist/templates/codex/config.toml.hbs +3 -3
- package/dist/tools/label-generator.d.ts +11 -0
- package/dist/tools/label-generator.js +78 -0
- package/dist/tools/label-generator.js.map +1 -0
- package/dist/utils/command-checks.d.ts +45 -0
- package/dist/utils/command-checks.js +120 -0
- package/dist/utils/command-checks.js.map +1 -0
- package/dist/utils/dry-run.d.ts +1 -0
- package/dist/utils/dry-run.js +116 -7
- package/dist/utils/dry-run.js.map +1 -1
- package/dist/utils/execution-context.d.ts +40 -0
- package/dist/utils/execution-context.js +128 -0
- package/dist/utils/execution-context.js.map +1 -0
- package/dist/utils/json.js +3 -0
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/templates.d.ts +1 -0
- package/dist/utils/templates.js +3 -4
- package/dist/utils/templates.js.map +1 -1
- package/package.json +52 -46
- package/dist/cli/api-client.d.ts +0 -14
- package/dist/cli/api-client.js +0 -140
- package/dist/cli/api-client.js.map +0 -1
- package/dist/cli/chat.d.ts +0 -32
- package/dist/cli/chat.js +0 -2
- package/dist/cli/chat.js.map +0 -1
- package/dist/cli/commands/agent.d.ts +0 -18
- package/dist/cli/commands/agent.js +0 -84
- package/dist/cli/commands/agent.js.map +0 -1
- package/dist/cli/commands/configure-agents.d.ts +0 -3
- package/dist/cli/commands/configure-agents.js +0 -72
- package/dist/cli/commands/configure-agents.js.map +0 -1
- package/dist/cli/commands/init.d.ts +0 -8
- package/dist/cli/commands/init.js +0 -45
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/interactive.d.ts +0 -3
- package/dist/cli/commands/interactive.js +0 -17
- package/dist/cli/commands/interactive.js.map +0 -1
- package/dist/cli/commands/logout.d.ts +0 -3
- package/dist/cli/commands/logout.js +0 -31
- package/dist/cli/commands/logout.js.map +0 -1
- package/dist/cli/commands/prerequisites.d.ts +0 -3
- package/dist/cli/commands/prerequisites.js +0 -23
- package/dist/cli/commands/prerequisites.js.map +0 -1
- package/dist/cli/commands/query.d.ts +0 -7
- package/dist/cli/commands/query.js +0 -46
- package/dist/cli/commands/query.js.map +0 -1
- package/dist/cli/commands/remove.d.ts +0 -6
- package/dist/cli/commands/remove.js +0 -80
- package/dist/cli/commands/remove.js.map +0 -1
- package/dist/cli/commands/root.js +0 -7
- package/dist/cli/commands/root.js.map +0 -1
- package/dist/cli/commands/spawn-worktree.d.ts +0 -6
- package/dist/cli/commands/spawn-worktree.js +0 -91
- package/dist/cli/commands/spawn-worktree.js.map +0 -1
- package/dist/cli/file-mentions.d.ts +0 -13
- package/dist/cli/file-mentions.js +0 -87
- package/dist/cli/file-mentions.js.map +0 -1
- package/dist/cli/file-picker-state.d.ts +0 -14
- package/dist/cli/file-picker-state.js +0 -23
- package/dist/cli/file-picker-state.js.map +0 -1
- package/dist/cli/interactive-command-runner.d.ts +0 -11
- package/dist/cli/interactive-command-runner.js +0 -142
- package/dist/cli/interactive-command-runner.js.map +0 -1
- package/dist/cli/interactive-launcher.d.ts +0 -2
- package/dist/cli/interactive-launcher.js +0 -404
- package/dist/cli/interactive-launcher.js.map +0 -1
- package/dist/cli/interactive-tasks.d.ts +0 -7
- package/dist/cli/interactive-tasks.js +0 -199
- package/dist/cli/interactive-tasks.js.map +0 -1
- package/dist/cli/interactive.d.ts +0 -19
- package/dist/cli/interactive.js +0 -479
- package/dist/cli/interactive.js.map +0 -1
- package/dist/cli/markdown-renderer.d.ts +0 -27
- package/dist/cli/markdown-renderer.js +0 -178
- package/dist/cli/markdown-renderer.js.map +0 -1
- package/dist/cli/markdown-renderer.test.d.ts +0 -1
- package/dist/cli/markdown-renderer.test.js +0 -105
- package/dist/cli/markdown-renderer.test.js.map +0 -1
- package/dist/cli/telemetry.d.ts +0 -15
- package/dist/cli/telemetry.js +0 -45
- package/dist/cli/telemetry.js.map +0 -1
- package/dist/commands/init.d.ts +0 -9
- package/dist/commands/init.js +0 -43
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/publish-placeholder.d.ts +0 -8
- package/dist/commands/publish-placeholder.js +0 -50
- package/dist/commands/publish-placeholder.js.map +0 -1
- package/dist/commands/spawn-worktree.d.ts +0 -25
- package/dist/commands/spawn-worktree.js +0 -139
- package/dist/commands/spawn-worktree.js.map +0 -1
- package/dist/providers/claude-code-adapter.d.ts +0 -20
- package/dist/providers/claude-code-adapter.js +0 -48
- package/dist/providers/claude-code-adapter.js.map +0 -1
- package/dist/providers/codex-adapter.d.ts +0 -19
- package/dist/providers/codex-adapter.js +0 -49
- package/dist/providers/codex-adapter.js.map +0 -1
- package/dist/providers/opencode-adapter.d.ts +0 -18
- package/dist/providers/opencode-adapter.js +0 -45
- package/dist/providers/opencode-adapter.js.map +0 -1
- package/dist/providers/roo-code-adapter.d.ts +0 -19
- package/dist/providers/roo-code-adapter.js +0 -70
- package/dist/providers/roo-code-adapter.js.map +0 -1
- package/dist/services/agent-config-manager.d.ts +0 -32
- package/dist/services/agent-config-manager.js +0 -130
- package/dist/services/agent-config-manager.js.map +0 -1
- package/dist/services/agent-registry.d.ts +0 -27
- package/dist/services/agent-registry.js +0 -89
- package/dist/services/agent-registry.js.map +0 -1
- package/dist/services/agent-session.d.ts +0 -24
- package/dist/services/agent-session.js +0 -107
- package/dist/services/agent-session.js.map +0 -1
- package/dist/services/agent-task-registry.d.ts +0 -131
- package/dist/services/agent-task-registry.js +0 -491
- package/dist/services/agent-task-registry.js.map +0 -1
- package/dist/services/chat.d.ts +0 -94
- package/dist/services/chat.js +0 -241
- package/dist/services/chat.js.map +0 -1
- package/dist/services/claude-code.d.ts +0 -28
- package/dist/services/claude-code.js +0 -155
- package/dist/services/claude-code.js.map +0 -1
- package/dist/services/codex.d.ts +0 -27
- package/dist/services/codex.js +0 -231
- package/dist/services/codex.js.map +0 -1
- package/dist/services/mcp-client.d.ts +0 -38
- package/dist/services/mcp-client.js +0 -170
- package/dist/services/mcp-client.js.map +0 -1
- package/dist/services/mcp-manager.d.ts +0 -28
- package/dist/services/mcp-manager.js +0 -157
- package/dist/services/mcp-manager.js.map +0 -1
- package/dist/services/opencode.d.ts +0 -25
- package/dist/services/opencode.js +0 -161
- package/dist/services/opencode.js.map +0 -1
- package/dist/services/poe-code.d.ts +0 -7
- package/dist/services/poe-code.js +0 -5
- package/dist/services/poe-code.js.map +0 -1
- package/dist/services/roo-code.d.ts +0 -22
- package/dist/services/roo-code.js +0 -134
- package/dist/services/roo-code.js.map +0 -1
- package/dist/services/service-manifest.d.ts +0 -122
- package/dist/services/service-manifest.js +0 -368
- package/dist/services/service-manifest.js.map +0 -1
- package/dist/services/task-logger.d.ts +0 -24
- package/dist/services/task-logger.js +0 -73
- package/dist/services/task-logger.js.map +0 -1
- package/dist/services/task-runner.d.ts +0 -19
- package/dist/services/task-runner.js +0 -157
- package/dist/services/task-runner.js.map +0 -1
- package/dist/services/tools.d.ts +0 -76
- package/dist/services/tools.js +0 -870
- package/dist/services/tools.js.map +0 -1
- package/dist/templates/claude-code/anthropic_key.sh.hbs +0 -2
- package/dist/utils/e2e-flags.d.ts +0 -1
- package/dist/utils/e2e-flags.js +0 -9
- package/dist/utils/e2e-flags.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/utils/toml.d.ts +0 -8
- package/dist/utils/toml.js +0 -30
- package/dist/utils/toml.js.map +0 -1
- package/dist/utils/worktree.d.ts +0 -40
- package/dist/utils/worktree.js +0 -179
- package/dist/utils/worktree.js.map +0 -1
- package/shared/conversation-layout.cjs +0 -11
- package/shared/conversation-layout.d.ts +0 -7
- package/shared/conversation-layout.js +0 -11
- package/shared/package.json +0 -13
package/README.md
CHANGED
|
@@ -1,64 +1,145 @@
|
|
|
1
1
|
# poe-code
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> Configure coding agents to use the Poe API.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Try it in 1 minute
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
|
|
9
|
-
poe-code
|
|
10
|
-
|
|
8
|
+
# Install Poe wrapper binaries.
|
|
9
|
+
npm install -g poe-code
|
|
10
|
+
|
|
11
|
+
# Run your existing agent CLI through Poe (you’ll be prompted for api key on first run).
|
|
12
|
+
poe-claude --help
|
|
11
13
|
```
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
Also available: `poe-codex`, `poe-opencode`.
|
|
16
|
+
|
|
17
|
+
## Make it default
|
|
18
|
+
|
|
19
|
+
This updates the provider’s config files so you can use the provider CLI directly.
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Claude Code
|
|
23
|
+
npx poe-code@latest configure claude-code
|
|
14
24
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
25
|
+
# Codex
|
|
26
|
+
npx poe-code@latest configure codex
|
|
27
|
+
|
|
28
|
+
# OpenCode
|
|
29
|
+
npx poe-code@latest configure opencode
|
|
30
|
+
|
|
31
|
+
# Kimi
|
|
32
|
+
npx poe-code@latest configure kimi
|
|
33
|
+
```
|
|
19
34
|
|
|
20
|
-
|
|
35
|
+
### Unconfigure (remove overrides)
|
|
21
36
|
|
|
22
37
|
```bash
|
|
23
|
-
|
|
38
|
+
npx poe-code@latest unconfigure claude-code
|
|
24
39
|
```
|
|
25
40
|
|
|
26
|
-
##
|
|
41
|
+
## Utilities
|
|
27
42
|
|
|
28
|
-
|
|
43
|
+
Utilities are especially useful for scripting and CI/CD.
|
|
44
|
+
|
|
45
|
+
### Spawn a one-off prompt
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npx poe-code@latest spawn codex "Say hello"
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Spawn a prompt via stdin
|
|
29
52
|
|
|
30
53
|
```bash
|
|
31
|
-
poe-code
|
|
54
|
+
echo "Say hello" | npx poe-code@latest spawn codex
|
|
32
55
|
```
|
|
33
56
|
|
|
34
|
-
###
|
|
57
|
+
### Test a configured service
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npx poe-code@latest test codex
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Install agent CLIs
|
|
35
64
|
|
|
36
65
|
```bash
|
|
37
66
|
# Claude Code
|
|
38
|
-
poe-code
|
|
67
|
+
npx poe-code@latest install claude-code
|
|
39
68
|
|
|
40
69
|
# Codex
|
|
41
|
-
poe-code
|
|
70
|
+
npx poe-code@latest install codex
|
|
42
71
|
|
|
43
72
|
# OpenCode
|
|
44
|
-
poe-code
|
|
73
|
+
npx poe-code@latest install opencode
|
|
74
|
+
|
|
75
|
+
# Kimi
|
|
76
|
+
npx poe-code@latest install kimi
|
|
45
77
|
```
|
|
46
78
|
|
|
47
|
-
###
|
|
79
|
+
### Optional flags
|
|
48
80
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
81
|
+
- `--dry-run` – show every mutation without touching disk.
|
|
82
|
+
- `--yes` – accept defaults for prompts.
|
|
83
|
+
|
|
84
|
+
## Poe MCP Server
|
|
52
85
|
|
|
53
|
-
|
|
86
|
+
Give any agent access to all Poe models including latest image, video, and audio models.
|
|
54
87
|
|
|
55
88
|
```bash
|
|
56
|
-
|
|
89
|
+
# Show configuration JSON and available tools
|
|
90
|
+
npx poe-code@latest mcp --help
|
|
91
|
+
|
|
92
|
+
# Configure an MCP client to use poe-code
|
|
93
|
+
npx poe-code@latest mcp configure claude-code
|
|
94
|
+
|
|
95
|
+
# Remove poe-code from an MCP client
|
|
96
|
+
npx poe-code@latest mcp unconfigure claude-code
|
|
57
97
|
```
|
|
58
98
|
|
|
59
|
-
###
|
|
99
|
+
### Available tools
|
|
60
100
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
101
|
+
- `generate_text` – Query any bot on Poe.
|
|
102
|
+
- `generate_image` – Generate images
|
|
103
|
+
- `generate_video` – Generate videos
|
|
104
|
+
- `generate_audio` – Convert text to audio
|
|
105
|
+
|
|
106
|
+
## SDK
|
|
107
|
+
|
|
108
|
+
Use `poe-code` programmatically in your own code:
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
import { spawn, getPoeApiKey } from "poe-code"
|
|
112
|
+
|
|
113
|
+
// Get stored API key
|
|
114
|
+
const apiKey = await getPoeApiKey()
|
|
115
|
+
|
|
116
|
+
// Run a prompt through a provider
|
|
117
|
+
const result = await spawn("claude-code", {
|
|
118
|
+
prompt: "Fix the bug in auth.ts",
|
|
119
|
+
cwd: "/path/to/project",
|
|
120
|
+
model: "claude-sonnet-4"
|
|
121
|
+
})
|
|
122
|
+
|
|
123
|
+
console.log(result.stdout)
|
|
64
124
|
```
|
|
125
|
+
|
|
126
|
+
### `spawn(service, options)`
|
|
127
|
+
|
|
128
|
+
Runs a single prompt through a configured service CLI.
|
|
129
|
+
|
|
130
|
+
- `service` – Service identifier (`claude-code`, `codex`, `opencode`)
|
|
131
|
+
- `options.prompt` – The prompt to send
|
|
132
|
+
- `options.cwd` – Working directory for the service CLI (optional)
|
|
133
|
+
- `options.model` – Model identifier override (optional)
|
|
134
|
+
- `options.args` – Additional arguments forwarded to the CLI (optional)
|
|
135
|
+
|
|
136
|
+
Returns `{ stdout, stderr, exitCode }`.
|
|
137
|
+
|
|
138
|
+
### `getPoeApiKey()`
|
|
139
|
+
|
|
140
|
+
Reads the Poe API key with the following priority:
|
|
141
|
+
|
|
142
|
+
1. `POE_API_KEY` environment variable
|
|
143
|
+
2. Credentials file (`~/.poe-code/credentials.json`)
|
|
144
|
+
|
|
145
|
+
Throws if no credentials found.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { spawn } from "node:child_process";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
|
|
6
|
+
const currentFile = fileURLToPath(import.meta.url);
|
|
7
|
+
const distDir = path.resolve(path.dirname(currentFile), "..");
|
|
8
|
+
const entry = path.join(distDir, "index.js");
|
|
9
|
+
const service = "claude-code";
|
|
10
|
+
const agentArgs = process.argv.slice(2);
|
|
11
|
+
const args = [entry, "wrap", service, "--", ...agentArgs];
|
|
12
|
+
const child = spawn(process.execPath, args, { stdio: "inherit" });
|
|
13
|
+
child.on("close", (code) => process.exit(code ?? 0));
|
|
14
|
+
child.on("error", (error) => {
|
|
15
|
+
throw error;
|
|
16
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { spawn } from "node:child_process";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
|
|
6
|
+
const currentFile = fileURLToPath(import.meta.url);
|
|
7
|
+
const distDir = path.resolve(path.dirname(currentFile), "..");
|
|
8
|
+
const entry = path.join(distDir, "index.js");
|
|
9
|
+
const service = "codex";
|
|
10
|
+
const agentArgs = process.argv.slice(2);
|
|
11
|
+
const args = [entry, "wrap", service, "--", ...agentArgs];
|
|
12
|
+
const child = spawn(process.execPath, args, { stdio: "inherit" });
|
|
13
|
+
child.on("close", (code) => process.exit(code ?? 0));
|
|
14
|
+
child.on("error", (error) => {
|
|
15
|
+
throw error;
|
|
16
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { spawn } from "node:child_process";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
|
|
6
|
+
const currentFile = fileURLToPath(import.meta.url);
|
|
7
|
+
const distDir = path.resolve(path.dirname(currentFile), "..");
|
|
8
|
+
const entry = path.join(distDir, "index.js");
|
|
9
|
+
const service = "kimi";
|
|
10
|
+
const agentArgs = process.argv.slice(2);
|
|
11
|
+
const args = [entry, "wrap", service, "--", ...agentArgs];
|
|
12
|
+
const child = spawn(process.execPath, args, { stdio: "inherit" });
|
|
13
|
+
child.on("close", (code) => process.exit(code ?? 0));
|
|
14
|
+
child.on("error", (error) => {
|
|
15
|
+
throw error;
|
|
16
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { spawn } from "node:child_process";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
|
|
6
|
+
const currentFile = fileURLToPath(import.meta.url);
|
|
7
|
+
const distDir = path.resolve(path.dirname(currentFile), "..");
|
|
8
|
+
const entry = path.join(distDir, "index.js");
|
|
9
|
+
const service = "opencode";
|
|
10
|
+
const agentArgs = process.argv.slice(2);
|
|
11
|
+
const args = [entry, "wrap", service, "--", ...agentArgs];
|
|
12
|
+
const child = spawn(process.execPath, args, { stdio: "inherit" });
|
|
13
|
+
child.on("close", (code) => process.exit(code ?? 0));
|
|
14
|
+
child.on("error", (error) => {
|
|
15
|
+
throw error;
|
|
16
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export function deriveWrapBinaryAliases(providers) {
|
|
2
|
+
const aliases = [];
|
|
3
|
+
const seen = new Set();
|
|
4
|
+
for (const provider of providers) {
|
|
5
|
+
const isolated = provider.isolatedEnv;
|
|
6
|
+
if (!isolated) {
|
|
7
|
+
continue;
|
|
8
|
+
}
|
|
9
|
+
const agentBinary = isolated.agentBinary.trim();
|
|
10
|
+
if (agentBinary.length === 0) {
|
|
11
|
+
throw new Error(`Provider "${provider.name}" defines an empty agentBinary.`);
|
|
12
|
+
}
|
|
13
|
+
const binName = `poe-${agentBinary}`;
|
|
14
|
+
if (seen.has(binName)) {
|
|
15
|
+
throw new Error(`Duplicate wrapper binary name "${binName}".`);
|
|
16
|
+
}
|
|
17
|
+
seen.add(binName);
|
|
18
|
+
aliases.push({
|
|
19
|
+
binName,
|
|
20
|
+
serviceName: provider.name,
|
|
21
|
+
agentBinary
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return aliases.sort((a, b) => a.binName.localeCompare(b.binName));
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=binary-aliases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binary-aliases.js","sourceRoot":"","sources":["../../src/cli/binary-aliases.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,uBAAuB,CACrC,SAA4B;IAE5B,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QACD,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,CAAC,IAAI,iCAAiC,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,WAAW,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,IAAI,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAElB,OAAO,CAAC,IAAI,CAAC;YACX,OAAO;YACP,WAAW,EAAE,QAAQ,CAAC,IAAI;YAC1B,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
import type { CliDependencies } from "./program.js";
|
|
3
|
+
export declare function createCliMain(programFactory: (dependencies: CliDependencies) => Command): () => Promise<void>;
|
|
4
|
+
export declare function isCliInvocation(argv: string[], moduleUrl: string, realpath?: (path: string) => string): boolean;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import * as nodeFs from "node:fs/promises";
|
|
2
|
+
import * as nodeFsSync from "node:fs";
|
|
3
|
+
import { realpathSync } from "node:fs";
|
|
4
|
+
import { homedir } from "node:os";
|
|
5
|
+
import { pathToFileURL } from "node:url";
|
|
6
|
+
import { join } from "node:path";
|
|
7
|
+
import { log } from "@poe-code/design-system";
|
|
8
|
+
import chalk from "chalk";
|
|
9
|
+
import { ErrorLogger } from "./error-logger.js";
|
|
10
|
+
import { CliError, SilentError } from "./errors.js";
|
|
11
|
+
import { createPromptRunner } from "./prompt-runner.js";
|
|
12
|
+
const fsAdapter = nodeFs;
|
|
13
|
+
export function createCliMain(programFactory) {
|
|
14
|
+
return async function runCli() {
|
|
15
|
+
const homeDir = homedir();
|
|
16
|
+
const logDir = join(homeDir, ".poe-code", "logs");
|
|
17
|
+
const promptRunner = createPromptRunner();
|
|
18
|
+
// Create global error logger for bootstrapping errors
|
|
19
|
+
const shouldLogToStderr = process.env.POE_CODE_STDERR_LOGS === "1" ||
|
|
20
|
+
process.env.POE_CODE_STDERR_LOGS === "true";
|
|
21
|
+
const errorLogger = new ErrorLogger({
|
|
22
|
+
fs: nodeFsSync,
|
|
23
|
+
logDir,
|
|
24
|
+
logToStderr: shouldLogToStderr
|
|
25
|
+
});
|
|
26
|
+
const program = programFactory({
|
|
27
|
+
fs: fsAdapter,
|
|
28
|
+
prompts: promptRunner,
|
|
29
|
+
env: {
|
|
30
|
+
cwd: process.cwd(),
|
|
31
|
+
homeDir,
|
|
32
|
+
platform: process.platform,
|
|
33
|
+
variables: process.env
|
|
34
|
+
},
|
|
35
|
+
exitOverride: false
|
|
36
|
+
});
|
|
37
|
+
try {
|
|
38
|
+
await program.parseAsync(process.argv);
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
if (error instanceof SilentError) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (error instanceof Error) {
|
|
45
|
+
// Log error with full context
|
|
46
|
+
errorLogger.logErrorWithStackTrace(error, "CLI execution", {
|
|
47
|
+
component: "main",
|
|
48
|
+
argv: process.argv
|
|
49
|
+
});
|
|
50
|
+
// Display user-friendly message
|
|
51
|
+
if (error instanceof CliError && error.isUserError) {
|
|
52
|
+
log.error(error.message);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
log.error(`Error: ${error.message}`);
|
|
56
|
+
log.message(`See logs at ${join(logDir, "errors.log")} for more details.`, { symbol: chalk.magenta("●") });
|
|
57
|
+
}
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
throw error;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export function isCliInvocation(argv, moduleUrl, realpath = realpathSync) {
|
|
65
|
+
const entry = argv.at(1);
|
|
66
|
+
if (typeof entry !== "string") {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
const candidates = [pathToFileURL(entry).href];
|
|
70
|
+
try {
|
|
71
|
+
candidates.push(pathToFileURL(realpath(entry)).href);
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
// Ignore resolution errors; fall back to direct comparison.
|
|
75
|
+
}
|
|
76
|
+
return candidates.includes(moduleUrl);
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=bootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/cli/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { CommandRunner } from "../utils/
|
|
1
|
+
import type { CommandRunner } from "../utils/command-checks.js";
|
|
2
2
|
export declare function createDefaultCommandRunner(): CommandRunner;
|
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
2
|
export function createDefaultCommandRunner() {
|
|
3
|
-
return async (command, args) => await new Promise((resolve) => {
|
|
4
|
-
const
|
|
3
|
+
return async (command, args, options) => await new Promise((resolve) => {
|
|
4
|
+
const hasStdin = options?.stdin != null;
|
|
5
|
+
const child = spawn(command, args, {
|
|
6
|
+
stdio: [hasStdin ? "pipe" : "ignore", "pipe", "pipe"],
|
|
7
|
+
cwd: options?.cwd,
|
|
8
|
+
env: options?.env
|
|
9
|
+
? {
|
|
10
|
+
...process.env,
|
|
11
|
+
...options.env
|
|
12
|
+
}
|
|
13
|
+
: undefined
|
|
14
|
+
});
|
|
5
15
|
let stdout = "";
|
|
6
16
|
let stderr = "";
|
|
17
|
+
if (hasStdin && child.stdin) {
|
|
18
|
+
child.stdin.on("error", () => { });
|
|
19
|
+
child.stdin.end(options.stdin);
|
|
20
|
+
}
|
|
7
21
|
child.stdout?.setEncoding("utf8");
|
|
8
22
|
child.stdout?.on("data", (chunk) => {
|
|
9
23
|
stdout += chunk.toString();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-runner.js","sourceRoot":"","sources":["../../src/cli/command-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"command-runner.js","sourceRoot":"","sources":["../../src/cli/command-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAO3C,MAAM,UAAU,0BAA0B;IACxC,OAAO,KAAK,EACV,OAAO,EACP,IAAI,EACJ,OAA8B,EACA,EAAE,CAChC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5B,MAAM,QAAQ,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC;QACxC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YACjC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;YACrD,GAAG,EAAE,OAAO,EAAE,GAAG;YACjB,GAAG,EAAE,OAAO,EAAE,GAAG;gBACf,CAAC,CAAC;oBACE,GAAI,OAAO,CAAC,GAA0C;oBACtD,GAAG,OAAO,CAAC,GAAG;iBACf;gBACH,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5B,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAClC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAQ,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE;YAClD,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE;YAClD,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAA4B,EAAE,EAAE;YACjD,MAAM,QAAQ,GACZ,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAC5B,CAAC,CAAC,KAAK,CAAC,IAAI;gBACZ,CAAC,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;oBACjC,CAAC,CAAC,KAAK,CAAC,KAAK;oBACb,CAAC,CAAC,GAAG,CAAC;YACV,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC;YACpE,OAAO,CAAC;gBACN,MAAM;gBACN,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO;gBAChD,QAAQ;aACT,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,OAAO,CAAC;gBACN,MAAM;gBACN,MAAM;gBACN,QAAQ,EAAE,IAAI,IAAI,CAAC;aACpB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CliContainer } from "../container.js";
|
|
2
|
+
import type { ScopedLogger } from "../logger.js";
|
|
3
|
+
import type { ProviderContext, ProviderService } from "../service-registry.js";
|
|
4
|
+
import type { CommandFlags } from "./shared.js";
|
|
5
|
+
import type { ConfigureCommandOptions } from "./configure.js";
|
|
6
|
+
interface ConfigurePayloadInit {
|
|
7
|
+
container: CliContainer;
|
|
8
|
+
flags: CommandFlags;
|
|
9
|
+
options: ConfigureCommandOptions;
|
|
10
|
+
context: ProviderContext;
|
|
11
|
+
adapter: ProviderService;
|
|
12
|
+
logger: ScopedLogger;
|
|
13
|
+
}
|
|
14
|
+
export declare function createConfigurePayload(init: ConfigurePayloadInit): Promise<unknown>;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export async function createConfigurePayload(init) {
|
|
2
|
+
const { container, flags, options, context, adapter, logger } = init;
|
|
3
|
+
const apiKey = await container.options.resolveApiKey({
|
|
4
|
+
value: options.apiKey,
|
|
5
|
+
dryRun: flags.dryRun
|
|
6
|
+
});
|
|
7
|
+
const payload = { env: context.env, apiKey };
|
|
8
|
+
const modelPrompt = adapter.configurePrompts?.model;
|
|
9
|
+
if (modelPrompt) {
|
|
10
|
+
const model = await container.options.resolveModel({
|
|
11
|
+
value: options.model,
|
|
12
|
+
assumeDefault: flags.assumeYes,
|
|
13
|
+
defaultValue: modelPrompt.defaultValue,
|
|
14
|
+
choices: modelPrompt.choices,
|
|
15
|
+
label: modelPrompt.label,
|
|
16
|
+
onResolve: (label, value) => logger.resolved(label, value)
|
|
17
|
+
});
|
|
18
|
+
payload.model = model;
|
|
19
|
+
}
|
|
20
|
+
const reasoningPrompt = adapter.configurePrompts?.reasoningEffort;
|
|
21
|
+
if (reasoningPrompt) {
|
|
22
|
+
const reasoningEffort = await container.options.resolveReasoning({
|
|
23
|
+
value: options.reasoningEffort,
|
|
24
|
+
defaultValue: reasoningPrompt.defaultValue,
|
|
25
|
+
label: reasoningPrompt.label
|
|
26
|
+
});
|
|
27
|
+
payload.reasoningEffort = reasoningEffort;
|
|
28
|
+
}
|
|
29
|
+
return payload;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=configure-payload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure-payload.js","sourceRoot":"","sources":["../../../src/cli/commands/configure-payload.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAA0B;IAE1B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAErE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC;QACnD,KAAK,EAAE,OAAO,CAAC,MAAM;QACrB,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC,CAAC;IACH,MAAM,OAAO,GAA4B,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;IAEtE,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC;IACpD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC;YACjD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,aAAa,EAAE,KAAK,CAAC,SAAS;YAC9B,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;SAC3D,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,CAAC,gBAAgB,EAAE,eAAe,CAAC;IAClE,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC/D,KAAK,EAAE,OAAO,CAAC,eAAe;YAC9B,YAAY,EAAE,eAAe,CAAC,YAAY;YAC1C,KAAK,EAAE,eAAe,CAAC,KAAK;SAC7B,CAAC,CAAC;QACH,OAAO,CAAC,eAAe,GAAG,eAAe,CAAC;IAC5C,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -4,8 +4,9 @@ export interface ConfigureCommandOptions {
|
|
|
4
4
|
apiKey?: string;
|
|
5
5
|
model?: string;
|
|
6
6
|
reasoningEffort?: string;
|
|
7
|
-
configName?: string;
|
|
8
|
-
baseUrl?: string;
|
|
9
7
|
}
|
|
10
|
-
export declare function registerConfigureCommand(program: Command, container: CliContainer):
|
|
8
|
+
export declare function registerConfigureCommand(program: Command, container: CliContainer): Command;
|
|
11
9
|
export declare function executeConfigure(program: Command, container: CliContainer, service: string, options: ConfigureCommandOptions): Promise<void>;
|
|
10
|
+
export declare function resolveServiceArgument(program: Command, container: CliContainer, provided?: string, selectionContext?: {
|
|
11
|
+
action: string;
|
|
12
|
+
}): Promise<string>;
|