poe-code 2.0.20 → 2.0.21
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 +19 -17
- package/dist/bin/poe-claude.js +16 -0
- package/dist/bin/poe-codex.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/command-runner.js +7 -1
- package/dist/cli/command-runner.js.map +1 -1
- package/dist/cli/commands/configure-payload.d.ts +13 -0
- package/dist/cli/commands/configure-payload.js +33 -0
- package/dist/cli/commands/configure-payload.js.map +1 -0
- package/dist/cli/commands/configure.js +16 -107
- package/dist/cli/commands/configure.js.map +1 -1
- package/dist/cli/commands/doctor.js +8 -1
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/ensure-isolated-config.d.ts +11 -0
- package/dist/cli/commands/ensure-isolated-config.js +48 -0
- package/dist/cli/commands/ensure-isolated-config.js.map +1 -0
- package/dist/cli/commands/remove.js +20 -1
- package/dist/cli/commands/remove.js.map +1 -1
- package/dist/cli/commands/shared.d.ts +11 -1
- package/dist/cli/commands/shared.js +23 -4
- package/dist/cli/commands/shared.js.map +1 -1
- package/dist/cli/commands/test.d.ts +4 -1
- package/dist/cli/commands/test.js +37 -6
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/wrap.d.ts +3 -0
- package/dist/cli/commands/wrap.js +54 -0
- package/dist/cli/commands/wrap.js.map +1 -0
- package/dist/cli/container.js +9 -2
- package/dist/cli/container.js.map +1 -1
- package/dist/cli/context.d.ts +5 -1
- package/dist/cli/context.js +12 -0
- package/dist/cli/context.js.map +1 -1
- package/dist/cli/isolated-env-runner.d.ts +10 -0
- package/dist/cli/isolated-env-runner.js +44 -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 +128 -0
- package/dist/cli/isolated-env.js.map +1 -0
- package/dist/cli/poe-code-command-runner.d.ts +6 -0
- package/dist/cli/poe-code-command-runner.js +54 -0
- package/dist/cli/poe-code-command-runner.js.map +1 -0
- package/dist/cli/program.js +2 -0
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/service-registry.d.ts +30 -11
- package/dist/cli/service-registry.js.map +1 -1
- package/dist/providers/claude-code.d.ts +2 -2
- package/dist/providers/claude-code.js +59 -21
- package/dist/providers/claude-code.js.map +1 -1
- package/dist/providers/codex.d.ts +1 -1
- package/dist/providers/codex.js +21 -8
- package/dist/providers/codex.js.map +1 -1
- package/dist/providers/create-provider.d.ts +7 -8
- package/dist/providers/create-provider.js +1 -2
- package/dist/providers/create-provider.js.map +1 -1
- package/dist/providers/kimi.d.ts +2 -2
- package/dist/providers/kimi.js +7 -5
- package/dist/providers/kimi.js.map +1 -1
- package/dist/providers/opencode.d.ts +1 -1
- package/dist/providers/opencode.js +23 -8
- package/dist/providers/opencode.js.map +1 -1
- package/dist/providers/provider-helpers.js +12 -1
- package/dist/providers/provider-helpers.js.map +1 -1
- package/dist/providers/spawn-options.d.ts +2 -2
- package/dist/providers/versioned-provider.d.ts +2 -2
- package/dist/services/service-manifest.d.ts +65 -16
- package/dist/services/service-manifest.js +163 -19
- package/dist/services/service-manifest.js.map +1 -1
- package/dist/templates/claude-code/anthropic_key.sh.hbs +1 -1
- package/dist/utils/command-checks.d.ts +1 -0
- package/dist/utils/command-checks.js.map +1 -1
- package/package.json +6 -3
package/README.md
CHANGED
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
> Configure coding agents to use the Poe API.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Try it out
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Usage
|
|
8
|
+
npm install -g poe-code
|
|
12
9
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
npx poe-code@latest login
|
|
10
|
+
poe-claude --help
|
|
11
|
+
poe-codex --help
|
|
12
|
+
poe-opencode --help
|
|
17
13
|
```
|
|
18
14
|
|
|
15
|
+
## Permanent Configuration
|
|
16
|
+
|
|
19
17
|
### Configure Coding CLIs
|
|
20
18
|
|
|
19
|
+
This is a persistent change: it updates the config files.
|
|
20
|
+
|
|
21
21
|
```bash
|
|
22
22
|
# Claude Code
|
|
23
23
|
npx poe-code@latest configure claude-code
|
|
@@ -33,6 +33,16 @@ npx poe-code@latest configure kimi
|
|
|
33
33
|
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
+
### Remove configuration overrides
|
|
37
|
+
|
|
38
|
+
Removes the Codex settings previously applied by `npx poe-code@latest configure codex`.
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
npx poe-code@latest remove codex
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Utilities
|
|
45
|
+
|
|
36
46
|
### Install Coding CLIs
|
|
37
47
|
|
|
38
48
|
```bash
|
|
@@ -49,14 +59,6 @@ npx poe-code@latest install opencode
|
|
|
49
59
|
npx poe-code@latest install kimi
|
|
50
60
|
```
|
|
51
61
|
|
|
52
|
-
### Uninstall Configuration
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
npx poe-code@latest remove codex
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
Removes the Codex settings previously applied by `npx poe-code@latest configure codex`.
|
|
59
|
-
|
|
60
62
|
### Test Configuration
|
|
61
63
|
|
|
62
64
|
```bash
|
|
@@ -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 = "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"}
|
|
@@ -4,7 +4,13 @@ export function createDefaultCommandRunner() {
|
|
|
4
4
|
const hasStdin = options?.stdin != null;
|
|
5
5
|
const child = spawn(command, args, {
|
|
6
6
|
stdio: [hasStdin ? "pipe" : "ignore", "pipe", "pipe"],
|
|
7
|
-
cwd: options?.cwd
|
|
7
|
+
cwd: options?.cwd,
|
|
8
|
+
env: options?.env
|
|
9
|
+
? {
|
|
10
|
+
...process.env,
|
|
11
|
+
...options.env
|
|
12
|
+
}
|
|
13
|
+
: undefined
|
|
8
14
|
});
|
|
9
15
|
let stdout = "";
|
|
10
16
|
let stderr = "";
|
|
@@ -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;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;
|
|
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,13 @@
|
|
|
1
|
+
import type { CliContainer } from "../container.js";
|
|
2
|
+
import type { ProviderContext, ProviderService } from "../service-registry.js";
|
|
3
|
+
import type { CommandFlags } from "./shared.js";
|
|
4
|
+
import type { ConfigureCommandOptions } from "./configure.js";
|
|
5
|
+
interface ConfigurePayloadInit {
|
|
6
|
+
container: CliContainer;
|
|
7
|
+
flags: CommandFlags;
|
|
8
|
+
options: ConfigureCommandOptions;
|
|
9
|
+
context: ProviderContext;
|
|
10
|
+
adapter: ProviderService;
|
|
11
|
+
}
|
|
12
|
+
export declare function createConfigurePayload(init: ConfigurePayloadInit): Promise<unknown>;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export async function createConfigurePayload(init) {
|
|
2
|
+
const { container, flags, options, context, adapter } = init;
|
|
3
|
+
const apiKey = await container.options.resolveApiKey({
|
|
4
|
+
value: options.apiKey,
|
|
5
|
+
dryRun: flags.dryRun
|
|
6
|
+
});
|
|
7
|
+
const payload = {
|
|
8
|
+
env: context.env,
|
|
9
|
+
apiKey
|
|
10
|
+
};
|
|
11
|
+
const modelPrompt = adapter.configurePrompts?.model;
|
|
12
|
+
if (modelPrompt) {
|
|
13
|
+
const model = await container.options.resolveModel({
|
|
14
|
+
value: options.model,
|
|
15
|
+
assumeDefault: flags.assumeYes,
|
|
16
|
+
defaultValue: modelPrompt.defaultValue,
|
|
17
|
+
choices: modelPrompt.choices,
|
|
18
|
+
label: modelPrompt.label
|
|
19
|
+
});
|
|
20
|
+
payload.model = model;
|
|
21
|
+
}
|
|
22
|
+
const reasoningPrompt = adapter.configurePrompts?.reasoningEffort;
|
|
23
|
+
if (reasoningPrompt) {
|
|
24
|
+
const reasoningEffort = await container.options.resolveReasoning({
|
|
25
|
+
value: options.reasoningEffort,
|
|
26
|
+
defaultValue: reasoningPrompt.defaultValue,
|
|
27
|
+
label: reasoningPrompt.label
|
|
28
|
+
});
|
|
29
|
+
payload.reasoningEffort = reasoningEffort;
|
|
30
|
+
}
|
|
31
|
+
return payload;
|
|
32
|
+
}
|
|
33
|
+
//# 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":"AAaA,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAA0B;IAE1B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC7D,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;IAEH,MAAM,OAAO,GAA4B;QACvC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM;KACP,CAAC;IAEF,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;SACzB,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,8 +1,9 @@
|
|
|
1
|
-
import { buildProviderContext, createExecutionResources, resolveCommandFlags, resolveServiceAdapter, resolveProviderHandler } from "./shared.js";
|
|
1
|
+
import { buildProviderContext, createExecutionResources, resolveCommandFlags, resolveServiceAdapter, resolveProviderHandler, applyIsolatedConfiguration } from "./shared.js";
|
|
2
2
|
import { renderServiceMenu } from "../ui/service-menu.js";
|
|
3
3
|
import { createMenuTheme } from "../ui/theme.js";
|
|
4
4
|
import { saveConfiguredService } from "../../services/credentials.js";
|
|
5
5
|
import { combineMutationObservers, createMutationReporter } from "../../services/mutation-events.js";
|
|
6
|
+
import { createConfigurePayload } from "./configure-payload.js";
|
|
6
7
|
export function registerConfigureCommand(program, container) {
|
|
7
8
|
const configureCommand = program
|
|
8
9
|
.command("configure")
|
|
@@ -23,7 +24,6 @@ export async function executeConfigure(program, container, service, options) {
|
|
|
23
24
|
const resources = createExecutionResources(container, flags, `configure:${service}`);
|
|
24
25
|
const providerContext = buildProviderContext(container, adapter, resources);
|
|
25
26
|
const payload = await createConfigurePayload({
|
|
26
|
-
service,
|
|
27
27
|
container,
|
|
28
28
|
flags,
|
|
29
29
|
options,
|
|
@@ -59,6 +59,20 @@ export async function executeConfigure(program, container, service, options) {
|
|
|
59
59
|
}
|
|
60
60
|
});
|
|
61
61
|
}
|
|
62
|
+
const isolated = adapter.isolatedEnv;
|
|
63
|
+
if (isolated) {
|
|
64
|
+
const isolatedTracker = createMutationTracker();
|
|
65
|
+
const isolatedLogger = createMutationReporter(resources.logger);
|
|
66
|
+
const isolatedObservers = combineMutationObservers(isolatedTracker.observers, isolatedLogger);
|
|
67
|
+
await applyIsolatedConfiguration({
|
|
68
|
+
resolution,
|
|
69
|
+
providerContext,
|
|
70
|
+
payload,
|
|
71
|
+
isolated,
|
|
72
|
+
providerName: adapter.name,
|
|
73
|
+
observers: isolatedObservers
|
|
74
|
+
});
|
|
75
|
+
}
|
|
62
76
|
});
|
|
63
77
|
const dryMessage = service === "claude-code"
|
|
64
78
|
? `${adapter.label} (dry run)`
|
|
@@ -68,97 +82,6 @@ export async function executeConfigure(program, container, service, options) {
|
|
|
68
82
|
dry: dryMessage
|
|
69
83
|
});
|
|
70
84
|
}
|
|
71
|
-
async function createConfigurePayload(init) {
|
|
72
|
-
const { service, container, flags, options, context, adapter } = init;
|
|
73
|
-
switch (service) {
|
|
74
|
-
case "claude-code": {
|
|
75
|
-
const apiKey = await container.options.resolveApiKey({
|
|
76
|
-
value: options.apiKey,
|
|
77
|
-
dryRun: flags.dryRun
|
|
78
|
-
});
|
|
79
|
-
const modelPrompt = requireModelPrompt(adapter);
|
|
80
|
-
const defaultModel = await container.options.resolveModel({
|
|
81
|
-
value: options.model,
|
|
82
|
-
assumeDefault: flags.assumeYes,
|
|
83
|
-
defaultValue: modelPrompt.defaultValue,
|
|
84
|
-
choices: modelPrompt.choices,
|
|
85
|
-
label: modelPrompt.label
|
|
86
|
-
});
|
|
87
|
-
return {
|
|
88
|
-
env: context.env,
|
|
89
|
-
apiKey,
|
|
90
|
-
defaultModel
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
case "codex": {
|
|
94
|
-
const apiKey = await container.options.resolveApiKey({
|
|
95
|
-
value: options.apiKey,
|
|
96
|
-
dryRun: flags.dryRun
|
|
97
|
-
});
|
|
98
|
-
const modelPrompt = requireModelPrompt(adapter);
|
|
99
|
-
const model = await container.options.resolveModel({
|
|
100
|
-
value: options.model,
|
|
101
|
-
assumeDefault: flags.assumeYes,
|
|
102
|
-
defaultValue: modelPrompt.defaultValue,
|
|
103
|
-
choices: modelPrompt.choices,
|
|
104
|
-
label: modelPrompt.label
|
|
105
|
-
});
|
|
106
|
-
const reasoningPrompt = requireReasoningPrompt(adapter);
|
|
107
|
-
const reasoningEffort = await container.options.resolveReasoning({
|
|
108
|
-
value: options.reasoningEffort,
|
|
109
|
-
defaultValue: reasoningPrompt.defaultValue,
|
|
110
|
-
label: reasoningPrompt.label
|
|
111
|
-
});
|
|
112
|
-
return {
|
|
113
|
-
env: context.env,
|
|
114
|
-
apiKey,
|
|
115
|
-
model,
|
|
116
|
-
reasoningEffort
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
case "opencode": {
|
|
120
|
-
const apiKey = await container.options.resolveApiKey({
|
|
121
|
-
value: options.apiKey,
|
|
122
|
-
dryRun: flags.dryRun
|
|
123
|
-
});
|
|
124
|
-
const modelPrompt = requireModelPrompt(adapter);
|
|
125
|
-
const model = await container.options.resolveModel({
|
|
126
|
-
value: options.model,
|
|
127
|
-
assumeDefault: flags.assumeYes,
|
|
128
|
-
defaultValue: modelPrompt.defaultValue,
|
|
129
|
-
choices: modelPrompt.choices,
|
|
130
|
-
label: modelPrompt.label
|
|
131
|
-
});
|
|
132
|
-
return {
|
|
133
|
-
env: context.env,
|
|
134
|
-
apiKey,
|
|
135
|
-
model
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
case "kimi": {
|
|
139
|
-
const apiKey = await container.options.resolveApiKey({
|
|
140
|
-
value: options.apiKey,
|
|
141
|
-
dryRun: flags.dryRun
|
|
142
|
-
});
|
|
143
|
-
const modelPrompt = requireModelPrompt(adapter);
|
|
144
|
-
const defaultModel = await container.options.resolveModel({
|
|
145
|
-
value: options.model,
|
|
146
|
-
assumeDefault: flags.assumeYes,
|
|
147
|
-
defaultValue: modelPrompt.defaultValue,
|
|
148
|
-
choices: modelPrompt.choices,
|
|
149
|
-
label: modelPrompt.label
|
|
150
|
-
});
|
|
151
|
-
context.logger.info(`Using ${adapter.label} model: ${defaultModel}`);
|
|
152
|
-
return {
|
|
153
|
-
env: context.env,
|
|
154
|
-
apiKey,
|
|
155
|
-
defaultModel
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
default:
|
|
159
|
-
throw new Error(`Unknown service "${service}".`);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
85
|
function createMutationTracker() {
|
|
163
86
|
const targets = new Set();
|
|
164
87
|
const observers = {
|
|
@@ -179,20 +102,6 @@ function createMutationTracker() {
|
|
|
179
102
|
}
|
|
180
103
|
};
|
|
181
104
|
}
|
|
182
|
-
function requireModelPrompt(adapter) {
|
|
183
|
-
const prompt = adapter.configurePrompts?.model;
|
|
184
|
-
if (!prompt) {
|
|
185
|
-
throw new Error(`${adapter.label} must define a model prompt.`);
|
|
186
|
-
}
|
|
187
|
-
return prompt;
|
|
188
|
-
}
|
|
189
|
-
function requireReasoningPrompt(adapter) {
|
|
190
|
-
const prompt = adapter.configurePrompts?.reasoningEffort;
|
|
191
|
-
if (!prompt) {
|
|
192
|
-
throw new Error(`${adapter.label} must define a reasoning prompt.`);
|
|
193
|
-
}
|
|
194
|
-
return prompt;
|
|
195
|
-
}
|
|
196
105
|
export async function resolveServiceArgument(program, container, provided) {
|
|
197
106
|
if (provided) {
|
|
198
107
|
return provided;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../../src/cli/commands/configure.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../../src/cli/commands/configure.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { buildProviderContext, createExecutionResources, resolveCommandFlags, re
|
|
|
2
2
|
import { loadConfiguredServices } from "../../services/credentials.js";
|
|
3
3
|
import { executeConfigure } from "./configure.js";
|
|
4
4
|
import { executeRemove } from "./remove.js";
|
|
5
|
+
import { ensureIsolatedConfigForService } from "./ensure-isolated-config.js";
|
|
5
6
|
export function registerDoctorCommand(program, container) {
|
|
6
7
|
return program
|
|
7
8
|
.command("doctor")
|
|
@@ -11,6 +12,7 @@ export function registerDoctorCommand(program, container) {
|
|
|
11
12
|
});
|
|
12
13
|
}
|
|
13
14
|
export async function executeDoctor(program, container) {
|
|
15
|
+
const flags = resolveCommandFlags(program);
|
|
14
16
|
const configured = await loadConfiguredServices({
|
|
15
17
|
fs: container.fs,
|
|
16
18
|
filePath: container.env.credentialsPath
|
|
@@ -21,7 +23,6 @@ export async function executeDoctor(program, container) {
|
|
|
21
23
|
logger.info("No configured services found to inspect.");
|
|
22
24
|
return;
|
|
23
25
|
}
|
|
24
|
-
const flags = resolveCommandFlags(program);
|
|
25
26
|
for (const [service, metadata] of services) {
|
|
26
27
|
await reconcileService({
|
|
27
28
|
program,
|
|
@@ -43,6 +44,12 @@ async function reconcileService(context) {
|
|
|
43
44
|
logger.warn(`Skipping unknown service "${service}": ${error instanceof Error ? error.message : String(error)}`);
|
|
44
45
|
return;
|
|
45
46
|
}
|
|
47
|
+
await ensureIsolatedConfigForService({
|
|
48
|
+
container,
|
|
49
|
+
adapter,
|
|
50
|
+
service,
|
|
51
|
+
flags
|
|
52
|
+
});
|
|
46
53
|
const resources = createExecutionResources(container, flags, `doctor:${service}`);
|
|
47
54
|
const providerContext = buildProviderContext(container, adapter, resources);
|
|
48
55
|
const resolution = await resolveProviderHandler(adapter, providerContext);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
+
}): Promise<void>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { buildProviderContext, createExecutionResources, resolveProviderHandler, applyIsolatedConfiguration } from "./shared.js";
|
|
2
|
+
import { isolatedConfigExists, resolveIsolatedEnvDetails } from "../isolated-env.js";
|
|
3
|
+
import { createConfigurePayload } from "./configure-payload.js";
|
|
4
|
+
import { createMutationReporter } from "../../services/mutation-events.js";
|
|
5
|
+
export async function ensureIsolatedConfigForService(input) {
|
|
6
|
+
const { container, adapter, service } = input;
|
|
7
|
+
const isolated = adapter.isolatedEnv;
|
|
8
|
+
if (!isolated) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const flags = input.flags;
|
|
12
|
+
const resources = createExecutionResources(container, flags, `isolated:${service}`);
|
|
13
|
+
const providerContext = buildProviderContext(container, adapter, resources);
|
|
14
|
+
const details = resolveIsolatedEnvDetails(container.env, isolated, adapter.name);
|
|
15
|
+
const hasConfig = await isolatedConfigExists(container.fs, details.configProbePath);
|
|
16
|
+
if (hasConfig) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const payload = await createConfigurePayload({
|
|
20
|
+
container,
|
|
21
|
+
flags: { ...flags, assumeYes: true },
|
|
22
|
+
options: input.options ?? {},
|
|
23
|
+
context: providerContext,
|
|
24
|
+
adapter
|
|
25
|
+
});
|
|
26
|
+
await container.registry.invoke(service, "configure", async (entry) => {
|
|
27
|
+
if (!entry.configure) {
|
|
28
|
+
throw new Error(`Service "${service}" does not support configure.`);
|
|
29
|
+
}
|
|
30
|
+
const resolution = await resolveProviderHandler(entry, providerContext);
|
|
31
|
+
const mutationLogger = createMutationReporter(resources.logger);
|
|
32
|
+
await applyIsolatedConfiguration({
|
|
33
|
+
resolution,
|
|
34
|
+
providerContext,
|
|
35
|
+
payload,
|
|
36
|
+
isolated,
|
|
37
|
+
providerName: adapter.name,
|
|
38
|
+
observers: mutationLogger
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
if (!flags.dryRun) {
|
|
42
|
+
const refreshed = await isolatedConfigExists(container.fs, details.configProbePath);
|
|
43
|
+
if (!refreshed) {
|
|
44
|
+
throw new Error(`${adapter.label} isolated configuration did not create ${details.configProbePath}.`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=ensure-isolated-config.js.map
|
|
@@ -0,0 +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,sBAAsB,EACtB,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,KAMpD;IACC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC9C,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,SAAS,GAAG,wBAAwB,CACxC,SAAS,EACT,KAAK,EACL,YAAY,OAAO,EAAE,CACtB,CAAC;IACF,MAAM,eAAe,GAAG,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,yBAAyB,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACpF,IAAI,SAAS,EAAE,CAAC;QACd,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;KACR,CAAC,CAAC;IAEH,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACpE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,+BAA+B,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QACxE,MAAM,cAAc,GAAG,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,0BAA0B,CAAC;YAC/B,UAAU;YACV,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,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QACpF,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,5 +1,6 @@
|
|
|
1
1
|
import { removeConfiguredService } from "../../services/credentials.js";
|
|
2
2
|
import { createMutationReporter } from "../../services/mutation-events.js";
|
|
3
|
+
import { resolveIsolatedTargetDirectory } from "../isolated-env.js";
|
|
3
4
|
import { buildProviderContext, createExecutionResources, resolveCommandFlags, resolveServiceAdapter, resolveProviderHandler } from "./shared.js";
|
|
4
5
|
export function registerRemoveCommand(program, container) {
|
|
5
6
|
return program
|
|
@@ -30,12 +31,30 @@ export async function executeRemove(program, container, service, options) {
|
|
|
30
31
|
if (!resolution.adapter.remove) {
|
|
31
32
|
return false;
|
|
32
33
|
}
|
|
33
|
-
|
|
34
|
+
const result = await resolution.adapter.remove({
|
|
34
35
|
fs: providerContext.command.fs,
|
|
35
36
|
env: providerContext.env,
|
|
36
37
|
command: providerContext.command,
|
|
37
38
|
options: payload
|
|
38
39
|
}, { observers: mutationLogger });
|
|
40
|
+
const isolated = adapter.isolatedEnv;
|
|
41
|
+
if (isolated) {
|
|
42
|
+
await resolution.adapter.remove({
|
|
43
|
+
fs: providerContext.command.fs,
|
|
44
|
+
env: providerContext.env,
|
|
45
|
+
command: providerContext.command,
|
|
46
|
+
options: payload,
|
|
47
|
+
pathMapper: {
|
|
48
|
+
mapTargetDirectory: ({ targetDirectory }) => resolveIsolatedTargetDirectory({
|
|
49
|
+
targetDirectory,
|
|
50
|
+
isolated,
|
|
51
|
+
env: providerContext.env,
|
|
52
|
+
providerName: adapter.name
|
|
53
|
+
})
|
|
54
|
+
}
|
|
55
|
+
}, { observers: mutationLogger });
|
|
56
|
+
}
|
|
57
|
+
return result;
|
|
39
58
|
});
|
|
40
59
|
if (!flags.dryRun) {
|
|
41
60
|
await removeConfiguredService({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/cli/commands/remove.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAMrB,MAAM,UAAU,qBAAqB,CACnC,OAAgB,EAChB,SAAuB;IAEvB,OAAO,OAAO;SACX,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gDAAgD,CAAC;SAC7D,QAAQ,CACP,WAAW,EACX,oDAAoD,CACrD;SACA,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAA6B,EAAE,EAAE;QAC/D,MAAM,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACP,CAAC;AAEA,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,OAAgB,EAChB,SAAuB,EACvB,OAAe,EACf,OAA6B;IAE7B,MAAM,OAAO,GAAG,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,wBAAwB,CACxC,SAAS,EACT,KAAK,EACL,UAAU,OAAO,EAAE,CACpB,CAAC;IACF,MAAM,eAAe,GAAG,oBAAoB,CAC1C,SAAS,EACT,OAAO,EACP,SAAS,CACV,CAAC;IACF,MAAM,cAAc,GAAG,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEhE,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC;QACxC,OAAO;QACP,SAAS;QACT,OAAO;QACP,OAAO,EAAE,eAAe;KACzB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,CAC7C,OAAO,EACP,QAAQ,EACR,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,4BAA4B,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/cli/commands/remove.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { Command } from "commander";
|
|
2
2
|
import type { CliContainer } from "../container.js";
|
|
3
|
-
import type { ProviderService, ProviderContext } from "../service-registry.js";
|
|
3
|
+
import type { ProviderService, ProviderContext, ProviderIsolatedEnv } from "../service-registry.js";
|
|
4
4
|
import { type CommandContext } from "../context.js";
|
|
5
5
|
import type { ScopedLogger } from "../logger.js";
|
|
6
|
+
import type { ServiceMutationObservers } from "../../services/service-manifest.js";
|
|
6
7
|
export interface CommandFlags {
|
|
7
8
|
dryRun: boolean;
|
|
8
9
|
assumeYes: boolean;
|
|
@@ -21,5 +22,14 @@ export interface ProviderResolution {
|
|
|
21
22
|
export interface ResolveProviderOptions {
|
|
22
23
|
useResolver?: boolean;
|
|
23
24
|
}
|
|
25
|
+
export declare function listIsolatedServiceIds(container: CliContainer): string[];
|
|
24
26
|
export declare function resolveProviderHandler(adapter: ProviderService, context: ProviderContext, options?: ResolveProviderOptions): Promise<ProviderResolution>;
|
|
25
27
|
export declare function resolveServiceAdapter(container: CliContainer, service: string): ProviderService;
|
|
28
|
+
export declare function applyIsolatedConfiguration(input: {
|
|
29
|
+
resolution: ProviderResolution;
|
|
30
|
+
providerContext: ProviderContext;
|
|
31
|
+
payload: unknown;
|
|
32
|
+
isolated: ProviderIsolatedEnv;
|
|
33
|
+
providerName: string;
|
|
34
|
+
observers?: ServiceMutationObservers;
|
|
35
|
+
}): Promise<void>;
|