@phenixstar/talon 1.0.1 → 1.0.3

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/bin/talon.js CHANGED
@@ -18,6 +18,7 @@ const [,, command, ...args] = process.argv;
18
18
  const COMMANDS = {
19
19
  setup: 'dist/cli/setup.js',
20
20
  doctor: 'dist/cli/doctor.js',
21
+ repo: 'dist/cli/repo-commands.js',
21
22
  help: null,
22
23
  start: null,
23
24
  stop: null,
@@ -34,6 +35,9 @@ Talon — AI Penetration Testing Framework
34
35
  Usage:
35
36
  talon setup Interactive setup wizard
36
37
  talon doctor Validate configuration and dependencies
38
+ talon repo add <url> [name] Clone a target repo to ~/.talon/repos/
39
+ talon repo list List available repos
40
+ talon repo remove <name> Remove a repo
37
41
  talon start URL=<url> REPO=<name> Start a pentest workflow
38
42
  talon stop Stop all containers
39
43
  talon stop CLEAN=true Stop + remove volumes
@@ -44,7 +48,7 @@ Usage:
44
48
  talon help Show this help
45
49
 
46
50
  Options for 'start':
47
- REPO=<name> Folder under ./repos/
51
+ REPO=<name> Repo name (checks ./repos/ then ~/.talon/repos/)
48
52
  CONFIG=<path> YAML config file
49
53
  OUTPUT=<path> Output directory (default: ./audit-logs/)
50
54
  WORKSPACE=<name> Named workspace (auto-resume)
@@ -73,7 +77,7 @@ if (cliScript) {
73
77
  process.exit(1);
74
78
  }
75
79
  const child = spawn('node', [scriptPath, ...args], {
76
- cwd: root,
80
+ cwd: process.cwd(),
77
81
  stdio: 'inherit',
78
82
  });
79
83
  child.on('exit', (code) => process.exit(code ?? 0));
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * Checks dependencies, .env configuration, Docker status,
10
10
  * and disk space. Reports all results with clear status indicators.
11
- * Invoked via `./talon doctor`.
11
+ * Invoked via `talon doctor`.
12
12
  */
13
13
  import chalk from 'chalk';
14
14
  import fs from 'node:fs';
@@ -16,13 +16,16 @@ import { execSync } from 'node:child_process';
16
16
  import { showBanner, showDependencyTable } from './setup-renderer.js';
17
17
  import { readEnvFile } from './env-configurator.js';
18
18
  import { checkAllDependencies, isDockerRunning, checkDiskSpaceGb } from './dependency-checker.js';
19
+ import { getTalonHome, resolveEnvPath, listRepos, commandPrefix, isProjectMode, } from './talon-home.js';
19
20
  function checkEnvFile() {
20
- if (!fs.existsSync('.env')) {
21
- return { name: '.env file', ok: false, message: 'Not found — run ./talon setup' };
21
+ const envPath = resolveEnvPath();
22
+ const cmd = commandPrefix();
23
+ if (!fs.existsSync(envPath)) {
24
+ return { name: '.env file', ok: false, message: `Not found — run ${cmd} setup` };
22
25
  }
23
- const env = readEnvFile('.env');
26
+ const env = readEnvFile(envPath);
24
27
  if (env.size === 0) {
25
- return { name: '.env file', ok: false, message: 'Empty — run ./talon setup' };
28
+ return { name: '.env file', ok: false, message: `Empty — run ${cmd} setup` };
26
29
  }
27
30
  const hasAuth = env.has('ANTHROPIC_API_KEY')
28
31
  || env.has('CLAUDE_CODE_OAUTH_TOKEN')
@@ -30,9 +33,10 @@ function checkEnvFile() {
30
33
  || env.get('CLAUDE_CODE_USE_VERTEX') === '1'
31
34
  || env.get('ROUTER') === 'true';
32
35
  if (!hasAuth) {
33
- return { name: '.env file', ok: false, message: 'No auth credentials configured — run ./talon setup' };
36
+ return { name: '.env file', ok: false, message: `No auth credentials configured — run ${cmd} setup` };
34
37
  }
35
- return { name: '.env file', ok: true, message: `${env.size} variables configured` };
38
+ const location = isProjectMode() ? '.env' : envPath;
39
+ return { name: '.env file', ok: true, message: `${env.size} variables configured (${location})` };
36
40
  }
37
41
  function checkDockerDaemon() {
38
42
  if (!isDockerRunning()) {
@@ -41,6 +45,7 @@ function checkDockerDaemon() {
41
45
  return { name: 'Docker daemon', ok: true, message: 'Running' };
42
46
  }
43
47
  function checkDockerImages() {
48
+ const cmd = commandPrefix();
44
49
  try {
45
50
  const output = execSync('docker compose images 2>/dev/null', {
46
51
  encoding: 'utf-8',
@@ -48,34 +53,27 @@ function checkDockerImages() {
48
53
  timeout: 10_000,
49
54
  });
50
55
  const lines = output.trim().split('\n').filter(l => l.trim().length > 0);
51
- // First line is header
52
56
  const imageCount = Math.max(0, lines.length - 1);
53
57
  if (imageCount === 0) {
54
- return { name: 'Docker images', ok: false, message: 'Not built — will build on first ./talon start' };
58
+ return { name: 'Docker images', ok: false, message: `Not built — will build on first ${cmd} start` };
55
59
  }
56
60
  return { name: 'Docker images', ok: true, message: `${imageCount} images built` };
57
61
  }
58
62
  catch {
59
- return { name: 'Docker images', ok: false, message: 'Not built — will build on first ./talon start' };
63
+ return { name: 'Docker images', ok: false, message: `Not built — will build on first ${cmd} start` };
60
64
  }
61
65
  }
62
66
  function checkReposDir() {
63
- if (!fs.existsSync('repos')) {
64
- return { name: 'repos/ directory', ok: false, message: 'Not found — create it and clone a target repo' };
65
- }
66
- try {
67
- const entries = fs.readdirSync('repos').filter(e => {
68
- const stat = fs.statSync(`repos/${e}`);
69
- return stat.isDirectory();
70
- });
71
- if (entries.length === 0) {
72
- return { name: 'repos/ directory', ok: false, message: 'Empty — clone a target repo into repos/' };
73
- }
74
- return { name: 'repos/ directory', ok: true, message: `${entries.length} repo(s): ${entries.join(', ')}` };
75
- }
76
- catch {
77
- return { name: 'repos/ directory', ok: false, message: 'Cannot read — check permissions' };
67
+ const repos = listRepos();
68
+ if (repos.length === 0) {
69
+ const cmd = commandPrefix();
70
+ return { name: 'repos', ok: false, message: `No repos found — run ${cmd} repo add <url> or clone into repos/` };
78
71
  }
72
+ const labels = repos.map(r => {
73
+ const tag = r.source === 'home' ? chalk.dim(' (~/.talon)') : '';
74
+ return `${r.name}${tag}`;
75
+ });
76
+ return { name: 'repos', ok: true, message: `${repos.length} repo(s): ${labels.join(', ')}` };
79
77
  }
80
78
  function checkDiskSpace() {
81
79
  const gb = checkDiskSpaceGb();
@@ -113,13 +111,18 @@ function main() {
113
111
  // 3. Summary
114
112
  const depFailures = deps.filter(d => d.required && (!d.installed || !d.versionOk));
115
113
  const totalIssues = depFailures.length + checks.filter(c => !c.ok).length;
114
+ // 4. Talon home info
115
+ const home = getTalonHome();
116
+ const homeExists = fs.existsSync(home);
117
+ console.log(chalk.dim(`\n Talon home: ${home} ${homeExists ? '(exists)' : '(not created yet)'}`));
118
+ const cmd = commandPrefix();
116
119
  console.log();
117
120
  if (totalIssues === 0) {
118
121
  console.log(chalk.green(' All checks passed. Ready to run:\n'));
119
- console.log(chalk.cyan(' ./talon start URL=<url> REPO=<name>\n'));
122
+ console.log(chalk.cyan(` ${cmd} start URL=<url> REPO=<name>\n`));
120
123
  }
121
124
  else {
122
- console.log(chalk.yellow(` ${totalIssues} issue(s) found. Fix them and run ./talon doctor again.\n`));
125
+ console.log(chalk.yellow(` ${totalIssues} issue(s) found. Fix them and run ${cmd} doctor again.\n`));
123
126
  }
124
127
  process.exit(hasFailure || depFailures.length > 0 ? 1 : 0);
125
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=repo-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-commands.d.ts","sourceRoot":"","sources":["../../src/cli/repo-commands.ts"],"names":[],"mappings":""}
@@ -0,0 +1,151 @@
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 Repo Commands — manage target repositories in ~/.talon/repos/.
8
+ *
9
+ * Commands: add, list, remove.
10
+ * Invoked via `talon repo <subcommand>`.
11
+ */
12
+ import { execSync, spawnSync } from 'node:child_process';
13
+ import fs from 'node:fs';
14
+ import path from 'node:path';
15
+ import chalk from 'chalk';
16
+ import { getTalonHome, ensureHome, listRepos } from './talon-home.js';
17
+ function inferRepoName(url) {
18
+ const cleaned = url.replace(/\.git$/, '').replace(/\/$/, '');
19
+ const lastSegment = cleaned.split('/').pop();
20
+ return lastSegment || 'repo';
21
+ }
22
+ function validateName(name) {
23
+ if (name.includes('..') || name.includes('/') || name.includes('\\'))
24
+ return false;
25
+ if (name.startsWith('.') || name.length === 0)
26
+ return false;
27
+ return /^[a-zA-Z0-9._-]+$/.test(name);
28
+ }
29
+ function repoAdd(url, name) {
30
+ ensureHome();
31
+ const repoName = name || inferRepoName(url);
32
+ if (!validateName(repoName)) {
33
+ console.error(chalk.red(` ✗ Invalid repo name: ${repoName}`));
34
+ process.exit(1);
35
+ }
36
+ const reposDir = path.join(getTalonHome(), 'repos');
37
+ const targetPath = path.join(reposDir, repoName);
38
+ if (fs.existsSync(targetPath)) {
39
+ console.error(chalk.red(` ✗ Repo already exists: ${targetPath}`));
40
+ process.exit(1);
41
+ }
42
+ // Verify git is installed
43
+ try {
44
+ execSync('git --version', { stdio: 'pipe' });
45
+ }
46
+ catch {
47
+ console.error(chalk.red(' ✗ git is not installed. Install git and try again.'));
48
+ process.exit(1);
49
+ }
50
+ console.log(chalk.cyan(` Cloning ${url} → ${targetPath}\n`));
51
+ const result = spawnSync('git', ['clone', url, targetPath], { stdio: 'inherit' });
52
+ if (result.status !== 0) {
53
+ console.error(chalk.red('\n ✗ Clone failed.'));
54
+ process.exit(1);
55
+ }
56
+ // Create deliverables dir for the repo
57
+ const delivDir = path.join(targetPath, 'deliverables');
58
+ if (!fs.existsSync(delivDir)) {
59
+ fs.mkdirSync(delivDir, { recursive: true });
60
+ }
61
+ console.log(chalk.green(`\n ✓ Repo added: ${repoName}`));
62
+ console.log(chalk.dim(` Path: ${targetPath}`));
63
+ console.log(chalk.dim(` Use: talon start URL=<url> REPO=${repoName}\n`));
64
+ }
65
+ function repoList() {
66
+ const repos = listRepos();
67
+ if (repos.length === 0) {
68
+ console.log(chalk.yellow(' No repos found.\n'));
69
+ console.log(chalk.dim(' Add one with: talon repo add <git-url>\n'));
70
+ return;
71
+ }
72
+ console.log(chalk.bold('\n Repositories:\n'));
73
+ for (const repo of repos) {
74
+ const source = repo.source === 'home'
75
+ ? chalk.dim(' (home)')
76
+ : chalk.dim(' (local)');
77
+ console.log(` ${chalk.green('•')} ${chalk.bold(repo.name)}${source}`);
78
+ console.log(chalk.dim(` ${repo.path}`));
79
+ }
80
+ console.log();
81
+ }
82
+ function repoRemove(name) {
83
+ if (!validateName(name)) {
84
+ console.error(chalk.red(` ✗ Invalid repo name: ${name}`));
85
+ process.exit(1);
86
+ }
87
+ const repoPath = path.join(getTalonHome(), 'repos', name);
88
+ if (!fs.existsSync(repoPath)) {
89
+ console.error(chalk.red(` ✗ Repo not found in ~/.talon/repos/: ${name}`));
90
+ process.exit(1);
91
+ }
92
+ // Simple confirmation via stdin
93
+ process.stdout.write(chalk.yellow(` Remove ${repoPath}? [y/N] `));
94
+ // NOTE: Using sync readline for simplicity — this is a destructive CLI command
95
+ const fd = fs.openSync('/dev/stdin', 'rs');
96
+ const buf = Buffer.alloc(256);
97
+ const bytesRead = fs.readSync(fd, buf, 0, 256, null);
98
+ fs.closeSync(fd);
99
+ const answer = buf.subarray(0, bytesRead).toString().trim().toLowerCase();
100
+ if (answer !== 'y' && answer !== 'yes') {
101
+ console.log(chalk.dim(' Cancelled.\n'));
102
+ return;
103
+ }
104
+ fs.rmSync(repoPath, { recursive: true, force: true });
105
+ console.log(chalk.green(` ✓ Removed: ${name}\n`));
106
+ }
107
+ function showHelp() {
108
+ console.log(`
109
+ Usage: talon repo <command> [args]
110
+
111
+ Commands:
112
+ add <url> [name] Clone a repo to ~/.talon/repos/
113
+ list List all available repos
114
+ remove <name> Remove a repo from ~/.talon/repos/
115
+
116
+ Examples:
117
+ talon repo add https://github.com/org/app.git
118
+ talon repo add https://github.com/org/app.git my-app
119
+ talon repo list
120
+ talon repo remove my-app
121
+ `);
122
+ }
123
+ // === CLI Entry ===
124
+ const [subcommand, ...args] = process.argv.slice(2);
125
+ switch (subcommand) {
126
+ case 'add': {
127
+ if (args.length === 0) {
128
+ console.error(chalk.red(' ✗ URL required: talon repo add <url> [name]'));
129
+ process.exit(1);
130
+ }
131
+ repoAdd(args[0], args[1]);
132
+ break;
133
+ }
134
+ case 'list':
135
+ case 'ls':
136
+ repoList();
137
+ break;
138
+ case 'remove':
139
+ case 'rm': {
140
+ if (args.length === 0) {
141
+ console.error(chalk.red(' ✗ Name required: talon repo remove <name>'));
142
+ process.exit(1);
143
+ }
144
+ repoRemove(args[0]);
145
+ break;
146
+ }
147
+ default:
148
+ showHelp();
149
+ break;
150
+ }
151
+ //# sourceMappingURL=repo-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-commands.js","sourceRoot":"","sources":["../../src/cli/repo-commands.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export interface SummaryConfig {
10
10
  }>;
11
11
  }
12
12
  export declare function showSummary(config: SummaryConfig): void;
13
- export declare function showSuccess(envPath: string): void;
13
+ export declare function showSuccess(envPath: string, cmd?: string): void;
14
14
  export declare function showError(message: string): void;
15
15
  export interface DepStatus {
16
16
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"setup-renderer.d.ts","sourceRoot":"","sources":["../../src/cli/setup-renderer.ts"],"names":[],"mappings":"AAaA,wBAAgB,UAAU,IAAI,IAAI,CAIjC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACjE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAkBvD;AAOD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CASjD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,CAqBpE"}
1
+ {"version":3,"file":"setup-renderer.d.ts","sourceRoot":"","sources":["../../src/cli/setup-renderer.ts"],"names":[],"mappings":"AAaA,wBAAgB,UAAU,IAAI,IAAI,CAIjC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACjE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAkBvD;AAOD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAU,GAAG,IAAI,CAShE;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,CAqBpE"}
@@ -36,13 +36,13 @@ function maskValue(value) {
36
36
  return '••••••••';
37
37
  return value.slice(0, 4) + '••••' + value.slice(-4);
38
38
  }
39
- export function showSuccess(envPath) {
39
+ export function showSuccess(envPath, cmd = 'talon') {
40
40
  console.log();
41
41
  console.log(chalk.green(' ✓ Configuration saved to ') + chalk.bold(envPath));
42
42
  console.log();
43
43
  console.log(chalk.bold(' Next steps:'));
44
- console.log(chalk.dim(' 1.') + ' Clone a target repo: ' + chalk.cyan('git clone <url> ./repos/<name>'));
45
- console.log(chalk.dim(' 2.') + ' Run a pentest: ' + chalk.cyan('./talon start URL=<url> REPO=<name>'));
44
+ console.log(chalk.dim(' 1.') + ' Add a target repo: ' + chalk.cyan(`${cmd} repo add <url>`));
45
+ console.log(chalk.dim(' 2.') + ' Run a pentest: ' + chalk.cyan(`${cmd} start URL=<url> REPO=<name>`));
46
46
  console.log(chalk.dim(' 3.') + ' Monitor progress: ' + chalk.cyan('http://localhost:8233'));
47
47
  console.log();
48
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup-renderer.js","sourceRoot":"","sources":["../../src/cli/setup-renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-renderer.js","sourceRoot":"","sources":["../../src/cli/setup-renderer.ts"],"names":[],"mappings":"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"}
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
  }
@@ -406,7 +409,7 @@ async function main() {
406
409
  };
407
410
  const summaryConfig = {
408
411
  authMode: authModeLabels[authMode],
409
- envPath: ENV_PATH,
412
+ envPath,
410
413
  runMode: runMode === 'docker' ? 'Docker' : 'Bare Metal',
411
414
  values: newEntries.map(({ key, value }) => ({
412
415
  key,
@@ -427,12 +430,12 @@ async function main() {
427
430
  process.exit(1);
428
431
  }
429
432
  // 8. Write
430
- const backupPath = backupEnvFile(ENV_PATH);
433
+ const backupPath = backupEnvFile(envPath);
431
434
  if (backupPath) {
432
435
  console.log(chalk.dim(` Backed up existing .env to ${backupPath}`));
433
436
  }
434
- writeEnvFile(ENV_PATH, merged);
435
- showSuccess(ENV_PATH);
437
+ writeEnvFile(envPath, merged);
438
+ showSuccess(envPath, commandPrefix());
436
439
  }
437
440
  main().catch((error) => {
438
441
  // 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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"}
@@ -41,12 +41,12 @@ services:
41
41
  temporal:
42
42
  condition: service_healthy
43
43
  volumes:
44
- - ./configs:/app/configs
45
- - ./prompts:/app/prompts
46
- - ./audit-logs:/app/audit-logs
44
+ - ${TALON_CONFIGS_DIR:-./configs}:/app/configs
45
+ - ${TALON_PROMPTS_DIR:-./prompts}:/app/prompts
46
+ - ${TALON_AUDIT_DIR:-./audit-logs}:/app/audit-logs
47
47
  - ${OUTPUT_DIR:-./audit-logs}:/app/output
48
- - ./credentials:/app/credentials:ro
49
- - ./repos:/repos
48
+ - ${TALON_CREDENTIALS_DIR:-./credentials}:/app/credentials:ro
49
+ - ${TALON_REPOS_DIR:-./repos}:/repos
50
50
  - ${BENCHMARKS_BASE:-.}:/benchmarks
51
51
  read_only: true
52
52
  tmpfs:
@@ -72,7 +72,7 @@ services:
72
72
  ports:
73
73
  - "127.0.0.1:3456:3456"
74
74
  volumes:
75
- - ./configs/router-config.json:/config/router-config.json:ro
75
+ - ${TALON_CONFIGS_DIR:-./configs}/router-config.json:/config/router-config.json:ro
76
76
  environment:
77
77
  - HOST=0.0.0.0
78
78
  - 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.1",
3
+ "version": "1.0.3",
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": {
package/talon CHANGED
@@ -20,13 +20,45 @@ else
20
20
  fi
21
21
  COMPOSE_FILE="$COMPOSE_BASE"
22
22
 
23
- # Load .env if present
23
+ # Talon home directory
24
+ TALON_HOME="${TALON_HOME:-$HOME/.talon}"
25
+
26
+ # Load .env — check CWD first, then ~/.talon/
24
27
  if [ -f .env ]; then
25
28
  set -a
26
29
  source .env
27
30
  set +a
31
+ elif [ -f "$TALON_HOME/.env" ]; then
32
+ set -a
33
+ source "$TALON_HOME/.env"
34
+ set +a
28
35
  fi
29
36
 
37
+ # Resolve host paths for Docker volume mounts.
38
+ # CWD-local takes priority over ~/.talon/ (project mode vs global mode).
39
+ resolve_talon_paths() {
40
+ if [ -d "./configs" ]; then TALON_CONFIGS_DIR="$(pwd)/configs"
41
+ elif [ -d "$TALON_HOME/configs" ]; then TALON_CONFIGS_DIR="$TALON_HOME/configs"
42
+ else TALON_CONFIGS_DIR="$(pwd)/configs"; fi
43
+
44
+ if [ -d "./prompts" ]; then TALON_PROMPTS_DIR="$(pwd)/prompts"
45
+ else TALON_PROMPTS_DIR="$(cd "$(dirname "$0")" && pwd)/prompts"; fi
46
+
47
+ if [ -d "./audit-logs" ]; then TALON_AUDIT_DIR="$(pwd)/audit-logs"
48
+ elif [ -d "$TALON_HOME/audit-logs" ]; then TALON_AUDIT_DIR="$TALON_HOME/audit-logs"
49
+ else TALON_AUDIT_DIR="$TALON_HOME/audit-logs"; fi
50
+
51
+ if [ -d "./credentials" ]; then TALON_CREDENTIALS_DIR="$(pwd)/credentials"
52
+ elif [ -d "$TALON_HOME/credentials" ]; then TALON_CREDENTIALS_DIR="$TALON_HOME/credentials"
53
+ else TALON_CREDENTIALS_DIR="$TALON_HOME/credentials"; fi
54
+
55
+ if [ -d "./repos" ]; then TALON_REPOS_DIR="$(pwd)/repos"
56
+ elif [ -d "$TALON_HOME/repos" ]; then TALON_REPOS_DIR="$TALON_HOME/repos"
57
+ else TALON_REPOS_DIR="$(pwd)/repos"; fi
58
+
59
+ export TALON_CONFIGS_DIR TALON_PROMPTS_DIR TALON_AUDIT_DIR TALON_CREDENTIALS_DIR TALON_REPOS_DIR
60
+ }
61
+
30
62
  show_help() {
31
63
  cat << 'EOF'
32
64
 
@@ -145,6 +177,9 @@ cmd_start() {
145
177
  exit 1
146
178
  fi
147
179
 
180
+ # Resolve all host paths for Docker mounts
181
+ resolve_talon_paths
182
+
148
183
  # Check for API key (Bedrock and router modes can bypass this)
149
184
  if [ -z "$ANTHROPIC_API_KEY" ] && [ -z "$CLAUDE_CODE_OAUTH_TOKEN" ]; then
150
185
  if [ "$CLAUDE_CODE_USE_BEDROCK" = "1" ]; then
@@ -197,16 +232,19 @@ cmd_start() {
197
232
 
198
233
  # Determine container path for REPO
199
234
  # - If REPO is already a container path (/benchmarks/*, /repos/*), use as-is
200
- # - Otherwise, treat as a folder name under ./repos/ (mounted at /repos in container)
235
+ # - Otherwise, check resolved repos dir (CWD/repos/ then ~/.talon/repos/)
201
236
  case "$REPO" in
202
237
  /benchmarks/*|/repos/*)
203
238
  CONTAINER_REPO="$REPO"
204
239
  ;;
205
240
  *)
206
- if [ ! -d "./repos/$REPO" ]; then
207
- echo "ERROR: Repository not found at ./repos/$REPO"
241
+ if [ ! -d "$TALON_REPOS_DIR/$REPO" ]; then
242
+ echo "ERROR: Repository not found"
243
+ echo " Checked: ./repos/$REPO"
244
+ echo " Checked: $TALON_HOME/repos/$REPO"
208
245
  echo ""
209
- echo "Place your target repository under the ./repos/ directory"
246
+ echo "Add a repo: talon repo add <git-url>"
247
+ echo "Or clone: git clone <url> $TALON_REPOS_DIR/$REPO"
210
248
  exit 1
211
249
  fi
212
250
  CONTAINER_REPO="/repos/$REPO"
@@ -234,16 +272,21 @@ cmd_start() {
234
272
  export ANTHROPIC_AUTH_TOKEN="$TALON_ROUTER_KEY"
235
273
  fi
236
274
 
237
- # Ensure audit-logs directory exists with write permissions for container user (UID 1001)
238
- mkdir -p ./audit-logs ./credentials
239
- chmod 777 ./audit-logs # 777 required: container UID 1001 differs from host UID
275
+ # Ensure directories exist with write permissions for container user (UID 1001)
276
+ mkdir -p "$TALON_AUDIT_DIR" "$TALON_CREDENTIALS_DIR"
277
+ chmod 777 "$TALON_AUDIT_DIR" # 777 required: container UID 1001 differs from host UID
240
278
 
241
279
  # Ensure repo deliverables directory is writable by container user (UID 1001)
242
- if [ -d "./repos/$REPO" ]; then
243
- mkdir -p "./repos/$REPO/deliverables"
244
- chmod 777 "./repos/$REPO/deliverables" # 777 required: container UID 1001 differs from host UID
280
+ if [ -d "$TALON_REPOS_DIR/$REPO" ]; then
281
+ mkdir -p "$TALON_REPOS_DIR/$REPO/deliverables"
282
+ chmod 777 "$TALON_REPOS_DIR/$REPO/deliverables" # 777 required: container UID 1001 differs from host UID
245
283
  fi
246
284
 
285
+ # Log resolved paths
286
+ echo "Repos: $TALON_REPOS_DIR"
287
+ echo "Configs: $TALON_CONFIGS_DIR"
288
+ echo "Audit logs: $TALON_AUDIT_DIR"
289
+
247
290
  # Start router BEFORE main containers so worker can reach it on boot
248
291
  if [ "$ROUTER" = "true" ]; then
249
292
  if [ -z "$OPENAI_API_KEY" ] && [ -z "$OPENROUTER_API_KEY" ]; then
@@ -409,6 +452,18 @@ cmd_doctor() {
409
452
  node dist/cli/doctor.js "$@"
410
453
  }
411
454
 
455
+ cmd_repo() {
456
+ if ! command -v node &>/dev/null; then
457
+ echo "Node.js is required. Install: https://nodejs.org/en/download"
458
+ exit 1
459
+ fi
460
+ if [ ! -f "dist/cli/repo-commands.js" ]; then
461
+ echo "Building Talon..."
462
+ npm install --silent && npm run build
463
+ fi
464
+ node dist/cli/repo-commands.js "$@"
465
+ }
466
+
412
467
  cmd_stop() {
413
468
  parse_args "$@"
414
469
 
@@ -429,6 +484,10 @@ case "${1:-help}" in
429
484
  shift
430
485
  cmd_doctor "$@"
431
486
  ;;
487
+ repo)
488
+ shift
489
+ cmd_repo "$@"
490
+ ;;
432
491
  start)
433
492
  shift
434
493
  cmd_start "$@"