poe-code 3.0.223 → 3.0.224

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 (38) hide show
  1. package/dist/cli/commands/configure-payload.js +52 -12
  2. package/dist/cli/commands/configure-payload.js.map +1 -1
  3. package/dist/cli/commands/configure.js +2 -2
  4. package/dist/cli/commands/configure.js.map +1 -1
  5. package/dist/cli/commands/provider.d.ts +1 -0
  6. package/dist/cli/commands/provider.js +94 -3
  7. package/dist/cli/commands/provider.js.map +1 -1
  8. package/dist/cli/commands/shared.d.ts +4 -1
  9. package/dist/cli/commands/shared.js +55 -5
  10. package/dist/cli/commands/shared.js.map +1 -1
  11. package/dist/cli/constants.d.ts +1 -2
  12. package/dist/cli/constants.js +1 -13
  13. package/dist/cli/constants.js.map +1 -1
  14. package/dist/cli/options.d.ts +1 -1
  15. package/dist/cli/options.js +10 -1
  16. package/dist/cli/options.js.map +1 -1
  17. package/dist/cli/prompt-runner.js +4 -2
  18. package/dist/cli/prompt-runner.js.map +1 -1
  19. package/dist/cli/prompts.d.ts +3 -1
  20. package/dist/cli/prompts.js +13 -0
  21. package/dist/cli/prompts.js.map +1 -1
  22. package/dist/index.js +244 -39
  23. package/dist/index.js.map +3 -3
  24. package/dist/providers/claude-code.js +11 -22
  25. package/dist/providers/claude-code.js.map +2 -2
  26. package/dist/providers/codex.js +19 -29
  27. package/dist/providers/codex.js.map +2 -2
  28. package/dist/providers/goose.js +11 -22
  29. package/dist/providers/goose.js.map +2 -2
  30. package/dist/providers/kimi.js +11 -22
  31. package/dist/providers/kimi.js.map +2 -2
  32. package/dist/providers/opencode.js +11 -22
  33. package/dist/providers/opencode.js.map +2 -2
  34. package/dist/providers/poe-agent.js +11 -22
  35. package/dist/providers/poe-agent.js.map +2 -2
  36. package/package.json +1 -1
  37. package/packages/memory/dist/index.js +10 -8
  38. package/packages/memory/dist/index.js.map +2 -2
@@ -111,7 +111,7 @@ export function createOptionResolvers(init) {
111
111
  return apiKey;
112
112
  }
113
113
  };
114
- const resolveModel = async ({ value, assumeDefault, defaultValue, choices, label, onResolve }) => {
114
+ const resolveModel = async ({ value, assumeDefault, defaultValue, choices = [], label, onResolve }) => {
115
115
  if (value != null) {
116
116
  onResolve?.(label, value);
117
117
  return value;
@@ -124,6 +124,15 @@ export function createOptionResolvers(init) {
124
124
  onResolve?.(label, defaultValue);
125
125
  return defaultValue;
126
126
  }
127
+ if (!choices || choices.length === 0) {
128
+ return await ensure({
129
+ value,
130
+ descriptor: init.promptLibrary.model({
131
+ label,
132
+ defaultValue
133
+ })
134
+ });
135
+ }
127
136
  const descriptor = init.promptLibrary.model({
128
137
  label,
129
138
  defaultValue,
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,8 @@ export function createPromptRunner(adapter = {
27
27
  let result;
28
28
  if (type === "password") {
29
29
  result = await adapter.password({
30
- message: descriptor.message
30
+ message: descriptor.message,
31
+ validate: descriptor.validate
31
32
  });
32
33
  }
33
34
  else if (type === "select") {
@@ -47,7 +48,8 @@ export function createPromptRunner(adapter = {
47
48
  else {
48
49
  result = await adapter.text({
49
50
  message: descriptor.message,
50
- initialValue: toInitialValue(descriptor.initial)
51
+ initialValue: toInitialValue(descriptor.initial),
52
+ validate: descriptor.validate
51
53
  });
52
54
  }
53
55
  if (adapter.isCancel(result)) {
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-runner.js","sourceRoot":"","sources":["../../src/cli/prompt-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-runner.js","sourceRoot":"","sources":["../../src/cli/prompt-runner.ts"],"names":[],"mappings":"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"}
@@ -7,11 +7,12 @@ export interface PromptDescriptor<TName extends string = string> {
7
7
  title: string;
8
8
  value: string;
9
9
  }>;
10
+ readonly validate?: (value: string | undefined) => string | undefined;
10
11
  }
11
12
  export interface ModelPromptInput {
12
13
  label: string;
13
14
  defaultValue: string;
14
- choices: Array<{
15
+ choices?: Array<{
15
16
  title: string;
16
17
  value: string;
17
18
  }>;
@@ -29,6 +30,7 @@ export interface ServiceSelectionInput {
29
30
  }
30
31
  export interface PromptLibrary {
31
32
  loginApiKey(): PromptDescriptor<"apiKey">;
33
+ providerBaseUrl(label: string): PromptDescriptor<"baseUrl">;
32
34
  model(input: ModelPromptInput): PromptDescriptor<"model">;
33
35
  reasoningEffort(input: ReasoningPromptInput): PromptDescriptor<"reasoningEffort">;
34
36
  configName(defaultName: string): PromptDescriptor<"configName">;
@@ -6,7 +6,20 @@ export function createPromptLibrary() {
6
6
  message: "Enter your Poe API key - get one at https://poe.com/api/keys",
7
7
  type: "password"
8
8
  }),
9
+ providerBaseUrl: (label) => describe({
10
+ name: "baseUrl",
11
+ message: `${label} base URL`,
12
+ type: "text"
13
+ }),
9
14
  model: ({ label, defaultValue, choices }) => {
15
+ if (!choices || choices.length === 0) {
16
+ return describe({
17
+ name: "model",
18
+ message: label,
19
+ type: "text",
20
+ initial: defaultValue
21
+ });
22
+ }
10
23
  const initial = Math.max(choices.findIndex((choice) => choice.value === defaultValue), 0);
11
24
  return describe({
12
25
  name: "model",
@@ -1 +1 @@
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,8DAA8D;YACvE,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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/cli/prompts.ts"],"names":[],"mappings":"AAsCA,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,8DAA8D;YACvE,IAAI,EAAE,UAAU;SACjB,CAAC;QACJ,eAAe,EAAE,CAAC,KAAa,EAAE,EAAE,CACjC,QAAQ,CAAC;YACP,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,GAAG,KAAK,WAAW;YAC5B,IAAI,EAAE,MAAM;SACb,CAAC;QACJ,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;YAC1C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,QAAQ,CAAC;oBACd,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,YAAY;iBACtB,CAAC,CAAC;YACL,CAAC;YACD,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"}
package/dist/index.js CHANGED
@@ -13813,30 +13813,32 @@ var init_cloudflare = __esm({
13813
13813
  cloudflareProvider = {
13814
13814
  id: "cloudflare",
13815
13815
  label: "Cloudflare AI Gateway",
13816
- summary: "Route through the Poe Cloudflare gateway with BYOK keys.",
13817
- baseUrl: "https://poe-ai-gateway.poe-dev.workers.dev",
13816
+ summary: "Route coding agents through Cloudflare AI Gateway.",
13817
+ baseUrlEnvVar: "CF_AIG_BASE_URL",
13818
+ requiresBaseUrl: true,
13819
+ modelInput: { kind: "freeform" },
13818
13820
  auth: {
13819
13821
  kind: "api-key",
13820
- envVar: "CLOUDFLARE_API_KEY",
13822
+ envVar: "CF_AIG_TOKEN",
13821
13823
  storageKey: "provider:cloudflare",
13822
- prompt: { title: "Cloudflare API key" }
13824
+ prompt: { title: "Cloudflare AI Gateway token" }
13823
13825
  },
13824
13826
  apiShapes: [
13825
13827
  {
13826
13828
  id: "openai-chat-completions",
13827
- defaultBaseUrl: "https://poe-ai-gateway.poe-dev.workers.dev/openai/v1"
13829
+ baseUrlPath: "compat"
13828
13830
  },
13829
13831
  {
13830
13832
  id: "openai-responses",
13831
- defaultBaseUrl: "https://poe-ai-gateway.poe-dev.workers.dev/openai/v1"
13833
+ baseUrlPath: "openai"
13832
13834
  },
13833
13835
  {
13834
13836
  id: "anthropic-messages",
13835
- defaultBaseUrl: "https://poe-ai-gateway.poe-dev.workers.dev/anthropic"
13837
+ baseUrlPath: "anthropic"
13836
13838
  },
13837
13839
  {
13838
13840
  id: "google-generations",
13839
- defaultBaseUrl: "https://poe-ai-gateway.poe-dev.workers.dev/google-ai-studio"
13841
+ baseUrlPath: "google-ai-studio"
13840
13842
  }
13841
13843
  ]
13842
13844
  };
@@ -14963,7 +14965,7 @@ var init_dry_run = __esm({
14963
14965
  });
14964
14966
 
14965
14967
  // src/cli/constants.ts
14966
- var DEFAULT_FRONTIER_MODEL, DEFAULT_TEXT_MODEL, DEFAULT_IMAGE_BOT, DEFAULT_AUDIO_BOT, DEFAULT_VIDEO_BOT, CLAUDE_CODE_VARIANTS, DEFAULT_CLAUDE_CODE_MODEL, CODEX_MODELS, DEFAULT_CODEX_MODEL, KIMI_MODELS, DEFAULT_KIMI_MODEL, FEEDBACK_URL;
14968
+ var DEFAULT_FRONTIER_MODEL, DEFAULT_TEXT_MODEL, DEFAULT_IMAGE_BOT, DEFAULT_AUDIO_BOT, DEFAULT_VIDEO_BOT, CLAUDE_CODE_VARIANTS, DEFAULT_CLAUDE_CODE_MODEL, KIMI_MODELS, DEFAULT_KIMI_MODEL, FEEDBACK_URL;
14967
14969
  var init_constants = __esm({
14968
14970
  "src/cli/constants.ts"() {
14969
14971
  "use strict";
@@ -14978,19 +14980,6 @@ var init_constants = __esm({
14978
14980
  opus: "anthropic/claude-opus-4.7"
14979
14981
  };
14980
14982
  DEFAULT_CLAUDE_CODE_MODEL = CLAUDE_CODE_VARIANTS.sonnet;
14981
- CODEX_MODELS = [
14982
- "openai/gpt-5.5",
14983
- "openai/gpt-5.4",
14984
- "openai/gpt-5.3-codex",
14985
- "openai/gpt-5.2-codex",
14986
- "openai/gpt-5.2",
14987
- "openai/gpt-5.2-chat",
14988
- "openai/gpt-5.2-pro",
14989
- "openai/gpt-5.1",
14990
- "openai/gpt-5.1-codex-mini",
14991
- "anthropic/claude-opus-4.7"
14992
- ];
14993
- DEFAULT_CODEX_MODEL = CODEX_MODELS[0];
14994
14983
  KIMI_MODELS = [
14995
14984
  "novitaai/kimi-k2.5",
14996
14985
  "novitaai/kimi-k2-thinking",
@@ -42429,14 +42418,47 @@ async function buildActiveProvider(input) {
42429
42418
  `Provider "${input.provider.id}" does not declare base URL for API shape "${apiShape}".`
42430
42419
  );
42431
42420
  }
42421
+ const configuredBaseUrl = resolveNonEmpty(input.explicitShapeBaseUrls?.[apiShape]) ?? resolveShapeBaseUrl(resolveNonEmpty(input.explicitBaseUrl), shape.baseUrlPath) ?? resolveShapeBaseUrl(
42422
+ resolveProviderBaseUrlEnv(input.container, input.provider),
42423
+ shape.baseUrlPath
42424
+ ) ?? await resolveStoredShapeBaseUrl(input.container, input.provider.id, apiShape);
42425
+ if (input.provider.requiresBaseUrl === true && configuredBaseUrl === void 0) {
42426
+ throw new Error(
42427
+ `Provider "${input.provider.id}" requires a base URL for API shape "${apiShape}". Run \`poe-code provider login ${input.provider.id} --base-url <url>\`, set ${input.provider.baseUrlEnvVar ?? "the provider base URL env var"}, or pass --base-url.`
42428
+ );
42429
+ }
42430
+ if (configuredBaseUrl === void 0 && shape.defaultBaseUrl === void 0) {
42431
+ throw new Error(
42432
+ `Provider "${input.provider.id}" does not declare a default base URL for API shape "${apiShape}". Pass --base-url or --shape-base-url ${apiShape}=<url>.`
42433
+ );
42434
+ }
42435
+ const baseUrl = configuredBaseUrl ?? shape.defaultBaseUrl;
42436
+ if (baseUrl === void 0) {
42437
+ throw new Error(
42438
+ `Provider "${input.provider.id}" does not declare a default base URL for API shape "${apiShape}". Pass --base-url or --shape-base-url ${apiShape}=<url>.`
42439
+ );
42440
+ }
42441
+ assertHttpBaseUrl(input.provider.id, baseUrl);
42432
42442
  return {
42433
42443
  id: input.provider.id,
42434
42444
  apiShape,
42435
- baseUrl: resolveNonEmpty(input.explicitShapeBaseUrls?.[apiShape]) ?? resolveNonEmpty(input.explicitBaseUrl) ?? await resolveStoredShapeBaseUrl(input.container, input.provider.id, apiShape) ?? shape.defaultBaseUrl,
42445
+ baseUrl,
42436
42446
  credential: input.credential,
42447
+ modelInput: input.provider.modelInput,
42437
42448
  extraEnv: {}
42438
42449
  };
42439
42450
  }
42451
+ function assertHttpBaseUrl(providerId, baseUrl) {
42452
+ let parsed;
42453
+ try {
42454
+ parsed = new URL(baseUrl);
42455
+ } catch {
42456
+ throw new Error(`Provider "${providerId}" base URL must be an http(s) URL.`);
42457
+ }
42458
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
42459
+ throw new Error(`Provider "${providerId}" base URL must be an http(s) URL.`);
42460
+ }
42461
+ }
42440
42462
  function parseProviderShapeBaseUrls(provider2, values) {
42441
42463
  const exposedShapes = provider2.apiShapes?.map((shape) => shape.id) ?? [];
42442
42464
  const exposed = new Set(exposedShapes);
@@ -42467,6 +42489,31 @@ function resolveNonEmpty(value) {
42467
42489
  const trimmed = value?.trim();
42468
42490
  return trimmed && trimmed.length > 0 ? trimmed : void 0;
42469
42491
  }
42492
+ function resolveProviderBaseUrlEnv(container, provider2) {
42493
+ const envVar = provider2.baseUrlEnvVar;
42494
+ return envVar ? resolveNonEmpty(container.env.getVariable(envVar)) : void 0;
42495
+ }
42496
+ function resolveShapeBaseUrl(baseUrl, pathSuffix) {
42497
+ if (baseUrl === void 0) {
42498
+ return void 0;
42499
+ }
42500
+ const suffix = resolveNonEmpty(pathSuffix);
42501
+ if (suffix === void 0) {
42502
+ return baseUrl;
42503
+ }
42504
+ const normalizedBaseUrl = stripTrailingPathSegment(trimTrailingSlash(baseUrl), "compat");
42505
+ return `${normalizedBaseUrl}/${trimLeadingSlash(suffix)}`;
42506
+ }
42507
+ function trimTrailingSlash(value) {
42508
+ return value.endsWith("/") ? value.slice(0, -1) : value;
42509
+ }
42510
+ function trimLeadingSlash(value) {
42511
+ return value.startsWith("/") ? value.slice(1) : value;
42512
+ }
42513
+ function stripTrailingPathSegment(value, segment) {
42514
+ const suffix = `/${segment}`;
42515
+ return value.endsWith(suffix) ? value.slice(0, -suffix.length) : value;
42516
+ }
42470
42517
  async function resolveActiveProviderForService(container, serviceName) {
42471
42518
  const configuredServices = await loadConfiguredServices({
42472
42519
  fs: container.fs,
@@ -43273,7 +43320,7 @@ function resolvePoeBaseUrls(variables) {
43273
43320
  const baseInput = typeof raw === "string" && raw.trim().length > 0 ? raw.trim() : DEFAULT_POE_API_BASE_URL;
43274
43321
  const parsed = parseUrl(baseInput);
43275
43322
  if (!parsed) {
43276
- const trimmed = trimTrailingSlash(baseInput.trim());
43323
+ const trimmed = trimTrailingSlash2(baseInput.trim());
43277
43324
  return {
43278
43325
  poeApiBaseUrl: ensureV1Suffix(trimmed),
43279
43326
  poeBaseUrl: stripV1Suffix(trimmed)
@@ -43317,7 +43364,7 @@ function buildPoeBaseUrl(origin, pathname) {
43317
43364
  }
43318
43365
  return pathname.length > 0 ? `${origin}${pathname}` : origin;
43319
43366
  }
43320
- function trimTrailingSlash(value) {
43367
+ function trimTrailingSlash2(value) {
43321
43368
  if (value.length > 1 && value.endsWith("/")) {
43322
43369
  return value.slice(0, -1);
43323
43370
  }
@@ -43449,7 +43496,20 @@ function createPromptLibrary() {
43449
43496
  message: "Enter your Poe API key - get one at https://poe.com/api/keys",
43450
43497
  type: "password"
43451
43498
  }),
43499
+ providerBaseUrl: (label) => describe({
43500
+ name: "baseUrl",
43501
+ message: `${label} base URL`,
43502
+ type: "text"
43503
+ }),
43452
43504
  model: ({ label, defaultValue, choices }) => {
43505
+ if (!choices || choices.length === 0) {
43506
+ return describe({
43507
+ name: "model",
43508
+ message: label,
43509
+ type: "text",
43510
+ initial: defaultValue
43511
+ });
43512
+ }
43453
43513
  const initial = Math.max(
43454
43514
  choices.findIndex((choice) => choice.value === defaultValue),
43455
43515
  0
@@ -43956,7 +44016,7 @@ function createOptionResolvers(init) {
43956
44016
  value,
43957
44017
  assumeDefault,
43958
44018
  defaultValue,
43959
- choices,
44019
+ choices = [],
43960
44020
  label,
43961
44021
  onResolve
43962
44022
  }) => {
@@ -43972,6 +44032,15 @@ function createOptionResolvers(init) {
43972
44032
  onResolve?.(label, defaultValue);
43973
44033
  return defaultValue;
43974
44034
  }
44035
+ if (!choices || choices.length === 0) {
44036
+ return await ensure({
44037
+ value,
44038
+ descriptor: init.promptLibrary.model({
44039
+ label,
44040
+ defaultValue
44041
+ })
44042
+ });
44043
+ }
43975
44044
  const descriptor = init.promptLibrary.model({
43976
44045
  label,
43977
44046
  defaultValue,
@@ -44480,12 +44549,14 @@ var init_cli_settings_merge = __esm({
44480
44549
  async function createConfigurePayload(init) {
44481
44550
  const { container, flags, options, context, adapter, logger: logger2, providerId } = init;
44482
44551
  const payload = { env: context.env };
44552
+ let provider2;
44483
44553
  if (providerId) {
44484
- const provider2 = container.providerRegistry.get(providerId);
44554
+ provider2 = container.providerRegistry.get(providerId);
44485
44555
  if (!provider2) {
44486
44556
  throw new Error(`Unknown provider "${providerId}".`);
44487
44557
  }
44488
44558
  const explicitShapeBaseUrls = parseProviderShapeBaseUrls(provider2, options.shapeBaseUrl ?? []);
44559
+ const agent2 = resolveAgentDefinition(adapter.name) ?? { id: adapter.name };
44489
44560
  const apiKey = providerId === POE_PROVIDER_ID ? await container.options.resolveApiKey({
44490
44561
  value: options.apiKey,
44491
44562
  envValue: provider2.auth.kind === "api-key" ? container.env.getVariable(provider2.auth.envVar) : void 0,
@@ -44496,12 +44567,15 @@ async function createConfigurePayload(init) {
44496
44567
  { apiKey: options.apiKey },
44497
44568
  { envVars: container.env.variables }
44498
44569
  );
44570
+ const explicitBaseUrl = await resolveConfigureBaseUrl({
44571
+ options
44572
+ });
44499
44573
  const activeProvider = await buildActiveProvider({
44500
44574
  container,
44501
44575
  provider: provider2,
44502
- agent: resolveAgentDefinition(adapter.name) ?? { id: adapter.name },
44576
+ agent: agent2,
44503
44577
  credential: apiKey,
44504
- explicitBaseUrl: options.baseUrl,
44578
+ explicitBaseUrl,
44505
44579
  explicitShapeBaseUrls
44506
44580
  });
44507
44581
  payload.provider = activeProvider;
@@ -44515,7 +44589,15 @@ async function createConfigurePayload(init) {
44515
44589
  },
44516
44590
  adapter.name
44517
44591
  );
44518
- const model = await container.options.resolveModel({
44592
+ const model = provider2?.modelInput?.kind === "freeform" ? await resolveFreeformProviderModel({
44593
+ container,
44594
+ flags,
44595
+ options,
44596
+ label: modelPrompt.label,
44597
+ configModel,
44598
+ provider: provider2,
44599
+ logger: logger2
44600
+ }) : await container.options.resolveModel({
44519
44601
  value: options.model,
44520
44602
  assumeDefault: flags.assumeYes,
44521
44603
  defaultValue: configModel ?? modelPrompt.defaultValue,
@@ -44550,6 +44632,33 @@ async function createConfigurePayload(init) {
44550
44632
  }
44551
44633
  return payload;
44552
44634
  }
44635
+ async function resolveConfigureBaseUrl(input) {
44636
+ return resolveNonEmpty(input.options.baseUrl);
44637
+ }
44638
+ async function resolveFreeformProviderModel(input) {
44639
+ const explicitModel = resolveNonEmpty(input.options.model);
44640
+ if (explicitModel !== void 0) {
44641
+ input.logger.resolved(input.label, explicitModel);
44642
+ return explicitModel;
44643
+ }
44644
+ const configuredModel = resolveNonEmpty(input.configModel ?? void 0);
44645
+ if (configuredModel !== void 0) {
44646
+ input.logger.resolved(input.label, configuredModel);
44647
+ return configuredModel;
44648
+ }
44649
+ if (input.flags.assumeYes) {
44650
+ throw new Error(
44651
+ `Provider "${input.provider.id}" requires a model for "${input.label}". Pass --model.`
44652
+ );
44653
+ }
44654
+ return await input.container.options.ensure({
44655
+ descriptor: {
44656
+ name: "model",
44657
+ message: input.label,
44658
+ type: "text"
44659
+ }
44660
+ });
44661
+ }
44553
44662
  var init_configure_payload = __esm({
44554
44663
  "src/cli/commands/configure-payload.ts"() {
44555
44664
  "use strict";
@@ -63686,7 +63795,7 @@ var require_requirements_txt = __commonJS({
63686
63795
  // src/templates/codex/config.toml.mustache
63687
63796
  var require_config_toml = __commonJS({
63688
63797
  "src/templates/codex/config.toml.mustache"(exports, module) {
63689
- module.exports = 'model_provider = "{{providerId}}"\n\n[profiles."{{{profileName}}}"]\nmodel = "{{{model}}}"\nmodel_provider = "{{providerId}}"\nmodel_reasoning_effort = "{{reasoningEffort}}"\nmodel_verbosity = "medium"\n\n[model_providers.{{providerId}}]\nname = "{{providerId}}"\nbase_url = "{{{baseUrl}}}"\nwire_api = "responses"\nexperimental_bearer_token = "{{apiKey}}"\nrequires_openai_auth = false\nsupports_websockets = false\n';
63798
+ module.exports = 'model_provider = "{{providerId}}"\nmodel = "{{{model}}}"\nmodel_reasoning_effort = "{{reasoningEffort}}"\nmodel_verbosity = "medium"\n\n[profiles."{{{profileName}}}"]\nmodel = "{{{model}}}"\nmodel_provider = "{{providerId}}"\nmodel_reasoning_effort = "{{reasoningEffort}}"\nmodel_verbosity = "medium"\n\n[model_providers.{{providerId}}]\nname = "{{providerId}}"\nbase_url = "{{{baseUrl}}}"\nwire_api = "responses"\nexperimental_bearer_token = "{{apiKey}}"\nrequires_openai_auth = false\nsupports_websockets = false\n';
63690
63799
  }
63691
63800
  });
63692
63801
 
@@ -68604,8 +68713,10 @@ async function resolveProvider3(agent2, options, container, flags) {
68604
68713
  return explicit ?? candidates[0].id;
68605
68714
  }
68606
68715
  if (explicit) {
68607
- if (options.apiKey !== void 0 || !await container.providerRegistry.isLoggedIn(explicit)) {
68608
- await triggerProviderLogin(container, explicit, options.apiKey, flags);
68716
+ if (options.apiKey === void 0 && !await container.providerRegistry.isLoggedIn(explicit)) {
68717
+ throw new Error(
68718
+ `Provider "${explicit}" is not configured. Run \`poe-code provider login ${explicit}\` first, or pass --api-key.`
68719
+ );
68609
68720
  }
68610
68721
  return explicit;
68611
68722
  }
@@ -77883,7 +77994,7 @@ function registerProviderCommand(program, container) {
77883
77994
  providerCmd.command("list").description("List available providers and their login status.").action(async () => {
77884
77995
  await executeProviderList(program, container);
77885
77996
  });
77886
- providerCmd.command("login").description("Log in to a provider.").argument("<id>", "Provider id (e.g. poe, anthropic)").option("--api-key <key>", "API key for the provider").option(
77997
+ providerCmd.command("login").description("Log in to a provider.").argument("<id>", "Provider id (e.g. poe, anthropic)").option("--api-key <key>", "API key for the provider").option("--base-url <url>", "Provider gateway root URL").option(
77887
77998
  "--shape-base-url <shape-id>=<url>",
77888
77999
  "Base URL for one provider API shape",
77889
78000
  collectRepeatedOption2
@@ -77907,6 +78018,7 @@ async function executeProviderList(program, container) {
77907
78018
  return {
77908
78019
  Provider: theme.accent(provider2.id),
77909
78020
  Status: loggedIn ? theme.success("[logged in]") : theme.muted("[-]"),
78021
+ Env: formatProviderEnv(provider2),
77910
78022
  "API shapes": formatProviderApiShapes(apiShapes),
77911
78023
  Agents: listShapeCompatibleAgents(apiShapes).join(", ")
77912
78024
  };
@@ -77915,6 +78027,7 @@ async function executeProviderList(program, container) {
77915
78027
  const columns5 = [
77916
78028
  { name: "Provider", title: "Provider", alignment: "left", maxLen: 20 },
77917
78029
  { name: "Status", title: "Status", alignment: "left", maxLen: 14 },
78030
+ { name: "Env", title: "Env", alignment: "left", maxLen: 34 },
77918
78031
  { name: "API shapes", title: "API shapes", alignment: "left", maxLen: 52 },
77919
78032
  { name: "Agents", title: "Agents", alignment: "left", maxLen: 60 }
77920
78033
  ];
@@ -77930,13 +78043,20 @@ async function executeProviderLogin(program, container, id, options) {
77930
78043
  `Unknown provider "${id}". Run \`poe-code provider list\` to see available providers.`
77931
78044
  );
77932
78045
  }
77933
- const shapeBaseUrls = parseProviderShapeBaseUrls(provider2, options.shapeBaseUrl ?? []);
78046
+ const parsedShapeBaseUrls = parseProviderShapeBaseUrls(provider2, options.shapeBaseUrl ?? []);
78047
+ validateProviderLoginBaseUrlOptions({
78048
+ provider: provider2,
78049
+ options,
78050
+ container,
78051
+ flags,
78052
+ parsedShapeBaseUrls
78053
+ });
77934
78054
  if (!flags.dryRun) {
77935
78055
  await container.providerRegistry.login(
77936
78056
  id,
77937
78057
  { apiKey: options.apiKey },
77938
78058
  {
77939
- envVars: container.env.variables,
78059
+ envVars: flags.assumeYes ? container.env.variables : {},
77940
78060
  promptForSecret: createSecretPrompter(container),
77941
78061
  resolvePreferredLogin: async (input) => container.options.resolveApiKey({
77942
78062
  value: input.apiKey,
@@ -77947,6 +78067,14 @@ async function executeProviderLogin(program, container, id, options) {
77947
78067
  })
77948
78068
  }
77949
78069
  );
78070
+ const shapeBaseUrls = await resolveProviderLoginShapeBaseUrls({
78071
+ provider: provider2,
78072
+ options,
78073
+ container,
78074
+ flags,
78075
+ logger: resources.logger,
78076
+ parsedShapeBaseUrls
78077
+ });
77950
78078
  await saveProviderShapeBaseUrls({
77951
78079
  fs: container.fs,
77952
78080
  filePath: container.env.servicesConfigPath,
@@ -77960,12 +78088,87 @@ async function executeProviderLogin(program, container, id, options) {
77960
78088
  });
77961
78089
  resources.context.finalize();
77962
78090
  }
78091
+ function validateProviderLoginBaseUrlOptions(input) {
78092
+ const explicitBaseUrl = resolveNonEmpty(input.options.baseUrl);
78093
+ if (explicitBaseUrl !== void 0) {
78094
+ assertHttpBaseUrl2(input.provider.id, explicitBaseUrl);
78095
+ return;
78096
+ }
78097
+ if (input.flags.assumeYes && input.provider.requiresBaseUrl === true && Object.keys(input.parsedShapeBaseUrls).length === 0 && resolveProviderBaseUrlEnv2(input.container, input.provider) === void 0) {
78098
+ throw new Error(
78099
+ `Provider "${input.provider.id}" requires a base URL. Pass --base-url or set ${input.provider.baseUrlEnvVar ?? "the provider base URL env var"}.`
78100
+ );
78101
+ }
78102
+ }
78103
+ async function resolveProviderLoginShapeBaseUrls(input) {
78104
+ const shapeBaseUrls = input.parsedShapeBaseUrls;
78105
+ const explicitBaseUrl = resolveNonEmpty(input.options.baseUrl);
78106
+ if (explicitBaseUrl !== void 0) {
78107
+ assertHttpBaseUrl2(input.provider.id, explicitBaseUrl);
78108
+ return {
78109
+ ...shapeBaseUrls,
78110
+ ...deriveShapeBaseUrls(input.provider, explicitBaseUrl)
78111
+ };
78112
+ }
78113
+ if (Object.keys(shapeBaseUrls).length > 0 || input.provider.requiresBaseUrl !== true) {
78114
+ return shapeBaseUrls;
78115
+ }
78116
+ if (resolveProviderBaseUrlEnv2(input.container, input.provider) !== void 0) {
78117
+ return shapeBaseUrls;
78118
+ }
78119
+ if (input.flags.assumeYes) {
78120
+ throw new Error(
78121
+ `Provider "${input.provider.id}" requires a base URL. Pass --base-url or set ${input.provider.baseUrlEnvVar ?? "the provider base URL env var"}.`
78122
+ );
78123
+ }
78124
+ const descriptor = input.container.promptLibrary.providerBaseUrl(input.provider.label);
78125
+ while (true) {
78126
+ const baseUrl = await input.container.options.ensure({ descriptor });
78127
+ if (isHttpBaseUrl(baseUrl)) {
78128
+ return deriveShapeBaseUrls(input.provider, baseUrl);
78129
+ }
78130
+ input.logger.warn(
78131
+ "Base URL must start with http:// or https://. Paste the Cloudflare gateway URL, not the API token."
78132
+ );
78133
+ }
78134
+ }
78135
+ function deriveShapeBaseUrls(provider2, baseUrl) {
78136
+ const result = {};
78137
+ for (const shape of provider2.apiShapes ?? []) {
78138
+ result[shape.id] = resolveShapeBaseUrl(baseUrl, shape.baseUrlPath) ?? baseUrl;
78139
+ }
78140
+ return result;
78141
+ }
78142
+ function resolveProviderBaseUrlEnv2(container, provider2) {
78143
+ const envVar = provider2.baseUrlEnvVar;
78144
+ return envVar ? resolveNonEmpty(container.env.getVariable(envVar)) : void 0;
78145
+ }
78146
+ function assertHttpBaseUrl2(providerId, baseUrl) {
78147
+ if (!isHttpBaseUrl(baseUrl)) {
78148
+ throw new Error(`Provider "${providerId}" base URL must be an http(s) URL.`);
78149
+ }
78150
+ }
78151
+ function isHttpBaseUrl(value) {
78152
+ try {
78153
+ const parsed = new URL(value);
78154
+ return parsed.protocol === "http:" || parsed.protocol === "https:";
78155
+ } catch {
78156
+ return false;
78157
+ }
78158
+ }
77963
78159
  function collectRepeatedOption2(value, previous) {
77964
78160
  return [...previous ?? [], value];
77965
78161
  }
77966
78162
  function formatProviderApiShapes(apiShapes) {
77967
78163
  return apiShapes.map((shapeId) => apiShapeLabels2[shapeId]).join(", ");
77968
78164
  }
78165
+ function formatProviderEnv(provider2) {
78166
+ const envVars = [
78167
+ provider2.auth.kind === "api-key" ? provider2.auth.envVar : void 0,
78168
+ provider2.baseUrlEnvVar
78169
+ ].filter((value) => typeof value === "string" && value.length > 0);
78170
+ return envVars.join(", ");
78171
+ }
77969
78172
  function listShapeCompatibleAgents(providerApiShapes) {
77970
78173
  const shapeIds = new Set(providerApiShapes);
77971
78174
  return allAgents.filter((agent2) => agent2.apiShapes?.some((shapeId) => shapeIds.has(shapeId))).map((agent2) => agent2.id).sort();
@@ -107568,7 +107771,7 @@ var init_package2 = __esm({
107568
107771
  "package.json"() {
107569
107772
  package_default2 = {
107570
107773
  name: "poe-code",
107571
- version: "3.0.223",
107774
+ version: "3.0.224",
107572
107775
  description: "CLI tool to configure Poe API for developer workflows.",
107573
107776
  type: "module",
107574
107777
  main: "./dist/index.js",
@@ -108486,7 +108689,8 @@ function createPromptRunner(adapter = {
108486
108689
  let result;
108487
108690
  if (type2 === "password") {
108488
108691
  result = await adapter.password({
108489
- message: descriptor.message
108692
+ message: descriptor.message,
108693
+ validate: descriptor.validate
108490
108694
  });
108491
108695
  } else if (type2 === "select") {
108492
108696
  const choices = descriptor.choices ?? [];
@@ -108504,7 +108708,8 @@ function createPromptRunner(adapter = {
108504
108708
  } else {
108505
108709
  result = await adapter.text({
108506
108710
  message: descriptor.message,
108507
- initialValue: toInitialValue(descriptor.initial)
108711
+ initialValue: toInitialValue(descriptor.initial),
108712
+ validate: descriptor.validate
108508
108713
  });
108509
108714
  }
108510
108715
  if (adapter.isCancel(result)) {