@openrig/cli 0.1.11 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/daemon/assets/openrig-activity-hook-relay.cjs +104 -0
- package/daemon/dist/adapters/claude-code-adapter.d.ts +14 -6
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +192 -60
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/claude-resume.d.ts +5 -0
- package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-resume.js +15 -2
- package/daemon/dist/adapters/claude-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-resume.d.ts +8 -1
- package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-resume.js +74 -5
- package/daemon/dist/adapters/codex-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +11 -6
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +322 -34
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/terminal-adapter.d.ts +2 -1
- package/daemon/dist/adapters/terminal-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/terminal-adapter.js +7 -1
- package/daemon/dist/adapters/terminal-adapter.js.map +1 -1
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +53 -5
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/db/migrations/021_seat_handover_observability.d.ts +3 -0
- package/daemon/dist/db/migrations/021_seat_handover_observability.d.ts.map +1 -0
- package/daemon/dist/db/migrations/021_seat_handover_observability.js +11 -0
- package/daemon/dist/db/migrations/021_seat_handover_observability.js.map +1 -0
- package/daemon/dist/db/migrations/022_node_codex_config_profile.d.ts +3 -0
- package/daemon/dist/db/migrations/022_node_codex_config_profile.d.ts.map +1 -0
- package/daemon/dist/db/migrations/022_node_codex_config_profile.js +7 -0
- package/daemon/dist/db/migrations/022_node_codex_config_profile.js.map +1 -0
- package/daemon/dist/db/migrations/023_stream_items.d.ts +16 -0
- package/daemon/dist/db/migrations/023_stream_items.d.ts.map +1 -0
- package/daemon/dist/db/migrations/023_stream_items.js +37 -0
- package/daemon/dist/db/migrations/023_stream_items.js.map +1 -0
- package/daemon/dist/db/migrations/024_queue_items.d.ts +19 -0
- package/daemon/dist/db/migrations/024_queue_items.d.ts.map +1 -0
- package/daemon/dist/db/migrations/024_queue_items.js +52 -0
- package/daemon/dist/db/migrations/024_queue_items.js.map +1 -0
- package/daemon/dist/db/migrations/025_queue_transitions.d.ts +13 -0
- package/daemon/dist/db/migrations/025_queue_transitions.d.ts.map +1 -0
- package/daemon/dist/db/migrations/025_queue_transitions.js +28 -0
- package/daemon/dist/db/migrations/025_queue_transitions.js.map +1 -0
- package/daemon/dist/db/migrations/026_inbox_entries.d.ts +14 -0
- package/daemon/dist/db/migrations/026_inbox_entries.d.ts.map +1 -0
- package/daemon/dist/db/migrations/026_inbox_entries.js +35 -0
- package/daemon/dist/db/migrations/026_inbox_entries.js.map +1 -0
- package/daemon/dist/db/migrations/027_outbox_entries.d.ts +12 -0
- package/daemon/dist/db/migrations/027_outbox_entries.d.ts.map +1 -0
- package/daemon/dist/db/migrations/027_outbox_entries.js +30 -0
- package/daemon/dist/db/migrations/027_outbox_entries.js.map +1 -0
- package/daemon/dist/db/migrations/028_project_classifications.d.ts +26 -0
- package/daemon/dist/db/migrations/028_project_classifications.d.ts.map +1 -0
- package/daemon/dist/db/migrations/028_project_classifications.js +44 -0
- package/daemon/dist/db/migrations/028_project_classifications.js.map +1 -0
- package/daemon/dist/db/migrations/029_classifier_leases.d.ts +22 -0
- package/daemon/dist/db/migrations/029_classifier_leases.d.ts.map +1 -0
- package/daemon/dist/db/migrations/029_classifier_leases.js +41 -0
- package/daemon/dist/db/migrations/029_classifier_leases.js.map +1 -0
- package/daemon/dist/db/migrations/030_views_custom.d.ts +15 -0
- package/daemon/dist/db/migrations/030_views_custom.d.ts.map +1 -0
- package/daemon/dist/db/migrations/030_views_custom.js +27 -0
- package/daemon/dist/db/migrations/030_views_custom.js.map +1 -0
- package/daemon/dist/db/migrations/031_watchdog_jobs.d.ts +34 -0
- package/daemon/dist/db/migrations/031_watchdog_jobs.d.ts.map +1 -0
- package/daemon/dist/db/migrations/031_watchdog_jobs.js +59 -0
- package/daemon/dist/db/migrations/031_watchdog_jobs.js.map +1 -0
- package/daemon/dist/db/migrations/032_watchdog_history.d.ts +28 -0
- package/daemon/dist/db/migrations/032_watchdog_history.d.ts.map +1 -0
- package/daemon/dist/db/migrations/032_watchdog_history.js +46 -0
- package/daemon/dist/db/migrations/032_watchdog_history.js.map +1 -0
- package/daemon/dist/db/migrations/033_workflow_specs.d.ts +30 -0
- package/daemon/dist/db/migrations/033_workflow_specs.d.ts.map +1 -0
- package/daemon/dist/db/migrations/033_workflow_specs.js +50 -0
- package/daemon/dist/db/migrations/033_workflow_specs.js.map +1 -0
- package/daemon/dist/db/migrations/034_workflow_instances.d.ts +42 -0
- package/daemon/dist/db/migrations/034_workflow_instances.d.ts.map +1 -0
- package/daemon/dist/db/migrations/034_workflow_instances.js +63 -0
- package/daemon/dist/db/migrations/034_workflow_instances.js.map +1 -0
- package/daemon/dist/db/migrations/035_workflow_step_trails.d.ts +29 -0
- package/daemon/dist/db/migrations/035_workflow_step_trails.d.ts.map +1 -0
- package/daemon/dist/db/migrations/035_workflow_step_trails.js +48 -0
- package/daemon/dist/db/migrations/035_workflow_step_trails.js.map +1 -0
- package/daemon/dist/db/migrations/036_watchdog_policy_enum_extension.d.ts +35 -0
- package/daemon/dist/db/migrations/036_watchdog_policy_enum_extension.d.ts.map +1 -0
- package/daemon/dist/db/migrations/036_watchdog_policy_enum_extension.js +43 -0
- package/daemon/dist/db/migrations/036_watchdog_policy_enum_extension.js.map +1 -0
- package/daemon/dist/domain/agent-activity-store.d.ts +42 -0
- package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -0
- package/daemon/dist/domain/agent-activity-store.js +177 -0
- package/daemon/dist/domain/agent-activity-store.js.map +1 -0
- package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
- package/daemon/dist/domain/agent-manifest.js +3 -0
- package/daemon/dist/domain/agent-manifest.js.map +1 -1
- package/daemon/dist/domain/agent-starter-resolver.d.ts +100 -0
- package/daemon/dist/domain/agent-starter-resolver.d.ts.map +1 -0
- package/daemon/dist/domain/agent-starter-resolver.js +200 -0
- package/daemon/dist/domain/agent-starter-resolver.js.map +1 -0
- package/daemon/dist/domain/classifier-lease-manager.d.ts +130 -0
- package/daemon/dist/domain/classifier-lease-manager.d.ts.map +1 -0
- package/daemon/dist/domain/classifier-lease-manager.js +285 -0
- package/daemon/dist/domain/classifier-lease-manager.js.map +1 -0
- package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
- package/daemon/dist/domain/codex-thread-id.js +44 -15
- package/daemon/dist/domain/codex-thread-id.js.map +1 -1
- package/daemon/dist/domain/context-monitor.d.ts +12 -7
- package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/context-monitor.js +51 -3
- package/daemon/dist/domain/context-monitor.js.map +1 -1
- package/daemon/dist/domain/context-usage-store.d.ts +1 -1
- package/daemon/dist/domain/context-usage-store.js +1 -1
- package/daemon/dist/domain/context-usage-store.js.map +1 -1
- package/daemon/dist/domain/hot-potato-enforcer.d.ts +45 -0
- package/daemon/dist/domain/hot-potato-enforcer.d.ts.map +1 -0
- package/daemon/dist/domain/hot-potato-enforcer.js +94 -0
- package/daemon/dist/domain/hot-potato-enforcer.js.map +1 -0
- package/daemon/dist/domain/inbox-handler.d.ts +68 -0
- package/daemon/dist/domain/inbox-handler.d.ts.map +1 -0
- package/daemon/dist/domain/inbox-handler.js +177 -0
- package/daemon/dist/domain/inbox-handler.js.map +1 -0
- package/daemon/dist/domain/native-resume-probe.d.ts +1 -1
- package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
- package/daemon/dist/domain/native-resume-probe.js +89 -4
- package/daemon/dist/domain/native-resume-probe.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts +29 -1
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +208 -31
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/node-launcher.d.ts +2 -0
- package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/node-launcher.js +14 -2
- package/daemon/dist/domain/node-launcher.js.map +1 -1
- package/daemon/dist/domain/outbox-handler.d.ts +48 -0
- package/daemon/dist/domain/outbox-handler.d.ts.map +1 -0
- package/daemon/dist/domain/outbox-handler.js +106 -0
- package/daemon/dist/domain/outbox-handler.js.map +1 -0
- package/daemon/dist/domain/policies/artifact-pool-helpers.d.ts +64 -0
- package/daemon/dist/domain/policies/artifact-pool-helpers.d.ts.map +1 -0
- package/daemon/dist/domain/policies/artifact-pool-helpers.js +226 -0
- package/daemon/dist/domain/policies/artifact-pool-helpers.js.map +1 -0
- package/daemon/dist/domain/policies/artifact-pool-ready.d.ts +3 -0
- package/daemon/dist/domain/policies/artifact-pool-ready.d.ts.map +1 -0
- package/daemon/dist/domain/policies/artifact-pool-ready.js +41 -0
- package/daemon/dist/domain/policies/artifact-pool-ready.js.map +1 -0
- package/daemon/dist/domain/policies/edge-artifact-required.d.ts +3 -0
- package/daemon/dist/domain/policies/edge-artifact-required.d.ts.map +1 -0
- package/daemon/dist/domain/policies/edge-artifact-required.js +90 -0
- package/daemon/dist/domain/policies/edge-artifact-required.js.map +1 -0
- package/daemon/dist/domain/policies/periodic-reminder.d.ts +3 -0
- package/daemon/dist/domain/policies/periodic-reminder.d.ts.map +1 -0
- package/daemon/dist/domain/policies/periodic-reminder.js +30 -0
- package/daemon/dist/domain/policies/periodic-reminder.js.map +1 -0
- package/daemon/dist/domain/policies/types.d.ts +51 -0
- package/daemon/dist/domain/policies/types.d.ts.map +1 -0
- package/daemon/dist/domain/policies/types.js +9 -0
- package/daemon/dist/domain/policies/types.js.map +1 -0
- package/daemon/dist/domain/policies/workflow-keepalive.d.ts +7 -0
- package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -0
- package/daemon/dist/domain/policies/workflow-keepalive.js +123 -0
- package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -0
- package/daemon/dist/domain/project-classifier.d.ts +75 -0
- package/daemon/dist/domain/project-classifier.d.ts.map +1 -0
- package/daemon/dist/domain/project-classifier.js +132 -0
- package/daemon/dist/domain/project-classifier.js.map +1 -0
- package/daemon/dist/domain/projection-planner.d.ts +1 -0
- package/daemon/dist/domain/projection-planner.d.ts.map +1 -1
- package/daemon/dist/domain/projection-planner.js +3 -0
- package/daemon/dist/domain/projection-planner.js.map +1 -1
- package/daemon/dist/domain/ps-projection.d.ts +31 -0
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +38 -0
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +322 -0
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -0
- package/daemon/dist/domain/queue-repository.js +686 -0
- package/daemon/dist/domain/queue-repository.js.map +1 -0
- package/daemon/dist/domain/queue-transition-log.d.ts +38 -0
- package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -0
- package/daemon/dist/domain/queue-transition-log.js +52 -0
- package/daemon/dist/domain/queue-transition-log.js.map +1 -0
- package/daemon/dist/domain/restore-check-service.d.ts +203 -0
- package/daemon/dist/domain/restore-check-service.d.ts.map +1 -0
- package/daemon/dist/domain/restore-check-service.js +1047 -0
- package/daemon/dist/domain/restore-check-service.js.map +1 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts +50 -2
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +476 -24
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
- package/daemon/dist/domain/resume-metadata-refresher.js +27 -7
- package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
- package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
- package/daemon/dist/domain/rig-expansion-service.js +13 -0
- package/daemon/dist/domain/rig-expansion-service.js.map +1 -1
- package/daemon/dist/domain/rig-repository.d.ts +17 -1
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +63 -5
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-codec.js +13 -0
- package/daemon/dist/domain/rigspec-codec.js.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.js +2 -0
- package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +63 -1
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +196 -0
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/runtime-adapter.d.ts +30 -1
- package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-adapter.js +14 -0
- package/daemon/dist/domain/runtime-adapter.js.map +1 -1
- package/daemon/dist/domain/seat-handover-planner.d.ts +84 -0
- package/daemon/dist/domain/seat-handover-planner.d.ts.map +1 -0
- package/daemon/dist/domain/seat-handover-planner.js +188 -0
- package/daemon/dist/domain/seat-handover-planner.js.map +1 -0
- package/daemon/dist/domain/seat-handover-service.d.ts +104 -0
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -0
- package/daemon/dist/domain/seat-handover-service.js +343 -0
- package/daemon/dist/domain/seat-handover-service.js.map +1 -0
- package/daemon/dist/domain/seat-status-service.d.ts +50 -0
- package/daemon/dist/domain/seat-status-service.d.ts.map +1 -0
- package/daemon/dist/domain/seat-status-service.js +66 -0
- package/daemon/dist/domain/seat-status-service.js.map +1 -0
- package/daemon/dist/domain/session-source-rebuild-resolver.d.ts +53 -0
- package/daemon/dist/domain/session-source-rebuild-resolver.d.ts.map +1 -0
- package/daemon/dist/domain/session-source-rebuild-resolver.js +59 -0
- package/daemon/dist/domain/session-source-rebuild-resolver.js.map +1 -0
- package/daemon/dist/domain/session-transport.d.ts +30 -0
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +322 -12
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/snapshot-repository.d.ts +18 -0
- package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
- package/daemon/dist/domain/snapshot-repository.js +77 -0
- package/daemon/dist/domain/snapshot-repository.js.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.d.ts +27 -3
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.js +125 -40
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/daemon/dist/domain/stream-store.d.ts +56 -0
- package/daemon/dist/domain/stream-store.d.ts.map +1 -0
- package/daemon/dist/domain/stream-store.js +108 -0
- package/daemon/dist/domain/stream-store.js.map +1 -0
- package/daemon/dist/domain/transcript-redaction.d.ts +13 -0
- package/daemon/dist/domain/transcript-redaction.d.ts.map +1 -0
- package/daemon/dist/domain/transcript-redaction.js +34 -0
- package/daemon/dist/domain/transcript-redaction.js.map +1 -0
- package/daemon/dist/domain/transcript-store.d.ts +15 -0
- package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-store.js +76 -1
- package/daemon/dist/domain/transcript-store.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +323 -3
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/view-event-bridge.d.ts +12 -0
- package/daemon/dist/domain/view-event-bridge.d.ts.map +1 -0
- package/daemon/dist/domain/view-event-bridge.js +92 -0
- package/daemon/dist/domain/view-event-bridge.js.map +1 -0
- package/daemon/dist/domain/view-projector.d.ts +83 -0
- package/daemon/dist/domain/view-projector.d.ts.map +1 -0
- package/daemon/dist/domain/view-projector.js +296 -0
- package/daemon/dist/domain/view-projector.js.map +1 -0
- package/daemon/dist/domain/watchdog-history-log.d.ts +49 -0
- package/daemon/dist/domain/watchdog-history-log.d.ts.map +1 -0
- package/daemon/dist/domain/watchdog-history-log.js +67 -0
- package/daemon/dist/domain/watchdog-history-log.js.map +1 -0
- package/daemon/dist/domain/watchdog-jobs-repository.d.ts +81 -0
- package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -0
- package/daemon/dist/domain/watchdog-jobs-repository.js +164 -0
- package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -0
- package/daemon/dist/domain/watchdog-policy-engine.d.ts +92 -0
- package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -0
- package/daemon/dist/domain/watchdog-policy-engine.js +442 -0
- package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -0
- package/daemon/dist/domain/watchdog-scheduler.d.ts +76 -0
- package/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -0
- package/daemon/dist/domain/watchdog-scheduler.js +112 -0
- package/daemon/dist/domain/watchdog-scheduler.js.map +1 -0
- package/daemon/dist/domain/workflow-instance-store.d.ts +46 -0
- package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-instance-store.js +116 -0
- package/daemon/dist/domain/workflow-instance-store.js.map +1 -0
- package/daemon/dist/domain/workflow-projector.d.ts +64 -0
- package/daemon/dist/domain/workflow-projector.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-projector.js +424 -0
- package/daemon/dist/domain/workflow-projector.js.map +1 -0
- package/daemon/dist/domain/workflow-runtime.d.ts +63 -0
- package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-runtime.js +150 -0
- package/daemon/dist/domain/workflow-runtime.js.map +1 -0
- package/daemon/dist/domain/workflow-spec-cache.d.ts +35 -0
- package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-spec-cache.js +171 -0
- package/daemon/dist/domain/workflow-spec-cache.js.map +1 -0
- package/daemon/dist/domain/workflow-step-trail-log.d.ts +27 -0
- package/daemon/dist/domain/workflow-step-trail-log.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-step-trail-log.js +73 -0
- package/daemon/dist/domain/workflow-step-trail-log.js.map +1 -0
- package/daemon/dist/domain/workflow-types.d.ts +108 -0
- package/daemon/dist/domain/workflow-types.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-types.js +11 -0
- package/daemon/dist/domain/workflow-types.js.map +1 -0
- package/daemon/dist/domain/workflow-validator.d.ts +31 -0
- package/daemon/dist/domain/workflow-validator.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-validator.js +115 -0
- package/daemon/dist/domain/workflow-validator.js.map +1 -0
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +21 -2
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/routes/activity.d.ts +3 -0
- package/daemon/dist/routes/activity.d.ts.map +1 -0
- package/daemon/dist/routes/activity.js +47 -0
- package/daemon/dist/routes/activity.js.map +1 -0
- package/daemon/dist/routes/projects.d.ts +12 -0
- package/daemon/dist/routes/projects.d.ts.map +1 -0
- package/daemon/dist/routes/projects.js +178 -0
- package/daemon/dist/routes/projects.js.map +1 -0
- package/daemon/dist/routes/queue.d.ts +10 -0
- package/daemon/dist/routes/queue.d.ts.map +1 -0
- package/daemon/dist/routes/queue.js +374 -0
- package/daemon/dist/routes/queue.js.map +1 -0
- package/daemon/dist/routes/restore-check.d.ts +3 -0
- package/daemon/dist/routes/restore-check.d.ts.map +1 -0
- package/daemon/dist/routes/restore-check.js +200 -0
- package/daemon/dist/routes/restore-check.js.map +1 -0
- package/daemon/dist/routes/rigs.d.ts.map +1 -1
- package/daemon/dist/routes/rigs.js +60 -4
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/seat.d.ts +3 -0
- package/daemon/dist/routes/seat.d.ts.map +1 -0
- package/daemon/dist/routes/seat.js +69 -0
- package/daemon/dist/routes/seat.js.map +1 -0
- package/daemon/dist/routes/sessions.d.ts.map +1 -1
- package/daemon/dist/routes/sessions.js +41 -5
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/snapshots.js +66 -17
- package/daemon/dist/routes/snapshots.js.map +1 -1
- package/daemon/dist/routes/stream.d.ts +9 -0
- package/daemon/dist/routes/stream.d.ts.map +1 -0
- package/daemon/dist/routes/stream.js +119 -0
- package/daemon/dist/routes/stream.js.map +1 -0
- package/daemon/dist/routes/transcripts.d.ts.map +1 -1
- package/daemon/dist/routes/transcripts.js +38 -0
- package/daemon/dist/routes/transcripts.js.map +1 -1
- package/daemon/dist/routes/transport.d.ts.map +1 -1
- package/daemon/dist/routes/transport.js +21 -0
- package/daemon/dist/routes/transport.js.map +1 -1
- package/daemon/dist/routes/up.js +24 -3
- package/daemon/dist/routes/up.js.map +1 -1
- package/daemon/dist/routes/views.d.ts +13 -0
- package/daemon/dist/routes/views.d.ts.map +1 -0
- package/daemon/dist/routes/views.js +120 -0
- package/daemon/dist/routes/views.js.map +1 -0
- package/daemon/dist/routes/watchdog.d.ts +18 -0
- package/daemon/dist/routes/watchdog.d.ts.map +1 -0
- package/daemon/dist/routes/watchdog.js +148 -0
- package/daemon/dist/routes/watchdog.js.map +1 -0
- package/daemon/dist/routes/workflow.d.ts +20 -0
- package/daemon/dist/routes/workflow.d.ts.map +1 -0
- package/daemon/dist/routes/workflow.js +184 -0
- package/daemon/dist/routes/workflow.js.map +1 -0
- package/daemon/dist/server.d.ts +30 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +33 -0
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +202 -8
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/agent-spec.md +12 -5
- package/daemon/docs/reference/agent-startup-guide.md +9 -9
- package/daemon/specs/agents/apps/vault-specialist/agent.yaml +1 -1
- package/daemon/specs/agents/design/product-designer/agent.yaml +1 -1
- package/daemon/specs/agents/development/implementer/agent.yaml +1 -1
- package/daemon/specs/agents/development/qa/agent.yaml +1 -1
- package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +1 -1
- package/daemon/specs/agents/product-management/pm/agent.yaml +4 -0
- package/daemon/specs/agents/research/analyst/agent.yaml +1 -1
- package/daemon/specs/agents/research/synthesizer/agent.yaml +1 -1
- package/daemon/specs/agents/review/independent-reviewer/agent.yaml +1 -1
- package/daemon/specs/agents/shared/agent.yaml +17 -0
- package/daemon/specs/agents/shared/runtime/claude-mcp.fragment.json +12 -0
- package/daemon/specs/agents/shared/runtime/claude-settings.fragment.json +16 -0
- package/daemon/specs/agents/shared/runtime/codex-config.fragment.toml +5 -0
- package/daemon/specs/agents/shared/skills/claude-compact-in-place/SKILL.md +100 -0
- package/daemon/specs/agents/shared/skills/core/openrig-operator/SKILL.md +110 -0
- package/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md +44 -1
- package/daemon/specs/agents/shared/skills/mental-model-ha/SKILL.md +3 -0
- package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +3 -0
- package/dist/commands/capture.d.ts +7 -1
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +59 -1
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/compact-plan.d.ts +9 -0
- package/dist/commands/compact-plan.d.ts.map +1 -0
- package/dist/commands/compact-plan.js +354 -0
- package/dist/commands/compact-plan.js.map +1 -0
- package/dist/commands/context.d.ts +9 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +220 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +19 -8
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/expand.d.ts.map +1 -1
- package/dist/commands/expand.js +15 -4
- package/dist/commands/expand.js.map +1 -1
- package/dist/commands/heartbeat.d.ts +99 -0
- package/dist/commands/heartbeat.d.ts.map +1 -0
- package/dist/commands/heartbeat.js +393 -0
- package/dist/commands/heartbeat.js.map +1 -0
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +2 -1
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/preflight.js +1 -1
- package/dist/commands/preflight.js.map +1 -1
- package/dist/commands/project.d.ts +14 -0
- package/dist/commands/project.d.ts.map +1 -0
- package/dist/commands/project.js +157 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/commands/ps.d.ts +20 -3
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +455 -33
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts +16 -0
- package/dist/commands/queue.d.ts.map +1 -0
- package/dist/commands/queue.js +401 -0
- package/dist/commands/queue.js.map +1 -0
- package/dist/commands/restore-check.d.ts +9 -0
- package/dist/commands/restore-check.d.ts.map +1 -0
- package/dist/commands/restore-check.js +234 -0
- package/dist/commands/restore-check.js.map +1 -0
- package/dist/commands/restore-packet.d.ts +9 -0
- package/dist/commands/restore-packet.d.ts.map +1 -0
- package/dist/commands/restore-packet.js +383 -0
- package/dist/commands/restore-packet.js.map +1 -0
- package/dist/commands/restore.d.ts.map +1 -1
- package/dist/commands/restore.js +69 -1
- package/dist/commands/restore.js.map +1 -1
- package/dist/commands/seat.d.ts +5 -0
- package/dist/commands/seat.d.ts.map +1 -0
- package/dist/commands/seat.js +170 -0
- package/dist/commands/seat.js.map +1 -0
- package/dist/commands/send.d.ts +12 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +93 -5
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +20 -8
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/specs.d.ts.map +1 -1
- package/dist/commands/specs.js +99 -16
- package/dist/commands/specs.js.map +1 -1
- package/dist/commands/stream.d.ts +12 -0
- package/dist/commands/stream.d.ts.map +1 -0
- package/dist/commands/stream.js +111 -0
- package/dist/commands/stream.js.map +1 -0
- package/dist/commands/up.d.ts +1 -0
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +65 -4
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/view.d.ts +12 -0
- package/dist/commands/view.d.ts.map +1 -0
- package/dist/commands/view.js +82 -0
- package/dist/commands/view.js.map +1 -0
- package/dist/commands/watchdog.d.ts +15 -0
- package/dist/commands/watchdog.d.ts.map +1 -0
- package/dist/commands/watchdog.js +120 -0
- package/dist/commands/watchdog.js.map +1 -0
- package/dist/commands/whoami.d.ts +8 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +60 -1
- package/dist/commands/whoami.js.map +1 -1
- package/dist/commands/workflow.d.ts +17 -0
- package/dist/commands/workflow.d.ts.map +1 -0
- package/dist/commands/workflow.js +138 -0
- package/dist/commands/workflow.js.map +1 -0
- package/dist/cross-host-cli-helpers.d.ts +12 -0
- package/dist/cross-host-cli-helpers.d.ts.map +1 -0
- package/dist/cross-host-cli-helpers.js +48 -0
- package/dist/cross-host-cli-helpers.js.map +1 -0
- package/dist/cross-host-executor.d.ts +84 -0
- package/dist/cross-host-executor.d.ts.map +1 -0
- package/dist/cross-host-executor.js +138 -0
- package/dist/cross-host-executor.js.map +1 -0
- package/dist/host-registry.d.ts +50 -0
- package/dist/host-registry.d.ts.map +1 -0
- package/dist/host-registry.js +116 -0
- package/dist/host-registry.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +22 -2
- package/dist/mcp-server.js.map +1 -1
- package/dist/restore-packet/claude-transcript-parser.d.ts +12 -0
- package/dist/restore-packet/claude-transcript-parser.d.ts.map +1 -0
- package/dist/restore-packet/claude-transcript-parser.js +221 -0
- package/dist/restore-packet/claude-transcript-parser.js.map +1 -0
- package/dist/restore-packet/codex-jsonl-parser.d.ts +11 -0
- package/dist/restore-packet/codex-jsonl-parser.d.ts.map +1 -0
- package/dist/restore-packet/codex-jsonl-parser.js +159 -0
- package/dist/restore-packet/codex-jsonl-parser.js.map +1 -0
- package/dist/restore-packet/omitted-records.d.ts +60 -0
- package/dist/restore-packet/omitted-records.d.ts.map +1 -0
- package/dist/restore-packet/omitted-records.js +116 -0
- package/dist/restore-packet/omitted-records.js.map +1 -0
- package/dist/restore-packet/packet-writer.d.ts +59 -0
- package/dist/restore-packet/packet-writer.d.ts.map +1 -0
- package/dist/restore-packet/packet-writer.js +224 -0
- package/dist/restore-packet/packet-writer.js.map +1 -0
- package/dist/restore-packet/redaction.d.ts +30 -0
- package/dist/restore-packet/redaction.d.ts.map +1 -0
- package/dist/restore-packet/redaction.js +71 -0
- package/dist/restore-packet/redaction.js.map +1 -0
- package/dist/restore-packet/runtime-detect.d.ts +19 -0
- package/dist/restore-packet/runtime-detect.d.ts.map +1 -0
- package/dist/restore-packet/runtime-detect.js +81 -0
- package/dist/restore-packet/runtime-detect.js.map +1 -0
- package/dist/restore-packet/schema-validator.d.ts +13 -0
- package/dist/restore-packet/schema-validator.d.ts.map +1 -0
- package/dist/restore-packet/schema-validator.js +245 -0
- package/dist/restore-packet/schema-validator.js.map +1 -0
- package/dist/restore-packet/types.d.ts +76 -0
- package/dist/restore-packet/types.d.ts.map +1 -0
- package/dist/restore-packet/types.js +15 -0
- package/dist/restore-packet/types.js.map +1 -0
- package/dist/schemas/restore-summary.schema.json +98 -0
- package/dist/system-preflight.d.ts.map +1 -1
- package/dist/system-preflight.js +16 -5
- package/dist/system-preflight.js.map +1 -1
- package/dist/tmux-health.d.ts +16 -0
- package/dist/tmux-health.d.ts.map +1 -0
- package/dist/tmux-health.js +105 -0
- package/dist/tmux-health.js.map +1 -0
- package/package.json +10 -3
- package/scripts/check-abi.mjs +123 -0
- package/ui/dist/assets/{index-DlMH-REm.css → index-Dec25siz.css} +1 -1
- package/ui/dist/assets/{index-lEO-zBxz.js → index-GNYaWmBj.js} +9 -9
- package/ui/dist/index.html +2 -2
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type Database from "better-sqlite3";
|
|
2
|
+
import type { EventBus } from "./event-bus.js";
|
|
3
|
+
/**
|
|
4
|
+
* View projector (PL-004 Phase B; L5 View — read-only projections).
|
|
5
|
+
*
|
|
6
|
+
* Per PRD § L5 + slice IMPL § Guard Checkpoint Focus item 5+6:
|
|
7
|
+
* - 6 built-in views over Phase A's queue_items + queue_transitions tables.
|
|
8
|
+
* - Custom view registration via views_custom table.
|
|
9
|
+
* - Read-only over Phase A state + Phase B state. NO writes to queue_items
|
|
10
|
+
* or queue_transitions from this module.
|
|
11
|
+
* - Sub-100 ms latency target (per PRD § Acceptance Criteria); achieved by
|
|
12
|
+
* leaning on Phase A's existing indexes.
|
|
13
|
+
* - Fixture rig exclusion default: rig names matching `^test-` or `^fixture-`
|
|
14
|
+
* are excluded; opt-in via OPENRIG_VIEW_INCLUDE_FIXTURES=1.
|
|
15
|
+
*
|
|
16
|
+
* Custom views in views_custom store a SQL string (`definition`) that the
|
|
17
|
+
* projector executes verbatim. Operator-defined; no taxonomy enforced.
|
|
18
|
+
*
|
|
19
|
+
* Pattern mirrors Phase A's queue-repository.ts read-API shape.
|
|
20
|
+
*/
|
|
21
|
+
export declare const BUILT_IN_VIEW_NAMES: readonly ["recently-active", "founder", "pod-load", "escalations", "held", "activity"];
|
|
22
|
+
export type BuiltInViewName = (typeof BUILT_IN_VIEW_NAMES)[number];
|
|
23
|
+
export interface ViewQueryResult {
|
|
24
|
+
viewName: string;
|
|
25
|
+
generatedAt: string;
|
|
26
|
+
rows: Record<string, unknown>[];
|
|
27
|
+
rowCount: number;
|
|
28
|
+
}
|
|
29
|
+
export interface CustomView {
|
|
30
|
+
viewId: string;
|
|
31
|
+
viewName: string;
|
|
32
|
+
definition: string;
|
|
33
|
+
registeredBySession: string;
|
|
34
|
+
registeredAt: string;
|
|
35
|
+
lastEvaluatedAt: string | null;
|
|
36
|
+
}
|
|
37
|
+
export declare class ViewProjectorError extends Error {
|
|
38
|
+
readonly code: string;
|
|
39
|
+
constructor(code: string, message: string);
|
|
40
|
+
}
|
|
41
|
+
export declare class ViewProjector {
|
|
42
|
+
readonly db: Database.Database;
|
|
43
|
+
private readonly eventBus;
|
|
44
|
+
private readonly now;
|
|
45
|
+
constructor(db: Database.Database, eventBus: EventBus, opts?: {
|
|
46
|
+
now?: () => Date;
|
|
47
|
+
});
|
|
48
|
+
/**
|
|
49
|
+
* Run a view by name. Built-in names (BUILT_IN_VIEW_NAMES) dispatch to
|
|
50
|
+
* hardcoded SQL; other names dispatch to custom-view lookup.
|
|
51
|
+
*/
|
|
52
|
+
show(viewName: string, opts?: {
|
|
53
|
+
rig?: string;
|
|
54
|
+
limit?: number;
|
|
55
|
+
}): ViewQueryResult;
|
|
56
|
+
list(): {
|
|
57
|
+
builtIn: BuiltInViewName[];
|
|
58
|
+
custom: CustomView[];
|
|
59
|
+
};
|
|
60
|
+
private runBuiltIn;
|
|
61
|
+
private runCustom;
|
|
62
|
+
/**
|
|
63
|
+
* Register a custom view. UNIQUE on view_name; re-registration of the
|
|
64
|
+
* same name updates the definition (operator-friendly: edit views.yaml,
|
|
65
|
+
* re-register, get the new query).
|
|
66
|
+
*/
|
|
67
|
+
registerCustomView(input: {
|
|
68
|
+
viewName: string;
|
|
69
|
+
definition: string;
|
|
70
|
+
registeredBySession: string;
|
|
71
|
+
}): CustomView;
|
|
72
|
+
getCustomView(viewName: string): CustomView | null;
|
|
73
|
+
listCustomViews(): CustomView[];
|
|
74
|
+
/**
|
|
75
|
+
* Used by routes/views.ts to emit view.changed when underlying state
|
|
76
|
+
* changes. Phase B does not auto-evaluate; callers (route SSE handlers)
|
|
77
|
+
* subscribe to event-bus events and trigger this notify.
|
|
78
|
+
*/
|
|
79
|
+
notifyViewChanged(viewName: string, cause: string): void;
|
|
80
|
+
private getCustomViewByIdOrThrow;
|
|
81
|
+
private rowToCustomView;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=view-projector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-projector.d.ts","sourceRoot":"","sources":["../../src/domain/view-projector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;;;;;;;;;;;;;;GAiBG;AAEH,eAAO,MAAM,mBAAmB,wFAOtB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAWD,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI1C;AAmBD,qBAAa,aAAa;IACxB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;gBAG/B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE;IAO7B;;;OAGG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,eAAe;IAYhF,IAAI,IAAI;QAAE,OAAO,EAAE,eAAe,EAAE,CAAC;QAAC,MAAM,EAAE,UAAU,EAAE,CAAA;KAAE;IAI5D,OAAO,CAAC,UAAU;IAyHlB,OAAO,CAAC,SAAS;IA4BjB;;;;OAIG;IACH,kBAAkB,CAAC,KAAK,EAAE;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,GAAG,UAAU;IAgCd,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAOlD,eAAe,IAAI,UAAU,EAAE;IAO/B;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IASxD,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,eAAe;CAUxB"}
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
import { ulid } from "ulid";
|
|
2
|
+
/**
|
|
3
|
+
* View projector (PL-004 Phase B; L5 View — read-only projections).
|
|
4
|
+
*
|
|
5
|
+
* Per PRD § L5 + slice IMPL § Guard Checkpoint Focus item 5+6:
|
|
6
|
+
* - 6 built-in views over Phase A's queue_items + queue_transitions tables.
|
|
7
|
+
* - Custom view registration via views_custom table.
|
|
8
|
+
* - Read-only over Phase A state + Phase B state. NO writes to queue_items
|
|
9
|
+
* or queue_transitions from this module.
|
|
10
|
+
* - Sub-100 ms latency target (per PRD § Acceptance Criteria); achieved by
|
|
11
|
+
* leaning on Phase A's existing indexes.
|
|
12
|
+
* - Fixture rig exclusion default: rig names matching `^test-` or `^fixture-`
|
|
13
|
+
* are excluded; opt-in via OPENRIG_VIEW_INCLUDE_FIXTURES=1.
|
|
14
|
+
*
|
|
15
|
+
* Custom views in views_custom store a SQL string (`definition`) that the
|
|
16
|
+
* projector executes verbatim. Operator-defined; no taxonomy enforced.
|
|
17
|
+
*
|
|
18
|
+
* Pattern mirrors Phase A's queue-repository.ts read-API shape.
|
|
19
|
+
*/
|
|
20
|
+
export const BUILT_IN_VIEW_NAMES = [
|
|
21
|
+
"recently-active",
|
|
22
|
+
"founder",
|
|
23
|
+
"pod-load",
|
|
24
|
+
"escalations",
|
|
25
|
+
"held",
|
|
26
|
+
"activity",
|
|
27
|
+
];
|
|
28
|
+
export class ViewProjectorError extends Error {
|
|
29
|
+
code;
|
|
30
|
+
constructor(code, message) {
|
|
31
|
+
super(message);
|
|
32
|
+
this.code = code;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Detect fixture rigs by session name suffix `@<rig>` where <rig> starts
|
|
37
|
+
* with `test-` or `fixture-`. Used to filter views by default; opt-in via
|
|
38
|
+
* OPENRIG_VIEW_INCLUDE_FIXTURES=1.
|
|
39
|
+
*/
|
|
40
|
+
function fixtureExclusionClause() {
|
|
41
|
+
if (process.env.OPENRIG_VIEW_INCLUDE_FIXTURES === "1")
|
|
42
|
+
return "1=1";
|
|
43
|
+
// Exclude qitems whose source_session OR destination_session has a rig
|
|
44
|
+
// name starting with test- or fixture-.
|
|
45
|
+
return `(
|
|
46
|
+
destination_session NOT LIKE '%@test-%' AND
|
|
47
|
+
destination_session NOT LIKE '%@fixture-%' AND
|
|
48
|
+
source_session NOT LIKE '%@test-%' AND
|
|
49
|
+
source_session NOT LIKE '%@fixture-%'
|
|
50
|
+
)`;
|
|
51
|
+
}
|
|
52
|
+
export class ViewProjector {
|
|
53
|
+
db;
|
|
54
|
+
eventBus;
|
|
55
|
+
now;
|
|
56
|
+
constructor(db, eventBus, opts) {
|
|
57
|
+
this.db = db;
|
|
58
|
+
this.eventBus = eventBus;
|
|
59
|
+
this.now = opts?.now ?? (() => new Date());
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Run a view by name. Built-in names (BUILT_IN_VIEW_NAMES) dispatch to
|
|
63
|
+
* hardcoded SQL; other names dispatch to custom-view lookup.
|
|
64
|
+
*/
|
|
65
|
+
show(viewName, opts) {
|
|
66
|
+
const limit = Math.max(1, Math.min(opts?.limit ?? 100, 1000));
|
|
67
|
+
if (BUILT_IN_VIEW_NAMES.includes(viewName)) {
|
|
68
|
+
return this.runBuiltIn(viewName, opts?.rig, limit);
|
|
69
|
+
}
|
|
70
|
+
const custom = this.getCustomView(viewName);
|
|
71
|
+
if (!custom) {
|
|
72
|
+
throw new ViewProjectorError("view_not_found", `view '${viewName}' is not registered (built-in or custom)`);
|
|
73
|
+
}
|
|
74
|
+
return this.runCustom(custom, limit);
|
|
75
|
+
}
|
|
76
|
+
list() {
|
|
77
|
+
return { builtIn: [...BUILT_IN_VIEW_NAMES], custom: this.listCustomViews() };
|
|
78
|
+
}
|
|
79
|
+
runBuiltIn(name, rig, limit) {
|
|
80
|
+
const fixtureClause = fixtureExclusionClause();
|
|
81
|
+
const rigClause = rig ? `AND (destination_session LIKE ? OR source_session LIKE ?)` : "";
|
|
82
|
+
const rigParams = rig ? [`%@${rig}`, `%@${rig}`] : [];
|
|
83
|
+
let sql;
|
|
84
|
+
let params = [];
|
|
85
|
+
switch (name) {
|
|
86
|
+
case "recently-active":
|
|
87
|
+
// qitems by ts_updated DESC; live states (pending/in-progress/blocked).
|
|
88
|
+
sql = `
|
|
89
|
+
SELECT qitem_id, source_session, destination_session, state, priority, tier, ts_updated, body
|
|
90
|
+
FROM queue_items
|
|
91
|
+
WHERE state IN ('pending', 'in-progress', 'blocked')
|
|
92
|
+
AND ${fixtureClause}
|
|
93
|
+
${rigClause}
|
|
94
|
+
ORDER BY ts_updated DESC
|
|
95
|
+
LIMIT ?
|
|
96
|
+
`;
|
|
97
|
+
params = [...rigParams, limit];
|
|
98
|
+
break;
|
|
99
|
+
case "founder":
|
|
100
|
+
// priority='critical' OR tier='critical' OR tier='fast'.
|
|
101
|
+
sql = `
|
|
102
|
+
SELECT qitem_id, source_session, destination_session, state, priority, tier, ts_updated
|
|
103
|
+
FROM queue_items
|
|
104
|
+
WHERE (priority = 'critical' OR tier IN ('critical', 'fast'))
|
|
105
|
+
AND state IN ('pending', 'in-progress', 'blocked')
|
|
106
|
+
AND ${fixtureClause}
|
|
107
|
+
${rigClause}
|
|
108
|
+
ORDER BY ts_updated DESC
|
|
109
|
+
LIMIT ?
|
|
110
|
+
`;
|
|
111
|
+
params = [...rigParams, limit];
|
|
112
|
+
break;
|
|
113
|
+
case "pod-load":
|
|
114
|
+
// R1 NOTE 4: PRD § L5 names this view "per-pod queue-item counts",
|
|
115
|
+
// but Phase A's queue_items table does not carry pod metadata —
|
|
116
|
+
// destination_session is `<member>@<rig>` shape and there is no
|
|
117
|
+
// pod_id column. v0 interpretation: group by destination_session
|
|
118
|
+
// (i.e., per-seat counts). When pod metadata becomes available
|
|
119
|
+
// (Phase D workflow runtime or later), this view should be
|
|
120
|
+
// upgraded to GROUP BY pod_id with destination_session aggregation
|
|
121
|
+
// as a sub-grouping. Documented v0 behavior preserves the view
|
|
122
|
+
// name but reduces the grouping key.
|
|
123
|
+
sql = `
|
|
124
|
+
SELECT destination_session AS pod, COUNT(*) AS active_count
|
|
125
|
+
FROM queue_items
|
|
126
|
+
WHERE state IN ('pending', 'in-progress', 'blocked')
|
|
127
|
+
AND ${fixtureClause}
|
|
128
|
+
${rigClause}
|
|
129
|
+
GROUP BY destination_session
|
|
130
|
+
ORDER BY active_count DESC
|
|
131
|
+
LIMIT ?
|
|
132
|
+
`;
|
|
133
|
+
params = [...rigParams, limit];
|
|
134
|
+
break;
|
|
135
|
+
case "escalations":
|
|
136
|
+
// closure_reason = 'escalation' OR transition note matches.
|
|
137
|
+
sql = `
|
|
138
|
+
SELECT qitem_id, source_session, destination_session, state, closure_reason, closure_target, ts_updated
|
|
139
|
+
FROM queue_items
|
|
140
|
+
WHERE closure_reason = 'escalation'
|
|
141
|
+
AND ${fixtureClause}
|
|
142
|
+
${rigClause}
|
|
143
|
+
ORDER BY ts_updated DESC
|
|
144
|
+
LIMIT ?
|
|
145
|
+
`;
|
|
146
|
+
params = [...rigParams, limit];
|
|
147
|
+
break;
|
|
148
|
+
case "held":
|
|
149
|
+
// state = 'blocked' OR blocked_on is non-null.
|
|
150
|
+
sql = `
|
|
151
|
+
SELECT qitem_id, source_session, destination_session, state, blocked_on, ts_updated, body
|
|
152
|
+
FROM queue_items
|
|
153
|
+
WHERE (state = 'blocked' OR blocked_on IS NOT NULL)
|
|
154
|
+
AND ${fixtureClause}
|
|
155
|
+
${rigClause}
|
|
156
|
+
ORDER BY ts_updated DESC
|
|
157
|
+
LIMIT ?
|
|
158
|
+
`;
|
|
159
|
+
params = [...rigParams, limit];
|
|
160
|
+
break;
|
|
161
|
+
case "activity": {
|
|
162
|
+
// Recent transitions joined with qitem state. Fixture-clause must
|
|
163
|
+
// reference queue_items columns, so use the prefixed clause.
|
|
164
|
+
const fixtureClauseQI = fixtureClause === "1=1"
|
|
165
|
+
? "1=1"
|
|
166
|
+
: `(
|
|
167
|
+
q.destination_session NOT LIKE '%@test-%' AND
|
|
168
|
+
q.destination_session NOT LIKE '%@fixture-%' AND
|
|
169
|
+
q.source_session NOT LIKE '%@test-%' AND
|
|
170
|
+
q.source_session NOT LIKE '%@fixture-%'
|
|
171
|
+
)`;
|
|
172
|
+
const rigClauseQI = rig
|
|
173
|
+
? `AND (q.destination_session LIKE ? OR q.source_session LIKE ?)`
|
|
174
|
+
: "";
|
|
175
|
+
sql = `
|
|
176
|
+
SELECT t.transition_id, t.qitem_id, t.ts, t.state, t.actor_session, t.transition_note,
|
|
177
|
+
q.destination_session, q.source_session
|
|
178
|
+
FROM queue_transitions t
|
|
179
|
+
JOIN queue_items q ON t.qitem_id = q.qitem_id
|
|
180
|
+
WHERE ${fixtureClauseQI}
|
|
181
|
+
${rigClauseQI}
|
|
182
|
+
ORDER BY t.ts DESC
|
|
183
|
+
LIMIT ?
|
|
184
|
+
`;
|
|
185
|
+
params = [...rigParams, limit];
|
|
186
|
+
break;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
const rows = this.db.prepare(sql).all(...params);
|
|
190
|
+
return {
|
|
191
|
+
viewName: name,
|
|
192
|
+
generatedAt: this.now().toISOString(),
|
|
193
|
+
rows,
|
|
194
|
+
rowCount: rows.length,
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
runCustom(view, limit) {
|
|
198
|
+
// Custom view definitions are operator-supplied SQL. Append LIMIT if
|
|
199
|
+
// the operator's SQL does not already include one. We do not parse SQL;
|
|
200
|
+
// operators are responsible for the definition's correctness.
|
|
201
|
+
const sql = view.definition.toLowerCase().includes("limit")
|
|
202
|
+
? view.definition
|
|
203
|
+
: `${view.definition.trim().replace(/;$/, "")} LIMIT ${limit}`;
|
|
204
|
+
let rows;
|
|
205
|
+
try {
|
|
206
|
+
rows = this.db.prepare(sql).all();
|
|
207
|
+
}
|
|
208
|
+
catch (err) {
|
|
209
|
+
throw new ViewProjectorError("view_query_failed", `custom view '${view.viewName}' query failed: ${err.message}`);
|
|
210
|
+
}
|
|
211
|
+
// Touch last_evaluated_at (best-effort; not transactional).
|
|
212
|
+
this.db
|
|
213
|
+
.prepare(`UPDATE views_custom SET last_evaluated_at = ? WHERE view_id = ?`)
|
|
214
|
+
.run(this.now().toISOString(), view.viewId);
|
|
215
|
+
return {
|
|
216
|
+
viewName: view.viewName,
|
|
217
|
+
generatedAt: this.now().toISOString(),
|
|
218
|
+
rows,
|
|
219
|
+
rowCount: rows.length,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Register a custom view. UNIQUE on view_name; re-registration of the
|
|
224
|
+
* same name updates the definition (operator-friendly: edit views.yaml,
|
|
225
|
+
* re-register, get the new query).
|
|
226
|
+
*/
|
|
227
|
+
registerCustomView(input) {
|
|
228
|
+
if (BUILT_IN_VIEW_NAMES.includes(input.viewName)) {
|
|
229
|
+
throw new ViewProjectorError("view_name_reserved", `view name '${input.viewName}' is a reserved built-in name; choose a different name`);
|
|
230
|
+
}
|
|
231
|
+
const existing = this.db
|
|
232
|
+
.prepare(`SELECT * FROM views_custom WHERE view_name = ?`)
|
|
233
|
+
.get(input.viewName);
|
|
234
|
+
const registeredAt = this.now().toISOString();
|
|
235
|
+
if (existing) {
|
|
236
|
+
this.db
|
|
237
|
+
.prepare(`UPDATE views_custom
|
|
238
|
+
SET definition = ?, registered_by_session = ?, registered_at = ?
|
|
239
|
+
WHERE view_id = ?`)
|
|
240
|
+
.run(input.definition, input.registeredBySession, registeredAt, existing.view_id);
|
|
241
|
+
return this.getCustomViewByIdOrThrow(existing.view_id);
|
|
242
|
+
}
|
|
243
|
+
const viewId = ulid();
|
|
244
|
+
this.db
|
|
245
|
+
.prepare(`INSERT INTO views_custom (
|
|
246
|
+
view_id, view_name, definition, registered_by_session, registered_at
|
|
247
|
+
) VALUES (?, ?, ?, ?, ?)`)
|
|
248
|
+
.run(viewId, input.viewName, input.definition, input.registeredBySession, registeredAt);
|
|
249
|
+
return this.getCustomViewByIdOrThrow(viewId);
|
|
250
|
+
}
|
|
251
|
+
getCustomView(viewName) {
|
|
252
|
+
const row = this.db
|
|
253
|
+
.prepare(`SELECT * FROM views_custom WHERE view_name = ?`)
|
|
254
|
+
.get(viewName);
|
|
255
|
+
return row ? this.rowToCustomView(row) : null;
|
|
256
|
+
}
|
|
257
|
+
listCustomViews() {
|
|
258
|
+
const rows = this.db
|
|
259
|
+
.prepare(`SELECT * FROM views_custom ORDER BY view_name ASC`)
|
|
260
|
+
.all();
|
|
261
|
+
return rows.map((r) => this.rowToCustomView(r));
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Used by routes/views.ts to emit view.changed when underlying state
|
|
265
|
+
* changes. Phase B does not auto-evaluate; callers (route SSE handlers)
|
|
266
|
+
* subscribe to event-bus events and trigger this notify.
|
|
267
|
+
*/
|
|
268
|
+
notifyViewChanged(viewName, cause) {
|
|
269
|
+
const persisted = this.eventBus.persistWithinTransaction({
|
|
270
|
+
type: "view.changed",
|
|
271
|
+
viewName,
|
|
272
|
+
cause,
|
|
273
|
+
});
|
|
274
|
+
this.eventBus.notifySubscribers(persisted);
|
|
275
|
+
}
|
|
276
|
+
getCustomViewByIdOrThrow(viewId) {
|
|
277
|
+
const row = this.db
|
|
278
|
+
.prepare(`SELECT * FROM views_custom WHERE view_id = ?`)
|
|
279
|
+
.get(viewId);
|
|
280
|
+
if (!row) {
|
|
281
|
+
throw new ViewProjectorError("view_not_found", `custom view ${viewId} not found after write`);
|
|
282
|
+
}
|
|
283
|
+
return this.rowToCustomView(row);
|
|
284
|
+
}
|
|
285
|
+
rowToCustomView(row) {
|
|
286
|
+
return {
|
|
287
|
+
viewId: row.view_id,
|
|
288
|
+
viewName: row.view_name,
|
|
289
|
+
definition: row.definition,
|
|
290
|
+
registeredBySession: row.registered_by_session,
|
|
291
|
+
registeredAt: row.registered_at,
|
|
292
|
+
lastEvaluatedAt: row.last_evaluated_at,
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
//# sourceMappingURL=view-projector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-projector.js","sourceRoot":"","sources":["../../src/domain/view-projector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,iBAAiB;IACjB,SAAS;IACT,UAAU;IACV,aAAa;IACb,MAAM;IACN,UAAU;CACF,CAAC;AA6BX,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,IAAI,CAAS;IACtB,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;;;GAIG;AACH,SAAS,sBAAsB;IAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IACpE,uEAAuE;IACvE,wCAAwC;IACxC,OAAO;;;;;IAKL,CAAC;AACL,CAAC;AAED,MAAM,OAAO,aAAa;IACf,EAAE,CAAoB;IACd,QAAQ,CAAW;IACnB,GAAG,CAAa;IAEjC,YACE,EAAqB,EACrB,QAAkB,EAClB,IAA2B;QAE3B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,QAAgB,EAAE,IAAuC;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9D,IAAK,mBAAyC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClE,OAAO,IAAI,CAAC,UAAU,CAAC,QAA2B,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,SAAS,QAAQ,0CAA0C,CAAC,CAAC;QAC9G,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,IAAI;QACF,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,mBAAmB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;IAC/E,CAAC;IAEO,UAAU,CAAC,IAAqB,EAAE,GAAuB,EAAE,KAAa;QAC9E,MAAM,aAAa,GAAG,sBAAsB,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,2DAA2D,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,MAAM,SAAS,GAAc,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjE,IAAI,GAAW,CAAC;QAChB,IAAI,MAAM,GAAc,EAAE,CAAC;QAC3B,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,iBAAiB;gBACpB,wEAAwE;gBACxE,GAAG,GAAG;;;;kBAII,aAAa;cACjB,SAAS;;;SAGd,CAAC;gBACF,MAAM,GAAG,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC/B,MAAM;YACR,KAAK,SAAS;gBACZ,yDAAyD;gBACzD,GAAG,GAAG;;;;;kBAKI,aAAa;cACjB,SAAS;;;SAGd,CAAC;gBACF,MAAM,GAAG,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC/B,MAAM;YACR,KAAK,UAAU;gBACb,mEAAmE;gBACnE,gEAAgE;gBAChE,gEAAgE;gBAChE,iEAAiE;gBACjE,+DAA+D;gBAC/D,2DAA2D;gBAC3D,mEAAmE;gBACnE,+DAA+D;gBAC/D,qCAAqC;gBACrC,GAAG,GAAG;;;;kBAII,aAAa;cACjB,SAAS;;;;SAId,CAAC;gBACF,MAAM,GAAG,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC/B,MAAM;YACR,KAAK,aAAa;gBAChB,4DAA4D;gBAC5D,GAAG,GAAG;;;;kBAII,aAAa;cACjB,SAAS;;;SAGd,CAAC;gBACF,MAAM,GAAG,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC/B,MAAM;YACR,KAAK,MAAM;gBACT,+CAA+C;gBAC/C,GAAG,GAAG;;;;kBAII,aAAa;cACjB,SAAS;;;SAGd,CAAC;gBACF,MAAM,GAAG,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC/B,MAAM;YACR,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,kEAAkE;gBAClE,6DAA6D;gBAC7D,MAAM,eAAe,GAAG,aAAa,KAAK,KAAK;oBAC7C,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC;;;;;cAKE,CAAC;gBACP,MAAM,WAAW,GAAG,GAAG;oBACrB,CAAC,CAAC,+DAA+D;oBACjE,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,GAAG;;;;;kBAKI,eAAe;cACnB,WAAW;;;SAGhB,CAAC;gBACF,MAAM,GAAG,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC/B,MAAM;YACR,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAA8B,CAAC;QAC9E,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;YACrC,IAAI;YACJ,QAAQ,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,IAAgB,EAAE,KAAa;QAC/C,qEAAqE;QACrE,wEAAwE;QACxE,8DAA8D;QAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;YACzD,CAAC,CAAC,IAAI,CAAC,UAAU;YACjB,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC;QACjE,IAAI,IAA+B,CAAC;QACpC,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAA+B,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,kBAAkB,CAC1B,mBAAmB,EACnB,gBAAgB,IAAI,CAAC,QAAQ,mBAAoB,GAAa,CAAC,OAAO,EAAE,CACzE,CAAC;QACJ,CAAC;QACD,4DAA4D;QAC5D,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC,iEAAiE,CAAC;aAC1E,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;YACrC,IAAI;YACJ,QAAQ,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,KAIlB;QACC,IAAK,mBAAyC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,kBAAkB,CAC1B,oBAAoB,EACpB,cAAc,KAAK,CAAC,QAAQ,wDAAwD,CACrF,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE;aACrB,OAAO,CAAC,gDAAgD,CAAC;aACzD,GAAG,CAAC,KAAK,CAAC,QAAQ,CAA8B,CAAC;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,EAAE;iBACJ,OAAO,CACN;;6BAEmB,CACpB;iBACA,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,mBAAmB,EAAE,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpF,OAAO,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;iCAEyB,CAC1B;aACA,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,aAAa,CAAC,QAAgB;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,gDAAgD,CAAC;aACzD,GAAG,CAAC,QAAQ,CAA8B,CAAC;QAC9C,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IAED,eAAe;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CAAC,mDAAmD,CAAC;aAC5D,GAAG,EAAqB,CAAC;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,QAAgB,EAAE,KAAa;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACvD,IAAI,EAAE,cAAc;YACpB,QAAQ;YACR,KAAK;SACN,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAEO,wBAAwB,CAAC,MAAc;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,8CAA8C,CAAC;aACvD,GAAG,CAAC,MAAM,CAA8B,CAAC;QAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,eAAe,MAAM,wBAAwB,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAEO,eAAe,CAAC,GAAkB;QACxC,OAAO;YACL,MAAM,EAAE,GAAG,CAAC,OAAO;YACnB,QAAQ,EAAE,GAAG,CAAC,SAAS;YACvB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,mBAAmB,EAAE,GAAG,CAAC,qBAAqB;YAC9C,YAAY,EAAE,GAAG,CAAC,aAAa;YAC/B,eAAe,EAAE,GAAG,CAAC,iBAAiB;SACvC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type Database from "better-sqlite3";
|
|
2
|
+
/**
|
|
3
|
+
* Watchdog history log (PL-004 Phase C; append-only audit writer).
|
|
4
|
+
*
|
|
5
|
+
* Per slice IMPL § Guard Checkpoint Focus item 2:
|
|
6
|
+
* - Pure `not_due` polls are NOT recorded (matches POC; minimizes
|
|
7
|
+
* table size). Only `sent` / `skipped` / `terminal` outcomes pass
|
|
8
|
+
* through this log.
|
|
9
|
+
* - Append-only API surface: only `record()` exposed. UPDATE/DELETE
|
|
10
|
+
* are not exposed. SQLite has no view/role layer so direct SQL
|
|
11
|
+
* could mutate, but the contract is enforced at this domain
|
|
12
|
+
* boundary.
|
|
13
|
+
*/
|
|
14
|
+
export type WatchdogOutcome = "sent" | "skipped" | "terminal";
|
|
15
|
+
export interface WatchdogHistoryRecordInput {
|
|
16
|
+
jobId: string;
|
|
17
|
+
evaluatedAt: string;
|
|
18
|
+
outcome: WatchdogOutcome;
|
|
19
|
+
skipReason?: string | null;
|
|
20
|
+
deliveryTargetSession?: string | null;
|
|
21
|
+
deliveryStatus?: string | null;
|
|
22
|
+
deliveryMessage?: string | null;
|
|
23
|
+
evaluationNotes?: Record<string, unknown> | null;
|
|
24
|
+
}
|
|
25
|
+
export interface WatchdogHistoryEntry {
|
|
26
|
+
historyId: string;
|
|
27
|
+
jobId: string;
|
|
28
|
+
evaluatedAt: string;
|
|
29
|
+
outcome: WatchdogOutcome;
|
|
30
|
+
skipReason: string | null;
|
|
31
|
+
deliveryTargetSession: string | null;
|
|
32
|
+
deliveryStatus: string | null;
|
|
33
|
+
deliveryMessage: string | null;
|
|
34
|
+
evaluationNotes: Record<string, unknown> | null;
|
|
35
|
+
}
|
|
36
|
+
export declare class WatchdogHistoryLog {
|
|
37
|
+
private readonly db;
|
|
38
|
+
constructor(db: Database.Database);
|
|
39
|
+
/**
|
|
40
|
+
* Append a meaningful evaluation outcome. Returns the persisted entry.
|
|
41
|
+
* Caller MUST NOT invoke this for `not_due` pure-skip outcomes — those
|
|
42
|
+
* are not recorded (per POC + IMPL guidance).
|
|
43
|
+
*/
|
|
44
|
+
record(input: WatchdogHistoryRecordInput): WatchdogHistoryEntry;
|
|
45
|
+
listForJob(jobId: string, limit?: number): WatchdogHistoryEntry[];
|
|
46
|
+
listAll(limit?: number): WatchdogHistoryEntry[];
|
|
47
|
+
countForJob(jobId: string): number;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=watchdog-history-log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watchdog-history-log.d.ts","sourceRoot":"","sources":["../../src/domain/watchdog-history-log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,eAAe,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,eAAe,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACjD;AAcD,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAElD;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,0BAA0B,GAAG,oBAAoB;IAkC/D,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,oBAAoB,EAAE;IAU7D,OAAO,CAAC,KAAK,SAAM,GAAG,oBAAoB,EAAE;IAU5C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAMnC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { ulid } from "ulid";
|
|
2
|
+
export class WatchdogHistoryLog {
|
|
3
|
+
db;
|
|
4
|
+
constructor(db) {
|
|
5
|
+
this.db = db;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Append a meaningful evaluation outcome. Returns the persisted entry.
|
|
9
|
+
* Caller MUST NOT invoke this for `not_due` pure-skip outcomes — those
|
|
10
|
+
* are not recorded (per POC + IMPL guidance).
|
|
11
|
+
*/
|
|
12
|
+
record(input) {
|
|
13
|
+
const historyId = ulid();
|
|
14
|
+
this.db
|
|
15
|
+
.prepare(`INSERT INTO watchdog_history (
|
|
16
|
+
history_id, job_id, evaluated_at, outcome,
|
|
17
|
+
skip_reason, delivery_target_session, delivery_status,
|
|
18
|
+
delivery_message, evaluation_notes
|
|
19
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
20
|
+
.run(historyId, input.jobId, input.evaluatedAt, input.outcome, input.skipReason ?? null, input.deliveryTargetSession ?? null, input.deliveryStatus ?? null, input.deliveryMessage ?? null, input.evaluationNotes ? JSON.stringify(input.evaluationNotes) : null);
|
|
21
|
+
return {
|
|
22
|
+
historyId,
|
|
23
|
+
jobId: input.jobId,
|
|
24
|
+
evaluatedAt: input.evaluatedAt,
|
|
25
|
+
outcome: input.outcome,
|
|
26
|
+
skipReason: input.skipReason ?? null,
|
|
27
|
+
deliveryTargetSession: input.deliveryTargetSession ?? null,
|
|
28
|
+
deliveryStatus: input.deliveryStatus ?? null,
|
|
29
|
+
deliveryMessage: input.deliveryMessage ?? null,
|
|
30
|
+
evaluationNotes: input.evaluationNotes ?? null,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
listForJob(jobId, limit = 50) {
|
|
34
|
+
const rows = this.db
|
|
35
|
+
.prepare(`SELECT * FROM watchdog_history WHERE job_id = ?
|
|
36
|
+
ORDER BY evaluated_at DESC, history_id DESC LIMIT ?`)
|
|
37
|
+
.all(jobId, limit);
|
|
38
|
+
return rows.map(rowToEntry);
|
|
39
|
+
}
|
|
40
|
+
listAll(limit = 100) {
|
|
41
|
+
const rows = this.db
|
|
42
|
+
.prepare(`SELECT * FROM watchdog_history
|
|
43
|
+
ORDER BY evaluated_at DESC, history_id DESC LIMIT ?`)
|
|
44
|
+
.all(limit);
|
|
45
|
+
return rows.map(rowToEntry);
|
|
46
|
+
}
|
|
47
|
+
countForJob(jobId) {
|
|
48
|
+
const row = this.db
|
|
49
|
+
.prepare(`SELECT COUNT(*) AS n FROM watchdog_history WHERE job_id = ?`)
|
|
50
|
+
.get(jobId);
|
|
51
|
+
return row.n;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function rowToEntry(row) {
|
|
55
|
+
return {
|
|
56
|
+
historyId: row.history_id,
|
|
57
|
+
jobId: row.job_id,
|
|
58
|
+
evaluatedAt: row.evaluated_at,
|
|
59
|
+
outcome: row.outcome,
|
|
60
|
+
skipReason: row.skip_reason,
|
|
61
|
+
deliveryTargetSession: row.delivery_target_session,
|
|
62
|
+
deliveryStatus: row.delivery_status,
|
|
63
|
+
deliveryMessage: row.delivery_message,
|
|
64
|
+
evaluationNotes: row.evaluation_notes ? JSON.parse(row.evaluation_notes) : null,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=watchdog-history-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watchdog-history-log.js","sourceRoot":"","sources":["../../src/domain/watchdog-history-log.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAoD5B,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAEtD;;;;OAIG;IACH,MAAM,CAAC,KAAiC;QACtC,MAAM,SAAS,GAAG,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;6CAIqC,CACtC;aACA,GAAG,CACF,SAAS,EACT,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,UAAU,IAAI,IAAI,EACxB,KAAK,CAAC,qBAAqB,IAAI,IAAI,EACnC,KAAK,CAAC,cAAc,IAAI,IAAI,EAC5B,KAAK,CAAC,eAAe,IAAI,IAAI,EAC7B,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CACrE,CAAC;QACJ,OAAO;YACL,SAAS;YACT,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;YACpC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,IAAI,IAAI;YAC1D,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,IAAI;YAC5C,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,IAAI;YAC9C,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,IAAI;SAC/C,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,KAAa,EAAE,KAAK,GAAG,EAAE;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CACN;6DACqD,CACtD;aACA,GAAG,CAAC,KAAK,EAAE,KAAK,CAAiB,CAAC;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,KAAK,GAAG,GAAG;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CACN;6DACqD,CACtD;aACA,GAAG,CAAC,KAAK,CAAiB,CAAC;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,KAAa;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,6DAA6D,CAAC;aACtE,GAAG,CAAC,KAAK,CAAkB,CAAC;QAC/B,OAAO,GAAG,CAAC,CAAC,CAAC;IACf,CAAC;CACF;AAED,SAAS,UAAU,CAAC,GAAe;IACjC,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,KAAK,EAAE,GAAG,CAAC,MAAM;QACjB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,OAAO,EAAE,GAAG,CAAC,OAA0B;QACvC,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,qBAAqB,EAAE,GAAG,CAAC,uBAAuB;QAClD,cAAc,EAAE,GAAG,CAAC,eAAe;QACnC,eAAe,EAAE,GAAG,CAAC,gBAAgB;QACrC,eAAe,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI;KAChF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type Database from "better-sqlite3";
|
|
2
|
+
/**
|
|
3
|
+
* Watchdog jobs repository (PL-004 Phase C; extended in Phase D).
|
|
4
|
+
*
|
|
5
|
+
* Owns all reads/writes against `watchdog_jobs`. Pure persistence; no
|
|
6
|
+
* event-bus, no scheduler, no policy dispatch. Composed by the
|
|
7
|
+
* scheduler and policy engine.
|
|
8
|
+
*
|
|
9
|
+
* Phase D v1 accepts FOUR policy values (the orch-ratified Phase C
|
|
10
|
+
* `workflow-keepalive` deferral has been lifted; the policy module
|
|
11
|
+
* now exists at `policies/workflow-keepalive.ts` and reads from the
|
|
12
|
+
* SQLite `workflow_instances` table introduced in Phase D):
|
|
13
|
+
* - periodic-reminder (Phase C)
|
|
14
|
+
* - artifact-pool-ready (Phase C)
|
|
15
|
+
* - edge-artifact-required (Phase C)
|
|
16
|
+
* - workflow-keepalive (Phase D)
|
|
17
|
+
*
|
|
18
|
+
* PHASE_C_POLICIES retained as a deprecated alias for callers that
|
|
19
|
+
* still reference it; new code uses PHASE_D_POLICIES.
|
|
20
|
+
*/
|
|
21
|
+
export declare const PHASE_D_POLICIES: readonly ["periodic-reminder", "artifact-pool-ready", "edge-artifact-required", "workflow-keepalive"];
|
|
22
|
+
/** @deprecated since Phase D — use PHASE_D_POLICIES. */
|
|
23
|
+
export declare const PHASE_C_POLICIES: readonly ["periodic-reminder", "artifact-pool-ready", "edge-artifact-required", "workflow-keepalive"];
|
|
24
|
+
export type WatchdogPolicyName = (typeof PHASE_D_POLICIES)[number];
|
|
25
|
+
export type WatchdogJobState = "active" | "stopped" | "terminal";
|
|
26
|
+
export interface WatchdogJob {
|
|
27
|
+
jobId: string;
|
|
28
|
+
policy: WatchdogPolicyName;
|
|
29
|
+
specYaml: string;
|
|
30
|
+
targetSession: string;
|
|
31
|
+
intervalSeconds: number;
|
|
32
|
+
activeWakeIntervalSeconds: number | null;
|
|
33
|
+
scanIntervalSeconds: number | null;
|
|
34
|
+
lastEvaluationAt: string | null;
|
|
35
|
+
lastFireAt: string | null;
|
|
36
|
+
actionable: boolean;
|
|
37
|
+
lastActionableAt: string | null;
|
|
38
|
+
state: WatchdogJobState;
|
|
39
|
+
registeredBySession: string;
|
|
40
|
+
registeredAt: string;
|
|
41
|
+
terminalReason: string | null;
|
|
42
|
+
}
|
|
43
|
+
export interface RegisterWatchdogJobInput {
|
|
44
|
+
policy: string;
|
|
45
|
+
specYaml: string;
|
|
46
|
+
targetSession: string;
|
|
47
|
+
intervalSeconds: number;
|
|
48
|
+
activeWakeIntervalSeconds?: number | null;
|
|
49
|
+
scanIntervalSeconds?: number | null;
|
|
50
|
+
registeredBySession: string;
|
|
51
|
+
}
|
|
52
|
+
export declare class WatchdogJobsError extends Error {
|
|
53
|
+
readonly code: string;
|
|
54
|
+
readonly details?: Record<string, unknown> | undefined;
|
|
55
|
+
constructor(code: string, message: string, details?: Record<string, unknown> | undefined);
|
|
56
|
+
}
|
|
57
|
+
export declare class WatchdogJobsRepository {
|
|
58
|
+
private readonly db;
|
|
59
|
+
private readonly now;
|
|
60
|
+
constructor(db: Database.Database, now?: () => Date);
|
|
61
|
+
register(input: RegisterWatchdogJobInput): WatchdogJob;
|
|
62
|
+
getById(jobId: string): WatchdogJob | null;
|
|
63
|
+
getByIdOrThrow(jobId: string): WatchdogJob;
|
|
64
|
+
listAll(): WatchdogJob[];
|
|
65
|
+
listActive(): WatchdogJob[];
|
|
66
|
+
recordEvaluation(jobId: string, evaluatedAt: string, fired: boolean): void;
|
|
67
|
+
/**
|
|
68
|
+
* R1 fix: write the actionable-state machine columns. Mirrors POC
|
|
69
|
+
* engine's `state.actionable` + `state.last_actionable_at`. Called
|
|
70
|
+
* by the policy engine after every meaningful evaluation:
|
|
71
|
+
* - newActionable=false (skip): clears actionable + last_actionable_at.
|
|
72
|
+
* - newActionable=true with no preserveLastActionableAt: stamps
|
|
73
|
+
* last_actionable_at to evaluatedAt (newly actionable).
|
|
74
|
+
* - newActionable=true with preserveLastActionableAt set: keeps the
|
|
75
|
+
* existing first-actionable timestamp (continued actionable window).
|
|
76
|
+
*/
|
|
77
|
+
setActionable(jobId: string, newActionable: boolean, evaluatedAt: string, preserveLastActionableAt?: string | null): void;
|
|
78
|
+
markTerminal(jobId: string, reason: string): void;
|
|
79
|
+
stop(jobId: string, reason?: string): WatchdogJob;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=watchdog-jobs-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watchdog-jobs-repository.d.ts","sourceRoot":"","sources":["../../src/domain/watchdog-jobs-repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C;;;;;;;;;;;;;;;;;;GAkBG;AAEH,eAAO,MAAM,gBAAgB,uGAKnB,CAAC;AAEX,wDAAwD;AACxD,eAAO,MAAM,gBAAgB,uGAAmB,CAAC;AAEjD,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,KAAK,EAAE,gBAAgB,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,yBAAyB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAoBD,qBAAa,iBAAkB,SAAQ,KAAK;aAExB,IAAI,EAAE,MAAM;aAEZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFjC,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAKpD;AAED,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBADH,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,GAAG,GAAE,MAAM,IAAuB;IAGrD,QAAQ,CAAC,KAAK,EAAE,wBAAwB,GAAG,WAAW;IA+CtD,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAO1C,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAY1C,OAAO,IAAI,WAAW,EAAE;IAOxB,UAAU,IAAI,WAAW,EAAE;IAO3B,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAc1E;;;;;;;;;OASG;IACH,aAAa,CACX,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,OAAO,EACtB,WAAW,EAAE,MAAM,EACnB,wBAAwB,GAAE,MAAM,GAAG,IAAW,GAC7C,IAAI;IAiBP,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQjD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAqB,GAAG,WAAW;CAe9D"}
|