claude-flow-novice 2.15.3 → 2.15.4
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/cfn-extras/skills/advanced-features/cfn-agent-swap/recommend-swap.sh +59 -59
- package/.claude/cfn-extras/skills/analytics/cfn-improvement-recommender/recommend-improvements.sh +91 -91
- package/.claude/cfn-extras/skills/analytics/cfn-pattern-extraction/extract-patterns.sh +79 -79
- package/.claude/cfn-extras/skills/analytics/cfn-retrospective-report/generate-report.sh +100 -100
- package/.claude/cfn-extras/skills/analytics/cfn-telemetry/start-telemetry.sh +110 -110
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/add-bullet.sh +145 -145
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/log-merge.sh +67 -67
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/monitor-injection-performance.sh +137 -137
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/optimize-injection-pipeline.sh +168 -168
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/query-reflections.sh +35 -35
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/store-reflection.sh +45 -45
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/track-ab-test.sh +41 -41
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/update-reflection.sh +41 -41
- package/.claude/cfn-extras/skills/deprecated/cfn-cli-setup/validate-cli-environment.sh +191 -191
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/create-campaign.sh +231 -231
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/get-campaign-performance.sh +190 -190
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/pause-campaign.sh +142 -142
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/set-budget.sh +181 -181
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/update-bid-strategy.sh +133 -133
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/get-conversation-history.sh +121 -121
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/qualify-lead.sh +156 -156
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/schedule-demo.sh +181 -181
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/send-message.sh +137 -137
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/transfer-to-human.sh +179 -179
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/create-campaign.sh +183 -183
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/get-delivery-status.sh +139 -139
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/opt-out.sh +150 -150
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/schedule-campaign.sh +187 -187
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/send-sms.sh +181 -181
- package/.claude/cfn-extras/skills/ui-portal/cfn-web-portal/test-web-portal-skill.sh +50 -50
- package/.claude/cfn-extras/skills/ui-portal/cfn-web-portal/validate-deployment.sh +84 -84
- package/.claude/cfn-extras/skills/utility/cfn-environment-sanitization/sanitize-environment.sh +243 -243
- package/.claude/commands/cfn-loop-cli.md +16 -2
- package/.claude/commands/switch-api.md +31 -10
- package/.claude/hooks/cfn-lint-sql-injection.sh +61 -0
- package/.claude/hooks/cfn-post-edit-cfn-retrospective.sh +33 -2
- package/.claude/hooks/cfn-pre-edit-security-warning.sh +40 -0
- package/.claude/skills/cfn-agent-spawning/spawn-agent.sh +22 -24
- package/.claude/skills/cfn-docker-agent-spawning/SKILL.md +28 -4
- package/.claude/skills/cfn-docker-agent-spawning/spawn-agent.sh +3 -1
- package/.claude/skills/cfn-docker-loop-orchestration/orchestrate.sh +224 -20
- package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +550 -46
- package/.claude/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +277 -0
- package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +184 -23
- package/.claude/skills/cfn-loop-orchestration/security_utils.sh +24 -0
- package/.claude/skills/cfn-loop-orchestration/test-iteration-context-injection.sh +366 -0
- package/.claude/skills/cfn-redis-coordination/CENTRALIZED_REDIS_WRAPPER.md +319 -0
- package/.claude/skills/cfn-redis-coordination/agent-log.sh +4 -0
- package/.claude/skills/cfn-redis-coordination/agent-log.sh.bak +124 -0
- package/.claude/skills/cfn-redis-coordination/agent-recovery.sh +2 -2
- package/.claude/skills/cfn-redis-coordination/collect-confidence-scores.sh +30 -0
- package/.claude/skills/cfn-redis-coordination/get-context.sh +33 -0
- package/.claude/skills/cfn-redis-coordination/get-success-criteria.sh +54 -0
- package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +3 -0
- package/.claude/skills/cfn-redis-coordination/redis-cli-wrapper.sh +24 -3
- package/.claude/skills/cfn-redis-coordination/redis-functions.sh +33 -0
- package/.claude/skills/cfn-redis-coordination/report-completion.sh +24 -31
- package/.claude/skills/cfn-redis-coordination/store-context.sh +4 -0
- package/.claude/skills/cfn-redis-coordination/store-success-criteria.sh +85 -0
- package/.claude/skills/cfn-redis-coordination/update-all-scripts.sh +67 -0
- package/.claude/skills/cfn-sqlite-memory/ttl-cleanup.sh +17 -25
- package/.claude/skills/cfn-transparency-middleware/test-e2e.sh +15 -0
- package/.claude/skills/cfn-transparency-middleware/tests/input-validation.sh +15 -0
- package/README.md +116 -475
- package/claude-assets/agents/cfn-dev-team/README.md +103 -0
- package/claude-assets/agents/cfn-dev-team/architecture/goal-planner.md +1 -1
- package/claude-assets/agents/cfn-dev-team/coordinators/cfn-frontend-coordinator.md +77 -15
- package/claude-assets/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +355 -6
- package/claude-assets/agents/cfn-dev-team/coordinators/consensus-builder.md +82 -1
- package/claude-assets/agents/cfn-dev-team/coordinators/handoff-coordinator.md +82 -1
- package/claude-assets/agents/cfn-dev-team/coordinators/multi-sprint-coordinator.md +77 -15
- package/claude-assets/agents/cfn-dev-team/dev-ops/docker-specialist.md +99 -12
- package/claude-assets/agents/cfn-dev-team/dev-ops/github-commit-agent.md +1 -1
- package/claude-assets/agents/cfn-dev-team/dev-ops/kubernetes-specialist.md +97 -0
- package/claude-assets/agents/cfn-dev-team/dev-ops/monitoring-specialist.md +20 -1
- package/claude-assets/agents/cfn-dev-team/developers/api-gateway-specialist.md +97 -0
- package/claude-assets/agents/cfn-dev-team/developers/backend-developer.md +110 -13
- package/claude-assets/agents/cfn-dev-team/developers/data/data-engineer.md +106 -15
- package/claude-assets/agents/cfn-dev-team/developers/database/database-architect.md +115 -11
- package/claude-assets/agents/cfn-dev-team/developers/frontend/mobile-dev.md +94 -7
- package/claude-assets/agents/cfn-dev-team/developers/frontend/react-frontend-engineer.md +87 -9
- package/claude-assets/agents/cfn-dev-team/developers/frontend/typescript-specialist.md +85 -7
- package/claude-assets/agents/cfn-dev-team/developers/frontend/ui-designer.md +160 -28
- package/claude-assets/agents/cfn-dev-team/developers/graphql-specialist.md +101 -19
- package/claude-assets/agents/cfn-dev-team/developers/rust-developer.md +108 -14
- package/claude-assets/agents/cfn-dev-team/reviewers/{reviewer.md → code-reviewer.md} +95 -8
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/code-quality-validator.md +107 -7
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +98 -7
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +95 -7
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/security-specialist.md +136 -9
- package/claude-assets/agents/cfn-dev-team/testers/api-testing-specialist.md +108 -1
- package/claude-assets/agents/cfn-dev-team/testers/chaos-engineering-specialist.md +107 -13
- package/claude-assets/agents/cfn-dev-team/testers/contract-tester.md +737 -0
- package/claude-assets/agents/cfn-dev-team/testers/e2e/playwright-tester.md +1 -1
- package/claude-assets/agents/cfn-dev-team/testers/integration-tester.md +828 -0
- package/claude-assets/agents/cfn-dev-team/testers/interaction-tester.md +106 -7
- package/claude-assets/agents/cfn-dev-team/testers/load-testing-specialist.md +77 -0
- package/claude-assets/agents/cfn-dev-team/testers/mutation-testing-specialist.md +684 -0
- package/claude-assets/agents/cfn-dev-team/testers/playwright-tester.md +110 -1
- package/claude-assets/agents/cfn-dev-team/testers/tester.md +94 -7
- package/claude-assets/agents/cfn-dev-team/utility/code-booster.md +1 -3
- package/claude-assets/agents/cfn-dev-team/utility/epic-creator.md +87 -13
- package/claude-assets/agents/cfn-dev-team/utility/memory-leak-specialist.md +103 -7
- package/claude-assets/agents/cfn-dev-team/utility/researcher.md +1 -3
- package/claude-assets/agents/cfn-dev-team/utility/z-ai-specialist.md +94 -7
- package/claude-assets/agents/docker-coordinators/cfn-docker-v3-coordinator.md +46 -0
- package/claude-assets/agents/project-only-agents/npm-package-specialist.md +1 -1
- package/claude-assets/cfn-extras/skills/advanced-features/cfn-agent-swap/recommend-swap.sh +59 -59
- package/claude-assets/cfn-extras/skills/analytics/cfn-improvement-recommender/recommend-improvements.sh +91 -91
- package/claude-assets/cfn-extras/skills/analytics/cfn-pattern-extraction/extract-patterns.sh +79 -79
- package/claude-assets/cfn-extras/skills/analytics/cfn-retrospective-report/generate-report.sh +100 -100
- package/claude-assets/cfn-extras/skills/analytics/cfn-telemetry/start-telemetry.sh +110 -110
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/add-bullet.sh +145 -145
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/log-merge.sh +67 -67
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/monitor-injection-performance.sh +137 -137
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/optimize-injection-pipeline.sh +168 -168
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/query-reflections.sh +35 -35
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/store-reflection.sh +45 -45
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/track-ab-test.sh +41 -41
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/update-reflection.sh +41 -41
- package/claude-assets/cfn-extras/skills/deprecated/cfn-cli-setup/validate-cli-environment.sh +191 -191
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/create-campaign.sh +231 -231
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/get-campaign-performance.sh +190 -190
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/pause-campaign.sh +142 -142
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/set-budget.sh +181 -181
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/update-bid-strategy.sh +133 -133
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/get-conversation-history.sh +121 -121
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/qualify-lead.sh +156 -156
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/schedule-demo.sh +181 -181
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/send-message.sh +137 -137
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/transfer-to-human.sh +179 -179
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/create-campaign.sh +183 -183
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/get-delivery-status.sh +139 -139
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/opt-out.sh +150 -150
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/schedule-campaign.sh +187 -187
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/send-sms.sh +181 -181
- package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/test-web-portal-skill.sh +50 -50
- package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/validate-deployment.sh +84 -84
- package/claude-assets/cfn-extras/skills/utility/cfn-environment-sanitization/sanitize-environment.sh +243 -243
- package/claude-assets/commands/cfn-loop-cli.md +16 -2
- package/claude-assets/commands/switch-api.md +31 -10
- package/claude-assets/hooks/cfn-lint-sql-injection.sh +61 -0
- package/claude-assets/hooks/cfn-post-edit-cfn-retrospective.sh +33 -2
- package/claude-assets/hooks/cfn-pre-edit-security-warning.sh +40 -0
- package/claude-assets/hooks/detect-hardcoded-credentials.sh +212 -0
- package/claude-assets/skills/SKILL_TEMPLATE.md +774 -0
- package/claude-assets/skills/agent-lifecycle/execute-lifecycle-hook.sh +84 -113
- package/claude-assets/skills/agent-lifecycle/simple-audit.sh +33 -6
- package/claude-assets/skills/agent-template-generator/SKILL.md +440 -0
- package/claude-assets/skills/agent-template-generator/generate-agent.sh +405 -0
- package/claude-assets/skills/agent-validation-linter/SKILL.md +589 -0
- package/claude-assets/skills/agent-validation-linter/lint-agents.sh +271 -0
- package/claude-assets/skills/bootstrap/bash-fundamentals.md +786 -0
- package/claude-assets/skills/bootstrap/database-connection.md +464 -0
- package/claude-assets/skills/bootstrap/error-handling.md +580 -0
- package/claude-assets/skills/bootstrap/file-operations.md +699 -0
- package/claude-assets/skills/bootstrap/skill-loader.md +616 -0
- package/claude-assets/skills/bootstrap/sqlite-params.sh +287 -0
- package/claude-assets/skills/cfn-agent-spawning/spawn-agent.sh +22 -24
- package/claude-assets/skills/cfn-automatic-memory-persistence/test-memory-persistence.sh +17 -16
- package/claude-assets/skills/cfn-deployment/SKILL.md +293 -0
- package/claude-assets/skills/cfn-deployment/execute.sh +21 -0
- package/claude-assets/skills/cfn-docker-agent-spawning/SKILL.md +28 -4
- package/claude-assets/skills/cfn-docker-agent-spawning/spawn-agent.sh +3 -1
- package/claude-assets/skills/cfn-docker-loop-orchestration/orchestrate.sh +224 -20
- package/claude-assets/skills/cfn-environment-sanitization/sanitize-environment.sh +38 -0
- package/claude-assets/skills/cfn-error-batching-strategy/lib/core-functions.sh +47 -47
- package/claude-assets/skills/cfn-file-operations/SKILL.md +290 -0
- package/claude-assets/skills/cfn-file-operations/execute.sh +129 -0
- package/claude-assets/skills/cfn-file-operations/lib/atomic-write.sh +294 -0
- package/claude-assets/skills/cfn-file-operations/lib/lock.sh +361 -0
- package/claude-assets/skills/cfn-file-operations/test.sh +369 -0
- package/claude-assets/skills/cfn-log-operations/SKILL.md +308 -0
- package/claude-assets/skills/cfn-log-operations/execute.sh +420 -0
- package/claude-assets/skills/cfn-log-operations/lib/rotate.sh +406 -0
- package/claude-assets/skills/cfn-log-operations/lib/search.sh +448 -0
- package/claude-assets/skills/cfn-log-operations/test.sh +394 -0
- package/claude-assets/skills/cfn-loop-orchestration/helpers/gate-check.sh +550 -46
- package/claude-assets/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +277 -0
- package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh +184 -23
- package/claude-assets/skills/cfn-loop-orchestration/security_utils.sh +24 -0
- package/claude-assets/skills/cfn-loop-orchestration/test-iteration-context-injection.sh +366 -0
- package/claude-assets/skills/cfn-parameterized-queries/SKILL.md +339 -0
- package/claude-assets/skills/cfn-playbook/query-playbook.sh +19 -15
- package/claude-assets/skills/cfn-playbook/update-playbook.sh +25 -14
- package/claude-assets/skills/cfn-process-instrumentation/instrument-process.sh +44 -0
- package/claude-assets/skills/cfn-promotion/SKILL.md +305 -0
- package/claude-assets/skills/cfn-redis-coordination/CENTRALIZED_REDIS_WRAPPER.md +319 -0
- package/claude-assets/skills/cfn-redis-coordination/agent-log.sh +4 -0
- package/claude-assets/skills/cfn-redis-coordination/agent-log.sh.bak +124 -0
- package/claude-assets/skills/cfn-redis-coordination/agent-recovery.sh +2 -2
- package/claude-assets/skills/cfn-redis-coordination/collect-confidence-scores.sh +30 -0
- package/claude-assets/skills/cfn-redis-coordination/get-context.sh +33 -0
- package/claude-assets/skills/cfn-redis-coordination/get-success-criteria.sh +54 -0
- package/claude-assets/skills/cfn-redis-coordination/invoke-waiting-mode.sh +3 -0
- package/claude-assets/skills/cfn-redis-coordination/redis-cli-wrapper.sh +24 -3
- package/claude-assets/skills/cfn-redis-coordination/redis-functions.sh +33 -0
- package/claude-assets/skills/cfn-redis-coordination/report-completion.sh +24 -31
- package/claude-assets/skills/cfn-redis-coordination/store-context.sh +4 -0
- package/claude-assets/skills/cfn-redis-coordination/store-success-criteria.sh +85 -0
- package/claude-assets/skills/cfn-redis-coordination/update-all-scripts.sh +67 -0
- package/claude-assets/skills/cfn-skill-loader/SKILL.md +466 -0
- package/claude-assets/skills/cfn-skill-loader/execute.sh +344 -0
- package/claude-assets/skills/cfn-sqlite-memory/ttl-cleanup.sh +17 -25
- package/claude-assets/skills/cfn-task-audit/get-audit-data.sh +42 -21
- package/claude-assets/skills/cfn-task-audit/store-task-audit.sh +17 -10
- package/claude-assets/skills/cfn-test-runner/detect-regressions.sh +17 -14
- package/claude-assets/skills/cfn-test-runner/detect-regressions.sh.backup-1763392821 +55 -0
- package/claude-assets/skills/cfn-test-runner/store-benchmarks.sh +17 -19
- package/claude-assets/skills/cfn-transparency-middleware/test-e2e.sh +15 -0
- package/claude-assets/skills/cfn-transparency-middleware/tests/input-validation.sh +15 -0
- package/claude-assets/skills/cfn-utilities/SKILL.md +237 -0
- package/claude-assets/skills/cfn-utilities/execute.sh +32 -0
- package/claude-assets/skills/cfn-utilities/lib/errors.sh +56 -0
- package/claude-assets/skills/cfn-utilities/lib/file-ops.sh +164 -0
- package/claude-assets/skills/cfn-utilities/lib/logging.sh +77 -0
- package/claude-assets/skills/cfn-utilities/lib/retry.sh +127 -0
- package/claude-assets/skills/cfn-utilities/test.sh +317 -0
- package/claude-assets/skills/integration/agent-handoff.sh +62 -64
- package/claude-assets/skills/json-validation/SKILL.md +431 -0
- package/claude-assets/skills/json-validation/test-validate-success-criteria.sh +421 -0
- package/claude-assets/skills/json-validation/validate-success-criteria.sh +197 -0
- package/claude-assets/skills/redis-coordination/validate-parameters.sh +34 -0
- package/claude-assets/skills/workflow-codification/DEPLOY_QUICK_REFERENCE.md +106 -0
- package/claude-assets/skills/workflow-codification/PROPAGATE_UPDATE_QUICK_REFERENCE.md +366 -0
- package/claude-assets/skills/workflow-codification/deploy-approved-skill.sh +481 -0
- package/claude-assets/skills/workflow-codification/deploy-approved-skill.sh.backup-1763392820 +512 -0
- package/claude-assets/skills/workflow-codification/lib/security-utils.sh +204 -0
- package/claude-assets/skills/workflow-codification/propagate-skill-update.sh +648 -0
- package/claude-assets/skills/workflow-codification/propagate-skill-update.sh.backup-1763392820 +664 -0
- package/claude-assets/skills/workflow-codification/test-integration.sh +15 -0
- package/claude-assets/skills/workflow-codification/test-metadata-update.sh +350 -0
- package/claude-assets/skills/workflow-codification/track-cost-savings.sh +55 -14
- package/claude-assets/skills/workflow-codification/track-cost-savings.sh.backup-1763392821 +445 -0
- package/claude-assets/skills/workflow-codification/track-edge-case.sh +27 -60
- package/claude-assets/skills/workflow-codification/workflow-codification.db +0 -0
- package/dist/ace/ace-curator.js +10 -2
- package/dist/ace/ace-curator.js.map +1 -1
- package/dist/ace/ace-generator.js +4 -0
- package/dist/ace/ace-generator.js.map +1 -1
- package/dist/ace/ace-reflector.js +1 -1
- package/dist/ace/ace-reflector.js.map +1 -1
- package/dist/ace/context-injection.js +24 -2
- package/dist/ace/context-injection.js.map +1 -1
- package/dist/agents/agent-loader.js +146 -165
- package/dist/agents/agent-loader.js.map +1 -1
- package/dist/agents/task-agent-integration.js +1 -1
- package/dist/agents/task-agent-integration.js.map +1 -1
- package/dist/api/health-endpoints.js +390 -0
- package/dist/api/health-endpoints.js.map +1 -0
- package/dist/cli/agent-executor.js +4 -1
- package/dist/cli/agent-executor.js.map +1 -1
- package/dist/cli/agent-prompt-builder.js +89 -1
- package/dist/cli/agent-prompt-builder.js.map +1 -1
- package/dist/cli/agent-spawn.js +130 -37
- package/dist/cli/agent-spawn.js.map +1 -1
- package/dist/cli/skill-cache-validator.js +412 -0
- package/dist/cli/skill-cache-validator.js.map +1 -0
- package/dist/cli/skill-cli.js +991 -0
- package/dist/cli/skill-cli.js.map +1 -0
- package/dist/cli/skill-execution-logger.js +284 -0
- package/dist/cli/skill-execution-logger.js.map +1 -0
- package/dist/cli/skill-loader.js +457 -0
- package/dist/cli/skill-loader.js.map +1 -0
- package/dist/coordination/event-bus.js +2 -2
- package/dist/coordination/event-bus.js.map +1 -1
- package/dist/coordination/fleet-manager.js +1 -1
- package/dist/coordination/fleet-manager.js.map +1 -1
- package/dist/coordination/index.js +23 -9
- package/dist/coordination/index.js.map +1 -1
- package/dist/coordination/types/fleet-manager.types.js.map +1 -1
- package/dist/db/migration-manager.js +483 -0
- package/dist/db/migration-manager.js.map +1 -0
- package/dist/db/skills-query.js +535 -0
- package/dist/db/skills-query.js.map +1 -0
- package/dist/integration/DatabaseHandoff.js +1 -1
- package/dist/integration/DatabaseHandoff.js.map +1 -1
- package/dist/jobs/edge-case-analyzer.js +367 -0
- package/dist/jobs/edge-case-analyzer.js.map +1 -0
- package/dist/jobs/promotion-sla-enforcer.js +288 -0
- package/dist/jobs/promotion-sla-enforcer.js.map +1 -0
- package/dist/lib/agent-output-parser.js.map +1 -1
- package/dist/lib/agent-output-validator.js.map +1 -1
- package/dist/lib/agent-workspace.js +281 -0
- package/dist/lib/agent-workspace.js.map +1 -0
- package/dist/lib/atomic-file-writer.js +377 -0
- package/dist/lib/atomic-file-writer.js.map +1 -0
- package/dist/lib/backup-manager.js +779 -0
- package/dist/lib/backup-manager.js.map +1 -0
- package/dist/lib/checkpoint-manager.js +837 -0
- package/dist/lib/checkpoint-manager.js.map +1 -0
- package/dist/lib/circuit-breaker.js +340 -0
- package/dist/lib/circuit-breaker.js.map +1 -0
- package/dist/lib/completion-signal-handler.js +243 -0
- package/dist/lib/completion-signal-handler.js.map +1 -0
- package/dist/lib/config-manager.js +312 -0
- package/dist/lib/config-manager.js.map +1 -0
- package/dist/lib/config-migrator.js +386 -0
- package/dist/lib/config-migrator.js.map +1 -0
- package/dist/lib/config-validator.js.map +1 -1
- package/dist/lib/correlation-cache.js +311 -0
- package/dist/lib/correlation-cache.js.map +1 -0
- package/dist/lib/correlation.js +263 -0
- package/dist/lib/correlation.js.map +1 -0
- package/dist/lib/database-service/connection-pool-manager.js +520 -0
- package/dist/lib/database-service/connection-pool-manager.js.map +1 -0
- package/dist/lib/database-service/correlation.js +329 -0
- package/dist/lib/database-service/correlation.js.map +1 -0
- package/dist/lib/database-service/errors.js +120 -0
- package/dist/lib/database-service/errors.js.map +1 -0
- package/dist/lib/database-service/index.js +168 -0
- package/dist/lib/database-service/index.js.map +1 -0
- package/dist/lib/database-service/postgres-adapter.js +526 -0
- package/dist/lib/database-service/postgres-adapter.js.map +1 -0
- package/dist/lib/database-service/redis-adapter.js +360 -0
- package/dist/lib/database-service/redis-adapter.js.map +1 -0
- package/dist/lib/database-service/sqlite-adapter.js +544 -0
- package/dist/lib/database-service/sqlite-adapter.js.map +1 -0
- package/dist/lib/database-service/transaction-manager.js +773 -0
- package/dist/lib/database-service/transaction-manager.js.map +1 -0
- package/dist/lib/database-service/types.js +23 -0
- package/dist/lib/database-service/types.js.map +1 -0
- package/dist/lib/deadlock-resolver.js +292 -0
- package/dist/lib/deadlock-resolver.js.map +1 -0
- package/dist/lib/distributed-lock.js +451 -0
- package/dist/lib/distributed-lock.js.map +1 -0
- package/dist/lib/edge-case-deduplicator.js +227 -0
- package/dist/lib/edge-case-deduplicator.js.map +1 -0
- package/dist/lib/encryption-manager.js +322 -0
- package/dist/lib/encryption-manager.js.map +1 -0
- package/dist/lib/error-aggregator.js +234 -0
- package/dist/lib/error-aggregator.js.map +1 -0
- package/dist/lib/errors.js +287 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/file-lock-manager.js +578 -0
- package/dist/lib/file-lock-manager.js.map +1 -0
- package/dist/lib/file-operations.js +367 -0
- package/dist/lib/file-operations.js.map +1 -0
- package/dist/lib/idempotent-write.js +237 -0
- package/dist/lib/idempotent-write.js.map +1 -0
- package/dist/lib/integration-schema-validator.js +522 -0
- package/dist/lib/integration-schema-validator.js.map +1 -0
- package/dist/lib/lock-health-monitor.js +298 -0
- package/dist/lib/lock-health-monitor.js.map +1 -0
- package/dist/lib/log-shipper.js +422 -0
- package/dist/lib/log-shipper.js.map +1 -0
- package/dist/lib/logging.js +146 -0
- package/dist/lib/logging.js.map +1 -0
- package/dist/lib/message-deduplicator.js +439 -0
- package/dist/lib/message-deduplicator.js.map +1 -0
- package/dist/lib/multi-system-query.js +604 -0
- package/dist/lib/multi-system-query.js.map +1 -0
- package/dist/lib/orphan-detector.js +332 -0
- package/dist/lib/orphan-detector.js.map +1 -0
- package/dist/lib/password-generator.js +166 -0
- package/dist/lib/password-generator.js.map +1 -0
- package/dist/lib/path-validator.js +429 -0
- package/dist/lib/path-validator.js.map +1 -0
- package/dist/lib/query-translator.js +905 -0
- package/dist/lib/query-translator.js.map +1 -0
- package/dist/lib/queue-recovery.js +469 -0
- package/dist/lib/queue-recovery.js.map +1 -0
- package/dist/lib/redis-queue-manager.js +512 -0
- package/dist/lib/redis-queue-manager.js.map +1 -0
- package/dist/lib/reflection-archiver.js +272 -0
- package/dist/lib/reflection-archiver.js.map +1 -0
- package/dist/lib/retry-manager.js +453 -0
- package/dist/lib/retry-manager.js.map +1 -0
- package/dist/lib/retry.js +262 -0
- package/dist/lib/retry.js.map +1 -0
- package/dist/lib/schema-transform.js +695 -0
- package/dist/lib/schema-transform.js.map +1 -0
- package/dist/lib/schema-validator.js +491 -0
- package/dist/lib/schema-validator.js.map +1 -0
- package/dist/lib/skill-cache.js +297 -0
- package/dist/lib/skill-cache.js.map +1 -0
- package/dist/lib/skill-content-manager.js +337 -0
- package/dist/lib/skill-content-manager.js.map +1 -0
- package/dist/lib/skill-frontmatter-parser.js +237 -0
- package/dist/lib/skill-frontmatter-parser.js.map +1 -0
- package/dist/lib/skill-git-integration.js +275 -0
- package/dist/lib/skill-git-integration.js.map +1 -0
- package/dist/lib/skill-markdown-validator.js +396 -0
- package/dist/lib/skill-markdown-validator.js.map +1 -0
- package/dist/lib/skill-output-parser.js +312 -0
- package/dist/lib/skill-output-parser.js.map +1 -0
- package/dist/lib/unified-query-api.js +467 -0
- package/dist/lib/unified-query-api.js.map +1 -0
- package/dist/middleware/auth-middleware.js +350 -0
- package/dist/middleware/auth-middleware.js.map +1 -0
- package/dist/middleware/schema-validation.js +347 -0
- package/dist/middleware/schema-validation.js.map +1 -0
- package/dist/providers/anthropic-provider.js +1 -1
- package/dist/providers/anthropic-provider.js.map +1 -1
- package/dist/providers/provider-factory.js +2 -2
- package/dist/providers/provider-factory.js.map +1 -1
- package/dist/services/edge-case-analyzer.js +321 -0
- package/dist/services/edge-case-analyzer.js.map +1 -0
- package/dist/services/edge-case-deduplicator.js +266 -0
- package/dist/services/edge-case-deduplicator.js.map +1 -0
- package/dist/services/edge-case-detector.js +337 -0
- package/dist/services/edge-case-detector.js.map +1 -0
- package/dist/services/edge-case-tracker.js +547 -0
- package/dist/services/edge-case-tracker.js.map +1 -0
- package/dist/services/health-check-system.js +586 -0
- package/dist/services/health-check-system.js.map +1 -0
- package/dist/services/metrics-logger.js +412 -0
- package/dist/services/metrics-logger.js.map +1 -0
- package/dist/services/patch-generator.js +378 -0
- package/dist/services/patch-generator.js.map +1 -0
- package/dist/services/patch-validator.js +337 -0
- package/dist/services/patch-validator.js.map +1 -0
- package/dist/services/performance-monitor.js +811 -0
- package/dist/services/performance-monitor.js.map +1 -0
- package/dist/services/promotion-pipeline.js +918 -0
- package/dist/services/promotion-pipeline.js.map +1 -0
- package/dist/services/promotion-validator.js +394 -0
- package/dist/services/promotion-validator.js.map +1 -0
- package/dist/services/reflection-logger.js +388 -0
- package/dist/services/reflection-logger.js.map +1 -0
- package/dist/services/skill-deployment.js +472 -0
- package/dist/services/skill-deployment.js.map +1 -0
- package/dist/services/skill-loader.js +427 -0
- package/dist/services/skill-loader.js.map +1 -0
- package/dist/services/skill-promotion.js +372 -0
- package/dist/services/skill-promotion.js.map +1 -0
- package/dist/services/skill-validator.js +454 -0
- package/dist/services/skill-validator.js.map +1 -0
- package/dist/services/skill-versioning.js +244 -0
- package/dist/services/skill-versioning.js.map +1 -0
- package/dist/services/workspace-supervisor.js +597 -0
- package/dist/services/workspace-supervisor.js.map +1 -0
- package/dist/types/edge-case.js +45 -0
- package/dist/types/edge-case.js.map +1 -0
- package/package.json +201 -177
- package/readme/README.md +19 -4
- package/scripts/backup-cleanup.sh +627 -0
- package/scripts/cleanup-workspaces.sh +412 -0
- package/scripts/cleanup-yaml-configs.sh +141 -0
- package/scripts/deploy-approved-skills.sh +263 -0
- package/scripts/health-check.sh +447 -0
- package/scripts/log-aggregator.sh +554 -0
- package/scripts/log-monitor.sh +629 -0
- package/scripts/manage-agent-workspaces.sh +434 -0
- package/scripts/migrate-schema.sh +533 -0
- package/scripts/promote-staged-skills.sh +423 -0
- package/scripts/verify-no-secrets.sh +88 -35
- package/.claude/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator.md.backup +0 -161
- package/.claude/cfn-extras/agents/deprecated-coordinators/blocking-coordinator-example.md.backup +0 -728
- package/.claude/cfn-extras/agents/deprecated-coordinators/mesh-coordinator.md.backup +0 -131
- package/.claude/skills/agent-lifecycle/SKILL.md +0 -60
- package/.claude/skills/agent-lifecycle/execute-lifecycle-hook.sh +0 -573
- package/.claude/skills/agent-lifecycle/simple-audit.sh +0 -31
- package/.claude/skills/cfn-agent-spawning/spawn-agent.sh.backup +0 -273
- package/.claude/skills/cfn-loop-orchestration/orchestrate.sh.backup +0 -949
- package/README.md.backup_before_replace +0 -781
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator.md.backup +0 -161
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/blocking-coordinator-example.md.backup +0 -728
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/mesh-coordinator.md.backup +0 -131
- package/claude-assets/skills/cfn-agent-spawning/spawn-agent.sh.backup +0 -273
- package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh.backup +0 -949
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/workspace-supervisor.ts"],"sourcesContent":["/**\r\n * Workspace Supervisor Service\r\n *\r\n * Manages isolated workspaces for agents with automatic cleanup on completion/crash\r\n * and TTL-based retention. Provides comprehensive workspace lifecycle management.\r\n *\r\n * Part of Task P2-1.3: Supervised Workspace Cleanup (Phase 2)\r\n *\r\n * Features:\r\n * - Isolated workspace per agent (directory-based)\r\n * - Auto-cleanup on agent completion (success or failure)\r\n * - Auto-cleanup on agent crash (orphan detection)\r\n * - TTL-based cleanup (24h default, configurable)\r\n * - Zero orphaned files after 24h\r\n * - Workspace size limits (max 1GB per agent, configurable)\r\n * - Audit trail (what was cleaned, when, why)\r\n * - Manual cleanup command support\r\n * - Workspace metadata tracking\r\n * - Concurrent workspace management\r\n *\r\n * Usage:\r\n * const supervisor = new WorkspaceSupervisor({\r\n * workspaceRoot: '/tmp/cfn-workspaces',\r\n * maxWorkspaceSizeBytes: 1024 * 1024 * 1024,\r\n * defaultTtlHours: 24\r\n * });\r\n * await supervisor.initialize();\r\n *\r\n * const workspace = await supervisor.createWorkspace({\r\n * agentId: 'backend-dev-001',\r\n * taskId: 'task-123',\r\n * maxSizeBytes: 1024 * 1024 * 1024,\r\n * ttlHours: 24\r\n * });\r\n *\r\n * // Use workspace...\r\n * await fs.writeFile(path.join(workspace.path, 'output.txt'), 'result');\r\n *\r\n * // Cleanup when done\r\n * await supervisor.cleanupWorkspace(workspace.id, {\r\n * reason: 'agent_completed',\r\n * preserveArtifacts: ['report.md']\r\n * });\r\n */\r\n\r\nimport * as fs from 'fs/promises';\r\nimport * as path from 'path';\r\nimport { randomUUID } from 'crypto';\r\nimport Database from 'better-sqlite3';\r\nimport { createLogger } from '../lib/logging.js';\r\nimport { createError, ErrorCode, StandardError } from '../lib/errors.js';\r\n\r\nconst logger = createLogger('workspace-supervisor');\r\n\r\n/**\r\n * Workspace configuration\r\n */\r\nexport interface WorkspaceConfig {\r\n /** Agent ID performing work in workspace */\r\n agentId: string;\r\n /** Task ID associated with workspace */\r\n taskId: string;\r\n /** Maximum workspace size in bytes */\r\n maxSizeBytes: number;\r\n /** TTL in hours (default: 24) */\r\n ttlHours: number;\r\n /** Patterns to preserve during cleanup (glob patterns) */\r\n preservePatterns?: string[];\r\n}\r\n\r\n/**\r\n * Workspace metadata\r\n */\r\nexport interface Workspace {\r\n /** Unique workspace ID */\r\n id: string;\r\n /** Agent ID */\r\n agentId: string;\r\n /** Task ID */\r\n taskId: string;\r\n /** Filesystem path to workspace */\r\n path: string;\r\n /** Creation timestamp */\r\n createdAt: Date;\r\n /** TTL in hours */\r\n ttlHours: number;\r\n /** Maximum size in bytes */\r\n maxSizeBytes: number;\r\n /** Current size in bytes */\r\n sizeBytes: number;\r\n /** Number of files in workspace */\r\n fileCount: number;\r\n /** Whether workspace exceeds size limit */\r\n exceedsLimit: boolean;\r\n}\r\n\r\n/**\r\n * Cleanup options\r\n */\r\nexport interface CleanupOptions {\r\n /** Reason for cleanup (agent_completed, agent_crashed, ttl_expired, manual) */\r\n reason: 'agent_completed' | 'agent_crashed' | 'ttl_expired' | 'manual';\r\n /** Artifacts to preserve during cleanup */\r\n preserveArtifacts?: string[];\r\n /** Destination directory for preserved artifacts */\r\n artifactDestination?: string;\r\n /** Additional metadata for audit trail */\r\n metadata?: Record<string, any>;\r\n}\r\n\r\n/**\r\n * Cleanup statistics\r\n */\r\nexport interface CleanupStats {\r\n /** Number of workspaces cleaned */\r\n cleanedCount: number;\r\n /** Total size freed in bytes */\r\n totalSizeFreed: number;\r\n /** Number of files removed */\r\n filesRemoved: number;\r\n}\r\n\r\n/**\r\n * Cleanup history entry\r\n */\r\nexport interface CleanupHistoryEntry {\r\n /** When cleanup occurred */\r\n cleanedAt: Date;\r\n /** Reason for cleanup */\r\n reason: string;\r\n /** Size freed in bytes */\r\n sizeFreed: number;\r\n /** Number of files removed */\r\n filesRemoved: number;\r\n /** Additional metadata */\r\n metadata?: Record<string, any>;\r\n}\r\n\r\n/**\r\n * Workspace statistics\r\n */\r\nexport interface WorkspaceStatistics {\r\n /** Total number of workspaces */\r\n totalWorkspaces: number;\r\n /** Number of active (non-stale) workspaces */\r\n activeWorkspaces: number;\r\n /** Total disk usage in bytes */\r\n totalDiskUsage: number;\r\n /** Number of stale workspaces */\r\n staleWorkspaces: number;\r\n}\r\n\r\n/**\r\n * Supervisor configuration\r\n */\r\nexport interface SupervisorConfig {\r\n /** Root directory for all workspaces */\r\n workspaceRoot: string;\r\n /** Maximum workspace size (default: 1GB) */\r\n maxWorkspaceSizeBytes?: number;\r\n /** Default TTL in hours (default: 24) */\r\n defaultTtlHours?: number;\r\n /** TTL-based cleanup interval in minutes (default: 60) */\r\n cleanupIntervalMinutes?: number;\r\n /** Database path for metadata (default: workspaceRoot/metadata.db) */\r\n databasePath?: string;\r\n}\r\n\r\n/**\r\n * WorkspaceSupervisor: Manages isolated workspaces for agents\r\n */\r\nexport class WorkspaceSupervisor {\r\n private config: SupervisorConfig;\r\n private db: Database.Database | null = null;\r\n private cleanupInterval: NodeJS.Timer | null = null;\r\n private workspaces: Map<string, Workspace> = new Map();\r\n\r\n constructor(config: SupervisorConfig) {\r\n this.config = {\r\n maxWorkspaceSizeBytes: 1024 * 1024 * 1024, // 1GB default\r\n defaultTtlHours: 24,\r\n cleanupIntervalMinutes: 60,\r\n ...config,\r\n };\r\n }\r\n\r\n /**\r\n * Initialize workspace supervisor\r\n */\r\n async initialize(): Promise<void> {\r\n try {\r\n // Create workspace root directory\r\n await fs.mkdir(this.config.workspaceRoot, { recursive: true });\r\n\r\n // Initialize database\r\n const dbPath = this.config.databasePath || path.join(this.config.workspaceRoot, 'metadata.db');\r\n this.db = new Database(dbPath);\r\n\r\n // Create schema\r\n this.createSchema();\r\n\r\n // Load existing workspaces\r\n await this.loadExistingWorkspaces();\r\n\r\n // Start background TTL cleanup\r\n this.startCleanupScheduler();\r\n\r\n logger.info('WorkspaceSupervisor initialized', {\r\n workspaceRoot: this.config.workspaceRoot,\r\n maxSize: this.config.maxWorkspaceSizeBytes,\r\n defaultTtl: this.config.defaultTtlHours,\r\n });\r\n } catch (error) {\r\n logger.error('Failed to initialize WorkspaceSupervisor', { error: String(error) });\r\n throw createError(\r\n ErrorCode.CONFIGURATION_ERROR,\r\n 'Failed to initialize workspace supervisor',\r\n { cause: String(error) }\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Shutdown supervisor and stop background tasks\r\n */\r\n async shutdown(): Promise<void> {\r\n try {\r\n if (this.cleanupInterval) {\r\n clearInterval(this.cleanupInterval);\r\n this.cleanupInterval = null;\r\n }\r\n\r\n if (this.db) {\r\n this.db.close();\r\n this.db = null;\r\n }\r\n\r\n logger.info('WorkspaceSupervisor shutdown complete');\r\n } catch (error) {\r\n logger.error('Error during shutdown', { error: String(error) });\r\n }\r\n }\r\n\r\n /**\r\n * Create isolated workspace for agent\r\n */\r\n async createWorkspace(config: WorkspaceConfig): Promise<Workspace> {\r\n const workspaceId = randomUUID();\r\n // Sanitize paths to prevent traversal attacks\r\n const sanitizedAgentId = this.sanitizePath(config.agentId);\r\n const sanitizedTaskId = this.sanitizePath(config.taskId);\r\n const workspacePath = path.normalize(\r\n path.join(\r\n this.config.workspaceRoot,\r\n `${sanitizedAgentId}-${sanitizedTaskId}-${workspaceId}`\r\n )\r\n );\r\n\r\n // Verify path is within workspace root\r\n const relPath = path.relative(this.config.workspaceRoot, workspacePath);\r\n if (relPath.startsWith('..')) {\r\n throw createError(ErrorCode.VALIDATION_FAILED, 'Invalid workspace path', {\r\n path: workspacePath,\r\n });\r\n }\r\n\r\n try {\r\n // Create workspace directory\r\n await fs.mkdir(workspacePath, { recursive: true });\r\n\r\n const workspace: Workspace = {\r\n id: workspaceId,\r\n agentId: config.agentId,\r\n taskId: config.taskId,\r\n path: workspacePath,\r\n createdAt: new Date(),\r\n ttlHours: config.ttlHours,\r\n maxSizeBytes: config.maxSizeBytes,\r\n sizeBytes: 0,\r\n fileCount: 0,\r\n exceedsLimit: false,\r\n };\r\n\r\n // Store in database\r\n this.insertWorkspace(workspace);\r\n this.workspaces.set(workspaceId, workspace);\r\n\r\n logger.info('Workspace created', {\r\n workspaceId,\r\n agentId: config.agentId,\r\n taskId: config.taskId,\r\n path: workspacePath,\r\n });\r\n\r\n return workspace;\r\n } catch (error) {\r\n logger.error('Failed to create workspace', { error: String(error) });\r\n throw createError(ErrorCode.FILE_WRITE_FAILED, 'Failed to create workspace', {\r\n cause: String(error),\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Cleanup workspace on completion\r\n */\r\n async cleanupWorkspace(workspaceId: string, options: CleanupOptions): Promise<CleanupStats> {\r\n const workspace = this.workspaces.get(workspaceId);\r\n\r\n if (!workspace) {\r\n logger.warn('Attempt to cleanup non-existent workspace', { workspaceId });\r\n return { cleanedCount: 0, totalSizeFreed: 0, filesRemoved: 0 };\r\n }\r\n\r\n try {\r\n let sizeFreed = 0;\r\n let filesRemoved = 0;\r\n\r\n // Get current stats before cleanup\r\n const currentSize = await this.getDirectorySize(workspace.path).catch(() => 0);\r\n const currentFileCount = await this.countFiles(workspace.path).catch(() => 0);\r\n\r\n // Preserve artifacts if specified\r\n if (options.preserveArtifacts && options.preserveArtifacts.length > 0) {\r\n await this.preserveArtifacts(\r\n workspace.path,\r\n options.preserveArtifacts,\r\n options.artifactDestination\r\n );\r\n }\r\n\r\n // Remove workspace directory\r\n await fs.rm(workspace.path, { recursive: true, force: true });\r\n\r\n sizeFreed = currentSize;\r\n filesRemoved = currentFileCount;\r\n\r\n // Record cleanup in database\r\n this.recordCleanup(workspaceId, options, sizeFreed, filesRemoved);\r\n\r\n // Remove from memory cache\r\n this.workspaces.delete(workspaceId);\r\n\r\n logger.info('Workspace cleaned up', {\r\n workspaceId,\r\n reason: options.reason,\r\n sizeFreed,\r\n filesRemoved,\r\n });\r\n\r\n return {\r\n cleanedCount: 1,\r\n totalSizeFreed: sizeFreed,\r\n filesRemoved,\r\n };\r\n } catch (error) {\r\n logger.error('Error cleaning up workspace', { workspaceId, error: String(error) });\r\n throw createError(ErrorCode.FILE_WRITE_FAILED, 'Failed to cleanup workspace', {\r\n cause: String(error),\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Get stale workspaces (past TTL)\r\n */\r\n async getStaleWorkspaces(): Promise<Workspace[]> {\r\n const stale: Workspace[] = [];\r\n const now = Date.now();\r\n\r\n for (const workspace of this.workspaces.values()) {\r\n const ageMs = now - workspace.createdAt.getTime();\r\n const ttlMs = workspace.ttlHours * 60 * 60 * 1000;\r\n\r\n if (ageMs > ttlMs) {\r\n stale.push(workspace);\r\n }\r\n }\r\n\r\n return stale;\r\n }\r\n\r\n /**\r\n * Enforce retention policy (TTL-based cleanup)\r\n */\r\n async enforceRetentionPolicy(options?: {\r\n preservePatterns?: string[];\r\n }): Promise<CleanupStats> {\r\n const staleWorkspaces = await this.getStaleWorkspaces();\r\n\r\n let totalCleaned = 0;\r\n let totalFreed = 0;\r\n let totalFilesRemoved = 0;\r\n\r\n for (const workspace of staleWorkspaces) {\r\n const stats = await this.cleanupWorkspace(workspace.id, {\r\n reason: 'ttl_expired',\r\n preserveArtifacts: options?.preservePatterns,\r\n });\r\n\r\n totalCleaned += stats.cleanedCount;\r\n totalFreed += stats.totalSizeFreed;\r\n totalFilesRemoved += stats.filesRemoved;\r\n }\r\n\r\n return {\r\n cleanedCount: totalCleaned,\r\n totalSizeFreed: totalFreed,\r\n filesRemoved: totalFilesRemoved,\r\n };\r\n }\r\n\r\n /**\r\n * Update workspace metadata (e.g., process ID, last accessed time)\r\n */\r\n async updateWorkspaceMetadata(\r\n workspaceId: string,\r\n metadata: Record<string, any>\r\n ): Promise<void> {\r\n const workspace = this.workspaces.get(workspaceId);\r\n if (!workspace) {\r\n return;\r\n }\r\n\r\n try {\r\n if (!this.db) return;\r\n\r\n const stmt = this.db.prepare(`\r\n UPDATE workspaces\r\n SET metadata = json_patch(COALESCE(metadata, '{}'), ?)\r\n WHERE id = ?\r\n `);\r\n stmt.run(JSON.stringify(metadata), workspaceId);\r\n } catch (error) {\r\n logger.error('Error updating workspace metadata', { workspaceId, error: String(error) });\r\n }\r\n }\r\n\r\n /**\r\n * Get workspace info (with current size/stats)\r\n */\r\n async getWorkspaceInfo(workspaceId: string): Promise<Workspace | undefined> {\r\n const workspace = this.workspaces.get(workspaceId);\r\n if (!workspace) return undefined;\r\n\r\n // Update size and file count if workspace still exists\r\n if (await fs.stat(workspace.path).catch(() => null)) {\r\n const sizeBytes = await this.getDirectorySize(workspace.path);\r\n const fileCount = await this.countFiles(workspace.path);\r\n const exceedsLimit = sizeBytes > workspace.maxSizeBytes;\r\n\r\n // Update in memory\r\n workspace.sizeBytes = sizeBytes;\r\n workspace.fileCount = fileCount;\r\n workspace.exceedsLimit = exceedsLimit;\r\n }\r\n\r\n return workspace;\r\n }\r\n\r\n /**\r\n * Get cleanup history for workspace\r\n */\r\n async getCleanupHistory(workspaceId: string): Promise<CleanupHistoryEntry[]> {\r\n try {\r\n if (!this.db) return [];\r\n\r\n const stmt = this.db.prepare(`\r\n SELECT cleaned_at, reason, size_freed, files_removed, metadata\r\n FROM cleanup_history\r\n WHERE workspace_id = ?\r\n ORDER BY cleaned_at DESC\r\n `);\r\n const rows = stmt.all(workspaceId) as any[];\r\n\r\n return rows.map(row => ({\r\n cleanedAt: new Date(row.cleaned_at),\r\n reason: row.reason,\r\n sizeFreed: row.size_freed,\r\n filesRemoved: row.files_removed,\r\n metadata: row.metadata ? JSON.parse(row.metadata) : undefined,\r\n }));\r\n } catch (error) {\r\n logger.error('Error fetching cleanup history', { error: String(error) });\r\n return [];\r\n }\r\n }\r\n\r\n /**\r\n * Get workspace statistics\r\n */\r\n async getStatistics(): Promise<WorkspaceStatistics> {\r\n let totalDiskUsage = 0;\r\n let staleCount = 0;\r\n\r\n for (const workspace of this.workspaces.values()) {\r\n // Update size for current calculation\r\n try {\r\n if (await fs.stat(workspace.path).catch(() => null)) {\r\n const size = await this.getDirectorySize(workspace.path);\r\n totalDiskUsage += size;\r\n }\r\n } catch (e) {\r\n // Ignore\r\n }\r\n\r\n const ageMs = Date.now() - workspace.createdAt.getTime();\r\n const ttlMs = workspace.ttlHours * 60 * 60 * 1000;\r\n if (ageMs > ttlMs) {\r\n staleCount++;\r\n }\r\n }\r\n\r\n return {\r\n totalWorkspaces: this.workspaces.size,\r\n activeWorkspaces: this.workspaces.size - staleCount,\r\n totalDiskUsage,\r\n staleWorkspaces: staleCount,\r\n };\r\n }\r\n\r\n // ============================================================================\r\n // Private Helper Methods\r\n // ============================================================================\r\n\r\n /**\r\n * Create database schema\r\n */\r\n private createSchema(): void {\r\n if (!this.db) return;\r\n\r\n // Workspaces table\r\n this.db.exec(`\r\n CREATE TABLE IF NOT EXISTS workspaces (\r\n id TEXT PRIMARY KEY,\r\n agent_id TEXT NOT NULL,\r\n task_id TEXT NOT NULL,\r\n path TEXT NOT NULL,\r\n created_at TEXT NOT NULL,\r\n ttl_hours INTEGER NOT NULL,\r\n max_size_bytes INTEGER NOT NULL,\r\n metadata TEXT\r\n );\r\n\r\n CREATE INDEX IF NOT EXISTS idx_workspaces_agent ON workspaces(agent_id);\r\n CREATE INDEX IF NOT EXISTS idx_workspaces_task ON workspaces(task_id);\r\n CREATE INDEX IF NOT EXISTS idx_workspaces_created ON workspaces(created_at);\r\n `);\r\n\r\n // Cleanup history table\r\n this.db.exec(`\r\n CREATE TABLE IF NOT EXISTS cleanup_history (\r\n id INTEGER PRIMARY KEY AUTOINCREMENT,\r\n workspace_id TEXT NOT NULL,\r\n cleaned_at TEXT NOT NULL,\r\n reason TEXT NOT NULL,\r\n size_freed INTEGER,\r\n files_removed INTEGER,\r\n metadata TEXT,\r\n FOREIGN KEY(workspace_id) REFERENCES workspaces(id)\r\n );\r\n\r\n CREATE INDEX IF NOT EXISTS idx_cleanup_workspace ON cleanup_history(workspace_id);\r\n CREATE INDEX IF NOT EXISTS idx_cleanup_date ON cleanup_history(cleaned_at);\r\n `);\r\n }\r\n\r\n /**\r\n * Insert workspace into database\r\n */\r\n private insertWorkspace(workspace: Workspace): void {\r\n if (!this.db) return;\r\n\r\n try {\r\n const stmt = this.db.prepare(`\r\n INSERT OR REPLACE INTO workspaces\r\n (id, agent_id, task_id, path, created_at, ttl_hours, max_size_bytes, metadata)\r\n VALUES (?, ?, ?, ?, ?, ?, ?, ?)\r\n `);\r\n stmt.run(\r\n workspace.id,\r\n workspace.agentId,\r\n workspace.taskId,\r\n workspace.path,\r\n workspace.createdAt.toISOString(),\r\n workspace.ttlHours,\r\n workspace.maxSizeBytes,\r\n '{}'\r\n );\r\n } catch (error) {\r\n logger.error('Error inserting workspace', { error: String(error) });\r\n }\r\n }\r\n\r\n /**\r\n * Record cleanup operation\r\n */\r\n private recordCleanup(\r\n workspaceId: string,\r\n options: CleanupOptions,\r\n sizeFreed: number,\r\n filesRemoved: number\r\n ): void {\r\n if (!this.db) return;\r\n\r\n try {\r\n const stmt = this.db.prepare(`\r\n INSERT INTO cleanup_history\r\n (workspace_id, cleaned_at, reason, size_freed, files_removed, metadata)\r\n VALUES (?, ?, ?, ?, ?, ?)\r\n `);\r\n stmt.run(\r\n workspaceId,\r\n new Date().toISOString(),\r\n options.reason,\r\n sizeFreed,\r\n filesRemoved,\r\n options.metadata ? JSON.stringify(options.metadata) : null\r\n );\r\n } catch (error) {\r\n logger.error('Error recording cleanup', { error: String(error) });\r\n }\r\n }\r\n\r\n /**\r\n * Load existing workspaces from filesystem\r\n */\r\n private async loadExistingWorkspaces(): Promise<void> {\r\n try {\r\n const entries = await fs.readdir(this.config.workspaceRoot, { withFileTypes: true });\r\n\r\n for (const entry of entries) {\r\n if (!entry.isDirectory()) continue;\r\n\r\n try {\r\n const stats = await fs.stat(entry.path);\r\n const size = await this.getDirectorySize(entry.path);\r\n\r\n const workspace: Workspace = {\r\n id: randomUUID(),\r\n agentId: entry.name.split('-')[0],\r\n taskId: entry.name.split('-')[1],\r\n path: entry.path,\r\n createdAt: stats.birthtime || stats.mtime,\r\n ttlHours: this.config.defaultTtlHours || 24,\r\n maxSizeBytes: this.config.maxWorkspaceSizeBytes || 1024 * 1024 * 1024,\r\n sizeBytes: size,\r\n fileCount: await this.countFiles(entry.path),\r\n exceedsLimit: size > (this.config.maxWorkspaceSizeBytes || 1024 * 1024 * 1024),\r\n };\r\n\r\n this.workspaces.set(workspace.id, workspace);\r\n } catch (error) {\r\n logger.warn('Error loading workspace', { path: entry.path, error: String(error) });\r\n }\r\n }\r\n\r\n logger.info('Loaded existing workspaces', { count: this.workspaces.size });\r\n } catch (error) {\r\n logger.warn('Error loading workspaces', { error: String(error) });\r\n }\r\n }\r\n\r\n /**\r\n * Get directory size in bytes\r\n */\r\n private async getDirectorySize(dir: string): Promise<number> {\r\n try {\r\n const entries = await fs.readdir(dir, { recursive: true, withFileTypes: false });\r\n let totalSize = 0;\r\n\r\n for (const file of entries as string[]) {\r\n try {\r\n const filePath = path.join(dir, file);\r\n const stats = await fs.stat(filePath).catch(() => null);\r\n if (stats?.isFile()) {\r\n totalSize += stats.size;\r\n }\r\n } catch (e) {\r\n // Ignore inaccessible files\r\n }\r\n }\r\n\r\n return totalSize;\r\n } catch (error) {\r\n return 0;\r\n }\r\n }\r\n\r\n /**\r\n * Count files in directory\r\n */\r\n private async countFiles(dir: string): Promise<number> {\r\n try {\r\n const entries = await fs.readdir(dir, { recursive: true, withFileTypes: false });\r\n return Array.isArray(entries) ? entries.length : 0;\r\n } catch (error) {\r\n return 0;\r\n }\r\n }\r\n\r\n /**\r\n * Preserve artifacts during cleanup\r\n */\r\n private async preserveArtifacts(\r\n workspacePath: string,\r\n preservePatterns: string[],\r\n destination?: string\r\n ): Promise<number> {\r\n if (!destination) {\r\n return 0;\r\n }\r\n\r\n try {\r\n const destDir = path.resolve(destination);\r\n await fs.mkdir(destDir, { recursive: true });\r\n\r\n let sizeFreed = 0;\r\n\r\n for (const pattern of preservePatterns) {\r\n const files = await this.globFiles(workspacePath, pattern);\r\n\r\n for (const file of files) {\r\n const relativePath = path.relative(workspacePath, file);\r\n const destPath = path.join(destDir, relativePath);\r\n await fs.mkdir(path.dirname(destPath), { recursive: true });\r\n await fs.copyFile(file, destPath);\r\n\r\n const stats = await fs.stat(file);\r\n sizeFreed += stats.size;\r\n }\r\n }\r\n\r\n return sizeFreed;\r\n } catch (error) {\r\n logger.warn('Error preserving artifacts', { error: String(error) });\r\n return 0;\r\n }\r\n }\r\n\r\n /**\r\n * Simple glob file matching\r\n */\r\n private async globFiles(dir: string, pattern: string): Promise<string[]> {\r\n try {\r\n const entries = await fs.readdir(dir, { recursive: true, withFileTypes: true });\r\n const files: string[] = [];\r\n\r\n for (const entry of entries) {\r\n if (entry.isFile && this.matchesPattern(entry.name, pattern)) {\r\n files.push(path.join(dir, entry.name));\r\n }\r\n }\r\n\r\n return files;\r\n } catch (error) {\r\n return [];\r\n }\r\n }\r\n\r\n /**\r\n * Match filename against glob pattern\r\n */\r\n private matchesPattern(filename: string, pattern: string): boolean {\r\n // Simple glob matching (* and ?)\r\n const regex = pattern\r\n .replace(/\\./g, '\\\\.')\r\n .replace(/\\*/g, '.*')\r\n .replace(/\\?/g, '.');\r\n return new RegExp(`^${regex}$`).test(filename);\r\n }\r\n\r\n /**\r\n * Sanitize path component to prevent traversal attacks\r\n */\r\n private sanitizePath(pathComponent: string): string {\r\n // Remove any path separators and traversal sequences\r\n return pathComponent\r\n .replace(/[\\/\\\\]/g, '_') // Replace path separators\r\n .replace(/\\.\\./g, '__') // Replace .. sequences\r\n .replace(/\\./g, '_') // Replace dots\r\n .substring(0, 100); // Limit length\r\n }\r\n\r\n /**\r\n * Start background TTL cleanup scheduler\r\n */\r\n private startCleanupScheduler(): void {\r\n const intervalMs = (this.config.cleanupIntervalMinutes || 60) * 60 * 1000;\r\n\r\n this.cleanupInterval = setInterval(async () => {\r\n try {\r\n const stats = await this.enforceRetentionPolicy();\r\n if (stats.cleanedCount > 0) {\r\n logger.info('Background TTL cleanup completed', {\r\n cleanedCount: stats.cleanedCount,\r\n totalFreed: stats.totalSizeFreed,\r\n });\r\n }\r\n } catch (error) {\r\n logger.error('Error in TTL cleanup scheduler', { error: String(error) });\r\n }\r\n }, intervalMs);\r\n }\r\n}\r\n\r\nexport default WorkspaceSupervisor;\r\n"],"names":["fs","path","randomUUID","Database","createLogger","createError","ErrorCode","logger","WorkspaceSupervisor","config","db","cleanupInterval","workspaces","Map","maxWorkspaceSizeBytes","defaultTtlHours","cleanupIntervalMinutes","initialize","mkdir","workspaceRoot","recursive","dbPath","databasePath","join","createSchema","loadExistingWorkspaces","startCleanupScheduler","info","maxSize","defaultTtl","error","String","CONFIGURATION_ERROR","cause","shutdown","clearInterval","close","createWorkspace","workspaceId","sanitizedAgentId","sanitizePath","agentId","sanitizedTaskId","taskId","workspacePath","normalize","relPath","relative","startsWith","VALIDATION_FAILED","workspace","id","createdAt","Date","ttlHours","maxSizeBytes","sizeBytes","fileCount","exceedsLimit","insertWorkspace","set","FILE_WRITE_FAILED","cleanupWorkspace","options","get","warn","cleanedCount","totalSizeFreed","filesRemoved","sizeFreed","currentSize","getDirectorySize","catch","currentFileCount","countFiles","preserveArtifacts","length","artifactDestination","rm","force","recordCleanup","delete","reason","getStaleWorkspaces","stale","now","values","ageMs","getTime","ttlMs","push","enforceRetentionPolicy","staleWorkspaces","totalCleaned","totalFreed","totalFilesRemoved","stats","preservePatterns","updateWorkspaceMetadata","metadata","stmt","prepare","run","JSON","stringify","getWorkspaceInfo","undefined","stat","getCleanupHistory","rows","all","map","row","cleanedAt","cleaned_at","size_freed","files_removed","parse","getStatistics","totalDiskUsage","staleCount","size","e","totalWorkspaces","activeWorkspaces","exec","toISOString","entries","readdir","withFileTypes","entry","isDirectory","name","split","birthtime","mtime","count","dir","totalSize","file","filePath","isFile","Array","isArray","destination","destDir","resolve","pattern","files","globFiles","relativePath","destPath","dirname","copyFile","matchesPattern","filename","regex","replace","RegExp","test","pathComponent","substring","intervalMs","setInterval"],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Edge Case Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Defines the schema for edge case tracking, deduplication, and feedback loop management.
|
|
5
|
+
*/ /**
|
|
6
|
+
* Edge Case Types
|
|
7
|
+
*/ export var EdgeCaseType = /*#__PURE__*/ function(EdgeCaseType) {
|
|
8
|
+
EdgeCaseType["SYNTAX_ERROR"] = "syntax_error";
|
|
9
|
+
EdgeCaseType["LOGIC_ERROR"] = "logic_error";
|
|
10
|
+
EdgeCaseType["TIMEOUT"] = "timeout";
|
|
11
|
+
EdgeCaseType["DATA_VALIDATION"] = "data_validation";
|
|
12
|
+
EdgeCaseType["SYSTEM_ERROR"] = "system_error";
|
|
13
|
+
return EdgeCaseType;
|
|
14
|
+
}({});
|
|
15
|
+
/**
|
|
16
|
+
* Edge Case Categories
|
|
17
|
+
*/ export var EdgeCaseCategory = /*#__PURE__*/ function(EdgeCaseCategory) {
|
|
18
|
+
EdgeCaseCategory["SKILL_EXECUTION"] = "skill_execution";
|
|
19
|
+
EdgeCaseCategory["DATABASE_OPERATION"] = "database_operation";
|
|
20
|
+
EdgeCaseCategory["COORDINATION"] = "coordination";
|
|
21
|
+
EdgeCaseCategory["FILE_OPERATION"] = "file_operation";
|
|
22
|
+
EdgeCaseCategory["API_CALL"] = "api_call";
|
|
23
|
+
return EdgeCaseCategory;
|
|
24
|
+
}({});
|
|
25
|
+
/**
|
|
26
|
+
* Edge Case Priority Levels
|
|
27
|
+
*/ export var EdgeCasePriority = /*#__PURE__*/ function(EdgeCasePriority) {
|
|
28
|
+
EdgeCasePriority["CRITICAL"] = "critical";
|
|
29
|
+
EdgeCasePriority["HIGH"] = "high";
|
|
30
|
+
EdgeCasePriority["MEDIUM"] = "medium";
|
|
31
|
+
EdgeCasePriority["LOW"] = "low"; // Rare
|
|
32
|
+
return EdgeCasePriority;
|
|
33
|
+
}({});
|
|
34
|
+
/**
|
|
35
|
+
* Edge Case Status in Feedback Loop
|
|
36
|
+
*/ export var EdgeCaseStatus = /*#__PURE__*/ function(EdgeCaseStatus) {
|
|
37
|
+
EdgeCaseStatus["NEW"] = "new";
|
|
38
|
+
EdgeCaseStatus["INVESTIGATING"] = "investigating";
|
|
39
|
+
EdgeCaseStatus["RESOLVED"] = "resolved";
|
|
40
|
+
EdgeCaseStatus["CLOSED"] = "closed";
|
|
41
|
+
EdgeCaseStatus["WONT_FIX"] = "wont_fix";
|
|
42
|
+
return EdgeCaseStatus;
|
|
43
|
+
}({});
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=edge-case.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/edge-case.ts"],"sourcesContent":["/**\r\n * Edge Case Type Definitions\r\n *\r\n * Defines the schema for edge case tracking, deduplication, and feedback loop management.\r\n */\r\n\r\n/**\r\n * Edge Case Types\r\n */\r\nexport enum EdgeCaseType {\r\n SYNTAX_ERROR = 'syntax_error',\r\n LOGIC_ERROR = 'logic_error',\r\n TIMEOUT = 'timeout',\r\n DATA_VALIDATION = 'data_validation',\r\n SYSTEM_ERROR = 'system_error'\r\n}\r\n\r\n/**\r\n * Edge Case Categories\r\n */\r\nexport enum EdgeCaseCategory {\r\n SKILL_EXECUTION = 'skill_execution',\r\n DATABASE_OPERATION = 'database_operation',\r\n COORDINATION = 'coordination',\r\n FILE_OPERATION = 'file_operation',\r\n API_CALL = 'api_call'\r\n}\r\n\r\n/**\r\n * Edge Case Priority Levels\r\n */\r\nexport enum EdgeCasePriority {\r\n CRITICAL = 'critical', // Blocking production\r\n HIGH = 'high', // Frequent occurrence\r\n MEDIUM = 'medium', // Occasional\r\n LOW = 'low' // Rare\r\n}\r\n\r\n/**\r\n * Edge Case Status in Feedback Loop\r\n */\r\nexport enum EdgeCaseStatus {\r\n NEW = 'new',\r\n INVESTIGATING = 'investigating',\r\n RESOLVED = 'resolved',\r\n CLOSED = 'closed',\r\n WONT_FIX = 'wont_fix'\r\n}\r\n\r\n/**\r\n * Edge Case Input (for recording new cases)\r\n */\r\nexport interface EdgeCaseInput {\r\n type: EdgeCaseType;\r\n category: EdgeCaseCategory;\r\n context: any; // JSON with error details\r\n}\r\n\r\n/**\r\n * Complete Edge Case Record\r\n */\r\nexport interface EdgeCase {\r\n id: string;\r\n signature: string; // SHA-256(type + context)\r\n type: EdgeCaseType;\r\n category: EdgeCaseCategory;\r\n priority: EdgeCasePriority;\r\n context: any; // JSON with error details\r\n status: EdgeCaseStatus;\r\n firstOccurred: Date;\r\n lastOccurred: Date;\r\n occurrenceCount: number;\r\n assignedExpert?: string;\r\n resolvedAt?: Date;\r\n resolution?: string;\r\n}\r\n\r\n/**\r\n * Edge Case Resolution Information\r\n */\r\nexport interface EdgeCaseResolution {\r\n description: string;\r\n fixedInCommit?: string;\r\n verificationTest?: string;\r\n notes?: string;\r\n}\r\n\r\n/**\r\n * Edge Case Notification\r\n */\r\nexport interface EdgeCaseNotification {\r\n id: string;\r\n edgeCaseId: string;\r\n priority: EdgeCasePriority;\r\n type: EdgeCaseType;\r\n category: EdgeCaseCategory;\r\n message: string;\r\n createdAt: Date;\r\n sentAt?: Date;\r\n channel: 'slack' | 'email';\r\n}\r\n\r\n/**\r\n * Edge Case Analytics\r\n */\r\nexport interface EdgeCaseAnalytics {\r\n totalCases: number;\r\n resolvedCases: number;\r\n resolutionRate: number;\r\n avgResolutionTimeHours: number;\r\n casesByPriority: Record<EdgeCasePriority, number>;\r\n casesByCategory: Record<EdgeCaseCategory, number>;\r\n casesByType: Record<EdgeCaseType, number>;\r\n topEdgeCases: Array<{\r\n id: string;\r\n signature: string;\r\n type: EdgeCaseType;\r\n category: EdgeCaseCategory;\r\n occurrenceCount: number;\r\n priority: EdgeCasePriority;\r\n }>;\r\n}\r\n\r\n/**\r\n * Edge Case Tracker Configuration\r\n */\r\nexport interface EdgeCaseTrackerConfig {\r\n dbPath: string;\r\n notificationConfig: {\r\n slack?: {\r\n enabled: boolean;\r\n webhookUrl?: string;\r\n };\r\n email?: {\r\n enabled: boolean;\r\n recipients?: string[];\r\n smtpConfig?: {\r\n host: string;\r\n port: number;\r\n secure: boolean;\r\n auth: {\r\n user: string;\r\n pass: string;\r\n };\r\n };\r\n };\r\n };\r\n autoCloseAfterDays?: number; // Default: 7\r\n notificationThrottleMinutes?: number; // Default: 60\r\n}\r\n\r\n/**\r\n * Query Options for Top Edge Cases\r\n */\r\nexport interface TopEdgeCasesQuery {\r\n limit?: number;\r\n orderBy?: 'frequency' | 'recent' | 'priority';\r\n category?: EdgeCaseCategory;\r\n type?: EdgeCaseType;\r\n status?: EdgeCaseStatus;\r\n}\r\n"],"names":["EdgeCaseType","EdgeCaseCategory","EdgeCasePriority","EdgeCaseStatus"],"mappings":"AAAA;;;;CAIC,GAED;;CAEC,GACD,OAAO,IAAA,AAAKA,sCAAAA;;;;;;WAAAA;MAMX;AAED;;CAEC,GACD,OAAO,IAAA,AAAKC,0CAAAA;;;;;;WAAAA;MAMX;AAED;;CAEC,GACD,OAAO,IAAA,AAAKC,0CAAAA;;;;qCAIc,OAAO;WAJrBA;MAKX;AAED;;CAEC,GACD,OAAO,IAAA,AAAKC,wCAAAA;;;;;;WAAAA;MAMX"}
|
package/package.json
CHANGED
|
@@ -1,177 +1,201 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "claude-flow-novice",
|
|
3
|
-
"version": "2.15.
|
|
4
|
-
"description": "AI agent orchestration framework with namespace-isolated skills, agents, and CFN Loop validation. Safe installation with ~0.01% collision risk.",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"type": "module",
|
|
7
|
-
"bin": {
|
|
8
|
-
"claude-flow-novice": "dist/cli/index.js",
|
|
9
|
-
"cfn-init": "scripts/init-project.js",
|
|
10
|
-
"cfn-spawn": "dist/cli/spawn.js",
|
|
11
|
-
"cfn-loop": "dist/cli/cfn-loop.js",
|
|
12
|
-
"cfn-swarm": "dist/cli/cfn-swarm.js",
|
|
13
|
-
"cfn-portal": "dist/cli/cfn-portal.js",
|
|
14
|
-
"cfn-context": "dist/cli/cfn-context.js",
|
|
15
|
-
"cfn-metrics": "dist/cli/cfn-metrics.js",
|
|
16
|
-
"cfn-redis": "dist/cli/cfn-redis.js"
|
|
17
|
-
},
|
|
18
|
-
"files": [
|
|
19
|
-
"dist/",
|
|
20
|
-
"claude-assets/",
|
|
21
|
-
".claude/skills/
|
|
22
|
-
".claude/skills/cfn-
|
|
23
|
-
".claude/skills/cfn-agent-
|
|
24
|
-
".claude/skills/cfn-agent-
|
|
25
|
-
".claude/skills/cfn-agent-
|
|
26
|
-
".claude/skills/cfn-agent-
|
|
27
|
-
".claude/skills/cfn-agent-spawning/",
|
|
28
|
-
".claude/skills/cfn-docker-
|
|
29
|
-
".claude/skills/cfn-docker-
|
|
30
|
-
".claude/skills/cfn-docker-
|
|
31
|
-
".claude/skills/cfn-
|
|
32
|
-
".claude/skills/cfn-
|
|
33
|
-
".claude/skills/cfn-
|
|
34
|
-
".claude/skills/cfn-
|
|
35
|
-
".claude/skills/cfn-
|
|
36
|
-
".claude/skills/cfn-
|
|
37
|
-
".claude/skills/cfn-
|
|
38
|
-
".claude/skills/cfn-
|
|
39
|
-
".claude/skills/cfn-
|
|
40
|
-
".claude/skills/cfn-
|
|
41
|
-
".claude/skills/
|
|
42
|
-
".claude/skills/
|
|
43
|
-
".claude/skills/cfn-
|
|
44
|
-
".claude/skills/cfn-
|
|
45
|
-
".claude/skills/cfn-
|
|
46
|
-
".claude/skills/cfn-
|
|
47
|
-
".claude/skills/cfn-
|
|
48
|
-
".claude/skills/cfn-
|
|
49
|
-
".claude/skills/cfn-
|
|
50
|
-
".claude/
|
|
51
|
-
".claude/
|
|
52
|
-
".claude/
|
|
53
|
-
".claude/cfn-
|
|
54
|
-
"
|
|
55
|
-
"scripts
|
|
56
|
-
"scripts
|
|
57
|
-
"!scripts
|
|
58
|
-
"!scripts
|
|
59
|
-
"
|
|
60
|
-
"tools/
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
|
|
87
|
-
"
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
"
|
|
94
|
-
|
|
95
|
-
"
|
|
96
|
-
"build": "
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"test": "jest",
|
|
100
|
-
"test:cfn-v3": "bash tests/cfn-v3-orchestration/run-full-suite.sh",
|
|
101
|
-
"test:cfn-v3:connections": "node tests/cfn-v3-orchestration/tests/02-worker-connections.test.js",
|
|
102
|
-
"test:cfn-v3:confidence": "node tests/cfn-v3-orchestration/tests/03-confidence-scores.test.js",
|
|
103
|
-
"test:cfn-v3:handoffs": "node tests/cfn-v3-orchestration/tests/04-handoff-coordination.test.js",
|
|
104
|
-
"test:cfn-v3:dataflow": "node tests/cfn-v3-orchestration/tests/05-data-flow.test.js",
|
|
105
|
-
"test:cfn-v3:shutdown": "node tests/cfn-v3-orchestration/tests/06-graceful-shutdown.test.js",
|
|
106
|
-
"typecheck": "tsc --noEmit",
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"
|
|
110
|
-
"
|
|
111
|
-
"
|
|
112
|
-
"portal:
|
|
113
|
-
"portal:
|
|
114
|
-
"
|
|
115
|
-
"
|
|
116
|
-
"
|
|
117
|
-
"
|
|
118
|
-
"
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
"
|
|
122
|
-
"
|
|
123
|
-
"
|
|
124
|
-
"docker:
|
|
125
|
-
"docker:
|
|
126
|
-
"
|
|
127
|
-
"
|
|
128
|
-
"
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
"
|
|
132
|
-
"
|
|
133
|
-
"
|
|
134
|
-
"
|
|
135
|
-
"
|
|
136
|
-
"
|
|
137
|
-
"
|
|
138
|
-
"
|
|
139
|
-
"
|
|
140
|
-
"
|
|
141
|
-
"
|
|
142
|
-
"
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
"
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
"
|
|
151
|
-
"
|
|
152
|
-
"
|
|
153
|
-
"
|
|
154
|
-
"
|
|
155
|
-
"
|
|
156
|
-
"
|
|
157
|
-
"
|
|
158
|
-
"
|
|
159
|
-
"
|
|
160
|
-
"
|
|
161
|
-
"
|
|
162
|
-
"
|
|
163
|
-
"
|
|
164
|
-
"
|
|
165
|
-
"
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
"
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
"
|
|
174
|
-
"
|
|
175
|
-
"
|
|
176
|
-
|
|
177
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "claude-flow-novice",
|
|
3
|
+
"version": "2.15.4",
|
|
4
|
+
"description": "AI agent orchestration framework with namespace-isolated skills, agents, and CFN Loop validation. Safe installation with ~0.01% collision risk.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"claude-flow-novice": "dist/cli/index.js",
|
|
9
|
+
"cfn-init": "scripts/init-project.js",
|
|
10
|
+
"cfn-spawn": "dist/cli/spawn.js",
|
|
11
|
+
"cfn-loop": "dist/cli/cfn-loop.js",
|
|
12
|
+
"cfn-swarm": "dist/cli/cfn-swarm.js",
|
|
13
|
+
"cfn-portal": "dist/cli/cfn-portal.js",
|
|
14
|
+
"cfn-context": "dist/cli/cfn-context.js",
|
|
15
|
+
"cfn-metrics": "dist/cli/cfn-metrics.js",
|
|
16
|
+
"cfn-redis": "dist/cli/cfn-redis.js"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist/",
|
|
20
|
+
"claude-assets/",
|
|
21
|
+
".claude/skills/cfn-ace-system/",
|
|
22
|
+
".claude/skills/cfn-agent-discovery/",
|
|
23
|
+
".claude/skills/cfn-agent-execution/",
|
|
24
|
+
".claude/skills/cfn-agent-output-processing/",
|
|
25
|
+
".claude/skills/cfn-agent-selector/",
|
|
26
|
+
".claude/skills/cfn-agent-spawning/",
|
|
27
|
+
".claude/skills/cfn-docker-agent-spawning/",
|
|
28
|
+
".claude/skills/cfn-docker-loop-orchestration/",
|
|
29
|
+
".claude/skills/cfn-docker-redis-coordination/",
|
|
30
|
+
".claude/skills/cfn-docker-skill-mcp-selection/",
|
|
31
|
+
".claude/skills/cfn-analytics/",
|
|
32
|
+
".claude/skills/cfn-backlog-management/",
|
|
33
|
+
".claude/skills/cfn-changelog-management/",
|
|
34
|
+
".claude/skills/cfn-checkpoint-state/",
|
|
35
|
+
".claude/skills/cfn-config-management/",
|
|
36
|
+
".claude/skills/cfn-event-bus/",
|
|
37
|
+
".claude/skills/cfn-fleet-manager/",
|
|
38
|
+
".claude/skills/cfn-hook-pipeline/",
|
|
39
|
+
".claude/skills/cfn-hybrid-routing/",
|
|
40
|
+
".claude/skills/cfn-loop-orchestration/",
|
|
41
|
+
".claude/skills/pre-edit-backup/",
|
|
42
|
+
".claude/skills/cfn-loop-validation/",
|
|
43
|
+
".claude/skills/cfn-process-lifecycle/",
|
|
44
|
+
".claude/skills/cfn-product-owner-decision/",
|
|
45
|
+
".claude/skills/cfn-redis-coordination/",
|
|
46
|
+
".claude/skills/cfn-sqlite-memory/",
|
|
47
|
+
".claude/skills/cfn-test-execution/",
|
|
48
|
+
".claude/skills/cfn-transparency-middleware/",
|
|
49
|
+
".claude/skills/cfn-webapp-testing/",
|
|
50
|
+
".claude/hooks/cfn-*",
|
|
51
|
+
".claude/commands/",
|
|
52
|
+
".claude/cfn-data/",
|
|
53
|
+
".claude/cfn-extras/",
|
|
54
|
+
"scripts/init-project.js",
|
|
55
|
+
"scripts/*.sh",
|
|
56
|
+
"!scripts/test-*.sh",
|
|
57
|
+
"!scripts/*-validation.cjs",
|
|
58
|
+
"!scripts/deployment/",
|
|
59
|
+
"tools/simple-complexity.sh",
|
|
60
|
+
"tools/install-lizard.sh",
|
|
61
|
+
"README.md",
|
|
62
|
+
"LICENSE",
|
|
63
|
+
".claude/root-claude-distribute/CFN-CLAUDE.md"
|
|
64
|
+
],
|
|
65
|
+
"keywords": [
|
|
66
|
+
"ai",
|
|
67
|
+
"agent",
|
|
68
|
+
"orchestration",
|
|
69
|
+
"multi-agent",
|
|
70
|
+
"coordination",
|
|
71
|
+
"redis",
|
|
72
|
+
"cfn-loop",
|
|
73
|
+
"skills",
|
|
74
|
+
"automation",
|
|
75
|
+
"cli",
|
|
76
|
+
"consensus",
|
|
77
|
+
"validation",
|
|
78
|
+
"docker",
|
|
79
|
+
"containers",
|
|
80
|
+
"memory-leaks",
|
|
81
|
+
"concurrent-execution"
|
|
82
|
+
],
|
|
83
|
+
"author": "Claude Flow Novice Team",
|
|
84
|
+
"license": "MIT",
|
|
85
|
+
"repository": {
|
|
86
|
+
"type": "git",
|
|
87
|
+
"url": "git+https://github.com/yourusername/claude-flow-novice.git"
|
|
88
|
+
},
|
|
89
|
+
"bugs": {
|
|
90
|
+
"url": "https://github.com/yourusername/claude-flow-novice/issues"
|
|
91
|
+
},
|
|
92
|
+
"homepage": "https://github.com/yourusername/claude-flow-novice#readme",
|
|
93
|
+
"scripts": {
|
|
94
|
+
"dev": "tsx src/cli/index.ts",
|
|
95
|
+
"build": "npm run clean && npm run build:swc",
|
|
96
|
+
"build:swc": "swc src -d dist --config-file .swcrc --ignore '**/*.test.ts' --ignore '**/*.test.tsx' --ignore '**/*.spec.ts'",
|
|
97
|
+
"clean": "rm -rf dist",
|
|
98
|
+
"test": "jest",
|
|
99
|
+
"test:skills": "jest skill-markdown-validator.test.ts",
|
|
100
|
+
"test:cfn-v3": "bash tests/cfn-v3-orchestration/run-full-suite.sh",
|
|
101
|
+
"test:cfn-v3:connections": "node tests/cfn-v3-orchestration/tests/02-worker-connections.test.js",
|
|
102
|
+
"test:cfn-v3:confidence": "node tests/cfn-v3-orchestration/tests/03-confidence-scores.test.js",
|
|
103
|
+
"test:cfn-v3:handoffs": "node tests/cfn-v3-orchestration/tests/04-handoff-coordination.test.js",
|
|
104
|
+
"test:cfn-v3:dataflow": "node tests/cfn-v3-orchestration/tests/05-data-flow.test.js",
|
|
105
|
+
"test:cfn-v3:shutdown": "node tests/cfn-v3-orchestration/tests/06-graceful-shutdown.test.js",
|
|
106
|
+
"typecheck": "tsc --noEmit",
|
|
107
|
+
"prepack": "npm run build && npm run copy-claude-assets",
|
|
108
|
+
"copy-claude-assets": "rm -rf claude-assets && mkdir -p claude-assets && cp -r .claude/agents claude-assets/ && cp -r .claude/skills claude-assets/ && cp -r .claude/hooks claude-assets/ && cp -r .claude/commands claude-assets/ && cp -r .claude/cfn-extras claude-assets/ && cp -r .claude/root-claude-distribute claude-assets/",
|
|
109
|
+
"postinstall": "node scripts/init-project.js",
|
|
110
|
+
"verify-package": "npm pack --dry-run",
|
|
111
|
+
"portal:start": "./scripts/start-portal.sh",
|
|
112
|
+
"portal:stop": "./scripts/stop-portal.sh",
|
|
113
|
+
"portal:restart": "npm run portal:stop && npm run portal:start",
|
|
114
|
+
"lint:skills": "tsx scripts/lint-skill-markdown.ts",
|
|
115
|
+
"lint:skills:strict": "tsx scripts/lint-skill-markdown.ts --strict",
|
|
116
|
+
"migrate:skills": "tsx scripts/migrate-skill-markdown.ts --all",
|
|
117
|
+
"migrate:skills:dry-run": "tsx scripts/migrate-skill-markdown.ts --all --dry-run",
|
|
118
|
+
"portal:status": "./scripts/portal-status.sh",
|
|
119
|
+
"test:watch": "jest --watch",
|
|
120
|
+
"test:coverage": "jest --coverage",
|
|
121
|
+
"test:integration": "jest tests/integration --maxWorkers=4",
|
|
122
|
+
"test:performance": "jest tests/performance --maxWorkers=2",
|
|
123
|
+
"test:load": "jest tests/load-testing --maxWorkers=2 --testTimeout=30000",
|
|
124
|
+
"docker:build": "docker build -f Dockerfile.production -t claude-flow-novice:production .",
|
|
125
|
+
"docker:deploy": "./scripts/deploy-production.sh",
|
|
126
|
+
"docker:stop": "docker-compose -f docker-compose.production.yml down",
|
|
127
|
+
"docker:logs": "docker-compose -f docker-compose.production.yml logs -f",
|
|
128
|
+
"docker:status": "docker-compose -f docker-compose.production.yml ps",
|
|
129
|
+
"docker:test": "node tests/docker/production-deployment-test.js",
|
|
130
|
+
"docker:orchestrator": "node tests/docker/production-agent-orchestrator.js",
|
|
131
|
+
"docker:env-sync": "tsx scripts/generate-cfn-runtime-env.ts",
|
|
132
|
+
"test:docker:redis-coordination": "node tests/docker/cfn-coordination-test.js",
|
|
133
|
+
"test:docker:concurrent": "node tests/hello-world/concurrent-agent-test.js",
|
|
134
|
+
"test:docker:container": "bash tests/docker/container-test-runner.sh",
|
|
135
|
+
"migrate-configs": "tsx scripts/migrate-configs.ts",
|
|
136
|
+
"db:migrate": "tsx scripts/migrations/migrate.ts",
|
|
137
|
+
"db:migrate:dry-run": "tsx scripts/migrations/migrate.ts --dry-run",
|
|
138
|
+
"db:rollback": "tsx scripts/migrations/rollback.ts",
|
|
139
|
+
"db:rollback:dry-run": "tsx scripts/migrations/rollback.ts --dry-run",
|
|
140
|
+
"db:migrations:list": "tsx scripts/migrations/list-migrations.ts",
|
|
141
|
+
"db:migrations:validate": "tsx scripts/migrations/validate.ts",
|
|
142
|
+
"db:migrations:history": "tsx scripts/migrations/history.ts"
|
|
143
|
+
},
|
|
144
|
+
"dependencies": {
|
|
145
|
+
"@anthropic-ai/sdk": "^0.67.0",
|
|
146
|
+
"@types/chokidar": "^1.7.5",
|
|
147
|
+
"@types/jsonwebtoken": "^9.0.10",
|
|
148
|
+
"ajv": "^8.17.1",
|
|
149
|
+
"ajv-formats": "^3.0.1",
|
|
150
|
+
"better-sqlite3": "^12.4.1",
|
|
151
|
+
"chalk": "^4.1.2",
|
|
152
|
+
"chokidar": "^3.6.0",
|
|
153
|
+
"commander": "^11.1.0",
|
|
154
|
+
"dotenv": "^17.2.3",
|
|
155
|
+
"express": "^5.1.0",
|
|
156
|
+
"glob": "^11.0.3",
|
|
157
|
+
"ioredis": "^5.8.2",
|
|
158
|
+
"js-yaml": "^4.1.1",
|
|
159
|
+
"jsonwebtoken": "^9.0.2",
|
|
160
|
+
"lodash": "^4.17.21",
|
|
161
|
+
"redis": "^5.8.3",
|
|
162
|
+
"socket.io": "^4.8.1",
|
|
163
|
+
"sqlite": "^5.1.1",
|
|
164
|
+
"sqlite3": "^5.1.7",
|
|
165
|
+
"uuid": "^10.0.0"
|
|
166
|
+
},
|
|
167
|
+
"engines": {
|
|
168
|
+
"node": ">=18.0.0"
|
|
169
|
+
},
|
|
170
|
+
"devDependencies": {
|
|
171
|
+
"@jest/globals": "^30.2.0",
|
|
172
|
+
"@swc/cli": "^0.1.62",
|
|
173
|
+
"@swc/core": "^1.3.0",
|
|
174
|
+
"@types/ajv": "^0.0.5",
|
|
175
|
+
"@types/glob": "^8.1.0",
|
|
176
|
+
"@types/ioredis": "^4.28.10",
|
|
177
|
+
"@types/jest": "^30.0.0",
|
|
178
|
+
"@types/lodash": "^4.17.20",
|
|
179
|
+
"@types/pg": "^8.15.6",
|
|
180
|
+
"@types/sqlite3": "^3.1.11",
|
|
181
|
+
"@types/uuid": "^10.0.0",
|
|
182
|
+
"@types/yaml": "^1.9.6",
|
|
183
|
+
"jest": "^30.2.0",
|
|
184
|
+
"jest-mock-extended": "^4.0.0",
|
|
185
|
+
"pg": "^8.16.3",
|
|
186
|
+
"pixelmatch": "^7.1.0",
|
|
187
|
+
"playwright": "^1.56.1",
|
|
188
|
+
"pngjs": "^7.0.0",
|
|
189
|
+
"redis-mock": "^0.56.3",
|
|
190
|
+
"socket.io-client": "^4.8.1",
|
|
191
|
+
"supertest": "^7.1.4",
|
|
192
|
+
"ts-jest": "^29.4.5",
|
|
193
|
+
"tsx": "^4.7.0",
|
|
194
|
+
"typescript": "^5.6.3"
|
|
195
|
+
},
|
|
196
|
+
"directories": {
|
|
197
|
+
"doc": "docs",
|
|
198
|
+
"example": "examples",
|
|
199
|
+
"test": "tests"
|
|
200
|
+
}
|
|
201
|
+
}
|
package/readme/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# Claude Flow Novice v2.
|
|
1
|
+
# Claude Flow Novice v2.16.0 Documentation
|
|
2
2
|
|
|
3
|
-
**Version:** 2.
|
|
4
|
-
**Last Updated:** 2025-
|
|
3
|
+
**Version:** 2.16.0 (Integration Standardization)
|
|
4
|
+
**Last Updated:** 2025-11-17
|
|
5
5
|
|
|
6
6
|
**Package Metrics**:
|
|
7
7
|
- 2.4 MB unpacked
|
|
@@ -106,7 +106,14 @@ npx claude-flow-novice swarm "Task Description" \
|
|
|
106
106
|
- **[Deprecated MCP Logs](deprecated-logs-mcp.md)** - Historical MCP implementation
|
|
107
107
|
- **[v1 Documentation](../legacy/readme-v1/)** - Previous documentation version
|
|
108
108
|
|
|
109
|
-
## Key Features (v2)
|
|
109
|
+
## Key Features (v2.16.0)
|
|
110
|
+
|
|
111
|
+
### Integration Standardization (NEW - 90% Complete)
|
|
112
|
+
- **Skill Lifecycle Automation**: Deploy, version, promote skills with single command
|
|
113
|
+
- **Cross-Database Transactions**: Coordinated PostgreSQL + SQLite + Redis operations
|
|
114
|
+
- **File System Standardization**: Unified backups, logging, state persistence
|
|
115
|
+
- **Edge Case Auto-Patching**: Feedback loop generates patches from test failures
|
|
116
|
+
- **Data Format Harmonization**: Consistent JSON schemas across all skill outputs
|
|
110
117
|
|
|
111
118
|
### Skills-First Architecture
|
|
112
119
|
- **Modular Skills**: Independently maintainable, testable capabilities
|
|
@@ -159,6 +166,14 @@ npx claude-flow-novice swarm "Task Description" \
|
|
|
159
166
|
- **Memory Safety**: ANTI-023 protection prevents memory leaks in Task Mode
|
|
160
167
|
- **Enhanced Coordinators**: Progress tracking, recovery capabilities, multi-layer enforcement
|
|
161
168
|
|
|
169
|
+
**v2.16.0 Changes (Integration Standardization - PR #16):**
|
|
170
|
+
- **Skill Lifecycle Management**: Automated deployment, versioning, promotion workflows
|
|
171
|
+
- **Cross-Database Integration**: Transaction coordinator for PostgreSQL/SQLite/Redis
|
|
172
|
+
- **File System Standardization**: Unified backup, logging, state persistence patterns
|
|
173
|
+
- **Edge Case Feedback Loop**: Auto-generates patches from test failures
|
|
174
|
+
- **Data Format Harmonization**: JSON schema validation across 43+ skills
|
|
175
|
+
- **27/30 Tasks Complete**: 90% integration standardization implementation
|
|
176
|
+
|
|
162
177
|
See [CHANGELOG.md](CHANGELOG.md) and [CFN Loop Task Mode Guide](claude-assets/commands/CFN_LOOP_TASK_MODE.md) for migration details.
|
|
163
178
|
|
|
164
179
|
## Support
|