poe-code 3.0.28 → 3.0.29
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 +38 -25
- package/package.json +1 -1
- package/dist/bin/poe-claude.js +0 -23
- package/dist/bin/poe-codex.js +0 -23
- package/dist/bin/poe-kimi-cli.js +0 -23
- package/dist/bin/poe-opencode.js +0 -23
- package/dist/bin.cjs +0 -9
- package/dist/cli/binary-aliases.d.ts +0 -7
- package/dist/cli/binary-aliases.js +0 -26
- package/dist/cli/binary-aliases.js.map +0 -1
- package/dist/cli/bootstrap.d.ts +0 -4
- package/dist/cli/bootstrap.js +0 -78
- package/dist/cli/bootstrap.js.map +0 -1
- package/dist/cli/command-not-found.d.ts +0 -8
- package/dist/cli/command-not-found.js +0 -34
- package/dist/cli/command-not-found.js.map +0 -1
- package/dist/cli/commands/configure-payload.d.ts +0 -15
- package/dist/cli/commands/configure-payload.js +0 -31
- package/dist/cli/commands/configure-payload.js.map +0 -1
- package/dist/cli/commands/configure.d.ts +0 -12
- package/dist/cli/commands/configure.js +0 -151
- package/dist/cli/commands/configure.js.map +0 -1
- package/dist/cli/commands/ensure-isolated-config.d.ts +0 -12
- package/dist/cli/commands/ensure-isolated-config.js +0 -53
- package/dist/cli/commands/ensure-isolated-config.js.map +0 -1
- package/dist/cli/commands/generate.d.ts +0 -9
- package/dist/cli/commands/generate.js +0 -322
- package/dist/cli/commands/generate.js.map +0 -1
- package/dist/cli/commands/install.d.ts +0 -4
- package/dist/cli/commands/install.js +0 -40
- package/dist/cli/commands/install.js.map +0 -1
- package/dist/cli/commands/login.d.ts +0 -6
- package/dist/cli/commands/login.js +0 -105
- package/dist/cli/commands/login.js.map +0 -1
- package/dist/cli/commands/mcp.d.ts +0 -3
- package/dist/cli/commands/mcp.js +0 -178
- package/dist/cli/commands/mcp.js.map +0 -1
- package/dist/cli/commands/models.d.ts +0 -3
- package/dist/cli/commands/models.js +0 -183
- package/dist/cli/commands/models.js.map +0 -1
- package/dist/cli/commands/ralph-worktree.d.ts +0 -3
- package/dist/cli/commands/ralph-worktree.js +0 -73
- package/dist/cli/commands/ralph-worktree.js.map +0 -1
- package/dist/cli/commands/ralph.d.ts +0 -3
- package/dist/cli/commands/ralph.js +0 -424
- package/dist/cli/commands/ralph.js.map +0 -1
- package/dist/cli/commands/shared.d.ts +0 -29
- package/dist/cli/commands/shared.js +0 -82
- package/dist/cli/commands/shared.js.map +0 -1
- package/dist/cli/commands/skill.d.ts +0 -3
- package/dist/cli/commands/skill.js +0 -242
- package/dist/cli/commands/skill.js.map +0 -1
- package/dist/cli/commands/spawn.d.ts +0 -17
- package/dist/cli/commands/spawn.js +0 -226
- package/dist/cli/commands/spawn.js.map +0 -1
- package/dist/cli/commands/test.d.ts +0 -8
- package/dist/cli/commands/test.js +0 -124
- package/dist/cli/commands/test.js.map +0 -1
- package/dist/cli/commands/unconfigure.d.ts +0 -7
- package/dist/cli/commands/unconfigure.js +0 -116
- package/dist/cli/commands/unconfigure.js.map +0 -1
- package/dist/cli/commands/usage.d.ts +0 -3
- package/dist/cli/commands/usage.js +0 -186
- package/dist/cli/commands/usage.js.map +0 -1
- package/dist/cli/commands/version.d.ts +0 -3
- package/dist/cli/commands/version.js +0 -31
- package/dist/cli/commands/version.js.map +0 -1
- package/dist/cli/commands/wrap.d.ts +0 -3
- package/dist/cli/commands/wrap.js +0 -61
- package/dist/cli/commands/wrap.js.map +0 -1
- package/dist/cli/constants.d.ts +0 -24
- package/dist/cli/constants.js +0 -44
- package/dist/cli/constants.js.map +0 -1
- package/dist/cli/container.d.ts +0 -42
- package/dist/cli/container.js +0 -90
- package/dist/cli/container.js.map +0 -1
- package/dist/cli/context.d.ts +0 -33
- package/dist/cli/context.js +0 -91
- package/dist/cli/context.js.map +0 -1
- package/dist/cli/environment.d.ts +0 -21
- package/dist/cli/environment.js +0 -106
- package/dist/cli/environment.js.map +0 -1
- package/dist/cli/error-logger.d.ts +0 -62
- package/dist/cli/error-logger.js +0 -155
- package/dist/cli/error-logger.js.map +0 -1
- package/dist/cli/errors.d.ts +0 -95
- package/dist/cli/errors.js +0 -141
- package/dist/cli/errors.js.map +0 -1
- package/dist/cli/exit-signals.d.ts +0 -4
- package/dist/cli/exit-signals.js +0 -8
- package/dist/cli/exit-signals.js.map +0 -1
- package/dist/cli/http.d.ts +0 -12
- package/dist/cli/http.js +0 -2
- package/dist/cli/http.js.map +0 -1
- package/dist/cli/isolated-env-runner.d.ts +0 -10
- package/dist/cli/isolated-env-runner.js +0 -50
- package/dist/cli/isolated-env-runner.js.map +0 -1
- package/dist/cli/isolated-env.d.ts +0 -24
- package/dist/cli/isolated-env.js +0 -210
- package/dist/cli/isolated-env.js.map +0 -1
- package/dist/cli/logger.d.ts +0 -36
- package/dist/cli/logger.js +0 -191
- package/dist/cli/logger.js.map +0 -1
- package/dist/cli/mcp-output-format.d.ts +0 -2
- package/dist/cli/mcp-output-format.js +0 -27
- package/dist/cli/mcp-output-format.js.map +0 -1
- package/dist/cli/mcp-server.d.ts +0 -21
- package/dist/cli/mcp-server.js +0 -321
- package/dist/cli/mcp-server.js.map +0 -1
- package/dist/cli/options.d.ts +0 -45
- package/dist/cli/options.js +0 -111
- package/dist/cli/options.js.map +0 -1
- package/dist/cli/poe-code-command-runner.d.ts +0 -6
- package/dist/cli/poe-code-command-runner.js +0 -63
- package/dist/cli/poe-code-command-runner.js.map +0 -1
- package/dist/cli/program.d.ts +0 -4
- package/dist/cli/program.js +0 -249
- package/dist/cli/program.js.map +0 -1
- package/dist/cli/prompt-runner.d.ts +0 -10
- package/dist/cli/prompt-runner.js +0 -79
- package/dist/cli/prompt-runner.js.map +0 -1
- package/dist/cli/prompts.d.ts +0 -39
- package/dist/cli/prompts.js +0 -42
- package/dist/cli/prompts.js.map +0 -1
- package/dist/cli/service-registry.d.ts +0 -108
- package/dist/cli/service-registry.js +0 -83
- package/dist/cli/service-registry.js.map +0 -1
- package/dist/cli/types.d.ts +0 -2
- package/dist/cli/types.js +0 -2
- package/dist/cli/types.js.map +0 -1
- package/dist/cli/ui/service-menu.d.ts +0 -7
- package/dist/cli/ui/service-menu.js +0 -43
- package/dist/cli/ui/service-menu.js.map +0 -1
- package/dist/index.d.ts +0 -8
- package/dist/index.js +0 -36800
- package/dist/index.js.map +0 -7
- package/dist/providers/claude-code.d.ts +0 -13
- package/dist/providers/claude-code.js +0 -143
- package/dist/providers/claude-code.js.map +0 -1
- package/dist/providers/codex.d.ts +0 -17
- package/dist/providers/codex.js +0 -144
- package/dist/providers/codex.js.map +0 -1
- package/dist/providers/create-provider.d.ts +0 -29
- package/dist/providers/create-provider.js +0 -78
- package/dist/providers/create-provider.js.map +0 -1
- package/dist/providers/index.d.ts +0 -2
- package/dist/providers/index.js +0 -8
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/kimi.d.ts +0 -4
- package/dist/providers/kimi.js +0 -123
- package/dist/providers/kimi.js.map +0 -1
- package/dist/providers/opencode.d.ts +0 -3
- package/dist/providers/opencode.js +0 -119
- package/dist/providers/opencode.js.map +0 -1
- package/dist/providers/spawn-options.d.ts +0 -13
- package/dist/providers/spawn-options.js +0 -2
- package/dist/providers/spawn-options.js.map +0 -1
- package/dist/sdk/container.d.ts +0 -18
- package/dist/sdk/container.js +0 -127
- package/dist/sdk/container.js.map +0 -1
- package/dist/sdk/credentials.d.ts +0 -9
- package/dist/sdk/credentials.js +0 -35
- package/dist/sdk/credentials.js.map +0 -1
- package/dist/sdk/generate.d.ts +0 -5
- package/dist/sdk/generate.js +0 -97
- package/dist/sdk/generate.js.map +0 -1
- package/dist/sdk/spawn-core.d.ts +0 -23
- package/dist/sdk/spawn-core.js +0 -105
- package/dist/sdk/spawn-core.js.map +0 -1
- package/dist/sdk/spawn.d.ts +0 -31
- package/dist/sdk/spawn.js +0 -109
- package/dist/sdk/spawn.js.map +0 -1
- package/dist/sdk/types.d.ts +0 -44
- package/dist/sdk/types.js +0 -2
- package/dist/sdk/types.js.map +0 -1
- package/dist/services/client-instance.d.ts +0 -12
- package/dist/services/client-instance.js +0 -36
- package/dist/services/client-instance.js.map +0 -1
- package/dist/services/credentials.d.ts +0 -24
- package/dist/services/credentials.js +0 -157
- package/dist/services/credentials.js.map +0 -1
- package/dist/services/llm-client.d.ts +0 -22
- package/dist/services/llm-client.js +0 -138
- package/dist/services/llm-client.js.map +0 -1
- package/dist/services/media-download.d.ts +0 -17
- package/dist/services/media-download.js +0 -42
- package/dist/services/media-download.js.map +0 -1
- package/dist/services/model-strategy.d.ts +0 -99
- package/dist/services/model-strategy.js +0 -187
- package/dist/services/model-strategy.js.map +0 -1
- package/dist/services/mutation-events.d.ts +0 -4
- package/dist/services/mutation-events.js +0 -53
- package/dist/services/mutation-events.js.map +0 -1
- package/dist/services/service-install.d.ts +0 -22
- package/dist/services/service-install.js +0 -70
- package/dist/services/service-install.js.map +0 -1
- package/dist/services/version.d.ts +0 -11
- package/dist/services/version.js +0 -28
- package/dist/services/version.js.map +0 -1
- package/dist/tools/label-generator.d.ts +0 -11
- package/dist/tools/label-generator.js +0 -78
- package/dist/tools/label-generator.js.map +0 -1
- package/dist/utils/backup.d.ts +0 -5
- package/dist/utils/backup.js +0 -56
- package/dist/utils/backup.js.map +0 -1
- package/dist/utils/cli-settings-merge.d.ts +0 -22
- package/dist/utils/cli-settings-merge.js +0 -56
- package/dist/utils/cli-settings-merge.js.map +0 -1
- package/dist/utils/command-checks.d.ts +0 -36
- package/dist/utils/command-checks.js +0 -120
- package/dist/utils/command-checks.js.map +0 -1
- package/dist/utils/command-line.d.ts +0 -1
- package/dist/utils/command-line.js +0 -54
- package/dist/utils/command-line.js.map +0 -1
- package/dist/utils/dry-run.d.ts +0 -39
- package/dist/utils/dry-run.js +0 -315
- package/dist/utils/dry-run.js.map +0 -1
- package/dist/utils/execution-context.d.ts +0 -48
- package/dist/utils/execution-context.js +0 -151
- package/dist/utils/execution-context.js.map +0 -1
- package/dist/utils/file-system.d.ts +0 -21
- package/dist/utils/file-system.js +0 -2
- package/dist/utils/file-system.js.map +0 -1
- package/dist/utils/json.d.ts +0 -12
- package/dist/utils/json.js +0 -45
- package/dist/utils/json.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,60 +1,73 @@
|
|
|
1
|
-
|
|
1
|
+

|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
<div align="center">
|
|
4
|
+
<h1>Poe Code ⚡</h1>
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
<a href="https://poe.com"><img src="https://img.shields.io/badge/Poe-Sign up-purple?logo=poe&logoColor=white&color=5D5CDE&style=for-the-badge" alt="Discord"></a>
|
|
7
|
+
<a href="https://www.npmjs.com/package/poe-code"><img alt="NPM version" src="https://img.shields.io/npm/v/next.svg?&style=for-the-badge&color=09B16B"></a>
|
|
8
|
+
<a href="https://discord.gg/joinpoe"><img src="https://img.shields.io/badge/Discord-Join-purple?logo=discord&logoColor=white&color=FF44D3&style=for-the-badge" alt="Discord"></a>
|
|
6
9
|
|
|
7
|
-
|
|
8
|
-
# Install Poe wrapper binaries.
|
|
9
|
-
npm install -g poe-code
|
|
10
|
+
</div>
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
poe-claude --help
|
|
13
|
-
```
|
|
12
|
+
Power your favorite coding agents (Claude Code, Codex, OpenCode, and more) with your Poe subscription—**no need to handle multiple providers/accounts.** Poe Code routes everything through the [Poe API](https://poe.com/api) .
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
Use it of a single session (`poe-code wrap claude`) or configure it as your default and use your tools normally.
|
|
16
15
|
|
|
17
|
-
## Make it default
|
|
18
|
-
|
|
19
|
-
This updates the provider’s config files so you can use the provider CLI directly.
|
|
20
16
|
|
|
17
|
+
## Quickstart
|
|
18
|
+
Start a coding session routing all your `claude` calls to Poe
|
|
21
19
|
```bash
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
npx poe-code wrap claude
|
|
21
|
+
# Also available: codex, opencode, kimi
|
|
22
|
+
```
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
npx poe-code@latest configure codex
|
|
24
|
+
or
|
|
27
25
|
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
## Set it as your default (works with CLIs and desktop apps)
|
|
27
|
+
This updates the provider’s config files so you can use the provider CLI directly.
|
|
30
28
|
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
```bash
|
|
30
|
+
# Start the interactive setup
|
|
31
|
+
npx poe-code configure
|
|
32
|
+
|
|
33
|
+
# Setup a specific agent
|
|
34
|
+
npx poe-code@latest configure codex # (or claude, opencode, kimi)
|
|
33
35
|
```
|
|
34
36
|
|
|
37
|
+
|
|
35
38
|
### Unconfigure (remove overrides)
|
|
36
39
|
|
|
37
40
|
```bash
|
|
38
|
-
npx poe-code
|
|
41
|
+
npx poe-code unconfigure claude
|
|
39
42
|
```
|
|
40
43
|
|
|
44
|
+
|
|
45
|
+
## Quick links
|
|
46
|
+
- [Utilities](#utilities)
|
|
47
|
+
- [Usage and Billing](#usage--billing)
|
|
48
|
+
- [MCP Server](#poe-mcp-server)
|
|
49
|
+
- [SDK](#sdk)
|
|
50
|
+
- [Poe API](https://poe.com/api)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
41
54
|
## Utilities
|
|
42
55
|
|
|
43
56
|
Utilities are especially useful for scripting and CI/CD.
|
|
44
57
|
|
|
45
|
-
|
|
58
|
+
#### Spawn a one-off prompt
|
|
46
59
|
|
|
47
60
|
```bash
|
|
48
61
|
npx poe-code@latest spawn codex "Say hello"
|
|
49
62
|
```
|
|
50
63
|
|
|
51
|
-
|
|
64
|
+
#### Spawn a prompt via stdin
|
|
52
65
|
|
|
53
66
|
```bash
|
|
54
67
|
echo "Say hello" | npx poe-code@latest spawn codex
|
|
55
68
|
```
|
|
56
69
|
|
|
57
|
-
|
|
70
|
+
#### Test a configured service
|
|
58
71
|
|
|
59
72
|
```bash
|
|
60
73
|
npx poe-code@latest test codex
|
package/package.json
CHANGED
package/dist/bin/poe-claude.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
var _major = parseInt(process.versions.node.split(".")[0], 10);
|
|
3
|
-
if (_major < 18) {
|
|
4
|
-
console.error(
|
|
5
|
-
"poe-claude requires Node.js 18 or later. Current: " + process.version
|
|
6
|
-
);
|
|
7
|
-
process.exit(1);
|
|
8
|
-
}
|
|
9
|
-
import { spawn } from "node:child_process";
|
|
10
|
-
import path from "node:path";
|
|
11
|
-
import { fileURLToPath } from "node:url";
|
|
12
|
-
|
|
13
|
-
const currentFile = fileURLToPath(import.meta.url);
|
|
14
|
-
const distDir = path.resolve(path.dirname(currentFile), "..");
|
|
15
|
-
const entry = path.join(distDir, "index.js");
|
|
16
|
-
const service = "claude-code";
|
|
17
|
-
const agentArgs = process.argv.slice(2);
|
|
18
|
-
const args = [entry, "wrap", service, "--", ...agentArgs];
|
|
19
|
-
const child = spawn(process.execPath, args, { stdio: "inherit" });
|
|
20
|
-
child.on("close", (code) => process.exit(code ?? 0));
|
|
21
|
-
child.on("error", (error) => {
|
|
22
|
-
throw error;
|
|
23
|
-
});
|
package/dist/bin/poe-codex.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
var _major = parseInt(process.versions.node.split(".")[0], 10);
|
|
3
|
-
if (_major < 18) {
|
|
4
|
-
console.error(
|
|
5
|
-
"poe-codex requires Node.js 18 or later. Current: " + process.version
|
|
6
|
-
);
|
|
7
|
-
process.exit(1);
|
|
8
|
-
}
|
|
9
|
-
import { spawn } from "node:child_process";
|
|
10
|
-
import path from "node:path";
|
|
11
|
-
import { fileURLToPath } from "node:url";
|
|
12
|
-
|
|
13
|
-
const currentFile = fileURLToPath(import.meta.url);
|
|
14
|
-
const distDir = path.resolve(path.dirname(currentFile), "..");
|
|
15
|
-
const entry = path.join(distDir, "index.js");
|
|
16
|
-
const service = "codex";
|
|
17
|
-
const agentArgs = process.argv.slice(2);
|
|
18
|
-
const args = [entry, "wrap", service, "--", ...agentArgs];
|
|
19
|
-
const child = spawn(process.execPath, args, { stdio: "inherit" });
|
|
20
|
-
child.on("close", (code) => process.exit(code ?? 0));
|
|
21
|
-
child.on("error", (error) => {
|
|
22
|
-
throw error;
|
|
23
|
-
});
|
package/dist/bin/poe-kimi-cli.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
var _major = parseInt(process.versions.node.split(".")[0], 10);
|
|
3
|
-
if (_major < 18) {
|
|
4
|
-
console.error(
|
|
5
|
-
"poe-kimi-cli requires Node.js 18 or later. Current: " + process.version
|
|
6
|
-
);
|
|
7
|
-
process.exit(1);
|
|
8
|
-
}
|
|
9
|
-
import { spawn } from "node:child_process";
|
|
10
|
-
import path from "node:path";
|
|
11
|
-
import { fileURLToPath } from "node:url";
|
|
12
|
-
|
|
13
|
-
const currentFile = fileURLToPath(import.meta.url);
|
|
14
|
-
const distDir = path.resolve(path.dirname(currentFile), "..");
|
|
15
|
-
const entry = path.join(distDir, "index.js");
|
|
16
|
-
const service = "kimi";
|
|
17
|
-
const agentArgs = process.argv.slice(2);
|
|
18
|
-
const args = [entry, "wrap", service, "--", ...agentArgs];
|
|
19
|
-
const child = spawn(process.execPath, args, { stdio: "inherit" });
|
|
20
|
-
child.on("close", (code) => process.exit(code ?? 0));
|
|
21
|
-
child.on("error", (error) => {
|
|
22
|
-
throw error;
|
|
23
|
-
});
|
package/dist/bin/poe-opencode.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
var _major = parseInt(process.versions.node.split(".")[0], 10);
|
|
3
|
-
if (_major < 18) {
|
|
4
|
-
console.error(
|
|
5
|
-
"poe-opencode requires Node.js 18 or later. Current: " + process.version
|
|
6
|
-
);
|
|
7
|
-
process.exit(1);
|
|
8
|
-
}
|
|
9
|
-
import { spawn } from "node:child_process";
|
|
10
|
-
import path from "node:path";
|
|
11
|
-
import { fileURLToPath } from "node:url";
|
|
12
|
-
|
|
13
|
-
const currentFile = fileURLToPath(import.meta.url);
|
|
14
|
-
const distDir = path.resolve(path.dirname(currentFile), "..");
|
|
15
|
-
const entry = path.join(distDir, "index.js");
|
|
16
|
-
const service = "opencode";
|
|
17
|
-
const agentArgs = process.argv.slice(2);
|
|
18
|
-
const args = [entry, "wrap", service, "--", ...agentArgs];
|
|
19
|
-
const child = spawn(process.execPath, args, { stdio: "inherit" });
|
|
20
|
-
child.on("close", (code) => process.exit(code ?? 0));
|
|
21
|
-
child.on("error", (error) => {
|
|
22
|
-
throw error;
|
|
23
|
-
});
|
package/dist/bin.cjs
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
var _major = parseInt(process.versions.node.split(".")[0], 10);
|
|
3
|
-
if (_major < 18) {
|
|
4
|
-
console.error(
|
|
5
|
-
"poe-code requires Node.js 18 or later. Current: " + process.version
|
|
6
|
-
);
|
|
7
|
-
process.exit(1);
|
|
8
|
-
}
|
|
9
|
-
import("./index.js").then(function (m) { m.main(); }).catch(function (err) { console.error(err); process.exit(1); });
|
|
@@ -1,26 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/cli/bootstrap.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
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;
|
package/dist/cli/bootstrap.js
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/cli/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { formatCommandNotFoundPanel, log, outro, symbols } from "@poe-code/design-system";
|
|
2
|
-
import { detectExecutionContext, formatCliHelpCommand } from "../utils/execution-context.js";
|
|
3
|
-
import { SilentError } from "./errors.js";
|
|
4
|
-
export function throwCommandNotFound(input) {
|
|
5
|
-
const { container, scope, unknownCommand, helpArgs, moduleUrl } = input;
|
|
6
|
-
const context = detectExecutionContext({
|
|
7
|
-
argv: process.argv,
|
|
8
|
-
env: container.env.variables,
|
|
9
|
-
moduleUrl
|
|
10
|
-
});
|
|
11
|
-
const helpCommand = formatCliHelpCommand(context, helpArgs);
|
|
12
|
-
const panel = formatCommandNotFoundPanel({
|
|
13
|
-
title: scope === "cli" ? "command not found" : `${scope} command not found`,
|
|
14
|
-
unknownCommand,
|
|
15
|
-
helpCommand
|
|
16
|
-
});
|
|
17
|
-
const logger = container.loggerFactory.create({
|
|
18
|
-
dryRun: false,
|
|
19
|
-
verbose: false,
|
|
20
|
-
scope
|
|
21
|
-
});
|
|
22
|
-
const shouldRenderIntroOutro = container.dependencies.logger == null;
|
|
23
|
-
if (shouldRenderIntroOutro) {
|
|
24
|
-
logger.intro(panel.title);
|
|
25
|
-
log.message(panel.label, { symbol: symbols.errorResolved });
|
|
26
|
-
outro(panel.footer);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
logger.error(`${panel.label}\n${panel.footer}`);
|
|
30
|
-
}
|
|
31
|
-
process.exitCode = 1;
|
|
32
|
-
throw new SilentError();
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=command-not-found.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"command-not-found.js","sourceRoot":"","sources":["../../src/cli/command-not-found.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE7F,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,oBAAoB,CAAC,KAMpC;IACC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAExE,MAAM,OAAO,GAAG,sBAAsB,CAAC;QACrC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS;QAC5B,SAAS;KACV,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,0BAA0B,CAAC;QACvC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,KAAK,oBAAoB;QAC3E,cAAc;QACd,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC;QAC5C,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,KAAK;QACd,KAAK;KACN,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC;IACrE,IAAI,sBAAsB,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QAC5D,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrB,MAAM,IAAI,WAAW,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
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 {};
|
|
@@ -1,31 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { Command } from "commander";
|
|
2
|
-
import type { CliContainer } from "../container.js";
|
|
3
|
-
export interface ConfigureCommandOptions {
|
|
4
|
-
apiKey?: string;
|
|
5
|
-
model?: string;
|
|
6
|
-
reasoningEffort?: string;
|
|
7
|
-
}
|
|
8
|
-
export declare function registerConfigureCommand(program: Command, container: CliContainer): Command;
|
|
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>;
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import { buildProviderContext, createExecutionResources, formatServiceList, resolveCommandFlags, resolveServiceAdapter, applyIsolatedConfiguration } from "./shared.js";
|
|
2
|
-
import { OperationCancelledError } from "../errors.js";
|
|
3
|
-
const serviceSelectionPrompt = (action) => `Pick an agent to ${action}:`;
|
|
4
|
-
import { saveConfiguredService } from "../../services/credentials.js";
|
|
5
|
-
import { combineMutationObservers, createMutationReporter } from "../../services/mutation-events.js";
|
|
6
|
-
import { createConfigurePayload } from "./configure-payload.js";
|
|
7
|
-
export function registerConfigureCommand(program, container) {
|
|
8
|
-
const serviceNames = container.registry.list().map((service) => service.name);
|
|
9
|
-
const serviceDescription = `Agent to configure${formatServiceList(serviceNames)}`;
|
|
10
|
-
const configureCommand = program
|
|
11
|
-
.command("configure")
|
|
12
|
-
.description("Configure developer tooling for Poe API.")
|
|
13
|
-
.argument("[agent]", serviceDescription)
|
|
14
|
-
.option("--api-key <key>", "Poe API key")
|
|
15
|
-
.option("--model <model>", "Model identifier")
|
|
16
|
-
.option("--reasoning-effort <level>", "Reasoning effort level")
|
|
17
|
-
.action(async (service, options) => {
|
|
18
|
-
const resolved = await resolveServiceArgument(program, container, service, { action: "configure" });
|
|
19
|
-
await executeConfigure(program, container, resolved, options);
|
|
20
|
-
});
|
|
21
|
-
return configureCommand;
|
|
22
|
-
}
|
|
23
|
-
export async function executeConfigure(program, container, service, options) {
|
|
24
|
-
const adapter = resolveServiceAdapter(container, service);
|
|
25
|
-
const canonicalService = adapter.name;
|
|
26
|
-
const flags = resolveCommandFlags(program);
|
|
27
|
-
const resources = createExecutionResources(container, flags, `configure:${canonicalService}`);
|
|
28
|
-
resources.logger.intro(`configure ${canonicalService}`);
|
|
29
|
-
const providerContext = buildProviderContext(container, adapter, resources);
|
|
30
|
-
const payload = await createConfigurePayload({
|
|
31
|
-
container,
|
|
32
|
-
flags,
|
|
33
|
-
options,
|
|
34
|
-
context: providerContext,
|
|
35
|
-
adapter,
|
|
36
|
-
logger: resources.logger
|
|
37
|
-
});
|
|
38
|
-
await container.registry.invoke(canonicalService, "configure", async (entry) => {
|
|
39
|
-
if (!entry.configure) {
|
|
40
|
-
throw new Error(`Agent "${canonicalService}" does not support configure.`);
|
|
41
|
-
}
|
|
42
|
-
const tracker = createMutationTracker();
|
|
43
|
-
const mutationLogger = createMutationReporter(resources.logger);
|
|
44
|
-
const observers = combineMutationObservers(tracker.observers, mutationLogger);
|
|
45
|
-
await entry.configure({
|
|
46
|
-
fs: providerContext.command.fs,
|
|
47
|
-
env: providerContext.env,
|
|
48
|
-
command: providerContext.command,
|
|
49
|
-
options: payload
|
|
50
|
-
}, observers
|
|
51
|
-
? {
|
|
52
|
-
observers
|
|
53
|
-
}
|
|
54
|
-
: undefined);
|
|
55
|
-
if (!flags.dryRun) {
|
|
56
|
-
await saveConfiguredService({
|
|
57
|
-
fs: container.fs,
|
|
58
|
-
filePath: providerContext.env.credentialsPath,
|
|
59
|
-
service: canonicalService,
|
|
60
|
-
metadata: {
|
|
61
|
-
files: tracker.files()
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
const isolated = adapter.isolatedEnv;
|
|
66
|
-
if (isolated && isolated.requiresConfig !== false) {
|
|
67
|
-
const isolatedTracker = createMutationTracker();
|
|
68
|
-
const isolatedLogger = createMutationReporter(resources.logger);
|
|
69
|
-
const isolatedObservers = combineMutationObservers(isolatedTracker.observers, isolatedLogger);
|
|
70
|
-
await applyIsolatedConfiguration({
|
|
71
|
-
adapter: entry,
|
|
72
|
-
providerContext,
|
|
73
|
-
payload,
|
|
74
|
-
isolated,
|
|
75
|
-
providerName: adapter.name,
|
|
76
|
-
observers: isolatedObservers
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
const dryMessage = canonicalService === "claude-code"
|
|
81
|
-
? `${adapter.label} (dry run)`
|
|
82
|
-
: `Dry run: would configure ${adapter.label}.`;
|
|
83
|
-
resources.context.complete({
|
|
84
|
-
success: `Configured ${adapter.label}.`,
|
|
85
|
-
dry: dryMessage
|
|
86
|
-
});
|
|
87
|
-
if (!flags.dryRun) {
|
|
88
|
-
const postMessages = resolvePostConfigureMessages(adapter);
|
|
89
|
-
resources.logger.nextSteps(postMessages);
|
|
90
|
-
}
|
|
91
|
-
resources.context.finalize();
|
|
92
|
-
}
|
|
93
|
-
function createMutationTracker() {
|
|
94
|
-
const targets = new Set();
|
|
95
|
-
const observers = {
|
|
96
|
-
onComplete(details, outcome) {
|
|
97
|
-
if (!outcome.changed || !details.targetPath) {
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
if (outcome.effect !== "write" && outcome.effect !== "delete") {
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
targets.add(details.targetPath);
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
|
-
return {
|
|
107
|
-
observers,
|
|
108
|
-
files() {
|
|
109
|
-
return Array.from(targets).sort();
|
|
110
|
-
}
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
function resolvePostConfigureMessages(provider) {
|
|
114
|
-
return provider.postConfigureMessages ?? [];
|
|
115
|
-
}
|
|
116
|
-
export async function resolveServiceArgument(program, container, provided, selectionContext) {
|
|
117
|
-
if (provided) {
|
|
118
|
-
return provided;
|
|
119
|
-
}
|
|
120
|
-
const services = container.registry.list();
|
|
121
|
-
const action = selectionContext?.action ?? "configure";
|
|
122
|
-
if (services.length === 0) {
|
|
123
|
-
throw new Error(`No agents available to ${action}.`);
|
|
124
|
-
}
|
|
125
|
-
const flags = resolveCommandFlags(program);
|
|
126
|
-
const selectionLogger = container.loggerFactory.create({
|
|
127
|
-
dryRun: flags.dryRun,
|
|
128
|
-
verbose: flags.verbose,
|
|
129
|
-
scope: action
|
|
130
|
-
});
|
|
131
|
-
selectionLogger.intro(action);
|
|
132
|
-
const choices = services.map((service) => ({
|
|
133
|
-
title: service.label,
|
|
134
|
-
value: service.name
|
|
135
|
-
}));
|
|
136
|
-
const descriptor = container.promptLibrary.serviceSelection({
|
|
137
|
-
message: serviceSelectionPrompt(action),
|
|
138
|
-
choices
|
|
139
|
-
});
|
|
140
|
-
const response = await container.prompts(descriptor);
|
|
141
|
-
const selectionValue = response[descriptor.name];
|
|
142
|
-
if (typeof selectionValue !== "string") {
|
|
143
|
-
throw new OperationCancelledError();
|
|
144
|
-
}
|
|
145
|
-
const resolved = services.find((service) => service.name === selectionValue);
|
|
146
|
-
if (!resolved) {
|
|
147
|
-
throw new Error("Invalid agent selection.");
|
|
148
|
-
}
|
|
149
|
-
return resolved.name;
|
|
150
|
-
}
|
|
151
|
-
//# sourceMappingURL=configure.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../../src/cli/commands/configure.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { CliContainer } from "../container.js";
|
|
2
|
-
import type { ProviderService } from "../service-registry.js";
|
|
3
|
-
import { type CommandFlags } from "./shared.js";
|
|
4
|
-
import type { ConfigureCommandOptions } from "./configure.js";
|
|
5
|
-
export declare function ensureIsolatedConfigForService(input: {
|
|
6
|
-
container: CliContainer;
|
|
7
|
-
adapter: ProviderService;
|
|
8
|
-
service: string;
|
|
9
|
-
options?: ConfigureCommandOptions;
|
|
10
|
-
flags: CommandFlags;
|
|
11
|
-
refresh?: boolean;
|
|
12
|
-
}): Promise<void>;
|