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,108 @@
|
|
|
1
|
+
import type { CliEnvironment } from "./environment.js";
|
|
2
|
+
import type { CommandContext } from "./context.js";
|
|
3
|
+
import type { ScopedLogger } from "./logger.js";
|
|
4
|
+
import type { FileSystem } from "../utils/file-system.js";
|
|
5
|
+
import type { CommandCheck } from "../utils/command-checks.js";
|
|
6
|
+
import type { ModelPromptInput, ReasoningPromptInput } from "./prompts.js";
|
|
7
|
+
import type { MutationObservers } from "@poe-code/config-mutations";
|
|
8
|
+
export interface ServiceManifestPathMapper {
|
|
9
|
+
mapTargetDirectory: (input: {
|
|
10
|
+
targetDirectory: string;
|
|
11
|
+
env: CliEnvironment;
|
|
12
|
+
}) => string;
|
|
13
|
+
}
|
|
14
|
+
export interface ServiceRunOptions {
|
|
15
|
+
observers?: MutationObservers;
|
|
16
|
+
}
|
|
17
|
+
export interface ProviderColorSet {
|
|
18
|
+
light?: string;
|
|
19
|
+
dark?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface ProviderBranding {
|
|
22
|
+
colors?: ProviderColorSet;
|
|
23
|
+
}
|
|
24
|
+
export interface ProviderConfigurePrompts {
|
|
25
|
+
model?: ModelPromptInput;
|
|
26
|
+
reasoningEffort?: ReasoningPromptInput;
|
|
27
|
+
}
|
|
28
|
+
export interface ProviderContext {
|
|
29
|
+
env: CliEnvironment;
|
|
30
|
+
command: CommandContext;
|
|
31
|
+
logger: ScopedLogger;
|
|
32
|
+
runCheck(check: CommandCheck): Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
export interface ServiceExecutionContext<Options> {
|
|
35
|
+
fs: FileSystem;
|
|
36
|
+
env: CliEnvironment;
|
|
37
|
+
command: CommandContext;
|
|
38
|
+
options: Options;
|
|
39
|
+
pathMapper?: ServiceManifestPathMapper;
|
|
40
|
+
}
|
|
41
|
+
export interface ProviderService<TConfigure = any, TUnconfigure = TConfigure, TSpawn = any> {
|
|
42
|
+
id: string;
|
|
43
|
+
summary: string;
|
|
44
|
+
aliases?: string[];
|
|
45
|
+
configure(context: ServiceExecutionContext<TConfigure>, runOptions?: ServiceRunOptions): Promise<void>;
|
|
46
|
+
unconfigure(context: ServiceExecutionContext<TUnconfigure>, runOptions?: ServiceRunOptions): Promise<boolean>;
|
|
47
|
+
name: string;
|
|
48
|
+
label: string;
|
|
49
|
+
branding?: ProviderBranding;
|
|
50
|
+
disabled?: boolean;
|
|
51
|
+
supportsStdinPrompt?: boolean;
|
|
52
|
+
configurePrompts?: ProviderConfigurePrompts;
|
|
53
|
+
postConfigureMessages?: string[];
|
|
54
|
+
isolatedEnv?: ProviderIsolatedEnv;
|
|
55
|
+
install?(context: ProviderContext): Promise<void> | void;
|
|
56
|
+
spawn?(context: ProviderContext, options: TSpawn): Promise<unknown>;
|
|
57
|
+
test?(context: ProviderContext): Promise<void>;
|
|
58
|
+
}
|
|
59
|
+
export interface ProviderIsolatedEnv {
|
|
60
|
+
agentBinary: string;
|
|
61
|
+
configProbe?: IsolatedEnvPath;
|
|
62
|
+
env: Record<string, IsolatedEnvValue>;
|
|
63
|
+
repairs?: IsolatedEnvRepair[];
|
|
64
|
+
requiresConfig?: boolean;
|
|
65
|
+
/** CLI settings to inject via --settings flag (for agents that support it) */
|
|
66
|
+
cliSettings?: IsolatedCliSettings;
|
|
67
|
+
}
|
|
68
|
+
export interface IsolatedCliSettings {
|
|
69
|
+
/** Static settings values */
|
|
70
|
+
values: Record<string, unknown>;
|
|
71
|
+
/** Top-level settings that need runtime resolution */
|
|
72
|
+
resolved?: Record<string, IsolatedEnvPoeApiKey | IsolatedEnvPoeBaseUrl>;
|
|
73
|
+
/** Environment variables to inject into settings.env (resolved at runtime) */
|
|
74
|
+
env?: Record<string, string | IsolatedEnvPoeApiKey | IsolatedEnvPoeBaseUrl>;
|
|
75
|
+
}
|
|
76
|
+
export type IsolatedEnvRepair = {
|
|
77
|
+
kind: "chmod";
|
|
78
|
+
relativePath: string;
|
|
79
|
+
mode: number;
|
|
80
|
+
};
|
|
81
|
+
export type IsolatedEnvPath = {
|
|
82
|
+
kind: "isolatedDir";
|
|
83
|
+
relativePath?: string;
|
|
84
|
+
} | {
|
|
85
|
+
kind: "isolatedFile";
|
|
86
|
+
relativePath: string;
|
|
87
|
+
};
|
|
88
|
+
export type IsolatedEnvValue = string | IsolatedEnvPath | IsolatedEnvVariable | IsolatedEnvPoeApiKey | IsolatedEnvPoeBaseUrl;
|
|
89
|
+
export type IsolatedEnvVariable = {
|
|
90
|
+
kind: "envVar";
|
|
91
|
+
name: string;
|
|
92
|
+
};
|
|
93
|
+
export type IsolatedEnvPoeApiKey = {
|
|
94
|
+
kind: "poeApiKey";
|
|
95
|
+
};
|
|
96
|
+
export type IsolatedEnvPoeBaseUrl = {
|
|
97
|
+
kind: "poeBaseUrl";
|
|
98
|
+
};
|
|
99
|
+
export type ProviderOperation = "install" | "configure" | "unconfigure" | "spawn" | "test";
|
|
100
|
+
export interface ServiceRegistry {
|
|
101
|
+
register(adapter: ProviderService): void;
|
|
102
|
+
discover(adapters: ProviderService[]): void;
|
|
103
|
+
get(name: string): ProviderService | undefined;
|
|
104
|
+
require(name: string): ProviderService;
|
|
105
|
+
list(): ProviderService[];
|
|
106
|
+
invoke<T>(serviceName: string, operation: ProviderOperation, runner: (adapter: ProviderService) => Promise<T>): Promise<T>;
|
|
107
|
+
}
|
|
108
|
+
export declare function createServiceRegistry(): ServiceRegistry;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { resolveAgentId } from "@poe-code/agent-defs";
|
|
2
|
+
export function createServiceRegistry() {
|
|
3
|
+
const canonicalAdapters = new Map();
|
|
4
|
+
const nameToCanonical = new Map();
|
|
5
|
+
const listProviderKeys = (adapter) => {
|
|
6
|
+
const keys = [adapter.name];
|
|
7
|
+
for (const alias of adapter.aliases ?? []) {
|
|
8
|
+
if (typeof alias !== "string") {
|
|
9
|
+
continue;
|
|
10
|
+
}
|
|
11
|
+
const normalized = alias.trim();
|
|
12
|
+
if (normalized.length === 0) {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
if (!keys.includes(normalized)) {
|
|
16
|
+
keys.push(normalized);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return keys;
|
|
20
|
+
};
|
|
21
|
+
const register = (adapter) => {
|
|
22
|
+
if (canonicalAdapters.has(adapter.name)) {
|
|
23
|
+
throw new Error(`Provider "${adapter.name}" is already registered.`);
|
|
24
|
+
}
|
|
25
|
+
const keys = listProviderKeys(adapter);
|
|
26
|
+
for (const key of keys) {
|
|
27
|
+
if (nameToCanonical.has(key)) {
|
|
28
|
+
throw new Error(`Provider "${key}" is already registered.`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
canonicalAdapters.set(adapter.name, adapter);
|
|
32
|
+
for (const key of keys) {
|
|
33
|
+
nameToCanonical.set(key, adapter.name);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
const discover = (candidates) => {
|
|
37
|
+
for (const candidate of candidates) {
|
|
38
|
+
if (canonicalAdapters.has(candidate.name)) {
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
const keys = listProviderKeys(candidate);
|
|
42
|
+
if (keys.some((key) => nameToCanonical.has(key))) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
canonicalAdapters.set(candidate.name, candidate);
|
|
46
|
+
for (const key of keys) {
|
|
47
|
+
nameToCanonical.set(key, candidate.name);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
const resolveCanonicalName = (name) => {
|
|
52
|
+
const direct = nameToCanonical.get(name);
|
|
53
|
+
if (direct) {
|
|
54
|
+
return direct;
|
|
55
|
+
}
|
|
56
|
+
const resolvedAgent = resolveAgentId(name);
|
|
57
|
+
if (!resolvedAgent) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
return nameToCanonical.get(resolvedAgent);
|
|
61
|
+
};
|
|
62
|
+
const get = (name) => {
|
|
63
|
+
const canonicalName = resolveCanonicalName(name);
|
|
64
|
+
if (!canonicalName) {
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
return canonicalAdapters.get(canonicalName);
|
|
68
|
+
};
|
|
69
|
+
const require = (name) => {
|
|
70
|
+
const adapter = get(name);
|
|
71
|
+
if (!adapter) {
|
|
72
|
+
throw new Error(`Unknown provider "${name}".`);
|
|
73
|
+
}
|
|
74
|
+
return adapter;
|
|
75
|
+
};
|
|
76
|
+
const list = () => Array.from(canonicalAdapters.values());
|
|
77
|
+
const invoke = async (serviceName, operation, runner) => {
|
|
78
|
+
const adapter = require(serviceName);
|
|
79
|
+
return await runner(adapter);
|
|
80
|
+
};
|
|
81
|
+
return { register, discover, get, require, list, invoke };
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=service-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-registry.js","sourceRoot":"","sources":["../../src/cli/service-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ProviderService } from "../service-registry.js";
|
|
2
|
+
import { type ThemeName } from "@poe-code/design-system";
|
|
3
|
+
export interface RenderServiceMenuOptions {
|
|
4
|
+
themeName?: ThemeName;
|
|
5
|
+
}
|
|
6
|
+
export declare function formatServiceLabel(service: ProviderService, themeName?: ThemeName): string;
|
|
7
|
+
export declare function renderServiceMenu(services: ProviderService[], options?: RenderServiceMenuOptions): string[];
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { getTheme, resolveThemeName } from "@poe-code/design-system";
|
|
3
|
+
const HEADER_WIDTH = 70;
|
|
4
|
+
const repeat = (char, count) => char.repeat(count);
|
|
5
|
+
const CLI_COPY = {
|
|
6
|
+
tagline: "Configure coding agents to use the Poe API.",
|
|
7
|
+
get menuHeader() {
|
|
8
|
+
return `poe-code · ${this.tagline}`;
|
|
9
|
+
},
|
|
10
|
+
serviceSelection: (action) => `Pick an agent to ${action}:`
|
|
11
|
+
};
|
|
12
|
+
export function formatServiceLabel(service, themeName = "dark") {
|
|
13
|
+
const colors = service.branding?.colors;
|
|
14
|
+
if (colors) {
|
|
15
|
+
const preferred = themeName === "dark"
|
|
16
|
+
? colors.dark ?? colors.light
|
|
17
|
+
: colors.light ?? colors.dark;
|
|
18
|
+
if (preferred) {
|
|
19
|
+
return chalk.hex(preferred).bold(service.label);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return service.label;
|
|
23
|
+
}
|
|
24
|
+
export function renderServiceMenu(services, options) {
|
|
25
|
+
const themeName = options?.themeName ?? resolveThemeName();
|
|
26
|
+
const palette = getTheme();
|
|
27
|
+
const border = repeat("=", HEADER_WIDTH);
|
|
28
|
+
const divider = repeat("-", HEADER_WIDTH);
|
|
29
|
+
const lines = [
|
|
30
|
+
palette.divider(border),
|
|
31
|
+
palette.header(CLI_COPY.menuHeader),
|
|
32
|
+
palette.divider(divider),
|
|
33
|
+
palette.prompt(CLI_COPY.serviceSelection("configure"))
|
|
34
|
+
];
|
|
35
|
+
services.forEach((service, index) => {
|
|
36
|
+
const number = palette.number(`[${index + 1}]`);
|
|
37
|
+
const label = formatServiceLabel(service, themeName);
|
|
38
|
+
lines.push(`${number} ${label}`);
|
|
39
|
+
});
|
|
40
|
+
lines.push(palette.divider(divider));
|
|
41
|
+
return lines;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=service-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-menu.js","sourceRoot":"","sources":["../../../src/cli/ui/service-menu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAkB,MAAM,yBAAyB,CAAC;AAErF,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,KAAa,EAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE3E,MAAM,QAAQ,GAAG;IACf,OAAO,EAAE,6CAA6C;IACtD,IAAI,UAAU;QACZ,OAAO,cAAc,IAAI,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IACD,gBAAgB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,oBAAoB,MAAM,GAAG;CACpE,CAAC;AAMF,MAAM,UAAU,kBAAkB,CAChC,OAAwB,EACxB,YAAuB,MAAM;IAE7B,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;IACxC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,SAAS,GACb,SAAS,KAAK,MAAM;YAClB,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK;YAC7B,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC;QAClC,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,QAA2B,EAC3B,OAAkC;IAElC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAE1C,MAAM,KAAK,GAAa;QACtB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;QACnC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;KACvD,CAAC;IAEF,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAErC,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { isCliInvocation } from "./cli/bootstrap.js";
|
|
3
|
+
export { spawn } from "./sdk/spawn.js";
|
|
4
|
+
export { generate, generateImage, generateVideo, generateAudio } from "./sdk/generate.js";
|
|
5
|
+
export { getPoeApiKey } from "./sdk/credentials.js";
|
|
6
|
+
export type { SpawnOptions, SpawnResult, GenerateOptions, MediaGenerateOptions, GenerateResult, MediaGenerateResult } from "./sdk/types.js";
|
|
7
|
+
declare const main: () => Promise<void>;
|
|
8
|
+
export { main, isCliInvocation };
|