@keygraph/shannon 1.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/dist/index.mjs +1711 -0
- package/infra/compose.yml +50 -0
- package/infra/router-config.json +31 -0
- package/package.json +50 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
networks:
|
|
2
|
+
default:
|
|
3
|
+
name: shannon-net
|
|
4
|
+
|
|
5
|
+
services:
|
|
6
|
+
temporal:
|
|
7
|
+
image: temporalio/temporal:latest
|
|
8
|
+
container_name: shannon-temporal
|
|
9
|
+
command: ["server", "start-dev", "--db-filename", "/home/temporal/temporal.db", "--ip", "0.0.0.0"]
|
|
10
|
+
ports:
|
|
11
|
+
- "127.0.0.1:7233:7233"
|
|
12
|
+
- "127.0.0.1:8233:8233"
|
|
13
|
+
volumes:
|
|
14
|
+
- temporal-data:/home/temporal
|
|
15
|
+
healthcheck:
|
|
16
|
+
test: ["CMD", "temporal", "operator", "cluster", "health", "--address", "localhost:7233"]
|
|
17
|
+
interval: 10s
|
|
18
|
+
timeout: 5s
|
|
19
|
+
retries: 10
|
|
20
|
+
start_period: 30s
|
|
21
|
+
|
|
22
|
+
router:
|
|
23
|
+
image: node:20-slim
|
|
24
|
+
container_name: shannon-router
|
|
25
|
+
profiles: ["router"]
|
|
26
|
+
command: >
|
|
27
|
+
sh -c "apt-get update && apt-get install -y gettext-base &&
|
|
28
|
+
npm install -g @musistudio/claude-code-router &&
|
|
29
|
+
mkdir -p /root/.claude-code-router &&
|
|
30
|
+
envsubst < /config/router-config.json > /root/.claude-code-router/config.json &&
|
|
31
|
+
ccr start"
|
|
32
|
+
ports:
|
|
33
|
+
- "127.0.0.1:3456:3456"
|
|
34
|
+
volumes:
|
|
35
|
+
- ./router-config.json:/config/router-config.json:ro
|
|
36
|
+
environment:
|
|
37
|
+
- HOST=0.0.0.0
|
|
38
|
+
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
|
|
39
|
+
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
|
|
40
|
+
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-}
|
|
41
|
+
- ROUTER_DEFAULT=${ROUTER_DEFAULT:-openai,gpt-4o}
|
|
42
|
+
healthcheck:
|
|
43
|
+
test: ["CMD", "node", "-e", "require('http').get('http://localhost:3456/health', r => process.exit(r.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1))"]
|
|
44
|
+
interval: 10s
|
|
45
|
+
timeout: 5s
|
|
46
|
+
retries: 5
|
|
47
|
+
start_period: 30s
|
|
48
|
+
|
|
49
|
+
volumes:
|
|
50
|
+
temporal-data:
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"HOST": "0.0.0.0",
|
|
3
|
+
"APIKEY": "shannon-router-key",
|
|
4
|
+
"LOG": true,
|
|
5
|
+
"LOG_LEVEL": "info",
|
|
6
|
+
"NON_INTERACTIVE_MODE": true,
|
|
7
|
+
"API_TIMEOUT_MS": 600000,
|
|
8
|
+
"Providers": [
|
|
9
|
+
{
|
|
10
|
+
"name": "openai",
|
|
11
|
+
"api_base_url": "https://api.openai.com/v1/chat/completions",
|
|
12
|
+
"api_key": "$OPENAI_API_KEY",
|
|
13
|
+
"models": ["gpt-5.2", "gpt-5-mini"],
|
|
14
|
+
"transformer": {
|
|
15
|
+
"use": [["maxcompletiontokens", { "max_completion_tokens": 16384 }]]
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "openrouter",
|
|
20
|
+
"api_base_url": "https://openrouter.ai/api/v1/chat/completions",
|
|
21
|
+
"api_key": "$OPENROUTER_API_KEY",
|
|
22
|
+
"models": ["google/gemini-3-flash-preview"],
|
|
23
|
+
"transformer": {
|
|
24
|
+
"use": ["openrouter"]
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"Router": {
|
|
29
|
+
"default": "$ROUTER_DEFAULT"
|
|
30
|
+
}
|
|
31
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@keygraph/shannon",
|
|
3
|
+
"version": "1.0.0-beta.1",
|
|
4
|
+
"description": "Shannon - Autonomous white-box AI pentester for web applications and APIs by Keygraph",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.mjs",
|
|
7
|
+
"bin": {
|
|
8
|
+
"shannon": "dist/index.mjs"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"infra"
|
|
13
|
+
],
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"@clack/prompts": "^1.1.0",
|
|
16
|
+
"chokidar": "^5.0.0",
|
|
17
|
+
"dotenv": "^17.3.1",
|
|
18
|
+
"smol-toml": "^1.6.0"
|
|
19
|
+
},
|
|
20
|
+
"keywords": [
|
|
21
|
+
"security",
|
|
22
|
+
"pentest",
|
|
23
|
+
"penetration-testing",
|
|
24
|
+
"vulnerability-assessment",
|
|
25
|
+
"ai",
|
|
26
|
+
"white-box",
|
|
27
|
+
"owasp",
|
|
28
|
+
"exploitation",
|
|
29
|
+
"appsec",
|
|
30
|
+
"keygraph"
|
|
31
|
+
],
|
|
32
|
+
"author": "",
|
|
33
|
+
"license": "AGPL-3.0-only",
|
|
34
|
+
"repository": {
|
|
35
|
+
"type": "git",
|
|
36
|
+
"url": "git+https://github.com/KeygraphHQ/shannon.git",
|
|
37
|
+
"directory": "apps/cli"
|
|
38
|
+
},
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": ">=18"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"tsdown": "^0.21.2"
|
|
44
|
+
},
|
|
45
|
+
"scripts": {
|
|
46
|
+
"build": "tsdown",
|
|
47
|
+
"check": "tsc --noEmit",
|
|
48
|
+
"clean": "rm -rf dist"
|
|
49
|
+
}
|
|
50
|
+
}
|