@amsterdamdatalabs/enact-factory 0.1.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/LICENSE +674 -0
- package/README.md +566 -0
- package/dist/adapters/agenticLoop.d.ts +90 -0
- package/dist/adapters/agenticLoop.d.ts.map +1 -0
- package/dist/adapters/agenticLoop.js +219 -0
- package/dist/adapters/agenticLoop.js.map +1 -0
- package/dist/adapters/base.d.ts +16 -0
- package/dist/adapters/base.d.ts.map +1 -0
- package/dist/adapters/base.js +135 -0
- package/dist/adapters/base.js.map +1 -0
- package/dist/adapters/claude.d.ts +13 -0
- package/dist/adapters/claude.d.ts.map +1 -0
- package/dist/adapters/claude.js +318 -0
- package/dist/adapters/claude.js.map +1 -0
- package/dist/adapters/codex.d.ts +14 -0
- package/dist/adapters/codex.d.ts.map +1 -0
- package/dist/adapters/codex.js +366 -0
- package/dist/adapters/codex.js.map +1 -0
- package/dist/adapters/cryptoQuantAdapter.d.ts +85 -0
- package/dist/adapters/cryptoQuantAdapter.d.ts.map +1 -0
- package/dist/adapters/cryptoQuantAdapter.js +238 -0
- package/dist/adapters/cryptoQuantAdapter.js.map +1 -0
- package/dist/adapters/cursor.d.ts +13 -0
- package/dist/adapters/cursor.d.ts.map +1 -0
- package/dist/adapters/cursor.js +300 -0
- package/dist/adapters/cursor.js.map +1 -0
- package/dist/adapters/envPath.d.ts +20 -0
- package/dist/adapters/envPath.d.ts.map +1 -0
- package/dist/adapters/envPath.js +49 -0
- package/dist/adapters/envPath.js.map +1 -0
- package/dist/adapters/hermes.d.ts +13 -0
- package/dist/adapters/hermes.d.ts.map +1 -0
- package/dist/adapters/hermes.js +283 -0
- package/dist/adapters/hermes.js.map +1 -0
- package/dist/adapters/index.d.ts +18 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +56 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/opencode.d.ts +13 -0
- package/dist/adapters/opencode.d.ts.map +1 -0
- package/dist/adapters/opencode.js +282 -0
- package/dist/adapters/opencode.js.map +1 -0
- package/dist/adapters/processRegistry.d.ts +38 -0
- package/dist/adapters/processRegistry.d.ts.map +1 -0
- package/dist/adapters/processRegistry.js +147 -0
- package/dist/adapters/processRegistry.js.map +1 -0
- package/dist/adapters/responses.d.ts +16 -0
- package/dist/adapters/responses.d.ts.map +1 -0
- package/dist/adapters/responses.js +244 -0
- package/dist/adapters/responses.js.map +1 -0
- package/dist/adapters/streamBuffer.d.ts +59 -0
- package/dist/adapters/streamBuffer.d.ts.map +1 -0
- package/dist/adapters/streamBuffer.js +123 -0
- package/dist/adapters/streamBuffer.js.map +1 -0
- package/dist/adapters/tools.d.ts +30 -0
- package/dist/adapters/tools.d.ts.map +1 -0
- package/dist/adapters/tools.js +219 -0
- package/dist/adapters/tools.js.map +1 -0
- package/dist/adapters/types.d.ts +82 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +6 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/agents/agentBus.d.ts +160 -0
- package/dist/agents/agentBus.d.ts.map +1 -0
- package/dist/agents/agentBus.js +350 -0
- package/dist/agents/agentBus.js.map +1 -0
- package/dist/agents/agentPair.d.ts +215 -0
- package/dist/agents/agentPair.d.ts.map +1 -0
- package/dist/agents/agentPair.js +456 -0
- package/dist/agents/agentPair.js.map +1 -0
- package/dist/agents/auditor.d.ts +27 -0
- package/dist/agents/auditor.d.ts.map +1 -0
- package/dist/agents/auditor.js +238 -0
- package/dist/agents/auditor.js.map +1 -0
- package/dist/agents/cliStreamParser.d.ts +18 -0
- package/dist/agents/cliStreamParser.d.ts.map +1 -0
- package/dist/agents/cliStreamParser.js +156 -0
- package/dist/agents/cliStreamParser.js.map +1 -0
- package/dist/agents/documenter.d.ts +31 -0
- package/dist/agents/documenter.d.ts.map +1 -0
- package/dist/agents/documenter.js +286 -0
- package/dist/agents/documenter.js.map +1 -0
- package/dist/agents/draftAnalyzer.d.ts +50 -0
- package/dist/agents/draftAnalyzer.d.ts.map +1 -0
- package/dist/agents/draftAnalyzer.js +289 -0
- package/dist/agents/draftAnalyzer.js.map +1 -0
- package/dist/agents/evaluator.d.ts +61 -0
- package/dist/agents/evaluator.d.ts.map +1 -0
- package/dist/agents/evaluator.js +338 -0
- package/dist/agents/evaluator.js.map +1 -0
- package/dist/agents/executor.d.ts +33 -0
- package/dist/agents/executor.d.ts.map +1 -0
- package/dist/agents/executor.js +130 -0
- package/dist/agents/executor.js.map +1 -0
- package/dist/agents/index.d.ts +10 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +10 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/pairMetrics.d.ts +63 -0
- package/dist/agents/pairMetrics.d.ts.map +1 -0
- package/dist/agents/pairMetrics.js +232 -0
- package/dist/agents/pairMetrics.js.map +1 -0
- package/dist/agents/pairPipeline.d.ts +184 -0
- package/dist/agents/pairPipeline.d.ts.map +1 -0
- package/dist/agents/pairPipeline.js +934 -0
- package/dist/agents/pairPipeline.js.map +1 -0
- package/dist/agents/pairWebhook.d.ts +59 -0
- package/dist/agents/pairWebhook.d.ts.map +1 -0
- package/dist/agents/pairWebhook.js +242 -0
- package/dist/agents/pairWebhook.js.map +1 -0
- package/dist/agents/pipelineFormat.d.ts +8 -0
- package/dist/agents/pipelineFormat.d.ts.map +1 -0
- package/dist/agents/pipelineFormat.js +65 -0
- package/dist/agents/pipelineFormat.js.map +1 -0
- package/dist/agents/pipelineGuards.d.ts +23 -0
- package/dist/agents/pipelineGuards.d.ts.map +1 -0
- package/dist/agents/pipelineGuards.js +257 -0
- package/dist/agents/pipelineGuards.js.map +1 -0
- package/dist/agents/reviewer.d.ts +37 -0
- package/dist/agents/reviewer.d.ts.map +1 -0
- package/dist/agents/reviewer.js +214 -0
- package/dist/agents/reviewer.js.map +1 -0
- package/dist/agents/skillDocumenter.d.ts +23 -0
- package/dist/agents/skillDocumenter.d.ts.map +1 -0
- package/dist/agents/skillDocumenter.js +219 -0
- package/dist/agents/skillDocumenter.js.map +1 -0
- package/dist/agents/tester.d.ts +37 -0
- package/dist/agents/tester.d.ts.map +1 -0
- package/dist/agents/tester.js +309 -0
- package/dist/agents/tester.js.map +1 -0
- package/dist/automation/autonomousRunner.d.ts +145 -0
- package/dist/automation/autonomousRunner.d.ts.map +1 -0
- package/dist/automation/autonomousRunner.js +1272 -0
- package/dist/automation/autonomousRunner.js.map +1 -0
- package/dist/automation/dailyReporter.d.ts +26 -0
- package/dist/automation/dailyReporter.d.ts.map +1 -0
- package/dist/automation/dailyReporter.js +130 -0
- package/dist/automation/dailyReporter.js.map +1 -0
- package/dist/automation/index.d.ts +5 -0
- package/dist/automation/index.d.ts.map +1 -0
- package/dist/automation/index.js +5 -0
- package/dist/automation/index.js.map +1 -0
- package/dist/automation/longRunningMonitor.d.ts +26 -0
- package/dist/automation/longRunningMonitor.d.ts.map +1 -0
- package/dist/automation/longRunningMonitor.js +356 -0
- package/dist/automation/longRunningMonitor.js.map +1 -0
- package/dist/automation/prOwnership.d.ts +18 -0
- package/dist/automation/prOwnership.d.ts.map +1 -0
- package/dist/automation/prOwnership.js +61 -0
- package/dist/automation/prOwnership.js.map +1 -0
- package/dist/automation/runnerExecution.d.ts +57 -0
- package/dist/automation/runnerExecution.d.ts.map +1 -0
- package/dist/automation/runnerExecution.js +701 -0
- package/dist/automation/runnerExecution.js.map +1 -0
- package/dist/automation/runnerState.d.ts +170 -0
- package/dist/automation/runnerState.d.ts.map +1 -0
- package/dist/automation/runnerState.js +496 -0
- package/dist/automation/runnerState.js.map +1 -0
- package/dist/automation/runnerTypes.d.ts +57 -0
- package/dist/automation/runnerTypes.d.ts.map +1 -0
- package/dist/automation/runnerTypes.js +5 -0
- package/dist/automation/runnerTypes.js.map +1 -0
- package/dist/automation/scheduler.d.ts +75 -0
- package/dist/automation/scheduler.d.ts.map +1 -0
- package/dist/automation/scheduler.js +402 -0
- package/dist/automation/scheduler.js.map +1 -0
- package/dist/azdo/azdo.d.ts +70 -0
- package/dist/azdo/azdo.d.ts.map +1 -0
- package/dist/azdo/azdo.js +328 -0
- package/dist/azdo/azdo.js.map +1 -0
- package/dist/azdo/index.d.ts +3 -0
- package/dist/azdo/index.d.ts.map +1 -0
- package/dist/azdo/index.js +3 -0
- package/dist/azdo/index.js.map +1 -0
- package/dist/azdo/projectUpdater.d.ts +13 -0
- package/dist/azdo/projectUpdater.d.ts.map +1 -0
- package/dist/azdo/projectUpdater.js +155 -0
- package/dist/azdo/projectUpdater.js.map +1 -0
- package/dist/azureDevOps/client.d.ts +75 -0
- package/dist/azureDevOps/client.d.ts.map +1 -0
- package/dist/azureDevOps/client.js +150 -0
- package/dist/azureDevOps/client.js.map +1 -0
- package/dist/azureDevOps/hierarchy.d.ts +119 -0
- package/dist/azureDevOps/hierarchy.d.ts.map +1 -0
- package/dist/azureDevOps/hierarchy.js +470 -0
- package/dist/azureDevOps/hierarchy.js.map +1 -0
- package/dist/azureDevOps/mapper.d.ts +101 -0
- package/dist/azureDevOps/mapper.d.ts.map +1 -0
- package/dist/azureDevOps/mapper.js +438 -0
- package/dist/azureDevOps/mapper.js.map +1 -0
- package/dist/azureDevOps/stateMapping.d.ts +15 -0
- package/dist/azureDevOps/stateMapping.d.ts.map +1 -0
- package/dist/azureDevOps/stateMapping.js +141 -0
- package/dist/azureDevOps/stateMapping.js.map +1 -0
- package/dist/cli/authHandler.d.ts +13 -0
- package/dist/cli/authHandler.d.ts.map +1 -0
- package/dist/cli/authHandler.js +70 -0
- package/dist/cli/authHandler.js.map +1 -0
- package/dist/cli/checkHandler.d.ts +27 -0
- package/dist/cli/checkHandler.d.ts.map +1 -0
- package/dist/cli/checkHandler.js +560 -0
- package/dist/cli/checkHandler.js.map +1 -0
- package/dist/cli/daemon.d.ts +30 -0
- package/dist/cli/daemon.d.ts.map +1 -0
- package/dist/cli/daemon.js +141 -0
- package/dist/cli/daemon.js.map +1 -0
- package/dist/cli/factoryCommands.d.ts +3 -0
- package/dist/cli/factoryCommands.d.ts.map +1 -0
- package/dist/cli/factoryCommands.js +165 -0
- package/dist/cli/factoryCommands.js.map +1 -0
- package/dist/cli/promptHandler.d.ts +13 -0
- package/dist/cli/promptHandler.d.ts.map +1 -0
- package/dist/cli/promptHandler.js +193 -0
- package/dist/cli/promptHandler.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +320 -0
- package/dist/cli.js.map +1 -0
- package/dist/core/agentLifecycle.d.ts +322 -0
- package/dist/core/agentLifecycle.d.ts.map +1 -0
- package/dist/core/agentLifecycle.js +230 -0
- package/dist/core/agentLifecycle.js.map +1 -0
- package/dist/core/areaMapping.d.ts +9 -0
- package/dist/core/areaMapping.d.ts.map +1 -0
- package/dist/core/areaMapping.js +37 -0
- package/dist/core/areaMapping.js.map +1 -0
- package/dist/core/config.d.ts +469 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +780 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/dashboardContract.d.ts +204 -0
- package/dist/core/dashboardContract.d.ts.map +1 -0
- package/dist/core/dashboardContract.js +205 -0
- package/dist/core/dashboardContract.js.map +1 -0
- package/dist/core/devopsModel.d.ts +138 -0
- package/dist/core/devopsModel.d.ts.map +1 -0
- package/dist/core/devopsModel.js +137 -0
- package/dist/core/devopsModel.js.map +1 -0
- package/dist/core/envFile.d.ts +11 -0
- package/dist/core/envFile.d.ts.map +1 -0
- package/dist/core/envFile.js +104 -0
- package/dist/core/envFile.js.map +1 -0
- package/dist/core/eventHub.d.ts +220 -0
- package/dist/core/eventHub.d.ts.map +1 -0
- package/dist/core/eventHub.js +136 -0
- package/dist/core/eventHub.js.map +1 -0
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +7 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/laneExecutionState.d.ts +29 -0
- package/dist/core/laneExecutionState.d.ts.map +1 -0
- package/dist/core/laneExecutionState.js +18 -0
- package/dist/core/laneExecutionState.js.map +1 -0
- package/dist/core/laneStatus.d.ts +49 -0
- package/dist/core/laneStatus.d.ts.map +1 -0
- package/dist/core/laneStatus.js +153 -0
- package/dist/core/laneStatus.js.map +1 -0
- package/dist/core/prSidecar.d.ts +96 -0
- package/dist/core/prSidecar.d.ts.map +1 -0
- package/dist/core/prSidecar.js +33 -0
- package/dist/core/prSidecar.js.map +1 -0
- package/dist/core/runtimeConfig.d.ts +6 -0
- package/dist/core/runtimeConfig.d.ts.map +1 -0
- package/dist/core/runtimeConfig.js +24 -0
- package/dist/core/runtimeConfig.js.map +1 -0
- package/dist/core/scmProvider.d.ts +19 -0
- package/dist/core/scmProvider.d.ts.map +1 -0
- package/dist/core/scmProvider.js +38 -0
- package/dist/core/scmProvider.js.map +1 -0
- package/dist/core/service.d.ts +10 -0
- package/dist/core/service.d.ts.map +1 -0
- package/dist/core/service.js +297 -0
- package/dist/core/service.js.map +1 -0
- package/dist/core/traceCollector.d.ts +105 -0
- package/dist/core/traceCollector.d.ts.map +1 -0
- package/dist/core/traceCollector.js +141 -0
- package/dist/core/traceCollector.js.map +1 -0
- package/dist/core/types.d.ts +432 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/workItemMapper.d.ts +39 -0
- package/dist/core/workItemMapper.d.ts.map +1 -0
- package/dist/core/workItemMapper.js +427 -0
- package/dist/core/workItemMapper.js.map +1 -0
- package/dist/core/workItemModel.d.ts +120 -0
- package/dist/core/workItemModel.d.ts.map +1 -0
- package/dist/core/workItemModel.js +104 -0
- package/dist/core/workItemModel.js.map +1 -0
- package/dist/core/workItemPayload.d.ts +195 -0
- package/dist/core/workItemPayload.d.ts.map +1 -0
- package/dist/core/workItemPayload.js +24 -0
- package/dist/core/workItemPayload.js.map +1 -0
- package/dist/core/workspaceConfig.d.ts +57 -0
- package/dist/core/workspaceConfig.d.ts.map +1 -0
- package/dist/core/workspaceConfig.js +184 -0
- package/dist/core/workspaceConfig.js.map +1 -0
- package/dist/doctor.d.ts +18 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +34 -0
- package/dist/doctor.js.map +1 -0
- package/dist/factory/activeSkill.d.ts +11 -0
- package/dist/factory/activeSkill.d.ts.map +1 -0
- package/dist/factory/activeSkill.js +44 -0
- package/dist/factory/activeSkill.js.map +1 -0
- package/dist/factory/assignment.d.ts +54 -0
- package/dist/factory/assignment.d.ts.map +1 -0
- package/dist/factory/assignment.js +94 -0
- package/dist/factory/assignment.js.map +1 -0
- package/dist/factory/auditLog.d.ts +10 -0
- package/dist/factory/auditLog.d.ts.map +1 -0
- package/dist/factory/auditLog.js +38 -0
- package/dist/factory/auditLog.js.map +1 -0
- package/dist/factory/closureRequirements.d.ts +12 -0
- package/dist/factory/closureRequirements.d.ts.map +1 -0
- package/dist/factory/closureRequirements.js +30 -0
- package/dist/factory/closureRequirements.js.map +1 -0
- package/dist/factory/delegationPrompt.d.ts +3 -0
- package/dist/factory/delegationPrompt.d.ts.map +1 -0
- package/dist/factory/delegationPrompt.js +16 -0
- package/dist/factory/delegationPrompt.js.map +1 -0
- package/dist/factory/http.d.ts +3 -0
- package/dist/factory/http.d.ts.map +1 -0
- package/dist/factory/http.js +555 -0
- package/dist/factory/http.js.map +1 -0
- package/dist/factory/lifecyclePushMap.d.ts +4 -0
- package/dist/factory/lifecyclePushMap.d.ts.map +1 -0
- package/dist/factory/lifecyclePushMap.js +7 -0
- package/dist/factory/lifecyclePushMap.js.map +1 -0
- package/dist/factory/missions.d.ts +125 -0
- package/dist/factory/missions.d.ts.map +1 -0
- package/dist/factory/missions.js +304 -0
- package/dist/factory/missions.js.map +1 -0
- package/dist/factory/mode.d.ts +9 -0
- package/dist/factory/mode.d.ts.map +1 -0
- package/dist/factory/mode.js +30 -0
- package/dist/factory/mode.js.map +1 -0
- package/dist/factory/operatorActiveSkill.d.ts +15 -0
- package/dist/factory/operatorActiveSkill.d.ts.map +1 -0
- package/dist/factory/operatorActiveSkill.js +95 -0
- package/dist/factory/operatorActiveSkill.js.map +1 -0
- package/dist/factory/paseoDispatcher.d.ts +52 -0
- package/dist/factory/paseoDispatcher.d.ts.map +1 -0
- package/dist/factory/paseoDispatcher.js +122 -0
- package/dist/factory/paseoDispatcher.js.map +1 -0
- package/dist/factory/paseoLifecycle.d.ts +32 -0
- package/dist/factory/paseoLifecycle.d.ts.map +1 -0
- package/dist/factory/paseoLifecycle.js +260 -0
- package/dist/factory/paseoLifecycle.js.map +1 -0
- package/dist/factory/paths.d.ts +31 -0
- package/dist/factory/paths.d.ts.map +1 -0
- package/dist/factory/paths.js +139 -0
- package/dist/factory/paths.js.map +1 -0
- package/dist/factory/progressWatchdog.d.ts +58 -0
- package/dist/factory/progressWatchdog.d.ts.map +1 -0
- package/dist/factory/progressWatchdog.js +160 -0
- package/dist/factory/progressWatchdog.js.map +1 -0
- package/dist/factory/roster.d.ts +59 -0
- package/dist/factory/roster.d.ts.map +1 -0
- package/dist/factory/roster.js +116 -0
- package/dist/factory/roster.js.map +1 -0
- package/dist/factory/runtime.d.ts +44 -0
- package/dist/factory/runtime.d.ts.map +1 -0
- package/dist/factory/runtime.js +238 -0
- package/dist/factory/runtime.js.map +1 -0
- package/dist/factory/sync.d.ts +29 -0
- package/dist/factory/sync.d.ts.map +1 -0
- package/dist/factory/sync.js +77 -0
- package/dist/factory/sync.js.map +1 -0
- package/dist/factory/workitemQueues.d.ts +37 -0
- package/dist/factory/workitemQueues.d.ts.map +1 -0
- package/dist/factory/workitemQueues.js +99 -0
- package/dist/factory/workitemQueues.js.map +1 -0
- package/dist/factory/workitemTriage.d.ts +9 -0
- package/dist/factory/workitemTriage.d.ts.map +1 -0
- package/dist/factory/workitemTriage.js +81 -0
- package/dist/factory/workitemTriage.js.map +1 -0
- package/dist/hooks.d.ts +18 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +96 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +90 -0
- package/dist/index.js.map +1 -0
- package/dist/install/agentCatalog.d.ts +7 -0
- package/dist/install/agentCatalog.d.ts.map +1 -0
- package/dist/install/agentCatalog.js +28 -0
- package/dist/install/agentCatalog.js.map +1 -0
- package/dist/install/bundlePaths.d.ts +10 -0
- package/dist/install/bundlePaths.d.ts.map +1 -0
- package/dist/install/bundlePaths.js +30 -0
- package/dist/install/bundlePaths.js.map +1 -0
- package/dist/install/codex.d.ts +43 -0
- package/dist/install/codex.d.ts.map +1 -0
- package/dist/install/codex.js +207 -0
- package/dist/install/codex.js.map +1 -0
- package/dist/install/enactHome.d.ts +37 -0
- package/dist/install/enactHome.d.ts.map +1 -0
- package/dist/install/enactHome.js +152 -0
- package/dist/install/enactHome.js.map +1 -0
- package/dist/install/plugins.d.ts +115 -0
- package/dist/install/plugins.d.ts.map +1 -0
- package/dist/install/plugins.js +259 -0
- package/dist/install/plugins.js.map +1 -0
- package/dist/install/setup.d.ts +33 -0
- package/dist/install/setup.d.ts.map +1 -0
- package/dist/install/setup.js +167 -0
- package/dist/install/setup.js.map +1 -0
- package/dist/locale/en.d.ts +3 -0
- package/dist/locale/en.d.ts.map +1 -0
- package/dist/locale/en.js +435 -0
- package/dist/locale/en.js.map +1 -0
- package/dist/locale/index.d.ts +28 -0
- package/dist/locale/index.d.ts.map +1 -0
- package/dist/locale/index.js +84 -0
- package/dist/locale/index.js.map +1 -0
- package/dist/locale/prompts/en.d.ts +3 -0
- package/dist/locale/prompts/en.d.ts.map +1 -0
- package/dist/locale/prompts/en.js +254 -0
- package/dist/locale/prompts/en.js.map +1 -0
- package/dist/locale/types.d.ts +433 -0
- package/dist/locale/types.d.ts.map +1 -0
- package/dist/locale/types.js +5 -0
- package/dist/locale/types.js.map +1 -0
- package/dist/mcp/server.d.ts +489 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +597 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/orchestration/decisionEngine.d.ts +175 -0
- package/dist/orchestration/decisionEngine.d.ts.map +1 -0
- package/dist/orchestration/decisionEngine.js +471 -0
- package/dist/orchestration/decisionEngine.js.map +1 -0
- package/dist/orchestration/index.d.ts +5 -0
- package/dist/orchestration/index.d.ts.map +1 -0
- package/dist/orchestration/index.js +5 -0
- package/dist/orchestration/index.js.map +1 -0
- package/dist/orchestration/workItemParser.d.ts +67 -0
- package/dist/orchestration/workItemParser.d.ts.map +1 -0
- package/dist/orchestration/workItemParser.js +560 -0
- package/dist/orchestration/workItemParser.js.map +1 -0
- package/dist/orchestration/workItemScheduler.d.ts +141 -0
- package/dist/orchestration/workItemScheduler.d.ts.map +1 -0
- package/dist/orchestration/workItemScheduler.js +317 -0
- package/dist/orchestration/workItemScheduler.js.map +1 -0
- package/dist/orchestration/workflow.d.ts +145 -0
- package/dist/orchestration/workflow.d.ts.map +1 -0
- package/dist/orchestration/workflow.js +301 -0
- package/dist/orchestration/workflow.js.map +1 -0
- package/dist/providers/codexSessions.d.ts +93 -0
- package/dist/providers/codexSessions.d.ts.map +1 -0
- package/dist/providers/codexSessions.js +366 -0
- package/dist/providers/codexSessions.js.map +1 -0
- package/dist/registry/bsDetector.d.ts +24 -0
- package/dist/registry/bsDetector.d.ts.map +1 -0
- package/dist/registry/bsDetector.js +276 -0
- package/dist/registry/bsDetector.js.map +1 -0
- package/dist/registry/entityScanner.d.ts +36 -0
- package/dist/registry/entityScanner.d.ts.map +1 -0
- package/dist/registry/entityScanner.js +693 -0
- package/dist/registry/entityScanner.js.map +1 -0
- package/dist/registry/index.d.ts +9 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +13 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/schema.d.ts +307 -0
- package/dist/registry/schema.d.ts.map +1 -0
- package/dist/registry/schema.js +139 -0
- package/dist/registry/schema.js.map +1 -0
- package/dist/registry/sqliteStore.d.ts +101 -0
- package/dist/registry/sqliteStore.d.ts.map +1 -0
- package/dist/registry/sqliteStore.js +688 -0
- package/dist/registry/sqliteStore.js.map +1 -0
- package/dist/registry/workItemBridge.d.ts +8 -0
- package/dist/registry/workItemBridge.d.ts.map +1 -0
- package/dist/registry/workItemBridge.js +30 -0
- package/dist/registry/workItemBridge.js.map +1 -0
- package/dist/runners/cliRunner.d.ts +11 -0
- package/dist/runners/cliRunner.d.ts.map +1 -0
- package/dist/runners/cliRunner.js +193 -0
- package/dist/runners/cliRunner.js.map +1 -0
- package/dist/support/apiCache.d.ts +85 -0
- package/dist/support/apiCache.d.ts.map +1 -0
- package/dist/support/apiCache.js +163 -0
- package/dist/support/apiCache.js.map +1 -0
- package/dist/support/chat.d.ts +3 -0
- package/dist/support/chat.d.ts.map +1 -0
- package/dist/support/chat.js +305 -0
- package/dist/support/chat.js.map +1 -0
- package/dist/support/chatBackend.d.ts +25 -0
- package/dist/support/chatBackend.d.ts.map +1 -0
- package/dist/support/chatBackend.js +289 -0
- package/dist/support/chatBackend.js.map +1 -0
- package/dist/support/chatTui.d.ts +3 -0
- package/dist/support/chatTui.d.ts.map +1 -0
- package/dist/support/chatTui.js +1082 -0
- package/dist/support/chatTui.js.map +1 -0
- package/dist/support/costTracker.d.ts +29 -0
- package/dist/support/costTracker.d.ts.map +1 -0
- package/dist/support/costTracker.js +113 -0
- package/dist/support/costTracker.js.map +1 -0
- package/dist/support/dashboardHtml.d.ts +5 -0
- package/dist/support/dashboardHtml.d.ts.map +1 -0
- package/dist/support/dashboardHtml.js +2629 -0
- package/dist/support/dashboardHtml.js.map +1 -0
- package/dist/support/dev.d.ts +55 -0
- package/dist/support/dev.d.ts.map +1 -0
- package/dist/support/dev.js +298 -0
- package/dist/support/dev.js.map +1 -0
- package/dist/support/editParser.d.ts +37 -0
- package/dist/support/editParser.d.ts.map +1 -0
- package/dist/support/editParser.js +365 -0
- package/dist/support/editParser.js.map +1 -0
- package/dist/support/ghosttyThemeCatalog.generated.d.ts +2 -0
- package/dist/support/ghosttyThemeCatalog.generated.d.ts.map +1 -0
- package/dist/support/ghosttyThemeCatalog.generated.js +11116 -0
- package/dist/support/ghosttyThemeCatalog.generated.js.map +1 -0
- package/dist/support/gitStatus.d.ts +21 -0
- package/dist/support/gitStatus.d.ts.map +1 -0
- package/dist/support/gitStatus.js +108 -0
- package/dist/support/gitStatus.js.map +1 -0
- package/dist/support/gitTracker.d.ts +30 -0
- package/dist/support/gitTracker.d.ts.map +1 -0
- package/dist/support/gitTracker.js +143 -0
- package/dist/support/gitTracker.js.map +1 -0
- package/dist/support/index.d.ts +12 -0
- package/dist/support/index.d.ts.map +1 -0
- package/dist/support/index.js +12 -0
- package/dist/support/index.js.map +1 -0
- package/dist/support/planner.d.ts +64 -0
- package/dist/support/planner.d.ts.map +1 -0
- package/dist/support/planner.js +396 -0
- package/dist/support/planner.js.map +1 -0
- package/dist/support/projectMapper.d.ts +46 -0
- package/dist/support/projectMapper.d.ts.map +1 -0
- package/dist/support/projectMapper.js +273 -0
- package/dist/support/projectMapper.js.map +1 -0
- package/dist/support/pty-helper.py +117 -0
- package/dist/support/quotaTracker.d.ts +29 -0
- package/dist/support/quotaTracker.d.ts.map +1 -0
- package/dist/support/quotaTracker.js +89 -0
- package/dist/support/quotaTracker.js.map +1 -0
- package/dist/support/rateLimiter.d.ts +101 -0
- package/dist/support/rateLimiter.d.ts.map +1 -0
- package/dist/support/rateLimiter.js +219 -0
- package/dist/support/rateLimiter.js.map +1 -0
- package/dist/support/rollback.d.ts +61 -0
- package/dist/support/rollback.d.ts.map +1 -0
- package/dist/support/rollback.js +329 -0
- package/dist/support/rollback.js.map +1 -0
- package/dist/support/sharedShell.d.ts +17 -0
- package/dist/support/sharedShell.d.ts.map +1 -0
- package/dist/support/sharedShell.js +439 -0
- package/dist/support/sharedShell.js.map +1 -0
- package/dist/support/stuckDetector.d.ts +68 -0
- package/dist/support/stuckDetector.d.ts.map +1 -0
- package/dist/support/stuckDetector.js +174 -0
- package/dist/support/stuckDetector.js.map +1 -0
- package/dist/support/terminalBridge.d.ts +18 -0
- package/dist/support/terminalBridge.d.ts.map +1 -0
- package/dist/support/terminalBridge.js +553 -0
- package/dist/support/terminalBridge.js.map +1 -0
- package/dist/support/timeWindow.d.ts +60 -0
- package/dist/support/timeWindow.d.ts.map +1 -0
- package/dist/support/timeWindow.js +236 -0
- package/dist/support/timeWindow.js.map +1 -0
- package/dist/support/uiThemes.d.ts +44 -0
- package/dist/support/uiThemes.d.ts.map +1 -0
- package/dist/support/uiThemes.js +290 -0
- package/dist/support/uiThemes.js.map +1 -0
- package/dist/support/web.d.ts +29 -0
- package/dist/support/web.d.ts.map +1 -0
- package/dist/support/web.js +1097 -0
- package/dist/support/web.js.map +1 -0
- package/dist/support/worktreeManager.d.ts +20 -0
- package/dist/support/worktreeManager.d.ts.map +1 -0
- package/dist/support/worktreeManager.js +140 -0
- package/dist/support/worktreeManager.js.map +1 -0
- package/dist/task_state_model.py +55 -0
- package/dist/workItemState/store.d.ts +122 -0
- package/dist/workItemState/store.d.ts.map +1 -0
- package/dist/workItemState/store.js +438 -0
- package/dist/workItemState/store.js.map +1 -0
- package/dist/workItems/azdoBridge.d.ts +42 -0
- package/dist/workItems/azdoBridge.d.ts.map +1 -0
- package/dist/workItems/azdoBridge.js +143 -0
- package/dist/workItems/azdoBridge.js.map +1 -0
- package/dist/workItems/azdoSyncRuntime.d.ts +28 -0
- package/dist/workItems/azdoSyncRuntime.d.ts.map +1 -0
- package/dist/workItems/azdoSyncRuntime.js +158 -0
- package/dist/workItems/azdoSyncRuntime.js.map +1 -0
- package/dist/workItems/azureDevOpsSync.d.ts +128 -0
- package/dist/workItems/azureDevOpsSync.d.ts.map +1 -0
- package/dist/workItems/azureDevOpsSync.js +748 -0
- package/dist/workItems/azureDevOpsSync.js.map +1 -0
- package/dist/workItems/helpers.d.ts +11 -0
- package/dist/workItems/helpers.d.ts.map +1 -0
- package/dist/workItems/helpers.js +17 -0
- package/dist/workItems/helpers.js.map +1 -0
- package/dist/workItems/index.d.ts +21 -0
- package/dist/workItems/index.d.ts.map +1 -0
- package/dist/workItems/index.js +89 -0
- package/dist/workItems/index.js.map +1 -0
- package/dist/workItems/localWorkItemFetcher.d.ts +55 -0
- package/dist/workItems/localWorkItemFetcher.d.ts.map +1 -0
- package/dist/workItems/localWorkItemFetcher.js +209 -0
- package/dist/workItems/localWorkItemFetcher.js.map +1 -0
- package/dist/workItems/migrations/001_rename_workItem_to_work_item.sql +10 -0
- package/dist/workItems/postgresStore.d.ts +78 -0
- package/dist/workItems/postgresStore.d.ts.map +1 -0
- package/dist/workItems/postgresStore.js +937 -0
- package/dist/workItems/postgresStore.js.map +1 -0
- package/dist/workItems/schema.d.ts +257 -0
- package/dist/workItems/schema.d.ts.map +1 -0
- package/dist/workItems/schema.js +176 -0
- package/dist/workItems/schema.js.map +1 -0
- package/dist/workItems/sqliteStore.d.ts +124 -0
- package/dist/workItems/sqliteStore.d.ts.map +1 -0
- package/dist/workItems/sqliteStore.js +713 -0
- package/dist/workItems/sqliteStore.js.map +1 -0
- package/dist/workItems/workItemBoardHtml.d.ts +5 -0
- package/dist/workItems/workItemBoardHtml.d.ts.map +1 -0
- package/dist/workItems/workItemBoardHtml.js +2192 -0
- package/dist/workItems/workItemBoardHtml.js.map +1 -0
- package/package.json +99 -0
- package/templates/AGENTS.md +432 -0
- package/templates/BOOT.md +25 -0
- package/templates/BOOTSTRAP.md +50 -0
- package/templates/CHANGELOG_AUDIT.md +74 -0
- package/templates/HEARTBEAT.md +86 -0
- package/templates/IDENTITY.md +27 -0
- package/templates/PR_LAND.md +75 -0
- package/templates/PR_REVIEW.md +97 -0
- package/templates/SOUL.dev.md +52 -0
- package/templates/SOUL.md +81 -0
- package/templates/TOOLS.md +52 -0
- package/templates/USER.md +22 -0
- package/templates/WORKITEM_ANALYSIS.md +31 -0
- package/templates/agents/executor.md +26 -0
- package/templates/agents/plan.md +22 -0
- package/templates/agents/ralph.md +37 -0
- package/templates/agents/review.md +22 -0
- package/templates/agents/team.md +39 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import type { WorkItemKind, Area, WorkItemState } from '../core/workItemModel.js';
|
|
2
|
+
import type { RoleId, ExecutionPhase, PhaseArtifact } from '../core/agentLifecycle.js';
|
|
3
|
+
import type { WorktreeLifecycle } from '../core/devopsModel.js';
|
|
4
|
+
import type { PrSidecarState } from '../core/prSidecar.js';
|
|
5
|
+
import type { OperatorLane } from '../workItems/schema.js';
|
|
6
|
+
/**
|
|
7
|
+
* Explicit review state for a work item, independent of execution phase.
|
|
8
|
+
*
|
|
9
|
+
* - `none` → no review has been requested or completed
|
|
10
|
+
* - `pending` → review has been requested, not yet started
|
|
11
|
+
* - `approved` → reviewer approved the implementation
|
|
12
|
+
* - `rejected` → reviewer rejected; executor must revise
|
|
13
|
+
* - `revision` → revision loop is in progress
|
|
14
|
+
*/
|
|
15
|
+
export type ReviewState = 'none' | 'pending' | 'approved' | 'rejected' | 'revision';
|
|
16
|
+
/** Ordered tuple of all ReviewState values. */
|
|
17
|
+
export declare const REVIEW_STATES: readonly ReviewState[];
|
|
18
|
+
/**
|
|
19
|
+
* Final resolution of a work item, independent of all other state axes.
|
|
20
|
+
*
|
|
21
|
+
* - `unresolved` → work item has not reached a terminal outcome
|
|
22
|
+
* - `succeeded` → work item completed successfully (all phases done)
|
|
23
|
+
* - `failed` → work item terminated due to unrecoverable error
|
|
24
|
+
* - `halted` → execution paused; awaiting operator action
|
|
25
|
+
* - `cancelled` → work item was explicitly cancelled
|
|
26
|
+
* - `duplicate` → work item is a duplicate of another item
|
|
27
|
+
*/
|
|
28
|
+
export type Resolution = 'unresolved' | 'succeeded' | 'failed' | 'halted' | 'cancelled' | 'duplicate';
|
|
29
|
+
/** Ordered tuple of all Resolution values. */
|
|
30
|
+
export declare const RESOLUTIONS: readonly Resolution[];
|
|
31
|
+
/**
|
|
32
|
+
* Snapshot of the agent execution lifecycle attached to a work item.
|
|
33
|
+
* Derived from `AgentLifecycle` (Wave 2).
|
|
34
|
+
*/
|
|
35
|
+
export interface ExecutionSnapshot {
|
|
36
|
+
/** The agent role currently responsible for this work item. */
|
|
37
|
+
currentRole: RoleId;
|
|
38
|
+
/** The current execution phase of the work item. */
|
|
39
|
+
currentPhase: ExecutionPhase;
|
|
40
|
+
/**
|
|
41
|
+
* Ordered list of phase artifacts accumulated so far.
|
|
42
|
+
* Artifacts are appended in phase order.
|
|
43
|
+
*/
|
|
44
|
+
artifacts: PhaseArtifact[];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Discriminated record of all state axes, kept explicitly separate.
|
|
48
|
+
*
|
|
49
|
+
* Each axis is independently queryable and never collapsed into a single
|
|
50
|
+
* "status" field. Callers must read the axis they care about.
|
|
51
|
+
*
|
|
52
|
+
* - `business` → Wave 1 state machine (EpicFeatureState | ExecutableState)
|
|
53
|
+
* - `execution` → Wave 2 runtime phase + role
|
|
54
|
+
* - `review` → explicit review outcome (Wave 4)
|
|
55
|
+
* - `prSidecar` → PR sidecar state (Wave 3, optional)
|
|
56
|
+
* - `resolution` → final terminal outcome (Wave 4)
|
|
57
|
+
*/
|
|
58
|
+
export interface LayeredState {
|
|
59
|
+
/** Business lifecycle state (from Wave 1 WorkItemState). */
|
|
60
|
+
business: WorkItemState;
|
|
61
|
+
/**
|
|
62
|
+
* Execution snapshot from Wave 2.
|
|
63
|
+
* Absent when the work item has not yet been picked up by an agent.
|
|
64
|
+
*/
|
|
65
|
+
execution: ExecutionSnapshot | null;
|
|
66
|
+
/** Explicit review state axis. */
|
|
67
|
+
review: ReviewState;
|
|
68
|
+
/**
|
|
69
|
+
* PR sidecar state from Wave 3.
|
|
70
|
+
* Absent for Epic/Feature (planning tier items have no worktree/PR).
|
|
71
|
+
*/
|
|
72
|
+
prSidecar: PrSidecarState | null;
|
|
73
|
+
/** Final resolution — `unresolved` while the item is still active. */
|
|
74
|
+
resolution: Resolution;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Fields mirrored verbatim from Azure DevOps that don't fit cleanly into
|
|
78
|
+
* `LayeredState` (or are too AzDO-specific to lift into the canonical contract).
|
|
79
|
+
*
|
|
80
|
+
* Kept under a single namespace so the canonical `WorkItemPayload` stays
|
|
81
|
+
* provider-agnostic. Consumers only read this when `source === 'azdo'`.
|
|
82
|
+
*/
|
|
83
|
+
export interface AzdoFields {
|
|
84
|
+
/** Raw AzDO numeric work-item id as a string (e.g. "1234"). */
|
|
85
|
+
azdoId: string;
|
|
86
|
+
/** Backlog item / Bug / Epic / Feature as reported by AzDO. */
|
|
87
|
+
workItemType: string;
|
|
88
|
+
/** AzDO state name verbatim (e.g. "New", "Approved", "In Progress"). */
|
|
89
|
+
state: string;
|
|
90
|
+
/** Raw description HTML/plain text from AzDO. */
|
|
91
|
+
description: string;
|
|
92
|
+
/** Priority integer 1..4 from `Microsoft.VSTS.Common.Priority`. */
|
|
93
|
+
priority: number | null;
|
|
94
|
+
/** Severity (Bug only) from `Microsoft.VSTS.Common.Severity`. */
|
|
95
|
+
severity: string | null;
|
|
96
|
+
/** AzDO area path verbatim (e.g. "Enact\\Factory"). */
|
|
97
|
+
areaPath: string;
|
|
98
|
+
/** Acceptance Criteria HTML — bullets are parsed client-side. */
|
|
99
|
+
acceptanceCriteria: string;
|
|
100
|
+
/** Start Date (Epic / Feature only). */
|
|
101
|
+
startDate: string | null;
|
|
102
|
+
/** Target Date (Epic / Feature only). */
|
|
103
|
+
targetDate: string | null;
|
|
104
|
+
/** Repro Steps (Bug only). */
|
|
105
|
+
reproSteps: string | null;
|
|
106
|
+
/** System Info (Bug only). */
|
|
107
|
+
systemInfo: string | null;
|
|
108
|
+
/** Mirrors WorkItemPayload.operatorLane when the item is AzDo-sourced. Canonical source is WorkItemPayload.operatorLane. */
|
|
109
|
+
operatorLane: string | null;
|
|
110
|
+
/** Custom.FailureReason picklist value. */
|
|
111
|
+
failureReason: string | null;
|
|
112
|
+
/** Display name of the person assigned to this work item (`System.AssignedTo`). */
|
|
113
|
+
assignedTo: string | null;
|
|
114
|
+
/** Semicolon-separated tags split into an array (`System.Tags`). Empty when absent. */
|
|
115
|
+
tags: string[];
|
|
116
|
+
/** AzDO iteration path verbatim, e.g. "Enact\\Sprint 12" (`System.IterationPath`). */
|
|
117
|
+
iterationPath: string | null;
|
|
118
|
+
/** Transition reason verbatim, e.g. "Moved to a sprint" (`System.Reason`). */
|
|
119
|
+
reason: string | null;
|
|
120
|
+
/** Six lifecycle booleans → flat object for easy dot rendering. */
|
|
121
|
+
lifecycle: {
|
|
122
|
+
planWritten: boolean;
|
|
123
|
+
implementationComplete: boolean;
|
|
124
|
+
reviewPassed: boolean;
|
|
125
|
+
testsPassing: boolean;
|
|
126
|
+
docsUpdated: boolean;
|
|
127
|
+
mergedToDevelop: boolean;
|
|
128
|
+
};
|
|
129
|
+
/** Parent breadcrumb (one or two levels up) — populated by server when known. */
|
|
130
|
+
parentId: string | null;
|
|
131
|
+
parentTitle: string | null;
|
|
132
|
+
parentWorkItemType: string | null;
|
|
133
|
+
parentStartDate: string | null;
|
|
134
|
+
parentTargetDate: string | null;
|
|
135
|
+
grandparentId: string | null;
|
|
136
|
+
grandparentTitle: string | null;
|
|
137
|
+
grandparentWorkItemType: string | null;
|
|
138
|
+
grandparentStartDate: string | null;
|
|
139
|
+
grandparentTargetDate: string | null;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Wire shape returned by `GET /api/factory/workitems` and
|
|
143
|
+
* `GET /api/factory/workitems/:id`.
|
|
144
|
+
*
|
|
145
|
+
* This is the canonical contract for Wave 4 and later (Wave 5 dashboard).
|
|
146
|
+
* All state axes are explicit and separate via `LayeredState`.
|
|
147
|
+
*
|
|
148
|
+
* Identity fields are flat for easy consumption by the dashboard.
|
|
149
|
+
* State is nested under `layeredState` to make the separation visible.
|
|
150
|
+
*
|
|
151
|
+
* Optional Wave 3 fields (`worktreeLifecycle`, `prSidecar`) are only
|
|
152
|
+
* present for executable items (Backlog item | Bug). Planning-tier items
|
|
153
|
+
* (Epic | Feature) will always carry `null` for those fields.
|
|
154
|
+
*/
|
|
155
|
+
export interface WorkItemPayload {
|
|
156
|
+
/** Unique identifier (matches WorkItem.id or Azure DevOps work-item ID). */
|
|
157
|
+
id: string;
|
|
158
|
+
/** Operator-facing kind label. */
|
|
159
|
+
kind: WorkItemKind;
|
|
160
|
+
/** Human-readable title. */
|
|
161
|
+
title: string;
|
|
162
|
+
/** Owning area — mandatory. */
|
|
163
|
+
area: Area;
|
|
164
|
+
/**
|
|
165
|
+
* Parent item ID. Null for Epics (root items).
|
|
166
|
+
* For Features → Epic ID. For Backlog item | Bug → Feature or Epic ID.
|
|
167
|
+
*/
|
|
168
|
+
parentId: string | null;
|
|
169
|
+
/**
|
|
170
|
+
* All state axes kept separate.
|
|
171
|
+
* Do not flatten these into a single "status" field.
|
|
172
|
+
*/
|
|
173
|
+
layeredState: LayeredState;
|
|
174
|
+
/**
|
|
175
|
+
* Worktree lifecycle from Wave 3.
|
|
176
|
+
* Present only for executable items (Backlog item | Bug).
|
|
177
|
+
* Null for planning-tier items (Epic | Feature).
|
|
178
|
+
*/
|
|
179
|
+
worktreeLifecycle: WorktreeLifecycle | null;
|
|
180
|
+
/** ISO-8601 creation timestamp. */
|
|
181
|
+
createdAt: string;
|
|
182
|
+
/** ISO-8601 last-updated timestamp. */
|
|
183
|
+
updatedAt: string;
|
|
184
|
+
/**
|
|
185
|
+
* Azure DevOps mirror fields. Present when this work item is sourced
|
|
186
|
+
* from AzDO (`source='azdo'`). Consumers MUST treat this as the source
|
|
187
|
+
* of truth for AzDO-owned fields and never write to it.
|
|
188
|
+
*/
|
|
189
|
+
azdoFields?: AzdoFields;
|
|
190
|
+
/** Active operator lane for this session root. Populated by scheduler on activation; optional for non-session items. */
|
|
191
|
+
operatorLane?: OperatorLane;
|
|
192
|
+
/** Optional external board identifier (AzDo workItemId, GitHub issue, etc). Not required for runtime. */
|
|
193
|
+
externalWorkItemId?: string;
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=workItemPayload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workItemPayload.d.ts","sourceRoot":"","sources":["../../src/core/workItemPayload.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// ============================================
|
|
2
|
+
// EnactFactory - Canonical Work-Item Payload Contract (Wave 4)
|
|
3
|
+
// Wire shape returned by GET /api/factory/workitems
|
|
4
|
+
// Composed from Wave 1 (workItemModel), Wave 2 (agentLifecycle),
|
|
5
|
+
// Wave 3 (devopsModel, prSidecar) types.
|
|
6
|
+
// ============================================
|
|
7
|
+
/** Ordered tuple of all ReviewState values. */
|
|
8
|
+
export const REVIEW_STATES = [
|
|
9
|
+
'none',
|
|
10
|
+
'pending',
|
|
11
|
+
'approved',
|
|
12
|
+
'rejected',
|
|
13
|
+
'revision',
|
|
14
|
+
];
|
|
15
|
+
/** Ordered tuple of all Resolution values. */
|
|
16
|
+
export const RESOLUTIONS = [
|
|
17
|
+
'unresolved',
|
|
18
|
+
'succeeded',
|
|
19
|
+
'failed',
|
|
20
|
+
'halted',
|
|
21
|
+
'cancelled',
|
|
22
|
+
'duplicate',
|
|
23
|
+
];
|
|
24
|
+
//# sourceMappingURL=workItemPayload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workItemPayload.js","sourceRoot":"","sources":["../../src/core/workItemPayload.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,+DAA+D;AAC/D,oDAAoD;AACpD,iEAAiE;AACjE,yCAAyC;AACzC,+CAA+C;AAuB/C,+CAA+C;AAC/C,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,MAAM;IACN,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;CACF,CAAC;AAwBX,8CAA8C;AAC9C,MAAM,CAAC,MAAM,WAAW,GAA0B;IAChD,YAAY;IACZ,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,WAAW;CACH,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export interface DeclaredPathValue {
|
|
2
|
+
value: string;
|
|
3
|
+
sourceDir: string;
|
|
4
|
+
}
|
|
5
|
+
export interface WorkspaceRootConfig {
|
|
6
|
+
factory?: Record<string, unknown>;
|
|
7
|
+
postgres?: Record<string, unknown>;
|
|
8
|
+
gateway?: Record<string, unknown>;
|
|
9
|
+
agent?: Record<string, unknown>;
|
|
10
|
+
watchdog?: Record<string, unknown>;
|
|
11
|
+
context?: Record<string, unknown>;
|
|
12
|
+
operator?: Record<string, unknown>;
|
|
13
|
+
paths?: {
|
|
14
|
+
use_global?: boolean;
|
|
15
|
+
project?: string;
|
|
16
|
+
global?: string;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/** Factory's global config: ~/.enact/factory/config.toml (the merge base). */
|
|
20
|
+
export declare function globalFactoryConfigPath(): string;
|
|
21
|
+
export declare function readWorkspaceRootConfig(startDir?: string): WorkspaceRootConfig | null;
|
|
22
|
+
/**
|
|
23
|
+
* Resolve a path-typed field honoring per-key provenance: returns the value
|
|
24
|
+
* and the directory of the config.toml that declared it (so callers can
|
|
25
|
+
* resolve relative values against the correct base).
|
|
26
|
+
* Searches in workspace→global precedence order; first declarer wins.
|
|
27
|
+
*/
|
|
28
|
+
export declare function resolveDeclaredFactoryPath(pick: (cfg: WorkspaceRootConfig) => unknown, startDir?: string): DeclaredPathValue | null;
|
|
29
|
+
export declare function expandFactoryPath(value: string, sourceDir: string): string;
|
|
30
|
+
export declare function getWorkspaceConfigPath(startDir?: string): string | null;
|
|
31
|
+
export declare function getWorkspaceRootDir(startDir?: string): string;
|
|
32
|
+
export declare function getWorkspaceFactoryPort(startDir?: string): number | null;
|
|
33
|
+
export declare function getWorkspaceFactoryDashPort(startDir?: string): number | null;
|
|
34
|
+
export declare function requireWorkspaceFactoryPort(startDir?: string): number;
|
|
35
|
+
export declare function requireWorkspaceFactoryDashPort(startDir?: string): number;
|
|
36
|
+
/**
|
|
37
|
+
* The single canonical UI port for the dashboard web server (43206 dev / 53206 prod).
|
|
38
|
+
*
|
|
39
|
+
* Both `enact-factory dash` and `enact-factory start` (the daemon) bind this port
|
|
40
|
+
* via `startWebServer`, and every client that talks to the dashboard over HTTP (the
|
|
41
|
+
* CLI exec handler, the chat TUI) connects to it.
|
|
42
|
+
*
|
|
43
|
+
* Resolution order (workspace-merged config wins):
|
|
44
|
+
* 1. `[factory].port` — the canonical factory port (preferred)
|
|
45
|
+
* 2. `[factory].dash_port` — legacy key retained as fallback for old configs only
|
|
46
|
+
* 3. 43206 — built-in default matching the enact-docs port registry
|
|
47
|
+
*
|
|
48
|
+
* `dash_port` is no longer written to new configs; it is only read as a fallback so
|
|
49
|
+
* that existing installations with only `dash_port` set keep working without changes.
|
|
50
|
+
*/
|
|
51
|
+
export declare function getWorkspaceUiPort(startDir?: string): number | null;
|
|
52
|
+
export declare function requireWorkspaceUiPort(startDir?: string): number;
|
|
53
|
+
export declare function requireWorkspaceFactoryWorkItemStateFile(startDir?: string): string;
|
|
54
|
+
export declare function requireWorkspaceFactoryStorage(startDir?: string): string;
|
|
55
|
+
export declare function requireWorkspaceOperatorStorage(startDir?: string): string;
|
|
56
|
+
export declare function requireWorkspaceContextBin(): string;
|
|
57
|
+
//# sourceMappingURL=workspaceConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceConfig.d.ts","sourceRoot":"","sources":["../../src/core/workspaceConfig.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE;QACN,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAMD,8EAA8E;AAC9E,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAeD,wBAAgB,uBAAuB,CAAC,QAAQ,SAAgB,GAAG,mBAAmB,GAAG,IAAI,CAQ5F;AAwBD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,EAC3C,QAAQ,SAAgB,GACvB,iBAAiB,GAAG,IAAI,CAQ1B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAO1E;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,SAAgB,GAAG,MAAM,GAAG,IAAI,CAQ9E;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,SAAgB,GAAG,MAAM,CAMpE;AAOD,wBAAgB,uBAAuB,CAAC,QAAQ,SAAgB,GAAG,MAAM,GAAG,IAAI,CAI/E;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,SAAgB,GAAG,MAAM,GAAG,IAAI,CAInF;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,SAAgB,GAAG,MAAM,CAE5E;AAED,wBAAgB,+BAA+B,CAAC,QAAQ,SAAgB,GAAG,MAAM,CAEhF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,SAAgB,GAAG,MAAM,GAAG,IAAI,CAE1E;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,SAAgB,GAAG,MAAM,CAEvE;AAED,wBAAgB,wCAAwC,CAAC,QAAQ,SAAgB,GAAG,MAAM,CAMzF;AAED,wBAAgB,8BAA8B,CAAC,QAAQ,SAAgB,GAAG,MAAM,CAM/E;AAED,wBAAgB,+BAA+B,CAAC,QAAQ,SAAgB,GAAG,MAAM,CAMhF;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAMnD"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { dirname, isAbsolute, join, resolve } from 'node:path';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
import TOML from '@iarna/toml';
|
|
5
|
+
function configFileName() {
|
|
6
|
+
return process.env.NODE_ENV === 'production' ? 'config.prd.toml' : 'config.toml';
|
|
7
|
+
}
|
|
8
|
+
/** Factory's global config: ~/.enact/factory/config.toml (the merge base). */
|
|
9
|
+
export function globalFactoryConfigPath() {
|
|
10
|
+
return resolve(homedir(), '.enact', 'factory', configFileName());
|
|
11
|
+
}
|
|
12
|
+
function candidateConfigPaths(startDir = process.cwd()) {
|
|
13
|
+
const fileName = configFileName();
|
|
14
|
+
const workspacePaths = [];
|
|
15
|
+
let current = resolve(startDir);
|
|
16
|
+
while (true) {
|
|
17
|
+
workspacePaths.push(resolve(current, fileName));
|
|
18
|
+
const parent = dirname(current);
|
|
19
|
+
if (parent === current)
|
|
20
|
+
break;
|
|
21
|
+
current = parent;
|
|
22
|
+
}
|
|
23
|
+
return [...new Set([...workspacePaths, globalFactoryConfigPath()])];
|
|
24
|
+
}
|
|
25
|
+
export function readWorkspaceRootConfig(startDir = process.cwd()) {
|
|
26
|
+
const configs = readWorkspaceRootConfigs(startDir);
|
|
27
|
+
if (configs.length === 0)
|
|
28
|
+
return null;
|
|
29
|
+
let merged = {};
|
|
30
|
+
for (const cfg of configs) {
|
|
31
|
+
merged = deepMerge(merged, cfg);
|
|
32
|
+
}
|
|
33
|
+
return merged;
|
|
34
|
+
}
|
|
35
|
+
function readLoadedConfigs(startDir = process.cwd()) {
|
|
36
|
+
const loaded = [];
|
|
37
|
+
for (const candidate of candidateConfigPaths(startDir)) {
|
|
38
|
+
if (!existsSync(candidate)) {
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
try {
|
|
42
|
+
const parsed = TOML.parse(readFileSync(candidate, 'utf8'));
|
|
43
|
+
loaded.push({ path: candidate, config: parsed });
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
// Skip malformed configs and continue to the next candidate.
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return loaded;
|
|
50
|
+
}
|
|
51
|
+
function readWorkspaceRootConfigs(startDir = process.cwd()) {
|
|
52
|
+
// Returned in merge order: global/lowest precedence first, workspace last,
|
|
53
|
+
// so that callers can fold-merge with workspace overrides winning.
|
|
54
|
+
return readLoadedConfigs(startDir).map((loaded) => loaded.config).reverse();
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Resolve a path-typed field honoring per-key provenance: returns the value
|
|
58
|
+
* and the directory of the config.toml that declared it (so callers can
|
|
59
|
+
* resolve relative values against the correct base).
|
|
60
|
+
* Searches in workspace→global precedence order; first declarer wins.
|
|
61
|
+
*/
|
|
62
|
+
export function resolveDeclaredFactoryPath(pick, startDir = process.cwd()) {
|
|
63
|
+
for (const loaded of readLoadedConfigs(startDir)) {
|
|
64
|
+
const raw = pick(loaded.config);
|
|
65
|
+
if (typeof raw === 'string' && raw.trim()) {
|
|
66
|
+
return { value: raw, sourceDir: dirname(loaded.path) };
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
export function expandFactoryPath(value, sourceDir) {
|
|
72
|
+
const trimmed = value.trim();
|
|
73
|
+
if (!trimmed)
|
|
74
|
+
return trimmed;
|
|
75
|
+
if (trimmed === '~')
|
|
76
|
+
return homedir();
|
|
77
|
+
if (trimmed.startsWith('~/'))
|
|
78
|
+
return join(homedir(), trimmed.slice(2));
|
|
79
|
+
if (isAbsolute(trimmed))
|
|
80
|
+
return trimmed;
|
|
81
|
+
return resolve(sourceDir, trimmed);
|
|
82
|
+
}
|
|
83
|
+
export function getWorkspaceConfigPath(startDir = process.cwd()) {
|
|
84
|
+
const globalPrefix = `${resolve(homedir(), '.enact')}/`;
|
|
85
|
+
for (const candidate of candidateConfigPaths(startDir)) {
|
|
86
|
+
if (existsSync(candidate) && !candidate.startsWith(globalPrefix)) {
|
|
87
|
+
return candidate;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
export function getWorkspaceRootDir(startDir = process.cwd()) {
|
|
93
|
+
const configPath = getWorkspaceConfigPath(startDir);
|
|
94
|
+
if (!configPath) {
|
|
95
|
+
throw new Error('Workspace config.toml not found');
|
|
96
|
+
}
|
|
97
|
+
return dirname(configPath);
|
|
98
|
+
}
|
|
99
|
+
function resolveWorkspaceRootOrFallback(startDir = process.cwd()) {
|
|
100
|
+
const configPath = getWorkspaceConfigPath(startDir);
|
|
101
|
+
return configPath ? dirname(configPath) : resolve(startDir);
|
|
102
|
+
}
|
|
103
|
+
export function getWorkspaceFactoryPort(startDir = process.cwd()) {
|
|
104
|
+
// Read from the merged config so a local config.toml overrides the global base.
|
|
105
|
+
const port = readWorkspaceRootConfig(startDir)?.factory?.['port'];
|
|
106
|
+
return typeof port === 'number' ? port : null;
|
|
107
|
+
}
|
|
108
|
+
export function getWorkspaceFactoryDashPort(startDir = process.cwd()) {
|
|
109
|
+
// Read from the merged config so a local config.toml overrides the global base.
|
|
110
|
+
const port = readWorkspaceRootConfig(startDir)?.factory?.['dash_port'];
|
|
111
|
+
return typeof port === 'number' ? port : null;
|
|
112
|
+
}
|
|
113
|
+
export function requireWorkspaceFactoryPort(startDir = process.cwd()) {
|
|
114
|
+
return getWorkspaceFactoryPort(startDir) ?? 43210;
|
|
115
|
+
}
|
|
116
|
+
export function requireWorkspaceFactoryDashPort(startDir = process.cwd()) {
|
|
117
|
+
return getWorkspaceFactoryDashPort(startDir) ?? 43211;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* The single canonical UI port for the dashboard web server (43206 dev / 53206 prod).
|
|
121
|
+
*
|
|
122
|
+
* Both `enact-factory dash` and `enact-factory start` (the daemon) bind this port
|
|
123
|
+
* via `startWebServer`, and every client that talks to the dashboard over HTTP (the
|
|
124
|
+
* CLI exec handler, the chat TUI) connects to it.
|
|
125
|
+
*
|
|
126
|
+
* Resolution order (workspace-merged config wins):
|
|
127
|
+
* 1. `[factory].port` — the canonical factory port (preferred)
|
|
128
|
+
* 2. `[factory].dash_port` — legacy key retained as fallback for old configs only
|
|
129
|
+
* 3. 43206 — built-in default matching the enact-docs port registry
|
|
130
|
+
*
|
|
131
|
+
* `dash_port` is no longer written to new configs; it is only read as a fallback so
|
|
132
|
+
* that existing installations with only `dash_port` set keep working without changes.
|
|
133
|
+
*/
|
|
134
|
+
export function getWorkspaceUiPort(startDir = process.cwd()) {
|
|
135
|
+
return getWorkspaceFactoryPort(startDir) ?? getWorkspaceFactoryDashPort(startDir);
|
|
136
|
+
}
|
|
137
|
+
export function requireWorkspaceUiPort(startDir = process.cwd()) {
|
|
138
|
+
return getWorkspaceUiPort(startDir) ?? 43206;
|
|
139
|
+
}
|
|
140
|
+
export function requireWorkspaceFactoryWorkItemStateFile(startDir = process.cwd()) {
|
|
141
|
+
const declared = resolveDeclaredFactoryPath((cfg) => cfg.factory?.['workitem_state_file'], startDir);
|
|
142
|
+
if (!declared) {
|
|
143
|
+
return join(resolveWorkspaceRootOrFallback(startDir), '.enact', 'factory', 'state', 'workitem-state.json');
|
|
144
|
+
}
|
|
145
|
+
return expandFactoryPath(declared.value, declared.sourceDir);
|
|
146
|
+
}
|
|
147
|
+
export function requireWorkspaceFactoryStorage(startDir = process.cwd()) {
|
|
148
|
+
const declared = resolveDeclaredFactoryPath((cfg) => cfg.factory?.['storage'], startDir);
|
|
149
|
+
if (!declared) {
|
|
150
|
+
throw new Error('Missing [factory].storage in workspace config.toml');
|
|
151
|
+
}
|
|
152
|
+
return expandFactoryPath(declared.value, declared.sourceDir);
|
|
153
|
+
}
|
|
154
|
+
export function requireWorkspaceOperatorStorage(startDir = process.cwd()) {
|
|
155
|
+
const declared = resolveDeclaredFactoryPath((cfg) => cfg.operator?.['storage'], startDir);
|
|
156
|
+
if (!declared) {
|
|
157
|
+
throw new Error('Missing [operator].storage in workspace config.toml');
|
|
158
|
+
}
|
|
159
|
+
return expandFactoryPath(declared.value, declared.sourceDir);
|
|
160
|
+
}
|
|
161
|
+
export function requireWorkspaceContextBin() {
|
|
162
|
+
const value = readWorkspaceRootConfig()?.context?.['bin'];
|
|
163
|
+
if (typeof value === 'string' && value.trim()) {
|
|
164
|
+
return value;
|
|
165
|
+
}
|
|
166
|
+
throw new Error('Missing [context].bin in workspace config.toml');
|
|
167
|
+
}
|
|
168
|
+
function isRecord(value) {
|
|
169
|
+
return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
|
|
170
|
+
}
|
|
171
|
+
function deepMerge(base, overlay) {
|
|
172
|
+
const out = { ...base };
|
|
173
|
+
for (const [key, value] of Object.entries(overlay)) {
|
|
174
|
+
const existing = out[key];
|
|
175
|
+
if (isRecord(existing) && isRecord(value)) {
|
|
176
|
+
out[key] = deepMerge(existing, value);
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
out[key] = value;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return out;
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=workspaceConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceConfig.js","sourceRoot":"","sources":["../../src/core/workspaceConfig.ts"],"names":[],"mappings":"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"}
|
package/dist/doctor.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface DoctorCheck {
|
|
2
|
+
id: string;
|
|
3
|
+
ok: boolean;
|
|
4
|
+
detail: string;
|
|
5
|
+
}
|
|
6
|
+
export interface FactoryDoctorReport {
|
|
7
|
+
ok: boolean;
|
|
8
|
+
root: string;
|
|
9
|
+
checks: DoctorCheck[];
|
|
10
|
+
advisories: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare class MissingComponentError extends Error {
|
|
13
|
+
components: string[];
|
|
14
|
+
constructor(components: string[]);
|
|
15
|
+
}
|
|
16
|
+
export declare function runDoctor(root?: string): FactoryDoctorReport;
|
|
17
|
+
export declare function assertDoctorHealthy(root?: string): FactoryDoctorReport;
|
|
18
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,UAAU,EAAE,MAAM,EAAE,CAAC;gBAET,UAAU,EAAE,MAAM,EAAE;CAKjC;AAED,wBAAgB,SAAS,CAAC,IAAI,SAAuB,GAAG,mBAAmB,CAe1E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,SAAuB,GAAG,mBAAmB,CAMpF"}
|
package/dist/doctor.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { resolveFactoryRoot } from './factory/paths.js';
|
|
2
|
+
import { readFactoryHookStatus } from './hooks.js';
|
|
3
|
+
export class MissingComponentError extends Error {
|
|
4
|
+
components;
|
|
5
|
+
constructor(components) {
|
|
6
|
+
super(`MissingComponent: ${components.join(', ')}`);
|
|
7
|
+
this.name = 'MissingComponent';
|
|
8
|
+
this.components = components;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export function runDoctor(root = resolveFactoryRoot()) {
|
|
12
|
+
const hookStatus = readFactoryHookStatus(root);
|
|
13
|
+
const checks = [
|
|
14
|
+
{ id: 'repo-hook-config', ok: hookStatus.hookInstalled, detail: hookStatus.configPath },
|
|
15
|
+
{ id: 'hook-registry', ok: hookStatus.registryInstalled, detail: hookStatus.registryPath },
|
|
16
|
+
];
|
|
17
|
+
const advisories = [
|
|
18
|
+
'Host plugin delivery is owned by enact-extensions. Install with `enact-extensions install enact-factory --platform codex|claude|cursor|all` as needed.',
|
|
19
|
+
];
|
|
20
|
+
return {
|
|
21
|
+
ok: checks.every((check) => check.ok),
|
|
22
|
+
root,
|
|
23
|
+
checks,
|
|
24
|
+
advisories,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export function assertDoctorHealthy(root = resolveFactoryRoot()) {
|
|
28
|
+
const report = runDoctor(root);
|
|
29
|
+
if (!report.ok) {
|
|
30
|
+
throw new MissingComponentError(report.checks.filter((check) => !check.ok).map((check) => check.id));
|
|
31
|
+
}
|
|
32
|
+
return report;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAenD,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,UAAU,CAAW;IAErB,YAAY,UAAoB;QAC9B,KAAK,CAAC,qBAAqB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,UAAU,SAAS,CAAC,IAAI,GAAG,kBAAkB,EAAE;IACnD,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAkB;QAC5B,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE;QACvF,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,UAAU,CAAC,YAAY,EAAE;KAC3F,CAAC;IACF,MAAM,UAAU,GAAG;QACjB,wJAAwJ;KACzJ,CAAC;IACF,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI;QACJ,MAAM;QACN,UAAU;KACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAI,GAAG,kBAAkB,EAAE;IAC7D,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACvG,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface FactoryActiveSkillState {
|
|
2
|
+
activeSkill: string | null;
|
|
3
|
+
activatedAt: string | null;
|
|
4
|
+
activatedBy: string | null;
|
|
5
|
+
}
|
|
6
|
+
export declare function factoryActiveSkillFile(root: string): string;
|
|
7
|
+
export declare function readFactoryActiveSkill(root: string): FactoryActiveSkillState;
|
|
8
|
+
export declare function writeFactoryActiveSkill(root: string, state: FactoryActiveSkillState): FactoryActiveSkillState;
|
|
9
|
+
export declare function activateFactorySkill(root: string, skill: string, activatedBy: string): FactoryActiveSkillState;
|
|
10
|
+
export declare function deactivateFactorySkill(root: string): FactoryActiveSkillState;
|
|
11
|
+
//# sourceMappingURL=activeSkill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activeSkill.d.ts","sourceRoot":"","sources":["../../src/factory/activeSkill.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAQD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,CAa5E;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,uBAAuB,CAK7G;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,uBAAuB,CAM9G;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,CAE5E"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { dirname } from 'node:path';
|
|
3
|
+
import { factoryPath } from '../factory/paths.js';
|
|
4
|
+
const DEFAULT_STATE = {
|
|
5
|
+
activeSkill: null,
|
|
6
|
+
activatedAt: null,
|
|
7
|
+
activatedBy: null,
|
|
8
|
+
};
|
|
9
|
+
export function factoryActiveSkillFile(root) {
|
|
10
|
+
return factoryPath(root, 'state', 'factory-active-skill.json');
|
|
11
|
+
}
|
|
12
|
+
export function readFactoryActiveSkill(root) {
|
|
13
|
+
const path = factoryActiveSkillFile(root);
|
|
14
|
+
if (!existsSync(path))
|
|
15
|
+
return { ...DEFAULT_STATE };
|
|
16
|
+
try {
|
|
17
|
+
const raw = JSON.parse(readFileSync(path, 'utf8'));
|
|
18
|
+
return {
|
|
19
|
+
activeSkill: typeof raw.activeSkill === 'string' ? raw.activeSkill : null,
|
|
20
|
+
activatedAt: typeof raw.activatedAt === 'string' ? raw.activatedAt : null,
|
|
21
|
+
activatedBy: typeof raw.activatedBy === 'string' ? raw.activatedBy : null,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return { ...DEFAULT_STATE };
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export function writeFactoryActiveSkill(root, state) {
|
|
29
|
+
const path = factoryActiveSkillFile(root);
|
|
30
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
31
|
+
writeFileSync(path, JSON.stringify(state, null, 2), 'utf8');
|
|
32
|
+
return state;
|
|
33
|
+
}
|
|
34
|
+
export function activateFactorySkill(root, skill, activatedBy) {
|
|
35
|
+
return writeFactoryActiveSkill(root, {
|
|
36
|
+
activeSkill: skill,
|
|
37
|
+
activatedAt: new Date().toISOString(),
|
|
38
|
+
activatedBy,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
export function deactivateFactorySkill(root) {
|
|
42
|
+
return writeFactoryActiveSkill(root, { ...DEFAULT_STATE });
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=activeSkill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activeSkill.js","sourceRoot":"","sources":["../../src/factory/activeSkill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQjD,MAAM,aAAa,GAA4B;IAC7C,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,2BAA2B,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAqC,CAAC;QACvF,OAAO;YACL,WAAW,EAAE,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;YACzE,WAAW,EAAE,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;YACzE,WAAW,EAAE,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;SAC1E,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,KAA8B;IAClF,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC1C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,KAAa,EAAE,WAAmB;IACnF,OAAO,uBAAuB,CAAC,IAAI,EAAE;QACnC,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,WAAW;KACZ,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,OAAO,uBAAuB,CAAC,IAAI,EAAE,EAAE,GAAG,aAAa,EAAE,CAAC,CAAC;AAC7D,CAAC"}
|