@smilique/said 1.0.2 → 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.
package/dist/config.d.ts CHANGED
@@ -1,8 +1,11 @@
1
+ export type ProviderType = 'openai' | 'anthropic' | 'ollama' | 'opencode' | 'minimax' | 'kimi' | 'zai' | 'openrouter' | 'google';
1
2
  export interface AppConfig {
2
3
  telegram?: {
3
4
  botToken: string;
4
5
  };
5
- provider: 'opencode' | 'minimax';
6
+ provider: ProviderType;
7
+ apiKey: string;
8
+ model: string;
6
9
  opencode?: {
7
10
  baseUrl: string;
8
11
  apiKey: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF;;;;;;OAMG;IACH,UAAU,CAAC,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,OAAO,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAID,wBAAgB,UAAU,IAAI,SAAS,CAsDtC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyClD;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,UAAU,GACV,SAAS,GACT,MAAM,GACN,KAAK,GACL,YAAY,GACZ,QAAQ,CAAC;AAEb,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IAEd,QAAQ,CAAC,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF;;;;;;OAMG;IACH,UAAU,CAAC,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,OAAO,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAID,wBAAgB,UAAU,IAAI,SAAS,CA4FtC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6ClD;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
package/dist/config.js CHANGED
@@ -16,26 +16,65 @@ export function loadConfig() {
16
16
  if (existsSync(envPath)) {
17
17
  loadEnv({ path: envPath });
18
18
  }
19
- const provider = process.env.SAID_PROVIDER || 'opencode';
19
+ // Migration: Check for old config format and convert if needed
20
+ let provider = process.env.SAID_PROVIDER || 'opencode';
21
+ let apiKey = process.env.SAID_API_KEY || '';
22
+ let model = process.env.SAID_MODEL || '';
23
+ // Check for old config format (provider: 'opencode'|'minimax' with separate configs)
24
+ const hasOldOpencodeConfig = process.env.OPENCODE_API_KEY;
25
+ const hasOldMinimaxConfig = process.env.MINIMAX_API_KEY;
26
+ const hasNewConfig = process.env.SAID_API_KEY;
27
+ // If old config exists and no new config, migrate to new format
28
+ if (!hasNewConfig) {
29
+ if (hasOldOpencodeConfig && !hasOldMinimaxConfig) {
30
+ // Migrate from opencode to new format
31
+ provider = 'opencode';
32
+ apiKey = process.env.OPENCODE_API_KEY || '';
33
+ model = process.env.OPENCODE_MODEL || 'minimax-m2.5-free';
34
+ }
35
+ else if (hasOldMinimaxConfig && !hasOldOpencodeConfig) {
36
+ // Migrate from minimax to new format
37
+ provider = 'minimax';
38
+ apiKey = process.env.MINIMAX_API_KEY || '';
39
+ model = process.env.MINIMAX_MODEL || 'MiniMax-Text-01';
40
+ }
41
+ else if (hasOldOpencodeConfig && hasOldMinimaxConfig) {
42
+ // Both exist - prefer the provider that was explicitly set
43
+ const explicitProvider = process.env.SAID_PROVIDER;
44
+ if (explicitProvider === 'minimax') {
45
+ provider = 'minimax';
46
+ apiKey = process.env.MINIMAX_API_KEY || '';
47
+ model = process.env.MINIMAX_MODEL || 'MiniMax-Text-01';
48
+ }
49
+ else {
50
+ provider = 'opencode';
51
+ apiKey = process.env.OPENCODE_API_KEY || '';
52
+ model = process.env.OPENCODE_MODEL || 'minimax-m2.5-free';
53
+ }
54
+ }
55
+ }
20
56
  const config = {
21
57
  provider,
58
+ apiKey,
59
+ model,
22
60
  };
23
- if (process.env.TELEGRAM_BOT_TOKEN) {
24
- config.telegram = {
25
- botToken: process.env.TELEGRAM_BOT_TOKEN,
26
- };
27
- }
61
+ // Also populate legacy configs for backward compatibility
28
62
  if (provider === 'opencode') {
29
63
  config.opencode = {
30
64
  baseUrl: process.env.OPENCODE_BASE_URL || 'https://opencode.ai/zen/v1',
31
- apiKey: process.env.OPENCODE_API_KEY || '',
32
- model: process.env.OPENCODE_MODEL || 'minimax-m2.5-free',
65
+ apiKey: apiKey,
66
+ model: model,
33
67
  };
34
68
  }
35
69
  else if (provider === 'minimax') {
36
70
  config.minimax = {
37
- apiKey: process.env.MINIMAX_API_KEY || '',
38
- model: process.env.MINIMAX_MODEL || '',
71
+ apiKey: apiKey,
72
+ model: model,
73
+ };
74
+ }
75
+ if (process.env.TELEGRAM_BOT_TOKEN) {
76
+ config.telegram = {
77
+ botToken: process.env.TELEGRAM_BOT_TOKEN,
39
78
  };
40
79
  }
41
80
  // Auto-update enabled by default (unless explicitly disabled)
@@ -66,7 +105,11 @@ export function saveConfig(config) {
66
105
  lines.push(`SAID_AUTO_UPDATE_AUTO_RESTART=${config.autoUpdate.autoRestart}`);
67
106
  lines.push(`SAID_AUTO_UPDATE_PACKAGE=${config.autoUpdate.packageName}`);
68
107
  }
108
+ // New unified provider config
69
109
  lines.push(`SAID_PROVIDER=${config.provider}`);
110
+ lines.push(`SAID_API_KEY=${config.apiKey}`);
111
+ lines.push(`SAID_MODEL=${config.model}`);
112
+ // Also save legacy configs
70
113
  if (config.provider === 'opencode' && config.opencode) {
71
114
  lines.push(`OPENCODE_BASE_URL=${config.opencode.baseUrl}`);
72
115
  lines.push(`OPENCODE_API_KEY=${config.opencode.apiKey}`);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,9 @@
1
- export { Service, type ServiceConfig } from './service.js';
2
- export { loadConfig, saveConfig, clearConfigCache, type AppConfig } from './config.js';
1
+ export { Service, type ServiceConfig } from '@said/core/service.js';
2
+ export { loadConfig, saveConfig, clearConfigCache } from './config.js';
3
+ export type { AppConfig, ProviderType } from './config.js';
3
4
  export { Application, app } from './app.js';
5
+ export { Provider, type ProviderConfig } from './provider.js';
6
+ export type { ChatMessage, ChatCompletionOptions, TokenUsage, LLMProvider, } from './provider.js';
7
+ export { PROVIDERS, getProviderList, fetchModels, type ProviderDefinition, type ModelInfo, type ProviderConfig as ProviderRegistryConfig } from './providers/index.js';
8
+ export type { ProviderType as RegistryProviderType } from './providers/index.js';
4
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACvE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG5C,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAC9D,YAAY,EACV,WAAW,EACX,qBAAqB,EACrB,UAAU,EACV,WAAW,GACZ,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,IAAI,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACvK,YAAY,EAAE,YAAY,IAAI,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,8 @@
1
- export { Service } from './service.js';
1
+ export { Service } from '@said/core/service.js';
2
2
  export { loadConfig, saveConfig, clearConfigCache } from './config.js';
3
3
  export { Application, app } from './app.js';
4
+ // Provider exports
5
+ export { Provider } from './provider.js';
6
+ // Provider registry exports
7
+ export { PROVIDERS, getProviderList, fetchModels } from './providers/index.js';
4
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAsB,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAkB,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAsB,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE5C,mBAAmB;AACnB,OAAO,EAAE,QAAQ,EAAuB,MAAM,eAAe,CAAC;AAQ9D,4BAA4B;AAC5B,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAA0F,MAAM,sBAAsB,CAAC"}
package/dist/main.js CHANGED
@@ -2,8 +2,7 @@
2
2
  import { Application } from './app.js';
3
3
  import { loadConfig } from './config.js';
4
4
  import { TelegramAdapter } from './telegram-adapter.js';
5
- import { OpenCodeProvider } from './opencode-provider.js';
6
- import { MiniMaxProvider } from './minimax-provider.js';
5
+ import { Provider } from './provider.js';
7
6
  import { Agent } from './agent.js';
8
7
  import { FileEditSkill } from './skills/file-edit-skill.js';
9
8
  import { WebSurfSkill } from './skills/web-surf-skill.js';
@@ -24,27 +23,12 @@ async function main() {
24
23
  // Create provider based on config (may be null if not configured)
25
24
  let provider = null;
26
25
  let providerError = null;
27
- if (config.provider === 'opencode') {
28
- if (!config.opencode?.apiKey) {
29
- providerError = 'OpenCode API key not configured. Please run "npm run setup" first.';
30
- console.warn(`Warning: ${providerError}`);
31
- }
32
- else {
33
- provider = new OpenCodeProvider({ name: 'opencode-provider', ...config.opencode }, eventEmitter);
34
- }
35
- }
36
- else if (config.provider === 'minimax') {
37
- if (!config.minimax?.apiKey) {
38
- providerError = 'MiniMax API key not configured. Please run "npm run setup" first.';
39
- console.warn(`Warning: ${providerError}`);
40
- }
41
- else {
42
- provider = new MiniMaxProvider({ name: 'minimax-provider', ...config.minimax }, eventEmitter);
43
- }
26
+ if (!config.apiKey) {
27
+ providerError = `${config.provider} API key not configured. Please run "npm run setup" first.`;
28
+ console.warn(`Warning: ${providerError}`);
44
29
  }
45
30
  else {
46
- providerError = `Unknown provider: ${config.provider}`;
47
- console.warn(`Warning: ${providerError}`);
31
+ provider = new Provider({ name: 'provider', provider: config.provider, apiKey: config.apiKey, model: config.model }, eventEmitter);
48
32
  }
49
33
  // Create agent
50
34
  const agent = new Agent({ name: 'agent' }, eventEmitter);
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { Service, type ServiceConfig } from '@said/core/service.js';
2
+ import { EventEmitter } from 'eventemitter3';
3
+ import { type ProviderType } from './providers/index.js';
4
+ export interface ChatMessage {
5
+ role: 'system' | 'user' | 'assistant';
6
+ content: string;
7
+ }
8
+ export interface ChatCompletionOptions {
9
+ messages: ChatMessage[];
10
+ model?: string;
11
+ temperature?: number;
12
+ maxTokens?: number;
13
+ stream?: boolean;
14
+ }
15
+ export interface TokenUsage {
16
+ promptTokens: number;
17
+ completionTokens: number;
18
+ totalTokens: number;
19
+ }
20
+ export interface LLMProvider {
21
+ chatCompletion(options: ChatCompletionOptions): Promise<string>;
22
+ chatCompletionStream(options: ChatCompletionOptions): AsyncIterable<string>;
23
+ getLastTokenUsage(): TokenUsage;
24
+ }
25
+ export interface ProviderConfig extends ServiceConfig {
26
+ provider: ProviderType;
27
+ apiKey: string;
28
+ model: string;
29
+ }
30
+ /**
31
+ * Unified LLM Provider that supports multiple backends:
32
+ * - OpenAI-compatible APIs (OpenAI, OpenCode, Ollama, Kimi, Z.ai, OpenRouter)
33
+ * - Anthropic (Claude)
34
+ * - Google AI (Gemini)
35
+ * - MiniMax (custom API)
36
+ */
37
+ export declare class Provider extends Service implements LLMProvider {
38
+ private client;
39
+ private apiKey;
40
+ private model;
41
+ private providerType;
42
+ private lastTokenUsage;
43
+ constructor(config: ProviderConfig, eventEmitter?: EventEmitter);
44
+ initialize(): Promise<void>;
45
+ start(): Promise<void>;
46
+ stop(): Promise<void>;
47
+ getLastTokenUsage(): TokenUsage;
48
+ /**
49
+ * Handle chat completion for OpenAI-compatible APIs
50
+ */
51
+ private handleOpenAICompletion;
52
+ /**
53
+ * Handle streaming chat completion for OpenAI-compatible APIs
54
+ */
55
+ private handleOpenAIStream;
56
+ /**
57
+ * Handle chat completion for MiniMax (custom API)
58
+ */
59
+ private handleMiniMaxCompletion;
60
+ /**
61
+ * Handle streaming chat completion for MiniMax (custom API)
62
+ */
63
+ private handleMiniMaxStream;
64
+ chatCompletion(options: ChatCompletionOptions): Promise<string>;
65
+ chatCompletionStream(options: ChatCompletionOptions): AsyncIterable<string>;
66
+ }
67
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5E,iBAAiB,IAAI,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,qBAAa,QAAS,SAAQ,OAAQ,YAAW,WAAW;IAC1D,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,cAAc,CAIpB;gBAEU,MAAM,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,YAAY;IAIzD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IActB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,iBAAiB,IAAI,UAAU;IAI/B;;OAEG;YACW,sBAAsB;IAwBpC;;OAEG;YACY,kBAAkB;IAqCjC;;OAEG;YACW,uBAAuB;IAiDrC;;OAEG;YACY,mBAAmB;IA4E5B,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAe9D,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAAC,MAAM,CAAC;CAcnF"}
@@ -0,0 +1,271 @@
1
+ import OpenAI from 'openai';
2
+ import { Service } from '@said/core/service.js';
3
+ import { loadConfig } from './config.js';
4
+ import { PROVIDERS } from './providers/index.js';
5
+ /**
6
+ * Unified LLM Provider that supports multiple backends:
7
+ * - OpenAI-compatible APIs (OpenAI, OpenCode, Ollama, Kimi, Z.ai, OpenRouter)
8
+ * - Anthropic (Claude)
9
+ * - Google AI (Gemini)
10
+ * - MiniMax (custom API)
11
+ */
12
+ export class Provider extends Service {
13
+ client = null;
14
+ apiKey = '';
15
+ model = 'gpt-4o';
16
+ providerType = 'openai';
17
+ lastTokenUsage = {
18
+ promptTokens: 0,
19
+ completionTokens: 0,
20
+ totalTokens: 0,
21
+ };
22
+ constructor(config, eventEmitter) {
23
+ super(config, eventEmitter);
24
+ }
25
+ async initialize() {
26
+ const config = loadConfig();
27
+ this.providerType = config.provider;
28
+ this.apiKey = config.apiKey;
29
+ this.model = config.model || 'gpt-4o';
30
+ const providerDef = PROVIDERS[this.providerType];
31
+ // Handle providers with custom APIs differently
32
+ if (this.providerType === 'anthropic') {
33
+ // Anthropic uses a different SDK approach
34
+ // For now, we'll use the OpenAI SDK with Anthropic's compatible endpoint
35
+ // This requires using the openai-partial-stream or similar workaround
36
+ console.log(`Provider initialized with type: ${this.providerType} (using custom handling)`);
37
+ }
38
+ else if (this.providerType === 'google') {
39
+ // Google AI uses a custom API structure
40
+ // We'll use OpenAI SDK with Google's compatible endpoint
41
+ console.log(`Provider initialized with type: ${this.providerType} (using custom handling)`);
42
+ }
43
+ else if (this.providerType === 'minimax') {
44
+ // MiniMax has a custom API format
45
+ // Use direct fetch for MiniMax since it has a different response format
46
+ console.log(`Provider initialized with type: ${this.providerType} (using custom handling)`);
47
+ }
48
+ else {
49
+ // OpenAI-compatible APIs
50
+ this.client = new OpenAI({
51
+ baseURL: providerDef.baseUrl,
52
+ apiKey: this.apiKey,
53
+ });
54
+ console.log(`Provider initialized with type: ${this.providerType}, model: ${this.model}`);
55
+ }
56
+ }
57
+ async start() {
58
+ // Test connection for OpenAI-compatible providers
59
+ if (this.client) {
60
+ try {
61
+ await this.client.models.list();
62
+ console.log('Provider connection verified');
63
+ }
64
+ catch (error) {
65
+ console.warn('Provider connection test failed:', error);
66
+ }
67
+ }
68
+ else {
69
+ console.log(`Provider started (${this.providerType})`);
70
+ }
71
+ }
72
+ async stop() {
73
+ console.log('Provider stopped');
74
+ }
75
+ getLastTokenUsage() {
76
+ return { ...this.lastTokenUsage };
77
+ }
78
+ /**
79
+ * Handle chat completion for OpenAI-compatible APIs
80
+ */
81
+ async handleOpenAICompletion(options) {
82
+ if (!this.client) {
83
+ throw new Error('Provider not initialized');
84
+ }
85
+ const response = await this.client.chat.completions.create({
86
+ model: options.model || this.model,
87
+ messages: options.messages,
88
+ temperature: options.temperature ?? 0.7,
89
+ max_tokens: options.maxTokens,
90
+ });
91
+ // Track token usage
92
+ if (response.usage) {
93
+ this.lastTokenUsage = {
94
+ promptTokens: response.usage.prompt_tokens || 0,
95
+ completionTokens: response.usage.completion_tokens || 0,
96
+ totalTokens: response.usage.total_tokens || 0,
97
+ };
98
+ }
99
+ return response.choices[0]?.message?.content || '';
100
+ }
101
+ /**
102
+ * Handle streaming chat completion for OpenAI-compatible APIs
103
+ */
104
+ async *handleOpenAIStream(options) {
105
+ if (!this.client) {
106
+ throw new Error('Provider not initialized');
107
+ }
108
+ const stream = await this.client.chat.completions.create({
109
+ model: options.model || this.model,
110
+ messages: options.messages,
111
+ temperature: options.temperature ?? 0.7,
112
+ max_tokens: options.maxTokens,
113
+ stream: true,
114
+ });
115
+ let totalCompletionTokens = 0;
116
+ for await (const chunk of stream) {
117
+ const content = chunk.choices[0]?.delta?.content || '';
118
+ if (content) {
119
+ yield content;
120
+ }
121
+ // Track usage from streaming chunks if available
122
+ if (chunk.usage) {
123
+ totalCompletionTokens += chunk.usage.completion_tokens || 0;
124
+ }
125
+ }
126
+ // Update token usage (prompt tokens would be 0 for streaming)
127
+ if (totalCompletionTokens > 0) {
128
+ this.lastTokenUsage = {
129
+ promptTokens: 0,
130
+ completionTokens: totalCompletionTokens,
131
+ totalTokens: totalCompletionTokens,
132
+ };
133
+ }
134
+ }
135
+ /**
136
+ * Handle chat completion for MiniMax (custom API)
137
+ */
138
+ async handleMiniMaxCompletion(options) {
139
+ const providerDef = PROVIDERS.minimax;
140
+ const request = {
141
+ model: options.model || this.model,
142
+ messages: options.messages,
143
+ temperature: options.temperature ?? 0.7,
144
+ max_tokens: options.maxTokens,
145
+ };
146
+ const response = await fetch(`${providerDef.baseUrl}/text/chatcompletion`, {
147
+ method: 'POST',
148
+ headers: {
149
+ 'Content-Type': 'application/json',
150
+ 'Authorization': `Bearer ${this.apiKey}`,
151
+ },
152
+ body: JSON.stringify(request),
153
+ });
154
+ if (!response.ok) {
155
+ const error = await response.text();
156
+ throw new Error(`MiniMax API error: ${response.status} - ${error}`);
157
+ }
158
+ const data = await response.json();
159
+ // Track token usage
160
+ if (data.usage) {
161
+ this.lastTokenUsage = {
162
+ promptTokens: data.usage.prompt_tokens || 0,
163
+ completionTokens: data.usage.completion_tokens || 0,
164
+ totalTokens: data.usage.total_tokens || 0,
165
+ };
166
+ }
167
+ return data.choices[0]?.message?.content || '';
168
+ }
169
+ /**
170
+ * Handle streaming chat completion for MiniMax (custom API)
171
+ */
172
+ async *handleMiniMaxStream(options) {
173
+ const providerDef = PROVIDERS.minimax;
174
+ const request = {
175
+ model: options.model || this.model,
176
+ messages: options.messages,
177
+ temperature: options.temperature ?? 0.7,
178
+ max_tokens: options.maxTokens,
179
+ stream: true,
180
+ };
181
+ const response = await fetch(`${providerDef.baseUrl}/text/chatcompletion`, {
182
+ method: 'POST',
183
+ headers: {
184
+ 'Content-Type': 'application/json',
185
+ 'Authorization': `Bearer ${this.apiKey}`,
186
+ },
187
+ body: JSON.stringify(request),
188
+ });
189
+ if (!response.ok) {
190
+ const error = await response.text();
191
+ throw new Error(`MiniMax API error: ${response.status} - ${error}`);
192
+ }
193
+ if (!response.body) {
194
+ throw new Error('No response body');
195
+ }
196
+ const decoder = new TextDecoder();
197
+ const reader = response.body.getReader();
198
+ let totalCompletionTokens = 0;
199
+ try {
200
+ while (true) {
201
+ const { done, value } = await reader.read();
202
+ if (done)
203
+ break;
204
+ const chunk = decoder.decode(value);
205
+ const lines = chunk.split('\n').filter(line => line.trim() !== '');
206
+ for (const line of lines) {
207
+ if (line.startsWith('data: ')) {
208
+ const data = line.slice(6);
209
+ if (data === '[DONE]') {
210
+ // Update token usage
211
+ if (totalCompletionTokens > 0) {
212
+ this.lastTokenUsage = {
213
+ promptTokens: 0,
214
+ completionTokens: totalCompletionTokens,
215
+ totalTokens: totalCompletionTokens,
216
+ };
217
+ }
218
+ return;
219
+ }
220
+ try {
221
+ const parsed = JSON.parse(data);
222
+ const content = parsed.choices?.[0]?.delta?.content || '';
223
+ if (content) {
224
+ yield content;
225
+ }
226
+ // Track completion tokens from streaming
227
+ if (parsed.usage?.completion_tokens) {
228
+ totalCompletionTokens += parsed.usage.completion_tokens;
229
+ }
230
+ }
231
+ catch {
232
+ // Skip invalid JSON
233
+ }
234
+ }
235
+ }
236
+ }
237
+ }
238
+ finally {
239
+ reader.releaseLock();
240
+ }
241
+ }
242
+ async chatCompletion(options) {
243
+ // Route to appropriate handler based on provider type
244
+ switch (this.providerType) {
245
+ case 'minimax':
246
+ return this.handleMiniMaxCompletion(options);
247
+ case 'anthropic':
248
+ case 'google':
249
+ // For now, throw an error for unsupported custom API providers
250
+ throw new Error(`${this.providerType} provider requires custom implementation`);
251
+ default:
252
+ // Use OpenAI SDK for OpenAI-compatible APIs
253
+ return this.handleOpenAICompletion(options);
254
+ }
255
+ }
256
+ async *chatCompletionStream(options) {
257
+ // Route to appropriate handler based on provider type
258
+ switch (this.providerType) {
259
+ case 'minimax':
260
+ yield* this.handleMiniMaxStream(options);
261
+ break;
262
+ case 'anthropic':
263
+ case 'google':
264
+ // For now, throw an error for unsupported custom API providers
265
+ throw new Error(`${this.providerType} provider requires custom implementation`);
266
+ default:
267
+ yield* this.handleOpenAIStream(options);
268
+ }
269
+ }
270
+ }
271
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { ProviderType, ModelInfo, ProviderDefinition, ProviderConfig } from './types.js';
2
+ export type { ProviderType, ModelInfo, ProviderDefinition, ProviderConfig };
3
+ export declare const PROVIDERS: Record<ProviderType, ProviderDefinition>;
4
+ export declare function fetchModels(provider: ProviderType, apiKey: string): Promise<ModelInfo[]>;
5
+ export declare function getProviderList(): Array<{
6
+ name: string;
7
+ value: ProviderType;
8
+ }>;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG9F,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAC;AAE5E,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,kBAAkB,CAuD9D,CAAC;AA+DF,wBAAsB,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAiD9F;AAED,wBAAgB,eAAe,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAC,CAK9E"}
@@ -0,0 +1,171 @@
1
+ import OpenAI from 'openai';
2
+ export const PROVIDERS = {
3
+ openai: {
4
+ id: 'openai',
5
+ name: 'OpenAI',
6
+ baseUrl: 'https://api.openai.com/v1',
7
+ apiType: 'openai',
8
+ },
9
+ anthropic: {
10
+ id: 'anthropic',
11
+ name: 'Anthropic',
12
+ baseUrl: 'https://api.anthropic.com',
13
+ apiType: 'anthropic',
14
+ },
15
+ ollama: {
16
+ id: 'ollama',
17
+ name: 'Ollama',
18
+ baseUrl: 'http://localhost:11434/v1',
19
+ apiType: 'openai',
20
+ },
21
+ opencode: {
22
+ id: 'opencode',
23
+ name: 'OpenCode',
24
+ baseUrl: 'https://opencode.ai/zen/v1',
25
+ apiType: 'openai',
26
+ },
27
+ minimax: {
28
+ id: 'minimax',
29
+ name: 'MiniMax',
30
+ baseUrl: 'https://api.minimax.chat/v1',
31
+ apiType: 'custom',
32
+ },
33
+ kimi: {
34
+ id: 'kimi',
35
+ name: 'Kimi (Moonshot)',
36
+ baseUrl: 'https://api.moonshot.ai/v1',
37
+ apiType: 'openai',
38
+ },
39
+ zai: {
40
+ id: 'zai',
41
+ name: 'Z.ai',
42
+ baseUrl: 'https://z.ai/v1',
43
+ apiType: 'openai',
44
+ },
45
+ openrouter: {
46
+ id: 'openrouter',
47
+ name: 'OpenRouter',
48
+ baseUrl: 'https://openrouter.ai/api/v1',
49
+ apiType: 'openai',
50
+ },
51
+ google: {
52
+ id: 'google',
53
+ name: 'Google AI',
54
+ baseUrl: 'https://generativelanguage.googleapis.com/v1',
55
+ apiType: 'custom',
56
+ },
57
+ };
58
+ /**
59
+ * Fallback models for providers that don't support model listing
60
+ * or require special handling
61
+ */
62
+ const FALLBACK_MODELS = {
63
+ anthropic: [
64
+ { id: 'claude-3-5-sonnet-20241022', name: 'Claude 3.5 Sonnet' },
65
+ { id: 'claude-3-5-sonnet-20240620', name: 'Claude 3.5 Sonnet (June)' },
66
+ { id: 'claude-3-opus-20240229', name: 'Claude 3 Opus' },
67
+ { id: 'claude-3-sonnet-20240229', name: 'Claude 3 Sonnet' },
68
+ { id: 'claude-3-haiku-20240307', name: 'Claude 3 Haiku' },
69
+ ],
70
+ google: [
71
+ { id: 'gemini-1.5-pro', name: 'Gemini 1.5 Pro' },
72
+ { id: 'gemini-1.5-flash', name: 'Gemini 1.5 Flash' },
73
+ { id: 'gemini-1.5-flash-8b', name: 'Gemini 1.5 Flash 8B' },
74
+ { id: 'gemini-pro', name: 'Gemini Pro' },
75
+ ],
76
+ minimax: [
77
+ { id: 'MiniMax-Text-01', name: 'MiniMax Text 01' },
78
+ { id: 'abab6.5s-chat', name: 'Abab 6.5s Chat' },
79
+ { id: 'abab6.5g-chat', name: 'Abab 6.5g Chat' },
80
+ ],
81
+ kimi: [
82
+ { id: 'kimi-k2', name: 'Kimi K2' },
83
+ { id: 'kimi-k2-preview', name: 'Kimi K2 Preview' },
84
+ { id: 'moonshot-v1-8k', name: 'Moonshot V1 8K' },
85
+ { id: 'moonshot-v1-32k', name: 'Moonshot V1 32K' },
86
+ { id: 'moonshot-v1-128k', name: 'Moonshot V1 128K' },
87
+ ],
88
+ zai: [
89
+ { id: 'zai-1', name: 'Z.ai 1' },
90
+ { id: 'zai-1-preview', name: 'Z.ai 1 Preview' },
91
+ ],
92
+ openrouter: [
93
+ { id: 'openai/gpt-4o', name: 'GPT-4O (via OpenRouter)' },
94
+ { id: 'openai/gpt-4o-mini', name: 'GPT-4O Mini (via OpenRouter)' },
95
+ { id: 'anthropic/claude-3.5-sonnet', name: 'Claude 3.5 Sonnet (via OpenRouter)' },
96
+ { id: 'google/gemini-pro-1.5', name: 'Gemini Pro 1.5 (via OpenRouter)' },
97
+ ],
98
+ ollama: [
99
+ { id: 'llama3.1', name: 'Llama 3.1' },
100
+ { id: 'llama3', name: 'Llama 3' },
101
+ { id: 'mistral', name: 'Mistral' },
102
+ { id: 'mixtral', name: 'Mixtral' },
103
+ { id: 'codellama', name: 'CodeLlama' },
104
+ ],
105
+ opencode: [
106
+ { id: 'gpt-4o', name: 'GPT-4O' },
107
+ { id: 'gpt-4o-mini', name: 'GPT-4O Mini' },
108
+ { id: 'gpt-4-turbo', name: 'GPT-4 Turbo' },
109
+ ],
110
+ openai: [
111
+ { id: 'gpt-4o', name: 'GPT-4O' },
112
+ { id: 'gpt-4o-mini', name: 'GPT-4O Mini' },
113
+ { id: 'gpt-4-turbo', name: 'GPT-4 Turbo' },
114
+ { id: 'gpt-4', name: 'GPT-4' },
115
+ { id: 'gpt-3.5-turbo', name: 'GPT-3.5 Turbo' },
116
+ ],
117
+ };
118
+ export async function fetchModels(provider, apiKey) {
119
+ const definition = PROVIDERS[provider];
120
+ // Use OpenAI SDK for OpenAI-compatible APIs
121
+ if (definition.apiType === 'openai') {
122
+ try {
123
+ const client = new OpenAI({
124
+ baseURL: definition.baseUrl,
125
+ apiKey: apiKey,
126
+ });
127
+ const response = await client.models.list();
128
+ const models = response.data
129
+ .slice(0, 100)
130
+ .map(model => ({
131
+ id: model.id,
132
+ name: model.id,
133
+ }));
134
+ return models.length > 0 ? models : FALLBACK_MODELS[provider];
135
+ }
136
+ catch {
137
+ console.warn(`Failed to fetch models from ${provider}, using fallback models`);
138
+ return FALLBACK_MODELS[provider];
139
+ }
140
+ }
141
+ // Anthropic uses a different API structure
142
+ if (provider === 'anthropic') {
143
+ try {
144
+ // Anthropic doesn't have a public models list API, use fallback
145
+ return FALLBACK_MODELS[provider];
146
+ }
147
+ catch {
148
+ return FALLBACK_MODELS[provider];
149
+ }
150
+ }
151
+ // Google AI uses a custom API
152
+ if (provider === 'google') {
153
+ try {
154
+ // Google's Generative Language API requires different authentication
155
+ // For now, return fallback models
156
+ return FALLBACK_MODELS[provider];
157
+ }
158
+ catch {
159
+ return FALLBACK_MODELS[provider];
160
+ }
161
+ }
162
+ // For custom providers (MiniMax) and others, use fallback models
163
+ return FALLBACK_MODELS[provider];
164
+ }
165
+ export function getProviderList() {
166
+ return Object.values(PROVIDERS).map(provider => ({
167
+ name: provider.name,
168
+ value: provider.id,
169
+ }));
170
+ }
171
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export type ProviderType = 'openai' | 'anthropic' | 'ollama' | 'opencode' | 'minimax' | 'kimi' | 'zai' | 'openrouter' | 'google';
2
+ export interface ProviderDefinition {
3
+ id: ProviderType;
4
+ name: string;
5
+ baseUrl: string;
6
+ apiType: 'openai' | 'anthropic' | 'custom';
7
+ }
8
+ export interface ModelInfo {
9
+ id: string;
10
+ name: string;
11
+ }
12
+ export interface ProviderConfig {
13
+ type: ProviderType;
14
+ apiKey: string;
15
+ model: string;
16
+ }
17
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,UAAU,GACV,SAAS,GACT,MAAM,GACN,KAAK,GACL,YAAY,GACZ,QAAQ,CAAC;AAEb,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,YAAY,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;CAC5C;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":""}
package/dist/setup.js CHANGED
@@ -2,15 +2,15 @@
2
2
  import inquirer from 'inquirer';
3
3
  import { existsSync, writeFileSync } from 'fs';
4
4
  import { join } from 'path';
5
- import { loadConfig } from './config.js';
6
- async function validateTelegramToken(token) {
7
- // Basic validation - check format
8
- return /^\d+:[\w-]+$/.test(token);
9
- }
5
+ import { loadConfig, clearConfigCache } from './config.js';
6
+ import { getProviderList, fetchModels, PROVIDERS } from './providers/index.js';
10
7
  async function runSetup() {
8
+ // Clear config cache to ensure we load fresh values
9
+ clearConfigCache();
11
10
  console.log('\n=== sAId Setup ===\n');
12
11
  console.log('This will help you configure your Telegram bot and LLM provider.\n');
13
12
  const existingConfig = existsSync(join(process.cwd(), '.env')) ? loadConfig() : null;
13
+ // Step 1: Ask for Telegram Bot Token
14
14
  const answers = await inquirer.prompt([
15
15
  {
16
16
  type: 'input',
@@ -27,51 +27,65 @@ async function runSetup() {
27
27
  return true;
28
28
  },
29
29
  },
30
+ ]);
31
+ // Step 2: Ask for provider selection
32
+ const providerAnswers = await inquirer.prompt([
30
33
  {
31
34
  type: 'list',
32
35
  name: 'provider',
33
36
  message: 'Select LLM Provider:',
34
- choices: [
35
- { name: 'OpenCode (OpenAI-compatible)', value: 'opencode' },
36
- { name: 'MiniMax', value: 'minimax' },
37
- ],
37
+ choices: getProviderList(),
38
38
  default: existingConfig?.provider || 'opencode',
39
39
  },
40
- {
41
- type: 'input',
42
- name: 'opencodeBaseUrl',
43
- message: 'OpenCode API Base URL:',
44
- default: existingConfig?.opencode?.baseUrl || 'https://opencode.ai/v1',
45
- when: (answers) => answers.provider === 'opencode',
46
- },
47
- {
48
- type: 'password',
49
- name: 'opencodeApiKey',
50
- message: 'OpenCode API Key:',
51
- when: (answers) => answers.provider === 'opencode',
52
- default: existingConfig?.opencode?.apiKey || '',
53
- },
54
- {
55
- type: 'input',
56
- name: 'opencodeModel',
57
- message: 'OpenCode Model (optional):',
58
- default: existingConfig?.opencode?.model || 'gpt-4o',
59
- when: (answers) => answers.provider === 'opencode',
60
- },
40
+ ]);
41
+ answers.provider = providerAnswers.provider;
42
+ // Step 3: Ask for API Key (password input)
43
+ const apiKeyAnswer = await inquirer.prompt([
61
44
  {
62
45
  type: 'password',
63
- name: 'minimaxApiKey',
64
- message: 'MiniMax API Key:',
65
- when: (answers) => answers.provider === 'minimax',
66
- default: existingConfig?.minimax?.apiKey || '',
67
- },
68
- {
69
- type: 'input',
70
- name: 'minimaxModel',
71
- message: 'MiniMax Model (optional):',
72
- default: existingConfig?.minimax?.model || 'MiniMax-Text-01',
73
- when: (answers) => answers.provider === 'minimax',
46
+ name: 'apiKey',
47
+ message: `${PROVIDERS[answers.provider].name} API Key:`,
48
+ default: existingConfig?.apiKey || '',
49
+ mask: '*',
74
50
  },
51
+ ]);
52
+ answers.apiKey = apiKeyAnswer.apiKey;
53
+ // Step 4: Fetch available models
54
+ console.log('\nFetching available models...');
55
+ let models = [];
56
+ try {
57
+ models = await fetchModels(answers.provider, answers.apiKey);
58
+ console.log(`Found ${models.length} models.\n`);
59
+ }
60
+ catch (error) {
61
+ console.warn('Failed to fetch models from API, will ask for manual input.\n');
62
+ }
63
+ // Step 5 & 6: If models returned, show dropdown; otherwise ask manually
64
+ if (models.length > 0) {
65
+ const modelAnswer = await inquirer.prompt([
66
+ {
67
+ type: 'list',
68
+ name: 'model',
69
+ message: 'Select Model:',
70
+ choices: models.map(m => ({ name: m.name, value: m.id })),
71
+ default: existingConfig?.model || models[0]?.id || '',
72
+ },
73
+ ]);
74
+ answers.model = modelAnswer.model;
75
+ }
76
+ else {
77
+ const modelAnswer = await inquirer.prompt([
78
+ {
79
+ type: 'input',
80
+ name: 'model',
81
+ message: 'Enter Model name:',
82
+ default: existingConfig?.model || '',
83
+ },
84
+ ]);
85
+ answers.model = modelAnswer.model;
86
+ }
87
+ // Step 7: Ask for autolaunch options
88
+ const autolaunchAnswers = await inquirer.prompt([
75
89
  {
76
90
  type: 'confirm',
77
91
  name: 'enableAutolaunch',
@@ -83,27 +97,18 @@ async function runSetup() {
83
97
  name: 'systemdUser',
84
98
  message: 'Systemd service user (e.g., ubuntu):',
85
99
  default: 'ubuntu',
86
- when: (answers) => answers.enableAutolaunch,
100
+ when: (ans) => ans.enableAutolaunch,
87
101
  },
88
102
  ]);
89
- // Build config content
103
+ answers.enableAutolaunch = autolaunchAnswers.enableAutolaunch;
104
+ answers.systemdUser = autolaunchAnswers.systemdUser;
105
+ // Save unified config
90
106
  const lines = [
91
107
  `TELEGRAM_BOT_TOKEN=${answers.telegramBotToken}`,
92
108
  `SAID_PROVIDER=${answers.provider}`,
109
+ `SAID_API_KEY=${answers.apiKey}`,
110
+ `SAID_MODEL=${answers.model}`,
93
111
  ];
94
- if (answers.provider === 'opencode') {
95
- lines.push(`OPENCODE_BASE_URL=${answers.opencodeBaseUrl}`);
96
- lines.push(`OPENCODE_API_KEY=${answers.opencodeApiKey}`);
97
- if (answers.opencodeModel && answers.opencodeModel !== 'gpt-4o') {
98
- lines.push(`OPENCODE_MODEL=${answers.opencodeModel}`);
99
- }
100
- }
101
- else if (answers.provider === 'minimax') {
102
- lines.push(`MINIMAX_API_KEY=${answers.minimaxApiKey}`);
103
- if (answers.minimaxModel && answers.minimaxModel !== 'MiniMax-Text-01') {
104
- lines.push(`MINIMAX_MODEL=${answers.minimaxModel}`);
105
- }
106
- }
107
112
  // Save .env file
108
113
  const envPath = join(process.cwd(), '.env');
109
114
  writeFileSync(envPath, lines.join('\n') + '\n', 'utf-8');
package/dist/setup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smilique/said",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "Autonomous AI agent with Telegram integration and extensible skills",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",