poe-code 2.0.58-beta.1 → 2.0.59
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 +41 -0
- package/dist/cli/commands/configure.d.ts +3 -1
- package/dist/cli/commands/configure.js +31 -27
- package/dist/cli/commands/configure.js.map +1 -1
- package/dist/cli/commands/ensure-isolated-config.js +1 -1
- package/dist/cli/commands/ensure-isolated-config.js.map +1 -1
- package/dist/cli/commands/install.js +10 -5
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/query.js +1 -1
- package/dist/cli/commands/query.js.map +1 -1
- package/dist/cli/commands/shared.d.ts +1 -0
- package/dist/cli/commands/shared.js +8 -1
- package/dist/cli/commands/shared.js.map +1 -1
- package/dist/cli/commands/spawn.js +32 -38
- package/dist/cli/commands/spawn.js.map +1 -1
- package/dist/cli/commands/test.js +11 -6
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/unconfigure.js +5 -3
- package/dist/cli/commands/unconfigure.js.map +1 -1
- package/dist/cli/commands/version.js +1 -1
- package/dist/cli/commands/version.js.map +1 -1
- package/dist/cli/commands/wrap.js +5 -3
- package/dist/cli/commands/wrap.js.map +1 -1
- package/dist/cli/constants.d.ts +1 -1
- package/dist/cli/constants.js +1 -1
- package/dist/cli/constants.js.map +1 -1
- package/dist/cli/logger.d.ts +2 -0
- package/dist/cli/logger.js +8 -0
- package/dist/cli/logger.js.map +1 -1
- package/dist/cli/program.js +74 -26
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/prompts.d.ts +9 -2
- package/dist/cli/prompts.js +4 -3
- package/dist/cli/prompts.js.map +1 -1
- package/dist/cli/ui/design-language.d.ts +30 -0
- package/dist/cli/ui/design-language.js +38 -0
- package/dist/cli/ui/design-language.js.map +1 -0
- package/dist/cli/ui/service-menu.d.ts +1 -0
- package/dist/cli/ui/service-menu.js +6 -4
- package/dist/cli/ui/service-menu.js.map +1 -1
- package/dist/cli/ui/theme.d.ts +1 -0
- package/dist/cli/ui/theme.js +6 -3
- package/dist/cli/ui/theme.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- 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/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 +24 -0
- package/dist/sdk/types.js +2 -0
- package/dist/sdk/types.js.map +1 -0
- package/dist/templates/codex/config.toml.hbs +1 -1
- package/dist/utils/dry-run.d.ts +1 -0
- package/dist/utils/dry-run.js +115 -4
- package/dist/utils/dry-run.js.map +1 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -80,3 +80,44 @@ npx poe-code@latest install kimi
|
|
|
80
80
|
|
|
81
81
|
- `--dry-run` – show every mutation without touching disk.
|
|
82
82
|
- `--yes` – accept defaults for prompts.
|
|
83
|
+
|
|
84
|
+
## SDK
|
|
85
|
+
|
|
86
|
+
Use `poe-code` programmatically in your own code:
|
|
87
|
+
|
|
88
|
+
```typescript
|
|
89
|
+
import { spawn, getPoeApiKey } from "poe-code"
|
|
90
|
+
|
|
91
|
+
// Get stored API key
|
|
92
|
+
const apiKey = await getPoeApiKey()
|
|
93
|
+
|
|
94
|
+
// Run a prompt through a provider
|
|
95
|
+
const result = await spawn("claude-code", {
|
|
96
|
+
prompt: "Fix the bug in auth.ts",
|
|
97
|
+
cwd: "/path/to/project",
|
|
98
|
+
model: "claude-sonnet-4"
|
|
99
|
+
})
|
|
100
|
+
|
|
101
|
+
console.log(result.stdout)
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### `spawn(service, options)`
|
|
105
|
+
|
|
106
|
+
Runs a single prompt through a configured service CLI.
|
|
107
|
+
|
|
108
|
+
- `service` – Service identifier (`claude-code`, `codex`, `opencode`)
|
|
109
|
+
- `options.prompt` – The prompt to send
|
|
110
|
+
- `options.cwd` – Working directory for the service CLI (optional)
|
|
111
|
+
- `options.model` – Model identifier override (optional)
|
|
112
|
+
- `options.args` – Additional arguments forwarded to the CLI (optional)
|
|
113
|
+
|
|
114
|
+
Returns `{ stdout, stderr, exitCode }`.
|
|
115
|
+
|
|
116
|
+
### `getPoeApiKey()`
|
|
117
|
+
|
|
118
|
+
Reads the Poe API key with the following priority:
|
|
119
|
+
|
|
120
|
+
1. `POE_API_KEY` environment variable
|
|
121
|
+
2. Credentials file (`~/.poe-code/credentials.json`)
|
|
122
|
+
|
|
123
|
+
Throws if no credentials found.
|
|
@@ -7,4 +7,6 @@ export interface ConfigureCommandOptions {
|
|
|
7
7
|
}
|
|
8
8
|
export declare function registerConfigureCommand(program: Command, container: CliContainer): Command;
|
|
9
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
|
|
10
|
+
export declare function resolveServiceArgument(program: Command, container: CliContainer, provided?: string, selectionContext?: {
|
|
11
|
+
action: string;
|
|
12
|
+
}): Promise<string>;
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
import { buildProviderContext, createExecutionResources, resolveCommandFlags, resolveServiceAdapter, applyIsolatedConfiguration } from "./shared.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { buildProviderContext, createExecutionResources, formatServiceList, resolveCommandFlags, resolveServiceAdapter, applyIsolatedConfiguration } from "./shared.js";
|
|
2
|
+
import { createCliDesignLanguage } from "../ui/design-language.js";
|
|
3
|
+
import { OperationCancelledError } from "../errors.js";
|
|
4
4
|
import { saveConfiguredService } from "../../services/credentials.js";
|
|
5
5
|
import { combineMutationObservers, createMutationReporter } from "../../services/mutation-events.js";
|
|
6
6
|
import { createConfigurePayload } from "./configure-payload.js";
|
|
7
7
|
export function registerConfigureCommand(program, container) {
|
|
8
|
+
const serviceNames = container.registry.list().map((service) => service.name);
|
|
9
|
+
const serviceDescription = `Agent to configure${formatServiceList(serviceNames)}`;
|
|
8
10
|
const configureCommand = program
|
|
9
11
|
.command("configure")
|
|
10
12
|
.description("Configure developer tooling for Poe API.")
|
|
11
|
-
.argument("[
|
|
13
|
+
.argument("[agent]", serviceDescription)
|
|
12
14
|
.option("--api-key <key>", "Poe API key")
|
|
13
15
|
.option("--model <model>", "Model identifier")
|
|
14
16
|
.option("--reasoning-effort <level>", "Reasoning effort level")
|
|
15
17
|
.action(async (service, options) => {
|
|
16
|
-
const resolved = await resolveServiceArgument(program, container, service);
|
|
18
|
+
const resolved = await resolveServiceArgument(program, container, service, { action: "configure" });
|
|
17
19
|
await executeConfigure(program, container, resolved, options);
|
|
18
20
|
});
|
|
19
21
|
return configureCommand;
|
|
@@ -35,7 +37,7 @@ export async function executeConfigure(program, container, service, options) {
|
|
|
35
37
|
});
|
|
36
38
|
await container.registry.invoke(canonicalService, "configure", async (entry) => {
|
|
37
39
|
if (!entry.configure) {
|
|
38
|
-
throw new Error(`
|
|
40
|
+
throw new Error(`Agent "${canonicalService}" does not support configure.`);
|
|
39
41
|
}
|
|
40
42
|
const tracker = createMutationTracker();
|
|
41
43
|
const mutationLogger = createMutationReporter(resources.logger);
|
|
@@ -111,38 +113,40 @@ function createMutationTracker() {
|
|
|
111
113
|
function resolvePostConfigureMessages(provider) {
|
|
112
114
|
return provider.postConfigureMessages ?? [];
|
|
113
115
|
}
|
|
114
|
-
export async function resolveServiceArgument(program, container, provided) {
|
|
116
|
+
export async function resolveServiceArgument(program, container, provided, selectionContext) {
|
|
115
117
|
if (provided) {
|
|
116
118
|
return provided;
|
|
117
119
|
}
|
|
118
120
|
const services = container.registry.list();
|
|
121
|
+
const action = selectionContext?.action ?? "configure";
|
|
119
122
|
if (services.length === 0) {
|
|
120
|
-
throw new Error(
|
|
123
|
+
throw new Error(`No agents available to ${action}.`);
|
|
121
124
|
}
|
|
122
125
|
const flags = resolveCommandFlags(program);
|
|
123
|
-
const
|
|
126
|
+
const selectionLogger = container.loggerFactory.create({
|
|
124
127
|
dryRun: flags.dryRun,
|
|
125
|
-
verbose:
|
|
126
|
-
scope:
|
|
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 design = createCliDesignLanguage(container.env);
|
|
137
|
+
const descriptor = container.promptLibrary.serviceSelection({
|
|
138
|
+
message: design.copy.serviceSelection(action),
|
|
139
|
+
choices
|
|
127
140
|
});
|
|
128
|
-
const menuTheme = createMenuTheme(container.env);
|
|
129
|
-
const menuLines = renderServiceMenu(services, { theme: menuTheme });
|
|
130
|
-
menuLines.forEach((line) => logger.info(line));
|
|
131
|
-
const descriptor = container.promptLibrary.serviceSelection();
|
|
132
141
|
const response = await container.prompts(descriptor);
|
|
133
|
-
const
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
: typeof selection === "string"
|
|
137
|
-
? Number.parseInt(selection, 10)
|
|
138
|
-
: NaN;
|
|
139
|
-
if (!Number.isInteger(normalized)) {
|
|
140
|
-
throw new Error("Invalid service selection.");
|
|
142
|
+
const selectionValue = response[descriptor.name];
|
|
143
|
+
if (typeof selectionValue !== "string") {
|
|
144
|
+
throw new OperationCancelledError();
|
|
141
145
|
}
|
|
142
|
-
const
|
|
143
|
-
if (
|
|
144
|
-
throw new Error("Invalid
|
|
146
|
+
const resolved = services.find((service) => service.name === selectionValue);
|
|
147
|
+
if (!resolved) {
|
|
148
|
+
throw new Error("Invalid agent selection.");
|
|
145
149
|
}
|
|
146
|
-
return
|
|
150
|
+
return resolved.name;
|
|
147
151
|
}
|
|
148
152
|
//# sourceMappingURL=configure.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../../src/cli/commands/configure.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../../src/cli/commands/configure.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,7 @@ export async function ensureIsolatedConfigForService(input) {
|
|
|
31
31
|
});
|
|
32
32
|
await container.registry.invoke(canonicalService, "configure", async (entry) => {
|
|
33
33
|
if (!entry.configure) {
|
|
34
|
-
throw new Error(`
|
|
34
|
+
throw new Error(`Agent "${canonicalService}" does not support configure.`);
|
|
35
35
|
}
|
|
36
36
|
const mutationLogger = createMutationReporter(resources.logger);
|
|
37
37
|
await applyIsolatedConfiguration({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-isolated-config.js","sourceRoot":"","sources":["../../../src/cli/commands/ensure-isolated-config.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAE3B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EACL,sBAAsB,EACvB,MAAM,mCAAmC,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,KAOpD;IACC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC;IAC7C,MAAM,SAAS,GAAG,wBAAwB,CACxC,SAAS,EACT,KAAK,EACL,YAAY,gBAAgB,EAAE,CAC/B,CAAC;IACF,MAAM,eAAe,GAAG,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC5E,IAAI,QAAQ,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;QACtC,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAC7C,SAAS,CAAC,GAAG,EACb,QAAQ,EACR,OAAO,CAAC,IAAI,EACZ,SAAS,CAAC,EAAE,CACb,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAC1C,SAAS,CAAC,EAAE,EACZ,OAAO,CAAC,eAAgB,CACzB,CAAC;IACF,IAAI,SAAS,IAAI,CAAC,aAAa,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC;QAC3C,SAAS;QACT,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;QACpC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;QAC5B,OAAO,EAAE,eAAe;QACxB,OAAO;QACP,MAAM,EAAE,SAAS,CAAC,MAAM;KACzB,CAAC,CAAC;IAEH,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC7E,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"ensure-isolated-config.js","sourceRoot":"","sources":["../../../src/cli/commands/ensure-isolated-config.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAE3B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EACL,sBAAsB,EACvB,MAAM,mCAAmC,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,KAOpD;IACC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC;IAC7C,MAAM,SAAS,GAAG,wBAAwB,CACxC,SAAS,EACT,KAAK,EACL,YAAY,gBAAgB,EAAE,CAC/B,CAAC;IACF,MAAM,eAAe,GAAG,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC5E,IAAI,QAAQ,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;QACtC,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAC7C,SAAS,CAAC,GAAG,EACb,QAAQ,EACR,OAAO,CAAC,IAAI,EACZ,SAAS,CAAC,EAAE,CACb,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAC1C,SAAS,CAAC,EAAE,EACZ,OAAO,CAAC,eAAgB,CACzB,CAAC;IACF,IAAI,SAAS,IAAI,CAAC,aAAa,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC;QAC3C,SAAS;QACT,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;QACpC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;QAC5B,OAAO,EAAE,eAAe;QACxB,OAAO;QACP,MAAM,EAAE,SAAS,CAAC,MAAM;KACzB,CAAC,CAAC;IAEH,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC7E,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,UAAU,gBAAgB,+BAA+B,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,cAAc,GAAG,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,0BAA0B,CAAC;YAC/B,OAAO,EAAE,KAAK;YACd,eAAe;YACf,OAAO;YACP,QAAQ;YACR,YAAY,EAAE,OAAO,CAAC,IAAI;YAC1B,SAAS,EAAE,cAAc;SAC1B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAC1C,SAAS,CAAC,EAAE,EACZ,OAAO,CAAC,eAAgB,CACzB,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,CAAC,KAAK,0CAA0C,OAAO,CAAC,eAAe,GAAG,CACrF,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import { buildProviderContext, createExecutionResources, resolveCommandFlags, resolveServiceAdapter } from "./shared.js";
|
|
1
|
+
import { buildProviderContext, createExecutionResources, resolveCommandFlags, resolveServiceAdapter, formatServiceList } from "./shared.js";
|
|
2
2
|
import { resolveServiceArgument } from "./configure.js";
|
|
3
3
|
export function registerInstallCommand(program, container) {
|
|
4
|
+
const serviceNames = container.registry
|
|
5
|
+
.list()
|
|
6
|
+
.filter((service) => typeof service.install === "function")
|
|
7
|
+
.map((service) => service.name);
|
|
8
|
+
const serviceDescription = `Agent to install${formatServiceList(serviceNames)}`;
|
|
4
9
|
return program
|
|
5
10
|
.command("install")
|
|
6
|
-
.description("Install tooling for a configured
|
|
7
|
-
.argument("[
|
|
11
|
+
.description("Install tooling for a configured agent.")
|
|
12
|
+
.argument("[agent]", serviceDescription)
|
|
8
13
|
.action(async (service) => {
|
|
9
|
-
const resolved = await resolveServiceArgument(program, container, service);
|
|
14
|
+
const resolved = await resolveServiceArgument(program, container, service, { action: "install" });
|
|
10
15
|
await executeInstall(program, container, resolved);
|
|
11
16
|
});
|
|
12
17
|
}
|
|
@@ -19,7 +24,7 @@ export async function executeInstall(program, container, service) {
|
|
|
19
24
|
const providerContext = buildProviderContext(container, adapter, resources);
|
|
20
25
|
await container.registry.invoke(canonicalService, "install", async (entry) => {
|
|
21
26
|
if (!entry.install) {
|
|
22
|
-
throw new Error(`
|
|
27
|
+
throw new Error(`Agent "${canonicalService}" does not support install.`);
|
|
23
28
|
}
|
|
24
29
|
await entry.install(providerContext);
|
|
25
30
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,UAAU,sBAAsB,CACpC,OAAgB,EAChB,SAAuB;IAEvB,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ;SACpC,IAAI,EAAE;SACN,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC;SAC1D,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,kBAAkB,GACtB,mBAAmB,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC;IACvD,OAAO,OAAO;SACX,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,yCAAyC,CAAC;SACtD,QAAQ,CACP,SAAS,EACT,kBAAkB,CACnB;SACA,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,EAAE;QAC5C,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAC3C,OAAO,EACP,SAAS,EACT,OAAO,EACP,EAAE,MAAM,EAAE,SAAS,EAAE,CACtB,CAAC;QACF,MAAM,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAgB,EAChB,SAAuB,EACvB,OAAe;IAEf,MAAM,OAAO,GAAG,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IACtC,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,wBAAwB,CACxC,SAAS,EACT,KAAK,EACL,WAAW,gBAAgB,EAAE,CAC9B,CAAC;IAEF,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,gBAAgB,EAAE,CAAC,CAAC;IAEtD,MAAM,eAAe,GAAG,oBAAoB,CAC1C,SAAS,EACT,OAAO,EACP,SAAS,CACV,CAAC;IAEF,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC3E,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,UAAU,gBAAgB,6BAA6B,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GACd,gBAAgB,KAAK,aAAa;QAChC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,oBAAoB;QACtC,CAAC,CAAC,0BAA0B,OAAO,CAAC,KAAK,GAAG,CAAC;IAEjD,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;QACzB,OAAO,EAAE,aAAa,OAAO,CAAC,KAAK,GAAG;QACtC,GAAG,EAAE,UAAU;KAChB,CAAC,CAAC;IAEH,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { loadCredentials } from "../../services/credentials.js";
|
|
|
4
4
|
export function registerQueryCommand(program, container, options = {}) {
|
|
5
5
|
program
|
|
6
6
|
.command("query")
|
|
7
|
-
.description("Query an LLM via Poe API directly")
|
|
7
|
+
.description("Query an LLM via Poe API directly.")
|
|
8
8
|
.option("--model <model>", "Model identifier", options.defaultModel ?? DEFAULT_FRONTIER_MODEL)
|
|
9
9
|
.option("--system <prompt>", "System prompt")
|
|
10
10
|
.argument("[prompt]", "User prompt (if not provided, reads from stdin)")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAMhE,MAAM,UAAU,oBAAoB,CAClC,OAAgB,EAChB,SAAuB,EACvB,UAAuC,EAAE;IAEzC,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@ export declare function createExecutionResources(container: CliContainer, flags:
|
|
|
18
18
|
export declare function buildProviderContext(container: CliContainer, adapter: ProviderService, resources: ExecutionResources): ProviderContext;
|
|
19
19
|
export declare function listIsolatedServiceIds(container: CliContainer): string[];
|
|
20
20
|
export declare function resolveServiceAdapter(container: CliContainer, service: string): ProviderService;
|
|
21
|
+
export declare function formatServiceList(names: string[]): string;
|
|
21
22
|
export declare function applyIsolatedConfiguration(input: {
|
|
22
23
|
adapter: ProviderService;
|
|
23
24
|
providerContext: ProviderContext;
|
|
@@ -52,10 +52,17 @@ export function listIsolatedServiceIds(container) {
|
|
|
52
52
|
export function resolveServiceAdapter(container, service) {
|
|
53
53
|
const adapter = container.registry.get(service);
|
|
54
54
|
if (!adapter) {
|
|
55
|
-
throw new Error(`Unknown
|
|
55
|
+
throw new Error(`Unknown agent "${service}".`);
|
|
56
56
|
}
|
|
57
57
|
return adapter;
|
|
58
58
|
}
|
|
59
|
+
export function formatServiceList(names) {
|
|
60
|
+
const unique = Array.from(new Set(names.filter((name) => name.length > 0)));
|
|
61
|
+
if (unique.length === 0) {
|
|
62
|
+
return "";
|
|
63
|
+
}
|
|
64
|
+
return ` (${unique.join(" | ")})`;
|
|
65
|
+
}
|
|
59
66
|
export async function applyIsolatedConfiguration(input) {
|
|
60
67
|
await input.adapter.configure({
|
|
61
68
|
fs: input.providerContext.command.fs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/cli/commands/shared.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,0BAA0B,EAE3B,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAapE,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IACvC,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5B,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5B,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,SAAuB,EACvB,KAAmB,EACnB,KAAa;IAEb,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC;QAChD,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK;KACN,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,0BAA0B,CAAC,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC;QAC9C,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,UAAU;QAClB,MAAM;KACP,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,OAAO;KACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,SAAuB,EACvB,OAAwB,EACxB,SAA6B;IAE7B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC9C,OAAO;QACL,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,SAA6B;IAE7B,OAAO,KAAK,EAAE,KAAK,EAAE,EAAE;QACrB,MAAM,KAAK,CAAC,GAAG,CAAC;YACd,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;YACzC,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,UAAU;YACxC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;SACzD,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,SAAuB;IAC5D,OAAO,SAAS,CAAC,QAAQ;SACtB,IAAI,EAAE;SACN,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;SACnD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,SAAuB,EACvB,OAAe;IAEf,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/cli/commands/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import {
|
|
2
|
+
import { createExecutionResources, resolveCommandFlags, resolveServiceAdapter, formatServiceList } from "./shared.js";
|
|
3
|
+
import { spawnCore } from "../../sdk/spawn-core.js";
|
|
3
4
|
export function registerSpawnCommand(program, container, options = {}) {
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
5
|
+
const spawnServices = container.registry
|
|
6
|
+
.list()
|
|
7
|
+
.filter((service) => typeof service.spawn === "function")
|
|
8
|
+
.map((service) => service.name);
|
|
9
|
+
const extraServices = options.extraServices ?? [];
|
|
10
|
+
const serviceList = [...spawnServices, ...extraServices];
|
|
11
|
+
const serviceDescription = `Agent to spawn${formatServiceList(serviceList)}`;
|
|
9
12
|
program
|
|
10
13
|
.command("spawn")
|
|
11
|
-
.description("Run a single prompt through a configured
|
|
12
|
-
.option("--model <model>", "Model identifier override passed to the
|
|
13
|
-
.option("-C, --cwd <path>", "Working directory for the
|
|
14
|
+
.description("Run a single prompt through a configured agent CLI.")
|
|
15
|
+
.option("--model <model>", "Model identifier override passed to the agent CLI")
|
|
16
|
+
.option("-C, --cwd <path>", "Working directory for the agent CLI")
|
|
14
17
|
.option("--stdin", "Read the prompt from stdin")
|
|
15
|
-
.argument("<
|
|
18
|
+
.argument("<agent>", serviceDescription)
|
|
16
19
|
.argument("[prompt]", "Prompt text to send (or '-' / stdin)")
|
|
17
|
-
.argument("[agentArgs...]", "Additional arguments forwarded to the
|
|
20
|
+
.argument("[agentArgs...]", "Additional arguments forwarded to the agent CLI")
|
|
18
21
|
.action(async function (service, promptText, agentArgs = []) {
|
|
19
22
|
const flags = resolveCommandFlags(program);
|
|
20
|
-
const resources = createExecutionResources(container, flags, `spawn:${service}`);
|
|
21
23
|
const commandOptions = this.opts();
|
|
22
24
|
const cwdOverride = resolveSpawnWorkingDirectory(container.env.cwd, commandOptions.cwd);
|
|
23
25
|
const wantsStdinFlag = commandOptions.stdin === true;
|
|
@@ -50,8 +52,11 @@ export function registerSpawnCommand(program, container, options = {}) {
|
|
|
50
52
|
cwd: cwdOverride,
|
|
51
53
|
useStdin: shouldReadFromStdin
|
|
52
54
|
};
|
|
55
|
+
// Check for custom handlers first
|
|
53
56
|
const directHandler = options.handlers?.[service];
|
|
54
57
|
if (directHandler) {
|
|
58
|
+
const resources = createExecutionResources(container, flags, `spawn:${service}`);
|
|
59
|
+
resources.logger.intro(`spawn ${service}`);
|
|
55
60
|
await directHandler({
|
|
56
61
|
container,
|
|
57
62
|
service,
|
|
@@ -59,10 +64,13 @@ export function registerSpawnCommand(program, container, options = {}) {
|
|
|
59
64
|
flags,
|
|
60
65
|
resources
|
|
61
66
|
});
|
|
67
|
+
resources.context.finalize();
|
|
62
68
|
return;
|
|
63
69
|
}
|
|
64
70
|
const adapter = resolveServiceAdapter(container, service);
|
|
65
71
|
const canonicalService = adapter.name;
|
|
72
|
+
const resources = createExecutionResources(container, flags, `spawn:${canonicalService}`);
|
|
73
|
+
resources.logger.intro(`spawn ${canonicalService}`);
|
|
66
74
|
const canonicalHandler = options.handlers?.[canonicalService];
|
|
67
75
|
if (canonicalHandler) {
|
|
68
76
|
await canonicalHandler({
|
|
@@ -72,37 +80,20 @@ export function registerSpawnCommand(program, container, options = {}) {
|
|
|
72
80
|
flags,
|
|
73
81
|
resources
|
|
74
82
|
});
|
|
83
|
+
resources.context.finalize();
|
|
75
84
|
return;
|
|
76
85
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
const providerContext = buildProviderContext(container, adapter, resources);
|
|
86
|
+
// Use SDK core spawn implementation
|
|
87
|
+
const result = await spawnCore(container, canonicalService, spawnOptions, {
|
|
88
|
+
dryRun: flags.dryRun,
|
|
89
|
+
verbose: flags.verbose
|
|
90
|
+
});
|
|
91
|
+
// Handle dry run - spawnCore already logged the message
|
|
84
92
|
if (flags.dryRun) {
|
|
85
|
-
|
|
86
|
-
? ` with args ${JSON.stringify(spawnOptions.args)}`
|
|
87
|
-
: "";
|
|
88
|
-
const cwdSuffix = spawnOptions.cwd ? ` from ${spawnOptions.cwd}` : "";
|
|
89
|
-
const promptDetail = spawnOptions.useStdin
|
|
90
|
-
? `(stdin, ${spawnOptions.prompt.length} chars)`
|
|
91
|
-
: `"${spawnOptions.prompt}"`;
|
|
92
|
-
resources.logger.dryRun(`Dry run: would spawn ${adapter.label} with prompt ${promptDetail}${extra}${cwdSuffix}.`);
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
const result = (await container.registry.invoke(canonicalService, "spawn", async (entry) => {
|
|
96
|
-
if (!entry.spawn) {
|
|
97
|
-
throw new Error(`${adapter.label} does not support spawn.`);
|
|
98
|
-
}
|
|
99
|
-
const output = await entry.spawn(providerContext, spawnOptions);
|
|
100
|
-
return output;
|
|
101
|
-
}));
|
|
102
|
-
if (!result) {
|
|
103
|
-
resources.logger.info(`${adapter.label} spawn completed.`);
|
|
93
|
+
resources.context.finalize();
|
|
104
94
|
return;
|
|
105
95
|
}
|
|
96
|
+
// Handle result output
|
|
106
97
|
if (result.exitCode !== 0) {
|
|
107
98
|
const detail = result.stderr.trim() || result.stdout.trim();
|
|
108
99
|
const suffix = detail ? `: ${detail}` : "";
|
|
@@ -111,14 +102,17 @@ export function registerSpawnCommand(program, container, options = {}) {
|
|
|
111
102
|
const trimmedStdout = result.stdout.trim();
|
|
112
103
|
if (trimmedStdout) {
|
|
113
104
|
resources.logger.info(trimmedStdout);
|
|
105
|
+
resources.context.finalize();
|
|
114
106
|
return;
|
|
115
107
|
}
|
|
116
108
|
const trimmedStderr = result.stderr.trim();
|
|
117
109
|
if (trimmedStderr) {
|
|
118
110
|
resources.logger.info(trimmedStderr);
|
|
111
|
+
resources.context.finalize();
|
|
119
112
|
return;
|
|
120
113
|
}
|
|
121
114
|
resources.logger.info(`${adapter.label} spawn completed.`);
|
|
115
|
+
resources.context.finalize();
|
|
122
116
|
});
|
|
123
117
|
}
|
|
124
118
|
function resolveSpawnWorkingDirectory(baseDir, candidate) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../../src/cli/commands/spawn.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../../src/cli/commands/spawn.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,22 @@
|
|
|
1
|
-
import { buildProviderContext, createExecutionResources, resolveCommandFlags, resolveServiceAdapter } from "./shared.js";
|
|
1
|
+
import { buildProviderContext, createExecutionResources, resolveCommandFlags, resolveServiceAdapter, formatServiceList } from "./shared.js";
|
|
2
2
|
import { resolveServiceArgument } from "./configure.js";
|
|
3
3
|
import { resolveIsolatedEnvDetails } from "../isolated-env.js";
|
|
4
4
|
import { formatCommandRunnerResult, stdoutMatchesExpected } from "../../utils/command-checks.js";
|
|
5
5
|
export function registerTestCommand(program, container) {
|
|
6
|
+
const serviceNames = container.registry
|
|
7
|
+
.list()
|
|
8
|
+
.filter((service) => typeof service.test === "function")
|
|
9
|
+
.map((service) => service.name);
|
|
10
|
+
const serviceDescription = `Agent to test${formatServiceList(serviceNames)}`;
|
|
6
11
|
return program
|
|
7
12
|
.command("test")
|
|
8
|
-
.description("Run
|
|
13
|
+
.description("Run agent health checks.")
|
|
9
14
|
.option("--stdin", "Verify stdin prompt support via spawn")
|
|
10
15
|
.option("--model <model>", "Model identifier override (requires --stdin)")
|
|
11
|
-
.argument("[
|
|
16
|
+
.argument("[agent]", serviceDescription)
|
|
12
17
|
.option("--isolated", "Run the health check using isolated configuration.")
|
|
13
18
|
.action(async function (service) {
|
|
14
|
-
const resolved = await resolveServiceArgument(program, container, service);
|
|
19
|
+
const resolved = await resolveServiceArgument(program, container, service, { action: "test" });
|
|
15
20
|
const opts = this.opts();
|
|
16
21
|
await executeTest(this, container, resolved, {
|
|
17
22
|
isolated: Boolean(opts.isolated),
|
|
@@ -57,7 +62,7 @@ export async function executeTest(program, container, service, options = {}) {
|
|
|
57
62
|
const prompt = `Output exactly: ${expectedOutput}`;
|
|
58
63
|
const result = (await container.registry.invoke(canonicalService, "spawn", async (entry) => {
|
|
59
64
|
if (!entry.spawn) {
|
|
60
|
-
throw new Error(`
|
|
65
|
+
throw new Error(`Agent "${canonicalService}" does not support spawn.`);
|
|
61
66
|
}
|
|
62
67
|
const output = await entry.spawn(providerContext, {
|
|
63
68
|
prompt,
|
|
@@ -85,7 +90,7 @@ export async function executeTest(program, container, service, options = {}) {
|
|
|
85
90
|
else {
|
|
86
91
|
await container.registry.invoke(canonicalService, "test", async (entry) => {
|
|
87
92
|
if (!entry.test) {
|
|
88
|
-
throw new Error(`
|
|
93
|
+
throw new Error(`Agent "${canonicalService}" does not support test.`);
|
|
89
94
|
}
|
|
90
95
|
const activeContext = isolatedDetails
|
|
91
96
|
? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/cli/commands/test.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/cli/commands/test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { unconfigureService } from "../../services/credentials.js";
|
|
2
2
|
import { createMutationReporter } from "../../services/mutation-events.js";
|
|
3
3
|
import { resolveIsolatedTargetDirectory } from "../isolated-env.js";
|
|
4
|
-
import { buildProviderContext, createExecutionResources, resolveCommandFlags, resolveServiceAdapter, } from "./shared.js";
|
|
4
|
+
import { buildProviderContext, createExecutionResources, resolveCommandFlags, resolveServiceAdapter, formatServiceList } from "./shared.js";
|
|
5
5
|
export function registerUnconfigureCommand(program, container) {
|
|
6
|
+
const serviceNames = container.registry.list().map((service) => service.name);
|
|
7
|
+
const serviceDescription = `Agent to unconfigure${formatServiceList(serviceNames)}`;
|
|
6
8
|
return program
|
|
7
9
|
.command("unconfigure")
|
|
8
10
|
.description("Remove existing Poe API tooling configuration.")
|
|
9
|
-
.argument("<
|
|
11
|
+
.argument("<agent>", serviceDescription)
|
|
10
12
|
.action(async (service, options) => {
|
|
11
13
|
await executeUnconfigure(program, container, service, options);
|
|
12
14
|
});
|
|
@@ -27,7 +29,7 @@ export async function executeUnconfigure(program, container, service, options) {
|
|
|
27
29
|
});
|
|
28
30
|
const unconfigured = await container.registry.invoke(canonicalService, "unconfigure", async (entry) => {
|
|
29
31
|
if (!entry.unconfigure) {
|
|
30
|
-
throw new Error(`
|
|
32
|
+
throw new Error(`Agent "${canonicalService}" does not support unconfigure.`);
|
|
31
33
|
}
|
|
32
34
|
const result = await entry.unconfigure({
|
|
33
35
|
fs: providerContext.command.fs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unconfigure.js","sourceRoot":"","sources":["../../../src/cli/commands/unconfigure.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"unconfigure.js","sourceRoot":"","sources":["../../../src/cli/commands/unconfigure.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { checkForUpdate } from "../../services/version.js";
|
|
2
2
|
import { VersionExit } from "../exit-signals.js";
|
|
3
3
|
export function registerVersionOption(program, container, currentVersion) {
|
|
4
|
-
program.option("-V, --version", "
|
|
4
|
+
program.option("-V, --version", "Output the version number.");
|
|
5
5
|
program.hook("preAction", async (thisCommand) => {
|
|
6
6
|
const opts = thisCommand.opts();
|
|
7
7
|
if (opts.version) {
|