centient 2.20.0
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/CHANGELOG.md +362 -0
- package/README.md +433 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +62 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +478 -0
- package/dist/server.js.map +1 -0
- package/dist/telemetry/index.d.ts +4 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +3 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/instrumentation.d.ts +10 -0
- package/dist/telemetry/instrumentation.d.ts.map +1 -0
- package/dist/telemetry/instrumentation.js +86 -0
- package/dist/telemetry/instrumentation.js.map +1 -0
- package/dist/telemetry/tracer.d.ts +6 -0
- package/dist/telemetry/tracer.d.ts.map +1 -0
- package/dist/telemetry/tracer.js +27 -0
- package/dist/telemetry/tracer.js.map +1 -0
- package/dist/tools/artifacts/diffSessions.d.ts +9 -0
- package/dist/tools/artifacts/diffSessions.d.ts.map +1 -0
- package/dist/tools/artifacts/diffSessions.js +320 -0
- package/dist/tools/artifacts/diffSessions.js.map +1 -0
- package/dist/tools/artifacts/extractSessionContext.d.ts +9 -0
- package/dist/tools/artifacts/extractSessionContext.d.ts.map +1 -0
- package/dist/tools/artifacts/extractSessionContext.js +291 -0
- package/dist/tools/artifacts/extractSessionContext.js.map +1 -0
- package/dist/tools/artifacts/getSessionCode.d.ts +9 -0
- package/dist/tools/artifacts/getSessionCode.d.ts.map +1 -0
- package/dist/tools/artifacts/getSessionCode.js +104 -0
- package/dist/tools/artifacts/getSessionCode.js.map +1 -0
- package/dist/tools/artifacts/loadSession.d.ts +9 -0
- package/dist/tools/artifacts/loadSession.d.ts.map +1 -0
- package/dist/tools/artifacts/loadSession.js +163 -0
- package/dist/tools/artifacts/loadSession.js.map +1 -0
- package/dist/tools/artifacts/searchArtifacts.d.ts +9 -0
- package/dist/tools/artifacts/searchArtifacts.d.ts.map +1 -0
- package/dist/tools/artifacts/searchArtifacts.js +98 -0
- package/dist/tools/artifacts/searchArtifacts.js.map +1 -0
- package/dist/tools/branching/closeBranch.d.ts +10 -0
- package/dist/tools/branching/closeBranch.d.ts.map +1 -0
- package/dist/tools/branching/closeBranch.js +193 -0
- package/dist/tools/branching/closeBranch.js.map +1 -0
- package/dist/tools/branching/createBranch.d.ts +10 -0
- package/dist/tools/branching/createBranch.d.ts.map +1 -0
- package/dist/tools/branching/createBranch.js +136 -0
- package/dist/tools/branching/createBranch.js.map +1 -0
- package/dist/tools/branching/listBranches.d.ts +9 -0
- package/dist/tools/branching/listBranches.d.ts.map +1 -0
- package/dist/tools/branching/listBranches.js +212 -0
- package/dist/tools/branching/listBranches.js.map +1 -0
- package/dist/tools/branching/listDecisionPoints.d.ts +9 -0
- package/dist/tools/branching/listDecisionPoints.d.ts.map +1 -0
- package/dist/tools/branching/listDecisionPoints.js +156 -0
- package/dist/tools/branching/listDecisionPoints.js.map +1 -0
- package/dist/tools/branching/markDecisionPoint.d.ts +10 -0
- package/dist/tools/branching/markDecisionPoint.d.ts.map +1 -0
- package/dist/tools/branching/markDecisionPoint.js +149 -0
- package/dist/tools/branching/markDecisionPoint.js.map +1 -0
- package/dist/tools/branching/switchBranch.d.ts +9 -0
- package/dist/tools/branching/switchBranch.d.ts.map +1 -0
- package/dist/tools/branching/switchBranch.js +153 -0
- package/dist/tools/branching/switchBranch.js.map +1 -0
- package/dist/tools/consultation/aggregateConsensus.d.ts +9 -0
- package/dist/tools/consultation/aggregateConsensus.d.ts.map +1 -0
- package/dist/tools/consultation/aggregateConsensus.js +259 -0
- package/dist/tools/consultation/aggregateConsensus.js.map +1 -0
- package/dist/tools/consultation/captureConsultationResponse.d.ts +11 -0
- package/dist/tools/consultation/captureConsultationResponse.d.ts.map +1 -0
- package/dist/tools/consultation/captureConsultationResponse.js +244 -0
- package/dist/tools/consultation/captureConsultationResponse.js.map +1 -0
- package/dist/tools/consultation/consultLlmStream.d.ts +9 -0
- package/dist/tools/consultation/consultLlmStream.d.ts.map +1 -0
- package/dist/tools/consultation/consultLlmStream.js +201 -0
- package/dist/tools/consultation/consultLlmStream.js.map +1 -0
- package/dist/tools/consultation/index.d.ts +8 -0
- package/dist/tools/consultation/index.d.ts.map +1 -0
- package/dist/tools/consultation/index.js +8 -0
- package/dist/tools/consultation/index.js.map +1 -0
- package/dist/tools/consultation/peerReviewContract.d.ts +146 -0
- package/dist/tools/consultation/peerReviewContract.d.ts.map +1 -0
- package/dist/tools/consultation/peerReviewContract.js +731 -0
- package/dist/tools/consultation/peerReviewContract.js.map +1 -0
- package/dist/tools/consultation/peerReviewSession.d.ts +9 -0
- package/dist/tools/consultation/peerReviewSession.d.ts.map +1 -0
- package/dist/tools/consultation/peerReviewSession.js +433 -0
- package/dist/tools/consultation/peerReviewSession.js.map +1 -0
- package/dist/tools/consultation/prepareConsultationContext.d.ts +9 -0
- package/dist/tools/consultation/prepareConsultationContext.d.ts.map +1 -0
- package/dist/tools/consultation/prepareConsultationContext.js +263 -0
- package/dist/tools/consultation/prepareConsultationContext.js.map +1 -0
- package/dist/tools/consultation/seekConsensus.d.ts +9 -0
- package/dist/tools/consultation/seekConsensus.d.ts.map +1 -0
- package/dist/tools/consultation/seekConsensus.js +358 -0
- package/dist/tools/consultation/seekConsensus.js.map +1 -0
- package/dist/tools/consultation/validateDecision.d.ts +9 -0
- package/dist/tools/consultation/validateDecision.d.ts.map +1 -0
- package/dist/tools/consultation/validateDecision.js +253 -0
- package/dist/tools/consultation/validateDecision.js.map +1 -0
- package/dist/tools/consultation/validateReviewResponse.d.ts +9 -0
- package/dist/tools/consultation/validateReviewResponse.d.ts.map +1 -0
- package/dist/tools/consultation/validateReviewResponse.js +105 -0
- package/dist/tools/consultation/validateReviewResponse.js.map +1 -0
- package/dist/tools/graph/addNoteRelationship.d.ts +9 -0
- package/dist/tools/graph/addNoteRelationship.d.ts.map +1 -0
- package/dist/tools/graph/addNoteRelationship.js +120 -0
- package/dist/tools/graph/addNoteRelationship.js.map +1 -0
- package/dist/tools/graph/linkSessions.d.ts +9 -0
- package/dist/tools/graph/linkSessions.d.ts.map +1 -0
- package/dist/tools/graph/linkSessions.js +126 -0
- package/dist/tools/graph/linkSessions.js.map +1 -0
- package/dist/tools/graph/queryTemporalGraph.d.ts +9 -0
- package/dist/tools/graph/queryTemporalGraph.d.ts.map +1 -0
- package/dist/tools/graph/queryTemporalGraph.js +339 -0
- package/dist/tools/graph/queryTemporalGraph.js.map +1 -0
- package/dist/tools/health/getCircuitBreakerStats.d.ts +9 -0
- package/dist/tools/health/getCircuitBreakerStats.d.ts.map +1 -0
- package/dist/tools/health/getCircuitBreakerStats.js +195 -0
- package/dist/tools/health/getCircuitBreakerStats.js.map +1 -0
- package/dist/tools/health/getContextHealth.d.ts +9 -0
- package/dist/tools/health/getContextHealth.d.ts.map +1 -0
- package/dist/tools/health/getContextHealth.js +331 -0
- package/dist/tools/health/getContextHealth.js.map +1 -0
- package/dist/tools/health/getQdrantHealth.d.ts +9 -0
- package/dist/tools/health/getQdrantHealth.d.ts.map +1 -0
- package/dist/tools/health/getQdrantHealth.js +144 -0
- package/dist/tools/health/getQdrantHealth.js.map +1 -0
- package/dist/tools/health/getRateLimitStats.d.ts +9 -0
- package/dist/tools/health/getRateLimitStats.d.ts.map +1 -0
- package/dist/tools/health/getRateLimitStats.js +191 -0
- package/dist/tools/health/getRateLimitStats.js.map +1 -0
- package/dist/tools/knowledge/index.d.ts +4 -0
- package/dist/tools/knowledge/index.d.ts.map +1 -0
- package/dist/tools/knowledge/index.js +4 -0
- package/dist/tools/knowledge/index.js.map +1 -0
- package/dist/tools/knowledge/promoteDecision.d.ts +9 -0
- package/dist/tools/knowledge/promoteDecision.d.ts.map +1 -0
- package/dist/tools/knowledge/promoteDecision.js +139 -0
- package/dist/tools/knowledge/promoteDecision.js.map +1 -0
- package/dist/tools/knowledge/promoteLearning.d.ts +9 -0
- package/dist/tools/knowledge/promoteLearning.d.ts.map +1 -0
- package/dist/tools/knowledge/promoteLearning.js +132 -0
- package/dist/tools/knowledge/promoteLearning.js.map +1 -0
- package/dist/tools/knowledge/searchMetaKnowledge.d.ts +9 -0
- package/dist/tools/knowledge/searchMetaKnowledge.d.ts.map +1 -0
- package/dist/tools/knowledge/searchMetaKnowledge.js +120 -0
- package/dist/tools/knowledge/searchMetaKnowledge.js.map +1 -0
- package/dist/tools/memory/addNote.d.ts +9 -0
- package/dist/tools/memory/addNote.d.ts.map +1 -0
- package/dist/tools/memory/addNote.js +105 -0
- package/dist/tools/memory/addNote.js.map +1 -0
- package/dist/tools/memory/getDecisions.d.ts +9 -0
- package/dist/tools/memory/getDecisions.d.ts.map +1 -0
- package/dist/tools/memory/getDecisions.js +93 -0
- package/dist/tools/memory/getDecisions.js.map +1 -0
- package/dist/tools/memory/getHypotheses.d.ts +9 -0
- package/dist/tools/memory/getHypotheses.d.ts.map +1 -0
- package/dist/tools/memory/getHypotheses.js +93 -0
- package/dist/tools/memory/getHypotheses.js.map +1 -0
- package/dist/tools/memory-bank/memoryBankList.d.ts +9 -0
- package/dist/tools/memory-bank/memoryBankList.d.ts.map +1 -0
- package/dist/tools/memory-bank/memoryBankList.js +108 -0
- package/dist/tools/memory-bank/memoryBankList.js.map +1 -0
- package/dist/tools/memory-bank/memoryBankSearch.d.ts +9 -0
- package/dist/tools/memory-bank/memoryBankSearch.d.ts.map +1 -0
- package/dist/tools/memory-bank/memoryBankSearch.js +128 -0
- package/dist/tools/memory-bank/memoryBankSearch.js.map +1 -0
- package/dist/tools/metrics/getAuditLog.d.ts +9 -0
- package/dist/tools/metrics/getAuditLog.d.ts.map +1 -0
- package/dist/tools/metrics/getAuditLog.js +172 -0
- package/dist/tools/metrics/getAuditLog.js.map +1 -0
- package/dist/tools/metrics/getCompressionRatio.d.ts +9 -0
- package/dist/tools/metrics/getCompressionRatio.d.ts.map +1 -0
- package/dist/tools/metrics/getCompressionRatio.js +112 -0
- package/dist/tools/metrics/getCompressionRatio.js.map +1 -0
- package/dist/tools/metrics/getCostDashboard.d.ts +9 -0
- package/dist/tools/metrics/getCostDashboard.d.ts.map +1 -0
- package/dist/tools/metrics/getCostDashboard.js +126 -0
- package/dist/tools/metrics/getCostDashboard.js.map +1 -0
- package/dist/tools/metrics/getPatternAnalytics.d.ts +9 -0
- package/dist/tools/metrics/getPatternAnalytics.d.ts.map +1 -0
- package/dist/tools/metrics/getPatternAnalytics.js +192 -0
- package/dist/tools/metrics/getPatternAnalytics.js.map +1 -0
- package/dist/tools/metrics/getPatternReuse.d.ts +9 -0
- package/dist/tools/metrics/getPatternReuse.d.ts.map +1 -0
- package/dist/tools/metrics/getPatternReuse.js +130 -0
- package/dist/tools/metrics/getPatternReuse.js.map +1 -0
- package/dist/tools/patterns/createPatternVersion.d.ts +9 -0
- package/dist/tools/patterns/createPatternVersion.d.ts.map +1 -0
- package/dist/tools/patterns/createPatternVersion.js +137 -0
- package/dist/tools/patterns/createPatternVersion.js.map +1 -0
- package/dist/tools/patterns/deprecatePatternVersion.d.ts +9 -0
- package/dist/tools/patterns/deprecatePatternVersion.d.ts.map +1 -0
- package/dist/tools/patterns/deprecatePatternVersion.js +131 -0
- package/dist/tools/patterns/deprecatePatternVersion.js.map +1 -0
- package/dist/tools/patterns/diffPatterns.d.ts +9 -0
- package/dist/tools/patterns/diffPatterns.d.ts.map +1 -0
- package/dist/tools/patterns/diffPatterns.js +402 -0
- package/dist/tools/patterns/diffPatterns.js.map +1 -0
- package/dist/tools/patterns/executeSkill.d.ts +9 -0
- package/dist/tools/patterns/executeSkill.d.ts.map +1 -0
- package/dist/tools/patterns/executeSkill.js +230 -0
- package/dist/tools/patterns/executeSkill.js.map +1 -0
- package/dist/tools/patterns/findPatterns.d.ts +9 -0
- package/dist/tools/patterns/findPatterns.d.ts.map +1 -0
- package/dist/tools/patterns/findPatterns.js +164 -0
- package/dist/tools/patterns/findPatterns.js.map +1 -0
- package/dist/tools/patterns/getPatternVersions.d.ts +9 -0
- package/dist/tools/patterns/getPatternVersions.d.ts.map +1 -0
- package/dist/tools/patterns/getPatternVersions.js +114 -0
- package/dist/tools/patterns/getPatternVersions.js.map +1 -0
- package/dist/tools/patterns/indexPatternLibrary.d.ts +9 -0
- package/dist/tools/patterns/indexPatternLibrary.d.ts.map +1 -0
- package/dist/tools/patterns/indexPatternLibrary.js +228 -0
- package/dist/tools/patterns/indexPatternLibrary.js.map +1 -0
- package/dist/tools/patterns/loadSkill.d.ts +9 -0
- package/dist/tools/patterns/loadSkill.d.ts.map +1 -0
- package/dist/tools/patterns/loadSkill.js +229 -0
- package/dist/tools/patterns/loadSkill.js.map +1 -0
- package/dist/tools/patterns/predictOutcome.d.ts +9 -0
- package/dist/tools/patterns/predictOutcome.d.ts.map +1 -0
- package/dist/tools/patterns/predictOutcome.js +256 -0
- package/dist/tools/patterns/predictOutcome.js.map +1 -0
- package/dist/tools/patterns/recommendPatterns.d.ts +9 -0
- package/dist/tools/patterns/recommendPatterns.d.ts.map +1 -0
- package/dist/tools/patterns/recommendPatterns.js +278 -0
- package/dist/tools/patterns/recommendPatterns.js.map +1 -0
- package/dist/tools/patterns/searchPatterns.d.ts +9 -0
- package/dist/tools/patterns/searchPatterns.d.ts.map +1 -0
- package/dist/tools/patterns/searchPatterns.js +144 -0
- package/dist/tools/patterns/searchPatterns.js.map +1 -0
- package/dist/tools/patterns/signPattern.d.ts +9 -0
- package/dist/tools/patterns/signPattern.d.ts.map +1 -0
- package/dist/tools/patterns/signPattern.js +147 -0
- package/dist/tools/patterns/signPattern.js.map +1 -0
- package/dist/tools/patterns/trackPatternUsage.d.ts +9 -0
- package/dist/tools/patterns/trackPatternUsage.d.ts.map +1 -0
- package/dist/tools/patterns/trackPatternUsage.js +126 -0
- package/dist/tools/patterns/trackPatternUsage.js.map +1 -0
- package/dist/tools/research/approveResearchPlan.d.ts +9 -0
- package/dist/tools/research/approveResearchPlan.d.ts.map +1 -0
- package/dist/tools/research/approveResearchPlan.js +204 -0
- package/dist/tools/research/approveResearchPlan.js.map +1 -0
- package/dist/tools/research/generateResearchPlan.d.ts +9 -0
- package/dist/tools/research/generateResearchPlan.d.ts.map +1 -0
- package/dist/tools/research/generateResearchPlan.js +347 -0
- package/dist/tools/research/generateResearchPlan.js.map +1 -0
- package/dist/tools/research/listResearchSessions.d.ts +9 -0
- package/dist/tools/research/listResearchSessions.d.ts.map +1 -0
- package/dist/tools/research/listResearchSessions.js +108 -0
- package/dist/tools/research/listResearchSessions.js.map +1 -0
- package/dist/tools/research/suggestModelForResearch.d.ts +9 -0
- package/dist/tools/research/suggestModelForResearch.d.ts.map +1 -0
- package/dist/tools/research/suggestModelForResearch.js +416 -0
- package/dist/tools/research/suggestModelForResearch.js.map +1 -0
- package/dist/tools/research/trackResearchProgress.d.ts +9 -0
- package/dist/tools/research/trackResearchProgress.d.ts.map +1 -0
- package/dist/tools/research/trackResearchProgress.js +177 -0
- package/dist/tools/research/trackResearchProgress.js.map +1 -0
- package/dist/tools/rlvr/rlvrExecute.d.ts +9 -0
- package/dist/tools/rlvr/rlvrExecute.d.ts.map +1 -0
- package/dist/tools/rlvr/rlvrExecute.js +296 -0
- package/dist/tools/rlvr/rlvrExecute.js.map +1 -0
- package/dist/tools/search/getSearchStats.d.ts +9 -0
- package/dist/tools/search/getSearchStats.d.ts.map +1 -0
- package/dist/tools/search/getSearchStats.js +107 -0
- package/dist/tools/search/getSearchStats.js.map +1 -0
- package/dist/tools/search/index.d.ts +4 -0
- package/dist/tools/search/index.d.ts.map +1 -0
- package/dist/tools/search/index.js +4 -0
- package/dist/tools/search/index.js.map +1 -0
- package/dist/tools/search/indexSession.d.ts +9 -0
- package/dist/tools/search/indexSession.d.ts.map +1 -0
- package/dist/tools/search/indexSession.js +254 -0
- package/dist/tools/search/indexSession.js.map +1 -0
- package/dist/tools/search/semanticSearch.d.ts +9 -0
- package/dist/tools/search/semanticSearch.d.ts.map +1 -0
- package/dist/tools/search/semanticSearch.js +171 -0
- package/dist/tools/search/semanticSearch.js.map +1 -0
- package/dist/tools/session/askSession.d.ts +9 -0
- package/dist/tools/session/askSession.d.ts.map +1 -0
- package/dist/tools/session/askSession.js +311 -0
- package/dist/tools/session/askSession.js.map +1 -0
- package/dist/tools/session/checkClaimConsistency.d.ts +9 -0
- package/dist/tools/session/checkClaimConsistency.d.ts.map +1 -0
- package/dist/tools/session/checkClaimConsistency.js +343 -0
- package/dist/tools/session/checkClaimConsistency.js.map +1 -0
- package/dist/tools/session/checkCodeFeasibility.d.ts +19 -0
- package/dist/tools/session/checkCodeFeasibility.d.ts.map +1 -0
- package/dist/tools/session/checkCodeFeasibility.js +766 -0
- package/dist/tools/session/checkCodeFeasibility.js.map +1 -0
- package/dist/tools/session/checkConstraintViolation.d.ts +9 -0
- package/dist/tools/session/checkConstraintViolation.d.ts.map +1 -0
- package/dist/tools/session/checkConstraintViolation.js +98 -0
- package/dist/tools/session/checkConstraintViolation.js.map +1 -0
- package/dist/tools/session/checkDuplicateWork.d.ts +9 -0
- package/dist/tools/session/checkDuplicateWork.d.ts.map +1 -0
- package/dist/tools/session/checkDuplicateWork.js +105 -0
- package/dist/tools/session/checkDuplicateWork.js.map +1 -0
- package/dist/tools/session/extractSessionMemories.d.ts +9 -0
- package/dist/tools/session/extractSessionMemories.d.ts.map +1 -0
- package/dist/tools/session/extractSessionMemories.js +203 -0
- package/dist/tools/session/extractSessionMemories.js.map +1 -0
- package/dist/tools/session/finalizeSessionCoordination.d.ts +9 -0
- package/dist/tools/session/finalizeSessionCoordination.d.ts.map +1 -0
- package/dist/tools/session/finalizeSessionCoordination.js +85 -0
- package/dist/tools/session/finalizeSessionCoordination.js.map +1 -0
- package/dist/tools/session/flagForVerification.d.ts +17 -0
- package/dist/tools/session/flagForVerification.d.ts.map +1 -0
- package/dist/tools/session/flagForVerification.js +232 -0
- package/dist/tools/session/flagForVerification.js.map +1 -0
- package/dist/tools/session/getConstraints.d.ts +9 -0
- package/dist/tools/session/getConstraints.d.ts.map +1 -0
- package/dist/tools/session/getConstraints.js +84 -0
- package/dist/tools/session/getConstraints.js.map +1 -0
- package/dist/tools/session/getSessionStats.d.ts +9 -0
- package/dist/tools/session/getSessionStats.d.ts.map +1 -0
- package/dist/tools/session/getSessionStats.js +86 -0
- package/dist/tools/session/getSessionStats.js.map +1 -0
- package/dist/tools/session/getSessionSummary.d.ts +9 -0
- package/dist/tools/session/getSessionSummary.d.ts.map +1 -0
- package/dist/tools/session/getSessionSummary.js +360 -0
- package/dist/tools/session/getSessionSummary.js.map +1 -0
- package/dist/tools/session/getVerificationPrompt.d.ts +9 -0
- package/dist/tools/session/getVerificationPrompt.d.ts.map +1 -0
- package/dist/tools/session/getVerificationPrompt.js +210 -0
- package/dist/tools/session/getVerificationPrompt.js.map +1 -0
- package/dist/tools/session/liftConstraint.d.ts +9 -0
- package/dist/tools/session/liftConstraint.d.ts.map +1 -0
- package/dist/tools/session/liftConstraint.js +94 -0
- package/dist/tools/session/liftConstraint.js.map +1 -0
- package/dist/tools/session/recordVerificationOutcome.d.ts +24 -0
- package/dist/tools/session/recordVerificationOutcome.d.ts.map +1 -0
- package/dist/tools/session/recordVerificationOutcome.js +237 -0
- package/dist/tools/session/recordVerificationOutcome.js.map +1 -0
- package/dist/tools/session/saveSessionNote.d.ts +9 -0
- package/dist/tools/session/saveSessionNote.d.ts.map +1 -0
- package/dist/tools/session/saveSessionNote.js +213 -0
- package/dist/tools/session/saveSessionNote.js.map +1 -0
- package/dist/tools/session/sessionSearch.d.ts +9 -0
- package/dist/tools/session/sessionSearch.d.ts.map +1 -0
- package/dist/tools/session/sessionSearch.js +116 -0
- package/dist/tools/session/sessionSearch.js.map +1 -0
- package/dist/tools/session/startSessionCoordination.d.ts +13 -0
- package/dist/tools/session/startSessionCoordination.d.ts.map +1 -0
- package/dist/tools/session/startSessionCoordination.js +126 -0
- package/dist/tools/session/startSessionCoordination.js.map +1 -0
- package/dist/tools/session/trackApprovalFingerprint.d.ts +19 -0
- package/dist/tools/session/trackApprovalFingerprint.d.ts.map +1 -0
- package/dist/tools/session/trackApprovalFingerprint.js +172 -0
- package/dist/tools/session/trackApprovalFingerprint.js.map +1 -0
- package/dist/tools/session/trackConstraint.d.ts +9 -0
- package/dist/tools/session/trackConstraint.d.ts.map +1 -0
- package/dist/tools/session/trackConstraint.js +101 -0
- package/dist/tools/session/trackConstraint.js.map +1 -0
- package/dist/tools/session/validateCitation.d.ts +9 -0
- package/dist/tools/session/validateCitation.d.ts.map +1 -0
- package/dist/tools/session/validateCitation.js +450 -0
- package/dist/tools/session/validateCitation.js.map +1 -0
- package/dist/tools/stuck/checkStuckPattern.d.ts +9 -0
- package/dist/tools/stuck/checkStuckPattern.d.ts.map +1 -0
- package/dist/tools/stuck/checkStuckPattern.js +93 -0
- package/dist/tools/stuck/checkStuckPattern.js.map +1 -0
- package/dist/tools/stuck/getRecoverySuggestions.d.ts +9 -0
- package/dist/tools/stuck/getRecoverySuggestions.d.ts.map +1 -0
- package/dist/tools/stuck/getRecoverySuggestions.js +132 -0
- package/dist/tools/stuck/getRecoverySuggestions.js.map +1 -0
- package/dist/types/research.d.ts +76 -0
- package/dist/types/research.d.ts.map +1 -0
- package/dist/types/research.js +2 -0
- package/dist/types/research.js.map +1 -0
- package/dist/types/temporal-graph.d.ts +97 -0
- package/dist/types/temporal-graph.d.ts.map +1 -0
- package/dist/types/temporal-graph.js +2 -0
- package/dist/types/temporal-graph.js.map +1 -0
- package/dist/utils/AuditLogger.d.ts +99 -0
- package/dist/utils/AuditLogger.d.ts.map +1 -0
- package/dist/utils/AuditLogger.js +303 -0
- package/dist/utils/AuditLogger.js.map +1 -0
- package/dist/utils/CacheManager.d.ts +56 -0
- package/dist/utils/CacheManager.d.ts.map +1 -0
- package/dist/utils/CacheManager.js +184 -0
- package/dist/utils/CacheManager.js.map +1 -0
- package/dist/utils/CircuitBreaker.d.ts +76 -0
- package/dist/utils/CircuitBreaker.d.ts.map +1 -0
- package/dist/utils/CircuitBreaker.js +236 -0
- package/dist/utils/CircuitBreaker.js.map +1 -0
- package/dist/utils/CostTracker.d.ts +83 -0
- package/dist/utils/CostTracker.d.ts.map +1 -0
- package/dist/utils/CostTracker.js +228 -0
- package/dist/utils/CostTracker.js.map +1 -0
- package/dist/utils/DockerSandbox.d.ts +39 -0
- package/dist/utils/DockerSandbox.d.ts.map +1 -0
- package/dist/utils/DockerSandbox.js +277 -0
- package/dist/utils/DockerSandbox.js.map +1 -0
- package/dist/utils/FinalizationCompressor.d.ts +70 -0
- package/dist/utils/FinalizationCompressor.d.ts.map +1 -0
- package/dist/utils/FinalizationCompressor.js +295 -0
- package/dist/utils/FinalizationCompressor.js.map +1 -0
- package/dist/utils/MetaKnowledgeManager.d.ts +63 -0
- package/dist/utils/MetaKnowledgeManager.d.ts.map +1 -0
- package/dist/utils/MetaKnowledgeManager.js +152 -0
- package/dist/utils/MetaKnowledgeManager.js.map +1 -0
- package/dist/utils/PatternIndexer.d.ts +83 -0
- package/dist/utils/PatternIndexer.d.ts.map +1 -0
- package/dist/utils/PatternIndexer.js +730 -0
- package/dist/utils/PatternIndexer.js.map +1 -0
- package/dist/utils/PatternUsageTracker.d.ts +97 -0
- package/dist/utils/PatternUsageTracker.d.ts.map +1 -0
- package/dist/utils/PatternUsageTracker.js +352 -0
- package/dist/utils/PatternUsageTracker.js.map +1 -0
- package/dist/utils/PatternVerifier.d.ts +71 -0
- package/dist/utils/PatternVerifier.d.ts.map +1 -0
- package/dist/utils/PatternVerifier.js +328 -0
- package/dist/utils/PatternVerifier.js.map +1 -0
- package/dist/utils/PatternVersionManager.d.ts +47 -0
- package/dist/utils/PatternVersionManager.d.ts.map +1 -0
- package/dist/utils/PatternVersionManager.js +308 -0
- package/dist/utils/PatternVersionManager.js.map +1 -0
- package/dist/utils/QdrantConnectionManager.d.ts +47 -0
- package/dist/utils/QdrantConnectionManager.d.ts.map +1 -0
- package/dist/utils/QdrantConnectionManager.js +228 -0
- package/dist/utils/QdrantConnectionManager.js.map +1 -0
- package/dist/utils/RateLimiter.d.ts +85 -0
- package/dist/utils/RateLimiter.d.ts.map +1 -0
- package/dist/utils/RateLimiter.js +300 -0
- package/dist/utils/RateLimiter.js.map +1 -0
- package/dist/utils/RecoveryEngine.d.ts +45 -0
- package/dist/utils/RecoveryEngine.d.ts.map +1 -0
- package/dist/utils/RecoveryEngine.js +268 -0
- package/dist/utils/RecoveryEngine.js.map +1 -0
- package/dist/utils/ResearchCoordinator.d.ts +30 -0
- package/dist/utils/ResearchCoordinator.d.ts.map +1 -0
- package/dist/utils/ResearchCoordinator.js +197 -0
- package/dist/utils/ResearchCoordinator.js.map +1 -0
- package/dist/utils/SessionCoordinator.d.ts +111 -0
- package/dist/utils/SessionCoordinator.d.ts.map +1 -0
- package/dist/utils/SessionCoordinator.js +1062 -0
- package/dist/utils/SessionCoordinator.js.map +1 -0
- package/dist/utils/SkillExecutor.d.ts +50 -0
- package/dist/utils/SkillExecutor.d.ts.map +1 -0
- package/dist/utils/SkillExecutor.js +396 -0
- package/dist/utils/SkillExecutor.js.map +1 -0
- package/dist/utils/StuckDetector.d.ts +43 -0
- package/dist/utils/StuckDetector.d.ts.map +1 -0
- package/dist/utils/StuckDetector.js +336 -0
- package/dist/utils/StuckDetector.js.map +1 -0
- package/dist/utils/TemporalGraphIndex.d.ts +33 -0
- package/dist/utils/TemporalGraphIndex.d.ts.map +1 -0
- package/dist/utils/TemporalGraphIndex.js +218 -0
- package/dist/utils/TemporalGraphIndex.js.map +1 -0
- package/dist/utils/artifacts.d.ts +35 -0
- package/dist/utils/artifacts.d.ts.map +1 -0
- package/dist/utils/artifacts.js +294 -0
- package/dist/utils/artifacts.js.map +1 -0
- package/dist/utils/consensusAggregator.d.ts +50 -0
- package/dist/utils/consensusAggregator.d.ts.map +1 -0
- package/dist/utils/consensusAggregator.js +195 -0
- package/dist/utils/consensusAggregator.js.map +1 -0
- package/dist/utils/contextBuilder.d.ts +58 -0
- package/dist/utils/contextBuilder.d.ts.map +1 -0
- package/dist/utils/contextBuilder.js +221 -0
- package/dist/utils/contextBuilder.js.map +1 -0
- package/dist/utils/costPricing.d.ts +11 -0
- package/dist/utils/costPricing.d.ts.map +1 -0
- package/dist/utils/costPricing.js +86 -0
- package/dist/utils/costPricing.js.map +1 -0
- package/dist/utils/filesystem.d.ts +16 -0
- package/dist/utils/filesystem.d.ts.map +1 -0
- package/dist/utils/filesystem.js +184 -0
- package/dist/utils/filesystem.js.map +1 -0
- package/dist/utils/llmStreamClient.d.ts +41 -0
- package/dist/utils/llmStreamClient.d.ts.map +1 -0
- package/dist/utils/llmStreamClient.js +257 -0
- package/dist/utils/llmStreamClient.js.map +1 -0
- package/dist/utils/memory.d.ts +22 -0
- package/dist/utils/memory.d.ts.map +1 -0
- package/dist/utils/memory.js +67 -0
- package/dist/utils/memory.js.map +1 -0
- package/dist/utils/memoryBank.d.ts +18 -0
- package/dist/utils/memoryBank.d.ts.map +1 -0
- package/dist/utils/memoryBank.js +128 -0
- package/dist/utils/memoryBank.js.map +1 -0
- package/dist/utils/metrics.d.ts +30 -0
- package/dist/utils/metrics.d.ts.map +1 -0
- package/dist/utils/metrics.js +208 -0
- package/dist/utils/metrics.js.map +1 -0
- package/dist/utils/pythonRunner.d.ts +7 -0
- package/dist/utils/pythonRunner.d.ts.map +1 -0
- package/dist/utils/pythonRunner.js +72 -0
- package/dist/utils/pythonRunner.js.map +1 -0
- package/dist/utils/responseParser.d.ts +15 -0
- package/dist/utils/responseParser.d.ts.map +1 -0
- package/dist/utils/responseParser.js +306 -0
- package/dist/utils/responseParser.js.map +1 -0
- package/dist/utils/rlvr/PythonSandbox.d.ts +16 -0
- package/dist/utils/rlvr/PythonSandbox.d.ts.map +1 -0
- package/dist/utils/rlvr/PythonSandbox.js +203 -0
- package/dist/utils/rlvr/PythonSandbox.js.map +1 -0
- package/dist/utils/rlvr/RewardComputer.d.ts +28 -0
- package/dist/utils/rlvr/RewardComputer.d.ts.map +1 -0
- package/dist/utils/rlvr/RewardComputer.js +227 -0
- package/dist/utils/rlvr/RewardComputer.js.map +1 -0
- package/dist/utils/rlvr/RewardHistoryStore.d.ts +48 -0
- package/dist/utils/rlvr/RewardHistoryStore.d.ts.map +1 -0
- package/dist/utils/rlvr/RewardHistoryStore.js +428 -0
- package/dist/utils/rlvr/RewardHistoryStore.js.map +1 -0
- package/dist/utils/rlvr/SQLSandbox.d.ts +21 -0
- package/dist/utils/rlvr/SQLSandbox.d.ts.map +1 -0
- package/dist/utils/rlvr/SQLSandbox.js +199 -0
- package/dist/utils/rlvr/SQLSandbox.js.map +1 -0
- package/dist/utils/rlvr/TestGenerator.d.ts +8 -0
- package/dist/utils/rlvr/TestGenerator.d.ts.map +1 -0
- package/dist/utils/rlvr/TestGenerator.js +216 -0
- package/dist/utils/rlvr/TestGenerator.js.map +1 -0
- package/dist/utils/rlvr/TestOrchestrator.d.ts +45 -0
- package/dist/utils/rlvr/TestOrchestrator.d.ts.map +1 -0
- package/dist/utils/rlvr/TestOrchestrator.js +331 -0
- package/dist/utils/rlvr/TestOrchestrator.js.map +1 -0
- package/dist/utils/rlvr/TypeScriptSandbox.d.ts +16 -0
- package/dist/utils/rlvr/TypeScriptSandbox.d.ts.map +1 -0
- package/dist/utils/rlvr/TypeScriptSandbox.js +244 -0
- package/dist/utils/rlvr/TypeScriptSandbox.js.map +1 -0
- package/dist/utils/rlvr/index.d.ts +9 -0
- package/dist/utils/rlvr/index.d.ts.map +1 -0
- package/dist/utils/rlvr/index.js +9 -0
- package/dist/utils/rlvr/index.js.map +1 -0
- package/dist/utils/rlvr/python_executor.py +309 -0
- package/dist/utils/rlvr/sql_executor.py +233 -0
- package/dist/utils/rlvr/test-orchestrator.d.ts +2 -0
- package/dist/utils/rlvr/test-orchestrator.d.ts.map +1 -0
- package/dist/utils/rlvr/test-orchestrator.js +200 -0
- package/dist/utils/rlvr/test-orchestrator.js.map +1 -0
- package/dist/utils/rlvr/test-persistence.d.ts +2 -0
- package/dist/utils/rlvr/test-persistence.d.ts.map +1 -0
- package/dist/utils/rlvr/test-persistence.js +175 -0
- package/dist/utils/rlvr/test-persistence.js.map +1 -0
- package/dist/utils/rlvr/test-rlvr.d.ts +2 -0
- package/dist/utils/rlvr/test-rlvr.d.ts.map +1 -0
- package/dist/utils/rlvr/test-rlvr.js +286 -0
- package/dist/utils/rlvr/test-rlvr.js.map +1 -0
- package/dist/utils/rlvr/test-sql.d.ts +2 -0
- package/dist/utils/rlvr/test-sql.d.ts.map +1 -0
- package/dist/utils/rlvr/test-sql.js +63 -0
- package/dist/utils/rlvr/test-sql.js.map +1 -0
- package/dist/utils/rlvr/types.d.ts +133 -0
- package/dist/utils/rlvr/types.d.ts.map +1 -0
- package/dist/utils/rlvr/types.js +8 -0
- package/dist/utils/rlvr/types.js.map +1 -0
- package/dist/utils/tokenEstimator.d.ts +4 -0
- package/dist/utils/tokenEstimator.d.ts.map +1 -0
- package/dist/utils/tokenEstimator.js +14 -0
- package/dist/utils/tokenEstimator.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
import * as fs from "fs/promises";
|
|
2
|
+
import * as path from "path";
|
|
3
|
+
import { homedir } from "os";
|
|
4
|
+
function getSharedPatternsPath() {
|
|
5
|
+
return path.join(homedir(), "Dev", ".shared-patterns");
|
|
6
|
+
}
|
|
7
|
+
function parsePatternId(patternId) {
|
|
8
|
+
const parts = patternId.split("/");
|
|
9
|
+
if (parts.length !== 2 || !parts[0] || !parts[1]) {
|
|
10
|
+
throw new Error(`Invalid pattern ID format: ${patternId}. Expected format: category/pattern-name`);
|
|
11
|
+
}
|
|
12
|
+
return { category: parts[0], name: parts[1] };
|
|
13
|
+
}
|
|
14
|
+
function getPatternBasePath(patternId) {
|
|
15
|
+
const { category, name } = parsePatternId(patternId);
|
|
16
|
+
return path.join(getSharedPatternsPath(), category, name);
|
|
17
|
+
}
|
|
18
|
+
function getVersionsPath(patternId) {
|
|
19
|
+
return path.join(getPatternBasePath(patternId), ".versions");
|
|
20
|
+
}
|
|
21
|
+
function getRegistryPath(patternId) {
|
|
22
|
+
return path.join(getVersionsPath(patternId), "registry.json");
|
|
23
|
+
}
|
|
24
|
+
function getVersionArchivePath(patternId, version) {
|
|
25
|
+
return path.join(getVersionsPath(patternId), version);
|
|
26
|
+
}
|
|
27
|
+
async function fileExists(filePath) {
|
|
28
|
+
try {
|
|
29
|
+
await fs.access(filePath);
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async function ensureDirectory(dirPath) {
|
|
37
|
+
try {
|
|
38
|
+
await fs.mkdir(dirPath, { recursive: true });
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
if (error.code !== "EEXIST") {
|
|
42
|
+
throw error;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function bumpSemver(version, type) {
|
|
47
|
+
const match = version.match(/^(\d+)\.(\d+)\.(\d+)$/);
|
|
48
|
+
if (!match) {
|
|
49
|
+
throw new Error(`Invalid semver format: ${version}`);
|
|
50
|
+
}
|
|
51
|
+
let major = parseInt(match[1], 10);
|
|
52
|
+
let minor = parseInt(match[2], 10);
|
|
53
|
+
let patch = parseInt(match[3], 10);
|
|
54
|
+
switch (type) {
|
|
55
|
+
case "major":
|
|
56
|
+
major++;
|
|
57
|
+
minor = 0;
|
|
58
|
+
patch = 0;
|
|
59
|
+
break;
|
|
60
|
+
case "minor":
|
|
61
|
+
minor++;
|
|
62
|
+
patch = 0;
|
|
63
|
+
break;
|
|
64
|
+
case "patch":
|
|
65
|
+
patch++;
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
return `${major}.${minor}.${patch}`;
|
|
69
|
+
}
|
|
70
|
+
function compareSemver(a, b) {
|
|
71
|
+
const partsA = a.split(".").map(Number);
|
|
72
|
+
const partsB = b.split(".").map(Number);
|
|
73
|
+
for (let i = 0; i < 3; i++) {
|
|
74
|
+
const diff = (partsA[i] || 0) - (partsB[i] || 0);
|
|
75
|
+
if (diff !== 0)
|
|
76
|
+
return diff > 0 ? 1 : -1;
|
|
77
|
+
}
|
|
78
|
+
return 0;
|
|
79
|
+
}
|
|
80
|
+
export class PatternVersionManager {
|
|
81
|
+
async getVersionRegistry(patternId) {
|
|
82
|
+
const registryPath = getRegistryPath(patternId);
|
|
83
|
+
try {
|
|
84
|
+
const content = await fs.readFile(registryPath, "utf-8");
|
|
85
|
+
return JSON.parse(content);
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
async createVersion(patternId, options) {
|
|
92
|
+
const { type, changelog, author, breaking } = options;
|
|
93
|
+
let registry = await this.getVersionRegistry(patternId);
|
|
94
|
+
if (!registry) {
|
|
95
|
+
registry = await this.initializeVersioning(patternId);
|
|
96
|
+
}
|
|
97
|
+
const previousVersion = registry.currentVersion;
|
|
98
|
+
const newVersion = bumpSemver(previousVersion, type);
|
|
99
|
+
await this.archiveVersion(patternId, previousVersion);
|
|
100
|
+
const newVersionEntry = {
|
|
101
|
+
version: newVersion,
|
|
102
|
+
created: new Date().toISOString(),
|
|
103
|
+
author,
|
|
104
|
+
status: "active",
|
|
105
|
+
changelog,
|
|
106
|
+
breaking,
|
|
107
|
+
};
|
|
108
|
+
registry.currentVersion = newVersion;
|
|
109
|
+
registry.versions.push(newVersionEntry);
|
|
110
|
+
await this.saveVersionRegistry(patternId, registry);
|
|
111
|
+
await this.updateSkillVersion(patternId, newVersion);
|
|
112
|
+
return newVersionEntry;
|
|
113
|
+
}
|
|
114
|
+
async deprecateVersion(patternId, version, note, replacement) {
|
|
115
|
+
const registry = await this.getVersionRegistry(patternId);
|
|
116
|
+
if (!registry) {
|
|
117
|
+
throw new Error(`No version history for pattern: ${patternId}`);
|
|
118
|
+
}
|
|
119
|
+
const versionEntry = registry.versions.find((v) => v.version === version);
|
|
120
|
+
if (!versionEntry) {
|
|
121
|
+
throw new Error(`Version ${version} not found for pattern: ${patternId}`);
|
|
122
|
+
}
|
|
123
|
+
versionEntry.status = "deprecated";
|
|
124
|
+
versionEntry.deprecationNote = replacement
|
|
125
|
+
? `${note}. Suggested replacement: ${replacement}`
|
|
126
|
+
: note;
|
|
127
|
+
versionEntry.deprecatedAt = new Date().toISOString();
|
|
128
|
+
await this.saveVersionRegistry(patternId, registry);
|
|
129
|
+
}
|
|
130
|
+
async getVersionFiles(patternId, version) {
|
|
131
|
+
const { name } = parsePatternId(patternId);
|
|
132
|
+
let basePath;
|
|
133
|
+
if (version) {
|
|
134
|
+
basePath = getVersionArchivePath(patternId, version);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
basePath = getPatternBasePath(patternId);
|
|
138
|
+
}
|
|
139
|
+
const files = {};
|
|
140
|
+
const docPath = path.join(basePath, `${name}.md`);
|
|
141
|
+
if (await fileExists(docPath)) {
|
|
142
|
+
files.documentation = docPath;
|
|
143
|
+
}
|
|
144
|
+
const implPath = path.join(basePath, `${name}.ts`);
|
|
145
|
+
if (await fileExists(implPath)) {
|
|
146
|
+
files.implementation = implPath;
|
|
147
|
+
}
|
|
148
|
+
const metaPath = path.join(basePath, `${name}-SKILL.md`);
|
|
149
|
+
if (await fileExists(metaPath)) {
|
|
150
|
+
files.metadata = metaPath;
|
|
151
|
+
}
|
|
152
|
+
return files;
|
|
153
|
+
}
|
|
154
|
+
async resolveVersion(patternId, versionSpec) {
|
|
155
|
+
const registry = await this.getVersionRegistry(patternId);
|
|
156
|
+
if (!registry) {
|
|
157
|
+
if (!versionSpec || versionSpec === "latest") {
|
|
158
|
+
return "1.0.0";
|
|
159
|
+
}
|
|
160
|
+
if (this.matchesVersionSpec("1.0.0", versionSpec)) {
|
|
161
|
+
return "1.0.0";
|
|
162
|
+
}
|
|
163
|
+
throw new Error(`Version ${versionSpec} not found for pattern: ${patternId}`);
|
|
164
|
+
}
|
|
165
|
+
if (!versionSpec || versionSpec === "latest") {
|
|
166
|
+
return registry.currentVersion;
|
|
167
|
+
}
|
|
168
|
+
const activeVersions = registry.versions
|
|
169
|
+
.filter((v) => v.status === "active")
|
|
170
|
+
.map((v) => v.version)
|
|
171
|
+
.sort((a, b) => compareSemver(b, a));
|
|
172
|
+
for (const version of activeVersions) {
|
|
173
|
+
if (this.matchesVersionSpec(version, versionSpec)) {
|
|
174
|
+
return version;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
throw new Error(`No active version matching ${versionSpec} for pattern: ${patternId}`);
|
|
178
|
+
}
|
|
179
|
+
async listVersions(patternId) {
|
|
180
|
+
const registry = await this.getVersionRegistry(patternId);
|
|
181
|
+
if (!registry) {
|
|
182
|
+
return [
|
|
183
|
+
{
|
|
184
|
+
version: "1.0.0",
|
|
185
|
+
created: new Date().toISOString(),
|
|
186
|
+
status: "active",
|
|
187
|
+
changelog: "Initial version",
|
|
188
|
+
},
|
|
189
|
+
];
|
|
190
|
+
}
|
|
191
|
+
return registry.versions.sort((a, b) => compareSemver(b.version, a.version));
|
|
192
|
+
}
|
|
193
|
+
bumpVersion(currentVersion, type) {
|
|
194
|
+
return bumpSemver(currentVersion, type);
|
|
195
|
+
}
|
|
196
|
+
async initializeVersioning(patternId) {
|
|
197
|
+
const versionsPath = getVersionsPath(patternId);
|
|
198
|
+
const registryPath = getRegistryPath(patternId);
|
|
199
|
+
await ensureDirectory(versionsPath);
|
|
200
|
+
const files = await this.getVersionFiles(patternId);
|
|
201
|
+
if (!files.documentation) {
|
|
202
|
+
throw new Error(`Pattern not found: ${patternId}`);
|
|
203
|
+
}
|
|
204
|
+
let initialVersion = "1.0.0";
|
|
205
|
+
if (files.metadata) {
|
|
206
|
+
const metaContent = await fs.readFile(files.metadata, "utf-8");
|
|
207
|
+
const versionMatch = metaContent.match(/\*\*Version:\*\*\s*(\d+\.\d+\.\d+)/);
|
|
208
|
+
if (versionMatch && versionMatch[1]) {
|
|
209
|
+
initialVersion = versionMatch[1];
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
const registry = {
|
|
213
|
+
patternId,
|
|
214
|
+
currentVersion: initialVersion,
|
|
215
|
+
created: new Date().toISOString(),
|
|
216
|
+
versions: [
|
|
217
|
+
{
|
|
218
|
+
version: initialVersion,
|
|
219
|
+
created: new Date().toISOString(),
|
|
220
|
+
status: "active",
|
|
221
|
+
changelog: "Initial version (migration from unversioned pattern)",
|
|
222
|
+
},
|
|
223
|
+
],
|
|
224
|
+
};
|
|
225
|
+
await fs.writeFile(registryPath, JSON.stringify(registry, null, 2));
|
|
226
|
+
return registry;
|
|
227
|
+
}
|
|
228
|
+
async hasVersionHistory(patternId) {
|
|
229
|
+
return (await this.getVersionRegistry(patternId)) !== null;
|
|
230
|
+
}
|
|
231
|
+
async getFlatPatternFiles(patternId) {
|
|
232
|
+
const { category, name } = parsePatternId(patternId);
|
|
233
|
+
const flatPatternsPath = path.join(getSharedPatternsPath(), "patterns");
|
|
234
|
+
try {
|
|
235
|
+
const entries = await fs.readdir(flatPatternsPath);
|
|
236
|
+
const pattern = entries.find((entry) => entry.startsWith(`${category}-`) &&
|
|
237
|
+
entry.includes(name) &&
|
|
238
|
+
entry.endsWith(".md"));
|
|
239
|
+
if (!pattern) {
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
return {
|
|
243
|
+
documentation: path.join(flatPatternsPath, pattern),
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
catch {
|
|
247
|
+
return null;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
async saveVersionRegistry(patternId, registry) {
|
|
251
|
+
const registryPath = getRegistryPath(patternId);
|
|
252
|
+
await fs.writeFile(registryPath, JSON.stringify(registry, null, 2));
|
|
253
|
+
}
|
|
254
|
+
async archiveVersion(patternId, version) {
|
|
255
|
+
const { name } = parsePatternId(patternId);
|
|
256
|
+
const basePath = getPatternBasePath(patternId);
|
|
257
|
+
const archivePath = getVersionArchivePath(patternId, version);
|
|
258
|
+
await ensureDirectory(archivePath);
|
|
259
|
+
const filesToCopy = [`${name}.md`, `${name}.ts`, `${name}-SKILL.md`];
|
|
260
|
+
for (const fileName of filesToCopy) {
|
|
261
|
+
const sourcePath = path.join(basePath, fileName);
|
|
262
|
+
const destPath = path.join(archivePath, fileName);
|
|
263
|
+
if (await fileExists(sourcePath)) {
|
|
264
|
+
await fs.copyFile(sourcePath, destPath);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
async updateSkillVersion(patternId, newVersion) {
|
|
269
|
+
const files = await this.getVersionFiles(patternId);
|
|
270
|
+
if (!files.metadata)
|
|
271
|
+
return;
|
|
272
|
+
try {
|
|
273
|
+
let content = await fs.readFile(files.metadata, "utf-8");
|
|
274
|
+
const versionRegex = /(\*\*Version:\*\*\s*)[\d.]+/;
|
|
275
|
+
if (versionRegex.test(content)) {
|
|
276
|
+
content = content.replace(versionRegex, `$1${newVersion}`);
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
content = content.replace(/(^#[^\n]+\n)/, `$1\n**Version:** ${newVersion}\n`);
|
|
280
|
+
}
|
|
281
|
+
await fs.writeFile(files.metadata, content);
|
|
282
|
+
}
|
|
283
|
+
catch {
|
|
284
|
+
console.error(`[PatternVersionManager] Could not update SKILL.md version for ${patternId}`);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
matchesVersionSpec(version, spec) {
|
|
288
|
+
if (version === spec)
|
|
289
|
+
return true;
|
|
290
|
+
const specParts = spec.split(".");
|
|
291
|
+
const versionParts = version.split(".");
|
|
292
|
+
for (let i = 0; i < specParts.length; i++) {
|
|
293
|
+
if (specParts[i] === "x" || specParts[i] === "*")
|
|
294
|
+
continue;
|
|
295
|
+
if (specParts[i] !== versionParts[i])
|
|
296
|
+
return false;
|
|
297
|
+
}
|
|
298
|
+
return true;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
let versionManagerInstance = null;
|
|
302
|
+
export function getPatternVersionManager() {
|
|
303
|
+
if (!versionManagerInstance) {
|
|
304
|
+
versionManagerInstance = new PatternVersionManager();
|
|
305
|
+
}
|
|
306
|
+
return versionManagerInstance;
|
|
307
|
+
}
|
|
308
|
+
//# sourceMappingURL=PatternVersionManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PatternVersionManager.js","sourceRoot":"","sources":["../../src/utils/PatternVersionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { QdrantClient } from "@qdrant/js-client-rest";
|
|
2
|
+
export interface QdrantHealthStatus {
|
|
3
|
+
available: boolean;
|
|
4
|
+
lastCheck: Date;
|
|
5
|
+
consecutiveFailures: number;
|
|
6
|
+
lastError?: string;
|
|
7
|
+
latencyMs?: number;
|
|
8
|
+
}
|
|
9
|
+
export interface QdrantConnectionConfig {
|
|
10
|
+
url?: string;
|
|
11
|
+
apiKey?: string;
|
|
12
|
+
timeout?: number;
|
|
13
|
+
maxReconnectAttempts?: number;
|
|
14
|
+
baseReconnectDelayMs?: number;
|
|
15
|
+
healthCheckIntervalMs?: number;
|
|
16
|
+
healthCheckCacheTtlMs?: number;
|
|
17
|
+
}
|
|
18
|
+
export declare class QdrantConnectionManager {
|
|
19
|
+
private static instance;
|
|
20
|
+
private client;
|
|
21
|
+
private config;
|
|
22
|
+
private healthStatus;
|
|
23
|
+
private isReconnecting;
|
|
24
|
+
private healthCheckTimer;
|
|
25
|
+
private reconnectPromise;
|
|
26
|
+
private constructor();
|
|
27
|
+
static getInstance(config?: QdrantConnectionConfig): QdrantConnectionManager;
|
|
28
|
+
static resetInstance(): void;
|
|
29
|
+
private initializeClient;
|
|
30
|
+
getClient(): Promise<QdrantClient | null>;
|
|
31
|
+
getClientUnsafe(): QdrantClient | null;
|
|
32
|
+
isHealthy(): Promise<boolean>;
|
|
33
|
+
performHealthCheck(): Promise<boolean>;
|
|
34
|
+
private updateHealthStatus;
|
|
35
|
+
reconnect(): Promise<boolean>;
|
|
36
|
+
private performReconnect;
|
|
37
|
+
getHealthStatus(): QdrantHealthStatus;
|
|
38
|
+
startHealthMonitoring(): void;
|
|
39
|
+
stopHealthMonitoring(): void;
|
|
40
|
+
shutdown(): void;
|
|
41
|
+
withRetry<T>(operation: (client: QdrantClient) => Promise<T>, maxRetries?: number): Promise<T>;
|
|
42
|
+
private sleep;
|
|
43
|
+
}
|
|
44
|
+
export declare function getQdrantClient(): Promise<QdrantClient | null>;
|
|
45
|
+
export declare function isQdrantHealthy(): Promise<boolean>;
|
|
46
|
+
export declare function getQdrantHealthStatus(): QdrantHealthStatus;
|
|
47
|
+
//# sourceMappingURL=QdrantConnectionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QdrantConnectionManager.d.ts","sourceRoot":"","sources":["../../src/utils/QdrantConnectionManager.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAYD,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAwC;IAE/D,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,gBAAgB,CAA+C;IACvE,OAAO,CAAC,gBAAgB,CAAiC;IAEzD,OAAO;IAuBP,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,uBAAuB;IAU5E,MAAM,CAAC,aAAa,IAAI,IAAI;IAU5B,OAAO,CAAC,gBAAgB;IAoBlB,SAAS,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAuB/C,eAAe,IAAI,YAAY,GAAG,IAAI;IAOhC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAe7B,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAoC5C,OAAO,CAAC,kBAAkB;IAkCpB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;YAoBrB,gBAAgB;IAyC9B,eAAe,IAAI,kBAAkB;IAOrC,qBAAqB,IAAI,IAAI;IA6B7B,oBAAoB,IAAI,IAAI;IAW5B,QAAQ,IAAI,IAAI;IAUV,SAAS,CAAC,CAAC,EACf,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,EAC/C,UAAU,GAAE,MAAU,GACrB,OAAO,CAAC,CAAC,CAAC;IA2Cb,OAAO,CAAC,KAAK;CAGd;AAKD,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAEpE;AAKD,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAExD;AAKD,wBAAgB,qBAAqB,IAAI,kBAAkB,CAE1D"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { QdrantClient } from "@qdrant/js-client-rest";
|
|
2
|
+
const DEFAULT_CONFIG = {
|
|
3
|
+
url: process.env.QDRANT_URL || "http://localhost:6333",
|
|
4
|
+
apiKey: process.env.QDRANT_API_KEY || "",
|
|
5
|
+
timeout: 5000,
|
|
6
|
+
maxReconnectAttempts: 5,
|
|
7
|
+
baseReconnectDelayMs: 1000,
|
|
8
|
+
healthCheckIntervalMs: 30000,
|
|
9
|
+
healthCheckCacheTtlMs: 5000,
|
|
10
|
+
};
|
|
11
|
+
export class QdrantConnectionManager {
|
|
12
|
+
static instance = null;
|
|
13
|
+
client = null;
|
|
14
|
+
config;
|
|
15
|
+
healthStatus;
|
|
16
|
+
isReconnecting = false;
|
|
17
|
+
healthCheckTimer = null;
|
|
18
|
+
reconnectPromise = null;
|
|
19
|
+
constructor(config) {
|
|
20
|
+
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
21
|
+
if (!this.config.url || this.config.url === "http://localhost:6333") {
|
|
22
|
+
this.config.url = process.env.QDRANT_URL || DEFAULT_CONFIG.url;
|
|
23
|
+
}
|
|
24
|
+
if (!this.config.apiKey) {
|
|
25
|
+
this.config.apiKey = process.env.QDRANT_API_KEY || "";
|
|
26
|
+
}
|
|
27
|
+
this.healthStatus = {
|
|
28
|
+
available: false,
|
|
29
|
+
lastCheck: new Date(0),
|
|
30
|
+
consecutiveFailures: 0,
|
|
31
|
+
};
|
|
32
|
+
this.initializeClient();
|
|
33
|
+
}
|
|
34
|
+
static getInstance(config) {
|
|
35
|
+
if (!QdrantConnectionManager.instance) {
|
|
36
|
+
QdrantConnectionManager.instance = new QdrantConnectionManager(config);
|
|
37
|
+
}
|
|
38
|
+
return QdrantConnectionManager.instance;
|
|
39
|
+
}
|
|
40
|
+
static resetInstance() {
|
|
41
|
+
if (QdrantConnectionManager.instance) {
|
|
42
|
+
QdrantConnectionManager.instance.shutdown();
|
|
43
|
+
QdrantConnectionManager.instance = null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
initializeClient() {
|
|
47
|
+
try {
|
|
48
|
+
this.client = new QdrantClient({
|
|
49
|
+
url: this.config.url,
|
|
50
|
+
apiKey: this.config.apiKey || undefined,
|
|
51
|
+
timeout: this.config.timeout,
|
|
52
|
+
});
|
|
53
|
+
console.error("[QdrantConnectionManager] Client initialized");
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
console.error(`[QdrantConnectionManager] Failed to create client: ${error}`);
|
|
57
|
+
this.client = null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async getClient() {
|
|
61
|
+
const isHealthy = await this.isHealthy();
|
|
62
|
+
if (!isHealthy) {
|
|
63
|
+
if (!this.isReconnecting) {
|
|
64
|
+
await this.reconnect();
|
|
65
|
+
}
|
|
66
|
+
if (!this.healthStatus.available) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return this.client;
|
|
71
|
+
}
|
|
72
|
+
getClientUnsafe() {
|
|
73
|
+
return this.client;
|
|
74
|
+
}
|
|
75
|
+
async isHealthy() {
|
|
76
|
+
const now = new Date();
|
|
77
|
+
const cacheAge = now.getTime() - this.healthStatus.lastCheck.getTime();
|
|
78
|
+
if (cacheAge < this.config.healthCheckCacheTtlMs) {
|
|
79
|
+
return this.healthStatus.available;
|
|
80
|
+
}
|
|
81
|
+
return this.performHealthCheck();
|
|
82
|
+
}
|
|
83
|
+
async performHealthCheck() {
|
|
84
|
+
if (!this.client) {
|
|
85
|
+
this.updateHealthStatus(false, "No client initialized");
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
const startTime = Date.now();
|
|
89
|
+
try {
|
|
90
|
+
const healthCheck = this.client.getCollections();
|
|
91
|
+
const timeout = new Promise((_, reject) => setTimeout(() => reject(new Error("Health check timeout")), this.config.timeout));
|
|
92
|
+
await Promise.race([healthCheck, timeout]);
|
|
93
|
+
const latencyMs = Date.now() - startTime;
|
|
94
|
+
this.updateHealthStatus(true, undefined, latencyMs);
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
99
|
+
this.updateHealthStatus(false, errorMessage);
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
updateHealthStatus(available, error, latencyMs) {
|
|
104
|
+
const wasAvailable = this.healthStatus.available;
|
|
105
|
+
this.healthStatus = {
|
|
106
|
+
available,
|
|
107
|
+
lastCheck: new Date(),
|
|
108
|
+
consecutiveFailures: available
|
|
109
|
+
? 0
|
|
110
|
+
: this.healthStatus.consecutiveFailures + 1,
|
|
111
|
+
lastError: error,
|
|
112
|
+
latencyMs,
|
|
113
|
+
};
|
|
114
|
+
if (wasAvailable !== available) {
|
|
115
|
+
if (available) {
|
|
116
|
+
console.error(`[QdrantConnectionManager] Connection restored (latency: ${latencyMs}ms)`);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
console.error(`[QdrantConnectionManager] Connection lost: ${error} (failures: ${this.healthStatus.consecutiveFailures})`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
async reconnect() {
|
|
124
|
+
if (this.reconnectPromise) {
|
|
125
|
+
return this.reconnectPromise;
|
|
126
|
+
}
|
|
127
|
+
this.isReconnecting = true;
|
|
128
|
+
this.reconnectPromise = this.performReconnect();
|
|
129
|
+
try {
|
|
130
|
+
return await this.reconnectPromise;
|
|
131
|
+
}
|
|
132
|
+
finally {
|
|
133
|
+
this.isReconnecting = false;
|
|
134
|
+
this.reconnectPromise = null;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
async performReconnect() {
|
|
138
|
+
console.error("[QdrantConnectionManager] Attempting to reconnect...");
|
|
139
|
+
for (let attempt = 0; attempt < this.config.maxReconnectAttempts; attempt++) {
|
|
140
|
+
if (attempt > 0) {
|
|
141
|
+
const delay = this.config.baseReconnectDelayMs * Math.pow(2, attempt - 1);
|
|
142
|
+
console.error(`[QdrantConnectionManager] Waiting ${delay}ms before retry ${attempt + 1}/${this.config.maxReconnectAttempts}`);
|
|
143
|
+
await this.sleep(delay);
|
|
144
|
+
}
|
|
145
|
+
this.initializeClient();
|
|
146
|
+
const isHealthy = await this.performHealthCheck();
|
|
147
|
+
if (isHealthy) {
|
|
148
|
+
console.error(`[QdrantConnectionManager] Reconnected successfully after ${attempt + 1} attempt(s)`);
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
console.error(`[QdrantConnectionManager] Failed to reconnect after ${this.config.maxReconnectAttempts} attempts`);
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
getHealthStatus() {
|
|
156
|
+
return { ...this.healthStatus };
|
|
157
|
+
}
|
|
158
|
+
startHealthMonitoring() {
|
|
159
|
+
if (this.healthCheckTimer) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
this.healthCheckTimer = setInterval(async () => {
|
|
163
|
+
await this.performHealthCheck();
|
|
164
|
+
if (!this.healthStatus.available &&
|
|
165
|
+
!this.isReconnecting &&
|
|
166
|
+
this.healthStatus.consecutiveFailures >= 3) {
|
|
167
|
+
console.error("[QdrantConnectionManager] Auto-reconnecting due to consecutive failures");
|
|
168
|
+
await this.reconnect();
|
|
169
|
+
}
|
|
170
|
+
}, this.config.healthCheckIntervalMs);
|
|
171
|
+
console.error(`[QdrantConnectionManager] Health monitoring started (interval: ${this.config.healthCheckIntervalMs}ms)`);
|
|
172
|
+
}
|
|
173
|
+
stopHealthMonitoring() {
|
|
174
|
+
if (this.healthCheckTimer) {
|
|
175
|
+
clearInterval(this.healthCheckTimer);
|
|
176
|
+
this.healthCheckTimer = null;
|
|
177
|
+
console.error("[QdrantConnectionManager] Health monitoring stopped");
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
shutdown() {
|
|
181
|
+
this.stopHealthMonitoring();
|
|
182
|
+
this.client = null;
|
|
183
|
+
this.healthStatus.available = false;
|
|
184
|
+
console.error("[QdrantConnectionManager] Shutdown complete");
|
|
185
|
+
}
|
|
186
|
+
async withRetry(operation, maxRetries = 2) {
|
|
187
|
+
let lastError = null;
|
|
188
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
189
|
+
const client = await this.getClient();
|
|
190
|
+
if (!client) {
|
|
191
|
+
lastError = new Error("Qdrant client unavailable");
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
try {
|
|
195
|
+
return await operation(client);
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
199
|
+
const isConnectionError = lastError.message.includes("ECONNREFUSED") ||
|
|
200
|
+
lastError.message.includes("ETIMEDOUT") ||
|
|
201
|
+
lastError.message.includes("ENOTFOUND") ||
|
|
202
|
+
lastError.message.includes("socket hang up");
|
|
203
|
+
if (isConnectionError && attempt < maxRetries) {
|
|
204
|
+
console.error(`[QdrantConnectionManager] Operation failed, retrying (${attempt + 1}/${maxRetries}): ${lastError.message}`);
|
|
205
|
+
this.healthStatus.available = false;
|
|
206
|
+
await this.reconnect();
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
throw lastError;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
throw lastError || new Error("Operation failed after retries");
|
|
214
|
+
}
|
|
215
|
+
sleep(ms) {
|
|
216
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
export async function getQdrantClient() {
|
|
220
|
+
return QdrantConnectionManager.getInstance().getClient();
|
|
221
|
+
}
|
|
222
|
+
export async function isQdrantHealthy() {
|
|
223
|
+
return QdrantConnectionManager.getInstance().isHealthy();
|
|
224
|
+
}
|
|
225
|
+
export function getQdrantHealthStatus() {
|
|
226
|
+
return QdrantConnectionManager.getInstance().getHealthStatus();
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=QdrantConnectionManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QdrantConnectionManager.js","sourceRoot":"","sources":["../../src/utils/QdrantConnectionManager.ts"],"names":[],"mappings":"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"}
|