aura-code 0.3.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.
- package/LICENSE +21 -0
- package/README.md +137 -0
- package/dist/agent/context.d.ts +13 -0
- package/dist/agent/context.js +183 -0
- package/dist/agent/context.js.map +1 -0
- package/dist/agent/loop.d.ts +60 -0
- package/dist/agent/loop.js +228 -0
- package/dist/agent/loop.js.map +1 -0
- package/dist/agent/session-store.d.ts +30 -0
- package/dist/agent/session-store.js +178 -0
- package/dist/agent/session-store.js.map +1 -0
- package/dist/agent/spawner.d.ts +57 -0
- package/dist/agent/spawner.js +112 -0
- package/dist/agent/spawner.js.map +1 -0
- package/dist/agent/system-prompt.d.ts +3 -0
- package/dist/agent/system-prompt.js +100 -0
- package/dist/agent/system-prompt.js.map +1 -0
- package/dist/architect/engine.d.ts +47 -0
- package/dist/architect/engine.js +217 -0
- package/dist/architect/engine.js.map +1 -0
- package/dist/architect/types.d.ts +61 -0
- package/dist/architect/types.js +6 -0
- package/dist/architect/types.js.map +1 -0
- package/dist/cli/diamond.d.ts +1 -0
- package/dist/cli/diamond.js +23 -0
- package/dist/cli/diamond.js.map +1 -0
- package/dist/cli/display.d.ts +44 -0
- package/dist/cli/display.js +234 -0
- package/dist/cli/display.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +1734 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/config/defaults.d.ts +46 -0
- package/dist/config/defaults.js +106 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/project-config.d.ts +90 -0
- package/dist/config/project-config.js +141 -0
- package/dist/config/project-config.js.map +1 -0
- package/dist/harness/proposer.d.ts +26 -0
- package/dist/harness/proposer.js +204 -0
- package/dist/harness/proposer.js.map +1 -0
- package/dist/harness/weakness-miner.d.ts +28 -0
- package/dist/harness/weakness-miner.js +359 -0
- package/dist/harness/weakness-miner.js.map +1 -0
- package/dist/integrations/harnesses.d.ts +23 -0
- package/dist/integrations/harnesses.js +161 -0
- package/dist/integrations/harnesses.js.map +1 -0
- package/dist/orchestration/competence.d.ts +53 -0
- package/dist/orchestration/competence.js +181 -0
- package/dist/orchestration/competence.js.map +1 -0
- package/dist/orchestration/executor.d.ts +42 -0
- package/dist/orchestration/executor.js +206 -0
- package/dist/orchestration/executor.js.map +1 -0
- package/dist/orchestration/index.d.ts +20 -0
- package/dist/orchestration/index.js +39 -0
- package/dist/orchestration/index.js.map +1 -0
- package/dist/orchestration/orchestrator-prompts.d.ts +11 -0
- package/dist/orchestration/orchestrator-prompts.js +153 -0
- package/dist/orchestration/orchestrator-prompts.js.map +1 -0
- package/dist/orchestration/orchestrator.d.ts +27 -0
- package/dist/orchestration/orchestrator.js +169 -0
- package/dist/orchestration/orchestrator.js.map +1 -0
- package/dist/orchestration/plan-store.d.ts +53 -0
- package/dist/orchestration/plan-store.js +176 -0
- package/dist/orchestration/plan-store.js.map +1 -0
- package/dist/orchestration/router-prompts.d.ts +6 -0
- package/dist/orchestration/router-prompts.js +55 -0
- package/dist/orchestration/router-prompts.js.map +1 -0
- package/dist/orchestration/router.d.ts +23 -0
- package/dist/orchestration/router.js +70 -0
- package/dist/orchestration/router.js.map +1 -0
- package/dist/orchestration/ruby-detect.d.ts +6 -0
- package/dist/orchestration/ruby-detect.js +130 -0
- package/dist/orchestration/ruby-detect.js.map +1 -0
- package/dist/orchestration/ruby-types.d.ts +44 -0
- package/dist/orchestration/ruby-types.js +6 -0
- package/dist/orchestration/ruby-types.js.map +1 -0
- package/dist/orchestration/specialist-prompts.d.ts +19 -0
- package/dist/orchestration/specialist-prompts.js +143 -0
- package/dist/orchestration/specialist-prompts.js.map +1 -0
- package/dist/orchestration/specialists.d.ts +66 -0
- package/dist/orchestration/specialists.js +175 -0
- package/dist/orchestration/specialists.js.map +1 -0
- package/dist/orchestration/types.d.ts +82 -0
- package/dist/orchestration/types.js +6 -0
- package/dist/orchestration/types.js.map +1 -0
- package/dist/perception/extractor.d.ts +7 -0
- package/dist/perception/extractor.js +521 -0
- package/dist/perception/extractor.js.map +1 -0
- package/dist/perception/graph-store.d.ts +25 -0
- package/dist/perception/graph-store.js +117 -0
- package/dist/perception/graph-store.js.map +1 -0
- package/dist/perception/index.d.ts +4 -0
- package/dist/perception/index.js +18 -0
- package/dist/perception/index.js.map +1 -0
- package/dist/perception/queries.d.ts +29 -0
- package/dist/perception/queries.js +354 -0
- package/dist/perception/queries.js.map +1 -0
- package/dist/perception/types.d.ts +103 -0
- package/dist/perception/types.js +6 -0
- package/dist/perception/types.js.map +1 -0
- package/dist/providers/anthropic.d.ts +11 -0
- package/dist/providers/anthropic.js +172 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/factory.d.ts +58 -0
- package/dist/providers/factory.js +354 -0
- package/dist/providers/factory.js.map +1 -0
- package/dist/providers/fallback.d.ts +24 -0
- package/dist/providers/fallback.js +72 -0
- package/dist/providers/fallback.js.map +1 -0
- package/dist/providers/google.d.ts +11 -0
- package/dist/providers/google.js +129 -0
- package/dist/providers/google.js.map +1 -0
- package/dist/providers/openai-compatible.d.ts +24 -0
- package/dist/providers/openai-compatible.js +216 -0
- package/dist/providers/openai-compatible.js.map +1 -0
- package/dist/providers/resilient-factory.d.ts +24 -0
- package/dist/providers/resilient-factory.js +57 -0
- package/dist/providers/resilient-factory.js.map +1 -0
- package/dist/providers/resilient.d.ts +63 -0
- package/dist/providers/resilient.js +145 -0
- package/dist/providers/resilient.js.map +1 -0
- package/dist/providers/types.d.ts +84 -0
- package/dist/providers/types.js +6 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/ruby/alternator.d.ts +40 -0
- package/dist/ruby/alternator.js +233 -0
- package/dist/ruby/alternator.js.map +1 -0
- package/dist/ruby/competence.d.ts +34 -0
- package/dist/ruby/competence.js +264 -0
- package/dist/ruby/competence.js.map +1 -0
- package/dist/ruby/episode-capture.d.ts +56 -0
- package/dist/ruby/episode-capture.js +193 -0
- package/dist/ruby/episode-capture.js.map +1 -0
- package/dist/ruby/fine-tune.d.ts +16 -0
- package/dist/ruby/fine-tune.js +253 -0
- package/dist/ruby/fine-tune.js.map +1 -0
- package/dist/ruby/index.d.ts +10 -0
- package/dist/ruby/index.js +26 -0
- package/dist/ruby/index.js.map +1 -0
- package/dist/ruby/ruby-model.d.ts +36 -0
- package/dist/ruby/ruby-model.js +81 -0
- package/dist/ruby/ruby-model.js.map +1 -0
- package/dist/ruby/training-data.d.ts +11 -0
- package/dist/ruby/training-data.js +107 -0
- package/dist/ruby/training-data.js.map +1 -0
- package/dist/ruby/types.d.ts +136 -0
- package/dist/ruby/types.js +20 -0
- package/dist/ruby/types.js.map +1 -0
- package/dist/safety/permissions.d.ts +32 -0
- package/dist/safety/permissions.js +304 -0
- package/dist/safety/permissions.js.map +1 -0
- package/dist/server/index.d.ts +9 -0
- package/dist/server/index.js +342 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/session.d.ts +22 -0
- package/dist/server/session.js +16 -0
- package/dist/server/session.js.map +1 -0
- package/dist/setup/first-run.d.ts +41 -0
- package/dist/setup/first-run.js +386 -0
- package/dist/setup/first-run.js.map +1 -0
- package/dist/setup/global-config.d.ts +19 -0
- package/dist/setup/global-config.js +97 -0
- package/dist/setup/global-config.js.map +1 -0
- package/dist/tools/audio-transcribe.d.ts +8 -0
- package/dist/tools/audio-transcribe.js +156 -0
- package/dist/tools/audio-transcribe.js.map +1 -0
- package/dist/tools/browser.d.ts +15 -0
- package/dist/tools/browser.js +241 -0
- package/dist/tools/browser.js.map +1 -0
- package/dist/tools/calendar.d.ts +12 -0
- package/dist/tools/calendar.js +196 -0
- package/dist/tools/calendar.js.map +1 -0
- package/dist/tools/clipboard.d.ts +7 -0
- package/dist/tools/clipboard.js +90 -0
- package/dist/tools/clipboard.js.map +1 -0
- package/dist/tools/cron.d.ts +10 -0
- package/dist/tools/cron.js +167 -0
- package/dist/tools/cron.js.map +1 -0
- package/dist/tools/edit-file.d.ts +6 -0
- package/dist/tools/edit-file.js +98 -0
- package/dist/tools/edit-file.js.map +1 -0
- package/dist/tools/email.d.ts +11 -0
- package/dist/tools/email.js +153 -0
- package/dist/tools/email.js.map +1 -0
- package/dist/tools/git.d.ts +1 -0
- package/dist/tools/git.js +7 -0
- package/dist/tools/git.js.map +1 -0
- package/dist/tools/http-request.d.ts +12 -0
- package/dist/tools/http-request.js +91 -0
- package/dist/tools/http-request.js.map +1 -0
- package/dist/tools/image-read.d.ts +7 -0
- package/dist/tools/image-read.js +125 -0
- package/dist/tools/image-read.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.js +201 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/list-dir.d.ts +1 -0
- package/dist/tools/list-dir.js +6 -0
- package/dist/tools/list-dir.js.map +1 -0
- package/dist/tools/mcp.d.ts +11 -0
- package/dist/tools/mcp.js +356 -0
- package/dist/tools/mcp.js.map +1 -0
- package/dist/tools/memory.d.ts +9 -0
- package/dist/tools/memory.js +124 -0
- package/dist/tools/memory.js.map +1 -0
- package/dist/tools/notify.d.ts +9 -0
- package/dist/tools/notify.js +40 -0
- package/dist/tools/notify.js.map +1 -0
- package/dist/tools/read-file.d.ts +6 -0
- package/dist/tools/read-file.js +76 -0
- package/dist/tools/read-file.js.map +1 -0
- package/dist/tools/run-shell.d.ts +1 -0
- package/dist/tools/run-shell.js +6 -0
- package/dist/tools/run-shell.js.map +1 -0
- package/dist/tools/run-tests.d.ts +1 -0
- package/dist/tools/run-tests.js +6 -0
- package/dist/tools/run-tests.js.map +1 -0
- package/dist/tools/search-code.d.ts +1 -0
- package/dist/tools/search-code.js +6 -0
- package/dist/tools/search-code.js.map +1 -0
- package/dist/tools/telegram-bot.d.ts +2 -0
- package/dist/tools/telegram-bot.js +693 -0
- package/dist/tools/telegram-bot.js.map +1 -0
- package/dist/tools/telegram-safety.d.ts +52 -0
- package/dist/tools/telegram-safety.js +189 -0
- package/dist/tools/telegram-safety.js.map +1 -0
- package/dist/tools/telegram.d.ts +16 -0
- package/dist/tools/telegram.js +227 -0
- package/dist/tools/telegram.js.map +1 -0
- package/dist/tools/tools.d.ts +48 -0
- package/dist/tools/tools.js +328 -0
- package/dist/tools/tools.js.map +1 -0
- package/dist/tools/web-fetch.d.ts +11 -0
- package/dist/tools/web-fetch.js +119 -0
- package/dist/tools/web-fetch.js.map +1 -0
- package/dist/tools/web-search.d.ts +8 -0
- package/dist/tools/web-search.js +81 -0
- package/dist/tools/web-search.js.map +1 -0
- package/dist/tools/whatsapp.d.ts +10 -0
- package/dist/tools/whatsapp.js +222 -0
- package/dist/tools/whatsapp.js.map +1 -0
- package/dist/tools/write-file.d.ts +1 -0
- package/dist/tools/write-file.js +6 -0
- package/dist/tools/write-file.js.map +1 -0
- package/dist/tools/youtube-transcript.d.ts +9 -0
- package/dist/tools/youtube-transcript.js +200 -0
- package/dist/tools/youtube-transcript.js.map +1 -0
- package/dist/util/circuit-breaker.d.ts +44 -0
- package/dist/util/circuit-breaker.js +78 -0
- package/dist/util/circuit-breaker.js.map +1 -0
- package/dist/util/env.d.ts +18 -0
- package/dist/util/env.js +39 -0
- package/dist/util/env.js.map +1 -0
- package/dist/util/errors.d.ts +42 -0
- package/dist/util/errors.js +121 -0
- package/dist/util/errors.js.map +1 -0
- package/dist/util/rate-limiter.d.ts +71 -0
- package/dist/util/rate-limiter.js +141 -0
- package/dist/util/rate-limiter.js.map +1 -0
- package/dist/util/retry.d.ts +30 -0
- package/dist/util/retry.js +57 -0
- package/dist/util/retry.js.map +1 -0
- package/dist/util/sanitize.d.ts +16 -0
- package/dist/util/sanitize.js +255 -0
- package/dist/util/sanitize.js.map +1 -0
- package/dist/verify/checks.d.ts +21 -0
- package/dist/verify/checks.js +311 -0
- package/dist/verify/checks.js.map +1 -0
- package/dist/verify/index.d.ts +33 -0
- package/dist/verify/index.js +127 -0
- package/dist/verify/index.js.map +1 -0
- package/dist/verify/types.d.ts +20 -0
- package/dist/verify/types.js +3 -0
- package/dist/verify/types.js.map +1 -0
- package/dist/versioncheck.d.ts +22 -0
- package/dist/versioncheck.js +203 -0
- package/dist/versioncheck.js.map +1 -0
- package/dist/viz/index.d.ts +2 -0
- package/dist/viz/index.js +733 -0
- package/dist/viz/index.js.map +1 -0
- package/dist/workflows/engine.d.ts +46 -0
- package/dist/workflows/engine.js +320 -0
- package/dist/workflows/engine.js.map +1 -0
- package/dist/workflows/types.d.ts +92 -0
- package/dist/workflows/types.js +6 -0
- package/dist/workflows/types.js.map +1 -0
- package/package.json +86 -0
|
@@ -0,0 +1,386 @@
|
|
|
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.PROVIDER_CHOICES = void 0;
|
|
40
|
+
exports.hasGlobalConfig = hasGlobalConfig;
|
|
41
|
+
exports.hasAnyEnvKey = hasAnyEnvKey;
|
|
42
|
+
exports.needsWizard = needsWizard;
|
|
43
|
+
exports.detectProviderFromEnv = detectProviderFromEnv;
|
|
44
|
+
exports.hasAnyProvider = hasAnyProvider;
|
|
45
|
+
exports.runFirstRunWizard = runFirstRunWizard;
|
|
46
|
+
/**
|
|
47
|
+
* First-run setup wizard.
|
|
48
|
+
*
|
|
49
|
+
* Triggers when:
|
|
50
|
+
* 1. No provider-specific env var is set (any of the known *_API_KEY vars)
|
|
51
|
+
* 2. AND no --api-key was passed on the CLI
|
|
52
|
+
* 3. AND no global config exists at ~/.config/aura-code/config.json
|
|
53
|
+
*
|
|
54
|
+
* Walks the user through picking a provider, entering an API key, and picking
|
|
55
|
+
* a default model. Saves to the global config and exports the relevant env
|
|
56
|
+
* var for the current process.
|
|
57
|
+
*/
|
|
58
|
+
const readline = __importStar(require("readline"));
|
|
59
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
60
|
+
const factory_js_1 = require("../providers/factory.js");
|
|
61
|
+
const env_js_1 = require("../util/env.js");
|
|
62
|
+
const global_config_js_1 = require("./global-config.js");
|
|
63
|
+
exports.PROVIDER_CHOICES = [
|
|
64
|
+
{
|
|
65
|
+
id: 'anthropic', name: 'Anthropic Claude',
|
|
66
|
+
apiKeyEnv: 'ANTHROPIC_API_KEY', needsKey: true,
|
|
67
|
+
description: 'Claude Opus, Sonnet, Haiku — strong coding & reasoning',
|
|
68
|
+
models: [
|
|
69
|
+
'claude-opus-4-5-20251001',
|
|
70
|
+
'claude-sonnet-4-5-20251001',
|
|
71
|
+
'claude-haiku-4-5-20251001',
|
|
72
|
+
'claude-3-5-sonnet-20241022',
|
|
73
|
+
'claude-3-5-haiku-20241022',
|
|
74
|
+
'claude-3-opus-20240229',
|
|
75
|
+
],
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
id: 'openai', name: 'OpenAI',
|
|
79
|
+
apiKeyEnv: 'OPENAI_API_KEY', needsKey: true,
|
|
80
|
+
description: 'GPT-4o, o1, o3 — fast general purpose',
|
|
81
|
+
models: [
|
|
82
|
+
'gpt-4o', 'gpt-4o-mini', 'gpt-4-turbo', 'gpt-3.5-turbo',
|
|
83
|
+
'o1', 'o1-mini', 'o1-preview', 'o3', 'o3-mini', 'o4-mini',
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
id: 'google', name: 'Google Gemini',
|
|
88
|
+
apiKeyEnv: 'GOOGLE_API_KEY', needsKey: true,
|
|
89
|
+
description: 'Gemini 2.5 Pro / Flash — strong at long context',
|
|
90
|
+
models: [
|
|
91
|
+
'gemini-2.5-pro', 'gemini-2.5-flash',
|
|
92
|
+
'gemini-2.0-pro', 'gemini-2.0-flash',
|
|
93
|
+
'gemini-1.5-pro', 'gemini-1.5-flash', 'gemini-1.5-flash-8b',
|
|
94
|
+
],
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
id: 'xiaomi', name: 'Xiaomi MiMo',
|
|
98
|
+
apiKeyEnv: 'XIAOMI_API_KEY', needsKey: true,
|
|
99
|
+
defaultBaseUrl: 'https://token-plan-sgp.xiaomimimo.com/v1',
|
|
100
|
+
description: 'MiMo V2.5 Pro / V2 Flash — fast open-weight model',
|
|
101
|
+
models: ['mimo-v2.5-pro', 'mimo-v2.5', 'mimo-v2-flash'],
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
id: 'xai', name: 'xAI Grok',
|
|
105
|
+
apiKeyEnv: 'XAI_API_KEY', needsKey: true,
|
|
106
|
+
defaultBaseUrl: 'https://api.x.ai/v1',
|
|
107
|
+
description: 'Grok 2 / Grok Beta — witty + real-time web',
|
|
108
|
+
models: ['grok-2', 'grok-2-mini', 'grok-beta', 'grok-vision-beta'],
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
id: 'openrouter', name: 'OpenRouter',
|
|
112
|
+
apiKeyEnv: 'OPENROUTER_API_KEY', needsKey: true,
|
|
113
|
+
defaultBaseUrl: 'https://openrouter.ai/api/v1',
|
|
114
|
+
description: 'OpenRouter — Claude, GPT, Gemini, DeepSeek V4, Llama, Mistral…',
|
|
115
|
+
models: [
|
|
116
|
+
'openrouter/anthropic/claude-3.5-sonnet',
|
|
117
|
+
'openrouter/openai/gpt-4o',
|
|
118
|
+
'openrouter/google/gemini-2.0-flash',
|
|
119
|
+
'openrouter/meta-llama/llama-3.1-70b-instruct',
|
|
120
|
+
'openrouter/meta-llama/llama-3.1-405b-instruct',
|
|
121
|
+
'openrouter/mistralai/mistral-large',
|
|
122
|
+
'openrouter/qwen/qwen-2.5-72b-instruct',
|
|
123
|
+
'openrouter/deepseek/deepseek-v4-flash:free',
|
|
124
|
+
'openrouter/deepseek/deepseek-v4-pro',
|
|
125
|
+
],
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
id: 'ollama', name: 'Ollama (local)',
|
|
129
|
+
apiKeyEnv: '', needsKey: false,
|
|
130
|
+
defaultBaseUrl: 'http://localhost:11434/v1',
|
|
131
|
+
description: 'Local open models via Ollama — no API key needed',
|
|
132
|
+
models: [
|
|
133
|
+
'ollama/llama3.2', 'ollama/llama3.1', 'ollama/qwen2.5-coder',
|
|
134
|
+
'ollama/codellama', 'ollama/mistral', 'ollama/mixtral',
|
|
135
|
+
'ollama/phi3', 'ollama/gemma2', 'ollama/deepseek-coder-v2',
|
|
136
|
+
],
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
id: 'local', name: 'LM Studio (local)',
|
|
140
|
+
apiKeyEnv: '', needsKey: false,
|
|
141
|
+
defaultBaseUrl: 'http://localhost:1234/v1',
|
|
142
|
+
description: 'Any OpenAI-compatible local server (LM Studio, llama.cpp, etc.)',
|
|
143
|
+
models: [
|
|
144
|
+
'local/qwen2.5-coder-32b-instruct',
|
|
145
|
+
'local/llama-3.3-70b-instruct',
|
|
146
|
+
'local/mistral-large',
|
|
147
|
+
],
|
|
148
|
+
},
|
|
149
|
+
];
|
|
150
|
+
/** True iff the user has a saved global config (their default provider). */
|
|
151
|
+
function hasGlobalConfig() {
|
|
152
|
+
return (0, global_config_js_1.loadGlobalConfig)() !== null;
|
|
153
|
+
}
|
|
154
|
+
/** True iff the user has set at least one known provider env var (any case). */
|
|
155
|
+
function hasAnyEnvKey() {
|
|
156
|
+
for (const p of exports.PROVIDER_CHOICES) {
|
|
157
|
+
if (!p.needsKey)
|
|
158
|
+
continue;
|
|
159
|
+
if ((0, env_js_1.getApiKey)(p.apiKeyEnv))
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Pure detection: would we need the wizard?
|
|
166
|
+
*
|
|
167
|
+
* The wizard fires when the user has no MODEL picked. An API key in env
|
|
168
|
+
* does NOT count as "configured" — the user still needs to choose a model.
|
|
169
|
+
* The wizard will detect the env key and pre-select that provider.
|
|
170
|
+
*/
|
|
171
|
+
function needsWizard(opts = {}) {
|
|
172
|
+
if (opts.cliApiKey)
|
|
173
|
+
return false;
|
|
174
|
+
if (opts.cliModel)
|
|
175
|
+
return false;
|
|
176
|
+
if (hasGlobalConfig())
|
|
177
|
+
return false; // has a model saved already
|
|
178
|
+
return true;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Pick a provider automatically when exactly one of the known env vars is set.
|
|
182
|
+
* Returns the provider id (e.g. 'anthropic') or null if 0 / 2+ match.
|
|
183
|
+
* Used by the wizard to pre-select the provider menu option and skip the
|
|
184
|
+
* API-key prompt when the user already has a key in their shell.
|
|
185
|
+
*/
|
|
186
|
+
function detectProviderFromEnv() {
|
|
187
|
+
let found = null;
|
|
188
|
+
for (const p of exports.PROVIDER_CHOICES) {
|
|
189
|
+
if (!p.needsKey)
|
|
190
|
+
continue;
|
|
191
|
+
if ((0, env_js_1.getApiKey)(p.apiKeyEnv)) {
|
|
192
|
+
if (found !== null)
|
|
193
|
+
return null; // multiple — don't auto-pick
|
|
194
|
+
found = p.id;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return found;
|
|
198
|
+
}
|
|
199
|
+
/** Kept for backward compatibility (some callers still use it). */
|
|
200
|
+
function hasAnyProvider() {
|
|
201
|
+
return hasGlobalConfig() || hasAnyEnvKey();
|
|
202
|
+
}
|
|
203
|
+
/** Format a number for menu display, zero-padded. */
|
|
204
|
+
function pad(n, w) { return String(n).padStart(w, ' '); }
|
|
205
|
+
/** Print a numbered menu and read the user's choice (1-based). */
|
|
206
|
+
function askMenu(rl, title, items) {
|
|
207
|
+
return new Promise((resolve) => {
|
|
208
|
+
console.log(chalk_1.default.hex('#cc785c')(`\n ${title}\n`));
|
|
209
|
+
items.forEach((it, i) => {
|
|
210
|
+
const num = chalk_1.default.hex('#8a7768')(pad(i + 1, 2) + '.');
|
|
211
|
+
const label = chalk_1.default.hex('#e8d5b7')(it.label);
|
|
212
|
+
const hint = it.hint ? chalk_1.default.hex('#5a4a3a')(` — ${it.hint}`) : '';
|
|
213
|
+
console.log(` ${num} ${label}${hint}`);
|
|
214
|
+
});
|
|
215
|
+
console.log();
|
|
216
|
+
readLine(rl, chalk_1.default.hex('#cc785c')(' ▸ Choose a number: ')).then((ans) => {
|
|
217
|
+
// If stdin closed (no input available), abort the wizard cleanly.
|
|
218
|
+
if (lineQueueClosed && lineQueue.length === 0) {
|
|
219
|
+
console.log(chalk_1.default.hex('#b15439')(' ✗ No input available — aborting wizard.'));
|
|
220
|
+
resolve(-1);
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
const n = parseInt(ans, 10);
|
|
224
|
+
if (Number.isFinite(n) && n >= 1 && n <= items.length) {
|
|
225
|
+
resolve(n - 1);
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
console.log(chalk_1.default.hex('#b15439')(` ✗ Invalid choice, try again.`));
|
|
229
|
+
resolve(askMenu(rl, title, items));
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
/** Read a single line of input from the user. */
|
|
235
|
+
function ask(rl, prompt) {
|
|
236
|
+
return readLine(rl, chalk_1.default.hex('#cc785c')(prompt));
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* One-shot line reader that works with both TTY and pipe input.
|
|
240
|
+
*
|
|
241
|
+
* Why not `rl.question`? When stdin is a pipe with multiple lines already
|
|
242
|
+
* buffered, `rl.question` only fires its callback once (Node readline
|
|
243
|
+
* behaviour), then the rest of the data is lost. We work around this by
|
|
244
|
+
* reading the entire input upfront into a line queue, then popping one
|
|
245
|
+
* line per call.
|
|
246
|
+
*/
|
|
247
|
+
function readLine(rl, prompt) {
|
|
248
|
+
return new Promise((resolve) => {
|
|
249
|
+
process.stdout.write(prompt);
|
|
250
|
+
if (!lineQueue) {
|
|
251
|
+
lineQueue = [];
|
|
252
|
+
// Push every incoming line into the queue, then wake any waiting resolver.
|
|
253
|
+
rl.on('line', (l) => {
|
|
254
|
+
lineQueue.push(l);
|
|
255
|
+
drainQueue();
|
|
256
|
+
});
|
|
257
|
+
rl.once('close', () => {
|
|
258
|
+
lineQueueClosed = true;
|
|
259
|
+
drainQueue();
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
if (lineQueue.length > 0) {
|
|
263
|
+
resolve(lineQueue.shift().trim());
|
|
264
|
+
}
|
|
265
|
+
else if (lineQueueClosed) {
|
|
266
|
+
resolve('');
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
pendingResolvers.push(() => {
|
|
270
|
+
if (lineQueue.length > 0)
|
|
271
|
+
resolve(lineQueue.shift().trim());
|
|
272
|
+
else if (lineQueueClosed)
|
|
273
|
+
resolve('');
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
let lineQueue = null;
|
|
279
|
+
let lineQueueClosed = false;
|
|
280
|
+
const pendingResolvers = [];
|
|
281
|
+
function drainQueue() {
|
|
282
|
+
while (pendingResolvers.length > 0 && (lineQueue.length > 0 || lineQueueClosed)) {
|
|
283
|
+
pendingResolvers.shift()();
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Run the wizard. Returns the chosen config, or null if the user aborted.
|
|
288
|
+
* Saves to the global config and exports the API key env var for the
|
|
289
|
+
* current process so the rest of the run works without re-prompting.
|
|
290
|
+
*/
|
|
291
|
+
async function runFirstRunWizard() {
|
|
292
|
+
console.log(chalk_1.default.hex('#cc785c')('\n ✦ Welcome to Aura!'));
|
|
293
|
+
console.log(chalk_1.default.hex('#8a7768')(' Let\'s get you set up — pick a provider to get started.\n'));
|
|
294
|
+
console.log(chalk_1.default.hex('#5a4a3a')(` (Config will be saved to ${(0, global_config_js_1.globalConfigPath)()})`));
|
|
295
|
+
// Auto-detect: if exactly one provider env var is set, pre-select it and
|
|
296
|
+
// skip the key prompt (env key will be used). This handles the common
|
|
297
|
+
// case where the user has already exported e.g. ANTHROPIC_API_KEY.
|
|
298
|
+
const detectedId = detectProviderFromEnv();
|
|
299
|
+
if (detectedId) {
|
|
300
|
+
const det = exports.PROVIDER_CHOICES.find(p => p.id === detectedId);
|
|
301
|
+
console.log(chalk_1.default.hex('#5a9e6e')(` ↪ Detected ${det.apiKeyEnv} in your environment — using ${det.name}.\n`));
|
|
302
|
+
}
|
|
303
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
304
|
+
try {
|
|
305
|
+
// 1. Pick provider (default to detected one if any)
|
|
306
|
+
const providerIdx = await askMenu(rl, 'Choose your provider:', exports.PROVIDER_CHOICES.map(p => ({
|
|
307
|
+
label: detectedId === p.id ? `${p.name} ✓ (key detected)` : p.name,
|
|
308
|
+
hint: p.description,
|
|
309
|
+
})));
|
|
310
|
+
if (providerIdx < 0)
|
|
311
|
+
return null; // stdin closed — abort
|
|
312
|
+
const provider = exports.PROVIDER_CHOICES[providerIdx];
|
|
313
|
+
// 2. API key (if needed) — confirm env key or accept a new one
|
|
314
|
+
let apiKey = '';
|
|
315
|
+
if (provider.needsKey) {
|
|
316
|
+
const existingKey = (0, env_js_1.getApiKey)(provider.apiKeyEnv);
|
|
317
|
+
if (existingKey) {
|
|
318
|
+
const masked = existingKey.length > 8
|
|
319
|
+
? `${existingKey.slice(0, 4)}…${existingKey.slice(-4)}`
|
|
320
|
+
: '****';
|
|
321
|
+
console.log();
|
|
322
|
+
console.log(chalk_1.default.hex('#8a7768')(` Found ${provider.apiKeyEnv} in your environment: ${chalk_1.default.hex('#5a9e6e')(masked)}`));
|
|
323
|
+
const override = await ask(rl, ' ▸ Press Enter to use it, or type a new key to override: ');
|
|
324
|
+
if (lineQueueClosed && lineQueue.length === 0)
|
|
325
|
+
return null;
|
|
326
|
+
apiKey = override.trim();
|
|
327
|
+
}
|
|
328
|
+
else {
|
|
329
|
+
console.log();
|
|
330
|
+
console.log(chalk_1.default.hex('#8a7768')(` Enter your ${provider.name} API key.`));
|
|
331
|
+
console.log(chalk_1.default.hex('#5a4a3a')(` (Will be exported as ${provider.apiKeyEnv} for this session; for permanent use, add it to your shell rc.)\n`));
|
|
332
|
+
apiKey = await ask(rl, ' ▸ API key: ');
|
|
333
|
+
if (lineQueueClosed && lineQueue.length === 0)
|
|
334
|
+
return null;
|
|
335
|
+
if (!apiKey) {
|
|
336
|
+
console.log(chalk_1.default.hex('#b15439')(' ✗ No key provided. Aborting setup.'));
|
|
337
|
+
return null;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
if (apiKey) {
|
|
341
|
+
// Override the env var for this process and mirror to lowercase
|
|
342
|
+
process.env[provider.apiKeyEnv] = apiKey;
|
|
343
|
+
process.env[provider.apiKeyEnv.toLowerCase()] = apiKey;
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
// 3. Pick default model
|
|
347
|
+
const modelIdx = await askMenu(rl, `Default model for ${provider.name}:`, provider.models.map(m => {
|
|
348
|
+
const meta = factory_js_1.KNOWN_MODELS.find(km => km.id === m);
|
|
349
|
+
return { label: m, hint: meta?.speed ?? meta?.name };
|
|
350
|
+
}));
|
|
351
|
+
if (modelIdx < 0)
|
|
352
|
+
return null; // stdin closed — abort
|
|
353
|
+
const defaultModel = provider.models[modelIdx];
|
|
354
|
+
// 4. Optional custom base URL
|
|
355
|
+
let baseUrl;
|
|
356
|
+
if (provider.defaultBaseUrl) {
|
|
357
|
+
const custom = await ask(rl, `\n ▸ Custom base URL? (Enter to keep ${provider.defaultBaseUrl}): `);
|
|
358
|
+
if (lineQueueClosed && lineQueue.length === 0)
|
|
359
|
+
return null;
|
|
360
|
+
baseUrl = custom || provider.defaultBaseUrl;
|
|
361
|
+
}
|
|
362
|
+
// 5. Save
|
|
363
|
+
const saved = (0, global_config_js_1.saveGlobalConfig)({
|
|
364
|
+
provider: provider.id,
|
|
365
|
+
apiKeyEnv: provider.apiKeyEnv,
|
|
366
|
+
defaultModel,
|
|
367
|
+
baseUrl,
|
|
368
|
+
});
|
|
369
|
+
if (apiKey) {
|
|
370
|
+
// Mirror to lowercase for the env helper
|
|
371
|
+
process.env[provider.apiKeyEnv.toLowerCase()] = apiKey;
|
|
372
|
+
}
|
|
373
|
+
console.log();
|
|
374
|
+
console.log(chalk_1.default.hex('#5a9e6e')(` ✓ Saved config to ${(0, global_config_js_1.globalConfigPath)()}`));
|
|
375
|
+
console.log(chalk_1.default.hex('#8a7768')(` ✓ Default model: ${saved.defaultModel}`));
|
|
376
|
+
console.log(chalk_1.default.hex('#8a7768')(` ✓ Provider: ${saved.provider}`));
|
|
377
|
+
if (saved.baseUrl)
|
|
378
|
+
console.log(chalk_1.default.hex('#8a7768')(` ✓ Base URL: ${saved.baseUrl}`));
|
|
379
|
+
console.log();
|
|
380
|
+
return saved;
|
|
381
|
+
}
|
|
382
|
+
finally {
|
|
383
|
+
rl.close();
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
//# sourceMappingURL=first-run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"first-run.js","sourceRoot":"","sources":["../../src/setup/first-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface GlobalConfig {
|
|
2
|
+
/** Default provider: 'anthropic' | 'openai' | 'google' | 'xai' | 'xiaomi' | 'openrouter' | 'ollama' | 'local' */
|
|
3
|
+
provider: string;
|
|
4
|
+
/** Provider-specific env var name (e.g. 'ANTHROPIC_API_KEY', 'XIAOMI_API_KEY') */
|
|
5
|
+
apiKeyEnv: string;
|
|
6
|
+
/** Default model id (e.g. 'claude-sonnet-4-5-20251001', 'mimo-v2.5-pro') */
|
|
7
|
+
defaultModel: string;
|
|
8
|
+
/** Optional custom base URL (Xiaomi, OpenRouter, Ollama, etc.) */
|
|
9
|
+
baseUrl?: string;
|
|
10
|
+
/** When the user first set this up (ISO timestamp) */
|
|
11
|
+
createdAt: string;
|
|
12
|
+
/** Last updated (ISO timestamp) */
|
|
13
|
+
updatedAt: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function loadGlobalConfig(): GlobalConfig | null;
|
|
16
|
+
export declare function saveGlobalConfig(cfg: Omit<GlobalConfig, 'createdAt' | 'updatedAt'> & {
|
|
17
|
+
createdAt?: string;
|
|
18
|
+
}): GlobalConfig;
|
|
19
|
+
export declare function globalConfigPath(): string;
|
|
@@ -0,0 +1,97 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.loadGlobalConfig = loadGlobalConfig;
|
|
37
|
+
exports.saveGlobalConfig = saveGlobalConfig;
|
|
38
|
+
exports.globalConfigPath = globalConfigPath;
|
|
39
|
+
/**
|
|
40
|
+
* Global Aura configuration (user-wide, not project-specific).
|
|
41
|
+
*
|
|
42
|
+
* Lives at `$XDG_CONFIG_HOME/aura-code/config.json` (default `~/.config/aura-code/config.json`).
|
|
43
|
+
* Holds the user's default provider + API key + default model, set by the
|
|
44
|
+
* first-run wizard so subsequent runs don't re-prompt.
|
|
45
|
+
*
|
|
46
|
+
* Project-level `.aura.json` still wins on a per-project basis; this file
|
|
47
|
+
* is just the "no project context" fallback.
|
|
48
|
+
*/
|
|
49
|
+
const fs = __importStar(require("fs"));
|
|
50
|
+
const path = __importStar(require("path"));
|
|
51
|
+
const os = __importStar(require("os"));
|
|
52
|
+
const EMPTY = {
|
|
53
|
+
provider: '',
|
|
54
|
+
apiKeyEnv: '',
|
|
55
|
+
defaultModel: '',
|
|
56
|
+
createdAt: '',
|
|
57
|
+
updatedAt: '',
|
|
58
|
+
};
|
|
59
|
+
function configDir() {
|
|
60
|
+
const xdg = process.env.XDG_CONFIG_HOME;
|
|
61
|
+
return xdg ? path.join(xdg, 'aura-code') : path.join(os.homedir(), '.config', 'aura-code');
|
|
62
|
+
}
|
|
63
|
+
function configPath() {
|
|
64
|
+
return path.join(configDir(), 'config.json');
|
|
65
|
+
}
|
|
66
|
+
function loadGlobalConfig() {
|
|
67
|
+
try {
|
|
68
|
+
const raw = fs.readFileSync(configPath(), 'utf8');
|
|
69
|
+
const parsed = JSON.parse(raw);
|
|
70
|
+
if (!parsed.provider || !parsed.apiKeyEnv || !parsed.defaultModel)
|
|
71
|
+
return null;
|
|
72
|
+
return parsed;
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function saveGlobalConfig(cfg) {
|
|
79
|
+
const now = new Date().toISOString();
|
|
80
|
+
const existing = loadGlobalConfig();
|
|
81
|
+
const full = {
|
|
82
|
+
...EMPTY,
|
|
83
|
+
...cfg,
|
|
84
|
+
createdAt: cfg.createdAt ?? existing?.createdAt ?? now,
|
|
85
|
+
updatedAt: now,
|
|
86
|
+
};
|
|
87
|
+
fs.mkdirSync(configDir(), { recursive: true });
|
|
88
|
+
fs.writeFileSync(configPath(), JSON.stringify(full, null, 2) + '\n', { mode: 0o600 });
|
|
89
|
+
// Also export the API key env var for this process so the rest of the run works.
|
|
90
|
+
// The user is expected to have set the actual key in their shell; we only export
|
|
91
|
+
// if it's already in process.env under any casing.
|
|
92
|
+
return full;
|
|
93
|
+
}
|
|
94
|
+
function globalConfigPath() {
|
|
95
|
+
return configPath();
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=global-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-config.js","sourceRoot":"","sources":["../../src/setup/global-config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CA,4CASC;AAED,4CAeC;AAED,4CAEC;AA5ED;;;;;;;;;GASG;AACH,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAiBzB,MAAM,KAAK,GAAiB;IAC1B,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;IACb,YAAY,EAAE,EAAE;IAChB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;CACd,CAAC;AAEF,SAAS,SAAS;IAChB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACxC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,gBAAgB;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QAC/E,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,gBAAgB,CAAC,GAA2E;IAC1G,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,IAAI,GAAiB;QACzB,GAAG,KAAK;QACR,GAAG,GAAG;QACN,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,QAAQ,EAAE,SAAS,IAAI,GAAG;QACtD,SAAS,EAAE,GAAG;KACf,CAAC;IACF,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACtF,iFAAiF;IACjF,iFAAiF;IACjF,mDAAmD;IACnD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,gBAAgB;IAC9B,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ToolDefinition } from '../providers/types.js';
|
|
2
|
+
export interface AudioTranscribeInput {
|
|
3
|
+
path: string;
|
|
4
|
+
language?: string;
|
|
5
|
+
action?: 'transcribe' | 'info';
|
|
6
|
+
}
|
|
7
|
+
export declare const AUDIO_TRANSCRIBE_DEFINITION: ToolDefinition;
|
|
8
|
+
export declare function audioTranscribe(input: AudioTranscribeInput): Promise<string>;
|