@telora/daemon 0.12.33
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/.env.example +64 -0
- package/README.md +229 -0
- package/build-info.json +4 -0
- package/dist/activity-tracker.d.ts +13 -0
- package/dist/activity-tracker.d.ts.map +1 -0
- package/dist/activity-tracker.js +19 -0
- package/dist/activity-tracker.js.map +1 -0
- package/dist/agent-state.d.ts +45 -0
- package/dist/agent-state.d.ts.map +1 -0
- package/dist/agent-state.js +61 -0
- package/dist/agent-state.js.map +1 -0
- package/dist/audit-hooks.d.ts +12 -0
- package/dist/audit-hooks.d.ts.map +1 -0
- package/dist/audit-hooks.js +45 -0
- package/dist/audit-hooks.js.map +1 -0
- package/dist/auto-update.d.ts +42 -0
- package/dist/auto-update.d.ts.map +1 -0
- package/dist/auto-update.js +96 -0
- package/dist/auto-update.js.map +1 -0
- package/dist/branch-status.d.ts +40 -0
- package/dist/branch-status.d.ts.map +1 -0
- package/dist/branch-status.js +107 -0
- package/dist/branch-status.js.map +1 -0
- package/dist/completion-detector.d.ts +87 -0
- package/dist/completion-detector.d.ts.map +1 -0
- package/dist/completion-detector.js +160 -0
- package/dist/completion-detector.js.map +1 -0
- package/dist/completion-handler.d.ts +48 -0
- package/dist/completion-handler.d.ts.map +1 -0
- package/dist/completion-handler.js +200 -0
- package/dist/completion-handler.js.map +1 -0
- package/dist/condition-evaluators.d.ts +31 -0
- package/dist/condition-evaluators.d.ts.map +1 -0
- package/dist/condition-evaluators.js +416 -0
- package/dist/condition-evaluators.js.map +1 -0
- package/dist/config.d.ts +55 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +311 -0
- package/dist/config.js.map +1 -0
- package/dist/control-state.d.ts +41 -0
- package/dist/control-state.d.ts.map +1 -0
- package/dist/control-state.js +204 -0
- package/dist/control-state.js.map +1 -0
- package/dist/crash-recovery-cleanup.d.ts +21 -0
- package/dist/crash-recovery-cleanup.d.ts.map +1 -0
- package/dist/crash-recovery-cleanup.js +198 -0
- package/dist/crash-recovery-cleanup.js.map +1 -0
- package/dist/crash-recovery-scan.d.ts +19 -0
- package/dist/crash-recovery-scan.d.ts.map +1 -0
- package/dist/crash-recovery-scan.js +145 -0
- package/dist/crash-recovery-scan.js.map +1 -0
- package/dist/crash-recovery-types.d.ts +54 -0
- package/dist/crash-recovery-types.d.ts.map +1 -0
- package/dist/crash-recovery-types.js +13 -0
- package/dist/crash-recovery-types.js.map +1 -0
- package/dist/crash-recovery.d.ts +88 -0
- package/dist/crash-recovery.d.ts.map +1 -0
- package/dist/crash-recovery.js +448 -0
- package/dist/crash-recovery.js.map +1 -0
- package/dist/daemon-logs.d.ts +19 -0
- package/dist/daemon-logs.d.ts.map +1 -0
- package/dist/daemon-logs.js +81 -0
- package/dist/daemon-logs.js.map +1 -0
- package/dist/daemon-process.d.ts +154 -0
- package/dist/daemon-process.d.ts.map +1 -0
- package/dist/daemon-process.js +427 -0
- package/dist/daemon-process.js.map +1 -0
- package/dist/dag-validator.d.ts +52 -0
- package/dist/dag-validator.d.ts.map +1 -0
- package/dist/dag-validator.js +199 -0
- package/dist/dag-validator.js.map +1 -0
- package/dist/delivery-guards.d.ts +41 -0
- package/dist/delivery-guards.d.ts.map +1 -0
- package/dist/delivery-guards.js +195 -0
- package/dist/delivery-guards.js.map +1 -0
- package/dist/delivery-lifecycle.d.ts +110 -0
- package/dist/delivery-lifecycle.d.ts.map +1 -0
- package/dist/delivery-lifecycle.js +353 -0
- package/dist/delivery-lifecycle.js.map +1 -0
- package/dist/delivery-merge.d.ts +17 -0
- package/dist/delivery-merge.d.ts.map +1 -0
- package/dist/delivery-merge.js +89 -0
- package/dist/delivery-merge.js.map +1 -0
- package/dist/dependency-resolver.d.ts +77 -0
- package/dist/dependency-resolver.d.ts.map +1 -0
- package/dist/dependency-resolver.js +337 -0
- package/dist/dependency-resolver.js.map +1 -0
- package/dist/evaluation-context.d.ts +49 -0
- package/dist/evaluation-context.d.ts.map +1 -0
- package/dist/evaluation-context.js +98 -0
- package/dist/evaluation-context.js.map +1 -0
- package/dist/git-activity.d.ts +24 -0
- package/dist/git-activity.d.ts.map +1 -0
- package/dist/git-activity.js +97 -0
- package/dist/git-activity.js.map +1 -0
- package/dist/git-branch.d.ts +33 -0
- package/dist/git-branch.d.ts.map +1 -0
- package/dist/git-branch.js +88 -0
- package/dist/git-branch.js.map +1 -0
- package/dist/git-integration.d.ts +27 -0
- package/dist/git-integration.d.ts.map +1 -0
- package/dist/git-integration.js +82 -0
- package/dist/git-integration.js.map +1 -0
- package/dist/git-merge-helpers.d.ts +48 -0
- package/dist/git-merge-helpers.d.ts.map +1 -0
- package/dist/git-merge-helpers.js +105 -0
- package/dist/git-merge-helpers.js.map +1 -0
- package/dist/git-merge-lock.d.ts +67 -0
- package/dist/git-merge-lock.d.ts.map +1 -0
- package/dist/git-merge-lock.js +157 -0
- package/dist/git-merge-lock.js.map +1 -0
- package/dist/git-merge-strategies.d.ts +39 -0
- package/dist/git-merge-strategies.d.ts.map +1 -0
- package/dist/git-merge-strategies.js +127 -0
- package/dist/git-merge-strategies.js.map +1 -0
- package/dist/git-merge.d.ts +80 -0
- package/dist/git-merge.d.ts.map +1 -0
- package/dist/git-merge.js +373 -0
- package/dist/git-merge.js.map +1 -0
- package/dist/git-state-detector.d.ts +24 -0
- package/dist/git-state-detector.d.ts.map +1 -0
- package/dist/git-state-detector.js +122 -0
- package/dist/git-state-detector.js.map +1 -0
- package/dist/git-types.d.ts +40 -0
- package/dist/git-types.d.ts.map +1 -0
- package/dist/git-types.js +23 -0
- package/dist/git-types.js.map +1 -0
- package/dist/git-utils.d.ts +28 -0
- package/dist/git-utils.d.ts.map +1 -0
- package/dist/git-utils.js +57 -0
- package/dist/git-utils.js.map +1 -0
- package/dist/git.d.ts +24 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +64 -0
- package/dist/git.js.map +1 -0
- package/dist/guard-engine.d.ts +19 -0
- package/dist/guard-engine.d.ts.map +1 -0
- package/dist/guard-engine.js +21 -0
- package/dist/guard-engine.js.map +1 -0
- package/dist/guard-evaluator.d.ts +47 -0
- package/dist/guard-evaluator.d.ts.map +1 -0
- package/dist/guard-evaluator.js +193 -0
- package/dist/guard-evaluator.js.map +1 -0
- package/dist/heartbeat.d.ts +73 -0
- package/dist/heartbeat.d.ts.map +1 -0
- package/dist/heartbeat.js +306 -0
- package/dist/heartbeat.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +493 -0
- package/dist/index.js.map +1 -0
- package/dist/listener-auto-advance.d.ts +29 -0
- package/dist/listener-auto-advance.d.ts.map +1 -0
- package/dist/listener-auto-advance.js +172 -0
- package/dist/listener-auto-advance.js.map +1 -0
- package/dist/listener-review.d.ts +37 -0
- package/dist/listener-review.d.ts.map +1 -0
- package/dist/listener-review.js +217 -0
- package/dist/listener-review.js.map +1 -0
- package/dist/listener.d.ts +57 -0
- package/dist/listener.d.ts.map +1 -0
- package/dist/listener.js +361 -0
- package/dist/listener.js.map +1 -0
- package/dist/log-manager.d.ts +18 -0
- package/dist/log-manager.d.ts.map +1 -0
- package/dist/log-manager.js +18 -0
- package/dist/log-manager.js.map +1 -0
- package/dist/otlp-log-parser.d.ts +21 -0
- package/dist/otlp-log-parser.d.ts.map +1 -0
- package/dist/otlp-log-parser.js +143 -0
- package/dist/otlp-log-parser.js.map +1 -0
- package/dist/otlp-metric-parser.d.ts +20 -0
- package/dist/otlp-metric-parser.d.ts.map +1 -0
- package/dist/otlp-metric-parser.js +113 -0
- package/dist/otlp-metric-parser.js.map +1 -0
- package/dist/otlp-port-manager.d.ts +26 -0
- package/dist/otlp-port-manager.d.ts.map +1 -0
- package/dist/otlp-port-manager.js +130 -0
- package/dist/otlp-port-manager.js.map +1 -0
- package/dist/otlp-receiver.d.ts +51 -0
- package/dist/otlp-receiver.d.ts.map +1 -0
- package/dist/otlp-receiver.js +663 -0
- package/dist/otlp-receiver.js.map +1 -0
- package/dist/otlp-types.d.ts +92 -0
- package/dist/otlp-types.d.ts.map +1 -0
- package/dist/otlp-types.js +133 -0
- package/dist/otlp-types.js.map +1 -0
- package/dist/output-monitor.d.ts +33 -0
- package/dist/output-monitor.d.ts.map +1 -0
- package/dist/output-monitor.js +67 -0
- package/dist/output-monitor.js.map +1 -0
- package/dist/planning-prompt-builder.d.ts +67 -0
- package/dist/planning-prompt-builder.d.ts.map +1 -0
- package/dist/planning-prompt-builder.js +515 -0
- package/dist/planning-prompt-builder.js.map +1 -0
- package/dist/prompt-builder.d.ts +14 -0
- package/dist/prompt-builder.d.ts.map +1 -0
- package/dist/prompt-builder.js +174 -0
- package/dist/prompt-builder.js.map +1 -0
- package/dist/qa-crash-recovery.d.ts +77 -0
- package/dist/qa-crash-recovery.d.ts.map +1 -0
- package/dist/qa-crash-recovery.js +243 -0
- package/dist/qa-crash-recovery.js.map +1 -0
- package/dist/qa-dev-server.d.ts +73 -0
- package/dist/qa-dev-server.d.ts.map +1 -0
- package/dist/qa-dev-server.js +279 -0
- package/dist/qa-dev-server.js.map +1 -0
- package/dist/qa-orchestrator.d.ts +79 -0
- package/dist/qa-orchestrator.d.ts.map +1 -0
- package/dist/qa-orchestrator.js +349 -0
- package/dist/qa-orchestrator.js.map +1 -0
- package/dist/qa-port-allocator.d.ts +34 -0
- package/dist/qa-port-allocator.d.ts.map +1 -0
- package/dist/qa-port-allocator.js +75 -0
- package/dist/qa-port-allocator.js.map +1 -0
- package/dist/qa-provisioner.d.ts +33 -0
- package/dist/qa-provisioner.d.ts.map +1 -0
- package/dist/qa-provisioner.js +141 -0
- package/dist/qa-provisioner.js.map +1 -0
- package/dist/qa-state.d.ts +93 -0
- package/dist/qa-state.d.ts.map +1 -0
- package/dist/qa-state.js +74 -0
- package/dist/qa-state.js.map +1 -0
- package/dist/queries/control-state.d.ts +25 -0
- package/dist/queries/control-state.d.ts.map +1 -0
- package/dist/queries/control-state.js +34 -0
- package/dist/queries/control-state.js.map +1 -0
- package/dist/queries/daemon-connection.d.ts +25 -0
- package/dist/queries/daemon-connection.d.ts.map +1 -0
- package/dist/queries/daemon-connection.js +28 -0
- package/dist/queries/daemon-connection.js.map +1 -0
- package/dist/queries/deliveries.d.ts +100 -0
- package/dist/queries/deliveries.d.ts.map +1 -0
- package/dist/queries/deliveries.js +184 -0
- package/dist/queries/deliveries.js.map +1 -0
- package/dist/queries/git-activity.d.ts +20 -0
- package/dist/queries/git-activity.d.ts.map +1 -0
- package/dist/queries/git-activity.js +22 -0
- package/dist/queries/git-activity.js.map +1 -0
- package/dist/queries/guards.d.ts +47 -0
- package/dist/queries/guards.d.ts.map +1 -0
- package/dist/queries/guards.js +138 -0
- package/dist/queries/guards.js.map +1 -0
- package/dist/queries/index.d.ts +19 -0
- package/dist/queries/index.d.ts.map +1 -0
- package/dist/queries/index.js +17 -0
- package/dist/queries/index.js.map +1 -0
- package/dist/queries/issues.d.ts +41 -0
- package/dist/queries/issues.d.ts.map +1 -0
- package/dist/queries/issues.js +67 -0
- package/dist/queries/issues.js.map +1 -0
- package/dist/queries/qa.d.ts +79 -0
- package/dist/queries/qa.d.ts.map +1 -0
- package/dist/queries/qa.js +85 -0
- package/dist/queries/qa.js.map +1 -0
- package/dist/queries/roles.d.ts +13 -0
- package/dist/queries/roles.d.ts.map +1 -0
- package/dist/queries/roles.js +39 -0
- package/dist/queries/roles.js.map +1 -0
- package/dist/queries/schemas.d.ts +777 -0
- package/dist/queries/schemas.d.ts.map +1 -0
- package/dist/queries/schemas.js +391 -0
- package/dist/queries/schemas.js.map +1 -0
- package/dist/queries/sessions.d.ts +64 -0
- package/dist/queries/sessions.d.ts.map +1 -0
- package/dist/queries/sessions.js +100 -0
- package/dist/queries/sessions.js.map +1 -0
- package/dist/queries/shared.d.ts +61 -0
- package/dist/queries/shared.d.ts.map +1 -0
- package/dist/queries/shared.js +187 -0
- package/dist/queries/shared.js.map +1 -0
- package/dist/queries/strategies.d.ts +69 -0
- package/dist/queries/strategies.d.ts.map +1 -0
- package/dist/queries/strategies.js +80 -0
- package/dist/queries/strategies.js.map +1 -0
- package/dist/queries/workflows.d.ts +17 -0
- package/dist/queries/workflows.d.ts.map +1 -0
- package/dist/queries/workflows.js +49 -0
- package/dist/queries/workflows.js.map +1 -0
- package/dist/queries/worktrees.d.ts +38 -0
- package/dist/queries/worktrees.d.ts.map +1 -0
- package/dist/queries/worktrees.js +37 -0
- package/dist/queries/worktrees.js.map +1 -0
- package/dist/self-update.d.ts +94 -0
- package/dist/self-update.d.ts.map +1 -0
- package/dist/self-update.js +438 -0
- package/dist/self-update.js.map +1 -0
- package/dist/session-lifecycle.d.ts +77 -0
- package/dist/session-lifecycle.d.ts.map +1 -0
- package/dist/session-lifecycle.js +379 -0
- package/dist/session-lifecycle.js.map +1 -0
- package/dist/shutdown-state.d.ts +17 -0
- package/dist/shutdown-state.d.ts.map +1 -0
- package/dist/shutdown-state.js +22 -0
- package/dist/shutdown-state.js.map +1 -0
- package/dist/spawn-cooldown.d.ts +14 -0
- package/dist/spawn-cooldown.d.ts.map +1 -0
- package/dist/spawn-cooldown.js +34 -0
- package/dist/spawn-cooldown.js.map +1 -0
- package/dist/spawn-environment.d.ts +35 -0
- package/dist/spawn-environment.d.ts.map +1 -0
- package/dist/spawn-environment.js +48 -0
- package/dist/spawn-environment.js.map +1 -0
- package/dist/spawner-liveness.d.ts +23 -0
- package/dist/spawner-liveness.d.ts.map +1 -0
- package/dist/spawner-liveness.js +99 -0
- package/dist/spawner-liveness.js.map +1 -0
- package/dist/spawner-resolution.d.ts +27 -0
- package/dist/spawner-resolution.d.ts.map +1 -0
- package/dist/spawner-resolution.js +99 -0
- package/dist/spawner-resolution.js.map +1 -0
- package/dist/spawner-timeout.d.ts +32 -0
- package/dist/spawner-timeout.d.ts.map +1 -0
- package/dist/spawner-timeout.js +124 -0
- package/dist/spawner-timeout.js.map +1 -0
- package/dist/spawner.d.ts +77 -0
- package/dist/spawner.d.ts.map +1 -0
- package/dist/spawner.js +734 -0
- package/dist/spawner.js.map +1 -0
- package/dist/strategy-completion.d.ts +110 -0
- package/dist/strategy-completion.d.ts.map +1 -0
- package/dist/strategy-completion.js +434 -0
- package/dist/strategy-completion.js.map +1 -0
- package/dist/strategy-engine.d.ts +47 -0
- package/dist/strategy-engine.d.ts.map +1 -0
- package/dist/strategy-engine.js +419 -0
- package/dist/strategy-engine.js.map +1 -0
- package/dist/strategy-executor.d.ts +93 -0
- package/dist/strategy-executor.d.ts.map +1 -0
- package/dist/strategy-executor.js +775 -0
- package/dist/strategy-executor.js.map +1 -0
- package/dist/strategy-lifecycle.d.ts +61 -0
- package/dist/strategy-lifecycle.d.ts.map +1 -0
- package/dist/strategy-lifecycle.js +516 -0
- package/dist/strategy-lifecycle.js.map +1 -0
- package/dist/strategy-merge.d.ts +72 -0
- package/dist/strategy-merge.d.ts.map +1 -0
- package/dist/strategy-merge.js +371 -0
- package/dist/strategy-merge.js.map +1 -0
- package/dist/strategy-prompt-builder.d.ts +62 -0
- package/dist/strategy-prompt-builder.d.ts.map +1 -0
- package/dist/strategy-prompt-builder.js +538 -0
- package/dist/strategy-prompt-builder.js.map +1 -0
- package/dist/strategy-provisioning.d.ts +16 -0
- package/dist/strategy-provisioning.d.ts.map +1 -0
- package/dist/strategy-provisioning.js +119 -0
- package/dist/strategy-provisioning.js.map +1 -0
- package/dist/strategy-team-state.d.ts +24 -0
- package/dist/strategy-team-state.d.ts.map +1 -0
- package/dist/strategy-team-state.js +43 -0
- package/dist/strategy-team-state.js.map +1 -0
- package/dist/strategy-teardown.d.ts +24 -0
- package/dist/strategy-teardown.d.ts.map +1 -0
- package/dist/strategy-teardown.js +158 -0
- package/dist/strategy-teardown.js.map +1 -0
- package/dist/strategy-worktree-state.d.ts +47 -0
- package/dist/strategy-worktree-state.d.ts.map +1 -0
- package/dist/strategy-worktree-state.js +104 -0
- package/dist/strategy-worktree-state.js.map +1 -0
- package/dist/supabase.d.ts +36 -0
- package/dist/supabase.d.ts.map +1 -0
- package/dist/supabase.js +50 -0
- package/dist/supabase.js.map +1 -0
- package/dist/task-converter.d.ts +61 -0
- package/dist/task-converter.d.ts.map +1 -0
- package/dist/task-converter.js +286 -0
- package/dist/task-converter.js.map +1 -0
- package/dist/task-dag-builder.d.ts +14 -0
- package/dist/task-dag-builder.d.ts.map +1 -0
- package/dist/task-dag-builder.js +17 -0
- package/dist/task-dag-builder.js.map +1 -0
- package/dist/team-prompt-base.d.ts +114 -0
- package/dist/team-prompt-base.d.ts.map +1 -0
- package/dist/team-prompt-base.js +531 -0
- package/dist/team-prompt-base.js.map +1 -0
- package/dist/team-prompt-variants.d.ts +27 -0
- package/dist/team-prompt-variants.d.ts.map +1 -0
- package/dist/team-prompt-variants.js +134 -0
- package/dist/team-prompt-variants.js.map +1 -0
- package/dist/team-spawner.d.ts +50 -0
- package/dist/team-spawner.d.ts.map +1 -0
- package/dist/team-spawner.js +410 -0
- package/dist/team-spawner.js.map +1 -0
- package/dist/telemetry-writer.d.ts +66 -0
- package/dist/telemetry-writer.d.ts.map +1 -0
- package/dist/telemetry-writer.js +96 -0
- package/dist/telemetry-writer.js.map +1 -0
- package/dist/trigger-executor.d.ts +56 -0
- package/dist/trigger-executor.d.ts.map +1 -0
- package/dist/trigger-executor.js +313 -0
- package/dist/trigger-executor.js.map +1 -0
- package/dist/types/config.d.ts +60 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +5 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/dag.d.ts +53 -0
- package/dist/types/dag.d.ts.map +1 -0
- package/dist/types/dag.js +5 -0
- package/dist/types/dag.js.map +1 -0
- package/dist/types/delivery.d.ts +71 -0
- package/dist/types/delivery.d.ts.map +1 -0
- package/dist/types/delivery.js +5 -0
- package/dist/types/delivery.js.map +1 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +15 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/issue.d.ts +22 -0
- package/dist/types/issue.d.ts.map +1 -0
- package/dist/types/issue.js +5 -0
- package/dist/types/issue.js.map +1 -0
- package/dist/types/merge.d.ts +28 -0
- package/dist/types/merge.d.ts.map +1 -0
- package/dist/types/merge.js +5 -0
- package/dist/types/merge.js.map +1 -0
- package/dist/types/session.d.ts +98 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/session.js +5 -0
- package/dist/types/session.js.map +1 -0
- package/dist/types/strategy.d.ts +175 -0
- package/dist/types/strategy.d.ts.map +1 -0
- package/dist/types/strategy.js +5 -0
- package/dist/types/strategy.js.map +1 -0
- package/dist/types/workflow.d.ts +34 -0
- package/dist/types/workflow.d.ts.map +1 -0
- package/dist/types/workflow.js +9 -0
- package/dist/types/workflow.js.map +1 -0
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/dist/unified-init.d.ts +16 -0
- package/dist/unified-init.d.ts.map +1 -0
- package/dist/unified-init.js +183 -0
- package/dist/unified-init.js.map +1 -0
- package/dist/unified-shell-config.d.ts +34 -0
- package/dist/unified-shell-config.d.ts.map +1 -0
- package/dist/unified-shell-config.js +238 -0
- package/dist/unified-shell-config.js.map +1 -0
- package/dist/unified-shell-status.d.ts +15 -0
- package/dist/unified-shell-status.d.ts.map +1 -0
- package/dist/unified-shell-status.js +100 -0
- package/dist/unified-shell-status.js.map +1 -0
- package/dist/unified-shell.d.ts +50 -0
- package/dist/unified-shell.d.ts.map +1 -0
- package/dist/unified-shell.js +682 -0
- package/dist/unified-shell.js.map +1 -0
- package/dist/version-check.d.ts +19 -0
- package/dist/version-check.d.ts.map +1 -0
- package/dist/version-check.js +67 -0
- package/dist/version-check.js.map +1 -0
- package/dist/workflow-engine.d.ts +95 -0
- package/dist/workflow-engine.d.ts.map +1 -0
- package/dist/workflow-engine.js +165 -0
- package/dist/workflow-engine.js.map +1 -0
- package/dist/worktree-merge.d.ts +23 -0
- package/dist/worktree-merge.d.ts.map +1 -0
- package/dist/worktree-merge.js +57 -0
- package/dist/worktree-merge.js.map +1 -0
- package/dist/worktree-safety.d.ts +48 -0
- package/dist/worktree-safety.d.ts.map +1 -0
- package/dist/worktree-safety.js +113 -0
- package/dist/worktree-safety.js.map +1 -0
- package/dist/worktree-strategy.d.ts +69 -0
- package/dist/worktree-strategy.d.ts.map +1 -0
- package/dist/worktree-strategy.js +214 -0
- package/dist/worktree-strategy.js.map +1 -0
- package/dist/worktree.d.ts +159 -0
- package/dist/worktree.d.ts.map +1 -0
- package/dist/worktree.js +512 -0
- package/dist/worktree.js.map +1 -0
- package/package.json +76 -0
- package/scripts/telora-daemon-wrapper.sh +31 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,493 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Telora Unified Daemon CLI
|
|
4
|
+
*
|
|
5
|
+
* Lifecycle management for the Telora daemon process.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* telora-daemon start # Start daemon in background
|
|
9
|
+
* telora-daemon start --foreground # Start daemon in foreground
|
|
10
|
+
* telora-daemon stop # Graceful shutdown
|
|
11
|
+
* telora-daemon restart # Stop + start
|
|
12
|
+
* telora-daemon status # Report health and status
|
|
13
|
+
* telora-daemon logs # Show recent daemon logs
|
|
14
|
+
* telora-daemon logs --follow # Tail daemon log output
|
|
15
|
+
* telora-daemon init # Interactive setup wizard
|
|
16
|
+
* telora-daemon check-update # Check for newer version
|
|
17
|
+
* telora-daemon run # Run in foreground (low-level)
|
|
18
|
+
*
|
|
19
|
+
* Environment Variables:
|
|
20
|
+
* TELORA_URL - Telora API URL
|
|
21
|
+
* TELORA_TRACKER_ID - Tracker ID for authentication (required)
|
|
22
|
+
* TELORA_ORGANIZATION_ID - Organization to watch
|
|
23
|
+
* TELORA_REPO_PATH - Path to git repository (default: cwd)
|
|
24
|
+
* CLAUDE_CODE_PATH - Path to claude executable (default: 'claude')
|
|
25
|
+
* MCP_CONFIG_PATH - Path to MCP config file (optional)
|
|
26
|
+
* TELORA_LOG_DIR - Directory for agent logs
|
|
27
|
+
* MAX_TOTAL_SESSIONS - Max concurrent strategy agents (default: 5)
|
|
28
|
+
* SESSION_TIMEOUT_MS - Session timeout in ms (default: 3600000)
|
|
29
|
+
* TELORA_MAX_GLOBAL_SESSIONS - Global concurrency limit across all engines
|
|
30
|
+
*/
|
|
31
|
+
import { createRequire } from 'node:module';
|
|
32
|
+
import { program } from 'commander';
|
|
33
|
+
const require = createRequire(import.meta.url);
|
|
34
|
+
const pkg = require('../package.json');
|
|
35
|
+
// Load git commit SHA stamped at publish time (optional, missing in dev)
|
|
36
|
+
let commitSha = 'unknown';
|
|
37
|
+
try {
|
|
38
|
+
const buildInfo = require('../build-info.json');
|
|
39
|
+
commitSha = buildInfo.commitSha || 'unknown';
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// build-info.json not present in dev -- only stamped at publish time
|
|
43
|
+
}
|
|
44
|
+
const fullVersion = commitSha !== 'unknown' ? `${pkg.version} (${commitSha})` : pkg.version;
|
|
45
|
+
import { runUnifiedDaemon } from './unified-shell.js';
|
|
46
|
+
import { runUnifiedInit } from './unified-init.js';
|
|
47
|
+
import { getDaemonStatus, stopDaemon, startDaemonBackground, resolveDaemonLogPath, rebuildDaemon, autoRebuildIfNeeded, waitForHealthy, cleanStalePidFile, } from './daemon-process.js';
|
|
48
|
+
import { tailFile, followFile } from './daemon-logs.js';
|
|
49
|
+
import { detectInstallMode, getVersionInfo, performUpdate, rollback, } from './self-update.js';
|
|
50
|
+
// Load .env file using Node.js built-in (available in Node 20.12+)
|
|
51
|
+
try {
|
|
52
|
+
process.loadEnvFile?.('.env');
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
console.debug('[daemon] .env file not loaded (optional):', e.message);
|
|
56
|
+
}
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
// Main
|
|
59
|
+
// ---------------------------------------------------------------------------
|
|
60
|
+
async function main() {
|
|
61
|
+
program
|
|
62
|
+
.name('telora-daemon')
|
|
63
|
+
.description('Unified agent orchestration daemon for Telora')
|
|
64
|
+
.version(fullVersion);
|
|
65
|
+
// ── run: foreground execution (the core daemon loop) ───────────────────
|
|
66
|
+
program
|
|
67
|
+
.command('run')
|
|
68
|
+
.description('Run the daemon in the foreground (use "start" for background)')
|
|
69
|
+
.option('-v, --verbose', 'Enable verbose logging')
|
|
70
|
+
.option('-c, --config <path>', 'Path to config file (default: .telora/daemon.json)')
|
|
71
|
+
.option('--dry-run', 'Print configuration and exit')
|
|
72
|
+
.option('--skip-recovery', 'Skip crash recovery on startup')
|
|
73
|
+
.option('--engine <name>', 'Only enable this engine: strategy or factory')
|
|
74
|
+
.option('--no-auto-update', 'Disable automatic self-updating')
|
|
75
|
+
.action(async (opts) => {
|
|
76
|
+
let engineFilter;
|
|
77
|
+
if (opts.engine) {
|
|
78
|
+
if (opts.engine !== 'strategy' && opts.engine !== 'factory') {
|
|
79
|
+
console.error(`Invalid --engine value: "${opts.engine}". Must be "strategy" or "factory".`);
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
engineFilter = opts.engine;
|
|
83
|
+
}
|
|
84
|
+
await runUnifiedDaemon({
|
|
85
|
+
verbose: opts.verbose,
|
|
86
|
+
config: opts.config,
|
|
87
|
+
dryRun: opts.dryRun,
|
|
88
|
+
skipRecovery: opts.skipRecovery,
|
|
89
|
+
engineFilter,
|
|
90
|
+
noAutoUpdate: opts.autoUpdate === false,
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
// ── start: launch daemon (background by default) ──────────────────────
|
|
94
|
+
program
|
|
95
|
+
.command('start')
|
|
96
|
+
.description('Start the daemon (background by default)')
|
|
97
|
+
.option('-v, --verbose', 'Enable verbose logging')
|
|
98
|
+
.option('-c, --config <path>', 'Path to config file (default: .telora/daemon.json)')
|
|
99
|
+
.option('--engine <name>', 'Only enable this engine: strategy or factory')
|
|
100
|
+
.option('--skip-recovery', 'Skip crash recovery on startup')
|
|
101
|
+
.option('--no-auto-update', 'Disable automatic self-updating')
|
|
102
|
+
.option('--foreground', 'Run in foreground instead of background')
|
|
103
|
+
.option('--rebuild', 'Rebuild TypeScript before starting')
|
|
104
|
+
.action(async (opts) => {
|
|
105
|
+
// Validate engine flag
|
|
106
|
+
if (opts.engine && opts.engine !== 'strategy' && opts.engine !== 'factory') {
|
|
107
|
+
console.error(`Invalid --engine value: "${opts.engine}". Must be "strategy" or "factory".`);
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
// Clean up stale PID file if the process isn't running
|
|
111
|
+
cleanStalePidFile();
|
|
112
|
+
// Check if already running
|
|
113
|
+
const status = getDaemonStatus();
|
|
114
|
+
if (status.running) {
|
|
115
|
+
console.error(`Daemon is already running (PID ${status.pid}).`);
|
|
116
|
+
console.error('Use "telora-daemon restart" to restart it.');
|
|
117
|
+
process.exit(1);
|
|
118
|
+
}
|
|
119
|
+
// Auto-rebuild: explicit --rebuild flag or automatic stale detection
|
|
120
|
+
if (opts.rebuild) {
|
|
121
|
+
rebuildDaemon();
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
autoRebuildIfNeeded();
|
|
125
|
+
}
|
|
126
|
+
if (opts.foreground) {
|
|
127
|
+
// Foreground mode: delegate to runUnifiedDaemon directly
|
|
128
|
+
await runUnifiedDaemon({
|
|
129
|
+
verbose: opts.verbose,
|
|
130
|
+
config: opts.config,
|
|
131
|
+
skipRecovery: opts.skipRecovery,
|
|
132
|
+
engineFilter: opts.engine,
|
|
133
|
+
noAutoUpdate: opts.autoUpdate === false,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
// Background mode: spawn detached child
|
|
138
|
+
const childPid = startDaemonBackground({
|
|
139
|
+
config: opts.config,
|
|
140
|
+
verbose: opts.verbose,
|
|
141
|
+
engine: opts.engine,
|
|
142
|
+
skipRecovery: opts.skipRecovery,
|
|
143
|
+
noAutoUpdate: opts.autoUpdate === false,
|
|
144
|
+
});
|
|
145
|
+
const logPath = resolveDaemonLogPath();
|
|
146
|
+
console.log(`Daemon started (PID ${childPid})`);
|
|
147
|
+
console.log(`Log file: ${logPath}`);
|
|
148
|
+
// Wait for the daemon to confirm healthy
|
|
149
|
+
const healthy = await waitForHealthy(5_000);
|
|
150
|
+
if (healthy) {
|
|
151
|
+
console.log('Daemon is healthy.');
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
console.warn('Warning: daemon may not have started successfully.');
|
|
155
|
+
console.warn('Check logs: telora-daemon logs');
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
// ── stop: graceful shutdown ───────────────────────────────────────────
|
|
160
|
+
program
|
|
161
|
+
.command('stop')
|
|
162
|
+
.description('Stop the running daemon gracefully')
|
|
163
|
+
.option('--timeout <ms>', 'Shutdown timeout in milliseconds', '30000')
|
|
164
|
+
.option('--force', 'Send SIGKILL if graceful shutdown fails')
|
|
165
|
+
.action(async (opts) => {
|
|
166
|
+
const status = getDaemonStatus();
|
|
167
|
+
if (!status.running || status.pid === null) {
|
|
168
|
+
console.log('Daemon is not running.');
|
|
169
|
+
process.exit(0);
|
|
170
|
+
}
|
|
171
|
+
const timeoutMs = parseInt(opts.timeout, 10);
|
|
172
|
+
console.log(`Stopping daemon (PID ${status.pid})...`);
|
|
173
|
+
try {
|
|
174
|
+
const stopped = await stopDaemon(timeoutMs);
|
|
175
|
+
if (stopped) {
|
|
176
|
+
console.log('Daemon stopped.');
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
console.log('Daemon is not running.');
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
catch (err) {
|
|
183
|
+
if (opts.force && status.pid !== null) {
|
|
184
|
+
console.warn(`Graceful shutdown timed out. Sending SIGKILL to PID ${status.pid}...`);
|
|
185
|
+
try {
|
|
186
|
+
process.kill(status.pid, 'SIGKILL');
|
|
187
|
+
console.log('Daemon killed.');
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
console.error('Failed to kill daemon process.');
|
|
191
|
+
process.exit(1);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
console.error(err instanceof Error ? err.message : String(err));
|
|
196
|
+
process.exit(1);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
// ── restart: stop + start ─────────────────────────────────────────────
|
|
201
|
+
program
|
|
202
|
+
.command('restart')
|
|
203
|
+
.description('Restart the daemon (stop then start)')
|
|
204
|
+
.option('-v, --verbose', 'Enable verbose logging')
|
|
205
|
+
.option('-c, --config <path>', 'Path to config file (default: .telora/daemon.json)')
|
|
206
|
+
.option('--engine <name>', 'Only enable this engine: strategy or factory')
|
|
207
|
+
.option('--skip-recovery', 'Skip crash recovery on startup')
|
|
208
|
+
.option('--no-auto-update', 'Disable automatic self-updating')
|
|
209
|
+
.option('--foreground', 'Run in foreground instead of background')
|
|
210
|
+
.option('--rebuild', 'Rebuild TypeScript before starting')
|
|
211
|
+
.option('--timeout <ms>', 'Stop timeout in milliseconds', '30000')
|
|
212
|
+
.action(async (opts) => {
|
|
213
|
+
// Validate engine flag
|
|
214
|
+
if (opts.engine && opts.engine !== 'strategy' && opts.engine !== 'factory') {
|
|
215
|
+
console.error(`Invalid --engine value: "${opts.engine}". Must be "strategy" or "factory".`);
|
|
216
|
+
process.exit(1);
|
|
217
|
+
}
|
|
218
|
+
const status = getDaemonStatus();
|
|
219
|
+
const timeoutMs = parseInt(opts.timeout, 10);
|
|
220
|
+
if (status.running && status.pid !== null) {
|
|
221
|
+
console.log(`Stopping daemon (PID ${status.pid})...`);
|
|
222
|
+
try {
|
|
223
|
+
await stopDaemon(timeoutMs);
|
|
224
|
+
console.log('Daemon stopped.');
|
|
225
|
+
}
|
|
226
|
+
catch (err) {
|
|
227
|
+
console.error(err instanceof Error ? err.message : String(err));
|
|
228
|
+
process.exit(1);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
// Auto-rebuild if requested
|
|
232
|
+
if (opts.rebuild) {
|
|
233
|
+
rebuildDaemon();
|
|
234
|
+
}
|
|
235
|
+
if (opts.foreground) {
|
|
236
|
+
await runUnifiedDaemon({
|
|
237
|
+
verbose: opts.verbose,
|
|
238
|
+
config: opts.config,
|
|
239
|
+
skipRecovery: opts.skipRecovery,
|
|
240
|
+
engineFilter: opts.engine,
|
|
241
|
+
noAutoUpdate: opts.autoUpdate === false,
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
const childPid = startDaemonBackground({
|
|
246
|
+
config: opts.config,
|
|
247
|
+
verbose: opts.verbose,
|
|
248
|
+
engine: opts.engine,
|
|
249
|
+
skipRecovery: opts.skipRecovery,
|
|
250
|
+
noAutoUpdate: opts.autoUpdate === false,
|
|
251
|
+
});
|
|
252
|
+
const logPath = resolveDaemonLogPath();
|
|
253
|
+
console.log(`Daemon started (PID ${childPid})`);
|
|
254
|
+
console.log(`Log file: ${logPath}`);
|
|
255
|
+
// Wait for the daemon to confirm healthy
|
|
256
|
+
const healthy = await waitForHealthy(5_000);
|
|
257
|
+
if (healthy) {
|
|
258
|
+
console.log('Daemon is healthy.');
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
console.warn('Warning: daemon may not have started successfully.');
|
|
262
|
+
console.warn('Check logs: telora-daemon logs');
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
// ── status: report daemon health ──────────────────────────────────────
|
|
267
|
+
program
|
|
268
|
+
.command('status')
|
|
269
|
+
.description('Report health and status of the running daemon')
|
|
270
|
+
.action(async () => {
|
|
271
|
+
const status = getDaemonStatus();
|
|
272
|
+
if (!status.running || status.pid === null) {
|
|
273
|
+
// Check for stale PID file
|
|
274
|
+
cleanStalePidFile();
|
|
275
|
+
console.log('Status: stopped');
|
|
276
|
+
process.exit(1);
|
|
277
|
+
}
|
|
278
|
+
// Report basic info directly
|
|
279
|
+
console.log('Status: running');
|
|
280
|
+
console.log(`PID: ${status.pid}`);
|
|
281
|
+
// Compute uptime from daemon metadata (portable) or /proc fallback (Linux)
|
|
282
|
+
if (status.startedAt) {
|
|
283
|
+
const uptimeSec = Math.floor((Date.now() - new Date(status.startedAt).getTime()) / 1000);
|
|
284
|
+
const hours = Math.floor(uptimeSec / 3600);
|
|
285
|
+
const mins = Math.floor((uptimeSec % 3600) / 60);
|
|
286
|
+
console.log(`Uptime: ${hours}h ${mins}m`);
|
|
287
|
+
console.log(`Started: ${status.startedAt}`);
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
// Fallback: read from /proc if available (Linux)
|
|
291
|
+
try {
|
|
292
|
+
const { readFileSync: readFs } = await import('node:fs');
|
|
293
|
+
const procStat = readFs(`/proc/${status.pid}/stat`, 'utf-8');
|
|
294
|
+
const fields = procStat.split(' ');
|
|
295
|
+
const startTicks = parseInt(fields[21] ?? '0', 10);
|
|
296
|
+
const clkTck = 100;
|
|
297
|
+
const bootTime = readFs('/proc/stat', 'utf-8')
|
|
298
|
+
.split('\n')
|
|
299
|
+
.find(l => l.startsWith('btime '));
|
|
300
|
+
if (bootTime) {
|
|
301
|
+
const bootSec = parseInt(bootTime.split(' ')[1] ?? '0', 10);
|
|
302
|
+
const startSec = bootSec + (startTicks / clkTck);
|
|
303
|
+
const uptimeSec = Math.floor(Date.now() / 1000 - startSec);
|
|
304
|
+
const hours = Math.floor(uptimeSec / 3600);
|
|
305
|
+
const mins = Math.floor((uptimeSec % 3600) / 60);
|
|
306
|
+
console.log(`Uptime: ${hours}h ${mins}m`);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
catch {
|
|
310
|
+
// Not on Linux or can't read /proc
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
const logPath = status.logPath ?? resolveDaemonLogPath();
|
|
314
|
+
console.log(`Log file: ${logPath}`);
|
|
315
|
+
console.log(`Version: v${pkg.version}`);
|
|
316
|
+
// Also send SIGUSR1 for detailed engine status
|
|
317
|
+
try {
|
|
318
|
+
process.kill(status.pid, 'SIGUSR1');
|
|
319
|
+
console.log('\nDetailed status written to daemon log.');
|
|
320
|
+
}
|
|
321
|
+
catch {
|
|
322
|
+
// Best effort
|
|
323
|
+
}
|
|
324
|
+
});
|
|
325
|
+
// ── logs: view daemon logs ────────────────────────────────────────────
|
|
326
|
+
program
|
|
327
|
+
.command('logs')
|
|
328
|
+
.description('View daemon log output')
|
|
329
|
+
.option('-f, --follow', 'Follow log output (like tail -f)')
|
|
330
|
+
.option('-n, --lines <count>', 'Number of lines to show', '50')
|
|
331
|
+
.action(async (opts) => {
|
|
332
|
+
const logPath = resolveDaemonLogPath();
|
|
333
|
+
const lineCount = parseInt(opts.lines, 10);
|
|
334
|
+
// Print the last N lines
|
|
335
|
+
await tailFile(logPath, lineCount);
|
|
336
|
+
if (opts.follow) {
|
|
337
|
+
// Start following
|
|
338
|
+
const cleanup = followFile(logPath);
|
|
339
|
+
// Handle Ctrl+C
|
|
340
|
+
process.on('SIGINT', () => {
|
|
341
|
+
cleanup();
|
|
342
|
+
process.exit(0);
|
|
343
|
+
});
|
|
344
|
+
process.on('SIGTERM', () => {
|
|
345
|
+
cleanup();
|
|
346
|
+
process.exit(0);
|
|
347
|
+
});
|
|
348
|
+
// Keep the process alive
|
|
349
|
+
await new Promise(() => { });
|
|
350
|
+
}
|
|
351
|
+
});
|
|
352
|
+
// ── init: interactive setup wizard ────────────────────────────────────
|
|
353
|
+
program
|
|
354
|
+
.command('init')
|
|
355
|
+
.description('Interactive setup wizard to create daemon configuration')
|
|
356
|
+
.action(async () => {
|
|
357
|
+
await runUnifiedInit();
|
|
358
|
+
});
|
|
359
|
+
// ── update: self-update with stop/update/restart ────────────────────
|
|
360
|
+
program
|
|
361
|
+
.command('update')
|
|
362
|
+
.description('Update the daemon to the latest version')
|
|
363
|
+
.option('--check-only', 'Only check for updates, do not install')
|
|
364
|
+
.option('--no-restart', 'Do not restart the daemon after updating')
|
|
365
|
+
.option('--no-migrations', 'Skip applying migrations after update')
|
|
366
|
+
.action(async (opts) => {
|
|
367
|
+
// Show current install mode and version
|
|
368
|
+
const mode = detectInstallMode();
|
|
369
|
+
const info = await getVersionInfo();
|
|
370
|
+
console.log(`Install mode: ${mode}`);
|
|
371
|
+
console.log(`Current version: v${info.current}`);
|
|
372
|
+
if (!info.updateAvailable || !info.latest) {
|
|
373
|
+
if (info.latest === null) {
|
|
374
|
+
console.log('Could not check for updates.');
|
|
375
|
+
}
|
|
376
|
+
else {
|
|
377
|
+
console.log('Already up to date.');
|
|
378
|
+
}
|
|
379
|
+
process.exit(0);
|
|
380
|
+
}
|
|
381
|
+
console.log(`Update available: v${info.latest}`);
|
|
382
|
+
if (opts.checkOnly) {
|
|
383
|
+
process.exit(0);
|
|
384
|
+
}
|
|
385
|
+
// Stop daemon if running
|
|
386
|
+
const status = getDaemonStatus();
|
|
387
|
+
const wasRunning = status.running;
|
|
388
|
+
if (wasRunning && status.pid !== null) {
|
|
389
|
+
console.log(`Stopping daemon (PID ${status.pid})...`);
|
|
390
|
+
try {
|
|
391
|
+
await stopDaemon();
|
|
392
|
+
console.log('Daemon stopped.');
|
|
393
|
+
}
|
|
394
|
+
catch (err) {
|
|
395
|
+
console.error(`Failed to stop daemon: ${err instanceof Error ? err.message : String(err)}`);
|
|
396
|
+
process.exit(1);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
// Perform the update
|
|
400
|
+
const result = await performUpdate({
|
|
401
|
+
skipMigrations: opts.migrations === false,
|
|
402
|
+
});
|
|
403
|
+
if (!result.success) {
|
|
404
|
+
console.error(`Update failed: ${result.error ?? 'unknown error'}`);
|
|
405
|
+
if (result.snapshotPath) {
|
|
406
|
+
console.log('Attempting automatic rollback...');
|
|
407
|
+
const rolled = await rollback(result.snapshotPath);
|
|
408
|
+
if (rolled) {
|
|
409
|
+
console.log('Rollback successful.');
|
|
410
|
+
}
|
|
411
|
+
else {
|
|
412
|
+
console.error('Automatic rollback failed.');
|
|
413
|
+
console.error(`Manual rollback: telora-daemon rollback ${result.snapshotPath}`);
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
process.exit(1);
|
|
417
|
+
}
|
|
418
|
+
console.log(`Updated: v${result.previousVersion} -> v${result.newVersion}`);
|
|
419
|
+
if (result.migrationsApplied) {
|
|
420
|
+
console.log('Migrations applied successfully.');
|
|
421
|
+
}
|
|
422
|
+
// Restart if requested and was running
|
|
423
|
+
if (opts.restart !== false && wasRunning) {
|
|
424
|
+
const childPid = startDaemonBackground({});
|
|
425
|
+
const logPath = resolveDaemonLogPath();
|
|
426
|
+
console.log(`Daemon restarted (PID ${childPid})`);
|
|
427
|
+
console.log(`Log file: ${logPath}`);
|
|
428
|
+
const healthy = await waitForHealthy(5_000);
|
|
429
|
+
if (healthy) {
|
|
430
|
+
console.log('Daemon is healthy.');
|
|
431
|
+
}
|
|
432
|
+
else {
|
|
433
|
+
console.warn('Warning: daemon may not have started successfully.');
|
|
434
|
+
console.warn('Check logs: telora-daemon logs');
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
});
|
|
438
|
+
// ── rollback: restore from snapshot ───────────────────────────────────
|
|
439
|
+
program
|
|
440
|
+
.command('rollback <snapshot>')
|
|
441
|
+
.description('Rollback to a previous version from a snapshot file')
|
|
442
|
+
.action(async (snapshotPath) => {
|
|
443
|
+
console.log(`Rolling back from snapshot: ${snapshotPath}`);
|
|
444
|
+
const success = await rollback(snapshotPath);
|
|
445
|
+
if (success) {
|
|
446
|
+
console.log('Rollback complete.');
|
|
447
|
+
}
|
|
448
|
+
else {
|
|
449
|
+
console.error('Rollback failed.');
|
|
450
|
+
process.exit(1);
|
|
451
|
+
}
|
|
452
|
+
});
|
|
453
|
+
// ── check-update: version check ───────────────────────────────────────
|
|
454
|
+
program
|
|
455
|
+
.command('check-update')
|
|
456
|
+
.description('Check if a newer version of @telora/daemon is available')
|
|
457
|
+
.action(async () => {
|
|
458
|
+
const mode = detectInstallMode();
|
|
459
|
+
const info = await getVersionInfo();
|
|
460
|
+
console.log(`Install mode: ${mode}`);
|
|
461
|
+
console.log(`Current version: v${info.current}`);
|
|
462
|
+
if (info.latest === null) {
|
|
463
|
+
console.log('Could not check for updates.');
|
|
464
|
+
process.exit(0);
|
|
465
|
+
}
|
|
466
|
+
if (info.updateAvailable) {
|
|
467
|
+
console.log(`Update available: v${info.latest}`);
|
|
468
|
+
if (mode === 'npm') {
|
|
469
|
+
console.log('Run: telora-daemon update');
|
|
470
|
+
}
|
|
471
|
+
else {
|
|
472
|
+
console.log('Run: telora-daemon update (will git pull + rebuild)');
|
|
473
|
+
}
|
|
474
|
+
process.exit(1);
|
|
475
|
+
}
|
|
476
|
+
console.log('Already up to date.');
|
|
477
|
+
process.exit(0);
|
|
478
|
+
});
|
|
479
|
+
// ── Default action: if no subcommand given, show help ─────────────────
|
|
480
|
+
// Backward compat: bare `telora-daemon` with no args used to run the daemon.
|
|
481
|
+
// Now it shows help. Use `telora-daemon start` or `telora-daemon run`.
|
|
482
|
+
if (process.argv.length <= 2) {
|
|
483
|
+
program.outputHelp();
|
|
484
|
+
process.exit(0);
|
|
485
|
+
}
|
|
486
|
+
await program.parseAsync();
|
|
487
|
+
}
|
|
488
|
+
// Run
|
|
489
|
+
main().catch((err) => {
|
|
490
|
+
console.error('Fatal error:', err instanceof Error ? err.message : String(err));
|
|
491
|
+
process.exit(1);
|
|
492
|
+
});
|
|
493
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delivery auto-advancement logic.
|
|
3
|
+
*
|
|
4
|
+
* Auto-advances deliveries to verify when all issues are Done,
|
|
5
|
+
* and transitions verify deliveries back to iterating when new
|
|
6
|
+
* open issues are found (e.g., from review agents).
|
|
7
|
+
*/
|
|
8
|
+
import type { DaemonConfig } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Auto-advance deliveries to verify when all issues are Done.
|
|
11
|
+
*
|
|
12
|
+
* For each active team's strategy, checks deliveries in coding/queued status.
|
|
13
|
+
* If ALL issues for such a delivery are Done (0 open), advances it to verify
|
|
14
|
+
* via the workflow transition. This prevents keep-alive churn where the agent
|
|
15
|
+
* is woken with "actionable" deliveries that have no remaining work.
|
|
16
|
+
*
|
|
17
|
+
* Also checks teamless strategies (after daemon restart) where deliveries
|
|
18
|
+
* may be stuck in coding with all issues Done.
|
|
19
|
+
*/
|
|
20
|
+
export declare function checkDeliveryAutoAdvance(config: DaemonConfig): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Check verify deliveries for open issues and transition them back to iterating.
|
|
23
|
+
*
|
|
24
|
+
* When the review agent creates new issues on a verify delivery, this poll
|
|
25
|
+
* step detects the open issues and moves the delivery back to iterating
|
|
26
|
+
* so the normal wake/work flow picks it up.
|
|
27
|
+
*/
|
|
28
|
+
export declare function checkVerifyDeliveriesForOpenIssues(_config: DaemonConfig): Promise<void>;
|
|
29
|
+
//# sourceMappingURL=listener-auto-advance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listener-auto-advance.d.ts","sourceRoot":"","sources":["../src/listener-auto-advance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/C;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiGlF;AAED;;;;;;GAMG;AACH,wBAAsB,kCAAkC,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmE7F"}
|