my-ai-agent 1.0.2

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/LICENSE +21 -0
  2. package/README.md +244 -0
  3. package/dist/commands/add.d.ts +6 -0
  4. package/dist/commands/add.d.ts.map +1 -0
  5. package/dist/commands/add.js +89 -0
  6. package/dist/commands/add.js.map +1 -0
  7. package/dist/commands/check.d.ts +8 -0
  8. package/dist/commands/check.d.ts.map +1 -0
  9. package/dist/commands/check.js +62 -0
  10. package/dist/commands/check.js.map +1 -0
  11. package/dist/commands/default.d.ts +7 -0
  12. package/dist/commands/default.d.ts.map +1 -0
  13. package/dist/commands/default.js +72 -0
  14. package/dist/commands/default.js.map +1 -0
  15. package/dist/commands/delete.d.ts +8 -0
  16. package/dist/commands/delete.d.ts.map +1 -0
  17. package/dist/commands/delete.js +80 -0
  18. package/dist/commands/delete.js.map +1 -0
  19. package/dist/commands/disable.d.ts +5 -0
  20. package/dist/commands/disable.d.ts.map +1 -0
  21. package/dist/commands/disable.js +25 -0
  22. package/dist/commands/disable.js.map +1 -0
  23. package/dist/commands/edit.d.ts +8 -0
  24. package/dist/commands/edit.d.ts.map +1 -0
  25. package/dist/commands/edit.js +128 -0
  26. package/dist/commands/edit.js.map +1 -0
  27. package/dist/commands/enable.d.ts +5 -0
  28. package/dist/commands/enable.d.ts.map +1 -0
  29. package/dist/commands/enable.js +25 -0
  30. package/dist/commands/enable.js.map +1 -0
  31. package/dist/commands/export.d.ts +5 -0
  32. package/dist/commands/export.d.ts.map +1 -0
  33. package/dist/commands/export.js +29 -0
  34. package/dist/commands/export.js.map +1 -0
  35. package/dist/commands/find.d.ts +5 -0
  36. package/dist/commands/find.d.ts.map +1 -0
  37. package/dist/commands/find.js +35 -0
  38. package/dist/commands/find.js.map +1 -0
  39. package/dist/commands/import.d.ts +5 -0
  40. package/dist/commands/import.d.ts.map +1 -0
  41. package/dist/commands/import.js +34 -0
  42. package/dist/commands/import.js.map +1 -0
  43. package/dist/commands/list.d.ts +5 -0
  44. package/dist/commands/list.d.ts.map +1 -0
  45. package/dist/commands/list.js +34 -0
  46. package/dist/commands/list.js.map +1 -0
  47. package/dist/commands/onboard.d.ts +5 -0
  48. package/dist/commands/onboard.d.ts.map +1 -0
  49. package/dist/commands/onboard.js +99 -0
  50. package/dist/commands/onboard.js.map +1 -0
  51. package/dist/commands/run.d.ts +15 -0
  52. package/dist/commands/run.d.ts.map +1 -0
  53. package/dist/commands/run.js +65 -0
  54. package/dist/commands/run.js.map +1 -0
  55. package/dist/commands/view.d.ts +5 -0
  56. package/dist/commands/view.d.ts.map +1 -0
  57. package/dist/commands/view.js +21 -0
  58. package/dist/commands/view.js.map +1 -0
  59. package/dist/config.d.ts +52 -0
  60. package/dist/config.d.ts.map +1 -0
  61. package/dist/config.js +105 -0
  62. package/dist/config.js.map +1 -0
  63. package/dist/executor.d.ts +10 -0
  64. package/dist/executor.d.ts.map +1 -0
  65. package/dist/executor.js +97 -0
  66. package/dist/executor.js.map +1 -0
  67. package/dist/index.d.ts +3 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +142 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/types.d.ts +38 -0
  72. package/dist/types.d.ts.map +1 -0
  73. package/dist/types.js +6 -0
  74. package/dist/types.js.map +1 -0
  75. package/dist/utils/format.d.ts +13 -0
  76. package/dist/utils/format.d.ts.map +1 -0
  77. package/dist/utils/format.js +36 -0
  78. package/dist/utils/format.js.map +1 -0
  79. package/dist/utils/table.d.ts +10 -0
  80. package/dist/utils/table.d.ts.map +1 -0
  81. package/dist/utils/table.js +82 -0
  82. package/dist/utils/table.js.map +1 -0
  83. package/dist/validator.d.ts +15 -0
  84. package/dist/validator.d.ts.map +1 -0
  85. package/dist/validator.js +41 -0
  86. package/dist/validator.js.map +1 -0
  87. package/package.json +66 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Your Name
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,244 @@
1
+ # My AI Agent
2
+
3
+ A CLI-based app for non-interactive (direct) inference from popular AI CLI tools such as Claude Code, Gemini CLI, Codex, OpenCode, etc. Simply run `agent "your prompt here"` and the app will figure out the best AI CLI agent tool automatically to return answers to your queries.
4
+
5
+ ## Features
6
+
7
+ - **AI Tool Management**: Add, edit, delete, view, list, and search tools
8
+ - **Benchmarking**: Test all tools to find the fastest one with performance tracking
9
+ - **Unified Interface**: Run any tool with a simple command
10
+ - **Smart Selection**: Automatically use the best-performing tool with intelligent fallback
11
+ - **Configuration Management**: Export/import tool configurations
12
+ - **Tool State Control**: Enable/disable tools for maintenance
13
+ - **Markdown Rendering**: Format AI responses with proper terminal display
14
+ - **Interactive & Non-Interactive**: Supports both modes for automation
15
+
16
+ ## Commands
17
+
18
+ | Command | Description | Usage |
19
+ |---------|-------------|-------|
20
+ | `add` | Add a new AI tool | `agent add` (interactive) or `agent add --name tool --command "cmd" --description "desc"` |
21
+ | `edit` | Edit an existing tool | `agent edit <tool-name>` or `agent edit --tool-name <name> --command "new cmd"` |
22
+ | `delete` | Remove tools with confirmation | `agent delete <tool-name>` or `agent delete <tool-name> --yes` |
23
+ | `view` | Show detailed tool information | `agent view <tool-name>` |
24
+ | `list` | Display all tools with status | `agent list` |
25
+ | `find` | Search tools by name/description | `agent find <query>` |
26
+ | `check` | Benchmark all tools | `agent check` or `agent check --debug --include-disabled` |
27
+ | `run` | Execute a specific tool | `agent run <tool-name> "prompt"` or `agent run <tool-name> "prompt" --debug` |
28
+ | `export` | Export configuration to JSON | `agent export` or `agent export /path/to/config.json` |
29
+ | `import` | Import configuration from JSON | `agent import /path/to/config.json` |
30
+ | `enable` | Enable a disabled tool | `agent enable <tool-name>` |
31
+ | `disable` | Disable a tool | `agent disable <tool-name>` |
32
+ | `onboard` | Display comprehensive guide | `agent onboard` |
33
+ | `[query]` | Run query with best tool | `agent "your prompt"` or `agent "prompt" --no-autocheck` |
34
+
35
+ ## Installation
36
+
37
+ ```bash
38
+ npm install -g my-ai-agent
39
+ ```
40
+
41
+ Or use locally:
42
+
43
+ ```bash
44
+ npm install
45
+ npm link
46
+ ```
47
+
48
+ ## Add CLI Tools
49
+
50
+ Add one or more of these or your own custom tools with `add` command:
51
+
52
+ ### OpenAI Codex
53
+
54
+ - Name: `codex`
55
+ - Command: `codex --yolo --model gpt-5.2 exec`
56
+ - Description: `OpenAI Codex`
57
+
58
+ ### Claude Code
59
+
60
+ - Name: `claude`
61
+ - Command: `claude --dangerously-skip-permissions --no-chrome --model claude-sonnet-4-5 --output-format text -p`
62
+ - Description: `Claude Code`
63
+
64
+ ### OpenCode
65
+
66
+ - Name: `opencode`
67
+ - Command: `opencode --model opencode/grok-code --format default run`
68
+ - Description: `OpenCode`
69
+
70
+ ### Gemini CLI
71
+
72
+ - Name: `gemini`
73
+ - Command: `gemini -e none --model gemini-2.5-flash --yolo --output-format text`
74
+ - Description: `Gemini CLI`
75
+
76
+ Tip: Replace `gemini` with `qwen` if you want that too.
77
+
78
+ ## Usage
79
+
80
+ ### Add a Tool
81
+
82
+ Interactive mode:
83
+ ```bash
84
+ agent add
85
+ ```
86
+
87
+ Non-interactive mode:
88
+ ```bash
89
+ agent add --name mytool --command "mytool run" --description "My AI tool"
90
+ ```
91
+
92
+ ### List All Tools
93
+
94
+ ```bash
95
+ agent list
96
+ ```
97
+
98
+ ### View Tool Details
99
+
100
+ ```bash
101
+ agent view <tool-name>
102
+ ```
103
+
104
+ ### Find Tools
105
+
106
+ Fuzzy search across tool names and descriptions:
107
+ ```bash
108
+ agent find openai
109
+ ```
110
+
111
+ ### Edit a Tool
112
+
113
+ Interactive mode:
114
+ ```bash
115
+ agent edit <tool-name>
116
+ ```
117
+
118
+ Non-interactive mode:
119
+ ```bash
120
+ agent edit <tool-name> --name "newname" --command "new command" --description "new desc"
121
+ agent edit --tool-name <tool-name> --description "updated description"
122
+ ```
123
+
124
+ ### Delete a Tool
125
+
126
+ Interactive mode (with confirmation):
127
+ ```bash
128
+ agent delete <tool-name>
129
+ ```
130
+
131
+ Non-interactive mode:
132
+ ```bash
133
+ agent delete <tool-name> --yes
134
+ agent delete --tool-name <tool-name> --yes
135
+ ```
136
+
137
+ ### Enable/Disable Tools
138
+
139
+ ```bash
140
+ agent enable <tool-name>
141
+ agent disable <tool-name>
142
+ ```
143
+
144
+ ### Check All Tools
145
+
146
+ Benchmark all tools and determine the best one:
147
+ ```bash
148
+ agent check
149
+ ```
150
+
151
+ With debug output to see each command being executed:
152
+ ```bash
153
+ agent check --debug
154
+ ```
155
+
156
+ Include disabled tools in benchmarking:
157
+ ```bash
158
+ agent check --include-disabled
159
+ ```
160
+
161
+ ### Run a Specific Tool
162
+
163
+ ```bash
164
+ agent run <tool-name> "your prompt here"
165
+ ```
166
+
167
+ With debug output:
168
+ ```bash
169
+ agent run <tool-name> "your prompt here" --debug
170
+ # Shows: Debug: Executing command: <actual-command>
171
+ # Then streams the tool output in real-time
172
+ ```
173
+
174
+ ### Run Best Tool
175
+
176
+ Use the best tool automatically:
177
+ ```bash
178
+ agent "tell me a joke"
179
+ ```
180
+
181
+ Skip automatic fallback if best tool fails:
182
+ ```bash
183
+ agent "tell me a joke" --no-autocheck
184
+ ```
185
+
186
+ ### Configuration Management
187
+
188
+ Export configuration to a file:
189
+ ```bash
190
+ agent export
191
+ agent export /path/to/config.json
192
+ ```
193
+
194
+ Import configuration from a file:
195
+ ```bash
196
+ agent import /path/to/config.json
197
+ ```
198
+
199
+ ### Onboarding Guide
200
+
201
+ Display comprehensive onboarding information, useful for AI agents:
202
+ ```bash
203
+ agent onboard
204
+ ```
205
+
206
+ ## Configuration
207
+
208
+ Configuration is stored in a platform-specific location:
209
+ - **Windows**: `%APPDATA%\my-ai-agent\config.json`
210
+ - **macOS/Linux**: `~/.config/my-ai-agent/config.json`
211
+
212
+ ## Development
213
+
214
+ ### Build
215
+
216
+ ```bash
217
+ npm run build
218
+ ```
219
+
220
+ ### Run Tests
221
+
222
+ ```bash
223
+ npm test
224
+ ```
225
+
226
+ ### Type Check
227
+
228
+ ```bash
229
+ npm run type-check
230
+ ```
231
+
232
+ ### Development Mode
233
+
234
+ ```bash
235
+ npm run dev
236
+ ```
237
+
238
+ ## Requirements
239
+
240
+ - Node.js >= 14.0.0
241
+
242
+ ## License
243
+
244
+ MIT
@@ -0,0 +1,6 @@
1
+ import { AddOptions } from '../types';
2
+ /**
3
+ * Add command - adds a new tool to the configuration
4
+ */
5
+ export declare function addCommand(options: AddOptions): Promise<void>;
6
+ //# sourceMappingURL=add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAQ,MAAM,UAAU,CAAC;AAE5C;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiFnE"}
@@ -0,0 +1,89 @@
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.addCommand = addCommand;
7
+ const inquirer_1 = __importDefault(require("inquirer"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const config_1 = require("../config");
10
+ const validator_1 = require("../validator");
11
+ /**
12
+ * Add command - adds a new tool to the configuration
13
+ */
14
+ async function addCommand(options) {
15
+ let name = options.name;
16
+ let command = options.command;
17
+ let description = options.description;
18
+ // Interactive mode if options are not provided
19
+ if (!name || !command || !description) {
20
+ try {
21
+ const questions = [];
22
+ if (!name) {
23
+ questions.push({
24
+ type: 'input',
25
+ name: 'name',
26
+ message: 'Tool name:',
27
+ validate: (input) => {
28
+ const result = (0, validator_1.validateToolName)(input);
29
+ return result.valid || result.error;
30
+ }
31
+ });
32
+ }
33
+ if (!command) {
34
+ questions.push({
35
+ type: 'input',
36
+ name: 'command',
37
+ message: 'Command:',
38
+ validate: (input) => {
39
+ return input.length > 0 || 'Command is required';
40
+ }
41
+ });
42
+ }
43
+ if (!description) {
44
+ questions.push({
45
+ type: 'input',
46
+ name: 'description',
47
+ message: 'Description:',
48
+ validate: (input) => {
49
+ return input.length > 0 || 'Description is required';
50
+ }
51
+ });
52
+ }
53
+ const answers = await inquirer_1.default.prompt(questions);
54
+ name = name || answers.name;
55
+ command = command || answers.command;
56
+ description = description || answers.description;
57
+ }
58
+ catch (error) {
59
+ // User cancelled with Escape
60
+ console.log(chalk_1.default.yellow('\nOperation cancelled'));
61
+ return;
62
+ }
63
+ }
64
+ else {
65
+ // Validate name in non-interactive mode
66
+ const validation = (0, validator_1.validateToolName)(name);
67
+ if (!validation.valid) {
68
+ console.log(chalk_1.default.red(`Error: ${validation.error}`));
69
+ process.exit(1);
70
+ }
71
+ }
72
+ // Check for duplicate
73
+ if (config_1.configManager.toolExists(name)) {
74
+ console.log(chalk_1.default.red(`Error: Tool "${name}" already exists`));
75
+ process.exit(1);
76
+ }
77
+ // Create and add the tool
78
+ const tool = {
79
+ name: name,
80
+ command: command,
81
+ description: description,
82
+ time_taken: null,
83
+ last_ran: null,
84
+ okay: null
85
+ };
86
+ config_1.configManager.addTool(tool);
87
+ console.log(chalk_1.default.green(`✓ Tool "${name}" added successfully`));
88
+ }
89
+ //# sourceMappingURL=add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Check command - runs all tools to benchmark and verify functionality
3
+ */
4
+ export declare function checkCommand(options?: {
5
+ debug?: boolean;
6
+ includeDisabled?: boolean;
7
+ }): Promise<void>;
8
+ //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqD1G"}
@@ -0,0 +1,62 @@
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.checkCommand = checkCommand;
7
+ const ora_1 = __importDefault(require("ora"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const config_1 = require("../config");
10
+ const executor_1 = require("../executor");
11
+ const format_1 = require("../utils/format");
12
+ const list_1 = require("./list");
13
+ /**
14
+ * Check command - runs all tools to benchmark and verify functionality
15
+ */
16
+ async function checkCommand(options) {
17
+ const tools = config_1.configManager.getTools();
18
+ if (tools.length === 0) {
19
+ console.log(chalk_1.default.yellow('No tools configured. Use "ai add" to add a tool.'));
20
+ return;
21
+ }
22
+ console.log(chalk_1.default.bold('Checking tools... This may take a while.\n'));
23
+ let bestTool = null;
24
+ let bestTime = Infinity;
25
+ // Run each tool
26
+ for (const tool of tools) {
27
+ if (tool.disabled && !(options?.includeDisabled)) {
28
+ continue; // Skip disabled tools unless explicitly included
29
+ }
30
+ const spinner = (0, ora_1.default)(`Testing ${tool.name}...`).start();
31
+ const result = await (0, executor_1.executeCommandSilent)(tool.command, 'hello', options?.debug || false);
32
+ // Update tool metrics
33
+ config_1.configManager.updateTool(tool.name, {
34
+ time_taken: result.timeTaken,
35
+ last_ran: (0, format_1.getCurrentTimestamp)(),
36
+ okay: result.success,
37
+ last_error: result.success ? undefined : (result.stderr || result.error)
38
+ });
39
+ if (result.success) {
40
+ spinner.succeed(chalk_1.default.green(`${tool.name} - ${result.timeTaken}s`));
41
+ // Track best tool
42
+ if (result.timeTaken < bestTime) {
43
+ bestTime = result.timeTaken;
44
+ bestTool = tool.name;
45
+ }
46
+ }
47
+ else {
48
+ spinner.fail(chalk_1.default.red(`${tool.name} - failed`));
49
+ }
50
+ }
51
+ // Update best tool
52
+ if (bestTool) {
53
+ config_1.configManager.setBest(bestTool);
54
+ console.log(chalk_1.default.bold.green(`\nBest Tool: ${bestTool} (${bestTime.toFixed(2)}s)\n`));
55
+ }
56
+ else {
57
+ console.log(chalk_1.default.yellow('\nNo tools succeeded\n'));
58
+ }
59
+ // Display results using list command
60
+ (0, list_1.listCommand)();
61
+ }
62
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":";;;;;AAUA,oCAqDC;AA/DD,8CAAsB;AACtB,kDAA0B;AAC1B,sCAA0C;AAC1C,0CAAmD;AACnD,4CAAsD;AACtD,iCAAqC;AAErC;;GAEG;AACI,KAAK,UAAU,YAAY,CAAC,OAAwD;IACvF,MAAM,KAAK,GAAG,sBAAa,CAAC,QAAQ,EAAE,CAAC;IAEvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kDAAkD,CAAC,CAAC,CAAC;QAC9E,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;IAEtE,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,QAAQ,GAAG,QAAQ,CAAC;IAExB,gBAAgB;IAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC;YAC/C,SAAS,CAAC,iDAAiD;QAC/D,CAAC;QACD,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,WAAW,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;QAEvD,MAAM,MAAM,GAAG,MAAM,IAAA,+BAAoB,EAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC;QAE1F,sBAAsB;QACtB,sBAAa,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE;YAChC,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,QAAQ,EAAE,IAAA,4BAAmB,GAAE;YAC/B,IAAI,EAAE,MAAM,CAAC,OAAO;YACpB,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC;SAC3E,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,MAAM,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAEpE,kBAAkB;YAClB,IAAI,MAAM,CAAC,SAAS,GAAG,QAAQ,EAAE,CAAC;gBAC9B,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC5B,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YACzB,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;IAED,mBAAmB;IACnB,IAAI,QAAQ,EAAE,CAAC;QACX,sBAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,QAAQ,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1F,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,qCAAqC;IACrC,IAAA,kBAAW,GAAE,CAAC;AAClB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Default command - runs the best tool with a prompt
3
+ */
4
+ export declare function defaultCommand(prompt: string, options?: {
5
+ autocheck?: boolean;
6
+ }): Promise<void>;
7
+ //# sourceMappingURL=default.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../src/commands/default.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgErG"}
@@ -0,0 +1,72 @@
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.defaultCommand = defaultCommand;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const config_1 = require("../config");
9
+ const run_1 = require("./run");
10
+ const check_1 = require("./check");
11
+ /**
12
+ * Default command - runs the best tool with a prompt
13
+ */
14
+ async function defaultCommand(prompt, options) {
15
+ const autocheck = options?.autocheck ?? true;
16
+ let bestToolName = config_1.configManager.getBest();
17
+ const startTime = performance.now();
18
+ if (!bestToolName) {
19
+ console.log(chalk_1.default.yellow('No best tool configured. Running benchmark...'));
20
+ await (0, check_1.checkCommand)();
21
+ // After check, get the new best
22
+ bestToolName = config_1.configManager.getBest();
23
+ if (!bestToolName) {
24
+ console.log(chalk_1.default.red('No tools passed the benchmark.'));
25
+ process.exit(1);
26
+ }
27
+ }
28
+ // Try best tool
29
+ const result = await (0, run_1.runTool)(bestToolName, prompt, false, true); // silent check
30
+ if (result.success) {
31
+ await (0, run_1.runTool)(bestToolName, prompt, false, false); // with output
32
+ const endTime = performance.now();
33
+ const timeTaken = (endTime - startTime) / 1000;
34
+ console.log(`\n${chalk_1.default.dim.italic(`Answered via ${chalk_1.default.bold.cyan(bestToolName.toUpperCase())} (BEST) in ${timeTaken.toFixed(1)}s`)}`);
35
+ return;
36
+ }
37
+ // Update failed tool
38
+ config_1.configManager.updateTool(bestToolName, {
39
+ last_error: result.error,
40
+ okay: false,
41
+ last_ran: new Date().toISOString()
42
+ });
43
+ if (!autocheck) {
44
+ process.exit(1);
45
+ }
46
+ // Try other tools
47
+ const allTools = config_1.configManager.getTools();
48
+ const successfulTools = allTools.filter(t => t.okay === true && !t.disabled && t.name !== bestToolName);
49
+ successfulTools.sort((a, b) => (a.time_taken ?? Infinity) - (b.time_taken ?? Infinity));
50
+ for (const tool of successfulTools) {
51
+ const res = await (0, run_1.runTool)(tool.name, prompt, false, true);
52
+ if (res.success) {
53
+ await (0, run_1.runTool)(tool.name, prompt, false, false);
54
+ config_1.configManager.setBest(tool.name);
55
+ const endTime = performance.now();
56
+ const timeTaken = (endTime - startTime) / 1000;
57
+ console.log(`\n${chalk_1.default.dim.italic(`Answered via ${chalk_1.default.bold.cyan(tool.name.toUpperCase())} in ${timeTaken.toFixed(1)}s`)}`);
58
+ return;
59
+ }
60
+ else {
61
+ config_1.configManager.updateTool(tool.name, {
62
+ last_error: res.error,
63
+ okay: false,
64
+ last_ran: new Date().toISOString()
65
+ });
66
+ }
67
+ }
68
+ // All failed
69
+ console.log(chalk_1.default.red('All tools failed to provide a response.'));
70
+ process.exit(1);
71
+ }
72
+ //# sourceMappingURL=default.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.js","sourceRoot":"","sources":["../../src/commands/default.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { DeleteOptions } from '../types';
2
+ /**
3
+ * Delete command - removes tools from configuration
4
+ */
5
+ export declare function deleteCommand(toolName?: string, options?: DeleteOptions & {
6
+ toolName?: string;
7
+ }): Promise<void>;
8
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,wBAAsB,aAAa,CAC/B,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,aAAa,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD,OAAO,CAAC,IAAI,CAAC,CAuEf"}
@@ -0,0 +1,80 @@
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.deleteCommand = deleteCommand;
7
+ const inquirer_1 = __importDefault(require("inquirer"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const config_1 = require("../config");
10
+ /**
11
+ * Delete command - removes tools from configuration
12
+ */
13
+ async function deleteCommand(toolName, options) {
14
+ // Use --tool-name option if positional arg not provided
15
+ const effectiveToolName = toolName || options?.toolName;
16
+ let toolsToDelete;
17
+ if (effectiveToolName) {
18
+ // Single tool mode
19
+ const tool = config_1.configManager.getTool(effectiveToolName);
20
+ if (!tool) {
21
+ console.log(chalk_1.default.red(`Error: Tool "${effectiveToolName}" not found`));
22
+ process.exit(1);
23
+ }
24
+ toolsToDelete = [effectiveToolName];
25
+ }
26
+ else {
27
+ // Interactive mode: select tools
28
+ const allTools = config_1.configManager.getTools();
29
+ if (allTools.length === 0) {
30
+ console.log(chalk_1.default.yellow('No tools configured.'));
31
+ return;
32
+ }
33
+ try {
34
+ const answer = await inquirer_1.default.prompt([
35
+ {
36
+ type: 'checkbox',
37
+ name: 'selectedTools',
38
+ message: 'Select tools to delete:',
39
+ choices: allTools.map(t => ({ name: `${t.name} - ${t.description}`, value: t.name })),
40
+ validate: (answer) => answer.length > 0 || 'Please select at least one tool'
41
+ }
42
+ ]);
43
+ toolsToDelete = answer.selectedTools;
44
+ }
45
+ catch (error) {
46
+ console.log(chalk_1.default.yellow('\nOperation cancelled'));
47
+ return;
48
+ }
49
+ }
50
+ let confirmed = options?.yes || false;
51
+ // Ask for confirmation
52
+ if (!confirmed) {
53
+ const toolNames = toolsToDelete.map(name => `"${name}"`).join(', ');
54
+ try {
55
+ const answer = await inquirer_1.default.prompt([
56
+ {
57
+ type: 'confirm',
58
+ name: 'confirm',
59
+ message: `Are you sure you want to delete: ${toolNames}?`,
60
+ default: false
61
+ }
62
+ ]);
63
+ confirmed = answer.confirm;
64
+ }
65
+ catch (error) {
66
+ console.log(chalk_1.default.yellow('\nOperation cancelled'));
67
+ return;
68
+ }
69
+ }
70
+ if (!confirmed) {
71
+ console.log(chalk_1.default.yellow('Operation cancelled'));
72
+ return;
73
+ }
74
+ // Delete the tools
75
+ for (const name of toolsToDelete) {
76
+ config_1.configManager.deleteTool(name);
77
+ console.log(chalk_1.default.green(`✓ Tool "${name}" deleted successfully`));
78
+ }
79
+ }
80
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":";;;;;AAQA,sCA0EC;AAlFD,wDAAgC;AAChC,kDAA0B;AAC1B,sCAA0C;AAG1C;;GAEG;AACI,KAAK,UAAU,aAAa,CAC/B,QAAiB,EACjB,OAA+C;IAE/C,wDAAwD;IACxD,MAAM,iBAAiB,GAAG,QAAQ,IAAI,OAAO,EAAE,QAAQ,CAAC;IAExD,IAAI,aAAuB,CAAC;IAE5B,IAAI,iBAAiB,EAAE,CAAC;QACpB,mBAAmB;QACnB,MAAM,IAAI,GAAG,sBAAa,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,gBAAgB,iBAAiB,aAAa,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,aAAa,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACJ,iCAAiC;QACjC,MAAM,QAAQ,GAAG,sBAAa,CAAC,QAAQ,EAAE,CAAC;QAC1C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAClD,OAAO;QACX,CAAC;QAED,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBACjC;oBACI,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE,yBAAyB;oBAClC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBACrF,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,iCAAiC;iBAC/E;aACJ,CAAC,CAAC;YACH,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACnD,OAAO;QACX,CAAC;IACL,CAAC;IAED,IAAI,SAAS,GAAG,OAAO,EAAE,GAAG,IAAI,KAAK,CAAC;IAEtC,uBAAuB;IACvB,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBACjC;oBACI,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,oCAAoC,SAAS,GAAG;oBACzD,OAAO,EAAE,KAAK;iBACjB;aACJ,CAAC,CAAC;YAEH,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACnD,OAAO;QACX,CAAC;IACL,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACjD,OAAO;IACX,CAAC;IAED,mBAAmB;IACnB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QAC/B,sBAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,IAAI,wBAAwB,CAAC,CAAC,CAAC;IACtE,CAAC;AACL,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Disable command - disables a tool
3
+ */
4
+ export declare function disableCommand(toolName: string): void;
5
+ //# sourceMappingURL=disable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disable.d.ts","sourceRoot":"","sources":["../../src/commands/disable.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAcrD"}