poe-code 2.0.59 → 2.0.60

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 (37) hide show
  1. package/dist/cli/commands/generate.d.ts +9 -0
  2. package/dist/cli/commands/generate.js +320 -0
  3. package/dist/cli/commands/generate.js.map +1 -0
  4. package/dist/cli/constants.d.ts +4 -1
  5. package/dist/cli/constants.js +4 -1
  6. package/dist/cli/constants.js.map +1 -1
  7. package/dist/cli/container.js +2 -1
  8. package/dist/cli/container.js.map +1 -1
  9. package/dist/cli/http.d.ts +1 -0
  10. package/dist/cli/program.js +4 -4
  11. package/dist/cli/program.js.map +1 -1
  12. package/dist/cli/prompts.d.ts +0 -1
  13. package/dist/cli/prompts.js +1 -6
  14. package/dist/cli/prompts.js.map +1 -1
  15. package/dist/cli/ui/clack-static.d.ts +51 -0
  16. package/dist/cli/ui/clack-static.js +59 -0
  17. package/dist/cli/ui/clack-static.js.map +1 -0
  18. package/dist/index.d.ts +2 -1
  19. package/dist/index.js +1 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/sdk/generate.d.ts +5 -0
  22. package/dist/sdk/generate.js +94 -0
  23. package/dist/sdk/generate.js.map +1 -0
  24. package/dist/sdk/types.d.ts +14 -0
  25. package/dist/services/client-instance.d.ts +12 -0
  26. package/dist/services/client-instance.js +36 -0
  27. package/dist/services/client-instance.js.map +1 -0
  28. package/dist/services/llm-client.d.ts +21 -0
  29. package/dist/services/llm-client.js +131 -0
  30. package/dist/services/llm-client.js.map +1 -0
  31. package/dist/services/media-download.d.ts +17 -0
  32. package/dist/services/media-download.js +42 -0
  33. package/dist/services/media-download.js.map +1 -0
  34. package/package.json +10 -2
  35. package/dist/cli/commands/query.d.ts +0 -6
  36. package/dist/cli/commands/query.js +0 -76
  37. package/dist/cli/commands/query.js.map +0 -1
@@ -0,0 +1,9 @@
1
+ import type { Command } from "commander";
2
+ import type { CliContainer } from "../container.js";
3
+ export interface GenerateCommandOptions {
4
+ model?: string;
5
+ param?: string[] | string;
6
+ output?: string;
7
+ }
8
+ export declare function registerGenerateCommand(program: Command, container: CliContainer): void;
9
+ export declare function parseParams(params: string[]): Record<string, string>;
@@ -0,0 +1,320 @@
1
+ import path from "node:path";
2
+ import { intro, outro, spinner } from "@clack/prompts";
3
+ import { DEFAULT_TEXT_MODEL, DEFAULT_IMAGE_BOT, DEFAULT_AUDIO_BOT, DEFAULT_VIDEO_BOT } from "../constants.js";
4
+ import { createExecutionResources, resolveCommandFlags } from "./shared.js";
5
+ import { createCliDesignLanguage } from "../ui/design-language.js";
6
+ import { getGlobalClient, initializeClient } from "../../services/client-instance.js";
7
+ import { downloadToFile, MediaDownloadError } from "../../services/media-download.js";
8
+ import { ValidationError } from "../errors.js";
9
+ const MODEL_ENV_KEYS = {
10
+ text: "POE_TEXT_MODEL",
11
+ image: "POE_IMAGE_MODEL",
12
+ video: "POE_VIDEO_MODEL",
13
+ audio: "POE_AUDIO_MODEL"
14
+ };
15
+ const DEFAULT_MODELS = {
16
+ text: DEFAULT_TEXT_MODEL,
17
+ image: DEFAULT_IMAGE_BOT,
18
+ video: DEFAULT_VIDEO_BOT,
19
+ audio: DEFAULT_AUDIO_BOT
20
+ };
21
+ export function registerGenerateCommand(program, container) {
22
+ const generate = program
23
+ .command("generate")
24
+ .description("Generate content via Poe API")
25
+ .option("--model <model>", `Model identifier (default: ${DEFAULT_TEXT_MODEL})`)
26
+ .option("--param <key=value>", "Additional parameters (repeatable)", collectParam, [])
27
+ .option("-o, --output <path>", "Output file path (media only)")
28
+ .argument("[prompt]", "Generation prompt (for text without subcommand)")
29
+ .action(async function (promptArg) {
30
+ const flags = resolveCommandFlags(program);
31
+ const resources = createExecutionResources(container, flags, "generate");
32
+ const design = createCliDesignLanguage(container.env);
33
+ const prompt = ensurePrompt(promptArg, { type: "text", isDefault: true });
34
+ const opts = resolveGenerateOptions(this);
35
+ const params = parseParams(normalizeParamList(opts.param));
36
+ const model = resolveModel("text", opts, container.env.variables);
37
+ if (flags.dryRun) {
38
+ resources.logger.dryRun(`Dry run: would generate text with model ${model} and prompt (${prompt.length} chars)`);
39
+ return;
40
+ }
41
+ intro(design.text.intro("generate"));
42
+ const client = await resolveClient(container);
43
+ const response = await withSpinner({
44
+ message: `Generating with ${model}...`,
45
+ fn: () => client.text({ model, prompt, params }),
46
+ stopMessage: () => model,
47
+ subtext: (r) => r.content
48
+ });
49
+ if (!response.content) {
50
+ throw new ValidationError("No response from LLM");
51
+ }
52
+ outro();
53
+ });
54
+ generate
55
+ .command("text")
56
+ .description(`Generate text (default model: ${DEFAULT_TEXT_MODEL})`)
57
+ .option("--model <model>", `Model identifier (default: ${DEFAULT_TEXT_MODEL})`)
58
+ .option("--param <key=value>", "Additional parameters (repeatable)", collectParam, [])
59
+ .argument("[prompt]", "Generation prompt")
60
+ .action(async function (promptArg) {
61
+ const flags = resolveCommandFlags(program);
62
+ const resources = createExecutionResources(container, flags, "generate");
63
+ const design = createCliDesignLanguage(container.env);
64
+ const prompt = ensurePrompt(promptArg, { type: "text", isDefault: false });
65
+ const opts = resolveGenerateOptions(this);
66
+ const params = parseParams(normalizeParamList(opts.param));
67
+ const model = resolveModel("text", opts, container.env.variables);
68
+ if (flags.dryRun) {
69
+ resources.logger.dryRun(`Dry run: would generate text with model ${model} and prompt (${prompt.length} chars)`);
70
+ return;
71
+ }
72
+ intro(design.text.intro("generate text"));
73
+ const client = await resolveClient(container);
74
+ const response = await withSpinner({
75
+ message: `Generating with ${model}...`,
76
+ fn: () => client.text({ model, prompt, params }),
77
+ stopMessage: () => model,
78
+ subtext: (r) => r.content
79
+ });
80
+ if (!response.content) {
81
+ throw new ValidationError("No response from LLM");
82
+ }
83
+ outro();
84
+ });
85
+ registerMediaSubcommand(generate, program, container, "image");
86
+ registerMediaSubcommand(generate, program, container, "video");
87
+ registerMediaSubcommand(generate, program, container, "audio");
88
+ }
89
+ function registerMediaSubcommand(generate, program, container, type) {
90
+ const defaultModel = DEFAULT_MODELS[type];
91
+ generate
92
+ .command(type)
93
+ .description(`Generate ${type} (default model: ${defaultModel})`)
94
+ .option("--model <model>", `Model identifier (default: ${defaultModel})`)
95
+ .option("--param <key=value>", "Additional parameters (repeatable)", collectParam, [])
96
+ .option("-o, --output <path>", "Output file path")
97
+ .argument("[prompt]", "Generation prompt")
98
+ .action(async function (promptArg) {
99
+ const flags = resolveCommandFlags(program);
100
+ const resources = createExecutionResources(container, flags, "generate");
101
+ const design = createCliDesignLanguage(container.env);
102
+ const prompt = ensurePrompt(promptArg, { type, isDefault: false });
103
+ const opts = resolveGenerateOptions(this);
104
+ const params = parseParams(normalizeParamList(opts.param));
105
+ const model = resolveModel(type, opts, container.env.variables);
106
+ if (flags.dryRun) {
107
+ resources.logger.dryRun(`Dry run: would generate ${type} with model ${model} and prompt (${prompt.length} chars)`);
108
+ return;
109
+ }
110
+ intro(design.text.intro(`generate ${type}`));
111
+ const client = await resolveClient(container);
112
+ const saved = await withSpinner({
113
+ message: `Generating ${type} with ${model}...`,
114
+ fn: async () => {
115
+ const response = await client.media(type, { model, prompt, params });
116
+ if (!response.url) {
117
+ throw new ValidationError(buildMissingMediaMessage(type, model, response.content));
118
+ }
119
+ const mimeType = response.mimeType ?? getDefaultMimeType(type);
120
+ const filename = opts.output ?? generateFilename(type, mimeType);
121
+ const resolved = resolveOutputPath(filename, container.env.cwd);
122
+ try {
123
+ await downloadToFile({
124
+ url: response.url,
125
+ outputPath: resolved.path,
126
+ fs: container.fs
127
+ });
128
+ }
129
+ catch (error) {
130
+ if (error instanceof MediaDownloadError) {
131
+ if (error.kind === "write") {
132
+ throw new ValidationError(`Cannot write to "${resolved.label}". Check the path exists and is writable.`);
133
+ }
134
+ throw new ValidationError(`Failed to download ${type} from URL.\nThe file may no longer be available or the URL may have expired.`);
135
+ }
136
+ throw error;
137
+ }
138
+ return resolved;
139
+ },
140
+ stopMessage: () => `Generated ${type}`
141
+ });
142
+ outro(`Saved ${saved.label}`);
143
+ });
144
+ }
145
+ export function parseParams(params) {
146
+ const result = {};
147
+ for (const param of params) {
148
+ const eqIndex = param.indexOf("=");
149
+ if (eqIndex === -1) {
150
+ throw new ValidationError(`Invalid param format: "${param}". Expected key=value`);
151
+ }
152
+ const key = param.slice(0, eqIndex);
153
+ const value = param.slice(eqIndex + 1);
154
+ result[key] = value;
155
+ }
156
+ return result;
157
+ }
158
+ function normalizeParamList(value) {
159
+ if (Array.isArray(value)) {
160
+ return value;
161
+ }
162
+ if (typeof value === "string") {
163
+ return [value];
164
+ }
165
+ return [];
166
+ }
167
+ function resolveGenerateOptions(command) {
168
+ const current = command.opts();
169
+ const parent = command.parent?.opts() ?? {};
170
+ return {
171
+ model: current.model ?? parent.model,
172
+ param: mergeParamValues(current.param, parent.param),
173
+ output: current.output ?? parent.output
174
+ };
175
+ }
176
+ function mergeParamValues(current, parent) {
177
+ const currentList = normalizeParamList(current);
178
+ const parentList = normalizeParamList(parent);
179
+ if (currentList.length === 0 && parentList.length === 0) {
180
+ return undefined;
181
+ }
182
+ return [...parentList, ...currentList];
183
+ }
184
+ function collectParam(value, previous) {
185
+ const list = Array.isArray(previous) ? [...previous] : [];
186
+ list.push(value);
187
+ return list;
188
+ }
189
+ async function withSpinner(options) {
190
+ const { message, fn, stopMessage, subtext } = options;
191
+ const noSpinner = process.env.POE_NO_SPINNER === "1";
192
+ const isTTY = process.stdout.isTTY;
193
+ if (noSpinner || !isTTY) {
194
+ const result = await fn();
195
+ const msg = stopMessage ? stopMessage(result) : undefined;
196
+ if (msg) {
197
+ process.stdout.write(`\x1b[32m◆\x1b[0m ${msg}\n`);
198
+ }
199
+ const sub = subtext ? subtext(result) : undefined;
200
+ if (sub) {
201
+ const lines = sub.split("\n");
202
+ for (const line of lines) {
203
+ process.stdout.write(`\x1b[90m│\x1b[0m ${line}\n`);
204
+ }
205
+ }
206
+ return result;
207
+ }
208
+ const s = spinner();
209
+ s.start(message);
210
+ try {
211
+ const result = await fn();
212
+ const msg = stopMessage ? stopMessage(result) : undefined;
213
+ s.stop(msg);
214
+ const sub = subtext ? subtext(result) : undefined;
215
+ if (sub) {
216
+ const lines = sub.split("\n");
217
+ for (const line of lines) {
218
+ process.stdout.write(`\x1b[90m│\x1b[0m ${line}\n`);
219
+ }
220
+ }
221
+ return result;
222
+ }
223
+ catch (error) {
224
+ s.stop("", 1);
225
+ throw error;
226
+ }
227
+ }
228
+ async function resolveClient(container) {
229
+ try {
230
+ return getGlobalClient();
231
+ }
232
+ catch {
233
+ const apiBaseUrl = resolveApiBaseUrl(container);
234
+ await initializeClient({
235
+ fs: container.fs,
236
+ credentialsPath: container.env.credentialsPath,
237
+ baseUrl: apiBaseUrl,
238
+ httpClient: container.httpClient
239
+ });
240
+ return getGlobalClient();
241
+ }
242
+ }
243
+ function resolveApiBaseUrl(container) {
244
+ const override = container.env.getVariable("POE_API_BASE_URL");
245
+ if (override && override.trim().length > 0) {
246
+ return override.trim();
247
+ }
248
+ return container.env.poeApiBaseUrl;
249
+ }
250
+ function resolveModel(type, options, variables) {
251
+ const envKey = MODEL_ENV_KEYS[type];
252
+ const envModel = normalizeEnvModel(variables ? variables[envKey] : undefined);
253
+ return options.model ?? envModel ?? DEFAULT_MODELS[type];
254
+ }
255
+ function normalizeEnvModel(value) {
256
+ if (typeof value !== "string") {
257
+ return undefined;
258
+ }
259
+ const trimmed = value.trim();
260
+ return trimmed.length > 0 ? trimmed : undefined;
261
+ }
262
+ function buildMissingMediaMessage(type, model, responseContent) {
263
+ const article = type === "video" ? "a" : "an";
264
+ const base = (`The model "${model}" did not return ${article} ${type}.` +
265
+ `\nThis model may not support ${type} generation. Try using a different model with --model.`);
266
+ const trimmed = responseContent?.trim();
267
+ if (trimmed && trimmed.length > 0) {
268
+ return `${base}\nResponse: ${trimmed}`;
269
+ }
270
+ return base;
271
+ }
272
+ function ensurePrompt(prompt, options) {
273
+ if (prompt && prompt.length > 0) {
274
+ return prompt;
275
+ }
276
+ const usage = options.isDefault
277
+ ? "poe-code generate \"your prompt\""
278
+ : `poe-code generate ${options.type} "your prompt"`;
279
+ throw new ValidationError(`No prompt provided. Usage: ${usage}`);
280
+ }
281
+ function generateFilename(type, mimeType) {
282
+ const timestamp = Date.now();
283
+ const ext = mimeTypeToExt(mimeType);
284
+ return `${type}-${timestamp}.${ext}`;
285
+ }
286
+ function mimeTypeToExt(mimeType) {
287
+ const known = {
288
+ "image/png": "png",
289
+ "video/mp4": "mp4",
290
+ "audio/mp3": "mp3",
291
+ "audio/mpeg": "mp3"
292
+ };
293
+ const mapped = known[mimeType];
294
+ if (mapped) {
295
+ return mapped;
296
+ }
297
+ const slashIndex = mimeType.indexOf("/");
298
+ if (slashIndex === -1 || slashIndex === mimeType.length - 1) {
299
+ return "bin";
300
+ }
301
+ return mimeType.slice(slashIndex + 1);
302
+ }
303
+ function getDefaultMimeType(type) {
304
+ const defaults = {
305
+ image: "image/png",
306
+ video: "video/mp4",
307
+ audio: "audio/mp3"
308
+ };
309
+ return defaults[type];
310
+ }
311
+ function resolveOutputPath(filename, cwd) {
312
+ if (path.isAbsolute(filename)) {
313
+ return { path: filename, label: filename };
314
+ }
315
+ return {
316
+ path: path.join(cwd, filename),
317
+ label: `./${filename}`
318
+ };
319
+ }
320
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
1
  export declare const FRONTIER_MODELS: readonly ["Claude-Opus-4.5", "Claude-Sonnet-4.5", "gpt-5.2", "Gemini-3-Pro"];
2
2
  export declare const DEFAULT_FRONTIER_MODEL = "Claude-Sonnet-4.5";
3
+ export declare const DEFAULT_TEXT_MODEL = "Claude-Sonnet-4.5";
4
+ export declare const DEFAULT_IMAGE_BOT = "nano-banana-pro";
5
+ export declare const DEFAULT_AUDIO_BOT = "ElevenLabs-2.5";
6
+ export declare const DEFAULT_VIDEO_BOT = "veo-3.1";
3
7
  export declare const CLAUDE_CODE_VARIANTS: {
4
8
  readonly haiku: "Claude-Haiku-4.5";
5
9
  readonly sonnet: "Claude-Sonnet-4.5";
@@ -11,6 +15,5 @@ export declare const DEFAULT_CODEX_MODEL: "GPT-5.2-codex";
11
15
  export declare const KIMI_MODELS: readonly ["Kimi-K2-Thinking"];
12
16
  export declare const DEFAULT_KIMI_MODEL: "Kimi-K2-Thinking";
13
17
  export declare const DEFAULT_REASONING = "medium";
14
- export declare const DEFAULT_QUERY_MODEL: "Claude-Opus-4.5";
15
18
  export declare const PROVIDER_NAME = "poe";
16
19
  export declare const FEEDBACK_URL = "https://github.com/poe-platform/poe-code/issues";
@@ -5,6 +5,10 @@ export const FRONTIER_MODELS = [
5
5
  "Gemini-3-Pro"
6
6
  ];
7
7
  export const DEFAULT_FRONTIER_MODEL = "Claude-Sonnet-4.5";
8
+ export const DEFAULT_TEXT_MODEL = "Claude-Sonnet-4.5";
9
+ export const DEFAULT_IMAGE_BOT = "nano-banana-pro";
10
+ export const DEFAULT_AUDIO_BOT = "ElevenLabs-2.5";
11
+ export const DEFAULT_VIDEO_BOT = "veo-3.1";
8
12
  export const CLAUDE_CODE_VARIANTS = {
9
13
  haiku: "Claude-Haiku-4.5",
10
14
  sonnet: "Claude-Sonnet-4.5",
@@ -25,7 +29,6 @@ export const KIMI_MODELS = [
25
29
  ];
26
30
  export const DEFAULT_KIMI_MODEL = KIMI_MODELS[0];
27
31
  export const DEFAULT_REASONING = "medium";
28
- export const DEFAULT_QUERY_MODEL = FRONTIER_MODELS[0];
29
32
  export const PROVIDER_NAME = "poe";
30
33
  export const FEEDBACK_URL = "https://github.com/poe-platform/poe-code/issues";
31
34
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/cli/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,iBAAiB;IACjB,mBAAmB;IACnB,SAAS;IACT,cAAc;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAE1D,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,kBAAkB;IACzB,MAAM,EAAE,mBAAmB;IAC3B,IAAI,EAAE,iBAAiB;CACf,CAAC;AAEX,MAAM,CAAC,MAAM,yBAAyB,GAAG,oBAAoB,CAAC,IAAI,CAAC;AAEnE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,eAAe;IACf,SAAS;IACT,cAAc;IACd,aAAa;IACb,SAAS;IACT,oBAAoB;CACZ,CAAC;AACX,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,kBAAkB;CACV,CAAC;AACX,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAC1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC;AACnC,MAAM,CAAC,MAAM,YAAY,GAAG,iDAAiD,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/cli/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,iBAAiB;IACjB,mBAAmB;IACnB,SAAS;IACT,cAAc;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAE1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AACtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AACnD,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAE3C,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,kBAAkB;IACzB,MAAM,EAAE,mBAAmB;IAC3B,IAAI,EAAE,iBAAiB;CACf,CAAC;AAEX,MAAM,CAAC,MAAM,yBAAyB,GAAG,oBAAoB,CAAC,IAAI,CAAC;AAEnE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,eAAe;IACf,SAAS;IACT,cAAc;IACd,aAAa;IACb,SAAS;IACT,oBAAoB;CACZ,CAAC;AACX,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,kBAAkB;CACV,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"}
@@ -40,7 +40,8 @@ export function createCliContainer(dependencies) {
40
40
  return {
41
41
  ok: response.ok,
42
42
  status: response.status,
43
- json: () => response.json()
43
+ json: () => response.json(),
44
+ text: () => response.text()
44
45
  };
45
46
  });
46
47
  const commandRunner = dependencies.commandRunner ?? createDefaultCommandRunner();
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/cli/container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/cli/container.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ export interface HttpResponse {
2
2
  ok: boolean;
3
3
  status: number;
4
4
  json(): Promise<unknown>;
5
+ text?: () => Promise<string>;
5
6
  }
6
7
  export interface HttpClientRequest {
7
8
  method?: string;
@@ -9,7 +9,7 @@ import { registerLoginCommand } from "./commands/login.js";
9
9
  import { registerInstallCommand } from "./commands/install.js";
10
10
  import { registerUnconfigureCommand } from "./commands/unconfigure.js";
11
11
  import { registerTestCommand } from "./commands/test.js";
12
- import { registerQueryCommand } from "./commands/query.js";
12
+ import { registerGenerateCommand } from "./commands/generate.js";
13
13
  import { registerVersionOption } from "./commands/version.js";
14
14
  const require = createRequire(import.meta.url);
15
15
  const packageJson = require("../../package.json");
@@ -47,8 +47,8 @@ function formatHelpText(design) {
47
47
  cmd("test", "[agent]") + " Run agent health checks",
48
48
  example("poe-code test codex"),
49
49
  "",
50
- cmd("query", "[prompt]") + " Query an LLM via Poe API directly",
51
- example("poe-code query \"What is 2+2?\""),
50
+ cmd("generate", "[type]") + " Generate text or media via Poe API",
51
+ example("poe-code generate \"What is 2+2?\""),
52
52
  "",
53
53
  cmd("login", "") + " Store a Poe API key for reuse across commands",
54
54
  "",
@@ -146,7 +146,7 @@ function bootstrapProgram(container) {
146
146
  registerConfigureCommand(program, container);
147
147
  registerSpawnCommand(program, container);
148
148
  registerWrapCommand(program, container);
149
- registerQueryCommand(program, container);
149
+ registerGenerateCommand(program, container);
150
150
  registerTestCommand(program, container);
151
151
  registerUnconfigureCommand(program, container);
152
152
  registerLoginCommand(program, container);
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAGnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uBAAuB,EAExB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AAEzE,SAAS,cAAc,CAAC,MAAyB;IAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAExB,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,EAAE;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IAChD,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE,CAChC,oCAAoC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5D,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,EAAE,CACzC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;IAE7C,OAAO;QACL,IAAI,CAAC,OAAO,CAAC,6CAA6C,CAAC;QAC3D,EAAE;QACF,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE;QACvG,EAAE;QACF,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QACzB,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,qDAAqD;QACnF,OAAO,CAAC,gCAAgC,CAAC;QACzC,EAAE;QACF,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,sDAAsD;QACtF,OAAO,CAAC,4BAA4B,CAAC;QACrC,EAAE;QACF,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,oDAAoD;QAChF,OAAO,CAAC,2BAA2B,CAAC;QACpC,EAAE;QACF,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,GAAG,uDAAuD;QAC1F,OAAO,CAAC,oCAAoC,CAAC;QAC7C,EAAE;QACF,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,8DAA8D;QACvF,OAAO,CAAC,kCAAkC,CAAC;QAC3C,EAAE;QACF,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,qCAAqC;QAC9D,OAAO,CAAC,qBAAqB,CAAC;QAC9B,EAAE;QACF,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,gDAAgD;QAC3E,OAAO,CAAC,iCAAiC,CAAC;QAC1C,EAAE;QACF,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,yEAAyE;QAC5F,EAAE;QACF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACxB,GAAG,CAAC,WAAW,EAAE,mCAAmC,CAAC;QACrD,GAAG,CAAC,WAAW,EAAE,2CAA2C,CAAC;QAC7D,GAAG,CAAC,WAAW,EAAE,mBAAmB,CAAC;QACrC,GAAG,CAAC,eAAe,EAAE,2BAA2B,CAAC;QACjD,GAAG,CAAC,YAAY,EAAE,0BAA0B,CAAC;QAC7C,EAAE;QACF,GAAG,CAAC,kBAAkB,EAAE,6BAA6B,CAAC;QACtD,EAAE;QACF,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;QACnF,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,6BAA6B,IAAI,CAAC,IAAI,CAAC,0CAA0C,CAAC,EAAE;KAC7G,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAC3B,GAAY,EACZ,MAAY,EACZ,MAAyB;IAEzB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IACxB,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,eAAe,GAAG,CAAC,CAAC;IAC1B,MAAM,kBAAkB,GAAG,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,SAAS,GAAG,kBAAkB,CAAC;IAChD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAE3C,MAAM,UAAU,GAAG,CACjB,IAAY,EACZ,WAAmB,EACnB,KAAgC,EACxB,EAAE;QACV,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC;QAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,GAAG,UAAU,GAAG,WAAW,EAAE,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,KAAa,EAAU,EAAE,CAC5C,KAAK;SACF,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;SACjC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhB,MAAM,UAAU,GAAG,CAAC,KAAe,EAAU,EAAE,CAC7C,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAC1E,EAAE,CACH,CAAC;IAEF,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC1D,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACjE,UAAU,CACR,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAC7B,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EACpC,IAAI,CAAC,QAAQ,CACd,CACF,CAAC;IACF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3D,UAAU,CACR,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EACzB,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAChC,IAAI,CAAC,MAAM,CACZ,CACF,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC7B,MAAM,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACvE,UAAU,CACR,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EACzB,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAChC,IAAI,CAAC,MAAM,CACZ,CACF,CAAC;QACF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAC/B,UAAU,CAAC,gBAAgB,CAAC,EAC5B,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CACjE,UAAU,CACR,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,EACjC,MAAM,CAAC,qBAAqB,CAAC,UAAU,CAAC,EACxC,IAAI,CAAC,OAAO,CACb,CACF,CAAC;IACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,YAA6B;IACzD,MAAM,SAAS,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAE5C,IAAI,YAAY,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;QACtC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,YAAY,CAAC,uBAAuB,EAAE,CAAC;QACzC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAuB;IAC/C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,uBAAuB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACtD,OAAO;SACJ,IAAI,CAAC,UAAU,CAAC;SAChB,WAAW,CAAC,6DAA6D,CAAC;SAC1E,MAAM,CAAC,WAAW,EAAE,oCAAoC,CAAC;SACzD,MAAM,CAAC,WAAW,EAAE,4CAA4C,CAAC;SACjE,MAAM,CAAC,WAAW,EAAE,oBAAoB,CAAC;SACzC,UAAU,CAAC,YAAY,EAAE,0BAA0B,CAAC;SACpD,aAAa,CAAC;QACb,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YAC1B,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;gBAC9B,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;YACD,OAAO,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC;KACF,CAAC,CAAC;IAEL,qBAAqB,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/D,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3C,wBAAwB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC7C,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzC,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxC,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzC,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxC,0BAA0B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC/C,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEzC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;QAClB,OAAO,CAAC,UAAU,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAID,SAAS,iBAAiB,CAAC,OAAgB;IACzC,OAAO,CAAC,YAAY,EAAE,CAAC;IACvB,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAgB;IAC/C,OAAO,CAAC,eAAe,CAAC;QACtB,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;QAClB,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;KACnB,CAAC,CAAC;IACH,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,5 @@ export interface PromptLibrary {
35
35
  serviceSelection(input: ServiceSelectionInput): PromptDescriptor<"serviceSelection"> & {
36
36
  type: "select";
37
37
  };
38
- queryPrompt(): PromptDescriptor<"prompt">;
39
38
  }
40
39
  export declare function createPromptLibrary(): PromptLibrary;
@@ -36,12 +36,7 @@ export function createPromptLibrary() {
36
36
  choices
37
37
  };
38
38
  return descriptor;
39
- },
40
- queryPrompt: () => describe({
41
- name: "prompt",
42
- message: "Prompt",
43
- type: "text"
44
- })
39
+ }
45
40
  };
46
41
  }
47
42
  //# sourceMappingURL=prompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/cli/prompts.ts"],"names":[],"mappings":"AAqCA,MAAM,UAAU,mBAAmB;IACjC,MAAM,QAAQ,GAAG,CACf,UAAmC,EACV,EAAE,CAAC,UAAU,CAAC;IAEzC,OAAO;QACL,WAAW,EAAE,GAAG,EAAE,CAChB,QAAQ,CAAC;YACP,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,6DAA6D;YACtE,IAAI,EAAE,UAAU;SACjB,CAAC;QACJ,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;YAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CACtB,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,YAAY,CAAC,EAC5D,CAAC,CACF,CAAC;YACF,OAAO,QAAQ,CAAC;gBACd,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,QAAQ;gBACd,OAAO;gBACP,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QACD,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CAC3C,QAAQ,CAAC;YACP,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,YAAY;SACtB,CAAC;QACJ,UAAU,EAAE,CAAC,WAAmB,EAAE,EAAE,CAClC,QAAQ,CAAC;YACP,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,oBAAoB;YAC7B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,WAAW;SACrB,CAAC;QACJ,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;YACzC,MAAM,UAAU,GAEZ;gBACF,IAAI,EAAE,kBAAkB;gBACxB,OAAO;gBACP,IAAI,EAAE,QAAQ;gBACd,OAAO;aACR,CAAC;YACF,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE,CAChB,QAAQ,CAAC;YACP,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,MAAM;SACb,CAAC;KACL,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/cli/prompts.ts"],"names":[],"mappings":"AAoCA,MAAM,UAAU,mBAAmB;IACjC,MAAM,QAAQ,GAAG,CACf,UAAmC,EACV,EAAE,CAAC,UAAU,CAAC;IAEzC,OAAO;QACL,WAAW,EAAE,GAAG,EAAE,CAChB,QAAQ,CAAC;YACP,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,6DAA6D;YACtE,IAAI,EAAE,UAAU;SACjB,CAAC;QACJ,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;YAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CACtB,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,YAAY,CAAC,EAC5D,CAAC,CACF,CAAC;YACF,OAAO,QAAQ,CAAC;gBACd,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,QAAQ;gBACd,OAAO;gBACP,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QACD,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CAC3C,QAAQ,CAAC;YACP,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,YAAY;SACtB,CAAC;QACJ,UAAU,EAAE,CAAC,WAAmB,EAAE,EAAE,CAClC,QAAQ,CAAC;YACP,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,oBAAoB;YAC7B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,WAAW;SACrB,CAAC;QACJ,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;YACzC,MAAM,UAAU,GAEZ;gBACF,IAAI,EAAE,kBAAkB;gBACxB,OAAO;gBACP,IAAI,EAAE,QAAQ;gBACd,OAAO;aACR,CAAC;YACF,OAAO,UAAU,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,51 @@
1
+ /** Spinner animation frames from @clack/prompts */
2
+ export declare const SPINNER_FRAMES: readonly ["◒", "◐", "◓", "◑"];
3
+ /** Clack UI symbols */
4
+ export declare const CLACK_SYMBOLS: {
5
+ /** Bar connector */
6
+ readonly bar: "│";
7
+ /** Corner connectors */
8
+ readonly cornerTopRight: "╮";
9
+ readonly cornerBottomRight: "╯";
10
+ /** Success indicator (green) */
11
+ readonly success: "◆";
12
+ /** Error indicator (red) */
13
+ readonly error: "■";
14
+ /** Warning indicator */
15
+ readonly warning: "▲";
16
+ /** Info indicator */
17
+ readonly info: "●";
18
+ /** Resolved/completed indicator */
19
+ readonly resolved: "◇";
20
+ /** Active/selected indicator */
21
+ readonly active: "◆";
22
+ /** Inactive indicator */
23
+ readonly inactive: "○";
24
+ };
25
+ export interface SpinnerFrameOptions {
26
+ /** Frame index (0-3) */
27
+ frame?: number;
28
+ /** Message to display */
29
+ message: string;
30
+ /** Show timer suffix (e.g., "[1s]") */
31
+ timer?: string;
32
+ }
33
+ /**
34
+ * Render a static spinner frame for screenshots.
35
+ * Mimics @clack/prompts spinner appearance.
36
+ */
37
+ export declare function renderSpinnerFrame(options: SpinnerFrameOptions): string;
38
+ export interface SpinnerStoppedOptions {
39
+ /** Message to display */
40
+ message: string;
41
+ /** Exit code: 0 = success, 1 = error */
42
+ code?: number;
43
+ /** Timer value to display */
44
+ timer?: string;
45
+ /** Optional subtext displayed below the message */
46
+ subtext?: string;
47
+ }
48
+ /**
49
+ * Render a stopped spinner state for screenshots.
50
+ */
51
+ export declare function renderSpinnerStopped(options: SpinnerStoppedOptions): string;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Static rendering utilities for @clack/prompts components.
3
+ * Useful for screenshots and non-interactive contexts.
4
+ *
5
+ * These values are extracted from @clack/prompts source.
6
+ */
7
+ import chalk from "chalk";
8
+ /** Spinner animation frames from @clack/prompts */
9
+ export const SPINNER_FRAMES = ["◒", "◐", "◓", "◑"];
10
+ /** Clack UI symbols */
11
+ export const CLACK_SYMBOLS = {
12
+ /** Bar connector */
13
+ bar: "│",
14
+ /** Corner connectors */
15
+ cornerTopRight: "╮",
16
+ cornerBottomRight: "╯",
17
+ /** Success indicator (green) */
18
+ success: "◆",
19
+ /** Error indicator (red) */
20
+ error: "■",
21
+ /** Warning indicator */
22
+ warning: "▲",
23
+ /** Info indicator */
24
+ info: "●",
25
+ /** Resolved/completed indicator */
26
+ resolved: "◇",
27
+ /** Active/selected indicator */
28
+ active: "◆",
29
+ /** Inactive indicator */
30
+ inactive: "○"
31
+ };
32
+ /**
33
+ * Render a static spinner frame for screenshots.
34
+ * Mimics @clack/prompts spinner appearance.
35
+ */
36
+ export function renderSpinnerFrame(options) {
37
+ const frame = options.frame ?? 0;
38
+ const spinnerChar = chalk.magenta(SPINNER_FRAMES[frame % SPINNER_FRAMES.length]);
39
+ const timerSuffix = options.timer ? chalk.dim(` [${options.timer}]`) : "";
40
+ const bar = chalk.gray(CLACK_SYMBOLS.bar);
41
+ return `${spinnerChar} ${options.message}${timerSuffix}\n${bar}`;
42
+ }
43
+ /**
44
+ * Render a stopped spinner state for screenshots.
45
+ */
46
+ export function renderSpinnerStopped(options) {
47
+ const code = options.code ?? 0;
48
+ const symbol = code === 0
49
+ ? chalk.green(CLACK_SYMBOLS.success)
50
+ : chalk.red(CLACK_SYMBOLS.error);
51
+ const timerSuffix = options.timer ? chalk.dim(` [${options.timer}]`) : "";
52
+ const bar = chalk.gray(CLACK_SYMBOLS.bar);
53
+ let output = `${symbol} ${options.message}${timerSuffix}`;
54
+ if (options.subtext) {
55
+ output += `\n${bar} ${chalk.dim(options.subtext)}`;
56
+ }
57
+ return output;
58
+ }
59
+ //# sourceMappingURL=clack-static.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clack-static.js","sourceRoot":"","sources":["../../../src/cli/ui/clack-static.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,mDAAmD;AACnD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAE5D,uBAAuB;AACvB,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,oBAAoB;IACpB,GAAG,EAAE,GAAG;IACR,wBAAwB;IACxB,cAAc,EAAE,GAAG;IACnB,iBAAiB,EAAE,GAAG;IACtB,gCAAgC;IAChC,OAAO,EAAE,GAAG;IACZ,4BAA4B;IAC5B,KAAK,EAAE,GAAG;IACV,wBAAwB;IACxB,OAAO,EAAE,GAAG;IACZ,qBAAqB;IACrB,IAAI,EAAE,GAAG;IACT,mCAAmC;IACnC,QAAQ,EAAE,GAAG;IACb,gCAAgC;IAChC,MAAM,EAAE,GAAG;IACX,yBAAyB;IACzB,QAAQ,EAAE,GAAG;CACL,CAAC;AAWX;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAA4B;IAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACjF,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAE1C,OAAO,GAAG,WAAW,KAAK,OAAO,CAAC,OAAO,GAAG,WAAW,KAAK,GAAG,EAAE,CAAC;AACpE,CAAC;AAaD;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA8B;IACjE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC;QACvB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC;QACpC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAE1C,IAAI,MAAM,GAAG,GAAG,MAAM,KAAK,OAAO,CAAC,OAAO,GAAG,WAAW,EAAE,CAAC;IAC3D,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,GAAG,QAAQ,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IACzD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { isCliInvocation } from "./cli/bootstrap.js";
3
3
  export { spawn } from "./sdk/spawn.js";
4
+ export { generate, generateImage, generateVideo, generateAudio } from "./sdk/generate.js";
4
5
  export { getPoeApiKey } from "./sdk/credentials.js";
5
- export type { SpawnOptions, SpawnResult } from "./sdk/types.js";
6
+ export type { SpawnOptions, SpawnResult, GenerateOptions, MediaGenerateOptions, GenerateResult, MediaGenerateResult } from "./sdk/types.js";
6
7
  declare const main: () => Promise<void>;
7
8
  export { main, isCliInvocation };
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ import { createProgram } from "./cli/program.js";
3
3
  import { createCliMain, isCliInvocation } from "./cli/bootstrap.js";
4
4
  // SDK exports
5
5
  export { spawn } from "./sdk/spawn.js";
6
+ export { generate, generateImage, generateVideo, generateAudio } from "./sdk/generate.js";
6
7
  export { getPoeApiKey } from "./sdk/credentials.js";
7
8
  const main = createCliMain(createProgram);
8
9
  if (isCliInvocation(process.argv, import.meta.url)) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEpE,cAAc;AACd,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,MAAM,IAAI,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;AAE1C,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACnD,KAAK,IAAI,EAAE,CAAC;AACd,CAAC;AAED,cAAc;AACd,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEpE,cAAc;AACd,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAUpD,MAAM,IAAI,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;AAE1C,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACnD,KAAK,IAAI,EAAE,CAAC;AACd,CAAC;AAED,cAAc;AACd,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { GenerateOptions, GenerateResult, MediaGenerateOptions, MediaGenerateResult } from "./types.js";
2
+ export declare function generate(prompt: string, options?: GenerateOptions): Promise<GenerateResult>;
3
+ export declare function generateImage(prompt: string, options?: MediaGenerateOptions): Promise<MediaGenerateResult>;
4
+ export declare function generateVideo(prompt: string, options?: MediaGenerateOptions): Promise<MediaGenerateResult>;
5
+ export declare function generateAudio(prompt: string, options?: MediaGenerateOptions): Promise<MediaGenerateResult>;
@@ -0,0 +1,94 @@
1
+ import { DEFAULT_TEXT_MODEL, DEFAULT_IMAGE_BOT, DEFAULT_VIDEO_BOT, DEFAULT_AUDIO_BOT } from "../cli/constants.js";
2
+ import { getPoeApiKey } from "./credentials.js";
3
+ import { getGlobalClient, setGlobalClient } from "../services/client-instance.js";
4
+ import { createPoeClient } from "../services/llm-client.js";
5
+ const MODEL_ENV_KEYS = {
6
+ text: "POE_TEXT_MODEL",
7
+ image: "POE_IMAGE_MODEL",
8
+ video: "POE_VIDEO_MODEL",
9
+ audio: "POE_AUDIO_MODEL"
10
+ };
11
+ const DEFAULT_MODELS = {
12
+ text: DEFAULT_TEXT_MODEL,
13
+ image: DEFAULT_IMAGE_BOT,
14
+ video: DEFAULT_VIDEO_BOT,
15
+ audio: DEFAULT_AUDIO_BOT
16
+ };
17
+ export async function generate(prompt, options = {}) {
18
+ if (!prompt) {
19
+ throw new Error("Prompt is required");
20
+ }
21
+ const client = await resolveClient();
22
+ const model = resolveSdkModel("text", options);
23
+ const response = await client.text({
24
+ model,
25
+ prompt,
26
+ params: options.params
27
+ });
28
+ if (!response.content) {
29
+ throw new Error("No response from LLM");
30
+ }
31
+ return { content: response.content };
32
+ }
33
+ export async function generateImage(prompt, options = {}) {
34
+ return generateMedia("image", prompt, options);
35
+ }
36
+ export async function generateVideo(prompt, options = {}) {
37
+ return generateMedia("video", prompt, options);
38
+ }
39
+ export async function generateAudio(prompt, options = {}) {
40
+ return generateMedia("audio", prompt, options);
41
+ }
42
+ async function generateMedia(type, prompt, options) {
43
+ if (!prompt) {
44
+ throw new Error("Prompt is required");
45
+ }
46
+ const client = await resolveClient();
47
+ const model = resolveSdkModel(type, options);
48
+ const response = await client.media(type, {
49
+ model,
50
+ prompt,
51
+ params: options.params
52
+ });
53
+ if (!response.url) {
54
+ throw new Error(`No ${type} URL returned`);
55
+ }
56
+ return { url: response.url, mimeType: response.mimeType };
57
+ }
58
+ async function resolveClient() {
59
+ try {
60
+ return getGlobalClient();
61
+ }
62
+ catch {
63
+ const apiKey = await getPoeApiKey();
64
+ const baseUrl = normalizeBaseUrl(process.env.POE_API_BASE_URL);
65
+ const client = createPoeClient({
66
+ apiKey,
67
+ baseUrl
68
+ });
69
+ setGlobalClient(client);
70
+ return client;
71
+ }
72
+ }
73
+ function resolveSdkModel(type, options) {
74
+ if (options.model) {
75
+ return options.model;
76
+ }
77
+ const envKey = MODEL_ENV_KEYS[type];
78
+ const envModel = normalizeEnvModel(process.env[envKey]);
79
+ return envModel ?? DEFAULT_MODELS[type];
80
+ }
81
+ function normalizeEnvModel(value) {
82
+ if (typeof value !== "string") {
83
+ return undefined;
84
+ }
85
+ const trimmed = value.trim();
86
+ return trimmed.length > 0 ? trimmed : undefined;
87
+ }
88
+ function normalizeBaseUrl(value) {
89
+ if (typeof value === "string" && value.trim().length > 0) {
90
+ return value.trim();
91
+ }
92
+ return "https://api.poe.com/v1";
93
+ }
94
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/sdk/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAa5D,MAAM,cAAc,GAAiC;IACnD,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,iBAAiB;IACxB,KAAK,EAAE,iBAAiB;IACxB,KAAK,EAAE,iBAAiB;CACzB,CAAC;AAEF,MAAM,cAAc,GAAiC;IACnD,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,iBAAiB;IACxB,KAAK,EAAE,iBAAiB;IACxB,KAAK,EAAE,iBAAiB;CACzB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAc,EACd,UAA2B,EAAE;IAE7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QACjC,KAAK;QACL,MAAM;QACN,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAc,EACd,UAAgC,EAAE;IAElC,OAAO,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAc,EACd,UAAgC,EAAE;IAElC,OAAO,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAc,EACd,UAAgC,EAAE;IAElC,OAAO,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,IAAe,EACf,MAAc,EACd,OAA6B;IAE7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;QACxC,KAAK;QACL,MAAM;QACN,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,aAAa;IAC1B,IAAI,CAAC;QACH,OAAO,eAAe,EAAE,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,eAAe,CAAC;YAC7B,MAAM;YACN,OAAO;SACR,CAAC,CAAC;QACH,eAAe,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CACtB,IAAkB,EAClB,OAAwB;IAExB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC,KAAK,CAAC;IACvB,CAAC;IACD,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,OAAO,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAyB;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAyB;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IACD,OAAO,wBAAwB,CAAC;AAClC,CAAC"}
@@ -22,3 +22,17 @@ export interface SpawnResult {
22
22
  /** Exit code from the CLI process */
23
23
  exitCode: number;
24
24
  }
25
+ export interface GenerateOptions {
26
+ /** Model identifier override */
27
+ model?: string;
28
+ /** Additional parameters passed to the API */
29
+ params?: Record<string, string>;
30
+ }
31
+ export type MediaGenerateOptions = GenerateOptions;
32
+ export interface GenerateResult {
33
+ content: string;
34
+ }
35
+ export interface MediaGenerateResult {
36
+ url: string;
37
+ mimeType?: string;
38
+ }
@@ -0,0 +1,12 @@
1
+ import type { FileSystem } from "../utils/file-system.js";
2
+ import type { HttpClient } from "../cli/http.js";
3
+ import type { LlmClient } from "./llm-client.js";
4
+ export declare function setGlobalClient(client: LlmClient): void;
5
+ export declare function getGlobalClient(): LlmClient;
6
+ export declare function hasGlobalClient(): boolean;
7
+ export declare function initializeClient(options: {
8
+ fs: FileSystem;
9
+ credentialsPath: string;
10
+ baseUrl: string;
11
+ httpClient?: HttpClient;
12
+ }): Promise<void>;
@@ -0,0 +1,36 @@
1
+ import { AuthenticationError } from "../cli/errors.js";
2
+ import { loadCredentials } from "./credentials.js";
3
+ import { createPoeClient } from "./llm-client.js";
4
+ let globalClient = null;
5
+ export function setGlobalClient(client) {
6
+ globalClient = client;
7
+ }
8
+ export function getGlobalClient() {
9
+ if (!globalClient) {
10
+ throw new Error("LLM client not initialized. Call setGlobalClient() first.");
11
+ }
12
+ return globalClient;
13
+ }
14
+ export function hasGlobalClient() {
15
+ return globalClient !== null;
16
+ }
17
+ export async function initializeClient(options) {
18
+ // Don't reinitialize if a client is already set (e.g., in tests)
19
+ if (globalClient !== null) {
20
+ return;
21
+ }
22
+ const apiKey = await loadCredentials({
23
+ fs: options.fs,
24
+ filePath: options.credentialsPath
25
+ });
26
+ if (!apiKey) {
27
+ throw new AuthenticationError("Poe API key not found. Run 'poe-code login' first.");
28
+ }
29
+ const client = createPoeClient({
30
+ apiKey,
31
+ baseUrl: options.baseUrl,
32
+ httpClient: options.httpClient
33
+ });
34
+ setGlobalClient(client);
35
+ }
36
+ //# sourceMappingURL=client-instance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-instance.js","sourceRoot":"","sources":["../../src/services/client-instance.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,IAAI,YAAY,GAAqB,IAAI,CAAC;AAE1C,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,YAAY,GAAG,MAAM,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,YAAY,KAAK,IAAI,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAKtC;IACC,iEAAiE;IACjE,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,QAAQ,EAAE,OAAO,CAAC,eAAe;KAClC,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,mBAAmB,CAC3B,oDAAoD,CACrD,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC;QAC7B,MAAM;QACN,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;IAEH,eAAe,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { HttpClient } from "../cli/http.js";
2
+ export interface LlmRequest {
3
+ model: string;
4
+ prompt: string;
5
+ params?: Record<string, string>;
6
+ }
7
+ export interface LlmResponse {
8
+ content?: string;
9
+ url?: string;
10
+ mimeType?: string;
11
+ }
12
+ export interface LlmClient {
13
+ text(request: LlmRequest): Promise<LlmResponse>;
14
+ media(type: "image" | "video" | "audio", request: LlmRequest): Promise<LlmResponse>;
15
+ }
16
+ export interface PoeClientOptions {
17
+ apiKey: string;
18
+ baseUrl: string;
19
+ httpClient?: HttpClient;
20
+ }
21
+ export declare function createPoeClient(options: PoeClientOptions): LlmClient;
@@ -0,0 +1,131 @@
1
+ import { ApiError } from "../cli/errors.js";
2
+ export function createPoeClient(options) {
3
+ const httpClient = options.httpClient ?? createDefaultHttpClient();
4
+ return {
5
+ async text(request) {
6
+ const data = await requestCompletion(httpClient, options.baseUrl, options.apiKey, request);
7
+ return { content: extractTextContent(data) };
8
+ },
9
+ async media(_type, request) {
10
+ const data = await requestCompletion(httpClient, options.baseUrl, options.apiKey, request);
11
+ return extractMediaFromCompletion(data);
12
+ }
13
+ };
14
+ }
15
+ function createDefaultHttpClient() {
16
+ return async (url, init) => {
17
+ const response = await globalThis.fetch(url, init);
18
+ return {
19
+ ok: response.ok,
20
+ status: response.status,
21
+ json: () => response.json(),
22
+ text: () => response.text()
23
+ };
24
+ };
25
+ }
26
+ async function requestCompletion(httpClient, baseUrl, apiKey, request) {
27
+ const body = {
28
+ model: request.model,
29
+ messages: [{ role: "user", content: request.prompt }]
30
+ };
31
+ if (request.params && Object.keys(request.params).length > 0) {
32
+ body.extra_body = request.params;
33
+ }
34
+ const response = await httpClient(`${baseUrl}/chat/completions`, {
35
+ method: "POST",
36
+ headers: {
37
+ "Content-Type": "application/json",
38
+ Authorization: `Bearer ${apiKey}`
39
+ },
40
+ body: JSON.stringify(body)
41
+ });
42
+ if (!response.ok) {
43
+ const detail = await readErrorBody(response);
44
+ const message = detail ? `Poe API error (${response.status}): ${detail}` : `Poe API error (${response.status})`;
45
+ throw new ApiError(message, {
46
+ httpStatus: response.status,
47
+ endpoint: "chat/completions",
48
+ context: detail ? { responseBody: detail } : undefined
49
+ });
50
+ }
51
+ return response.json();
52
+ }
53
+ async function readErrorBody(response) {
54
+ if (!response.text) {
55
+ return undefined;
56
+ }
57
+ try {
58
+ const text = await response.text();
59
+ return text?.trim() || undefined;
60
+ }
61
+ catch {
62
+ return undefined;
63
+ }
64
+ }
65
+ function extractTextContent(data) {
66
+ if (!isRecord(data))
67
+ return undefined;
68
+ const choices = data.choices;
69
+ if (!Array.isArray(choices) || choices.length === 0)
70
+ return undefined;
71
+ const first = choices[0];
72
+ if (!isRecord(first))
73
+ return undefined;
74
+ const message = first.message;
75
+ if (!isRecord(message))
76
+ return undefined;
77
+ return typeof message.content === "string" ? message.content : undefined;
78
+ }
79
+ function extractMediaFromCompletion(data) {
80
+ const content = extractTextContent(data);
81
+ if (!content)
82
+ return {};
83
+ // Try parsing as JSON first (API returns { url, mimeType })
84
+ try {
85
+ const parsed = JSON.parse(content);
86
+ if (isRecord(parsed) && typeof parsed.url === "string") {
87
+ return {
88
+ url: parsed.url,
89
+ mimeType: typeof parsed.mimeType === "string" ? parsed.mimeType : undefined
90
+ };
91
+ }
92
+ }
93
+ catch {
94
+ // Not JSON, continue
95
+ }
96
+ // Try as raw URL
97
+ if (isValidUrl(content.trim())) {
98
+ return { url: content.trim() };
99
+ }
100
+ // Try extracting URL from markdown (e.g., "![image](url)")
101
+ const markdownUrl = extractMarkdownUrl(content);
102
+ if (markdownUrl) {
103
+ return { url: markdownUrl };
104
+ }
105
+ // No URL found, return content for error message
106
+ return { content };
107
+ }
108
+ function extractMarkdownUrl(content) {
109
+ const start = content.indexOf("](");
110
+ if (start === -1)
111
+ return undefined;
112
+ const urlStart = start + 2;
113
+ const end = content.indexOf(")", urlStart);
114
+ if (end === -1)
115
+ return undefined;
116
+ const url = content.slice(urlStart, end);
117
+ return isValidUrl(url) ? url : undefined;
118
+ }
119
+ function isValidUrl(value) {
120
+ try {
121
+ new URL(value);
122
+ return true;
123
+ }
124
+ catch {
125
+ return false;
126
+ }
127
+ }
128
+ function isRecord(value) {
129
+ return Boolean(value && typeof value === "object" && !Array.isArray(value));
130
+ }
131
+ //# sourceMappingURL=llm-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-client.js","sourceRoot":"","sources":["../../src/services/llm-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { FileSystem } from "../utils/file-system.js";
2
+ export declare class MediaDownloadError extends Error {
3
+ readonly kind: "fetch" | "write";
4
+ readonly url: string;
5
+ readonly outputPath: string;
6
+ constructor(message: string, options: {
7
+ kind: "fetch" | "write";
8
+ url: string;
9
+ outputPath: string;
10
+ });
11
+ }
12
+ export declare function downloadToFile(options: {
13
+ url: string;
14
+ outputPath: string;
15
+ fs: FileSystem;
16
+ fetcher?: typeof fetch;
17
+ }): Promise<void>;
@@ -0,0 +1,42 @@
1
+ export class MediaDownloadError extends Error {
2
+ kind;
3
+ url;
4
+ outputPath;
5
+ constructor(message, options) {
6
+ super(message);
7
+ this.name = "MediaDownloadError";
8
+ this.kind = options.kind;
9
+ this.url = options.url;
10
+ this.outputPath = options.outputPath;
11
+ }
12
+ }
13
+ export async function downloadToFile(options) {
14
+ const fetcher = options.fetcher ?? globalThis.fetch;
15
+ if (!fetcher) {
16
+ throw new MediaDownloadError("Fetch is not available", {
17
+ kind: "fetch",
18
+ url: options.url,
19
+ outputPath: options.outputPath
20
+ });
21
+ }
22
+ const response = await fetcher(options.url);
23
+ if (!response.ok) {
24
+ throw new MediaDownloadError("Failed to download media", {
25
+ kind: "fetch",
26
+ url: options.url,
27
+ outputPath: options.outputPath
28
+ });
29
+ }
30
+ const buffer = Buffer.from(await response.arrayBuffer());
31
+ try {
32
+ await options.fs.writeFile(options.outputPath, buffer);
33
+ }
34
+ catch {
35
+ throw new MediaDownloadError("Failed to write media", {
36
+ kind: "write",
37
+ url: options.url,
38
+ outputPath: options.outputPath
39
+ });
40
+ }
41
+ }
42
+ //# sourceMappingURL=media-download.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-download.js","sourceRoot":"","sources":["../../src/services/media-download.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,IAAI,CAAoB;IACxB,GAAG,CAAS;IACZ,UAAU,CAAS;IAE5B,YAAY,OAAe,EAAE,OAAqE;QAChG,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACvC,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAKpC;IACC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC;IACpD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,kBAAkB,CAAC,wBAAwB,EAAE;YACrD,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,kBAAkB,CAAC,0BAA0B,EAAE;YACvD,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAEzD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,kBAAkB,CAAC,uBAAuB,EAAE;YACpD,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "poe-code",
3
- "version": "2.0.59",
3
+ "version": "2.0.60",
4
4
  "description": "CLI tool to configure Poe API for developer workflows.",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -19,7 +19,15 @@
19
19
  "generate:design-docs": "tsx scripts/generate-design-docs.ts",
20
20
  "format": "prettier --check .",
21
21
  "format:write": "prettier --write .",
22
- "watch:diff": "tsx local_scripts/watch-diff.ts"
22
+ "watch:diff": "tsx local_scripts/watch-diff.ts",
23
+ "test:integration": "vitest run tests/integration/",
24
+ "test:record": "POE_SNAPSHOT_MODE=record npm run test:integration",
25
+ "test-generate": "tsx scripts/test-generate.ts",
26
+ "snapshots": "tsx scripts/snapshots.ts",
27
+ "snapshots:list": "npm run snapshots -- list",
28
+ "snapshots:refresh": "npm run snapshots -- refresh",
29
+ "snapshots:delete": "npm run snapshots -- delete",
30
+ "snapshots:delete-stale": "npm run snapshots -- delete --stale"
23
31
  },
24
32
  "bin": {
25
33
  "poe-code": "dist/index.js",
@@ -1,6 +0,0 @@
1
- import type { Command } from "commander";
2
- import type { CliContainer } from "../container.js";
3
- export interface RegisterQueryCommandOptions {
4
- defaultModel?: string;
5
- }
6
- export declare function registerQueryCommand(program: Command, container: CliContainer, options?: RegisterQueryCommandOptions): void;
@@ -1,76 +0,0 @@
1
- import { DEFAULT_FRONTIER_MODEL } from "../constants.js";
2
- import { createExecutionResources, resolveCommandFlags } from "./shared.js";
3
- import { loadCredentials } from "../../services/credentials.js";
4
- export function registerQueryCommand(program, container, options = {}) {
5
- program
6
- .command("query")
7
- .description("Query an LLM via Poe API directly.")
8
- .option("--model <model>", "Model identifier", options.defaultModel ?? DEFAULT_FRONTIER_MODEL)
9
- .option("--system <prompt>", "System prompt")
10
- .argument("[prompt]", "User prompt (if not provided, reads from stdin)")
11
- .action(async function (promptArg) {
12
- const flags = resolveCommandFlags(program);
13
- const resources = createExecutionResources(container, flags, "query");
14
- const commandOptions = this.opts();
15
- const model = commandOptions.model ?? options.defaultModel ?? DEFAULT_FRONTIER_MODEL;
16
- const systemPrompt = commandOptions.system;
17
- // Get prompt from argument or stdin
18
- let prompt = promptArg;
19
- if (!prompt) {
20
- // Check if stdin is being piped (not a TTY)
21
- if (!process.stdin.isTTY) {
22
- // Read from stdin
23
- const chunks = [];
24
- for await (const chunk of process.stdin) {
25
- chunks.push(chunk);
26
- }
27
- prompt = Buffer.concat(chunks).toString("utf8").trim();
28
- }
29
- }
30
- if (!prompt) {
31
- throw new Error("No prompt provided via argument or stdin");
32
- }
33
- if (flags.dryRun) {
34
- resources.logger.dryRun(`Dry run: would query model ${model} with prompt (${prompt.length} chars)`);
35
- if (systemPrompt) {
36
- resources.logger.dryRun(`System prompt: ${systemPrompt}`);
37
- }
38
- return;
39
- }
40
- const apiKey = await loadCredentials({
41
- fs: container.fs,
42
- filePath: container.env.credentialsPath
43
- });
44
- if (!apiKey) {
45
- throw new Error("Poe API key not found. Run 'poe-code login' first.");
46
- }
47
- const messages = [];
48
- if (systemPrompt) {
49
- messages.push({ role: "system", content: systemPrompt });
50
- }
51
- messages.push({ role: "user", content: prompt });
52
- const res = await fetch(`${container.env.poeApiBaseUrl}/chat/completions`, {
53
- method: "POST",
54
- headers: {
55
- "Content-Type": "application/json",
56
- Authorization: `Bearer ${apiKey}`
57
- },
58
- body: JSON.stringify({ model, messages })
59
- });
60
- if (!res.ok) {
61
- const errorText = await res.text();
62
- throw new Error(`Poe API error (${res.status}): ${errorText}`);
63
- }
64
- const chat = (await res.json());
65
- const response = chat.choices?.[0]?.message?.content;
66
- if (!response) {
67
- throw new Error("No response from LLM");
68
- }
69
- // Output to stdout (no logger prefix)
70
- process.stdout.write(response);
71
- if (!response.endsWith("\n")) {
72
- process.stdout.write("\n");
73
- }
74
- });
75
- }
76
- //# sourceMappingURL=query.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"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"}