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
|
@@ -130,7 +130,7 @@ class RegexExtractor {
|
|
|
130
130
|
return this.patterns.length;
|
|
131
131
|
}
|
|
132
132
|
countMatches(code, regex) {
|
|
133
|
-
const matches = code.match(new RegExp(regex.source, 'g'));
|
|
133
|
+
const matches = code.match(new RegExp(regex.source, regex.flags.includes('g') ? regex.flags : regex.flags + 'g'));
|
|
134
134
|
return matches ? matches.length : 0;
|
|
135
135
|
}
|
|
136
136
|
calculateDelta(matchCount) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regex-extractor.js","sourceRoot":"","sources":["../../src/core/regex-extractor.ts"],"names":[],"mappings":";;;AAEA,MAAa,cAAc;IACjB,QAAQ,GAAmB;QACjC;YACE,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EAAE,sBAAsB;YAChC,KAAK,EAAE,gBAAgB;YACvB,SAAS,EAAE,WAAW;YACtB,WAAW,EAAE,4BAA4B;SAC1C;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,gBAAgB;YAC1B,KAAK,EAAE,eAAe;YACtB,SAAS,EAAE,gBAAgB;YAC3B,WAAW,EAAE,+CAA+C;SAC7D;QACD;YACE,IAAI,EAAE,yBAAyB;YAC/B,QAAQ,EAAE,aAAa;YACvB,KAAK,EAAE,YAAY;YACnB,SAAS,EAAE,eAAe;YAC1B,WAAW,EAAE,0CAA0C;SACxD;QACD;YACE,IAAI,EAAE,yBAAyB;YAC/B,QAAQ,EAAE,aAAa;YACvB,KAAK,EAAE,YAAY;YACnB,SAAS,EAAE,eAAe;YAC1B,WAAW,EAAE,0CAA0C;SACxD;QACD;YACE,IAAI,EAAE,0BAA0B;YAChC,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,mBAAmB;YAC1B,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,+CAA+C;SAC7D;QACD;YACE,IAAI,EAAE,yBAAyB;YAC/B,QAAQ,EAAE,cAAc;YACxB,KAAK,EAAE,sBAAsB;YAC7B,SAAS,EAAE,cAAc;YACzB,WAAW,EAAE,4CAA4C;SAC1D;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,eAAe;YACzB,KAAK,EAAE,iBAAiB;YACxB,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,uCAAuC;SACrD;QACD;YACE,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE,eAAe;YACzB,KAAK,EAAE,cAAc;YACrB,SAAS,EAAE,OAAO;YAClB,WAAW,EAAE,yCAAyC;SACvD;QACD;YACE,IAAI,EAAE,6BAA6B;YACnC,QAAQ,EAAE,iBAAiB;YAC3B,KAAK,EAAE,aAAa;YACpB,SAAS,EAAE,sBAAsB;YACjC,WAAW,EAAE,yCAAyC;SACvD;KACF,CAAC;IAEF,OAAO,CAAC,YAAoB,EAAE,UAAkB;QAC9C,MAAM,OAAO,GAAuB,EAAE,CAAC;QAEvC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAEnE,IAAI,eAAe,GAAG,CAAC,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;gBAC/C,OAAO,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,EAAE,EAAE,OAAO,CAAC,SAAS;oBACrB,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC;oBACrD,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;YACL,CAAC;YAED,IAAI,eAAe,KAAK,CAAC,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;gBAC/C,OAAO,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,IAAI,EAAE,MAAM;oBACZ,EAAE,EAAE,OAAO,CAAC,SAAS;oBACrB,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;oBACnD,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,eAAe,CAAC,YAAoB,EAAE,UAAkB;QACtD,MAAM,OAAO,GAAuB,EAAE,CAAC;QAEvC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAEnE,IAAI,eAAe,KAAK,aAAa,EAAE,CAAC;gBACtC,MAAM,KAAK,GAAG,eAAe,GAAG,aAAa,CAAC;gBAC9C,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACd,OAAO,CAAC,IAAI,CAAC;wBACX,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,WAAW,EAAE,WAAW,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE;wBAC3D,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,EAAE,EAAE,OAAO,CAAC,SAAS;wBACrB,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;wBAC3C,UAAU,EAAE,EAAE;qBACf,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC;wBACX,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;wBAChC,IAAI,EAAE,MAAM;wBACZ,EAAE,EAAE,OAAO,CAAC,SAAS;wBACrB,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACrD,UAAU,EAAE,EAAE;qBACf,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAEO,YAAY,CAAC,IAAY,EAAE,KAAa;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"regex-extractor.js","sourceRoot":"","sources":["../../src/core/regex-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export interface ReputationProfile {
|
|
2
|
+
deviceId: string;
|
|
3
|
+
displayName: string;
|
|
4
|
+
tier: 'bronze' | 'silver' | 'gold' | 'platinum' | 'diamond';
|
|
5
|
+
score: number;
|
|
6
|
+
totalContributions: number;
|
|
7
|
+
acceptedPatterns: number;
|
|
8
|
+
categoryStrengths: Array<{
|
|
9
|
+
category: string;
|
|
10
|
+
score: number;
|
|
11
|
+
rank: number;
|
|
12
|
+
}>;
|
|
13
|
+
badges: Badge[];
|
|
14
|
+
joinedAt: number;
|
|
15
|
+
updatedAt: number;
|
|
16
|
+
}
|
|
17
|
+
export interface Badge {
|
|
18
|
+
id: string;
|
|
19
|
+
name: string;
|
|
20
|
+
description: string;
|
|
21
|
+
icon: string;
|
|
22
|
+
earnedAt: number;
|
|
23
|
+
category?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface LeaderboardEntry {
|
|
26
|
+
deviceId: string;
|
|
27
|
+
displayName: string;
|
|
28
|
+
score: number;
|
|
29
|
+
tier: string;
|
|
30
|
+
totalContributions: number;
|
|
31
|
+
topCategory: string;
|
|
32
|
+
}
|
|
33
|
+
export declare function getOrCreateProfile(deviceId: string, displayName?: string): ReputationProfile;
|
|
34
|
+
export declare function recordContribution(deviceId: string, data: {
|
|
35
|
+
category?: string;
|
|
36
|
+
accepted: boolean;
|
|
37
|
+
language?: string;
|
|
38
|
+
}): ReputationProfile;
|
|
39
|
+
export declare function getProfile(deviceId: string): ReputationProfile | null;
|
|
40
|
+
export declare function getLeaderboard(limit?: number): LeaderboardEntry[];
|
|
41
|
+
export declare function getAllBadges(): Badge[];
|
|
42
|
+
//# sourceMappingURL=reputation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reputation.d.ts","sourceRoot":"","sources":["../../src/core/reputation.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AA6CD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAkB5F;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,iBAAiB,CAoCpB;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAErE;AAED,wBAAgB,cAAc,CAAC,KAAK,SAAK,GAAG,gBAAgB,EAAE,CAoB7D;AAED,wBAAgB,YAAY,IAAI,KAAK,EAAE,CAEtC"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.getOrCreateProfile = getOrCreateProfile;
|
|
37
|
+
exports.recordContribution = recordContribution;
|
|
38
|
+
exports.getProfile = getProfile;
|
|
39
|
+
exports.getLeaderboard = getLeaderboard;
|
|
40
|
+
exports.getAllBadges = getAllBadges;
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
const os = __importStar(require("os"));
|
|
44
|
+
const REP_DIR = path.join(os.homedir(), '.fivo', 'cell', 'reputation');
|
|
45
|
+
const profiles = new Map();
|
|
46
|
+
function ensureDir() { if (!fs.existsSync(REP_DIR))
|
|
47
|
+
fs.mkdirSync(REP_DIR, { recursive: true }); }
|
|
48
|
+
function profilePath(deviceId) {
|
|
49
|
+
return path.join(REP_DIR, `${deviceId.replace(/[^a-zA-Z0-9_-]/g, '_')}.json`);
|
|
50
|
+
}
|
|
51
|
+
function loadProfile(deviceId) {
|
|
52
|
+
try {
|
|
53
|
+
const fp = profilePath(deviceId);
|
|
54
|
+
if (!fs.existsSync(fp))
|
|
55
|
+
return null;
|
|
56
|
+
return JSON.parse(fs.readFileSync(fp, 'utf-8'));
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function saveProfile(profile) {
|
|
63
|
+
ensureDir();
|
|
64
|
+
fs.writeFileSync(profilePath(profile.deviceId), JSON.stringify(profile, null, 2), 'utf-8');
|
|
65
|
+
profiles.set(profile.deviceId, profile);
|
|
66
|
+
}
|
|
67
|
+
function getTier(score) {
|
|
68
|
+
if (score >= 10000)
|
|
69
|
+
return 'diamond';
|
|
70
|
+
if (score >= 5000)
|
|
71
|
+
return 'platinum';
|
|
72
|
+
if (score >= 2000)
|
|
73
|
+
return 'gold';
|
|
74
|
+
if (score >= 500)
|
|
75
|
+
return 'silver';
|
|
76
|
+
return 'bronze';
|
|
77
|
+
}
|
|
78
|
+
const ALL_BADGES = [
|
|
79
|
+
{ id: 'first_accept', name: 'First Acceptance', description: 'Accepted your first pattern suggestion', icon: '🌟', earnedAt: 0 },
|
|
80
|
+
{ id: 'ten_accepts', name: 'Pattern Pro', description: 'Accepted 10 patterns', icon: '⭐', earnedAt: 0 },
|
|
81
|
+
{ id: 'hundred_accepts', name: 'Century Club', description: 'Accepted 100 patterns', icon: '💯', earnedAt: 0 },
|
|
82
|
+
{ id: 'contributor', name: 'Contributor', description: 'Shared a pattern with the community', icon: '🤝', earnedAt: 0 },
|
|
83
|
+
{ id: 'team_player', name: 'Team Player', description: 'Joined a team', icon: '👥', earnedAt: 0 },
|
|
84
|
+
{ id: 'consistency', name: 'Consistency King', description: 'Active for 30 consecutive days', icon: '🔥', earnedAt: 0 },
|
|
85
|
+
{ id: 'diversity', name: 'Language Master', description: 'Contributed patterns in 5+ languages', icon: '🌐', earnedAt: 0 },
|
|
86
|
+
{ id: 'expert_typescript', name: 'TypeScript Expert', description: 'Top contributor in TypeScript patterns', icon: '📘', earnedAt: 0, category: 'typescript' },
|
|
87
|
+
{ id: 'expert_python', name: 'Python Expert', description: 'Top contributor in Python patterns', icon: '🐍', earnedAt: 0, category: 'python' },
|
|
88
|
+
];
|
|
89
|
+
function getOrCreateProfile(deviceId, displayName) {
|
|
90
|
+
const existing = loadProfile(deviceId);
|
|
91
|
+
if (existing)
|
|
92
|
+
return existing;
|
|
93
|
+
const profile = {
|
|
94
|
+
deviceId,
|
|
95
|
+
displayName: displayName || `dev-${deviceId.slice(0, 8)}`,
|
|
96
|
+
tier: 'bronze',
|
|
97
|
+
score: 0,
|
|
98
|
+
totalContributions: 0,
|
|
99
|
+
acceptedPatterns: 0,
|
|
100
|
+
categoryStrengths: [],
|
|
101
|
+
badges: [],
|
|
102
|
+
joinedAt: Date.now(),
|
|
103
|
+
updatedAt: Date.now(),
|
|
104
|
+
};
|
|
105
|
+
saveProfile(profile);
|
|
106
|
+
return profile;
|
|
107
|
+
}
|
|
108
|
+
function recordContribution(deviceId, data) {
|
|
109
|
+
let profile = getOrCreateProfile(deviceId);
|
|
110
|
+
profile.totalContributions++;
|
|
111
|
+
if (data.accepted)
|
|
112
|
+
profile.acceptedPatterns++;
|
|
113
|
+
const points = data.accepted ? 10 : 2;
|
|
114
|
+
profile.score += points;
|
|
115
|
+
if (data.category) {
|
|
116
|
+
const existing = profile.categoryStrengths.find((c) => c.category === data.category);
|
|
117
|
+
if (existing) {
|
|
118
|
+
existing.score += points;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
profile.categoryStrengths.push({ category: data.category, score: points, rank: 0 });
|
|
122
|
+
}
|
|
123
|
+
profile.categoryStrengths.sort((a, b) => b.score - a.score);
|
|
124
|
+
profile.categoryStrengths.forEach((c, i) => { c.rank = i + 1; });
|
|
125
|
+
}
|
|
126
|
+
// Check badges
|
|
127
|
+
const earnedBadgeIds = new Set(profile.badges.map((b) => b.id));
|
|
128
|
+
if (profile.acceptedPatterns >= 1 && !earnedBadgeIds.has('first_accept')) {
|
|
129
|
+
profile.badges.push({ ...ALL_BADGES.find((b) => b.id === 'first_accept'), earnedAt: Date.now() });
|
|
130
|
+
}
|
|
131
|
+
if (profile.acceptedPatterns >= 10 && !earnedBadgeIds.has('ten_accepts')) {
|
|
132
|
+
profile.badges.push({ ...ALL_BADGES.find((b) => b.id === 'ten_accepts'), earnedAt: Date.now() });
|
|
133
|
+
}
|
|
134
|
+
if (profile.acceptedPatterns >= 100 && !earnedBadgeIds.has('hundred_accepts')) {
|
|
135
|
+
profile.badges.push({ ...ALL_BADGES.find((b) => b.id === 'hundred_accepts'), earnedAt: Date.now() });
|
|
136
|
+
}
|
|
137
|
+
profile.tier = getTier(profile.score);
|
|
138
|
+
profile.updatedAt = Date.now();
|
|
139
|
+
saveProfile(profile);
|
|
140
|
+
return profile;
|
|
141
|
+
}
|
|
142
|
+
function getProfile(deviceId) {
|
|
143
|
+
return loadProfile(deviceId);
|
|
144
|
+
}
|
|
145
|
+
function getLeaderboard(limit = 20) {
|
|
146
|
+
ensureDir();
|
|
147
|
+
try {
|
|
148
|
+
const files = fs.readdirSync(REP_DIR).filter((f) => f.endsWith('.json'));
|
|
149
|
+
const all = [];
|
|
150
|
+
for (const f of files) {
|
|
151
|
+
try {
|
|
152
|
+
const p = JSON.parse(fs.readFileSync(path.join(REP_DIR, f), 'utf-8'));
|
|
153
|
+
all.push({
|
|
154
|
+
deviceId: p.deviceId,
|
|
155
|
+
displayName: p.displayName,
|
|
156
|
+
score: p.score,
|
|
157
|
+
tier: p.tier,
|
|
158
|
+
totalContributions: p.totalContributions,
|
|
159
|
+
topCategory: p.categoryStrengths[0]?.category || 'uncategorized',
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
catch { }
|
|
163
|
+
}
|
|
164
|
+
return all.sort((a, b) => b.score - a.score).slice(0, limit);
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
return [];
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
function getAllBadges() {
|
|
171
|
+
return ALL_BADGES;
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=reputation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reputation.js","sourceRoot":"","sources":["../../src/core/reputation.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,11 +10,11 @@ interface SyntheticUser {
|
|
|
10
10
|
}
|
|
11
11
|
export declare function generateUsers(count: number): SyntheticUser[];
|
|
12
12
|
export declare function benchmark(label: string, fn: () => void): number;
|
|
13
|
-
export declare function loadTest(users: SyntheticUser[], targetRps: number, durationSeconds: number): {
|
|
13
|
+
export declare function loadTest(users: SyntheticUser[], targetRps: number, durationSeconds: number): Promise<{
|
|
14
14
|
totalRequests: number;
|
|
15
15
|
avgLatency: number;
|
|
16
16
|
p95Latency: number;
|
|
17
17
|
errors: number;
|
|
18
|
-
}
|
|
18
|
+
}>;
|
|
19
19
|
export {};
|
|
20
20
|
//# sourceMappingURL=scale-tester.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scale-tester.d.ts","sourceRoot":"","sources":["../../src/core/scale-tester.ts"],"names":[],"mappings":"AAEA,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpF;AAuBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAgB5D;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,CAM/D;
|
|
1
|
+
{"version":3,"file":"scale-tester.d.ts","sourceRoot":"","sources":["../../src/core/scale-tester.ts"],"names":[],"mappings":"AAEA,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpF;AAuBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAgB5D;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,CAM/D;AAMD,wBAAsB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAyB7L"}
|
|
@@ -49,14 +49,22 @@ function benchmark(label, fn) {
|
|
|
49
49
|
console.log(`${label}: ${elapsed.toFixed(2)}ms`);
|
|
50
50
|
return elapsed;
|
|
51
51
|
}
|
|
52
|
-
function
|
|
52
|
+
function sleep(ms) {
|
|
53
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
54
|
+
}
|
|
55
|
+
async function loadTest(users, targetRps, durationSeconds) {
|
|
53
56
|
const latencies = [];
|
|
54
57
|
let errors = 0;
|
|
55
58
|
const totalRequests = targetRps * durationSeconds;
|
|
59
|
+
const intervalMs = 1000 / targetRps;
|
|
56
60
|
for (let i = 0; i < totalRequests; i++) {
|
|
57
61
|
const start = performance.now();
|
|
58
62
|
try {
|
|
59
63
|
const user = users[i % users.length];
|
|
64
|
+
if (!user) {
|
|
65
|
+
errors++;
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
60
68
|
const pattern = user.patterns[i % user.patterns.length];
|
|
61
69
|
if (!pattern) {
|
|
62
70
|
errors++;
|
|
@@ -67,6 +75,9 @@ function loadTest(users, targetRps, durationSeconds) {
|
|
|
67
75
|
errors++;
|
|
68
76
|
}
|
|
69
77
|
latencies.push(performance.now() - start);
|
|
78
|
+
const elapsed = performance.now() - start;
|
|
79
|
+
const waitMs = Math.max(0, intervalMs - elapsed);
|
|
80
|
+
await sleep(waitMs);
|
|
70
81
|
}
|
|
71
82
|
latencies.sort((a, b) => a - b);
|
|
72
83
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scale-tester.js","sourceRoot":"","sources":["../../src/core/scale-tester.ts"],"names":[],"mappings":";AAAA,8DAA8D;;AA6B9D,sCAgBC;AAED,8BAMC;
|
|
1
|
+
{"version":3,"file":"scale-tester.js","sourceRoot":"","sources":["../../src/core/scale-tester.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export interface SearchEntry {
|
|
2
|
+
file: string;
|
|
3
|
+
category: string;
|
|
4
|
+
tags: string[];
|
|
5
|
+
keywords: string[];
|
|
6
|
+
summary: string;
|
|
7
|
+
lastUpdated: number;
|
|
8
|
+
}
|
|
9
|
+
export interface SearchIndex {
|
|
10
|
+
version: number;
|
|
11
|
+
updated: number;
|
|
12
|
+
entries: SearchEntry[];
|
|
13
|
+
}
|
|
14
|
+
export interface SearchResult {
|
|
15
|
+
file: string;
|
|
16
|
+
category: string;
|
|
17
|
+
score: number;
|
|
18
|
+
snippet: string;
|
|
19
|
+
tags: string[];
|
|
20
|
+
}
|
|
21
|
+
export declare class SearchEngine {
|
|
22
|
+
private store;
|
|
23
|
+
private index;
|
|
24
|
+
constructor(cellDir?: string);
|
|
25
|
+
rebuild(): {
|
|
26
|
+
indexed: number;
|
|
27
|
+
};
|
|
28
|
+
search(query: string, limit?: number): SearchResult[];
|
|
29
|
+
getIndex(): SearchIndex;
|
|
30
|
+
private indexFile;
|
|
31
|
+
private extractKeywords;
|
|
32
|
+
private extractFromObject;
|
|
33
|
+
private generateSummary;
|
|
34
|
+
private tokenize;
|
|
35
|
+
private save;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=search-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-engine.d.ts","sourceRoot":"","sources":["../../src/core/search-engine.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAID,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,KAAK,CAAc;gBAEf,OAAO,CAAC,EAAE,MAAM;IAO5B,OAAO,IAAI;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAgC9B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,YAAY,EAAE;IA4ChD,QAAQ,IAAI,WAAW;IAIvB,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,iBAAiB;IAkDzB,OAAO,CAAC,eAAe;IAgCvB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,IAAI;CAGb"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SearchEngine = void 0;
|
|
4
|
+
const cell_store_1 = require("./cell-store");
|
|
5
|
+
const COMMON_WORDS = new Set(['the', 'a', 'an', 'is', 'of', 'to', 'in', 'for', 'on', 'and', 'or', 'with', 'without', 'this', 'that', 'from', 'by', 'at', 'be', 'as', 'we', 'it', 'not', 'no', 'yes']);
|
|
6
|
+
class SearchEngine {
|
|
7
|
+
store;
|
|
8
|
+
index;
|
|
9
|
+
constructor(cellDir) {
|
|
10
|
+
this.store = new cell_store_1.CellStore(cellDir);
|
|
11
|
+
this.index = this.store.read('index.json') || {
|
|
12
|
+
version: 1, updated: Date.now(), entries: [],
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
rebuild() {
|
|
16
|
+
this.index.entries = [];
|
|
17
|
+
let indexed = 0;
|
|
18
|
+
// Scan all .cell/personal/ files
|
|
19
|
+
const personalDir = 'personal';
|
|
20
|
+
const subDirs = ['style', 'architecture', 'productivity', 'projects'];
|
|
21
|
+
// Index specific files
|
|
22
|
+
const filesToIndex = [
|
|
23
|
+
{ file: 'personal/style/syntax.json', tags: ['style', 'syntax', 'code-style'] },
|
|
24
|
+
{ file: 'personal/style/naming.json', tags: ['style', 'naming', 'conventions'] },
|
|
25
|
+
{ file: 'personal/style/structure.json', tags: ['style', 'structure', 'complexity'] },
|
|
26
|
+
{ file: 'personal/style/blind-spots.json', tags: ['blind-spot', 'bugs', 'quality'] },
|
|
27
|
+
{ file: 'personal/architecture/frontend.json', tags: ['architecture', 'frontend', 'ui'] },
|
|
28
|
+
{ file: 'personal/architecture/backend.json', tags: ['architecture', 'backend', 'api'] },
|
|
29
|
+
{ file: 'personal/productivity/speed.json', tags: ['productivity', 'speed', 'patterns'] },
|
|
30
|
+
];
|
|
31
|
+
for (const entry of filesToIndex) {
|
|
32
|
+
const data = this.store.readRaw(entry.file);
|
|
33
|
+
if (data) {
|
|
34
|
+
this.indexFile(entry.file, data, entry.tags);
|
|
35
|
+
indexed++;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
this.index.updated = Date.now();
|
|
39
|
+
this.save();
|
|
40
|
+
return { indexed };
|
|
41
|
+
}
|
|
42
|
+
search(query, limit = 5) {
|
|
43
|
+
const tokens = this.tokenize(query);
|
|
44
|
+
if (tokens.length === 0)
|
|
45
|
+
return [];
|
|
46
|
+
const results = [];
|
|
47
|
+
for (const entry of this.index.entries) {
|
|
48
|
+
let score = 0;
|
|
49
|
+
// Score by keyword matches
|
|
50
|
+
for (const kw of entry.keywords) {
|
|
51
|
+
for (const t of tokens) {
|
|
52
|
+
if (kw.includes(t) || t.includes(kw))
|
|
53
|
+
score += 3;
|
|
54
|
+
if (kw === t)
|
|
55
|
+
score += 5;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// Score by tag matches
|
|
59
|
+
for (const tag of entry.tags) {
|
|
60
|
+
for (const t of tokens) {
|
|
61
|
+
if (tag.includes(t) || t.includes(tag))
|
|
62
|
+
score += 2;
|
|
63
|
+
if (tag === t)
|
|
64
|
+
score += 4;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Score by category match
|
|
68
|
+
for (const t of tokens) {
|
|
69
|
+
if (entry.category.includes(t) || t.includes(entry.category))
|
|
70
|
+
score += 1;
|
|
71
|
+
}
|
|
72
|
+
if (score > 0) {
|
|
73
|
+
results.push({
|
|
74
|
+
file: entry.file,
|
|
75
|
+
category: entry.category,
|
|
76
|
+
score,
|
|
77
|
+
snippet: entry.summary.slice(0, 120),
|
|
78
|
+
tags: entry.tags,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return results.sort((a, b) => b.score - a.score).slice(0, limit);
|
|
83
|
+
}
|
|
84
|
+
getIndex() {
|
|
85
|
+
return this.index;
|
|
86
|
+
}
|
|
87
|
+
indexFile(filePath, data, baseTags) {
|
|
88
|
+
const text = typeof data === 'string' ? data : JSON.stringify(data);
|
|
89
|
+
const keywords = this.extractKeywords(text, data);
|
|
90
|
+
const category = filePath.split('/').pop()?.replace('.json', '') || 'unknown';
|
|
91
|
+
this.index.entries.push({
|
|
92
|
+
file: filePath,
|
|
93
|
+
category,
|
|
94
|
+
tags: baseTags,
|
|
95
|
+
keywords: [...new Set(keywords)],
|
|
96
|
+
summary: this.generateSummary(data, filePath),
|
|
97
|
+
lastUpdated: Date.now(),
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
extractKeywords(text, data) {
|
|
101
|
+
const words = [];
|
|
102
|
+
// Extract from JSON structure
|
|
103
|
+
if (data && typeof data === 'object') {
|
|
104
|
+
this.extractFromObject(data, words);
|
|
105
|
+
}
|
|
106
|
+
// Extract from text
|
|
107
|
+
const tokens = this.tokenize(text);
|
|
108
|
+
for (const t of tokens) {
|
|
109
|
+
if (t.length > 1 && !COMMON_WORDS.has(t)) {
|
|
110
|
+
words.push(t);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return words.slice(0, 50);
|
|
114
|
+
}
|
|
115
|
+
extractFromObject(obj, words) {
|
|
116
|
+
if (!obj || typeof obj !== 'object')
|
|
117
|
+
return;
|
|
118
|
+
// Style data
|
|
119
|
+
if (Array.isArray(obj.syntax)) {
|
|
120
|
+
for (const s of obj.syntax) {
|
|
121
|
+
if (s.category)
|
|
122
|
+
words.push(s.category);
|
|
123
|
+
if (s.preference)
|
|
124
|
+
words.push(s.preference);
|
|
125
|
+
if (s.language)
|
|
126
|
+
words.push(s.language);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
// Naming data
|
|
130
|
+
if (obj.camelCase)
|
|
131
|
+
words.push('camelCase');
|
|
132
|
+
if (obj.snakeCase)
|
|
133
|
+
words.push('snake_case');
|
|
134
|
+
if (obj.booleanNaming?.examples)
|
|
135
|
+
words.push(...obj.booleanNaming.examples);
|
|
136
|
+
// Structure data
|
|
137
|
+
if (obj.avgFileSize)
|
|
138
|
+
words.push('file-size', `${obj.avgFileSize}`);
|
|
139
|
+
if (obj.earlyReturns?.percentage !== undefined)
|
|
140
|
+
words.push('early-returns');
|
|
141
|
+
if (obj.guardClauses?.percentage !== undefined)
|
|
142
|
+
words.push('guard-clauses');
|
|
143
|
+
// Blind spots
|
|
144
|
+
if (Array.isArray(obj)) {
|
|
145
|
+
for (const item of obj) {
|
|
146
|
+
if (item.description)
|
|
147
|
+
words.push(...this.tokenize(item.description));
|
|
148
|
+
if (item.category)
|
|
149
|
+
words.push(item.category);
|
|
150
|
+
if (item.suggestion)
|
|
151
|
+
words.push(...this.tokenize(item.suggestion));
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
// Frontend
|
|
155
|
+
if (obj.framework?.name && obj.framework.name !== 'unknown')
|
|
156
|
+
words.push(obj.framework.name);
|
|
157
|
+
if (obj.styling?.name && obj.styling.name !== 'unknown')
|
|
158
|
+
words.push(obj.styling.name);
|
|
159
|
+
if (obj.stateManagement?.name && obj.stateManagement.name !== 'unknown')
|
|
160
|
+
words.push(obj.stateManagement.name);
|
|
161
|
+
// Backend
|
|
162
|
+
if (obj.apiStyle?.name && obj.apiStyle.name !== 'unknown')
|
|
163
|
+
words.push(obj.apiStyle.name);
|
|
164
|
+
if (obj.database?.name && obj.database.name !== 'unknown')
|
|
165
|
+
words.push(obj.database.name);
|
|
166
|
+
if (obj.auth?.name && obj.auth.name !== 'unknown')
|
|
167
|
+
words.push(obj.auth.name);
|
|
168
|
+
if (obj.validation?.name && obj.validation.name !== 'unknown')
|
|
169
|
+
words.push(obj.validation.name);
|
|
170
|
+
// Productivity
|
|
171
|
+
if (obj.decisions) {
|
|
172
|
+
if (obj.decisions.topAccepted)
|
|
173
|
+
words.push(...obj.decisions.topAccepted);
|
|
174
|
+
if (obj.decisions.topRejected)
|
|
175
|
+
words.push(...obj.decisions.topRejected);
|
|
176
|
+
}
|
|
177
|
+
if (obj.reverts?.files)
|
|
178
|
+
words.push('reverts');
|
|
179
|
+
}
|
|
180
|
+
generateSummary(data, filePath) {
|
|
181
|
+
const name = filePath.replace('.json', '').split('/').pop() || '';
|
|
182
|
+
if (!data)
|
|
183
|
+
return `${name} — No data`;
|
|
184
|
+
try {
|
|
185
|
+
if (Array.isArray(data)) {
|
|
186
|
+
const descriptions = data
|
|
187
|
+
.filter((d) => d.description)
|
|
188
|
+
.map((d) => d.description)
|
|
189
|
+
.slice(0, 3);
|
|
190
|
+
return `${name} (${data.length} items) — ${descriptions.join(', ')}`;
|
|
191
|
+
}
|
|
192
|
+
if (data.framework?.name && data.framework.name !== 'unknown') {
|
|
193
|
+
return `${name} — ${data.framework.name} · ${data.stateManagement?.name || ''} · ${data.styling?.name || ''}`;
|
|
194
|
+
}
|
|
195
|
+
if (data.apiStyle?.name) {
|
|
196
|
+
return `${name} — ${data.framework?.name || ''} · ${data.apiStyle.name} · ${data.database?.name || ''}`;
|
|
197
|
+
}
|
|
198
|
+
if (data.camelCase) {
|
|
199
|
+
return `${name} — ${Math.round(data.camelCase.confidence * 100)}% camelCase, abbreviations: ${data.abbreviations?.total || 0}`;
|
|
200
|
+
}
|
|
201
|
+
if (data.avgFileSize) {
|
|
202
|
+
return `${name} — avg file ${data.avgFileSize} lines, nesting ${data.nestingDepth?.average || 0}`;
|
|
203
|
+
}
|
|
204
|
+
if (data.speed) {
|
|
205
|
+
return `${name} — ${data.speed.totalEdits} edits, ${data.decisions?.acceptRate || 0}% accept rate`;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
catch { }
|
|
209
|
+
return `${name} — ${Object.keys(data).slice(0, 5).join(', ')}`;
|
|
210
|
+
}
|
|
211
|
+
tokenize(text) {
|
|
212
|
+
return text
|
|
213
|
+
.toLowerCase()
|
|
214
|
+
.replace(/[^a-z0-9\s_-]/g, ' ')
|
|
215
|
+
.split(/[\s_-]+/)
|
|
216
|
+
.filter(t => t.length > 1);
|
|
217
|
+
}
|
|
218
|
+
save() {
|
|
219
|
+
this.store.write('index.json', this.index);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
exports.SearchEngine = SearchEngine;
|
|
223
|
+
//# sourceMappingURL=search-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-engine.js","sourceRoot":"","sources":["../../src/core/search-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,8 @@ export interface SecurityPrediction {
|
|
|
7
7
|
}
|
|
8
8
|
export declare class SecurityPredictor {
|
|
9
9
|
predict(code: string): SecurityPrediction[];
|
|
10
|
-
private
|
|
10
|
+
private analyzeAst;
|
|
11
|
+
private visitNode;
|
|
11
12
|
private checkSQLInjection;
|
|
12
13
|
private checkPathTraversal;
|
|
13
14
|
private checkHardcodedSecret;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-predictor.d.ts","sourceRoot":"","sources":["../../src/core/security-predictor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"security-predictor.d.ts","sourceRoot":"","sources":["../../src/core/security-predictor.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,KAAK,GAAG,eAAe,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,EAAE;IA0B3C,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,SAAS;IAyDjB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,oBAAoB;CAmB7B"}
|