genieceo 0.1.0

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 (87) hide show
  1. package/DEVELOPMENT.md +240 -0
  2. package/LICENSE +21 -0
  3. package/README.md +443 -0
  4. package/config.example.json +28 -0
  5. package/dist/agent/context.d.ts +38 -0
  6. package/dist/agent/context.d.ts.map +1 -0
  7. package/dist/agent/context.js +131 -0
  8. package/dist/agent/context.js.map +1 -0
  9. package/dist/agent/index.d.ts +10 -0
  10. package/dist/agent/index.d.ts.map +1 -0
  11. package/dist/agent/index.js +54 -0
  12. package/dist/agent/index.js.map +1 -0
  13. package/dist/agent/loop.d.ts +40 -0
  14. package/dist/agent/loop.d.ts.map +1 -0
  15. package/dist/agent/loop.js +104 -0
  16. package/dist/agent/loop.js.map +1 -0
  17. package/dist/agent/subagent.d.ts +35 -0
  18. package/dist/agent/subagent.d.ts.map +1 -0
  19. package/dist/agent/subagent.js +96 -0
  20. package/dist/agent/subagent.js.map +1 -0
  21. package/dist/cli/commands/chat.d.ts +8 -0
  22. package/dist/cli/commands/chat.d.ts.map +1 -0
  23. package/dist/cli/commands/chat.js +161 -0
  24. package/dist/cli/commands/chat.js.map +1 -0
  25. package/dist/cli/commands/init.d.ts +6 -0
  26. package/dist/cli/commands/init.d.ts.map +1 -0
  27. package/dist/cli/commands/init.js +56 -0
  28. package/dist/cli/commands/init.js.map +1 -0
  29. package/dist/cli/commands/onboard.d.ts +6 -0
  30. package/dist/cli/commands/onboard.d.ts.map +1 -0
  31. package/dist/cli/commands/onboard.js +277 -0
  32. package/dist/cli/commands/onboard.js.map +1 -0
  33. package/dist/cli/commands/status.d.ts +6 -0
  34. package/dist/cli/commands/status.d.ts.map +1 -0
  35. package/dist/cli/commands/status.js +107 -0
  36. package/dist/cli/commands/status.js.map +1 -0
  37. package/dist/cli/index.d.ts +3 -0
  38. package/dist/cli/index.d.ts.map +1 -0
  39. package/dist/cli/index.js +49 -0
  40. package/dist/cli/index.js.map +1 -0
  41. package/dist/config/manager.d.ts +43 -0
  42. package/dist/config/manager.d.ts.map +1 -0
  43. package/dist/config/manager.js +147 -0
  44. package/dist/config/manager.js.map +1 -0
  45. package/dist/config/schema.d.ts +179 -0
  46. package/dist/config/schema.d.ts.map +1 -0
  47. package/dist/config/schema.js +74 -0
  48. package/dist/config/schema.js.map +1 -0
  49. package/dist/providers/llm.d.ts +46 -0
  50. package/dist/providers/llm.d.ts.map +1 -0
  51. package/dist/providers/llm.js +175 -0
  52. package/dist/providers/llm.js.map +1 -0
  53. package/dist/skills/loader.d.ts +49 -0
  54. package/dist/skills/loader.d.ts.map +1 -0
  55. package/dist/skills/loader.js +218 -0
  56. package/dist/skills/loader.js.map +1 -0
  57. package/dist/tools/base.d.ts +42 -0
  58. package/dist/tools/base.d.ts.map +1 -0
  59. package/dist/tools/base.js +90 -0
  60. package/dist/tools/base.js.map +1 -0
  61. package/dist/tools/filesystem.d.ts +17 -0
  62. package/dist/tools/filesystem.d.ts.map +1 -0
  63. package/dist/tools/filesystem.js +117 -0
  64. package/dist/tools/filesystem.js.map +1 -0
  65. package/dist/tools/shell.d.ts +8 -0
  66. package/dist/tools/shell.d.ts.map +1 -0
  67. package/dist/tools/shell.js +79 -0
  68. package/dist/tools/shell.js.map +1 -0
  69. package/dist/tools/spawn.d.ts +8 -0
  70. package/dist/tools/spawn.d.ts.map +1 -0
  71. package/dist/tools/spawn.js +23 -0
  72. package/dist/tools/spawn.js.map +1 -0
  73. package/dist/tools/web.d.ts +8 -0
  74. package/dist/tools/web.d.ts.map +1 -0
  75. package/dist/tools/web.js +194 -0
  76. package/dist/tools/web.js.map +1 -0
  77. package/dist/types/index.d.ts +51 -0
  78. package/dist/types/index.d.ts.map +1 -0
  79. package/dist/types/index.js +6 -0
  80. package/dist/types/index.js.map +1 -0
  81. package/dist/workspace/manager.d.ts +38 -0
  82. package/dist/workspace/manager.d.ts.map +1 -0
  83. package/dist/workspace/manager.js +140 -0
  84. package/dist/workspace/manager.js.map +1 -0
  85. package/docs/ONBOARDING.md +229 -0
  86. package/docs/WEB_SEARCH.md +365 -0
  87. package/package.json +38 -0
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.chatCommand = chatCommand;
40
+ const chalk_1 = __importDefault(require("chalk"));
41
+ const ora_1 = __importDefault(require("ora"));
42
+ const readline = __importStar(require("readline"));
43
+ const manager_1 = require("../../config/manager");
44
+ const manager_2 = require("../../workspace/manager");
45
+ const agent_1 = require("../../agent");
46
+ /**
47
+ * Chat command
48
+ * Interactive chat or single message mode
49
+ */
50
+ async function chatCommand(options) {
51
+ try {
52
+ // Load configuration
53
+ const configManager = (0, manager_1.getConfigManager)();
54
+ const config = await configManager.load();
55
+ // Validate configuration
56
+ const validation = await configManager.validate();
57
+ if (!validation.valid) {
58
+ console.error(chalk_1.default.red('✗ Configuration error:'));
59
+ validation.errors?.forEach(error => {
60
+ console.error(chalk_1.default.red(` • ${error}`));
61
+ });
62
+ console.log(chalk_1.default.gray('\nRun "genieceo init" to set up configuration'));
63
+ process.exit(1);
64
+ }
65
+ // Ensure workspace is initialized
66
+ const workspaceManager = (0, manager_2.getWorkspaceManager)(config.workspace);
67
+ const isInitialized = await workspaceManager.isInitialized();
68
+ if (!isInitialized) {
69
+ console.log(chalk_1.default.yellow('Workspace not initialized. Initializing now...'));
70
+ await workspaceManager.init();
71
+ }
72
+ // Create agent
73
+ const spinner = (0, ora_1.default)('Initializing agent...').start();
74
+ const agent = await (0, agent_1.createAgent)(config);
75
+ spinner.succeed('Agent ready');
76
+ // Single message mode
77
+ if (options.message) {
78
+ await handleSingleMessage(agent, options.message);
79
+ return;
80
+ }
81
+ // Interactive mode
82
+ await handleInteractiveMode(agent);
83
+ }
84
+ catch (error) {
85
+ console.error(chalk_1.default.red('\n✗ Error:'));
86
+ console.error(chalk_1.default.red(error instanceof Error ? error.message : String(error)));
87
+ process.exit(1);
88
+ }
89
+ }
90
+ /**
91
+ * Handle single message mode
92
+ */
93
+ async function handleSingleMessage(agent, message) {
94
+ const spinner = (0, ora_1.default)('Thinking...').start();
95
+ try {
96
+ const response = await agent.run(message);
97
+ spinner.stop();
98
+ console.log(chalk_1.default.blue('\n💬 Response:\n'));
99
+ console.log(response);
100
+ console.log('');
101
+ }
102
+ catch (error) {
103
+ spinner.fail('Failed');
104
+ throw error;
105
+ }
106
+ }
107
+ /**
108
+ * Handle interactive mode
109
+ */
110
+ async function handleInteractiveMode(agent) {
111
+ console.log(chalk_1.default.blue.bold('\n💬 genieceo Chat'));
112
+ console.log(chalk_1.default.gray('Type your message and press Enter. Type "exit" to quit.\n'));
113
+ const rl = readline.createInterface({
114
+ input: process.stdin,
115
+ output: process.stdout,
116
+ prompt: chalk_1.default.green('You> '),
117
+ });
118
+ const history = [];
119
+ rl.prompt();
120
+ rl.on('line', async (line) => {
121
+ const input = line.trim();
122
+ // Handle exit
123
+ if (input.toLowerCase() === 'exit' || input.toLowerCase() === 'quit') {
124
+ console.log(chalk_1.default.gray('\nGoodbye! 👋\n'));
125
+ rl.close();
126
+ process.exit(0);
127
+ }
128
+ // Skip empty input
129
+ if (!input) {
130
+ rl.prompt();
131
+ return;
132
+ }
133
+ // Process message
134
+ const spinner = (0, ora_1.default)('Thinking...').start();
135
+ try {
136
+ const result = await agent.runWithHistory(input, history);
137
+ spinner.stop();
138
+ // Update history
139
+ history.length = 0;
140
+ history.push(...result.updatedHistory);
141
+ // Display response
142
+ console.log(chalk_1.default.blue('\nAssistant> ') + result.response + '\n');
143
+ }
144
+ catch (error) {
145
+ spinner.fail('Error');
146
+ console.error(chalk_1.default.red(error instanceof Error ? error.message : String(error)));
147
+ console.log('');
148
+ }
149
+ rl.prompt();
150
+ });
151
+ rl.on('close', () => {
152
+ console.log(chalk_1.default.gray('\nGoodbye! 👋\n'));
153
+ process.exit(0);
154
+ });
155
+ // Handle Ctrl+C
156
+ rl.on('SIGINT', () => {
157
+ console.log(chalk_1.default.gray('\n\nGoodbye! 👋\n'));
158
+ process.exit(0);
159
+ });
160
+ }
161
+ //# sourceMappingURL=chat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/cli/commands/chat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Initialize command
3
+ * Sets up workspace and creates default configuration
4
+ */
5
+ export declare function initCommand(): Promise<void>;
6
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAgDjD"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.initCommand = initCommand;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const manager_1 = require("../../config/manager");
9
+ const manager_2 = require("../../workspace/manager");
10
+ /**
11
+ * Initialize command
12
+ * Sets up workspace and creates default configuration
13
+ */
14
+ async function initCommand() {
15
+ console.log(chalk_1.default.blue.bold('\n🚀 Initializing genieceo...\n'));
16
+ try {
17
+ // Initialize config
18
+ const configManager = (0, manager_1.getConfigManager)();
19
+ const config = await configManager.load();
20
+ console.log(chalk_1.default.green('✓') + ' Configuration loaded/created');
21
+ console.log(chalk_1.default.gray(` Location: ${configManager.getConfigPath()}`));
22
+ // Initialize workspace
23
+ const workspaceManager = (0, manager_2.getWorkspaceManager)(config.workspace);
24
+ await workspaceManager.init();
25
+ console.log(chalk_1.default.green('✓') + ' Workspace initialized');
26
+ console.log(chalk_1.default.gray(` Location: ${workspaceManager.getWorkspacePath()}`));
27
+ // Validate configuration
28
+ const validation = await configManager.validate();
29
+ if (!validation.valid) {
30
+ console.log(chalk_1.default.yellow('\n⚠️ Configuration warnings:'));
31
+ validation.errors?.forEach(error => {
32
+ console.log(chalk_1.default.yellow(` • ${error}`));
33
+ });
34
+ console.log(chalk_1.default.gray('\nTo fix:'));
35
+ console.log(chalk_1.default.gray(' • Run the setup wizard: genieceo onboard'));
36
+ console.log(chalk_1.default.gray(' • Or edit config manually: ' + configManager.getConfigPath()));
37
+ }
38
+ else {
39
+ console.log(chalk_1.default.green('\n✓ Configuration is valid'));
40
+ }
41
+ console.log(chalk_1.default.blue.bold('\n✨ genieceo is ready!'));
42
+ console.log(chalk_1.default.gray('\nNext steps:'));
43
+ if (!validation.valid) {
44
+ console.log(chalk_1.default.gray(' • Complete setup: genieceo onboard (recommended)'));
45
+ }
46
+ console.log(chalk_1.default.gray(' • Run: genieceo chat'));
47
+ console.log(chalk_1.default.gray(' • Or: genieceo chat -m "your message"'));
48
+ console.log(chalk_1.default.gray(' • Check status: genieceo status\n'));
49
+ }
50
+ catch (error) {
51
+ console.error(chalk_1.default.red('✗ Initialization failed:'));
52
+ console.error(chalk_1.default.red(error instanceof Error ? error.message : String(error)));
53
+ process.exit(1);
54
+ }
55
+ }
56
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Onboarding command
3
+ * Interactive setup for LLM and web search configuration
4
+ */
5
+ export declare function onboardCommand(): Promise<void>;
6
+ //# sourceMappingURL=onboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboard.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/onboard.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA+CpD"}
@@ -0,0 +1,277 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.onboardCommand = onboardCommand;
40
+ const chalk_1 = __importDefault(require("chalk"));
41
+ const readline = __importStar(require("readline"));
42
+ const manager_1 = require("../../config/manager");
43
+ const llm_1 = require("../../providers/llm");
44
+ const pi_ai_1 = require("@mariozechner/pi-ai");
45
+ /**
46
+ * Onboarding command
47
+ * Interactive setup for LLM and web search configuration
48
+ */
49
+ async function onboardCommand() {
50
+ console.log(chalk_1.default.blue.bold('\n👋 Welcome to genieceo onboarding!\n'));
51
+ console.log(chalk_1.default.gray('This wizard will help you configure your AI agent.\n'));
52
+ const rl = readline.createInterface({
53
+ input: process.stdin,
54
+ output: process.stdout,
55
+ });
56
+ try {
57
+ const configManager = (0, manager_1.getConfigManager)();
58
+ let config = await configManager.load();
59
+ // Step 1: Configure LLM Provider
60
+ console.log(chalk_1.default.cyan.bold('Step 1: LLM Configuration'));
61
+ console.log(chalk_1.default.gray('─'.repeat(50)));
62
+ config = await configureLLM(rl, config);
63
+ // Step 2: Health check LLM
64
+ console.log(chalk_1.default.cyan.bold('\nStep 2: LLM Health Check'));
65
+ console.log(chalk_1.default.gray('─'.repeat(50)));
66
+ await healthCheckLLM(config);
67
+ // Step 3: Configure Web Search
68
+ console.log(chalk_1.default.cyan.bold('\nStep 3: Web Search Configuration'));
69
+ console.log(chalk_1.default.gray('─'.repeat(50)));
70
+ config = await configureWebSearch(rl, config);
71
+ // Save final configuration
72
+ await configManager.save(config);
73
+ // Success message
74
+ console.log(chalk_1.default.green.bold('\n✨ Onboarding complete!'));
75
+ console.log(chalk_1.default.gray('\nYour configuration has been saved to:'));
76
+ console.log(chalk_1.default.gray(` ${configManager.getConfigPath()}`));
77
+ console.log(chalk_1.default.gray('\nNext steps:'));
78
+ console.log(chalk_1.default.gray(' • Run: genieceo chat'));
79
+ console.log(chalk_1.default.gray(' • Or: genieceo chat -m "your message"'));
80
+ console.log(chalk_1.default.gray(' • Check status: genieceo status\n'));
81
+ rl.close();
82
+ }
83
+ catch (error) {
84
+ rl.close();
85
+ console.error(chalk_1.default.red('\n✗ Onboarding failed:'));
86
+ console.error(chalk_1.default.red(error instanceof Error ? error.message : String(error)));
87
+ process.exit(1);
88
+ }
89
+ }
90
+ /**
91
+ * Configure LLM provider
92
+ */
93
+ async function configureLLM(rl, config) {
94
+ // Get available providers
95
+ const availableProviders = (0, pi_ai_1.getProviders)();
96
+ console.log(chalk_1.default.gray('\nAvailable LLM providers:'));
97
+ availableProviders.forEach((provider, index) => {
98
+ console.log(chalk_1.default.gray(` ${index + 1}. ${provider}`));
99
+ });
100
+ // Ask for provider
101
+ const provider = await question(rl, chalk_1.default.white(`\nSelect a provider [${availableProviders.join('/')}] (default: openai): `));
102
+ const selectedProvider = provider.trim().toLowerCase() || 'openai';
103
+ if (!availableProviders.includes(selectedProvider)) {
104
+ throw new Error(`Invalid provider. Choose from: ${availableProviders.join(', ')}`);
105
+ }
106
+ // Ask for API key
107
+ const currentKey = selectedProvider === 'openai'
108
+ ? config.llm.openai.apiKey
109
+ : config.llm.anthropic?.apiKey || '';
110
+ const keyPrompt = currentKey
111
+ ? `Enter ${selectedProvider} API key (press Enter to keep current): `
112
+ : `Enter ${selectedProvider} API key: `;
113
+ const apiKey = await question(rl, chalk_1.default.white(keyPrompt));
114
+ const finalApiKey = apiKey.trim() || currentKey;
115
+ if (!finalApiKey) {
116
+ throw new Error('API key is required');
117
+ }
118
+ // Update config with API key
119
+ if (selectedProvider === 'openai') {
120
+ config.llm.openai.apiKey = finalApiKey;
121
+ }
122
+ else if (selectedProvider === 'anthropic') {
123
+ config.llm.anthropic = { apiKey: finalApiKey };
124
+ }
125
+ console.log(chalk_1.default.green('✓ API key saved'));
126
+ // Get available models for the provider
127
+ const tempLLMProvider = new llm_1.LLMProvider(config);
128
+ const models = tempLLMProvider.getAvailableModels(selectedProvider);
129
+ if (models.length === 0) {
130
+ console.log(chalk_1.default.yellow('⚠️ Could not fetch models for this provider'));
131
+ // Ask user to manually input model
132
+ const modelInput = await question(rl, chalk_1.default.white(`\nEnter model ID (e.g., gpt-4o, claude-3-5-sonnet-20241022): `));
133
+ if (!modelInput.trim()) {
134
+ throw new Error('Model ID is required');
135
+ }
136
+ config.model = `${selectedProvider}:${modelInput.trim()}`;
137
+ }
138
+ else {
139
+ // Display available models
140
+ console.log(chalk_1.default.gray('\nAvailable models:'));
141
+ models.forEach((model, index) => {
142
+ console.log(chalk_1.default.gray(` ${index + 1}. ${model.id}${model.name ? ` - ${model.name}` : ''}`));
143
+ });
144
+ // Ask for model selection
145
+ const defaultModel = models[0].id;
146
+ const modelInput = await question(rl, chalk_1.default.white(`\nSelect model [enter model ID or number] (default: ${defaultModel}): `));
147
+ let selectedModel;
148
+ const input = modelInput.trim();
149
+ if (!input) {
150
+ selectedModel = defaultModel;
151
+ }
152
+ else if (/^\d+$/.test(input)) {
153
+ // User entered a number
154
+ const index = parseInt(input) - 1;
155
+ if (index >= 0 && index < models.length) {
156
+ selectedModel = models[index].id;
157
+ }
158
+ else {
159
+ throw new Error(`Invalid model number. Choose 1-${models.length}`);
160
+ }
161
+ }
162
+ else {
163
+ // User entered model ID directly
164
+ selectedModel = input;
165
+ }
166
+ config.model = `${selectedProvider}:${selectedModel}`;
167
+ }
168
+ console.log(chalk_1.default.green(`✓ Model set to: ${config.model}`));
169
+ return config;
170
+ }
171
+ /**
172
+ * Health check LLM configuration
173
+ */
174
+ async function healthCheckLLM(config) {
175
+ console.log(chalk_1.default.gray('\nTesting LLM connection...'));
176
+ const llmProvider = new llm_1.LLMProvider(config);
177
+ // Validate configuration
178
+ const validation = llmProvider.validateConfig();
179
+ if (!validation.valid) {
180
+ console.log(chalk_1.default.red('✗ Configuration validation failed:'));
181
+ validation.errors?.forEach(error => {
182
+ console.log(chalk_1.default.red(` • ${error}`));
183
+ });
184
+ throw new Error('LLM configuration is invalid');
185
+ }
186
+ console.log(chalk_1.default.green('✓ Configuration validated'));
187
+ // Try a simple generation
188
+ try {
189
+ console.log(chalk_1.default.gray('Making a test API call...'));
190
+ const response = await llmProvider.generate([
191
+ {
192
+ role: 'user',
193
+ content: 'Say "Hello! I am working correctly." if you can read this.',
194
+ },
195
+ ], {}, 1);
196
+ console.log(chalk_1.default.green('✓ LLM health check passed'));
197
+ console.log(chalk_1.default.gray(` Response: ${response.text.slice(0, 100)}${response.text.length > 100 ? '...' : ''}`));
198
+ console.log(chalk_1.default.gray(` Tokens used: ${response.usage.totalTokens}`));
199
+ }
200
+ catch (error) {
201
+ console.log(chalk_1.default.red('✗ LLM health check failed'));
202
+ throw new Error(`LLM test failed: ${error instanceof Error ? error.message : error}`);
203
+ }
204
+ }
205
+ /**
206
+ * Configure web search tool
207
+ */
208
+ async function configureWebSearch(rl, config) {
209
+ console.log(chalk_1.default.gray('\nWeb search providers:'));
210
+ console.log(chalk_1.default.gray(' 1. auto - Try Tavily, then Brave, then browser (recommended)'));
211
+ console.log(chalk_1.default.gray(' 2. tavily - Tavily Search API (requires API key)'));
212
+ console.log(chalk_1.default.gray(' 3. brave - Brave Search API (requires API key)'));
213
+ console.log(chalk_1.default.gray(' 4. browser - Free browser-based search (no API key needed)'));
214
+ const provider = await question(rl, chalk_1.default.white('\nSelect web search provider [auto/tavily/brave/browser] (default: auto): '));
215
+ const selectedProvider = provider.trim().toLowerCase() || 'auto';
216
+ if (!['auto', 'tavily', 'brave', 'browser'].includes(selectedProvider)) {
217
+ throw new Error('Invalid provider. Choose from: auto, tavily, brave, browser');
218
+ }
219
+ config.tools.webSearch.provider = selectedProvider;
220
+ console.log(chalk_1.default.green(`✓ Web search provider set to: ${selectedProvider}`));
221
+ // Configure API keys based on selection
222
+ if (selectedProvider === 'tavily' || selectedProvider === 'auto') {
223
+ const currentKey = config.tools.webSearch.tavily?.apiKey || '';
224
+ const skipTavily = selectedProvider === 'auto'
225
+ ? await question(rl, chalk_1.default.white('\nConfigure Tavily API? [y/N]: '))
226
+ : 'y';
227
+ if (skipTavily.toLowerCase() === 'y' || selectedProvider === 'tavily') {
228
+ const keyPrompt = currentKey
229
+ ? 'Enter Tavily API key (press Enter to keep current): '
230
+ : 'Enter Tavily API key (get one at https://tavily.com): ';
231
+ const apiKey = await question(rl, chalk_1.default.white(keyPrompt));
232
+ const finalKey = apiKey.trim() || currentKey;
233
+ if (finalKey) {
234
+ config.tools.webSearch.tavily = { apiKey: finalKey };
235
+ console.log(chalk_1.default.green('✓ Tavily API key saved'));
236
+ }
237
+ else if (selectedProvider === 'tavily') {
238
+ throw new Error('Tavily API key is required when using tavily provider');
239
+ }
240
+ }
241
+ }
242
+ if (selectedProvider === 'brave' || selectedProvider === 'auto') {
243
+ const currentKey = config.tools.webSearch.brave?.apiKey || '';
244
+ const skipBrave = selectedProvider === 'auto'
245
+ ? await question(rl, chalk_1.default.white('\nConfigure Brave API? [y/N]: '))
246
+ : 'y';
247
+ if (skipBrave.toLowerCase() === 'y' || selectedProvider === 'brave') {
248
+ const keyPrompt = currentKey
249
+ ? 'Enter Brave API key (press Enter to keep current): '
250
+ : 'Enter Brave API key (get one at https://brave.com/search/api): ';
251
+ const apiKey = await question(rl, chalk_1.default.white(keyPrompt));
252
+ const finalKey = apiKey.trim() || currentKey;
253
+ if (finalKey) {
254
+ config.tools.webSearch.brave = { apiKey: finalKey };
255
+ console.log(chalk_1.default.green('✓ Brave API key saved'));
256
+ }
257
+ else if (selectedProvider === 'brave') {
258
+ throw new Error('Brave API key is required when using brave provider');
259
+ }
260
+ }
261
+ }
262
+ if (selectedProvider === 'browser') {
263
+ console.log(chalk_1.default.yellow('ℹ️ Browser-based search requires no API key but may have limited results'));
264
+ }
265
+ return config;
266
+ }
267
+ /**
268
+ * Helper function to ask a question and return the answer
269
+ */
270
+ function question(rl, prompt) {
271
+ return new Promise((resolve) => {
272
+ rl.question(prompt, (answer) => {
273
+ resolve(answer);
274
+ });
275
+ });
276
+ }
277
+ //# sourceMappingURL=onboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboard.js","sourceRoot":"","sources":["../../../src/cli/commands/onboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Status command
3
+ * Shows configuration and workspace status
4
+ */
5
+ export declare function statusCommand(): Promise<void>;
6
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA2GnD"}