fivocell 1.0.0 → 1.0.2
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/LICENSE +202 -98
- package/README.md +418 -180
- package/dist/cli.js +698 -80
- package/dist/cli.js.map +1 -1
- package/dist/core/__tests__/ab-test-framework.test.d.ts +2 -0
- package/dist/core/__tests__/ab-test-framework.test.d.ts.map +1 -0
- package/dist/core/__tests__/ab-test-framework.test.js +43 -0
- package/dist/core/__tests__/ab-test-framework.test.js.map +1 -0
- package/dist/core/__tests__/ai-memory.test.d.ts +2 -0
- package/dist/core/__tests__/ai-memory.test.d.ts.map +1 -0
- package/dist/core/__tests__/ai-memory.test.js +143 -0
- package/dist/core/__tests__/ai-memory.test.js.map +1 -0
- package/dist/core/__tests__/ast-extractor.test.d.ts +2 -0
- package/dist/core/__tests__/ast-extractor.test.d.ts.map +1 -0
- package/dist/core/__tests__/ast-extractor.test.js +30 -0
- package/dist/core/__tests__/ast-extractor.test.js.map +1 -0
- package/dist/core/__tests__/build-failure-predictor.test.d.ts +2 -0
- package/dist/core/__tests__/build-failure-predictor.test.d.ts.map +1 -0
- package/dist/core/__tests__/build-failure-predictor.test.js +76 -0
- package/dist/core/__tests__/build-failure-predictor.test.js.map +1 -0
- package/dist/core/__tests__/chapter3-verify.test.d.ts +2 -0
- package/dist/core/__tests__/chapter3-verify.test.d.ts.map +1 -0
- package/dist/core/__tests__/chapter3-verify.test.js +315 -0
- package/dist/core/__tests__/chapter3-verify.test.js.map +1 -0
- package/dist/core/__tests__/chapter4-hostile.test.d.ts +11 -0
- package/dist/core/__tests__/chapter4-hostile.test.d.ts.map +1 -0
- package/dist/core/__tests__/chapter4-hostile.test.js +269 -0
- package/dist/core/__tests__/chapter4-hostile.test.js.map +1 -0
- package/dist/core/__tests__/chapter4-verify.test.d.ts +2 -0
- package/dist/core/__tests__/chapter4-verify.test.d.ts.map +1 -0
- package/dist/core/__tests__/chapter4-verify.test.js +349 -0
- package/dist/core/__tests__/chapter4-verify.test.js.map +1 -0
- package/dist/core/__tests__/chapter8-hostile.test.d.ts +2 -0
- package/dist/core/__tests__/chapter8-hostile.test.d.ts.map +1 -0
- package/dist/core/__tests__/chapter8-hostile.test.js +445 -0
- package/dist/core/__tests__/chapter8-hostile.test.js.map +1 -0
- package/dist/core/__tests__/chapter9-hostile.test.d.ts +2 -0
- package/dist/core/__tests__/chapter9-hostile.test.d.ts.map +1 -0
- package/dist/core/__tests__/chapter9-hostile.test.js +783 -0
- package/dist/core/__tests__/chapter9-hostile.test.js.map +1 -0
- package/dist/core/__tests__/circular-dependency-detector.test.d.ts +2 -0
- package/dist/core/__tests__/circular-dependency-detector.test.d.ts.map +1 -0
- package/dist/core/__tests__/circular-dependency-detector.test.js +55 -0
- package/dist/core/__tests__/circular-dependency-detector.test.js.map +1 -0
- package/dist/core/__tests__/community-full.test.d.ts +2 -0
- package/dist/core/__tests__/community-full.test.d.ts.map +1 -0
- package/dist/core/__tests__/community-full.test.js +70 -0
- package/dist/core/__tests__/community-full.test.js.map +1 -0
- package/dist/core/__tests__/community-live.test.d.ts +2 -0
- package/dist/core/__tests__/community-live.test.d.ts.map +1 -0
- package/dist/core/__tests__/community-live.test.js +67 -0
- package/dist/core/__tests__/community-live.test.js.map +1 -0
- package/dist/core/__tests__/complexity-analyzer.test.d.ts +2 -0
- package/dist/core/__tests__/complexity-analyzer.test.d.ts.map +1 -0
- package/dist/core/__tests__/complexity-analyzer.test.js +54 -0
- package/dist/core/__tests__/complexity-analyzer.test.js.map +1 -0
- package/dist/core/__tests__/config-attribution.test.d.ts +2 -0
- package/dist/core/__tests__/config-attribution.test.d.ts.map +1 -0
- package/dist/core/__tests__/config-attribution.test.js +45 -0
- package/dist/core/__tests__/config-attribution.test.js.map +1 -0
- package/dist/core/__tests__/conflict-detector.test.d.ts +2 -0
- package/dist/core/__tests__/conflict-detector.test.d.ts.map +1 -0
- package/dist/core/__tests__/conflict-detector.test.js +120 -0
- package/dist/core/__tests__/conflict-detector.test.js.map +1 -0
- package/dist/core/__tests__/context-restore.test.d.ts +2 -0
- package/dist/core/__tests__/context-restore.test.d.ts.map +1 -0
- package/dist/core/__tests__/context-restore.test.js +75 -0
- package/dist/core/__tests__/context-restore.test.js.map +1 -0
- package/dist/core/__tests__/convention-detector.test.d.ts +2 -0
- package/dist/core/__tests__/convention-detector.test.d.ts.map +1 -0
- package/dist/core/__tests__/convention-detector.test.js +97 -0
- package/dist/core/__tests__/convention-detector.test.js.map +1 -0
- package/dist/core/__tests__/cost-optimizer.test.d.ts +1 -0
- package/dist/core/__tests__/cost-optimizer.test.d.ts.map +1 -0
- package/dist/core/__tests__/cost-optimizer.test.js +92 -0
- package/dist/core/__tests__/cost-optimizer.test.js.map +1 -0
- package/dist/core/__tests__/cross-domain-projections.test.d.ts +2 -0
- package/dist/core/__tests__/cross-domain-projections.test.d.ts.map +1 -0
- package/dist/core/__tests__/cross-domain-projections.test.js +36 -0
- package/dist/core/__tests__/cross-domain-projections.test.js.map +1 -0
- package/dist/core/__tests__/cross-project-sync.test.d.ts +2 -0
- package/dist/core/__tests__/cross-project-sync.test.d.ts.map +1 -0
- package/dist/core/__tests__/cross-project-sync.test.js +67 -0
- package/dist/core/__tests__/cross-project-sync.test.js.map +1 -0
- package/dist/core/__tests__/dead-code-detector.test.d.ts +2 -0
- package/dist/core/__tests__/dead-code-detector.test.d.ts.map +1 -0
- package/dist/core/__tests__/dead-code-detector.test.js +41 -0
- package/dist/core/__tests__/dead-code-detector.test.js.map +1 -0
- package/dist/core/__tests__/dependency-health-checker.test.d.ts +2 -0
- package/dist/core/__tests__/dependency-health-checker.test.d.ts.map +1 -0
- package/dist/core/__tests__/dependency-health-checker.test.js +50 -0
- package/dist/core/__tests__/dependency-health-checker.test.js.map +1 -0
- package/dist/core/__tests__/duplication-detector.test.d.ts +2 -0
- package/dist/core/__tests__/duplication-detector.test.d.ts.map +1 -0
- package/dist/core/__tests__/duplication-detector.test.js +46 -0
- package/dist/core/__tests__/duplication-detector.test.js.map +1 -0
- package/dist/core/__tests__/error-predictor.test.d.ts +2 -0
- package/dist/core/__tests__/error-predictor.test.d.ts.map +1 -0
- package/dist/core/__tests__/error-predictor.test.js +65 -0
- package/dist/core/__tests__/error-predictor.test.js.map +1 -0
- package/dist/core/__tests__/explainability.test.d.ts +2 -0
- package/dist/core/__tests__/explainability.test.d.ts.map +1 -0
- package/dist/core/__tests__/explainability.test.js +112 -0
- package/dist/core/__tests__/explainability.test.js.map +1 -0
- package/dist/core/__tests__/failure-memory.test.d.ts +2 -0
- package/dist/core/__tests__/failure-memory.test.d.ts.map +1 -0
- package/dist/core/__tests__/failure-memory.test.js +124 -0
- package/dist/core/__tests__/failure-memory.test.js.map +1 -0
- package/dist/core/__tests__/git-branch-pregenerator.test.d.ts +2 -0
- package/dist/core/__tests__/git-branch-pregenerator.test.d.ts.map +1 -0
- package/dist/core/__tests__/git-branch-pregenerator.test.js +44 -0
- package/dist/core/__tests__/git-branch-pregenerator.test.js.map +1 -0
- package/dist/core/__tests__/handoff-detector.test.d.ts +2 -0
- package/dist/core/__tests__/handoff-detector.test.d.ts.map +1 -0
- package/dist/core/__tests__/handoff-detector.test.js +71 -0
- package/dist/core/__tests__/handoff-detector.test.js.map +1 -0
- package/dist/core/__tests__/interruption-recovery.test.d.ts +2 -0
- package/dist/core/__tests__/interruption-recovery.test.d.ts.map +1 -0
- package/dist/core/__tests__/interruption-recovery.test.js +66 -0
- package/dist/core/__tests__/interruption-recovery.test.js.map +1 -0
- package/dist/core/__tests__/knowledge-graph.test.d.ts +1 -0
- package/dist/core/__tests__/knowledge-graph.test.d.ts.map +1 -0
- package/dist/core/__tests__/knowledge-graph.test.js +124 -0
- package/dist/core/__tests__/knowledge-graph.test.js.map +1 -0
- package/dist/core/__tests__/knowledge-silo-detector.test.d.ts +2 -0
- package/dist/core/__tests__/knowledge-silo-detector.test.d.ts.map +1 -0
- package/dist/core/__tests__/knowledge-silo-detector.test.js +77 -0
- package/dist/core/__tests__/knowledge-silo-detector.test.js.map +1 -0
- package/dist/core/__tests__/language-switch-assistant.test.d.ts +2 -0
- package/dist/core/__tests__/language-switch-assistant.test.d.ts.map +1 -0
- package/dist/core/__tests__/language-switch-assistant.test.js +34 -0
- package/dist/core/__tests__/language-switch-assistant.test.js.map +1 -0
- package/dist/core/__tests__/marketplace.test.d.ts +2 -0
- package/dist/core/__tests__/marketplace.test.d.ts.map +1 -0
- package/dist/core/__tests__/marketplace.test.js +96 -0
- package/dist/core/__tests__/marketplace.test.js.map +1 -0
- package/dist/core/__tests__/merge-conflict-predictor.test.d.ts +2 -0
- package/dist/core/__tests__/merge-conflict-predictor.test.d.ts.map +1 -0
- package/dist/core/__tests__/merge-conflict-predictor.test.js +36 -0
- package/dist/core/__tests__/merge-conflict-predictor.test.js.map +1 -0
- package/dist/core/__tests__/next-action-predictor.test.d.ts +2 -0
- package/dist/core/__tests__/next-action-predictor.test.d.ts.map +1 -0
- package/dist/core/__tests__/next-action-predictor.test.js +57 -0
- package/dist/core/__tests__/next-action-predictor.test.js.map +1 -0
- package/dist/core/__tests__/offline-queue.test.d.ts +2 -0
- package/dist/core/__tests__/offline-queue.test.d.ts.map +1 -0
- package/dist/core/__tests__/offline-queue.test.js +84 -0
- package/dist/core/__tests__/offline-queue.test.js.map +1 -0
- package/dist/core/__tests__/organization-memory.test.d.ts +2 -0
- package/dist/core/__tests__/organization-memory.test.d.ts.map +1 -0
- package/dist/core/__tests__/organization-memory.test.js +89 -0
- package/dist/core/__tests__/organization-memory.test.js.map +1 -0
- package/dist/core/__tests__/pattern-utils.test.d.ts +2 -0
- package/dist/core/__tests__/pattern-utils.test.d.ts.map +1 -0
- package/dist/core/__tests__/pattern-utils.test.js +52 -0
- package/dist/core/__tests__/pattern-utils.test.js.map +1 -0
- package/dist/core/__tests__/performance-predictor.test.d.ts +2 -0
- package/dist/core/__tests__/performance-predictor.test.d.ts.map +1 -0
- package/dist/core/__tests__/performance-predictor.test.js +60 -0
- package/dist/core/__tests__/performance-predictor.test.js.map +1 -0
- package/dist/core/__tests__/playbook-generator.test.d.ts +2 -0
- package/dist/core/__tests__/playbook-generator.test.d.ts.map +1 -0
- package/dist/core/__tests__/playbook-generator.test.js +94 -0
- package/dist/core/__tests__/playbook-generator.test.js.map +1 -0
- package/dist/core/__tests__/pr-review-assistant.test.d.ts +2 -0
- package/dist/core/__tests__/pr-review-assistant.test.d.ts.map +1 -0
- package/dist/core/__tests__/pr-review-assistant.test.js +35 -0
- package/dist/core/__tests__/pr-review-assistant.test.js.map +1 -0
- package/dist/core/__tests__/privacy-manager.test.d.ts +2 -0
- package/dist/core/__tests__/privacy-manager.test.d.ts.map +1 -0
- package/dist/core/__tests__/privacy-manager.test.js +97 -0
- package/dist/core/__tests__/privacy-manager.test.js.map +1 -0
- package/dist/core/__tests__/project-dna.test.d.ts +2 -0
- package/dist/core/__tests__/project-dna.test.d.ts.map +1 -0
- package/dist/core/__tests__/project-dna.test.js +135 -0
- package/dist/core/__tests__/project-dna.test.js.map +1 -0
- package/dist/core/__tests__/regex-extractor.test.d.ts +2 -0
- package/dist/core/__tests__/regex-extractor.test.d.ts.map +1 -0
- package/dist/core/__tests__/regex-extractor.test.js +49 -0
- package/dist/core/__tests__/regex-extractor.test.js.map +1 -0
- package/dist/core/__tests__/reputation.test.d.ts +2 -0
- package/dist/core/__tests__/reputation.test.d.ts.map +1 -0
- package/dist/core/__tests__/reputation.test.js +100 -0
- package/dist/core/__tests__/reputation.test.js.map +1 -0
- package/dist/core/__tests__/security-predictor.test.d.ts +2 -0
- package/dist/core/__tests__/security-predictor.test.d.ts.map +1 -0
- package/dist/core/__tests__/security-predictor.test.js +60 -0
- package/dist/core/__tests__/security-predictor.test.js.map +1 -0
- package/dist/core/__tests__/signal-capture.test.d.ts +2 -0
- package/dist/core/__tests__/signal-capture.test.d.ts.map +1 -0
- package/dist/core/__tests__/signal-capture.test.js +98 -0
- package/dist/core/__tests__/signal-capture.test.js.map +1 -0
- package/dist/core/__tests__/solution-index.test.d.ts +2 -0
- package/dist/core/__tests__/solution-index.test.d.ts.map +1 -0
- package/dist/core/__tests__/solution-index.test.js +78 -0
- package/dist/core/__tests__/solution-index.test.js.map +1 -0
- package/dist/core/__tests__/standup-generator.test.d.ts +2 -0
- package/dist/core/__tests__/standup-generator.test.d.ts.map +1 -0
- package/dist/core/__tests__/standup-generator.test.js +46 -0
- package/dist/core/__tests__/standup-generator.test.js.map +1 -0
- package/dist/core/__tests__/team-composer.test.d.ts +2 -0
- package/dist/core/__tests__/team-composer.test.d.ts.map +1 -0
- package/dist/core/__tests__/team-composer.test.js +113 -0
- package/dist/core/__tests__/team-composer.test.js.map +1 -0
- package/dist/core/__tests__/test-anticipator.test.d.ts +2 -0
- package/dist/core/__tests__/test-anticipator.test.d.ts.map +1 -0
- package/dist/core/__tests__/test-anticipator.test.js +41 -0
- package/dist/core/__tests__/test-anticipator.test.js.map +1 -0
- package/dist/core/__tests__/time-saved.test.d.ts +1 -0
- package/dist/core/__tests__/time-saved.test.d.ts.map +1 -0
- package/dist/core/__tests__/time-saved.test.js +93 -0
- package/dist/core/__tests__/time-saved.test.js.map +1 -0
- package/dist/core/__tests__/validation-run.test.d.ts +7 -0
- package/dist/core/__tests__/validation-run.test.d.ts.map +1 -0
- package/dist/core/__tests__/validation-run.test.js +510 -0
- package/dist/core/__tests__/validation-run.test.js.map +1 -0
- package/dist/core/__tests__/workflow-outcome-graph.test.d.ts +2 -0
- package/dist/core/__tests__/workflow-outcome-graph.test.d.ts.map +1 -0
- package/dist/core/__tests__/workflow-outcome-graph.test.js +89 -0
- package/dist/core/__tests__/workflow-outcome-graph.test.js.map +1 -0
- package/dist/core/ai-memory.d.ts +84 -0
- package/dist/core/ai-memory.d.ts.map +1 -0
- package/dist/core/ai-memory.js +238 -0
- package/dist/core/ai-memory.js.map +1 -0
- package/dist/core/architecture-engine.d.ts +104 -0
- package/dist/core/architecture-engine.d.ts.map +1 -0
- package/dist/core/architecture-engine.js +216 -0
- package/dist/core/architecture-engine.js.map +1 -0
- package/dist/core/ast-differ.d.ts +15 -0
- package/dist/core/ast-differ.d.ts.map +1 -0
- package/dist/core/ast-differ.js +528 -0
- package/dist/core/ast-differ.js.map +1 -0
- package/dist/core/ast-extractor.d.ts +1 -1
- package/dist/core/ast-extractor.d.ts.map +1 -1
- package/dist/core/ast-extractor.js +7 -5
- package/dist/core/ast-extractor.js.map +1 -1
- package/dist/core/backend-engine.d.ts +40 -0
- package/dist/core/backend-engine.d.ts.map +1 -0
- package/dist/core/backend-engine.js +131 -0
- package/dist/core/backend-engine.js.map +1 -0
- package/dist/core/blind-spot-engine.d.ts +29 -0
- package/dist/core/blind-spot-engine.d.ts.map +1 -0
- package/dist/core/blind-spot-engine.js +579 -0
- package/dist/core/blind-spot-engine.js.map +1 -0
- package/dist/core/build-failure-predictor.d.ts +4 -0
- package/dist/core/build-failure-predictor.d.ts.map +1 -1
- package/dist/core/build-failure-predictor.js +111 -58
- package/dist/core/build-failure-predictor.js.map +1 -1
- package/dist/core/cell-store.d.ts +72 -0
- package/dist/core/cell-store.d.ts.map +1 -0
- package/dist/core/cell-store.js +171 -0
- package/dist/core/cell-store.js.map +1 -0
- package/dist/core/community-advanced-engine.d.ts +30 -0
- package/dist/core/community-advanced-engine.d.ts.map +1 -0
- package/dist/core/community-advanced-engine.js +103 -0
- package/dist/core/community-advanced-engine.js.map +1 -0
- package/dist/core/community-engine.d.ts +62 -0
- package/dist/core/community-engine.d.ts.map +1 -0
- package/dist/core/community-engine.js +194 -0
- package/dist/core/community-engine.js.map +1 -0
- package/dist/core/community-full.d.ts +2 -3
- package/dist/core/community-full.d.ts.map +1 -1
- package/dist/core/community-full.js +2 -5
- package/dist/core/community-full.js.map +1 -1
- package/dist/core/community-intelligence.d.ts +169 -0
- package/dist/core/community-intelligence.d.ts.map +1 -0
- package/dist/core/community-intelligence.js +527 -0
- package/dist/core/community-intelligence.js.map +1 -0
- package/dist/core/community-live.d.ts +1 -0
- package/dist/core/community-live.d.ts.map +1 -1
- package/dist/core/community-live.js +9 -6
- package/dist/core/community-live.js.map +1 -1
- package/dist/core/community-prior.d.ts +1 -0
- package/dist/core/community-prior.d.ts.map +1 -1
- package/dist/core/community-prior.js +18 -10
- package/dist/core/community-prior.js.map +1 -1
- package/dist/core/confidence-engine.d.ts +2 -3
- package/dist/core/confidence-engine.d.ts.map +1 -1
- package/dist/core/confidence-engine.js +29 -32
- package/dist/core/confidence-engine.js.map +1 -1
- package/dist/core/conflict-detector.js +1 -1
- package/dist/core/conflict-detector.js.map +1 -1
- package/dist/core/convention-detector.d.ts +37 -0
- package/dist/core/convention-detector.d.ts.map +1 -0
- package/dist/core/convention-detector.js +189 -0
- package/dist/core/convention-detector.js.map +1 -0
- package/dist/core/cost-optimizer.d.ts +78 -0
- package/dist/core/cost-optimizer.d.ts.map +1 -0
- package/dist/core/cost-optimizer.js +257 -0
- package/dist/core/cost-optimizer.js.map +1 -0
- package/dist/core/cross-domain-projections.js +2 -2
- package/dist/core/cross-layer-intelligence.d.ts +375 -0
- package/dist/core/cross-layer-intelligence.d.ts.map +1 -0
- package/dist/core/cross-layer-intelligence.js +690 -0
- package/dist/core/cross-layer-intelligence.js.map +1 -0
- package/dist/core/developer-profile.d.ts +6 -0
- package/dist/core/developer-profile.d.ts.map +1 -0
- package/dist/core/developer-profile.js +78 -0
- package/dist/core/developer-profile.js.map +1 -0
- package/dist/core/error-predictor.d.ts +5 -2
- package/dist/core/error-predictor.d.ts.map +1 -1
- package/dist/core/error-predictor.js +124 -40
- package/dist/core/error-predictor.js.map +1 -1
- package/dist/core/explainability.d.ts +33 -0
- package/dist/core/explainability.d.ts.map +1 -0
- package/dist/core/explainability.js +131 -0
- package/dist/core/explainability.js.map +1 -0
- package/dist/core/extraction-cascade.d.ts +19 -5
- package/dist/core/extraction-cascade.d.ts.map +1 -1
- package/dist/core/extraction-cascade.js +86 -15
- package/dist/core/extraction-cascade.js.map +1 -1
- package/dist/core/failure-memory.d.ts +38 -0
- package/dist/core/failure-memory.d.ts.map +1 -0
- package/dist/core/failure-memory.js +113 -0
- package/dist/core/failure-memory.js.map +1 -0
- package/dist/core/frontend-engine.d.ts +40 -0
- package/dist/core/frontend-engine.d.ts.map +1 -0
- package/dist/core/frontend-engine.js +129 -0
- package/dist/core/frontend-engine.js.map +1 -0
- package/dist/core/go-extractor.d.ts +5 -0
- package/dist/core/go-extractor.d.ts.map +1 -0
- package/dist/core/go-extractor.js +68 -0
- package/dist/core/go-extractor.js.map +1 -0
- package/dist/core/identity-resolver.d.ts.map +1 -1
- package/dist/core/identity-resolver.js +16 -31
- package/dist/core/identity-resolver.js.map +1 -1
- package/dist/core/knowledge-graph-engine.d.ts +62 -0
- package/dist/core/knowledge-graph-engine.d.ts.map +1 -0
- package/dist/core/knowledge-graph-engine.js +176 -0
- package/dist/core/knowledge-graph-engine.js.map +1 -0
- package/dist/core/knowledge-graph.d.ts +229 -0
- package/dist/core/knowledge-graph.d.ts.map +1 -0
- package/dist/core/knowledge-graph.js +713 -0
- package/dist/core/knowledge-graph.js.map +1 -0
- package/dist/core/language-switch-assistant.d.ts.map +1 -1
- package/dist/core/language-switch-assistant.js +4 -1
- package/dist/core/language-switch-assistant.js.map +1 -1
- package/dist/core/learning-layer.d.ts +11 -0
- package/dist/core/learning-layer.d.ts.map +1 -0
- package/dist/core/learning-layer.js +25 -0
- package/dist/core/learning-layer.js.map +1 -0
- package/dist/core/marketplace.d.ts +43 -0
- package/dist/core/marketplace.d.ts.map +1 -0
- package/dist/core/marketplace.js +133 -0
- package/dist/core/marketplace.js.map +1 -0
- package/dist/core/memory-store.d.ts +59 -0
- package/dist/core/memory-store.d.ts.map +1 -0
- package/dist/core/memory-store.js +151 -0
- package/dist/core/memory-store.js.map +1 -0
- package/dist/core/naming-engine.d.ts +43 -0
- package/dist/core/naming-engine.d.ts.map +1 -0
- package/dist/core/naming-engine.js +120 -0
- package/dist/core/naming-engine.js.map +1 -0
- package/dist/core/org-intelligence.d.ts +151 -0
- package/dist/core/org-intelligence.d.ts.map +1 -0
- package/dist/core/org-intelligence.js +490 -0
- package/dist/core/org-intelligence.js.map +1 -0
- package/dist/core/organization-memory.d.ts +34 -0
- package/dist/core/organization-memory.d.ts.map +1 -0
- package/dist/core/organization-memory.js +148 -0
- package/dist/core/organization-memory.js.map +1 -0
- package/dist/core/outcome-engine.d.ts +21 -0
- package/dist/core/outcome-engine.d.ts.map +1 -0
- package/dist/core/outcome-engine.js +220 -0
- package/dist/core/outcome-engine.js.map +1 -0
- package/dist/core/outcome-recorder.d.ts +34 -0
- package/dist/core/outcome-recorder.d.ts.map +1 -0
- package/dist/core/outcome-recorder.js +109 -0
- package/dist/core/outcome-recorder.js.map +1 -0
- package/dist/core/outcome-store.d.ts +21 -0
- package/dist/core/outcome-store.d.ts.map +1 -0
- package/dist/core/outcome-store.js +120 -0
- package/dist/core/outcome-store.js.map +1 -0
- package/dist/core/outcome-types.d.ts +64 -0
- package/dist/core/outcome-types.d.ts.map +1 -0
- package/dist/core/outcome-types.js +20 -0
- package/dist/core/outcome-types.js.map +1 -0
- package/dist/core/pattern-classifier.d.ts +11 -0
- package/dist/core/pattern-classifier.d.ts.map +1 -0
- package/dist/core/pattern-classifier.js +82 -0
- package/dist/core/pattern-classifier.js.map +1 -0
- package/dist/core/pattern-lifecycle.d.ts +8 -0
- package/dist/core/pattern-lifecycle.d.ts.map +1 -0
- package/dist/core/pattern-lifecycle.js +25 -0
- package/dist/core/pattern-lifecycle.js.map +1 -0
- package/dist/core/pattern-quality.d.ts +6 -0
- package/dist/core/pattern-quality.d.ts.map +1 -0
- package/dist/core/pattern-quality.js +45 -0
- package/dist/core/pattern-quality.js.map +1 -0
- package/dist/core/pattern-ranking.d.ts +8 -0
- package/dist/core/pattern-ranking.d.ts.map +1 -0
- package/dist/core/pattern-ranking.js +40 -0
- package/dist/core/pattern-ranking.js.map +1 -0
- package/dist/core/pattern-relationships.d.ts +16 -0
- package/dist/core/pattern-relationships.d.ts.map +1 -0
- package/dist/core/pattern-relationships.js +66 -0
- package/dist/core/pattern-relationships.js.map +1 -0
- package/dist/core/pattern-search.d.ts +25 -0
- package/dist/core/pattern-search.d.ts.map +1 -0
- package/dist/core/pattern-search.js +82 -0
- package/dist/core/pattern-search.js.map +1 -0
- package/dist/core/pattern-store.d.ts +18 -3
- package/dist/core/pattern-store.d.ts.map +1 -1
- package/dist/core/pattern-store.js +155 -54
- package/dist/core/pattern-store.js.map +1 -1
- package/dist/core/{enterprise-features.d.ts → pattern-utils.d.ts} +2 -4
- package/dist/core/pattern-utils.d.ts.map +1 -0
- package/dist/core/{enterprise-features.js → pattern-utils.js} +4 -24
- package/dist/core/pattern-utils.js.map +1 -0
- package/dist/core/pattern-validator.d.ts +14 -0
- package/dist/core/pattern-validator.d.ts.map +1 -0
- package/dist/core/pattern-validator.js +47 -0
- package/dist/core/pattern-validator.js.map +1 -0
- package/dist/core/performance-predictor.d.ts +4 -0
- package/dist/core/performance-predictor.d.ts.map +1 -1
- package/dist/core/performance-predictor.js +143 -38
- package/dist/core/performance-predictor.js.map +1 -1
- package/dist/core/platt-calibration.d.ts.map +1 -1
- package/dist/core/platt-calibration.js +5 -3
- package/dist/core/platt-calibration.js.map +1 -1
- package/dist/core/playbook-generator.d.ts +21 -0
- package/dist/core/playbook-generator.d.ts.map +1 -0
- package/dist/core/playbook-generator.js +161 -0
- package/dist/core/playbook-generator.js.map +1 -0
- package/dist/core/privacy-manager.d.ts +43 -0
- package/dist/core/privacy-manager.d.ts.map +1 -0
- package/dist/core/privacy-manager.js +131 -0
- package/dist/core/privacy-manager.js.map +1 -0
- package/dist/core/productivity-engine.d.ts +57 -0
- package/dist/core/productivity-engine.d.ts.map +1 -0
- package/dist/core/productivity-engine.js +138 -0
- package/dist/core/productivity-engine.js.map +1 -0
- package/dist/core/project-dna-types.d.ts +150 -0
- package/dist/core/project-dna-types.d.ts.map +1 -0
- package/dist/core/project-dna-types.js +3 -0
- package/dist/core/project-dna-types.js.map +1 -0
- package/dist/core/project-dna.d.ts +122 -0
- package/dist/core/project-dna.d.ts.map +1 -0
- package/dist/core/project-dna.js +922 -0
- package/dist/core/project-dna.js.map +1 -0
- package/dist/core/python-extractor.d.ts +5 -0
- package/dist/core/python-extractor.d.ts.map +1 -0
- package/dist/core/python-extractor.js +68 -0
- package/dist/core/python-extractor.js.map +1 -0
- package/dist/core/realtime-guardian.d.ts.map +1 -1
- package/dist/core/realtime-guardian.js +1 -3
- package/dist/core/realtime-guardian.js.map +1 -1
- package/dist/core/recommendation-engine.d.ts +9 -0
- package/dist/core/recommendation-engine.d.ts.map +1 -0
- package/dist/core/recommendation-engine.js +152 -0
- package/dist/core/recommendation-engine.js.map +1 -0
- package/dist/core/recommendation-store.d.ts +21 -0
- package/dist/core/recommendation-store.d.ts.map +1 -0
- package/dist/core/recommendation-store.js +125 -0
- package/dist/core/recommendation-store.js.map +1 -0
- package/dist/core/recommendation-types.d.ts +54 -0
- package/dist/core/recommendation-types.d.ts.map +1 -0
- package/dist/core/recommendation-types.js +3 -0
- package/dist/core/recommendation-types.js.map +1 -0
- package/dist/core/regex-extractor.js +1 -1
- package/dist/core/regex-extractor.js.map +1 -1
- package/dist/core/reputation.d.ts +42 -0
- package/dist/core/reputation.d.ts.map +1 -0
- package/dist/core/reputation.js +173 -0
- package/dist/core/reputation.js.map +1 -0
- package/dist/core/scale-tester.d.ts +2 -2
- package/dist/core/scale-tester.d.ts.map +1 -1
- package/dist/core/scale-tester.js +12 -1
- package/dist/core/scale-tester.js.map +1 -1
- package/dist/core/search-engine.d.ts +37 -0
- package/dist/core/search-engine.d.ts.map +1 -0
- package/dist/core/search-engine.js +223 -0
- package/dist/core/search-engine.js.map +1 -0
- package/dist/core/security-predictor.d.ts +2 -1
- package/dist/core/security-predictor.d.ts.map +1 -1
- package/dist/core/security-predictor.js +80 -30
- package/dist/core/security-predictor.js.map +1 -1
- package/dist/core/session-recovery.js +8 -8
- package/dist/core/session-recovery.js.map +1 -1
- package/dist/core/similarity-engine.d.ts +8 -0
- package/dist/core/similarity-engine.d.ts.map +1 -0
- package/dist/core/similarity-engine.js +74 -0
- package/dist/core/similarity-engine.js.map +1 -0
- package/dist/core/structure-engine.d.ts +34 -0
- package/dist/core/structure-engine.d.ts.map +1 -0
- package/dist/core/structure-engine.js +114 -0
- package/dist/core/structure-engine.js.map +1 -0
- package/dist/core/syntax-engine.d.ts +101 -0
- package/dist/core/syntax-engine.d.ts.map +1 -0
- package/dist/core/syntax-engine.js +342 -0
- package/dist/core/syntax-engine.js.map +1 -0
- package/dist/core/team-advanced-engine.d.ts +19 -0
- package/dist/core/team-advanced-engine.d.ts.map +1 -0
- package/dist/core/team-advanced-engine.js +91 -0
- package/dist/core/team-advanced-engine.js.map +1 -0
- package/dist/core/team-engine.d.ts +59 -0
- package/dist/core/team-engine.d.ts.map +1 -0
- package/dist/core/team-engine.js +141 -0
- package/dist/core/team-engine.js.map +1 -0
- package/dist/core/time-saved.d.ts +51 -0
- package/dist/core/time-saved.d.ts.map +1 -0
- package/dist/core/time-saved.js +97 -0
- package/dist/core/time-saved.js.map +1 -0
- package/dist/core/workflow-outcome-graph.d.ts +46 -0
- package/dist/core/workflow-outcome-graph.d.ts.map +1 -0
- package/dist/core/workflow-outcome-graph.js +168 -0
- package/dist/core/workflow-outcome-graph.js.map +1 -0
- package/dist/core/workflow-tracker.d.ts +36 -0
- package/dist/core/workflow-tracker.d.ts.map +1 -0
- package/dist/core/workflow-tracker.js +99 -0
- package/dist/core/workflow-tracker.js.map +1 -0
- package/dist/core/ws-client.d.ts +24 -0
- package/dist/core/ws-client.d.ts.map +1 -0
- package/dist/core/ws-client.js +203 -0
- package/dist/core/ws-client.js.map +1 -0
- package/dist/daemon/lifecycle.d.ts.map +1 -1
- package/dist/daemon/lifecycle.js +9 -10
- package/dist/daemon/lifecycle.js.map +1 -1
- package/dist/daemon/server.d.ts +4 -2
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +886 -73
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/watchdog.js +2 -1
- package/dist/daemon/watchdog.js.map +1 -1
- package/dist/index.d.ts +21 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -4
- package/dist/index.js.map +1 -1
- package/dist/store.d.ts +4 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +47 -0
- package/dist/store.js.map +1 -0
- package/dist/types.d.ts +60 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +13 -2
- package/dist/types.js.map +1 -1
- package/dist/validation/quick-run.d.ts +7 -0
- package/dist/validation/quick-run.d.ts.map +1 -0
- package/dist/validation/quick-run.js +404 -0
- package/dist/validation/quick-run.js.map +1 -0
- package/package.json +87 -53
- package/CHANGELOG.md +0 -32
- package/CONTRIBUTING.md +0 -60
- package/dist/core/cell-pro.d.ts +0 -28
- package/dist/core/cell-pro.d.ts.map +0 -1
- package/dist/core/cell-pro.js +0 -70
- package/dist/core/cell-pro.js.map +0 -1
- package/dist/core/enterprise-features.d.ts.map +0 -1
- package/dist/core/enterprise-features.js.map +0 -1
- package/dist/core/enterprise.d.ts +0 -27
- package/dist/core/enterprise.d.ts.map +0 -1
- package/dist/core/enterprise.js +0 -41
- package/dist/core/enterprise.js.map +0 -1
- package/extensions/jetbrains/plugin.json +0 -9
- package/extensions/shell/copilot-sync.js +0 -59
- package/extensions/shell/install.sh +0 -38
- package/extensions/shell/watcher.js +0 -113
- package/extensions/vscode/.vscodeignore +0 -5
- package/extensions/vscode/dist/daemon-client.js +0 -94
- package/extensions/vscode/dist/diff-tracker.js +0 -94
- package/extensions/vscode/dist/extension.js +0 -100
- package/extensions/vscode/dist/status-bar.js +0 -70
- package/extensions/vscode/package-lock.json +0 -40
- package/extensions/vscode/package.json +0 -27
- package/packages/mcp-server/dist/server.d.ts +0 -2
- package/packages/mcp-server/dist/server.js +0 -213
- package/packages/mcp-server/package-lock.json +0 -970
- package/packages/mcp-server/package.json +0 -19
|
@@ -1,48 +1,98 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.SecurityPredictor = void 0;
|
|
7
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
4
8
|
class SecurityPredictor {
|
|
5
9
|
predict(code) {
|
|
6
10
|
const predictions = [];
|
|
11
|
+
const astPredictions = this.analyzeAst(code);
|
|
12
|
+
predictions.push(...astPredictions);
|
|
7
13
|
const lines = code.split('\n');
|
|
8
14
|
for (let i = 0; i < lines.length; i++) {
|
|
9
15
|
const line = lines[i];
|
|
10
16
|
const lineNum = i + 1;
|
|
11
|
-
const
|
|
12
|
-
if (
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
const alreadyReported = astPredictions.some((p) => p.line === lineNum);
|
|
18
|
+
if (!alreadyReported) {
|
|
19
|
+
const sqlPrediction = this.checkSQLInjection(line, lineNum);
|
|
20
|
+
if (sqlPrediction)
|
|
21
|
+
predictions.push(sqlPrediction);
|
|
22
|
+
const pathPrediction = this.checkPathTraversal(line, lineNum);
|
|
23
|
+
if (pathPrediction)
|
|
24
|
+
predictions.push(pathPrediction);
|
|
25
|
+
const secretPrediction = this.checkHardcodedSecret(line, lineNum);
|
|
26
|
+
if (secretPrediction)
|
|
27
|
+
predictions.push(secretPrediction);
|
|
28
|
+
}
|
|
23
29
|
}
|
|
24
30
|
return predictions;
|
|
25
31
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
severity: 'critical',
|
|
32
|
-
message: 'Potential XSS vulnerability: direct innerHTML assignment',
|
|
33
|
-
sanitizedVersion: line.replace(/innerHTML\s*=\s*(.+)/, 'textContent = DOMPurify.sanitize($1)'),
|
|
34
|
-
};
|
|
32
|
+
analyzeAst(code) {
|
|
33
|
+
const results = [];
|
|
34
|
+
let sourceFile;
|
|
35
|
+
try {
|
|
36
|
+
sourceFile = typescript_1.default.createSourceFile('analyze.tsx', code, typescript_1.default.ScriptTarget.Latest, true, typescript_1.default.ScriptKind.TSX);
|
|
35
37
|
}
|
|
36
|
-
|
|
37
|
-
return
|
|
38
|
-
type: 'xss',
|
|
39
|
-
line: lineNum,
|
|
40
|
-
severity: 'critical',
|
|
41
|
-
message: 'Potential XSS vulnerability: dangerouslySetInnerHTML used',
|
|
42
|
-
sanitizedVersion: '// Replace with: import DOMPurify from "dompurify";\n// Use DOMPurify.sanitize() before setting innerHTML',
|
|
43
|
-
};
|
|
38
|
+
catch {
|
|
39
|
+
return results;
|
|
44
40
|
}
|
|
45
|
-
|
|
41
|
+
this.visitNode(sourceFile, code, results);
|
|
42
|
+
return results;
|
|
43
|
+
}
|
|
44
|
+
visitNode(node, code, results) {
|
|
45
|
+
if (typescript_1.default.isBinaryExpression(node) && node.operatorToken.kind === typescript_1.default.SyntaxKind.EqualsToken) {
|
|
46
|
+
const lhs = node.left;
|
|
47
|
+
const rhs = node.right;
|
|
48
|
+
if (typescript_1.default.isPropertyAccessExpression(lhs) && lhs.name.text === 'innerHTML') {
|
|
49
|
+
const line = typescript_1.default.getLineAndCharacterOfPosition(node.getSourceFile(), node.getStart()).line + 1;
|
|
50
|
+
if (!results.some((r) => r.type === 'xss' && r.line === line)) {
|
|
51
|
+
results.push({
|
|
52
|
+
type: 'xss',
|
|
53
|
+
line,
|
|
54
|
+
severity: 'critical',
|
|
55
|
+
message: 'Potential XSS vulnerability: direct innerHTML assignment',
|
|
56
|
+
sanitizedVersion: code.substring(0, node.getStart()) + 'textContent = DOMPurify.sanitize(' + rhs.getText() + ')' + code.substring(node.getEnd()),
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (typescript_1.default.isJsxAttribute(node) && typescript_1.default.isIdentifier(node.name) && node.name.text === 'dangerouslySetInnerHTML') {
|
|
62
|
+
const line = typescript_1.default.getLineAndCharacterOfPosition(node.getSourceFile(), node.getStart()).line + 1;
|
|
63
|
+
if (!results.some((r) => r.type === 'xss' && r.line === line)) {
|
|
64
|
+
results.push({
|
|
65
|
+
type: 'xss',
|
|
66
|
+
line,
|
|
67
|
+
severity: 'critical',
|
|
68
|
+
message: 'Potential XSS vulnerability: dangerouslySetInnerHTML used',
|
|
69
|
+
sanitizedVersion: '// Use DOMPurify.sanitize() before setting innerHTML',
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (typescript_1.default.isVariableDeclaration(node) || typescript_1.default.isPropertyAssignment(node)) {
|
|
74
|
+
const name = typescript_1.default.isVariableDeclaration(node) && typescript_1.default.isIdentifier(node.name) ? node.name.text
|
|
75
|
+
: typescript_1.default.isPropertyAssignment(node) && typescript_1.default.isIdentifier(node.name) ? node.name.text : null;
|
|
76
|
+
const value = typescript_1.default.isVariableDeclaration(node) ? node.initializer : node.initializer;
|
|
77
|
+
if (name && value && typescript_1.default.isStringLiteral(value)) {
|
|
78
|
+
const secretPatterns = [/^api[_-]?key$/i, /^secret$/i, /^password$/i, /^token$/i, /^(API_KEY|SECRET|PASSWORD|TOKEN)$/];
|
|
79
|
+
const codeText = code.substring(0, node.getStart());
|
|
80
|
+
const usesEnv = /process\.env/.test(codeText) || /import\.meta\.env/.test(codeText);
|
|
81
|
+
if (!usesEnv && secretPatterns.some((p) => p.test(name))) {
|
|
82
|
+
const line = typescript_1.default.getLineAndCharacterOfPosition(node.getSourceFile(), node.getStart()).line + 1;
|
|
83
|
+
if (!results.some((r) => r.type === 'hardcoded_secret' && r.line === line)) {
|
|
84
|
+
results.push({
|
|
85
|
+
type: 'hardcoded_secret',
|
|
86
|
+
line,
|
|
87
|
+
severity: 'critical',
|
|
88
|
+
message: 'Hardcoded secret detected',
|
|
89
|
+
sanitizedVersion: '// FIX: Use environment variable: process.env.SECRET',
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
typescript_1.default.forEachChild(node, (child) => this.visitNode(child, code, results));
|
|
46
96
|
}
|
|
47
97
|
checkSQLInjection(line, lineNum) {
|
|
48
98
|
if (/(?:SELECT|INSERT|UPDATE|DELETE)\s.*\$\{/.test(line) || /(?:SELECT|INSERT|UPDATE|DELETE)\s.*\+/.test(line)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-predictor.js","sourceRoot":"","sources":["../../src/core/security-predictor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"security-predictor.js","sourceRoot":"","sources":["../../src/core/security-predictor.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,22 +57,22 @@ class SessionRecovery {
|
|
|
57
57
|
lastFile = '';
|
|
58
58
|
lastLine = 0;
|
|
59
59
|
intervalId = null;
|
|
60
|
-
previousSigterm =
|
|
61
|
-
previousSigint =
|
|
60
|
+
previousSigterm = [];
|
|
61
|
+
previousSigint = [];
|
|
62
62
|
init(projectPath) {
|
|
63
63
|
if (!fs.existsSync(SNAPSHOT_DIR))
|
|
64
64
|
fs.mkdirSync(SNAPSHOT_DIR, { recursive: true });
|
|
65
65
|
this.currentProject = projectPath;
|
|
66
66
|
this.sessionStart = Date.now();
|
|
67
67
|
this.intervalId = setInterval(() => this.snapshot(), SNAPSHOT_INTERVAL_MS);
|
|
68
|
-
this.previousSigterm = process.listeners('SIGTERM')
|
|
69
|
-
this.previousSigint = process.listeners('SIGINT')
|
|
68
|
+
this.previousSigterm = process.listeners('SIGTERM');
|
|
69
|
+
this.previousSigint = process.listeners('SIGINT');
|
|
70
70
|
process.removeAllListeners('SIGTERM');
|
|
71
71
|
process.removeAllListeners('SIGINT');
|
|
72
|
-
process.once('SIGTERM', () => { this.snapshot();
|
|
73
|
-
|
|
74
|
-
process.once('SIGINT', () => { this.snapshot();
|
|
75
|
-
|
|
72
|
+
process.once('SIGTERM', () => { this.snapshot(); for (const cb of this.previousSigterm)
|
|
73
|
+
cb(); process.exit(0); });
|
|
74
|
+
process.once('SIGINT', () => { this.snapshot(); for (const cb of this.previousSigint)
|
|
75
|
+
cb(); process.exit(0); });
|
|
76
76
|
}
|
|
77
77
|
trackActivity(file, line) { this.lastFile = file; this.lastLine = line; }
|
|
78
78
|
incrementSignals(count = 1) { this.signalCount += count; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-recovery.js","sourceRoot":"","sources":["../../src/core/session-recovery.ts"],"names":[],"mappings":";AAAA,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiGrD,oCAAuF;AACvF,sCAAuG;AACvG,4CAA+F;AAC/F,8CAAiG;AACjG,oCAA+E;AAC/E,8CAAoG;AACpG,gDAAsF;AACtF,oCAAyD;AAtGzD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAEzB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAC3E,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,oBAAoB,GAAG,KAAK,CAAC;AACnC,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAYpD,MAAM,eAAe;IACX,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC1B,WAAW,GAAG,CAAC,CAAC;IAChB,YAAY,GAAG,CAAC,CAAC;IACjB,cAAc,GAAG,EAAE,CAAC;IACpB,QAAQ,GAAG,EAAE,CAAC;IACd,QAAQ,GAAG,CAAC,CAAC;IACb,UAAU,GAA0C,IAAI,CAAC;IACzD,eAAe,
|
|
1
|
+
{"version":3,"file":"session-recovery.js","sourceRoot":"","sources":["../../src/core/session-recovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DeveloperProfile, SimilarityResult } from './recommendation-types';
|
|
2
|
+
export declare class SimilarityEngine {
|
|
3
|
+
private cache;
|
|
4
|
+
private cacheTTL;
|
|
5
|
+
findSimilar(developerId: string, profiles: Map<string, DeveloperProfile>, limit?: number): SimilarityResult[];
|
|
6
|
+
invalidateCache(developerId?: string): void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=similarity-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"similarity-engine.d.ts","sourceRoot":"","sources":["../../src/core/similarity-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAmD5E,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAyE;IACtF,OAAO,CAAC,QAAQ,CAAU;IAE1B,WAAW,CACT,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACvC,KAAK,GAAE,MAAW,GACjB,gBAAgB,EAAE;IAsBrB,eAAe,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;CAO5C"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SimilarityEngine = void 0;
|
|
4
|
+
const LANG_WEIGHT = 0.35;
|
|
5
|
+
const FW_WEIGHT = 0.25;
|
|
6
|
+
const BEHAVIOR_WEIGHT = 0.25;
|
|
7
|
+
const OUTCOME_WEIGHT = 0.15;
|
|
8
|
+
function weightedJaccard(a, b) {
|
|
9
|
+
const allKeys = new Set([...Object.keys(a), ...Object.keys(b)]);
|
|
10
|
+
if (allKeys.size === 0)
|
|
11
|
+
return 0;
|
|
12
|
+
let intersection = 0;
|
|
13
|
+
let union = 0;
|
|
14
|
+
for (const key of allKeys) {
|
|
15
|
+
const va = a[key] || 0;
|
|
16
|
+
const vb = b[key] || 0;
|
|
17
|
+
intersection += Math.min(va, vb);
|
|
18
|
+
union += Math.max(va, vb);
|
|
19
|
+
}
|
|
20
|
+
return intersection / union;
|
|
21
|
+
}
|
|
22
|
+
function scalarSimilarity(a, b) {
|
|
23
|
+
return 1 - Math.abs(a - b);
|
|
24
|
+
}
|
|
25
|
+
function computeSimilarity(a, b) {
|
|
26
|
+
const langSim = weightedJaccard(a.languages, b.languages);
|
|
27
|
+
const fwSim = weightedJaccard(a.frameworks, b.frameworks);
|
|
28
|
+
const behaviorSim = scalarSimilarity(a.patternAcceptanceRate, b.patternAcceptanceRate);
|
|
29
|
+
const outcomeSim = scalarSimilarity(a.successRate, b.successRate);
|
|
30
|
+
const score = langSim * LANG_WEIGHT +
|
|
31
|
+
fwSim * FW_WEIGHT +
|
|
32
|
+
behaviorSim * BEHAVIOR_WEIGHT +
|
|
33
|
+
outcomeSim * OUTCOME_WEIGHT;
|
|
34
|
+
const commonLanguages = Object.keys(a.languages).filter((l) => b.languages[l]);
|
|
35
|
+
const commonFrameworks = Object.keys(a.frameworks).filter((f) => b.frameworks[f]);
|
|
36
|
+
return {
|
|
37
|
+
developerId: b.developerId,
|
|
38
|
+
score: Math.round(score * 10000) / 10000,
|
|
39
|
+
commonLanguages,
|
|
40
|
+
commonFrameworks,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
class SimilarityEngine {
|
|
44
|
+
cache = new Map();
|
|
45
|
+
cacheTTL = 60_000;
|
|
46
|
+
findSimilar(developerId, profiles, limit = 30) {
|
|
47
|
+
const cached = this.cache.get(developerId);
|
|
48
|
+
if (cached && Date.now() - cached.timestamp < this.cacheTTL) {
|
|
49
|
+
return cached.results.slice(0, limit);
|
|
50
|
+
}
|
|
51
|
+
const target = profiles.get(developerId);
|
|
52
|
+
if (!target)
|
|
53
|
+
return [];
|
|
54
|
+
const results = [];
|
|
55
|
+
for (const [id, profile] of profiles) {
|
|
56
|
+
if (id === developerId)
|
|
57
|
+
continue;
|
|
58
|
+
results.push(computeSimilarity(target, profile));
|
|
59
|
+
}
|
|
60
|
+
results.sort((a, b) => b.score - a.score);
|
|
61
|
+
this.cache.set(developerId, { results, timestamp: Date.now() });
|
|
62
|
+
return results.slice(0, limit);
|
|
63
|
+
}
|
|
64
|
+
invalidateCache(developerId) {
|
|
65
|
+
if (developerId) {
|
|
66
|
+
this.cache.delete(developerId);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
this.cache.clear();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.SimilarityEngine = SimilarityEngine;
|
|
74
|
+
//# sourceMappingURL=similarity-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"similarity-engine.js","sourceRoot":"","sources":["../../src/core/similarity-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface StructureData {
|
|
2
|
+
version: number;
|
|
3
|
+
updated: number;
|
|
4
|
+
avgFileSize: number;
|
|
5
|
+
filesAnalyzed: number;
|
|
6
|
+
avgFunctionLength: number;
|
|
7
|
+
functionsAnalyzed: number;
|
|
8
|
+
nestingDepth: {
|
|
9
|
+
average: number;
|
|
10
|
+
max: number;
|
|
11
|
+
deepFunctions: number;
|
|
12
|
+
};
|
|
13
|
+
earlyReturns: {
|
|
14
|
+
percentage: number;
|
|
15
|
+
total: number;
|
|
16
|
+
withEarlyReturn: number;
|
|
17
|
+
};
|
|
18
|
+
guardClauses: {
|
|
19
|
+
percentage: number;
|
|
20
|
+
total: number;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export declare class StructureEngine {
|
|
24
|
+
private store;
|
|
25
|
+
private data;
|
|
26
|
+
constructor(cellDir?: string);
|
|
27
|
+
analyze(code: string): {
|
|
28
|
+
functionsFound: number;
|
|
29
|
+
};
|
|
30
|
+
getSummary(): string[];
|
|
31
|
+
private extractBody;
|
|
32
|
+
private calcDepth;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=structure-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structure-engine.d.ts","sourceRoot":"","sources":["../../src/core/structure-engine.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,YAAY,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7E,YAAY,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACrD;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,IAAI,CAAgB;gBAEhB,OAAO,CAAC,EAAE,MAAM;IAe5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE;IAkDjD,UAAU,IAAI,MAAM,EAAE;IAStB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,SAAS;CASlB"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StructureEngine = void 0;
|
|
4
|
+
const cell_store_1 = require("./cell-store");
|
|
5
|
+
class StructureEngine {
|
|
6
|
+
store;
|
|
7
|
+
data;
|
|
8
|
+
constructor(cellDir) {
|
|
9
|
+
this.store = new cell_store_1.CellStore(cellDir);
|
|
10
|
+
this.data = this.store.read('structure.json', 'personal', 'style') || {
|
|
11
|
+
version: 1,
|
|
12
|
+
updated: Date.now(),
|
|
13
|
+
avgFileSize: 0,
|
|
14
|
+
filesAnalyzed: 0,
|
|
15
|
+
avgFunctionLength: 0,
|
|
16
|
+
functionsAnalyzed: 0,
|
|
17
|
+
nestingDepth: { average: 0, max: 0, deepFunctions: 0 },
|
|
18
|
+
earlyReturns: { percentage: 0, total: 0, withEarlyReturn: 0 },
|
|
19
|
+
guardClauses: { percentage: 0, total: 0 },
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
analyze(code) {
|
|
23
|
+
if (!code || code.length < 20)
|
|
24
|
+
return { functionsFound: 0 };
|
|
25
|
+
const lines = code.split('\n');
|
|
26
|
+
const fileSize = lines.length;
|
|
27
|
+
// File size
|
|
28
|
+
const prevTotal = this.data.avgFileSize * this.data.filesAnalyzed;
|
|
29
|
+
this.data.filesAnalyzed++;
|
|
30
|
+
this.data.avgFileSize = Math.round((prevTotal + fileSize) / this.data.filesAnalyzed);
|
|
31
|
+
// Functions
|
|
32
|
+
const funcMatches = code.match(/(?:function\s+\w+|const\s+\w+\s*=\s*(?:async\s*)?\([^)]*\)\s*=>\s*\{|async\s+function\s+\w+)/g);
|
|
33
|
+
if (!funcMatches)
|
|
34
|
+
return { functionsFound: 0 };
|
|
35
|
+
for (const func of funcMatches) {
|
|
36
|
+
const funcBody = this.extractBody(code, code.indexOf(func));
|
|
37
|
+
if (!funcBody)
|
|
38
|
+
continue;
|
|
39
|
+
const funcLines = funcBody.split('\n').length;
|
|
40
|
+
const prevAvg = this.data.avgFunctionLength * this.data.functionsAnalyzed;
|
|
41
|
+
this.data.functionsAnalyzed++;
|
|
42
|
+
this.data.avgFunctionLength = Math.round((prevAvg + funcLines) / this.data.functionsAnalyzed);
|
|
43
|
+
// Nesting depth
|
|
44
|
+
const depth = this.calcDepth(funcBody);
|
|
45
|
+
if (depth > this.data.nestingDepth.max)
|
|
46
|
+
this.data.nestingDepth.max = depth;
|
|
47
|
+
const prevDepth = this.data.nestingDepth.average * (this.data.functionsAnalyzed - 1);
|
|
48
|
+
this.data.nestingDepth.average = Math.round((prevDepth + depth) / this.data.functionsAnalyzed);
|
|
49
|
+
if (depth > 4)
|
|
50
|
+
this.data.nestingDepth.deepFunctions++;
|
|
51
|
+
// Early returns
|
|
52
|
+
this.data.earlyReturns.total++;
|
|
53
|
+
const bodyStart = funcBody.indexOf('{');
|
|
54
|
+
const firstStmt = funcBody.slice(bodyStart + 1, bodyStart + 80).trim();
|
|
55
|
+
if (/^if\b/.test(firstStmt) && /\breturn\b/.test(funcBody.slice(bodyStart, bodyStart + 200))) {
|
|
56
|
+
this.data.earlyReturns.withEarlyReturn++;
|
|
57
|
+
}
|
|
58
|
+
this.data.earlyReturns.percentage = Math.round(this.data.earlyReturns.withEarlyReturn / this.data.earlyReturns.total * 100);
|
|
59
|
+
// Guard clauses
|
|
60
|
+
const guardCount = (funcBody.match(/^(?:\s*)if\b[^{]*\{[^}]*\breturn\b/gm) || []).length;
|
|
61
|
+
this.data.guardClauses.total += guardCount;
|
|
62
|
+
this.data.guardClauses.percentage = Math.round(this.data.guardClauses.total / this.data.functionsAnalyzed * 100);
|
|
63
|
+
}
|
|
64
|
+
this.data.updated = Date.now();
|
|
65
|
+
this.store.write('structure.json', this.data, 'personal', 'style');
|
|
66
|
+
return { functionsFound: funcMatches.length };
|
|
67
|
+
}
|
|
68
|
+
getSummary() {
|
|
69
|
+
const lines = [];
|
|
70
|
+
if (this.data.functionsAnalyzed === 0)
|
|
71
|
+
return [];
|
|
72
|
+
lines.push(`Avg file: ${this.data.avgFileSize} lines · Avg function: ${this.data.avgFunctionLength} lines`);
|
|
73
|
+
lines.push(`Nesting: avg ${this.data.nestingDepth.average}, max ${this.data.nestingDepth.max}, deep: ${this.data.nestingDepth.deepFunctions}`);
|
|
74
|
+
lines.push(`Early returns: ${this.data.earlyReturns.percentage}% · Guard clauses: ${this.data.guardClauses.percentage}%`);
|
|
75
|
+
return lines;
|
|
76
|
+
}
|
|
77
|
+
extractBody(code, startIdx) {
|
|
78
|
+
const braceStart = code.indexOf('{', startIdx);
|
|
79
|
+
if (braceStart === -1)
|
|
80
|
+
return null;
|
|
81
|
+
let depth = 0;
|
|
82
|
+
let braceEnd = -1;
|
|
83
|
+
for (let i = braceStart; i < code.length; i++) {
|
|
84
|
+
if (code[i] === '{')
|
|
85
|
+
depth++;
|
|
86
|
+
if (code[i] === '}') {
|
|
87
|
+
depth--;
|
|
88
|
+
if (depth === 0) {
|
|
89
|
+
braceEnd = i;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (braceEnd === -1)
|
|
95
|
+
return null;
|
|
96
|
+
return code.slice(braceStart, braceEnd + 1);
|
|
97
|
+
}
|
|
98
|
+
calcDepth(body) {
|
|
99
|
+
let maxDepth = 0;
|
|
100
|
+
let depth = 0;
|
|
101
|
+
for (const ch of body) {
|
|
102
|
+
if (ch === '{') {
|
|
103
|
+
depth++;
|
|
104
|
+
if (depth > maxDepth)
|
|
105
|
+
maxDepth = depth;
|
|
106
|
+
}
|
|
107
|
+
if (ch === '}')
|
|
108
|
+
depth--;
|
|
109
|
+
}
|
|
110
|
+
return maxDepth;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.StructureEngine = StructureEngine;
|
|
114
|
+
//# sourceMappingURL=structure-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structure-engine.js","sourceRoot":"","sources":["../../src/core/structure-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
export interface SyntaxData {
|
|
2
|
+
version: number;
|
|
3
|
+
updated: number;
|
|
4
|
+
functionNaming: {
|
|
5
|
+
getter: number;
|
|
6
|
+
handler: number;
|
|
7
|
+
setter: number;
|
|
8
|
+
boolean: number;
|
|
9
|
+
creator: number;
|
|
10
|
+
other: number;
|
|
11
|
+
topPatterns: string[];
|
|
12
|
+
};
|
|
13
|
+
componentNaming: {
|
|
14
|
+
pascalCase: number;
|
|
15
|
+
nonPascal: number;
|
|
16
|
+
consistency: number;
|
|
17
|
+
};
|
|
18
|
+
constantNaming: {
|
|
19
|
+
screamingSnake: number;
|
|
20
|
+
camelCase: number;
|
|
21
|
+
preference: string;
|
|
22
|
+
};
|
|
23
|
+
asyncStyle: {
|
|
24
|
+
awaitCount: number;
|
|
25
|
+
thenCount: number;
|
|
26
|
+
preference: string;
|
|
27
|
+
};
|
|
28
|
+
destructuring: {
|
|
29
|
+
objectDestruct: number;
|
|
30
|
+
arrayDestruct: number;
|
|
31
|
+
totalAssignments: number;
|
|
32
|
+
usageRate: number;
|
|
33
|
+
};
|
|
34
|
+
optionalChaining: {
|
|
35
|
+
dotAccess: number;
|
|
36
|
+
chainAccess: number;
|
|
37
|
+
usageRate: number;
|
|
38
|
+
};
|
|
39
|
+
nullishCoalescing: {
|
|
40
|
+
usageCount: number;
|
|
41
|
+
orCount: number;
|
|
42
|
+
preference: string;
|
|
43
|
+
};
|
|
44
|
+
templateLiterals: {
|
|
45
|
+
templateCount: number;
|
|
46
|
+
concatCount: number;
|
|
47
|
+
preference: string;
|
|
48
|
+
};
|
|
49
|
+
semicolons: {
|
|
50
|
+
withSemicolon: number;
|
|
51
|
+
withoutSemicolon: number;
|
|
52
|
+
consistency: number;
|
|
53
|
+
preference: string;
|
|
54
|
+
};
|
|
55
|
+
quotes: {
|
|
56
|
+
singleQuotes: number;
|
|
57
|
+
doubleQuotes: number;
|
|
58
|
+
templateQuotes: number;
|
|
59
|
+
preference: string;
|
|
60
|
+
};
|
|
61
|
+
trailingCommas: {
|
|
62
|
+
withComma: number;
|
|
63
|
+
withoutComma: number;
|
|
64
|
+
consistency: number;
|
|
65
|
+
preference: string;
|
|
66
|
+
};
|
|
67
|
+
comments: {
|
|
68
|
+
lineComments: number;
|
|
69
|
+
blockComments: number;
|
|
70
|
+
totalFunctions: number;
|
|
71
|
+
commentRate: number;
|
|
72
|
+
};
|
|
73
|
+
structure: {
|
|
74
|
+
avgFunctionLength: number;
|
|
75
|
+
totalFunctions: number;
|
|
76
|
+
singleResponsibility: number;
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export declare class SyntaxEngine {
|
|
80
|
+
private store;
|
|
81
|
+
private data;
|
|
82
|
+
constructor(cellDir?: string);
|
|
83
|
+
analyze(code: string): {
|
|
84
|
+
patternsFound: number;
|
|
85
|
+
};
|
|
86
|
+
private analyzeFunctionNaming;
|
|
87
|
+
private analyzeComponentNaming;
|
|
88
|
+
private analyzeConstantNaming;
|
|
89
|
+
private analyzeAsyncStyle;
|
|
90
|
+
private analyzeDestructuring;
|
|
91
|
+
private analyzeOptionalChaining;
|
|
92
|
+
private analyzeNullishCoalescing;
|
|
93
|
+
private analyzeTemplateLiterals;
|
|
94
|
+
private analyzeSemicolons;
|
|
95
|
+
private analyzeQuotes;
|
|
96
|
+
private analyzeTrailingCommas;
|
|
97
|
+
private analyzeComments;
|
|
98
|
+
private analyzeStructure;
|
|
99
|
+
getSummary(): string[];
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=syntax-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syntax-engine.d.ts","sourceRoot":"","sources":["../../src/core/syntax-engine.ts"],"names":[],"mappings":"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"}
|