@herdctl/core 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +4 -0
- package/.turbo/turbo-test.log +219 -0
- package/.turbo/turbo-typecheck.log +4 -0
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/coverage-final.json +51 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +251 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +210 -0
- package/coverage/src/config/index.html +191 -0
- package/coverage/src/config/index.ts.html +442 -0
- package/coverage/src/config/interpolate.ts.html +652 -0
- package/coverage/src/config/loader.ts.html +1501 -0
- package/coverage/src/config/merge.ts.html +823 -0
- package/coverage/src/config/parser.ts.html +1213 -0
- package/coverage/src/config/schema.ts.html +1123 -0
- package/coverage/src/fleet-manager/errors.ts.html +2326 -0
- package/coverage/src/fleet-manager/event-types.ts.html +1219 -0
- package/coverage/src/fleet-manager/fleet-manager.ts.html +7030 -0
- package/coverage/src/fleet-manager/index.html +206 -0
- package/coverage/src/fleet-manager/index.ts.html +469 -0
- package/coverage/src/fleet-manager/job-manager.ts.html +2074 -0
- package/coverage/src/fleet-manager/job-queue.ts.html +2479 -0
- package/coverage/src/fleet-manager/types.ts.html +2602 -0
- package/coverage/src/index.html +116 -0
- package/coverage/src/index.ts.html +181 -0
- package/coverage/src/runner/errors.ts.html +1006 -0
- package/coverage/src/runner/index.html +191 -0
- package/coverage/src/runner/index.ts.html +256 -0
- package/coverage/src/runner/job-executor.ts.html +1429 -0
- package/coverage/src/runner/message-processor.ts.html +1150 -0
- package/coverage/src/runner/sdk-adapter.ts.html +658 -0
- package/coverage/src/runner/types.ts.html +559 -0
- package/coverage/src/scheduler/errors.ts.html +388 -0
- package/coverage/src/scheduler/index.html +206 -0
- package/coverage/src/scheduler/index.ts.html +244 -0
- package/coverage/src/scheduler/interval.ts.html +652 -0
- package/coverage/src/scheduler/schedule-runner.ts.html +1411 -0
- package/coverage/src/scheduler/schedule-state.ts.html +718 -0
- package/coverage/src/scheduler/scheduler.ts.html +1795 -0
- package/coverage/src/scheduler/types.ts.html +733 -0
- package/coverage/src/state/directory.ts.html +736 -0
- package/coverage/src/state/errors.ts.html +376 -0
- package/coverage/src/state/fleet-state.ts.html +937 -0
- package/coverage/src/state/index.html +221 -0
- package/coverage/src/state/index.ts.html +322 -0
- package/coverage/src/state/job-metadata.ts.html +1420 -0
- package/coverage/src/state/job-output.ts.html +1033 -0
- package/coverage/src/state/schemas/fleet-state.ts.html +445 -0
- package/coverage/src/state/schemas/index.html +176 -0
- package/coverage/src/state/schemas/index.ts.html +286 -0
- package/coverage/src/state/schemas/job-metadata.ts.html +628 -0
- package/coverage/src/state/schemas/job-output.ts.html +616 -0
- package/coverage/src/state/schemas/session-info.ts.html +361 -0
- package/coverage/src/state/session.ts.html +844 -0
- package/coverage/src/state/types.ts.html +262 -0
- package/coverage/src/state/utils/atomic.ts.html +748 -0
- package/coverage/src/state/utils/index.html +146 -0
- package/coverage/src/state/utils/index.ts.html +103 -0
- package/coverage/src/state/utils/reads.ts.html +1621 -0
- package/coverage/src/work-sources/adapters/github.ts.html +3583 -0
- package/coverage/src/work-sources/adapters/index.html +131 -0
- package/coverage/src/work-sources/adapters/index.ts.html +277 -0
- package/coverage/src/work-sources/errors.ts.html +298 -0
- package/coverage/src/work-sources/index.html +176 -0
- package/coverage/src/work-sources/index.ts.html +529 -0
- package/coverage/src/work-sources/manager.ts.html +1324 -0
- package/coverage/src/work-sources/registry.ts.html +619 -0
- package/coverage/src/work-sources/types.ts.html +568 -0
- package/dist/config/__tests__/agent.test.d.ts +2 -0
- package/dist/config/__tests__/agent.test.d.ts.map +1 -0
- package/dist/config/__tests__/agent.test.js +752 -0
- package/dist/config/__tests__/agent.test.js.map +1 -0
- package/dist/config/__tests__/interpolate.test.d.ts +2 -0
- package/dist/config/__tests__/interpolate.test.d.ts.map +1 -0
- package/dist/config/__tests__/interpolate.test.js +509 -0
- package/dist/config/__tests__/interpolate.test.js.map +1 -0
- package/dist/config/__tests__/loader.test.d.ts +2 -0
- package/dist/config/__tests__/loader.test.d.ts.map +1 -0
- package/dist/config/__tests__/loader.test.js +631 -0
- package/dist/config/__tests__/loader.test.js.map +1 -0
- package/dist/config/__tests__/merge.test.d.ts +2 -0
- package/dist/config/__tests__/merge.test.d.ts.map +1 -0
- package/dist/config/__tests__/merge.test.js +672 -0
- package/dist/config/__tests__/merge.test.js.map +1 -0
- package/dist/config/__tests__/parser.test.d.ts +2 -0
- package/dist/config/__tests__/parser.test.d.ts.map +1 -0
- package/dist/config/__tests__/parser.test.js +476 -0
- package/dist/config/__tests__/parser.test.js.map +1 -0
- package/dist/config/__tests__/schema.test.d.ts +2 -0
- package/dist/config/__tests__/schema.test.d.ts.map +1 -0
- package/dist/config/__tests__/schema.test.js +776 -0
- package/dist/config/__tests__/schema.test.js.map +1 -0
- package/dist/config/index.d.ts +11 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +26 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/interpolate.d.ts +76 -0
- package/dist/config/interpolate.d.ts.map +1 -0
- package/dist/config/interpolate.js +143 -0
- package/dist/config/interpolate.js.map +1 -0
- package/dist/config/loader.d.ts +147 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +336 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/merge.d.ts +84 -0
- package/dist/config/merge.d.ts.map +1 -0
- package/dist/config/merge.js +138 -0
- package/dist/config/merge.js.map +1 -0
- package/dist/config/parser.d.ts +143 -0
- package/dist/config/parser.d.ts.map +1 -0
- package/dist/config/parser.js +316 -0
- package/dist/config/parser.js.map +1 -0
- package/dist/config/schema.d.ts +1906 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +268 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/fleet-manager/__tests__/coverage.test.d.ts +13 -0
- package/dist/fleet-manager/__tests__/coverage.test.d.ts.map +1 -0
- package/dist/fleet-manager/__tests__/coverage.test.js +2282 -0
- package/dist/fleet-manager/__tests__/coverage.test.js.map +1 -0
- package/dist/fleet-manager/__tests__/errors.test.d.ts +7 -0
- package/dist/fleet-manager/__tests__/errors.test.d.ts.map +1 -0
- package/dist/fleet-manager/__tests__/errors.test.js +557 -0
- package/dist/fleet-manager/__tests__/errors.test.js.map +1 -0
- package/dist/fleet-manager/__tests__/event-helpers.test.d.ts +7 -0
- package/dist/fleet-manager/__tests__/event-helpers.test.d.ts.map +1 -0
- package/dist/fleet-manager/__tests__/event-helpers.test.js +368 -0
- package/dist/fleet-manager/__tests__/event-helpers.test.js.map +1 -0
- package/dist/fleet-manager/__tests__/integration.test.d.ts +11 -0
- package/dist/fleet-manager/__tests__/integration.test.d.ts.map +1 -0
- package/dist/fleet-manager/__tests__/integration.test.js +949 -0
- package/dist/fleet-manager/__tests__/integration.test.js.map +1 -0
- package/dist/fleet-manager/__tests__/job-control.test.d.ts +7 -0
- package/dist/fleet-manager/__tests__/job-control.test.d.ts.map +1 -0
- package/dist/fleet-manager/__tests__/job-control.test.js +215 -0
- package/dist/fleet-manager/__tests__/job-control.test.js.map +1 -0
- package/dist/fleet-manager/__tests__/job-manager.test.d.ts +7 -0
- package/dist/fleet-manager/__tests__/job-manager.test.d.ts.map +1 -0
- package/dist/fleet-manager/__tests__/job-manager.test.js +659 -0
- package/dist/fleet-manager/__tests__/job-manager.test.js.map +1 -0
- package/dist/fleet-manager/__tests__/job-queue.test.d.ts +5 -0
- package/dist/fleet-manager/__tests__/job-queue.test.d.ts.map +1 -0
- package/dist/fleet-manager/__tests__/job-queue.test.js +315 -0
- package/dist/fleet-manager/__tests__/job-queue.test.js.map +1 -0
- package/dist/fleet-manager/__tests__/reload.test.d.ts +7 -0
- package/dist/fleet-manager/__tests__/reload.test.d.ts.map +1 -0
- package/dist/fleet-manager/__tests__/reload.test.js +609 -0
- package/dist/fleet-manager/__tests__/reload.test.js.map +1 -0
- package/dist/fleet-manager/__tests__/status-queries.test.d.ts +7 -0
- package/dist/fleet-manager/__tests__/status-queries.test.d.ts.map +1 -0
- package/dist/fleet-manager/__tests__/status-queries.test.js +488 -0
- package/dist/fleet-manager/__tests__/status-queries.test.js.map +1 -0
- package/dist/fleet-manager/__tests__/trigger.test.d.ts +7 -0
- package/dist/fleet-manager/__tests__/trigger.test.d.ts.map +1 -0
- package/dist/fleet-manager/__tests__/trigger.test.js +471 -0
- package/dist/fleet-manager/__tests__/trigger.test.js.map +1 -0
- package/dist/fleet-manager/errors.d.ts +407 -0
- package/dist/fleet-manager/errors.d.ts.map +1 -0
- package/dist/fleet-manager/errors.js +569 -0
- package/dist/fleet-manager/errors.js.map +1 -0
- package/dist/fleet-manager/event-types.d.ts +302 -0
- package/dist/fleet-manager/event-types.d.ts.map +1 -0
- package/dist/fleet-manager/event-types.js +9 -0
- package/dist/fleet-manager/event-types.js.map +1 -0
- package/dist/fleet-manager/fleet-manager.d.ts +699 -0
- package/dist/fleet-manager/fleet-manager.d.ts.map +1 -0
- package/dist/fleet-manager/fleet-manager.js +1906 -0
- package/dist/fleet-manager/fleet-manager.js.map +1 -0
- package/dist/fleet-manager/index.d.ts +17 -0
- package/dist/fleet-manager/index.d.ts.map +1 -0
- package/dist/fleet-manager/index.js +29 -0
- package/dist/fleet-manager/index.js.map +1 -0
- package/dist/fleet-manager/job-manager.d.ts +271 -0
- package/dist/fleet-manager/job-manager.d.ts.map +1 -0
- package/dist/fleet-manager/job-manager.js +443 -0
- package/dist/fleet-manager/job-manager.js.map +1 -0
- package/dist/fleet-manager/job-queue.d.ts +422 -0
- package/dist/fleet-manager/job-queue.d.ts.map +1 -0
- package/dist/fleet-manager/job-queue.js +448 -0
- package/dist/fleet-manager/job-queue.js.map +1 -0
- package/dist/fleet-manager/types.d.ts +680 -0
- package/dist/fleet-manager/types.d.ts.map +1 -0
- package/dist/fleet-manager/types.js +8 -0
- package/dist/fleet-manager/types.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/runner/__tests__/errors.test.d.ts +2 -0
- package/dist/runner/__tests__/errors.test.d.ts.map +1 -0
- package/dist/runner/__tests__/errors.test.js +264 -0
- package/dist/runner/__tests__/errors.test.js.map +1 -0
- package/dist/runner/__tests__/job-executor.test.d.ts +2 -0
- package/dist/runner/__tests__/job-executor.test.d.ts.map +1 -0
- package/dist/runner/__tests__/job-executor.test.js +1345 -0
- package/dist/runner/__tests__/job-executor.test.js.map +1 -0
- package/dist/runner/__tests__/message-processor.test.d.ts +2 -0
- package/dist/runner/__tests__/message-processor.test.d.ts.map +1 -0
- package/dist/runner/__tests__/message-processor.test.js +768 -0
- package/dist/runner/__tests__/message-processor.test.js.map +1 -0
- package/dist/runner/__tests__/sdk-adapter.test.d.ts +2 -0
- package/dist/runner/__tests__/sdk-adapter.test.d.ts.map +1 -0
- package/dist/runner/__tests__/sdk-adapter.test.js +554 -0
- package/dist/runner/__tests__/sdk-adapter.test.js.map +1 -0
- package/dist/runner/errors.d.ts +121 -0
- package/dist/runner/errors.d.ts.map +1 -0
- package/dist/runner/errors.js +212 -0
- package/dist/runner/errors.js.map +1 -0
- package/dist/runner/index.d.ts +12 -0
- package/dist/runner/index.d.ts.map +1 -0
- package/dist/runner/index.js +15 -0
- package/dist/runner/index.js.map +1 -0
- package/dist/runner/job-executor.d.ts +98 -0
- package/dist/runner/job-executor.d.ts.map +1 -0
- package/dist/runner/job-executor.js +333 -0
- package/dist/runner/job-executor.js.map +1 -0
- package/dist/runner/message-processor.d.ts +45 -0
- package/dist/runner/message-processor.d.ts.map +1 -0
- package/dist/runner/message-processor.js +294 -0
- package/dist/runner/message-processor.js.map +1 -0
- package/dist/runner/sdk-adapter.d.ts +60 -0
- package/dist/runner/sdk-adapter.d.ts.map +1 -0
- package/dist/runner/sdk-adapter.js +138 -0
- package/dist/runner/sdk-adapter.js.map +1 -0
- package/dist/runner/types.d.ts +135 -0
- package/dist/runner/types.d.ts.map +1 -0
- package/dist/runner/types.js +7 -0
- package/dist/runner/types.js.map +1 -0
- package/dist/scheduler/__tests__/errors.test.d.ts +2 -0
- package/dist/scheduler/__tests__/errors.test.d.ts.map +1 -0
- package/dist/scheduler/__tests__/errors.test.js +101 -0
- package/dist/scheduler/__tests__/errors.test.js.map +1 -0
- package/dist/scheduler/__tests__/interval.test.d.ts +2 -0
- package/dist/scheduler/__tests__/interval.test.d.ts.map +1 -0
- package/dist/scheduler/__tests__/interval.test.js +419 -0
- package/dist/scheduler/__tests__/interval.test.js.map +1 -0
- package/dist/scheduler/__tests__/schedule-runner.test.d.ts +2 -0
- package/dist/scheduler/__tests__/schedule-runner.test.d.ts.map +1 -0
- package/dist/scheduler/__tests__/schedule-runner.test.js +634 -0
- package/dist/scheduler/__tests__/schedule-runner.test.js.map +1 -0
- package/dist/scheduler/__tests__/schedule-state.test.d.ts +2 -0
- package/dist/scheduler/__tests__/schedule-state.test.d.ts.map +1 -0
- package/dist/scheduler/__tests__/schedule-state.test.js +572 -0
- package/dist/scheduler/__tests__/schedule-state.test.js.map +1 -0
- package/dist/scheduler/__tests__/scheduler.test.d.ts +2 -0
- package/dist/scheduler/__tests__/scheduler.test.d.ts.map +1 -0
- package/dist/scheduler/__tests__/scheduler.test.js +987 -0
- package/dist/scheduler/__tests__/scheduler.test.js.map +1 -0
- package/dist/scheduler/errors.d.ts +61 -0
- package/dist/scheduler/errors.d.ts.map +1 -0
- package/dist/scheduler/errors.js +81 -0
- package/dist/scheduler/errors.js.map +1 -0
- package/dist/scheduler/index.d.ts +13 -0
- package/dist/scheduler/index.d.ts.map +1 -0
- package/dist/scheduler/index.js +17 -0
- package/dist/scheduler/index.js.map +1 -0
- package/dist/scheduler/interval.d.ts +64 -0
- package/dist/scheduler/interval.d.ts.map +1 -0
- package/dist/scheduler/interval.js +139 -0
- package/dist/scheduler/interval.js.map +1 -0
- package/dist/scheduler/schedule-runner.d.ts +149 -0
- package/dist/scheduler/schedule-runner.d.ts.map +1 -0
- package/dist/scheduler/schedule-runner.js +277 -0
- package/dist/scheduler/schedule-runner.js.map +1 -0
- package/dist/scheduler/schedule-state.d.ts +105 -0
- package/dist/scheduler/schedule-state.d.ts.map +1 -0
- package/dist/scheduler/schedule-state.js +151 -0
- package/dist/scheduler/schedule-state.js.map +1 -0
- package/dist/scheduler/scheduler.d.ts +138 -0
- package/dist/scheduler/scheduler.d.ts.map +1 -0
- package/dist/scheduler/scheduler.js +423 -0
- package/dist/scheduler/scheduler.js.map +1 -0
- package/dist/scheduler/types.d.ts +160 -0
- package/dist/scheduler/types.d.ts.map +1 -0
- package/dist/scheduler/types.js +8 -0
- package/dist/scheduler/types.js.map +1 -0
- package/dist/state/__tests__/directory.test.d.ts +2 -0
- package/dist/state/__tests__/directory.test.d.ts.map +1 -0
- package/dist/state/__tests__/directory.test.js +414 -0
- package/dist/state/__tests__/directory.test.js.map +1 -0
- package/dist/state/__tests__/fleet-state.test.d.ts +2 -0
- package/dist/state/__tests__/fleet-state.test.d.ts.map +1 -0
- package/dist/state/__tests__/fleet-state.test.js +696 -0
- package/dist/state/__tests__/fleet-state.test.js.map +1 -0
- package/dist/state/__tests__/job-metadata-schema.test.d.ts +2 -0
- package/dist/state/__tests__/job-metadata-schema.test.d.ts.map +1 -0
- package/dist/state/__tests__/job-metadata-schema.test.js +329 -0
- package/dist/state/__tests__/job-metadata-schema.test.js.map +1 -0
- package/dist/state/__tests__/job-metadata.test.d.ts +2 -0
- package/dist/state/__tests__/job-metadata.test.d.ts.map +1 -0
- package/dist/state/__tests__/job-metadata.test.js +667 -0
- package/dist/state/__tests__/job-metadata.test.js.map +1 -0
- package/dist/state/__tests__/job-output.test.d.ts +2 -0
- package/dist/state/__tests__/job-output.test.d.ts.map +1 -0
- package/dist/state/__tests__/job-output.test.js +672 -0
- package/dist/state/__tests__/job-output.test.js.map +1 -0
- package/dist/state/__tests__/session-schema.test.d.ts +2 -0
- package/dist/state/__tests__/session-schema.test.d.ts.map +1 -0
- package/dist/state/__tests__/session-schema.test.js +323 -0
- package/dist/state/__tests__/session-schema.test.js.map +1 -0
- package/dist/state/__tests__/session.test.d.ts +2 -0
- package/dist/state/__tests__/session.test.d.ts.map +1 -0
- package/dist/state/__tests__/session.test.js +468 -0
- package/dist/state/__tests__/session.test.js.map +1 -0
- package/dist/state/directory.d.ts +42 -0
- package/dist/state/directory.d.ts.map +1 -0
- package/dist/state/directory.js +170 -0
- package/dist/state/directory.js.map +1 -0
- package/dist/state/errors.d.ts +44 -0
- package/dist/state/errors.d.ts.map +1 -0
- package/dist/state/errors.js +82 -0
- package/dist/state/errors.js.map +1 -0
- package/dist/state/fleet-state.d.ts +126 -0
- package/dist/state/fleet-state.d.ts.map +1 -0
- package/dist/state/fleet-state.js +196 -0
- package/dist/state/fleet-state.js.map +1 -0
- package/dist/state/index.d.ts +21 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +30 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/job-metadata.d.ts +151 -0
- package/dist/state/job-metadata.d.ts.map +1 -0
- package/dist/state/job-metadata.js +287 -0
- package/dist/state/job-metadata.js.map +1 -0
- package/dist/state/job-output.d.ts +116 -0
- package/dist/state/job-output.d.ts.map +1 -0
- package/dist/state/job-output.js +218 -0
- package/dist/state/job-output.js.map +1 -0
- package/dist/state/schemas/__tests__/job-output.test.d.ts +2 -0
- package/dist/state/schemas/__tests__/job-output.test.d.ts.map +1 -0
- package/dist/state/schemas/__tests__/job-output.test.js +279 -0
- package/dist/state/schemas/__tests__/job-output.test.js.map +1 -0
- package/dist/state/schemas/fleet-state.d.ts +249 -0
- package/dist/state/schemas/fleet-state.d.ts.map +1 -0
- package/dist/state/schemas/fleet-state.js +97 -0
- package/dist/state/schemas/fleet-state.js.map +1 -0
- package/dist/state/schemas/index.d.ts +10 -0
- package/dist/state/schemas/index.d.ts.map +1 -0
- package/dist/state/schemas/index.js +10 -0
- package/dist/state/schemas/index.js.map +1 -0
- package/dist/state/schemas/job-metadata.d.ts +118 -0
- package/dist/state/schemas/job-metadata.d.ts.map +1 -0
- package/dist/state/schemas/job-metadata.js +123 -0
- package/dist/state/schemas/job-metadata.js.map +1 -0
- package/dist/state/schemas/job-output.d.ts +291 -0
- package/dist/state/schemas/job-output.d.ts.map +1 -0
- package/dist/state/schemas/job-output.js +132 -0
- package/dist/state/schemas/job-output.js.map +1 -0
- package/dist/state/schemas/session-info.d.ts +65 -0
- package/dist/state/schemas/session-info.d.ts.map +1 -0
- package/dist/state/schemas/session-info.js +58 -0
- package/dist/state/schemas/session-info.js.map +1 -0
- package/dist/state/session.d.ts +92 -0
- package/dist/state/session.d.ts.map +1 -0
- package/dist/state/session.js +173 -0
- package/dist/state/session.js.map +1 -0
- package/dist/state/types.d.ts +54 -0
- package/dist/state/types.d.ts.map +1 -0
- package/dist/state/types.js +18 -0
- package/dist/state/types.js.map +1 -0
- package/dist/state/utils/__tests__/atomic.test.d.ts +2 -0
- package/dist/state/utils/__tests__/atomic.test.d.ts.map +1 -0
- package/dist/state/utils/__tests__/atomic.test.js +537 -0
- package/dist/state/utils/__tests__/atomic.test.js.map +1 -0
- package/dist/state/utils/__tests__/reads.test.d.ts +2 -0
- package/dist/state/utils/__tests__/reads.test.d.ts.map +1 -0
- package/dist/state/utils/__tests__/reads.test.js +792 -0
- package/dist/state/utils/__tests__/reads.test.js.map +1 -0
- package/dist/state/utils/atomic.d.ts +89 -0
- package/dist/state/utils/atomic.d.ts.map +1 -0
- package/dist/state/utils/atomic.js +157 -0
- package/dist/state/utils/atomic.js.map +1 -0
- package/dist/state/utils/index.d.ts +6 -0
- package/dist/state/utils/index.d.ts.map +1 -0
- package/dist/state/utils/index.js +6 -0
- package/dist/state/utils/index.js.map +1 -0
- package/dist/state/utils/reads.d.ts +196 -0
- package/dist/state/utils/reads.d.ts.map +1 -0
- package/dist/state/utils/reads.js +346 -0
- package/dist/state/utils/reads.js.map +1 -0
- package/dist/work-sources/__tests__/github.test.d.ts +2 -0
- package/dist/work-sources/__tests__/github.test.d.ts.map +1 -0
- package/dist/work-sources/__tests__/github.test.js +1334 -0
- package/dist/work-sources/__tests__/github.test.js.map +1 -0
- package/dist/work-sources/__tests__/manager.test.d.ts +2 -0
- package/dist/work-sources/__tests__/manager.test.d.ts.map +1 -0
- package/dist/work-sources/__tests__/manager.test.js +424 -0
- package/dist/work-sources/__tests__/manager.test.js.map +1 -0
- package/dist/work-sources/__tests__/registry.test.d.ts +2 -0
- package/dist/work-sources/__tests__/registry.test.d.ts.map +1 -0
- package/dist/work-sources/__tests__/registry.test.js +381 -0
- package/dist/work-sources/__tests__/registry.test.js.map +1 -0
- package/dist/work-sources/__tests__/types.test.d.ts +2 -0
- package/dist/work-sources/__tests__/types.test.d.ts.map +1 -0
- package/dist/work-sources/__tests__/types.test.js +406 -0
- package/dist/work-sources/__tests__/types.test.js.map +1 -0
- package/dist/work-sources/adapters/github.d.ts +290 -0
- package/dist/work-sources/adapters/github.d.ts.map +1 -0
- package/dist/work-sources/adapters/github.js +803 -0
- package/dist/work-sources/adapters/github.js.map +1 -0
- package/dist/work-sources/adapters/index.d.ts +10 -0
- package/dist/work-sources/adapters/index.d.ts.map +1 -0
- package/dist/work-sources/adapters/index.js +31 -0
- package/dist/work-sources/adapters/index.js.map +1 -0
- package/dist/work-sources/errors.d.ts +40 -0
- package/dist/work-sources/errors.d.ts.map +1 -0
- package/dist/work-sources/errors.js +54 -0
- package/dist/work-sources/errors.js.map +1 -0
- package/dist/work-sources/index.d.ts +105 -0
- package/dist/work-sources/index.d.ts.map +1 -0
- package/dist/work-sources/index.js +24 -0
- package/dist/work-sources/index.js.map +1 -0
- package/dist/work-sources/manager.d.ts +370 -0
- package/dist/work-sources/manager.d.ts.map +1 -0
- package/dist/work-sources/manager.js +61 -0
- package/dist/work-sources/manager.js.map +1 -0
- package/dist/work-sources/registry.d.ts +128 -0
- package/dist/work-sources/registry.d.ts.map +1 -0
- package/dist/work-sources/registry.js +132 -0
- package/dist/work-sources/registry.js.map +1 -0
- package/dist/work-sources/types.d.ts +127 -0
- package/dist/work-sources/types.d.ts.map +1 -0
- package/dist/work-sources/types.js +8 -0
- package/dist/work-sources/types.js.map +1 -0
- package/package.json +23 -0
- package/src/config/__tests__/agent.test.ts +864 -0
- package/src/config/__tests__/interpolate.test.ts +644 -0
- package/src/config/__tests__/loader.test.ts +784 -0
- package/src/config/__tests__/merge.test.ts +751 -0
- package/src/config/__tests__/parser.test.ts +533 -0
- package/src/config/__tests__/schema.test.ts +873 -0
- package/src/config/index.ts +119 -0
- package/src/config/interpolate.ts +189 -0
- package/src/config/loader.ts +472 -0
- package/src/config/merge.ts +246 -0
- package/src/config/parser.ts +376 -0
- package/src/config/schema.ts +346 -0
- package/src/fleet-manager/__tests__/coverage.test.ts +2869 -0
- package/src/fleet-manager/__tests__/errors.test.ts +660 -0
- package/src/fleet-manager/__tests__/event-helpers.test.ts +448 -0
- package/src/fleet-manager/__tests__/integration.test.ts +1209 -0
- package/src/fleet-manager/__tests__/job-control.test.ts +283 -0
- package/src/fleet-manager/__tests__/job-manager.test.ts +869 -0
- package/src/fleet-manager/__tests__/job-queue.test.ts +401 -0
- package/src/fleet-manager/__tests__/reload.test.ts +751 -0
- package/src/fleet-manager/__tests__/status-queries.test.ts +595 -0
- package/src/fleet-manager/__tests__/trigger.test.ts +601 -0
- package/src/fleet-manager/errors.ts +747 -0
- package/src/fleet-manager/event-types.ts +378 -0
- package/src/fleet-manager/fleet-manager.ts +2315 -0
- package/src/fleet-manager/index.ts +128 -0
- package/src/fleet-manager/job-manager.ts +663 -0
- package/src/fleet-manager/job-queue.ts +798 -0
- package/src/fleet-manager/types.ts +839 -0
- package/src/index.ts +32 -0
- package/src/runner/__tests__/errors.test.ts +382 -0
- package/src/runner/__tests__/job-executor.test.ts +1708 -0
- package/src/runner/__tests__/message-processor.test.ts +960 -0
- package/src/runner/__tests__/sdk-adapter.test.ts +626 -0
- package/src/runner/errors.ts +307 -0
- package/src/runner/index.ts +57 -0
- package/src/runner/job-executor.ts +448 -0
- package/src/runner/message-processor.ts +355 -0
- package/src/runner/sdk-adapter.ts +191 -0
- package/src/runner/types.ts +158 -0
- package/src/scheduler/__tests__/errors.test.ts +159 -0
- package/src/scheduler/__tests__/interval.test.ts +515 -0
- package/src/scheduler/__tests__/schedule-runner.test.ts +798 -0
- package/src/scheduler/__tests__/schedule-state.test.ts +671 -0
- package/src/scheduler/__tests__/scheduler.test.ts +1280 -0
- package/src/scheduler/errors.ts +101 -0
- package/src/scheduler/index.ts +53 -0
- package/src/scheduler/interval.ts +189 -0
- package/src/scheduler/schedule-runner.ts +442 -0
- package/src/scheduler/schedule-state.ts +211 -0
- package/src/scheduler/scheduler.ts +570 -0
- package/src/scheduler/types.ts +216 -0
- package/src/state/__tests__/directory.test.ts +595 -0
- package/src/state/__tests__/fleet-state.test.ts +868 -0
- package/src/state/__tests__/job-metadata-schema.test.ts +414 -0
- package/src/state/__tests__/job-metadata.test.ts +831 -0
- package/src/state/__tests__/job-output.test.ts +856 -0
- package/src/state/__tests__/session-schema.test.ts +378 -0
- package/src/state/__tests__/session.test.ts +604 -0
- package/src/state/directory.ts +217 -0
- package/src/state/errors.ts +97 -0
- package/src/state/fleet-state.ts +284 -0
- package/src/state/index.ts +79 -0
- package/src/state/job-metadata.ts +445 -0
- package/src/state/job-output.ts +316 -0
- package/src/state/schemas/__tests__/job-output.test.ts +338 -0
- package/src/state/schemas/fleet-state.ts +120 -0
- package/src/state/schemas/index.ts +67 -0
- package/src/state/schemas/job-metadata.ts +181 -0
- package/src/state/schemas/job-output.ts +177 -0
- package/src/state/schemas/session-info.ts +92 -0
- package/src/state/session.ts +253 -0
- package/src/state/types.ts +59 -0
- package/src/state/utils/__tests__/atomic.test.ts +723 -0
- package/src/state/utils/__tests__/reads.test.ts +1071 -0
- package/src/state/utils/atomic.ts +221 -0
- package/src/state/utils/index.ts +6 -0
- package/src/state/utils/reads.ts +512 -0
- package/src/work-sources/__tests__/github.test.ts +1800 -0
- package/src/work-sources/__tests__/manager.test.ts +529 -0
- package/src/work-sources/__tests__/registry.test.ts +477 -0
- package/src/work-sources/__tests__/types.test.ts +479 -0
- package/src/work-sources/adapters/github.ts +1166 -0
- package/src/work-sources/adapters/index.ts +64 -0
- package/src/work-sources/errors.ts +71 -0
- package/src/work-sources/index.ts +148 -0
- package/src/work-sources/manager.ts +413 -0
- package/src/work-sources/registry.ts +178 -0
- package/src/work-sources/types.ts +161 -0
- package/tsconfig.json +9 -0
- package/vitest.config.ts +19 -0
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas for fleet state (state.yaml)
|
|
3
|
+
*
|
|
4
|
+
* Defines the schema for tracking fleet-wide state including agent status
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
/**
|
|
8
|
+
* Possible states for a schedule
|
|
9
|
+
*/
|
|
10
|
+
export declare const ScheduleStatusSchema: z.ZodEnum<["idle", "running", "disabled"]>;
|
|
11
|
+
/**
|
|
12
|
+
* State information for a single schedule
|
|
13
|
+
*/
|
|
14
|
+
export declare const ScheduleStateSchema: z.ZodObject<{
|
|
15
|
+
/** ISO timestamp of when this schedule last ran */
|
|
16
|
+
last_run_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
17
|
+
/** ISO timestamp of when this schedule will next run */
|
|
18
|
+
next_run_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
19
|
+
/** Current status of the schedule */
|
|
20
|
+
status: z.ZodDefault<z.ZodEnum<["idle", "running", "disabled"]>>;
|
|
21
|
+
/** Last error message if the schedule encountered an error */
|
|
22
|
+
last_error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
23
|
+
}, "strip", z.ZodTypeAny, {
|
|
24
|
+
status: "idle" | "running" | "disabled";
|
|
25
|
+
last_run_at?: string | null | undefined;
|
|
26
|
+
next_run_at?: string | null | undefined;
|
|
27
|
+
last_error?: string | null | undefined;
|
|
28
|
+
}, {
|
|
29
|
+
status?: "idle" | "running" | "disabled" | undefined;
|
|
30
|
+
last_run_at?: string | null | undefined;
|
|
31
|
+
next_run_at?: string | null | undefined;
|
|
32
|
+
last_error?: string | null | undefined;
|
|
33
|
+
}>;
|
|
34
|
+
/**
|
|
35
|
+
* Possible states for an agent
|
|
36
|
+
*/
|
|
37
|
+
export declare const AgentStatusSchema: z.ZodEnum<["idle", "running", "error"]>;
|
|
38
|
+
/**
|
|
39
|
+
* State information for a single agent
|
|
40
|
+
*/
|
|
41
|
+
export declare const AgentStateSchema: z.ZodObject<{
|
|
42
|
+
/** Current status of the agent */
|
|
43
|
+
status: z.ZodDefault<z.ZodEnum<["idle", "running", "error"]>>;
|
|
44
|
+
/** ID of the currently running job, if any */
|
|
45
|
+
current_job: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
46
|
+
/** ID of the last completed job */
|
|
47
|
+
last_job: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
48
|
+
/** Name of the schedule that will trigger the next run */
|
|
49
|
+
next_schedule: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
50
|
+
/** ISO timestamp of when the next scheduled run will occur */
|
|
51
|
+
next_trigger_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
52
|
+
/** Docker container ID if running in container */
|
|
53
|
+
container_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
54
|
+
/** Error message if status is 'error' */
|
|
55
|
+
error_message: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
56
|
+
/** Map of schedule names to their state */
|
|
57
|
+
schedules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
58
|
+
/** ISO timestamp of when this schedule last ran */
|
|
59
|
+
last_run_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
60
|
+
/** ISO timestamp of when this schedule will next run */
|
|
61
|
+
next_run_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
62
|
+
/** Current status of the schedule */
|
|
63
|
+
status: z.ZodDefault<z.ZodEnum<["idle", "running", "disabled"]>>;
|
|
64
|
+
/** Last error message if the schedule encountered an error */
|
|
65
|
+
last_error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
66
|
+
}, "strip", z.ZodTypeAny, {
|
|
67
|
+
status: "idle" | "running" | "disabled";
|
|
68
|
+
last_run_at?: string | null | undefined;
|
|
69
|
+
next_run_at?: string | null | undefined;
|
|
70
|
+
last_error?: string | null | undefined;
|
|
71
|
+
}, {
|
|
72
|
+
status?: "idle" | "running" | "disabled" | undefined;
|
|
73
|
+
last_run_at?: string | null | undefined;
|
|
74
|
+
next_run_at?: string | null | undefined;
|
|
75
|
+
last_error?: string | null | undefined;
|
|
76
|
+
}>>>;
|
|
77
|
+
}, "strip", z.ZodTypeAny, {
|
|
78
|
+
status: "error" | "idle" | "running";
|
|
79
|
+
schedules?: Record<string, {
|
|
80
|
+
status: "idle" | "running" | "disabled";
|
|
81
|
+
last_run_at?: string | null | undefined;
|
|
82
|
+
next_run_at?: string | null | undefined;
|
|
83
|
+
last_error?: string | null | undefined;
|
|
84
|
+
}> | undefined;
|
|
85
|
+
current_job?: string | null | undefined;
|
|
86
|
+
last_job?: string | null | undefined;
|
|
87
|
+
next_schedule?: string | null | undefined;
|
|
88
|
+
next_trigger_at?: string | null | undefined;
|
|
89
|
+
container_id?: string | null | undefined;
|
|
90
|
+
error_message?: string | null | undefined;
|
|
91
|
+
}, {
|
|
92
|
+
status?: "error" | "idle" | "running" | undefined;
|
|
93
|
+
schedules?: Record<string, {
|
|
94
|
+
status?: "idle" | "running" | "disabled" | undefined;
|
|
95
|
+
last_run_at?: string | null | undefined;
|
|
96
|
+
next_run_at?: string | null | undefined;
|
|
97
|
+
last_error?: string | null | undefined;
|
|
98
|
+
}> | undefined;
|
|
99
|
+
current_job?: string | null | undefined;
|
|
100
|
+
last_job?: string | null | undefined;
|
|
101
|
+
next_schedule?: string | null | undefined;
|
|
102
|
+
next_trigger_at?: string | null | undefined;
|
|
103
|
+
container_id?: string | null | undefined;
|
|
104
|
+
error_message?: string | null | undefined;
|
|
105
|
+
}>;
|
|
106
|
+
/**
|
|
107
|
+
* Fleet metadata stored in state.yaml
|
|
108
|
+
*/
|
|
109
|
+
export declare const FleetMetadataSchema: z.ZodObject<{
|
|
110
|
+
/** ISO timestamp of when the fleet was first started */
|
|
111
|
+
started_at: z.ZodOptional<z.ZodString>;
|
|
112
|
+
}, "strip", z.ZodTypeAny, {
|
|
113
|
+
started_at?: string | undefined;
|
|
114
|
+
}, {
|
|
115
|
+
started_at?: string | undefined;
|
|
116
|
+
}>;
|
|
117
|
+
/**
|
|
118
|
+
* Top-level fleet state schema (state.yaml)
|
|
119
|
+
*/
|
|
120
|
+
export declare const FleetStateSchema: z.ZodObject<{
|
|
121
|
+
/** Fleet metadata */
|
|
122
|
+
fleet: z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
123
|
+
/** ISO timestamp of when the fleet was first started */
|
|
124
|
+
started_at: z.ZodOptional<z.ZodString>;
|
|
125
|
+
}, "strip", z.ZodTypeAny, {
|
|
126
|
+
started_at?: string | undefined;
|
|
127
|
+
}, {
|
|
128
|
+
started_at?: string | undefined;
|
|
129
|
+
}>>>;
|
|
130
|
+
/** Map of agent names to their current state */
|
|
131
|
+
agents: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
132
|
+
/** Current status of the agent */
|
|
133
|
+
status: z.ZodDefault<z.ZodEnum<["idle", "running", "error"]>>;
|
|
134
|
+
/** ID of the currently running job, if any */
|
|
135
|
+
current_job: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
136
|
+
/** ID of the last completed job */
|
|
137
|
+
last_job: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
138
|
+
/** Name of the schedule that will trigger the next run */
|
|
139
|
+
next_schedule: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
140
|
+
/** ISO timestamp of when the next scheduled run will occur */
|
|
141
|
+
next_trigger_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
142
|
+
/** Docker container ID if running in container */
|
|
143
|
+
container_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
144
|
+
/** Error message if status is 'error' */
|
|
145
|
+
error_message: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
146
|
+
/** Map of schedule names to their state */
|
|
147
|
+
schedules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
148
|
+
/** ISO timestamp of when this schedule last ran */
|
|
149
|
+
last_run_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
150
|
+
/** ISO timestamp of when this schedule will next run */
|
|
151
|
+
next_run_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
152
|
+
/** Current status of the schedule */
|
|
153
|
+
status: z.ZodDefault<z.ZodEnum<["idle", "running", "disabled"]>>;
|
|
154
|
+
/** Last error message if the schedule encountered an error */
|
|
155
|
+
last_error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
156
|
+
}, "strip", z.ZodTypeAny, {
|
|
157
|
+
status: "idle" | "running" | "disabled";
|
|
158
|
+
last_run_at?: string | null | undefined;
|
|
159
|
+
next_run_at?: string | null | undefined;
|
|
160
|
+
last_error?: string | null | undefined;
|
|
161
|
+
}, {
|
|
162
|
+
status?: "idle" | "running" | "disabled" | undefined;
|
|
163
|
+
last_run_at?: string | null | undefined;
|
|
164
|
+
next_run_at?: string | null | undefined;
|
|
165
|
+
last_error?: string | null | undefined;
|
|
166
|
+
}>>>;
|
|
167
|
+
}, "strip", z.ZodTypeAny, {
|
|
168
|
+
status: "error" | "idle" | "running";
|
|
169
|
+
schedules?: Record<string, {
|
|
170
|
+
status: "idle" | "running" | "disabled";
|
|
171
|
+
last_run_at?: string | null | undefined;
|
|
172
|
+
next_run_at?: string | null | undefined;
|
|
173
|
+
last_error?: string | null | undefined;
|
|
174
|
+
}> | undefined;
|
|
175
|
+
current_job?: string | null | undefined;
|
|
176
|
+
last_job?: string | null | undefined;
|
|
177
|
+
next_schedule?: string | null | undefined;
|
|
178
|
+
next_trigger_at?: string | null | undefined;
|
|
179
|
+
container_id?: string | null | undefined;
|
|
180
|
+
error_message?: string | null | undefined;
|
|
181
|
+
}, {
|
|
182
|
+
status?: "error" | "idle" | "running" | undefined;
|
|
183
|
+
schedules?: Record<string, {
|
|
184
|
+
status?: "idle" | "running" | "disabled" | undefined;
|
|
185
|
+
last_run_at?: string | null | undefined;
|
|
186
|
+
next_run_at?: string | null | undefined;
|
|
187
|
+
last_error?: string | null | undefined;
|
|
188
|
+
}> | undefined;
|
|
189
|
+
current_job?: string | null | undefined;
|
|
190
|
+
last_job?: string | null | undefined;
|
|
191
|
+
next_schedule?: string | null | undefined;
|
|
192
|
+
next_trigger_at?: string | null | undefined;
|
|
193
|
+
container_id?: string | null | undefined;
|
|
194
|
+
error_message?: string | null | undefined;
|
|
195
|
+
}>>>>;
|
|
196
|
+
}, "strip", z.ZodTypeAny, {
|
|
197
|
+
fleet: {
|
|
198
|
+
started_at?: string | undefined;
|
|
199
|
+
};
|
|
200
|
+
agents: Record<string, {
|
|
201
|
+
status: "error" | "idle" | "running";
|
|
202
|
+
schedules?: Record<string, {
|
|
203
|
+
status: "idle" | "running" | "disabled";
|
|
204
|
+
last_run_at?: string | null | undefined;
|
|
205
|
+
next_run_at?: string | null | undefined;
|
|
206
|
+
last_error?: string | null | undefined;
|
|
207
|
+
}> | undefined;
|
|
208
|
+
current_job?: string | null | undefined;
|
|
209
|
+
last_job?: string | null | undefined;
|
|
210
|
+
next_schedule?: string | null | undefined;
|
|
211
|
+
next_trigger_at?: string | null | undefined;
|
|
212
|
+
container_id?: string | null | undefined;
|
|
213
|
+
error_message?: string | null | undefined;
|
|
214
|
+
}>;
|
|
215
|
+
}, {
|
|
216
|
+
fleet?: {
|
|
217
|
+
started_at?: string | undefined;
|
|
218
|
+
} | undefined;
|
|
219
|
+
agents?: Record<string, {
|
|
220
|
+
status?: "error" | "idle" | "running" | undefined;
|
|
221
|
+
schedules?: Record<string, {
|
|
222
|
+
status?: "idle" | "running" | "disabled" | undefined;
|
|
223
|
+
last_run_at?: string | null | undefined;
|
|
224
|
+
next_run_at?: string | null | undefined;
|
|
225
|
+
last_error?: string | null | undefined;
|
|
226
|
+
}> | undefined;
|
|
227
|
+
current_job?: string | null | undefined;
|
|
228
|
+
last_job?: string | null | undefined;
|
|
229
|
+
next_schedule?: string | null | undefined;
|
|
230
|
+
next_trigger_at?: string | null | undefined;
|
|
231
|
+
container_id?: string | null | undefined;
|
|
232
|
+
error_message?: string | null | undefined;
|
|
233
|
+
}> | undefined;
|
|
234
|
+
}>;
|
|
235
|
+
export type ScheduleStatus = z.infer<typeof ScheduleStatusSchema>;
|
|
236
|
+
export type ScheduleState = z.infer<typeof ScheduleStateSchema>;
|
|
237
|
+
export type AgentStatus = z.infer<typeof AgentStatusSchema>;
|
|
238
|
+
export type AgentState = z.infer<typeof AgentStateSchema>;
|
|
239
|
+
export type FleetMetadata = z.infer<typeof FleetMetadataSchema>;
|
|
240
|
+
export type FleetState = z.infer<typeof FleetStateSchema>;
|
|
241
|
+
/**
|
|
242
|
+
* Create a new empty fleet state
|
|
243
|
+
*/
|
|
244
|
+
export declare function createInitialFleetState(): FleetState;
|
|
245
|
+
/**
|
|
246
|
+
* Create a default schedule state
|
|
247
|
+
*/
|
|
248
|
+
export declare function createDefaultScheduleState(): ScheduleState;
|
|
249
|
+
//# sourceMappingURL=fleet-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet-state.d.ts","sourceRoot":"","sources":["../../../src/state/schemas/fleet-state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;GAEG;AACH,eAAO,MAAM,oBAAoB,4CAA0C,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAC9B,mDAAmD;;IAEnD,wDAAwD;;IAExD,qCAAqC;;IAErC,8DAA8D;;;;;;;;;;;;EAE9D,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,iBAAiB,yCAAuC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,gBAAgB;IAC3B,kCAAkC;;IAElC,8CAA8C;;IAE9C,mCAAmC;;IAEnC,0DAA0D;;IAE1D,8DAA8D;;IAE9D,kDAAkD;;IAElD,yCAAyC;;IAEzC,2CAA2C;;QArC3C,mDAAmD;;QAEnD,wDAAwD;;QAExD,qCAAqC;;QAErC,8DAA8D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiC9D,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAC9B,wDAAwD;;;;;;EAExD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;IAC3B,qBAAqB;;QARrB,wDAAwD;;;;;;;IAUxD,gDAAgD;;QApChD,kCAAkC;;QAElC,8CAA8C;;QAE9C,mCAAmC;;QAEnC,0DAA0D;;QAE1D,8DAA8D;;QAE9D,kDAAkD;;QAElD,yCAAyC;;QAEzC,2CAA2C;;YArC3C,mDAAmD;;YAEnD,wDAAwD;;YAExD,qCAAqC;;YAErC,8DAA8D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuD9D,CAAC;AAMH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAM1D;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,UAAU,CAKpD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,aAAa,CAO1D"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas for fleet state (state.yaml)
|
|
3
|
+
*
|
|
4
|
+
* Defines the schema for tracking fleet-wide state including agent status
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
// =============================================================================
|
|
8
|
+
// Schedule State Schemas
|
|
9
|
+
// =============================================================================
|
|
10
|
+
/**
|
|
11
|
+
* Possible states for a schedule
|
|
12
|
+
*/
|
|
13
|
+
export const ScheduleStatusSchema = z.enum(["idle", "running", "disabled"]);
|
|
14
|
+
/**
|
|
15
|
+
* State information for a single schedule
|
|
16
|
+
*/
|
|
17
|
+
export const ScheduleStateSchema = z.object({
|
|
18
|
+
/** ISO timestamp of when this schedule last ran */
|
|
19
|
+
last_run_at: z.string().nullable().optional(),
|
|
20
|
+
/** ISO timestamp of when this schedule will next run */
|
|
21
|
+
next_run_at: z.string().nullable().optional(),
|
|
22
|
+
/** Current status of the schedule */
|
|
23
|
+
status: ScheduleStatusSchema.default("idle"),
|
|
24
|
+
/** Last error message if the schedule encountered an error */
|
|
25
|
+
last_error: z.string().nullable().optional(),
|
|
26
|
+
});
|
|
27
|
+
// =============================================================================
|
|
28
|
+
// Agent Status Schemas
|
|
29
|
+
// =============================================================================
|
|
30
|
+
/**
|
|
31
|
+
* Possible states for an agent
|
|
32
|
+
*/
|
|
33
|
+
export const AgentStatusSchema = z.enum(["idle", "running", "error"]);
|
|
34
|
+
/**
|
|
35
|
+
* State information for a single agent
|
|
36
|
+
*/
|
|
37
|
+
export const AgentStateSchema = z.object({
|
|
38
|
+
/** Current status of the agent */
|
|
39
|
+
status: AgentStatusSchema.default("idle"),
|
|
40
|
+
/** ID of the currently running job, if any */
|
|
41
|
+
current_job: z.string().nullable().optional(),
|
|
42
|
+
/** ID of the last completed job */
|
|
43
|
+
last_job: z.string().nullable().optional(),
|
|
44
|
+
/** Name of the schedule that will trigger the next run */
|
|
45
|
+
next_schedule: z.string().nullable().optional(),
|
|
46
|
+
/** ISO timestamp of when the next scheduled run will occur */
|
|
47
|
+
next_trigger_at: z.string().nullable().optional(),
|
|
48
|
+
/** Docker container ID if running in container */
|
|
49
|
+
container_id: z.string().nullable().optional(),
|
|
50
|
+
/** Error message if status is 'error' */
|
|
51
|
+
error_message: z.string().nullable().optional(),
|
|
52
|
+
/** Map of schedule names to their state */
|
|
53
|
+
schedules: z.record(z.string(), ScheduleStateSchema).optional(),
|
|
54
|
+
});
|
|
55
|
+
// =============================================================================
|
|
56
|
+
// Fleet State Schemas
|
|
57
|
+
// =============================================================================
|
|
58
|
+
/**
|
|
59
|
+
* Fleet metadata stored in state.yaml
|
|
60
|
+
*/
|
|
61
|
+
export const FleetMetadataSchema = z.object({
|
|
62
|
+
/** ISO timestamp of when the fleet was first started */
|
|
63
|
+
started_at: z.string().optional(),
|
|
64
|
+
});
|
|
65
|
+
/**
|
|
66
|
+
* Top-level fleet state schema (state.yaml)
|
|
67
|
+
*/
|
|
68
|
+
export const FleetStateSchema = z.object({
|
|
69
|
+
/** Fleet metadata */
|
|
70
|
+
fleet: FleetMetadataSchema.optional().default({}),
|
|
71
|
+
/** Map of agent names to their current state */
|
|
72
|
+
agents: z.record(z.string(), AgentStateSchema).optional().default({}),
|
|
73
|
+
});
|
|
74
|
+
// =============================================================================
|
|
75
|
+
// Default State
|
|
76
|
+
// =============================================================================
|
|
77
|
+
/**
|
|
78
|
+
* Create a new empty fleet state
|
|
79
|
+
*/
|
|
80
|
+
export function createInitialFleetState() {
|
|
81
|
+
return {
|
|
82
|
+
fleet: {},
|
|
83
|
+
agents: {},
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Create a default schedule state
|
|
88
|
+
*/
|
|
89
|
+
export function createDefaultScheduleState() {
|
|
90
|
+
return {
|
|
91
|
+
last_run_at: null,
|
|
92
|
+
next_run_at: null,
|
|
93
|
+
status: "idle",
|
|
94
|
+
last_error: null,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=fleet-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet-state.js","sourceRoot":"","sources":["../../../src/state/schemas/fleet-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State management schemas
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all Zod schemas for state management
|
|
5
|
+
*/
|
|
6
|
+
export { ScheduleStatusSchema, ScheduleStateSchema, AgentStatusSchema, AgentStateSchema, FleetMetadataSchema, FleetStateSchema, createInitialFleetState, createDefaultScheduleState, type ScheduleStatus, type ScheduleState, type AgentStatus, type AgentState, type FleetMetadata, type FleetState, } from "./fleet-state.js";
|
|
7
|
+
export { JobStatusSchema, TriggerTypeSchema, ExitReasonSchema, JobMetadataSchema, generateJobId, createJobMetadata, type JobStatus, type TriggerType, type ExitReason, type JobMetadata, type CreateJobOptions, } from "./job-metadata.js";
|
|
8
|
+
export { JobOutputTypeSchema, JobOutputBaseSchema, SystemMessageSchema, AssistantMessageSchema, ToolUseMessageSchema, ToolResultMessageSchema, ErrorMessageSchema, JobOutputMessageSchema, validateJobOutputMessage, isValidJobOutputInput, type JobOutputType, type JobOutputBase, type SystemMessage, type AssistantMessage, type ToolUseMessage, type ToolResultMessage, type ErrorMessage, type JobOutputMessage, type JobOutputInput, } from "./job-output.js";
|
|
9
|
+
export { SessionModeSchema, SessionInfoSchema, createSessionInfo, type SessionMode, type SessionInfo, type CreateSessionOptions, } from "./session-info.js";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/state/schemas/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,0BAA0B,EAC1B,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,UAAU,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State management schemas
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all Zod schemas for state management
|
|
5
|
+
*/
|
|
6
|
+
export { ScheduleStatusSchema, ScheduleStateSchema, AgentStatusSchema, AgentStateSchema, FleetMetadataSchema, FleetStateSchema, createInitialFleetState, createDefaultScheduleState, } from "./fleet-state.js";
|
|
7
|
+
export { JobStatusSchema, TriggerTypeSchema, ExitReasonSchema, JobMetadataSchema, generateJobId, createJobMetadata, } from "./job-metadata.js";
|
|
8
|
+
export { JobOutputTypeSchema, JobOutputBaseSchema, SystemMessageSchema, AssistantMessageSchema, ToolUseMessageSchema, ToolResultMessageSchema, ErrorMessageSchema, JobOutputMessageSchema, validateJobOutputMessage, isValidJobOutputInput, } from "./job-output.js";
|
|
9
|
+
export { SessionModeSchema, SessionInfoSchema, createSessionInfo, } from "./session-info.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/state/schemas/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,0BAA0B,GAO3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,GAMlB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,GAUtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAIlB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas for job metadata (job-<id>.yaml)
|
|
3
|
+
*
|
|
4
|
+
* Defines the schema for tracking individual job execution metadata
|
|
5
|
+
* including timing, status, and execution context.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
/**
|
|
9
|
+
* Possible states for a job
|
|
10
|
+
*/
|
|
11
|
+
export declare const JobStatusSchema: z.ZodEnum<["pending", "running", "completed", "failed", "cancelled"]>;
|
|
12
|
+
/**
|
|
13
|
+
* How the job was triggered
|
|
14
|
+
*/
|
|
15
|
+
export declare const TriggerTypeSchema: z.ZodEnum<["manual", "schedule", "webhook", "chat", "fork"]>;
|
|
16
|
+
/**
|
|
17
|
+
* Reason why a job exited
|
|
18
|
+
*/
|
|
19
|
+
export declare const ExitReasonSchema: z.ZodEnum<["success", "error", "timeout", "cancelled", "max_turns"]>;
|
|
20
|
+
/**
|
|
21
|
+
* Job metadata schema for individual job files
|
|
22
|
+
*
|
|
23
|
+
* Each job is stored as .herdctl/jobs/job-<id>.yaml
|
|
24
|
+
*/
|
|
25
|
+
export declare const JobMetadataSchema: z.ZodObject<{
|
|
26
|
+
/** Unique job identifier (format: job-YYYY-MM-DD-<random6>) */
|
|
27
|
+
id: z.ZodString;
|
|
28
|
+
/** Name of the agent that executed this job */
|
|
29
|
+
agent: z.ZodString;
|
|
30
|
+
/** Schedule name that triggered the job (if applicable) */
|
|
31
|
+
schedule: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
32
|
+
/** How the job was triggered */
|
|
33
|
+
trigger_type: z.ZodEnum<["manual", "schedule", "webhook", "chat", "fork"]>;
|
|
34
|
+
/** Current status of the job */
|
|
35
|
+
status: z.ZodEnum<["pending", "running", "completed", "failed", "cancelled"]>;
|
|
36
|
+
/** Reason the job exited (only set when status is completed/failed/cancelled) */
|
|
37
|
+
exit_reason: z.ZodOptional<z.ZodNullable<z.ZodEnum<["success", "error", "timeout", "cancelled", "max_turns"]>>>;
|
|
38
|
+
/** Session ID for the Claude agent session */
|
|
39
|
+
session_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
40
|
+
/** Job ID this was forked from (if trigger_type is 'fork') */
|
|
41
|
+
forked_from: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
42
|
+
/** ISO timestamp when the job started */
|
|
43
|
+
started_at: z.ZodString;
|
|
44
|
+
/** ISO timestamp when the job finished (null if still running) */
|
|
45
|
+
finished_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
46
|
+
/** Duration of the job in seconds (calculated when finished) */
|
|
47
|
+
duration_seconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
48
|
+
/** The prompt that was given to the agent */
|
|
49
|
+
prompt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
50
|
+
/** Brief summary of what the job accomplished */
|
|
51
|
+
summary: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
52
|
+
/** Path to the output file containing full session output */
|
|
53
|
+
output_file: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
54
|
+
}, "strip", z.ZodTypeAny, {
|
|
55
|
+
status: "running" | "pending" | "completed" | "failed" | "cancelled";
|
|
56
|
+
started_at: string;
|
|
57
|
+
id: string;
|
|
58
|
+
agent: string;
|
|
59
|
+
trigger_type: "webhook" | "chat" | "manual" | "schedule" | "fork";
|
|
60
|
+
prompt?: string | null | undefined;
|
|
61
|
+
schedule?: string | null | undefined;
|
|
62
|
+
exit_reason?: "max_turns" | "timeout" | "error" | "success" | "cancelled" | null | undefined;
|
|
63
|
+
session_id?: string | null | undefined;
|
|
64
|
+
forked_from?: string | null | undefined;
|
|
65
|
+
finished_at?: string | null | undefined;
|
|
66
|
+
duration_seconds?: number | null | undefined;
|
|
67
|
+
summary?: string | null | undefined;
|
|
68
|
+
output_file?: string | null | undefined;
|
|
69
|
+
}, {
|
|
70
|
+
status: "running" | "pending" | "completed" | "failed" | "cancelled";
|
|
71
|
+
started_at: string;
|
|
72
|
+
id: string;
|
|
73
|
+
agent: string;
|
|
74
|
+
trigger_type: "webhook" | "chat" | "manual" | "schedule" | "fork";
|
|
75
|
+
prompt?: string | null | undefined;
|
|
76
|
+
schedule?: string | null | undefined;
|
|
77
|
+
exit_reason?: "max_turns" | "timeout" | "error" | "success" | "cancelled" | null | undefined;
|
|
78
|
+
session_id?: string | null | undefined;
|
|
79
|
+
forked_from?: string | null | undefined;
|
|
80
|
+
finished_at?: string | null | undefined;
|
|
81
|
+
duration_seconds?: number | null | undefined;
|
|
82
|
+
summary?: string | null | undefined;
|
|
83
|
+
output_file?: string | null | undefined;
|
|
84
|
+
}>;
|
|
85
|
+
export type JobStatus = z.infer<typeof JobStatusSchema>;
|
|
86
|
+
export type TriggerType = z.infer<typeof TriggerTypeSchema>;
|
|
87
|
+
export type ExitReason = z.infer<typeof ExitReasonSchema>;
|
|
88
|
+
export type JobMetadata = z.infer<typeof JobMetadataSchema>;
|
|
89
|
+
/**
|
|
90
|
+
* Options for creating a new job
|
|
91
|
+
*/
|
|
92
|
+
export interface CreateJobOptions {
|
|
93
|
+
/** Name of the agent executing the job */
|
|
94
|
+
agent: string;
|
|
95
|
+
/** How the job was triggered */
|
|
96
|
+
trigger_type: TriggerType;
|
|
97
|
+
/** Schedule name (for scheduled jobs) */
|
|
98
|
+
schedule?: string | null;
|
|
99
|
+
/** The prompt given to the agent */
|
|
100
|
+
prompt?: string | null;
|
|
101
|
+
/** Parent job ID (for forked jobs) */
|
|
102
|
+
forked_from?: string | null;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Generate a unique job ID with format: job-YYYY-MM-DD-<random6>
|
|
106
|
+
*
|
|
107
|
+
* @param date - Optional date to use (defaults to now)
|
|
108
|
+
* @param randomFn - Optional random function for testing
|
|
109
|
+
*/
|
|
110
|
+
export declare function generateJobId(date?: Date, randomFn?: () => string): string;
|
|
111
|
+
/**
|
|
112
|
+
* Create initial job metadata for a new job
|
|
113
|
+
*
|
|
114
|
+
* @param options - Job creation options
|
|
115
|
+
* @param idGenerator - Optional function to generate job ID (for testing)
|
|
116
|
+
*/
|
|
117
|
+
export declare function createJobMetadata(options: CreateJobOptions, idGenerator?: () => string): JobMetadata;
|
|
118
|
+
//# sourceMappingURL=job-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job-metadata.d.ts","sourceRoot":"","sources":["../../../src/state/schemas/job-metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;GAEG;AACH,eAAO,MAAM,eAAe,uEAM1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,8DAM5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,sEAM3B,CAAC;AAMH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;IAC5B,+DAA+D;;IAK/D,+CAA+C;;IAG/C,2DAA2D;;IAG3D,gCAAgC;;IAGhC,gCAAgC;;IAGhC,iFAAiF;;IAGjF,8CAA8C;;IAG9C,8DAA8D;;IAO9D,yCAAyC;;IAGzC,kEAAkE;;IAGlE,gEAAgE;;IAGhE,6CAA6C;;IAG7C,iDAAiD;;IAGjD,6DAA6D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE7D,CAAC;AAMH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAM5D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,YAAY,EAAE,WAAW,CAAC;IAC1B,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,IAAI,GAAE,IAAiB,EACvB,QAAQ,GAAE,MAAM,MAAqD,GACpE,MAAM,CAOR;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,gBAAgB,EACzB,WAAW,GAAE,MAAM,MAAsB,GACxC,WAAW,CAmBb"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas for job metadata (job-<id>.yaml)
|
|
3
|
+
*
|
|
4
|
+
* Defines the schema for tracking individual job execution metadata
|
|
5
|
+
* including timing, status, and execution context.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// Job Status Schemas
|
|
10
|
+
// =============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Possible states for a job
|
|
13
|
+
*/
|
|
14
|
+
export const JobStatusSchema = z.enum([
|
|
15
|
+
"pending",
|
|
16
|
+
"running",
|
|
17
|
+
"completed",
|
|
18
|
+
"failed",
|
|
19
|
+
"cancelled",
|
|
20
|
+
]);
|
|
21
|
+
/**
|
|
22
|
+
* How the job was triggered
|
|
23
|
+
*/
|
|
24
|
+
export const TriggerTypeSchema = z.enum([
|
|
25
|
+
"manual",
|
|
26
|
+
"schedule",
|
|
27
|
+
"webhook",
|
|
28
|
+
"chat",
|
|
29
|
+
"fork",
|
|
30
|
+
]);
|
|
31
|
+
/**
|
|
32
|
+
* Reason why a job exited
|
|
33
|
+
*/
|
|
34
|
+
export const ExitReasonSchema = z.enum([
|
|
35
|
+
"success",
|
|
36
|
+
"error",
|
|
37
|
+
"timeout",
|
|
38
|
+
"cancelled",
|
|
39
|
+
"max_turns",
|
|
40
|
+
]);
|
|
41
|
+
// =============================================================================
|
|
42
|
+
// Job Metadata Schema
|
|
43
|
+
// =============================================================================
|
|
44
|
+
/**
|
|
45
|
+
* Job metadata schema for individual job files
|
|
46
|
+
*
|
|
47
|
+
* Each job is stored as .herdctl/jobs/job-<id>.yaml
|
|
48
|
+
*/
|
|
49
|
+
export const JobMetadataSchema = z.object({
|
|
50
|
+
/** Unique job identifier (format: job-YYYY-MM-DD-<random6>) */
|
|
51
|
+
id: z.string().regex(/^job-\d{4}-\d{2}-\d{2}-[a-z0-9]{6}$/, {
|
|
52
|
+
message: "Job ID must match format: job-YYYY-MM-DD-<random6>",
|
|
53
|
+
}),
|
|
54
|
+
/** Name of the agent that executed this job */
|
|
55
|
+
agent: z.string().min(1),
|
|
56
|
+
/** Schedule name that triggered the job (if applicable) */
|
|
57
|
+
schedule: z.string().nullable().optional(),
|
|
58
|
+
/** How the job was triggered */
|
|
59
|
+
trigger_type: TriggerTypeSchema,
|
|
60
|
+
/** Current status of the job */
|
|
61
|
+
status: JobStatusSchema,
|
|
62
|
+
/** Reason the job exited (only set when status is completed/failed/cancelled) */
|
|
63
|
+
exit_reason: ExitReasonSchema.nullable().optional(),
|
|
64
|
+
/** Session ID for the Claude agent session */
|
|
65
|
+
session_id: z.string().nullable().optional(),
|
|
66
|
+
/** Job ID this was forked from (if trigger_type is 'fork') */
|
|
67
|
+
forked_from: z
|
|
68
|
+
.string()
|
|
69
|
+
.regex(/^job-\d{4}-\d{2}-\d{2}-[a-z0-9]{6}$/)
|
|
70
|
+
.nullable()
|
|
71
|
+
.optional(),
|
|
72
|
+
/** ISO timestamp when the job started */
|
|
73
|
+
started_at: z.string(),
|
|
74
|
+
/** ISO timestamp when the job finished (null if still running) */
|
|
75
|
+
finished_at: z.string().nullable().optional(),
|
|
76
|
+
/** Duration of the job in seconds (calculated when finished) */
|
|
77
|
+
duration_seconds: z.number().nonnegative().nullable().optional(),
|
|
78
|
+
/** The prompt that was given to the agent */
|
|
79
|
+
prompt: z.string().nullable().optional(),
|
|
80
|
+
/** Brief summary of what the job accomplished */
|
|
81
|
+
summary: z.string().nullable().optional(),
|
|
82
|
+
/** Path to the output file containing full session output */
|
|
83
|
+
output_file: z.string().nullable().optional(),
|
|
84
|
+
});
|
|
85
|
+
/**
|
|
86
|
+
* Generate a unique job ID with format: job-YYYY-MM-DD-<random6>
|
|
87
|
+
*
|
|
88
|
+
* @param date - Optional date to use (defaults to now)
|
|
89
|
+
* @param randomFn - Optional random function for testing
|
|
90
|
+
*/
|
|
91
|
+
export function generateJobId(date = new Date(), randomFn = () => Math.random().toString(36).slice(2, 8)) {
|
|
92
|
+
const year = date.getFullYear();
|
|
93
|
+
const month = String(date.getMonth() + 1).padStart(2, "0");
|
|
94
|
+
const day = String(date.getDate()).padStart(2, "0");
|
|
95
|
+
const random = randomFn().slice(0, 6).padEnd(6, "0");
|
|
96
|
+
return `job-${year}-${month}-${day}-${random}`;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Create initial job metadata for a new job
|
|
100
|
+
*
|
|
101
|
+
* @param options - Job creation options
|
|
102
|
+
* @param idGenerator - Optional function to generate job ID (for testing)
|
|
103
|
+
*/
|
|
104
|
+
export function createJobMetadata(options, idGenerator = generateJobId) {
|
|
105
|
+
const now = new Date().toISOString();
|
|
106
|
+
return {
|
|
107
|
+
id: idGenerator(),
|
|
108
|
+
agent: options.agent,
|
|
109
|
+
schedule: options.schedule ?? null,
|
|
110
|
+
trigger_type: options.trigger_type,
|
|
111
|
+
status: "pending",
|
|
112
|
+
exit_reason: null,
|
|
113
|
+
session_id: null,
|
|
114
|
+
forked_from: options.forked_from ?? null,
|
|
115
|
+
started_at: now,
|
|
116
|
+
finished_at: null,
|
|
117
|
+
duration_seconds: null,
|
|
118
|
+
prompt: options.prompt ?? null,
|
|
119
|
+
summary: null,
|
|
120
|
+
output_file: null,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=job-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job-metadata.js","sourceRoot":"","sources":["../../../src/state/schemas/job-metadata.ts"],"names":[],"mappings":"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"}
|