@stackmemoryai/stackmemory 0.5.58 → 0.5.59
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/dist/cli/commands/search.js +20 -3
- package/dist/cli/commands/search.js.map +2 -2
- package/dist/core/database/sqlite-adapter.js +13 -3
- package/dist/core/database/sqlite-adapter.js.map +2 -2
- package/dist/core/errors/error-utils.js +208 -0
- package/dist/core/errors/error-utils.js.map +7 -0
- package/dist/core/errors/index.js +13 -4
- package/dist/core/errors/index.js.map +2 -2
- package/dist/core/merge/unified-merge-resolver.js +303 -0
- package/dist/core/merge/unified-merge-resolver.js.map +7 -0
- package/dist/core/monitoring/logger.js +61 -9
- package/dist/core/monitoring/logger.js.map +2 -2
- package/dist/core/security/index.js +35 -0
- package/dist/core/security/index.js.map +7 -0
- package/dist/core/security/input-sanitizer.js +321 -0
- package/dist/core/security/input-sanitizer.js.map +7 -0
- package/dist/integrations/linear/client.js +5 -1
- package/dist/integrations/linear/client.js.map +2 -2
- package/dist/integrations/mcp/remote-server.js +27 -36
- package/dist/integrations/mcp/remote-server.js.map +2 -2
- package/dist/integrations/mcp/server.js +44 -29
- package/dist/integrations/mcp/server.js.map +3 -3
- package/dist/scripts/benchmark-performance.js +48 -0
- package/dist/scripts/benchmark-performance.js.map +7 -0
- package/dist/scripts/check-redis.js +42 -0
- package/dist/scripts/check-redis.js.map +7 -0
- package/dist/scripts/initialize.js +116 -0
- package/dist/scripts/initialize.js.map +7 -0
- package/dist/scripts/list-linear-tasks.js +124 -0
- package/dist/scripts/list-linear-tasks.js.map +7 -0
- package/dist/scripts/measure-handoff-impact.js +340 -0
- package/dist/scripts/measure-handoff-impact.js.map +7 -0
- package/dist/scripts/query-chromadb.js +160 -0
- package/dist/scripts/query-chromadb.js.map +7 -0
- package/dist/scripts/show-linear-summary.js +119 -0
- package/dist/scripts/show-linear-summary.js.map +7 -0
- package/dist/scripts/simple-swarm-demo.js +90 -0
- package/dist/scripts/simple-swarm-demo.js.map +7 -0
- package/dist/scripts/status.js +155 -0
- package/dist/scripts/status.js.map +7 -0
- package/dist/scripts/test-chromadb-sync.js +192 -0
- package/dist/scripts/test-chromadb-sync.js.map +7 -0
- package/dist/scripts/test-ralph-iteration-fix.js +86 -0
- package/dist/scripts/test-ralph-iteration-fix.js.map +7 -0
- package/dist/scripts/test-ralph-iterations.js +121 -0
- package/dist/scripts/test-ralph-iterations.js.map +7 -0
- package/dist/scripts/test-redis-storage.js +389 -0
- package/dist/scripts/test-redis-storage.js.map +7 -0
- package/dist/scripts/test-simple-ralph-state-sync.js +115 -0
- package/dist/scripts/test-simple-ralph-state-sync.js.map +7 -0
- package/dist/scripts/test-swarm-fixes.js +125 -0
- package/dist/scripts/test-swarm-fixes.js.map +7 -0
- package/dist/scripts/test-swarm-tui.js +23 -0
- package/dist/scripts/test-swarm-tui.js.map +7 -0
- package/dist/scripts/test-tui-shortcuts.js +52 -0
- package/dist/scripts/test-tui-shortcuts.js.map +7 -0
- package/dist/scripts/validate-tui-shortcuts.js +60 -0
- package/dist/scripts/validate-tui-shortcuts.js.map +7 -0
- package/dist/src/agents/core/agent-task-manager.js +527 -0
- package/dist/src/agents/core/agent-task-manager.js.map +7 -0
- package/dist/src/agents/verifiers/base-verifier.js +133 -0
- package/dist/src/agents/verifiers/base-verifier.js.map +7 -0
- package/dist/src/agents/verifiers/formatter-verifier.js +130 -0
- package/dist/src/agents/verifiers/formatter-verifier.js.map +7 -0
- package/dist/src/agents/verifiers/llm-judge.js +252 -0
- package/dist/src/agents/verifiers/llm-judge.js.map +7 -0
- package/dist/src/cli/auto-detect.js +321 -0
- package/dist/src/cli/auto-detect.js.map +7 -0
- package/dist/src/cli/claude-sm-danger.js +21 -0
- package/dist/src/cli/claude-sm-danger.js.map +7 -0
- package/dist/src/cli/claude-sm.js +1156 -0
- package/dist/src/cli/claude-sm.js.map +7 -0
- package/dist/src/cli/codex-sm-danger.js +21 -0
- package/dist/src/cli/codex-sm-danger.js.map +7 -0
- package/dist/src/cli/codex-sm.js +349 -0
- package/dist/src/cli/codex-sm.js.map +7 -0
- package/dist/src/cli/commands/api.js +232 -0
- package/dist/src/cli/commands/api.js.map +7 -0
- package/dist/src/cli/commands/auto-background.js +180 -0
- package/dist/src/cli/commands/auto-background.js.map +7 -0
- package/dist/src/cli/commands/cleanup-processes.js +68 -0
- package/dist/src/cli/commands/cleanup-processes.js.map +7 -0
- package/dist/src/cli/commands/clear.js +202 -0
- package/dist/src/cli/commands/clear.js.map +7 -0
- package/dist/src/cli/commands/config.js +445 -0
- package/dist/src/cli/commands/config.js.map +7 -0
- package/dist/src/cli/commands/context-rehydrate.js +751 -0
- package/dist/src/cli/commands/context-rehydrate.js.map +7 -0
- package/dist/src/cli/commands/context.js +343 -0
- package/dist/src/cli/commands/context.js.map +7 -0
- package/dist/src/cli/commands/daemon.js +392 -0
- package/dist/src/cli/commands/daemon.js.map +7 -0
- package/dist/src/cli/commands/dashboard.js +210 -0
- package/dist/src/cli/commands/dashboard.js.map +7 -0
- package/dist/src/cli/commands/db.js +147 -0
- package/dist/src/cli/commands/db.js.map +7 -0
- package/dist/src/cli/commands/decision.js +266 -0
- package/dist/src/cli/commands/decision.js.map +7 -0
- package/dist/src/cli/commands/discovery.js +279 -0
- package/dist/src/cli/commands/discovery.js.map +7 -0
- package/dist/src/cli/commands/handoff.js +624 -0
- package/dist/src/cli/commands/handoff.js.map +7 -0
- package/dist/src/cli/commands/hooks.js +298 -0
- package/dist/src/cli/commands/hooks.js.map +7 -0
- package/dist/src/cli/commands/linear.js +529 -0
- package/dist/src/cli/commands/linear.js.map +7 -0
- package/dist/src/cli/commands/log.js +169 -0
- package/dist/src/cli/commands/log.js.map +7 -0
- package/dist/src/cli/commands/login.js +172 -0
- package/dist/src/cli/commands/login.js.map +7 -0
- package/dist/src/cli/commands/migrate.js +240 -0
- package/dist/src/cli/commands/migrate.js.map +7 -0
- package/dist/src/cli/commands/model.js +533 -0
- package/dist/src/cli/commands/model.js.map +7 -0
- package/dist/src/cli/commands/onboard.js +536 -0
- package/dist/src/cli/commands/onboard.js.map +7 -0
- package/dist/src/cli/commands/projects.js +199 -0
- package/dist/src/cli/commands/projects.js.map +7 -0
- package/dist/src/cli/commands/ralph.js +909 -0
- package/dist/src/cli/commands/ralph.js.map +7 -0
- package/dist/src/cli/commands/retrieval.js +248 -0
- package/dist/src/cli/commands/retrieval.js.map +7 -0
- package/dist/src/cli/commands/search.js +173 -0
- package/dist/src/cli/commands/search.js.map +7 -0
- package/dist/src/cli/commands/service.js +749 -0
- package/dist/src/cli/commands/service.js.map +7 -0
- package/dist/src/cli/commands/session.js +200 -0
- package/dist/src/cli/commands/session.js.map +7 -0
- package/dist/src/cli/commands/settings.js +306 -0
- package/dist/src/cli/commands/settings.js.map +7 -0
- package/dist/src/cli/commands/setup.js +701 -0
- package/dist/src/cli/commands/setup.js.map +7 -0
- package/dist/src/cli/commands/shell.js +249 -0
- package/dist/src/cli/commands/shell.js.map +7 -0
- package/dist/src/cli/commands/signup.js +50 -0
- package/dist/src/cli/commands/signup.js.map +7 -0
- package/dist/src/cli/commands/skills.js +470 -0
- package/dist/src/cli/commands/skills.js.map +7 -0
- package/dist/src/cli/commands/sms-notify.js +795 -0
- package/dist/src/cli/commands/sms-notify.js.map +7 -0
- package/dist/src/cli/commands/storage-tier.js +183 -0
- package/dist/src/cli/commands/storage-tier.js.map +7 -0
- package/dist/src/cli/commands/sweep.js +249 -0
- package/dist/src/cli/commands/sweep.js.map +7 -0
- package/dist/src/cli/commands/tasks.js +213 -0
- package/dist/src/cli/commands/tasks.js.map +7 -0
- package/dist/src/cli/commands/worktree.js +319 -0
- package/dist/src/cli/commands/worktree.js.map +7 -0
- package/dist/src/cli/index.js +594 -0
- package/dist/src/cli/index.js.map +7 -0
- package/dist/src/cli/opencode-sm.js +448 -0
- package/dist/src/cli/opencode-sm.js.map +7 -0
- package/dist/src/cli/utils/viewer.js +96 -0
- package/dist/src/cli/utils/viewer.js.map +7 -0
- package/dist/src/core/config/config-manager.js +398 -0
- package/dist/src/core/config/config-manager.js.map +7 -0
- package/dist/src/core/config/feature-flags.js +76 -0
- package/dist/src/core/config/feature-flags.js.map +7 -0
- package/dist/src/core/config/storage-config.js +115 -0
- package/dist/src/core/config/storage-config.js.map +7 -0
- package/dist/src/core/config/types.js +144 -0
- package/dist/src/core/config/types.js.map +7 -0
- package/dist/src/core/context/auto-context.js +80 -0
- package/dist/src/core/context/auto-context.js.map +7 -0
- package/dist/src/core/context/dual-stack-manager.js +870 -0
- package/dist/src/core/context/dual-stack-manager.js.map +7 -0
- package/dist/src/core/context/enhanced-rehydration.js +994 -0
- package/dist/src/core/context/enhanced-rehydration.js.map +7 -0
- package/dist/src/core/context/frame-database.js +479 -0
- package/dist/src/core/context/frame-database.js.map +7 -0
- package/dist/src/core/context/frame-digest.js +250 -0
- package/dist/src/core/context/frame-digest.js.map +7 -0
- package/dist/src/core/context/frame-handoff-manager.js +778 -0
- package/dist/src/core/context/frame-handoff-manager.js.map +7 -0
- package/dist/src/core/context/frame-lifecycle-hooks.js +119 -0
- package/dist/src/core/context/frame-lifecycle-hooks.js.map +7 -0
- package/dist/src/core/context/frame-recovery.js +302 -0
- package/dist/src/core/context/frame-recovery.js.map +7 -0
- package/dist/src/core/context/frame-stack.js +314 -0
- package/dist/src/core/context/frame-stack.js.map +7 -0
- package/dist/src/core/context/frame-types.js +5 -0
- package/dist/src/core/context/frame-types.js.map +7 -0
- package/dist/src/core/context/index.js +25 -0
- package/dist/src/core/context/index.js.map +7 -0
- package/dist/src/core/context/permission-manager.js +185 -0
- package/dist/src/core/context/permission-manager.js.map +7 -0
- package/dist/src/core/context/recursive-context-manager.js +592 -0
- package/dist/src/core/context/recursive-context-manager.js.map +7 -0
- package/dist/src/core/context/refactored-frame-manager.js +754 -0
- package/dist/src/core/context/refactored-frame-manager.js.map +7 -0
- package/dist/src/core/context/shared-context-layer.js +621 -0
- package/dist/src/core/context/shared-context-layer.js.map +7 -0
- package/dist/src/core/context/stack-merge-resolver.js +749 -0
- package/dist/src/core/context/stack-merge-resolver.js.map +7 -0
- package/dist/src/core/context/validation.js +130 -0
- package/dist/src/core/context/validation.js.map +7 -0
- package/dist/src/core/database/batch-operations.js +384 -0
- package/dist/src/core/database/batch-operations.js.map +7 -0
- package/dist/src/core/database/connection-pool.js +330 -0
- package/dist/src/core/database/connection-pool.js.map +7 -0
- package/dist/src/core/database/database-adapter.js +60 -0
- package/dist/src/core/database/database-adapter.js.map +7 -0
- package/dist/src/core/database/migration-manager.js +614 -0
- package/dist/src/core/database/migration-manager.js.map +7 -0
- package/dist/src/core/database/query-cache.js +298 -0
- package/dist/src/core/database/query-cache.js.map +7 -0
- package/dist/src/core/database/query-router.js +430 -0
- package/dist/src/core/database/query-router.js.map +7 -0
- package/dist/src/core/database/sqlite-adapter.js +738 -0
- package/dist/src/core/database/sqlite-adapter.js.map +7 -0
- package/dist/src/core/digest/enhanced-hybrid-digest.js +277 -0
- package/dist/src/core/digest/enhanced-hybrid-digest.js.map +7 -0
- package/dist/src/core/digest/frame-digest-integration.js +176 -0
- package/dist/src/core/digest/frame-digest-integration.js.map +7 -0
- package/dist/src/core/digest/hybrid-digest-generator.js +553 -0
- package/dist/src/core/digest/hybrid-digest-generator.js.map +7 -0
- package/dist/src/core/digest/index.js +9 -0
- package/dist/src/core/digest/index.js.map +7 -0
- package/dist/src/core/digest/types.js +25 -0
- package/dist/src/core/digest/types.js.map +7 -0
- package/dist/src/core/errors/error-utils.js +208 -0
- package/dist/src/core/errors/error-utils.js.map +7 -0
- package/dist/src/core/errors/index.js +521 -0
- package/dist/src/core/errors/index.js.map +7 -0
- package/dist/src/core/errors/recovery.js +269 -0
- package/dist/src/core/errors/recovery.js.map +7 -0
- package/dist/src/core/execution/parallel-executor.js +258 -0
- package/dist/src/core/execution/parallel-executor.js.map +7 -0
- package/dist/src/core/frame/workflow-templates.js +319 -0
- package/dist/src/core/frame/workflow-templates.js.map +7 -0
- package/dist/src/core/merge/conflict-detector.js +431 -0
- package/dist/src/core/merge/conflict-detector.js.map +7 -0
- package/dist/src/core/merge/index.js +9 -0
- package/dist/src/core/merge/index.js.map +7 -0
- package/dist/src/core/merge/resolution-engine.js +558 -0
- package/dist/src/core/merge/resolution-engine.js.map +7 -0
- package/dist/src/core/merge/stack-diff.js +532 -0
- package/dist/src/core/merge/stack-diff.js.map +7 -0
- package/dist/src/core/merge/types.js +5 -0
- package/dist/src/core/merge/types.js.map +7 -0
- package/dist/src/core/merge/unified-merge-resolver.js +303 -0
- package/dist/src/core/merge/unified-merge-resolver.js.map +7 -0
- package/dist/src/core/models/fallback-monitor.js +232 -0
- package/dist/src/core/models/fallback-monitor.js.map +7 -0
- package/dist/src/core/models/model-router.js +340 -0
- package/dist/src/core/models/model-router.js.map +7 -0
- package/dist/src/core/monitoring/error-handler.js +49 -0
- package/dist/src/core/monitoring/error-handler.js.map +7 -0
- package/dist/src/core/monitoring/logger.js +202 -0
- package/dist/src/core/monitoring/logger.js.map +7 -0
- package/dist/src/core/monitoring/metrics.js +172 -0
- package/dist/src/core/monitoring/metrics.js.map +7 -0
- package/dist/src/core/monitoring/progress-tracker.js +189 -0
- package/dist/src/core/monitoring/progress-tracker.js.map +7 -0
- package/dist/src/core/monitoring/session-monitor.js +300 -0
- package/dist/src/core/monitoring/session-monitor.js.map +7 -0
- package/dist/src/core/performance/context-cache.js +273 -0
- package/dist/src/core/performance/context-cache.js.map +7 -0
- package/dist/src/core/performance/index.js +11 -0
- package/dist/src/core/performance/index.js.map +7 -0
- package/dist/src/core/performance/lazy-context-loader.js +327 -0
- package/dist/src/core/performance/lazy-context-loader.js.map +7 -0
- package/dist/src/core/performance/monitor.js +221 -0
- package/dist/src/core/performance/monitor.js.map +7 -0
- package/dist/src/core/performance/optimized-frame-context.js +345 -0
- package/dist/src/core/performance/optimized-frame-context.js.map +7 -0
- package/dist/src/core/performance/performance-benchmark.js +277 -0
- package/dist/src/core/performance/performance-benchmark.js.map +7 -0
- package/dist/src/core/performance/performance-profiler.js +370 -0
- package/dist/src/core/performance/performance-profiler.js.map +7 -0
- package/dist/src/core/performance/streaming-jsonl-parser.js +195 -0
- package/dist/src/core/performance/streaming-jsonl-parser.js.map +7 -0
- package/dist/src/core/persistence/postgres-adapter.js +349 -0
- package/dist/src/core/persistence/postgres-adapter.js.map +7 -0
- package/dist/src/core/projects/project-isolation.js +201 -0
- package/dist/src/core/projects/project-isolation.js.map +7 -0
- package/dist/src/core/projects/project-manager.js +697 -0
- package/dist/src/core/projects/project-manager.js.map +7 -0
- package/dist/src/core/query/query-parser.js +370 -0
- package/dist/src/core/query/query-parser.js.map +7 -0
- package/dist/src/core/query/query-templates.js +321 -0
- package/dist/src/core/query/query-templates.js.map +7 -0
- package/dist/src/core/retrieval/context-retriever.js +479 -0
- package/dist/src/core/retrieval/context-retriever.js.map +7 -0
- package/dist/src/core/retrieval/index.js +8 -0
- package/dist/src/core/retrieval/index.js.map +7 -0
- package/dist/src/core/retrieval/llm-context-retrieval.js +613 -0
- package/dist/src/core/retrieval/llm-context-retrieval.js.map +7 -0
- package/dist/src/core/retrieval/llm-provider.js +151 -0
- package/dist/src/core/retrieval/llm-provider.js.map +7 -0
- package/dist/src/core/retrieval/retrieval-audit.js +236 -0
- package/dist/src/core/retrieval/retrieval-audit.js.map +7 -0
- package/dist/src/core/retrieval/summary-generator.js +589 -0
- package/dist/src/core/retrieval/summary-generator.js.map +7 -0
- package/dist/src/core/retrieval/types.js +21 -0
- package/dist/src/core/retrieval/types.js.map +7 -0
- package/dist/src/core/security/index.js +35 -0
- package/dist/src/core/security/index.js.map +7 -0
- package/dist/src/core/security/input-sanitizer.js +321 -0
- package/dist/src/core/security/input-sanitizer.js.map +7 -0
- package/dist/src/core/session/clear-survival.js +465 -0
- package/dist/src/core/session/clear-survival.js.map +7 -0
- package/dist/src/core/session/enhanced-handoff.js +792 -0
- package/dist/src/core/session/enhanced-handoff.js.map +7 -0
- package/dist/src/core/session/handoff-generator.js +343 -0
- package/dist/src/core/session/handoff-generator.js.map +7 -0
- package/dist/src/core/session/index.js +15 -0
- package/dist/src/core/session/index.js.map +7 -0
- package/dist/src/core/session/session-manager.js +347 -0
- package/dist/src/core/session/session-manager.js.map +7 -0
- package/dist/src/core/skills/index.js +7 -0
- package/dist/src/core/skills/index.js.map +7 -0
- package/dist/src/core/skills/skill-storage.js +764 -0
- package/dist/src/core/skills/skill-storage.js.map +7 -0
- package/dist/src/core/skills/types.js +193 -0
- package/dist/src/core/skills/types.js.map +7 -0
- package/dist/src/core/storage/chromadb-adapter.js +354 -0
- package/dist/src/core/storage/chromadb-adapter.js.map +7 -0
- package/dist/src/core/storage/infinite-storage.js +510 -0
- package/dist/src/core/storage/infinite-storage.js.map +7 -0
- package/dist/src/core/storage/remote-storage.js +489 -0
- package/dist/src/core/storage/remote-storage.js.map +7 -0
- package/dist/src/core/storage/two-tier-storage.js +766 -0
- package/dist/src/core/storage/two-tier-storage.js.map +7 -0
- package/dist/src/core/trace/cli-trace-wrapper.js +132 -0
- package/dist/src/core/trace/cli-trace-wrapper.js.map +7 -0
- package/dist/src/core/trace/db-trace-wrapper.js +247 -0
- package/dist/src/core/trace/db-trace-wrapper.js.map +7 -0
- package/dist/src/core/trace/debug-trace.js +417 -0
- package/dist/src/core/trace/debug-trace.js.map +7 -0
- package/dist/src/core/trace/index.js +109 -0
- package/dist/src/core/trace/index.js.map +7 -0
- package/dist/src/core/trace/linear-api-wrapper.js +178 -0
- package/dist/src/core/trace/linear-api-wrapper.js.map +7 -0
- package/dist/src/core/trace/trace-detector.js +528 -0
- package/dist/src/core/trace/trace-detector.js.map +7 -0
- package/dist/src/core/trace/trace-store.js +345 -0
- package/dist/src/core/trace/trace-store.js.map +7 -0
- package/dist/src/core/trace/types.js +77 -0
- package/dist/src/core/trace/types.js.map +7 -0
- package/dist/src/core/types.js +5 -0
- package/dist/src/core/types.js.map +7 -0
- package/dist/src/core/utils/async-mutex.js +114 -0
- package/dist/src/core/utils/async-mutex.js.map +7 -0
- package/dist/src/core/utils/compression.js +83 -0
- package/dist/src/core/utils/compression.js.map +7 -0
- package/dist/src/core/utils/update-checker.js +218 -0
- package/dist/src/core/utils/update-checker.js.map +7 -0
- package/dist/src/core/worktree/worktree-manager.js +465 -0
- package/dist/src/core/worktree/worktree-manager.js.map +7 -0
- package/dist/src/daemon/daemon-config.js +149 -0
- package/dist/src/daemon/daemon-config.js.map +7 -0
- package/dist/src/daemon/services/context-service.js +122 -0
- package/dist/src/daemon/services/context-service.js.map +7 -0
- package/dist/src/daemon/services/linear-service.js +136 -0
- package/dist/src/daemon/services/linear-service.js.map +7 -0
- package/dist/src/daemon/session-daemon.js +312 -0
- package/dist/src/daemon/session-daemon.js.map +7 -0
- package/dist/src/daemon/unified-daemon.js +276 -0
- package/dist/src/daemon/unified-daemon.js.map +7 -0
- package/dist/src/features/analytics/api/analytics-api.js +287 -0
- package/dist/src/features/analytics/api/analytics-api.js.map +7 -0
- package/dist/src/features/analytics/core/analytics-service.js +282 -0
- package/dist/src/features/analytics/core/analytics-service.js.map +7 -0
- package/dist/src/features/analytics/index.js +18 -0
- package/dist/src/features/analytics/index.js.map +7 -0
- package/dist/src/features/analytics/queries/metrics-queries.js +277 -0
- package/dist/src/features/analytics/queries/metrics-queries.js.map +7 -0
- package/dist/src/features/analytics/types/metrics.js +5 -0
- package/dist/src/features/analytics/types/metrics.js.map +7 -0
- package/dist/src/features/browser/browser-mcp.js +492 -0
- package/dist/src/features/browser/browser-mcp.js.map +7 -0
- package/dist/src/features/sweep/index.js +20 -0
- package/dist/src/features/sweep/index.js.map +7 -0
- package/dist/src/features/sweep/prediction-client.js +155 -0
- package/dist/src/features/sweep/prediction-client.js.map +7 -0
- package/dist/src/features/sweep/prompt-builder.js +85 -0
- package/dist/src/features/sweep/prompt-builder.js.map +7 -0
- package/dist/src/features/sweep/pty-wrapper.js +171 -0
- package/dist/src/features/sweep/pty-wrapper.js.map +7 -0
- package/dist/src/features/sweep/state-watcher.js +87 -0
- package/dist/src/features/sweep/state-watcher.js.map +7 -0
- package/dist/src/features/sweep/status-bar.js +88 -0
- package/dist/src/features/sweep/status-bar.js.map +7 -0
- package/dist/src/features/sweep/sweep-server-manager.js +226 -0
- package/dist/src/features/sweep/sweep-server-manager.js.map +7 -0
- package/dist/src/features/sweep/tab-interceptor.js +38 -0
- package/dist/src/features/sweep/tab-interceptor.js.map +7 -0
- package/dist/src/features/sweep/types.js +18 -0
- package/dist/src/features/sweep/types.js.map +7 -0
- package/dist/src/features/tasks/linear-task-manager.js +487 -0
- package/dist/src/features/tasks/linear-task-manager.js.map +7 -0
- package/dist/src/features/tasks/task-aware-context.js +410 -0
- package/dist/src/features/tasks/task-aware-context.js.map +7 -0
- package/dist/src/features/tui/simple-monitor.js +116 -0
- package/dist/src/features/tui/simple-monitor.js.map +7 -0
- package/dist/src/features/tui/swarm-monitor.js +648 -0
- package/dist/src/features/tui/swarm-monitor.js.map +7 -0
- package/dist/src/features/web/client/stores/task-store.js +26 -0
- package/dist/src/features/web/client/stores/task-store.js.map +7 -0
- package/dist/src/features/web/server/index.js +194 -0
- package/dist/src/features/web/server/index.js.map +7 -0
- package/dist/src/hooks/auto-background.js +151 -0
- package/dist/src/hooks/auto-background.js.map +7 -0
- package/dist/src/hooks/claude-code-whatsapp-hook.js +197 -0
- package/dist/src/hooks/claude-code-whatsapp-hook.js.map +7 -0
- package/dist/src/hooks/config.js +150 -0
- package/dist/src/hooks/config.js.map +7 -0
- package/dist/src/hooks/daemon.js +364 -0
- package/dist/src/hooks/daemon.js.map +7 -0
- package/dist/src/hooks/events.js +58 -0
- package/dist/src/hooks/events.js.map +7 -0
- package/dist/src/hooks/index.js +12 -0
- package/dist/src/hooks/index.js.map +7 -0
- package/dist/src/hooks/linear-task-picker.js +186 -0
- package/dist/src/hooks/linear-task-picker.js.map +7 -0
- package/dist/src/hooks/schemas.js +197 -0
- package/dist/src/hooks/schemas.js.map +7 -0
- package/dist/src/hooks/secure-fs.js +49 -0
- package/dist/src/hooks/secure-fs.js.map +7 -0
- package/dist/src/hooks/security-logger.js +155 -0
- package/dist/src/hooks/security-logger.js.map +7 -0
- package/dist/src/hooks/session-summary.js +222 -0
- package/dist/src/hooks/session-summary.js.map +7 -0
- package/dist/src/hooks/sms-action-runner.js +371 -0
- package/dist/src/hooks/sms-action-runner.js.map +7 -0
- package/dist/src/hooks/sms-notify.js +506 -0
- package/dist/src/hooks/sms-notify.js.map +7 -0
- package/dist/src/hooks/sms-watcher.js +93 -0
- package/dist/src/hooks/sms-watcher.js.map +7 -0
- package/dist/src/hooks/sms-webhook.js +555 -0
- package/dist/src/hooks/sms-webhook.js.map +7 -0
- package/dist/src/hooks/whatsapp-commands.js +479 -0
- package/dist/src/hooks/whatsapp-commands.js.map +7 -0
- package/dist/src/hooks/whatsapp-scheduler.js +317 -0
- package/dist/src/hooks/whatsapp-scheduler.js.map +7 -0
- package/dist/src/hooks/whatsapp-sync.js +409 -0
- package/dist/src/hooks/whatsapp-sync.js.map +7 -0
- package/dist/src/index.js +25 -0
- package/dist/src/index.js.map +7 -0
- package/dist/src/integrations/anthropic/client.js +263 -0
- package/dist/src/integrations/anthropic/client.js.map +7 -0
- package/dist/src/integrations/claude-code/agent-bridge.js +768 -0
- package/dist/src/integrations/claude-code/agent-bridge.js.map +7 -0
- package/dist/src/integrations/claude-code/enhanced-pre-clear-hooks.js +459 -0
- package/dist/src/integrations/claude-code/enhanced-pre-clear-hooks.js.map +7 -0
- package/dist/src/integrations/claude-code/lifecycle-hooks.js +254 -0
- package/dist/src/integrations/claude-code/lifecycle-hooks.js.map +7 -0
- package/dist/src/integrations/claude-code/post-task-hooks.js +545 -0
- package/dist/src/integrations/claude-code/post-task-hooks.js.map +7 -0
- package/dist/src/integrations/claude-code/subagent-client-stub.js +20 -0
- package/dist/src/integrations/claude-code/subagent-client-stub.js.map +7 -0
- package/dist/src/integrations/claude-code/subagent-client.js +511 -0
- package/dist/src/integrations/claude-code/subagent-client.js.map +7 -0
- package/dist/src/integrations/claude-code/task-coordinator.js +360 -0
- package/dist/src/integrations/claude-code/task-coordinator.js.map +7 -0
- package/dist/src/integrations/linear/auth.js +337 -0
- package/dist/src/integrations/linear/auth.js.map +7 -0
- package/dist/src/integrations/linear/auto-sync.js +258 -0
- package/dist/src/integrations/linear/auto-sync.js.map +7 -0
- package/dist/src/integrations/linear/client.js +634 -0
- package/dist/src/integrations/linear/client.js.map +7 -0
- package/dist/src/integrations/linear/config.js +130 -0
- package/dist/src/integrations/linear/config.js.map +7 -0
- package/dist/src/integrations/linear/migration.js +361 -0
- package/dist/src/integrations/linear/migration.js.map +7 -0
- package/dist/src/integrations/linear/oauth-server.js +454 -0
- package/dist/src/integrations/linear/oauth-server.js.map +7 -0
- package/dist/src/integrations/linear/rest-client.js +213 -0
- package/dist/src/integrations/linear/rest-client.js.map +7 -0
- package/dist/src/integrations/linear/sync-manager.js +236 -0
- package/dist/src/integrations/linear/sync-manager.js.map +7 -0
- package/dist/src/integrations/linear/sync-service.js +231 -0
- package/dist/src/integrations/linear/sync-service.js.map +7 -0
- package/dist/src/integrations/linear/sync.js +782 -0
- package/dist/src/integrations/linear/sync.js.map +7 -0
- package/dist/src/integrations/linear/types.js +5 -0
- package/dist/src/integrations/linear/types.js.map +7 -0
- package/dist/src/integrations/linear/unified-sync.js +589 -0
- package/dist/src/integrations/linear/unified-sync.js.map +7 -0
- package/dist/src/integrations/linear/webhook-handler.js +219 -0
- package/dist/src/integrations/linear/webhook-handler.js.map +7 -0
- package/dist/src/integrations/linear/webhook-server.js +218 -0
- package/dist/src/integrations/linear/webhook-server.js.map +7 -0
- package/dist/src/integrations/linear/webhook.js +291 -0
- package/dist/src/integrations/linear/webhook.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/code-execution-handlers.js +266 -0
- package/dist/src/integrations/mcp/handlers/code-execution-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/context-handlers.js +257 -0
- package/dist/src/integrations/mcp/handlers/context-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/discovery-handlers.js +497 -0
- package/dist/src/integrations/mcp/handlers/discovery-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/index.js +166 -0
- package/dist/src/integrations/mcp/handlers/index.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/linear-handlers.js +247 -0
- package/dist/src/integrations/mcp/handlers/linear-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/skill-handlers.js +529 -0
- package/dist/src/integrations/mcp/handlers/skill-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/task-handlers.js +239 -0
- package/dist/src/integrations/mcp/handlers/task-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/trace-handlers.js +308 -0
- package/dist/src/integrations/mcp/handlers/trace-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/index.js +23 -0
- package/dist/src/integrations/mcp/index.js.map +7 -0
- package/dist/src/integrations/mcp/middleware/tool-scoring.js +356 -0
- package/dist/src/integrations/mcp/middleware/tool-scoring.js.map +7 -0
- package/dist/src/integrations/mcp/refactored-server.js +374 -0
- package/dist/src/integrations/mcp/refactored-server.js.map +7 -0
- package/dist/src/integrations/mcp/remote-server.js +682 -0
- package/dist/src/integrations/mcp/remote-server.js.map +7 -0
- package/dist/src/integrations/mcp/schemas.js +147 -0
- package/dist/src/integrations/mcp/schemas.js.map +7 -0
- package/dist/src/integrations/mcp/server.js +1975 -0
- package/dist/src/integrations/mcp/server.js.map +7 -0
- package/dist/src/integrations/mcp/tool-definitions-code.js +125 -0
- package/dist/src/integrations/mcp/tool-definitions-code.js.map +7 -0
- package/dist/src/integrations/mcp/tool-definitions.js +702 -0
- package/dist/src/integrations/mcp/tool-definitions.js.map +7 -0
- package/dist/src/integrations/ralph/bridge/ralph-stackmemory-bridge.js +860 -0
- package/dist/src/integrations/ralph/bridge/ralph-stackmemory-bridge.js.map +7 -0
- package/dist/src/integrations/ralph/context/context-budget-manager.js +301 -0
- package/dist/src/integrations/ralph/context/context-budget-manager.js.map +7 -0
- package/dist/src/integrations/ralph/context/stackmemory-context-loader.js +360 -0
- package/dist/src/integrations/ralph/context/stackmemory-context-loader.js.map +7 -0
- package/dist/src/integrations/ralph/coordination/enhanced-coordination.js +410 -0
- package/dist/src/integrations/ralph/coordination/enhanced-coordination.js.map +7 -0
- package/dist/src/integrations/ralph/index.js +18 -0
- package/dist/src/integrations/ralph/index.js.map +7 -0
- package/dist/src/integrations/ralph/learning/pattern-learner.js +401 -0
- package/dist/src/integrations/ralph/learning/pattern-learner.js.map +7 -0
- package/dist/src/integrations/ralph/lifecycle/iteration-lifecycle.js +448 -0
- package/dist/src/integrations/ralph/lifecycle/iteration-lifecycle.js.map +7 -0
- package/dist/src/integrations/ralph/monitoring/swarm-dashboard.js +294 -0
- package/dist/src/integrations/ralph/monitoring/swarm-dashboard.js.map +7 -0
- package/dist/src/integrations/ralph/monitoring/swarm-registry.js +108 -0
- package/dist/src/integrations/ralph/monitoring/swarm-registry.js.map +7 -0
- package/dist/src/integrations/ralph/orchestration/multi-loop-orchestrator.js +463 -0
- package/dist/src/integrations/ralph/orchestration/multi-loop-orchestrator.js.map +7 -0
- package/dist/src/integrations/ralph/patterns/compounding-engineering-pattern.js +400 -0
- package/dist/src/integrations/ralph/patterns/compounding-engineering-pattern.js.map +7 -0
- package/dist/src/integrations/ralph/patterns/extended-coherence-sessions.js +473 -0
- package/dist/src/integrations/ralph/patterns/extended-coherence-sessions.js.map +7 -0
- package/dist/src/integrations/ralph/patterns/oracle-worker-pattern.js +388 -0
- package/dist/src/integrations/ralph/patterns/oracle-worker-pattern.js.map +7 -0
- package/dist/src/integrations/ralph/performance/performance-optimizer.js +358 -0
- package/dist/src/integrations/ralph/performance/performance-optimizer.js.map +7 -0
- package/dist/src/integrations/ralph/recovery/crash-recovery.js +462 -0
- package/dist/src/integrations/ralph/recovery/crash-recovery.js.map +7 -0
- package/dist/src/integrations/ralph/state/state-reconciler.js +404 -0
- package/dist/src/integrations/ralph/state/state-reconciler.js.map +7 -0
- package/dist/src/integrations/ralph/swarm/git-workflow-manager.js +428 -0
- package/dist/src/integrations/ralph/swarm/git-workflow-manager.js.map +7 -0
- package/dist/src/integrations/ralph/swarm/swarm-coordinator.js +996 -0
- package/dist/src/integrations/ralph/swarm/swarm-coordinator.js.map +7 -0
- package/dist/src/integrations/ralph/types.js +5 -0
- package/dist/src/integrations/ralph/types.js.map +7 -0
- package/dist/src/integrations/ralph/visualization/ralph-debugger.js +585 -0
- package/dist/src/integrations/ralph/visualization/ralph-debugger.js.map +7 -0
- package/dist/src/mcp/stackmemory-mcp-server.js +554 -0
- package/dist/src/mcp/stackmemory-mcp-server.js.map +7 -0
- package/dist/src/middleware/exponential-rate-limiter.js +289 -0
- package/dist/src/middleware/exponential-rate-limiter.js.map +7 -0
- package/dist/src/models/user.model.js +358 -0
- package/dist/src/models/user.model.js.map +7 -0
- package/dist/src/servers/production/auth-middleware.js +528 -0
- package/dist/src/servers/production/auth-middleware.js.map +7 -0
- package/dist/src/services/config-service.js +65 -0
- package/dist/src/services/config-service.js.map +7 -0
- package/dist/src/services/context-service.js +194 -0
- package/dist/src/services/context-service.js.map +7 -0
- package/dist/src/skills/api-discovery.js +354 -0
- package/dist/src/skills/api-discovery.js.map +7 -0
- package/dist/src/skills/api-skill.js +475 -0
- package/dist/src/skills/api-skill.js.map +7 -0
- package/dist/src/skills/claude-skills.js +1061 -0
- package/dist/src/skills/claude-skills.js.map +7 -0
- package/dist/src/skills/dashboard-launcher.js +216 -0
- package/dist/src/skills/dashboard-launcher.js.map +7 -0
- package/dist/src/skills/recursive-agent-orchestrator.js +575 -0
- package/dist/src/skills/recursive-agent-orchestrator.js.map +7 -0
- package/dist/src/skills/repo-ingestion-skill.js +609 -0
- package/dist/src/skills/repo-ingestion-skill.js.map +7 -0
- package/dist/src/skills/unified-rlm-orchestrator.js +404 -0
- package/dist/src/skills/unified-rlm-orchestrator.js.map +7 -0
- package/dist/src/types/task.js +5 -0
- package/dist/src/types/task.js.map +7 -0
- package/dist/src/utils/env.js +50 -0
- package/dist/src/utils/env.js.map +7 -0
- package/dist/src/utils/formatting.js +62 -0
- package/dist/src/utils/formatting.js.map +7 -0
- package/dist/src/utils/process-cleanup.js +136 -0
- package/dist/src/utils/process-cleanup.js.map +7 -0
- package/package.json +3 -3
- package/scripts/initialize.ts +16 -7
- package/scripts/install.sh +14 -62
- package/scripts/status.ts +111 -46
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
2
|
+
import { dirname as __pathDirname } from 'path';
|
|
3
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
4
|
+
const __dirname = __pathDirname(__filename);
|
|
5
|
+
import * as fs from "fs/promises";
|
|
6
|
+
import * as path from "path";
|
|
7
|
+
import { v4 as uuidv4 } from "uuid";
|
|
8
|
+
import { logger } from "../../../core/monitoring/logger.js";
|
|
9
|
+
class CompoundingEngineeringManager {
|
|
10
|
+
knowledgeBase;
|
|
11
|
+
baseDir;
|
|
12
|
+
projectId;
|
|
13
|
+
constructor(baseDir = "./.compounding", projectId) {
|
|
14
|
+
this.baseDir = baseDir;
|
|
15
|
+
this.projectId = projectId || "default";
|
|
16
|
+
this.knowledgeBase = {
|
|
17
|
+
totalFeatures: 0,
|
|
18
|
+
learningsByCategory: {
|
|
19
|
+
planning: [],
|
|
20
|
+
implementation: [],
|
|
21
|
+
testing: [],
|
|
22
|
+
deployment: []
|
|
23
|
+
},
|
|
24
|
+
bestPractices: [],
|
|
25
|
+
automatedHooks: [],
|
|
26
|
+
specializedAgents: [],
|
|
27
|
+
customCommands: [],
|
|
28
|
+
metrics: {
|
|
29
|
+
developmentVelocityTrend: [],
|
|
30
|
+
errorRateReduction: 0,
|
|
31
|
+
codeReuseIncrease: 0,
|
|
32
|
+
onboardingTimeReduction: 0
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Initialize the compounding system
|
|
38
|
+
*/
|
|
39
|
+
async initialize() {
|
|
40
|
+
await fs.mkdir(this.baseDir, { recursive: true });
|
|
41
|
+
await this.loadExistingKnowledge();
|
|
42
|
+
logger.info("Compounding Engineering Manager initialized", {
|
|
43
|
+
totalFeatures: this.knowledgeBase.totalFeatures,
|
|
44
|
+
baseDir: this.baseDir
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Capture learning from a feature development session
|
|
49
|
+
*/
|
|
50
|
+
async captureFeatureLearning(featureName, sessionData, agentOutputs, userFeedback) {
|
|
51
|
+
const learningId = uuidv4();
|
|
52
|
+
logger.info("Capturing feature learning", {
|
|
53
|
+
featureName,
|
|
54
|
+
learningId,
|
|
55
|
+
agentCount: agentOutputs.length
|
|
56
|
+
});
|
|
57
|
+
const learning = await this.extractLearningsFromSession(
|
|
58
|
+
learningId,
|
|
59
|
+
featureName,
|
|
60
|
+
sessionData,
|
|
61
|
+
agentOutputs,
|
|
62
|
+
userFeedback
|
|
63
|
+
);
|
|
64
|
+
await this.storeLearning(learning);
|
|
65
|
+
await this.updateCompoundedKnowledge(learning);
|
|
66
|
+
await this.generateArtifacts();
|
|
67
|
+
return learningId;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Extract actionable learnings from development session
|
|
71
|
+
*/
|
|
72
|
+
async extractLearningsFromSession(id, featureName, sessionData, agentOutputs, userFeedback) {
|
|
73
|
+
const successes = this.identifySuccesses(sessionData, agentOutputs);
|
|
74
|
+
const failures = this.identifyFailures(sessionData, agentOutputs);
|
|
75
|
+
const patterns = this.extractPatterns(sessionData, agentOutputs);
|
|
76
|
+
const agentLearnings = this.analyzeAgentBehavior(agentOutputs);
|
|
77
|
+
const automationOpportunities = this.identifyAutomationOpportunities(
|
|
78
|
+
sessionData,
|
|
79
|
+
agentOutputs
|
|
80
|
+
);
|
|
81
|
+
return {
|
|
82
|
+
id,
|
|
83
|
+
featureName,
|
|
84
|
+
timestamp: Date.now(),
|
|
85
|
+
developmentPhase: this.inferDevelopmentPhase(sessionData),
|
|
86
|
+
successes,
|
|
87
|
+
failures,
|
|
88
|
+
patterns,
|
|
89
|
+
agentLearnings,
|
|
90
|
+
automationOpportunities
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Identify what worked well in the session
|
|
95
|
+
*/
|
|
96
|
+
identifySuccesses(sessionData, agentOutputs) {
|
|
97
|
+
const successes = [];
|
|
98
|
+
for (const output of agentOutputs) {
|
|
99
|
+
if (output.success && output.strategy) {
|
|
100
|
+
successes.push({
|
|
101
|
+
strategy: output.strategy,
|
|
102
|
+
impact: this.assessImpact(output),
|
|
103
|
+
reusability: this.assessReusability(output),
|
|
104
|
+
description: output.description || "Successful agent execution"
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (sessionData.codePatterns) {
|
|
109
|
+
for (const pattern of sessionData.codePatterns) {
|
|
110
|
+
if (pattern.successful) {
|
|
111
|
+
successes.push({
|
|
112
|
+
strategy: `Code pattern: ${pattern.name}`,
|
|
113
|
+
impact: "high",
|
|
114
|
+
reusability: "universal",
|
|
115
|
+
description: pattern.description
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return successes;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Identify failures and their resolutions
|
|
124
|
+
*/
|
|
125
|
+
identifyFailures(sessionData, agentOutputs) {
|
|
126
|
+
const failures = [];
|
|
127
|
+
for (const output of agentOutputs) {
|
|
128
|
+
if (output.errors && output.errors.length > 0) {
|
|
129
|
+
for (const error of output.errors) {
|
|
130
|
+
failures.push({
|
|
131
|
+
issue: error.message || "Agent execution failed",
|
|
132
|
+
cause: error.cause || "Unknown cause",
|
|
133
|
+
solution: error.resolution || "Manual intervention required",
|
|
134
|
+
prevention: this.generatePreventionStrategy(error)
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (sessionData.buildErrors) {
|
|
140
|
+
for (const error of sessionData.buildErrors) {
|
|
141
|
+
failures.push({
|
|
142
|
+
issue: `Build error: ${error.type}`,
|
|
143
|
+
cause: error.details,
|
|
144
|
+
solution: error.fix,
|
|
145
|
+
prevention: "Add pre-build validation hook"
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return failures;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Extract reusable patterns from the session
|
|
153
|
+
*/
|
|
154
|
+
extractPatterns(sessionData, agentOutputs) {
|
|
155
|
+
const patterns = [];
|
|
156
|
+
if (agentOutputs.length > 1) {
|
|
157
|
+
const coordinationPattern = this.analyzeCoordinationPattern(agentOutputs);
|
|
158
|
+
if (coordinationPattern) {
|
|
159
|
+
patterns.push(coordinationPattern);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
if (sessionData.codeStructure) {
|
|
163
|
+
const structurePattern = this.analyzeCodeStructurePattern(sessionData.codeStructure);
|
|
164
|
+
if (structurePattern) {
|
|
165
|
+
patterns.push(structurePattern);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return patterns;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Analyze agent behavior for improvements
|
|
172
|
+
*/
|
|
173
|
+
analyzeAgentBehavior(agentOutputs) {
|
|
174
|
+
const commonMistakes = [];
|
|
175
|
+
const effectivePrompts = [];
|
|
176
|
+
const toolUsagePatterns = [];
|
|
177
|
+
const coordinationInsights = [];
|
|
178
|
+
for (const output of agentOutputs) {
|
|
179
|
+
if (output.retries && output.retries.length > 0) {
|
|
180
|
+
commonMistakes.push(...output.retries.map((r) => r.reason));
|
|
181
|
+
}
|
|
182
|
+
if (output.success && output.promptUsed) {
|
|
183
|
+
effectivePrompts.push(output.promptUsed);
|
|
184
|
+
}
|
|
185
|
+
if (output.toolsUsed) {
|
|
186
|
+
toolUsagePatterns.push(...output.toolsUsed);
|
|
187
|
+
}
|
|
188
|
+
if (output.coordination) {
|
|
189
|
+
coordinationInsights.push(output.coordination.insight);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return {
|
|
193
|
+
commonMistakes: [...new Set(commonMistakes)],
|
|
194
|
+
effectivePrompts: [...new Set(effectivePrompts)],
|
|
195
|
+
toolUsagePatterns: [...new Set(toolUsagePatterns)],
|
|
196
|
+
coordinationInsights: [...new Set(coordinationInsights)]
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Identify tasks that can be automated
|
|
201
|
+
*/
|
|
202
|
+
identifyAutomationOpportunities(sessionData, agentOutputs) {
|
|
203
|
+
const opportunities = [];
|
|
204
|
+
const taskFrequency = this.analyzeTaskFrequency(agentOutputs);
|
|
205
|
+
for (const [task, frequency] of Object.entries(taskFrequency)) {
|
|
206
|
+
if (frequency > 2) {
|
|
207
|
+
opportunities.push({
|
|
208
|
+
task,
|
|
209
|
+
frequency: "often",
|
|
210
|
+
complexity: "simple",
|
|
211
|
+
implementation: "hook"
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
if (sessionData.manualSteps) {
|
|
216
|
+
for (const step of sessionData.manualSteps) {
|
|
217
|
+
opportunities.push({
|
|
218
|
+
task: step.description,
|
|
219
|
+
frequency: "sometimes",
|
|
220
|
+
complexity: step.complexity || "simple",
|
|
221
|
+
implementation: "command"
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
return opportunities;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Update compounded knowledge with new learning
|
|
229
|
+
*/
|
|
230
|
+
async updateCompoundedKnowledge(learning) {
|
|
231
|
+
this.knowledgeBase.learningsByCategory[learning.developmentPhase].push(learning);
|
|
232
|
+
this.knowledgeBase.totalFeatures++;
|
|
233
|
+
await this.updateBestPractices(learning);
|
|
234
|
+
await this.updateMetrics(learning);
|
|
235
|
+
await this.saveKnowledge();
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Generate artifacts (hooks, commands, agents) from accumulated learnings
|
|
239
|
+
*/
|
|
240
|
+
async generateArtifacts() {
|
|
241
|
+
await this.generateHooks();
|
|
242
|
+
await this.generateSpecializedAgents();
|
|
243
|
+
await this.generateCustomCommands();
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Generate automation hooks
|
|
247
|
+
*/
|
|
248
|
+
async generateHooks() {
|
|
249
|
+
const allOpportunities = Object.values(this.knowledgeBase.learningsByCategory).flat().flatMap((learning) => learning.automationOpportunities).filter((opp) => opp.implementation === "hook");
|
|
250
|
+
const hookCounts = /* @__PURE__ */ new Map();
|
|
251
|
+
for (const opp of allOpportunities) {
|
|
252
|
+
hookCounts.set(opp.task, (hookCounts.get(opp.task) || 0) + 1);
|
|
253
|
+
}
|
|
254
|
+
for (const [task, count] of hookCounts) {
|
|
255
|
+
if (count >= 3 && !this.knowledgeBase.automatedHooks.includes(task)) {
|
|
256
|
+
await this.createHook(task);
|
|
257
|
+
this.knowledgeBase.automatedHooks.push(task);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Create an automation hook
|
|
263
|
+
*/
|
|
264
|
+
async createHook(task) {
|
|
265
|
+
const hookName = task.replace(/\s+/g, "-").toLowerCase();
|
|
266
|
+
const hookPath = path.join(this.baseDir, "hooks", `${hookName}.ts`);
|
|
267
|
+
await fs.mkdir(path.dirname(hookPath), { recursive: true });
|
|
268
|
+
const hookContent = `
|
|
269
|
+
/**
|
|
270
|
+
* Auto-generated hook for: ${task}
|
|
271
|
+
* Generated by Compounding Engineering Pattern
|
|
272
|
+
*/
|
|
273
|
+
|
|
274
|
+
export async function ${hookName.replace(/-/g, "")}Hook() {
|
|
275
|
+
// TODO: Implement automation for: ${task}
|
|
276
|
+
console.log('Executing automated hook: ${task}');
|
|
277
|
+
}
|
|
278
|
+
`;
|
|
279
|
+
await fs.writeFile(hookPath, hookContent);
|
|
280
|
+
logger.info("Generated automation hook", { task, hookPath });
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Load existing knowledge base
|
|
284
|
+
*/
|
|
285
|
+
async loadExistingKnowledge() {
|
|
286
|
+
const knowledgePath = path.join(this.baseDir, "knowledge.json");
|
|
287
|
+
try {
|
|
288
|
+
const content = await fs.readFile(knowledgePath, "utf-8");
|
|
289
|
+
this.knowledgeBase = JSON.parse(content);
|
|
290
|
+
} catch (error) {
|
|
291
|
+
logger.info("Starting fresh knowledge base");
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Save knowledge base to disk
|
|
296
|
+
*/
|
|
297
|
+
async saveKnowledge() {
|
|
298
|
+
const knowledgePath = path.join(this.baseDir, "knowledge.json");
|
|
299
|
+
await fs.writeFile(
|
|
300
|
+
knowledgePath,
|
|
301
|
+
JSON.stringify(this.knowledgeBase, null, 2)
|
|
302
|
+
);
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Get current compounding metrics
|
|
306
|
+
*/
|
|
307
|
+
getCompoundingMetrics() {
|
|
308
|
+
const totalLearnings = Object.values(this.knowledgeBase.learningsByCategory).flat().length;
|
|
309
|
+
const automationLevel = this.knowledgeBase.automatedHooks.length / Math.max(totalLearnings, 1);
|
|
310
|
+
const recentLearnings = totalLearnings > 5 ? totalLearnings / 5 : totalLearnings;
|
|
311
|
+
return {
|
|
312
|
+
totalFeatures: this.knowledgeBase.totalFeatures,
|
|
313
|
+
automationLevel,
|
|
314
|
+
learningVelocity: recentLearnings,
|
|
315
|
+
knowledgeReuse: this.knowledgeBase.bestPractices.length
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
// Helper methods
|
|
319
|
+
assessImpact(output) {
|
|
320
|
+
if (output.linesChanged > 100) return "high";
|
|
321
|
+
if (output.linesChanged > 20) return "medium";
|
|
322
|
+
return "low";
|
|
323
|
+
}
|
|
324
|
+
assessReusability(output) {
|
|
325
|
+
if (output.pattern === "generic") return "universal";
|
|
326
|
+
if (output.domain) return "domain_specific";
|
|
327
|
+
return "feature_specific";
|
|
328
|
+
}
|
|
329
|
+
generatePreventionStrategy(error) {
|
|
330
|
+
return `Add validation for: ${error.type || "unknown error type"}`;
|
|
331
|
+
}
|
|
332
|
+
inferDevelopmentPhase(sessionData) {
|
|
333
|
+
if (sessionData.phase) return sessionData.phase;
|
|
334
|
+
if (sessionData.testsRun) return "testing";
|
|
335
|
+
if (sessionData.codeGenerated) return "implementation";
|
|
336
|
+
return "planning";
|
|
337
|
+
}
|
|
338
|
+
analyzeCoordinationPattern(agentOutputs) {
|
|
339
|
+
return {
|
|
340
|
+
name: "Multi-agent coordination",
|
|
341
|
+
context: `${agentOutputs.length} agents worked together`,
|
|
342
|
+
solution: "Successful multi-agent coordination pattern",
|
|
343
|
+
examples: agentOutputs.map((a) => a.role || "unknown")
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
analyzeCodeStructurePattern(structure) {
|
|
347
|
+
return {
|
|
348
|
+
name: "Code structure pattern",
|
|
349
|
+
context: structure.type,
|
|
350
|
+
solution: structure.pattern,
|
|
351
|
+
examples: structure.examples || []
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
analyzeTaskFrequency(agentOutputs) {
|
|
355
|
+
const frequency = {};
|
|
356
|
+
for (const output of agentOutputs) {
|
|
357
|
+
if (output.task) {
|
|
358
|
+
frequency[output.task] = (frequency[output.task] || 0) + 1;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
return frequency;
|
|
362
|
+
}
|
|
363
|
+
async updateBestPractices(learning) {
|
|
364
|
+
for (const success of learning.successes) {
|
|
365
|
+
if (success.impact === "high" && success.reusability === "universal") {
|
|
366
|
+
const existing = this.knowledgeBase.bestPractices.find(
|
|
367
|
+
(bp) => bp.practice === success.strategy
|
|
368
|
+
);
|
|
369
|
+
if (existing) {
|
|
370
|
+
existing.evidence.push(learning.featureName);
|
|
371
|
+
existing.confidence = Math.min(existing.confidence + 0.1, 1);
|
|
372
|
+
} else {
|
|
373
|
+
this.knowledgeBase.bestPractices.push({
|
|
374
|
+
category: learning.developmentPhase,
|
|
375
|
+
practice: success.strategy,
|
|
376
|
+
evidence: [learning.featureName],
|
|
377
|
+
confidence: 0.7
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
async updateMetrics(learning) {
|
|
384
|
+
const velocityScore = learning.successes.length - learning.failures.length;
|
|
385
|
+
this.knowledgeBase.metrics.developmentVelocityTrend.push(velocityScore);
|
|
386
|
+
if (this.knowledgeBase.metrics.developmentVelocityTrend.length > 10) {
|
|
387
|
+
this.knowledgeBase.metrics.developmentVelocityTrend.shift();
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
async generateSpecializedAgents() {
|
|
391
|
+
}
|
|
392
|
+
async generateCustomCommands() {
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
var compounding_engineering_pattern_default = CompoundingEngineeringManager;
|
|
396
|
+
export {
|
|
397
|
+
CompoundingEngineeringManager,
|
|
398
|
+
compounding_engineering_pattern_default as default
|
|
399
|
+
};
|
|
400
|
+
//# sourceMappingURL=compounding-engineering-pattern.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/integrations/ralph/patterns/compounding-engineering-pattern.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Compounding Engineering Pattern Implementation\n * \n * Transforms traditional engineering's diminishing returns into cumulative learning.\n * Each feature development improves future development capabilities.\n * \n * Core Philosophy: \"Make the next feature easier to build from the feature that you just added.\"\n */\n\nimport * as fs from 'fs/promises';\nimport * as path from 'path';\nimport { v4 as uuidv4 } from 'uuid';\nimport { logger } from '../../../core/monitoring/logger.js';\n\nexport interface FeatureLearning {\n id: string;\n featureName: string;\n timestamp: number;\n developmentPhase: 'planning' | 'implementation' | 'testing' | 'deployment';\n \n // What worked well\n successes: {\n strategy: string;\n impact: 'high' | 'medium' | 'low';\n reusability: 'universal' | 'domain_specific' | 'feature_specific';\n description: string;\n }[];\n \n // What didn't work\n failures: {\n issue: string;\n cause: string;\n solution: string;\n prevention: string;\n }[];\n \n // Emerging patterns\n patterns: {\n name: string;\n context: string;\n solution: string;\n examples: string[];\n }[];\n \n // Agent improvements\n agentLearnings: {\n commonMistakes: string[];\n effectivePrompts: string[];\n toolUsagePatterns: string[];\n coordinationInsights: string[];\n };\n \n // Automation opportunities\n automationOpportunities: {\n task: string;\n frequency: 'always' | 'often' | 'sometimes';\n complexity: 'trivial' | 'simple' | 'complex';\n implementation: 'hook' | 'command' | 'subagent';\n }[];\n}\n\nexport interface CompoundedKnowledge {\n totalFeatures: number;\n learningsByCategory: {\n planning: FeatureLearning[];\n implementation: FeatureLearning[];\n testing: FeatureLearning[];\n deployment: FeatureLearning[];\n };\n \n // Distilled wisdom\n bestPractices: {\n category: string;\n practice: string;\n evidence: string[];\n confidence: number;\n }[];\n \n // Generated artifacts\n automatedHooks: string[];\n specializedAgents: string[];\n customCommands: string[];\n \n // Metrics\n metrics: {\n developmentVelocityTrend: number[];\n errorRateReduction: number;\n codeReuseIncrease: number;\n onboardingTimeReduction: number;\n };\n}\n\n/**\n * Compounding Engineering Pattern Manager\n * Captures, processes, and compounds development learnings\n */\nexport class CompoundingEngineeringManager {\n private knowledgeBase: CompoundedKnowledge;\n private baseDir: string;\n private projectId: string;\n \n constructor(baseDir: string = './.compounding', projectId?: string) {\n this.baseDir = baseDir;\n this.projectId = projectId || 'default';\n this.knowledgeBase = {\n totalFeatures: 0,\n learningsByCategory: {\n planning: [],\n implementation: [],\n testing: [],\n deployment: [],\n },\n bestPractices: [],\n automatedHooks: [],\n specializedAgents: [],\n customCommands: [],\n metrics: {\n developmentVelocityTrend: [],\n errorRateReduction: 0,\n codeReuseIncrease: 0,\n onboardingTimeReduction: 0,\n },\n };\n }\n\n /**\n * Initialize the compounding system\n */\n async initialize(): Promise<void> {\n await fs.mkdir(this.baseDir, { recursive: true });\n await this.loadExistingKnowledge();\n logger.info('Compounding Engineering Manager initialized', {\n totalFeatures: this.knowledgeBase.totalFeatures,\n baseDir: this.baseDir,\n });\n }\n\n /**\n * Capture learning from a feature development session\n */\n async captureFeatureLearning(\n featureName: string,\n sessionData: any,\n agentOutputs: any[],\n userFeedback?: string\n ): Promise<string> {\n const learningId = uuidv4();\n \n logger.info('Capturing feature learning', { \n featureName, \n learningId,\n agentCount: agentOutputs.length \n });\n\n // Analyze session for learnings\n const learning = await this.extractLearningsFromSession(\n learningId,\n featureName,\n sessionData,\n agentOutputs,\n userFeedback\n );\n\n // Store the learning\n await this.storeLearning(learning);\n \n // Update compounded knowledge\n await this.updateCompoundedKnowledge(learning);\n \n // Generate new artifacts if patterns emerge\n await this.generateArtifacts();\n \n return learningId;\n }\n\n /**\n * Extract actionable learnings from development session\n */\n private async extractLearningsFromSession(\n id: string,\n featureName: string,\n sessionData: any,\n agentOutputs: any[],\n userFeedback?: string\n ): Promise<FeatureLearning> {\n // Analyze what worked well\n const successes = this.identifySuccesses(sessionData, agentOutputs);\n \n // Analyze failures and resolutions\n const failures = this.identifyFailures(sessionData, agentOutputs);\n \n // Extract emerging patterns\n const patterns = this.extractPatterns(sessionData, agentOutputs);\n \n // Analyze agent behavior\n const agentLearnings = this.analyzeAgentBehavior(agentOutputs);\n \n // Identify automation opportunities\n const automationOpportunities = this.identifyAutomationOpportunities(\n sessionData,\n agentOutputs\n );\n\n return {\n id,\n featureName,\n timestamp: Date.now(),\n developmentPhase: this.inferDevelopmentPhase(sessionData),\n successes,\n failures,\n patterns,\n agentLearnings,\n automationOpportunities,\n };\n }\n\n /**\n * Identify what worked well in the session\n */\n private identifySuccesses(\n sessionData: any,\n agentOutputs: any[]\n ): FeatureLearning['successes'] {\n const successes = [];\n\n // Analyze successful agent strategies\n for (const output of agentOutputs) {\n if (output.success && output.strategy) {\n successes.push({\n strategy: output.strategy,\n impact: this.assessImpact(output),\n reusability: this.assessReusability(output),\n description: output.description || 'Successful agent execution',\n });\n }\n }\n\n // Analyze successful patterns in code\n if (sessionData.codePatterns) {\n for (const pattern of sessionData.codePatterns) {\n if (pattern.successful) {\n successes.push({\n strategy: `Code pattern: ${pattern.name}`,\n impact: 'high',\n reusability: 'universal',\n description: pattern.description,\n });\n }\n }\n }\n\n return successes;\n }\n\n /**\n * Identify failures and their resolutions\n */\n private identifyFailures(\n sessionData: any,\n agentOutputs: any[]\n ): FeatureLearning['failures'] {\n const failures = [];\n\n // Analyze agent failures\n for (const output of agentOutputs) {\n if (output.errors && output.errors.length > 0) {\n for (const error of output.errors) {\n failures.push({\n issue: error.message || 'Agent execution failed',\n cause: error.cause || 'Unknown cause',\n solution: error.resolution || 'Manual intervention required',\n prevention: this.generatePreventionStrategy(error),\n });\n }\n }\n }\n\n // Analyze build/test failures\n if (sessionData.buildErrors) {\n for (const error of sessionData.buildErrors) {\n failures.push({\n issue: `Build error: ${error.type}`,\n cause: error.details,\n solution: error.fix,\n prevention: 'Add pre-build validation hook',\n });\n }\n }\n\n return failures;\n }\n\n /**\n * Extract reusable patterns from the session\n */\n private extractPatterns(\n sessionData: any,\n agentOutputs: any[]\n ): FeatureLearning['patterns'] {\n const patterns = [];\n\n // Agent coordination patterns\n if (agentOutputs.length > 1) {\n const coordinationPattern = this.analyzeCoordinationPattern(agentOutputs);\n if (coordinationPattern) {\n patterns.push(coordinationPattern);\n }\n }\n\n // Code structure patterns\n if (sessionData.codeStructure) {\n const structurePattern = this.analyzeCodeStructurePattern(sessionData.codeStructure);\n if (structurePattern) {\n patterns.push(structurePattern);\n }\n }\n\n return patterns;\n }\n\n /**\n * Analyze agent behavior for improvements\n */\n private analyzeAgentBehavior(agentOutputs: any[]): FeatureLearning['agentLearnings'] {\n const commonMistakes = [];\n const effectivePrompts = [];\n const toolUsagePatterns = [];\n const coordinationInsights = [];\n\n for (const output of agentOutputs) {\n // Common mistakes\n if (output.retries && output.retries.length > 0) {\n commonMistakes.push(...output.retries.map((r: any) => r.reason));\n }\n\n // Effective prompts\n if (output.success && output.promptUsed) {\n effectivePrompts.push(output.promptUsed);\n }\n\n // Tool usage\n if (output.toolsUsed) {\n toolUsagePatterns.push(...output.toolsUsed);\n }\n\n // Coordination\n if (output.coordination) {\n coordinationInsights.push(output.coordination.insight);\n }\n }\n\n return {\n commonMistakes: [...new Set(commonMistakes)],\n effectivePrompts: [...new Set(effectivePrompts)],\n toolUsagePatterns: [...new Set(toolUsagePatterns)],\n coordinationInsights: [...new Set(coordinationInsights)],\n };\n }\n\n /**\n * Identify tasks that can be automated\n */\n private identifyAutomationOpportunities(\n sessionData: any,\n agentOutputs: any[]\n ): FeatureLearning['automationOpportunities'] {\n const opportunities = [];\n\n // Repeated agent tasks\n const taskFrequency = this.analyzeTaskFrequency(agentOutputs);\n for (const [task, frequency] of Object.entries(taskFrequency)) {\n if (frequency > 2) {\n opportunities.push({\n task,\n frequency: 'often',\n complexity: 'simple',\n implementation: 'hook',\n });\n }\n }\n\n // Manual interventions\n if (sessionData.manualSteps) {\n for (const step of sessionData.manualSteps) {\n opportunities.push({\n task: step.description,\n frequency: 'sometimes',\n complexity: step.complexity || 'simple',\n implementation: 'command',\n });\n }\n }\n\n return opportunities;\n }\n\n /**\n * Update compounded knowledge with new learning\n */\n private async updateCompoundedKnowledge(learning: FeatureLearning): Promise<void> {\n // Add to appropriate category\n this.knowledgeBase.learningsByCategory[learning.developmentPhase].push(learning);\n this.knowledgeBase.totalFeatures++;\n\n // Update best practices\n await this.updateBestPractices(learning);\n \n // Update metrics\n await this.updateMetrics(learning);\n \n // Save updated knowledge\n await this.saveKnowledge();\n }\n\n /**\n * Generate artifacts (hooks, commands, agents) from accumulated learnings\n */\n private async generateArtifacts(): Promise<void> {\n // Generate hooks from automation opportunities\n await this.generateHooks();\n \n // Generate specialized agents from patterns\n await this.generateSpecializedAgents();\n \n // Generate custom commands from repeated tasks\n await this.generateCustomCommands();\n }\n\n /**\n * Generate automation hooks\n */\n private async generateHooks(): Promise<void> {\n const allOpportunities = Object.values(this.knowledgeBase.learningsByCategory)\n .flat()\n .flatMap(learning => learning.automationOpportunities)\n .filter(opp => opp.implementation === 'hook');\n\n const hookCounts = new Map<string, number>();\n for (const opp of allOpportunities) {\n hookCounts.set(opp.task, (hookCounts.get(opp.task) || 0) + 1);\n }\n\n // Generate hooks for frequently occurring tasks\n for (const [task, count] of hookCounts) {\n if (count >= 3 && !this.knowledgeBase.automatedHooks.includes(task)) {\n await this.createHook(task);\n this.knowledgeBase.automatedHooks.push(task);\n }\n }\n }\n\n /**\n * Create an automation hook\n */\n private async createHook(task: string): Promise<void> {\n const hookName = task.replace(/\\s+/g, '-').toLowerCase();\n const hookPath = path.join(this.baseDir, 'hooks', `${hookName}.ts`);\n \n await fs.mkdir(path.dirname(hookPath), { recursive: true });\n \n const hookContent = `\n/**\n * Auto-generated hook for: ${task}\n * Generated by Compounding Engineering Pattern\n */\n\nexport async function ${hookName.replace(/-/g, '')}Hook() {\n // TODO: Implement automation for: ${task}\n console.log('Executing automated hook: ${task}');\n}\n `;\n\n await fs.writeFile(hookPath, hookContent);\n logger.info('Generated automation hook', { task, hookPath });\n }\n\n /**\n * Load existing knowledge base\n */\n private async loadExistingKnowledge(): Promise<void> {\n const knowledgePath = path.join(this.baseDir, 'knowledge.json');\n \n try {\n const content = await fs.readFile(knowledgePath, 'utf-8');\n this.knowledgeBase = JSON.parse(content);\n } catch (error) {\n // No existing knowledge, start fresh\n logger.info('Starting fresh knowledge base');\n }\n }\n\n /**\n * Save knowledge base to disk\n */\n private async saveKnowledge(): Promise<void> {\n const knowledgePath = path.join(this.baseDir, 'knowledge.json');\n await fs.writeFile(\n knowledgePath,\n JSON.stringify(this.knowledgeBase, null, 2)\n );\n }\n\n /**\n * Get current compounding metrics\n */\n getCompoundingMetrics(): {\n totalFeatures: number;\n automationLevel: number;\n learningVelocity: number;\n knowledgeReuse: number;\n } {\n const totalLearnings = Object.values(this.knowledgeBase.learningsByCategory)\n .flat().length;\n \n const automationLevel = this.knowledgeBase.automatedHooks.length / \n Math.max(totalLearnings, 1);\n \n const recentLearnings = totalLearnings > 5 ? \n totalLearnings / 5 : totalLearnings;\n \n return {\n totalFeatures: this.knowledgeBase.totalFeatures,\n automationLevel,\n learningVelocity: recentLearnings,\n knowledgeReuse: this.knowledgeBase.bestPractices.length,\n };\n }\n\n // Helper methods\n private assessImpact(output: any): 'high' | 'medium' | 'low' {\n if (output.linesChanged > 100) return 'high';\n if (output.linesChanged > 20) return 'medium';\n return 'low';\n }\n\n private assessReusability(output: any): 'universal' | 'domain_specific' | 'feature_specific' {\n if (output.pattern === 'generic') return 'universal';\n if (output.domain) return 'domain_specific';\n return 'feature_specific';\n }\n\n private generatePreventionStrategy(error: any): string {\n return `Add validation for: ${error.type || 'unknown error type'}`;\n }\n\n private inferDevelopmentPhase(sessionData: any): 'planning' | 'implementation' | 'testing' | 'deployment' {\n if (sessionData.phase) return sessionData.phase;\n if (sessionData.testsRun) return 'testing';\n if (sessionData.codeGenerated) return 'implementation';\n return 'planning';\n }\n\n private analyzeCoordinationPattern(agentOutputs: any[]): any {\n return {\n name: 'Multi-agent coordination',\n context: `${agentOutputs.length} agents worked together`,\n solution: 'Successful multi-agent coordination pattern',\n examples: agentOutputs.map(a => a.role || 'unknown'),\n };\n }\n\n private analyzeCodeStructurePattern(structure: any): any {\n return {\n name: 'Code structure pattern',\n context: structure.type,\n solution: structure.pattern,\n examples: structure.examples || [],\n };\n }\n\n private analyzeTaskFrequency(agentOutputs: any[]): Record<string, number> {\n const frequency: Record<string, number> = {};\n for (const output of agentOutputs) {\n if (output.task) {\n frequency[output.task] = (frequency[output.task] || 0) + 1;\n }\n }\n return frequency;\n }\n\n private async updateBestPractices(learning: FeatureLearning): Promise<void> {\n // Extract best practices from successes\n for (const success of learning.successes) {\n if (success.impact === 'high' && success.reusability === 'universal') {\n const existing = this.knowledgeBase.bestPractices.find(\n bp => bp.practice === success.strategy\n );\n \n if (existing) {\n existing.evidence.push(learning.featureName);\n existing.confidence = Math.min(existing.confidence + 0.1, 1.0);\n } else {\n this.knowledgeBase.bestPractices.push({\n category: learning.developmentPhase,\n practice: success.strategy,\n evidence: [learning.featureName],\n confidence: 0.7,\n });\n }\n }\n }\n }\n\n private async updateMetrics(learning: FeatureLearning): Promise<void> {\n // Update development velocity trend\n const velocityScore = learning.successes.length - learning.failures.length;\n this.knowledgeBase.metrics.developmentVelocityTrend.push(velocityScore);\n \n // Keep only last 10 measurements\n if (this.knowledgeBase.metrics.developmentVelocityTrend.length > 10) {\n this.knowledgeBase.metrics.developmentVelocityTrend.shift();\n }\n }\n\n private async generateSpecializedAgents(): Promise<void> {\n // Implementation for generating specialized agents from patterns\n }\n\n private async generateCustomCommands(): Promise<void> {\n // Implementation for generating custom commands from repeated tasks\n }\n}\n\nexport default CompoundingEngineeringManager;"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|