@techwavedev/agi-agent-kit 1.1.3

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 (196) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +147 -0
  3. package/bin/init.js +471 -0
  4. package/package.json +36 -0
  5. package/templates/.agent/agents/backend-specialist.md +263 -0
  6. package/templates/.agent/agents/code-archaeologist.md +106 -0
  7. package/templates/.agent/agents/database-architect.md +226 -0
  8. package/templates/.agent/agents/debugger.md +225 -0
  9. package/templates/.agent/agents/devops-engineer.md +242 -0
  10. package/templates/.agent/agents/documentation-writer.md +104 -0
  11. package/templates/.agent/agents/explorer-agent.md +73 -0
  12. package/templates/.agent/agents/frontend-specialist.md +556 -0
  13. package/templates/.agent/agents/game-developer.md +162 -0
  14. package/templates/.agent/agents/mobile-developer.md +377 -0
  15. package/templates/.agent/agents/orchestrator.md +416 -0
  16. package/templates/.agent/agents/penetration-tester.md +188 -0
  17. package/templates/.agent/agents/performance-optimizer.md +187 -0
  18. package/templates/.agent/agents/product-manager.md +112 -0
  19. package/templates/.agent/agents/project-planner.md +403 -0
  20. package/templates/.agent/agents/qa-automation-engineer.md +109 -0
  21. package/templates/.agent/agents/security-auditor.md +170 -0
  22. package/templates/.agent/agents/seo-specialist.md +111 -0
  23. package/templates/.agent/agents/test-engineer.md +158 -0
  24. package/templates/.agent/rules/GEMINI.md +253 -0
  25. package/templates/.agent/workflows/brainstorm.md +113 -0
  26. package/templates/.agent/workflows/create.md +59 -0
  27. package/templates/.agent/workflows/debug.md +103 -0
  28. package/templates/.agent/workflows/deploy.md +176 -0
  29. package/templates/.agent/workflows/enhance.md +63 -0
  30. package/templates/.agent/workflows/orchestrate.md +237 -0
  31. package/templates/.agent/workflows/plan.md +89 -0
  32. package/templates/.agent/workflows/preview.md +81 -0
  33. package/templates/.agent/workflows/status.md +86 -0
  34. package/templates/.agent/workflows/test.md +144 -0
  35. package/templates/.agent/workflows/ui-ux-pro-max.md +296 -0
  36. package/templates/base/.env.example +54 -0
  37. package/templates/base/AGENTS.md +463 -0
  38. package/templates/base/requirements.txt +6 -0
  39. package/templates/base/skill-creator/LICENSE.txt +202 -0
  40. package/templates/base/skill-creator/SKILL_skillcreator.md +389 -0
  41. package/templates/base/skill-creator/references/output-patterns.md +82 -0
  42. package/templates/base/skill-creator/references/workflows.md +28 -0
  43. package/templates/base/skill-creator/scripts/init_skill.py +304 -0
  44. package/templates/base/skill-creator/scripts/package_skill.py +110 -0
  45. package/templates/base/skill-creator/scripts/quick_validate.py +95 -0
  46. package/templates/base/skill-creator/scripts/update_catalog.py +371 -0
  47. package/templates/skills/core/README.md +21 -0
  48. package/templates/skills/core/documentation/SKILL.md +351 -0
  49. package/templates/skills/core/documentation/references/best_practices.md +201 -0
  50. package/templates/skills/core/documentation/scripts/analyze_code.py +307 -0
  51. package/templates/skills/core/documentation/scripts/detect_changes.py +460 -0
  52. package/templates/skills/core/documentation/scripts/generate_changelog.py +312 -0
  53. package/templates/skills/core/documentation/scripts/sync_docs.py +272 -0
  54. package/templates/skills/core/documentation/scripts/update_skill_docs.py +366 -0
  55. package/templates/skills/core/pdf-reader/SKILL.md +104 -0
  56. package/templates/skills/core/pdf-reader/references/pdf_libraries.md +83 -0
  57. package/templates/skills/core/pdf-reader/scripts/extract_text.py +295 -0
  58. package/templates/skills/core/qdrant-memory/SKILL.md +435 -0
  59. package/templates/skills/core/qdrant-memory/references/advanced_patterns.md +375 -0
  60. package/templates/skills/core/qdrant-memory/references/collection_schemas.md +229 -0
  61. package/templates/skills/core/qdrant-memory/references/complete_guide.md +724 -0
  62. package/templates/skills/core/qdrant-memory/references/embedding_models.md +325 -0
  63. package/templates/skills/core/qdrant-memory/scripts/benchmark_token_savings.py +640 -0
  64. package/templates/skills/core/qdrant-memory/scripts/embedding_utils.py +323 -0
  65. package/templates/skills/core/qdrant-memory/scripts/hybrid_search.py +214 -0
  66. package/templates/skills/core/qdrant-memory/scripts/init_collection.py +193 -0
  67. package/templates/skills/core/qdrant-memory/scripts/memory_retrieval.py +345 -0
  68. package/templates/skills/core/qdrant-memory/scripts/semantic_cache.py +282 -0
  69. package/templates/skills/core/qdrant-memory/scripts/test_skill.py +655 -0
  70. package/templates/skills/core/webcrawler/SKILL.md +292 -0
  71. package/templates/skills/core/webcrawler/references/advanced_crawling.md +181 -0
  72. package/templates/skills/core/webcrawler/scripts/crawl_docs.py +532 -0
  73. package/templates/skills/core/webcrawler/scripts/extract_page.py +189 -0
  74. package/templates/skills/core/webcrawler/scripts/filter_docs.py +200 -0
  75. package/templates/skills/knowledge/api-patterns/SKILL.md +81 -0
  76. package/templates/skills/knowledge/api-patterns/api-style.md +42 -0
  77. package/templates/skills/knowledge/api-patterns/auth.md +24 -0
  78. package/templates/skills/knowledge/api-patterns/documentation.md +26 -0
  79. package/templates/skills/knowledge/api-patterns/graphql.md +41 -0
  80. package/templates/skills/knowledge/api-patterns/rate-limiting.md +31 -0
  81. package/templates/skills/knowledge/api-patterns/response.md +37 -0
  82. package/templates/skills/knowledge/api-patterns/rest.md +40 -0
  83. package/templates/skills/knowledge/api-patterns/scripts/api_validator.py +211 -0
  84. package/templates/skills/knowledge/api-patterns/security-testing.md +122 -0
  85. package/templates/skills/knowledge/api-patterns/trpc.md +41 -0
  86. package/templates/skills/knowledge/api-patterns/versioning.md +22 -0
  87. package/templates/skills/knowledge/app-builder/SKILL.md +75 -0
  88. package/templates/skills/knowledge/app-builder/agent-coordination.md +71 -0
  89. package/templates/skills/knowledge/app-builder/feature-building.md +53 -0
  90. package/templates/skills/knowledge/app-builder/project-detection.md +34 -0
  91. package/templates/skills/knowledge/app-builder/scaffolding.md +118 -0
  92. package/templates/skills/knowledge/app-builder/tech-stack.md +40 -0
  93. package/templates/skills/knowledge/app-builder/templates/SKILL.md +39 -0
  94. package/templates/skills/knowledge/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  95. package/templates/skills/knowledge/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  96. package/templates/skills/knowledge/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  97. package/templates/skills/knowledge/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  98. package/templates/skills/knowledge/app-builder/templates/express-api/TEMPLATE.md +83 -0
  99. package/templates/skills/knowledge/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  100. package/templates/skills/knowledge/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  101. package/templates/skills/knowledge/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
  102. package/templates/skills/knowledge/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
  103. package/templates/skills/knowledge/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
  104. package/templates/skills/knowledge/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
  105. package/templates/skills/knowledge/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  106. package/templates/skills/knowledge/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
  107. package/templates/skills/knowledge/architecture/SKILL.md +55 -0
  108. package/templates/skills/knowledge/architecture/context-discovery.md +43 -0
  109. package/templates/skills/knowledge/architecture/examples.md +94 -0
  110. package/templates/skills/knowledge/architecture/pattern-selection.md +68 -0
  111. package/templates/skills/knowledge/architecture/patterns-reference.md +50 -0
  112. package/templates/skills/knowledge/architecture/trade-off-analysis.md +77 -0
  113. package/templates/skills/knowledge/bash-linux/SKILL.md +199 -0
  114. package/templates/skills/knowledge/behavioral-modes/SKILL.md +242 -0
  115. package/templates/skills/knowledge/brainstorming/SKILL.md +163 -0
  116. package/templates/skills/knowledge/brainstorming/dynamic-questioning.md +350 -0
  117. package/templates/skills/knowledge/clean-code/SKILL.md +201 -0
  118. package/templates/skills/knowledge/code-review-checklist/SKILL.md +109 -0
  119. package/templates/skills/knowledge/database-design/SKILL.md +52 -0
  120. package/templates/skills/knowledge/database-design/database-selection.md +43 -0
  121. package/templates/skills/knowledge/database-design/indexing.md +39 -0
  122. package/templates/skills/knowledge/database-design/migrations.md +48 -0
  123. package/templates/skills/knowledge/database-design/optimization.md +36 -0
  124. package/templates/skills/knowledge/database-design/orm-selection.md +30 -0
  125. package/templates/skills/knowledge/database-design/schema-design.md +56 -0
  126. package/templates/skills/knowledge/database-design/scripts/schema_validator.py +172 -0
  127. package/templates/skills/knowledge/deployment-procedures/SKILL.md +241 -0
  128. package/templates/skills/knowledge/doc.md +177 -0
  129. package/templates/skills/knowledge/documentation-templates/SKILL.md +194 -0
  130. package/templates/skills/knowledge/frontend-design/SKILL.md +396 -0
  131. package/templates/skills/knowledge/frontend-design/animation-guide.md +331 -0
  132. package/templates/skills/knowledge/frontend-design/color-system.md +311 -0
  133. package/templates/skills/knowledge/frontend-design/decision-trees.md +418 -0
  134. package/templates/skills/knowledge/frontend-design/motion-graphics.md +306 -0
  135. package/templates/skills/knowledge/frontend-design/scripts/accessibility_checker.py +183 -0
  136. package/templates/skills/knowledge/frontend-design/scripts/ux_audit.py +722 -0
  137. package/templates/skills/knowledge/frontend-design/typography-system.md +345 -0
  138. package/templates/skills/knowledge/frontend-design/ux-psychology.md +541 -0
  139. package/templates/skills/knowledge/frontend-design/visual-effects.md +383 -0
  140. package/templates/skills/knowledge/game-development/2d-games/SKILL.md +119 -0
  141. package/templates/skills/knowledge/game-development/3d-games/SKILL.md +135 -0
  142. package/templates/skills/knowledge/game-development/SKILL.md +167 -0
  143. package/templates/skills/knowledge/game-development/game-art/SKILL.md +185 -0
  144. package/templates/skills/knowledge/game-development/game-audio/SKILL.md +190 -0
  145. package/templates/skills/knowledge/game-development/game-design/SKILL.md +129 -0
  146. package/templates/skills/knowledge/game-development/mobile-games/SKILL.md +108 -0
  147. package/templates/skills/knowledge/game-development/multiplayer/SKILL.md +132 -0
  148. package/templates/skills/knowledge/game-development/pc-games/SKILL.md +144 -0
  149. package/templates/skills/knowledge/game-development/vr-ar/SKILL.md +123 -0
  150. package/templates/skills/knowledge/game-development/web-games/SKILL.md +150 -0
  151. package/templates/skills/knowledge/geo-fundamentals/SKILL.md +156 -0
  152. package/templates/skills/knowledge/geo-fundamentals/scripts/geo_checker.py +289 -0
  153. package/templates/skills/knowledge/i18n-localization/SKILL.md +154 -0
  154. package/templates/skills/knowledge/i18n-localization/scripts/i18n_checker.py +241 -0
  155. package/templates/skills/knowledge/intelligent-routing/SKILL.md +334 -0
  156. package/templates/skills/knowledge/lint-and-validate/SKILL.md +45 -0
  157. package/templates/skills/knowledge/lint-and-validate/scripts/lint_runner.py +172 -0
  158. package/templates/skills/knowledge/lint-and-validate/scripts/type_coverage.py +173 -0
  159. package/templates/skills/knowledge/mcp-builder/SKILL.md +176 -0
  160. package/templates/skills/knowledge/mobile-design/SKILL.md +394 -0
  161. package/templates/skills/knowledge/mobile-design/decision-trees.md +516 -0
  162. package/templates/skills/knowledge/mobile-design/mobile-backend.md +491 -0
  163. package/templates/skills/knowledge/mobile-design/mobile-color-system.md +420 -0
  164. package/templates/skills/knowledge/mobile-design/mobile-debugging.md +122 -0
  165. package/templates/skills/knowledge/mobile-design/mobile-design-thinking.md +357 -0
  166. package/templates/skills/knowledge/mobile-design/mobile-navigation.md +458 -0
  167. package/templates/skills/knowledge/mobile-design/mobile-performance.md +767 -0
  168. package/templates/skills/knowledge/mobile-design/mobile-testing.md +356 -0
  169. package/templates/skills/knowledge/mobile-design/mobile-typography.md +433 -0
  170. package/templates/skills/knowledge/mobile-design/platform-android.md +666 -0
  171. package/templates/skills/knowledge/mobile-design/platform-ios.md +561 -0
  172. package/templates/skills/knowledge/mobile-design/scripts/mobile_audit.py +670 -0
  173. package/templates/skills/knowledge/mobile-design/touch-psychology.md +537 -0
  174. package/templates/skills/knowledge/nextjs-best-practices/SKILL.md +203 -0
  175. package/templates/skills/knowledge/nodejs-best-practices/SKILL.md +333 -0
  176. package/templates/skills/knowledge/parallel-agents/SKILL.md +175 -0
  177. package/templates/skills/knowledge/performance-profiling/SKILL.md +143 -0
  178. package/templates/skills/knowledge/performance-profiling/scripts/lighthouse_audit.py +76 -0
  179. package/templates/skills/knowledge/plan-writing/SKILL.md +152 -0
  180. package/templates/skills/knowledge/powershell-windows/SKILL.md +167 -0
  181. package/templates/skills/knowledge/python-patterns/SKILL.md +441 -0
  182. package/templates/skills/knowledge/react-patterns/SKILL.md +198 -0
  183. package/templates/skills/knowledge/red-team-tactics/SKILL.md +199 -0
  184. package/templates/skills/knowledge/seo-fundamentals/SKILL.md +129 -0
  185. package/templates/skills/knowledge/seo-fundamentals/scripts/seo_checker.py +219 -0
  186. package/templates/skills/knowledge/server-management/SKILL.md +161 -0
  187. package/templates/skills/knowledge/systematic-debugging/SKILL.md +109 -0
  188. package/templates/skills/knowledge/tailwind-patterns/SKILL.md +269 -0
  189. package/templates/skills/knowledge/tdd-workflow/SKILL.md +149 -0
  190. package/templates/skills/knowledge/testing-patterns/SKILL.md +178 -0
  191. package/templates/skills/knowledge/testing-patterns/scripts/test_runner.py +219 -0
  192. package/templates/skills/knowledge/vulnerability-scanner/SKILL.md +276 -0
  193. package/templates/skills/knowledge/vulnerability-scanner/checklists.md +121 -0
  194. package/templates/skills/knowledge/vulnerability-scanner/scripts/security_scan.py +458 -0
  195. package/templates/skills/knowledge/webapp-testing/SKILL.md +187 -0
  196. package/templates/skills/knowledge/webapp-testing/scripts/playwright_runner.py +173 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,59 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.1.2] - 2026-01-23
9
+
10
+ ### Added
11
+
12
+ - **Self-Update Skill**: New `self-update` skill with `update_kit.py` script for easy framework updates.
13
+ - **System Checkup**: New `system_checkup.py` execution script to verify agents, skills, workflows, and scripts.
14
+ - **Workflows**: Added `/checkup` and `/update` workflows for quick access.
15
+
16
+ ### Changed
17
+
18
+ - Updated `README.md` with comprehensive Quick Start, Commands, and Architecture sections.
19
+ - Updated `SKILLS_CATALOG.md` to include self-update skill.
20
+
21
+ ## [1.1.01] - 2026-01-23
22
+
23
+ ### Fixed
24
+
25
+ - Stabilized Full Suite activation.
26
+ - Micro-bump for polish releases.
27
+
28
+ ## [1.1.0] - 2026-01-23
29
+
30
+ ### Added
31
+
32
+ - **Knowledge Pack**: Imported 36+ new skills from `agents-web` including:
33
+ - `api-patterns`: Best practices for REST/GraphQL/tRPC.
34
+ - `frontend-design`: UX/UI principles and audit tools.
35
+ - `security-auditor`: Vulnerability scanning and red-team tactics.
36
+ - `mobile-design`: iOS/Android development patterns.
37
+ - **Agent Roles**: Added `project-planner`, `orchestrator`, and `security-auditor` agent personas.
38
+ - **Rules**: Added global `deployment_policy` and `clean-code` standards.
39
+
40
+ ### Changed
41
+
42
+ - Refactored `init` command to support `knowledge` pack.
43
+ - Enhanced `AGENTS.md` with new agent capabilities.
44
+ - Updated `SKILLS_CATALOG.md` with full list of new skills.
45
+
46
+ ## [1.0.1] - 2026-01-23
47
+
48
+ ### Fixed
49
+
50
+ - **Security**: Removed all references to private infrastructure from public templates.
51
+ - **Safety**: Added `verify_public_release.py` to prevent accidental publication of private secrets.
52
+ - **Menu**: Fixed `init` menu showing internal options.
53
+
54
+ ## [0.1.0] - 2026-01-23
55
+
56
+ ### Initial Release
57
+
58
+ - Core framework with `webcrawler`, `pdf-reader`, and `qdrant-memory`.
59
+ - CLI tool `agi-agent-kit` for scaffolding.
package/README.md ADDED
@@ -0,0 +1,147 @@
1
+ # AGI Agent Kit
2
+
3
+ **Enterprise-Grade Agentic Framework & Scaffolding Tool**
4
+
5
+ [![npm version](https://img.shields.io/npm/v/@techwavedev/agi-agent-kit.svg)](https://www.npmjs.com/package/@techwavedev/agi-agent-kit)
6
+ [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
7
+
8
+ `@techwavedev/agi-agent-kit` is a modular, deterministic framework designed to bridge the gap between LLM reasoning and reliable production execution. It scaffolds a "3-Layer Architecture" (Intent → Orchestration → Execution) that forces agents to use tested scripts rather than hallucinating code.
9
+
10
+ ---
11
+
12
+ ## 🚀 Quick Start
13
+
14
+ Scaffold a new agent workspace in seconds:
15
+
16
+ ```bash
17
+ npx @techwavedev/agi-agent-kit init
18
+ ```
19
+
20
+ You'll be prompted to choose a pack:
21
+
22
+ - **core** - Essential skills (webcrawler, pdf-reader, qdrant-memory, documentation)
23
+ - **knowledge** - Core + 36 specialized skills (API, Security, Design, Architecture)
24
+ - **full** - Complete suite with `.agent/` structure (agents, workflows, rules)
25
+
26
+ ---
27
+
28
+ ## ✨ Key Features
29
+
30
+ | Feature | Description |
31
+ | --------------------------- | -------------------------------------------------------------------------- |
32
+ | **Deterministic Execution** | Separates business logic (Python scripts) from AI reasoning (Directives) |
33
+ | **Modular Skill System** | Plug-and-play capabilities that can be added or removed instantly |
34
+ | **Semantic Memory** | Built-in Qdrant-powered memory with 95% token savings via caching |
35
+ | **Universal Compatibility** | Works with Claude, Gemini, and OpenAI via standardized context files |
36
+ | **Self-Healing Workflows** | Agents read error logs, patch scripts, and update directives automatically |
37
+ | **Self-Update** | Update to the latest version with a single command |
38
+
39
+ ---
40
+
41
+ ## 📦 What You Get
42
+
43
+ ```
44
+ your-project/
45
+ ├── AGENTS.md # Master instruction file (symlinked to GEMINI.md, CLAUDE.md)
46
+ ├── skills/ # Pre-built tools
47
+ │ ├── webcrawler/ # Documentation harvesting
48
+ │ ├── pdf-reader/ # PDF text extraction
49
+ │ ├── qdrant-memory/ # Semantic caching & memory
50
+ │ ├── documentation/ # Auto-documentation maintenance
51
+ │ └── self-update/ # Framework self-update capability
52
+ ├── directives/ # SOPs in Markdown
53
+ ├── execution/ # Deterministic Python scripts
54
+ ├── skill-creator/ # Tools to create new skills
55
+ └── .agent/ # (full pack) Agents, workflows, rules
56
+ ```
57
+
58
+ ---
59
+
60
+ ## 📖 Architecture
61
+
62
+ The system operates on three layers:
63
+
64
+ ```
65
+ ┌─────────────────────────────────────────────────────────┐
66
+ │ Layer 1: DIRECTIVES (Intent) │
67
+ │ └─ SOPs written in Markdown (directives/) │
68
+ ├─────────────────────────────────────────────────────────┤
69
+ │ Layer 2: ORCHESTRATION (Agent) │
70
+ │ └─ LLM reads directive, decides which tool to call │
71
+ ├─────────────────────────────────────────────────────────┤
72
+ │ Layer 3: EXECUTION (Code) │
73
+ │ └─ Pure Python scripts (execution/) do the actual work │
74
+ └─────────────────────────────────────────────────────────┘
75
+ ```
76
+
77
+ **Why?** LLMs are probabilistic. 90% accuracy per step = 59% success over 5 steps. By pushing complexity into deterministic scripts, we achieve reliable execution.
78
+
79
+ ---
80
+
81
+ ## ⚡ Prerequisites
82
+
83
+ ```bash
84
+ pip install requests beautifulsoup4 html2text lxml qdrant-client
85
+ ```
86
+
87
+ Optional (for semantic memory with local embeddings):
88
+
89
+ ```bash
90
+ pip install ollama sentence-transformers
91
+ ```
92
+
93
+ ---
94
+
95
+ ## 🔧 Commands
96
+
97
+ ### Initialize a new project
98
+
99
+ ```bash
100
+ npx @techwavedev/agi-agent-kit init --pack=full
101
+ ```
102
+
103
+ ### Update to latest version
104
+
105
+ ```bash
106
+ npx @techwavedev/agi-agent-kit@latest init --pack=full
107
+ # or use the built-in skill:
108
+ python3 skills/self-update/scripts/update_kit.py
109
+ ```
110
+
111
+ ### System health check
112
+
113
+ ```bash
114
+ python3 execution/system_checkup.py --verbose
115
+ ```
116
+
117
+ ### Create a new skill
118
+
119
+ ```bash
120
+ python3 skill-creator/scripts/init_skill.py my-skill --path skills/
121
+ ```
122
+
123
+ ### Update skills catalog
124
+
125
+ ```bash
126
+ python3 skill-creator/scripts/update_catalog.py --skills-dir skills/
127
+ ```
128
+
129
+ ---
130
+
131
+ ## 📚 Documentation
132
+
133
+ - **[AGENTS.md](./AGENTS.md)** - Complete architecture and operating principles
134
+ - **[skills/SKILLS_CATALOG.md](./skills/SKILLS_CATALOG.md)** - All available skills
135
+ - **[CHANGELOG.md](./CHANGELOG.md)** - Version history
136
+
137
+ ---
138
+
139
+ ## 🛡️ Security
140
+
141
+ This package includes a pre-flight security scanner (`verify_public_release.py`) that checks for private terms before publishing. All templates are sanitized for public use.
142
+
143
+ ---
144
+
145
+ ## 📄 License
146
+
147
+ Apache-2.0 © [Elton Machado@TechWaveDev](https://github.com/techwavedev)
package/bin/init.js ADDED
@@ -0,0 +1,471 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * agi-agent-kit init
4
+ *
5
+ * CLI tool to scaffold AI agent projects with modular skill packs.
6
+ *
7
+ * Usage:
8
+ * npx @techwavedev/agi-agent-kit init [--pack=<pack>] [--path=<dir>]
9
+ *
10
+ * Packs:
11
+ * core - Base framework + common skills (webcrawler, pdf-reader, qdrant-memory)
12
+ *
13
+ * Options:
14
+ * --path=<dir> Target directory (default: current)
15
+ * --no-symlinks Skip GEMINI.md/CLAUDE.md symlink creation
16
+ * --help Show help
17
+ */
18
+
19
+ const fs = require('fs');
20
+ const path = require('path');
21
+ const readline = require('readline');
22
+
23
+ // Color utilities for terminal output
24
+ const colors = {
25
+ reset: '\x1b[0m',
26
+ bright: '\x1b[1m',
27
+ green: '\x1b[32m',
28
+ yellow: '\x1b[33m',
29
+ blue: '\x1b[34m',
30
+ cyan: '\x1b[36m',
31
+ red: '\x1b[31m'
32
+ };
33
+
34
+ const log = {
35
+ info: (msg) => console.log(`${colors.cyan}ℹ${colors.reset} ${msg}`),
36
+ success: (msg) => console.log(`${colors.green}✔${colors.reset} ${msg}`),
37
+ warn: (msg) => console.log(`${colors.yellow}⚠${colors.reset} ${msg}`),
38
+ error: (msg) => console.log(`${colors.red}✖${colors.reset} ${msg}`),
39
+ header: (msg) => console.log(`\n${colors.bright}${colors.blue}${msg}${colors.reset}\n`)
40
+ };
41
+
42
+ // Pack definitions
43
+ const PACKS = {
44
+ core: {
45
+ name: 'Core',
46
+ description: 'Essential skills (webcrawler, pdf-reader, qdrant-memory, documentation)',
47
+ skills: ['core']
48
+ },
49
+ knowledge: {
50
+ name: 'Knowledge',
51
+ description: 'Core + 36 specialized skills (API, Security, Design, Architecture)',
52
+ skills: ['core', 'knowledge']
53
+ },
54
+ full: {
55
+ name: 'Full Suite',
56
+ description: 'Complete suite (Core + Knowledge + .agent structure)',
57
+ skills: ['core', 'knowledge'],
58
+ includeAgent: true
59
+ }
60
+ };
61
+
62
+ // Parse command line arguments
63
+ function parseArgs() {
64
+ const args = process.argv.slice(2);
65
+ const options = {
66
+ command: null,
67
+ pack: null,
68
+ path: process.cwd(),
69
+ symlinks: true,
70
+ help: false
71
+ };
72
+
73
+ for (const arg of args) {
74
+ if (arg === 'init') {
75
+ options.command = 'init';
76
+ } else if (arg.startsWith('--pack=')) {
77
+ options.pack = arg.split('=')[1];
78
+ } else if (arg.startsWith('--path=')) {
79
+ options.path = path.resolve(arg.split('=')[1]);
80
+ } else if (arg === '--no-symlinks') {
81
+ options.symlinks = false;
82
+ } else if (arg === '--help' || arg === '-h') {
83
+ options.help = true;
84
+ }
85
+ }
86
+
87
+ return options;
88
+ }
89
+
90
+ // Show help message
91
+ function showHelp() {
92
+ console.log(`
93
+ ${colors.bright}agi-agent-kit${colors.reset} - AI Agent Kit Initializer
94
+
95
+ ${colors.bright}Usage:${colors.reset}
96
+ npx @techwavedev/agi-agent-kit init [options]
97
+
98
+ ${colors.bright}Options:${colors.reset}
99
+ --pack=<pack> Select skill pack (core, ec, full)
100
+ --path=<dir> Target directory (default: current)
101
+ --no-symlinks Skip GEMINI.md/CLAUDE.md symlink creation
102
+ --help Show this help message
103
+
104
+ ${colors.bright}Packs:${colors.reset}
105
+ ${colors.green}core${colors.reset} Base framework + common skills
106
+ (webcrawler, pdf-reader, qdrant-memory, documentation)
107
+
108
+ ${colors.blue}knowledge${colors.reset} Core + 36 specialized skills
109
+ (API, Security, Design, Architecture, Testing...)
110
+
111
+ ${colors.yellow}full${colors.reset} Complete suite
112
+ (Core + Knowledge + .agent/ structure)
113
+
114
+ ${colors.bright}Examples:${colors.reset}
115
+ npx @techwavedev/agi-agent-kit init
116
+ npx @techwavedev/agi-agent-kit init --pack=core
117
+
118
+ ${colors.bright}Note:${colors.reset} Most scripts require ${colors.cyan}python3${colors.reset}.
119
+ `);
120
+ }
121
+
122
+ // Prompt user for pack selection
123
+ async function promptPackSelection() {
124
+ const rl = readline.createInterface({
125
+ input: process.stdin,
126
+ output: process.stdout
127
+ });
128
+
129
+ return new Promise((resolve) => {
130
+ console.log(`\n${colors.bright}Which pack would you like to install?${colors.reset}\n`);
131
+ console.log(` 1. ${colors.green}core${colors.reset} - Essential skills (webcrawler, pdf-reader, qdrant-memory, documentation)`);
132
+ console.log(` 2. ${colors.blue}knowledge${colors.reset} - Core + 36 specialized skills (API, Security, Design...)`);
133
+ console.log(` 3. ${colors.yellow}full${colors.reset} - Complete suite including .agent/ structure\n`);
134
+
135
+ rl.question(`Enter choice (1-3) or pack name (default: core): `, (answer) => {
136
+ rl.close();
137
+ const choice = answer.trim().toLowerCase();
138
+
139
+ if (choice === '1' || choice === 'core' || choice === '') resolve('core');
140
+ else if (choice === '2' || choice === 'knowledge') resolve('knowledge');
141
+ else if (choice === '3' || choice === 'full') resolve('full');
142
+ else {
143
+ log.warn('Invalid choice, defaulting to core');
144
+ resolve('core');
145
+ }
146
+ });
147
+ });
148
+ }
149
+
150
+ // Prompt for update components
151
+ async function promptUpdateSelection() {
152
+ return new Promise((resolve) => {
153
+ // For now, update implies updating the Full suite or existing installation
154
+ // We can default to 'full' logic for updates to ensure everything is covered
155
+ resolve('full');
156
+ });
157
+ }
158
+
159
+ // Copy directory recursively
160
+ function copyDirSync(src, dest) {
161
+ if (!fs.existsSync(src)) {
162
+ return false;
163
+ }
164
+
165
+ fs.mkdirSync(dest, { recursive: true });
166
+
167
+ const entries = fs.readdirSync(src, { withFileTypes: true });
168
+
169
+ for (const entry of entries) {
170
+ const srcPath = path.join(src, entry.name);
171
+ const destPath = path.join(dest, entry.name);
172
+
173
+ if (entry.isDirectory()) {
174
+ copyDirSync(srcPath, destPath);
175
+ } else {
176
+ fs.copyFileSync(srcPath, destPath);
177
+ }
178
+ }
179
+
180
+ return true;
181
+ }
182
+
183
+ // Create directory structure
184
+ function createStructure(targetPath, options) {
185
+ log.header('Creating directory structure...');
186
+
187
+ const dirs = [
188
+ 'directives',
189
+ 'execution',
190
+ 'skills',
191
+ 'skill-creator',
192
+ '.tmp'
193
+ ];
194
+
195
+ for (const dir of dirs) {
196
+ const fullPath = path.join(targetPath, dir);
197
+ fs.mkdirSync(fullPath, { recursive: true });
198
+ log.success(`Created ${dir}/`);
199
+ }
200
+ }
201
+
202
+ // Copy skills based on pack
203
+ function copySkills(targetPath, pack, templatesPath) {
204
+ log.header(`Installing ${PACKS[pack].name} skills...`);
205
+
206
+ const skillGroups = PACKS[pack].skills;
207
+
208
+ for (const group of skillGroups) {
209
+ const srcSkillsPath = path.join(templatesPath, 'skills', group);
210
+ const destSkillsPath = path.join(targetPath, 'skills');
211
+
212
+ if (fs.existsSync(srcSkillsPath)) {
213
+ const skills = fs.readdirSync(srcSkillsPath, { withFileTypes: true })
214
+ .filter(d => d.isDirectory())
215
+ .map(d => d.name);
216
+
217
+ for (const skill of skills) {
218
+ const src = path.join(srcSkillsPath, skill);
219
+ const dest = path.join(destSkillsPath, skill);
220
+
221
+ if (copyDirSync(src, dest)) {
222
+ log.success(`Installed skill: ${skill}`);
223
+ }
224
+ }
225
+ } else {
226
+ log.warn(`Skills directory not found: ${srcSkillsPath}`);
227
+ }
228
+ }
229
+ }
230
+
231
+ // Copy base files
232
+ function copyBaseFiles(targetPath, templatesPath, options) {
233
+ log.header('Copying base files...');
234
+
235
+ const baseFiles = [
236
+ { src: 'AGENTS.md', dest: 'AGENTS.md' },
237
+ { src: '.gitignore', dest: '.gitignore' },
238
+ { src: 'requirements.txt', dest: 'requirements.txt' }
239
+ ];
240
+
241
+ for (const file of baseFiles) {
242
+ const srcPath = path.join(templatesPath, 'base', file.src);
243
+ const destPath = path.join(targetPath, file.dest);
244
+
245
+ if (fs.existsSync(srcPath)) {
246
+ fs.copyFileSync(srcPath, destPath);
247
+ log.success(`Created ${file.dest}`);
248
+ }
249
+ }
250
+
251
+ // Copy skill-creator
252
+ const srcSkillCreator = path.join(templatesPath, 'base', 'skill-creator');
253
+ const destSkillCreator = path.join(targetPath, 'skill-creator');
254
+
255
+ if (fs.existsSync(srcSkillCreator)) {
256
+ copyDirSync(srcSkillCreator, destSkillCreator);
257
+ log.success('Installed skill-creator/');
258
+ }
259
+ }
260
+
261
+ // Create symlinks
262
+ function createSymlinks(targetPath) {
263
+ log.header('Creating symlinks...');
264
+
265
+ const agentsMd = path.join(targetPath, 'AGENTS.md');
266
+
267
+ if (!fs.existsSync(agentsMd)) {
268
+ log.warn('AGENTS.md not found, skipping symlinks');
269
+ return;
270
+ }
271
+
272
+ const symlinks = [
273
+ { name: 'GEMINI.md', target: 'AGENTS.md' },
274
+ { name: 'CLAUDE.md', target: 'AGENTS.md' }
275
+ ];
276
+
277
+ for (const link of symlinks) {
278
+ const linkPath = path.join(targetPath, link.name);
279
+
280
+ try {
281
+ if (fs.existsSync(linkPath)) {
282
+ fs.unlinkSync(linkPath);
283
+ }
284
+ fs.symlinkSync(link.target, linkPath);
285
+ log.success(`Created symlink: ${link.name} → ${link.target}`);
286
+ } catch (err) {
287
+ log.warn(`Failed to create symlink ${link.name}: ${err.message}`);
288
+ }
289
+ }
290
+ }
291
+
292
+ // Copy .agent/ structure for full pack
293
+ function copyAgentStructure(targetPath, templatesPath) {
294
+ log.header('Installing .agent/ structure...');
295
+
296
+ const srcAgent = path.join(templatesPath, '.agent');
297
+ const destAgent = path.join(targetPath, '.agent');
298
+
299
+ if (fs.existsSync(srcAgent)) {
300
+ copyDirSync(srcAgent, destAgent);
301
+ log.success('Installed .agent/ (agents, workflows, rules)');
302
+ } else {
303
+ log.warn('.agent/ template not found');
304
+ }
305
+ }
306
+
307
+ // Main init function
308
+ async function init(options) {
309
+ log.header('🚀 AGI Agent Kit Initializer');
310
+
311
+ // Determine pack
312
+ let pack = options.pack;
313
+ if (!pack) {
314
+ pack = await promptPackSelection();
315
+ }
316
+
317
+ if (!PACKS[pack]) {
318
+ log.error(`Unknown pack: ${pack}`);
319
+ process.exit(1);
320
+ }
321
+
322
+ log.info(`Installing ${PACKS[pack].name} pack to: ${options.path}`);
323
+
324
+ // Get templates path (relative to this script)
325
+ const templatesPath = path.join(__dirname, '..', 'templates');
326
+
327
+ if (!fs.existsSync(templatesPath)) {
328
+ log.error('Templates directory not found. Package may be corrupted.');
329
+ process.exit(1);
330
+ }
331
+
332
+ // Create structure
333
+ createStructure(options.path, options);
334
+
335
+ // Copy base files
336
+ copyBaseFiles(options.path, templatesPath, options);
337
+
338
+ // Copy skills
339
+ copySkills(options.path, pack, templatesPath);
340
+
341
+ // Create symlinks
342
+ if (options.symlinks) {
343
+ createSymlinks(options.path);
344
+ }
345
+
346
+ // Copy .agent/ for full pack
347
+ if (PACKS[pack].includeAgent) {
348
+ copyAgentStructure(options.path, templatesPath);
349
+ }
350
+
351
+ // Final message
352
+ log.header('✨ Installation complete!');
353
+ console.log(`
354
+ Next steps:
355
+ 1. Review ${colors.cyan}AGENTS.md${colors.reset} for architecture overview
356
+ 2. Install Python dependencies:
357
+ ${colors.yellow}pip install requests beautifulsoup4 html2text lxml qdrant-client${colors.reset}
358
+ 3. Check ${colors.cyan}skills/${colors.reset} for available capabilities
359
+ 4. Create ${colors.cyan}.env${colors.reset} with your API keys
360
+
361
+ Happy coding! 🎉
362
+ `);
363
+ }
364
+
365
+ // Update function
366
+ async function update(options) {
367
+ log.header('🔄 AGI Agent Kit Updater');
368
+
369
+ if (!fs.existsSync(path.join(options.path, 'AGENTS.md'))) {
370
+ log.error('AGENTS.md not found. Are you in a valid AGI Agent project?');
371
+ log.info('Use "init" to start a new project.');
372
+ process.exit(1);
373
+ }
374
+
375
+ // Default to full pack logic for updates to capture all skills/agents
376
+ // Users typically want to update their tooling
377
+ log.info(`Updating framework components in: ${options.path}`);
378
+
379
+ const templatesPath = path.join(__dirname, '..', 'templates');
380
+
381
+ if (!fs.existsSync(templatesPath)) {
382
+ log.error('Templates directory not found.');
383
+ process.exit(1);
384
+ }
385
+
386
+ // 1. Update Skills (Core + Knowledge)
387
+ // We use 'knowledge' pack definition to cover all skills
388
+ const skillsToUpdate = ['core', 'knowledge'];
389
+ log.header('Updating Skills...');
390
+
391
+ for (const group of skillsToUpdate) {
392
+ const srcSkillsPath = path.join(templatesPath, 'skills', group);
393
+ const destSkillsPath = path.join(options.path, 'skills');
394
+
395
+ if (fs.existsSync(srcSkillsPath)) {
396
+ const skills = fs.readdirSync(srcSkillsPath, { withFileTypes: true })
397
+ .filter(d => d.isDirectory())
398
+ .map(d => d.name);
399
+
400
+ for (const skill of skills) {
401
+ // Only update if it already exists or if it's new (standard updates usually add new capabilities)
402
+ const src = path.join(srcSkillsPath, skill);
403
+ const dest = path.join(destSkillsPath, skill);
404
+
405
+ // We overwrite logic scripts but maybe we should be careful?
406
+ // For now, standard behavior is to upgrade toolsets.
407
+ if (copyDirSync(src, dest)) {
408
+ console.log(` ${colors.green}✔${colors.reset} Updated: ${skill}`);
409
+ }
410
+ }
411
+ }
412
+ }
413
+
414
+ // 2. Update Agents & Workflows (.agent/)
415
+ log.header('Updating Agents & Workflows...');
416
+ const srcAgent = path.join(templatesPath, '.agent');
417
+ const destAgent = path.join(options.path, '.agent');
418
+ if (fs.existsSync(srcAgent)) {
419
+ if (copyDirSync(srcAgent, destAgent)) {
420
+ console.log(` ${colors.green}✔${colors.reset} Updated .agent/ directory`);
421
+ }
422
+ }
423
+
424
+ // 3. Update Skill Creator
425
+ log.header('Updating Skill Creator...');
426
+ const srcSC = path.join(templatesPath, 'base', 'skill-creator');
427
+ const destSC = path.join(options.path, 'skill-creator');
428
+ if (fs.existsSync(srcSC)) {
429
+ copyDirSync(srcSC, destSC);
430
+ console.log(` ${colors.green}✔${colors.reset} Updated skill-creator/`);
431
+ }
432
+
433
+ // 4. Update Core Documentation if needed
434
+ // We generally respect user's AGENTS.md, but maybe we update GEMINI.md/CLAUDE.md symlinks?
435
+ if (options.symlinks) {
436
+ createSymlinks(options.path);
437
+ }
438
+
439
+ log.header('✨ Update complete!');
440
+ log.info('Please review any changes to your skills or agents.');
441
+ }
442
+
443
+ // Entry point
444
+ async function main() {
445
+ const options = parseArgs();
446
+
447
+ if (options.help) {
448
+ showHelp();
449
+ process.exit(0);
450
+ }
451
+
452
+ if (options.command !== 'init' && options.command !== 'update' && !options.command) {
453
+ // Default to init if no command specified
454
+ options.command = 'init';
455
+ }
456
+
457
+ if (options.command === 'init') {
458
+ await init(options);
459
+ } else if (options.command === 'update') {
460
+ await update(options);
461
+ } else {
462
+ log.error(`Unknown command: ${options.command}`);
463
+ showHelp();
464
+ process.exit(1);
465
+ }
466
+ }
467
+
468
+ main().catch(err => {
469
+ log.error(`Fatal error: ${err.message}`);
470
+ process.exit(1);
471
+ });