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,18 +1,32 @@
|
|
|
1
1
|
import { ExtractedPattern } from '../types';
|
|
2
|
+
import { SecurityPrediction } from './security-predictor';
|
|
3
|
+
import { ErrorPrediction } from './error-predictor';
|
|
2
4
|
export interface CascadeResult {
|
|
3
5
|
patterns: ExtractedPattern[];
|
|
4
|
-
stepUsed: 'regex' | '
|
|
6
|
+
stepUsed: 'ast' | 'regex' | 'heuristic' | 'combined' | 'none';
|
|
5
7
|
latencyMs: number;
|
|
8
|
+
language?: string;
|
|
6
9
|
}
|
|
7
10
|
export declare class ExtractionCascade {
|
|
8
11
|
private regexExtractor;
|
|
9
|
-
private
|
|
12
|
+
private heuristicExtractor;
|
|
13
|
+
private astDiffer;
|
|
14
|
+
private securityPredictor;
|
|
15
|
+
private errorPredictor;
|
|
16
|
+
private pythonExtractor;
|
|
17
|
+
private goExtractor;
|
|
10
18
|
constructor();
|
|
11
|
-
|
|
12
|
-
|
|
19
|
+
detectLanguage(code: string, hint?: string): string;
|
|
20
|
+
extract(originalCode: string, editedCode: string, language?: string): CascadeResult;
|
|
21
|
+
extractAll(originalCode: string, editedCode: string, language?: string): CascadeResult;
|
|
22
|
+
audit(code: string): {
|
|
23
|
+
security: SecurityPrediction[];
|
|
24
|
+
errors: ErrorPrediction[];
|
|
25
|
+
};
|
|
13
26
|
getStats(): {
|
|
27
|
+
astPatterns: number;
|
|
14
28
|
regexPatterns: number;
|
|
15
|
-
|
|
29
|
+
heuristicCapabilities: number;
|
|
16
30
|
};
|
|
17
31
|
}
|
|
18
32
|
//# sourceMappingURL=extraction-cascade.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extraction-cascade.d.ts","sourceRoot":"","sources":["../../src/core/extraction-cascade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5C,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,QAAQ,EAAE,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"extraction-cascade.d.ts","sourceRoot":"","sources":["../../src/core/extraction-cascade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5C,OAAO,EAAqB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAkB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIpE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,QAAQ,EAAE,KAAK,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAaD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,WAAW,CAAc;;IAYjC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAInD,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa;IA2CnF,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa;IA2BtF,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;QAAC,MAAM,EAAE,eAAe,EAAE,CAAA;KAAE;IAOlF,QAAQ,IAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAA;KAAE;CAO1F"}
|
|
@@ -3,44 +3,115 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ExtractionCascade = void 0;
|
|
4
4
|
const regex_extractor_1 = require("./regex-extractor");
|
|
5
5
|
const ast_extractor_1 = require("./ast-extractor");
|
|
6
|
+
const ast_differ_1 = require("./ast-differ");
|
|
7
|
+
const security_predictor_1 = require("./security-predictor");
|
|
8
|
+
const error_predictor_1 = require("./error-predictor");
|
|
9
|
+
const python_extractor_1 = require("./python-extractor");
|
|
10
|
+
const go_extractor_1 = require("./go-extractor");
|
|
11
|
+
const AST_LANGUAGES = new Set(['typescript', 'javascript', 'ts', 'js', 'tsx', 'jsx']);
|
|
12
|
+
function detectLanguage(code, hint) {
|
|
13
|
+
if (hint && AST_LANGUAGES.has(hint.toLowerCase()))
|
|
14
|
+
return hint.toLowerCase();
|
|
15
|
+
if (/^\s*import\s+|^\s*export\s+|^\s*interface\s+|^\s*type\s+|:\s*(string|number|boolean|void)\b/m.test(code))
|
|
16
|
+
return 'typescript';
|
|
17
|
+
if (/^\s*(import|export)\s+|const\s+\w+\s*=\s*require|module\.exports/m.test(code))
|
|
18
|
+
return 'javascript';
|
|
19
|
+
if (/^\s*#!|^\s*def\s+|^\s*class\s+\w+.*:/m.test(code))
|
|
20
|
+
return 'python';
|
|
21
|
+
if (/^\s*(package|import)\s+[a-z]+\.[a-z]+|^\s*func\s+|^\s*type\s+\w+\s+struct/m.test(code))
|
|
22
|
+
return 'go';
|
|
23
|
+
return 'unknown';
|
|
24
|
+
}
|
|
6
25
|
class ExtractionCascade {
|
|
7
26
|
regexExtractor;
|
|
8
|
-
|
|
27
|
+
heuristicExtractor;
|
|
28
|
+
astDiffer;
|
|
29
|
+
securityPredictor;
|
|
30
|
+
errorPredictor;
|
|
31
|
+
pythonExtractor;
|
|
32
|
+
goExtractor;
|
|
9
33
|
constructor() {
|
|
10
34
|
this.regexExtractor = new regex_extractor_1.RegexExtractor();
|
|
11
|
-
this.
|
|
35
|
+
this.heuristicExtractor = new ast_extractor_1.DiffPatternMatcher();
|
|
36
|
+
this.astDiffer = new ast_differ_1.AstDiffer();
|
|
37
|
+
this.securityPredictor = new security_predictor_1.SecurityPredictor();
|
|
38
|
+
this.errorPredictor = new error_predictor_1.ErrorPredictor();
|
|
39
|
+
this.pythonExtractor = new python_extractor_1.PythonExtractor();
|
|
40
|
+
this.goExtractor = new go_extractor_1.GoExtractor();
|
|
41
|
+
}
|
|
42
|
+
detectLanguage(code, hint) {
|
|
43
|
+
return detectLanguage(code, hint);
|
|
12
44
|
}
|
|
13
|
-
extract(originalCode, editedCode) {
|
|
45
|
+
extract(originalCode, editedCode, language) {
|
|
14
46
|
const startTime = performance.now();
|
|
47
|
+
const lang = language || detectLanguage(originalCode || editedCode);
|
|
48
|
+
let astPatterns = [];
|
|
49
|
+
if (AST_LANGUAGES.has(lang)) {
|
|
50
|
+
astPatterns = this.astDiffer.extract(originalCode, editedCode);
|
|
51
|
+
}
|
|
52
|
+
if (astPatterns.length > 0) {
|
|
53
|
+
const latency = Math.round((performance.now() - startTime) * 100) / 100;
|
|
54
|
+
return { patterns: astPatterns, stepUsed: 'ast', latencyMs: latency, language: lang };
|
|
55
|
+
}
|
|
56
|
+
let langPatterns = [];
|
|
57
|
+
if (lang === 'python') {
|
|
58
|
+
langPatterns = this.pythonExtractor.extract(editedCode);
|
|
59
|
+
}
|
|
60
|
+
else if (lang === 'go') {
|
|
61
|
+
langPatterns = this.goExtractor.extract(editedCode);
|
|
62
|
+
}
|
|
63
|
+
if (langPatterns.length > 0) {
|
|
64
|
+
const latency = Math.round((performance.now() - startTime) * 100) / 100;
|
|
65
|
+
return { patterns: langPatterns, stepUsed: 'regex', latencyMs: latency, language: lang };
|
|
66
|
+
}
|
|
15
67
|
const regexPatterns = this.regexExtractor.extractFromDiff(originalCode, editedCode);
|
|
16
68
|
if (regexPatterns.length > 0) {
|
|
17
69
|
const latency = Math.round((performance.now() - startTime) * 100) / 100;
|
|
18
|
-
return { patterns: regexPatterns, stepUsed: 'regex', latencyMs: latency };
|
|
70
|
+
return { patterns: regexPatterns, stepUsed: 'regex', latencyMs: latency, language: lang };
|
|
19
71
|
}
|
|
20
|
-
const
|
|
21
|
-
if (
|
|
72
|
+
const heuristicPatterns = this.heuristicExtractor.extract(originalCode, editedCode);
|
|
73
|
+
if (heuristicPatterns.length > 0) {
|
|
22
74
|
const latency = Math.round((performance.now() - startTime) * 100) / 100;
|
|
23
|
-
return { patterns:
|
|
75
|
+
return { patterns: heuristicPatterns, stepUsed: 'heuristic', latencyMs: latency, language: lang };
|
|
24
76
|
}
|
|
25
77
|
const latency = Math.round((performance.now() - startTime) * 100) / 100;
|
|
26
|
-
return { patterns: [], stepUsed: 'none', latencyMs: latency };
|
|
78
|
+
return { patterns: [], stepUsed: 'none', latencyMs: latency, language: lang };
|
|
27
79
|
}
|
|
28
|
-
extractAll(originalCode, editedCode) {
|
|
80
|
+
extractAll(originalCode, editedCode, language) {
|
|
29
81
|
const startTime = performance.now();
|
|
82
|
+
const lang = language || detectLanguage(originalCode || editedCode);
|
|
83
|
+
let astPatterns = [];
|
|
84
|
+
if (AST_LANGUAGES.has(lang)) {
|
|
85
|
+
astPatterns = this.astDiffer.extract(originalCode, editedCode);
|
|
86
|
+
}
|
|
87
|
+
let langPatterns = [];
|
|
88
|
+
if (lang === 'python') {
|
|
89
|
+
langPatterns = this.pythonExtractor.extract(editedCode);
|
|
90
|
+
}
|
|
91
|
+
else if (lang === 'go') {
|
|
92
|
+
langPatterns = this.goExtractor.extract(editedCode);
|
|
93
|
+
}
|
|
30
94
|
const regexPatterns = this.regexExtractor.extractFromDiff(originalCode, editedCode);
|
|
31
|
-
const
|
|
32
|
-
const allPatterns = [...regexPatterns, ...
|
|
33
|
-
const stepUsed =
|
|
95
|
+
const heuristicPatterns = this.heuristicExtractor.extract(originalCode, editedCode);
|
|
96
|
+
const allPatterns = [...astPatterns, ...langPatterns, ...regexPatterns, ...heuristicPatterns];
|
|
97
|
+
const stepUsed = astPatterns.length > 0 ? 'ast'
|
|
34
98
|
: regexPatterns.length > 0 ? 'regex'
|
|
35
|
-
:
|
|
99
|
+
: heuristicPatterns.length > 0 ? 'heuristic'
|
|
36
100
|
: 'none';
|
|
37
101
|
const latency = Math.round((performance.now() - startTime) * 100) / 100;
|
|
38
|
-
return { patterns: allPatterns, stepUsed, latencyMs: latency };
|
|
102
|
+
return { patterns: allPatterns, stepUsed, latencyMs: latency, language: lang };
|
|
103
|
+
}
|
|
104
|
+
audit(code) {
|
|
105
|
+
return {
|
|
106
|
+
security: this.securityPredictor.predict(code),
|
|
107
|
+
errors: this.errorPredictor.predict(code),
|
|
108
|
+
};
|
|
39
109
|
}
|
|
40
110
|
getStats() {
|
|
41
111
|
return {
|
|
112
|
+
astPatterns: 11,
|
|
42
113
|
regexPatterns: this.regexExtractor.getPatternCount(),
|
|
43
|
-
|
|
114
|
+
heuristicCapabilities: 4,
|
|
44
115
|
};
|
|
45
116
|
}
|
|
46
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extraction-cascade.js","sourceRoot":"","sources":["../../src/core/extraction-cascade.ts"],"names":[],"mappings":";;;AACA,uDAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"extraction-cascade.js","sourceRoot":"","sources":["../../src/core/extraction-cascade.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Pattern } from '../types';
|
|
2
|
+
export interface FailureRecord {
|
|
3
|
+
patternId: string;
|
|
4
|
+
description: string;
|
|
5
|
+
from: string;
|
|
6
|
+
to: string;
|
|
7
|
+
rejectCount: number;
|
|
8
|
+
acceptCount: number;
|
|
9
|
+
totalSignals: number;
|
|
10
|
+
failureRate: number;
|
|
11
|
+
lastRejected: number;
|
|
12
|
+
category: string;
|
|
13
|
+
language: string;
|
|
14
|
+
commonAlternatives: string[];
|
|
15
|
+
}
|
|
16
|
+
export interface AvoidSuggestion {
|
|
17
|
+
patternId: string;
|
|
18
|
+
description: string;
|
|
19
|
+
failureRate: number;
|
|
20
|
+
severity: 'critical' | 'high' | 'medium' | 'low';
|
|
21
|
+
reason: string;
|
|
22
|
+
alternativeDescription: string;
|
|
23
|
+
developerCount: number;
|
|
24
|
+
}
|
|
25
|
+
export declare function recordFailure(pattern: Pattern, isReject: boolean, language?: string): FailureRecord;
|
|
26
|
+
export declare function getAvoidSuggestions(minFailureRate?: number): AvoidSuggestion[];
|
|
27
|
+
export declare function getFailureStats(): {
|
|
28
|
+
totalTracked: number;
|
|
29
|
+
criticalCount: number;
|
|
30
|
+
highCount: number;
|
|
31
|
+
mediumCount: number;
|
|
32
|
+
lowCount: number;
|
|
33
|
+
avgFailureRate: number;
|
|
34
|
+
};
|
|
35
|
+
export declare function getFailureRecord(patternId: string): FailureRecord | undefined;
|
|
36
|
+
export declare function getAllFailureRecords(): FailureRecord[];
|
|
37
|
+
export declare function clearFailures(): void;
|
|
38
|
+
//# sourceMappingURL=failure-memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"failure-memory.d.ts","sourceRoot":"","sources":["../../src/core/failure-memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;CACxB;AAOD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,GAAE,MAAkB,GAC3B,aAAa,CAiCf;AAED,wBAAgB,mBAAmB,CAAC,cAAc,GAAE,MAA0B,GAAG,eAAe,EAAE,CA8BjG;AAED,wBAAgB,eAAe,IAAI;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB,CAsBA;AAMD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAE7E;AAED,wBAAgB,oBAAoB,IAAI,aAAa,EAAE,CAEtD;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.recordFailure = recordFailure;
|
|
4
|
+
exports.getAvoidSuggestions = getAvoidSuggestions;
|
|
5
|
+
exports.getFailureStats = getFailureStats;
|
|
6
|
+
exports.getFailureRecord = getFailureRecord;
|
|
7
|
+
exports.getAllFailureRecords = getAllFailureRecords;
|
|
8
|
+
exports.clearFailures = clearFailures;
|
|
9
|
+
const failureRecords = new Map();
|
|
10
|
+
const MAX_RECORDS = 500;
|
|
11
|
+
const FAILURE_THRESHOLD = 0.5;
|
|
12
|
+
function recordFailure(pattern, isReject, language = 'unknown') {
|
|
13
|
+
const key = pattern.patternId;
|
|
14
|
+
if (!failureRecords.has(key)) {
|
|
15
|
+
failureRecords.set(key, {
|
|
16
|
+
patternId: pattern.patternId,
|
|
17
|
+
description: pattern.description,
|
|
18
|
+
from: pattern.from,
|
|
19
|
+
to: pattern.to,
|
|
20
|
+
rejectCount: 0,
|
|
21
|
+
acceptCount: 0,
|
|
22
|
+
totalSignals: 0,
|
|
23
|
+
failureRate: 0,
|
|
24
|
+
lastRejected: 0,
|
|
25
|
+
category: pattern.category,
|
|
26
|
+
language,
|
|
27
|
+
commonAlternatives: [],
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
const record = failureRecords.get(key);
|
|
31
|
+
record.totalSignals++;
|
|
32
|
+
if (isReject) {
|
|
33
|
+
record.rejectCount++;
|
|
34
|
+
record.lastRejected = Date.now();
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
record.acceptCount++;
|
|
38
|
+
}
|
|
39
|
+
record.failureRate = record.totalSignals > 0
|
|
40
|
+
? record.rejectCount / record.totalSignals
|
|
41
|
+
: 0;
|
|
42
|
+
return record;
|
|
43
|
+
}
|
|
44
|
+
function getAvoidSuggestions(minFailureRate = FAILURE_THRESHOLD) {
|
|
45
|
+
const suggestions = [];
|
|
46
|
+
for (const record of failureRecords.values()) {
|
|
47
|
+
if (record.failureRate < minFailureRate)
|
|
48
|
+
continue;
|
|
49
|
+
if (record.totalSignals < 3)
|
|
50
|
+
continue;
|
|
51
|
+
let severity;
|
|
52
|
+
if (record.failureRate >= 0.8)
|
|
53
|
+
severity = 'critical';
|
|
54
|
+
else if (record.failureRate >= 0.7)
|
|
55
|
+
severity = 'high';
|
|
56
|
+
else if (record.failureRate >= 0.6)
|
|
57
|
+
severity = 'medium';
|
|
58
|
+
else
|
|
59
|
+
severity = 'low';
|
|
60
|
+
const alternatives = findAlternatives(record);
|
|
61
|
+
const reason = `Rejected ${record.rejectCount}/${record.totalSignals} times (${Math.round(record.failureRate * 100)}% failure rate)`;
|
|
62
|
+
suggestions.push({
|
|
63
|
+
patternId: record.patternId,
|
|
64
|
+
description: record.description,
|
|
65
|
+
failureRate: record.failureRate,
|
|
66
|
+
severity,
|
|
67
|
+
reason,
|
|
68
|
+
alternativeDescription: alternatives.length > 0
|
|
69
|
+
? `Consider: ${alternatives[0].description}`
|
|
70
|
+
: 'No clear alternative found',
|
|
71
|
+
developerCount: 1,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
return suggestions.sort((a, b) => b.failureRate - a.failureRate);
|
|
75
|
+
}
|
|
76
|
+
function getFailureStats() {
|
|
77
|
+
const records = Array.from(failureRecords.values());
|
|
78
|
+
const total = records.length;
|
|
79
|
+
let critical = 0, high = 0, medium = 0, low = 0;
|
|
80
|
+
for (const r of records) {
|
|
81
|
+
if (r.failureRate >= 0.8)
|
|
82
|
+
critical++;
|
|
83
|
+
else if (r.failureRate >= 0.7)
|
|
84
|
+
high++;
|
|
85
|
+
else if (r.failureRate >= 0.6)
|
|
86
|
+
medium++;
|
|
87
|
+
else if (r.failureRate >= FAILURE_THRESHOLD)
|
|
88
|
+
low++;
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
totalTracked: total,
|
|
92
|
+
criticalCount: critical,
|
|
93
|
+
highCount: high,
|
|
94
|
+
mediumCount: medium,
|
|
95
|
+
lowCount: low,
|
|
96
|
+
avgFailureRate: total > 0
|
|
97
|
+
? records.reduce((s, r) => s + r.failureRate, 0) / total
|
|
98
|
+
: 0,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
function findAlternatives(record) {
|
|
102
|
+
return [];
|
|
103
|
+
}
|
|
104
|
+
function getFailureRecord(patternId) {
|
|
105
|
+
return failureRecords.get(patternId);
|
|
106
|
+
}
|
|
107
|
+
function getAllFailureRecords() {
|
|
108
|
+
return Array.from(failureRecords.values());
|
|
109
|
+
}
|
|
110
|
+
function clearFailures() {
|
|
111
|
+
failureRecords.clear();
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=failure-memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"failure-memory.js","sourceRoot":"","sources":["../../src/core/failure-memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export interface FrontendData {
|
|
2
|
+
version: number;
|
|
3
|
+
updated: number;
|
|
4
|
+
framework: {
|
|
5
|
+
name: string;
|
|
6
|
+
confidence: number;
|
|
7
|
+
};
|
|
8
|
+
stateManagement: {
|
|
9
|
+
name: string;
|
|
10
|
+
confidence: number;
|
|
11
|
+
};
|
|
12
|
+
dataFetching: {
|
|
13
|
+
name: string;
|
|
14
|
+
confidence: number;
|
|
15
|
+
};
|
|
16
|
+
styling: {
|
|
17
|
+
name: string;
|
|
18
|
+
confidence: number;
|
|
19
|
+
};
|
|
20
|
+
componentStyle: {
|
|
21
|
+
functional: number;
|
|
22
|
+
classBased: number;
|
|
23
|
+
hooks: number;
|
|
24
|
+
};
|
|
25
|
+
totalComponents: number;
|
|
26
|
+
}
|
|
27
|
+
export declare class FrontendEngine {
|
|
28
|
+
private store;
|
|
29
|
+
private data;
|
|
30
|
+
constructor(cellDir?: string);
|
|
31
|
+
analyze(code: string): {
|
|
32
|
+
componentsFound: number;
|
|
33
|
+
};
|
|
34
|
+
getSummary(): string[];
|
|
35
|
+
private detectFramework;
|
|
36
|
+
private detectStateMgmt;
|
|
37
|
+
private detectDataFetching;
|
|
38
|
+
private detectStyling;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=frontend-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontend-engine.d.ts","sourceRoot":"","sources":["../../src/core/frontend-engine.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IACjC,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,eAAe,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,cAAc,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1E,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,IAAI,CAAe;gBAEf,OAAO,CAAC,EAAE,MAAM;IAa5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE;IA4ClD,UAAU,IAAI,MAAM,EAAE;IAUtB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,aAAa;CAWtB"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FrontendEngine = void 0;
|
|
4
|
+
const cell_store_1 = require("./cell-store");
|
|
5
|
+
class FrontendEngine {
|
|
6
|
+
store;
|
|
7
|
+
data;
|
|
8
|
+
constructor(cellDir) {
|
|
9
|
+
this.store = new cell_store_1.CellStore(cellDir);
|
|
10
|
+
this.data = this.store.read('frontend.json', 'personal', 'architecture') || {
|
|
11
|
+
version: 1, updated: Date.now(),
|
|
12
|
+
framework: { name: 'unknown', confidence: 0 },
|
|
13
|
+
stateManagement: { name: 'unknown', confidence: 0 },
|
|
14
|
+
dataFetching: { name: 'unknown', confidence: 0 },
|
|
15
|
+
styling: { name: 'unknown', confidence: 0 },
|
|
16
|
+
componentStyle: { functional: 0, classBased: 0, hooks: 0 },
|
|
17
|
+
totalComponents: 0,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
analyze(code) {
|
|
21
|
+
if (!code || code.length < 20)
|
|
22
|
+
return { componentsFound: 0 };
|
|
23
|
+
let found = 0;
|
|
24
|
+
// Framework
|
|
25
|
+
const fw = this.detectFramework(code);
|
|
26
|
+
if (fw.confidence > this.data.framework.confidence) {
|
|
27
|
+
this.data.framework = fw;
|
|
28
|
+
found++;
|
|
29
|
+
}
|
|
30
|
+
// State management
|
|
31
|
+
const sm = this.detectStateMgmt(code);
|
|
32
|
+
if (sm.confidence > this.data.stateManagement.confidence) {
|
|
33
|
+
this.data.stateManagement = sm;
|
|
34
|
+
found++;
|
|
35
|
+
}
|
|
36
|
+
// Data fetching
|
|
37
|
+
const df = this.detectDataFetching(code);
|
|
38
|
+
if (df.confidence > this.data.dataFetching.confidence) {
|
|
39
|
+
this.data.dataFetching = df;
|
|
40
|
+
found++;
|
|
41
|
+
}
|
|
42
|
+
// Styling
|
|
43
|
+
const st = this.detectStyling(code);
|
|
44
|
+
if (st.confidence > this.data.styling.confidence) {
|
|
45
|
+
this.data.styling = st;
|
|
46
|
+
found++;
|
|
47
|
+
}
|
|
48
|
+
// Component style
|
|
49
|
+
this.data.totalComponents += (code.match(/export\s+(?:default\s+)?function\s+\w+|const\s+\w+\s*[:=]\s*(?:React\.)?(?:FC|FunctionComponent)/g) || []).length;
|
|
50
|
+
const funcComps = (code.match(/export\s+(?:default\s+)?function\s+\w+|const\s+\w+\s*[:=]\s*(?:async\s*)?\(/g) || []).length;
|
|
51
|
+
const classComps = (code.match(/class\s+\w+\s+extends\s+(?:React\.)?Component/g) || []).length;
|
|
52
|
+
const hookCalls = (code.match(/(?:useContext|useState|useEffect|useReducer|useCallback|useMemo|useRef|useQuery|useMutation)\s*\(/g) || []).length;
|
|
53
|
+
if (funcComps > 0)
|
|
54
|
+
this.data.componentStyle.functional += funcComps;
|
|
55
|
+
if (classComps > 0)
|
|
56
|
+
this.data.componentStyle.classBased += classComps;
|
|
57
|
+
if (hookCalls > 0)
|
|
58
|
+
this.data.componentStyle.hooks += hookCalls;
|
|
59
|
+
if (found > 0 || funcComps > 0 || classComps > 0 || hookCalls > 0) {
|
|
60
|
+
this.data.updated = Date.now();
|
|
61
|
+
this.store.write('frontend.json', this.data, 'personal', 'architecture');
|
|
62
|
+
}
|
|
63
|
+
return { componentsFound: funcComps + classComps };
|
|
64
|
+
}
|
|
65
|
+
getSummary() {
|
|
66
|
+
const lines = [];
|
|
67
|
+
if (this.data.totalComponents === 0 && this.data.framework.confidence === 0)
|
|
68
|
+
return [];
|
|
69
|
+
lines.push(`Framework: ${this.data.framework.name} · State: ${this.data.stateManagement.name} · Style: ${this.data.styling.name}`);
|
|
70
|
+
if (this.data.totalComponents > 0) {
|
|
71
|
+
lines.push(`Components: ${this.data.componentStyle.functional} functional, ${this.data.componentStyle.classBased} class-based · Hooks: ${this.data.componentStyle.hooks}`);
|
|
72
|
+
}
|
|
73
|
+
return lines;
|
|
74
|
+
}
|
|
75
|
+
detectFramework(code) {
|
|
76
|
+
if (/from\s+['"]react['"]/i.test(code) || /import.*\breact\b/i.test(code))
|
|
77
|
+
return { name: 'React', confidence: 0.9 };
|
|
78
|
+
if (/from\s+['"]vue['"]/i.test(code) || /import.*\bvue\b/i.test(code))
|
|
79
|
+
return { name: 'Vue', confidence: 0.85 };
|
|
80
|
+
if (/from\s+['"]@angular/i.test(code))
|
|
81
|
+
return { name: 'Angular', confidence: 0.85 };
|
|
82
|
+
if (/from\s+['"]svelte['"]/i.test(code))
|
|
83
|
+
return { name: 'Svelte', confidence: 0.8 };
|
|
84
|
+
if (/from\s+['"]solid-js['"]/i.test(code))
|
|
85
|
+
return { name: 'Solid', confidence: 0.75 };
|
|
86
|
+
return { name: 'unknown', confidence: 0 };
|
|
87
|
+
}
|
|
88
|
+
detectStateMgmt(code) {
|
|
89
|
+
if (/from\s+['"]redux['"]/i.test(code) || /from\s+['"]@reduxjs/i.test(code))
|
|
90
|
+
return { name: 'Redux', confidence: 0.9 };
|
|
91
|
+
if (/from\s+['"]zustand['"]/i.test(code))
|
|
92
|
+
return { name: 'Zustand', confidence: 0.85 };
|
|
93
|
+
if (/from\s+['"]jotai['"]/i.test(code))
|
|
94
|
+
return { name: 'Jotai', confidence: 0.8 };
|
|
95
|
+
if (/from\s+['"]mobx['"]/i.test(code))
|
|
96
|
+
return { name: 'MobX', confidence: 0.85 };
|
|
97
|
+
if (/\buseContext\s*\(/i.test(code) && /\bcreateContext\s*\(/i.test(code))
|
|
98
|
+
return { name: 'Context API', confidence: 0.7 };
|
|
99
|
+
if (/from\s+['"]@ngrx/i.test(code))
|
|
100
|
+
return { name: 'NgRx', confidence: 0.8 };
|
|
101
|
+
return { name: 'unknown', confidence: 0 };
|
|
102
|
+
}
|
|
103
|
+
detectDataFetching(code) {
|
|
104
|
+
if (/from\s+['"]@tanstack\/react-query['"]/i.test(code) || /from\s+['"]react-query['"]/i.test(code))
|
|
105
|
+
return { name: 'React Query', confidence: 0.9 };
|
|
106
|
+
if (/from\s+['"]swr['"]/i.test(code))
|
|
107
|
+
return { name: 'SWR', confidence: 0.85 };
|
|
108
|
+
if (/from\s+['"]@apollo/i.test(code))
|
|
109
|
+
return { name: 'Apollo', confidence: 0.85 };
|
|
110
|
+
if (/\baxios\b/i.test(code) && /\.(?:get|post|put|delete)\s*\(/i.test(code))
|
|
111
|
+
return { name: 'Axios', confidence: 0.7 };
|
|
112
|
+
if (/\bfetch\s*\(/i.test(code) && !/from\s+['"]/i.test(code))
|
|
113
|
+
return { name: 'fetch', confidence: 0.5 };
|
|
114
|
+
return { name: 'unknown', confidence: 0 };
|
|
115
|
+
}
|
|
116
|
+
detectStyling(code) {
|
|
117
|
+
if (/\bclassName\s*:?\s*['"]\s*(?:flex|grid|text-|bg-|p-[0-9]|m-[0-9])/.test(code) || /from\s+['"]..\/tailwind/i.test(code))
|
|
118
|
+
return { name: 'Tailwind', confidence: 0.85 };
|
|
119
|
+
if (/\.module\.(css|scss)/.test(code) || /from\s+['"][^'"]+\.module\.(css|scss)['"]/.test(code))
|
|
120
|
+
return { name: 'CSS Modules', confidence: 0.8 };
|
|
121
|
+
if (/from\s+['"]styled-components['"]/i.test(code) || /styled\.\w+`/i.test(code))
|
|
122
|
+
return { name: 'Styled Components', confidence: 0.85 };
|
|
123
|
+
if (/from\s+['"]@emotion/i.test(code))
|
|
124
|
+
return { name: 'Emotion', confidence: 0.8 };
|
|
125
|
+
return { name: 'unknown', confidence: 0 };
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
exports.FrontendEngine = FrontendEngine;
|
|
129
|
+
//# sourceMappingURL=frontend-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontend-engine.js","sourceRoot":"","sources":["../../src/core/frontend-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go-extractor.d.ts","sourceRoot":"","sources":["../../src/core/go-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AA+C5C,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,EAAE;CAiB1C"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GoExtractor = void 0;
|
|
4
|
+
const GO_PATTERNS = [
|
|
5
|
+
{
|
|
6
|
+
name: 'naked_return',
|
|
7
|
+
category: 'return_style',
|
|
8
|
+
regex: /\bfunc\s+\w+.*\(.*\w+.*\)\s+\(?.*\w+.*\)?\s*\{[\s\S]*?\breturn\b(?!\s+\w)/g,
|
|
9
|
+
description: 'Prefers explicit returns over naked returns',
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
name: 'underscore_import',
|
|
13
|
+
category: 'import_style',
|
|
14
|
+
regex: /^\s*_ "[\w/]+"/gm,
|
|
15
|
+
description: 'Side-effect imports should have documented reason',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'panic_error',
|
|
19
|
+
category: 'error_handling',
|
|
20
|
+
regex: /\bpanic\(/g,
|
|
21
|
+
description: 'Prefers error returns over panic()',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: 'global_var',
|
|
25
|
+
category: 'variable_scope',
|
|
26
|
+
regex: /^\s*var\s+\w+\s+\w+\s*$/gm,
|
|
27
|
+
description: 'Prefers local scope over package-level variables',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'goroutine_leak',
|
|
31
|
+
category: 'concurrency',
|
|
32
|
+
regex: /^\s*go\s+\w+/gm,
|
|
33
|
+
description: 'Goroutine without sync.WaitGroup or channel',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: 'init_func',
|
|
37
|
+
category: 'code_organization',
|
|
38
|
+
regex: /^\s*func\s+init\(\)/gm,
|
|
39
|
+
description: 'init() makes testing difficult',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'string_format',
|
|
43
|
+
category: 'string_style',
|
|
44
|
+
regex: /fmt\.Sprintf\(/g,
|
|
45
|
+
description: 'Prefers string concatenation over fmt.Sprintf for simple cases',
|
|
46
|
+
},
|
|
47
|
+
];
|
|
48
|
+
class GoExtractor {
|
|
49
|
+
extract(code) {
|
|
50
|
+
const results = [];
|
|
51
|
+
for (const p of GO_PATTERNS) {
|
|
52
|
+
const matches = code.match(p.regex);
|
|
53
|
+
if (matches) {
|
|
54
|
+
results.push({
|
|
55
|
+
category: p.category,
|
|
56
|
+
description: p.description,
|
|
57
|
+
from: p.name,
|
|
58
|
+
to: p.name.replace(/_/g, '_fixed'),
|
|
59
|
+
confidenceDelta: Math.min(0.15, matches.length * 0.05),
|
|
60
|
+
conditions: [],
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return results;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.GoExtractor = GoExtractor;
|
|
68
|
+
//# sourceMappingURL=go-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go-extractor.js","sourceRoot":"","sources":["../../src/core/go-extractor.ts"],"names":[],"mappings":";;;AAEA,MAAM,WAAW,GAA6E;IAC5F;QACE,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,cAAc;QACxB,KAAK,EAAE,4EAA4E;QACnF,WAAW,EAAE,6CAA6C;KAC3D;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,cAAc;QACxB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,mDAAmD;KACjE;IACD;QACE,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,gBAAgB;QAC1B,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,oCAAoC;KAClD;IACD;QACE,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,gBAAgB;QAC1B,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,kDAAkD;KAChE;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,6CAA6C;KAC3D;IACD;QACE,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,mBAAmB;QAC7B,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,gCAAgC;KAC9C;IACD;QACE,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,cAAc;QACxB,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,gEAAgE;KAC9E;CACF,CAAC;AAEF,MAAa,WAAW;IACtB,OAAO,CAAC,IAAY;QAClB,MAAM,OAAO,GAAuB,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;oBAClC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;oBACtD,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAlBD,kCAkBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-resolver.d.ts","sourceRoot":"","sources":["../../src/core/identity-resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"identity-resolver.d.ts","sourceRoot":"","sources":["../../src/core/identity-resolver.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAqBD,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAEnE"}
|