@phenixstar/talon 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/setup.js CHANGED
@@ -15,7 +15,7 @@ import { showBanner, showSummary, showSuccess, showError, showDependencyTable, }
15
15
  import { readEnvFile, mergeEnv, backupEnvFile, writeEnvFile, validateEnv, } from './env-configurator.js';
16
16
  import { checkAllDependencies, detectRunMode, isDockerRunning, checkDiskSpaceGb, } from './dependency-checker.js';
17
17
  import { detectAllCredentials } from './credential-detector.js';
18
- const ENV_PATH = '.env';
18
+ import { ensureHome, resolveEnvPath, commandPrefix } from './talon-home.js';
19
19
  // === Auth Mode Prompts ===
20
20
  async function promptApiKey() {
21
21
  const key = await password({
@@ -241,8 +241,11 @@ async function promptManualAuth(hint, existingEnv) {
241
241
  // === Main Wizard ===
242
242
  async function main() {
243
243
  showBanner();
244
- // 1. Check existing .env
245
- const existingEnv = readEnvFile(ENV_PATH);
244
+ // 1. Ensure ~/.talon/ exists
245
+ ensureHome();
246
+ const envPath = resolveEnvPath();
247
+ // 2. Check existing .env
248
+ const existingEnv = readEnvFile(envPath);
246
249
  if (existingEnv.size > 0) {
247
250
  const action = await select({
248
251
  message: `Found existing .env with ${existingEnv.size} values. What would you like to do?`,
@@ -290,7 +293,7 @@ async function main() {
290
293
  default: false,
291
294
  });
292
295
  if (!proceed) {
293
- showError('Install missing dependencies and run talon setup again.');
296
+ showError(`Install missing dependencies and run ${commandPrefix()} setup again.`);
294
297
  process.exit(1);
295
298
  }
296
299
  }
@@ -359,7 +362,85 @@ async function main() {
359
362
  authMode = result.authMode;
360
363
  newEntries = result.entries;
361
364
  }
362
- // 5. Optional settings
365
+ // 5. LLM Provider selection
366
+ const llmProvider = await select({
367
+ message: 'Which LLM provider do you want to use?',
368
+ choices: [
369
+ { name: 'Claude (default — Anthropic API, agent loop built-in)', value: 'claude' },
370
+ { name: 'Groq (fastest inference — 935 tok/s LPU)', value: 'groq' },
371
+ { name: 'MiniMax Highspeed (100 TPS, 2000 prompts/5h)', value: 'minimax-highspeed' },
372
+ { name: 'MiniMax Max (M2.5, 1000 prompts/5h)', value: 'minimax-max' },
373
+ { name: 'xAI / Grok-3 (1M context, reasoning)', value: 'xai' },
374
+ { name: 'Z-AI / GLM-4.7 (DevPack)', value: 'z-ai' },
375
+ { name: 'Gemini Pro (1M context, Google API)', value: 'gemini-pro' },
376
+ { name: 'Gemini Flash (fast + cheap, Google API)', value: 'gemini-flash' },
377
+ { name: 'OpenRouter (300+ models, one key)', value: 'openrouter' },
378
+ { name: 'Kimi / Moonshot (128K context)', value: 'kimi' },
379
+ { name: 'Ollama (local models — no API key)', value: 'ollama' },
380
+ { name: 'OpenAI-Compatible (custom endpoint)', value: 'openai-compat' },
381
+ ],
382
+ default: 'claude',
383
+ });
384
+ if (llmProvider !== 'claude') {
385
+ newEntries.push({ key: 'LLM_PROVIDER', value: llmProvider });
386
+ }
387
+ // Provider-specific env var prompts
388
+ const PRESET_PROMPTS = {
389
+ groq: { keyEnv: 'GROQ_API_KEY', keyLabel: 'Groq API Key:', modelDefault: 'qwen-qwq-32b' },
390
+ 'minimax-highspeed': { keyEnv: 'MINIMAX_HIGHSPEED_API_KEY', keyLabel: 'MiniMax Highspeed Key:', modelDefault: 'MiniMax-M2.5-highspeed' },
391
+ 'minimax-max': { keyEnv: 'MINIMAX_MAX_API_KEY', keyLabel: 'MiniMax Max Key:', modelDefault: 'MiniMax-M2.5' },
392
+ xai: { keyEnv: 'XAI_API_KEY', keyLabel: 'xAI API Key:', modelDefault: 'grok-3' },
393
+ 'z-ai': { keyEnv: 'ZAI_CODING_PLAN_API_KEY', keyLabel: 'Z-AI DevPack Key:', modelDefault: 'GLM-4.7' },
394
+ 'gemini-pro': { keyEnv: 'GEMINI_API_KEY', keyLabel: 'Google AI Studio Key:', modelDefault: 'gemini-2.5-pro' },
395
+ 'gemini-flash': { keyEnv: 'GEMINI_API_KEY', keyLabel: 'Google AI Studio Key:', modelDefault: 'gemini-2.5-flash' },
396
+ openrouter: { keyEnv: 'OPENROUTER_API_KEY', keyLabel: 'OpenRouter Key:', modelDefault: 'anthropic/claude-sonnet-4-6' },
397
+ kimi: { keyEnv: 'KIMI_API_KEY', keyLabel: 'Kimi API Key:', modelDefault: 'moonshot-v1-128k' },
398
+ };
399
+ const preset = PRESET_PROMPTS[llmProvider];
400
+ if (preset) {
401
+ const apiKey = await password({ message: preset.keyLabel, mask: '*' });
402
+ if (apiKey) {
403
+ newEntries.push({ key: preset.keyEnv, value: apiKey });
404
+ }
405
+ const modelName = await input({ message: 'Model name:', default: preset.modelDefault });
406
+ newEntries.push({ key: `${llmProvider.toUpperCase().replace('-', '_')}_MODEL`, value: modelName });
407
+ }
408
+ if (llmProvider === 'ollama') {
409
+ const ollamaUrl = await input({
410
+ message: 'Ollama URL:',
411
+ default: 'http://localhost:11434',
412
+ });
413
+ newEntries.push({ key: 'OLLAMA_BASE_URL', value: ollamaUrl });
414
+ const ollamaModel = await input({
415
+ message: 'Ollama model:',
416
+ default: 'qwen2.5:32b',
417
+ });
418
+ newEntries.push({ key: 'OLLAMA_MODEL', value: ollamaModel });
419
+ }
420
+ if (llmProvider === 'openai-compat') {
421
+ const compatUrl = await input({
422
+ message: 'OpenAI-compatible API URL:',
423
+ validate: (v) => {
424
+ if (!v.startsWith('http://') && !v.startsWith('https://'))
425
+ return 'Must start with http:// or https://';
426
+ return true;
427
+ },
428
+ });
429
+ newEntries.push({ key: 'OPENAI_COMPAT_BASE_URL', value: compatUrl });
430
+ const compatKey = await password({
431
+ message: 'API key (leave empty for no auth):',
432
+ mask: '*',
433
+ });
434
+ if (compatKey) {
435
+ newEntries.push({ key: 'OPENAI_COMPAT_API_KEY', value: compatKey });
436
+ }
437
+ const compatModel = await input({
438
+ message: 'Model name:',
439
+ default: 'gpt-4o',
440
+ });
441
+ newEntries.push({ key: 'OPENAI_COMPAT_MODEL', value: compatModel });
442
+ }
443
+ // 6. Optional settings
363
444
  const configureOptional = await confirm({
364
445
  message: 'Configure optional settings? (output dir, model routing, testing mode)',
365
446
  default: false,
@@ -389,13 +470,13 @@ async function main() {
389
470
  newEntries.push({ key: 'TALON_MAX_TURNS', value: turns });
390
471
  }
391
472
  }
392
- // 6. Summary
473
+ // 7. Summary
393
474
  const merged = mergeEnv(existingEnv, newEntries);
394
475
  const sensitiveKeys = new Set([
395
476
  'ANTHROPIC_API_KEY', 'CLAUDE_CODE_OAUTH_TOKEN', 'AWS_BEARER_TOKEN_BEDROCK',
396
477
  'OPENAI_API_KEY', 'OPENROUTER_API_KEY', 'GROQ_API_KEY', 'XAI_API_KEY',
397
478
  'KIMI_API_KEY', 'MINIMAX_HIGHSPEED_API_KEY', 'MINIMAX_MAX_API_KEY',
398
- 'ZAI_CODING_PLAN_API_KEY', 'TALON_ROUTER_KEY',
479
+ 'ZAI_CODING_PLAN_API_KEY', 'TALON_ROUTER_KEY', 'OPENAI_COMPAT_API_KEY',
399
480
  ]);
400
481
  const authModeLabels = {
401
482
  'api-key': 'Anthropic API Key',
@@ -406,7 +487,7 @@ async function main() {
406
487
  };
407
488
  const summaryConfig = {
408
489
  authMode: authModeLabels[authMode],
409
- envPath: ENV_PATH,
490
+ envPath,
410
491
  runMode: runMode === 'docker' ? 'Docker' : 'Bare Metal',
411
492
  values: newEntries.map(({ key, value }) => ({
412
493
  key,
@@ -420,19 +501,19 @@ async function main() {
420
501
  console.log(chalk.dim(' Setup cancelled.\n'));
421
502
  return;
422
503
  }
423
- // 7. Validate
504
+ // 8. Validate
424
505
  const missing = validateEnv(merged, authMode);
425
506
  if (missing.length > 0) {
426
507
  showError(`Missing required values: ${missing.join(', ')}`);
427
508
  process.exit(1);
428
509
  }
429
- // 8. Write
430
- const backupPath = backupEnvFile(ENV_PATH);
510
+ // 9. Write
511
+ const backupPath = backupEnvFile(envPath);
431
512
  if (backupPath) {
432
513
  console.log(chalk.dim(` Backed up existing .env to ${backupPath}`));
433
514
  }
434
- writeEnvFile(ENV_PATH, merged);
435
- showSuccess(ENV_PATH);
515
+ writeEnvFile(envPath, merged);
516
+ showSuccess(envPath, commandPrefix());
436
517
  }
437
518
  main().catch((error) => {
438
519
  // Handle Ctrl+C gracefully
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ export interface TalonPaths {
2
+ readonly home: string;
3
+ readonly env: string;
4
+ readonly repos: string;
5
+ readonly configs: string;
6
+ readonly prompts: string;
7
+ readonly skills: string;
8
+ readonly auditLogs: string;
9
+ readonly credentials: string;
10
+ }
11
+ export interface RepoEntry {
12
+ readonly name: string;
13
+ readonly path: string;
14
+ readonly source: 'local' | 'home';
15
+ }
16
+ /** Resolve ~/.talon/ path. Respects TALON_HOME env override. */
17
+ export declare function getTalonHome(): string;
18
+ /** Get the package root (where package.json, prompts/, configs/ live). */
19
+ export declare function getPackageRoot(): string;
20
+ /** Create ~/.talon/ directory structure if it doesn't exist. */
21
+ export declare function ensureHome(): void;
22
+ /**
23
+ * Detect whether CWD is a Talon source checkout (has docker-compose.yml + talon script).
24
+ * Used to adapt CLI messaging: `./talon` vs `talon`.
25
+ */
26
+ export declare function isProjectMode(): boolean;
27
+ /** Command prefix for user-facing messages. */
28
+ export declare function commandPrefix(): string;
29
+ /** Resolve .env path: CWD → ~/.talon/ */
30
+ export declare function resolveEnvPath(): string;
31
+ /** Resolve repos directory: CWD/repos → ~/.talon/repos */
32
+ export declare function resolveReposDir(): string;
33
+ /** Resolve a specific repo by name. Returns absolute path or null if not found. */
34
+ export declare function resolveRepo(name: string): string | null;
35
+ /** Resolve configs directory: CWD/configs → ~/.talon/configs → package configs */
36
+ export declare function resolveConfigsDir(): string;
37
+ /** Resolve prompts directory: CWD/prompts → package prompts (always read-only). */
38
+ export declare function resolvePromptsDir(): string;
39
+ /** Resolve audit-logs directory: CWD/audit-logs → ~/.talon/audit-logs */
40
+ export declare function resolveAuditLogsDir(): string;
41
+ /** Resolve credentials directory: CWD/credentials → ~/.talon/credentials */
42
+ export declare function resolveCredentialsDir(): string;
43
+ /** Aggregate all resolved paths. */
44
+ export declare function resolvePaths(): TalonPaths;
45
+ /** List repos from both CWD and ~/.talon/, deduplicated by name (CWD wins). */
46
+ export declare function listRepos(): RepoEntry[];
47
+ //# sourceMappingURL=talon-home.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"talon-home.d.ts","sourceRoot":"","sources":["../../src/cli/talon-home.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;CACnC;AAID,gEAAgE;AAChE,wBAAgB,YAAY,IAAI,MAAM,CAIrC;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,IAAI,MAAM,CAIvC;AAED,gEAAgE;AAChE,wBAAgB,UAAU,IAAI,IAAI,CAajC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAKvC;AAED,+CAA+C;AAC/C,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAID,yCAAyC;AACzC,wBAAgB,cAAc,IAAI,MAAM,CAKvC;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,IAAI,MAAM,CAKxC;AAED,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUvD;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,IAAI,MAAM,CAQ1C;AAED,mFAAmF;AACnF,wBAAgB,iBAAiB,IAAI,MAAM,CAK1C;AAED,yEAAyE;AACzE,wBAAgB,mBAAmB,IAAI,MAAM,CAK5C;AAED,4EAA4E;AAC5E,wBAAgB,qBAAqB,IAAI,MAAM,CAK9C;AAED,oCAAoC;AACpC,wBAAgB,YAAY,IAAI,UAAU,CAWzC;AAED,+EAA+E;AAC/E,wBAAgB,SAAS,IAAI,SAAS,EAAE,CAwBvC"}
@@ -0,0 +1,167 @@
1
+ // Copyright (C) 2025 PhenixStar (Alaa Qweider)
2
+ //
3
+ // This program is free software: you can redistribute it and/or modify
4
+ // it under the terms of the GNU Affero General Public License version 3
5
+ // as published by the Free Software Foundation.
6
+ /**
7
+ * Talon Home Directory — path resolution for ~/.talon/.
8
+ *
9
+ * Layered resolution: CLI flag → CWD-local → ~/.talon/ → package defaults.
10
+ * Source-checkout users see no change (CWD-local wins). npm-global users
11
+ * get ~/.talon/ as persistent home.
12
+ */
13
+ import fs from 'node:fs';
14
+ import path from 'node:path';
15
+ import os from 'node:os';
16
+ import { fileURLToPath } from 'node:url';
17
+ const HOME_SUBDIRS = ['repos', 'configs', 'skills', 'audit-logs', 'credentials'];
18
+ /** Resolve ~/.talon/ path. Respects TALON_HOME env override. */
19
+ export function getTalonHome() {
20
+ const envOverride = process.env['TALON_HOME'];
21
+ if (envOverride && envOverride.trim().length > 0)
22
+ return envOverride.trim();
23
+ return path.join(os.homedir(), '.talon');
24
+ }
25
+ /** Get the package root (where package.json, prompts/, configs/ live). */
26
+ export function getPackageRoot() {
27
+ const thisFile = fileURLToPath(import.meta.url);
28
+ // Compiled: dist/cli/talon-home.js → ../../
29
+ return path.resolve(path.dirname(thisFile), '..', '..');
30
+ }
31
+ /** Create ~/.talon/ directory structure if it doesn't exist. */
32
+ export function ensureHome() {
33
+ const home = getTalonHome();
34
+ if (!fs.existsSync(home)) {
35
+ fs.mkdirSync(home, { recursive: true, mode: 0o700 });
36
+ }
37
+ for (const sub of HOME_SUBDIRS) {
38
+ const dirPath = path.join(home, sub);
39
+ if (!fs.existsSync(dirPath)) {
40
+ fs.mkdirSync(dirPath, { recursive: true, mode: 0o700 });
41
+ }
42
+ }
43
+ }
44
+ /**
45
+ * Detect whether CWD is a Talon source checkout (has docker-compose.yml + talon script).
46
+ * Used to adapt CLI messaging: `./talon` vs `talon`.
47
+ */
48
+ export function isProjectMode() {
49
+ const cwd = process.cwd();
50
+ return fs.existsSync(path.join(cwd, 'docker-compose.yml'))
51
+ && fs.existsSync(path.join(cwd, 'talon'))
52
+ && fs.existsSync(path.join(cwd, 'src'));
53
+ }
54
+ /** Command prefix for user-facing messages. */
55
+ export function commandPrefix() {
56
+ return isProjectMode() ? './talon' : 'talon';
57
+ }
58
+ // === Resource Resolvers ===
59
+ /** Resolve .env path: CWD → ~/.talon/ */
60
+ export function resolveEnvPath() {
61
+ const cwdEnv = path.join(process.cwd(), '.env');
62
+ if (fs.existsSync(cwdEnv))
63
+ return cwdEnv;
64
+ return path.join(getTalonHome(), '.env');
65
+ }
66
+ /** Resolve repos directory: CWD/repos → ~/.talon/repos */
67
+ export function resolveReposDir() {
68
+ const cwdRepos = path.join(process.cwd(), 'repos');
69
+ if (fs.existsSync(cwdRepos))
70
+ return cwdRepos;
71
+ return path.join(getTalonHome(), 'repos');
72
+ }
73
+ /** Resolve a specific repo by name. Returns absolute path or null if not found. */
74
+ export function resolveRepo(name) {
75
+ if (name.includes('..') || path.isAbsolute(name))
76
+ return null;
77
+ const cwdRepo = path.join(process.cwd(), 'repos', name);
78
+ if (fs.existsSync(cwdRepo))
79
+ return cwdRepo;
80
+ const homeRepo = path.join(getTalonHome(), 'repos', name);
81
+ if (fs.existsSync(homeRepo))
82
+ return homeRepo;
83
+ return null;
84
+ }
85
+ /** Resolve configs directory: CWD/configs → ~/.talon/configs → package configs */
86
+ export function resolveConfigsDir() {
87
+ const cwdConfigs = path.join(process.cwd(), 'configs');
88
+ if (fs.existsSync(cwdConfigs))
89
+ return cwdConfigs;
90
+ const homeConfigs = path.join(getTalonHome(), 'configs');
91
+ if (fs.existsSync(homeConfigs) && fs.readdirSync(homeConfigs).length > 0)
92
+ return homeConfigs;
93
+ return path.join(getPackageRoot(), 'configs');
94
+ }
95
+ /** Resolve prompts directory: CWD/prompts → package prompts (always read-only). */
96
+ export function resolvePromptsDir() {
97
+ const cwdPrompts = path.join(process.cwd(), 'prompts');
98
+ if (fs.existsSync(cwdPrompts))
99
+ return cwdPrompts;
100
+ return path.join(getPackageRoot(), 'prompts');
101
+ }
102
+ /** Resolve audit-logs directory: CWD/audit-logs → ~/.talon/audit-logs */
103
+ export function resolveAuditLogsDir() {
104
+ const cwdAudit = path.join(process.cwd(), 'audit-logs');
105
+ if (fs.existsSync(cwdAudit))
106
+ return cwdAudit;
107
+ return path.join(getTalonHome(), 'audit-logs');
108
+ }
109
+ /** Resolve credentials directory: CWD/credentials → ~/.talon/credentials */
110
+ export function resolveCredentialsDir() {
111
+ const cwdCreds = path.join(process.cwd(), 'credentials');
112
+ if (fs.existsSync(cwdCreds))
113
+ return cwdCreds;
114
+ return path.join(getTalonHome(), 'credentials');
115
+ }
116
+ /** Aggregate all resolved paths. */
117
+ export function resolvePaths() {
118
+ return {
119
+ home: getTalonHome(),
120
+ env: resolveEnvPath(),
121
+ repos: resolveReposDir(),
122
+ configs: resolveConfigsDir(),
123
+ prompts: resolvePromptsDir(),
124
+ skills: path.join(getTalonHome(), 'skills'),
125
+ auditLogs: resolveAuditLogsDir(),
126
+ credentials: resolveCredentialsDir(),
127
+ };
128
+ }
129
+ /** List repos from both CWD and ~/.talon/, deduplicated by name (CWD wins). */
130
+ export function listRepos() {
131
+ const repos = [];
132
+ const seen = new Set();
133
+ // CWD repos first (higher priority)
134
+ const cwdRepos = path.join(process.cwd(), 'repos');
135
+ if (fs.existsSync(cwdRepos)) {
136
+ for (const entry of readDirs(cwdRepos)) {
137
+ repos.push({ name: entry, path: path.join(cwdRepos, entry), source: 'local' });
138
+ seen.add(entry);
139
+ }
140
+ }
141
+ // Home repos (lower priority, skip duplicates)
142
+ const homeRepos = path.join(getTalonHome(), 'repos');
143
+ if (fs.existsSync(homeRepos)) {
144
+ for (const entry of readDirs(homeRepos)) {
145
+ if (!seen.has(entry)) {
146
+ repos.push({ name: entry, path: path.join(homeRepos, entry), source: 'home' });
147
+ }
148
+ }
149
+ }
150
+ return repos;
151
+ }
152
+ function readDirs(dirPath) {
153
+ try {
154
+ return fs.readdirSync(dirPath).filter(e => {
155
+ try {
156
+ return fs.statSync(path.join(dirPath, e)).isDirectory();
157
+ }
158
+ catch {
159
+ return false;
160
+ }
161
+ });
162
+ }
163
+ catch {
164
+ return [];
165
+ }
166
+ }
167
+ //# sourceMappingURL=talon-home.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"talon-home.js","sourceRoot":"","sources":["../../src/cli/talon-home.ts"],"names":[],"mappings":"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"}
@@ -37,16 +37,31 @@ services:
37
37
  - CLAUDE_CODE_MAX_OUTPUT_TOKENS=${CLAUDE_CODE_MAX_OUTPUT_TOKENS:-64000}
38
38
  - TALON_MAX_TURNS=${TALON_MAX_TURNS:-500}
39
39
  - TALON_PERMISSION_MODE=${TALON_PERMISSION_MODE:-bypassPermissions}
40
+ # Multi-LLM provider support
41
+ - LLM_PROVIDER=${LLM_PROVIDER:-}
42
+ - GROQ_API_KEY=${GROQ_API_KEY:-}
43
+ - OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-}
44
+ - XAI_API_KEY=${XAI_API_KEY:-}
45
+ - MINIMAX_HIGHSPEED_API_KEY=${MINIMAX_HIGHSPEED_API_KEY:-}
46
+ - MINIMAX_MAX_API_KEY=${MINIMAX_MAX_API_KEY:-}
47
+ - KIMI_API_KEY=${KIMI_API_KEY:-}
48
+ - ZAI_CODING_PLAN_API_KEY=${ZAI_CODING_PLAN_API_KEY:-}
49
+ - OLLAMA_BASE_URL=${OLLAMA_BASE_URL:-}
50
+ - OLLAMA_MODEL=${OLLAMA_MODEL:-}
51
+ - GEMINI_API_KEY=${GEMINI_API_KEY:-}
52
+ - OPENAI_COMPAT_BASE_URL=${OPENAI_COMPAT_BASE_URL:-}
53
+ - OPENAI_COMPAT_API_KEY=${OPENAI_COMPAT_API_KEY:-}
54
+ - OPENAI_COMPAT_MODEL=${OPENAI_COMPAT_MODEL:-}
40
55
  depends_on:
41
56
  temporal:
42
57
  condition: service_healthy
43
58
  volumes:
44
- - ./configs:/app/configs
45
- - ./prompts:/app/prompts
46
- - ./audit-logs:/app/audit-logs
59
+ - ${TALON_CONFIGS_DIR:-./configs}:/app/configs
60
+ - ${TALON_PROMPTS_DIR:-./prompts}:/app/prompts
61
+ - ${TALON_AUDIT_DIR:-./audit-logs}:/app/audit-logs
47
62
  - ${OUTPUT_DIR:-./audit-logs}:/app/output
48
- - ./credentials:/app/credentials:ro
49
- - ./repos:/repos
63
+ - ${TALON_CREDENTIALS_DIR:-./credentials}:/app/credentials:ro
64
+ - ${TALON_REPOS_DIR:-./repos}:/repos
50
65
  - ${BENCHMARKS_BASE:-.}:/benchmarks
51
66
  read_only: true
52
67
  tmpfs:
@@ -72,7 +87,7 @@ services:
72
87
  ports:
73
88
  - "127.0.0.1:3456:3456"
74
89
  volumes:
75
- - ./configs/router-config.json:/config/router-config.json:ro
90
+ - ${TALON_CONFIGS_DIR:-./configs}/router-config.json:/config/router-config.json:ro
76
91
  environment:
77
92
  - HOST=0.0.0.0
78
93
  - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phenixstar/talon",
3
- "version": "1.0.2",
3
+ "version": "1.1.0",
4
4
  "description": "AI penetration testing framework — autonomous security assessment with 13 agents across a 5-phase pipeline",
5
5
  "type": "module",
6
6
  "bin": {
@@ -60,14 +60,19 @@
60
60
  "dotenv": "^16.4.5",
61
61
  "figlet": "^1.9.3",
62
62
  "gradient-string": "^3.0.0",
63
+ "ink": "^6.8.0",
63
64
  "js-yaml": "^4.1.0",
65
+ "marked": "^17.0.5",
64
66
  "ora": "^9.3.0",
67
+ "react": "^19.2.4",
68
+ "strip-ansi": "^7.2.0",
65
69
  "yaml": "^2.8.2",
66
70
  "zx": "^8.0.0"
67
71
  },
68
72
  "devDependencies": {
69
73
  "@types/js-yaml": "^4.0.9",
70
74
  "@types/node": "^25.0.3",
75
+ "@types/react": "^19.2.14",
71
76
  "@vitest/coverage-v8": "^3.0.0",
72
77
  "typescript": "^5.9.3",
73
78
  "vitest": "^3.0.0"