izanagi-ai 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +53 -0
- package/CHANGELOG.md +198 -0
- package/LICENSE +21 -0
- package/README.md +96 -0
- package/ROADMAP.md +131 -0
- package/RULES.md +202 -0
- package/SYSTEM.md +201 -0
- package/agents/INDEX.md +40 -0
- package/agents/architect-agent.json +15 -0
- package/agents/bug-hunter-agent.json +14 -0
- package/agents/database-agent.json +14 -0
- package/agents/devops-agent.json +15 -0
- package/agents/docs-agent.json +15 -0
- package/agents/pm-agent.json +14 -0
- package/agents/professor-agent.json +15 -0
- package/agents/security-agent.json +14 -0
- package/agents/senior-engineer-agent.json +16 -0
- package/agents/techlead-agent.json +15 -0
- package/architecture/clean-architecture.md +98 -0
- package/architecture/cqrs-specialist.md +102 -0
- package/architecture/ddd-specialist.md +97 -0
- package/architecture/event-driven-architect.md +79 -0
- package/architecture/hexagonal-architecture.md +96 -0
- package/architecture/microservices-expert.md +83 -0
- package/architecture/monolith-expert.md +67 -0
- package/architecture/repository-pattern.md +73 -0
- package/architecture/unit-of-work.md +92 -0
- package/backend/README.md +29 -0
- package/bin/nexus.js +8 -0
- package/core/compression-engine.md +194 -0
- package/core/context-engine.md +239 -0
- package/core/decision-engine.md +377 -0
- package/core/evolution-engine.md +169 -0
- package/core/planning-engine.md +201 -0
- package/core/quality-gates.md +233 -0
- package/core/reflection-engine.md +182 -0
- package/core/skill-resolver.json +169 -0
- package/core/token-manager.md +152 -0
- package/database/database-engineer.md +244 -0
- package/database/mysql-specialist.md +61 -0
- package/database/postgresql-specialist.md +70 -0
- package/database/redis-specialist.md +73 -0
- package/database/sql-optimizer.md +95 -0
- package/database/sqlserver-specialist.md +69 -0
- package/devops/ci-cd-specialist.md +101 -0
- package/devops/devops-engineer.md +358 -0
- package/devops/docker-expert.md +105 -0
- package/devops/git-expert.md +76 -0
- package/devops/git-flow-specialist.md +71 -0
- package/devops/kubernetes-specialist.md +84 -0
- package/devops/linux-specialist.md +82 -0
- package/devops/windows-specialist.md +43 -0
- package/dist/cli/commands/compile.d.ts +2 -0
- package/dist/cli/commands/compile.d.ts.map +1 -0
- package/dist/cli/commands/compile.js +44 -0
- package/dist/cli/commands/compile.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +2 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +88 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +26 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/list.d.ts +2 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +50 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/run.d.ts +2 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +49 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +72 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/installer.d.ts +5 -0
- package/dist/installer.d.ts.map +1 -0
- package/dist/installer.js +86 -0
- package/dist/installer.js.map +1 -0
- package/dist/postinstall.d.ts +2 -0
- package/dist/postinstall.d.ts.map +1 -0
- package/dist/postinstall.js +8 -0
- package/dist/postinstall.js.map +1 -0
- package/frontend/README.md +19 -0
- package/memory/context-recovery.md +49 -0
- package/memory/conversation-summarizer.md +65 -0
- package/memory/long-term-project-memory.md +58 -0
- package/memory/memory-manager.md +299 -0
- package/memory/session-compression.md +182 -0
- package/memory/smart-recall.md +37 -0
- package/optimization/compact-example.md +87 -0
- package/optimization/cost-optimizer.md +53 -0
- package/optimization/prompt-optimizer.md +194 -0
- package/optimization/token-audit.md +177 -0
- package/optimization/token-reducer.md +202 -0
- package/package.json +67 -0
- package/security/owasp-auditor.md +249 -0
- package/security/pentest-reviewer.md +109 -0
- package/security/security-engineer.md +238 -0
- package/skills/INDEX.md +434 -0
- package/skills/accessibility-reviewer.md +63 -0
- package/skills/agentic-coding.md +56 -0
- package/skills/ai-agent/SKILL.md +107 -0
- package/skills/ai-agent-dev/SKILL.md +117 -0
- package/skills/alternative-solution-generator.md +72 -0
- package/skills/architecture-patterns/SKILL.md +113 -0
- package/skills/breaking-change-detector.md +84 -0
- package/skills/bug-hunter.md +234 -0
- package/skills/bug-prevention.md +75 -0
- package/skills/chaos-engineering/SKILL.md +108 -0
- package/skills/clean-code-validator.md +218 -0
- package/skills/cloud-architect/SKILL.md +78 -0
- package/skills/cloud-infra/SKILL.md +99 -0
- package/skills/code-auditor.md +24 -0
- package/skills/complexity-analyzer.md +102 -0
- package/skills/confidence-estimator.md +53 -0
- package/skills/continuous-improvement.md +46 -0
- package/skills/continuous-learning-engine.md +51 -0
- package/skills/cto-advisor.md +66 -0
- package/skills/data-engineer/SKILL.md +76 -0
- package/skills/data-engineering/SKILL.md +82 -0
- package/skills/debug-specialist.md +215 -0
- package/skills/dependency-analyzer.md +78 -0
- package/skills/design-pattern-advisor.md +78 -0
- package/skills/documentation-writer.md +66 -0
- package/skills/dry-kiss-yagni-validator.md +114 -0
- package/skills/economia-tokens/SKILL.md +40 -0
- package/skills/er-diagram-builder.md +85 -0
- package/skills/feature-flags/SKILL.md +95 -0
- package/skills/frontend/SKILL.md +327 -0
- package/skills/frontend-dev/SKILL.md +178 -0
- package/skills/graphql/SKILL.md +104 -0
- package/skills/hallucination-detection.md +49 -0
- package/skills/handoff-sessao/SKILL.md +32 -0
- package/skills/i18n-l10n/SKILL.md +103 -0
- package/skills/iac-terraform/SKILL.md +98 -0
- package/skills/legacy-migration/SKILL.md +91 -0
- package/skills/logging-expert.md +78 -0
- package/skills/mcp-server-dev.md +33 -0
- package/skills/memoria-projeto/SKILL.md +49 -0
- package/skills/mobile-dev/SKILL.md +82 -0
- package/skills/mobile-engineer/SKILL.md +74 -0
- package/skills/monitoring-specialist.md +59 -0
- package/skills/observability-expert.md +60 -0
- package/skills/performance-optimizer.md +239 -0
- package/skills/principal-engineer.md +55 -0
- package/skills/privacy-engineer/SKILL.md +79 -0
- package/skills/professor-modo/SKILL.md +33 -0
- package/skills/project-manager.md +74 -0
- package/skills/prompt-engineering.md +27 -0
- package/skills/qa/SKILL.md +231 -0
- package/skills/qa-engineer/SKILL.md +222 -0
- package/skills/readme-generator.md +42 -0
- package/skills/refactoring-specialist.md +250 -0
- package/skills/release-planner.md +70 -0
- package/skills/requirement-analyzer.md +65 -0
- package/skills/risk-analyzer.md +73 -0
- package/skills/root-cause-analyzer.md +210 -0
- package/skills/scalability-expert.md +73 -0
- package/skills/security-privacy/SKILL.md +98 -0
- package/skills/self-correction.md +54 -0
- package/skills/self-critique.md +42 -0
- package/skills/senior-code-reviewer.md +193 -0
- package/skills/sequence-diagram-builder.md +56 -0
- package/skills/serverless-edge/SKILL.md +103 -0
- package/skills/software-architect.md +356 -0
- package/skills/solid-validator.md +332 -0
- package/skills/sre-reliability/SKILL.md +115 -0
- package/skills/staff-engineer.md +61 -0
- package/skills/task-planner.md +61 -0
- package/skills/tech-lead.md +59 -0
- package/skills/technical-debt-analyzer.md +81 -0
- package/skills/technical-writer.md +39 -0
- package/skills/tradeoff-analyzer.md +79 -0
- package/skills/uml-generator.md +72 -0
- package/skills/ux-reviewer.md +61 -0
- package/skills/wasm/SKILL.md +133 -0
- package/skills/web-perf-engineer/SKILL.md +75 -0
- package/skills/web-perf-seo/SKILL.md +111 -0
- package/skills/websocket-realtime/SKILL.md +107 -0
- package/teaching/adaptive-teaching.md +37 -0
- package/teaching/code-explainer.md +172 -0
- package/teaching/interactive-teaching.md +41 -0
- package/teaching/learning-tracker.md +63 -0
- package/teaching/mentor-mode.md +200 -0
- package/teaching/professor-mode.md +222 -0
- package/testing/e2e-test-engineer.md +68 -0
- package/testing/integration-test-engineer.md +74 -0
- package/testing/mocking-specialist.md +78 -0
- package/testing/unit-test-engineer.md +209 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
export function listCommand(baseDir, filter) {
|
|
4
|
+
const type = filter ? filter.toLowerCase() : 'all';
|
|
5
|
+
if (type === 'all' || type === 'agents') {
|
|
6
|
+
console.log('\n\x1b[35m=== NexusAI Agents ===\x1b[0m\n');
|
|
7
|
+
const agentsDir = path.join(baseDir, 'agents');
|
|
8
|
+
if (fs.existsSync(agentsDir)) {
|
|
9
|
+
const files = fs.readdirSync(agentsDir).filter(f => f.endsWith('.json'));
|
|
10
|
+
for (const f of files) {
|
|
11
|
+
try {
|
|
12
|
+
const agent = JSON.parse(fs.readFileSync(path.join(agentsDir, f), 'utf-8'));
|
|
13
|
+
console.log(`\x1b[1m\x1b[36m• ${agent.name || f}\x1b[0m (v${agent.version || '1.0.0'})`);
|
|
14
|
+
console.log(` Role: ${agent.role || 'N/A'}`);
|
|
15
|
+
console.log(` Skills: ${agent.skills ? agent.skills.slice(0, 6).join(', ') + (agent.skills.length > 6 ? '...' : '') : 'None'}\n`);
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
// ignore broken files
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if (type === 'all' || type === 'skills') {
|
|
24
|
+
console.log('\x1b[35m=== NexusAI Skill Resolver Aliases ===\x1b[0m\n');
|
|
25
|
+
const resolverPath = path.join(baseDir, 'core', 'skill-resolver.json');
|
|
26
|
+
if (fs.existsSync(resolverPath)) {
|
|
27
|
+
try {
|
|
28
|
+
const data = JSON.parse(fs.readFileSync(resolverPath, 'utf-8'));
|
|
29
|
+
const aliases = data.aliases || {};
|
|
30
|
+
const keys = Object.keys(aliases).sort();
|
|
31
|
+
console.log(`Total skills registered: \x1b[32m${keys.length}\x1b[0m\n`);
|
|
32
|
+
const colWidth = 25;
|
|
33
|
+
for (let i = 0; i < keys.length; i += 2) {
|
|
34
|
+
const k1 = keys[i];
|
|
35
|
+
const k2 = keys[i + 1] || '';
|
|
36
|
+
const p1 = aliases[k1];
|
|
37
|
+
const p2 = k2 ? aliases[k2] : '';
|
|
38
|
+
const item1 = ` \x1b[33m${k1.padEnd(colWidth)}\x1b[0m -> ${p1}`;
|
|
39
|
+
const item2 = k2 ? ` | \x1b[33m${k2.padEnd(colWidth)}\x1b[0m -> ${p2}` : '';
|
|
40
|
+
console.log(item1 + item2);
|
|
41
|
+
}
|
|
42
|
+
console.log('\n');
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
console.error('Error reading skill-resolver.json:', err.message);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,MAAe;IAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAEnD,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YACzE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;oBAC5E,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,CAAC;oBACzF,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;oBAC9C,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;gBACrI,CAAC;gBAAC,MAAM,CAAC;oBACP,sBAAsB;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACvE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC;QACvE,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;gBAChE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;gBACzC,OAAO,CAAC,GAAG,CAAC,oCAAoC,IAAI,CAAC,MAAM,WAAW,CAAC,CAAC;gBAExE,MAAM,QAAQ,GAAG,EAAE,CAAC;gBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACnB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC7B,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;oBACvB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAEjC,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC;oBACjE,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;gBAC7B,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAkD1E"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export function runCommand(baseDir, taskDescription) {
|
|
2
|
+
if (!taskDescription) {
|
|
3
|
+
console.error('\x1b[31mError:\x1b[0m Please provide a task description. Example: \x1b[1mnexus run "Create secure REST API with Laravel Sanctum"\x1b[0m');
|
|
4
|
+
process.exit(1);
|
|
5
|
+
}
|
|
6
|
+
console.log('\n\x1b[36m=== NexusAI Decision Engine ===\x1b[0m');
|
|
7
|
+
console.log(`\x1b[1mTask:\x1b[0m "${taskDescription}"\n`);
|
|
8
|
+
const lower = taskDescription.toLowerCase();
|
|
9
|
+
// Basic classification heuristics
|
|
10
|
+
let agentName = 'senior-engineer';
|
|
11
|
+
let category = 'implementation';
|
|
12
|
+
let skillChain = ['planner', 'reviewer', 'clean-code'];
|
|
13
|
+
if (lower.includes('architect') || lower.includes('design') || lower.includes('microservice') || lower.includes('clean arch') || lower.includes('estrutura')) {
|
|
14
|
+
agentName = 'architect';
|
|
15
|
+
category = 'architecture';
|
|
16
|
+
skillChain = ['planner', 'architect', 'clean-arch', 'risk', 'tradeoff', 'uml'];
|
|
17
|
+
}
|
|
18
|
+
else if (lower.includes('security') || lower.includes('auth') || lower.includes('owasp') || lower.includes('vulnerab') || lower.includes('audit')) {
|
|
19
|
+
agentName = 'security';
|
|
20
|
+
category = 'security_audit';
|
|
21
|
+
skillChain = ['security', 'owasp', 'pentest', 'code-auditor', 'reviewer'];
|
|
22
|
+
}
|
|
23
|
+
else if (lower.includes('bug') || lower.includes('fix') || lower.includes('error') || lower.includes('crash') || lower.includes('debug')) {
|
|
24
|
+
agentName = 'bug-hunter';
|
|
25
|
+
category = 'debugging';
|
|
26
|
+
skillChain = ['debug', 'bug', 'root-cause', 'self-fix', 'reviewer'];
|
|
27
|
+
}
|
|
28
|
+
else if (lower.includes('db') || lower.includes('database') || lower.includes('sql') || lower.includes('postgres') || lower.includes('migration')) {
|
|
29
|
+
agentName = 'database';
|
|
30
|
+
category = 'database_design';
|
|
31
|
+
skillChain = ['db', 'sql', 'postgres', 'er', 'perf'];
|
|
32
|
+
}
|
|
33
|
+
else if (lower.includes('docker') || lower.includes('ci/cd') || lower.includes('pipeline') || lower.includes('deploy') || lower.includes('k8s')) {
|
|
34
|
+
agentName = 'devops';
|
|
35
|
+
category = 'devops_infra';
|
|
36
|
+
skillChain = ['devops', 'docker', 'cicd', 'linux'];
|
|
37
|
+
}
|
|
38
|
+
console.log(`\x1b[32m✔ Category Identified:\x1b[0m ${category}`);
|
|
39
|
+
console.log(`\x1b[32m✔ Selected Agent:\x1b[0m ${agentName}`);
|
|
40
|
+
console.log(`\x1b[32m✔ Computed Skill Chain:\x1b[0m ${skillChain.join(' -> ')}\n`);
|
|
41
|
+
console.log('\x1b[1mExecution Plan:\x1b[0m');
|
|
42
|
+
console.log(' 1. Load Context & System Rules (SYSTEM.md / RULES.md)');
|
|
43
|
+
console.log(` 2. Activate Agent [${agentName}]`);
|
|
44
|
+
console.log(` 3. Execute Skill Chain [${skillChain.join(', ')}]`);
|
|
45
|
+
console.log(' 4. Apply Quality Gates & Security Verification');
|
|
46
|
+
console.log(' 5. Generate Output & Reflection Log\n');
|
|
47
|
+
console.log('\x1b[90mTip: Run \x1b[36mnexus compile ' + agentName + '\x1b[90m to output the full prompt instruction for your LLM context.\x1b[0m\n');
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAcA,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C1D"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
import { doctorCommand } from './commands/doctor.js';
|
|
5
|
+
import { listCommand } from './commands/list.js';
|
|
6
|
+
import { initCommand } from './commands/init.js';
|
|
7
|
+
import { compileCommand } from './commands/compile.js';
|
|
8
|
+
import { runCommand } from './commands/run.js';
|
|
9
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
10
|
+
const __dirname = path.dirname(__filename);
|
|
11
|
+
const baseDir = path.resolve(__dirname, '../../');
|
|
12
|
+
export async function runCLI(args) {
|
|
13
|
+
const command = args[0] || 'help';
|
|
14
|
+
switch (command.toLowerCase()) {
|
|
15
|
+
case 'init':
|
|
16
|
+
initCommand(baseDir, args[1]);
|
|
17
|
+
break;
|
|
18
|
+
case 'list':
|
|
19
|
+
case 'skills':
|
|
20
|
+
case 'agents':
|
|
21
|
+
listCommand(baseDir, args[1] || (command === 'skills' ? 'skills' : command === 'agents' ? 'agents' : 'all'));
|
|
22
|
+
break;
|
|
23
|
+
case 'run':
|
|
24
|
+
case 'resolve':
|
|
25
|
+
runCommand(baseDir, args.slice(1).join(' '));
|
|
26
|
+
break;
|
|
27
|
+
case 'compile':
|
|
28
|
+
case 'build':
|
|
29
|
+
compileCommand(baseDir, args[1], args[2]);
|
|
30
|
+
break;
|
|
31
|
+
case 'doctor':
|
|
32
|
+
case 'check':
|
|
33
|
+
case 'validate':
|
|
34
|
+
doctorCommand(baseDir);
|
|
35
|
+
break;
|
|
36
|
+
case 'version':
|
|
37
|
+
case '-v':
|
|
38
|
+
case '--version':
|
|
39
|
+
const pkg = JSON.parse(fs.readFileSync(path.join(baseDir, 'package.json'), 'utf-8'));
|
|
40
|
+
console.log(`NexusAI CLI v${pkg.version}`);
|
|
41
|
+
break;
|
|
42
|
+
case 'help':
|
|
43
|
+
case '--help':
|
|
44
|
+
case '-h':
|
|
45
|
+
default:
|
|
46
|
+
showHelp();
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function showHelp() {
|
|
51
|
+
console.log(`
|
|
52
|
+
\x1b[1m\x1b[36mNexusAI CLI - Modular Skill & Agent Framework for Autonomous AI Coding\x1b[0m
|
|
53
|
+
|
|
54
|
+
\x1b[1mUsage:\x1b[0m
|
|
55
|
+
nexus <command> [options]
|
|
56
|
+
|
|
57
|
+
\x1b[1mCommands:\x1b[0m
|
|
58
|
+
\x1b[32mrun "<task>"\x1b[0m Analyzes task, selects optimal Agent and Skill Chain.
|
|
59
|
+
\x1b[32mcompile <agent> [file]\x1b[0m Compiles ready-to-use prompt for an Agent (e.g. architect, security).
|
|
60
|
+
\x1b[32minit [dir]\x1b[0m Initializes NexusAI rules & assets (.agents) in target directory.
|
|
61
|
+
\x1b[32mlist [skills|agents]\x1b[0m Lists all registered skills and agents.
|
|
62
|
+
\x1b[32mdoctor\x1b[0m Validates framework integrity, JSONs, and alias links.
|
|
63
|
+
\x1b[32mversion\x1b[0m Displays NexusAI version.
|
|
64
|
+
|
|
65
|
+
\x1b[1mExamples:\x1b[0m
|
|
66
|
+
nexus run "Refactor user authentication to JWT"
|
|
67
|
+
nexus compile architect system_prompt.md
|
|
68
|
+
nexus list skills
|
|
69
|
+
nexus doctor
|
|
70
|
+
`);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAc;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;IAElC,QAAQ,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;QAC9B,KAAK,MAAM;YACT,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM;QAER,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7G,MAAM;QAER,KAAK,KAAK,CAAC;QACX,KAAK,SAAS;YACZ,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7C,MAAM;QAER,KAAK,SAAS,CAAC;QACf,KAAK,OAAO;YACV,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM;QAER,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,UAAU;YACb,aAAa,CAAC,OAAO,CAAC,CAAC;YACvB,MAAM;QAER,KAAK,SAAS,CAAC;QACf,KAAK,IAAI,CAAC;QACV,KAAK,WAAW;YACd,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACrF,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3C,MAAM;QAER,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI,CAAC;QACV;YACE,QAAQ,EAAE,CAAC;YACX,MAAM;IACV,CAAC;AACH,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;CAmBb,CAAC,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"AA0DA;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAoCzD"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
5
|
+
const __dirname = path.dirname(__filename);
|
|
6
|
+
/**
|
|
7
|
+
* Pastas e arquivos que devem ser copiados para a pasta .agents do usuário
|
|
8
|
+
*/
|
|
9
|
+
const ITEMS_TO_COPY = [
|
|
10
|
+
'agents',
|
|
11
|
+
'architecture',
|
|
12
|
+
'backend',
|
|
13
|
+
'core',
|
|
14
|
+
'database',
|
|
15
|
+
'devops',
|
|
16
|
+
'frontend',
|
|
17
|
+
'memory',
|
|
18
|
+
'optimization',
|
|
19
|
+
'security',
|
|
20
|
+
'skills',
|
|
21
|
+
'teaching',
|
|
22
|
+
'testing',
|
|
23
|
+
'SYSTEM.md',
|
|
24
|
+
'RULES.md',
|
|
25
|
+
'AGENTS.md',
|
|
26
|
+
'CHANGELOG.md',
|
|
27
|
+
'ROADMAP.md'
|
|
28
|
+
];
|
|
29
|
+
/**
|
|
30
|
+
* Copia recursivamente um diretório ou arquivo de origem para destino
|
|
31
|
+
*/
|
|
32
|
+
function copyRecursiveSync(src, dest) {
|
|
33
|
+
const exists = fs.existsSync(src);
|
|
34
|
+
const stats = exists && fs.statSync(src);
|
|
35
|
+
const isDirectory = exists && stats ? stats.isDirectory() : false;
|
|
36
|
+
if (isDirectory) {
|
|
37
|
+
if (!fs.existsSync(dest)) {
|
|
38
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
39
|
+
}
|
|
40
|
+
fs.readdirSync(src).forEach((childItemName) => {
|
|
41
|
+
copyRecursiveSync(path.join(src, childItemName), path.join(dest, childItemName));
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
else if (exists) {
|
|
45
|
+
const parentDir = path.dirname(dest);
|
|
46
|
+
if (!fs.existsSync(parentDir)) {
|
|
47
|
+
fs.mkdirSync(parentDir, { recursive: true });
|
|
48
|
+
}
|
|
49
|
+
fs.copyFileSync(src, dest);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Instala todos os recursos do NexusAI na pasta .agents do projeto do usuário
|
|
54
|
+
*/
|
|
55
|
+
export function installToProject(targetDir) {
|
|
56
|
+
const destinationRoot = path.resolve(targetDir || process.env.INIT_CWD || process.cwd());
|
|
57
|
+
// Evitar auto-cópia se a pós-instalação rodar no próprio repositório do NexusAI durante desenvolvimento local
|
|
58
|
+
const packageJsonPath = path.join(destinationRoot, 'package.json');
|
|
59
|
+
if (fs.existsSync(packageJsonPath) && !targetDir) {
|
|
60
|
+
try {
|
|
61
|
+
const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
62
|
+
if (pkg.name === 'nexusai' || pkg.name === 'pedrohsl1-nexusai') {
|
|
63
|
+
console.log('[NexusAI] Pós-instalação ignorada no próprio repositório NexusAI.');
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// Ignorar erros de leitura de package.json
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Onde os arquivos do pacote estão localizados (raiz do pacote NexusAI no node_modules)
|
|
72
|
+
const packageDir = path.resolve(__dirname, '..');
|
|
73
|
+
const targetAgentsFolder = path.join(destinationRoot, '.agents');
|
|
74
|
+
console.log(`\n\x1b[36m[NexusAI]\x1b[0m Instalando recursos do NexusAI em: \x1b[1m${targetAgentsFolder}\x1b[0m...`);
|
|
75
|
+
let copiedCount = 0;
|
|
76
|
+
for (const item of ITEMS_TO_COPY) {
|
|
77
|
+
const srcPath = path.join(packageDir, item);
|
|
78
|
+
const destPath = path.join(targetAgentsFolder, item);
|
|
79
|
+
if (fs.existsSync(srcPath)) {
|
|
80
|
+
copyRecursiveSync(srcPath, destPath);
|
|
81
|
+
copiedCount++;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
console.log(`\x1b[32m[NexusAI] Sucesso! ${copiedCount} pastas/arquivos copiados para .agents.\x1b[0m\n`);
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=installer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C;;GAEG;AACH,MAAM,aAAa,GAAG;IACpB,QAAQ;IACR,cAAc;IACd,SAAS;IACT,MAAM;IACN,UAAU;IACV,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,cAAc;IACd,UAAU;IACV,QAAQ;IACR,UAAU;IACV,SAAS;IACT,WAAW;IACX,UAAU;IACV,WAAW;IACX,cAAc;IACd,YAAY;CACb,CAAC;AAEF;;GAEG;AACH,SAAS,iBAAiB,CAAC,GAAW,EAAE,IAAY;IAClD,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAElE,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;YAC5C,iBAAiB,CACf,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAC/B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAkB;IACjD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEzF,8GAA8G;IAC9G,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IACnE,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;YAClE,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBAC/D,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;gBACjF,OAAO;YACT,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;IACH,CAAC;IAED,wFAAwF;IACxF,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAEjE,OAAO,CAAC,GAAG,CAAC,wEAAwE,kBAAkB,YAAY,CAAC,CAAC;IAEpH,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAErD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACrC,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,8BAA8B,WAAW,kDAAkD,CAAC,CAAC;AAC3G,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postinstall.d.ts","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,IAAI,CAAC;IACH,gBAAgB,EAAE,CAAC;AACrB,CAAC;AAAC,OAAO,GAAQ,EAAE,CAAC;IAClB,OAAO,CAAC,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC;AAClG,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Frontend Skills
|
|
2
|
+
|
|
3
|
+
> Skills de desenvolvimento frontend estão em `coding/`:
|
|
4
|
+
|
|
5
|
+
| Skill | Arquivo |
|
|
6
|
+
|-------|---------|
|
|
7
|
+
| Frontend Engineer (geral) | `coding/frontend-engineer.md` |
|
|
8
|
+
| React Specialist | `coding/react-specialist.md` |
|
|
9
|
+
| Vue Specialist | `coding/vue-specialist.md` |
|
|
10
|
+
| TypeScript Specialist | `coding/typescript-specialist.md` |
|
|
11
|
+
| JavaScript Specialist | `coding/javascript-specialist.md` |
|
|
12
|
+
| UX Reviewer | `skills/ux-reviewer.md` |
|
|
13
|
+
| Accessibility Reviewer | `skills/accessibility-reviewer.md` |
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Sugestão para 2.0
|
|
18
|
+
|
|
19
|
+
Mover skills específicas de frontend para esta pasta.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Memory: Context Recovery
|
|
2
|
+
|
|
3
|
+
> Version 1.0.0 | Priority: Medium
|
|
4
|
+
> Dependencies: Conversation Summarizer, Memory Manager
|
|
5
|
+
> Compatibility: ">=1.0.0"
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Identity
|
|
10
|
+
|
|
11
|
+
Context Recovery restores the full context of a previous session from a compressed summary. Loads relevant project memory, architecture decisions, and user context.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Recovery Flow
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
1. User returns after session break
|
|
19
|
+
2. Load compressed summary from last session
|
|
20
|
+
3. Load project memory (architecture, stack, decisions)
|
|
21
|
+
4. Load user preferences (level, communication style)
|
|
22
|
+
5. Generate recovery prompt
|
|
23
|
+
6. Present to user for confirmation
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Recovery Prompt
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
"Welcome back! Last session we worked on the blog API.
|
|
32
|
+
|
|
33
|
+
Progress:
|
|
34
|
+
- Completed: User auth (JWT), Post CRUD
|
|
35
|
+
- Pending: Comments feature, rate limiting
|
|
36
|
+
|
|
37
|
+
Open items:
|
|
38
|
+
- Add rate limiting to login endpoint
|
|
39
|
+
- Write Stripe integration tests
|
|
40
|
+
|
|
41
|
+
Shall we continue with the comments feature, or do you want to
|
|
42
|
+
start something new?"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Changelog
|
|
48
|
+
|
|
49
|
+
### 1.0.0 — Initial release. Recovery flow, prompt template.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Memory: Conversation Summarizer
|
|
2
|
+
|
|
3
|
+
> Version 1.0.0 | Priority: Medium
|
|
4
|
+
> Dependencies: Session Compression, Memory Manager
|
|
5
|
+
> Compatibility: ">=1.0.0"
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Identity
|
|
10
|
+
|
|
11
|
+
Conversation Summarizer condenses long conversations into dense summaries while preserving all decisions, action items, errors, and key facts.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Extraction Priority
|
|
16
|
+
|
|
17
|
+
```yaml
|
|
18
|
+
preserve:
|
|
19
|
+
- ALL: decisions, action items, errors + fixes, user preferences
|
|
20
|
+
- MOST: architecture decisions, tech stack changes, key facts
|
|
21
|
+
- SOME: patterns detected, skill updates, progress made
|
|
22
|
+
|
|
23
|
+
discard:
|
|
24
|
+
- Greetings ("hey", "thanks", "you're welcome")
|
|
25
|
+
- Filler questions ("can you help me?", "do you understand?")
|
|
26
|
+
- Multiple rephrasings of the same question
|
|
27
|
+
- Code snippets (stored in project memory)
|
|
28
|
+
- Error messages (only keep cause + fix)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Summary Format
|
|
34
|
+
|
|
35
|
+
```yaml
|
|
36
|
+
conversation_summary:
|
|
37
|
+
duration: "1h 23m"
|
|
38
|
+
messages: 47
|
|
39
|
+
tokens_compressed: "12,340 → 180 (68:1)"
|
|
40
|
+
|
|
41
|
+
decisions:
|
|
42
|
+
- "Use JWT in httpOnly cookies (not localStorage)"
|
|
43
|
+
- "PostgreSQL over MySQL (JSONB support)"
|
|
44
|
+
|
|
45
|
+
errors:
|
|
46
|
+
- "Str::contains() TypeError → null check added"
|
|
47
|
+
|
|
48
|
+
action_items:
|
|
49
|
+
- "Add rate limiting to login endpoint"
|
|
50
|
+
- "Write Stripe integration tests"
|
|
51
|
+
|
|
52
|
+
user:
|
|
53
|
+
level: "intermediate"
|
|
54
|
+
preferred_style: "code examples first"
|
|
55
|
+
|
|
56
|
+
architecture:
|
|
57
|
+
pattern: "Layered (Controller → Service → Repository)"
|
|
58
|
+
stack: "Laravel 11, PostgreSQL 16, React + Tailwind"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Changelog
|
|
64
|
+
|
|
65
|
+
### 1.0.0 — Initial release. Priority, format, 68:1 compression.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Memory: Long-Term Project Memory
|
|
2
|
+
|
|
3
|
+
> Version 1.0.0 | Priority: Medium
|
|
4
|
+
> Dependencies: Memory Manager
|
|
5
|
+
> Compatibility: ">=1.0.0"
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Identity
|
|
10
|
+
|
|
11
|
+
Long-Term Project Memory persists project-specific information across sessions: architecture decisions, tech stack, conventions, error history, and development patterns.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Stored Data
|
|
16
|
+
|
|
17
|
+
```yaml
|
|
18
|
+
project:
|
|
19
|
+
type: "web_app"
|
|
20
|
+
name: "Blog API"
|
|
21
|
+
stack:
|
|
22
|
+
backend: "Laravel 11"
|
|
23
|
+
frontend: "React + Tailwind"
|
|
24
|
+
database: "PostgreSQL 16"
|
|
25
|
+
cache: "Redis"
|
|
26
|
+
|
|
27
|
+
decisions:
|
|
28
|
+
- id: ADR-001
|
|
29
|
+
decision: "JWT in httpOnly cookies"
|
|
30
|
+
reason: "XSS protection vs localStorage"
|
|
31
|
+
date: "2026-07-15"
|
|
32
|
+
|
|
33
|
+
conventions:
|
|
34
|
+
php: "PSR-12, strict_types, readonly properties"
|
|
35
|
+
js: "TypeScript strict, functional components"
|
|
36
|
+
testing: "Pest for PHP, Jest for JS"
|
|
37
|
+
|
|
38
|
+
errors:
|
|
39
|
+
- pattern: "N+1 queries"
|
|
40
|
+
count: 3
|
|
41
|
+
fix: "Eager loading with with()"
|
|
42
|
+
last_seen: "2026-07-10"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Benefits
|
|
48
|
+
|
|
49
|
+
- No need to re-explain project context each session
|
|
50
|
+
- Architecture decisions persist across sessions
|
|
51
|
+
- Error patterns detected and prevented
|
|
52
|
+
- Conventions applied consistently
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Changelog
|
|
57
|
+
|
|
58
|
+
### 1.0.0 — Initial release. Stored data, benefits.
|