@su-record/vibe 2.5.11 → 2.5.13
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 +243 -0
- package/LICENSE +21 -21
- package/README.md +262 -262
- package/agents/architect-low.md +41 -41
- package/agents/architect-medium.md +59 -59
- package/agents/architect.md +80 -80
- package/agents/build-error-resolver.md +115 -115
- package/agents/compounder.md +261 -261
- package/agents/diagrammer.md +178 -178
- package/agents/e2e-tester.md +266 -266
- package/agents/explorer-low.md +42 -42
- package/agents/explorer-medium.md +59 -59
- package/agents/explorer.md +48 -48
- package/agents/implementer-low.md +43 -43
- package/agents/implementer-medium.md +52 -52
- package/agents/implementer.md +54 -54
- package/agents/refactor-cleaner.md +143 -143
- package/agents/research/best-practices-agent.md +189 -189
- package/agents/research/codebase-patterns-agent.md +147 -147
- package/agents/research/framework-docs-agent.md +178 -178
- package/agents/research/security-advisory-agent.md +203 -203
- package/agents/review/architecture-reviewer.md +107 -107
- package/agents/review/complexity-reviewer.md +116 -116
- package/agents/review/data-integrity-reviewer.md +88 -88
- package/agents/review/git-history-reviewer.md +103 -103
- package/agents/review/performance-reviewer.md +86 -86
- package/agents/review/python-reviewer.md +150 -150
- package/agents/review/rails-reviewer.md +139 -139
- package/agents/review/react-reviewer.md +144 -144
- package/agents/review/security-reviewer.md +80 -80
- package/agents/review/simplicity-reviewer.md +140 -140
- package/agents/review/test-coverage-reviewer.md +116 -116
- package/agents/review/typescript-reviewer.md +127 -127
- package/agents/searcher.md +54 -54
- package/agents/simplifier.md +120 -120
- package/agents/tester.md +49 -49
- package/agents/ui-previewer.md +129 -129
- package/commands/vibe.analyze.md +356 -356
- package/commands/vibe.reason.md +329 -329
- package/commands/vibe.review.md +326 -326
- package/commands/vibe.run.md +1117 -1051
- package/commands/vibe.spec.md +1058 -1058
- package/commands/vibe.utils.md +353 -296
- package/commands/vibe.verify.md +375 -375
- package/dist/cli/collaborator.js +52 -52
- package/dist/cli/detect.js +32 -32
- package/dist/cli/index.js +102 -102
- package/dist/cli/llm.js +144 -144
- package/dist/cli/mcp.d.ts +49 -0
- package/dist/cli/mcp.d.ts.map +1 -0
- package/dist/cli/mcp.js +169 -0
- package/dist/cli/mcp.js.map +1 -0
- package/dist/cli/postinstall.js +180 -2
- package/dist/cli/postinstall.js.map +1 -1
- package/dist/cli/setup/GlobalInstaller.d.ts +24 -0
- package/dist/cli/setup/GlobalInstaller.d.ts.map +1 -0
- package/dist/cli/setup/GlobalInstaller.js +130 -0
- package/dist/cli/setup/GlobalInstaller.js.map +1 -0
- package/dist/cli/setup/LanguageDetector.d.ts +16 -0
- package/dist/cli/setup/LanguageDetector.d.ts.map +1 -0
- package/dist/cli/setup/LanguageDetector.js +49 -0
- package/dist/cli/setup/LanguageDetector.js.map +1 -0
- package/dist/cli/setup/LegacyMigration.d.ts +25 -0
- package/dist/cli/setup/LegacyMigration.d.ts.map +1 -0
- package/dist/cli/setup/LegacyMigration.js +162 -0
- package/dist/cli/setup/LegacyMigration.js.map +1 -0
- package/dist/cli/setup/ProjectSetup.d.ts +30 -0
- package/dist/cli/setup/ProjectSetup.d.ts.map +1 -0
- package/dist/cli/setup/ProjectSetup.js +238 -0
- package/dist/cli/setup/ProjectSetup.js.map +1 -0
- package/dist/cli/setup/index.d.ts +14 -0
- package/dist/cli/setup/index.d.ts.map +1 -0
- package/dist/cli/setup/index.js +18 -0
- package/dist/cli/setup/index.js.map +1 -0
- package/dist/cli/setup.d.ts +10 -77
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +15 -592
- package/dist/cli/setup.js.map +1 -1
- package/dist/lib/DeepInit.d.ts +0 -2
- package/dist/lib/DeepInit.d.ts.map +1 -1
- package/dist/lib/DeepInit.js +24 -26
- package/dist/lib/DeepInit.js.map +1 -1
- package/dist/lib/IterationTracker.d.ts +0 -2
- package/dist/lib/IterationTracker.d.ts.map +1 -1
- package/dist/lib/IterationTracker.js +11 -13
- package/dist/lib/IterationTracker.js.map +1 -1
- package/dist/lib/ModelRouter.d.ts +0 -2
- package/dist/lib/ModelRouter.d.ts.map +1 -1
- package/dist/lib/ModelRouter.js +0 -2
- package/dist/lib/ModelRouter.js.map +1 -1
- package/dist/lib/OrchestrateWorkflow.d.ts +1 -3
- package/dist/lib/OrchestrateWorkflow.d.ts.map +1 -1
- package/dist/lib/OrchestrateWorkflow.js +1 -3
- package/dist/lib/OrchestrateWorkflow.js.map +1 -1
- package/dist/lib/PythonParser.js +108 -108
- package/dist/lib/SkillFrontmatter.d.ts +0 -2
- package/dist/lib/SkillFrontmatter.d.ts.map +1 -1
- package/dist/lib/SkillFrontmatter.js +28 -30
- package/dist/lib/SkillFrontmatter.js.map +1 -1
- package/dist/lib/SkillQualityGate.d.ts +0 -2
- package/dist/lib/SkillQualityGate.d.ts.map +1 -1
- package/dist/lib/SkillQualityGate.js +9 -11
- package/dist/lib/SkillQualityGate.js.map +1 -1
- package/dist/lib/SkillRepository.d.ts +117 -0
- package/dist/lib/SkillRepository.d.ts.map +1 -0
- package/dist/lib/SkillRepository.js +477 -0
- package/dist/lib/SkillRepository.js.map +1 -0
- package/dist/lib/UltraQA.d.ts +0 -2
- package/dist/lib/UltraQA.d.ts.map +1 -1
- package/dist/lib/UltraQA.js +77 -79
- package/dist/lib/UltraQA.js.map +1 -1
- package/dist/lib/gemini-mcp.d.ts +10 -0
- package/dist/lib/gemini-mcp.d.ts.map +1 -0
- package/dist/lib/gemini-mcp.js +353 -0
- package/dist/lib/gemini-mcp.js.map +1 -0
- package/dist/lib/gpt-api.js +4 -4
- package/dist/lib/gpt-mcp.d.ts +10 -0
- package/dist/lib/gpt-mcp.d.ts.map +1 -0
- package/dist/lib/gpt-mcp.js +352 -0
- package/dist/lib/gpt-mcp.js.map +1 -0
- package/dist/lib/llm/auth/ApiKeyManager.d.ts +21 -0
- package/dist/lib/llm/auth/ApiKeyManager.d.ts.map +1 -0
- package/dist/lib/llm/auth/ApiKeyManager.js +43 -0
- package/dist/lib/llm/auth/ApiKeyManager.js.map +1 -0
- package/dist/lib/llm/auth/ConfigManager.d.ts +29 -0
- package/dist/lib/llm/auth/ConfigManager.d.ts.map +1 -0
- package/dist/lib/llm/auth/ConfigManager.js +67 -0
- package/dist/lib/llm/auth/ConfigManager.js.map +1 -0
- package/dist/lib/llm/auth/index.d.ts +25 -0
- package/dist/lib/llm/auth/index.d.ts.map +1 -0
- package/dist/lib/llm/auth/index.js +83 -0
- package/dist/lib/llm/auth/index.js.map +1 -0
- package/dist/lib/llm/index.d.ts +10 -0
- package/dist/lib/llm/index.d.ts.map +1 -0
- package/dist/lib/llm/index.js +12 -0
- package/dist/lib/llm/index.js.map +1 -0
- package/dist/lib/llm/types.d.ts +96 -0
- package/dist/lib/llm/types.d.ts.map +1 -0
- package/dist/lib/llm/types.js +17 -0
- package/dist/lib/llm/types.js.map +1 -0
- package/dist/lib/llm/utils/index.d.ts +6 -0
- package/dist/lib/llm/utils/index.d.ts.map +1 -0
- package/dist/lib/llm/utils/index.js +6 -0
- package/dist/lib/llm/utils/index.js.map +1 -0
- package/dist/lib/llm/utils/retry.d.ts +25 -0
- package/dist/lib/llm/utils/retry.d.ts.map +1 -0
- package/dist/lib/llm/utils/retry.js +72 -0
- package/dist/lib/llm/utils/retry.js.map +1 -0
- package/dist/lib/llm/utils/stream.d.ts +13 -0
- package/dist/lib/llm/utils/stream.d.ts.map +1 -0
- package/dist/lib/llm/utils/stream.js +110 -0
- package/dist/lib/llm/utils/stream.js.map +1 -0
- package/dist/lib/memory/KnowledgeGraph.js +4 -4
- package/dist/lib/memory/MemorySearch.js +20 -20
- package/dist/lib/memory/MemoryStorage.js +64 -64
- package/dist/orchestrator/AgentExecutor.d.ts +23 -0
- package/dist/orchestrator/AgentExecutor.d.ts.map +1 -0
- package/dist/orchestrator/AgentExecutor.js +231 -0
- package/dist/orchestrator/AgentExecutor.js.map +1 -0
- package/dist/orchestrator/AgentManager.d.ts +73 -0
- package/dist/orchestrator/AgentManager.d.ts.map +1 -0
- package/dist/orchestrator/AgentManager.js +184 -0
- package/dist/orchestrator/AgentManager.js.map +1 -0
- package/dist/orchestrator/LLMCluster.d.ts +70 -0
- package/dist/orchestrator/LLMCluster.d.ts.map +1 -0
- package/dist/orchestrator/LLMCluster.js +91 -0
- package/dist/orchestrator/LLMCluster.js.map +1 -0
- package/dist/orchestrator/MultiLlmResearch.d.ts +27 -0
- package/dist/orchestrator/MultiLlmResearch.d.ts.map +1 -0
- package/dist/orchestrator/MultiLlmResearch.js +145 -0
- package/dist/orchestrator/MultiLlmResearch.js.map +1 -0
- package/dist/orchestrator/SessionStore.d.ts +41 -0
- package/dist/orchestrator/SessionStore.d.ts.map +1 -0
- package/dist/orchestrator/SessionStore.js +117 -0
- package/dist/orchestrator/SessionStore.js.map +1 -0
- package/dist/orchestrator/SmartRouter.d.ts +68 -0
- package/dist/orchestrator/SmartRouter.d.ts.map +1 -0
- package/dist/orchestrator/SmartRouter.js +256 -0
- package/dist/orchestrator/SmartRouter.js.map +1 -0
- package/dist/orchestrator/backgroundAgent.d.ts +10 -28
- package/dist/orchestrator/backgroundAgent.d.ts.map +1 -1
- package/dist/orchestrator/backgroundAgent.js +11 -346
- package/dist/orchestrator/backgroundAgent.js.map +1 -1
- package/dist/orchestrator/index.d.ts +3 -0
- package/dist/orchestrator/index.d.ts.map +1 -1
- package/dist/orchestrator/index.js +4 -0
- package/dist/orchestrator/index.js.map +1 -1
- package/dist/orchestrator/orchestrator.d.ts +19 -154
- package/dist/orchestrator/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator/orchestrator.js +90 -514
- package/dist/orchestrator/orchestrator.js.map +1 -1
- package/dist/orchestrator/parallelResearch.d.ts +5 -12
- package/dist/orchestrator/parallelResearch.d.ts.map +1 -1
- package/dist/orchestrator/parallelResearch.js +10 -193
- package/dist/orchestrator/parallelResearch.js.map +1 -1
- package/dist/tools/analytics/getUsageAnalytics.d.ts +10 -0
- package/dist/tools/analytics/getUsageAnalytics.d.ts.map +1 -0
- package/dist/tools/analytics/getUsageAnalytics.js +246 -0
- package/dist/tools/analytics/getUsageAnalytics.js.map +1 -0
- package/dist/tools/analytics/index.d.ts +5 -0
- package/dist/tools/analytics/index.d.ts.map +1 -0
- package/dist/tools/analytics/index.js +5 -0
- package/dist/tools/analytics/index.js.map +1 -0
- package/dist/tools/convention/analyzeComplexity.test.js +115 -115
- package/dist/tools/convention/getCodingGuide.d.ts +7 -0
- package/dist/tools/convention/getCodingGuide.d.ts.map +1 -0
- package/dist/tools/convention/getCodingGuide.js +69 -0
- package/dist/tools/convention/getCodingGuide.js.map +1 -0
- package/dist/tools/convention/validateCodeQuality.test.js +104 -104
- package/dist/tools/index.d.ts +2 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/planning/analyzeRequirements.d.ts +9 -0
- package/dist/tools/planning/analyzeRequirements.d.ts.map +1 -0
- package/dist/tools/planning/analyzeRequirements.js +171 -0
- package/dist/tools/planning/analyzeRequirements.js.map +1 -0
- package/dist/tools/planning/createUserStories.d.ts +9 -0
- package/dist/tools/planning/createUserStories.d.ts.map +1 -0
- package/dist/tools/planning/createUserStories.js +124 -0
- package/dist/tools/planning/createUserStories.js.map +1 -0
- package/dist/tools/planning/featureRoadmap.d.ts +10 -0
- package/dist/tools/planning/featureRoadmap.d.ts.map +1 -0
- package/dist/tools/planning/featureRoadmap.js +207 -0
- package/dist/tools/planning/featureRoadmap.js.map +1 -0
- package/dist/tools/planning/generatePrd.d.ts +11 -0
- package/dist/tools/planning/generatePrd.d.ts.map +1 -0
- package/dist/tools/planning/generatePrd.js +161 -0
- package/dist/tools/planning/generatePrd.js.map +1 -0
- package/dist/tools/planning/index.d.ts +8 -0
- package/dist/tools/planning/index.d.ts.map +1 -0
- package/dist/tools/planning/index.js +8 -0
- package/dist/tools/planning/index.js.map +1 -0
- package/dist/tools/prompt/analyzePrompt.d.ts +7 -0
- package/dist/tools/prompt/analyzePrompt.d.ts.map +1 -0
- package/dist/tools/prompt/analyzePrompt.js +150 -0
- package/dist/tools/prompt/analyzePrompt.js.map +1 -0
- package/dist/tools/prompt/enhancePrompt.d.ts +8 -0
- package/dist/tools/prompt/enhancePrompt.d.ts.map +1 -0
- package/dist/tools/prompt/enhancePrompt.js +110 -0
- package/dist/tools/prompt/enhancePrompt.js.map +1 -0
- package/dist/tools/prompt/enhancePromptGemini.d.ts +8 -0
- package/dist/tools/prompt/enhancePromptGemini.d.ts.map +1 -0
- package/dist/tools/prompt/enhancePromptGemini.js +332 -0
- package/dist/tools/prompt/enhancePromptGemini.js.map +1 -0
- package/dist/tools/prompt/index.d.ts +7 -0
- package/dist/tools/prompt/index.d.ts.map +1 -0
- package/dist/tools/prompt/index.js +7 -0
- package/dist/tools/prompt/index.js.map +1 -0
- package/dist/tools/reasoning/applyReasoningFramework.d.ts +8 -0
- package/dist/tools/reasoning/applyReasoningFramework.d.ts.map +1 -0
- package/dist/tools/reasoning/applyReasoningFramework.js +266 -0
- package/dist/tools/reasoning/applyReasoningFramework.js.map +1 -0
- package/dist/tools/reasoning/index.d.ts +5 -0
- package/dist/tools/reasoning/index.d.ts.map +1 -0
- package/dist/tools/reasoning/index.js +5 -0
- package/dist/tools/reasoning/index.js.map +1 -0
- package/dist/tools/thinking/analyzeProblem.d.ts +7 -0
- package/dist/tools/thinking/analyzeProblem.d.ts.map +1 -0
- package/dist/tools/thinking/analyzeProblem.js +55 -0
- package/dist/tools/thinking/analyzeProblem.js.map +1 -0
- package/dist/tools/thinking/breakDownProblem.d.ts +8 -0
- package/dist/tools/thinking/breakDownProblem.d.ts.map +1 -0
- package/dist/tools/thinking/breakDownProblem.js +145 -0
- package/dist/tools/thinking/breakDownProblem.js.map +1 -0
- package/dist/tools/thinking/createThinkingChain.d.ts +7 -0
- package/dist/tools/thinking/createThinkingChain.d.ts.map +1 -0
- package/dist/tools/thinking/createThinkingChain.js +44 -0
- package/dist/tools/thinking/createThinkingChain.js.map +1 -0
- package/dist/tools/thinking/formatAsPlan.d.ts +9 -0
- package/dist/tools/thinking/formatAsPlan.d.ts.map +1 -0
- package/dist/tools/thinking/formatAsPlan.js +78 -0
- package/dist/tools/thinking/formatAsPlan.js.map +1 -0
- package/dist/tools/thinking/index.d.ts +10 -0
- package/dist/tools/thinking/index.d.ts.map +1 -0
- package/dist/tools/thinking/index.js +10 -0
- package/dist/tools/thinking/index.js.map +1 -0
- package/dist/tools/thinking/stepByStepAnalysis.d.ts +8 -0
- package/dist/tools/thinking/stepByStepAnalysis.d.ts.map +1 -0
- package/dist/tools/thinking/stepByStepAnalysis.js +63 -0
- package/dist/tools/thinking/stepByStepAnalysis.js.map +1 -0
- package/dist/tools/thinking/thinkAloudProcess.d.ts +8 -0
- package/dist/tools/thinking/thinkAloudProcess.d.ts.map +1 -0
- package/dist/tools/thinking/thinkAloudProcess.js +80 -0
- package/dist/tools/thinking/thinkAloudProcess.js.map +1 -0
- package/hooks/hooks.json +222 -222
- package/hooks/scripts/code-check.js +22 -22
- package/hooks/scripts/code-review.js +22 -22
- package/hooks/scripts/complexity.js +22 -22
- package/hooks/scripts/compound.js +23 -23
- package/hooks/scripts/context-save.js +33 -33
- package/hooks/scripts/generate-brand-assets.js +472 -0
- package/hooks/scripts/hud-multiline.js +262 -264
- package/hooks/scripts/hud-status.js +291 -293
- package/hooks/scripts/keyword-detector.js +214 -216
- package/hooks/scripts/llm-orchestrate.js +171 -171
- package/hooks/scripts/post-edit.js +97 -97
- package/hooks/scripts/post-tool-verify.js +210 -212
- package/hooks/scripts/pre-tool-guard.js +125 -127
- package/hooks/scripts/recall.js +22 -22
- package/hooks/scripts/session-start.js +30 -30
- package/hooks/scripts/skill-injector.js +191 -193
- package/hooks/scripts/utils.js +97 -97
- package/languages/csharp-unity.md +515 -515
- package/languages/gdscript-godot.md +470 -470
- package/languages/ruby-rails.md +489 -489
- package/languages/typescript-angular.md +433 -433
- package/languages/typescript-astro.md +416 -416
- package/languages/typescript-electron.md +406 -406
- package/languages/typescript-nestjs.md +524 -524
- package/languages/typescript-svelte.md +407 -407
- package/languages/typescript-tauri.md +365 -365
- package/package.json +83 -83
- package/skills/brand-assets.md +141 -0
- package/skills/commerce-patterns.md +361 -0
- package/skills/context7-usage.md +102 -102
- package/skills/e2e-commerce.md +304 -0
- package/skills/frontend-design.md +92 -0
- package/skills/git-worktree.md +181 -181
- package/skills/parallel-research.md +77 -77
- package/skills/priority-todos.md +239 -239
- package/skills/seo-checklist.md +244 -0
- package/skills/tool-fallback.md +190 -190
- package/skills/vibe-capabilities.md +161 -161
- package/vibe/constitution.md +227 -227
- package/vibe/rules/core/communication-guide.md +98 -98
- package/vibe/rules/core/development-philosophy.md +52 -52
- package/vibe/rules/core/quick-start.md +102 -102
- package/vibe/rules/quality/bdd-contract-testing.md +393 -393
- package/vibe/rules/quality/checklist.md +276 -276
- package/vibe/rules/quality/testing-strategy.md +440 -440
- package/vibe/rules/standards/anti-patterns.md +541 -541
- package/vibe/rules/standards/code-structure.md +291 -291
- package/vibe/rules/standards/complexity-metrics.md +313 -313
- package/vibe/rules/standards/naming-conventions.md +198 -198
- package/vibe/setup.sh +31 -31
- package/vibe/templates/constitution-template.md +252 -252
- package/vibe/templates/contract-backend-template.md +526 -526
- package/vibe/templates/contract-frontend-template.md +599 -599
- package/vibe/templates/feature-template.md +96 -96
- package/vibe/templates/spec-template.md +221 -221
|
@@ -31,37 +31,37 @@ export class MemoryStorage {
|
|
|
31
31
|
}
|
|
32
32
|
initializeDatabase() {
|
|
33
33
|
// Create memories table
|
|
34
|
-
this.db.exec(`
|
|
35
|
-
CREATE TABLE IF NOT EXISTS memories (
|
|
36
|
-
key TEXT PRIMARY KEY,
|
|
37
|
-
value TEXT NOT NULL,
|
|
38
|
-
category TEXT NOT NULL DEFAULT 'general',
|
|
39
|
-
timestamp TEXT NOT NULL,
|
|
40
|
-
lastAccessed TEXT NOT NULL,
|
|
41
|
-
priority INTEGER DEFAULT 0
|
|
42
|
-
);
|
|
43
|
-
|
|
44
|
-
CREATE INDEX IF NOT EXISTS idx_category ON memories(category);
|
|
45
|
-
CREATE INDEX IF NOT EXISTS idx_timestamp ON memories(timestamp);
|
|
46
|
-
CREATE INDEX IF NOT EXISTS idx_priority ON memories(priority);
|
|
47
|
-
CREATE INDEX IF NOT EXISTS idx_lastAccessed ON memories(lastAccessed);
|
|
34
|
+
this.db.exec(`
|
|
35
|
+
CREATE TABLE IF NOT EXISTS memories (
|
|
36
|
+
key TEXT PRIMARY KEY,
|
|
37
|
+
value TEXT NOT NULL,
|
|
38
|
+
category TEXT NOT NULL DEFAULT 'general',
|
|
39
|
+
timestamp TEXT NOT NULL,
|
|
40
|
+
lastAccessed TEXT NOT NULL,
|
|
41
|
+
priority INTEGER DEFAULT 0
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
CREATE INDEX IF NOT EXISTS idx_category ON memories(category);
|
|
45
|
+
CREATE INDEX IF NOT EXISTS idx_timestamp ON memories(timestamp);
|
|
46
|
+
CREATE INDEX IF NOT EXISTS idx_priority ON memories(priority);
|
|
47
|
+
CREATE INDEX IF NOT EXISTS idx_lastAccessed ON memories(lastAccessed);
|
|
48
48
|
`);
|
|
49
49
|
// Create memory_relations table for Knowledge Graph
|
|
50
|
-
this.db.exec(`
|
|
51
|
-
CREATE TABLE IF NOT EXISTS memory_relations (
|
|
52
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
53
|
-
sourceKey TEXT NOT NULL,
|
|
54
|
-
targetKey TEXT NOT NULL,
|
|
55
|
-
relationType TEXT NOT NULL,
|
|
56
|
-
strength REAL DEFAULT 1.0,
|
|
57
|
-
metadata TEXT,
|
|
58
|
-
timestamp TEXT NOT NULL,
|
|
59
|
-
UNIQUE(sourceKey, targetKey, relationType)
|
|
60
|
-
);
|
|
61
|
-
|
|
62
|
-
CREATE INDEX IF NOT EXISTS idx_rel_source ON memory_relations(sourceKey);
|
|
63
|
-
CREATE INDEX IF NOT EXISTS idx_rel_target ON memory_relations(targetKey);
|
|
64
|
-
CREATE INDEX IF NOT EXISTS idx_rel_type ON memory_relations(relationType);
|
|
50
|
+
this.db.exec(`
|
|
51
|
+
CREATE TABLE IF NOT EXISTS memory_relations (
|
|
52
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
53
|
+
sourceKey TEXT NOT NULL,
|
|
54
|
+
targetKey TEXT NOT NULL,
|
|
55
|
+
relationType TEXT NOT NULL,
|
|
56
|
+
strength REAL DEFAULT 1.0,
|
|
57
|
+
metadata TEXT,
|
|
58
|
+
timestamp TEXT NOT NULL,
|
|
59
|
+
UNIQUE(sourceKey, targetKey, relationType)
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
CREATE INDEX IF NOT EXISTS idx_rel_source ON memory_relations(sourceKey);
|
|
63
|
+
CREATE INDEX IF NOT EXISTS idx_rel_target ON memory_relations(targetKey);
|
|
64
|
+
CREATE INDEX IF NOT EXISTS idx_rel_type ON memory_relations(relationType);
|
|
65
65
|
`);
|
|
66
66
|
// Enable WAL mode for better concurrency
|
|
67
67
|
this.db.pragma('journal_mode = WAL');
|
|
@@ -70,10 +70,10 @@ export class MemoryStorage {
|
|
|
70
70
|
}
|
|
71
71
|
initializePreparedStatements() {
|
|
72
72
|
try {
|
|
73
|
-
this.recallStmt = this.db.prepare(`
|
|
74
|
-
UPDATE memories SET lastAccessed = ?
|
|
75
|
-
WHERE key = ?
|
|
76
|
-
RETURNING *
|
|
73
|
+
this.recallStmt = this.db.prepare(`
|
|
74
|
+
UPDATE memories SET lastAccessed = ?
|
|
75
|
+
WHERE key = ?
|
|
76
|
+
RETURNING *
|
|
77
77
|
`);
|
|
78
78
|
}
|
|
79
79
|
catch {
|
|
@@ -82,9 +82,9 @@ export class MemoryStorage {
|
|
|
82
82
|
this.recallSelectStmt = this.db.prepare(`SELECT * FROM memories WHERE key = ?`);
|
|
83
83
|
this.recallUpdateStmt = this.db.prepare(`UPDATE memories SET lastAccessed = ? WHERE key = ?`);
|
|
84
84
|
}
|
|
85
|
-
this.saveStmt = this.db.prepare(`
|
|
86
|
-
INSERT OR REPLACE INTO memories (key, value, category, timestamp, lastAccessed, priority)
|
|
87
|
-
VALUES (?, ?, ?, ?, ?, ?)
|
|
85
|
+
this.saveStmt = this.db.prepare(`
|
|
86
|
+
INSERT OR REPLACE INTO memories (key, value, category, timestamp, lastAccessed, priority)
|
|
87
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
88
88
|
`);
|
|
89
89
|
}
|
|
90
90
|
migrateFromJSON() {
|
|
@@ -96,9 +96,9 @@ export class MemoryStorage {
|
|
|
96
96
|
const memories = JSON.parse(jsonData);
|
|
97
97
|
if (memories.length === 0)
|
|
98
98
|
return;
|
|
99
|
-
const insert = this.db.prepare(`
|
|
100
|
-
INSERT OR REPLACE INTO memories (key, value, category, timestamp, lastAccessed, priority)
|
|
101
|
-
VALUES (?, ?, ?, ?, ?, ?)
|
|
99
|
+
const insert = this.db.prepare(`
|
|
100
|
+
INSERT OR REPLACE INTO memories (key, value, category, timestamp, lastAccessed, priority)
|
|
101
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
102
102
|
`);
|
|
103
103
|
const insertMany = this.db.transaction((items) => {
|
|
104
104
|
for (const item of items) {
|
|
@@ -121,9 +121,9 @@ export class MemoryStorage {
|
|
|
121
121
|
this.saveStmt.run(key, value, category, timestamp, timestamp, priority);
|
|
122
122
|
}
|
|
123
123
|
else {
|
|
124
|
-
const stmt = this.db.prepare(`
|
|
125
|
-
INSERT OR REPLACE INTO memories (key, value, category, timestamp, lastAccessed, priority)
|
|
126
|
-
VALUES (?, ?, ?, ?, ?, ?)
|
|
124
|
+
const stmt = this.db.prepare(`
|
|
125
|
+
INSERT OR REPLACE INTO memories (key, value, category, timestamp, lastAccessed, priority)
|
|
126
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
127
127
|
`);
|
|
128
128
|
stmt.run(key, value, category, timestamp, timestamp, priority);
|
|
129
129
|
}
|
|
@@ -161,10 +161,10 @@ export class MemoryStorage {
|
|
|
161
161
|
*/
|
|
162
162
|
update(key, value) {
|
|
163
163
|
const timestamp = new Date().toISOString();
|
|
164
|
-
const stmt = this.db.prepare(`
|
|
165
|
-
UPDATE memories
|
|
166
|
-
SET value = ?, timestamp = ?, lastAccessed = ?
|
|
167
|
-
WHERE key = ?
|
|
164
|
+
const stmt = this.db.prepare(`
|
|
165
|
+
UPDATE memories
|
|
166
|
+
SET value = ?, timestamp = ?, lastAccessed = ?
|
|
167
|
+
WHERE key = ?
|
|
168
168
|
`);
|
|
169
169
|
const result = stmt.run(value, timestamp, timestamp, key);
|
|
170
170
|
return result.changes > 0;
|
|
@@ -174,16 +174,16 @@ export class MemoryStorage {
|
|
|
174
174
|
*/
|
|
175
175
|
list(category) {
|
|
176
176
|
if (category) {
|
|
177
|
-
const stmt = this.db.prepare(`
|
|
178
|
-
SELECT * FROM memories WHERE category = ?
|
|
179
|
-
ORDER BY priority DESC, timestamp DESC
|
|
177
|
+
const stmt = this.db.prepare(`
|
|
178
|
+
SELECT * FROM memories WHERE category = ?
|
|
179
|
+
ORDER BY priority DESC, timestamp DESC
|
|
180
180
|
`);
|
|
181
181
|
return stmt.all(category);
|
|
182
182
|
}
|
|
183
183
|
else {
|
|
184
|
-
const stmt = this.db.prepare(`
|
|
185
|
-
SELECT * FROM memories
|
|
186
|
-
ORDER BY priority DESC, timestamp DESC
|
|
184
|
+
const stmt = this.db.prepare(`
|
|
185
|
+
SELECT * FROM memories
|
|
186
|
+
ORDER BY priority DESC, timestamp DESC
|
|
187
187
|
`);
|
|
188
188
|
return stmt.all();
|
|
189
189
|
}
|
|
@@ -192,10 +192,10 @@ export class MemoryStorage {
|
|
|
192
192
|
* Search memories by keyword
|
|
193
193
|
*/
|
|
194
194
|
search(query) {
|
|
195
|
-
const stmt = this.db.prepare(`
|
|
196
|
-
SELECT * FROM memories
|
|
197
|
-
WHERE key LIKE ? OR value LIKE ?
|
|
198
|
-
ORDER BY priority DESC, timestamp DESC
|
|
195
|
+
const stmt = this.db.prepare(`
|
|
196
|
+
SELECT * FROM memories
|
|
197
|
+
WHERE key LIKE ? OR value LIKE ?
|
|
198
|
+
ORDER BY priority DESC, timestamp DESC
|
|
199
199
|
`);
|
|
200
200
|
const pattern = `%${query}%`;
|
|
201
201
|
return stmt.all(pattern, pattern);
|
|
@@ -204,10 +204,10 @@ export class MemoryStorage {
|
|
|
204
204
|
* Get memories by priority level
|
|
205
205
|
*/
|
|
206
206
|
getByPriority(priority) {
|
|
207
|
-
const stmt = this.db.prepare(`
|
|
208
|
-
SELECT * FROM memories
|
|
209
|
-
WHERE priority = ?
|
|
210
|
-
ORDER BY timestamp DESC
|
|
207
|
+
const stmt = this.db.prepare(`
|
|
208
|
+
SELECT * FROM memories
|
|
209
|
+
WHERE priority = ?
|
|
210
|
+
ORDER BY timestamp DESC
|
|
211
211
|
`);
|
|
212
212
|
return stmt.all(priority);
|
|
213
213
|
}
|
|
@@ -223,10 +223,10 @@ export class MemoryStorage {
|
|
|
223
223
|
* Get memory statistics
|
|
224
224
|
*/
|
|
225
225
|
getStats() {
|
|
226
|
-
const categories = this.db.prepare(`
|
|
227
|
-
SELECT category, COUNT(*) as count
|
|
228
|
-
FROM memories
|
|
229
|
-
GROUP BY category
|
|
226
|
+
const categories = this.db.prepare(`
|
|
227
|
+
SELECT category, COUNT(*) as count
|
|
228
|
+
FROM memories
|
|
229
|
+
GROUP BY category
|
|
230
230
|
`).all();
|
|
231
231
|
const byCategory = {};
|
|
232
232
|
let total = 0;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentExecutor - 백그라운드 에이전트 실행
|
|
3
|
+
* backgroundAgent.ts에서 추출 (v2.6.0)
|
|
4
|
+
*/
|
|
5
|
+
import { BackgroundAgentArgs } from './types.js';
|
|
6
|
+
import { ToolResult } from '../types/tool.js';
|
|
7
|
+
/**
|
|
8
|
+
* 백그라운드 에이전트 시작
|
|
9
|
+
*/
|
|
10
|
+
export declare function launchBackgroundAgent(args: BackgroundAgentArgs): Promise<ToolResult>;
|
|
11
|
+
/**
|
|
12
|
+
* 백그라운드 에이전트 결과 조회
|
|
13
|
+
*/
|
|
14
|
+
export declare function getBackgroundAgentResult(sessionId: string): Promise<ToolResult>;
|
|
15
|
+
/**
|
|
16
|
+
* 백그라운드 에이전트 취소
|
|
17
|
+
*/
|
|
18
|
+
export declare function cancelBackgroundAgent(sessionId: string): ToolResult;
|
|
19
|
+
/**
|
|
20
|
+
* 여러 백그라운드 에이전트 동시 실행
|
|
21
|
+
*/
|
|
22
|
+
export declare function launchParallelAgents(agentConfigs: BackgroundAgentArgs[]): Promise<ToolResult>;
|
|
23
|
+
//# sourceMappingURL=AgentExecutor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentExecutor.d.ts","sourceRoot":"","sources":["../../src/orchestrator/AgentExecutor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,mBAAmB,EAIpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA4B9C;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAoI1F;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAmCrF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAanE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,mBAAmB,EAAE,GAClC,OAAO,CAAC,UAAU,CAAC,CAuCrB"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentExecutor - 백그라운드 에이전트 실행
|
|
3
|
+
* backgroundAgent.ts에서 추출 (v2.6.0)
|
|
4
|
+
*/
|
|
5
|
+
import { getAgentSdkQuery } from '../lib/utils.js';
|
|
6
|
+
import { DEFAULT_MODELS, AGENT } from '../lib/constants.js';
|
|
7
|
+
import { sessionStore } from './SessionStore.js';
|
|
8
|
+
/**
|
|
9
|
+
* 시뮬레이션 핸들 생성 (Agent SDK 미설치 시)
|
|
10
|
+
*/
|
|
11
|
+
function createSimulatedHandle(agentName, prompt) {
|
|
12
|
+
return {
|
|
13
|
+
sessionId: `simulated-${Date.now()}`,
|
|
14
|
+
agentName,
|
|
15
|
+
status: 'completed',
|
|
16
|
+
startTime: Date.now(),
|
|
17
|
+
getResult: async () => ({
|
|
18
|
+
agentName,
|
|
19
|
+
sessionId: `simulated-${Date.now()}`,
|
|
20
|
+
result: `[Agent SDK not installed] Would execute: ${prompt.slice(0, 100)}...`,
|
|
21
|
+
success: true,
|
|
22
|
+
duration: 0
|
|
23
|
+
}),
|
|
24
|
+
cancel: () => { }
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 백그라운드 에이전트 시작
|
|
29
|
+
*/
|
|
30
|
+
export async function launchBackgroundAgent(args) {
|
|
31
|
+
const { prompt, agentName = `agent-${Date.now()}`, model = DEFAULT_MODELS.BACKGROUND, maxTurns = AGENT.MAX_TURNS, allowedTools = AGENT.DEFAULT_ALLOWED_TOOLS, projectPath = process.cwd(), onProgress } = args;
|
|
32
|
+
const query = await getAgentSdkQuery();
|
|
33
|
+
// Agent SDK가 없으면 시뮬레이션
|
|
34
|
+
if (!query) {
|
|
35
|
+
const handle = createSimulatedHandle(agentName, prompt);
|
|
36
|
+
return {
|
|
37
|
+
content: [{
|
|
38
|
+
type: 'text',
|
|
39
|
+
text: `Background agent "${agentName}" started (simulated)\nSession ID: ${handle.sessionId}\n\nNote: Install @anthropic-ai/claude-agent-sdk for real execution.`
|
|
40
|
+
}],
|
|
41
|
+
handle
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const startTime = Date.now();
|
|
45
|
+
const cancelController = new AbortController();
|
|
46
|
+
let sessionId = '';
|
|
47
|
+
let result = '';
|
|
48
|
+
let status = 'running';
|
|
49
|
+
// 결과 수집 Promise
|
|
50
|
+
const resultPromise = new Promise(async (resolve) => {
|
|
51
|
+
try {
|
|
52
|
+
const response = query({
|
|
53
|
+
prompt,
|
|
54
|
+
options: { model, maxTurns, allowedTools, cwd: projectPath }
|
|
55
|
+
});
|
|
56
|
+
for await (const message of response) {
|
|
57
|
+
if (cancelController.signal.aborted) {
|
|
58
|
+
status = 'cancelled';
|
|
59
|
+
resolve({
|
|
60
|
+
agentName, sessionId,
|
|
61
|
+
result: 'Cancelled by user',
|
|
62
|
+
success: false,
|
|
63
|
+
error: 'Cancelled',
|
|
64
|
+
duration: Date.now() - startTime
|
|
65
|
+
});
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const msg = message;
|
|
69
|
+
if (msg.type === 'system' && msg.subtype === 'init' && msg.session_id) {
|
|
70
|
+
sessionId = msg.session_id;
|
|
71
|
+
}
|
|
72
|
+
if (msg.type === 'system' && msg.subtype === 'progress' && onProgress) {
|
|
73
|
+
onProgress(msg.content || 'Processing...');
|
|
74
|
+
}
|
|
75
|
+
if (msg.type === 'result' && msg.result) {
|
|
76
|
+
result = msg.result;
|
|
77
|
+
}
|
|
78
|
+
if (msg.type === 'assistant' && msg.message?.content) {
|
|
79
|
+
const textContent = msg.message.content
|
|
80
|
+
.filter(block => block.type === 'text' && block.text)
|
|
81
|
+
.map(block => block.text)
|
|
82
|
+
.join('\n');
|
|
83
|
+
if (textContent)
|
|
84
|
+
result += textContent;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
status = 'completed';
|
|
88
|
+
resolve({
|
|
89
|
+
agentName, sessionId,
|
|
90
|
+
result: result || 'No result',
|
|
91
|
+
success: true,
|
|
92
|
+
duration: Date.now() - startTime
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
status = 'failed';
|
|
97
|
+
resolve({
|
|
98
|
+
agentName, sessionId,
|
|
99
|
+
result: '',
|
|
100
|
+
success: false,
|
|
101
|
+
error: error instanceof Error ? error.message : String(error),
|
|
102
|
+
duration: Date.now() - startTime
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
// 핸들 생성
|
|
107
|
+
const handle = {
|
|
108
|
+
sessionId: sessionId || `pending-${Date.now()}`,
|
|
109
|
+
agentName,
|
|
110
|
+
status,
|
|
111
|
+
startTime,
|
|
112
|
+
getResult: () => resultPromise,
|
|
113
|
+
cancel: () => {
|
|
114
|
+
cancelController.abort();
|
|
115
|
+
status = 'cancelled';
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
// 세션 등록
|
|
119
|
+
sessionStore.add(handle.sessionId, {
|
|
120
|
+
handle, resultPromise, cancelController, createdAt: startTime
|
|
121
|
+
});
|
|
122
|
+
// 완료 시 히스토리에 추가
|
|
123
|
+
resultPromise.then((agentResult) => {
|
|
124
|
+
sessionStore.addToHistory({
|
|
125
|
+
sessionId: agentResult.sessionId,
|
|
126
|
+
agentName: agentResult.agentName,
|
|
127
|
+
status: agentResult.success ? 'completed' : 'failed',
|
|
128
|
+
startTime,
|
|
129
|
+
endTime: Date.now(),
|
|
130
|
+
prompt
|
|
131
|
+
});
|
|
132
|
+
sessionStore.delete(handle.sessionId);
|
|
133
|
+
});
|
|
134
|
+
return {
|
|
135
|
+
content: [{
|
|
136
|
+
type: 'text',
|
|
137
|
+
text: `Background agent "${agentName}" started\nSession ID: ${handle.sessionId}\nModel: ${model}\nMax Turns: ${maxTurns}\n\nUse getBackgroundAgentResult("${handle.sessionId}") to check status.`
|
|
138
|
+
}],
|
|
139
|
+
handle
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* 백그라운드 에이전트 결과 조회
|
|
144
|
+
*/
|
|
145
|
+
export async function getBackgroundAgentResult(sessionId) {
|
|
146
|
+
const session = sessionStore.get(sessionId);
|
|
147
|
+
if (!session) {
|
|
148
|
+
const historical = sessionStore.findInHistory(sessionId);
|
|
149
|
+
if (historical) {
|
|
150
|
+
return {
|
|
151
|
+
content: [{
|
|
152
|
+
type: 'text',
|
|
153
|
+
text: `Session "${sessionId}" completed at ${new Date(historical.endTime).toISOString()}\nStatus: ${historical.status}`
|
|
154
|
+
}]
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
content: [{ type: 'text', text: `Session "${sessionId}" not found` }]
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
if (session.handle.status === 'running') {
|
|
162
|
+
return {
|
|
163
|
+
content: [{
|
|
164
|
+
type: 'text',
|
|
165
|
+
text: `Session "${sessionId}" is still running\nAgent: ${session.handle.agentName}\nStarted: ${new Date(session.handle.startTime).toISOString()}`
|
|
166
|
+
}]
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
const result = await session.resultPromise;
|
|
170
|
+
return {
|
|
171
|
+
content: [{
|
|
172
|
+
type: 'text',
|
|
173
|
+
text: `Session "${sessionId}" ${result.success ? 'completed' : 'failed'}\nDuration: ${(result.duration / 1000).toFixed(1)}s\n\nResult:\n${result.result}`
|
|
174
|
+
}],
|
|
175
|
+
result
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* 백그라운드 에이전트 취소
|
|
180
|
+
*/
|
|
181
|
+
export function cancelBackgroundAgent(sessionId) {
|
|
182
|
+
const session = sessionStore.get(sessionId);
|
|
183
|
+
if (!session) {
|
|
184
|
+
return {
|
|
185
|
+
content: [{ type: 'text', text: `Session "${sessionId}" not found or already completed` }]
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
session.handle.cancel();
|
|
189
|
+
return {
|
|
190
|
+
content: [{ type: 'text', text: `Session "${sessionId}" cancelled` }]
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* 여러 백그라운드 에이전트 동시 실행
|
|
195
|
+
*/
|
|
196
|
+
export async function launchParallelAgents(agentConfigs) {
|
|
197
|
+
const handles = [];
|
|
198
|
+
const errors = [];
|
|
199
|
+
const results = await Promise.all(agentConfigs.map(async (config) => {
|
|
200
|
+
try {
|
|
201
|
+
const result = await launchBackgroundAgent(config);
|
|
202
|
+
if ('handle' in result) {
|
|
203
|
+
return result.handle;
|
|
204
|
+
}
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
errors.push(`${config.agentName}: ${error instanceof Error ? error.message : String(error)}`);
|
|
209
|
+
return null;
|
|
210
|
+
}
|
|
211
|
+
}));
|
|
212
|
+
for (const result of results) {
|
|
213
|
+
if (result)
|
|
214
|
+
handles.push(result);
|
|
215
|
+
}
|
|
216
|
+
let summary = `## Launched ${handles.length} Background Agents\n\n`;
|
|
217
|
+
for (const handle of handles) {
|
|
218
|
+
summary += `- ${handle.agentName}: ${handle.sessionId}\n`;
|
|
219
|
+
}
|
|
220
|
+
if (errors.length > 0) {
|
|
221
|
+
summary += `\n### Errors (${errors.length})\n`;
|
|
222
|
+
for (const error of errors) {
|
|
223
|
+
summary += `- ${error}\n`;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return {
|
|
227
|
+
content: [{ type: 'text', text: summary }],
|
|
228
|
+
handles
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
//# sourceMappingURL=AgentExecutor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentExecutor.js","sourceRoot":"","sources":["../../src/orchestrator/AgentExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentManager - 에이전트 관리 및 실행
|
|
3
|
+
* orchestrator.ts에서 추출된 에이전트 관리 모듈
|
|
4
|
+
*/
|
|
5
|
+
import { AgentResult, BackgroundAgentArgs, BackgroundAgentHandle, DiscoveredAgent } from './types.js';
|
|
6
|
+
import { ToolResult } from '../types/tool.js';
|
|
7
|
+
/**
|
|
8
|
+
* AgentManager 설정
|
|
9
|
+
*/
|
|
10
|
+
export interface AgentManagerOptions {
|
|
11
|
+
projectPath?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* AgentManager - 에이전트 탐색, 실행, 결과 관리
|
|
15
|
+
*/
|
|
16
|
+
export declare class AgentManager {
|
|
17
|
+
private projectPath;
|
|
18
|
+
constructor(options?: AgentManagerOptions);
|
|
19
|
+
/**
|
|
20
|
+
* 에이전트 탐색
|
|
21
|
+
*/
|
|
22
|
+
discover(category?: string): Promise<DiscoveredAgent[]>;
|
|
23
|
+
/**
|
|
24
|
+
* 특정 에이전트 로드
|
|
25
|
+
*/
|
|
26
|
+
load(agentName: string): Promise<DiscoveredAgent | null>;
|
|
27
|
+
/**
|
|
28
|
+
* 카테고리별 에이전트 목록
|
|
29
|
+
*/
|
|
30
|
+
listByCategory(category: string): Promise<DiscoveredAgent[]>;
|
|
31
|
+
/**
|
|
32
|
+
* 백그라운드 에이전트 시작
|
|
33
|
+
*/
|
|
34
|
+
launch(args: BackgroundAgentArgs): Promise<BackgroundAgentHandle | null>;
|
|
35
|
+
/**
|
|
36
|
+
* 여러 에이전트 동시 실행
|
|
37
|
+
*/
|
|
38
|
+
launchParallel(configs: BackgroundAgentArgs[]): Promise<BackgroundAgentHandle[]>;
|
|
39
|
+
/**
|
|
40
|
+
* 에이전트 결과 조회
|
|
41
|
+
*/
|
|
42
|
+
getResult(sessionId: string): Promise<AgentResult | null>;
|
|
43
|
+
/**
|
|
44
|
+
* 에이전트 취소
|
|
45
|
+
*/
|
|
46
|
+
cancel(sessionId: string): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* 활성 세션 목록
|
|
49
|
+
*/
|
|
50
|
+
getActiveSessions(): ToolResult;
|
|
51
|
+
/**
|
|
52
|
+
* 세션 히스토리
|
|
53
|
+
*/
|
|
54
|
+
getHistory(limit?: number): ToolResult;
|
|
55
|
+
/**
|
|
56
|
+
* 리뷰 에이전트 병렬 실행
|
|
57
|
+
*/
|
|
58
|
+
runParallelReview(filePaths: string[], techStack?: string[]): Promise<AgentResult[]>;
|
|
59
|
+
/**
|
|
60
|
+
* 기술 스택에 맞는 에이전트 필터링
|
|
61
|
+
*/
|
|
62
|
+
private filterRelevantAgents;
|
|
63
|
+
/**
|
|
64
|
+
* 리뷰 프롬프트 생성
|
|
65
|
+
*/
|
|
66
|
+
private buildReviewPrompt;
|
|
67
|
+
/**
|
|
68
|
+
* 프로젝트 경로 업데이트
|
|
69
|
+
*/
|
|
70
|
+
setProjectPath(path: string): void;
|
|
71
|
+
}
|
|
72
|
+
export declare function getAgentManager(options?: AgentManagerOptions): AgentManager;
|
|
73
|
+
//# sourceMappingURL=AgentManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentManager.d.ts","sourceRoot":"","sources":["../../src/orchestrator/AgentManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAY9C;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,GAAE,mBAAwB;IAI7C;;OAEG;IACG,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAY7D;;OAEG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAI9D;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAIlE;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAY9E;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IActF;;OAEG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAS/D;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAKlC;;OAEG;IACH,iBAAiB,IAAI,UAAU;IAI/B;;OAEG;IACH,UAAU,CAAC,KAAK,GAAE,MAAW,GAAG,UAAU;IAI1C;;OAEG;IACG,iBAAiB,CACrB,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,GAAE,MAAM,EAAO,GACvB,OAAO,CAAC,WAAW,EAAE,CAAC;IAuBzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAuC5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAGnC;AAKD,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,YAAY,CAK3E"}
|