poe-code 3.0.29 → 3.0.31
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 +2 -2
- package/dist/bin/poe-claude.js +23 -0
- package/dist/bin/poe-codex.js +23 -0
- package/dist/bin/poe-kimi-cli.js +23 -0
- package/dist/bin/poe-opencode.js +23 -0
- package/dist/bin.cjs +9 -0
- package/dist/cli/binary-aliases.d.ts +7 -0
- package/dist/cli/binary-aliases.js +26 -0
- package/dist/cli/binary-aliases.js.map +1 -0
- package/dist/cli/bootstrap.d.ts +4 -0
- package/dist/cli/bootstrap.js +78 -0
- package/dist/cli/bootstrap.js.map +1 -0
- package/dist/cli/command-not-found.d.ts +8 -0
- package/dist/cli/command-not-found.js +34 -0
- package/dist/cli/command-not-found.js.map +1 -0
- package/dist/cli/commands/configure-payload.d.ts +15 -0
- package/dist/cli/commands/configure-payload.js +31 -0
- package/dist/cli/commands/configure-payload.js.map +1 -0
- package/dist/cli/commands/configure.d.ts +12 -0
- package/dist/cli/commands/configure.js +151 -0
- package/dist/cli/commands/configure.js.map +1 -0
- package/dist/cli/commands/ensure-isolated-config.d.ts +12 -0
- package/dist/cli/commands/ensure-isolated-config.js +53 -0
- package/dist/cli/commands/ensure-isolated-config.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +9 -0
- package/dist/cli/commands/generate.js +322 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/install.d.ts +4 -0
- package/dist/cli/commands/install.js +40 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/login.d.ts +6 -0
- package/dist/cli/commands/login.js +105 -0
- package/dist/cli/commands/login.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +3 -0
- package/dist/cli/commands/mcp.js +178 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/models.d.ts +3 -0
- package/dist/cli/commands/models.js +183 -0
- package/dist/cli/commands/models.js.map +1 -0
- package/dist/cli/commands/ralph-worktree.d.ts +3 -0
- package/dist/cli/commands/ralph-worktree.js +73 -0
- package/dist/cli/commands/ralph-worktree.js.map +1 -0
- package/dist/cli/commands/ralph.d.ts +3 -0
- package/dist/cli/commands/ralph.js +424 -0
- package/dist/cli/commands/ralph.js.map +1 -0
- package/dist/cli/commands/shared.d.ts +29 -0
- package/dist/cli/commands/shared.js +82 -0
- package/dist/cli/commands/shared.js.map +1 -0
- package/dist/cli/commands/skill.d.ts +3 -0
- package/dist/cli/commands/skill.js +242 -0
- package/dist/cli/commands/skill.js.map +1 -0
- package/dist/cli/commands/spawn.d.ts +17 -0
- package/dist/cli/commands/spawn.js +226 -0
- package/dist/cli/commands/spawn.js.map +1 -0
- package/dist/cli/commands/test.d.ts +8 -0
- package/dist/cli/commands/test.js +124 -0
- package/dist/cli/commands/test.js.map +1 -0
- package/dist/cli/commands/unconfigure.d.ts +7 -0
- package/dist/cli/commands/unconfigure.js +116 -0
- package/dist/cli/commands/unconfigure.js.map +1 -0
- package/dist/cli/commands/usage.d.ts +3 -0
- package/dist/cli/commands/usage.js +186 -0
- package/dist/cli/commands/usage.js.map +1 -0
- package/dist/cli/commands/version.d.ts +3 -0
- package/dist/cli/commands/version.js +31 -0
- package/dist/cli/commands/version.js.map +1 -0
- package/dist/cli/commands/wrap.d.ts +3 -0
- package/dist/cli/commands/wrap.js +61 -0
- package/dist/cli/commands/wrap.js.map +1 -0
- package/dist/cli/constants.d.ts +24 -0
- package/dist/cli/constants.js +44 -0
- package/dist/cli/constants.js.map +1 -0
- package/dist/cli/container.d.ts +42 -0
- package/dist/cli/container.js +90 -0
- package/dist/cli/container.js.map +1 -0
- package/dist/cli/context.d.ts +33 -0
- package/dist/cli/context.js +91 -0
- package/dist/cli/context.js.map +1 -0
- package/dist/cli/environment.d.ts +21 -0
- package/dist/cli/environment.js +106 -0
- package/dist/cli/environment.js.map +1 -0
- package/dist/cli/error-logger.d.ts +62 -0
- package/dist/cli/error-logger.js +155 -0
- package/dist/cli/error-logger.js.map +1 -0
- package/dist/cli/errors.d.ts +95 -0
- package/dist/cli/errors.js +141 -0
- package/dist/cli/errors.js.map +1 -0
- package/dist/cli/exit-signals.d.ts +4 -0
- package/dist/cli/exit-signals.js +8 -0
- package/dist/cli/exit-signals.js.map +1 -0
- package/dist/cli/http.d.ts +12 -0
- package/dist/cli/http.js +2 -0
- package/dist/cli/http.js.map +1 -0
- package/dist/cli/isolated-env-runner.d.ts +10 -0
- package/dist/cli/isolated-env-runner.js +50 -0
- package/dist/cli/isolated-env-runner.js.map +1 -0
- package/dist/cli/isolated-env.d.ts +24 -0
- package/dist/cli/isolated-env.js +210 -0
- package/dist/cli/isolated-env.js.map +1 -0
- package/dist/cli/logger.d.ts +36 -0
- package/dist/cli/logger.js +191 -0
- package/dist/cli/logger.js.map +1 -0
- package/dist/cli/mcp-output-format.d.ts +2 -0
- package/dist/cli/mcp-output-format.js +27 -0
- package/dist/cli/mcp-output-format.js.map +1 -0
- package/dist/cli/mcp-server.d.ts +21 -0
- package/dist/cli/mcp-server.js +321 -0
- package/dist/cli/mcp-server.js.map +1 -0
- package/dist/cli/options.d.ts +45 -0
- package/dist/cli/options.js +111 -0
- package/dist/cli/options.js.map +1 -0
- package/dist/cli/poe-code-command-runner.d.ts +6 -0
- package/dist/cli/poe-code-command-runner.js +63 -0
- package/dist/cli/poe-code-command-runner.js.map +1 -0
- package/dist/cli/program.d.ts +4 -0
- package/dist/cli/program.js +249 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/cli/prompt-runner.d.ts +10 -0
- package/dist/cli/prompt-runner.js +79 -0
- package/dist/cli/prompt-runner.js.map +1 -0
- package/dist/cli/prompts.d.ts +39 -0
- package/dist/cli/prompts.js +42 -0
- package/dist/cli/prompts.js.map +1 -0
- package/dist/cli/service-registry.d.ts +108 -0
- package/dist/cli/service-registry.js +83 -0
- package/dist/cli/service-registry.js.map +1 -0
- package/dist/cli/types.d.ts +2 -0
- package/dist/cli/types.js +2 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/ui/service-menu.d.ts +7 -0
- package/dist/cli/ui/service-menu.js +43 -0
- package/dist/cli/ui/service-menu.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +36812 -0
- package/dist/index.js.map +7 -0
- package/dist/providers/claude-code.d.ts +13 -0
- package/dist/providers/claude-code.js +143 -0
- package/dist/providers/claude-code.js.map +1 -0
- package/dist/providers/codex.d.ts +17 -0
- package/dist/providers/codex.js +144 -0
- package/dist/providers/codex.js.map +1 -0
- package/dist/providers/create-provider.d.ts +29 -0
- package/dist/providers/create-provider.js +78 -0
- package/dist/providers/create-provider.js.map +1 -0
- package/dist/providers/index.d.ts +2 -0
- package/dist/providers/index.js +8 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/kimi.d.ts +4 -0
- package/dist/providers/kimi.js +123 -0
- package/dist/providers/kimi.js.map +1 -0
- package/dist/providers/opencode.d.ts +3 -0
- package/dist/providers/opencode.js +119 -0
- package/dist/providers/opencode.js.map +1 -0
- package/dist/providers/spawn-options.d.ts +13 -0
- package/dist/providers/spawn-options.js +2 -0
- package/dist/providers/spawn-options.js.map +1 -0
- package/dist/sdk/container.d.ts +18 -0
- package/dist/sdk/container.js +127 -0
- package/dist/sdk/container.js.map +1 -0
- package/dist/sdk/credentials.d.ts +9 -0
- package/dist/sdk/credentials.js +35 -0
- package/dist/sdk/credentials.js.map +1 -0
- package/dist/sdk/generate.d.ts +5 -0
- package/dist/sdk/generate.js +97 -0
- package/dist/sdk/generate.js.map +1 -0
- package/dist/sdk/spawn-core.d.ts +23 -0
- package/dist/sdk/spawn-core.js +105 -0
- package/dist/sdk/spawn-core.js.map +1 -0
- package/dist/sdk/spawn.d.ts +31 -0
- package/dist/sdk/spawn.js +109 -0
- package/dist/sdk/spawn.js.map +1 -0
- package/dist/sdk/types.d.ts +44 -0
- package/dist/sdk/types.js +2 -0
- package/dist/sdk/types.js.map +1 -0
- package/dist/services/client-instance.d.ts +12 -0
- package/dist/services/client-instance.js +36 -0
- package/dist/services/client-instance.js.map +1 -0
- package/dist/services/credentials.d.ts +24 -0
- package/dist/services/credentials.js +157 -0
- package/dist/services/credentials.js.map +1 -0
- package/dist/services/llm-client.d.ts +22 -0
- package/dist/services/llm-client.js +138 -0
- package/dist/services/llm-client.js.map +1 -0
- package/dist/services/media-download.d.ts +17 -0
- package/dist/services/media-download.js +42 -0
- package/dist/services/media-download.js.map +1 -0
- package/dist/services/model-strategy.d.ts +99 -0
- package/dist/services/model-strategy.js +187 -0
- package/dist/services/model-strategy.js.map +1 -0
- package/dist/services/mutation-events.d.ts +4 -0
- package/dist/services/mutation-events.js +53 -0
- package/dist/services/mutation-events.js.map +1 -0
- package/dist/services/service-install.d.ts +22 -0
- package/dist/services/service-install.js +70 -0
- package/dist/services/service-install.js.map +1 -0
- package/dist/services/version.d.ts +11 -0
- package/dist/services/version.js +28 -0
- package/dist/services/version.js.map +1 -0
- package/dist/tools/label-generator.d.ts +11 -0
- package/dist/tools/label-generator.js +78 -0
- package/dist/tools/label-generator.js.map +1 -0
- package/dist/utils/backup.d.ts +5 -0
- package/dist/utils/backup.js +56 -0
- package/dist/utils/backup.js.map +1 -0
- package/dist/utils/cli-settings-merge.d.ts +22 -0
- package/dist/utils/cli-settings-merge.js +56 -0
- package/dist/utils/cli-settings-merge.js.map +1 -0
- package/dist/utils/command-checks.d.ts +36 -0
- package/dist/utils/command-checks.js +120 -0
- package/dist/utils/command-checks.js.map +1 -0
- package/dist/utils/command-line.d.ts +1 -0
- package/dist/utils/command-line.js +54 -0
- package/dist/utils/command-line.js.map +1 -0
- package/dist/utils/dry-run.d.ts +39 -0
- package/dist/utils/dry-run.js +315 -0
- package/dist/utils/dry-run.js.map +1 -0
- package/dist/utils/execution-context.d.ts +48 -0
- package/dist/utils/execution-context.js +151 -0
- package/dist/utils/execution-context.js.map +1 -0
- package/dist/utils/file-system.d.ts +21 -0
- package/dist/utils/file-system.js +2 -0
- package/dist/utils/file-system.js.map +1 -0
- package/dist/utils/json.d.ts +12 -0
- package/dist/utils/json.js +45 -0
- package/dist/utils/json.js.map +1 -0
- package/package.json +5 -2
- package/packages/tiny-mcp-test-server/dist/index.js +47 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
import type { CliContainer } from "../container.js";
|
|
3
|
+
export interface UnconfigureCommandOptions {
|
|
4
|
+
configName?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function registerUnconfigureCommand(program: Command, container: CliContainer): Command;
|
|
7
|
+
export declare function executeUnconfigure(program: Command, container: CliContainer, service: string, options: UnconfigureCommandOptions): Promise<void>;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { unconfigureService } from "../../services/credentials.js";
|
|
2
|
+
import { createMutationReporter } from "../../services/mutation-events.js";
|
|
3
|
+
import { resolveIsolatedTargetDirectory } from "../isolated-env.js";
|
|
4
|
+
import { buildProviderContext, createExecutionResources, resolveCommandFlags, resolveServiceAdapter, formatServiceList } from "./shared.js";
|
|
5
|
+
export function registerUnconfigureCommand(program, container) {
|
|
6
|
+
const serviceNames = container.registry.list().map((service) => service.name);
|
|
7
|
+
const serviceDescription = `Agent to unconfigure${formatServiceList(serviceNames)}`;
|
|
8
|
+
return program
|
|
9
|
+
.command("unconfigure")
|
|
10
|
+
.description("Remove existing Poe API tooling configuration.")
|
|
11
|
+
.argument("<agent>", serviceDescription)
|
|
12
|
+
.action(async (service, options) => {
|
|
13
|
+
await executeUnconfigure(program, container, service, options);
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
export async function executeUnconfigure(program, container, service, options) {
|
|
17
|
+
const adapter = resolveServiceAdapter(container, service);
|
|
18
|
+
const canonicalService = adapter.name;
|
|
19
|
+
const flags = resolveCommandFlags(program);
|
|
20
|
+
const resources = createExecutionResources(container, flags, `unconfigure:${canonicalService}`);
|
|
21
|
+
resources.logger.intro(`unconfigure ${canonicalService}`);
|
|
22
|
+
const providerContext = buildProviderContext(container, adapter, resources);
|
|
23
|
+
const mutationLogger = createMutationReporter(resources.logger);
|
|
24
|
+
const payload = await createUnconfigurePayload({
|
|
25
|
+
service: canonicalService,
|
|
26
|
+
container,
|
|
27
|
+
options,
|
|
28
|
+
context: providerContext
|
|
29
|
+
});
|
|
30
|
+
const unconfigured = await container.registry.invoke(canonicalService, "unconfigure", async (entry) => {
|
|
31
|
+
if (!entry.unconfigure) {
|
|
32
|
+
throw new Error(`Agent "${canonicalService}" does not support unconfigure.`);
|
|
33
|
+
}
|
|
34
|
+
const result = await entry.unconfigure({
|
|
35
|
+
fs: providerContext.command.fs,
|
|
36
|
+
env: providerContext.env,
|
|
37
|
+
command: providerContext.command,
|
|
38
|
+
options: payload
|
|
39
|
+
}, { observers: mutationLogger });
|
|
40
|
+
const isolated = adapter.isolatedEnv;
|
|
41
|
+
if (isolated && isolated.requiresConfig !== false) {
|
|
42
|
+
await entry.unconfigure({
|
|
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;
|
|
58
|
+
});
|
|
59
|
+
if (!flags.dryRun) {
|
|
60
|
+
await unconfigureService({
|
|
61
|
+
fs: container.fs,
|
|
62
|
+
filePath: providerContext.env.credentialsPath,
|
|
63
|
+
service: canonicalService
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
const messages = formatUnconfigureMessages(canonicalService, adapter.label, unconfigured, payload);
|
|
67
|
+
resources.context.complete(messages);
|
|
68
|
+
resources.context.finalize();
|
|
69
|
+
}
|
|
70
|
+
async function createUnconfigurePayload(init) {
|
|
71
|
+
const { service, context } = init;
|
|
72
|
+
switch (service) {
|
|
73
|
+
case "claude-code":
|
|
74
|
+
return { env: context.env };
|
|
75
|
+
case "codex":
|
|
76
|
+
return { env: context.env };
|
|
77
|
+
case "opencode":
|
|
78
|
+
return { env: context.env };
|
|
79
|
+
default:
|
|
80
|
+
return {};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function formatUnconfigureMessages(service, label, unconfigured, _payload) {
|
|
84
|
+
const didUnconfigure = typeof unconfigured === "boolean" ? unconfigured : Boolean(unconfigured);
|
|
85
|
+
switch (service) {
|
|
86
|
+
case "claude-code":
|
|
87
|
+
return {
|
|
88
|
+
success: didUnconfigure
|
|
89
|
+
? "Removed Claude Code configuration."
|
|
90
|
+
: "No Claude Code configuration found.",
|
|
91
|
+
dry: "Dry run: would remove Claude Code configuration."
|
|
92
|
+
};
|
|
93
|
+
case "codex":
|
|
94
|
+
return {
|
|
95
|
+
success: didUnconfigure
|
|
96
|
+
? "Removed Codex configuration."
|
|
97
|
+
: "No Codex configuration found.",
|
|
98
|
+
dry: "Dry run: would remove Codex configuration."
|
|
99
|
+
};
|
|
100
|
+
case "opencode":
|
|
101
|
+
return {
|
|
102
|
+
success: didUnconfigure
|
|
103
|
+
? "Removed OpenCode CLI configuration."
|
|
104
|
+
: "No OpenCode CLI configuration found.",
|
|
105
|
+
dry: "Dry run: would remove OpenCode CLI configuration."
|
|
106
|
+
};
|
|
107
|
+
default:
|
|
108
|
+
return {
|
|
109
|
+
success: didUnconfigure
|
|
110
|
+
? `Removed ${label} configuration.`
|
|
111
|
+
: `No ${label} configuration found.`,
|
|
112
|
+
dry: `Dry run: would remove ${label} configuration.`
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=unconfigure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unconfigure.js","sourceRoot":"","sources":["../../../src/cli/commands/unconfigure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { createExecutionResources, resolveCommandFlags } from "./shared.js";
|
|
2
|
+
import { loadCredentials } from "../../services/credentials.js";
|
|
3
|
+
import { AuthenticationError, ApiError } from "../errors.js";
|
|
4
|
+
import { confirm, isCancel, getTheme, widths, typography, renderTable } from "@poe-code/design-system";
|
|
5
|
+
async function executeBalance(program, container) {
|
|
6
|
+
const flags = resolveCommandFlags(program);
|
|
7
|
+
const resources = createExecutionResources(container, flags, "usage:balance");
|
|
8
|
+
resources.logger.intro("usage balance");
|
|
9
|
+
try {
|
|
10
|
+
const apiKey = await loadCredentials({
|
|
11
|
+
fs: container.fs,
|
|
12
|
+
filePath: container.env.credentialsPath
|
|
13
|
+
});
|
|
14
|
+
if (!apiKey) {
|
|
15
|
+
throw new AuthenticationError("Poe API key not found. Run 'poe-code login' first.");
|
|
16
|
+
}
|
|
17
|
+
if (flags.dryRun) {
|
|
18
|
+
resources.logger.dryRun("Dry run: would fetch usage balance from Poe API.");
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const response = await container.httpClient(`${container.env.poeBaseUrl}/usage/current_balance`, {
|
|
22
|
+
method: "GET",
|
|
23
|
+
headers: {
|
|
24
|
+
Authorization: `Bearer ${apiKey}`
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
if (!response.ok) {
|
|
28
|
+
throw new ApiError(`Failed to fetch usage balance (HTTP ${response.status})`, {
|
|
29
|
+
httpStatus: response.status,
|
|
30
|
+
endpoint: "/usage/current_balance"
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
const data = (await response.json());
|
|
34
|
+
const theme = getTheme();
|
|
35
|
+
const formatted = data.current_point_balance.toLocaleString("en-US");
|
|
36
|
+
const styledBalance = typography.bold(theme.accent(formatted));
|
|
37
|
+
resources.logger.info(`Current balance: ${styledBalance} points`);
|
|
38
|
+
resources.logger.feedback("Need more points?", "https://poe.com/api/keys");
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
if (error instanceof Error) {
|
|
42
|
+
resources.logger.logException(error, "usage balance", {
|
|
43
|
+
operation: "fetch-balance"
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
throw error;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export function registerUsageCommand(program, container) {
|
|
50
|
+
const usage = program
|
|
51
|
+
.command("usage")
|
|
52
|
+
.description("Check Poe API usage information.")
|
|
53
|
+
.action(async () => {
|
|
54
|
+
await executeBalance(program, container);
|
|
55
|
+
});
|
|
56
|
+
usage
|
|
57
|
+
.command("balance")
|
|
58
|
+
.description("Display current point balance.")
|
|
59
|
+
.action(async () => {
|
|
60
|
+
await executeBalance(program, container);
|
|
61
|
+
});
|
|
62
|
+
usage
|
|
63
|
+
.command("list")
|
|
64
|
+
.description("Display usage history.")
|
|
65
|
+
.option("--filter <model>", "Filter results by model name")
|
|
66
|
+
.option("--pages <count>", "Number of pages to load automatically", parseInt)
|
|
67
|
+
.action(async function () {
|
|
68
|
+
const flags = resolveCommandFlags(program);
|
|
69
|
+
const resources = createExecutionResources(container, flags, "usage:list");
|
|
70
|
+
const commandOptions = this.opts();
|
|
71
|
+
resources.logger.intro("usage list");
|
|
72
|
+
try {
|
|
73
|
+
const apiKey = await loadCredentials({
|
|
74
|
+
fs: container.fs,
|
|
75
|
+
filePath: container.env.credentialsPath
|
|
76
|
+
});
|
|
77
|
+
if (!apiKey) {
|
|
78
|
+
throw new AuthenticationError("Poe API key not found. Run 'poe-code login' first.");
|
|
79
|
+
}
|
|
80
|
+
if (flags.dryRun) {
|
|
81
|
+
resources.logger.dryRun("Dry run: would fetch usage history from Poe API.");
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const theme = getTheme();
|
|
85
|
+
const filterTerm = commandOptions.filter;
|
|
86
|
+
const tzAbbr = Intl.DateTimeFormat("en-US", { timeZoneName: "short" })
|
|
87
|
+
.formatToParts(new Date())
|
|
88
|
+
.find((p) => p.type === "timeZoneName")?.value ?? "local";
|
|
89
|
+
const dateTitle = `Date [${tzAbbr}]`;
|
|
90
|
+
const dateWidth = Math.max(16, dateTitle.length);
|
|
91
|
+
const costTitle = "Cost (compute points)";
|
|
92
|
+
const costWidth = Math.max(10, costTitle.length);
|
|
93
|
+
const tableChrome = 10;
|
|
94
|
+
const modelMaxWidth = widths.maxLine - dateWidth - costWidth - tableChrome;
|
|
95
|
+
const tableColumns = [
|
|
96
|
+
{ name: "Date", title: dateTitle, alignment: "left", maxLen: dateWidth },
|
|
97
|
+
{ name: "Model", title: "Model", alignment: "left", maxLen: modelMaxWidth },
|
|
98
|
+
{ name: "Cost", title: costTitle, alignment: "right", maxLen: costWidth }
|
|
99
|
+
];
|
|
100
|
+
const formatEntry = (entry) => {
|
|
101
|
+
const date = new Date(entry.creation_time / 1000);
|
|
102
|
+
const year = date.getFullYear();
|
|
103
|
+
const month = String(date.getMonth() + 1).padStart(2, "0");
|
|
104
|
+
const day = String(date.getDate()).padStart(2, "0");
|
|
105
|
+
const hours = String(date.getHours()).padStart(2, "0");
|
|
106
|
+
const minutes = String(date.getMinutes()).padStart(2, "0");
|
|
107
|
+
const formatted = `${year}-${month}-${day} ${hours}:${minutes}`;
|
|
108
|
+
const modelName = entry.bot_name.length > modelMaxWidth
|
|
109
|
+
? entry.bot_name.slice(0, modelMaxWidth - 1) + "\u2026"
|
|
110
|
+
: entry.bot_name;
|
|
111
|
+
return {
|
|
112
|
+
Date: theme.muted(formatted),
|
|
113
|
+
Model: theme.accent(modelName),
|
|
114
|
+
Cost: entry.cost_points < 0
|
|
115
|
+
? theme.error(String(entry.cost_points))
|
|
116
|
+
: theme.success(String(entry.cost_points))
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
let totalFetched = 0;
|
|
120
|
+
let totalFiltered = 0;
|
|
121
|
+
let startingAfter;
|
|
122
|
+
let pagesLoaded = 0;
|
|
123
|
+
const maxPages = commandOptions.pages;
|
|
124
|
+
while (true) {
|
|
125
|
+
let url = `${container.env.poeBaseUrl}/usage/points_history?limit=20`;
|
|
126
|
+
if (startingAfter) {
|
|
127
|
+
url += `&starting_after=${startingAfter}`;
|
|
128
|
+
}
|
|
129
|
+
const response = await container.httpClient(url, {
|
|
130
|
+
method: "GET",
|
|
131
|
+
headers: {
|
|
132
|
+
Authorization: `Bearer ${apiKey}`
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
if (!response.ok) {
|
|
136
|
+
throw new ApiError(`Failed to fetch usage history (HTTP ${response.status})`, {
|
|
137
|
+
httpStatus: response.status,
|
|
138
|
+
endpoint: "/usage/points_history"
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
const result = (await response.json());
|
|
142
|
+
pagesLoaded++;
|
|
143
|
+
totalFetched += result.data.length;
|
|
144
|
+
const pageEntries = filterTerm
|
|
145
|
+
? result.data.filter((entry) => entry.bot_name.toLowerCase().includes(filterTerm.toLowerCase()))
|
|
146
|
+
: result.data;
|
|
147
|
+
totalFiltered += pageEntries.length;
|
|
148
|
+
if (pageEntries.length > 0) {
|
|
149
|
+
const rows = pageEntries.map(formatEntry);
|
|
150
|
+
resources.logger.info(renderTable({ theme, columns: tableColumns, rows }));
|
|
151
|
+
}
|
|
152
|
+
if (!result.has_more || result.data.length === 0) {
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
if (maxPages !== undefined && pagesLoaded >= maxPages) {
|
|
156
|
+
break;
|
|
157
|
+
}
|
|
158
|
+
startingAfter = result.data[result.data.length - 1].query_id;
|
|
159
|
+
if (maxPages === undefined) {
|
|
160
|
+
const shouldContinue = await confirm({ message: "Load more?" });
|
|
161
|
+
if (isCancel(shouldContinue) || !shouldContinue) {
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
if (totalFetched === 0) {
|
|
167
|
+
resources.logger.info("No usage history found.");
|
|
168
|
+
}
|
|
169
|
+
else if (filterTerm && totalFiltered === 0) {
|
|
170
|
+
resources.logger.info(`No entries match "${filterTerm}".`);
|
|
171
|
+
}
|
|
172
|
+
else if (filterTerm && totalFiltered > 0) {
|
|
173
|
+
resources.logger.info(`Showing entries matching "${filterTerm}".`);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
if (error instanceof Error) {
|
|
178
|
+
resources.logger.logException(error, "usage list", {
|
|
179
|
+
operation: "fetch-history"
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
throw error;
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../../src/cli/commands/usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { checkForUpdate } from "../../services/version.js";
|
|
2
|
+
import { VersionExit } from "../exit-signals.js";
|
|
3
|
+
export function registerVersionOption(program, container, currentVersion) {
|
|
4
|
+
program.option("-V, --version", "Output the version number.");
|
|
5
|
+
program.hook("preAction", async (thisCommand) => {
|
|
6
|
+
const opts = thisCommand.opts();
|
|
7
|
+
if (opts.version) {
|
|
8
|
+
await displayVersion(container, currentVersion);
|
|
9
|
+
throw new VersionExit();
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
async function displayVersion(container, currentVersion) {
|
|
14
|
+
const { loggerFactory, httpClient } = container;
|
|
15
|
+
const logger = loggerFactory.create({
|
|
16
|
+
dryRun: false,
|
|
17
|
+
verbose: false,
|
|
18
|
+
scope: "version"
|
|
19
|
+
});
|
|
20
|
+
logger.info(`poe-code ${currentVersion}`);
|
|
21
|
+
const result = await checkForUpdate({
|
|
22
|
+
currentVersion,
|
|
23
|
+
httpClient
|
|
24
|
+
});
|
|
25
|
+
if (result?.updateAvailable) {
|
|
26
|
+
logger.info("");
|
|
27
|
+
logger.info(`Update available: ${result.currentVersion} -> ${result.latestVersion}`);
|
|
28
|
+
logger.info("Run: npm install -g poe-code@latest");
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/cli/commands/version.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,UAAU,qBAAqB,CACnC,OAAgB,EAChB,SAAuB,EACvB,cAAsB;IAEtB,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,4BAA4B,CAAC,CAAC;IAE9D,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;QAC9C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YAChD,MAAM,IAAI,WAAW,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,SAAuB,EACvB,cAAsB;IAEtB,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;IAChD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;QAClC,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,YAAY,cAAc,EAAE,CAAC,CAAC;IAE1C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;QAClC,cAAc;QACd,UAAU;KACX,CAAC,CAAC;IAEH,IAAI,MAAM,EAAE,eAAe,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,IAAI,CACT,qBAAqB,MAAM,CAAC,cAAc,OAAO,MAAM,CAAC,aAAa,EAAE,CACxE,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IACrD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { formatServiceList, listIsolatedServiceIds, resolveCommandFlags, resolveServiceAdapter } from "./shared.js";
|
|
2
|
+
import { isolatedEnvRunner } from "../isolated-env-runner.js";
|
|
3
|
+
import { ensureIsolatedConfigForService } from "./ensure-isolated-config.js";
|
|
4
|
+
import { applyIsolatedEnvRepairs } from "../isolated-env.js";
|
|
5
|
+
export function registerWrapCommand(program, container) {
|
|
6
|
+
const serviceNames = listIsolatedServiceIds(container);
|
|
7
|
+
const serviceDescription = `Agent to wrap${formatServiceList(serviceNames)}`;
|
|
8
|
+
return program
|
|
9
|
+
.command("wrap")
|
|
10
|
+
.description("Run an agent CLI with Poe isolated configuration.")
|
|
11
|
+
.allowUnknownOption(true)
|
|
12
|
+
.allowExcessArguments(true)
|
|
13
|
+
.argument("<agent>", serviceDescription)
|
|
14
|
+
.argument("[agentArgs...]", "Arguments forwarded to the agent")
|
|
15
|
+
.action(async (service, agentArgs = []) => {
|
|
16
|
+
const requestedService = service;
|
|
17
|
+
const flags = resolveCommandFlags(program);
|
|
18
|
+
const adapter = resolveServiceAdapter(container, requestedService);
|
|
19
|
+
const canonicalService = adapter.name;
|
|
20
|
+
const isolated = adapter.isolatedEnv;
|
|
21
|
+
if (!isolated) {
|
|
22
|
+
throw new Error(`Agent "${requestedService}" does not support isolated configuration wrappers.`);
|
|
23
|
+
}
|
|
24
|
+
const argv = process.argv;
|
|
25
|
+
const wrapIndex = argv.indexOf("wrap");
|
|
26
|
+
const serviceIndex = wrapIndex >= 0 && argv[wrapIndex + 1] === requestedService
|
|
27
|
+
? wrapIndex + 1
|
|
28
|
+
: argv.indexOf(requestedService);
|
|
29
|
+
const startIndex = serviceIndex >= 0 ? serviceIndex + 1 : argv.length;
|
|
30
|
+
let forwarded = argv.slice(startIndex);
|
|
31
|
+
if (forwarded[0] === "--") {
|
|
32
|
+
forwarded = forwarded.slice(1);
|
|
33
|
+
}
|
|
34
|
+
if (forwarded.length === 0) {
|
|
35
|
+
forwarded = agentArgs;
|
|
36
|
+
}
|
|
37
|
+
if (isolated.requiresConfig !== false) {
|
|
38
|
+
await ensureIsolatedConfigForService({
|
|
39
|
+
container,
|
|
40
|
+
adapter,
|
|
41
|
+
service: canonicalService,
|
|
42
|
+
flags,
|
|
43
|
+
refresh: true
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
await applyIsolatedEnvRepairs({
|
|
47
|
+
fs: container.fs,
|
|
48
|
+
env: container.env,
|
|
49
|
+
providerName: adapter.name,
|
|
50
|
+
isolated
|
|
51
|
+
});
|
|
52
|
+
await isolatedEnvRunner({
|
|
53
|
+
env: container.env,
|
|
54
|
+
fs: container.fs,
|
|
55
|
+
providerName: adapter.name,
|
|
56
|
+
isolated,
|
|
57
|
+
argv: ["node", "poe-code", ...forwarded]
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=wrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrap.js","sourceRoot":"","sources":["../../../src/cli/commands/wrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const FRONTIER_MODELS: readonly ["anthropic/claude-opus-4.6", "anthropic/claude-sonnet-4.5", "openai/gpt-5.2", "google/gemini-3-pro"];
|
|
2
|
+
export declare const DEFAULT_FRONTIER_MODEL = "anthropic/claude-sonnet-4.5";
|
|
3
|
+
export declare const DEFAULT_TEXT_MODEL = "anthropic/claude-sonnet-4.5";
|
|
4
|
+
export declare const DEFAULT_IMAGE_BOT = "google/nano-banana-pro";
|
|
5
|
+
export declare const DEFAULT_AUDIO_BOT = "elevenlabs/elevenlabs-v3";
|
|
6
|
+
export declare const DEFAULT_VIDEO_BOT = "google/veo-3.1";
|
|
7
|
+
export declare const CLAUDE_CODE_VARIANTS: {
|
|
8
|
+
readonly haiku: "anthropic/claude-haiku-4.5";
|
|
9
|
+
readonly sonnet: "anthropic/claude-sonnet-4.5";
|
|
10
|
+
readonly opus: "anthropic/claude-opus-4.6";
|
|
11
|
+
};
|
|
12
|
+
export declare const DEFAULT_CLAUDE_CODE_MODEL: "anthropic/claude-opus-4.6";
|
|
13
|
+
/**
|
|
14
|
+
* Extracts the model ID from a namespaced model slug (lowercase).
|
|
15
|
+
* e.g., "anthropic/claude-sonnet-4.5" -> "claude-sonnet-4.5"
|
|
16
|
+
*/
|
|
17
|
+
export declare function stripModelNamespace(model: string): string;
|
|
18
|
+
export declare const CODEX_MODELS: readonly ["openai/gpt-5.2-codex", "openai/gpt-5.2", "openai/gpt-5.2-chat", "openai/gpt-5.2-pro", "openai/gpt-5.1", "openai/gpt-5.1-codex-mini"];
|
|
19
|
+
export declare const DEFAULT_CODEX_MODEL: "openai/gpt-5.2-codex";
|
|
20
|
+
export declare const KIMI_MODELS: readonly ["novitaai/kimi-k2.5", "novitaai/kimi-k2-thinking"];
|
|
21
|
+
export declare const DEFAULT_KIMI_MODEL: "novitaai/kimi-k2.5";
|
|
22
|
+
export declare const DEFAULT_REASONING = "medium";
|
|
23
|
+
export declare const PROVIDER_NAME = "poe";
|
|
24
|
+
export declare const FEEDBACK_URL = "https://github.com/poe-platform/poe-code/issues";
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export const FRONTIER_MODELS = [
|
|
2
|
+
"anthropic/claude-opus-4.6",
|
|
3
|
+
"anthropic/claude-sonnet-4.5",
|
|
4
|
+
"openai/gpt-5.2",
|
|
5
|
+
"google/gemini-3-pro"
|
|
6
|
+
];
|
|
7
|
+
export const DEFAULT_FRONTIER_MODEL = "anthropic/claude-sonnet-4.5";
|
|
8
|
+
export const DEFAULT_TEXT_MODEL = "anthropic/claude-sonnet-4.5";
|
|
9
|
+
export const DEFAULT_IMAGE_BOT = "google/nano-banana-pro";
|
|
10
|
+
export const DEFAULT_AUDIO_BOT = "elevenlabs/elevenlabs-v3";
|
|
11
|
+
export const DEFAULT_VIDEO_BOT = "google/veo-3.1";
|
|
12
|
+
export const CLAUDE_CODE_VARIANTS = {
|
|
13
|
+
haiku: "anthropic/claude-haiku-4.5",
|
|
14
|
+
sonnet: "anthropic/claude-sonnet-4.5",
|
|
15
|
+
opus: "anthropic/claude-opus-4.6"
|
|
16
|
+
};
|
|
17
|
+
export const DEFAULT_CLAUDE_CODE_MODEL = CLAUDE_CODE_VARIANTS.opus;
|
|
18
|
+
/**
|
|
19
|
+
* Extracts the model ID from a namespaced model slug (lowercase).
|
|
20
|
+
* e.g., "anthropic/claude-sonnet-4.5" -> "claude-sonnet-4.5"
|
|
21
|
+
*/
|
|
22
|
+
export function stripModelNamespace(model) {
|
|
23
|
+
const slashIndex = model.indexOf("/");
|
|
24
|
+
const id = slashIndex === -1 ? model : model.slice(slashIndex + 1);
|
|
25
|
+
return id.toLowerCase();
|
|
26
|
+
}
|
|
27
|
+
export const CODEX_MODELS = [
|
|
28
|
+
"openai/gpt-5.2-codex",
|
|
29
|
+
"openai/gpt-5.2",
|
|
30
|
+
"openai/gpt-5.2-chat",
|
|
31
|
+
"openai/gpt-5.2-pro",
|
|
32
|
+
"openai/gpt-5.1",
|
|
33
|
+
"openai/gpt-5.1-codex-mini"
|
|
34
|
+
];
|
|
35
|
+
export const DEFAULT_CODEX_MODEL = CODEX_MODELS[0];
|
|
36
|
+
export const KIMI_MODELS = [
|
|
37
|
+
"novitaai/kimi-k2.5",
|
|
38
|
+
"novitaai/kimi-k2-thinking",
|
|
39
|
+
];
|
|
40
|
+
export const DEFAULT_KIMI_MODEL = KIMI_MODELS[0];
|
|
41
|
+
export const DEFAULT_REASONING = "medium";
|
|
42
|
+
export const PROVIDER_NAME = "poe";
|
|
43
|
+
export const FEEDBACK_URL = "https://github.com/poe-platform/poe-code/issues";
|
|
44
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/cli/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,2BAA2B;IAC3B,6BAA6B;IAC7B,gBAAgB;IAChB,qBAAqB;CACb,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AAEpE,MAAM,CAAC,MAAM,kBAAkB,GAAG,6BAA6B,CAAC;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAC5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,4BAA4B;IACnC,MAAM,EAAE,6BAA6B;IACrC,IAAI,EAAE,2BAA2B;CACzB,CAAC;AAEX,MAAM,CAAC,MAAM,yBAAyB,GAAG,oBAAoB,CAAC,IAAI,CAAC;AAEnE;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IACnE,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,sBAAsB;IACtB,gBAAgB;IAChB,qBAAqB;IACrB,oBAAoB;IACpB,gBAAgB;IAChB,2BAA2B;CACnB,CAAC;AACX,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,oBAAoB;IACpB,2BAA2B;CACnB,CAAC;AACX,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAC1C,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC;AACnC,MAAM,CAAC,MAAM,YAAY,GAAG,iDAAiD,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { FileSystem } from "../utils/file-system.js";
|
|
2
|
+
import { createCliEnvironment } from "./environment.js";
|
|
3
|
+
import { createServiceRegistry, type ProviderService } from "./service-registry.js";
|
|
4
|
+
import { type CommandContextFactory } from "./context.js";
|
|
5
|
+
import { createPromptLibrary } from "./prompts.js";
|
|
6
|
+
import { type OptionResolvers } from "./options.js";
|
|
7
|
+
import { type LoggerFactory } from "./logger.js";
|
|
8
|
+
import { ErrorLogger } from "./error-logger.js";
|
|
9
|
+
import type { PromptFn, LoggerFn } from "./types.js";
|
|
10
|
+
import type { HttpClient } from "./http.js";
|
|
11
|
+
import type { CommandRunner } from "../utils/command-checks.js";
|
|
12
|
+
export interface CliDependencies {
|
|
13
|
+
fs: FileSystem;
|
|
14
|
+
prompts: PromptFn;
|
|
15
|
+
env: {
|
|
16
|
+
cwd: string;
|
|
17
|
+
homeDir: string;
|
|
18
|
+
platform?: NodeJS.Platform;
|
|
19
|
+
variables?: Record<string, string | undefined>;
|
|
20
|
+
};
|
|
21
|
+
logger?: LoggerFn;
|
|
22
|
+
exitOverride?: boolean;
|
|
23
|
+
suppressCommanderOutput?: boolean;
|
|
24
|
+
httpClient?: HttpClient;
|
|
25
|
+
commandRunner?: CommandRunner;
|
|
26
|
+
}
|
|
27
|
+
export interface CliContainer {
|
|
28
|
+
readonly env: ReturnType<typeof createCliEnvironment>;
|
|
29
|
+
readonly fs: FileSystem;
|
|
30
|
+
readonly prompts: PromptFn;
|
|
31
|
+
readonly promptLibrary: ReturnType<typeof createPromptLibrary>;
|
|
32
|
+
readonly loggerFactory: LoggerFactory;
|
|
33
|
+
readonly errorLogger: ErrorLogger;
|
|
34
|
+
readonly options: OptionResolvers;
|
|
35
|
+
readonly contextFactory: CommandContextFactory;
|
|
36
|
+
readonly registry: ReturnType<typeof createServiceRegistry>;
|
|
37
|
+
readonly httpClient: HttpClient;
|
|
38
|
+
readonly commandRunner: CommandRunner;
|
|
39
|
+
readonly providers: ProviderService[];
|
|
40
|
+
readonly dependencies: CliDependencies;
|
|
41
|
+
}
|
|
42
|
+
export declare function createCliContainer(dependencies: CliDependencies): CliContainer;
|