scai 0.1.178 → 1.0.1
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/README.md +171 -260
- package/dist/__tests__/CommitSuggesterCmd.test.js +112 -0
- package/dist/__tests__/CommitSuggesterCmd.test.js.map +1 -0
- package/dist/__tests__/EvalReportCmd.test.js +645 -0
- package/dist/__tests__/EvalReportCmd.test.js.map +1 -0
- package/dist/__tests__/ModelCmd.test.js +64 -0
- package/dist/__tests__/ModelCmd.test.js.map +1 -0
- package/dist/__tests__/agents/agentActions.test.js +345 -0
- package/dist/__tests__/agents/agentActions.test.js.map +1 -0
- package/dist/__tests__/agents/agentFeedback.test.js +118 -0
- package/dist/__tests__/agents/agentFeedback.test.js.map +1 -0
- package/dist/__tests__/agents/agentGeneralScope.test.js +74 -0
- package/dist/__tests__/agents/agentGeneralScope.test.js.map +1 -0
- package/dist/__tests__/agents/agentLoop.test.js +1723 -0
- package/dist/__tests__/agents/agentLoop.test.js.map +1 -0
- package/dist/__tests__/agents/agentPolicyState.test.js +948 -0
- package/dist/__tests__/agents/agentPolicyState.test.js.map +1 -0
- package/dist/__tests__/agents/agentReadEvidence.test.js +170 -0
- package/dist/__tests__/agents/agentReadEvidence.test.js.map +1 -0
- package/dist/__tests__/agents/agentReadPersistence.test.js +129 -0
- package/dist/__tests__/agents/agentReadPersistence.test.js.map +1 -0
- package/dist/__tests__/agents/agentResumeCheckpoint.test.js +90 -0
- package/dist/__tests__/agents/agentResumeCheckpoint.test.js.map +1 -0
- package/dist/__tests__/agents/agentSearchBatchPlanner.test.js +289 -0
- package/dist/__tests__/agents/agentSearchBatchPlanner.test.js.map +1 -0
- package/dist/__tests__/agents/agentSearchOwnership.test.js +166 -0
- package/dist/__tests__/agents/agentSearchOwnership.test.js.map +1 -0
- package/dist/__tests__/agents/agentSearchRanking.test.js +139 -0
- package/dist/__tests__/agents/agentSearchRanking.test.js.map +1 -0
- package/dist/__tests__/agents/agentSearchRouting.test.js +584 -0
- package/dist/__tests__/agents/agentSearchRouting.test.js.map +1 -0
- package/dist/__tests__/agents/agentSearchScoring.test.js +23 -0
- package/dist/__tests__/agents/agentSearchScoring.test.js.map +1 -0
- package/dist/__tests__/agents/agentSearchShared.test.js +78 -0
- package/dist/__tests__/agents/agentSearchShared.test.js.map +1 -0
- package/dist/__tests__/agents/agentStateMachine.test.js +58 -0
- package/dist/__tests__/agents/agentStateMachine.test.js.map +1 -0
- package/dist/__tests__/agents/agentTaskPersistence.test.js +156 -0
- package/dist/__tests__/agents/agentTaskPersistence.test.js.map +1 -0
- package/dist/__tests__/agents/agentTools.test.js +69 -0
- package/dist/__tests__/agents/agentTools.test.js.map +1 -0
- package/dist/__tests__/agents/agentTransform.test.js +779 -0
- package/dist/__tests__/agents/agentTransform.test.js.map +1 -0
- package/dist/__tests__/agents/analysisPlanGenStep.test.js +157 -0
- package/dist/__tests__/agents/analysisPlanGenStep.test.js.map +1 -0
- package/dist/__tests__/agents/answerOnlyCompletion.test.js +75 -0
- package/dist/__tests__/agents/answerOnlyCompletion.test.js.map +1 -0
- package/dist/__tests__/agents/decideNextAction.test.js +1662 -0
- package/dist/__tests__/agents/decideNextAction.test.js.map +1 -0
- package/dist/__tests__/agents/deriveFocusFromSearchStep.test.js +258 -0
- package/dist/__tests__/agents/deriveFocusFromSearchStep.test.js.map +1 -0
- package/dist/__tests__/agents/evidenceVerifierStep.test.js +113 -0
- package/dist/__tests__/agents/evidenceVerifierStep.test.js.map +1 -0
- package/dist/__tests__/agents/executionPolicyResolver.test.js +208 -0
- package/dist/__tests__/agents/executionPolicyResolver.test.js.map +1 -0
- package/dist/__tests__/agents/fileCheckStep.test.js +299 -0
- package/dist/__tests__/agents/fileCheckStep.test.js.map +1 -0
- package/dist/__tests__/agents/giveUpEvaluatorStep.test.js +35 -0
- package/dist/__tests__/agents/giveUpEvaluatorStep.test.js.map +1 -0
- package/dist/__tests__/agents/guardState.test.js +297 -0
- package/dist/__tests__/agents/guardState.test.js.map +1 -0
- package/dist/__tests__/agents/mainAgentHeuristics.test.js +72 -0
- package/dist/__tests__/agents/mainAgentHeuristics.test.js.map +1 -0
- package/dist/__tests__/agents/objectiveEvaluatorStep.test.js +60 -0
- package/dist/__tests__/agents/objectiveEvaluatorStep.test.js.map +1 -0
- package/dist/__tests__/agents/outerLoopRecoveryEvaluator.test.js +207 -0
- package/dist/__tests__/agents/outerLoopRecoveryEvaluator.test.js.map +1 -0
- package/dist/__tests__/agents/prompting.test.js +363 -0
- package/dist/__tests__/agents/prompting.test.js.map +1 -0
- package/dist/__tests__/agents/readinessGateStep.test.js +180 -0
- package/dist/__tests__/agents/readinessGateStep.test.js.map +1 -0
- package/dist/__tests__/agents/reasonNextStep.test.js +56 -0
- package/dist/__tests__/agents/reasonNextStep.test.js.map +1 -0
- package/dist/__tests__/agents/reasonNextTaskStep.test.js +284 -0
- package/dist/__tests__/agents/reasonNextTaskStep.test.js.map +1 -0
- package/dist/__tests__/agents/resolveAgentTargetClassification.test.js +170 -0
- package/dist/__tests__/agents/resolveAgentTargetClassification.test.js.map +1 -0
- package/dist/__tests__/agents/resolveProgressState.test.js +526 -0
- package/dist/__tests__/agents/resolveProgressState.test.js.map +1 -0
- package/dist/__tests__/agents/resumeCheckpoint.test.js +50 -0
- package/dist/__tests__/agents/resumeCheckpoint.test.js.map +1 -0
- package/dist/__tests__/agents/routingDecisionStep.test.js +134 -0
- package/dist/__tests__/agents/routingDecisionStep.test.js.map +1 -0
- package/dist/__tests__/agents/scopeClassificationStep.test.js +118 -0
- package/dist/__tests__/agents/scopeClassificationStep.test.js.map +1 -0
- package/dist/__tests__/agents/searchContext.test.js +97 -0
- package/dist/__tests__/agents/searchContext.test.js.map +1 -0
- package/dist/__tests__/agents/selectRelevantSourcesStep.test.js +73 -0
- package/dist/__tests__/agents/selectRelevantSourcesStep.test.js.map +1 -0
- package/dist/__tests__/agents/structuredOutput.test.js +45 -0
- package/dist/__tests__/agents/structuredOutput.test.js.map +1 -0
- package/dist/__tests__/agents/transformPlanGenStep.fallback.test.js +59 -0
- package/dist/__tests__/agents/transformPlanGenStep.fallback.test.js.map +1 -0
- package/dist/__tests__/agents/transformPlanGenStep.test.js +92 -0
- package/dist/__tests__/agents/transformPlanGenStep.test.js.map +1 -0
- package/dist/__tests__/agents/understandIntentStep.test.js +237 -0
- package/dist/__tests__/agents/understandIntentStep.test.js.map +1 -0
- package/dist/__tests__/agents/understandResumeContext.test.js +65 -0
- package/dist/__tests__/agents/understandResumeContext.test.js.map +1 -0
- package/dist/__tests__/agents/understandScope.test.js +227 -0
- package/dist/__tests__/agents/understandScope.test.js.map +1 -0
- package/dist/__tests__/agents/validateChangesStep.test.js +52 -0
- package/dist/__tests__/agents/validateChangesStep.test.js.map +1 -0
- package/dist/__tests__/askCommandTaskBinding.test.js +176 -0
- package/dist/__tests__/askCommandTaskBinding.test.js.map +1 -0
- package/dist/__tests__/commandVisibility.test.js +25 -0
- package/dist/__tests__/commandVisibility.test.js.map +1 -0
- package/dist/__tests__/config.devOutput.test.js +82 -0
- package/dist/__tests__/config.devOutput.test.js.map +1 -0
- package/dist/__tests__/currentContext.test.js +43 -0
- package/dist/__tests__/currentContext.test.js.map +1 -0
- package/dist/__tests__/daemonWorker.test.js +51 -0
- package/dist/__tests__/daemonWorker.test.js.map +1 -0
- package/dist/__tests__/dialogState.test.js +113 -0
- package/dist/__tests__/dialogState.test.js.map +1 -0
- package/dist/__tests__/evalCommands.test.js +506 -0
- package/dist/__tests__/evalCommands.test.js.map +1 -0
- package/dist/__tests__/evalCommandsSummary.test.js +68 -0
- package/dist/__tests__/evalCommandsSummary.test.js.map +1 -0
- package/dist/__tests__/example.test.js +1 -0
- package/dist/__tests__/example.test.js.map +1 -0
- package/dist/__tests__/factory.commitCommand.test.js +45 -0
- package/dist/__tests__/factory.commitCommand.test.js.map +1 -0
- package/dist/__tests__/factory.devOutputCommand.test.js +122 -0
- package/dist/__tests__/factory.devOutputCommand.test.js.map +1 -0
- package/dist/__tests__/factory.evalCommands.test.js +38 -0
- package/dist/__tests__/factory.evalCommands.test.js.map +1 -0
- package/dist/__tests__/factory.planCommand.test.js +35 -0
- package/dist/__tests__/factory.planCommand.test.js.map +1 -0
- package/dist/__tests__/factory.setupCommand.test.js +34 -0
- package/dist/__tests__/factory.setupCommand.test.js.map +1 -0
- package/dist/__tests__/factory.statusCommand.test.js +54 -0
- package/dist/__tests__/factory.statusCommand.test.js.map +1 -0
- package/dist/__tests__/fileRules/queryTokenRules.test.js +35 -0
- package/dist/__tests__/fileRules/queryTokenRules.test.js.map +1 -0
- package/dist/__tests__/fileRules/searchPathClassification.test.js +57 -0
- package/dist/__tests__/fileRules/searchPathClassification.test.js.map +1 -0
- package/dist/__tests__/generate.ollamaRecovery.test.js +344 -0
- package/dist/__tests__/generate.ollamaRecovery.test.js.map +1 -0
- package/dist/__tests__/index.modelStartup.test.js +24 -0
- package/dist/__tests__/index.modelStartup.test.js.map +1 -0
- package/dist/__tests__/indexCmd.test.js +85 -0
- package/dist/__tests__/indexCmd.test.js.map +1 -0
- package/dist/__tests__/indexSlashCommand.test.js +50 -0
- package/dist/__tests__/indexSlashCommand.test.js.map +1 -0
- package/dist/__tests__/ollamaService.test.js +103 -0
- package/dist/__tests__/ollamaService.test.js.map +1 -0
- package/dist/__tests__/pipeline/modules/codeTransformModule.small-file.test.js +68 -0
- package/dist/__tests__/pipeline/modules/codeTransformModule.small-file.test.js.map +1 -0
- package/dist/__tests__/pipeline/modules/commitSuggesterModule.test.js +68 -0
- package/dist/__tests__/pipeline/modules/commitSuggesterModule.test.js.map +1 -0
- package/dist/__tests__/pipeline/modules/fileSearchModule.test.js +284 -0
- package/dist/__tests__/pipeline/modules/fileSearchModule.test.js.map +1 -0
- package/dist/__tests__/pipeline/modules/finalAnswerModule.test.js +1139 -0
- package/dist/__tests__/pipeline/modules/finalAnswerModule.test.js.map +1 -0
- package/dist/__tests__/pipeline/modules/readFileModule.test.js +146 -0
- package/dist/__tests__/pipeline/modules/readFileModule.test.js.map +1 -0
- package/dist/__tests__/pipeline/modules/semanticAnalysisModule.test.js +192 -0
- package/dist/__tests__/pipeline/modules/semanticAnalysisModule.test.js.map +1 -0
- package/dist/__tests__/repoIdentity.test.js +31 -0
- package/dist/__tests__/repoIdentity.test.js.map +1 -0
- package/dist/__tests__/resumeContext.test.js +87 -0
- package/dist/__tests__/resumeContext.test.js.map +1 -0
- package/dist/__tests__/resumeState.test.js +239 -0
- package/dist/__tests__/resumeState.test.js.map +1 -0
- package/dist/__tests__/search/SearchOrchestrator.test.js +836 -0
- package/dist/__tests__/search/SearchOrchestrator.test.js.map +1 -0
- package/dist/__tests__/shellDialogUi.test.js +52 -0
- package/dist/__tests__/shellDialogUi.test.js.map +1 -0
- package/dist/__tests__/shellSession.test.js +102 -0
- package/dist/__tests__/shellSession.test.js.map +1 -0
- package/dist/__tests__/statusOwner.test.js +215 -0
- package/dist/__tests__/statusOwner.test.js.map +1 -0
- package/dist/__tests__/testing/contextEval.test.js +244 -0
- package/dist/__tests__/testing/contextEval.test.js.map +1 -0
- package/dist/__tests__/testing/harnessArtifacts.test.js +124 -0
- package/dist/__tests__/testing/harnessArtifacts.test.js.map +1 -0
- package/dist/__tests__/testing/llmTraceSession.test.js +67 -0
- package/dist/__tests__/testing/llmTraceSession.test.js.map +1 -0
- package/dist/__tests__/testing/registerDevCliCommands.test.js +35 -0
- package/dist/__tests__/testing/registerDevCliCommands.test.js.map +1 -0
- package/dist/__tests__/testing/runDiagnosis.test.js +159 -0
- package/dist/__tests__/testing/runDiagnosis.test.js.map +1 -0
- package/dist/__tests__/testing/runtimeLogReader.test.js +66 -0
- package/dist/__tests__/testing/runtimeLogReader.test.js.map +1 -0
- package/dist/__tests__/testing/testCommands.test.js +53 -0
- package/dist/__tests__/testing/testCommands.test.js.map +1 -0
- package/dist/__tests__/utils/compileSearchQuery.test.js +38 -0
- package/dist/__tests__/utils/compileSearchQuery.test.js.map +1 -0
- package/dist/__tests__/utils/consolePresentation.test.js +105 -0
- package/dist/__tests__/utils/consolePresentation.test.js.map +1 -0
- package/dist/__tests__/utils/extractFileReferences.test.js +41 -0
- package/dist/__tests__/utils/extractFileReferences.test.js.map +1 -0
- package/dist/__tests__/utils/log.test.js +34 -0
- package/dist/__tests__/utils/log.test.js.map +1 -0
- package/dist/__tests__/utils/runtimeLogger.test.js +200 -0
- package/dist/__tests__/utils/runtimeLogger.test.js.map +1 -0
- package/dist/__tests__/utils/spinner.test.js +31 -0
- package/dist/__tests__/utils/spinner.test.js.map +1 -0
- package/dist/__tests__/utils/verifyFocusPreference.test.js +41 -0
- package/dist/__tests__/utils/verifyFocusPreference.test.js.map +1 -0
- package/dist/agent/actions/index.js +301 -0
- package/dist/agent/actions/index.js.map +1 -0
- package/dist/agent/actions/normalize.js +360 -0
- package/dist/agent/actions/normalize.js.map +1 -0
- package/dist/agent/actions/schemas.js +129 -0
- package/dist/agent/actions/schemas.js.map +1 -0
- package/dist/agent/evidence/index.js +320 -0
- package/dist/agent/evidence/index.js.map +1 -0
- package/dist/agent/feedback/index.js +187 -0
- package/dist/agent/feedback/index.js.map +1 -0
- package/dist/agent/finalization/index.js +35 -0
- package/dist/agent/finalization/index.js.map +1 -0
- package/dist/agent/index.js +126 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/logging/index.js +350 -0
- package/dist/agent/logging/index.js.map +1 -0
- package/dist/agent/persistence/boot.js +58 -0
- package/dist/agent/persistence/boot.js.map +1 -0
- package/dist/agent/persistence/currentTask.js +36 -0
- package/dist/agent/persistence/currentTask.js.map +1 -0
- package/dist/agent/persistence/hydrate.js +42 -0
- package/dist/agent/persistence/hydrate.js.map +1 -0
- package/dist/agent/persistence/index.js +15 -0
- package/dist/agent/persistence/index.js.map +1 -0
- package/dist/agent/persistence/snapshots.js +97 -0
- package/dist/agent/persistence/snapshots.js.map +1 -0
- package/dist/agent/persistence/steps.js +95 -0
- package/dist/agent/persistence/steps.js.map +1 -0
- package/dist/agent/persistence/tasks.js +195 -0
- package/dist/agent/persistence/tasks.js.map +1 -0
- package/dist/agent/persistence/turns.js +92 -0
- package/dist/agent/persistence/turns.js.map +1 -0
- package/dist/agent/policy/ambiguityResolution.js +226 -0
- package/dist/agent/policy/ambiguityResolution.js.map +1 -0
- package/dist/agent/policy/contracts.js +2 -0
- package/dist/agent/policy/contracts.js.map +1 -0
- package/dist/agent/policy/coveragePolicy.js +309 -0
- package/dist/agent/policy/coveragePolicy.js.map +1 -0
- package/dist/agent/policy/endDecisionPolicy.js +31 -0
- package/dist/agent/policy/endDecisionPolicy.js.map +1 -0
- package/dist/agent/policy/index.js +344 -0
- package/dist/agent/policy/index.js.map +1 -0
- package/dist/agent/policy/loopReview.js +778 -0
- package/dist/agent/policy/loopReview.js.map +1 -0
- package/dist/agent/policy/readinessPolicy.js +108 -0
- package/dist/agent/policy/readinessPolicy.js.map +1 -0
- package/dist/agent/policy/resolutionPipeline.js +356 -0
- package/dist/agent/policy/resolutionPipeline.js.map +1 -0
- package/dist/agent/policy/targetClassification.js +33 -0
- package/dist/agent/policy/targetClassification.js.map +1 -0
- package/dist/agent/prompting/actionChoice.js +90 -0
- package/dist/agent/prompting/actionChoice.js.map +1 -0
- package/dist/agent/prompting/finalAnswer.js +38 -0
- package/dist/agent/prompting/finalAnswer.js.map +1 -0
- package/dist/agent/prompting/index.js +14 -0
- package/dist/agent/prompting/index.js.map +1 -0
- package/dist/agent/prompting/plan.js +59 -0
- package/dist/agent/prompting/plan.js.map +1 -0
- package/dist/agent/prompting/transform.js +175 -0
- package/dist/agent/prompting/transform.js.map +1 -0
- package/dist/agent/prompting/understand.js +70 -0
- package/dist/agent/prompting/understand.js.map +1 -0
- package/dist/agent/read/freshness.js +29 -0
- package/dist/agent/read/freshness.js.map +1 -0
- package/dist/agent/read/fullReadPrompt.js +43 -0
- package/dist/agent/read/fullReadPrompt.js.map +1 -0
- package/dist/agent/read/index.js +140 -0
- package/dist/agent/read/index.js.map +1 -0
- package/dist/agent/read/persistence.js +88 -0
- package/dist/agent/read/persistence.js.map +1 -0
- package/dist/agent/read/summarizeReadEvidence.js +733 -0
- package/dist/agent/read/summarizeReadEvidence.js.map +1 -0
- package/dist/agent/read/targetResolution.js +126 -0
- package/dist/agent/read/targetResolution.js.map +1 -0
- package/dist/agent/resume/checkpoint.js +41 -0
- package/dist/agent/resume/checkpoint.js.map +1 -0
- package/dist/agent/runtime/lifecycle.js +67 -0
- package/dist/agent/runtime/lifecycle.js.map +1 -0
- package/dist/agent/runtime/progress.js +178 -0
- package/dist/agent/runtime/progress.js.map +1 -0
- package/dist/agent/runtime/runAgentLoop.js +402 -0
- package/dist/agent/runtime/runAgentLoop.js.map +1 -0
- package/dist/agent/runtime/runAgentPlanOnly.js +127 -0
- package/dist/agent/runtime/runAgentPlanOnly.js.map +1 -0
- package/dist/agent/runtime/understand.js +336 -0
- package/dist/agent/runtime/understand.js.map +1 -0
- package/dist/agent/search/batchPlanner.js +274 -0
- package/dist/agent/search/batchPlanner.js.map +1 -0
- package/dist/agent/search/candidateRetentionPolicy.js +184 -0
- package/dist/agent/search/candidateRetentionPolicy.js.map +1 -0
- package/dist/agent/search/directory.js +51 -0
- package/dist/agent/search/directory.js.map +1 -0
- package/dist/agent/search/exactTarget.js +151 -0
- package/dist/agent/search/exactTarget.js.map +1 -0
- package/dist/agent/search/fragment.js +110 -0
- package/dist/agent/search/fragment.js.map +1 -0
- package/dist/agent/search/index.js +166 -0
- package/dist/agent/search/index.js.map +1 -0
- package/dist/agent/search/laneClassifier.js +119 -0
- package/dist/agent/search/laneClassifier.js.map +1 -0
- package/dist/agent/search/limits.js +10 -0
- package/dist/agent/search/limits.js.map +1 -0
- package/dist/agent/search/ranking.js +22 -0
- package/dist/agent/search/ranking.js.map +1 -0
- package/dist/agent/search/regex.js +83 -0
- package/dist/agent/search/regex.js.map +1 -0
- package/dist/agent/search/routePolicy.js +11 -0
- package/dist/agent/search/routePolicy.js.map +1 -0
- package/dist/agent/search/searchContext.js +128 -0
- package/dist/agent/search/searchContext.js.map +1 -0
- package/dist/agent/search/semantic.js +113 -0
- package/dist/agent/search/semantic.js.map +1 -0
- package/dist/agent/search/semanticIndexSearch.js +202 -0
- package/dist/agent/search/semanticIndexSearch.js.map +1 -0
- package/dist/agent/search/shared.js +283 -0
- package/dist/agent/search/shared.js.map +1 -0
- package/dist/agent/search/shell.js +202 -0
- package/dist/agent/search/shell.js.map +1 -0
- package/dist/agent/search/snippetEvidence.js +57 -0
- package/dist/agent/search/snippetEvidence.js.map +1 -0
- package/dist/agent/search/types.js +2 -0
- package/dist/agent/search/types.js.map +1 -0
- package/dist/agent/state/index.js +99 -0
- package/dist/agent/state/index.js.map +1 -0
- package/dist/agent/state/memory.js +56 -0
- package/dist/agent/state/memory.js.map +1 -0
- package/dist/agent/structuredOutput/index.js +28 -0
- package/dist/agent/structuredOutput/index.js.map +1 -0
- package/dist/agent/tools/index.js +199 -0
- package/dist/agent/tools/index.js.map +1 -0
- package/dist/agent/transform/index.js +519 -0
- package/dist/agent/transform/index.js.map +1 -0
- package/dist/agent/transform/syntax.js +49 -0
- package/dist/agent/transform/syntax.js.map +1 -0
- package/dist/agent/types.js +20 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/agents/actionRegistry.js +114 -0
- package/dist/agents/actionRegistry.js.map +1 -0
- package/dist/agents/agent.js +5 -0
- package/dist/agents/agent.js.map +1 -0
- package/dist/agents/agentActions.js +5 -0
- package/dist/agents/agentActions.js.map +1 -0
- package/dist/agents/agentEvidence.js +5 -0
- package/dist/agents/agentEvidence.js.map +1 -0
- package/dist/agents/agentFeedback.js +5 -0
- package/dist/agents/agentFeedback.js.map +1 -0
- package/dist/agents/agentLogging.js +5 -0
- package/dist/agents/agentLogging.js.map +1 -0
- package/dist/agents/agentLoop.js +5 -0
- package/dist/agents/agentLoop.js.map +1 -0
- package/dist/agents/agentMemory.js +5 -0
- package/dist/agents/agentMemory.js.map +1 -0
- package/dist/agents/agentPlanMode.js +5 -0
- package/dist/agents/agentPlanMode.js.map +1 -0
- package/dist/agents/agentPolicyState.js +5 -0
- package/dist/agents/agentPolicyState.js.map +1 -0
- package/dist/agents/agentProgress.js +93 -0
- package/dist/agents/agentProgress.js.map +1 -0
- package/dist/agents/agentSchemas.js +5 -0
- package/dist/agents/agentSchemas.js.map +1 -0
- package/dist/agents/agentSearchScoring.js +5 -0
- package/dist/agents/agentSearchScoring.js.map +1 -0
- package/dist/agents/agentStateMachine.js +5 -0
- package/dist/agents/agentStateMachine.js.map +1 -0
- package/dist/agents/agentTools.js +5 -0
- package/dist/agents/agentTools.js.map +1 -0
- package/dist/agents/agentTypes.js +5 -0
- package/dist/agents/agentTypes.js.map +1 -0
- package/dist/agents/agentUnderstand.js +5 -0
- package/dist/agents/agentUnderstand.js.map +1 -0
- package/dist/agents/analysisPlanGenStep.js +194 -17
- package/dist/agents/analysisPlanGenStep.js.map +1 -0
- package/dist/agents/answerOnlyCompletion.js +32 -0
- package/dist/agents/answerOnlyCompletion.js.map +1 -0
- package/dist/agents/collaboratorStep.js +1 -0
- package/dist/agents/collaboratorStep.js.map +1 -0
- package/dist/agents/decideNextAction.js +444 -0
- package/dist/agents/decideNextAction.js.map +1 -0
- package/dist/agents/deriveFocusFromSearchStep.js +83 -0
- package/dist/agents/deriveFocusFromSearchStep.js.map +1 -0
- package/dist/agents/evidenceVerifierStep.js +104 -13
- package/dist/agents/evidenceVerifierStep.js.map +1 -0
- package/dist/agents/fileCheckStep.js +381 -12
- package/dist/agents/fileCheckStep.js.map +1 -0
- package/dist/agents/giveUpEvaluatorStep.js +63 -0
- package/dist/agents/giveUpEvaluatorStep.js.map +1 -0
- package/dist/agents/guardPolicy.js +20 -0
- package/dist/agents/guardPolicy.js.map +1 -0
- package/dist/agents/guards/executionPolicyResolver.js +165 -0
- package/dist/agents/guards/executionPolicyResolver.js.map +1 -0
- package/dist/agents/guards/guardState.js +195 -0
- package/dist/agents/guards/guardState.js.map +1 -0
- package/dist/agents/guards/resolveProgressState.js +403 -0
- package/dist/agents/guards/resolveProgressState.js.map +1 -0
- package/dist/agents/infoPlanGenStep.js +66 -8
- package/dist/agents/infoPlanGenStep.js.map +1 -0
- package/dist/agents/integrateFeedbackStep.js +1 -0
- package/dist/agents/integrateFeedbackStep.js.map +1 -0
- package/dist/agents/iterationFileSelector.js +8 -7
- package/dist/agents/iterationFileSelector.js.map +1 -0
- package/dist/agents/mainAgentActivityLog.js +85 -0
- package/dist/agents/mainAgentActivityLog.js.map +1 -0
- package/dist/agents/mainAgentHeuristics.js +173 -0
- package/dist/agents/mainAgentHeuristics.js.map +1 -0
- package/dist/agents/mainAgentVerify.js +159 -0
- package/dist/agents/mainAgentVerify.js.map +1 -0
- package/dist/agents/objectiveEvaluatorStep.js +103 -0
- package/dist/agents/objectiveEvaluatorStep.js.map +1 -0
- package/dist/agents/outerLoopRecoveryEvaluator.js +108 -0
- package/dist/agents/outerLoopRecoveryEvaluator.js.map +1 -0
- package/dist/agents/readinessGateStep.js +95 -9
- package/dist/agents/readinessGateStep.js.map +1 -0
- package/dist/agents/reasonNextStep.js +9 -8
- package/dist/agents/reasonNextStep.js.map +1 -0
- package/dist/agents/reasonNextTaskStep.js +267 -144
- package/dist/agents/reasonNextTaskStep.js.map +1 -0
- package/dist/agents/researchPlanGenStep.js +61 -25
- package/dist/agents/researchPlanGenStep.js.map +1 -0
- package/dist/agents/resolveAgentTargetClassification.js +5 -0
- package/dist/agents/resolveAgentTargetClassification.js.map +1 -0
- package/dist/agents/resolveExecutionModeStep.js +1 -0
- package/dist/agents/resolveExecutionModeStep.js.map +1 -0
- package/dist/agents/resolveExplicitTargetsStep.js +74 -0
- package/dist/agents/resolveExplicitTargetsStep.js.map +1 -0
- package/dist/agents/routingDecisionStep.js +58 -11
- package/dist/agents/routingDecisionStep.js.map +1 -0
- package/dist/agents/scopeClassificationStep.js +66 -3
- package/dist/agents/scopeClassificationStep.js.map +1 -0
- package/dist/agents/selectRelevantSourcesStep.js +13 -5
- package/dist/agents/selectRelevantSourcesStep.js.map +1 -0
- package/dist/agents/structuralPreloadStep.js +3 -4
- package/dist/agents/structuralPreloadStep.js.map +1 -0
- package/dist/agents/transformPlanGenStep.js +105 -18
- package/dist/agents/transformPlanGenStep.js.map +1 -0
- package/dist/agents/understandIntentStep.js +237 -17
- package/dist/agents/understandIntentStep.js.map +1 -0
- package/dist/agents/validateChangesStep.js +16 -2
- package/dist/agents/validateChangesStep.js.map +1 -0
- package/dist/agents/writeFileStep.js +1 -0
- package/dist/agents/writeFileStep.js.map +1 -0
- package/dist/commands/AskCmd.js +139 -44
- package/dist/commands/AskCmd.js.map +1 -0
- package/dist/commands/BackupCmd.js +1 -0
- package/dist/commands/BackupCmd.js.map +1 -0
- package/dist/commands/ChangeLogUpdateCmd.js +1 -0
- package/dist/commands/ChangeLogUpdateCmd.js.map +1 -0
- package/dist/commands/CommitSuggesterCmd.js +55 -13
- package/dist/commands/CommitSuggesterCmd.js.map +1 -0
- package/dist/commands/DaemonCmd.js +52 -14
- package/dist/commands/DaemonCmd.js.map +1 -0
- package/dist/commands/DeleteIndex.js +1 -0
- package/dist/commands/DeleteIndex.js.map +1 -0
- package/dist/commands/EvalReportCmd.js +374 -0
- package/dist/commands/EvalReportCmd.js.map +1 -0
- package/dist/commands/FindCmd.js +1 -0
- package/dist/commands/FindCmd.js.map +1 -0
- package/dist/commands/GitCmd.js +1 -0
- package/dist/commands/GitCmd.js.map +1 -0
- package/dist/commands/IndexCmd.js +11 -79
- package/dist/commands/IndexCmd.js.map +1 -0
- package/dist/commands/InspectCmd.js +1 -0
- package/dist/commands/InspectCmd.js.map +1 -0
- package/dist/commands/ModelCmd.js +24 -0
- package/dist/commands/ModelCmd.js.map +1 -0
- package/dist/commands/ReadlineSingleton.js +1 -0
- package/dist/commands/ReadlineSingleton.js.map +1 -0
- package/dist/commands/ResetDbCmd.js +18 -1
- package/dist/commands/ResetDbCmd.js.map +1 -0
- package/dist/commands/ReviewCmd.js +1 -0
- package/dist/commands/ReviewCmd.js.map +1 -0
- package/dist/commands/StatusCmd.js +22 -0
- package/dist/commands/StatusCmd.js.map +1 -0
- package/dist/commands/StopDaemonCmd.js +1 -0
- package/dist/commands/StopDaemonCmd.js.map +1 -0
- package/dist/commands/SummaryCmd.js +1 -0
- package/dist/commands/SummaryCmd.js.map +1 -0
- package/dist/commands/SwitchCmd.js +9 -15
- package/dist/commands/SwitchCmd.js.map +1 -0
- package/dist/commands/TasksCmd.js +142 -57
- package/dist/commands/TasksCmd.js.map +1 -0
- package/dist/commands/TestCmd.js +66 -0
- package/dist/commands/TestCmd.js.map +1 -0
- package/dist/commands/WorkflowCmd.js +1 -0
- package/dist/commands/WorkflowCmd.js.map +1 -0
- package/dist/commands/commandVisibility.js +27 -0
- package/dist/commands/commandVisibility.js.map +1 -0
- package/dist/commands/evalCommands.js +1337 -0
- package/dist/commands/evalCommands.js.map +1 -0
- package/dist/commands/factory.js +206 -38
- package/dist/commands/factory.js.map +1 -0
- package/dist/config.js +62 -11
- package/dist/config.js.map +1 -0
- package/dist/constants.js +21 -3
- package/dist/constants.js.map +1 -0
- package/dist/context.js +33 -32
- package/dist/context.js.map +1 -0
- package/dist/daemon/daemonQueues.js +1 -20
- package/dist/daemon/daemonQueues.js.map +1 -0
- package/dist/daemon/daemonWorker.js +26 -37
- package/dist/daemon/daemonWorker.js.map +1 -0
- package/dist/daemon/generateSummaries.js +1 -0
- package/dist/daemon/generateSummaries.js.map +1 -0
- package/dist/daemon/runFolderCapsuleBatch.js +1 -0
- package/dist/daemon/runFolderCapsuleBatch.js.map +1 -0
- package/dist/daemon/runIndexingBatch.js +1 -0
- package/dist/daemon/runIndexingBatch.js.map +1 -0
- package/dist/daemon/runKgBatch.js +9 -1
- package/dist/daemon/runKgBatch.js.map +1 -0
- package/dist/db/backup.js +1 -0
- package/dist/db/backup.js.map +1 -0
- package/dist/db/client.js +18 -3
- package/dist/db/client.js.map +1 -0
- package/dist/db/fileIndex.js +110 -152
- package/dist/db/fileIndex.js.map +1 -0
- package/dist/db/functionExtractors/extractFromJava.js +1 -0
- package/dist/db/functionExtractors/extractFromJava.js.map +1 -0
- package/dist/db/functionExtractors/extractFromJs.js +1 -0
- package/dist/db/functionExtractors/extractFromJs.js.map +1 -0
- package/dist/db/functionExtractors/extractFromTs.js +1 -0
- package/dist/db/functionExtractors/extractFromTs.js.map +1 -0
- package/dist/db/functionExtractors/extractFromXML.js +1 -0
- package/dist/db/functionExtractors/extractFromXML.js.map +1 -0
- package/dist/db/functionExtractors/index.js +1 -0
- package/dist/db/functionExtractors/index.js.map +1 -0
- package/dist/db/functionIndex.js +9 -0
- package/dist/db/functionIndex.js.map +1 -0
- package/dist/db/schema.js +314 -99
- package/dist/db/schema.js.map +1 -0
- package/dist/db/sqlTemplates.js +1 -0
- package/dist/db/sqlTemplates.js.map +1 -0
- package/dist/fileRules/builtins.js +1 -0
- package/dist/fileRules/builtins.js.map +1 -0
- package/dist/fileRules/classifyFile.js +1 -0
- package/dist/fileRules/classifyFile.js.map +1 -0
- package/dist/fileRules/codeAllowedExtensions.js +1 -0
- package/dist/fileRules/codeAllowedExtensions.js.map +1 -0
- package/dist/fileRules/detectFileType.js +1 -0
- package/dist/fileRules/detectFileType.js.map +1 -0
- package/dist/fileRules/fileClassifier.js +1 -0
- package/dist/fileRules/fileClassifier.js.map +1 -0
- package/dist/fileRules/fileExceptions.js +1 -0
- package/dist/fileRules/fileExceptions.js.map +1 -0
- package/dist/fileRules/ignoredExtensions.js +1 -0
- package/dist/fileRules/ignoredExtensions.js.map +1 -0
- package/dist/fileRules/ignoredPaths.js +48 -5
- package/dist/fileRules/ignoredPaths.js.map +1 -0
- package/dist/fileRules/queryTokenRules.js +176 -0
- package/dist/fileRules/queryTokenRules.js.map +1 -0
- package/dist/fileRules/searchPathClassification.js +58 -0
- package/dist/fileRules/searchPathClassification.js.map +1 -0
- package/dist/fileRules/shouldIgnoreFiles.js +1 -0
- package/dist/fileRules/shouldIgnoreFiles.js.map +1 -0
- package/dist/fileRules/stopWords.js +9 -0
- package/dist/fileRules/stopWords.js.map +1 -0
- package/dist/fileRules/wellKnownRepoFiles.js +1 -0
- package/dist/fileRules/wellKnownRepoFiles.js.map +1 -0
- package/dist/git/commitSummary.js +227 -0
- package/dist/git/commitSummary.js.map +1 -0
- package/dist/github/api.js +1 -0
- package/dist/github/api.js.map +1 -0
- package/dist/github/auth.js +1 -0
- package/dist/github/auth.js.map +1 -0
- package/dist/github/github.js +1 -0
- package/dist/github/github.js.map +1 -0
- package/dist/github/githubAuthCheck.js +1 -0
- package/dist/github/githubAuthCheck.js.map +1 -0
- package/dist/github/postComments.js +1 -0
- package/dist/github/postComments.js.map +1 -0
- package/dist/github/repo.js +15 -24
- package/dist/github/repo.js.map +1 -0
- package/dist/github/token.js +1 -0
- package/dist/github/token.js.map +1 -0
- package/dist/github/types.js +1 -0
- package/dist/github/types.js.map +1 -0
- package/dist/index.js +318 -37
- package/dist/index.js.map +1 -0
- package/dist/lib/generate.js +264 -20
- package/dist/lib/generate.js.map +1 -0
- package/dist/lib/generateFolderCapsules.js +1 -0
- package/dist/lib/generateFolderCapsules.js.map +1 -0
- package/dist/lib/ollamaModelPolicy.js +59 -0
- package/dist/lib/ollamaModelPolicy.js.map +1 -0
- package/dist/lib/spinner.js +29 -9
- package/dist/lib/spinner.js.map +1 -0
- package/dist/modelSetup.js +25 -78
- package/dist/modelSetup.js.map +1 -0
- package/dist/pipeline/modules/changeLogModule.js +10 -1
- package/dist/pipeline/modules/changeLogModule.js.map +1 -0
- package/dist/pipeline/modules/cleanupModule.js +1 -0
- package/dist/pipeline/modules/cleanupModule.js.map +1 -0
- package/dist/pipeline/modules/codeTransformModule.js +10 -16
- package/dist/pipeline/modules/codeTransformModule.js.map +1 -0
- package/dist/pipeline/modules/commentModule.js +12 -0
- package/dist/pipeline/modules/commentModule.js.map +1 -0
- package/dist/pipeline/modules/commitSuggesterModule.js +82 -12
- package/dist/pipeline/modules/commitSuggesterModule.js.map +1 -0
- package/dist/pipeline/modules/contextReviewModule.js +12 -1
- package/dist/pipeline/modules/contextReviewModule.js.map +1 -0
- package/dist/pipeline/modules/dialogAnswerModule.js +58 -0
- package/dist/pipeline/modules/dialogAnswerModule.js.map +1 -0
- package/dist/pipeline/modules/fileSearchModule.js +5 -143
- package/dist/pipeline/modules/fileSearchModule.js.map +1 -0
- package/dist/pipeline/modules/finalAnswerModule.js +1176 -151
- package/dist/pipeline/modules/finalAnswerModule.js.map +1 -0
- package/dist/pipeline/modules/kgModule.js +18 -1
- package/dist/pipeline/modules/kgModule.js.map +1 -0
- package/dist/pipeline/modules/planAnswerModule.js +99 -0
- package/dist/pipeline/modules/planAnswerModule.js.map +1 -0
- package/dist/pipeline/modules/readFileModule.js +300 -0
- package/dist/pipeline/modules/readFileModule.js.map +1 -0
- package/dist/pipeline/modules/reviewModule.js +10 -1
- package/dist/pipeline/modules/reviewModule.js.map +1 -0
- package/dist/pipeline/modules/searchDbModule.js +159 -0
- package/dist/pipeline/modules/searchDbModule.js.map +1 -0
- package/dist/pipeline/modules/searchListDirectoryModule.js +62 -0
- package/dist/pipeline/modules/searchListDirectoryModule.js.map +1 -0
- package/dist/pipeline/modules/searchModuleShared.js +71 -0
- package/dist/pipeline/modules/searchModuleShared.js.map +1 -0
- package/dist/pipeline/modules/searchRegexModule.js +59 -0
- package/dist/pipeline/modules/searchRegexModule.js.map +1 -0
- package/dist/pipeline/modules/semanticAnalysisModule.js +185 -28
- package/dist/pipeline/modules/semanticAnalysisModule.js.map +1 -0
- package/dist/pipeline/modules/summaryModule.js +11 -1
- package/dist/pipeline/modules/summaryModule.js.map +1 -0
- package/dist/pipeline/registry/moduleRegistry.js +9 -0
- package/dist/pipeline/registry/moduleRegistry.js.map +1 -0
- package/dist/pipeline/runModulePipeline.js +1 -0
- package/dist/pipeline/runModulePipeline.js.map +1 -0
- package/dist/scripts/dbScriptSupport.js +172 -0
- package/dist/scripts/dbScriptSupport.js.map +1 -0
- package/dist/scripts/dbcheck.js +173 -267
- package/dist/scripts/dbcheck.js.map +1 -0
- package/dist/scripts/dboverview.js +161 -0
- package/dist/scripts/dboverview.js.map +1 -0
- package/dist/scripts/migrateDb.js +1 -0
- package/dist/scripts/migrateDb.js.map +1 -0
- package/dist/search/SearchOrchestrator.js +928 -0
- package/dist/search/SearchOrchestrator.js.map +1 -0
- package/dist/search/sharedRankingPolicy.js +283 -0
- package/dist/search/sharedRankingPolicy.js.map +1 -0
- package/dist/setup/reindexOwner.js +97 -0
- package/dist/setup/reindexOwner.js.map +1 -0
- package/dist/setup/setupOwner.js +100 -0
- package/dist/setup/setupOwner.js.map +1 -0
- package/dist/shell/dialogUi.js +81 -0
- package/dist/shell/dialogUi.js.map +1 -0
- package/dist/shellSession.js +126 -0
- package/dist/shellSession.js.map +1 -0
- package/dist/status/statusOwner.js +239 -0
- package/dist/status/statusOwner.js.map +1 -0
- package/dist/testing/contextEval.js +514 -0
- package/dist/testing/contextEval.js.map +1 -0
- package/dist/testing/fixtures/transform/small-file.input.js +5 -0
- package/dist/testing/fixtures/transform/small-file.input.js.map +1 -0
- package/dist/testing/harnessArtifacts.js +112 -0
- package/dist/testing/harnessArtifacts.js.map +1 -0
- package/dist/testing/llmTraceSession.js +67 -0
- package/dist/testing/llmTraceSession.js.map +1 -0
- package/dist/testing/registerDevCliCommands.js +43 -0
- package/dist/testing/registerDevCliCommands.js.map +1 -0
- package/dist/testing/runDiagnosis.js +248 -0
- package/dist/testing/runDiagnosis.js.map +1 -0
- package/dist/testing/runtimeLogReader.js +144 -0
- package/dist/testing/runtimeLogReader.js.map +1 -0
- package/dist/testing/testCommands.js +35 -303
- package/dist/testing/testCommands.js.map +1 -0
- package/dist/testing/testRegistry.js +233 -0
- package/dist/testing/testRegistry.js.map +1 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/buildContextualPrompt.js +26 -75
- package/dist/utils/buildContextualPrompt.js.map +1 -0
- package/dist/utils/changeLogPrompt.js +1 -0
- package/dist/utils/changeLogPrompt.js.map +1 -0
- package/dist/utils/checkModel.js +17 -92
- package/dist/utils/checkModel.js.map +1 -0
- package/dist/utils/commentMap.js +1 -0
- package/dist/utils/commentMap.js.map +1 -0
- package/dist/utils/compileSearchQuery.js +23 -9
- package/dist/utils/compileSearchQuery.js.map +1 -0
- package/dist/utils/consolePresentation.js +208 -0
- package/dist/utils/consolePresentation.js.map +1 -0
- package/dist/utils/contentUtils.js +17 -2
- package/dist/utils/contentUtils.js.map +1 -0
- package/dist/utils/debugContext.js +1 -0
- package/dist/utils/debugContext.js.map +1 -0
- package/dist/utils/dialogState.js +201 -0
- package/dist/utils/dialogState.js.map +1 -0
- package/dist/utils/editor.js +1 -0
- package/dist/utils/editor.js.map +1 -0
- package/dist/utils/executionEvidence.js +50 -0
- package/dist/utils/executionEvidence.js.map +1 -0
- package/dist/utils/extractFileReferences.js +140 -6
- package/dist/utils/extractFileReferences.js.map +1 -0
- package/dist/utils/fileEvidenceCache.js +50 -0
- package/dist/utils/fileEvidenceCache.js.map +1 -0
- package/dist/utils/fileTree.js +1 -0
- package/dist/utils/fileTree.js.map +1 -0
- package/dist/utils/loadRelevantFolderCapsules.js +35 -5
- package/dist/utils/loadRelevantFolderCapsules.js.map +1 -0
- package/dist/utils/log.js +10 -1
- package/dist/utils/log.js.map +1 -0
- package/dist/utils/normalizeData.js +1 -0
- package/dist/utils/normalizeData.js.map +1 -0
- package/dist/utils/ollamaModelStatus.js +28 -0
- package/dist/utils/ollamaModelStatus.js.map +1 -0
- package/dist/utils/ollamaService.js +294 -0
- package/dist/utils/ollamaService.js.map +1 -0
- package/dist/utils/outputFormatter.js +1 -0
- package/dist/utils/outputFormatter.js.map +1 -0
- package/dist/utils/parseTaggedContent.js +1 -0
- package/dist/utils/parseTaggedContent.js.map +1 -0
- package/dist/utils/planActions.js +27 -46
- package/dist/utils/planActions.js.map +1 -0
- package/dist/utils/promptBuilderHelper.js +1 -0
- package/dist/utils/promptBuilderHelper.js.map +1 -0
- package/dist/utils/promptLogHelper.js +29 -13
- package/dist/utils/promptLogHelper.js.map +1 -0
- package/dist/utils/queryAnchors.js +71 -0
- package/dist/utils/queryAnchors.js.map +1 -0
- package/dist/utils/repoIdentity.js +82 -0
- package/dist/utils/repoIdentity.js.map +1 -0
- package/dist/utils/repoKey.js +1 -0
- package/dist/utils/repoKey.js.map +1 -0
- package/dist/utils/resolveTargetsToFiles.js +1 -0
- package/dist/utils/resolveTargetsToFiles.js.map +1 -0
- package/dist/utils/resumeContext.js +219 -0
- package/dist/utils/resumeContext.js.map +1 -0
- package/dist/utils/resumeState.js +310 -0
- package/dist/utils/resumeState.js.map +1 -0
- package/dist/utils/rollingPlan.js +118 -0
- package/dist/utils/rollingPlan.js.map +1 -0
- package/dist/utils/runQueryWithDaemonControl.js +11 -3
- package/dist/utils/runQueryWithDaemonControl.js.map +1 -0
- package/dist/utils/runtimeLogger.js +252 -0
- package/dist/utils/runtimeLogger.js.map +1 -0
- package/dist/utils/sanitizeQuery.js +1 -0
- package/dist/utils/sanitizeQuery.js.map +1 -0
- package/dist/utils/sharedUtils.js +1 -0
- package/dist/utils/sharedUtils.js.map +1 -0
- package/dist/utils/sleep.js +1 -0
- package/dist/utils/sleep.js.map +1 -0
- package/dist/utils/splitCodeIntoChunk.js +1 -0
- package/dist/utils/splitCodeIntoChunk.js.map +1 -0
- package/dist/utils/time.js +66 -0
- package/dist/utils/time.js.map +1 -0
- package/dist/utils/verifyFocusPreference.js +107 -0
- package/dist/utils/verifyFocusPreference.js.map +1 -0
- package/dist/utils/vscode.js +1 -0
- package/dist/utils/vscode.js.map +1 -0
- package/dist/workflow/workflowResolver.js +1 -0
- package/dist/workflow/workflowResolver.js.map +1 -0
- package/dist/workflow/workflowRunner.js +1 -0
- package/dist/workflow/workflowRunner.js.map +1 -0
- package/package.json +3 -3
- package/dist/agents/MainAgent.js +0 -1886
- package/dist/agents/contextReviewStep.js +0 -101
- package/dist/agents/finalPlanGenStep.js +0 -107
- package/dist/agents/structuralAnalysisStep.js +0 -46
- package/dist/agents/validationAnalysisStep.js +0 -87
- package/dist/pipeline/modules/chunkManagerModule.js +0 -24
- package/dist/pipeline/modules/cleanGeneratedTestsModule.js +0 -33
- package/dist/pipeline/modules/fileReaderModule.js +0 -72
- package/dist/pipeline/modules/gatherInfoModule.js +0 -181
- package/dist/pipeline/modules/generateTestsModule.js +0 -68
- package/dist/pipeline/modules/preserveCodeModule.js +0 -195
- package/dist/pipeline/modules/refactorModule.js +0 -40
- package/dist/pipeline/modules/repairTestsModule.js +0 -48
- package/dist/pipeline/modules/runTestsModule.js +0 -37
package/dist/db/schema.js
CHANGED
|
@@ -1,24 +1,83 @@
|
|
|
1
1
|
import { getDbForRepo } from "./client.js";
|
|
2
|
+
/**
|
|
3
|
+
* Initializes the repo database, including the local session/task/step runtime schema.
|
|
4
|
+
*
|
|
5
|
+
* Why this exists:
|
|
6
|
+
* - agent coordination now persists around `Session -> Task -> Step`
|
|
7
|
+
* - task plans and progress snapshots keep durable resume guidance out of loop-only state
|
|
8
|
+
* - full-read reuse now keeps one persisted read row per file path and read mode
|
|
9
|
+
* - old task-step tables can be reset and rebuilt cleanly instead of migrated
|
|
10
|
+
* - repo indexing tables still live in the same SQLite database
|
|
11
|
+
*/
|
|
12
|
+
function tableExists(db, table) {
|
|
13
|
+
return !!db.prepare(`SELECT 1 FROM sqlite_master WHERE type='table' AND name = ?`).get(table);
|
|
14
|
+
}
|
|
15
|
+
function columnExists(db, table, column) {
|
|
16
|
+
if (!tableExists(db, table))
|
|
17
|
+
return false;
|
|
18
|
+
const cols = db.prepare(`PRAGMA table_info(${table})`).all();
|
|
19
|
+
return cols.some((c) => c.name === column);
|
|
20
|
+
}
|
|
21
|
+
function shouldResetAgentRuntimeTables(db) {
|
|
22
|
+
return (tableExists(db, "task_steps") ||
|
|
23
|
+
tableExists(db, "task_evaluations") ||
|
|
24
|
+
!tableExists(db, "sessions") ||
|
|
25
|
+
!tableExists(db, "tasks") ||
|
|
26
|
+
!tableExists(db, "steps") ||
|
|
27
|
+
!tableExists(db, "evaluations") ||
|
|
28
|
+
!tableExists(db, "task_turns") ||
|
|
29
|
+
!tableExists(db, "task_plans") ||
|
|
30
|
+
!tableExists(db, "task_progress_snapshots") ||
|
|
31
|
+
!columnExists(db, "tasks", "session_id") ||
|
|
32
|
+
!columnExists(db, "tasks", "final_answer_packet_json") ||
|
|
33
|
+
!columnExists(db, "tasks", "snapshot_json") ||
|
|
34
|
+
!columnExists(db, "steps", "runtime_step_id"));
|
|
35
|
+
}
|
|
36
|
+
function resetAgentRuntimeTables(db) {
|
|
37
|
+
db.exec(`
|
|
38
|
+
DROP TABLE IF EXISTS task_progress_snapshots;
|
|
39
|
+
DROP TABLE IF EXISTS task_plans;
|
|
40
|
+
DROP TABLE IF EXISTS action_ledger;
|
|
41
|
+
DROP TABLE IF EXISTS evaluations;
|
|
42
|
+
DROP TABLE IF EXISTS task_turns;
|
|
43
|
+
DROP TABLE IF EXISTS steps;
|
|
44
|
+
DROP TABLE IF EXISTS task_evaluations;
|
|
45
|
+
DROP TABLE IF EXISTS task_steps;
|
|
46
|
+
DROP TABLE IF EXISTS tasks;
|
|
47
|
+
DROP TABLE IF EXISTS sessions;
|
|
48
|
+
`);
|
|
49
|
+
}
|
|
2
50
|
export function initSchema() {
|
|
3
51
|
const db = getDbForRepo();
|
|
52
|
+
if (shouldResetAgentRuntimeTables(db)) {
|
|
53
|
+
resetAgentRuntimeTables(db);
|
|
54
|
+
}
|
|
4
55
|
// --- Global state ---
|
|
5
|
-
db.exec(`
|
|
6
|
-
CREATE TABLE IF NOT EXISTS global_state (
|
|
7
|
-
id INTEGER PRIMARY KEY CHECK (id = 1),
|
|
56
|
+
db.exec(`
|
|
57
|
+
CREATE TABLE IF NOT EXISTS global_state (
|
|
58
|
+
id INTEGER PRIMARY KEY CHECK (id = 1),
|
|
8
59
|
|
|
9
60
|
-- user / system preferences
|
|
10
61
|
default_execution_mode TEXT, -- explain | analyze | transform
|
|
11
62
|
preferred_language TEXT, -- "en", "da", etc.
|
|
12
63
|
|
|
13
|
-
-- learned conventions (lightweight)
|
|
14
|
-
conventions_json TEXT, -- JSON: naming, formatting, habits
|
|
15
|
-
memory_notes TEXT, -- freeform distilled memory
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
64
|
+
-- learned conventions (lightweight)
|
|
65
|
+
conventions_json TEXT, -- JSON: naming, formatting, habits
|
|
66
|
+
memory_notes TEXT, -- freeform distilled memory
|
|
67
|
+
current_session_id INTEGER,
|
|
68
|
+
current_task_id INTEGER,
|
|
69
|
+
|
|
70
|
+
-- bookkeeping
|
|
71
|
+
created_at TEXT NOT NULL,
|
|
72
|
+
updated_at TEXT NOT NULL
|
|
73
|
+
);
|
|
21
74
|
`);
|
|
75
|
+
if (!columnExists(db, "global_state", "current_session_id")) {
|
|
76
|
+
db.exec(`ALTER TABLE global_state ADD COLUMN current_session_id INTEGER`);
|
|
77
|
+
}
|
|
78
|
+
if (!columnExists(db, "global_state", "current_task_id")) {
|
|
79
|
+
db.exec(`ALTER TABLE global_state ADD COLUMN current_task_id INTEGER`);
|
|
80
|
+
}
|
|
22
81
|
// --- Projects ---
|
|
23
82
|
db.exec(`
|
|
24
83
|
CREATE TABLE IF NOT EXISTS projects (
|
|
@@ -44,93 +103,249 @@ export function initSchema() {
|
|
|
44
103
|
CREATE INDEX IF NOT EXISTS idx_projects_repo
|
|
45
104
|
ON projects(repo_path);
|
|
46
105
|
`);
|
|
47
|
-
// ---
|
|
48
|
-
db.exec(`
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
106
|
+
// --- Sessions ---
|
|
107
|
+
db.exec(`
|
|
108
|
+
CREATE TABLE IF NOT EXISTS sessions (
|
|
109
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
110
|
+
project_id INTEGER NOT NULL,
|
|
111
|
+
host_type TEXT NOT NULL,
|
|
112
|
+
active_task_id INTEGER,
|
|
113
|
+
repo_root_path TEXT,
|
|
114
|
+
execution_path TEXT,
|
|
115
|
+
worktree_path TEXT,
|
|
116
|
+
route_lane TEXT,
|
|
117
|
+
runtime_state_json TEXT,
|
|
118
|
+
status TEXT NOT NULL DEFAULT 'active',
|
|
119
|
+
created_at TEXT NOT NULL,
|
|
120
|
+
updated_at TEXT NOT NULL,
|
|
121
|
+
FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_project
|
|
125
|
+
ON sessions(project_id);
|
|
126
|
+
|
|
127
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_status
|
|
128
|
+
ON sessions(status);
|
|
129
|
+
`);
|
|
130
|
+
// --- Tasks ---
|
|
131
|
+
db.exec(`
|
|
132
|
+
CREATE TABLE IF NOT EXISTS tasks (
|
|
133
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
134
|
+
session_id INTEGER NOT NULL,
|
|
135
|
+
project_id INTEGER NOT NULL,
|
|
136
|
+
runtime TEXT NOT NULL DEFAULT 'agent',
|
|
137
|
+
status TEXT NOT NULL DEFAULT 'active',
|
|
138
|
+
initial_query TEXT NOT NULL,
|
|
139
|
+
summary TEXT,
|
|
140
|
+
final_answer_packet_json TEXT,
|
|
141
|
+
agreed_intent TEXT,
|
|
142
|
+
intent_category TEXT,
|
|
143
|
+
normalized_query TEXT,
|
|
144
|
+
intent_confidence REAL,
|
|
145
|
+
relevant_files_json TEXT,
|
|
146
|
+
missing_files_json TEXT,
|
|
147
|
+
routing_decision_json TEXT,
|
|
148
|
+
task_questions_json TEXT,
|
|
149
|
+
dialog_state_json TEXT,
|
|
150
|
+
objective_json TEXT,
|
|
151
|
+
completion_status TEXT,
|
|
152
|
+
completion_evidence_json TEXT,
|
|
153
|
+
give_up_status TEXT,
|
|
154
|
+
give_up_reason TEXT,
|
|
155
|
+
attempt_counters_json TEXT,
|
|
156
|
+
repo_root_path TEXT,
|
|
157
|
+
worktree_path TEXT,
|
|
158
|
+
worktree_branch TEXT,
|
|
159
|
+
worktree_name TEXT,
|
|
160
|
+
base_branch TEXT,
|
|
161
|
+
resume_context_json TEXT,
|
|
162
|
+
snapshot_json TEXT,
|
|
163
|
+
current_step_id TEXT,
|
|
164
|
+
latest_turn_id INTEGER,
|
|
165
|
+
latest_turn_index INTEGER NOT NULL DEFAULT 0,
|
|
166
|
+
created_at TEXT NOT NULL,
|
|
167
|
+
updated_at TEXT NOT NULL,
|
|
168
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
|
|
169
|
+
FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE
|
|
170
|
+
);
|
|
171
|
+
|
|
172
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_session
|
|
173
|
+
ON tasks(session_id);
|
|
174
|
+
|
|
175
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_project
|
|
176
|
+
ON tasks(project_id);
|
|
177
|
+
|
|
178
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_status
|
|
179
|
+
ON tasks(status);
|
|
180
|
+
`);
|
|
181
|
+
if (!columnExists(db, "tasks", "dialog_state_json")) {
|
|
182
|
+
db.exec(`ALTER TABLE tasks ADD COLUMN dialog_state_json TEXT`);
|
|
183
|
+
}
|
|
184
|
+
// --- Steps ---
|
|
185
|
+
db.exec(`
|
|
186
|
+
CREATE TABLE IF NOT EXISTS steps (
|
|
187
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
188
|
+
task_id INTEGER NOT NULL,
|
|
189
|
+
runtime_step_id TEXT NOT NULL,
|
|
190
|
+
file_path TEXT NOT NULL,
|
|
191
|
+
action TEXT,
|
|
192
|
+
args_json TEXT,
|
|
193
|
+
purpose TEXT,
|
|
194
|
+
expected_evidence_json TEXT,
|
|
195
|
+
status TEXT NOT NULL DEFAULT 'pending',
|
|
196
|
+
start_time INTEGER,
|
|
197
|
+
end_time INTEGER,
|
|
198
|
+
result_json TEXT,
|
|
199
|
+
result_summary TEXT,
|
|
200
|
+
notes TEXT,
|
|
201
|
+
step_index INTEGER,
|
|
202
|
+
step_questions_json TEXT,
|
|
203
|
+
created_at TEXT NOT NULL,
|
|
204
|
+
updated_at TEXT NOT NULL,
|
|
205
|
+
FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE CASCADE
|
|
206
|
+
);
|
|
207
|
+
|
|
208
|
+
CREATE INDEX IF NOT EXISTS idx_steps_task
|
|
209
|
+
ON steps(task_id);
|
|
210
|
+
|
|
211
|
+
CREATE INDEX IF NOT EXISTS idx_steps_status
|
|
212
|
+
ON steps(status);
|
|
213
|
+
|
|
214
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_steps_task_runtime
|
|
215
|
+
ON steps(task_id, runtime_step_id);
|
|
216
|
+
`);
|
|
217
|
+
db.exec(`
|
|
218
|
+
CREATE TABLE IF NOT EXISTS task_turns (
|
|
219
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
220
|
+
session_id INTEGER NOT NULL,
|
|
221
|
+
task_id INTEGER NOT NULL,
|
|
222
|
+
turn_index INTEGER NOT NULL,
|
|
223
|
+
user_query TEXT NOT NULL,
|
|
224
|
+
query_kind TEXT NOT NULL,
|
|
225
|
+
status TEXT NOT NULL,
|
|
226
|
+
final_answer TEXT,
|
|
227
|
+
final_answer_packet_json TEXT,
|
|
228
|
+
stop_message TEXT,
|
|
229
|
+
dialog_state_json TEXT,
|
|
230
|
+
created_at TEXT NOT NULL,
|
|
231
|
+
updated_at TEXT NOT NULL,
|
|
232
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
|
|
233
|
+
FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE CASCADE
|
|
234
|
+
);
|
|
235
|
+
|
|
236
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_task_turns_task_turn
|
|
237
|
+
ON task_turns(task_id, turn_index);
|
|
238
|
+
|
|
239
|
+
CREATE INDEX IF NOT EXISTS idx_task_turns_session
|
|
240
|
+
ON task_turns(session_id);
|
|
241
|
+
|
|
242
|
+
CREATE INDEX IF NOT EXISTS idx_task_turns_task
|
|
243
|
+
ON task_turns(task_id);
|
|
244
|
+
`);
|
|
245
|
+
db.exec(`
|
|
246
|
+
CREATE TABLE IF NOT EXISTS evaluations (
|
|
247
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
248
|
+
task_id INTEGER NOT NULL,
|
|
249
|
+
kind TEXT NOT NULL,
|
|
250
|
+
payload_json TEXT NOT NULL,
|
|
251
|
+
created_at TEXT NOT NULL,
|
|
252
|
+
FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE CASCADE
|
|
253
|
+
);
|
|
254
|
+
|
|
255
|
+
CREATE INDEX IF NOT EXISTS idx_evaluations_task
|
|
256
|
+
ON evaluations(task_id);
|
|
257
|
+
`);
|
|
258
|
+
db.exec(`
|
|
259
|
+
CREATE TABLE IF NOT EXISTS action_ledger (
|
|
260
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
261
|
+
task_id INTEGER NOT NULL,
|
|
262
|
+
action_kind TEXT NOT NULL,
|
|
263
|
+
target TEXT NOT NULL,
|
|
264
|
+
reason TEXT NOT NULL,
|
|
265
|
+
outcome TEXT NOT NULL,
|
|
266
|
+
summary TEXT NOT NULL,
|
|
267
|
+
touched_files_json TEXT NOT NULL,
|
|
268
|
+
touched_symbols_json TEXT,
|
|
269
|
+
usefulness REAL,
|
|
270
|
+
prior_action_id INTEGER,
|
|
271
|
+
question_id TEXT,
|
|
272
|
+
created_at TEXT NOT NULL,
|
|
273
|
+
FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE CASCADE,
|
|
274
|
+
FOREIGN KEY (prior_action_id) REFERENCES action_ledger(id) ON DELETE SET NULL
|
|
275
|
+
);
|
|
276
|
+
|
|
277
|
+
CREATE INDEX IF NOT EXISTS idx_action_ledger_task
|
|
278
|
+
ON action_ledger(task_id);
|
|
279
|
+
|
|
280
|
+
CREATE INDEX IF NOT EXISTS idx_action_ledger_task_created
|
|
281
|
+
ON action_ledger(task_id, created_at);
|
|
282
|
+
`);
|
|
283
|
+
db.exec(`
|
|
284
|
+
CREATE TABLE IF NOT EXISTS agent_file_reads (
|
|
285
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
286
|
+
file_path TEXT NOT NULL,
|
|
287
|
+
content_hash TEXT NOT NULL,
|
|
288
|
+
read_mode TEXT NOT NULL,
|
|
289
|
+
payload_json TEXT NOT NULL,
|
|
290
|
+
created_at TEXT NOT NULL,
|
|
291
|
+
updated_at TEXT NOT NULL
|
|
292
|
+
);
|
|
293
|
+
|
|
294
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_agent_file_reads_path_mode
|
|
295
|
+
ON agent_file_reads(file_path, read_mode);
|
|
296
|
+
|
|
297
|
+
CREATE INDEX IF NOT EXISTS idx_agent_file_reads_path
|
|
298
|
+
ON agent_file_reads(file_path);
|
|
299
|
+
`);
|
|
300
|
+
db.exec(`
|
|
301
|
+
CREATE TABLE IF NOT EXISTS task_plans (
|
|
302
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
303
|
+
task_id INTEGER NOT NULL,
|
|
304
|
+
revision INTEGER NOT NULL,
|
|
305
|
+
status TEXT NOT NULL DEFAULT 'active',
|
|
306
|
+
objective TEXT NOT NULL,
|
|
307
|
+
stages_json TEXT NOT NULL,
|
|
308
|
+
risks_json TEXT NOT NULL,
|
|
309
|
+
assumptions_json TEXT NOT NULL,
|
|
310
|
+
acceptance_criteria_json TEXT NOT NULL,
|
|
311
|
+
next_actions_json TEXT NOT NULL,
|
|
312
|
+
summary TEXT,
|
|
313
|
+
source TEXT NOT NULL DEFAULT 'hybrid',
|
|
314
|
+
created_at TEXT NOT NULL,
|
|
315
|
+
updated_at TEXT NOT NULL,
|
|
316
|
+
FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE CASCADE
|
|
317
|
+
);
|
|
318
|
+
|
|
319
|
+
CREATE INDEX IF NOT EXISTS idx_task_plans_task
|
|
320
|
+
ON task_plans(task_id);
|
|
321
|
+
|
|
322
|
+
CREATE INDEX IF NOT EXISTS idx_task_plans_task_status
|
|
323
|
+
ON task_plans(task_id, status);
|
|
324
|
+
`);
|
|
325
|
+
db.exec(`
|
|
326
|
+
CREATE TABLE IF NOT EXISTS task_progress_snapshots (
|
|
327
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
328
|
+
task_id INTEGER NOT NULL,
|
|
329
|
+
plan_id INTEGER,
|
|
330
|
+
status TEXT NOT NULL DEFAULT 'active',
|
|
331
|
+
summary TEXT NOT NULL,
|
|
332
|
+
sections_json TEXT NOT NULL,
|
|
333
|
+
blockers_json TEXT NOT NULL,
|
|
334
|
+
next_focus_json TEXT NOT NULL,
|
|
335
|
+
recent_changes_json TEXT NOT NULL,
|
|
336
|
+
progress_percent REAL NOT NULL DEFAULT 0,
|
|
337
|
+
created_at TEXT NOT NULL,
|
|
338
|
+
updated_at TEXT NOT NULL,
|
|
339
|
+
FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE CASCADE,
|
|
340
|
+
FOREIGN KEY (plan_id) REFERENCES task_plans(id) ON DELETE SET NULL
|
|
341
|
+
);
|
|
342
|
+
|
|
343
|
+
CREATE INDEX IF NOT EXISTS idx_task_progress_snapshots_task
|
|
344
|
+
ON task_progress_snapshots(task_id);
|
|
345
|
+
|
|
346
|
+
CREATE INDEX IF NOT EXISTS idx_task_progress_snapshots_task_status
|
|
347
|
+
ON task_progress_snapshots(task_id, status);
|
|
348
|
+
`);
|
|
134
349
|
// --- Core tables ---
|
|
135
350
|
db.exec(`
|
|
136
351
|
CREATE TABLE IF NOT EXISTS files (
|
|
@@ -250,5 +465,5 @@ export function initSchema() {
|
|
|
250
465
|
CREATE INDEX IF NOT EXISTS idx_summaries_type ON summaries(type);
|
|
251
466
|
CREATE INDEX IF NOT EXISTS idx_summaries_path ON summaries(path);
|
|
252
467
|
`);
|
|
253
|
-
console.log("✅ Graph schema initialized (files, functions, classes, edges, tags, summaries, FTS content_text)");
|
|
254
468
|
}
|
|
469
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;;;;GASG;AACH,SAAS,WAAW,CAAC,EAAO,EAAE,KAAa;IACzC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,YAAY,CAAC,EAAO,EAAE,KAAa,EAAE,MAAc;IAC1D,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,qBAAqB,KAAK,GAAG,CAAC,CAAC,GAAG,EAA6B,CAAC;IACxF,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,6BAA6B,CAAC,EAAO;IAC5C,OAAO,CACL,WAAW,CAAC,EAAE,EAAE,YAAY,CAAC;QAC7B,WAAW,CAAC,EAAE,EAAE,kBAAkB,CAAC;QACnC,CAAC,WAAW,CAAC,EAAE,EAAE,UAAU,CAAC;QAC5B,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC;QACzB,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC;QACzB,CAAC,WAAW,CAAC,EAAE,EAAE,aAAa,CAAC;QAC/B,CAAC,WAAW,CAAC,EAAE,EAAE,YAAY,CAAC;QAC9B,CAAC,WAAW,CAAC,EAAE,EAAE,YAAY,CAAC;QAC9B,CAAC,WAAW,CAAC,EAAE,EAAE,yBAAyB,CAAC;QAC3C,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC;QACxC,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,0BAA0B,CAAC;QACtD,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC;QAC3C,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAC9C,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,EAAO;IACtC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;GAWP,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC;IAC1B,IAAI,6BAA6B,CAAC,EAAE,CAAC,EAAE,CAAC;QACtC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,uBAAuB;IACvB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;GAkBP,CAAC,CAAC;IACH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,cAAc,EAAE,oBAAoB,CAAC,EAAE,CAAC;QAC5D,EAAE,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,cAAc,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACzD,EAAE,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IACzE,CAAC;IAED,mBAAmB;IACnB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;GAuBP,CAAC,CAAC;IAEH,mBAAmB;IACnB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;GAsBP,CAAC,CAAC;IAEH,gBAAgB;IAChB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDP,CAAC,CAAC;IACH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,mBAAmB,CAAC,EAAE,CAAC;QACpD,EAAE,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IACjE,CAAC;IAED,gBAAgB;IAChB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BP,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BP,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;GAYP,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;GAwBP,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;GAgBP,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;GAwBP,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;GAuBP,CAAC,CAAC;IAMH,sBAAsB;IACtB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;GAuBP,CAAC,CAAC;IAEH,0BAA0B;IAC1B,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;GAgBP,CAAC,CAAC;IAEH,0BAA0B;IAC1B,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;GAcP,CAAC,CAAC;IAEH,mCAAmC;IACnC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;GAcP,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;GAaP,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;GAgBP,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;GAYP,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { getDbForRepo } from \"./client.js\";\n\n/**\n * Initializes the repo database, including the local session/task/step runtime schema.\n *\n * Why this exists:\n * - agent coordination now persists around `Session -> Task -> Step`\n * - task plans and progress snapshots keep durable resume guidance out of loop-only state\n * - full-read reuse now keeps one persisted read row per file path and read mode\n * - old task-step tables can be reset and rebuilt cleanly instead of migrated\n * - repo indexing tables still live in the same SQLite database\n */\nfunction tableExists(db: any, table: string): boolean {\n return !!db.prepare(`SELECT 1 FROM sqlite_master WHERE type='table' AND name = ?`).get(table);\n}\n\nfunction columnExists(db: any, table: string, column: string): boolean {\n if (!tableExists(db, table)) return false;\n const cols = db.prepare(`PRAGMA table_info(${table})`).all() as Array<{ name: string }>;\n return cols.some((c) => c.name === column);\n}\n\nfunction shouldResetAgentRuntimeTables(db: any): boolean {\n return (\n tableExists(db, \"task_steps\") ||\n tableExists(db, \"task_evaluations\") ||\n !tableExists(db, \"sessions\") ||\n !tableExists(db, \"tasks\") ||\n !tableExists(db, \"steps\") ||\n !tableExists(db, \"evaluations\") ||\n !tableExists(db, \"task_turns\") ||\n !tableExists(db, \"task_plans\") ||\n !tableExists(db, \"task_progress_snapshots\") ||\n !columnExists(db, \"tasks\", \"session_id\") ||\n !columnExists(db, \"tasks\", \"final_answer_packet_json\") ||\n !columnExists(db, \"tasks\", \"snapshot_json\") ||\n !columnExists(db, \"steps\", \"runtime_step_id\")\n );\n}\n\nfunction resetAgentRuntimeTables(db: any): void {\n db.exec(`\n DROP TABLE IF EXISTS task_progress_snapshots;\n DROP TABLE IF EXISTS task_plans;\n DROP TABLE IF EXISTS action_ledger;\n DROP TABLE IF EXISTS evaluations;\n DROP TABLE IF EXISTS task_turns;\n DROP TABLE IF EXISTS steps;\n DROP TABLE IF EXISTS task_evaluations;\n DROP TABLE IF EXISTS task_steps;\n DROP TABLE IF EXISTS tasks;\n DROP TABLE IF EXISTS sessions;\n `);\n}\n\nexport function initSchema() {\n const db = getDbForRepo();\n if (shouldResetAgentRuntimeTables(db)) {\n resetAgentRuntimeTables(db);\n }\n\n // --- Global state ---\n db.exec(`\n CREATE TABLE IF NOT EXISTS global_state (\n id INTEGER PRIMARY KEY CHECK (id = 1),\n\r\n -- user / system preferences\r\n default_execution_mode TEXT, -- explain | analyze | transform\r\n preferred_language TEXT, -- \"en\", \"da\", etc.\r\n\r\n -- learned conventions (lightweight)\n conventions_json TEXT, -- JSON: naming, formatting, habits\n memory_notes TEXT, -- freeform distilled memory\n current_session_id INTEGER,\n current_task_id INTEGER,\n\n -- bookkeeping\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n );\n `);\n if (!columnExists(db, \"global_state\", \"current_session_id\")) {\n db.exec(`ALTER TABLE global_state ADD COLUMN current_session_id INTEGER`);\n }\n if (!columnExists(db, \"global_state\", \"current_task_id\")) {\n db.exec(`ALTER TABLE global_state ADD COLUMN current_task_id INTEGER`);\n }\n\r\n // --- Projects ---\r\n db.exec(`\r\n CREATE TABLE IF NOT EXISTS projects (\r\n id INTEGER PRIMARY KEY AUTOINCREMENT,\r\n\r\n -- binding (technical, not conceptual)\r\n repo_path TEXT NOT NULL, -- absolute path to repo root\r\n\r\n -- human-facing\r\n name TEXT NOT NULL, -- project name\r\n summary TEXT, -- evolving description\r\n\r\n -- distilled understanding\r\n goals_json TEXT,\r\n constraints_json TEXT,\r\n assumptions_json TEXT,\r\n\r\n -- bookkeeping\r\n created_at TEXT NOT NULL,\r\n updated_at TEXT NOT NULL\r\n );\r\n\r\n CREATE INDEX IF NOT EXISTS idx_projects_repo\r\n ON projects(repo_path);\r\n `);\r\n\r\n // --- Sessions ---\n db.exec(`\n CREATE TABLE IF NOT EXISTS sessions (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n project_id INTEGER NOT NULL,\n host_type TEXT NOT NULL,\n active_task_id INTEGER,\n repo_root_path TEXT,\n execution_path TEXT,\n worktree_path TEXT,\n route_lane TEXT,\n runtime_state_json TEXT,\n status TEXT NOT NULL DEFAULT 'active',\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE\n );\n\n CREATE INDEX IF NOT EXISTS idx_sessions_project\n ON sessions(project_id);\n\n CREATE INDEX IF NOT EXISTS idx_sessions_status\n ON sessions(status);\n `);\n\n // --- Tasks ---\n db.exec(`\n CREATE TABLE IF NOT EXISTS tasks (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n session_id INTEGER NOT NULL,\n project_id INTEGER NOT NULL,\n runtime TEXT NOT NULL DEFAULT 'agent',\n status TEXT NOT NULL DEFAULT 'active',\n initial_query TEXT NOT NULL,\n summary TEXT,\n final_answer_packet_json TEXT,\n agreed_intent TEXT,\n intent_category TEXT,\n normalized_query TEXT,\n intent_confidence REAL,\n relevant_files_json TEXT,\n missing_files_json TEXT,\n routing_decision_json TEXT,\n task_questions_json TEXT,\n dialog_state_json TEXT,\n objective_json TEXT,\n completion_status TEXT,\n completion_evidence_json TEXT,\n give_up_status TEXT,\n give_up_reason TEXT,\n attempt_counters_json TEXT,\n repo_root_path TEXT,\n worktree_path TEXT,\n worktree_branch TEXT,\n worktree_name TEXT,\n base_branch TEXT,\n resume_context_json TEXT,\n snapshot_json TEXT,\n current_step_id TEXT,\n latest_turn_id INTEGER,\n latest_turn_index INTEGER NOT NULL DEFAULT 0,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,\n FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE\n );\n\n CREATE INDEX IF NOT EXISTS idx_tasks_session\n ON tasks(session_id);\n\n CREATE INDEX IF NOT EXISTS idx_tasks_project\n ON tasks(project_id);\n\n CREATE INDEX IF NOT EXISTS idx_tasks_status\n ON tasks(status);\n `);\n if (!columnExists(db, \"tasks\", \"dialog_state_json\")) {\n db.exec(`ALTER TABLE tasks ADD COLUMN dialog_state_json TEXT`);\n }\n\n // --- Steps ---\n db.exec(`\n CREATE TABLE IF NOT EXISTS steps (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n task_id INTEGER NOT NULL,\n runtime_step_id TEXT NOT NULL,\n file_path TEXT NOT NULL,\n action TEXT,\n args_json TEXT,\n purpose TEXT,\n expected_evidence_json TEXT,\n status TEXT NOT NULL DEFAULT 'pending',\n start_time INTEGER,\n end_time INTEGER,\n result_json TEXT,\n result_summary TEXT,\n notes TEXT,\n step_index INTEGER,\n step_questions_json TEXT,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE CASCADE\n );\n\n CREATE INDEX IF NOT EXISTS idx_steps_task\n ON steps(task_id);\n\n CREATE INDEX IF NOT EXISTS idx_steps_status\n ON steps(status);\n\n CREATE UNIQUE INDEX IF NOT EXISTS idx_steps_task_runtime\n ON steps(task_id, runtime_step_id);\n `);\n\n db.exec(`\n CREATE TABLE IF NOT EXISTS task_turns (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n session_id INTEGER NOT NULL,\n task_id INTEGER NOT NULL,\n turn_index INTEGER NOT NULL,\n user_query TEXT NOT NULL,\n query_kind TEXT NOT NULL,\n status TEXT NOT NULL,\n final_answer TEXT,\n final_answer_packet_json TEXT,\n stop_message TEXT,\n dialog_state_json TEXT,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,\n FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE CASCADE\n );\n\n CREATE UNIQUE INDEX IF NOT EXISTS idx_task_turns_task_turn\n ON task_turns(task_id, turn_index);\n\n CREATE INDEX IF NOT EXISTS idx_task_turns_session\n ON task_turns(session_id);\n\n CREATE INDEX IF NOT EXISTS idx_task_turns_task\n ON task_turns(task_id);\n `);\n\n db.exec(`\n CREATE TABLE IF NOT EXISTS evaluations (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n task_id INTEGER NOT NULL,\n kind TEXT NOT NULL,\n payload_json TEXT NOT NULL,\n created_at TEXT NOT NULL,\n FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE CASCADE\n );\n\n CREATE INDEX IF NOT EXISTS idx_evaluations_task\n ON evaluations(task_id);\n `);\n\n db.exec(`\n CREATE TABLE IF NOT EXISTS action_ledger (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n task_id INTEGER NOT NULL,\n action_kind TEXT NOT NULL,\n target TEXT NOT NULL,\n reason TEXT NOT NULL,\n outcome TEXT NOT NULL,\n summary TEXT NOT NULL,\n touched_files_json TEXT NOT NULL,\n touched_symbols_json TEXT,\n usefulness REAL,\n prior_action_id INTEGER,\n question_id TEXT,\n created_at TEXT NOT NULL,\n FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE CASCADE,\n FOREIGN KEY (prior_action_id) REFERENCES action_ledger(id) ON DELETE SET NULL\n );\n\n CREATE INDEX IF NOT EXISTS idx_action_ledger_task\n ON action_ledger(task_id);\n\n CREATE INDEX IF NOT EXISTS idx_action_ledger_task_created\n ON action_ledger(task_id, created_at);\n `);\n\n db.exec(`\n CREATE TABLE IF NOT EXISTS agent_file_reads (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n file_path TEXT NOT NULL,\n content_hash TEXT NOT NULL,\n read_mode TEXT NOT NULL,\n payload_json TEXT NOT NULL,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n );\n\n CREATE UNIQUE INDEX IF NOT EXISTS idx_agent_file_reads_path_mode\n ON agent_file_reads(file_path, read_mode);\n\n CREATE INDEX IF NOT EXISTS idx_agent_file_reads_path\n ON agent_file_reads(file_path);\n `);\n\n db.exec(`\n CREATE TABLE IF NOT EXISTS task_plans (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n task_id INTEGER NOT NULL,\n revision INTEGER NOT NULL,\n status TEXT NOT NULL DEFAULT 'active',\n objective TEXT NOT NULL,\n stages_json TEXT NOT NULL,\n risks_json TEXT NOT NULL,\n assumptions_json TEXT NOT NULL,\n acceptance_criteria_json TEXT NOT NULL,\n next_actions_json TEXT NOT NULL,\n summary TEXT,\n source TEXT NOT NULL DEFAULT 'hybrid',\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE CASCADE\n );\n\n CREATE INDEX IF NOT EXISTS idx_task_plans_task\n ON task_plans(task_id);\n\n CREATE INDEX IF NOT EXISTS idx_task_plans_task_status\n ON task_plans(task_id, status);\n `);\n\n db.exec(`\n CREATE TABLE IF NOT EXISTS task_progress_snapshots (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n task_id INTEGER NOT NULL,\n plan_id INTEGER,\n status TEXT NOT NULL DEFAULT 'active',\n summary TEXT NOT NULL,\n sections_json TEXT NOT NULL,\n blockers_json TEXT NOT NULL,\n next_focus_json TEXT NOT NULL,\n recent_changes_json TEXT NOT NULL,\n progress_percent REAL NOT NULL DEFAULT 0,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE CASCADE,\n FOREIGN KEY (plan_id) REFERENCES task_plans(id) ON DELETE SET NULL\n );\n\n CREATE INDEX IF NOT EXISTS idx_task_progress_snapshots_task\n ON task_progress_snapshots(task_id);\n\n CREATE INDEX IF NOT EXISTS idx_task_progress_snapshots_task_status\n ON task_progress_snapshots(task_id, status);\n `);\n\n\n\n\n\r\n // --- Core tables ---\r\n db.exec(`\r\n CREATE TABLE IF NOT EXISTS files (\r\n id INTEGER PRIMARY KEY AUTOINCREMENT,\r\n path TEXT UNIQUE, -- full path\r\n filename TEXT,\r\n summary TEXT, -- optional, can be generated later\r\n content_text TEXT, -- actual file content\r\n type TEXT, -- file type\r\n last_modified TEXT, -- file system last modified\r\n indexed_at TEXT, -- timestamp when indexed\r\n functions_extracted_at TEXT, -- timestamp when functions/classes extracted\r\n processing_status TEXT NOT NULL DEFAULT 'unprocessed' -- tracks pipeline stage\r\n );\r\n\r\n CREATE VIRTUAL TABLE IF NOT EXISTS files_fts\r\n USING fts5(\r\n filename, \r\n summary, \r\n path, \r\n content_text, \r\n content='files', \r\n content_rowid='id'\r\n );\r\n `);\r\n\r\n // --- Folder capsules ---\r\n db.exec(`\r\n CREATE TABLE IF NOT EXISTS folder_capsules(\r\n id INTEGER PRIMARY KEY AUTOINCREMENT,\r\n path TEXT UNIQUE NOT NULL,\r\n depth INTEGER NOT NULL,\r\n capsule_json TEXT NOT NULL,\r\n confidence REAL,\r\n last_generated TEXT,\r\n source_file_count INTEGER\r\n );\r\n\r\n CREATE INDEX IF NOT EXISTS idx_folder_capsules_path\r\n ON folder_capsules(path);\r\n\r\n CREATE INDEX IF NOT EXISTS idx_folder_capsules_depth\r\n ON folder_capsules(depth);\r\n `);\r\n\r\n // --- Functions table ---\r\n db.exec(`\r\n CREATE TABLE IF NOT EXISTS functions(\r\n id INTEGER PRIMARY KEY AUTOINCREMENT,\r\n file_id INTEGER REFERENCES files(id),\r\n name TEXT,\r\n unique_id TEXT UNIQUE, --e.g. \"buildContextualPrompt@cli/src/utils/buildContextualPrompt.ts\"\r\n start_line INTEGER,\r\n end_line INTEGER,\r\n content TEXT,\r\n lang TEXT\r\n );\r\n\r\n CREATE INDEX IF NOT EXISTS idx_functions_file_id ON functions(file_id);\r\n CREATE INDEX IF NOT EXISTS idx_functions_unique_id ON functions(unique_id);\r\n `);\r\n\r\n // --- Graph-specific additions ---\r\n db.exec(`\r\n CREATE TABLE IF NOT EXISTS graph_classes(\r\n id INTEGER PRIMARY KEY AUTOINCREMENT,\r\n file_id INTEGER REFERENCES files(id),\r\n name TEXT,\r\n unique_id TEXT UNIQUE,\r\n start_line INTEGER,\r\n end_line INTEGER,\r\n content TEXT,\r\n lang TEXT\r\n );\r\n\r\n CREATE INDEX IF NOT EXISTS idx_graph_classes_file_id ON graph_classes(file_id);\r\n CREATE INDEX IF NOT EXISTS idx_graph_classes_unique_id ON graph_classes(unique_id);\r\n `);\r\n\r\n db.exec(`\r\n CREATE TABLE IF NOT EXISTS graph_edges(\r\n id INTEGER PRIMARY KEY AUTOINCREMENT,\r\n source_type TEXT NOT NULL,\r\n source_unique_id TEXT NOT NULL,\r\n target_type TEXT NOT NULL,\r\n target_unique_id TEXT NOT NULL,\r\n relation TEXT NOT NULL\r\n );\r\n\r\n CREATE INDEX IF NOT EXISTS idx_graph_edges_source ON graph_edges(source_type, source_unique_id);\r\n CREATE INDEX IF NOT EXISTS idx_graph_edges_target ON graph_edges(target_type, target_unique_id);\r\n CREATE INDEX IF NOT EXISTS idx_graph_edges_relation ON graph_edges(relation);\r\n `);\r\n\r\n db.exec(`\r\n CREATE TABLE IF NOT EXISTS graph_tags_master(\r\n id INTEGER PRIMARY KEY AUTOINCREMENT,\r\n name TEXT UNIQUE NOT NULL\r\n );\r\n\r\n CREATE TABLE IF NOT EXISTS graph_entity_tags(\r\n id INTEGER PRIMARY KEY AUTOINCREMENT,\r\n entity_type TEXT NOT NULL,\r\n entity_unique_id TEXT NOT NULL,\r\n tag_id INTEGER NOT NULL REFERENCES graph_tags_master(id),\r\n UNIQUE(entity_type, entity_unique_id, tag_id)\r\n );\r\n\r\n CREATE INDEX IF NOT EXISTS idx_graph_entity_tags_entity ON graph_entity_tags(entity_type, entity_unique_id);\r\n CREATE INDEX IF NOT EXISTS idx_graph_entity_tags_tag ON graph_entity_tags(tag_id);\r\n `);\r\n\r\n db.exec(`\r\n CREATE TABLE IF NOT EXISTS summaries(\r\n id INTEGER PRIMARY KEY AUTOINCREMENT,\r\n path TEXT UNIQUE,\r\n type TEXT NOT NULL CHECK(type IN('folder', 'project')),\r\n summary TEXT,\r\n last_generated TEXT,\r\n child_latest_modified TEXT\r\n );\r\n\r\n CREATE INDEX IF NOT EXISTS idx_summaries_type ON summaries(type);\r\n CREATE INDEX IF NOT EXISTS idx_summaries_path ON summaries(path);\r\n `);\r\n}\n"]}
|
package/dist/db/sqlTemplates.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlTemplates.js","sourceRoot":"","sources":["../../src/db/sqlTemplates.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAEhB,oCAAoC;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;CAajC,CAAC;AAEF,6BAA6B;AAC7B,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;CAGpC,CAAC;AAEF,iCAAiC;AACjC,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;CAMjC,CAAC;AAEF,+BAA+B;AAC/B,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;CAQlC,CAAC;AAEF,oBAAoB;AAEpB,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;CAGrC,CAAC;AAEF,gBAAgB;AAEhB,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;CAGvC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;CAejC,CAAC;AAEF,kCAAkC;AAElC,MAAM,CAAC,MAAM,sBAAsB,GAAG;;CAErC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG;;CAEvC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG;;;;;;;;;;;;CAY3C,CAAC;AAGF,iCAAiC;AAEjC;;;;;;;;EAQE;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;CAIxC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;CAKhC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;CAIjC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;CAI/B,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;CAK1C,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;CAKxC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;CAKvC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;CAMrC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;CAKtC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;CAMpC,CAAC;AAEF,wCAAwC;AAExC,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;CAIpC,CAAC","sourcesContent":["// --- Files ---\r\n\r\n// Upsert file metadata into `files`\r\nexport const upsertFileTemplate = `\r\n INSERT INTO files (path, filename, summary, type, last_modified, indexed_at)\r\n VALUES (:path, :filename, :summary, :type, :lastModified, :indexedAt)\r\n ON CONFLICT(path) DO UPDATE SET\r\n filename = excluded.filename,\r\n summary = CASE\r\n WHEN excluded.summary IS NOT NULL AND excluded.summary != files.summary\r\n THEN excluded.summary\r\n ELSE files.summary\r\n END,\r\n type = excluded.type,\r\n last_modified = excluded.last_modified,\r\n indexed_at = excluded.indexed_at\r\n`;\r\n\r\n// Insert or replace into FTS\r\nexport const upsertFileFtsTemplate = `\r\n INSERT OR REPLACE INTO files_fts (rowid, filename, summary, path, content_text)\r\n VALUES ((SELECT id FROM files WHERE path = :path), :filename, :summary, :path, :contentText)\r\n`;\r\n\r\n// Simple file query (no scoring)\r\nexport const queryFilesTemplate = `\r\n SELECT f.id, f.path, f.filename, f.summary, f.type, f.last_modified, f.indexed_at\r\n FROM files f\r\n JOIN files_fts fts ON f.id = fts.rowid\r\n WHERE fts.files_fts MATCH ?\r\n LIMIT ?\r\n`;\r\n\r\n// FTS search with bm25 scoring\r\nexport const searchFilesTemplate = `\r\n SELECT fts.rowid AS id, f.path, f.filename, f.summary, f.type,\r\n bm25(files_fts) AS bm25Score\r\n FROM files f\r\n JOIN files_fts fts ON f.id = fts.rowid\r\n WHERE fts.files_fts MATCH ?\r\n ORDER BY bm25Score ASC\r\n LIMIT ?\r\n`;\r\n\r\n// --- Functions ---\r\n\r\nexport const insertFunctionTemplate = `\r\n INSERT INTO functions (file_id, name, start_line, end_line, content, lang, unique_id)\r\n VALUES (:file_id, :name, :start_line, :end_line, :content, :lang, :unique_id)\r\n`;\r\n\r\n// --- Graph ---\r\n\r\nexport const insertGraphClassTemplate = `\r\n INSERT INTO graph_classes (file_id, name, start_line, end_line, content, lang)\r\n VALUES (:file_id, :name, :start_line, :end_line, :content, :lang)\r\n`;\r\n\r\nexport const insertEdgeTemplate = `\r\n INSERT INTO graph_edges (\r\n source_type, \r\n source_unique_id, \r\n target_type, \r\n target_unique_id, \r\n relation\r\n )\r\n VALUES (\r\n :source_type, \r\n :source_unique_id, \r\n :target_type, \r\n :target_unique_id, \r\n :relation\r\n )\r\n`;\r\n\r\n// --- New graph tag templates ---\r\n\r\nexport const insertGraphTagTemplate = `\r\n INSERT OR IGNORE INTO graph_tags_master (name) VALUES (:name)\r\n`;\r\n\r\nexport const selectGraphTagIdTemplate = `\r\n SELECT id FROM graph_tags_master WHERE name = :name\r\n`;\r\n\r\nexport const insertGraphEntityTagTemplate = `\r\n INSERT INTO graph_entity_tags (\r\n entity_type,\r\n entity_unique_id,\r\n tag_id\r\n )\r\n VALUES (\r\n :entity_type,\r\n :entity_unique_id,\r\n :tag_id\r\n )\r\n ON CONFLICT(entity_type, entity_unique_id, tag_id) DO NOTHING\r\n`;\r\n\r\n\r\n// --- File Processing Status ---\r\n\r\n/* processing_status values:\r\n \"unprocessed\" → newly discovered, not yet indexed\r\n \"indexed\" → content read and inserted into FTS\r\n \"capsuled\" → folder capsule created\r\n \"extracted\" → functions/classes extracted for knowledge graph\r\n \"kg_done\" → knowledge graph updated\r\n \"skipped\" → ignored (invalid, missing, or binary)\r\n \"failed\" → could not be processed due to error\r\n*/\r\n\r\nexport const markFileAsProcessedByPath = `\r\n UPDATE files\r\n SET processing_status = 'processed'\r\n WHERE path = @path\r\n`;\r\n\r\nexport const markFileAsIndexed = `\r\n UPDATE files\r\n SET processing_status = 'indexed',\r\n indexed_at = datetime('now')\r\n WHERE path = @path\r\n`;\r\n\r\nexport const markFileAsCapsuled = `\r\n UPDATE files\r\nSET processing_status = 'capsulized'\r\nWHERE path LIKE ?\r\n`;\r\n\r\nexport const markFileAsKgDone = `\r\n UPDATE files\r\n SET processing_status = 'kg_done'\r\n WHERE path = @path\r\n`;\r\n\r\nexport const markFileAsExtractedTemplate = `\r\n UPDATE files\r\n SET processing_status = 'extracted',\r\n functions_extracted_at = CURRENT_TIMESTAMP\r\n WHERE id = :id\r\n`;\r\n\r\nexport const markFileAsSkippedTemplate = `\r\n UPDATE files\r\n SET processing_status = 'skipped',\r\n functions_extracted_at = NULL\r\n WHERE id = :id\r\n`;\r\n\r\nexport const markFileAsFailedTemplate = `\r\n UPDATE files\r\n SET processing_status = 'failed',\r\n functions_extracted_at = NULL\r\n WHERE id = :id\r\n`;\r\n\r\nexport const selectUnprocessedFiles = `\r\n SELECT id, path, type, content_text, indexed_at, last_modified, processing_status\r\n FROM files\r\n WHERE processing_status = 'unprocessed'\r\n ORDER BY last_modified DESC\r\n LIMIT ?\r\n`;\r\n\r\nexport const markFileAsSkippedByPath = `\r\n UPDATE files\r\n SET processing_status = 'skipped',\r\n functions_extracted_at = NULL\r\n WHERE path = @path\r\n`;\r\n\r\nexport const updateFileWithSummary = `\r\n UPDATE files\r\n SET summary = @summary,\r\n content_text = @contentText,\r\n indexed_at = datetime('now')\r\n WHERE path = @path\r\n`;\r\n\r\n// --- File Processing Status Checks ---\r\n\r\nexport const countUnprocessedFiles = `\r\n SELECT COUNT(*) as count\r\n FROM files\r\n WHERE processing_status = 'unprocessed'\r\n`;\r\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../src/fileRules/builtins.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,EAAE,EAAE,IAAI,GAAG,CAAS;QAClB,iBAAiB;QACjB,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO;QACvG,gBAAgB;QAChB,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ;QAChI,iBAAiB;QACjB,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ;QACrC,cAAc;QACd,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ;QACtG,0BAA0B;QAC1B,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM;QACxD,UAAU;QACV,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;KAC/B,CAAC;IAEF,IAAI,EAAE,IAAI,GAAG,CAAS;QACpB,iBAAiB;QACjB,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM;QACpF,iBAAiB;QACjB,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS;QACvF,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM;QAC7F,eAAe;QACf,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ;QACtE,uBAAuB;QACvB,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK;QAChG,SAAS;QACT,MAAM,EAAE,mBAAmB,EAAE,WAAW;QACxC,OAAO;QACP,QAAQ,EAAE,UAAU,EAAE,aAAa;KACpC,CAAC;CACH,CAAC","sourcesContent":["export const BUILTINS = {\n ts: new Set<string>([\n // String methods\n \"trim\", \"toLowerCase\", \"toUpperCase\", \"includes\", \"startsWith\", \"endsWith\", \"replace\", \"match\", \"split\",\n // Array methods\n \"map\", \"forEach\", \"filter\", \"reduce\", \"some\", \"every\", \"find\", \"findIndex\", \"push\", \"pop\", \"shift\", \"unshift\", \"slice\", \"splice\",\n // Object methods\n \"keys\", \"values\", \"entries\", \"assign\",\n // Number/Math\n \"parseInt\", \"parseFloat\", \"isNaN\", \"isFinite\", \"floor\", \"ceil\", \"round\", \"abs\", \"max\", \"min\", \"random\",\n // JSON / Promise / RegExp\n \"stringify\", \"parse\", \"then\", \"catch\", \"finally\", \"test\",\n // Console\n \"log\", \"error\", \"warn\", \"info\",\n ]),\n\n java: new Set<string>([\n // Object methods\n \"equals\", \"hashCode\", \"toString\", \"clone\", \"finalize\", \"notify\", \"notifyAll\", \"wait\",\n // String methods\n \"charAt\", \"compareTo\", \"contains\", \"endsWith\", \"equalsIgnoreCase\", \"indexOf\", \"isEmpty\",\n \"length\", \"replace\", \"split\", \"startsWith\", \"substring\", \"toLowerCase\", \"toUpperCase\", \"trim\",\n // Math methods\n \"abs\", \"max\", \"min\", \"floor\", \"ceil\", \"round\", \"sqrt\", \"pow\", \"random\",\n // Collections (common)\n \"add\", \"addAll\", \"remove\", \"removeAll\", \"contains\", \"containsAll\", \"size\", \"clear\", \"get\", \"put\",\n // System\n \"exit\", \"currentTimeMillis\", \"arraycopy\",\n // Misc\n \"format\", \"parseInt\", \"parseDouble\",\n ]),\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classifyFile.js","sourceRoot":"","sources":["../../src/fileRules/classifyFile.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAO1D,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,IAAI,gBAAgB,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAChD,IAAI,wBAAwB,CAAC,QAAQ,CAAC;QAAE,OAAO,WAAW,CAAC;IAC3D,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["// src/fileRules/classifyFile.ts\r\n\r\nimport { isGeneratedOrBundledFile } from \"./fileClassifier.js\";\r\nimport { shouldIgnoreFile } from \"./shouldIgnoreFiles.js\";\r\n\r\nexport type FileClassification =\r\n | 'ignore'\r\n | 'generated'\r\n | 'valid';\r\n\r\nexport function classifyFile(filepath: string): FileClassification {\r\n if (shouldIgnoreFile(filepath)) return 'ignore';\r\n if (isGeneratedOrBundledFile(filepath)) return 'generated';\r\n return 'valid';\r\n}\r\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeAllowedExtensions.js","sourceRoot":"","sources":["../../src/fileRules/codeAllowedExtensions.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACnC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM;CACjD,CAAC","sourcesContent":["// src/fileRules/codeAllowedExtensions.ts\nexport const CODE_ALLOWED_EXTENSIONS = [\n 'js', 'javascript', 'ts', 'typescript', 'java',\n];\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detectFileType.js","sourceRoot":"","sources":["../../src/fileRules/detectFileType.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,cAAc,CAAC,aAAqB;IAChD,kEAAkE;IAClE,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC;QACrC,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE;QAC7B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;IAEhD,MAAM,GAAG,GAA2B;QAChC,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,QAAQ;QACjB,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,OAAO;KACnB,CAAC;IAEF,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;AACzD,CAAC","sourcesContent":["import path from 'path';\r\n\r\nexport function detectFileType(filepathOrExt: string): string {\r\n // If it's already an extension (starts with '.'), use it directly\r\n const ext = filepathOrExt.startsWith(\".\")\r\n ? filepathOrExt.toLowerCase()\r\n : path.extname(filepathOrExt).toLowerCase();\r\n\r\n const map: Record<string, string> = {\r\n \".ts\": \"typescript\",\r\n \".tsx\": \"typescript\",\r\n \".js\": \"javascript\",\r\n \".jsx\": \"javascript\",\r\n \".java\": \"java\",\r\n \".py\": \"python\",\r\n \".rb\": \"ruby\",\r\n \".php\": \"php\",\r\n \".go\": \"go\",\r\n \".rs\": \"rust\",\r\n \".c\": \"c\",\r\n \".cpp\": \"cpp\",\r\n \".cs\": \"csharp\",\r\n \".swift\": \"swift\",\r\n \".kt\": \"kotlin\",\r\n \".scala\": \"scala\",\r\n \".md\": \"markdown\",\r\n \".html\": \"html\",\r\n \".htm\": \"html\",\r\n \".xml\": \"xml\",\r\n \".json\": \"json\",\r\n \".yaml\": \"yaml\",\r\n \".yml\": \"yaml\",\r\n \".ini\": \"config\",\r\n \".toml\": \"config\",\r\n \".env\": \"config\",\r\n \".sql\": \"sql\",\r\n \".csv\": \"csv\",\r\n \".tsv\": \"tsv\",\r\n \".txt\": \"text\",\r\n \".log\": \"log\",\r\n \".rst\": \"text\",\r\n \".doc\": \"word\",\r\n \".docx\": \"word\",\r\n \".pdf\": \"pdf\",\r\n \".ppt\": \"powerpoint\",\r\n \".pptx\": \"powerpoint\",\r\n \".xls\": \"excel\",\r\n \".xlsx\": \"excel\",\r\n };\r\n\r\n return map[ext] || ext.replace(\".\", \"\") || \"unknown\";\r\n}\r\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileClassifier.js","sourceRoot":"","sources":["../../src/fileRules/fileClassifier.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAgB;IACvD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAErC;;;;OAIG;IACH,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhD;;;;OAIG;IACH,MAAM,WAAW,GAAG,mDAAmD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnF;;;;;;OAMG;IACH,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;IAC1E,MAAM,qBAAqB,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAClD,IAAI,MAAM,CAAC,UAAU,GAAG,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CACvD,CAAC;IAEF;;;;OAIG;IACH,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,kBAAkB,GAAG,OAAO,IAAI,CAAC,UAAU,IAAI,WAAW,CAAC,CAAC;IAElE;;;;;;OAMG;IACH,OAAO,UAAU,IAAI,WAAW,IAAI,qBAAqB,IAAI,kBAAkB,CAAC;AAClF,CAAC","sourcesContent":["// utils/fileClassifier.ts\r\nimport path from 'path';\r\n\r\n/**\r\n * Determines whether a file is likely to be a *generated* or *bundled* file,\r\n * rather than handwritten source code.\r\n *\r\n * This helps filter out files that shouldn't be analyzed for user-authored logic,\r\n * like minified JS bundles, Webpack chunks, TypeScript output, etc.\r\n */\r\nexport function isGeneratedOrBundledFile(filePath: string): boolean {\r\n const base = path.basename(filePath);\r\n\r\n /**\r\n * Minified file detection:\r\n * Matches file names like `something.min.js` or `app.min.ts`.\r\n * These are typically compiled output intended for production and are not original source code.\r\n */\r\n const isMinified = /\\.min\\.(js|ts)$/.test(base);\r\n\r\n /**\r\n * Hash-named or chunk file detection:\r\n * Matches file names like `bundle.839abc.js`, `chunk.123abc.ts`, or `main-worker.js`.\r\n * These are often created by bundlers like Webpack, Vite, or Rollup.\r\n */\r\n const isHashNamed = /[-_.](worker|bundle|chunk|[a-f0-9]{6,})\\.(js|ts)$/.test(base);\r\n\r\n /**\r\n * Output folder detection:\r\n * These folders are commonly used to store compiled or bundled output.\r\n * Examples: `dist/`, `build/`, `assets/`, `node_modules/`, `plugins/`\r\n *\r\n * If a file is inside any of these folders, we consider it generated/bundled.\r\n */\r\n const outputDirs = ['dist', 'build', 'assets', 'node_modules', 'plugins'];\r\n const isInKnownOutputFolder = outputDirs.some(dir =>\r\n new RegExp(`[\\\\\\\\/]${dir}[\\\\\\\\/]`, 'i').test(filePath)\r\n );\r\n\r\n /**\r\n * Special case: `lib/` folder\r\n * The `lib` folder may contain either handwritten code or compiled output, depending on the project.\r\n * To avoid over-filtering, we only treat files in `lib/` as generated if they also look minified or hashed.\r\n */\r\n const isInLib = /[\\\\/]lib[\\\\/]/i.test(filePath);\r\n const isLikelyBundledLib = isInLib && (isMinified || isHashNamed);\r\n\r\n /**\r\n * Return true if *any* of the following conditions are met:\r\n * - The file looks minified (e.g., `.min.js`)\r\n * - The file has a hash or is a known bundle/chunk/worker\r\n * - The file is located in a known output directory\r\n * - The file is in `lib/` and has signs of being generated (minified or hashed)\r\n */\r\n return isMinified || isHashNamed || isInKnownOutputFolder || isLikelyBundledLib;\r\n}\r\n\r\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileExceptions.js","sourceRoot":"","sources":["../../src/fileRules/fileExceptions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,oCAAoC;IACpC,cAAc,EAAa,uDAAuD;IAClF,eAAe,EAAY,qCAAqC;IAChE,qBAAqB,EAAM,oCAAoC;IAC/D,oBAAoB,EAAO,yCAAyC;IACpE,mBAAmB,EAAQ,0CAA0C;IACrE,eAAe,EAAY,6CAA6C;IACxE,aAAa,EAAc,4BAA4B;IACvD,kBAAkB,EAAS,0BAA0B;IACrD,iBAAiB,EAAU,2BAA2B;IACtD,mBAAmB,EAAQ,6BAA6B;IACxD,uBAAuB,EAAI,2CAA2C;IACtE,wBAAwB,EAAG,0CAA0C;IACrE,kBAAkB,EAAS,iCAAiC;IAC5D,aAAa,EAAc,6BAA6B;IACxD,UAAU,EAAiB,mCAAmC;IAE9D,oBAAoB;IACpB,YAAY,EAAe,kBAAkB;IAC7C,gBAAgB,EAAW,kCAAkC;IAC7D,qBAAqB,EAAM,uDAAuD;IAClF,oBAAoB,EAAO,6CAA6C;IACxE,QAAQ,EAAmB,oDAAoD;IAC/E,eAAe,EAAY,oCAAoC;IAC/D,aAAa,EAAc,6BAA6B;IACxD,qBAAqB,EAAM,mCAAmC;IAE9D,oCAAoC;IACpC,WAAW,EAAgB,6CAA6C;IACxE,YAAY,EAAe,yCAAyC;IACpE,iBAAiB,EAAU,+BAA+B;IAC1D,cAAc,EAAa,8CAA8C;IACzE,SAAS,EAAkB,uBAAuB;IAClD,aAAa,EAAc,8BAA8B;IACzD,YAAY,EAAe,kCAAkC;IAC7D,YAAY,EAAe,mBAAmB;IAC9C,YAAY,EAAe,iCAAiC;IAE5D,+CAA+C;IAC/C,cAAc,EAAa,yBAAyB;IACpD,SAAS,EAAkB,6CAA6C;IACxE,iBAAiB,EAAU,4BAA4B;IAEvD,yBAAyB;IACzB,aAAa,EAAc,yBAAyB;IACpD,aAAa,EAAc,0CAA0C;IACrE,aAAa,EAAc,0CAA0C;IACrE,aAAa,EAAc,+BAA+B;IAC1D,eAAe,EAAY,mCAAmC;IAC9D,cAAc,EAAa,kDAAkD;IAC7E,cAAc,EAAa,qDAAqD;IAEhF,gCAAgC;IAChC,YAAY,EAAe,sBAAsB;IACjD,WAAW,EAAgB,qBAAqB;IAChD,QAAQ,EAAmB,kCAAkC;IAC7D,QAAQ,EAAmB,kCAAkC;IAC7D,YAAY,EAAe,qBAAqB;IAChD,WAAW,EAAgB,sBAAsB;IACjD,WAAW,EAAgB,sBAAsB;IACjD,WAAW,EAAgB,iBAAiB;IAC5C,SAAS,EAAkB,mBAAmB;IAC9C,WAAW,EAAgB,yBAAyB;IAEpD,oCAAoC;IACpC,YAAY,EAAe,oCAAoC;IAC/D,WAAW,EAAgB,sBAAsB;IACjD,UAAU,EAAiB,sBAAsB;IAEjD,wBAAwB;IACxB,gBAAgB,EAAW,0CAA0C;IACrE,eAAe,EAAY,0BAA0B;IACrD,eAAe,EAAY,6BAA6B;IACxD,eAAe,EAAY,wBAAwB;IACnD,gBAAgB,EAAW,yBAAyB;IACpD,eAAe,EAAY,qCAAqC;IAChE,cAAc,EAAa,6CAA6C;IACxE,eAAe,EAAY,gCAAgC;IAC3D,UAAU,EAAiB,iBAAiB;IAC5C,UAAU,EAAiB,4BAA4B;IACvD,SAAS,EAAkB,4BAA4B;IACvD,SAAS,EAAkB,4BAA4B;CACxD,CAAC","sourcesContent":["export const specificFileExceptions = [\r\n // 🧑💻 Project Configuration Files\r\n 'package.json', // Keep package.json for NPM/Yarn dependency management\r\n 'tsconfig.json', // Keep TypeScript configuration file\r\n 'tsconfig.build.json', // Keep build-specific tsconfig file\r\n 'tsconfig.prod.json', // Keep production-specific tsconfig file\r\n 'tsconfig.dev.json', // Keep development-specific tsconfig file\r\n 'jsconfig.json', // Keep jsconfig.json for JavaScript projects\r\n 'eslint.json', // Keep eslint configuration\r\n 'eslint.config.js', // Keep eslint config file\r\n 'babel.config.js', // Keep Babel configuration\r\n 'webpack.config.js', // Keep Webpack configuration\r\n 'webpack.dev.config.js', // Keep development-specific Webpack config\r\n 'webpack.prod.config.js', // Keep production-specific Webpack config\r\n 'rollup.config.js', // Keep Rollup configuration file\r\n 'gulpfile.js', // Keep Gulp task runner file\r\n 'Makefile', // Keep Makefile for project builds\r\n\r\n // 🧪 Docker & CI/CD\r\n 'Dockerfile', // Keep Dockerfile\r\n 'Dockerfile.dev', // Keep Dockerfile for development\r\n 'docker-compose.yaml', // Keep docker-compose.yaml for container orchestration\r\n 'docker-compose.yml', // Keep docker-compose.yml (common variation)\r\n 'ci.yml', // Keep CI configuration file (e.g., GitHub Actions)\r\n 'gitlab-ci.yml', // Keep GitLab CI configuration file\r\n 'Jenkinsfile', // Keep Jenkins pipeline file\r\n 'circleci/config.yml', // Keep CircleCI configuration file\r\n\r\n // 📜 Documentation and Readme Files\r\n 'README.md', // Keep README file for project documentation\r\n 'README.rst', // Keep README in reStructuredText format\r\n 'CONTRIBUTING.md', // Keep contributing guidelines\r\n 'CHANGELOG.md', // Keep changelog for tracking project history\r\n 'LICENSE', // Keep project license\r\n 'LICENSE.txt', // Keep license in text format\r\n 'LICENSE.md', // Keep license in markdown format\r\n 'NOTICE.txt', // Keep NOTICE file\r\n 'INSTALL.md', // Keep installation instructions\r\n\r\n // 🛠️ Build and Deployment Configuration Files\r\n 'build.gradle', // Keep Gradle build file\r\n 'pom.xml', // Keep Maven Project Object Model (POM) file\r\n 'settings.gradle', // Keep Gradle settings file\r\n\r\n // 🔧 Other Project Files\r\n 'Makefile.am', // Keep Automake Makefile\r\n 'config.yaml', // Keep general config file in YAML format\r\n 'config.json', // Keep general config file in JSON format\r\n 'config.toml', // Keep TOML configuration file\r\n 'settings.json', // Keep settings configuration file\r\n 'settings.yml', // Keep settings configuration file in YAML format\r\n 'secrets.json', // Keep secrets (make sure they are handled securely)\r\n\r\n // 📂 Web Development & Frontend\r\n 'index.html', // Keep main HTML file\r\n 'index.php', // Keep main PHP file\r\n 'app.js', // Keep main JavaScript entry file\r\n 'app.ts', // Keep main TypeScript entry file\r\n 'styles.css', // Keep main CSS file\r\n 'main.scss', // Keep main SCSS file\r\n 'main.less', // Keep main LESS file\r\n 'style.css', // Keep style CSS\r\n 'app.vue', // Keep Vue.js file\r\n 'index.vue', // Keep Vue.js index file\r\n\r\n // 🛠️ Miscellaneous Important Files\r\n 'README.txt', // Keep documentation in text format\r\n 'data.json', // Keep data JSON file\r\n 'data.yml', // Keep data YAML file\r\n\r\n // 🚧 Test-related files\r\n 'test.config.js', // Keep test config for testing frameworks\r\n 'test-utils.js', // Keep test utility files\r\n 'test.setup.js', // Keep setup files for tests\r\n 'jest.setup.js', // Keep Jest setup files\r\n 'mocha.setup.js', // Keep Mocha setup files\r\n 'karma.conf.js', // Keep Karma configuration for tests\r\n 'cypress.json', // Keep Cypress config for end-to-end testing\r\n 'karma.conf.js', // Keep Karma test runner config\r\n 'tests.js', // Keep test file\r\n 'tests.ts', // Keep TypeScript test file\r\n 'test.js', // Keep JavaScript test file\r\n 'test.ts', // Keep TypeScript test file\r\n];\r\n"]}
|