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
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.7.5
1
+ 1.8.1
@@ -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
- const result = spawnSync(
958
- 'powershell',
959
- ['-ExecutionPolicy', 'Bypass', '-File', ps1, ...args],
960
- { stdio: 'inherit', shell: false }
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[]]$Languages = @()
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
- $Languages += @("typescript","python")
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
- $Languages += @("typescript","python")
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
- $Languages += @("typescript","java","python")
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
- $ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
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 ($Languages.Count -gt 0) {
174
- Write-Host "Languages: $($Languages -join ', ')"
188
+ if ($LangArray.Count -gt 0) {
189
+ Write-Host "Languages: $($LangArray -join ', ')"
175
190
  }
176
191
  Write-Host ""
177
192
 
178
- $Confirm = Read-Host "Proceed with install? [Y/n]"
179
- if ($Confirm -and $Confirm -notmatch '^[Yy]$') {
180
- Write-Host "Install cancelled."
181
- exit 0
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 $Languages) {
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 = $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" "$AGENTS_DEST" "Agents ($AGENT_COUNT)"
480
- install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills ($SKILL_COUNT)"
481
- install_dir "$SCRIPT_DIR/commands" "$COMMANDS_DEST" "Commands ($CMD_COUNT)"
482
- install_hooks "$HOOKS_DEST"
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.0",
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",