aura-code 0.3.0 → 0.3.1
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/README.md +2 -2
- package/dist/agent/loop.js +6 -0
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/system-prompt.js +9 -0
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/cli/index.js +132 -24
- package/dist/cli/index.js.map +1 -1
- package/dist/config/defaults.js +1 -1
- package/dist/providers/factory.js +12 -0
- package/dist/providers/factory.js.map +1 -1
- package/dist/providers/google.js +21 -8
- package/dist/providers/google.js.map +1 -1
- package/dist/ruby/model-selector.d.ts +20 -0
- package/dist/ruby/model-selector.js +114 -0
- package/dist/ruby/model-selector.js.map +1 -0
- package/dist/ruby/stats.d.ts +6 -0
- package/dist/ruby/stats.js +103 -0
- package/dist/ruby/stats.js.map +1 -0
- package/dist/setup/provider-registry.d.ts +32 -0
- package/dist/setup/provider-registry.js +159 -0
- package/dist/setup/provider-registry.js.map +1 -0
- package/dist/setup/provider-test.d.ts +15 -0
- package/dist/setup/provider-test.js +195 -0
- package/dist/setup/provider-test.js.map +1 -0
- package/dist/setup/provider-wizard.d.ts +29 -0
- package/dist/setup/provider-wizard.js +363 -0
- package/dist/setup/provider-wizard.js.map +1 -0
- package/dist/tools/index.js +3 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/shadow-shield.d.ts +11 -0
- package/dist/tools/shadow-shield.js +538 -0
- package/dist/tools/shadow-shield.js.map +1 -0
- package/dist/util/errors.js +9 -1
- package/dist/util/errors.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider Wizard — interactive 4-step flow to configure LLM provider,
|
|
3
|
+
* model, API key, and test the connection.
|
|
4
|
+
*
|
|
5
|
+
* Steps:
|
|
6
|
+
* 1. Select provider
|
|
7
|
+
* 2. Select model (or auto-detect for Ollama)
|
|
8
|
+
* 3. API key (detect existing, keep/replace, or enter new)
|
|
9
|
+
* 4. Test connection and save to config
|
|
10
|
+
*
|
|
11
|
+
* Saves config to ~/.config/aura-code/config.json (via global-config).
|
|
12
|
+
*/
|
|
13
|
+
import * as readline from 'readline';
|
|
14
|
+
export interface ProviderConfig {
|
|
15
|
+
provider: string;
|
|
16
|
+
model: string;
|
|
17
|
+
baseUrl: string;
|
|
18
|
+
apiKey?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Run the full 4-step provider wizard.
|
|
22
|
+
*
|
|
23
|
+
* Returns the chosen config on success, or null if the user cancelled.
|
|
24
|
+
*/
|
|
25
|
+
export declare function runProviderWizard(existingRl?: readline.Interface): Promise<ProviderConfig | null>;
|
|
26
|
+
/**
|
|
27
|
+
* Load saved provider config from the config directory.
|
|
28
|
+
*/
|
|
29
|
+
export declare function loadProviderConfig(): ProviderConfig | null;
|
|
@@ -0,0 +1,363 @@
|
|
|
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.runProviderWizard = runProviderWizard;
|
|
40
|
+
exports.loadProviderConfig = loadProviderConfig;
|
|
41
|
+
/**
|
|
42
|
+
* Provider Wizard — interactive 4-step flow to configure LLM provider,
|
|
43
|
+
* model, API key, and test the connection.
|
|
44
|
+
*
|
|
45
|
+
* Steps:
|
|
46
|
+
* 1. Select provider
|
|
47
|
+
* 2. Select model (or auto-detect for Ollama)
|
|
48
|
+
* 3. API key (detect existing, keep/replace, or enter new)
|
|
49
|
+
* 4. Test connection and save to config
|
|
50
|
+
*
|
|
51
|
+
* Saves config to ~/.config/aura-code/config.json (via global-config).
|
|
52
|
+
*/
|
|
53
|
+
const readline = __importStar(require("readline"));
|
|
54
|
+
const fs = __importStar(require("fs"));
|
|
55
|
+
const path = __importStar(require("path"));
|
|
56
|
+
const os = __importStar(require("os"));
|
|
57
|
+
const http = __importStar(require("http"));
|
|
58
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
59
|
+
const provider_registry_js_1 = require("./provider-registry.js");
|
|
60
|
+
const provider_test_js_1 = require("./provider-test.js");
|
|
61
|
+
const global_config_js_1 = require("./global-config.js");
|
|
62
|
+
/**
|
|
63
|
+
* Run the full 4-step provider wizard.
|
|
64
|
+
*
|
|
65
|
+
* Returns the chosen config on success, or null if the user cancelled.
|
|
66
|
+
*/
|
|
67
|
+
async function runProviderWizard(existingRl) {
|
|
68
|
+
const rl = existingRl || readline.createInterface({
|
|
69
|
+
input: process.stdin,
|
|
70
|
+
output: process.stdout,
|
|
71
|
+
});
|
|
72
|
+
try {
|
|
73
|
+
console.log(chalk_1.default.hex('#cc785c')('\n ✦ Provider Setup Wizard'));
|
|
74
|
+
console.log(chalk_1.default.hex('#8a7768')(' Configure your AI provider in 3 easy steps.\n'));
|
|
75
|
+
// ── Step 1: Select Provider ─────────────────────────────────────────────
|
|
76
|
+
const provider = await selectProvider(rl);
|
|
77
|
+
if (!provider)
|
|
78
|
+
return null;
|
|
79
|
+
// ── Step 2: Select Model ────────────────────────────────────────────────
|
|
80
|
+
const model = await selectModel(rl, provider);
|
|
81
|
+
if (!model)
|
|
82
|
+
return null;
|
|
83
|
+
// ── Step 3: API Key ─────────────────────────────────────────────────────
|
|
84
|
+
const apiKey = await configureApiKey(rl, provider);
|
|
85
|
+
if (apiKey === null && provider.envKey !== null)
|
|
86
|
+
return null; // Cancelled (needed key but got null)
|
|
87
|
+
// Build baseUrl
|
|
88
|
+
let baseUrlPrompt = ' ▸ Enter base URL: ';
|
|
89
|
+
if (provider.baseUrl) {
|
|
90
|
+
baseUrlPrompt = ` ▸ Enter base URL [press Enter to use default ${chalk_1.default.hex('#ede0cc')(provider.baseUrl)}]: `;
|
|
91
|
+
}
|
|
92
|
+
const enteredUrl = await askInput(rl, baseUrlPrompt);
|
|
93
|
+
const baseUrl = enteredUrl.trim() || provider.baseUrl || '';
|
|
94
|
+
if (!baseUrl && provider.name === 'Custom endpoint') {
|
|
95
|
+
console.log(chalk_1.default.hex('#b15439')(' ✗ Base URL is required for custom endpoints.'));
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
const config = {
|
|
99
|
+
provider: provider.name,
|
|
100
|
+
model,
|
|
101
|
+
baseUrl: baseUrl || provider.baseUrl,
|
|
102
|
+
apiKey: apiKey ?? undefined,
|
|
103
|
+
};
|
|
104
|
+
// ── Step 4: Test Connection ─────────────────────────────────────────────
|
|
105
|
+
const saved = await testAndSave(rl, config);
|
|
106
|
+
return saved;
|
|
107
|
+
}
|
|
108
|
+
finally {
|
|
109
|
+
if (!existingRl) {
|
|
110
|
+
rl.close();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
115
|
+
// Step 1: Provider Selection
|
|
116
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
117
|
+
async function selectProvider(rl) {
|
|
118
|
+
console.log(chalk_1.default.hex('#cc785c')(' Step 1: Select your AI provider\n'));
|
|
119
|
+
const items = provider_registry_js_1.PROVIDER_REGISTRY.map((p, i) => {
|
|
120
|
+
const num = chalk_1.default.hex('#8a7768')(String(i + 1).padStart(2) + '.');
|
|
121
|
+
const name = chalk_1.default.hex('#e8d5b7')(p.name);
|
|
122
|
+
return ` ${num} ${name}`;
|
|
123
|
+
});
|
|
124
|
+
for (const item of items) {
|
|
125
|
+
console.log(item);
|
|
126
|
+
}
|
|
127
|
+
console.log();
|
|
128
|
+
const choice = await askInput(rl, ' ▸ Choose a number: ');
|
|
129
|
+
const idx = parseInt(choice, 10) - 1;
|
|
130
|
+
if (idx < 0 || idx >= provider_registry_js_1.PROVIDER_REGISTRY.length || !Number.isFinite(idx)) {
|
|
131
|
+
console.log(chalk_1.default.hex('#b15439')(' ✗ Invalid choice.'));
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
return provider_registry_js_1.PROVIDER_REGISTRY[idx];
|
|
135
|
+
}
|
|
136
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
137
|
+
// Step 2: Model Selection
|
|
138
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
139
|
+
async function selectModel(rl, provider) {
|
|
140
|
+
// Custom endpoint — user types model ID
|
|
141
|
+
if (provider.name === 'Custom endpoint') {
|
|
142
|
+
console.log(chalk_1.default.hex('#cc785c')('\n Step 2: Enter model ID\n'));
|
|
143
|
+
const modelId = await askInput(rl, ' ▸ Model ID: ');
|
|
144
|
+
if (!modelId) {
|
|
145
|
+
console.log(chalk_1.default.hex('#b15439')(' ✗ Model ID is required.'));
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
return modelId;
|
|
149
|
+
}
|
|
150
|
+
// Ollama — auto-detect from running instance
|
|
151
|
+
if (provider.name === 'Ollama (local, free)') {
|
|
152
|
+
console.log(chalk_1.default.hex('#cc785c')('\n Step 2: Select model'));
|
|
153
|
+
console.log(chalk_1.default.hex('#8a7768')(' Detecting models from Ollama...\n'));
|
|
154
|
+
const ollamaModels = await detectOllamaModels();
|
|
155
|
+
if (ollamaModels.length === 0) {
|
|
156
|
+
console.log(chalk_1.default.hex('#b15439')(' Ollama doesn\'t seem to be running, or has no models.'));
|
|
157
|
+
console.log(chalk_1.default.hex('#8a7768')(' Start it first: ollama serve'));
|
|
158
|
+
console.log(chalk_1.default.hex('#8a7768')(' Pull a model: ollama pull llama3.2\n'));
|
|
159
|
+
const manual = await askInput(rl, ' ▸ Enter model name manually (or press Enter to cancel): ');
|
|
160
|
+
return manual || null;
|
|
161
|
+
}
|
|
162
|
+
for (let i = 0; i < ollamaModels.length; i++) {
|
|
163
|
+
const num = chalk_1.default.hex('#8a7768')(String(i + 1).padStart(2) + '.');
|
|
164
|
+
const name = chalk_1.default.hex('#e8d5b7')(ollamaModels[i]);
|
|
165
|
+
console.log(` ${num} ${name}`);
|
|
166
|
+
}
|
|
167
|
+
console.log();
|
|
168
|
+
const choice = await askInput(rl, ' ▸ Choose a number: ');
|
|
169
|
+
const idx = parseInt(choice, 10) - 1;
|
|
170
|
+
if (idx < 0 || idx >= ollamaModels.length || !Number.isFinite(idx)) {
|
|
171
|
+
console.log(chalk_1.default.hex('#b15439')(' ✗ Invalid choice.'));
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
174
|
+
return ollamaModels[idx];
|
|
175
|
+
}
|
|
176
|
+
// Standard provider — show preset model list
|
|
177
|
+
console.log(chalk_1.default.hex('#cc785c')(`\n Step 2: Select model for ${provider.name}\n`));
|
|
178
|
+
for (let i = 0; i < provider.models.length; i++) {
|
|
179
|
+
const m = provider.models[i];
|
|
180
|
+
const num = chalk_1.default.hex('#8a7768')(String(i + 1).padStart(2) + '.');
|
|
181
|
+
const label = chalk_1.default.hex('#e8d5b7')(m.label);
|
|
182
|
+
const speed = chalk_1.default.hex('#5a4a3a')(` (${m.speed})`);
|
|
183
|
+
console.log(` ${num} ${label}${speed}`);
|
|
184
|
+
}
|
|
185
|
+
console.log();
|
|
186
|
+
const choice = await askInput(rl, ' ▸ Choose a number: ');
|
|
187
|
+
const idx = parseInt(choice, 10) - 1;
|
|
188
|
+
if (idx < 0 || idx >= provider.models.length || !Number.isFinite(idx)) {
|
|
189
|
+
console.log(chalk_1.default.hex('#b15439')(' ✗ Invalid choice.'));
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
return provider.models[idx].id;
|
|
193
|
+
}
|
|
194
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
195
|
+
// Step 3: API Key
|
|
196
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
197
|
+
/**
|
|
198
|
+
* Returns the API key string, empty string for local providers, or null if cancelled.
|
|
199
|
+
*/
|
|
200
|
+
async function configureApiKey(rl, provider) {
|
|
201
|
+
// No key needed for Ollama / local
|
|
202
|
+
if (!provider.envKey) {
|
|
203
|
+
return '';
|
|
204
|
+
}
|
|
205
|
+
console.log(chalk_1.default.hex('#cc785c')('\n Step 3: API Key\n'));
|
|
206
|
+
const existingKey = (0, provider_registry_js_1.detectExistingKey)(provider);
|
|
207
|
+
if (existingKey) {
|
|
208
|
+
// Key found — offer keep/replace
|
|
209
|
+
console.log(chalk_1.default.hex('#8a7768')(` API key found: ${chalk_1.default.hex('#5a9e6e')((0, provider_registry_js_1.maskApiKey)(existingKey))}`));
|
|
210
|
+
console.log(chalk_1.default.hex('#8a7768')(` Source: environment (${provider.envKey})\n`));
|
|
211
|
+
console.log(chalk_1.default.hex('#8a7768')(' 1. Keep this key'));
|
|
212
|
+
console.log(chalk_1.default.hex('#8a7768')(' 2. Replace with new key\n'));
|
|
213
|
+
const choice = await askInput(rl, ' ▸ Choose (1 or 2): ');
|
|
214
|
+
if (choice === '2') {
|
|
215
|
+
const newKey = await askInput(rl, ' ▸ Enter new API key: ');
|
|
216
|
+
if (!newKey) {
|
|
217
|
+
console.log(chalk_1.default.hex('#b15439')(' ✗ No key provided.'));
|
|
218
|
+
return null;
|
|
219
|
+
}
|
|
220
|
+
return newKey;
|
|
221
|
+
}
|
|
222
|
+
return existingKey;
|
|
223
|
+
}
|
|
224
|
+
// No key found — prompt for one
|
|
225
|
+
console.log(chalk_1.default.hex('#8a7768')(` No API key found for ${provider.name}.`));
|
|
226
|
+
if (provider.signupUrl) {
|
|
227
|
+
console.log(chalk_1.default.hex('#8a7768')(` Get one at: ${chalk_1.default.hex('#cc785c')(provider.signupUrl)}\n`));
|
|
228
|
+
}
|
|
229
|
+
const newKey = await askInput(rl, ' ▸ Enter API key: ');
|
|
230
|
+
if (!newKey) {
|
|
231
|
+
console.log(chalk_1.default.hex('#b15439')(' ✗ No key provided.'));
|
|
232
|
+
return null;
|
|
233
|
+
}
|
|
234
|
+
return newKey;
|
|
235
|
+
}
|
|
236
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
237
|
+
// Step 4: Test Connection & Save
|
|
238
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
239
|
+
async function testAndSave(rl, config) {
|
|
240
|
+
console.log(chalk_1.default.hex('#cc785c')(`\n Testing connection to ${config.provider}...`));
|
|
241
|
+
const result = await (0, provider_test_js_1.testProviderConnection)({
|
|
242
|
+
provider: config.provider,
|
|
243
|
+
model: config.model,
|
|
244
|
+
baseUrl: config.baseUrl,
|
|
245
|
+
apiKey: config.apiKey,
|
|
246
|
+
});
|
|
247
|
+
if (result.ok) {
|
|
248
|
+
console.log(chalk_1.default.hex('#5a9e6e')(' ✓ Connected! Model responds.'));
|
|
249
|
+
saveProviderConfig(config);
|
|
250
|
+
console.log(chalk_1.default.hex('#8a7768')(`\n Saved to ${(0, global_config_js_1.globalConfigPath)()}\n`));
|
|
251
|
+
return config;
|
|
252
|
+
}
|
|
253
|
+
// Connection failed — offer retry/skip/cancel
|
|
254
|
+
console.log(chalk_1.default.hex('#b15439')(` ✗ Connection failed: ${result.error}\n`));
|
|
255
|
+
console.log(chalk_1.default.hex('#8a7768')(' 1. Re-enter API key'));
|
|
256
|
+
console.log(chalk_1.default.hex('#8a7768')(' 2. Skip test and save anyway'));
|
|
257
|
+
console.log(chalk_1.default.hex('#8a7768')(' 3. Cancel\n'));
|
|
258
|
+
const choice = await askInput(rl, ' ▸ Choose (1, 2, or 3): ');
|
|
259
|
+
if (choice === '1') {
|
|
260
|
+
const newKey = await askInput(rl, ' ▸ Enter new API key: ');
|
|
261
|
+
if (!newKey)
|
|
262
|
+
return null;
|
|
263
|
+
config.apiKey = newKey;
|
|
264
|
+
return testAndSave(rl, config); // Recursive retry
|
|
265
|
+
}
|
|
266
|
+
if (choice === '2') {
|
|
267
|
+
saveProviderConfig(config);
|
|
268
|
+
console.log(chalk_1.default.hex('#8a7768')(`\n Saved to ${(0, global_config_js_1.globalConfigPath)()} (connection not verified)\n`));
|
|
269
|
+
return config;
|
|
270
|
+
}
|
|
271
|
+
return null; // Cancel
|
|
272
|
+
}
|
|
273
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
274
|
+
// Helpers
|
|
275
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
276
|
+
function askInput(rl, prompt) {
|
|
277
|
+
return new Promise(resolve => {
|
|
278
|
+
rl.question(chalk_1.default.hex('#cc785c')(prompt), answer => {
|
|
279
|
+
resolve((answer ?? '').trim());
|
|
280
|
+
});
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Save the provider config to ~/.config/aura-code/config.json and export
|
|
285
|
+
* the API key env var for the current process.
|
|
286
|
+
*/
|
|
287
|
+
function saveProviderConfig(config) {
|
|
288
|
+
// Find the matching provider entry to get apiKeyEnv
|
|
289
|
+
const entry = provider_registry_js_1.PROVIDER_REGISTRY.find(p => p.name === config.provider);
|
|
290
|
+
const apiKeyEnv = entry?.envKey ?? '';
|
|
291
|
+
// Export API key as env var for the current process
|
|
292
|
+
if (config.apiKey && apiKeyEnv) {
|
|
293
|
+
process.env[apiKeyEnv] = config.apiKey;
|
|
294
|
+
process.env[apiKeyEnv.toLowerCase()] = config.apiKey;
|
|
295
|
+
}
|
|
296
|
+
// Save to global config
|
|
297
|
+
(0, global_config_js_1.saveGlobalConfig)({
|
|
298
|
+
provider: config.provider,
|
|
299
|
+
apiKeyEnv,
|
|
300
|
+
defaultModel: config.model,
|
|
301
|
+
baseUrl: config.baseUrl || undefined,
|
|
302
|
+
});
|
|
303
|
+
// Also save the full provider config (including apiKey) to a separate
|
|
304
|
+
// section in the config directory so the factory can read it.
|
|
305
|
+
const configDir = process.env.XDG_CONFIG_HOME
|
|
306
|
+
? path.join(process.env.XDG_CONFIG_HOME, 'aura-code')
|
|
307
|
+
: path.join(os.homedir(), '.config', 'aura-code');
|
|
308
|
+
fs.mkdirSync(configDir, { recursive: true });
|
|
309
|
+
const providerCfg = {
|
|
310
|
+
provider: config.provider,
|
|
311
|
+
model: config.model,
|
|
312
|
+
baseUrl: config.baseUrl,
|
|
313
|
+
...(config.apiKey ? { apiKey: config.apiKey } : {}),
|
|
314
|
+
};
|
|
315
|
+
fs.writeFileSync(path.join(configDir, 'provider.json'), JSON.stringify(providerCfg, null, 2) + '\n', { mode: 0o600 });
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Load saved provider config from the config directory.
|
|
319
|
+
*/
|
|
320
|
+
function loadProviderConfig() {
|
|
321
|
+
try {
|
|
322
|
+
const configDir = process.env.XDG_CONFIG_HOME
|
|
323
|
+
? path.join(process.env.XDG_CONFIG_HOME, 'aura-code')
|
|
324
|
+
: path.join(os.homedir(), '.config', 'aura-code');
|
|
325
|
+
const raw = fs.readFileSync(path.join(configDir, 'provider.json'), 'utf8');
|
|
326
|
+
const parsed = JSON.parse(raw);
|
|
327
|
+
if (!parsed.provider || !parsed.model)
|
|
328
|
+
return null;
|
|
329
|
+
return parsed;
|
|
330
|
+
}
|
|
331
|
+
catch {
|
|
332
|
+
return null;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Auto-detect models from a running Ollama instance.
|
|
337
|
+
*/
|
|
338
|
+
async function detectOllamaModels() {
|
|
339
|
+
return new Promise(resolve => {
|
|
340
|
+
const req = http.get('http://localhost:11434/api/tags', { timeout: 5_000 }, res => {
|
|
341
|
+
if (res.statusCode !== 200) {
|
|
342
|
+
resolve([]);
|
|
343
|
+
res.resume();
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
let data = '';
|
|
347
|
+
res.on('data', chunk => { data += chunk; });
|
|
348
|
+
res.on('end', () => {
|
|
349
|
+
try {
|
|
350
|
+
const parsed = JSON.parse(data);
|
|
351
|
+
const models = (parsed.models ?? []).map((m) => m.name);
|
|
352
|
+
resolve(models);
|
|
353
|
+
}
|
|
354
|
+
catch {
|
|
355
|
+
resolve([]);
|
|
356
|
+
}
|
|
357
|
+
});
|
|
358
|
+
});
|
|
359
|
+
req.on('error', () => resolve([]));
|
|
360
|
+
req.on('timeout', () => { req.destroy(); resolve([]); });
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
//# sourceMappingURL=provider-wizard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-wizard.js","sourceRoot":"","sources":["../../src/setup/provider-wizard.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.js
CHANGED
|
@@ -27,6 +27,7 @@ const cron_js_1 = require("./cron.js");
|
|
|
27
27
|
const audio_transcribe_js_1 = require("./audio-transcribe.js");
|
|
28
28
|
const youtube_transcript_js_1 = require("./youtube-transcript.js");
|
|
29
29
|
const mcp_js_1 = require("./mcp.js");
|
|
30
|
+
const shadow_shield_js_1 = require("./shadow-shield.js");
|
|
30
31
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
31
32
|
// Tool schemas (what the model sees)
|
|
32
33
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
@@ -158,6 +159,7 @@ exports.TOOL_DEFINITIONS = [
|
|
|
158
159
|
audio_transcribe_js_1.AUDIO_TRANSCRIBE_DEFINITION,
|
|
159
160
|
youtube_transcript_js_1.YOUTUBE_TRANSCRIPT_DEFINITION,
|
|
160
161
|
mcp_js_1.MCP_DEFINITION,
|
|
162
|
+
shadow_shield_js_1.SHADOW_SHIELD_DEFINITION,
|
|
161
163
|
];
|
|
162
164
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
163
165
|
// Tool executor — dispatches to the right implementation
|
|
@@ -191,6 +193,7 @@ async function executeTool(name, input, cwd) {
|
|
|
191
193
|
case 'audio_transcribe': return (0, audio_transcribe_js_1.audioTranscribe)(input);
|
|
192
194
|
case 'youtube_transcript': return (0, youtube_transcript_js_1.youtubeTranscript)(input);
|
|
193
195
|
case 'mcp': return (0, mcp_js_1.mcpTool)(input);
|
|
196
|
+
case 'shadow_shield': return (0, shadow_shield_js_1.shadowShield)(input);
|
|
194
197
|
default: return `Error: Unknown tool '${name}'`;
|
|
195
198
|
}
|
|
196
199
|
}
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ToolDefinition } from '../providers/types.js';
|
|
2
|
+
export interface ShadowShieldInput {
|
|
3
|
+
action: 'start' | 'stop' | 'status' | 'snapshot' | 'scan';
|
|
4
|
+
interval_minutes?: number;
|
|
5
|
+
video_device?: string;
|
|
6
|
+
audio_device?: string;
|
|
7
|
+
sensitivity?: number;
|
|
8
|
+
telegram_chat_id?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const SHADOW_SHIELD_DEFINITION: ToolDefinition;
|
|
11
|
+
export declare function shadowShield(input: ShadowShieldInput): Promise<string>;
|