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.
Files changed (227) hide show
  1. package/README.md +2 -2
  2. package/dist/bin/poe-claude.js +23 -0
  3. package/dist/bin/poe-codex.js +23 -0
  4. package/dist/bin/poe-kimi-cli.js +23 -0
  5. package/dist/bin/poe-opencode.js +23 -0
  6. package/dist/bin.cjs +9 -0
  7. package/dist/cli/binary-aliases.d.ts +7 -0
  8. package/dist/cli/binary-aliases.js +26 -0
  9. package/dist/cli/binary-aliases.js.map +1 -0
  10. package/dist/cli/bootstrap.d.ts +4 -0
  11. package/dist/cli/bootstrap.js +78 -0
  12. package/dist/cli/bootstrap.js.map +1 -0
  13. package/dist/cli/command-not-found.d.ts +8 -0
  14. package/dist/cli/command-not-found.js +34 -0
  15. package/dist/cli/command-not-found.js.map +1 -0
  16. package/dist/cli/commands/configure-payload.d.ts +15 -0
  17. package/dist/cli/commands/configure-payload.js +31 -0
  18. package/dist/cli/commands/configure-payload.js.map +1 -0
  19. package/dist/cli/commands/configure.d.ts +12 -0
  20. package/dist/cli/commands/configure.js +151 -0
  21. package/dist/cli/commands/configure.js.map +1 -0
  22. package/dist/cli/commands/ensure-isolated-config.d.ts +12 -0
  23. package/dist/cli/commands/ensure-isolated-config.js +53 -0
  24. package/dist/cli/commands/ensure-isolated-config.js.map +1 -0
  25. package/dist/cli/commands/generate.d.ts +9 -0
  26. package/dist/cli/commands/generate.js +322 -0
  27. package/dist/cli/commands/generate.js.map +1 -0
  28. package/dist/cli/commands/install.d.ts +4 -0
  29. package/dist/cli/commands/install.js +40 -0
  30. package/dist/cli/commands/install.js.map +1 -0
  31. package/dist/cli/commands/login.d.ts +6 -0
  32. package/dist/cli/commands/login.js +105 -0
  33. package/dist/cli/commands/login.js.map +1 -0
  34. package/dist/cli/commands/mcp.d.ts +3 -0
  35. package/dist/cli/commands/mcp.js +178 -0
  36. package/dist/cli/commands/mcp.js.map +1 -0
  37. package/dist/cli/commands/models.d.ts +3 -0
  38. package/dist/cli/commands/models.js +183 -0
  39. package/dist/cli/commands/models.js.map +1 -0
  40. package/dist/cli/commands/ralph-worktree.d.ts +3 -0
  41. package/dist/cli/commands/ralph-worktree.js +73 -0
  42. package/dist/cli/commands/ralph-worktree.js.map +1 -0
  43. package/dist/cli/commands/ralph.d.ts +3 -0
  44. package/dist/cli/commands/ralph.js +424 -0
  45. package/dist/cli/commands/ralph.js.map +1 -0
  46. package/dist/cli/commands/shared.d.ts +29 -0
  47. package/dist/cli/commands/shared.js +82 -0
  48. package/dist/cli/commands/shared.js.map +1 -0
  49. package/dist/cli/commands/skill.d.ts +3 -0
  50. package/dist/cli/commands/skill.js +242 -0
  51. package/dist/cli/commands/skill.js.map +1 -0
  52. package/dist/cli/commands/spawn.d.ts +17 -0
  53. package/dist/cli/commands/spawn.js +226 -0
  54. package/dist/cli/commands/spawn.js.map +1 -0
  55. package/dist/cli/commands/test.d.ts +8 -0
  56. package/dist/cli/commands/test.js +124 -0
  57. package/dist/cli/commands/test.js.map +1 -0
  58. package/dist/cli/commands/unconfigure.d.ts +7 -0
  59. package/dist/cli/commands/unconfigure.js +116 -0
  60. package/dist/cli/commands/unconfigure.js.map +1 -0
  61. package/dist/cli/commands/usage.d.ts +3 -0
  62. package/dist/cli/commands/usage.js +186 -0
  63. package/dist/cli/commands/usage.js.map +1 -0
  64. package/dist/cli/commands/version.d.ts +3 -0
  65. package/dist/cli/commands/version.js +31 -0
  66. package/dist/cli/commands/version.js.map +1 -0
  67. package/dist/cli/commands/wrap.d.ts +3 -0
  68. package/dist/cli/commands/wrap.js +61 -0
  69. package/dist/cli/commands/wrap.js.map +1 -0
  70. package/dist/cli/constants.d.ts +24 -0
  71. package/dist/cli/constants.js +44 -0
  72. package/dist/cli/constants.js.map +1 -0
  73. package/dist/cli/container.d.ts +42 -0
  74. package/dist/cli/container.js +90 -0
  75. package/dist/cli/container.js.map +1 -0
  76. package/dist/cli/context.d.ts +33 -0
  77. package/dist/cli/context.js +91 -0
  78. package/dist/cli/context.js.map +1 -0
  79. package/dist/cli/environment.d.ts +21 -0
  80. package/dist/cli/environment.js +106 -0
  81. package/dist/cli/environment.js.map +1 -0
  82. package/dist/cli/error-logger.d.ts +62 -0
  83. package/dist/cli/error-logger.js +155 -0
  84. package/dist/cli/error-logger.js.map +1 -0
  85. package/dist/cli/errors.d.ts +95 -0
  86. package/dist/cli/errors.js +141 -0
  87. package/dist/cli/errors.js.map +1 -0
  88. package/dist/cli/exit-signals.d.ts +4 -0
  89. package/dist/cli/exit-signals.js +8 -0
  90. package/dist/cli/exit-signals.js.map +1 -0
  91. package/dist/cli/http.d.ts +12 -0
  92. package/dist/cli/http.js +2 -0
  93. package/dist/cli/http.js.map +1 -0
  94. package/dist/cli/isolated-env-runner.d.ts +10 -0
  95. package/dist/cli/isolated-env-runner.js +50 -0
  96. package/dist/cli/isolated-env-runner.js.map +1 -0
  97. package/dist/cli/isolated-env.d.ts +24 -0
  98. package/dist/cli/isolated-env.js +210 -0
  99. package/dist/cli/isolated-env.js.map +1 -0
  100. package/dist/cli/logger.d.ts +36 -0
  101. package/dist/cli/logger.js +191 -0
  102. package/dist/cli/logger.js.map +1 -0
  103. package/dist/cli/mcp-output-format.d.ts +2 -0
  104. package/dist/cli/mcp-output-format.js +27 -0
  105. package/dist/cli/mcp-output-format.js.map +1 -0
  106. package/dist/cli/mcp-server.d.ts +21 -0
  107. package/dist/cli/mcp-server.js +321 -0
  108. package/dist/cli/mcp-server.js.map +1 -0
  109. package/dist/cli/options.d.ts +45 -0
  110. package/dist/cli/options.js +111 -0
  111. package/dist/cli/options.js.map +1 -0
  112. package/dist/cli/poe-code-command-runner.d.ts +6 -0
  113. package/dist/cli/poe-code-command-runner.js +63 -0
  114. package/dist/cli/poe-code-command-runner.js.map +1 -0
  115. package/dist/cli/program.d.ts +4 -0
  116. package/dist/cli/program.js +249 -0
  117. package/dist/cli/program.js.map +1 -0
  118. package/dist/cli/prompt-runner.d.ts +10 -0
  119. package/dist/cli/prompt-runner.js +79 -0
  120. package/dist/cli/prompt-runner.js.map +1 -0
  121. package/dist/cli/prompts.d.ts +39 -0
  122. package/dist/cli/prompts.js +42 -0
  123. package/dist/cli/prompts.js.map +1 -0
  124. package/dist/cli/service-registry.d.ts +108 -0
  125. package/dist/cli/service-registry.js +83 -0
  126. package/dist/cli/service-registry.js.map +1 -0
  127. package/dist/cli/types.d.ts +2 -0
  128. package/dist/cli/types.js +2 -0
  129. package/dist/cli/types.js.map +1 -0
  130. package/dist/cli/ui/service-menu.d.ts +7 -0
  131. package/dist/cli/ui/service-menu.js +43 -0
  132. package/dist/cli/ui/service-menu.js.map +1 -0
  133. package/dist/index.d.ts +8 -0
  134. package/dist/index.js +36812 -0
  135. package/dist/index.js.map +7 -0
  136. package/dist/providers/claude-code.d.ts +13 -0
  137. package/dist/providers/claude-code.js +143 -0
  138. package/dist/providers/claude-code.js.map +1 -0
  139. package/dist/providers/codex.d.ts +17 -0
  140. package/dist/providers/codex.js +144 -0
  141. package/dist/providers/codex.js.map +1 -0
  142. package/dist/providers/create-provider.d.ts +29 -0
  143. package/dist/providers/create-provider.js +78 -0
  144. package/dist/providers/create-provider.js.map +1 -0
  145. package/dist/providers/index.d.ts +2 -0
  146. package/dist/providers/index.js +8 -0
  147. package/dist/providers/index.js.map +1 -0
  148. package/dist/providers/kimi.d.ts +4 -0
  149. package/dist/providers/kimi.js +123 -0
  150. package/dist/providers/kimi.js.map +1 -0
  151. package/dist/providers/opencode.d.ts +3 -0
  152. package/dist/providers/opencode.js +119 -0
  153. package/dist/providers/opencode.js.map +1 -0
  154. package/dist/providers/spawn-options.d.ts +13 -0
  155. package/dist/providers/spawn-options.js +2 -0
  156. package/dist/providers/spawn-options.js.map +1 -0
  157. package/dist/sdk/container.d.ts +18 -0
  158. package/dist/sdk/container.js +127 -0
  159. package/dist/sdk/container.js.map +1 -0
  160. package/dist/sdk/credentials.d.ts +9 -0
  161. package/dist/sdk/credentials.js +35 -0
  162. package/dist/sdk/credentials.js.map +1 -0
  163. package/dist/sdk/generate.d.ts +5 -0
  164. package/dist/sdk/generate.js +97 -0
  165. package/dist/sdk/generate.js.map +1 -0
  166. package/dist/sdk/spawn-core.d.ts +23 -0
  167. package/dist/sdk/spawn-core.js +105 -0
  168. package/dist/sdk/spawn-core.js.map +1 -0
  169. package/dist/sdk/spawn.d.ts +31 -0
  170. package/dist/sdk/spawn.js +109 -0
  171. package/dist/sdk/spawn.js.map +1 -0
  172. package/dist/sdk/types.d.ts +44 -0
  173. package/dist/sdk/types.js +2 -0
  174. package/dist/sdk/types.js.map +1 -0
  175. package/dist/services/client-instance.d.ts +12 -0
  176. package/dist/services/client-instance.js +36 -0
  177. package/dist/services/client-instance.js.map +1 -0
  178. package/dist/services/credentials.d.ts +24 -0
  179. package/dist/services/credentials.js +157 -0
  180. package/dist/services/credentials.js.map +1 -0
  181. package/dist/services/llm-client.d.ts +22 -0
  182. package/dist/services/llm-client.js +138 -0
  183. package/dist/services/llm-client.js.map +1 -0
  184. package/dist/services/media-download.d.ts +17 -0
  185. package/dist/services/media-download.js +42 -0
  186. package/dist/services/media-download.js.map +1 -0
  187. package/dist/services/model-strategy.d.ts +99 -0
  188. package/dist/services/model-strategy.js +187 -0
  189. package/dist/services/model-strategy.js.map +1 -0
  190. package/dist/services/mutation-events.d.ts +4 -0
  191. package/dist/services/mutation-events.js +53 -0
  192. package/dist/services/mutation-events.js.map +1 -0
  193. package/dist/services/service-install.d.ts +22 -0
  194. package/dist/services/service-install.js +70 -0
  195. package/dist/services/service-install.js.map +1 -0
  196. package/dist/services/version.d.ts +11 -0
  197. package/dist/services/version.js +28 -0
  198. package/dist/services/version.js.map +1 -0
  199. package/dist/tools/label-generator.d.ts +11 -0
  200. package/dist/tools/label-generator.js +78 -0
  201. package/dist/tools/label-generator.js.map +1 -0
  202. package/dist/utils/backup.d.ts +5 -0
  203. package/dist/utils/backup.js +56 -0
  204. package/dist/utils/backup.js.map +1 -0
  205. package/dist/utils/cli-settings-merge.d.ts +22 -0
  206. package/dist/utils/cli-settings-merge.js +56 -0
  207. package/dist/utils/cli-settings-merge.js.map +1 -0
  208. package/dist/utils/command-checks.d.ts +36 -0
  209. package/dist/utils/command-checks.js +120 -0
  210. package/dist/utils/command-checks.js.map +1 -0
  211. package/dist/utils/command-line.d.ts +1 -0
  212. package/dist/utils/command-line.js +54 -0
  213. package/dist/utils/command-line.js.map +1 -0
  214. package/dist/utils/dry-run.d.ts +39 -0
  215. package/dist/utils/dry-run.js +315 -0
  216. package/dist/utils/dry-run.js.map +1 -0
  217. package/dist/utils/execution-context.d.ts +48 -0
  218. package/dist/utils/execution-context.js +151 -0
  219. package/dist/utils/execution-context.js.map +1 -0
  220. package/dist/utils/file-system.d.ts +21 -0
  221. package/dist/utils/file-system.js +2 -0
  222. package/dist/utils/file-system.js.map +1 -0
  223. package/dist/utils/json.d.ts +12 -0
  224. package/dist/utils/json.js +45 -0
  225. package/dist/utils/json.js.map +1 -0
  226. package/package.json +5 -2
  227. 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,2 @@
1
+ export type PromptFn = (questions: unknown) => Promise<Record<string, unknown>>;
2
+ export type LoggerFn = (message: string) => void;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -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"}
@@ -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 };