mirror of
https://github.com/KeygraphHQ/shannon.git
synced 2026-10-03 14:56:50 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dfb7c69d3b |
No files matched your search
@@ -11,7 +11,9 @@ import path from 'node:path';
|
|||||||
import * as p from '@clack/prompts';
|
import * as p from '@clack/prompts';
|
||||||
import { type ShannonConfig, saveConfig } from '../config/writer.js';
|
import { type ShannonConfig, saveConfig } from '../config/writer.js';
|
||||||
import { CURATED_PROVIDERS, type CuratedProviderId, isCuratedProvider, type OpenAiFormat } from '../model-spec.js';
|
import { CURATED_PROVIDERS, type CuratedProviderId, isCuratedProvider, type OpenAiFormat } from '../model-spec.js';
|
||||||
|
import { displaySplash } from '../splash.js';
|
||||||
import { requireInteractive } from '../tty.js';
|
import { requireInteractive } from '../tty.js';
|
||||||
|
import { getVersion } from '../version.js';
|
||||||
|
|
||||||
const SHANNON_HOME = path.join(os.homedir(), '.shannon');
|
const SHANNON_HOME = path.join(os.homedir(), '.shannon');
|
||||||
|
|
||||||
@@ -63,7 +65,8 @@ function modelIdPlaceholder(provider: string): string | undefined {
|
|||||||
|
|
||||||
export async function setup(): Promise<void> {
|
export async function setup(): Promise<void> {
|
||||||
requireInteractive('setup', 'For non-interactive use, export credentials as env vars (e.g. ANTHROPIC_API_KEY).');
|
requireInteractive('setup', 'For non-interactive use, export credentials as env vars (e.g. ANTHROPIC_API_KEY).');
|
||||||
p.intro('Shannon Setup');
|
displaySplash(getVersion());
|
||||||
|
p.intro('Setup');
|
||||||
|
|
||||||
// 1. Select provider. "Custom Base URL" is a route, not a provider — it asks
|
// 1. Select provider. "Custom Base URL" is a route, not a provider — it asks
|
||||||
// which API dialect the gateway speaks and configures that provider. "Other
|
// which API dialect the gateway speaks and configures that provider. "Other
|
||||||
|
|||||||
+9
-13
@@ -20,7 +20,8 @@ import { status } from './commands/status.js';
|
|||||||
import { stop } from './commands/stop.js';
|
import { stop } from './commands/stop.js';
|
||||||
import { crash, fail, failUsage } from './errors.js';
|
import { crash, fail, failUsage } from './errors.js';
|
||||||
import { availableCommands, isHelpableCommand, printCommandHelp, START_OPTIONS } from './help.js';
|
import { availableCommands, isHelpableCommand, printCommandHelp, START_OPTIONS } from './help.js';
|
||||||
import { commandPrefix, getMode } from './mode.js';
|
import { commandPrefix, getMode, isLocal } from './mode.js';
|
||||||
|
import { displaySplash } from './splash.js';
|
||||||
import { closestMatch } from './suggest.js';
|
import { closestMatch } from './suggest.js';
|
||||||
import { getVersion, getVersionLine } from './version.js';
|
import { getVersion, getVersionLine } from './version.js';
|
||||||
|
|
||||||
@@ -50,13 +51,13 @@ function renderStartOptions(): string {
|
|||||||
return START_OPTIONS.map(([flag, desc]) => ` ${flag.padEnd(flagWidth)} ${desc}`).join('\n');
|
return START_OPTIONS.map(([flag, desc]) => ` ${flag.padEnd(flagWidth)} ${desc}`).join('\n');
|
||||||
}
|
}
|
||||||
|
|
||||||
function showHelp(): void {
|
function showHelp(withSplash: boolean): void {
|
||||||
const mode = getMode();
|
const mode = getMode();
|
||||||
const prefix = commandPrefix();
|
const prefix = commandPrefix();
|
||||||
|
|
||||||
console.log(`
|
const header = withSplash ? '' : '\nShannon - AI Penetration Testing Framework\n';
|
||||||
Shannon - AI Penetration Testing Framework
|
|
||||||
|
|
||||||
|
console.log(`${header}
|
||||||
Usage:${
|
Usage:${
|
||||||
mode === 'local'
|
mode === 'local'
|
||||||
? ''
|
? ''
|
||||||
@@ -89,14 +90,7 @@ Examples:
|
|||||||
${prefix} reset
|
${prefix} reset
|
||||||
|
|
||||||
Run '${prefix} <command> --help' for help on a specific command.
|
Run '${prefix} <command> --help' for help on a specific command.
|
||||||
${
|
|
||||||
mode === 'local'
|
|
||||||
? `
|
|
||||||
State directory: ./workspaces/`
|
|
||||||
: `
|
|
||||||
State directory: ~/.shannon/`
|
|
||||||
}
|
|
||||||
Monitor scans at http://localhost:8233
|
|
||||||
Docs & source: https://github.com/KeygraphHQ/shannon
|
Docs & source: https://github.com/KeygraphHQ/shannon
|
||||||
`);
|
`);
|
||||||
}
|
}
|
||||||
@@ -174,7 +168,9 @@ async function main(): Promise<void> {
|
|||||||
if (topic && isHelpableCommand(topic)) {
|
if (topic && isHelpableCommand(topic)) {
|
||||||
printCommandHelp(topic);
|
printCommandHelp(topic);
|
||||||
} else {
|
} else {
|
||||||
showHelp();
|
const bare = command === undefined;
|
||||||
|
if (bare) displaySplash(isLocal() ? undefined : getVersion());
|
||||||
|
showHelp(bare);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user