ai-cmd 1.0.3 → 1.0.4

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.
@@ -46,6 +46,21 @@ export function createConfiguratorPromptAdapter() {
46
46
  }
47
47
  };
48
48
  }
49
+ async function promptForRequiredText(options) {
50
+ const value = await options.prompt.text(options.message, options.initial);
51
+ if (value.length === 0) {
52
+ throw new ConfigurationError(options.errorMessage);
53
+ }
54
+ return value;
55
+ }
56
+ function ensureValidUrl(value, providerLabel) {
57
+ try {
58
+ return new URL(value).toString().replace(/\/$/u, "");
59
+ }
60
+ catch (error) {
61
+ throw new ConfigurationError(`${providerLabel} base URL must be a valid URL.`, error);
62
+ }
63
+ }
49
64
  export async function runConfigurator(options = {}) {
50
65
  const configPath = options.configPath ?? DEFAULT_CONFIG_PATH;
51
66
  const prompt = options.prompt ?? createConfiguratorPromptAdapter();
@@ -61,6 +76,18 @@ export async function runConfigurator(options = {}) {
61
76
  const apiKey = providerConfig.requiresApiKey
62
77
  ? await prompt.password(`API Key for ${providerConfig.label}`)
63
78
  : await prompt.text(`API Key for ${providerConfig.label} (optional)`);
79
+ const model = await promptForRequiredText({
80
+ prompt,
81
+ message: `Model for ${providerConfig.label}`,
82
+ initial: providerConfig.model,
83
+ errorMessage: `${providerConfig.label} requires a model name.`
84
+ });
85
+ const baseUrl = ensureValidUrl(await promptForRequiredText({
86
+ prompt,
87
+ message: `Base URL for ${providerConfig.label}`,
88
+ initial: providerConfig.baseUrl,
89
+ errorMessage: `${providerConfig.label} requires a base URL.`
90
+ }), providerConfig.label);
64
91
  if (providerConfig.requiresApiKey && apiKey.length === 0) {
65
92
  throw new ConfigurationError(`${providerConfig.label} requires an API key.`);
66
93
  }
@@ -75,8 +102,8 @@ export async function runConfigurator(options = {}) {
75
102
  ].join("\n"), false);
76
103
  const config = {
77
104
  provider,
78
- model: providerConfig.model,
79
- baseUrl: providerConfig.baseUrl,
105
+ model,
106
+ baseUrl,
80
107
  timeoutMs: 30_000,
81
108
  analytics,
82
109
  ...(apiKey ? { apiKey } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"configurator.js","sourceRoot":"","sources":["../../src/config/configurator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configurator.js","sourceRoot":"","sources":["../../src/config/configurator.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export declare const APP_NAME = "AI-CMD";
2
- export declare const APP_VERSION = "1.0.3";
2
+ export declare const APP_VERSION = "1.0.4";
3
3
  export declare const BRAND_NAME = "Ottili ONE";
4
4
  export declare const BRAND_URL = "ottili.one";
5
5
  export declare function formatVersionBanner(): string;
@@ -1,5 +1,5 @@
1
1
  export const APP_NAME = "AI-CMD";
2
- export const APP_VERSION = "1.0.3";
2
+ export const APP_VERSION = "1.0.4";
3
3
  export const BRAND_NAME = "Ottili ONE";
4
4
  export const BRAND_URL = "ottili.one";
5
5
  export function formatVersionBanner() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-cmd",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Natural-language shell command generation with safe execution for Unix-like terminals.",
5
5
  "type": "module",
6
6
  "license": "MIT",