kodelyth-ecc 1.5.10 → 1.7.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/.github/workflows/publish.yml +19 -0
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +447 -0
- package/CLAUDE.md +48 -16
- package/README.md +265 -81
- package/VERSION +1 -1
- package/actions/ecc-review/README.md +243 -0
- package/actions/ecc-review/action.yml +158 -0
- package/actions/ecc-review/post-comment.js +171 -0
- package/actions/ecc-review/run-review.js +285 -0
- package/agents/backdoor-hunter.md +260 -0
- package/agents/chaos-engineer.md +251 -0
- package/agents/code-stealer-detector.md +228 -0
- package/agents/jailbreak-tester.md +222 -0
- package/agents/license-violation-finder.md +212 -0
- package/agents/prompt-injection-hunter.md +126 -0
- package/agents/secret-hunter.md +209 -0
- package/agents/supply-chain-auditor.md +195 -0
- package/bin/kodelyth-ecc.js +875 -1
- package/bundles/enterprise.md +172 -0
- package/bundles/indie-hacker.md +106 -0
- package/bundles/red-team.md +138 -0
- package/cat +0 -0
- package/commands/dashboard.md +67 -0
- package/commands/devil-mode.md +121 -0
- package/commands/memory-evolve.md +71 -0
- package/commands/replay.md +61 -0
- package/commands/route-model.md +48 -0
- package/commands/swarm.md +68 -0
- package/commands/verify-supply-chain.md +59 -0
- package/docs/dashboard.md +211 -0
- package/docs/evolve.md +303 -0
- package/docs/mcp-clients.md +167 -0
- package/docs/mcp.md +178 -0
- package/docs/replay.md +244 -0
- package/docs/supply-chain.md +207 -0
- package/docs/swarm.md +243 -0
- package/hooks/hooks.json +52 -0
- package/hooks/memory/auto-recall.js +29 -1
- package/hooks/safety/README.md +124 -0
- package/hooks/safety/lib/patterns.js +179 -0
- package/hooks/safety/prompt-injection-guard.js +179 -0
- package/hooks/safety/token-budget.js +229 -0
- package/install.ps1 +199 -2
- package/install.sh +285 -3
- package/package.json +30 -4
- package/rules/common/agent-intent-routing.md +182 -0
- package/rules/common/cost-aware-model-routing.md +152 -0
- package/scripts/dashboard/data.js +353 -0
- package/scripts/dashboard/server.js +324 -0
- package/scripts/dashboard/static/index.html +645 -0
- package/scripts/evolve/analyze.js +303 -0
- package/scripts/evolve/proposals.js +162 -0
- package/scripts/evolve/stats.js +219 -0
- package/scripts/mcp/catalog.js +244 -0
- package/scripts/mcp/client.js +181 -0
- package/scripts/mcp/prompts.js +133 -0
- package/scripts/mcp/resources.js +94 -0
- package/scripts/mcp/server.js +153 -0
- package/scripts/mcp/tools.js +465 -0
- package/scripts/replay/bundle.js +191 -0
- package/scripts/replay/replay.js +107 -0
- package/scripts/router/classify.js +232 -0
- package/scripts/supply-chain/manifest.js +154 -0
- package/scripts/supply-chain/sbom.js +202 -0
- package/scripts/supply-chain/verify.js +102 -0
- package/scripts/swarm/build-plan.js +193 -0
- package/skills/cost-aware-model-routing/SKILL.md +153 -0
- package/skills/kodelyth-quickstart/SKILL.md +7 -0
- package/skills/observability-dashboard/SKILL.md +119 -0
- package/skills/self-evolving-memory/SKILL.md +175 -0
- package/skills/session-replay/SKILL.md +199 -0
- package/skills/supply-chain-verification/SKILL.md +201 -0
- package/skills/swarm-orchestrator/SKILL.md +177 -0
- package/social/card-install.svg +1 -1
- package/social/facebook-group/POST.md +121 -0
- package/social/facebook-group/fb-1-3am-debug.png +0 -0
- package/social/facebook-group/fb-1-3am-debug.svg +97 -0
- package/social/facebook-group/fb-2-cpu-upgrade.png +0 -0
- package/social/facebook-group/fb-2-cpu-upgrade.svg +132 -0
- package/social/facebook-group/fb-3-before-after.png +0 -0
- package/social/facebook-group/fb-3-before-after.svg +94 -0
- package/social/facebook-v150.svg +5 -5
- package/social/github-social-preview.svg +119 -100
- package/social/readme-hero.svg +11 -11
- package/social/section-agents.svg +57 -0
- package/social/section-author.svg +54 -0
- package/social/section-dashboard.svg +59 -0
- package/social/section-devil.svg +54 -0
- package/social/section-hooks.svg +51 -0
- package/social/section-install.svg +42 -0
- package/social/section-learning.svg +52 -0
- package/social/section-mcp.svg +46 -0
- package/social/section-memory.svg +57 -0
- package/social/section-parallel.svg +72 -0
- package/social/section-routing.svg +51 -0
- package/social/x-card-agents-grid.svg +6 -6
- package/tests/dashboard/data.test.js +235 -0
- package/tests/dashboard/server.test.js +240 -0
- package/tests/evolve/analyze.test.js +169 -0
- package/tests/evolve/proposals.test.js +173 -0
- package/tests/evolve/stats.test.js +159 -0
- package/tests/mcp/catalog.test.js +98 -0
- package/tests/mcp/client.test.js +109 -0
- package/tests/mcp/resources-prompts.test.js +70 -0
- package/tests/mcp/tools.test.js +159 -0
- package/tests/replay/bundle.test.js +181 -0
- package/tests/replay/replay.test.js +131 -0
- package/tests/router/classify.test.js +164 -0
- package/tests/safety/patterns.test.js +94 -0
- package/tests/safety/prompt-injection-guard.test.js +111 -0
- package/tests/safety/token-budget.test.js +119 -0
- package/tests/supply-chain/manifest.test.js +147 -0
- package/tests/supply-chain/sbom.test.js +170 -0
- package/tests/supply-chain/verify.test.js +146 -0
- package/tests/swarm/build-plan.test.js +188 -0
- package/wiki/Agent-Reference.md +58 -7
- package/wiki/FAQ.md +204 -7
- package/wiki/Home.md +104 -28
- package/wiki/Hook-Reference.md +1 -1
- package/wiki/Installation-Guide.md +109 -6
- package/wiki/Platform-Support.md +239 -25
- package/wiki/Skill-Reference.md +101 -6
package/social/readme-hero.svg
CHANGED
|
@@ -25,33 +25,33 @@
|
|
|
25
25
|
<!-- LEFT — Brand block -->
|
|
26
26
|
<!-- Version badge -->
|
|
27
27
|
<rect x="32" y="22" width="72" height="20" rx="10" fill="#a78bfa" fill-opacity="0.15" stroke="#a78bfa" stroke-opacity="0.4" stroke-width="1"/>
|
|
28
|
-
<text x="68" y="36" font-size="9" fill="#a78bfa" text-anchor="middle" font-weight="700" letter-spacing="0.5">v1.
|
|
28
|
+
<text x="68" y="36" font-size="9" fill="#a78bfa" text-anchor="middle" font-weight="700" letter-spacing="0.5">v1.7.0</text>
|
|
29
29
|
|
|
30
30
|
<!-- Title -->
|
|
31
31
|
<text x="32" y="78" font-size="36" font-weight="900" letter-spacing="-1.5" fill="#ffffff" filter="url(#glow)">Kodelyth</text>
|
|
32
32
|
<text x="32" y="118" font-size="36" font-weight="900" letter-spacing="-1.5" fill="url(#accent)">ECC</text>
|
|
33
33
|
|
|
34
34
|
<!-- Tagline -->
|
|
35
|
-
<text x="32" y="148" font-size="12" fill="#6e7681" font-weight="400">AI coding toolkit.
|
|
35
|
+
<text x="32" y="148" font-size="12" fill="#6e7681" font-weight="400">AI coding toolkit. 12 platforms. Zero cloud.</text>
|
|
36
36
|
|
|
37
37
|
<!-- Separator -->
|
|
38
38
|
<line x1="32" y1="165" x2="290" y2="165" stroke="#21262d" stroke-width="1"/>
|
|
39
39
|
|
|
40
40
|
<!-- Stats row -->
|
|
41
41
|
<rect x="32" y="178" width="56" height="54" rx="8" fill="#ffffff" fill-opacity="0.04" stroke="#a78bfa" stroke-opacity="0.25" stroke-width="1"/>
|
|
42
|
-
<text x="60" y="202" font-size="20" font-weight="800" fill="#ffffff" text-anchor="middle">
|
|
42
|
+
<text x="60" y="202" font-size="20" font-weight="800" fill="#ffffff" text-anchor="middle">70</text>
|
|
43
43
|
<text x="60" y="220" font-size="8" fill="#6b7280" text-anchor="middle" letter-spacing="1.5">AGENTS</text>
|
|
44
44
|
|
|
45
45
|
<rect x="96" y="178" width="56" height="54" rx="8" fill="#ffffff" fill-opacity="0.04" stroke="#2563eb" stroke-opacity="0.25" stroke-width="1"/>
|
|
46
|
-
<text x="124" y="202" font-size="20" font-weight="800" fill="#ffffff" text-anchor="middle">
|
|
46
|
+
<text x="124" y="202" font-size="20" font-weight="800" fill="#ffffff" text-anchor="middle">194</text>
|
|
47
47
|
<text x="124" y="220" font-size="8" fill="#6b7280" text-anchor="middle" letter-spacing="1.5">SKILLS</text>
|
|
48
48
|
|
|
49
49
|
<rect x="160" y="178" width="56" height="54" rx="8" fill="#ffffff" fill-opacity="0.04" stroke="#059669" stroke-opacity="0.25" stroke-width="1"/>
|
|
50
|
-
<text x="188" y="202" font-size="20" font-weight="800" fill="#ffffff" text-anchor="middle">
|
|
50
|
+
<text x="188" y="202" font-size="20" font-weight="800" fill="#ffffff" text-anchor="middle">97</text>
|
|
51
51
|
<text x="188" y="220" font-size="8" fill="#6b7280" text-anchor="middle" letter-spacing="1.5">COMMANDS</text>
|
|
52
52
|
|
|
53
53
|
<rect x="224" y="178" width="56" height="54" rx="8" fill="#ffffff" fill-opacity="0.04" stroke="#0891b2" stroke-opacity="0.25" stroke-width="1"/>
|
|
54
|
-
<text x="252" y="202" font-size="20" font-weight="800" fill="#ffffff" text-anchor="middle">
|
|
54
|
+
<text x="252" y="202" font-size="20" font-weight="800" fill="#ffffff" text-anchor="middle">22+</text>
|
|
55
55
|
<text x="252" y="220" font-size="8" fill="#6b7280" text-anchor="middle" letter-spacing="1.5">HOOKS</text>
|
|
56
56
|
|
|
57
57
|
<!-- RIGHT — Terminal -->
|
|
@@ -61,17 +61,17 @@
|
|
|
61
61
|
<circle cx="344" cy="31" r="5" fill="#ff5f57"/>
|
|
62
62
|
<circle cx="360" cy="31" r="5" fill="#febc2e"/>
|
|
63
63
|
<circle cx="376" cy="31" r="5" fill="#28c840"/>
|
|
64
|
-
<text x="612" y="35" font-size="11" fill="#484f58" text-anchor="middle">kodelyth-ecc v1.
|
|
64
|
+
<text x="612" y="35" font-size="11" fill="#484f58" text-anchor="middle">kodelyth-ecc v1.7.0</text>
|
|
65
65
|
|
|
66
66
|
<text x="348" y="66" font-family="'Courier New', Courier, monospace" font-size="11" fill="#10b981">$</text>
|
|
67
67
|
<text x="360" y="66" font-family="'Courier New', Courier, monospace" font-size="11" fill="#e6edf3"> npx kodelyth-ecc</text>
|
|
68
68
|
|
|
69
|
-
<text x="348" y="84" font-family="'Courier New', Courier, monospace" font-size="11" fill="#484f58">Installing Kodelyth ECC v1.
|
|
69
|
+
<text x="348" y="84" font-family="'Courier New', Courier, monospace" font-size="11" fill="#484f58">Installing Kodelyth ECC v1.7.0...</text>
|
|
70
70
|
|
|
71
|
-
<text x="348" y="108" font-family="'Courier New', Courier, monospace" font-size="11" fill="#e6edf3"> Agents (
|
|
71
|
+
<text x="348" y="108" font-family="'Courier New', Courier, monospace" font-size="11" fill="#e6edf3"> Agents (70) </text>
|
|
72
72
|
<text x="494" y="108" font-family="'Courier New', Courier, monospace" font-size="11" fill="#484f58">→ ~/.claude/agents/</text>
|
|
73
73
|
|
|
74
|
-
<text x="348" y="126" font-family="'Courier New', Courier, monospace" font-size="11" fill="#e6edf3"> Skills (
|
|
74
|
+
<text x="348" y="126" font-family="'Courier New', Courier, monospace" font-size="11" fill="#e6edf3"> Skills (194) </text>
|
|
75
75
|
<text x="494" y="126" font-family="'Courier New', Courier, monospace" font-size="11" fill="#484f58">→ ~/.claude/skills/</text>
|
|
76
76
|
|
|
77
77
|
<text x="348" y="144" font-family="'Courier New', Courier, monospace" font-size="11" fill="#e6edf3"> Compound learning </text>
|
|
@@ -84,6 +84,6 @@
|
|
|
84
84
|
<text x="494" y="180" font-family="'Courier New', Courier, monospace" font-size="11" fill="#484f58">→ ~/.kodelyth/memory/</text>
|
|
85
85
|
|
|
86
86
|
<rect x="348" y="196" width="500" height="36" rx="6" fill="#0d2b1d" stroke="#059669" stroke-opacity="0.3" stroke-width="1"/>
|
|
87
|
-
<text x="368" y="212" font-size="9" font-weight="700" fill="#10b981" letter-spacing="1">v1.
|
|
87
|
+
<text x="368" y="212" font-size="9" font-weight="700" fill="#10b981" letter-spacing="1">v1.7.0 — SEMANTIC INTENT ROUTING</text>
|
|
88
88
|
<text x="368" y="226" font-size="10" fill="#6b7280">Paste code or a stack trace — AI routes you automatically, no command needed</text>
|
|
89
89
|
</svg>
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<svg viewBox="0 0 900 210" xmlns="http://www.w3.org/2000/svg" font-family="'Segoe UI', system-ui, -apple-system, sans-serif">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" style="stop-color:#0d1117"/>
|
|
5
|
+
<stop offset="100%" style="stop-color:#161b22"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
</defs>
|
|
8
|
+
<rect width="900" height="210" fill="url(#bg)" rx="12"/>
|
|
9
|
+
<rect width="900" height="210" fill="none" stroke="#21262d" stroke-width="1" rx="12"/>
|
|
10
|
+
|
|
11
|
+
<!-- Label -->
|
|
12
|
+
<rect x="32" y="20" width="226" height="22" rx="11" fill="#a78bfa" fill-opacity="0.12" stroke="#a78bfa" stroke-opacity="0.35" stroke-width="1"/>
|
|
13
|
+
<text x="145" y="35" font-size="10" fill="#a78bfa" text-anchor="middle" font-weight="700" letter-spacing="1">SPECIALIST AGENT ARSENAL</text>
|
|
14
|
+
|
|
15
|
+
<text x="32" y="72" font-size="20" font-weight="800" fill="#ffffff">70 specialist agents — one for every situation</text>
|
|
16
|
+
<text x="32" y="94" font-size="12" fill="#6e7681">auto-routed by intent · 10 priority tiers · chains fire in sequence · no agent names needed</text>
|
|
17
|
+
|
|
18
|
+
<!-- Row 1 of cards — y=108, h=44 -->
|
|
19
|
+
|
|
20
|
+
<!-- Card 1: Debugging (amber) x=32, w=272 -->
|
|
21
|
+
<rect x="32" y="108" width="272" height="44" rx="6" fill="#f59e0b" fill-opacity="0.08" stroke="#f59e0b" stroke-opacity="0.3" stroke-width="1"/>
|
|
22
|
+
<text x="44" y="122" font-size="9.5" fill="#fbbf24" font-weight="700">Debugging</text>
|
|
23
|
+
<text x="44" y="136" font-size="8" fill="#fbbf24" opacity="0.8">debug-detective · silent-failure-hunter</text>
|
|
24
|
+
<text x="44" y="147" font-size="8" fill="#fbbf24" opacity="0.65">env-debugger · flake-hunter</text>
|
|
25
|
+
|
|
26
|
+
<!-- Card 2: Security (red) x=312, w=272 -->
|
|
27
|
+
<rect x="312" y="108" width="272" height="44" rx="6" fill="#ef4444" fill-opacity="0.08" stroke="#ef4444" stroke-opacity="0.3" stroke-width="1"/>
|
|
28
|
+
<text x="324" y="122" font-size="9.5" fill="#f87171" font-weight="700">Security</text>
|
|
29
|
+
<text x="324" y="136" font-size="8" fill="#f87171" opacity="0.8">security-reviewer · api-guardian</text>
|
|
30
|
+
<text x="324" y="147" font-size="8" fill="#f87171" opacity="0.65">secret-hunter · supply-chain-auditor</text>
|
|
31
|
+
|
|
32
|
+
<!-- Card 3: Code Review (purple) x=592, w=276 -->
|
|
33
|
+
<rect x="592" y="108" width="276" height="44" rx="6" fill="#a78bfa" fill-opacity="0.08" stroke="#a78bfa" stroke-opacity="0.3" stroke-width="1"/>
|
|
34
|
+
<text x="604" y="122" font-size="9.5" fill="#a78bfa" font-weight="700">Code Review</text>
|
|
35
|
+
<text x="604" y="136" font-size="8" fill="#a78bfa" opacity="0.8">code-reviewer · typescript-reviewer</text>
|
|
36
|
+
<text x="604" y="147" font-size="8" fill="#a78bfa" opacity="0.65">python · go · rust · java · kotlin</text>
|
|
37
|
+
|
|
38
|
+
<!-- Row 2 of cards — y=160, h=44 -->
|
|
39
|
+
|
|
40
|
+
<!-- Card 4: Architecture (blue) x=32, w=272 -->
|
|
41
|
+
<rect x="32" y="160" width="272" height="44" rx="6" fill="#2563eb" fill-opacity="0.08" stroke="#2563eb" stroke-opacity="0.3" stroke-width="1"/>
|
|
42
|
+
<text x="44" y="174" font-size="9.5" fill="#60a5fa" font-weight="700">Architecture</text>
|
|
43
|
+
<text x="44" y="188" font-size="8" fill="#60a5fa" opacity="0.8">architect · planner · pair-programmer</text>
|
|
44
|
+
<text x="44" y="199" font-size="8" fill="#60a5fa" opacity="0.65">migration-guide · code-architect</text>
|
|
45
|
+
|
|
46
|
+
<!-- Card 5: Testing (teal) x=312, w=272 -->
|
|
47
|
+
<rect x="312" y="160" width="272" height="44" rx="6" fill="#06b6d4" fill-opacity="0.08" stroke="#06b6d4" stroke-opacity="0.3" stroke-width="1"/>
|
|
48
|
+
<text x="324" y="174" font-size="9.5" fill="#38bdf8" font-weight="700">Testing</text>
|
|
49
|
+
<text x="324" y="188" font-size="8" fill="#38bdf8" opacity="0.8">tdd-guide · e2e-runner · pr-test-analyzer</text>
|
|
50
|
+
<text x="324" y="199" font-size="8" fill="#38bdf8" opacity="0.65">flake-hunter · healthcare-reviewer</text>
|
|
51
|
+
|
|
52
|
+
<!-- Card 6: Release & Ops (green) x=592, w=276 -->
|
|
53
|
+
<rect x="592" y="160" width="276" height="44" rx="6" fill="#059669" fill-opacity="0.08" stroke="#059669" stroke-opacity="0.3" stroke-width="1"/>
|
|
54
|
+
<text x="604" y="174" font-size="9.5" fill="#34d399" font-weight="700">Release & Ops</text>
|
|
55
|
+
<text x="604" y="188" font-size="8" fill="#34d399" opacity="0.8">release-captain · git-rescue</text>
|
|
56
|
+
<text x="604" y="199" font-size="8" fill="#34d399" opacity="0.65">dependency-doctor · incident-commander</text>
|
|
57
|
+
</svg>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<svg viewBox="0 0 900 160" xmlns="http://www.w3.org/2000/svg" font-family="'Segoe UI', system-ui, -apple-system, sans-serif">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" style="stop-color:#0d1117"/>
|
|
5
|
+
<stop offset="100%" style="stop-color:#161b22"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<linearGradient id="acc" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
8
|
+
<stop offset="0%" style="stop-color:#a78bfa"/>
|
|
9
|
+
<stop offset="100%" style="stop-color:#38bdf8"/>
|
|
10
|
+
</linearGradient>
|
|
11
|
+
<clipPath id="avatar">
|
|
12
|
+
<circle cx="76" cy="90" r="36"/>
|
|
13
|
+
</clipPath>
|
|
14
|
+
</defs>
|
|
15
|
+
<rect width="900" height="160" fill="url(#bg)" rx="12"/>
|
|
16
|
+
<rect width="900" height="160" fill="none" stroke="#21262d" stroke-width="1" rx="12"/>
|
|
17
|
+
<!-- accent top line -->
|
|
18
|
+
<rect x="0" y="0" width="900" height="3" rx="1" fill="url(#acc)"/>
|
|
19
|
+
|
|
20
|
+
<!-- Avatar circle -->
|
|
21
|
+
<circle cx="76" cy="90" r="38" fill="#21262d" stroke="#a78bfa" stroke-opacity="0.4" stroke-width="1.5"/>
|
|
22
|
+
<!-- Stylised "SI" initials -->
|
|
23
|
+
<text x="76" y="98" font-size="26" font-weight="900" fill="url(#acc)" text-anchor="middle">SI</text>
|
|
24
|
+
|
|
25
|
+
<!-- Name + role -->
|
|
26
|
+
<text x="132" y="68" font-size="22" font-weight="800" fill="#ffffff">Shofiqul Islam</text>
|
|
27
|
+
<text x="132" y="88" font-size="12" fill="#6e7681">Creator of Kodelyth ECC · Full-stack engineer · AI tooling</text>
|
|
28
|
+
|
|
29
|
+
<!-- Divider -->
|
|
30
|
+
<line x1="132" y1="98" x2="500" y2="98" stroke="#21262d" stroke-width="1"/>
|
|
31
|
+
|
|
32
|
+
<!-- Social links as pill badges -->
|
|
33
|
+
<rect x="132" y="108" width="72" height="26" rx="13" fill="#1877f2" fill-opacity="0.15" stroke="#1877f2" stroke-opacity="0.4" stroke-width="1"/>
|
|
34
|
+
<text x="168" y="124" font-size="10" fill="#60a5fa" text-anchor="middle" font-weight="700">Facebook</text>
|
|
35
|
+
|
|
36
|
+
<rect x="214" y="108" width="80" height="26" rx="13" fill="#e1306c" fill-opacity="0.12" stroke="#e1306c" stroke-opacity="0.4" stroke-width="1"/>
|
|
37
|
+
<text x="254" y="124" font-size="10" fill="#f472b6" text-anchor="middle" font-weight="700">Instagram</text>
|
|
38
|
+
|
|
39
|
+
<rect x="304" y="108" width="72" height="26" rx="13" fill="#ffffff" fill-opacity="0.06" stroke="#ffffff" stroke-opacity="0.2" stroke-width="1"/>
|
|
40
|
+
<text x="340" y="124" font-size="10" fill="#e6edf3" text-anchor="middle" font-weight="700">GitHub</text>
|
|
41
|
+
|
|
42
|
+
<rect x="386" y="108" width="86" height="26" rx="13" fill="#ffffff" fill-opacity="0.06" stroke="#ffffff" stroke-opacity="0.2" stroke-width="1"/>
|
|
43
|
+
<text x="429" y="124" font-size="10" fill="#e6edf3" text-anchor="middle" font-weight="700">X / Twitter</text>
|
|
44
|
+
|
|
45
|
+
<!-- Handle -->
|
|
46
|
+
<text x="132" y="150" font-size="10" fill="#6e7681">@sifxprime on all platforms</text>
|
|
47
|
+
|
|
48
|
+
<!-- Right: project links -->
|
|
49
|
+
<rect x="600" y="60" width="268" height="80" rx="8" fill="#161b22" stroke="#30363d" stroke-width="1"/>
|
|
50
|
+
<text x="616" y="82" font-size="10" fill="#6e7681" font-weight="600">PROJECT LINKS</text>
|
|
51
|
+
<text x="616" y="100" font-size="10" fill="#a78bfa">github.com/sifxprime/kodelyth-ecc</text>
|
|
52
|
+
<text x="616" y="116" font-size="10" fill="#38bdf8">npmjs.com/package/kodelyth-ecc</text>
|
|
53
|
+
<text x="616" y="132" font-size="10" fill="#34d399">kodelyth.com</text>
|
|
54
|
+
</svg>
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<svg viewBox="0 0 900 190" xmlns="http://www.w3.org/2000/svg" font-family="'Segoe UI', system-ui, -apple-system, sans-serif">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" style="stop-color:#0d1117"/>
|
|
5
|
+
<stop offset="100%" style="stop-color:#161b22"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<linearGradient id="teal" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
8
|
+
<stop offset="0%" style="stop-color:#38bdf8"/>
|
|
9
|
+
<stop offset="100%" style="stop-color:#06b6d4"/>
|
|
10
|
+
</linearGradient>
|
|
11
|
+
</defs>
|
|
12
|
+
<rect width="900" height="190" fill="url(#bg)" rx="12"/>
|
|
13
|
+
<rect width="900" height="190" fill="none" stroke="#21262d" stroke-width="1" rx="12"/>
|
|
14
|
+
|
|
15
|
+
<!-- Label -->
|
|
16
|
+
<rect x="32" y="20" width="174" height="22" rx="11" fill="#06b6d4" fill-opacity="0.12" stroke="#06b6d4" stroke-opacity="0.4" stroke-width="1"/>
|
|
17
|
+
<text x="119" y="35" font-size="10" fill="#38bdf8" text-anchor="middle" font-weight="700" letter-spacing="1">OBSERVABILITY DASHBOARD</text>
|
|
18
|
+
|
|
19
|
+
<text x="32" y="72" font-size="22" font-weight="800" fill="#ffffff">Your AI workspace — one glance, zero telemetry</text>
|
|
20
|
+
<text x="32" y="94" font-size="12" fill="#6e7681">localhost:5747 · SSE real-time push · GET-only · hardened headers · no external calls</text>
|
|
21
|
+
|
|
22
|
+
<!-- Mini browser chrome -->
|
|
23
|
+
<rect x="32" y="108" width="480" height="68" rx="7" fill="#161b22" stroke="#30363d" stroke-width="1"/>
|
|
24
|
+
<!-- browser bar -->
|
|
25
|
+
<rect x="32" y="108" width="480" height="22" rx="7" fill="#21262d"/>
|
|
26
|
+
<rect x="32" y="119" width="480" height="11" fill="#21262d"/>
|
|
27
|
+
<circle cx="50" cy="119" r="4" fill="#ef4444" opacity="0.7"/>
|
|
28
|
+
<circle cx="64" cy="119" r="4" fill="#f59e0b" opacity="0.7"/>
|
|
29
|
+
<circle cx="78" cy="119" r="4" fill="#22c55e" opacity="0.7"/>
|
|
30
|
+
<rect x="96" y="113" width="200" height="12" rx="3" fill="#0d1117"/>
|
|
31
|
+
<text x="196" y="122" font-size="7.5" fill="#6e7681" text-anchor="middle">http://127.0.0.1:5747</text>
|
|
32
|
+
<!-- green dot -->
|
|
33
|
+
<circle cx="468" cy="119" r="4" fill="#22c55e"/>
|
|
34
|
+
|
|
35
|
+
<!-- Tab bar -->
|
|
36
|
+
<rect x="38" y="130" width="58" height="16" rx="3" fill="#38bdf8" fill-opacity="0.2" stroke="#38bdf8" stroke-opacity="0.5" stroke-width="0.5"/>
|
|
37
|
+
<text x="67" y="141" font-size="7.5" fill="#38bdf8" text-anchor="middle" font-weight="700">Overview</text>
|
|
38
|
+
<text x="115" y="141" font-size="7.5" fill="#6e7681" text-anchor="middle">Memory</text>
|
|
39
|
+
<text x="152" y="141" font-size="7.5" fill="#6e7681" text-anchor="middle">Evolve</text>
|
|
40
|
+
<text x="188" y="141" font-size="7.5" fill="#6e7681" text-anchor="middle">Catalog</text>
|
|
41
|
+
<text x="225" y="141" font-size="7.5" fill="#6e7681" text-anchor="middle">Sessions</text>
|
|
42
|
+
|
|
43
|
+
<!-- Stat cards -->
|
|
44
|
+
<rect x="38" y="152" width="50" height="18" rx="3" fill="#a78bfa" fill-opacity="0.12" stroke="#a78bfa" stroke-opacity="0.3" stroke-width="0.5"/>
|
|
45
|
+
<text x="63" y="164" font-size="8" fill="#a78bfa" text-anchor="middle">70 agents</text>
|
|
46
|
+
<rect x="95" y="152" width="50" height="18" rx="3" fill="#2563eb" fill-opacity="0.12" stroke="#2563eb" stroke-opacity="0.3" stroke-width="0.5"/>
|
|
47
|
+
<text x="120" y="164" font-size="8" fill="#60a5fa" text-anchor="middle">194 skills</text>
|
|
48
|
+
<rect x="152" y="152" width="50" height="18" rx="3" fill="#059669" fill-opacity="0.12" stroke="#059669" stroke-opacity="0.3" stroke-width="0.5"/>
|
|
49
|
+
<text x="177" y="164" font-size="8" fill="#34d399" text-anchor="middle">memory ✓</text>
|
|
50
|
+
<rect x="209" y="152" width="60" height="18" rx="3" fill="#f59e0b" fill-opacity="0.12" stroke="#f59e0b" stroke-opacity="0.3" stroke-width="0.5"/>
|
|
51
|
+
<text x="239" y="164" font-size="8" fill="#fbbf24" text-anchor="middle">SSE live ●</text>
|
|
52
|
+
|
|
53
|
+
<!-- Right: launch command -->
|
|
54
|
+
<rect x="540" y="110" width="328" height="66" rx="8" fill="#161b22" stroke="#30363d" stroke-width="1"/>
|
|
55
|
+
<text x="556" y="130" font-size="9.5" fill="#6e7681">Launch the dashboard</text>
|
|
56
|
+
<rect x="556" y="138" width="295" height="26" rx="5" fill="#0d1117"/>
|
|
57
|
+
<text x="570" y="153" font-size="11" fill="#34d399" font-family="'Courier New', monospace">$ npx kodelyth-ecc dashboard</text>
|
|
58
|
+
<text x="556" y="172" font-size="9" fill="#6e7681">Opens automatically at http://127.0.0.1:5747</text>
|
|
59
|
+
</svg>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<svg viewBox="0 0 900 170" xmlns="http://www.w3.org/2000/svg" font-family="'Segoe UI', system-ui, -apple-system, sans-serif">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" style="stop-color:#0d1117"/>
|
|
5
|
+
<stop offset="100%" style="stop-color:#1a0a0a"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<linearGradient id="redgrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
8
|
+
<stop offset="0%" style="stop-color:#ef4444"/>
|
|
9
|
+
<stop offset="100%" style="stop-color:#dc2626"/>
|
|
10
|
+
</linearGradient>
|
|
11
|
+
</defs>
|
|
12
|
+
<rect width="900" height="170" fill="url(#bg)" rx="12"/>
|
|
13
|
+
<rect width="900" height="170" fill="none" stroke="#2d1515" stroke-width="1" rx="12"/>
|
|
14
|
+
<!-- subtle red glow top -->
|
|
15
|
+
<ellipse cx="450" cy="-10" rx="420" ry="60" fill="#ef4444" fill-opacity="0.04"/>
|
|
16
|
+
|
|
17
|
+
<!-- Label -->
|
|
18
|
+
<rect x="32" y="20" width="130" height="22" rx="11" fill="#ef4444" fill-opacity="0.15" stroke="#ef4444" stroke-opacity="0.5" stroke-width="1"/>
|
|
19
|
+
<text x="97" y="35" font-size="10" fill="#f87171" text-anchor="middle" font-weight="700" letter-spacing="1">DEVIL MODE</text>
|
|
20
|
+
|
|
21
|
+
<text x="32" y="70" font-size="22" font-weight="800" fill="#ffffff">8 adversarial agents. Red-team your own code.</text>
|
|
22
|
+
<text x="32" y="92" font-size="12" fill="#9ca3af">Before you go public — full secret, license, supply-chain, prompt-injection sweep in parallel.</text>
|
|
23
|
+
|
|
24
|
+
<!-- 8 agent pills in 2 rows -->
|
|
25
|
+
<rect x="32" y="110" width="148" height="22" rx="6" fill="#ef4444" fill-opacity="0.1" stroke="#ef4444" stroke-opacity="0.35" stroke-width="1"/>
|
|
26
|
+
<text x="106" y="124" font-size="9" fill="#f87171" text-anchor="middle" font-weight="600">prompt-injection-hunter</text>
|
|
27
|
+
|
|
28
|
+
<rect x="188" y="110" width="130" height="22" rx="6" fill="#ef4444" fill-opacity="0.1" stroke="#ef4444" stroke-opacity="0.3" stroke-width="1"/>
|
|
29
|
+
<text x="253" y="124" font-size="9" fill="#f87171" text-anchor="middle" font-weight="600">supply-chain-auditor</text>
|
|
30
|
+
|
|
31
|
+
<rect x="326" y="110" width="110" height="22" rx="6" fill="#ef4444" fill-opacity="0.1" stroke="#ef4444" stroke-opacity="0.3" stroke-width="1"/>
|
|
32
|
+
<text x="381" y="124" font-size="9" fill="#f87171" text-anchor="middle" font-weight="600">secret-hunter</text>
|
|
33
|
+
|
|
34
|
+
<rect x="444" y="110" width="148" height="22" rx="6" fill="#ef4444" fill-opacity="0.1" stroke="#ef4444" stroke-opacity="0.3" stroke-width="1"/>
|
|
35
|
+
<text x="518" y="124" font-size="9" fill="#f87171" text-anchor="middle" font-weight="600">license-violation-finder</text>
|
|
36
|
+
|
|
37
|
+
<rect x="32" y="138" width="110" height="22" rx="6" fill="#dc2626" fill-opacity="0.1" stroke="#dc2626" stroke-opacity="0.3" stroke-width="1"/>
|
|
38
|
+
<text x="87" y="152" font-size="9" fill="#fca5a5" text-anchor="middle" font-weight="600">jailbreak-tester</text>
|
|
39
|
+
|
|
40
|
+
<rect x="150" y="138" width="138" height="22" rx="6" fill="#dc2626" fill-opacity="0.1" stroke="#dc2626" stroke-opacity="0.3" stroke-width="1"/>
|
|
41
|
+
<text x="219" y="152" font-size="9" fill="#fca5a5" text-anchor="middle" font-weight="600">code-stealer-detector</text>
|
|
42
|
+
|
|
43
|
+
<rect x="296" y="138" width="120" height="22" rx="6" fill="#dc2626" fill-opacity="0.1" stroke="#dc2626" stroke-opacity="0.3" stroke-width="1"/>
|
|
44
|
+
<text x="356" y="152" font-size="9" fill="#fca5a5" text-anchor="middle" font-weight="600">backdoor-hunter</text>
|
|
45
|
+
|
|
46
|
+
<rect x="424" y="138" width="116" height="22" rx="6" fill="#dc2626" fill-opacity="0.1" stroke="#dc2626" stroke-opacity="0.3" stroke-width="1"/>
|
|
47
|
+
<text x="482" y="152" font-size="9" fill="#fca5a5" text-anchor="middle" font-weight="600">chaos-engineer</text>
|
|
48
|
+
|
|
49
|
+
<!-- Command right -->
|
|
50
|
+
<rect x="620" y="108" width="248" height="54" rx="8" fill="#1a0505" stroke="#2d1515" stroke-width="1"/>
|
|
51
|
+
<text x="636" y="126" font-size="9" fill="#6b7280"># before open-sourcing</text>
|
|
52
|
+
<text x="636" y="141" font-size="11" fill="#f87171" font-family="'Courier New', monospace">/devil-mode --pre-public</text>
|
|
53
|
+
<text x="636" y="157" font-size="9" fill="#6b7280"># all 8 at once</text>
|
|
54
|
+
</svg>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<svg viewBox="0 0 900 185" xmlns="http://www.w3.org/2000/svg" font-family="'Segoe UI', system-ui, -apple-system, sans-serif">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" style="stop-color:#0d1117"/>
|
|
5
|
+
<stop offset="100%" style="stop-color:#161b22"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<marker id="arr" markerWidth="7" markerHeight="7" refX="5" refY="3" orient="auto">
|
|
8
|
+
<path d="M0,0 L5,3 L0,6 Z" fill="#6e7681" opacity="0.7"/>
|
|
9
|
+
</marker>
|
|
10
|
+
</defs>
|
|
11
|
+
<rect width="900" height="185" fill="url(#bg)" rx="12"/>
|
|
12
|
+
<rect width="900" height="185" fill="none" stroke="#21262d" stroke-width="1" rx="12"/>
|
|
13
|
+
|
|
14
|
+
<!-- Label -->
|
|
15
|
+
<rect x="32" y="20" width="226" height="22" rx="11" fill="#f59e0b" fill-opacity="0.12" stroke="#f59e0b" stroke-opacity="0.4" stroke-width="1"/>
|
|
16
|
+
<text x="145" y="35" font-size="10" fill="#fbbf24" text-anchor="middle" font-weight="700" letter-spacing="1">AUTOMATED QUALITY HOOKS</text>
|
|
17
|
+
|
|
18
|
+
<text x="32" y="72" font-size="20" font-weight="800" fill="#ffffff">22+ hooks fire silently — before, during, and after</text>
|
|
19
|
+
<text x="32" y="94" font-size="12" fill="#6e7681">PreToolUse gates · PostToolUse auto-fixers · Stop verifiers · memory capture · prompt-injection guard</text>
|
|
20
|
+
|
|
21
|
+
<!-- Col 1: PreToolUse (purple) -->
|
|
22
|
+
<rect x="32" y="110" width="196" height="62" rx="7" fill="#a78bfa" fill-opacity="0.08" stroke="#a78bfa" stroke-opacity="0.35" stroke-width="1"/>
|
|
23
|
+
<text x="130" y="126" font-size="10" fill="#a78bfa" text-anchor="middle" font-weight="700">PreToolUse</text>
|
|
24
|
+
<text x="48" y="140" font-size="9" fill="#a78bfa" opacity="0.85">· secret-guard</text>
|
|
25
|
+
<text x="48" y="153" font-size="9" fill="#a78bfa" opacity="0.85">· injection-guard</text>
|
|
26
|
+
<text x="48" y="166" font-size="9" fill="#a78bfa" opacity="0.85">· file-size-guard · token-limit</text>
|
|
27
|
+
|
|
28
|
+
<line x1="231" y1="140" x2="258" y2="140" stroke="#6e7681" stroke-width="1" marker-end="url(#arr)" opacity="0.5"/>
|
|
29
|
+
|
|
30
|
+
<!-- Col 2: PostToolUse (blue) -->
|
|
31
|
+
<rect x="261" y="110" width="196" height="62" rx="7" fill="#2563eb" fill-opacity="0.08" stroke="#2563eb" stroke-opacity="0.35" stroke-width="1"/>
|
|
32
|
+
<text x="359" y="126" font-size="10" fill="#60a5fa" text-anchor="middle" font-weight="700">PostToolUse</text>
|
|
33
|
+
<text x="277" y="140" font-size="9" fill="#60a5fa" opacity="0.85">· auto-format</text>
|
|
34
|
+
<text x="277" y="153" font-size="9" fill="#60a5fa" opacity="0.85">· eslint-fix · type-check</text>
|
|
35
|
+
<text x="277" y="166" font-size="9" fill="#60a5fa" opacity="0.85">· smart-suggest · test-reminder</text>
|
|
36
|
+
|
|
37
|
+
<line x1="460" y1="140" x2="487" y2="140" stroke="#6e7681" stroke-width="1" marker-end="url(#arr)" opacity="0.5"/>
|
|
38
|
+
|
|
39
|
+
<!-- Col 3: Stop (green) -->
|
|
40
|
+
<rect x="490" y="110" width="196" height="62" rx="7" fill="#059669" fill-opacity="0.08" stroke="#059669" stroke-opacity="0.35" stroke-width="1"/>
|
|
41
|
+
<text x="588" y="126" font-size="10" fill="#34d399" text-anchor="middle" font-weight="700">Stop</text>
|
|
42
|
+
<text x="506" y="140" font-size="9" fill="#34d399" opacity="0.85">· build-verify · test-coverage</text>
|
|
43
|
+
<text x="506" y="153" font-size="9" fill="#34d399" opacity="0.85">· lesson-capture</text>
|
|
44
|
+
<text x="506" y="166" font-size="9" fill="#34d399" opacity="0.85">· memory-capture · cost-tracker</text>
|
|
45
|
+
|
|
46
|
+
<!-- Right stats -->
|
|
47
|
+
<text x="868" y="122" font-size="9" fill="#6e7681" text-anchor="end">22+ hooks total</text>
|
|
48
|
+
<text x="868" y="137" font-size="9" fill="#6e7681" text-anchor="end">async by default</text>
|
|
49
|
+
<text x="868" y="152" font-size="9" fill="#6e7681" text-anchor="end">zero added latency</text>
|
|
50
|
+
<text x="868" y="167" font-size="9" fill="#6e7681" text-anchor="end">project-configurable</text>
|
|
51
|
+
</svg>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<svg viewBox="0 0 900 170" xmlns="http://www.w3.org/2000/svg" font-family="'Segoe UI', system-ui, -apple-system, sans-serif">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" style="stop-color:#0d1117"/>
|
|
5
|
+
<stop offset="100%" style="stop-color:#161b22"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<linearGradient id="green" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
8
|
+
<stop offset="0%" style="stop-color:#34d399"/>
|
|
9
|
+
<stop offset="100%" style="stop-color:#059669"/>
|
|
10
|
+
</linearGradient>
|
|
11
|
+
</defs>
|
|
12
|
+
<rect width="900" height="170" fill="url(#bg)" rx="12"/>
|
|
13
|
+
<rect width="900" height="170" fill="none" stroke="#21262d" stroke-width="1" rx="12"/>
|
|
14
|
+
|
|
15
|
+
<!-- Label -->
|
|
16
|
+
<rect x="32" y="20" width="88" height="22" rx="11" fill="#059669" fill-opacity="0.15" stroke="#059669" stroke-opacity="0.4" stroke-width="1"/>
|
|
17
|
+
<text x="76" y="35" font-size="10" fill="#34d399" text-anchor="middle" font-weight="700" letter-spacing="1">INSTALL</text>
|
|
18
|
+
|
|
19
|
+
<text x="32" y="70" font-size="22" font-weight="800" fill="#ffffff">One command. 12 platforms. Any OS.</text>
|
|
20
|
+
<text x="32" y="92" font-size="12" fill="#6e7681">Node.js 18+ · macOS · Linux · Windows · no account · no telemetry</text>
|
|
21
|
+
|
|
22
|
+
<!-- 4 install cards -->
|
|
23
|
+
<rect x="32" y="108" width="192" height="50" rx="7" fill="#161b22" stroke="#059669" stroke-opacity="0.4" stroke-width="1"/>
|
|
24
|
+
<text x="48" y="126" font-size="9" fill="#34d399" font-weight="700">npm (recommended)</text>
|
|
25
|
+
<text x="48" y="142" font-size="10" fill="#e6edf3" font-family="'Courier New', monospace">npx kodelyth-ecc</text>
|
|
26
|
+
<text x="48" y="154" font-size="8" fill="#6e7681">any platform, always latest</text>
|
|
27
|
+
|
|
28
|
+
<rect x="234" y="108" width="192" height="50" rx="7" fill="#161b22" stroke="#2563eb" stroke-opacity="0.4" stroke-width="1"/>
|
|
29
|
+
<text x="250" y="126" font-size="9" fill="#60a5fa" font-weight="700">GitHub (latest commit)</text>
|
|
30
|
+
<text x="250" y="142" font-size="9.5" fill="#e6edf3" font-family="'Courier New', monospace">npx github:sifxprime/...</text>
|
|
31
|
+
<text x="250" y="154" font-size="8" fill="#6e7681">always bleeding edge</text>
|
|
32
|
+
|
|
33
|
+
<rect x="436" y="108" width="192" height="50" rx="7" fill="#161b22" stroke="#a78bfa" stroke-opacity="0.4" stroke-width="1"/>
|
|
34
|
+
<text x="452" y="126" font-size="9" fill="#a78bfa" font-weight="700">curl (macOS / Linux)</text>
|
|
35
|
+
<text x="452" y="142" font-size="9.5" fill="#e6edf3" font-family="'Courier New', monospace">curl -fsSL ... | bash</text>
|
|
36
|
+
<text x="452" y="154" font-size="8" fill="#6e7681">no Node required</text>
|
|
37
|
+
|
|
38
|
+
<rect x="638" y="108" width="192" height="50" rx="7" fill="#161b22" stroke="#f59e0b" stroke-opacity="0.4" stroke-width="1"/>
|
|
39
|
+
<text x="654" y="126" font-size="9" fill="#fbbf24" font-weight="700">MCP Server</text>
|
|
40
|
+
<text x="654" y="142" font-size="9.5" fill="#e6edf3" font-family="'Courier New', monospace">npx kodelyth-ecc mcp</text>
|
|
41
|
+
<text x="654" y="154" font-size="8" fill="#6e7681">Claude Desktop · LangGraph</text>
|
|
42
|
+
</svg>
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<svg viewBox="0 0 900 185" xmlns="http://www.w3.org/2000/svg" font-family="'Segoe UI', system-ui, -apple-system, sans-serif">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" style="stop-color:#0d1117"/>
|
|
5
|
+
<stop offset="100%" style="stop-color:#161b22"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<marker id="arr" markerWidth="7" markerHeight="7" refX="5" refY="3" orient="auto">
|
|
8
|
+
<path d="M0,0 L5,3 L0,6 Z" fill="#34d399" opacity="0.8"/>
|
|
9
|
+
</marker>
|
|
10
|
+
</defs>
|
|
11
|
+
<rect width="900" height="185" fill="url(#bg)" rx="12"/>
|
|
12
|
+
<rect width="900" height="185" fill="none" stroke="#21262d" stroke-width="1" rx="12"/>
|
|
13
|
+
|
|
14
|
+
<!-- Label -->
|
|
15
|
+
<rect x="32" y="20" width="224" height="22" rx="11" fill="#059669" fill-opacity="0.15" stroke="#059669" stroke-opacity="0.4" stroke-width="1"/>
|
|
16
|
+
<text x="144" y="35" font-size="10" fill="#34d399" text-anchor="middle" font-weight="700" letter-spacing="1">COMPOUND LEARNING SYSTEM</text>
|
|
17
|
+
|
|
18
|
+
<text x="32" y="72" font-size="20" font-weight="800" fill="#ffffff">Every correction stacks — Claude matches your style</text>
|
|
19
|
+
<text x="32" y="94" font-size="12" fill="#6e7681">corrections auto-encode · injected next session · 3 layers compound · zero setup needed</text>
|
|
20
|
+
|
|
21
|
+
<!-- Session 1 box -->
|
|
22
|
+
<rect x="32" y="108" width="136" height="64" rx="7" fill="#21262d" stroke="#30363d" stroke-width="1"/>
|
|
23
|
+
<text x="100" y="124" font-size="10" fill="#c9d1d9" text-anchor="middle" font-weight="700">Session 1</text>
|
|
24
|
+
<text x="44" y="138" font-size="9" fill="#6e7681">0 rules loaded</text>
|
|
25
|
+
<text x="44" y="151" font-size="9" fill="#6e7681">every question asked</text>
|
|
26
|
+
<text x="44" y="164" font-size="8" fill="#484f58">fresh install</text>
|
|
27
|
+
|
|
28
|
+
<line x1="171" y1="140" x2="185" y2="140" stroke="#34d399" stroke-width="1.5" marker-end="url(#arr)" opacity="0.7"/>
|
|
29
|
+
|
|
30
|
+
<!-- Session 5 box -->
|
|
31
|
+
<rect x="188" y="108" width="136" height="64" rx="7" fill="#059669" fill-opacity="0.1" stroke="#059669" stroke-opacity="0.35" stroke-width="1"/>
|
|
32
|
+
<text x="256" y="124" font-size="10" fill="#34d399" text-anchor="middle" font-weight="700">Week 2</text>
|
|
33
|
+
<text x="200" y="138" font-size="9" fill="#34d399" opacity="0.85">8 rules active</text>
|
|
34
|
+
<text x="200" y="151" font-size="9" fill="#34d399" opacity="0.85">use pnpm · no var</text>
|
|
35
|
+
<text x="200" y="164" font-size="8" fill="#34d399" opacity="0.6">no emoji · immutable</text>
|
|
36
|
+
|
|
37
|
+
<line x1="327" y1="140" x2="341" y2="140" stroke="#34d399" stroke-width="1.5" marker-end="url(#arr)" opacity="0.7"/>
|
|
38
|
+
|
|
39
|
+
<!-- Month 3 box -->
|
|
40
|
+
<rect x="344" y="108" width="136" height="64" rx="7" fill="#059669" fill-opacity="0.18" stroke="#059669" stroke-opacity="0.5" stroke-width="1"/>
|
|
41
|
+
<text x="412" y="124" font-size="10" fill="#34d399" text-anchor="middle" font-weight="700">Month 3+</text>
|
|
42
|
+
<text x="356" y="138" font-size="9" fill="#34d399" opacity="0.9">20+ rules stacked</text>
|
|
43
|
+
<text x="356" y="151" font-size="9" fill="#34d399" opacity="0.9">like a team member</text>
|
|
44
|
+
<text x="356" y="164" font-size="8" fill="#34d399" opacity="0.7">knows your whole style</text>
|
|
45
|
+
|
|
46
|
+
<!-- Right: 3 memory layers panel -->
|
|
47
|
+
<rect x="498" y="108" width="370" height="64" rx="7" fill="#161b22" stroke="#30363d" stroke-width="1"/>
|
|
48
|
+
<text x="514" y="124" font-size="9" fill="#6e7681" font-weight="600">3 MEMORY LAYERS</text>
|
|
49
|
+
<text x="514" y="139" font-size="9" fill="#a78bfa">Layer 1 · Project Lessons · tasks/lessons.md · per-project rules</text>
|
|
50
|
+
<text x="514" y="152" font-size="9" fill="#60a5fa">Layer 2 · Global BM25 · ~/.kodelyth/memory/ · cross-project recall</text>
|
|
51
|
+
<text x="514" y="165" font-size="9" fill="#34d399">Layer 3 · Intent Routing · 70 specialists · auto-routed every session</text>
|
|
52
|
+
</svg>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<svg viewBox="0 0 900 170" xmlns="http://www.w3.org/2000/svg" font-family="'Segoe UI', system-ui, -apple-system, sans-serif">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" style="stop-color:#0d1117"/>
|
|
5
|
+
<stop offset="100%" style="stop-color:#161b22"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<marker id="arr" markerWidth="7" markerHeight="7" refX="5" refY="3" orient="auto">
|
|
8
|
+
<path d="M0,0 L5,3 L0,6 Z" fill="#38bdf8" opacity="0.8"/>
|
|
9
|
+
</marker>
|
|
10
|
+
</defs>
|
|
11
|
+
<rect width="900" height="170" fill="url(#bg)" rx="12"/>
|
|
12
|
+
<rect width="900" height="170" fill="none" stroke="#21262d" stroke-width="1" rx="12"/>
|
|
13
|
+
|
|
14
|
+
<!-- Label -->
|
|
15
|
+
<rect x="32" y="20" width="138" height="22" rx="11" fill="#38bdf8" fill-opacity="0.12" stroke="#38bdf8" stroke-opacity="0.4" stroke-width="1"/>
|
|
16
|
+
<text x="101" y="35" font-size="10" fill="#38bdf8" text-anchor="middle" font-weight="700" letter-spacing="1">MCP SERVER v1.7.0</text>
|
|
17
|
+
|
|
18
|
+
<text x="32" y="70" font-size="22" font-weight="800" fill="#ffffff">Universal adapter — any agent framework speaks ECC</text>
|
|
19
|
+
<text x="32" y="92" font-size="12" fill="#6e7681">16 tools · 6 prompts · 365 resources · stdio JSON-RPC · zero telemetry</text>
|
|
20
|
+
|
|
21
|
+
<!-- Center hub -->
|
|
22
|
+
<rect x="340" y="108" width="140" height="48" rx="8" fill="#38bdf8" fill-opacity="0.1" stroke="#38bdf8" stroke-opacity="0.5" stroke-width="1.5"/>
|
|
23
|
+
<text x="410" y="129" font-size="11" fill="#38bdf8" text-anchor="middle" font-weight="800">kodelyth-ecc mcp</text>
|
|
24
|
+
<text x="410" y="145" font-size="8.5" fill="#38bdf8" text-anchor="middle" opacity="0.7">npx kodelyth-ecc mcp</text>
|
|
25
|
+
|
|
26
|
+
<!-- Left consumers -->
|
|
27
|
+
<rect x="32" y="108" width="110" height="22" rx="5" fill="#a78bfa" fill-opacity="0.1" stroke="#a78bfa" stroke-opacity="0.35" stroke-width="1"/>
|
|
28
|
+
<text x="87" y="122" font-size="9" fill="#a78bfa" text-anchor="middle" font-weight="600">Claude Desktop</text>
|
|
29
|
+
<rect x="32" y="136" width="110" height="22" rx="5" fill="#2563eb" fill-opacity="0.1" stroke="#2563eb" stroke-opacity="0.35" stroke-width="1"/>
|
|
30
|
+
<text x="87" y="150" font-size="9" fill="#60a5fa" text-anchor="middle" font-weight="600">LangGraph</text>
|
|
31
|
+
|
|
32
|
+
<line x1="144" y1="119" x2="337" y2="125" stroke="#38bdf8" stroke-width="1" marker-end="url(#arr)" opacity="0.5"/>
|
|
33
|
+
<line x1="144" y1="147" x2="337" y2="140" stroke="#38bdf8" stroke-width="1" marker-end="url(#arr)" opacity="0.5"/>
|
|
34
|
+
|
|
35
|
+
<!-- Right consumers -->
|
|
36
|
+
<rect x="684" y="108" width="110" height="22" rx="5" fill="#059669" fill-opacity="0.1" stroke="#059669" stroke-opacity="0.35" stroke-width="1"/>
|
|
37
|
+
<text x="739" y="122" font-size="9" fill="#34d399" text-anchor="middle" font-weight="600">AutoGen / CrewAI</text>
|
|
38
|
+
<rect x="684" y="136" width="110" height="22" rx="5" fill="#f59e0b" fill-opacity="0.1" stroke="#f59e0b" stroke-opacity="0.35" stroke-width="1"/>
|
|
39
|
+
<text x="739" y="150" font-size="9" fill="#fbbf24" text-anchor="middle" font-weight="600">OpenAI Agents SDK</text>
|
|
40
|
+
|
|
41
|
+
<line x1="483" y1="125" x2="681" y2="119" stroke="#38bdf8" stroke-width="1" marker-end="url(#arr)" opacity="0.5"/>
|
|
42
|
+
<line x1="483" y1="140" x2="681" y2="147" stroke="#38bdf8" stroke-width="1" marker-end="url(#arr)" opacity="0.5"/>
|
|
43
|
+
|
|
44
|
+
<!-- Resource counts below hub -->
|
|
45
|
+
<text x="350" y="164" font-size="8" fill="#6e7681">16 tools · 6 prompts · 365 resources</text>
|
|
46
|
+
</svg>
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<svg viewBox="0 0 900 175" xmlns="http://www.w3.org/2000/svg" font-family="'Segoe UI', system-ui, -apple-system, sans-serif">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" style="stop-color:#0d1117"/>
|
|
5
|
+
<stop offset="100%" style="stop-color:#161b22"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<linearGradient id="green" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
8
|
+
<stop offset="0%" style="stop-color:#34d399"/>
|
|
9
|
+
<stop offset="100%" style="stop-color:#059669"/>
|
|
10
|
+
</linearGradient>
|
|
11
|
+
<marker id="arr" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto">
|
|
12
|
+
<path d="M0,0 L6,3 L0,6 Z" fill="#34d399" opacity="0.8"/>
|
|
13
|
+
</marker>
|
|
14
|
+
</defs>
|
|
15
|
+
<rect width="900" height="175" fill="url(#bg)" rx="12"/>
|
|
16
|
+
<rect width="900" height="175" fill="none" stroke="#21262d" stroke-width="1" rx="12"/>
|
|
17
|
+
|
|
18
|
+
<!-- Label — widened to fit text properly -->
|
|
19
|
+
<rect x="32" y="20" width="226" height="22" rx="11" fill="#059669" fill-opacity="0.15" stroke="#059669" stroke-opacity="0.4" stroke-width="1"/>
|
|
20
|
+
<text x="145" y="35" font-size="10" fill="#34d399" text-anchor="middle" font-weight="700" letter-spacing="1">LOCAL SELF-LEARNING MEMORY</text>
|
|
21
|
+
|
|
22
|
+
<text x="32" y="72" font-size="22" font-weight="800" fill="#ffffff">Solve once. Remember forever. Zero cloud.</text>
|
|
23
|
+
<text x="32" y="94" font-size="12" fill="#6e7681">BM25 keyword recall · ~/.kodelyth/memory/ · auto-inject on every session · prompt-cache friendly</text>
|
|
24
|
+
|
|
25
|
+
<!-- 4-box flow -->
|
|
26
|
+
<!-- Box 1: Capture -->
|
|
27
|
+
<rect x="32" y="112" width="140" height="44" rx="7" fill="#059669" fill-opacity="0.12" stroke="#059669" stroke-opacity="0.4" stroke-width="1"/>
|
|
28
|
+
<text x="102" y="130" font-size="10" fill="#34d399" text-anchor="middle" font-weight="700">1 · Capture</text>
|
|
29
|
+
<text x="102" y="145" font-size="9" fill="#34d399" text-anchor="middle" opacity="0.75">Stop hook</text>
|
|
30
|
+
<text x="102" y="156" font-size="9" fill="#34d399" text-anchor="middle" opacity="0.75">you confirm</text>
|
|
31
|
+
|
|
32
|
+
<line x1="175" y1="134" x2="210" y2="134" stroke="#34d399" stroke-width="1.5" marker-end="url(#arr)" opacity="0.7"/>
|
|
33
|
+
|
|
34
|
+
<!-- Box 2: BM25 Store -->
|
|
35
|
+
<rect x="213" y="112" width="152" height="44" rx="7" fill="#2563eb" fill-opacity="0.1" stroke="#2563eb" stroke-opacity="0.35" stroke-width="1"/>
|
|
36
|
+
<text x="289" y="130" font-size="10" fill="#60a5fa" text-anchor="middle" font-weight="700">2 · BM25 Store</text>
|
|
37
|
+
<text x="289" y="145" font-size="9" fill="#60a5fa" text-anchor="middle" opacity="0.75">memories.jsonl</text>
|
|
38
|
+
<text x="289" y="156" font-size="9" fill="#60a5fa" text-anchor="middle" opacity="0.75">zero deps · your disk</text>
|
|
39
|
+
|
|
40
|
+
<line x1="368" y1="134" x2="403" y2="134" stroke="#34d399" stroke-width="1.5" marker-end="url(#arr)" opacity="0.7"/>
|
|
41
|
+
|
|
42
|
+
<!-- Box 3: Auto-Inject — text shortened to fit 152px -->
|
|
43
|
+
<rect x="406" y="112" width="152" height="44" rx="7" fill="#a78bfa" fill-opacity="0.1" stroke="#a78bfa" stroke-opacity="0.35" stroke-width="1"/>
|
|
44
|
+
<text x="482" y="130" font-size="10" fill="#a78bfa" text-anchor="middle" font-weight="700">3 · Auto-Inject</text>
|
|
45
|
+
<text x="482" y="145" font-size="9" fill="#a78bfa" text-anchor="middle" opacity="0.75">SessionStart hook</text>
|
|
46
|
+
<text x="482" y="156" font-size="9" fill="#a78bfa" text-anchor="middle" opacity="0.75">before AI responds</text>
|
|
47
|
+
|
|
48
|
+
<line x1="561" y1="134" x2="596" y2="134" stroke="#34d399" stroke-width="1.5" marker-end="url(#arr)" opacity="0.7"/>
|
|
49
|
+
|
|
50
|
+
<!-- Box 4: Result -->
|
|
51
|
+
<rect x="599" y="112" width="152" height="44" rx="7" fill="#f59e0b" fill-opacity="0.1" stroke="#f59e0b" stroke-opacity="0.35" stroke-width="1"/>
|
|
52
|
+
<text x="675" y="130" font-size="10" fill="#fbbf24" text-anchor="middle" font-weight="700">4 · 10× faster</text>
|
|
53
|
+
<text x="675" y="145" font-size="9" fill="#fbbf24" text-anchor="middle" opacity="0.75">past solution</text>
|
|
54
|
+
<text x="675" y="156" font-size="9" fill="#fbbf24" text-anchor="middle" opacity="0.75">surfaced in 3 s</text>
|
|
55
|
+
|
|
56
|
+
<text x="868" y="156" font-size="9" fill="#6e7681" text-anchor="end">cost: 10% on cached tokens (Anthropic / OpenAI)</text>
|
|
57
|
+
</svg>
|