kodelyth-ecc 1.8.0 → 1.8.2

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.
Files changed (91) hide show
  1. package/CLAUDE.md +1 -1
  2. package/VERSION +1 -1
  3. package/bin/kodelyth-ecc.js +54 -5
  4. package/install.ps1 +30 -13
  5. package/install.sh +11 -4
  6. package/package.json +1 -1
  7. package/rules/common/agent-intent-routing.md +96 -195
  8. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -47
  9. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  10. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -41
  11. package/.github/ISSUE_TEMPLATE/good_first_issue.md +0 -36
  12. package/.github/ISSUE_TEMPLATE/new_agent.md +0 -52
  13. package/.github/PULL_REQUEST_TEMPLATE.md +0 -53
  14. package/.github/workflows/ci.yml +0 -45
  15. package/.github/workflows/publish.yml +0 -60
  16. package/brand/concepts.svg +0 -109
  17. package/brand/convert.js +0 -161
  18. package/brand/favicon.svg +0 -7
  19. package/brand/fb-cover.svg +0 -34
  20. package/brand/fb-profile.svg +0 -21
  21. package/brand/kodelyth-dark.svg +0 -24
  22. package/brand/kodelyth-light.svg +0 -24
  23. package/brand/kodelyth-mark.svg +0 -20
  24. package/brand/package.json +0 -12
  25. package/docs/dashboard.md +0 -211
  26. package/docs/evolve.md +0 -303
  27. package/docs/mcp-clients.md +0 -167
  28. package/docs/mcp.md +0 -178
  29. package/docs/replay.md +0 -244
  30. package/docs/supply-chain.md +0 -207
  31. package/docs/swarm.md +0 -243
  32. package/skills/skill-comply/tests/test_grader.py +0 -137
  33. package/skills/skill-comply/tests/test_parser.py +0 -90
  34. package/social/card-agents.svg +0 -104
  35. package/social/card-install.svg +0 -58
  36. package/social/card-main.svg +0 -54
  37. package/social/facebook-v150.svg +0 -110
  38. package/social/fb-ad-main.svg +0 -128
  39. package/social/fb-post-features.svg +0 -118
  40. package/social/fb-post-launch.svg +0 -144
  41. package/social/fb-post-platforms.svg +0 -135
  42. package/social/github-social-preview.svg +0 -151
  43. package/social/hype-compound-learning.svg +0 -129
  44. package/social/hype-devil-mode.svg +0 -240
  45. package/social/hype-mcp-server.svg +0 -148
  46. package/social/hype-parallel-agents.svg +0 -162
  47. package/social/hype-stats-hero.svg +0 -138
  48. package/social/og-image.svg +0 -151
  49. package/social/readme-agents.svg +0 -138
  50. package/social/readme-hero.svg +0 -102
  51. package/social/section-agents.svg +0 -69
  52. package/social/section-author.svg +0 -66
  53. package/social/section-dashboard.svg +0 -71
  54. package/social/section-devil.svg +0 -66
  55. package/social/section-hooks.svg +0 -63
  56. package/social/section-install.svg +0 -54
  57. package/social/section-learning.svg +0 -64
  58. package/social/section-mcp.svg +0 -58
  59. package/social/section-memory.svg +0 -69
  60. package/social/section-parallel.svg +0 -84
  61. package/social/section-routing.svg +0 -63
  62. package/social/twitter-threads.md +0 -621
  63. package/social/x-card-agents-grid.svg +0 -120
  64. package/social/x-card-free.svg +0 -71
  65. package/social/x-card-hook.svg +0 -94
  66. package/tests/dashboard/data.test.js +0 -391
  67. package/tests/dashboard/server.test.js +0 -257
  68. package/tests/evolve/analyze.test.js +0 -169
  69. package/tests/evolve/proposals.test.js +0 -173
  70. package/tests/evolve/stats.test.js +0 -167
  71. package/tests/hooks/branch-name-check.test.js +0 -184
  72. package/tests/hooks/smart-suggest.test.js +0 -149
  73. package/tests/hooks/test-reminder.test.js +0 -181
  74. package/tests/mcp/catalog.test.js +0 -98
  75. package/tests/mcp/client.test.js +0 -113
  76. package/tests/mcp/resources-prompts.test.js +0 -70
  77. package/tests/mcp/tools.test.js +0 -159
  78. package/tests/memory/auto-recall.test.js +0 -132
  79. package/tests/memory/instincts.test.js +0 -258
  80. package/tests/memory/store.test.js +0 -203
  81. package/tests/replay/bundle.test.js +0 -181
  82. package/tests/replay/replay.test.js +0 -131
  83. package/tests/router/classify.test.js +0 -164
  84. package/tests/run-all.js +0 -55
  85. package/tests/safety/patterns.test.js +0 -94
  86. package/tests/safety/prompt-injection-guard.test.js +0 -111
  87. package/tests/safety/token-budget.test.js +0 -119
  88. package/tests/supply-chain/manifest.test.js +0 -147
  89. package/tests/supply-chain/sbom.test.js +0 -170
  90. package/tests/supply-chain/verify.test.js +0 -146
  91. package/tests/swarm/build-plan.test.js +0 -188
@@ -1,66 +0,0 @@
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
-
55
- <!-- Ghost Depth Mark — brand stamp (scale 0.22×) -->
56
- <g transform="translate(810, 28) scale(0.22)" opacity="0.14">
57
- <polyline points="-44,4 12,100 -44,196"
58
- stroke="#ffffff" stroke-width="10"
59
- stroke-linecap="round" stroke-linejoin="round"
60
- fill="none"/>
61
- <polyline points="0,0 88,100 0,200"
62
- stroke="#ffffff" stroke-width="32"
63
- stroke-linecap="round" stroke-linejoin="round"
64
- fill="none"/>
65
- </g>
66
- </svg>
@@ -1,71 +0,0 @@
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
-
60
- <!-- Ghost Depth Mark — brand stamp (scale 0.25×) -->
61
- <g transform="translate(810, 28) scale(0.25)" opacity="0.14">
62
- <polyline points="-44,4 12,100 -44,196"
63
- stroke="#ffffff" stroke-width="10"
64
- stroke-linecap="round" stroke-linejoin="round"
65
- fill="none"/>
66
- <polyline points="0,0 88,100 0,200"
67
- stroke="#ffffff" stroke-width="32"
68
- stroke-linecap="round" stroke-linejoin="round"
69
- fill="none"/>
70
- </g>
71
- </svg>
@@ -1,66 +0,0 @@
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
-
55
- <!-- Ghost Depth Mark — brand stamp (scale 0.23×) -->
56
- <g transform="translate(810, 28) scale(0.23)" opacity="0.14">
57
- <polyline points="-44,4 12,100 -44,196"
58
- stroke="#ffffff" stroke-width="10"
59
- stroke-linecap="round" stroke-linejoin="round"
60
- fill="none"/>
61
- <polyline points="0,0 88,100 0,200"
62
- stroke="#ffffff" stroke-width="32"
63
- stroke-linecap="round" stroke-linejoin="round"
64
- fill="none"/>
65
- </g>
66
- </svg>
@@ -1,63 +0,0 @@
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
-
52
- <!-- Ghost Depth Mark — brand stamp (scale 0.26×) -->
53
- <g transform="translate(810, 28) scale(0.26)" opacity="0.14">
54
- <polyline points="-44,4 12,100 -44,196"
55
- stroke="#ffffff" stroke-width="10"
56
- stroke-linecap="round" stroke-linejoin="round"
57
- fill="none"/>
58
- <polyline points="0,0 88,100 0,200"
59
- stroke="#ffffff" stroke-width="32"
60
- stroke-linecap="round" stroke-linejoin="round"
61
- fill="none"/>
62
- </g>
63
- </svg>
@@ -1,54 +0,0 @@
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. 11 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
-
43
- <!-- Ghost Depth Mark — brand stamp (scale 0.23×) -->
44
- <g transform="translate(810, 28) scale(0.23)" opacity="0.14">
45
- <polyline points="-44,4 12,100 -44,196"
46
- stroke="#ffffff" stroke-width="10"
47
- stroke-linecap="round" stroke-linejoin="round"
48
- fill="none"/>
49
- <polyline points="0,0 88,100 0,200"
50
- stroke="#ffffff" stroke-width="32"
51
- stroke-linecap="round" stroke-linejoin="round"
52
- fill="none"/>
53
- </g>
54
- </svg>
@@ -1,64 +0,0 @@
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
-
53
- <!-- Ghost Depth Mark — brand stamp (scale 0.26×) -->
54
- <g transform="translate(810, 28) scale(0.26)" opacity="0.14">
55
- <polyline points="-44,4 12,100 -44,196"
56
- stroke="#ffffff" stroke-width="10"
57
- stroke-linecap="round" stroke-linejoin="round"
58
- fill="none"/>
59
- <polyline points="0,0 88,100 0,200"
60
- stroke="#ffffff" stroke-width="32"
61
- stroke-linecap="round" stroke-linejoin="round"
62
- fill="none"/>
63
- </g>
64
- </svg>
@@ -1,58 +0,0 @@
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.8.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
-
47
- <!-- Ghost Depth Mark — brand stamp (scale 0.23×) -->
48
- <g transform="translate(810, 28) scale(0.23)" opacity="0.14">
49
- <polyline points="-44,4 12,100 -44,196"
50
- stroke="#ffffff" stroke-width="10"
51
- stroke-linecap="round" stroke-linejoin="round"
52
- fill="none"/>
53
- <polyline points="0,0 88,100 0,200"
54
- stroke="#ffffff" stroke-width="32"
55
- stroke-linecap="round" stroke-linejoin="round"
56
- fill="none"/>
57
- </g>
58
- </svg>
@@ -1,69 +0,0 @@
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
-
58
- <!-- Ghost Depth Mark — brand stamp (scale 0.24×) -->
59
- <g transform="translate(810, 28) scale(0.24)" opacity="0.14">
60
- <polyline points="-44,4 12,100 -44,196"
61
- stroke="#ffffff" stroke-width="10"
62
- stroke-linecap="round" stroke-linejoin="round"
63
- fill="none"/>
64
- <polyline points="0,0 88,100 0,200"
65
- stroke="#ffffff" stroke-width="32"
66
- stroke-linecap="round" stroke-linejoin="round"
67
- fill="none"/>
68
- </g>
69
- </svg>