jumbo-cli 3.0.3 → 3.2.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 +1 -1
- package/assets/skills/codify-jumbo-goal/SKILL.md +0 -6
- package/assets/skills/define-jumbo-goals/SKILL.md +24 -25
- package/assets/skills/jumbo-add-component/SKILL.md +9 -0
- package/assets/skills/jumbo-add-decision/SKILL.md +9 -0
- package/assets/skills/jumbo-add-dependency/SKILL.md +9 -0
- package/assets/skills/jumbo-add-guideline/SKILL.md +9 -0
- package/assets/skills/jumbo-add-invariant/SKILL.md +9 -0
- package/assets/skills/jumbo-design-goal/SKILL.md +1 -1
- package/assets/skills/refine-jumbo-goals/SKILL.md +4 -4
- package/dist/application/agents/AgentInvocation.d.ts +10 -0
- package/dist/application/agents/AgentInvocation.d.ts.map +1 -0
- package/dist/application/agents/AgentInvocation.js +2 -0
- package/dist/application/agents/AgentInvocation.js.map +1 -0
- package/dist/application/agents/IAgentGateway.d.ts +5 -0
- package/dist/application/agents/IAgentGateway.d.ts.map +1 -0
- package/dist/application/agents/IAgentGateway.js +2 -0
- package/dist/application/agents/IAgentGateway.js.map +1 -0
- package/dist/application/context/decisions/get/IDecisionViewReader.d.ts +7 -0
- package/dist/application/context/decisions/get/IDecisionViewReader.d.ts.map +1 -1
- package/dist/application/context/decisions/search/DecisionSearchCriteria.d.ts +17 -0
- package/dist/application/context/decisions/search/DecisionSearchCriteria.d.ts.map +1 -0
- package/dist/application/context/decisions/search/DecisionSearchCriteria.js +12 -0
- package/dist/application/context/decisions/search/DecisionSearchCriteria.js.map +1 -0
- package/dist/application/context/decisions/search/ISearchDecisionsGateway.d.ts +10 -0
- package/dist/application/context/decisions/search/ISearchDecisionsGateway.d.ts.map +1 -0
- package/dist/application/context/decisions/search/ISearchDecisionsGateway.js +6 -0
- package/dist/application/context/decisions/search/ISearchDecisionsGateway.js.map +1 -0
- package/dist/application/context/decisions/search/LocalSearchDecisionsGateway.d.ts +14 -0
- package/dist/application/context/decisions/search/LocalSearchDecisionsGateway.d.ts.map +1 -0
- package/dist/application/context/decisions/search/LocalSearchDecisionsGateway.js +14 -0
- package/dist/application/context/decisions/search/LocalSearchDecisionsGateway.js.map +1 -0
- package/dist/application/context/decisions/search/SearchDecisionsController.d.ts +13 -0
- package/dist/application/context/decisions/search/SearchDecisionsController.d.ts.map +1 -0
- package/dist/application/context/decisions/search/SearchDecisionsController.js +13 -0
- package/dist/application/context/decisions/search/SearchDecisionsController.js.map +1 -0
- package/dist/application/context/decisions/search/SearchDecisionsRequest.d.ts +8 -0
- package/dist/application/context/decisions/search/SearchDecisionsRequest.d.ts.map +1 -0
- package/dist/application/context/decisions/search/SearchDecisionsRequest.js +5 -0
- package/dist/application/context/decisions/search/SearchDecisionsRequest.js.map +1 -0
- package/dist/application/context/decisions/search/SearchDecisionsResponse.d.ts +8 -0
- package/dist/application/context/decisions/search/SearchDecisionsResponse.d.ts.map +1 -0
- package/dist/application/context/decisions/search/SearchDecisionsResponse.js +5 -0
- package/dist/application/context/decisions/search/SearchDecisionsResponse.js.map +1 -0
- package/dist/application/context/dependencies/get/IDependencyViewReader.d.ts +7 -0
- package/dist/application/context/dependencies/get/IDependencyViewReader.d.ts.map +1 -1
- package/dist/application/context/dependencies/search/DependencySearchCriteria.d.ts +22 -0
- package/dist/application/context/dependencies/search/DependencySearchCriteria.d.ts.map +1 -0
- package/dist/application/context/dependencies/search/DependencySearchCriteria.js +12 -0
- package/dist/application/context/dependencies/search/DependencySearchCriteria.js.map +1 -0
- package/dist/application/context/dependencies/search/ISearchDependenciesGateway.d.ts +10 -0
- package/dist/application/context/dependencies/search/ISearchDependenciesGateway.d.ts.map +1 -0
- package/dist/application/context/dependencies/search/ISearchDependenciesGateway.js +6 -0
- package/dist/application/context/dependencies/search/ISearchDependenciesGateway.js.map +1 -0
- package/dist/application/context/dependencies/search/LocalSearchDependenciesGateway.d.ts +14 -0
- package/dist/application/context/dependencies/search/LocalSearchDependenciesGateway.d.ts.map +1 -0
- package/dist/application/context/dependencies/search/LocalSearchDependenciesGateway.js +14 -0
- package/dist/application/context/dependencies/search/LocalSearchDependenciesGateway.js.map +1 -0
- package/dist/application/context/dependencies/search/SearchDependenciesController.d.ts +13 -0
- package/dist/application/context/dependencies/search/SearchDependenciesController.d.ts.map +1 -0
- package/dist/application/context/dependencies/search/SearchDependenciesController.js +13 -0
- package/dist/application/context/dependencies/search/SearchDependenciesController.js.map +1 -0
- package/dist/application/context/dependencies/search/SearchDependenciesRequest.d.ts +8 -0
- package/dist/application/context/dependencies/search/SearchDependenciesRequest.d.ts.map +1 -0
- package/dist/application/context/dependencies/search/SearchDependenciesRequest.js +5 -0
- package/dist/application/context/dependencies/search/SearchDependenciesRequest.js.map +1 -0
- package/dist/application/context/dependencies/search/SearchDependenciesResponse.d.ts +8 -0
- package/dist/application/context/dependencies/search/SearchDependenciesResponse.d.ts.map +1 -0
- package/dist/application/context/dependencies/search/SearchDependenciesResponse.js +5 -0
- package/dist/application/context/dependencies/search/SearchDependenciesResponse.js.map +1 -0
- package/dist/application/context/goals/codify/CodifierProcessManager.d.ts +34 -0
- package/dist/application/context/goals/codify/CodifierProcessManager.d.ts.map +1 -0
- package/dist/application/context/goals/codify/CodifierProcessManager.js +171 -0
- package/dist/application/context/goals/codify/CodifierProcessManager.js.map +1 -0
- package/dist/application/context/goals/refine/RefinerProcessManager.d.ts +28 -0
- package/dist/application/context/goals/refine/RefinerProcessManager.d.ts.map +1 -0
- package/dist/application/context/goals/refine/RefinerProcessManager.js +147 -0
- package/dist/application/context/goals/refine/RefinerProcessManager.js.map +1 -0
- package/dist/application/context/goals/review/ReviewerProcessManager.d.ts +28 -0
- package/dist/application/context/goals/review/ReviewerProcessManager.d.ts.map +1 -0
- package/dist/application/context/goals/review/ReviewerProcessManager.js +161 -0
- package/dist/application/context/goals/review/ReviewerProcessManager.js.map +1 -0
- package/dist/application/context/guidelines/get/IGuidelineViewReader.d.ts +7 -0
- package/dist/application/context/guidelines/get/IGuidelineViewReader.d.ts.map +1 -1
- package/dist/application/context/guidelines/search/GuidelineSearchCriteria.d.ts +17 -0
- package/dist/application/context/guidelines/search/GuidelineSearchCriteria.d.ts.map +1 -0
- package/dist/application/context/guidelines/search/GuidelineSearchCriteria.js +12 -0
- package/dist/application/context/guidelines/search/GuidelineSearchCriteria.js.map +1 -0
- package/dist/application/context/guidelines/search/ISearchGuidelinesGateway.d.ts +10 -0
- package/dist/application/context/guidelines/search/ISearchGuidelinesGateway.d.ts.map +1 -0
- package/dist/application/context/guidelines/search/ISearchGuidelinesGateway.js +6 -0
- package/dist/application/context/guidelines/search/ISearchGuidelinesGateway.js.map +1 -0
- package/dist/application/context/guidelines/search/LocalSearchGuidelinesGateway.d.ts +14 -0
- package/dist/application/context/guidelines/search/LocalSearchGuidelinesGateway.d.ts.map +1 -0
- package/dist/application/context/guidelines/search/LocalSearchGuidelinesGateway.js +14 -0
- package/dist/application/context/guidelines/search/LocalSearchGuidelinesGateway.js.map +1 -0
- package/dist/application/context/guidelines/search/SearchGuidelinesController.d.ts +13 -0
- package/dist/application/context/guidelines/search/SearchGuidelinesController.d.ts.map +1 -0
- package/dist/application/context/guidelines/search/SearchGuidelinesController.js +13 -0
- package/dist/application/context/guidelines/search/SearchGuidelinesController.js.map +1 -0
- package/dist/application/context/guidelines/search/SearchGuidelinesRequest.d.ts +8 -0
- package/dist/application/context/guidelines/search/SearchGuidelinesRequest.d.ts.map +1 -0
- package/dist/application/context/guidelines/search/SearchGuidelinesRequest.js +5 -0
- package/dist/application/context/guidelines/search/SearchGuidelinesRequest.js.map +1 -0
- package/dist/application/context/guidelines/search/SearchGuidelinesResponse.d.ts +8 -0
- package/dist/application/context/guidelines/search/SearchGuidelinesResponse.d.ts.map +1 -0
- package/dist/application/context/guidelines/search/SearchGuidelinesResponse.js +5 -0
- package/dist/application/context/guidelines/search/SearchGuidelinesResponse.js.map +1 -0
- package/dist/application/context/invariants/get/IInvariantViewReader.d.ts +7 -0
- package/dist/application/context/invariants/get/IInvariantViewReader.d.ts.map +1 -1
- package/dist/application/context/invariants/search/ISearchInvariantsGateway.d.ts +10 -0
- package/dist/application/context/invariants/search/ISearchInvariantsGateway.d.ts.map +1 -0
- package/dist/application/context/invariants/search/ISearchInvariantsGateway.js +6 -0
- package/dist/application/context/invariants/search/ISearchInvariantsGateway.js.map +1 -0
- package/dist/application/context/invariants/search/InvariantSearchCriteria.d.ts +14 -0
- package/dist/application/context/invariants/search/InvariantSearchCriteria.d.ts.map +1 -0
- package/dist/application/context/invariants/search/InvariantSearchCriteria.js +11 -0
- package/dist/application/context/invariants/search/InvariantSearchCriteria.js.map +1 -0
- package/dist/application/context/invariants/search/LocalSearchInvariantsGateway.d.ts +14 -0
- package/dist/application/context/invariants/search/LocalSearchInvariantsGateway.d.ts.map +1 -0
- package/dist/application/context/invariants/search/LocalSearchInvariantsGateway.js +14 -0
- package/dist/application/context/invariants/search/LocalSearchInvariantsGateway.js.map +1 -0
- package/dist/application/context/invariants/search/SearchInvariantsController.d.ts +13 -0
- package/dist/application/context/invariants/search/SearchInvariantsController.d.ts.map +1 -0
- package/dist/application/context/invariants/search/SearchInvariantsController.js +13 -0
- package/dist/application/context/invariants/search/SearchInvariantsController.js.map +1 -0
- package/dist/application/context/invariants/search/SearchInvariantsRequest.d.ts +8 -0
- package/dist/application/context/invariants/search/SearchInvariantsRequest.d.ts.map +1 -0
- package/dist/application/context/invariants/search/SearchInvariantsRequest.js +5 -0
- package/dist/application/context/invariants/search/SearchInvariantsRequest.js.map +1 -0
- package/dist/application/context/invariants/search/SearchInvariantsResponse.d.ts +8 -0
- package/dist/application/context/invariants/search/SearchInvariantsResponse.d.ts.map +1 -0
- package/dist/application/context/invariants/search/SearchInvariantsResponse.js +5 -0
- package/dist/application/context/invariants/search/SearchInvariantsResponse.js.map +1 -0
- package/dist/application/context/project/ProjectKnowledgeInventoryView.d.ts +12 -0
- package/dist/application/context/project/ProjectKnowledgeInventoryView.d.ts.map +1 -0
- package/dist/application/context/project/ProjectKnowledgeInventoryView.js +2 -0
- package/dist/application/context/project/ProjectKnowledgeInventoryView.js.map +1 -0
- package/dist/application/context/project/ProjectLifecycleState.d.ts +7 -0
- package/dist/application/context/project/ProjectLifecycleState.d.ts.map +1 -0
- package/dist/application/context/project/ProjectLifecycleState.js +2 -0
- package/dist/application/context/project/ProjectLifecycleState.js.map +1 -0
- package/dist/application/context/project/ProjectSummaryView.d.ts +2 -0
- package/dist/application/context/project/ProjectSummaryView.d.ts.map +1 -1
- package/dist/application/context/project/ProjectView.d.ts +2 -0
- package/dist/application/context/project/ProjectView.d.ts.map +1 -1
- package/dist/application/context/project/query/GetProjectSummaryQueryHandler.d.ts.map +1 -1
- package/dist/application/context/project/query/GetProjectSummaryQueryHandler.js +3 -0
- package/dist/application/context/project/query/GetProjectSummaryQueryHandler.js.map +1 -1
- package/dist/application/context/project/query/IProjectContextReader.d.ts +10 -0
- package/dist/application/context/project/query/IProjectContextReader.d.ts.map +1 -1
- package/dist/application/context/project/query/ProjectLifecycleClassifier.d.ts +9 -0
- package/dist/application/context/project/query/ProjectLifecycleClassifier.d.ts.map +1 -0
- package/dist/application/context/project/query/ProjectLifecycleClassifier.js +18 -0
- package/dist/application/context/project/query/ProjectLifecycleClassifier.js.map +1 -0
- package/dist/application/context/project/query/north-star/ProjectNorthStarView.d.ts +20 -0
- package/dist/application/context/project/query/north-star/ProjectNorthStarView.d.ts.map +1 -0
- package/dist/application/context/project/query/north-star/ProjectNorthStarView.js +2 -0
- package/dist/application/context/project/query/north-star/ProjectNorthStarView.js.map +1 -0
- package/dist/application/context/project/show/IShowProjectGateway.d.ts +6 -0
- package/dist/application/context/project/show/IShowProjectGateway.d.ts.map +1 -0
- package/dist/application/context/project/show/IShowProjectGateway.js +2 -0
- package/dist/application/context/project/show/IShowProjectGateway.js.map +1 -0
- package/dist/application/context/project/show/LocalShowProjectGateway.d.ts +16 -0
- package/dist/application/context/project/show/LocalShowProjectGateway.d.ts.map +1 -0
- package/dist/application/context/project/show/LocalShowProjectGateway.js +32 -0
- package/dist/application/context/project/show/LocalShowProjectGateway.js.map +1 -0
- package/dist/application/context/project/show/ShowProjectController.d.ts +9 -0
- package/dist/application/context/project/show/ShowProjectController.d.ts.map +1 -0
- package/dist/application/context/project/show/ShowProjectController.js +9 -0
- package/dist/application/context/project/show/ShowProjectController.js.map +1 -0
- package/dist/application/context/project/show/ShowProjectRequest.d.ts +4 -0
- package/dist/application/context/project/show/ShowProjectRequest.d.ts.map +1 -0
- package/dist/application/context/project/show/ShowProjectRequest.js +2 -0
- package/dist/application/context/project/show/ShowProjectRequest.js.map +1 -0
- package/dist/application/context/project/show/ShowProjectResponse.d.ts +7 -0
- package/dist/application/context/project/show/ShowProjectResponse.d.ts.map +1 -0
- package/dist/application/context/project/show/ShowProjectResponse.js +2 -0
- package/dist/application/context/project/show/ShowProjectResponse.js.map +1 -0
- package/dist/application/context/sessions/SessionInstructionSignal.d.ts +0 -1
- package/dist/application/context/sessions/SessionInstructionSignal.d.ts.map +1 -1
- package/dist/application/context/sessions/SessionInstructionSignal.js +0 -1
- package/dist/application/context/sessions/SessionInstructionSignal.js.map +1 -1
- package/dist/application/context/sessions/get/SessionContext.d.ts +3 -3
- package/dist/application/context/sessions/get/SessionContext.d.ts.map +1 -1
- package/dist/application/context/sessions/get/SessionContextQueryHandler.d.ts +2 -8
- package/dist/application/context/sessions/get/SessionContextQueryHandler.d.ts.map +1 -1
- package/dist/application/context/sessions/get/SessionContextQueryHandler.js +4 -13
- package/dist/application/context/sessions/get/SessionContextQueryHandler.js.map +1 -1
- package/dist/application/context/sessions/start/LocalStartSessionGateway.d.ts +2 -8
- package/dist/application/context/sessions/start/LocalStartSessionGateway.d.ts.map +1 -1
- package/dist/application/context/sessions/start/LocalStartSessionGateway.js +4 -47
- package/dist/application/context/sessions/start/LocalStartSessionGateway.js.map +1 -1
- package/dist/application/context/sessions/start/SessionStartResponse.d.ts +4 -4
- package/dist/application/context/sessions/start/SessionStartResponse.d.ts.map +1 -1
- package/dist/application/daemons/IProcessManager.d.ts +28 -0
- package/dist/application/daemons/IProcessManager.d.ts.map +1 -0
- package/dist/application/daemons/IProcessManager.js +2 -0
- package/dist/application/daemons/IProcessManager.js.map +1 -0
- package/dist/application/daemons/IShutdownSignal.d.ts +5 -0
- package/dist/application/daemons/IShutdownSignal.d.ts.map +1 -0
- package/dist/application/daemons/IShutdownSignal.js +2 -0
- package/dist/application/daemons/IShutdownSignal.js.map +1 -0
- package/dist/application/daemons/ITicker.d.ts +4 -0
- package/dist/application/daemons/ITicker.d.ts.map +1 -0
- package/dist/application/daemons/ITicker.js +2 -0
- package/dist/application/daemons/ITicker.js.map +1 -0
- package/dist/application/daemons/IWorkerDaemonProcessController.d.ts +30 -0
- package/dist/application/daemons/IWorkerDaemonProcessController.d.ts.map +1 -0
- package/dist/application/daemons/IWorkerDaemonProcessController.js +2 -0
- package/dist/application/daemons/IWorkerDaemonProcessController.js.map +1 -0
- package/dist/application/daemons/PollingLoop.d.ts +13 -0
- package/dist/application/daemons/PollingLoop.d.ts.map +1 -0
- package/dist/application/daemons/PollingLoop.js +15 -0
- package/dist/application/daemons/PollingLoop.js.map +1 -0
- package/dist/application/daemons/WorkerDaemonCatalog.d.ts +11 -0
- package/dist/application/daemons/WorkerDaemonCatalog.d.ts.map +1 -0
- package/dist/application/daemons/WorkerDaemonCatalog.js +12 -0
- package/dist/application/daemons/WorkerDaemonCatalog.js.map +1 -0
- package/dist/application/host/IApplicationContainer.d.ts +6 -0
- package/dist/application/host/IApplicationContainer.d.ts.map +1 -1
- package/dist/application/settings/Settings.d.ts +11 -0
- package/dist/application/settings/Settings.d.ts.map +1 -1
- package/dist/cli.js +68 -5
- package/dist/cli.js.map +1 -1
- package/dist/domain/project/JumboMdContent.js +1 -1
- package/dist/infrastructure/agents/AgentCliGateway.d.ts +15 -0
- package/dist/infrastructure/agents/AgentCliGateway.d.ts.map +1 -0
- package/dist/infrastructure/agents/AgentCliGateway.js +82 -0
- package/dist/infrastructure/agents/AgentCliGateway.js.map +1 -0
- package/dist/infrastructure/context/decisions/get/SqliteDecisionViewReader.d.ts +8 -0
- package/dist/infrastructure/context/decisions/get/SqliteDecisionViewReader.d.ts.map +1 -1
- package/dist/infrastructure/context/decisions/get/SqliteDecisionViewReader.js +45 -0
- package/dist/infrastructure/context/decisions/get/SqliteDecisionViewReader.js.map +1 -1
- package/dist/infrastructure/context/decisions/migrations/002-add-decision-search-indexes.sql +11 -0
- package/dist/infrastructure/context/dependencies/get/SqliteDependencyViewReader.d.ts +3 -0
- package/dist/infrastructure/context/dependencies/get/SqliteDependencyViewReader.d.ts.map +1 -1
- package/dist/infrastructure/context/dependencies/get/SqliteDependencyViewReader.js +57 -0
- package/dist/infrastructure/context/dependencies/get/SqliteDependencyViewReader.js.map +1 -1
- package/dist/infrastructure/context/dependencies/migrations/003-add-dependency-search-indexes.sql +12 -0
- package/dist/infrastructure/context/guidelines/get/SqliteGuidelineViewReader.d.ts +8 -0
- package/dist/infrastructure/context/guidelines/get/SqliteGuidelineViewReader.d.ts.map +1 -1
- package/dist/infrastructure/context/guidelines/get/SqliteGuidelineViewReader.js +31 -0
- package/dist/infrastructure/context/guidelines/get/SqliteGuidelineViewReader.js.map +1 -1
- package/dist/infrastructure/context/guidelines/migrations/003-add-guideline-search-indexes.sql +17 -0
- package/dist/infrastructure/context/invariants/get/SqliteInvariantViewReader.d.ts +8 -0
- package/dist/infrastructure/context/invariants/get/SqliteInvariantViewReader.d.ts.map +1 -1
- package/dist/infrastructure/context/invariants/get/SqliteInvariantViewReader.js +31 -0
- package/dist/infrastructure/context/invariants/get/SqliteInvariantViewReader.js.map +1 -1
- package/dist/infrastructure/context/invariants/migrations/003-add-invariant-search-indexes.sql +6 -0
- package/dist/infrastructure/context/project/query/SqliteProjectContextReader.d.ts +5 -0
- package/dist/infrastructure/context/project/query/SqliteProjectContextReader.d.ts.map +1 -1
- package/dist/infrastructure/context/project/query/SqliteProjectContextReader.js +34 -2
- package/dist/infrastructure/context/project/query/SqliteProjectContextReader.js.map +1 -1
- package/dist/infrastructure/daemons/IntervalTicker.d.ts +7 -0
- package/dist/infrastructure/daemons/IntervalTicker.d.ts.map +1 -0
- package/dist/infrastructure/daemons/IntervalTicker.js +11 -0
- package/dist/infrastructure/daemons/IntervalTicker.js.map +1 -0
- package/dist/infrastructure/daemons/NodeWorkerDaemonProcessController.d.ts +12 -0
- package/dist/infrastructure/daemons/NodeWorkerDaemonProcessController.d.ts.map +1 -0
- package/dist/infrastructure/daemons/NodeWorkerDaemonProcessController.js +56 -0
- package/dist/infrastructure/daemons/NodeWorkerDaemonProcessController.js.map +1 -0
- package/dist/infrastructure/daemons/ProcessSignalSource.d.ts +10 -0
- package/dist/infrastructure/daemons/ProcessSignalSource.d.ts.map +1 -0
- package/dist/infrastructure/daemons/ProcessSignalSource.js +24 -0
- package/dist/infrastructure/daemons/ProcessSignalSource.js.map +1 -0
- package/dist/infrastructure/host/HostBuilder.d.ts.map +1 -1
- package/dist/infrastructure/host/HostBuilder.js +17 -2
- package/dist/infrastructure/host/HostBuilder.js.map +1 -1
- package/dist/infrastructure/logging/FileLogger.js +1 -1
- package/dist/infrastructure/settings/DefaultSettings.d.ts.map +1 -1
- package/dist/infrastructure/settings/DefaultSettings.js +3 -0
- package/dist/infrastructure/settings/DefaultSettings.js.map +1 -1
- package/dist/infrastructure/settings/FsSettingsInitializer.d.ts.map +1 -1
- package/dist/infrastructure/settings/FsSettingsInitializer.js +6 -0
- package/dist/infrastructure/settings/FsSettingsInitializer.js.map +1 -1
- package/dist/infrastructure/settings/FsSettingsReader.d.ts.map +1 -1
- package/dist/infrastructure/settings/FsSettingsReader.js +10 -0
- package/dist/infrastructure/settings/FsSettingsReader.js.map +1 -1
- package/dist/presentation/cli/AppRunner.d.ts +7 -1
- package/dist/presentation/cli/AppRunner.d.ts.map +1 -1
- package/dist/presentation/cli/AppRunner.js +10 -5
- package/dist/presentation/cli/AppRunner.js.map +1 -1
- package/dist/presentation/cli/CliBootstrapPlan.d.ts +12 -0
- package/dist/presentation/cli/CliBootstrapPlan.d.ts.map +1 -0
- package/dist/presentation/cli/CliBootstrapPlan.js +23 -0
- package/dist/presentation/cli/CliBootstrapPlan.js.map +1 -0
- package/dist/presentation/cli/banner/AnimationFrames.d.ts +6 -1
- package/dist/presentation/cli/banner/AnimationFrames.d.ts.map +1 -1
- package/dist/presentation/cli/banner/AnimationFrames.js +307 -288
- package/dist/presentation/cli/banner/AnimationFrames.js.map +1 -1
- package/dist/presentation/cli/commands/decisions/search/DecisionSearchOutputBuilder.d.ts +17 -0
- package/dist/presentation/cli/commands/decisions/search/DecisionSearchOutputBuilder.d.ts.map +1 -0
- package/dist/presentation/cli/commands/decisions/search/DecisionSearchOutputBuilder.js +90 -0
- package/dist/presentation/cli/commands/decisions/search/DecisionSearchOutputBuilder.js.map +1 -0
- package/dist/presentation/cli/commands/decisions/search/decisions.search.d.ts +22 -0
- package/dist/presentation/cli/commands/decisions/search/decisions.search.d.ts.map +1 -0
- package/dist/presentation/cli/commands/decisions/search/decisions.search.js +93 -0
- package/dist/presentation/cli/commands/decisions/search/decisions.search.js.map +1 -0
- package/dist/presentation/cli/commands/dependencies/search/DependencySearchOutputBuilder.d.ts +16 -0
- package/dist/presentation/cli/commands/dependencies/search/DependencySearchOutputBuilder.d.ts.map +1 -0
- package/dist/presentation/cli/commands/dependencies/search/DependencySearchOutputBuilder.js +85 -0
- package/dist/presentation/cli/commands/dependencies/search/DependencySearchOutputBuilder.js.map +1 -0
- package/dist/presentation/cli/commands/dependencies/search/dependencies.search.d.ts +21 -0
- package/dist/presentation/cli/commands/dependencies/search/dependencies.search.d.ts.map +1 -0
- package/dist/presentation/cli/commands/dependencies/search/dependencies.search.js +111 -0
- package/dist/presentation/cli/commands/dependencies/search/dependencies.search.js.map +1 -0
- package/dist/presentation/cli/commands/guidelines/search/GuidelineSearchOutputBuilder.d.ts +22 -0
- package/dist/presentation/cli/commands/guidelines/search/GuidelineSearchOutputBuilder.d.ts.map +1 -0
- package/dist/presentation/cli/commands/guidelines/search/GuidelineSearchOutputBuilder.js +86 -0
- package/dist/presentation/cli/commands/guidelines/search/GuidelineSearchOutputBuilder.js.map +1 -0
- package/dist/presentation/cli/commands/guidelines/search/guidelines.search.d.ts +21 -0
- package/dist/presentation/cli/commands/guidelines/search/guidelines.search.d.ts.map +1 -0
- package/dist/presentation/cli/commands/guidelines/search/guidelines.search.js +92 -0
- package/dist/presentation/cli/commands/guidelines/search/guidelines.search.js.map +1 -0
- package/dist/presentation/cli/commands/invariants/search/InvariantSearchOutputBuilder.d.ts +22 -0
- package/dist/presentation/cli/commands/invariants/search/InvariantSearchOutputBuilder.d.ts.map +1 -0
- package/dist/presentation/cli/commands/invariants/search/InvariantSearchOutputBuilder.js +79 -0
- package/dist/presentation/cli/commands/invariants/search/InvariantSearchOutputBuilder.js.map +1 -0
- package/dist/presentation/cli/commands/invariants/search/invariants.search.d.ts +20 -0
- package/dist/presentation/cli/commands/invariants/search/invariants.search.d.ts.map +1 -0
- package/dist/presentation/cli/commands/invariants/search/invariants.search.js +80 -0
- package/dist/presentation/cli/commands/invariants/search/invariants.search.js.map +1 -0
- package/dist/presentation/cli/commands/project/show/ProjectShowOutputBuilder.d.ts +14 -0
- package/dist/presentation/cli/commands/project/show/ProjectShowOutputBuilder.d.ts.map +1 -0
- package/dist/presentation/cli/commands/project/show/ProjectShowOutputBuilder.js +84 -0
- package/dist/presentation/cli/commands/project/show/ProjectShowOutputBuilder.js.map +1 -0
- package/dist/presentation/cli/commands/project/show/project.show.d.ts +12 -0
- package/dist/presentation/cli/commands/project/show/project.show.d.ts.map +1 -0
- package/dist/presentation/cli/commands/project/show/project.show.js +59 -0
- package/dist/presentation/cli/commands/project/show/project.show.js.map +1 -0
- package/dist/presentation/cli/commands/registry/generated-commands.d.ts.map +1 -1
- package/dist/presentation/cli/commands/registry/generated-commands.js +30 -0
- package/dist/presentation/cli/commands/registry/generated-commands.js.map +1 -1
- package/dist/presentation/cli/commands/sessions/start/SessionContextOutputBuilder.d.ts +0 -1
- package/dist/presentation/cli/commands/sessions/start/SessionContextOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/sessions/start/SessionContextOutputBuilder.js +2 -43
- package/dist/presentation/cli/commands/sessions/start/SessionContextOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/sessions/start/SessionStartOutputBuilder.d.ts +8 -9
- package/dist/presentation/cli/commands/sessions/start/SessionStartOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/sessions/start/SessionStartOutputBuilder.js +107 -42
- package/dist/presentation/cli/commands/sessions/start/SessionStartOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/sessions/start/SessionStartTextRenderer.d.ts +3 -2
- package/dist/presentation/cli/commands/sessions/start/SessionStartTextRenderer.d.ts.map +1 -1
- package/dist/presentation/cli/commands/sessions/start/SessionStartTextRenderer.js +24 -10
- package/dist/presentation/cli/commands/sessions/start/SessionStartTextRenderer.js.map +1 -1
- package/dist/presentation/cli/commands/sessions/start/session.start.d.ts.map +1 -1
- package/dist/presentation/cli/commands/sessions/start/session.start.js +2 -5
- package/dist/presentation/cli/commands/sessions/start/session.start.js.map +1 -1
- package/dist/presentation/cli/commands/work/shared/AgentSpawner.d.ts +7 -4
- package/dist/presentation/cli/commands/work/shared/AgentSpawner.d.ts.map +1 -1
- package/dist/presentation/cli/commands/work/shared/AgentSpawner.js +11 -4
- package/dist/presentation/cli/commands/work/shared/AgentSpawner.js.map +1 -1
- package/dist/presentation/shared/DesignTokens.d.ts +94 -0
- package/dist/presentation/shared/DesignTokens.d.ts.map +1 -0
- package/dist/presentation/shared/DesignTokens.js +94 -0
- package/dist/presentation/shared/DesignTokens.js.map +1 -0
- package/dist/presentation/tui/action-dispatch/TuiActionDispatcher.d.ts +12 -0
- package/dist/presentation/tui/action-dispatch/TuiActionDispatcher.d.ts.map +1 -0
- package/dist/presentation/tui/action-dispatch/TuiActionDispatcher.js +21 -0
- package/dist/presentation/tui/action-dispatch/TuiActionDispatcher.js.map +1 -0
- package/dist/presentation/tui/application-shell/Footer.d.ts +16 -0
- package/dist/presentation/tui/application-shell/Footer.d.ts.map +1 -0
- package/dist/presentation/tui/application-shell/Footer.js +37 -0
- package/dist/presentation/tui/application-shell/Footer.js.map +1 -0
- package/dist/presentation/tui/application-shell/Header.d.ts +10 -0
- package/dist/presentation/tui/application-shell/Header.d.ts.map +1 -0
- package/dist/presentation/tui/application-shell/Header.js +44 -0
- package/dist/presentation/tui/application-shell/Header.js.map +1 -0
- package/dist/presentation/tui/application-shell/NotificationDrawer.d.ts +16 -0
- package/dist/presentation/tui/application-shell/NotificationDrawer.d.ts.map +1 -0
- package/dist/presentation/tui/application-shell/NotificationDrawer.js +56 -0
- package/dist/presentation/tui/application-shell/NotificationDrawer.js.map +1 -0
- package/dist/presentation/tui/application-shell/TuiApp.d.ts +25 -0
- package/dist/presentation/tui/application-shell/TuiApp.d.ts.map +1 -0
- package/dist/presentation/tui/application-shell/TuiApp.js +230 -0
- package/dist/presentation/tui/application-shell/TuiApp.js.map +1 -0
- package/dist/presentation/tui/application-shell/TuiApplicationLauncher.d.ts +19 -0
- package/dist/presentation/tui/application-shell/TuiApplicationLauncher.d.ts.map +1 -0
- package/dist/presentation/tui/application-shell/TuiApplicationLauncher.js +46 -0
- package/dist/presentation/tui/application-shell/TuiApplicationLauncher.js.map +1 -0
- package/dist/presentation/tui/billboard/AnimatedBillboard.d.ts +11 -0
- package/dist/presentation/tui/billboard/AnimatedBillboard.d.ts.map +1 -0
- package/dist/presentation/tui/billboard/AnimatedBillboard.js +406 -0
- package/dist/presentation/tui/billboard/AnimatedBillboard.js.map +1 -0
- package/dist/presentation/tui/cockpit/AnimatedBanner.d.ts +13 -0
- package/dist/presentation/tui/cockpit/AnimatedBanner.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/AnimatedBanner.js +193 -0
- package/dist/presentation/tui/cockpit/AnimatedBanner.js.map +1 -0
- package/dist/presentation/tui/cockpit/CenteredPrompt.d.ts +10 -0
- package/dist/presentation/tui/cockpit/CenteredPrompt.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CenteredPrompt.js +14 -0
- package/dist/presentation/tui/cockpit/CenteredPrompt.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonConfiguration.d.ts +8 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonConfiguration.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonConfiguration.js +33 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonConfiguration.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonEvents.d.ts +14 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonEvents.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonEvents.js +146 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonEvents.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonFrames.d.ts +39 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonFrames.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonFrames.js +183 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonFrames.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonPanel.d.ts +27 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonPanel.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonPanel.js +108 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonPanel.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitGreeterView.d.ts +3 -0
- package/dist/presentation/tui/cockpit/CockpitGreeterView.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitGreeterView.js +17 -0
- package/dist/presentation/tui/cockpit/CockpitGreeterView.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitLaunchpadView.d.ts +25 -0
- package/dist/presentation/tui/cockpit/CockpitLaunchpadView.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitLaunchpadView.js +217 -0
- package/dist/presentation/tui/cockpit/CockpitLaunchpadView.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitLaunchpadWelcome.d.ts +3 -0
- package/dist/presentation/tui/cockpit/CockpitLaunchpadWelcome.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitLaunchpadWelcome.js +16 -0
- package/dist/presentation/tui/cockpit/CockpitLaunchpadWelcome.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitPrimedEmptyView.d.ts +3 -0
- package/dist/presentation/tui/cockpit/CockpitPrimedEmptyView.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitPrimedEmptyView.js +22 -0
- package/dist/presentation/tui/cockpit/CockpitPrimedEmptyView.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitScreen.d.ts +20 -0
- package/dist/presentation/tui/cockpit/CockpitScreen.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitScreen.js +55 -0
- package/dist/presentation/tui/cockpit/CockpitScreen.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitUnprimedView.d.ts +3 -0
- package/dist/presentation/tui/cockpit/CockpitUnprimedView.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitUnprimedView.js +27 -0
- package/dist/presentation/tui/cockpit/CockpitUnprimedView.js.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/ISubprocessManager.d.ts +42 -0
- package/dist/presentation/tui/daemon-subprocesses/ISubprocessManager.d.ts.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/ISubprocessManager.js +2 -0
- package/dist/presentation/tui/daemon-subprocesses/ISubprocessManager.js.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/NoOpSubprocessManager.d.ts +11 -0
- package/dist/presentation/tui/daemon-subprocesses/NoOpSubprocessManager.d.ts.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/NoOpSubprocessManager.js +30 -0
- package/dist/presentation/tui/daemon-subprocesses/NoOpSubprocessManager.js.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/SubprocessManagerContext.d.ts +8 -0
- package/dist/presentation/tui/daemon-subprocesses/SubprocessManagerContext.d.ts.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/SubprocessManagerContext.js +10 -0
- package/dist/presentation/tui/daemon-subprocesses/SubprocessManagerContext.js.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiSubprocessManager.d.ts +22 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiSubprocessManager.d.ts.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiSubprocessManager.js +257 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiSubprocessManager.js.map +1 -0
- package/dist/presentation/tui/goals/GoalAuthoringFlow.d.ts +22 -0
- package/dist/presentation/tui/goals/GoalAuthoringFlow.d.ts.map +1 -0
- package/dist/presentation/tui/goals/GoalAuthoringFlow.js +227 -0
- package/dist/presentation/tui/goals/GoalAuthoringFlow.js.map +1 -0
- package/dist/presentation/tui/goals/GoalsScreen.d.ts +3 -0
- package/dist/presentation/tui/goals/GoalsScreen.d.ts.map +1 -0
- package/dist/presentation/tui/goals/GoalsScreen.js +159 -0
- package/dist/presentation/tui/goals/GoalsScreen.js.map +1 -0
- package/dist/presentation/tui/index.d.ts +8 -0
- package/dist/presentation/tui/index.d.ts.map +1 -0
- package/dist/presentation/tui/index.js +5 -0
- package/dist/presentation/tui/index.js.map +1 -0
- package/dist/presentation/tui/memory/MemoryScreen.d.ts +3 -0
- package/dist/presentation/tui/memory/MemoryScreen.d.ts.map +1 -0
- package/dist/presentation/tui/memory/MemoryScreen.js +13 -0
- package/dist/presentation/tui/memory/MemoryScreen.js.map +1 -0
- package/dist/presentation/tui/memory/components/ComponentAddFlow.d.ts +14 -0
- package/dist/presentation/tui/memory/components/ComponentAddFlow.d.ts.map +1 -0
- package/dist/presentation/tui/memory/components/ComponentAddFlow.js +46 -0
- package/dist/presentation/tui/memory/components/ComponentAddFlow.js.map +1 -0
- package/dist/presentation/tui/memory/components/ComponentsScreen.d.ts +3 -0
- package/dist/presentation/tui/memory/components/ComponentsScreen.d.ts.map +1 -0
- package/dist/presentation/tui/memory/components/ComponentsScreen.js +17 -0
- package/dist/presentation/tui/memory/components/ComponentsScreen.js.map +1 -0
- package/dist/presentation/tui/memory/decisions/DecisionAddFlow.d.ts +15 -0
- package/dist/presentation/tui/memory/decisions/DecisionAddFlow.d.ts.map +1 -0
- package/dist/presentation/tui/memory/decisions/DecisionAddFlow.js +63 -0
- package/dist/presentation/tui/memory/decisions/DecisionAddFlow.js.map +1 -0
- package/dist/presentation/tui/memory/decisions/DecisionsScreen.d.ts +3 -0
- package/dist/presentation/tui/memory/decisions/DecisionsScreen.d.ts.map +1 -0
- package/dist/presentation/tui/memory/decisions/DecisionsScreen.js +18 -0
- package/dist/presentation/tui/memory/decisions/DecisionsScreen.js.map +1 -0
- package/dist/presentation/tui/memory/dependencies/DependenciesScreen.d.ts +3 -0
- package/dist/presentation/tui/memory/dependencies/DependenciesScreen.d.ts.map +1 -0
- package/dist/presentation/tui/memory/dependencies/DependenciesScreen.js +19 -0
- package/dist/presentation/tui/memory/dependencies/DependenciesScreen.js.map +1 -0
- package/dist/presentation/tui/memory/dependencies/DependencyAddFlow.d.ts +16 -0
- package/dist/presentation/tui/memory/dependencies/DependencyAddFlow.d.ts.map +1 -0
- package/dist/presentation/tui/memory/dependencies/DependencyAddFlow.js +56 -0
- package/dist/presentation/tui/memory/dependencies/DependencyAddFlow.js.map +1 -0
- package/dist/presentation/tui/memory/entity-browser/EntityColumn.d.ts +14 -0
- package/dist/presentation/tui/memory/entity-browser/EntityColumn.d.ts.map +1 -0
- package/dist/presentation/tui/memory/entity-browser/EntityColumn.js +21 -0
- package/dist/presentation/tui/memory/entity-browser/EntityColumn.js.map +1 -0
- package/dist/presentation/tui/memory/entity-browser/EntityDetailView.d.ts +10 -0
- package/dist/presentation/tui/memory/entity-browser/EntityDetailView.d.ts.map +1 -0
- package/dist/presentation/tui/memory/entity-browser/EntityDetailView.js +85 -0
- package/dist/presentation/tui/memory/entity-browser/EntityDetailView.js.map +1 -0
- package/dist/presentation/tui/memory/entity-browser/MemoryEntityScreen.d.ts +13 -0
- package/dist/presentation/tui/memory/entity-browser/MemoryEntityScreen.d.ts.map +1 -0
- package/dist/presentation/tui/memory/entity-browser/MemoryEntityScreen.js +80 -0
- package/dist/presentation/tui/memory/entity-browser/MemoryEntityScreen.js.map +1 -0
- package/dist/presentation/tui/memory/entity-browser/MemoryEntityShapes.d.ts +41 -0
- package/dist/presentation/tui/memory/entity-browser/MemoryEntityShapes.d.ts.map +1 -0
- package/dist/presentation/tui/memory/entity-browser/MemoryEntityShapes.js +2 -0
- package/dist/presentation/tui/memory/entity-browser/MemoryEntityShapes.js.map +1 -0
- package/dist/presentation/tui/memory/guidelines/GuidelineAddFlow.d.ts +15 -0
- package/dist/presentation/tui/memory/guidelines/GuidelineAddFlow.d.ts.map +1 -0
- package/dist/presentation/tui/memory/guidelines/GuidelineAddFlow.js +57 -0
- package/dist/presentation/tui/memory/guidelines/GuidelineAddFlow.js.map +1 -0
- package/dist/presentation/tui/memory/guidelines/GuidelinesScreen.d.ts +3 -0
- package/dist/presentation/tui/memory/guidelines/GuidelinesScreen.d.ts.map +1 -0
- package/dist/presentation/tui/memory/guidelines/GuidelinesScreen.js +18 -0
- package/dist/presentation/tui/memory/guidelines/GuidelinesScreen.js.map +1 -0
- package/dist/presentation/tui/memory/invariants/InvariantAddFlow.d.ts +13 -0
- package/dist/presentation/tui/memory/invariants/InvariantAddFlow.d.ts.map +1 -0
- package/dist/presentation/tui/memory/invariants/InvariantAddFlow.js +41 -0
- package/dist/presentation/tui/memory/invariants/InvariantAddFlow.js.map +1 -0
- package/dist/presentation/tui/memory/invariants/InvariantsScreen.d.ts +3 -0
- package/dist/presentation/tui/memory/invariants/InvariantsScreen.d.ts.map +1 -0
- package/dist/presentation/tui/memory/invariants/InvariantsScreen.js +16 -0
- package/dist/presentation/tui/memory/invariants/InvariantsScreen.js.map +1 -0
- package/dist/presentation/tui/navigation/MegaMenu.d.ts +10 -0
- package/dist/presentation/tui/navigation/MegaMenu.d.ts.map +1 -0
- package/dist/presentation/tui/navigation/MegaMenu.js +164 -0
- package/dist/presentation/tui/navigation/MegaMenu.js.map +1 -0
- package/dist/presentation/tui/navigation/MegaMenuDefinitions.d.ts +17 -0
- package/dist/presentation/tui/navigation/MegaMenuDefinitions.d.ts.map +1 -0
- package/dist/presentation/tui/navigation/MegaMenuDefinitions.js +162 -0
- package/dist/presentation/tui/navigation/MegaMenuDefinitions.js.map +1 -0
- package/dist/presentation/tui/navigation/ScreenDefinitions.d.ts +36 -0
- package/dist/presentation/tui/navigation/ScreenDefinitions.d.ts.map +1 -0
- package/dist/presentation/tui/navigation/ScreenDefinitions.js +12 -0
- package/dist/presentation/tui/navigation/ScreenDefinitions.js.map +1 -0
- package/dist/presentation/tui/navigation/ScreenRouter.d.ts +19 -0
- package/dist/presentation/tui/navigation/ScreenRouter.d.ts.map +1 -0
- package/dist/presentation/tui/navigation/ScreenRouter.js +31 -0
- package/dist/presentation/tui/navigation/ScreenRouter.js.map +1 -0
- package/dist/presentation/tui/project-initialization/InitFlow.d.ts +24 -0
- package/dist/presentation/tui/project-initialization/InitFlow.d.ts.map +1 -0
- package/dist/presentation/tui/project-initialization/InitFlow.js +629 -0
- package/dist/presentation/tui/project-initialization/InitFlow.js.map +1 -0
- package/dist/presentation/tui/sessions/SessionScreen.d.ts +3 -0
- package/dist/presentation/tui/sessions/SessionScreen.d.ts.map +1 -0
- package/dist/presentation/tui/sessions/SessionScreen.js +38 -0
- package/dist/presentation/tui/sessions/SessionScreen.js.map +1 -0
- package/dist/presentation/tui/state-reading/TuiStateReader.d.ts +58 -0
- package/dist/presentation/tui/state-reading/TuiStateReader.d.ts.map +1 -0
- package/dist/presentation/tui/state-reading/TuiStateReader.js +150 -0
- package/dist/presentation/tui/state-reading/TuiStateReader.js.map +1 -0
- package/dist/presentation/tui/ui-primitives/DetailPane.d.ts +15 -0
- package/dist/presentation/tui/ui-primitives/DetailPane.d.ts.map +1 -0
- package/dist/presentation/tui/ui-primitives/DetailPane.js +12 -0
- package/dist/presentation/tui/ui-primitives/DetailPane.js.map +1 -0
- package/dist/presentation/tui/ui-primitives/KeyBadge.d.ts +11 -0
- package/dist/presentation/tui/ui-primitives/KeyBadge.d.ts.map +1 -0
- package/dist/presentation/tui/ui-primitives/KeyBadge.js +9 -0
- package/dist/presentation/tui/ui-primitives/KeyBadge.js.map +1 -0
- package/dist/presentation/tui/ui-primitives/ListPanel.d.ts +16 -0
- package/dist/presentation/tui/ui-primitives/ListPanel.d.ts.map +1 -0
- package/dist/presentation/tui/ui-primitives/ListPanel.js +15 -0
- package/dist/presentation/tui/ui-primitives/ListPanel.js.map +1 -0
- package/dist/presentation/tui/ui-primitives/Panel.d.ts +15 -0
- package/dist/presentation/tui/ui-primitives/Panel.d.ts.map +1 -0
- package/dist/presentation/tui/ui-primitives/Panel.js +9 -0
- package/dist/presentation/tui/ui-primitives/Panel.js.map +1 -0
- package/dist/presentation/tui/ui-primitives/SectionHeading.d.ts +8 -0
- package/dist/presentation/tui/ui-primitives/SectionHeading.d.ts.map +1 -0
- package/dist/presentation/tui/ui-primitives/SectionHeading.js +9 -0
- package/dist/presentation/tui/ui-primitives/SectionHeading.js.map +1 -0
- package/dist/presentation/tui/ui-primitives/StatusIndicator.d.ts +9 -0
- package/dist/presentation/tui/ui-primitives/StatusIndicator.d.ts.map +1 -0
- package/dist/presentation/tui/ui-primitives/StatusIndicator.js +21 -0
- package/dist/presentation/tui/ui-primitives/StatusIndicator.js.map +1 -0
- package/dist/presentation/tui/ui-primitives/Tumbler.d.ts +18 -0
- package/dist/presentation/tui/ui-primitives/Tumbler.d.ts.map +1 -0
- package/dist/presentation/tui/ui-primitives/Tumbler.js +101 -0
- package/dist/presentation/tui/ui-primitives/Tumbler.js.map +1 -0
- package/dist/presentation/tui/wizard/Wizard.d.ts +53 -0
- package/dist/presentation/tui/wizard/Wizard.d.ts.map +1 -0
- package/dist/presentation/tui/wizard/Wizard.js +385 -0
- package/dist/presentation/tui/wizard/Wizard.js.map +1 -0
- package/dist/presentation/tui/wizard/WizardTextInput.d.ts +12 -0
- package/dist/presentation/tui/wizard/WizardTextInput.d.ts.map +1 -0
- package/dist/presentation/tui/wizard/WizardTextInput.js +39 -0
- package/dist/presentation/tui/wizard/WizardTextInput.js.map +1 -0
- package/dist/presentation/work/codifier.daemon.d.ts +3 -0
- package/dist/presentation/work/codifier.daemon.d.ts.map +1 -0
- package/dist/presentation/work/codifier.daemon.js +75 -0
- package/dist/presentation/work/codifier.daemon.js.map +1 -0
- package/dist/presentation/work/refiner.daemon.d.ts +3 -0
- package/dist/presentation/work/refiner.daemon.d.ts.map +1 -0
- package/dist/presentation/work/refiner.daemon.js +60 -0
- package/dist/presentation/work/refiner.daemon.js.map +1 -0
- package/dist/presentation/work/reviewer.daemon.d.ts +3 -0
- package/dist/presentation/work/reviewer.daemon.d.ts.map +1 -0
- package/dist/presentation/work/reviewer.daemon.js +60 -0
- package/dist/presentation/work/reviewer.daemon.js.map +1 -0
- package/package.json +5 -1
- package/dist/application/context/project/get/ContextualProjectView.d.ts +0 -24
- package/dist/application/context/project/get/ContextualProjectView.d.ts.map +0 -1
- package/dist/application/context/project/get/ContextualProjectView.js +0 -2
- package/dist/application/context/project/get/ContextualProjectView.js.map +0 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IAgentGateway } from "../../application/agents/IAgentGateway.js";
|
|
2
|
+
import { AgentInvocation, AgentInvocationResult } from "../../application/agents/AgentInvocation.js";
|
|
3
|
+
import { ITelemetryClient } from "../../application/telemetry/ITelemetryClient.js";
|
|
4
|
+
export declare const SUPPORTED_AGENT_IDS: readonly ["claude", "gemini", "copilot", "codex", "cursor", "vibe"];
|
|
5
|
+
export type SupportedAgentId = typeof SUPPORTED_AGENT_IDS[number];
|
|
6
|
+
export declare class AgentCliGateway implements IAgentGateway {
|
|
7
|
+
private readonly telemetryClient;
|
|
8
|
+
constructor(telemetryClient: ITelemetryClient);
|
|
9
|
+
invoke(invocation: AgentInvocation): Promise<AgentInvocationResult>;
|
|
10
|
+
private resolveCommand;
|
|
11
|
+
private buildCommandLine;
|
|
12
|
+
private isSupportedAgent;
|
|
13
|
+
private trackInvocation;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=AgentCliGateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentCliGateway.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/agents/AgentCliGateway.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AAEnF,eAAO,MAAM,mBAAmB,qEAAsE,CAAC;AACvG,MAAM,MAAM,gBAAgB,GAAG,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAmBlE,qBAAa,eAAgB,YAAW,aAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,gBAAgB;IAExD,MAAM,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAsCzE,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,eAAe;CAoBxB"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
export const SUPPORTED_AGENT_IDS = ["claude", "gemini", "copilot", "codex", "cursor", "vibe"];
|
|
3
|
+
const CODEX_NON_INTERACTIVE_EXEC_ARGS = ["exec", "--skip-git-repo-check"];
|
|
4
|
+
const AGENT_COMMANDS = {
|
|
5
|
+
claude: { executable: "claude", promptFlag: "-p" },
|
|
6
|
+
gemini: { executable: "gemini", promptFlag: "-p" },
|
|
7
|
+
copilot: { executable: "gh copilot", promptFlag: "-p" },
|
|
8
|
+
codex: { executable: "codex", args: CODEX_NON_INTERACTIVE_EXEC_ARGS },
|
|
9
|
+
cursor: { executable: "cursor", promptFlag: "-p" },
|
|
10
|
+
vibe: { executable: "vibe", promptFlag: "-p" },
|
|
11
|
+
};
|
|
12
|
+
export class AgentCliGateway {
|
|
13
|
+
constructor(telemetryClient) {
|
|
14
|
+
this.telemetryClient = telemetryClient;
|
|
15
|
+
}
|
|
16
|
+
async invoke(invocation) {
|
|
17
|
+
const startedAt = process.hrtime.bigint();
|
|
18
|
+
const command = this.resolveCommand(invocation.agentId);
|
|
19
|
+
const commandLine = this.buildCommandLine(command, invocation.prompt);
|
|
20
|
+
return new Promise((resolve) => {
|
|
21
|
+
let stdout = "";
|
|
22
|
+
let stderr = "";
|
|
23
|
+
const child = spawn(commandLine, [], {
|
|
24
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
25
|
+
shell: true,
|
|
26
|
+
});
|
|
27
|
+
child.stdout?.on("data", (chunk) => {
|
|
28
|
+
const text = chunk.toString();
|
|
29
|
+
stdout += text;
|
|
30
|
+
process.stderr.write(text);
|
|
31
|
+
});
|
|
32
|
+
child.stderr?.on("data", (chunk) => {
|
|
33
|
+
const text = chunk.toString();
|
|
34
|
+
stderr += text;
|
|
35
|
+
process.stderr.write(text);
|
|
36
|
+
});
|
|
37
|
+
child.on("close", (code) => {
|
|
38
|
+
const exitCode = code ?? 1;
|
|
39
|
+
this.trackInvocation(invocation.agentId, exitCode, startedAt);
|
|
40
|
+
resolve({ exitCode, stdout, stderr });
|
|
41
|
+
});
|
|
42
|
+
child.on("error", (error) => {
|
|
43
|
+
this.trackInvocation(invocation.agentId, 1, startedAt, error);
|
|
44
|
+
resolve({ exitCode: 1, stdout, stderr: stderr || error.message });
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
resolveCommand(agentId) {
|
|
49
|
+
if (!this.isSupportedAgent(agentId)) {
|
|
50
|
+
throw new Error(`Unsupported agent: ${agentId}`);
|
|
51
|
+
}
|
|
52
|
+
return AGENT_COMMANDS[agentId];
|
|
53
|
+
}
|
|
54
|
+
buildCommandLine(command, prompt) {
|
|
55
|
+
const escapedPrompt = prompt.replace(/"/g, '\\"');
|
|
56
|
+
return [
|
|
57
|
+
command.executable,
|
|
58
|
+
...(command.args ?? []),
|
|
59
|
+
...(command.promptFlag === undefined ? [] : [command.promptFlag]),
|
|
60
|
+
`"${escapedPrompt}"`,
|
|
61
|
+
].join(" ");
|
|
62
|
+
}
|
|
63
|
+
isSupportedAgent(agentId) {
|
|
64
|
+
return SUPPORTED_AGENT_IDS.includes(agentId);
|
|
65
|
+
}
|
|
66
|
+
trackInvocation(agentId, exitCode, startedAt, error) {
|
|
67
|
+
this.telemetryClient.track("agent_invocation_completed", {
|
|
68
|
+
agentId,
|
|
69
|
+
exitCode,
|
|
70
|
+
success: exitCode === 0,
|
|
71
|
+
durationMs: Number((process.hrtime.bigint() - startedAt) / BigInt(1000000)),
|
|
72
|
+
...(error
|
|
73
|
+
? {
|
|
74
|
+
errorType: error.name,
|
|
75
|
+
errorMessage: error.message,
|
|
76
|
+
errorStack: error.stack,
|
|
77
|
+
}
|
|
78
|
+
: {}),
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=AgentCliGateway.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentCliGateway.js","sourceRoot":"","sources":["../../../src/infrastructure/agents/AgentCliGateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,12 +7,20 @@
|
|
|
7
7
|
import { Database } from "better-sqlite3";
|
|
8
8
|
import { IDecisionViewReader, DecisionStatusFilter } from "../../../../application/context/decisions/get/IDecisionViewReader.js";
|
|
9
9
|
import { DecisionView } from "../../../../application/context/decisions/DecisionView.js";
|
|
10
|
+
import { DecisionSearchCriteria } from "../../../../application/context/decisions/search/DecisionSearchCriteria.js";
|
|
10
11
|
export declare class SqliteDecisionViewReader implements IDecisionViewReader {
|
|
11
12
|
private db;
|
|
12
13
|
private readonly mapper;
|
|
13
14
|
constructor(db: Database);
|
|
14
15
|
findAll(status?: DecisionStatusFilter): Promise<DecisionView[]>;
|
|
15
16
|
findByIds(ids: string[]): Promise<DecisionView[]>;
|
|
17
|
+
search(criteria: DecisionSearchCriteria): Promise<DecisionView[]>;
|
|
18
|
+
/**
|
|
19
|
+
* Converts a user input string to a SQL LIKE pattern.
|
|
20
|
+
* If the input contains *, replaces * with % for explicit wildcard control.
|
|
21
|
+
* Otherwise wraps with % for default substring matching.
|
|
22
|
+
*/
|
|
23
|
+
private toLikePattern;
|
|
16
24
|
private mapRowToRecord;
|
|
17
25
|
}
|
|
18
26
|
//# sourceMappingURL=SqliteDecisionViewReader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteDecisionViewReader.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/context/decisions/get/SqliteDecisionViewReader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,sEAAsE,CAAC;AACjI,OAAO,EAAE,YAAY,EAAE,MAAM,2DAA2D,CAAC;
|
|
1
|
+
{"version":3,"file":"SqliteDecisionViewReader.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/context/decisions/get/SqliteDecisionViewReader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,sEAAsE,CAAC;AACjI,OAAO,EAAE,YAAY,EAAE,MAAM,2DAA2D,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,4EAA4E,CAAC;AAIpH,qBAAa,wBAAyB,YAAW,mBAAmB;IAGtD,OAAO,CAAC,EAAE;IAFtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;gBAEjC,EAAE,EAAE,QAAQ;IAE1B,OAAO,CAAC,MAAM,GAAE,oBAA4B,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAetE,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IASjD,MAAM,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA0CvE;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,cAAc;CAiBvB"}
|
|
@@ -29,6 +29,51 @@ export class SqliteDecisionViewReader {
|
|
|
29
29
|
const rows = this.db.prepare(query).all(...ids);
|
|
30
30
|
return rows.map((row) => this.mapper.toView(this.mapRowToRecord(row)));
|
|
31
31
|
}
|
|
32
|
+
async search(criteria) {
|
|
33
|
+
const clauses = [];
|
|
34
|
+
const params = [];
|
|
35
|
+
if (criteria.status !== undefined && criteria.status !== "all") {
|
|
36
|
+
clauses.push("status = ?");
|
|
37
|
+
params.push(criteria.status);
|
|
38
|
+
}
|
|
39
|
+
if (criteria.title !== undefined) {
|
|
40
|
+
clauses.push("title LIKE ?");
|
|
41
|
+
params.push(this.toLikePattern(criteria.title));
|
|
42
|
+
}
|
|
43
|
+
if (criteria.query !== undefined) {
|
|
44
|
+
const pattern = this.toLikePattern(criteria.query);
|
|
45
|
+
clauses.push("(" +
|
|
46
|
+
[
|
|
47
|
+
"title LIKE ?",
|
|
48
|
+
"context LIKE ?",
|
|
49
|
+
"COALESCE(rationale, '') LIKE ?",
|
|
50
|
+
"COALESCE(alternatives, '') LIKE ?",
|
|
51
|
+
"COALESCE(consequences, '') LIKE ?",
|
|
52
|
+
"COALESCE(reversalReason, '') LIKE ?",
|
|
53
|
+
"COALESCE(supersededBy, '') LIKE ?",
|
|
54
|
+
].join(" OR ") +
|
|
55
|
+
")");
|
|
56
|
+
params.push(pattern, pattern, pattern, pattern, pattern, pattern, pattern);
|
|
57
|
+
}
|
|
58
|
+
let query = "SELECT * FROM decision_views";
|
|
59
|
+
if (clauses.length > 0) {
|
|
60
|
+
query += " WHERE " + clauses.join(" AND ");
|
|
61
|
+
}
|
|
62
|
+
query += " ORDER BY createdAt DESC";
|
|
63
|
+
const rows = this.db.prepare(query).all(...params);
|
|
64
|
+
return rows.map((row) => this.mapper.toView(this.mapRowToRecord(row)));
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Converts a user input string to a SQL LIKE pattern.
|
|
68
|
+
* If the input contains *, replaces * with % for explicit wildcard control.
|
|
69
|
+
* Otherwise wraps with % for default substring matching.
|
|
70
|
+
*/
|
|
71
|
+
toLikePattern(input) {
|
|
72
|
+
if (input.includes("*")) {
|
|
73
|
+
return input.replace(/\*/g, "%");
|
|
74
|
+
}
|
|
75
|
+
return `%${input}%`;
|
|
76
|
+
}
|
|
32
77
|
mapRowToRecord(row) {
|
|
33
78
|
return {
|
|
34
79
|
id: row.decisionId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteDecisionViewReader.js","sourceRoot":"","sources":["../../../../../src/infrastructure/context/decisions/get/SqliteDecisionViewReader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"SqliteDecisionViewReader.js","sourceRoot":"","sources":["../../../../../src/infrastructure/context/decisions/get/SqliteDecisionViewReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
-- Search-supporting indexes for decision search filters and ordering
|
|
2
|
+
-- Namespace: solution/decisions
|
|
3
|
+
|
|
4
|
+
CREATE INDEX IF NOT EXISTS idx_decision_title ON decision_views(title);
|
|
5
|
+
CREATE INDEX IF NOT EXISTS idx_decision_status_created ON decision_views(status, createdAt DESC);
|
|
6
|
+
CREATE INDEX IF NOT EXISTS idx_decision_context ON decision_views(context);
|
|
7
|
+
CREATE INDEX IF NOT EXISTS idx_decision_rationale ON decision_views(rationale);
|
|
8
|
+
CREATE INDEX IF NOT EXISTS idx_decision_alternatives ON decision_views(alternatives);
|
|
9
|
+
CREATE INDEX IF NOT EXISTS idx_decision_consequences ON decision_views(consequences);
|
|
10
|
+
CREATE INDEX IF NOT EXISTS idx_decision_reversal_reason ON decision_views(reversalReason);
|
|
11
|
+
CREATE INDEX IF NOT EXISTS idx_decision_superseded_by ON decision_views(supersededBy);
|
|
@@ -7,12 +7,15 @@
|
|
|
7
7
|
import { Database } from "better-sqlite3";
|
|
8
8
|
import { IDependencyViewReader, DependencyListFilter } from "../../../../application/context/dependencies/get/IDependencyViewReader.js";
|
|
9
9
|
import { DependencyView } from "../../../../application/context/dependencies/DependencyView.js";
|
|
10
|
+
import { DependencySearchCriteria } from "../../../../application/context/dependencies/search/DependencySearchCriteria.js";
|
|
10
11
|
export declare class SqliteDependencyViewReader implements IDependencyViewReader {
|
|
11
12
|
private db;
|
|
12
13
|
private readonly mapper;
|
|
13
14
|
constructor(db: Database);
|
|
14
15
|
findAll(filter?: DependencyListFilter): Promise<DependencyView[]>;
|
|
15
16
|
findByIds(ids: string[]): Promise<DependencyView[]>;
|
|
17
|
+
search(criteria: DependencySearchCriteria): Promise<DependencyView[]>;
|
|
18
|
+
private toLikePattern;
|
|
16
19
|
private mapRowToRecord;
|
|
17
20
|
}
|
|
18
21
|
//# sourceMappingURL=SqliteDependencyViewReader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteDependencyViewReader.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/context/dependencies/get/SqliteDependencyViewReader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,2EAA2E,CAAC;AACxI,OAAO,EAAE,cAAc,EAAE,MAAM,gEAAgE,CAAC;
|
|
1
|
+
{"version":3,"file":"SqliteDependencyViewReader.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/context/dependencies/get/SqliteDependencyViewReader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,2EAA2E,CAAC;AACxI,OAAO,EAAE,cAAc,EAAE,MAAM,gEAAgE,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAE,MAAM,iFAAiF,CAAC;AAI3H,qBAAa,0BAA2B,YAAW,qBAAqB;IAG1D,OAAO,CAAC,EAAE;IAFtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;gBAEnC,EAAE,EAAE,QAAQ;IAE1B,OAAO,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAyCjE,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IASnD,MAAM,CAAC,QAAQ,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA8D3E,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,cAAc;CAmBvB"}
|
|
@@ -53,6 +53,63 @@ export class SqliteDependencyViewReader {
|
|
|
53
53
|
const rows = this.db.prepare(query).all(...ids);
|
|
54
54
|
return rows.map((row) => this.mapper.toView(this.mapRowToRecord(row)));
|
|
55
55
|
}
|
|
56
|
+
async search(criteria) {
|
|
57
|
+
const clauses = [];
|
|
58
|
+
const params = [];
|
|
59
|
+
if (criteria.name !== undefined) {
|
|
60
|
+
clauses.push("COALESCE(name, packageName, providerId, 'unknown') LIKE ?");
|
|
61
|
+
params.push(this.toLikePattern(criteria.name));
|
|
62
|
+
}
|
|
63
|
+
if (criteria.ecosystem !== undefined) {
|
|
64
|
+
clauses.push("COALESCE(ecosystem, CASE WHEN providerId IS NOT NULL AND providerId != '' THEN 'legacy-component' ELSE 'unknown' END) LIKE ?");
|
|
65
|
+
params.push(this.toLikePattern(criteria.ecosystem));
|
|
66
|
+
}
|
|
67
|
+
if (criteria.packageName !== undefined) {
|
|
68
|
+
clauses.push("COALESCE(packageName, providerId, 'unknown') LIKE ?");
|
|
69
|
+
params.push(this.toLikePattern(criteria.packageName));
|
|
70
|
+
}
|
|
71
|
+
if (criteria.versionConstraint !== undefined) {
|
|
72
|
+
clauses.push("COALESCE(versionConstraint, '') LIKE ?");
|
|
73
|
+
params.push(this.toLikePattern(criteria.versionConstraint));
|
|
74
|
+
}
|
|
75
|
+
if (criteria.status !== undefined) {
|
|
76
|
+
clauses.push("status = ?");
|
|
77
|
+
params.push(criteria.status);
|
|
78
|
+
}
|
|
79
|
+
if (criteria.consumer !== undefined) {
|
|
80
|
+
clauses.push("consumerId LIKE ?");
|
|
81
|
+
params.push(this.toLikePattern(criteria.consumer));
|
|
82
|
+
}
|
|
83
|
+
if (criteria.provider !== undefined) {
|
|
84
|
+
clauses.push("providerId LIKE ?");
|
|
85
|
+
params.push(this.toLikePattern(criteria.provider));
|
|
86
|
+
}
|
|
87
|
+
if (criteria.query !== undefined) {
|
|
88
|
+
const pattern = this.toLikePattern(criteria.query);
|
|
89
|
+
clauses.push(`(
|
|
90
|
+
COALESCE(name, packageName, providerId, 'unknown') LIKE ?
|
|
91
|
+
OR COALESCE(ecosystem, CASE WHEN providerId IS NOT NULL AND providerId != '' THEN 'legacy-component' ELSE 'unknown' END) LIKE ?
|
|
92
|
+
OR COALESCE(packageName, providerId, 'unknown') LIKE ?
|
|
93
|
+
OR COALESCE(versionConstraint, '') LIKE ?
|
|
94
|
+
OR COALESCE(contract, '') LIKE ?
|
|
95
|
+
OR COALESCE(endpoint, '') LIKE ?
|
|
96
|
+
)`);
|
|
97
|
+
params.push(pattern, pattern, pattern, pattern, pattern, pattern);
|
|
98
|
+
}
|
|
99
|
+
let query = "SELECT * FROM dependency_views";
|
|
100
|
+
if (clauses.length > 0) {
|
|
101
|
+
query += " WHERE " + clauses.join(" AND ");
|
|
102
|
+
}
|
|
103
|
+
query += " ORDER BY createdAt DESC";
|
|
104
|
+
const rows = this.db.prepare(query).all(...params);
|
|
105
|
+
return rows.map((row) => this.mapper.toView(this.mapRowToRecord(row)));
|
|
106
|
+
}
|
|
107
|
+
toLikePattern(input) {
|
|
108
|
+
if (input.includes("*")) {
|
|
109
|
+
return input.replace(/\*/g, "%");
|
|
110
|
+
}
|
|
111
|
+
return `%${input}%`;
|
|
112
|
+
}
|
|
56
113
|
mapRowToRecord(row) {
|
|
57
114
|
return {
|
|
58
115
|
id: row.dependencyId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteDependencyViewReader.js","sourceRoot":"","sources":["../../../../../src/infrastructure/context/dependencies/get/SqliteDependencyViewReader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"SqliteDependencyViewReader.js","sourceRoot":"","sources":["../../../../../src/infrastructure/context/dependencies/get/SqliteDependencyViewReader.ts"],"names":[],"mappings":"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"}
|
package/dist/infrastructure/context/dependencies/migrations/003-add-dependency-search-indexes.sql
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
-- Add indexes used by dependency search filters
|
|
2
|
+
-- Namespace: solution/dependencies
|
|
3
|
+
|
|
4
|
+
CREATE INDEX IF NOT EXISTS idx_dependency_search_name ON dependency_views(name);
|
|
5
|
+
CREATE INDEX IF NOT EXISTS idx_dependency_search_ecosystem ON dependency_views(ecosystem);
|
|
6
|
+
CREATE INDEX IF NOT EXISTS idx_dependency_search_package_name ON dependency_views(packageName);
|
|
7
|
+
CREATE INDEX IF NOT EXISTS idx_dependency_search_version_constraint ON dependency_views(versionConstraint);
|
|
8
|
+
CREATE INDEX IF NOT EXISTS idx_dependency_search_status ON dependency_views(status);
|
|
9
|
+
CREATE INDEX IF NOT EXISTS idx_dependency_search_consumer ON dependency_views(consumerId);
|
|
10
|
+
CREATE INDEX IF NOT EXISTS idx_dependency_search_provider ON dependency_views(providerId);
|
|
11
|
+
CREATE INDEX IF NOT EXISTS idx_dependency_search_contract ON dependency_views(contract);
|
|
12
|
+
CREATE INDEX IF NOT EXISTS idx_dependency_search_endpoint ON dependency_views(endpoint);
|
|
@@ -7,12 +7,20 @@
|
|
|
7
7
|
import { Database } from "better-sqlite3";
|
|
8
8
|
import { IGuidelineViewReader } from "../../../../application/context/guidelines/get/IGuidelineViewReader.js";
|
|
9
9
|
import { GuidelineView } from "../../../../application/context/guidelines/GuidelineView.js";
|
|
10
|
+
import { GuidelineSearchCriteria } from "../../../../application/context/guidelines/search/GuidelineSearchCriteria.js";
|
|
10
11
|
export declare class SqliteGuidelineViewReader implements IGuidelineViewReader {
|
|
11
12
|
private db;
|
|
12
13
|
private readonly mapper;
|
|
13
14
|
constructor(db: Database);
|
|
14
15
|
findAll(category?: string): Promise<GuidelineView[]>;
|
|
15
16
|
findByIds(ids: string[]): Promise<GuidelineView[]>;
|
|
17
|
+
search(criteria: GuidelineSearchCriteria): Promise<GuidelineView[]>;
|
|
18
|
+
/**
|
|
19
|
+
* Converts a user input string to a SQL LIKE pattern.
|
|
20
|
+
* If the input contains *, replaces * with % for explicit wildcard control.
|
|
21
|
+
* Otherwise wraps with % for default substring matching.
|
|
22
|
+
*/
|
|
23
|
+
private toLikePattern;
|
|
16
24
|
private mapRowToRecord;
|
|
17
25
|
}
|
|
18
26
|
//# sourceMappingURL=SqliteGuidelineViewReader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteGuidelineViewReader.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/context/guidelines/get/SqliteGuidelineViewReader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wEAAwE,CAAC;AAC9G,OAAO,EAAE,aAAa,EAAE,MAAM,6DAA6D,CAAC;
|
|
1
|
+
{"version":3,"file":"SqliteGuidelineViewReader.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/context/guidelines/get/SqliteGuidelineViewReader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wEAAwE,CAAC;AAC9G,OAAO,EAAE,aAAa,EAAE,MAAM,6DAA6D,CAAC;AAC5F,OAAO,EAAE,uBAAuB,EAAE,MAAM,8EAA8E,CAAC;AAIvH,qBAAa,yBAA0B,YAAW,oBAAoB;IAGxD,OAAO,CAAC,EAAE;IAFtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;gBAElC,EAAE,EAAE,QAAQ;IAE1B,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAepD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IASlD,MAAM,CAAC,QAAQ,EAAE,uBAAuB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAyBzE;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,cAAc;CAgBvB"}
|
|
@@ -29,6 +29,37 @@ export class SqliteGuidelineViewReader {
|
|
|
29
29
|
const rows = this.db.prepare(query).all(...ids);
|
|
30
30
|
return rows.map((row) => this.mapper.toView(this.mapRowToRecord(row)));
|
|
31
31
|
}
|
|
32
|
+
async search(criteria) {
|
|
33
|
+
const clauses = ["isRemoved = 0"];
|
|
34
|
+
const params = [];
|
|
35
|
+
if (criteria.category !== undefined) {
|
|
36
|
+
clauses.push("category = ?");
|
|
37
|
+
params.push(criteria.category);
|
|
38
|
+
}
|
|
39
|
+
if (criteria.title !== undefined) {
|
|
40
|
+
clauses.push("title LIKE ?");
|
|
41
|
+
params.push(this.toLikePattern(criteria.title));
|
|
42
|
+
}
|
|
43
|
+
if (criteria.query !== undefined) {
|
|
44
|
+
const pattern = this.toLikePattern(criteria.query);
|
|
45
|
+
clauses.push("(title LIKE ? OR description LIKE ? OR rationale LIKE ? OR examples LIKE ?)");
|
|
46
|
+
params.push(pattern, pattern, pattern, pattern);
|
|
47
|
+
}
|
|
48
|
+
const query = `SELECT * FROM guideline_views WHERE ${clauses.join(" AND ")} ORDER BY category, createdAt ASC`;
|
|
49
|
+
const rows = this.db.prepare(query).all(...params);
|
|
50
|
+
return rows.map((row) => this.mapper.toView(this.mapRowToRecord(row)));
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Converts a user input string to a SQL LIKE pattern.
|
|
54
|
+
* If the input contains *, replaces * with % for explicit wildcard control.
|
|
55
|
+
* Otherwise wraps with % for default substring matching.
|
|
56
|
+
*/
|
|
57
|
+
toLikePattern(input) {
|
|
58
|
+
if (input.includes("*")) {
|
|
59
|
+
return input.replace(/\*/g, "%");
|
|
60
|
+
}
|
|
61
|
+
return `%${input}%`;
|
|
62
|
+
}
|
|
32
63
|
mapRowToRecord(row) {
|
|
33
64
|
return {
|
|
34
65
|
id: row.guidelineId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteGuidelineViewReader.js","sourceRoot":"","sources":["../../../../../src/infrastructure/context/guidelines/get/SqliteGuidelineViewReader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"SqliteGuidelineViewReader.js","sourceRoot":"","sources":["../../../../../src/infrastructure/context/guidelines/get/SqliteGuidelineViewReader.ts"],"names":[],"mappings":"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"}
|
package/dist/infrastructure/context/guidelines/migrations/003-add-guideline-search-indexes.sql
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
-- Search-supporting indexes for guideline discovery.
|
|
2
|
+
-- Namespace: solution/guidelines
|
|
3
|
+
|
|
4
|
+
CREATE INDEX IF NOT EXISTS idx_guideline_search_removed_category_title
|
|
5
|
+
ON guideline_views(isRemoved, category, title);
|
|
6
|
+
|
|
7
|
+
CREATE INDEX IF NOT EXISTS idx_guideline_title
|
|
8
|
+
ON guideline_views(title);
|
|
9
|
+
|
|
10
|
+
CREATE INDEX IF NOT EXISTS idx_guideline_description
|
|
11
|
+
ON guideline_views(description);
|
|
12
|
+
|
|
13
|
+
CREATE INDEX IF NOT EXISTS idx_guideline_rationale
|
|
14
|
+
ON guideline_views(rationale);
|
|
15
|
+
|
|
16
|
+
CREATE INDEX IF NOT EXISTS idx_guideline_examples
|
|
17
|
+
ON guideline_views(examples);
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import { Database } from "better-sqlite3";
|
|
8
8
|
import { IInvariantViewReader } from "../../../../application/context/invariants/get/IInvariantViewReader.js";
|
|
9
9
|
import { InvariantView } from "../../../../application/context/invariants/InvariantView.js";
|
|
10
|
+
import { InvariantSearchCriteria } from "../../../../application/context/invariants/search/InvariantSearchCriteria.js";
|
|
10
11
|
export declare class SqliteInvariantViewReader implements IInvariantViewReader {
|
|
11
12
|
private db;
|
|
12
13
|
private readonly mapper;
|
|
@@ -14,6 +15,13 @@ export declare class SqliteInvariantViewReader implements IInvariantViewReader {
|
|
|
14
15
|
findById(id: string): Promise<InvariantView | null>;
|
|
15
16
|
findAll(): Promise<InvariantView[]>;
|
|
16
17
|
findByIds(ids: string[]): Promise<InvariantView[]>;
|
|
18
|
+
search(criteria: InvariantSearchCriteria): Promise<InvariantView[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Converts a user input string to a SQL LIKE pattern.
|
|
21
|
+
* If the input contains *, replaces * with % for explicit wildcard control.
|
|
22
|
+
* Otherwise wraps with % for default substring matching.
|
|
23
|
+
*/
|
|
24
|
+
private toLikePattern;
|
|
17
25
|
private mapRowToRecord;
|
|
18
26
|
}
|
|
19
27
|
//# sourceMappingURL=SqliteInvariantViewReader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteInvariantViewReader.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/context/invariants/get/SqliteInvariantViewReader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wEAAwE,CAAC;AAC9G,OAAO,EAAE,aAAa,EAAE,MAAM,6DAA6D,CAAC;
|
|
1
|
+
{"version":3,"file":"SqliteInvariantViewReader.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/context/invariants/get/SqliteInvariantViewReader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wEAAwE,CAAC;AAC9G,OAAO,EAAE,aAAa,EAAE,MAAM,6DAA6D,CAAC;AAC5F,OAAO,EAAE,uBAAuB,EAAE,MAAM,8EAA8E,CAAC;AAIvH,qBAAa,yBAA0B,YAAW,oBAAoB;IAGxD,OAAO,CAAC,EAAE;IAFtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;gBAElC,EAAE,EAAE,QAAQ;IAE1B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAQnD,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAOnC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IASlD,MAAM,CAAC,QAAQ,EAAE,uBAAuB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAyBzE;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,cAAc;CAWvB"}
|
|
@@ -32,6 +32,37 @@ export class SqliteInvariantViewReader {
|
|
|
32
32
|
const rows = this.db.prepare(query).all(...ids);
|
|
33
33
|
return rows.map((row) => this.mapper.toView(this.mapRowToRecord(row)));
|
|
34
34
|
}
|
|
35
|
+
async search(criteria) {
|
|
36
|
+
const clauses = [];
|
|
37
|
+
const params = [];
|
|
38
|
+
if (criteria.title !== undefined) {
|
|
39
|
+
clauses.push("title LIKE ?");
|
|
40
|
+
params.push(this.toLikePattern(criteria.title));
|
|
41
|
+
}
|
|
42
|
+
if (criteria.query !== undefined) {
|
|
43
|
+
const pattern = this.toLikePattern(criteria.query);
|
|
44
|
+
clauses.push("(title LIKE ? OR description LIKE ? OR rationale LIKE ?)");
|
|
45
|
+
params.push(pattern, pattern, pattern);
|
|
46
|
+
}
|
|
47
|
+
let query = "SELECT * FROM invariant_views";
|
|
48
|
+
if (clauses.length > 0) {
|
|
49
|
+
query += " WHERE " + clauses.join(" AND ");
|
|
50
|
+
}
|
|
51
|
+
query += " ORDER BY createdAt ASC";
|
|
52
|
+
const rows = this.db.prepare(query).all(...params);
|
|
53
|
+
return rows.map((row) => this.mapper.toView(this.mapRowToRecord(row)));
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Converts a user input string to a SQL LIKE pattern.
|
|
57
|
+
* If the input contains *, replaces * with % for explicit wildcard control.
|
|
58
|
+
* Otherwise wraps with % for default substring matching.
|
|
59
|
+
*/
|
|
60
|
+
toLikePattern(input) {
|
|
61
|
+
if (input.includes("*")) {
|
|
62
|
+
return input.replace(/\*/g, "%");
|
|
63
|
+
}
|
|
64
|
+
return `%${input}%`;
|
|
65
|
+
}
|
|
35
66
|
mapRowToRecord(row) {
|
|
36
67
|
return {
|
|
37
68
|
id: row.invariantId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteInvariantViewReader.js","sourceRoot":"","sources":["../../../../../src/infrastructure/context/invariants/get/SqliteInvariantViewReader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"SqliteInvariantViewReader.js","sourceRoot":"","sources":["../../../../../src/infrastructure/context/invariants/get/SqliteInvariantViewReader.ts"],"names":[],"mappings":"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"}
|
package/dist/infrastructure/context/invariants/migrations/003-add-invariant-search-indexes.sql
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
-- Search-supporting indexes for invariant search filters
|
|
2
|
+
-- Namespace: solution/invariants
|
|
3
|
+
|
|
4
|
+
CREATE INDEX IF NOT EXISTS idx_invariant_search_title ON invariant_views(title);
|
|
5
|
+
CREATE INDEX IF NOT EXISTS idx_invariant_search_description ON invariant_views(description);
|
|
6
|
+
CREATE INDEX IF NOT EXISTS idx_invariant_search_rationale ON invariant_views(rationale);
|
|
@@ -4,10 +4,15 @@
|
|
|
4
4
|
import { Database } from "better-sqlite3";
|
|
5
5
|
import { IProjectContextReader } from "../../../../application/context/project/query/IProjectContextReader.js";
|
|
6
6
|
import { ProjectView } from "../../../../application/context/project/ProjectView.js";
|
|
7
|
+
import { ProjectKnowledgeInventoryView } from "../../../../application/context/project/ProjectKnowledgeInventoryView.js";
|
|
8
|
+
import { ProjectLifecycleState } from "../../../../application/context/project/ProjectLifecycleState.js";
|
|
7
9
|
export declare class SqliteProjectContextReader implements IProjectContextReader {
|
|
8
10
|
private db;
|
|
11
|
+
private readonly lifecycleClassifier;
|
|
9
12
|
constructor(db: Database);
|
|
10
13
|
getProject(): Promise<ProjectView | null>;
|
|
14
|
+
getProjectLifecycleState(): Promise<ProjectLifecycleState>;
|
|
15
|
+
getProjectKnowledgeInventory(): Promise<ProjectKnowledgeInventoryView>;
|
|
11
16
|
private mapRowToView;
|
|
12
17
|
}
|
|
13
18
|
//# sourceMappingURL=SqliteProjectContextReader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteProjectContextReader.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/context/project/query/SqliteProjectContextReader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,wEAAwE,CAAC;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,wDAAwD,CAAC;
|
|
1
|
+
{"version":3,"file":"SqliteProjectContextReader.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/context/project/query/SqliteProjectContextReader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,wEAAwE,CAAC;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,wDAAwD,CAAC;AACrF,OAAO,EAAE,6BAA6B,EAAE,MAAM,0EAA0E,CAAC;AACzH,OAAO,EAAE,qBAAqB,EAAE,MAAM,kEAAkE,CAAC;AAKzG,qBAAa,0BAA2B,YAAW,qBAAqB;IAG1D,OAAO,CAAC,EAAE;IAFtB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAoC;gBAEpD,EAAE,EAAE,QAAQ;IAE1B,UAAU,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAazC,wBAAwB,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAK1D,4BAA4B,IAAI,OAAO,CAAC,6BAA6B,CAAC;IA0B5E,OAAO,CAAC,YAAY;CAWrB"}
|
|
@@ -1,21 +1,53 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* SqliteProjectContextReader - SQLite reader for project context queries.
|
|
3
3
|
*/
|
|
4
|
+
import { ProjectLifecycleClassifier } from "../../../../application/context/project/query/ProjectLifecycleClassifier.js";
|
|
5
|
+
import { ComponentStatus } from "../../../../domain/components/Constants.js";
|
|
6
|
+
import { DecisionStatus } from "../../../../domain/decisions/Constants.js";
|
|
4
7
|
export class SqliteProjectContextReader {
|
|
5
8
|
constructor(db) {
|
|
6
9
|
this.db = db;
|
|
10
|
+
this.lifecycleClassifier = new ProjectLifecycleClassifier();
|
|
7
11
|
}
|
|
8
12
|
async getProject() {
|
|
9
13
|
const row = this.db
|
|
10
14
|
.prepare("SELECT * FROM project_views LIMIT 1")
|
|
11
15
|
.get();
|
|
12
|
-
|
|
16
|
+
if (!row) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
const lifecycleState = await this.getProjectLifecycleState();
|
|
20
|
+
return this.mapRowToView(row, lifecycleState);
|
|
13
21
|
}
|
|
14
|
-
|
|
22
|
+
async getProjectLifecycleState() {
|
|
23
|
+
const inventory = await this.getProjectKnowledgeInventory();
|
|
24
|
+
return this.lifecycleClassifier.classify(inventory);
|
|
25
|
+
}
|
|
26
|
+
async getProjectKnowledgeInventory() {
|
|
27
|
+
const row = this.db
|
|
28
|
+
.prepare(`SELECT
|
|
29
|
+
EXISTS(SELECT 1 FROM project_views) AS projectInitialized,
|
|
30
|
+
(
|
|
31
|
+
(SELECT COUNT(*) FROM architecture_views) +
|
|
32
|
+
(SELECT COUNT(*) FROM component_views WHERE status = ?) +
|
|
33
|
+
(SELECT COUNT(*) FROM decision_views WHERE status = ?) +
|
|
34
|
+
(SELECT COUNT(*) FROM invariant_views) +
|
|
35
|
+
(SELECT COUNT(*) FROM guideline_views WHERE isRemoved = 0)
|
|
36
|
+
) AS solutionContextItemCount,
|
|
37
|
+
(SELECT COUNT(*) FROM goal_views) AS launchpadReadyGoalCount`)
|
|
38
|
+
.get(ComponentStatus.ACTIVE, DecisionStatus.ACTIVE);
|
|
39
|
+
return {
|
|
40
|
+
projectInitialized: row.projectInitialized === 1,
|
|
41
|
+
solutionContextItemCount: row.solutionContextItemCount,
|
|
42
|
+
launchpadReadyGoalCount: row.launchpadReadyGoalCount,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
mapRowToView(row, lifecycleState) {
|
|
15
46
|
return {
|
|
16
47
|
projectId: row.projectId,
|
|
17
48
|
name: row.name,
|
|
18
49
|
purpose: row.purpose ?? null,
|
|
50
|
+
lifecycleState,
|
|
19
51
|
version: row.version,
|
|
20
52
|
createdAt: row.createdAt,
|
|
21
53
|
updatedAt: row.updatedAt,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteProjectContextReader.js","sourceRoot":"","sources":["../../../../../src/infrastructure/context/project/query/SqliteProjectContextReader.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"SqliteProjectContextReader.js","sourceRoot":"","sources":["../../../../../src/infrastructure/context/project/query/SqliteProjectContextReader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAAE,0BAA0B,EAAE,MAAM,6EAA6E,CAAC;AACzH,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAE3E,MAAM,OAAO,0BAA0B;IAGrC,YAAoB,EAAY;QAAZ,OAAE,GAAF,EAAE,CAAU;QAFf,wBAAmB,GAAG,IAAI,0BAA0B,EAAE,CAAC;IAErC,CAAC;IAEpC,KAAK,CAAC,UAAU;QACd,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,qCAAqC,CAAC;aAC9C,GAAG,EAAE,CAAC;QAET,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC,YAAY,CAAC,GAA8B,EAAE,cAAc,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,wBAAwB;QAC5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,4BAA4B;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;;;;;;;;wEASgE,CACjE;aACA,GAAG,CACF,eAAe,CAAC,MAAM,EACtB,cAAc,CAAC,MAAM,CACK,CAAC;QAE/B,OAAO;YACL,kBAAkB,EAAE,GAAG,CAAC,kBAAkB,KAAK,CAAC;YAChD,wBAAwB,EAAE,GAAG,CAAC,wBAAkC;YAChE,uBAAuB,EAAE,GAAG,CAAC,uBAAiC;SAC/D,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,GAA4B,EAAE,cAAqC;QACtF,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,SAAmB;YAClC,IAAI,EAAE,GAAG,CAAC,IAAc;YACxB,OAAO,EAAG,GAAG,CAAC,OAAkB,IAAI,IAAI;YACxC,cAAc;YACd,OAAO,EAAE,GAAG,CAAC,OAAiB;YAC9B,SAAS,EAAE,GAAG,CAAC,SAAmB;YAClC,SAAS,EAAE,GAAG,CAAC,SAAmB;SACnC,CAAC;IACJ,CAAC;CACF"}
|