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.
- package/CLAUDE.md +1 -1
- package/VERSION +1 -1
- package/bin/kodelyth-ecc.js +54 -5
- package/install.ps1 +30 -13
- package/install.sh +11 -4
- package/package.json +1 -1
- package/rules/common/agent-intent-routing.md +96 -195
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -47
- package/.github/ISSUE_TEMPLATE/config.yml +0 -8
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -41
- package/.github/ISSUE_TEMPLATE/good_first_issue.md +0 -36
- package/.github/ISSUE_TEMPLATE/new_agent.md +0 -52
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -53
- package/.github/workflows/ci.yml +0 -45
- package/.github/workflows/publish.yml +0 -60
- package/brand/concepts.svg +0 -109
- package/brand/convert.js +0 -161
- package/brand/favicon.svg +0 -7
- package/brand/fb-cover.svg +0 -34
- package/brand/fb-profile.svg +0 -21
- package/brand/kodelyth-dark.svg +0 -24
- package/brand/kodelyth-light.svg +0 -24
- package/brand/kodelyth-mark.svg +0 -20
- package/brand/package.json +0 -12
- package/docs/dashboard.md +0 -211
- package/docs/evolve.md +0 -303
- package/docs/mcp-clients.md +0 -167
- package/docs/mcp.md +0 -178
- package/docs/replay.md +0 -244
- package/docs/supply-chain.md +0 -207
- package/docs/swarm.md +0 -243
- package/skills/skill-comply/tests/test_grader.py +0 -137
- package/skills/skill-comply/tests/test_parser.py +0 -90
- package/social/card-agents.svg +0 -104
- package/social/card-install.svg +0 -58
- package/social/card-main.svg +0 -54
- package/social/facebook-v150.svg +0 -110
- package/social/fb-ad-main.svg +0 -128
- package/social/fb-post-features.svg +0 -118
- package/social/fb-post-launch.svg +0 -144
- package/social/fb-post-platforms.svg +0 -135
- package/social/github-social-preview.svg +0 -151
- package/social/hype-compound-learning.svg +0 -129
- package/social/hype-devil-mode.svg +0 -240
- package/social/hype-mcp-server.svg +0 -148
- package/social/hype-parallel-agents.svg +0 -162
- package/social/hype-stats-hero.svg +0 -138
- package/social/og-image.svg +0 -151
- package/social/readme-agents.svg +0 -138
- package/social/readme-hero.svg +0 -102
- package/social/section-agents.svg +0 -69
- package/social/section-author.svg +0 -66
- package/social/section-dashboard.svg +0 -71
- package/social/section-devil.svg +0 -66
- package/social/section-hooks.svg +0 -63
- package/social/section-install.svg +0 -54
- package/social/section-learning.svg +0 -64
- package/social/section-mcp.svg +0 -58
- package/social/section-memory.svg +0 -69
- package/social/section-parallel.svg +0 -84
- package/social/section-routing.svg +0 -63
- package/social/twitter-threads.md +0 -621
- package/social/x-card-agents-grid.svg +0 -120
- package/social/x-card-free.svg +0 -71
- package/social/x-card-hook.svg +0 -94
- package/tests/dashboard/data.test.js +0 -391
- package/tests/dashboard/server.test.js +0 -257
- package/tests/evolve/analyze.test.js +0 -169
- package/tests/evolve/proposals.test.js +0 -173
- package/tests/evolve/stats.test.js +0 -167
- package/tests/hooks/branch-name-check.test.js +0 -184
- package/tests/hooks/smart-suggest.test.js +0 -149
- package/tests/hooks/test-reminder.test.js +0 -181
- package/tests/mcp/catalog.test.js +0 -98
- package/tests/mcp/client.test.js +0 -113
- package/tests/mcp/resources-prompts.test.js +0 -70
- package/tests/mcp/tools.test.js +0 -159
- package/tests/memory/auto-recall.test.js +0 -132
- package/tests/memory/instincts.test.js +0 -258
- package/tests/memory/store.test.js +0 -203
- package/tests/replay/bundle.test.js +0 -181
- package/tests/replay/replay.test.js +0 -131
- package/tests/router/classify.test.js +0 -164
- package/tests/run-all.js +0 -55
- package/tests/safety/patterns.test.js +0 -94
- package/tests/safety/prompt-injection-guard.test.js +0 -111
- package/tests/safety/token-budget.test.js +0 -119
- package/tests/supply-chain/manifest.test.js +0 -147
- package/tests/supply-chain/sbom.test.js +0 -170
- package/tests/supply-chain/verify.test.js +0 -146
- package/tests/swarm/build-plan.test.js +0 -188
package/CLAUDE.md
CHANGED
|
@@ -4,7 +4,7 @@ Guidance for Claude Code when working with this repository.
|
|
|
4
4
|
|
|
5
5
|
## Project Overview
|
|
6
6
|
|
|
7
|
-
**Kodelyth ECC** — a production-grade AI coding toolkit:
|
|
7
|
+
**Kodelyth ECC** (Elite Code Crew) — a production-grade AI coding toolkit:
|
|
8
8
|
|
|
9
9
|
- **70 specialist agents** — debug-detective, incident-commander, load-tester, image-architect, kodelyth-memory, security-reviewer, plus 8 adversarial devil-mode agents
|
|
10
10
|
- **194 skills** — domain knowledge, patterns, testing, security, intent routing, local memory, swarm orchestration, MCP integration
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.8.1
|
package/bin/kodelyth-ecc.js
CHANGED
|
@@ -954,11 +954,60 @@ if (isWin) {
|
|
|
954
954
|
console.error('Error: install.ps1 not found. Please clone the repo and run install.ps1 manually.');
|
|
955
955
|
process.exit(1);
|
|
956
956
|
}
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
957
|
+
|
|
958
|
+
// Map CLI args (--target X, --bundle X, --profile X) → PowerShell named params (-Target X, -Bundle X)
|
|
959
|
+
// Positional language args (e.g. "typescript python") → collected for -Languages
|
|
960
|
+
const psArgs = [];
|
|
961
|
+
const languages = [];
|
|
962
|
+
for (let i = 0; i < args.length; i++) {
|
|
963
|
+
const a = args[i];
|
|
964
|
+
if ((a === '--target' || a === '-target') && args[i + 1]) {
|
|
965
|
+
psArgs.push('-Target', args[++i]); continue;
|
|
966
|
+
}
|
|
967
|
+
if ((a === '--bundle' || a === '-bundle') && args[i + 1]) {
|
|
968
|
+
psArgs.push('-Bundle', args[++i]); continue;
|
|
969
|
+
}
|
|
970
|
+
if ((a === '--profile' || a === '-profile') && args[i + 1]) {
|
|
971
|
+
// profile maps to languages in ps1
|
|
972
|
+
languages.push(args[++i]); continue;
|
|
973
|
+
}
|
|
974
|
+
if (!a.startsWith('-')) {
|
|
975
|
+
// positional = language module
|
|
976
|
+
languages.push(a); continue;
|
|
977
|
+
}
|
|
978
|
+
// pass through any other flags unmapped
|
|
979
|
+
psArgs.push(a);
|
|
980
|
+
}
|
|
981
|
+
if (languages.length > 0) {
|
|
982
|
+
psArgs.push('-Languages', languages.join(','));
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
// Try pwsh (PowerShell 7+) first, then fall back to powershell (5.1)
|
|
986
|
+
function trySpawn(bin) {
|
|
987
|
+
return spawnSync(bin, ['-NoLogo', '-ExecutionPolicy', 'Bypass', '-File', ps1, ...psArgs], {
|
|
988
|
+
stdio: 'inherit',
|
|
989
|
+
shell: false,
|
|
990
|
+
env: { ...process.env, KODELYTH_NONINTERACTIVE: '1' },
|
|
991
|
+
});
|
|
992
|
+
}
|
|
993
|
+
|
|
994
|
+
let result = trySpawn('pwsh');
|
|
995
|
+
if (result.error && result.error.code === 'ENOENT') {
|
|
996
|
+
// pwsh not found — try legacy powershell.exe
|
|
997
|
+
result = trySpawn('powershell');
|
|
998
|
+
}
|
|
999
|
+
|
|
1000
|
+
if (result.error) {
|
|
1001
|
+
console.error(
|
|
1002
|
+
'\nError: Could not launch PowerShell to run the installer.\n' +
|
|
1003
|
+
'Make sure PowerShell is installed and accessible in your PATH.\n' +
|
|
1004
|
+
' • Try: pwsh --version\n' +
|
|
1005
|
+
' • Or: powershell -Version\n' +
|
|
1006
|
+
'\nAlternatively, run the installer manually:\n' +
|
|
1007
|
+
` powershell -ExecutionPolicy Bypass -File "${ps1}"\n`
|
|
1008
|
+
);
|
|
1009
|
+
process.exit(1);
|
|
1010
|
+
}
|
|
962
1011
|
process.exit(result.status ?? 1);
|
|
963
1012
|
} else {
|
|
964
1013
|
const sh = path.join(ROOT, 'install.sh');
|
package/install.ps1
CHANGED
|
@@ -14,27 +14,40 @@
|
|
|
14
14
|
param(
|
|
15
15
|
[string]$Target = "claude-home",
|
|
16
16
|
[string]$Bundle = "",
|
|
17
|
-
[string
|
|
17
|
+
[string]$Languages = "" # comma-separated when called from npx (e.g. "typescript,python")
|
|
18
|
+
# PowerShell native call still accepts: -Languages @("typescript","python")
|
|
18
19
|
)
|
|
19
20
|
|
|
20
21
|
$ErrorActionPreference = "Stop"
|
|
21
22
|
|
|
23
|
+
# Normalize -Languages: accept both comma-separated string (npx) and array (direct PS call)
|
|
24
|
+
[string[]]$LangArray = if ($Languages -is [array]) {
|
|
25
|
+
$Languages | Where-Object { $_ -ne '' }
|
|
26
|
+
} elseif ($Languages -and $Languages -ne '') {
|
|
27
|
+
$Languages -split ',' | ForEach-Object { $_.Trim() } | Where-Object { $_ -ne '' }
|
|
28
|
+
} else {
|
|
29
|
+
@()
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
# Non-interactive mode: set by npx launcher (KODELYTH_NONINTERACTIVE=1) or --yes flag
|
|
33
|
+
$NonInteractive = ($env:KODELYTH_NONINTERACTIVE -eq '1')
|
|
34
|
+
|
|
22
35
|
# ── Bundle handling (audience-tailored cheat sheets) ─────────────────────────
|
|
23
36
|
if ($Bundle) {
|
|
24
37
|
switch ($Bundle.ToLower()) {
|
|
25
38
|
{ $_ -in "indie-hacker","indie" } {
|
|
26
39
|
$Bundle = "indie-hacker"
|
|
27
|
-
$
|
|
40
|
+
$LangArray += @("typescript","python")
|
|
28
41
|
Write-Host "Bundle: Indie Hacker -> ship-fast workflow + TS/Python" -ForegroundColor Cyan
|
|
29
42
|
}
|
|
30
43
|
{ $_ -in "red-team","redteam","security" } {
|
|
31
44
|
$Bundle = "red-team"
|
|
32
|
-
$
|
|
45
|
+
$LangArray += @("typescript","python")
|
|
33
46
|
Write-Host "Bundle: Red Team -> adversarial mindset + devil-mode crew" -ForegroundColor Cyan
|
|
34
47
|
}
|
|
35
48
|
{ $_ -in "enterprise","compliance" } {
|
|
36
49
|
$Bundle = "enterprise"
|
|
37
|
-
$
|
|
50
|
+
$LangArray += @("typescript","java","python")
|
|
38
51
|
Write-Host "Bundle: Enterprise -> compliance + audit + supply chain" -ForegroundColor Cyan
|
|
39
52
|
}
|
|
40
53
|
default {
|
|
@@ -51,7 +64,9 @@ Write-Host " Kodelyth ECC — Production-grade AI coding agent toolkit" -Foregr
|
|
|
51
64
|
Write-Host " 70 agents (8 devil-mode) · 194 skills · 97 commands · 22+ hooks · intent routing · local memory" -ForegroundColor Gray
|
|
52
65
|
Write-Host ""
|
|
53
66
|
|
|
54
|
-
$
|
|
67
|
+
# $PSScriptRoot is always the directory containing this .ps1 file,
|
|
68
|
+
# even when launched via Node's spawnSync (unlike $MyInvocation.MyCommand.Path).
|
|
69
|
+
$ScriptDir = if ($PSScriptRoot) { $PSScriptRoot } else { Split-Path -Parent $MyInvocation.MyCommand.Path }
|
|
55
70
|
|
|
56
71
|
# ── Resolve Destination ───────────────────────────────────────────────────────
|
|
57
72
|
$HomeDir = $env:USERPROFILE
|
|
@@ -170,15 +185,17 @@ switch ($Target) {
|
|
|
170
185
|
|
|
171
186
|
Write-Host "Install target: $Target" -ForegroundColor Yellow
|
|
172
187
|
Write-Host "Destination: $Dest"
|
|
173
|
-
if ($
|
|
174
|
-
Write-Host "Languages: $($
|
|
188
|
+
if ($LangArray.Count -gt 0) {
|
|
189
|
+
Write-Host "Languages: $($LangArray -join ', ')"
|
|
175
190
|
}
|
|
176
191
|
Write-Host ""
|
|
177
192
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
193
|
+
if (-not $NonInteractive) {
|
|
194
|
+
$Confirm = Read-Host "Proceed with install? [Y/n]"
|
|
195
|
+
if ($Confirm -and $Confirm -notmatch '^[Yy]$') {
|
|
196
|
+
Write-Host "Install cancelled."
|
|
197
|
+
exit 0
|
|
198
|
+
}
|
|
182
199
|
}
|
|
183
200
|
Write-Host ""
|
|
184
201
|
|
|
@@ -228,7 +245,7 @@ switch ($Target) {
|
|
|
228
245
|
Copy-Item -Path "$ScriptDir\rules\common\*" -Destination $RulesDest -Recurse -Force
|
|
229
246
|
Write-Host " [OK] Rules (common) -> $RulesDest" -ForegroundColor Green
|
|
230
247
|
}
|
|
231
|
-
foreach ($lang in $
|
|
248
|
+
foreach ($lang in $LangArray) {
|
|
232
249
|
if (Test-Path "$ScriptDir\rules\$lang") {
|
|
233
250
|
$LangDest = "$RulesDest\$lang"
|
|
234
251
|
if (-not (Test-Path $LangDest)) { New-Item -ItemType Directory -Path $LangDest -Force | Out-Null }
|
|
@@ -358,7 +375,7 @@ $State = @{
|
|
|
358
375
|
target = $Target
|
|
359
376
|
bundle = $Bundle
|
|
360
377
|
installed_at = (Get-Date -Format "yyyy-MM-ddTHH:mm:ssZ")
|
|
361
|
-
languages = $
|
|
378
|
+
languages = $LangArray
|
|
362
379
|
} | ConvertTo-Json
|
|
363
380
|
$State | Out-File -FilePath $StateFile -Encoding UTF8
|
|
364
381
|
Write-Host " [OK] Install state -> $StateFile" -ForegroundColor Green
|
package/install.sh
CHANGED
|
@@ -240,6 +240,7 @@ case "$TARGET" in
|
|
|
240
240
|
COMMANDS_DEST="$DEST/commands"
|
|
241
241
|
HOOKS_DEST="$DEST/hooks"
|
|
242
242
|
RULES_DEST="$DEST/rules"
|
|
243
|
+
SCRIPTS_DEST="$DEST/scripts"
|
|
243
244
|
INSTALL_MODE="user"
|
|
244
245
|
;;
|
|
245
246
|
antigravity)
|
|
@@ -476,10 +477,16 @@ echo ""
|
|
|
476
477
|
|
|
477
478
|
case "$TARGET" in
|
|
478
479
|
claude-home)
|
|
479
|
-
install_dir "$SCRIPT_DIR/agents"
|
|
480
|
-
install_dir "$SCRIPT_DIR/skills"
|
|
481
|
-
install_dir "$SCRIPT_DIR/commands"
|
|
482
|
-
install_hooks
|
|
480
|
+
install_dir "$SCRIPT_DIR/agents" "$AGENTS_DEST" "Agents ($AGENT_COUNT)"
|
|
481
|
+
install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills ($SKILL_COUNT)"
|
|
482
|
+
install_dir "$SCRIPT_DIR/commands" "$COMMANDS_DEST" "Commands ($CMD_COUNT)"
|
|
483
|
+
install_hooks "$HOOKS_DEST"
|
|
484
|
+
# Hook scripts: hooks/hooks.json references ${CLAUDE_PLUGIN_ROOT}/scripts/hooks and /scripts/memory
|
|
485
|
+
install_dir "$SCRIPT_DIR/scripts/hooks" "$SCRIPTS_DEST/hooks" "Hook scripts"
|
|
486
|
+
install_dir "$SCRIPT_DIR/scripts/memory" "$SCRIPTS_DEST/memory" "Memory scripts"
|
|
487
|
+
mkdir -p "$SCRIPTS_DEST/lib"
|
|
488
|
+
cp "$SCRIPT_DIR/scripts/lib/hook-flags.js" "$SCRIPTS_DEST/lib/hook-flags.js" 2>/dev/null || true
|
|
489
|
+
echo -e " ${GREEN}✓${RESET} Script libs ${BLUE}(→ $SCRIPTS_DEST/lib)${RESET}"
|
|
483
490
|
# Rules: install common + selected languages
|
|
484
491
|
mkdir -p "$RULES_DEST"
|
|
485
492
|
if [[ -d "$SCRIPT_DIR/rules/common" ]]; then
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kodelyth-ecc",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.2",
|
|
4
4
|
"description": "Production-grade AI coding toolkit — 70 agents (incl. devil-mode adversarial crew), 194 skills, 97 commands, parallel multi-agent commands, semantic intent routing, self-learning memory, and a built-in MCP server (16 tools / 6 prompts / 377 resources) that bridges to Claude Desktop, LangGraph, AutoGen, CrewAI, and OpenAI Agents SDK. Works with Claude Code, Windsurf, Cursor, Codex, Antigravity, OpenCode, Cline, RooCode, Aider, Kimi, and Gemini CLI.",
|
|
5
5
|
"author": "Kodelyth <github.com/sifxprime>",
|
|
6
6
|
"license": "MIT",
|