@atolis-hq/wake 0.2.97 → 0.3.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/dist/src/activities/agent/agent-activity-definition.js +26 -0
- package/dist/src/activities/agent/agent-activity.js +171 -0
- package/dist/src/activities/agent/agent-result.js +149 -0
- package/dist/src/activities/contracts/activity.js +10 -0
- package/dist/src/activities/contracts/config.js +2 -0
- package/dist/src/activities/contracts/event-schema.js +302 -0
- package/dist/src/activities/contracts/events.js +42 -0
- package/dist/src/activities/contracts/identifiers.js +29 -0
- package/dist/src/activities/contracts/registry.js +71 -0
- package/dist/src/activities/contracts/streams.js +17 -0
- package/dist/src/activities/contracts/vocabulary.js +58 -0
- package/dist/src/activities/index.js +21 -0
- package/dist/src/activities/pr/activity-support.js +111 -0
- package/dist/src/activities/pr/application.js +158 -0
- package/dist/src/activities/pr/approve.js +85 -0
- package/dist/src/activities/pr/capability.js +11 -0
- package/dist/src/activities/pr/decision-claim.js +76 -0
- package/dist/src/activities/pr/event-drafts.js +66 -0
- package/dist/src/activities/pr/intent.js +37 -0
- package/dist/src/activities/pr/merge-authority-gate.js +14 -0
- package/dist/src/activities/pr/merge.js +110 -0
- package/dist/src/activities/pr/policy.js +135 -0
- package/dist/src/activities/pr/projection.js +130 -0
- package/dist/src/activities/pr/vocabulary.js +30 -0
- package/dist/src/activities/review/authorization.js +22 -0
- package/dist/src/activities/review/contracts.js +22 -0
- package/dist/src/activities/review/signals.js +3 -0
- package/dist/src/bootstrap/analytics-projection.js +26 -0
- package/dist/src/bootstrap/board-projection.js +337 -0
- package/dist/src/bootstrap/composition-root.js +382 -0
- package/dist/src/bootstrap/config/load-config.js +51 -0
- package/dist/src/bootstrap/config/root-schema.js +134 -0
- package/dist/src/bootstrap/external-ref.js +12 -0
- package/dist/src/bootstrap/fake-provider-files.js +44 -0
- package/dist/src/bootstrap/fake-scenarios.js +22 -0
- package/dist/src/bootstrap/index.js +48 -0
- package/dist/src/bootstrap/initialise.js +434 -0
- package/dist/src/bootstrap/paths.js +15 -0
- package/dist/src/bootstrap/projection-runtime.js +27 -0
- package/dist/src/bootstrap/runner-quota-reporter.js +21 -0
- package/dist/src/bootstrap/runner-registry.js +30 -0
- package/dist/src/bootstrap/schedule-checkpoint-store.js +49 -0
- package/dist/src/bootstrap/self-update-application.js +195 -0
- package/dist/src/bootstrap/self-update-failure-log.js +33 -0
- package/dist/src/bootstrap/source-update-port.js +47 -0
- package/dist/src/bootstrap/status-publish-activity.js +42 -0
- package/dist/src/bootstrap/surface-api-applications.js +325 -0
- package/dist/src/bootstrap/surface-api-execution-applications.js +95 -0
- package/dist/src/bootstrap/surface-api-metadata.js +12 -0
- package/dist/src/bootstrap/surface-api-projection-pages.js +22 -0
- package/dist/src/bootstrap/surface-api-run-context.js +5 -0
- package/dist/src/bootstrap/surface-api-transcripts.js +57 -0
- package/dist/src/bootstrap/surface-api-work-applications.js +199 -0
- package/dist/src/bootstrap/surface-applications.js +7 -0
- package/dist/src/bootstrap/surface-cli-applications.js +701 -0
- package/dist/src/bootstrap/update-ledger.js +61 -0
- package/dist/src/bootstrap/update-maintenance-lease.js +176 -0
- package/dist/src/{version.js → bootstrap/version.js} +35 -51
- package/dist/src/control-plane/application/advance-once.js +184 -0
- package/dist/src/control-plane/application/control-plane-projection.js +42 -0
- package/dist/src/control-plane/application/control-plane-service.js +42 -0
- package/dist/src/control-plane/application/intake-pipeline.js +29 -0
- package/dist/src/control-plane/application/runner-control-service.js +66 -0
- package/dist/src/control-plane/application/runner-pipeline.js +57 -0
- package/dist/src/control-plane/application/schedule-service.js +47 -0
- package/dist/src/control-plane/application/work-cancellation-policy.js +31 -0
- package/dist/src/control-plane/contracts/commands.js +10 -0
- package/dist/src/control-plane/contracts/config.js +22 -0
- package/dist/src/control-plane/contracts/events.js +81 -0
- package/dist/src/control-plane/contracts/streams.js +5 -0
- package/dist/src/control-plane/domain/dispatch-policy.js +15 -0
- package/dist/src/control-plane/domain/quota-policy.js +26 -0
- package/dist/src/control-plane/domain/runner-quota.js +35 -0
- package/dist/src/control-plane/domain/schedule-policy.js +46 -0
- package/dist/src/control-plane/index.js +20 -0
- package/dist/src/control-plane/infrastructure/intake-host.js +24 -0
- package/dist/src/control-plane/infrastructure/resident-host.js +45 -0
- package/dist/src/control-plane/infrastructure/tick-host.js +35 -0
- package/dist/src/execution/application/activation-claim.js +50 -0
- package/dist/src/execution/application/active-run-cancellation.js +14 -0
- package/dist/src/execution/application/execution-activity.js +97 -0
- package/dist/src/execution/application/execution-projection.js +17 -0
- package/dist/src/execution/application/execution-service.js +372 -0
- package/dist/src/execution/application/execution-validation.js +26 -0
- package/dist/src/execution/application/recovery-service.js +212 -0
- package/dist/src/execution/application/run-lifecycle.js +115 -0
- package/dist/src/execution/application/run-liveness-service.js +80 -0
- package/dist/src/execution/application/run-repository.js +27 -0
- package/dist/src/execution/contracts/commands.js +1 -0
- package/dist/src/execution/contracts/config.js +35 -0
- package/dist/src/execution/contracts/control-plane.js +1 -0
- package/dist/src/execution/contracts/event-factory.js +53 -0
- package/dist/src/execution/contracts/events.js +274 -0
- package/dist/src/execution/contracts/identifiers.js +5 -0
- package/dist/src/execution/contracts/liveness.js +1 -0
- package/dist/src/execution/contracts/results.js +1 -0
- package/dist/src/execution/contracts/runner.js +15 -0
- package/dist/src/execution/contracts/streams.js +10 -0
- package/dist/src/execution/contracts/views.js +1 -0
- package/dist/src/execution/contracts/vocabulary.js +43 -0
- package/dist/src/execution/contracts/workspace.js +1 -0
- package/dist/src/execution/domain/run-result.js +34 -0
- package/dist/src/execution/domain/run.js +142 -0
- package/dist/src/execution/index.js +31 -0
- package/dist/src/execution/infrastructure/agent-runner-adapter.js +114 -0
- package/dist/src/execution/infrastructure/process-execution.js +29 -0
- package/dist/src/execution/infrastructure/prompt-templates.js +42 -0
- package/dist/src/execution/infrastructure/runners/claude.js +120 -0
- package/dist/src/execution/infrastructure/runners/codex.js +143 -0
- package/dist/src/execution/infrastructure/runners/command.js +4 -0
- package/dist/src/execution/infrastructure/runners/cursor.js +69 -0
- package/dist/src/execution/infrastructure/runners/fake-scenarios.js +99 -0
- package/dist/src/execution/infrastructure/runners/fake.js +65 -0
- package/dist/src/execution/infrastructure/runners/registry.js +26 -0
- package/dist/src/execution/infrastructure/transcript-store.js +223 -0
- package/dist/src/execution/infrastructure/transcripts.js +11 -0
- package/dist/src/execution/infrastructure/workspace/fake-workspace.js +19 -0
- package/dist/src/execution/infrastructure/workspace/git-workspace.js +241 -0
- package/dist/src/integrations/application/agent-run-publication-reactor.js +111 -0
- package/dist/src/integrations/application/artifact-registration-reactor.js +159 -0
- package/dist/src/integrations/application/poll-service.js +25 -0
- package/dist/src/integrations/application/terminal-agent-run-report.js +40 -0
- package/dist/src/integrations/application/work-admission.js +31 -0
- package/dist/src/integrations/application/work-conclusion.js +19 -0
- package/dist/src/integrations/contracts/artifact-events.js +60 -0
- package/dist/src/integrations/contracts/artifact-vocabulary.js +9 -0
- package/dist/src/integrations/contracts/config.js +14 -0
- package/dist/src/integrations/contracts/identifiers.js +5 -0
- package/dist/src/integrations/contracts/intake-rules.js +14 -0
- package/dist/src/integrations/contracts/intake.js +1 -0
- package/dist/src/integrations/contracts/outcome-vocabulary.js +7 -0
- package/dist/src/integrations/contracts/provider.js +37 -0
- package/dist/src/integrations/contracts/streams.js +10 -0
- package/dist/src/integrations/delivery/application/delivery-outcome-reactor.js +75 -0
- package/dist/src/integrations/delivery/application/delivery-projector.js +165 -0
- package/dist/src/integrations/delivery/application/delivery-service.js +173 -0
- package/dist/src/integrations/delivery/contracts/commands.js +1 -0
- package/dist/src/integrations/delivery/contracts/config.js +1 -0
- package/dist/src/integrations/delivery/contracts/event-factory.js +18 -0
- package/dist/src/integrations/delivery/contracts/events.js +86 -0
- package/dist/src/integrations/delivery/contracts/intents.js +89 -0
- package/dist/src/integrations/delivery/contracts/views.js +1 -0
- package/dist/src/integrations/delivery/contracts/vocabulary.js +22 -0
- package/dist/src/integrations/fake/durable-delivery-provider.js +48 -0
- package/dist/src/integrations/fake/external-sink.js +9 -0
- package/dist/src/integrations/fake/external-source.js +44 -0
- package/dist/src/integrations/fake/inbound-translator.js +130 -0
- package/dist/src/integrations/fake/provider.js +95 -0
- package/dist/src/integrations/github/application/agent-context-reader.js +54 -0
- package/dist/src/integrations/github/application/agent-run-comment.js +94 -0
- package/dist/src/integrations/github/application/comment-history-reader.js +43 -0
- package/dist/src/integrations/github/application/inbound-context.js +10 -0
- package/dist/src/integrations/github/application/inbound-review-signals.js +159 -0
- package/dist/src/integrations/github/application/inbound-translator.js +231 -0
- package/dist/src/integrations/github/application/inbound-watch-gate-signals.js +84 -0
- package/dist/src/integrations/github/application/intake-policy.js +23 -0
- package/dist/src/integrations/github/application/outbound-translator.js +47 -0
- package/dist/src/integrations/github/application/poll-service.js +29 -0
- package/dist/src/integrations/github/application/pull-request-translation.js +10 -0
- package/dist/src/integrations/github/application/resource-links.js +8 -0
- package/dist/src/integrations/github/application/review-command-translator.js +16 -0
- package/dist/src/integrations/github/application/wake-labels.js +95 -0
- package/dist/src/integrations/github/contracts/config.js +47 -0
- package/dist/src/integrations/github/contracts/events.js +127 -0
- package/dist/src/integrations/github/contracts/external-key.js +19 -0
- package/dist/src/integrations/github/contracts/payloads.js +9 -0
- package/dist/src/integrations/github/contracts/vocabulary.js +55 -0
- package/dist/src/integrations/github/index.js +31 -0
- package/dist/src/integrations/github/infrastructure/client-reads.js +214 -0
- package/dist/src/integrations/github/infrastructure/client.js +132 -0
- package/dist/src/integrations/github/infrastructure/content-fingerprint.js +10 -0
- package/dist/src/integrations/github/infrastructure/delivery.js +31 -0
- package/dist/src/integrations/github/infrastructure/etag-cache.js +56 -0
- package/dist/src/integrations/github/infrastructure/gh-auth.js +19 -0
- package/dist/src/integrations/github/infrastructure/issue-source.js +109 -0
- package/dist/src/integrations/github/infrastructure/pr-source.js +186 -0
- package/dist/src/integrations/github/infrastructure/review-source.js +70 -0
- package/dist/src/integrations/github/infrastructure/source.js +108 -0
- package/dist/src/integrations/github/provider.js +96 -0
- package/dist/src/integrations/index.js +30 -0
- package/dist/src/kernel/contracts/checkpoint-store.js +1 -0
- package/dist/src/kernel/contracts/clock.js +1 -0
- package/dist/src/kernel/contracts/commands.js +1 -0
- package/dist/src/kernel/contracts/event-journal.js +2 -0
- package/dist/src/kernel/contracts/event-schema.js +54 -0
- package/dist/src/kernel/contracts/events.js +11 -0
- package/dist/src/kernel/contracts/id-generator.js +1 -0
- package/dist/src/kernel/contracts/identifiers.js +8 -0
- package/dist/src/kernel/contracts/projection-store.js +1 -0
- package/dist/src/kernel/contracts/relations.js +1 -0
- package/dist/src/kernel/contracts/schema.js +17 -0
- package/dist/src/kernel/contracts/vocabulary.js +6 -0
- package/dist/src/kernel/domain/event-envelope.js +29 -0
- package/dist/src/kernel/domain/match-mode.js +11 -0
- package/dist/src/kernel/domain/relation.js +10 -0
- package/dist/src/kernel/index.js +17 -0
- package/dist/src/{lib/clock.js → kernel/infrastructure/system-clock.js} +3 -3
- package/dist/src/kernel/infrastructure/ulid-id-generator.js +9 -0
- package/dist/src/main.js +137 -1030
- package/dist/src/orchestration/application/accept-activity-outcome.js +25 -0
- package/dist/src/orchestration/application/accept-signal.js +35 -0
- package/dist/src/orchestration/application/advance-workflow.js +160 -0
- package/dist/src/orchestration/application/coordination-claims.js +107 -0
- package/dist/src/orchestration/application/group-budget-recorder.js +43 -0
- package/dist/src/orchestration/application/orchestration-projection.js +20 -0
- package/dist/src/orchestration/application/orchestration-repository.js +36 -0
- package/dist/src/orchestration/application/orchestration-service.js +82 -0
- package/dist/src/orchestration/application/request-child.js +118 -0
- package/dist/src/orchestration/application/signal-reactor.js +17 -0
- package/dist/src/orchestration/application/start-workflow.js +51 -0
- package/dist/src/orchestration/application/watch-reactor.js +82 -0
- package/dist/src/orchestration/contracts/activity-outcome.js +18 -0
- package/dist/src/orchestration/contracts/commands.js +1 -0
- package/dist/src/orchestration/contracts/config.js +128 -0
- package/dist/src/orchestration/contracts/event-decoder.js +263 -0
- package/dist/src/orchestration/contracts/events.js +41 -0
- package/dist/src/orchestration/contracts/identifiers.js +35 -0
- package/dist/src/orchestration/contracts/streams.js +38 -0
- package/dist/src/orchestration/contracts/views.js +1 -0
- package/dist/src/orchestration/contracts/vocabulary.js +30 -0
- package/dist/src/orchestration/domain/activation-policy.js +55 -0
- package/dist/src/orchestration/domain/approval-defaults.js +17 -0
- package/dist/src/orchestration/domain/child-policy.js +63 -0
- package/dist/src/orchestration/domain/compiler.js +162 -0
- package/dist/src/orchestration/domain/coordination-events.js +25 -0
- package/dist/src/orchestration/domain/decision-events.js +47 -0
- package/dist/src/orchestration/domain/interpreter.js +49 -0
- package/dist/src/orchestration/domain/operator-retry-policy.js +34 -0
- package/dist/src/orchestration/domain/retry-policy.js +26 -0
- package/dist/src/orchestration/domain/signal-policy.js +120 -0
- package/dist/src/orchestration/domain/supplemental-policy.js +61 -0
- package/dist/src/orchestration/domain/transition.js +55 -0
- package/dist/src/orchestration/domain/workflow-graph.js +41 -0
- package/dist/src/orchestration/domain/workflow-instance-events.js +236 -0
- package/dist/src/orchestration/domain/workflow-instance.js +41 -0
- package/dist/src/orchestration/domain/workflow-selector.js +21 -0
- package/dist/src/orchestration/index.js +19 -0
- package/dist/src/persistence/application/projection-runner.js +79 -0
- package/dist/src/persistence/filesystem/file-checkpoint-store.js +35 -0
- package/dist/src/persistence/filesystem/file-event-journal.js +143 -0
- package/dist/src/persistence/filesystem/file-lock.js +91 -0
- package/dist/src/persistence/filesystem/file-projection-store.js +64 -0
- package/dist/src/persistence/index.js +8 -0
- package/dist/src/persistence/memory/in-memory-checkpoint-store.js +14 -0
- package/dist/src/persistence/memory/in-memory-event-journal.js +88 -0
- package/dist/src/persistence/memory/in-memory-projection-store.js +17 -0
- package/dist/src/resources/application/lookup-projections.js +48 -0
- package/dist/src/resources/application/resource-lookup.js +16 -0
- package/dist/src/resources/application/resource-projections.js +81 -0
- package/dist/src/resources/application/resource-repository.js +18 -0
- package/dist/src/resources/application/resource-service.js +83 -0
- package/dist/src/resources/contracts/commands.js +1 -0
- package/dist/src/resources/contracts/config.js +2 -0
- package/dist/src/resources/contracts/events.js +83 -0
- package/dist/src/resources/contracts/identifiers.js +15 -0
- package/dist/src/resources/contracts/streams.js +6 -0
- package/dist/src/resources/contracts/views.js +1 -0
- package/dist/src/resources/contracts/vocabulary.js +67 -0
- package/dist/src/resources/domain/correlation.js +8 -0
- package/dist/src/resources/domain/resource.js +58 -0
- package/dist/src/resources/index.js +14 -0
- package/dist/src/surfaces/api/contracts/activities.js +1 -0
- package/dist/src/surfaces/api/contracts/board.js +2 -0
- package/dist/src/surfaces/api/contracts/common.js +46 -0
- package/dist/src/surfaces/api/contracts/control-plane.js +5 -0
- package/dist/src/surfaces/api/contracts/events.js +1 -0
- package/dist/src/surfaces/api/contracts/execution.js +1 -0
- package/dist/src/surfaces/api/contracts/index.js +13 -0
- package/dist/src/surfaces/api/contracts/observability.js +1 -0
- package/dist/src/surfaces/api/contracts/orchestration.js +1 -0
- package/dist/src/surfaces/api/contracts/resources.js +1 -0
- package/dist/src/surfaces/api/contracts/status.js +1 -0
- package/dist/src/surfaces/api/contracts/system.js +1 -0
- package/dist/src/surfaces/api/contracts/transport-values.js +39 -0
- package/dist/src/surfaces/api/contracts/work.js +17 -0
- package/dist/src/surfaces/api/http-server.js +121 -0
- package/dist/src/surfaces/api/presenters/activities.js +1 -0
- package/dist/src/surfaces/api/presenters/board.js +3 -0
- package/dist/src/surfaces/api/presenters/control-plane.js +1 -0
- package/dist/src/surfaces/api/presenters/events.js +1 -0
- package/dist/src/surfaces/api/presenters/execution.js +59 -0
- package/dist/src/surfaces/api/presenters/observability.js +1 -0
- package/dist/src/surfaces/api/presenters/orchestration.js +19 -0
- package/dist/src/surfaces/api/presenters/resources.js +15 -0
- package/dist/src/surfaces/api/presenters/status.js +3 -0
- package/dist/src/surfaces/api/presenters/system.js +14 -0
- package/dist/src/surfaces/api/presenters/work.js +16 -0
- package/dist/src/surfaces/api/problem-details.js +9 -0
- package/dist/src/surfaces/api/router.js +13 -0
- package/dist/src/surfaces/api/routes/activities.js +1 -0
- package/dist/src/surfaces/api/routes/applications.js +1 -0
- package/dist/src/surfaces/api/routes/commands.js +82 -0
- package/dist/src/surfaces/api/routes/control-plane.js +6 -0
- package/dist/src/surfaces/api/routes/events.js +1 -0
- package/dist/src/surfaces/api/routes/execution.js +8 -0
- package/dist/src/surfaces/api/routes/index.js +18 -0
- package/dist/src/surfaces/api/routes/observability.js +1 -0
- package/dist/src/surfaces/api/routes/orchestration.js +1 -0
- package/dist/src/surfaces/api/routes/pagination.js +78 -0
- package/dist/src/surfaces/api/routes/read.js +135 -0
- package/dist/src/surfaces/api/routes/resources.js +1 -0
- package/dist/src/surfaces/api/routes/responses.js +67 -0
- package/dist/src/surfaces/api/routes/system.js +1 -0
- package/dist/src/surfaces/api/routes/work.js +9 -0
- package/dist/src/surfaces/cli/commands/api.js +1 -0
- package/dist/src/surfaces/cli/commands/audit.js +10 -0
- package/dist/src/surfaces/cli/commands/correlate.js +2 -0
- package/dist/src/surfaces/cli/commands/doctor.js +6 -0
- package/dist/src/surfaces/cli/commands/init.js +39 -0
- package/dist/src/surfaces/cli/commands/sandbox-entrypoint.js +33 -0
- package/dist/src/surfaces/cli/commands/sandbox-setup.js +29 -0
- package/dist/src/surfaces/cli/commands/sandbox.js +105 -0
- package/dist/src/surfaces/cli/commands/self-update.js +38 -0
- package/dist/src/surfaces/cli/commands/smoke.js +16 -0
- package/dist/src/surfaces/cli/commands/start.js +1 -0
- package/dist/src/surfaces/cli/commands/stop.js +13 -0
- package/dist/src/surfaces/cli/commands/tick.js +1 -0
- package/dist/src/surfaces/cli/commands/ui.js +2 -0
- package/dist/src/surfaces/cli/commands/validate-state.js +5 -0
- package/dist/src/surfaces/cli/infrastructure/docker-cli.js +221 -0
- package/dist/src/surfaces/cli/infrastructure/process-log.js +86 -0
- package/dist/src/surfaces/cli/main.js +140 -0
- package/dist/src/surfaces/cli/usage.js +33 -0
- package/dist/src/surfaces/contracts/config.js +34 -0
- package/dist/src/surfaces/index.js +47 -0
- package/dist/src/surfaces/web-assets/assets/index-Bfn4FwZG.css +1 -0
- package/dist/src/surfaces/web-assets/assets/index-ipB6JPGU.js +1090 -0
- package/dist/src/surfaces/web-assets/index.html +13 -0
- package/dist/src/surfaces/web-host/asset-source.js +1 -0
- package/dist/src/surfaces/web-host/packaged-assets.js +44 -0
- package/dist/src/work/application/work-projection.js +59 -0
- package/dist/src/work/application/work-repository.js +18 -0
- package/dist/src/work/application/work-service.js +117 -0
- package/dist/src/work/contracts/commands.js +1 -0
- package/dist/src/work/contracts/config.js +2 -0
- package/dist/src/work/contracts/events.js +103 -0
- package/dist/src/work/contracts/identifiers.js +5 -0
- package/dist/src/work/contracts/streams.js +6 -0
- package/dist/src/work/contracts/views.js +1 -0
- package/dist/src/work/contracts/vocabulary.js +6 -0
- package/dist/src/work/domain/work-item.js +89 -0
- package/dist/src/work/index.js +11 -0
- package/docker/Dockerfile +10 -6
- package/docker/Dockerfile.packaged +3 -3
- package/package.json +29 -4
- package/prompts/implement.md +2 -2
- package/templates/SETUP.md +7 -7
- package/dist/src/adapters/claude/claude-runner.js +0 -529
- package/dist/src/adapters/codex/codex-runner.js +0 -503
- package/dist/src/adapters/cursor/cursor-runner.js +0 -418
- package/dist/src/adapters/docker/docker-cli.js +0 -150
- package/dist/src/adapters/fake/fake-artifact-verifier.js +0 -14
- package/dist/src/adapters/fake/fake-github-pull-request-activity-source.js +0 -77
- package/dist/src/adapters/fake/fake-resource-index.js +0 -21
- package/dist/src/adapters/fake/fake-runner.js +0 -77
- package/dist/src/adapters/fake/fake-ticketing-system.js +0 -185
- package/dist/src/adapters/fake/fake-workspace-manager.js +0 -81
- package/dist/src/adapters/fs/resource-index.js +0 -126
- package/dist/src/adapters/fs/self-update-ledger.js +0 -17
- package/dist/src/adapters/fs/state-store.js +0 -775
- package/dist/src/adapters/git/git-workspace-manager.js +0 -289
- package/dist/src/adapters/github/github-artifact-verifier.js +0 -38
- package/dist/src/adapters/github/github-auth.js +0 -16
- package/dist/src/adapters/github/github-client.js +0 -249
- package/dist/src/adapters/github/github-etag-cache.js +0 -57
- package/dist/src/adapters/github/github-issues-work-source.js +0 -692
- package/dist/src/adapters/github/github-pull-request-activity-source.js +0 -584
- package/dist/src/adapters/github/github-pull-request-merge-actor.js +0 -45
- package/dist/src/adapters/http/ui-assets.js +0 -1188
- package/dist/src/adapters/http/ui-data.js +0 -1107
- package/dist/src/adapters/http/ui-server.js +0 -458
- package/dist/src/adapters/runner/cli-command.js +0 -73
- package/dist/src/adapters/runner/prompt-templates.js +0 -76
- package/dist/src/adapters/runner/runner-cli-adapter.js +0 -112
- package/dist/src/adapters/runner/runner-registry.js +0 -139
- package/dist/src/adapters/runner/runtime-events.js +0 -32
- package/dist/src/adapters/runner/stage-prompt.js +0 -268
- package/dist/src/adapters/runner/transcripts.js +0 -25
- package/dist/src/cli/audit-command.js +0 -36
- package/dist/src/cli/correlate-command.js +0 -62
- package/dist/src/cli/doctor-command.js +0 -48
- package/dist/src/cli/init-command.js +0 -18
- package/dist/src/cli/sandbox-command.js +0 -258
- package/dist/src/cli/sandbox-entrypoint-command.js +0 -88
- package/dist/src/cli/sandbox-exec-logging.js +0 -7
- package/dist/src/cli/sandbox-resume.js +0 -79
- package/dist/src/cli/sandbox-setup-command.js +0 -31
- package/dist/src/cli/scaffold-assets.js +0 -100
- package/dist/src/cli/self-update-command.js +0 -198
- package/dist/src/cli/startup-preflight.js +0 -134
- package/dist/src/cli/stop-command.js +0 -46
- package/dist/src/cli/ui-command.js +0 -27
- package/dist/src/config/defaults.js +0 -10
- package/dist/src/config/discover-config-files.js +0 -11
- package/dist/src/config/load-config.js +0 -69
- package/dist/src/config/split-config.js +0 -14
- package/dist/src/core/active-run-recovery.js +0 -44
- package/dist/src/core/approval-intents.js +0 -16
- package/dist/src/core/audit-events.js +0 -82
- package/dist/src/core/control-plane.js +0 -192
- package/dist/src/core/event-builders.js +0 -153
- package/dist/src/core/event-resolver.js +0 -249
- package/dist/src/core/lifecycle-service.js +0 -8
- package/dist/src/core/live-execution.js +0 -81
- package/dist/src/core/outbox.js +0 -198
- package/dist/src/core/policy-engine.js +0 -389
- package/dist/src/core/projection-updater.js +0 -693
- package/dist/src/core/quota-backoff.js +0 -69
- package/dist/src/core/run-lease.js +0 -38
- package/dist/src/core/scheduled-workflow-source.js +0 -199
- package/dist/src/core/sink-router.js +0 -107
- package/dist/src/core/stale-run-reconciler.js +0 -352
- package/dist/src/core/tick-runner.js +0 -2442
- package/dist/src/core/workspace-cleanup.js +0 -117
- package/dist/src/domain/branch-naming.js +0 -14
- package/dist/src/domain/custom-commands.js +0 -58
- package/dist/src/domain/event-types.js +0 -158
- package/dist/src/domain/manual-labels.js +0 -1
- package/dist/src/domain/resource-uri.js +0 -38
- package/dist/src/domain/runner-routing.js +0 -127
- package/dist/src/domain/runtime-events.js +0 -36
- package/dist/src/domain/schema.js +0 -1233
- package/dist/src/domain/sources.js +0 -16
- package/dist/src/domain/stages.js +0 -36
- package/dist/src/domain/work-item-labels.js +0 -48
- package/dist/src/domain/work-item-lifecycle.js +0 -10
- package/dist/src/domain/work-item-status.js +0 -33
- package/dist/src/domain/workflows.js +0 -159
- package/dist/src/lib/deep-merge.js +0 -14
- package/dist/src/lib/detached-process-logging.js +0 -46
- package/dist/src/lib/event-log.js +0 -21
- package/dist/src/lib/format.js +0 -41
- package/dist/src/lib/json-file.js +0 -23
- package/dist/src/lib/lock.js +0 -181
- package/dist/src/lib/log-rotation.js +0 -42
- package/dist/src/lib/paths.js +0 -52
- package/dist/src/lib/process-identity.js +0 -54
- package/dist/src/lib/state-health.js +0 -30
- package/dist/src/lib/work-id.js +0 -19
- package/dist/src/lib/yaml-file.js +0 -20
- /package/dist/src/{core → activities/pr}/contracts.js +0 -0
- /package/dist/src/{domain/types.js → control-plane/contracts/views.js} +0 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
const defaultBudget = { maxAdvances: 100, maxRuns: 100, maxDurationMs: 30_000 };
|
|
2
|
+
/** Parses Surface vocabulary only; Bootstrap supplies every application facade. */
|
|
3
|
+
// eslint-disable-next-line complexity -- command vocabulary is intentionally exhaustive at the Surface boundary.
|
|
4
|
+
export function parseWakeCommand(arguments_) {
|
|
5
|
+
const [command, first, second] = arguments_;
|
|
6
|
+
switch (command) {
|
|
7
|
+
case 'audit':
|
|
8
|
+
return { kind: 'audit', workItemId: requiredArgument(first, 'audit work item') };
|
|
9
|
+
case 'correlate':
|
|
10
|
+
return {
|
|
11
|
+
kind: 'correlate',
|
|
12
|
+
resource: requiredArgument(first, 'correlate resource'),
|
|
13
|
+
workItemId: requiredArgument(second, 'correlate work item'),
|
|
14
|
+
};
|
|
15
|
+
case 'validate-state':
|
|
16
|
+
return parseValidateState(first, second);
|
|
17
|
+
case 'api':
|
|
18
|
+
case 'ui':
|
|
19
|
+
return { kind: command, ...parseHostOptions(arguments_.slice(1)) };
|
|
20
|
+
case 'tick':
|
|
21
|
+
case 'start':
|
|
22
|
+
case 'stop':
|
|
23
|
+
return parseResidentCommand(command, arguments_.slice(1));
|
|
24
|
+
case 'init':
|
|
25
|
+
case 'doctor':
|
|
26
|
+
case 'sandbox-setup':
|
|
27
|
+
case 'sandbox-entrypoint':
|
|
28
|
+
case 'sandbox':
|
|
29
|
+
case 'self-update':
|
|
30
|
+
case 'smoke':
|
|
31
|
+
return { kind: command, arguments: arguments_.slice(1) };
|
|
32
|
+
default:
|
|
33
|
+
throw new Error(`Unknown wake command: ${command ?? ''}`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function parseValidateState(first, second) {
|
|
37
|
+
const allowed = first === undefined || first === '--rebuild-projections';
|
|
38
|
+
if (!allowed || second !== undefined)
|
|
39
|
+
throw new Error('validate-state accepts only --rebuild-projections');
|
|
40
|
+
return { kind: 'validate-state', rebuildProjections: first === '--rebuild-projections' };
|
|
41
|
+
}
|
|
42
|
+
function parseResidentCommand(kind, arguments_) {
|
|
43
|
+
const options = parseHostOptions(arguments_, false);
|
|
44
|
+
return { kind, ...(options.wakeRoot === undefined ? {} : { wakeRoot: options.wakeRoot }) };
|
|
45
|
+
}
|
|
46
|
+
function requiredArgument(value, label) {
|
|
47
|
+
if (value === undefined)
|
|
48
|
+
throw new Error(`Missing ${label}`);
|
|
49
|
+
return value;
|
|
50
|
+
}
|
|
51
|
+
// eslint-disable-next-line complexity -- each parsed command has one explicit application dispatch.
|
|
52
|
+
export async function runWakeCommand(command, applications, output, signal) {
|
|
53
|
+
switch (command.kind) {
|
|
54
|
+
case 'init':
|
|
55
|
+
writeResult(output, await operational(applications).init(command.arguments));
|
|
56
|
+
return;
|
|
57
|
+
case 'doctor':
|
|
58
|
+
writeResult(output, await operational(applications).doctor(command.arguments));
|
|
59
|
+
return;
|
|
60
|
+
case 'sandbox':
|
|
61
|
+
writeResult(output, await operational(applications).sandbox(command.arguments));
|
|
62
|
+
return;
|
|
63
|
+
case 'sandbox-setup':
|
|
64
|
+
writeResult(output, await operational(applications).sandboxSetup(command.arguments));
|
|
65
|
+
return;
|
|
66
|
+
case 'sandbox-entrypoint':
|
|
67
|
+
await operational(applications).sandboxEntrypoint(command.arguments);
|
|
68
|
+
return;
|
|
69
|
+
case 'self-update':
|
|
70
|
+
writeResult(output, await operational(applications).selfUpdate(command.arguments));
|
|
71
|
+
return;
|
|
72
|
+
case 'smoke':
|
|
73
|
+
writeResult(output, await operational(applications).smoke(command.arguments));
|
|
74
|
+
return;
|
|
75
|
+
case 'tick':
|
|
76
|
+
output.write(`${JSON.stringify(await applications.tick.run(defaultBudget))}\n`);
|
|
77
|
+
return;
|
|
78
|
+
case 'start':
|
|
79
|
+
output.write(`${JSON.stringify(await applications.start.run(signal, defaultBudget))}\n`);
|
|
80
|
+
return;
|
|
81
|
+
case 'stop':
|
|
82
|
+
await applications.stop.stop();
|
|
83
|
+
return;
|
|
84
|
+
case 'api':
|
|
85
|
+
await applications.api.start(command);
|
|
86
|
+
return;
|
|
87
|
+
case 'ui':
|
|
88
|
+
await applications.ui.start(command);
|
|
89
|
+
return;
|
|
90
|
+
case 'audit':
|
|
91
|
+
for (const record of await applications.audit.read(command.workItemId))
|
|
92
|
+
output.write(`${JSON.stringify(record)}\n`);
|
|
93
|
+
return;
|
|
94
|
+
case 'correlate':
|
|
95
|
+
output.write(`${JSON.stringify(await applications.correlate.correlate(command.resource, command.workItemId))}\n`);
|
|
96
|
+
return;
|
|
97
|
+
case 'validate-state': {
|
|
98
|
+
if (command.rebuildProjections)
|
|
99
|
+
await applications.validateState.rebuildProjections();
|
|
100
|
+
output.write(`${JSON.stringify(await applications.validateState.health())}\n`);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function writeResult(output, value) {
|
|
106
|
+
if (value !== undefined)
|
|
107
|
+
output.write(`${JSON.stringify(value)}\n`);
|
|
108
|
+
}
|
|
109
|
+
function operational(applications) {
|
|
110
|
+
if (applications.operational === undefined)
|
|
111
|
+
throw new Error('Operational CLI applications were not composed');
|
|
112
|
+
return applications.operational;
|
|
113
|
+
}
|
|
114
|
+
function parseHostOptions(arguments_, allowNetwork = true) {
|
|
115
|
+
const options = {};
|
|
116
|
+
for (let index = 0; index < arguments_.length; index += 2) {
|
|
117
|
+
const flag = arguments_[index];
|
|
118
|
+
const value = arguments_[index + 1];
|
|
119
|
+
if (value === undefined)
|
|
120
|
+
throw new Error(`Missing value for ${flag ?? 'option'}`);
|
|
121
|
+
applyHostOption(options, flag, value, allowNetwork);
|
|
122
|
+
}
|
|
123
|
+
return options;
|
|
124
|
+
}
|
|
125
|
+
function applyHostOption(options, flag, value, allowNetwork) {
|
|
126
|
+
if (flag === '--wake-root')
|
|
127
|
+
options.wakeRoot = value;
|
|
128
|
+
else if (allowNetwork && flag === '--host')
|
|
129
|
+
options.host = value;
|
|
130
|
+
else if (allowNetwork && flag === '--port')
|
|
131
|
+
options.port = parsePort(value);
|
|
132
|
+
else
|
|
133
|
+
throw new Error(`Unknown option: ${flag}`);
|
|
134
|
+
}
|
|
135
|
+
function parsePort(value) {
|
|
136
|
+
const port = Number(value);
|
|
137
|
+
if (!Number.isInteger(port) || port <= 0 || port > 65_535)
|
|
138
|
+
throw new Error('Port must be a positive integer');
|
|
139
|
+
return port;
|
|
140
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export const usage = [
|
|
2
|
+
'Wake - an autonomous agent control plane for software development.',
|
|
3
|
+
'',
|
|
4
|
+
'Usage:',
|
|
5
|
+
' wake init <path> Scaffold a new Wake home directory',
|
|
6
|
+
' wake sandbox <subcommand> Build/run/manage the Docker sandbox (build, up, update, down, stop, self-update, setup, exec, logs, resume)',
|
|
7
|
+
' wake tick Run one control-plane tick',
|
|
8
|
+
' wake start Run the resident loop',
|
|
9
|
+
' wake validate-state Validate .wake/ control-plane state health',
|
|
10
|
+
' wake stop Wait for active runs to finish',
|
|
11
|
+
' wake smoke Smoke-test the configured runner',
|
|
12
|
+
' wake ui Run the control-plane UI server',
|
|
13
|
+
' wake audit Show autonomous decision audit history',
|
|
14
|
+
' wake correlate Manually correlate a resource to a work item',
|
|
15
|
+
' wake doctor Diagnose config/GitHub/Docker/sandbox setup problems',
|
|
16
|
+
' wake --version Print the installed Wake version',
|
|
17
|
+
' wake --help Show this message',
|
|
18
|
+
'',
|
|
19
|
+
'Additional target commands:',
|
|
20
|
+
' wake api Run the target API surface',
|
|
21
|
+
' wake sandbox-entrypoint Run the sandbox resident entrypoint',
|
|
22
|
+
' wake self-update Safely update a source installation',
|
|
23
|
+
'',
|
|
24
|
+
'Getting started:',
|
|
25
|
+
' 1. wake init ./wake-home',
|
|
26
|
+
' 2. cd wake-home && wake start',
|
|
27
|
+
' https://github.com/atolis-hq/wake#readme',
|
|
28
|
+
'',
|
|
29
|
+
'Runtime commands (tick/start/ui/smoke/audit/correlate/validate-state) auto-delegate into the sandbox',
|
|
30
|
+
'when docker/Dockerfile exists at --wake-root (i.e. after `wake sandbox build`),',
|
|
31
|
+
'defaulting --wake-root to the current directory. Pass --no-sandbox to run',
|
|
32
|
+
'directly on the host instead.',
|
|
33
|
+
].join('\n');
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const surfacesConfigSchema = z
|
|
3
|
+
.object({
|
|
4
|
+
api: z
|
|
5
|
+
.object({
|
|
6
|
+
enabled: z.boolean().default(false),
|
|
7
|
+
host: z.string().default('127.0.0.1'),
|
|
8
|
+
port: z.number().int().positive().default(4317),
|
|
9
|
+
})
|
|
10
|
+
.strict()
|
|
11
|
+
.default({ enabled: false, host: '127.0.0.1', port: 4317 }),
|
|
12
|
+
web: z
|
|
13
|
+
.object({ enabled: z.boolean().default(false) })
|
|
14
|
+
.strict()
|
|
15
|
+
.default({ enabled: false }),
|
|
16
|
+
})
|
|
17
|
+
.strict()
|
|
18
|
+
.default({ api: { enabled: false, host: '127.0.0.1', port: 4317 }, web: { enabled: false } })
|
|
19
|
+
.superRefine((value, context) => {
|
|
20
|
+
if (value.web.enabled && !value.api.enabled)
|
|
21
|
+
context.addIssue({
|
|
22
|
+
code: z.ZodIssueCode.custom,
|
|
23
|
+
path: ['web', 'enabled'],
|
|
24
|
+
message: 'Web surface requires the API surface',
|
|
25
|
+
});
|
|
26
|
+
})
|
|
27
|
+
.transform((value) => ({
|
|
28
|
+
api: {
|
|
29
|
+
enabled: value.api.enabled ?? false,
|
|
30
|
+
host: value.api.host ?? '127.0.0.1',
|
|
31
|
+
port: value.api.port ?? 4317,
|
|
32
|
+
},
|
|
33
|
+
web: { enabled: value.web.enabled ?? false },
|
|
34
|
+
}));
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export * from './api/contracts/index.js';
|
|
2
|
+
export * from './api/http-server.js';
|
|
3
|
+
export * from './api/presenters/activities.js';
|
|
4
|
+
export * from './api/presenters/board.js';
|
|
5
|
+
export * from './api/presenters/status.js';
|
|
6
|
+
export * from './api/presenters/control-plane.js';
|
|
7
|
+
export * from './api/presenters/events.js';
|
|
8
|
+
export * from './api/presenters/execution.js';
|
|
9
|
+
export * from './api/presenters/observability.js';
|
|
10
|
+
export * from './api/presenters/orchestration.js';
|
|
11
|
+
export * from './api/presenters/resources.js';
|
|
12
|
+
export * from './api/presenters/system.js';
|
|
13
|
+
export * from './api/presenters/work.js';
|
|
14
|
+
export * from './api/problem-details.js';
|
|
15
|
+
export * from './api/router.js';
|
|
16
|
+
export * from './api/routes/activities.js';
|
|
17
|
+
export * from './api/routes/control-plane.js';
|
|
18
|
+
export * from './api/routes/events.js';
|
|
19
|
+
export * from './api/routes/execution.js';
|
|
20
|
+
export * from './api/routes/index.js';
|
|
21
|
+
export * from './api/routes/observability.js';
|
|
22
|
+
export * from './api/routes/orchestration.js';
|
|
23
|
+
export * from './api/routes/resources.js';
|
|
24
|
+
export * from './api/routes/system.js';
|
|
25
|
+
export * from './api/routes/work.js';
|
|
26
|
+
export * from './cli/commands/api.js';
|
|
27
|
+
export * from './cli/commands/audit.js';
|
|
28
|
+
export * from './cli/commands/correlate.js';
|
|
29
|
+
export { runDoctor } from './cli/commands/doctor.js';
|
|
30
|
+
export * from './cli/commands/init.js';
|
|
31
|
+
export * from './cli/commands/sandbox.js';
|
|
32
|
+
export * from './cli/commands/sandbox-entrypoint.js';
|
|
33
|
+
export * from './cli/commands/sandbox-setup.js';
|
|
34
|
+
export * from './cli/commands/self-update.js';
|
|
35
|
+
export * from './cli/commands/smoke.js';
|
|
36
|
+
export * from './cli/commands/start.js';
|
|
37
|
+
export * from './cli/commands/stop.js';
|
|
38
|
+
export * from './cli/commands/tick.js';
|
|
39
|
+
export * from './cli/commands/ui.js';
|
|
40
|
+
export * from './cli/commands/validate-state.js';
|
|
41
|
+
export * from './cli/infrastructure/docker-cli.js';
|
|
42
|
+
export * from './cli/infrastructure/process-log.js';
|
|
43
|
+
export * from './cli/main.js';
|
|
44
|
+
export * from './cli/usage.js';
|
|
45
|
+
export * from './contracts/config.js';
|
|
46
|
+
export * from './web-host/asset-source.js';
|
|
47
|
+
export * from './web-host/packaged-assets.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._shell_1rpcj_1{grid-template-rows:auto auto auto 1fr;min-height:100vh;display:grid}._header_1rpcj_6{align-items:center;gap:var(--space-2);padding:.55rem var(--space-4);background:var(--brand);color:var(--ink-inverse);display:flex}._brand_1rpcj_14{align-items:center;gap:var(--space-2);color:var(--ink-inverse);font-family:-apple-system,Segoe UI,Roboto,sans-serif;font-weight:700;font-size:var(--text-lg);letter-spacing:.01em;text-decoration:none;display:inline-flex}._brandLogo_1rpcj_25{width:1.75rem;height:1.75rem}._brandVersion_1rpcj_29{color:#ffffffb3;font-family:-apple-system,Segoe UI,Roboto,sans-serif;font-size:.78rem;font-weight:400}._statusBand_1rpcj_35{align-items:center;gap:var(--space-4);padding:.45rem var(--space-4);background:var(--brand-dark);font-size:var(--text-sm);color:var(--ink-inverse);border-top:1px solid #0000002e;flex-wrap:wrap;display:flex}._nav_1rpcj_46{padding:.4rem var(--space-4) 0;background:var(--brand-darker);scrollbar-width:none;-ms-overflow-style:none;border-bottom:1px solid var(--border);gap:.25rem;display:flex;overflow-x:auto}._nav_1rpcj_46::-webkit-scrollbar{display:none}._nav_1rpcj_46 a{color:var(--nav-ink-idle);white-space:nowrap;transition:color var(--motion-fast) ease;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.4rem .7rem .45rem;text-decoration:none}._nav_1rpcj_46 a:hover{color:var(--ink-inverse);text-decoration:none}._nav_1rpcj_46 a[aria-current=page]{color:var(--accent-light);border-bottom-color:var(--accent);font-weight:700}._main_1rpcj_77{width:100%;padding:var(--space-6) var(--space-4);margin:0}._pageHeader_1rpcj_82{justify-content:space-between;align-items:end;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}._pageHeader_1rpcj_82 h1{margin:0}._panel_1rpcj_92{background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);box-shadow:var(--shadow)}._badge_1rpcj_99{background:var(--surface-card);color:var(--ink);border-radius:999px;align-items:center;gap:.4rem;padding:.2rem .55rem;font-size:.85rem;font-weight:700;display:inline-flex}._badge_1rpcj_99:before{content:"";background:currentColor;border-radius:50%;flex:none;width:.55rem;height:.55rem}._badge_1rpcj_99>span{align-items:center;gap:.3rem;display:inline-flex}._good_1rpcj_123{color:var(--good)}._warning_1rpcj_126{color:var(--warning)}._bad_1rpcj_99{color:var(--bad)}._cold_1rpcj_132{color:#7dd3fc;background:#0e74902e;box-shadow:inset 0 0 0 1px #7dd3fc59}._button_1rpcj_137{appearance:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--ink);font:inherit;font-size:var(--text-sm);cursor:pointer;padding:.22rem .55rem;font-weight:600}._button_1rpcj_137:hover:not(:disabled){border-color:var(--accent-light);color:var(--accent-light)}._button_1rpcj_137:disabled{opacity:.62;cursor:wait}._secondary_1rpcj_157{background:0 0}._tableWrap_1rpcj_160{overflow-x:auto}._table_1rpcj_160{border-collapse:collapse;width:100%;font-size:var(--text-sm)}._table_1rpcj_160 caption{text-align:left;font-weight:700;font-size:var(--text-sm);padding-bottom:.5rem}._table_1rpcj_160 th,._table_1rpcj_160 td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.25rem .45rem;line-height:1.3}._table_1rpcj_160 th{color:var(--ink-muted);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.03em}._state_1rpcj_189{border:1px dashed var(--border);border-radius:var(--radius);padding:var(--space-5);color:var(--ink-muted)}._error_1rpcj_195{border-color:var(--bad);color:var(--bad)}._stale_1rpcj_199{color:var(--warning);font-size:.85rem}._statusActions_1rpcj_203{align-items:center;gap:.6rem;display:flex}._tickButton_1rpcj_208{border:1px solid var(--accent);color:var(--accent-light);background:#2dd4bf24;font-weight:700}._tickButton_1rpcj_208:hover:not(:disabled){border-color:var(--accent-light);background:#2dd4bf3d}._pauseControl_1rpcj_218{border:1px solid var(--bad);color:var(--warning);border-radius:var(--radius-sm);font-size:var(--text-sm);background:#dc262629;align-items:center;gap:.4rem;padding:.2rem .55rem;font-weight:700;display:inline-flex}._pauseControl_1rpcj_218 button{appearance:none;border:1px solid var(--bad);border-radius:var(--radius-sm);color:inherit;font:inherit;font-size:var(--text-xs);cursor:pointer;background:0 0;padding:.1rem .4rem;font-weight:700}._pauseControl_1rpcj_218 button:hover:not(:disabled){background:#dc26263d}._pauseControl_1rpcj_218 button:disabled{opacity:.62;cursor:wait}._pagination_1rpcj_249{justify-content:flex-end;gap:.6rem;margin-block:1rem;display:flex}._live_1rpcj_255{min-height:1.4rem}._header_1rpcj_6 ._live_1rpcj_255{color:var(--warning)}._json_1rpcj_261{background:var(--surface-inset);color:var(--ink);padding:var(--space-3);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.75rem;overflow:auto}._chip_1rpcj_270{background:var(--border);color:var(--ink);border-radius:var(--radius-sm);font-size:var(--text-xs);align-items:center;gap:.25rem;margin-right:.2rem;padding:.05rem .35rem;display:inline-flex}._chipOutline_1rpcj_281{border:1px solid var(--border-strong);color:var(--ink-muted);background:0 0}._chipOutline_1rpcj_281._good_1rpcj_123{color:var(--good)}._chipOutline_1rpcj_281._warning_1rpcj_126{color:var(--warning)}._chipOutline_1rpcj_281._bad_1rpcj_99{color:var(--bad)}._chipOutline_1rpcj_281._cold_1rpcj_132{color:#7dd3fc}._tile_1rpcj_298{background:var(--surface-panel);border-radius:var(--radius);min-width:120px;padding:.6rem .9rem}._tileValue_1rpcj_304{font-size:1.3rem;font-weight:700}._tileLabel_1rpcj_308{color:var(--ink-muted);font-size:var(--text-xs);text-transform:uppercase}@media (width<=42rem){._header_1rpcj_6{padding-inline:var(--space-3)}._nav_1rpcj_46{padding-inline:var(--space-2)}._main_1rpcj_77{width:100%;padding:var(--space-4) var(--space-2) 0}._pageHeader_1rpcj_82{flex-direction:column;align-items:start}}._board_tjx5y_1{grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;gap:.6rem;display:grid;overflow-x:auto}._column_tjx5y_8{background:var(--surface-panel);border-radius:var(--radius);flex-direction:column;min-height:200px;padding:.5rem;display:flex}._columnHeader_tjx5y_16{justify-content:space-between;align-items:center;gap:var(--space-2);margin:.2rem .4rem .5rem;display:flex}._column_tjx5y_8 h2{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);margin:0}._cards_tjx5y_30{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}._card_tjx5y_30{background:var(--surface-card);border:1px solid var(--border);border-left:3px solid var(--border-strong);font-size:var(--text-sm);border-radius:.5rem;overflow:hidden}._card_tjx5y_30:hover,._card_tjx5y_30:focus-within{border-color:var(--accent)}._cardLink_tjx5y_49{min-height:100%;color:var(--ink);transition:background var(--motion-fast) ease;padding:.5rem;text-decoration:none;display:block}._cardLink_tjx5y_49:hover{background:var(--surface-inset);text-decoration:none}._cardLink_tjx5y_49:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}._cardRef_tjx5y_65{color:var(--ink-muted);font-family:var(--font-mono);font-size:var(--text-xs);margin-bottom:.15rem;display:block}._cardTitle_tjx5y_72{color:var(--ink);margin-bottom:.25rem;font-weight:600;display:block}._cardMeta_tjx5y_78{flex-wrap:wrap;align-items:center;gap:.3rem;margin-top:.2rem;display:flex}._metaIcon_tjx5y_85{flex:none;width:.75rem;height:.75rem}._cardStats_tjx5y_90{color:var(--ink-muted);margin-top:.3rem;font-size:.7rem}._childRun_tjx5y_95{border-radius:var(--radius-sm);background:var(--surface-inset);border:1px solid var(--border);color:var(--ink-muted);font-size:var(--text-xs);grid-template-columns:auto 1fr;align-items:center;gap:.25rem .45rem;margin-top:.45rem;padding:.4rem;display:grid}._childRunDot_tjx5y_108{background:var(--accent);border-radius:50%;width:.48rem;height:.48rem;box-shadow:0 0 0 3px #2dd4bf24}._childRunTitle_tjx5y_115{color:var(--ink);font-weight:650}._childRunMeta_tjx5y_119{color:var(--ink-muted)}._columnToggle_tjx5y_122{border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:1.65rem;height:1.65rem;color:var(--ink-muted);cursor:pointer;font-size:var(--text-base);background:0 0;flex:none;justify-content:center;align-items:center;line-height:1;display:none}._columnToggle_tjx5y_122:hover{border-color:var(--accent);color:var(--accent-light)}._filters_tjx5y_141{flex-wrap:wrap;align-items:end;gap:.6rem;margin-bottom:1rem;display:flex}._filters_tjx5y_141 label{color:var(--ink-muted);font-weight:600;font-size:var(--text-sm);gap:.25rem;display:grid}._filters_tjx5y_141 input,._filters_tjx5y_141 select{background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:2.35rem;color:var(--ink);font:inherit;padding-inline:.55rem}._filters_tjx5y_141 input:focus,._filters_tjx5y_141 select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2dd4bf26}._detail_tjx5y_171{gap:var(--space-3);display:grid}._detail_tjx5y_171>h2{margin:0}._summary_tjx5y_178{font-size:var(--text-sm);grid-template-columns:max-content 1fr;align-items:baseline;gap:.35rem .7rem;margin:0;display:grid}._summary_tjx5y_178 dt{color:var(--ink-muted);margin:0}._summary_tjx5y_178 dd{overflow-wrap:anywhere;min-width:0;margin:0}._overviewLayout_tjx5y_195{gap:var(--space-5);grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;display:grid}._overviewSidebar_tjx5y_201{gap:var(--space-3);grid-column:2;min-width:0;display:grid}._overviewMain_tjx5y_207{grid-area:1/1;min-width:0}._sidebarSectionTitle_tjx5y_212{font-size:var(--text-sm)}._resourceList_tjx5y_215{margin:0 0 var(--space-4);gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}._resourceCard_tjx5y_223{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-card);color:inherit;flex-direction:column;gap:.35rem;text-decoration:none;display:flex}a._resourceCard_tjx5y_223:hover{border-color:var(--accent);text-decoration:none}._resourceCardTop_tjx5y_238{align-items:center;gap:var(--space-2);display:flex}._resourceCardIcon_tjx5y_243{color:var(--ink-muted);flex:none}._resourceCardTitle_tjx5y_247{min-width:0;font-weight:600;font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}._resourceCardExt_tjx5y_256{color:var(--ink-muted);opacity:0;flex:none}._resourceCard_tjx5y_223:hover ._resourceCardExt_tjx5y_256{opacity:1}._resourceCardMeta_tjx5y_264{font-size:var(--text-sm);padding-left:calc(18px + var(--space-2));flex-wrap:wrap;align-items:baseline;gap:.4rem;display:flex}._resourceId_tjx5y_272{color:var(--ink-muted);font-family:var(--font-mono);font-size:var(--text-xs);overflow-wrap:anywhere}._eventList_tjx5y_278{flex-direction:column;gap:.45rem;margin:1rem 0;padding:0;list-style:none;display:flex}._event_tjx5y_278{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:2.25rem;overflow:hidden}._event_tjx5y_278:hover{border-color:var(--border-strong)}._event_tjx5y_278 time{color:var(--ink-muted);font-family:var(--font-mono);font-size:var(--text-xs)}._eventType_tjx5y_301{font-weight:650;font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._eventId_tjx5y_309{color:var(--ink-muted);font-family:var(--font-mono);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._toolbar_tjx5y_318{flex-wrap:wrap;align-items:center;gap:.7rem;display:flex}._modalBackdrop_tjx5y_324{background:var(--brand-darker);padding:var(--space-4);z-index:10;place-items:center;display:grid;position:fixed;inset:0}._modal_tjx5y_324{background:var(--surface-panel);border:1px solid var(--border-strong);box-shadow:var(--shadow);color:var(--ink);border-radius:var(--radius);width:100%;max-width:none;height:100%;max-height:none;padding:var(--space-4);overflow:auto}._modalHeader_tjx5y_347{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}._modalRef_tjx5y_354{color:var(--ink-muted);font-family:var(--font-mono);font-size:var(--text-sm)}._modalClose_tjx5y_359{appearance:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--ink);cursor:pointer;font:inherit;font-size:var(--text-sm);padding:.35rem .7rem;font-weight:700}._modalClose_tjx5y_359:hover{border-color:var(--accent-light);color:var(--accent-light)}._tiles_tjx5y_375{margin-bottom:var(--space-4);flex-wrap:wrap;gap:.6rem;display:flex}@media (width<=42rem){._overviewLayout_tjx5y_195{grid-template-columns:minmax(0,1fr)}._overviewSidebar_tjx5y_201,._overviewMain_tjx5y_207{grid-area:auto/1}._board_tjx5y_1{display:block;overflow:visible}._column_tjx5y_8{min-height:unset;margin-bottom:.75rem}._columnToggle_tjx5y_122{display:inline-flex}._eventId_tjx5y_309{display:none}._modalBackdrop_tjx5y_324{background:0 0;padding:0;display:block;position:static}._modal_tjx5y_324{box-shadow:none;border:0;width:auto;height:auto;max-height:none;padding:0}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}._transcript_tjx5y_426{margin:var(--space-3) 0 0;padding:0;list-style:none}._transcriptEntry_tjx5y_431{background:var(--surface-inset);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:.75rem;overflow:hidden}._transcriptHead_tjx5y_438{gap:var(--space-3);color:var(--ink-muted);background:var(--surface-panel);border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:var(--text-xs);padding:.45rem .6rem;display:flex}._transcriptText_tjx5y_448{white-space:pre-wrap;font-family:var(--font-mono);background:0 0;margin:0;padding:.6rem;font-size:.76rem;overflow-x:auto}._transcriptLayout_tjx5y_457{gap:var(--space-4);margin-top:var(--space-3);grid-template-columns:minmax(15rem,22rem) minmax(0,1fr);display:grid}._transcriptGroups_tjx5y_463{align-content:start;align-self:start;gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}._transcriptGroup_tjx5y_463{width:100%;padding:var(--space-2);color:var(--ink);text-align:left;background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font:inherit;font-size:var(--text-xs);overflow-wrap:anywhere;gap:.2rem;display:grid}._transcriptGroup_tjx5y_463:hover,._transcriptGroup_tjx5y_463[aria-pressed=true]{border-color:var(--accent);background:var(--surface-inset)}._transcriptConversation_tjx5y_492{min-width:0}._transcriptFilters_tjx5y_495{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}._transcriptFilters_tjx5y_495 label{align-items:center;gap:var(--space-2);color:var(--ink-muted);font-size:var(--text-sm);display:flex}._transcriptFilters_tjx5y_495 select{color:var(--ink);background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit}._transcriptInput_tjx5y_515,._transcriptAgent_tjx5y_516{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}._transcriptInput_tjx5y_515{background:var(--surface-inset);border-left:3px solid var(--accent);margin-left:12%}._transcriptAgent_tjx5y_516{background:var(--surface-card);border-left:3px solid var(--border-strong);margin-right:12%}._transcriptRunSeparator_tjx5y_531{align-items:center;gap:var(--space-2);margin:var(--space-3) 0;color:var(--ink-muted);font-family:var(--font-mono);font-size:var(--text-xs);display:flex}._transcriptRunSeparator_tjx5y_531:before,._transcriptRunSeparator_tjx5y_531:after{content:"";background:var(--border);flex:1;height:1px}._eventButton_tjx5y_548{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(11rem,14rem) minmax(0,1fr) minmax(8rem,18rem) 2.4rem;align-items:center;gap:.65rem;padding:.45rem .65rem;display:grid}._eventType_tjx5y_301{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;overflow:visible}@media (width<=42rem){._transcriptLayout_tjx5y_457{grid-template-columns:minmax(0,1fr)}._transcriptInput_tjx5y_515,._transcriptAgent_tjx5y_516{margin-inline:0}._eventButton_tjx5y_548{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) 2.2rem}._eventType_tjx5y_301{text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal;grid-area:2/1/auto/-1;overflow:hidden}}._eventChevron_tjx5y_588{color:var(--ink-muted);justify-self:end}._eventPayload_tjx5y_592{border-top:1px solid var(--border);overflow-x:auto}._eventPayload_tjx5y_592 pre{padding:var(--space-3);white-space:pre;margin:0}._tabs_tjx5y_601{padding:.4rem var(--space-4) 0;border-bottom:1px solid var(--border);background:0 0;gap:.25rem;margin:0;display:flex}._tabs_tjx5y_601 button{color:var(--nav-ink-idle);font:inherit;white-space:nowrap;cursor:pointer;transition:color var(--motion-fast) ease;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.4rem .7rem .45rem}._tabs_tjx5y_601 button:hover{color:var(--ink-inverse)}._tabs_tjx5y_601 button[aria-selected=true]{color:var(--accent-light);border-bottom-color:var(--accent);font-weight:700}._actionBar_tjx5y_630{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}._dangerButton_tjx5y_636{border-color:var(--bad);color:var(--bad)}:root{--wake-ink-950:#14161a;--wake-ink-900:#1a1d23;--wake-ink-850:#22262e;--wake-ink-800:#101216;--wake-ink-700:#2c313a;--wake-ink-600:#3a4150;--wake-grey-300:#cbd5e1;--wake-grey-400:#9aa2ad;--wake-grey-100:#e8e8e8;--wake-white:#fff;--wake-teal-700:#103a37;--wake-teal-650:#134e4a;--wake-teal-600:#0f766e;--wake-mint-400:#2dd4bf;--wake-mint-300:#5eead4;--wake-green-300:#7fe3a3;--wake-green-900:#1f3d2c;--wake-blue-300:#7fb3ff;--wake-blue-900:#1f3350;--wake-purple-300:#c79bff;--wake-purple-900:#2d1f50;--wake-amber-300:#ffcf7f;--wake-amber-900:#4a3510;--wake-red-300:#ff8f7f;--wake-red-900:#3d1f1f;--wake-slate-400:#9aa2ad;--wake-slate-900:#252830;--surface:var(--wake-ink-950);--surface-panel:var(--wake-ink-900);--surface-card:var(--wake-ink-850);--surface-inset:var(--wake-ink-800);--border:var(--wake-ink-700);--border-strong:var(--wake-ink-600);--ink:var(--wake-grey-100);--ink-muted:var(--wake-grey-400);--ink-inverse:var(--wake-white);--brand:var(--wake-teal-600);--brand-dark:var(--wake-teal-650);--brand-darker:var(--wake-teal-700);--nav-ink-idle:var(--wake-grey-300);--accent:var(--wake-mint-400);--accent-light:var(--wake-mint-300);--good:var(--wake-green-300);--warning:var(--wake-amber-300);--bad:var(--wake-red-300);--cond-ready-fg:var(--wake-green-300);--cond-ready-bg:var(--wake-green-900);--cond-scheduled-fg:var(--wake-blue-300);--cond-scheduled-bg:var(--wake-blue-900);--cond-active-fg:var(--wake-purple-300);--cond-active-bg:var(--wake-purple-900);--cond-needs-input-fg:var(--wake-amber-300);--cond-needs-input-bg:var(--wake-amber-900);--cond-error-fg:var(--wake-red-300);--cond-error-bg:var(--wake-red-900);--cond-finished-fg:var(--wake-slate-400);--cond-finished-bg:var(--wake-slate-900);--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--radius:.65rem;--radius-sm:.4rem;--shadow:0 1px 3px #00000059;--focus-ring:var(--wake-mint-300);--font-sans:Inter, ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Consolas, monospace;--text-xs:.72rem;--text-sm:.8rem;--text-base:1rem;--text-lg:1.15rem;--content-width:76rem;--motion-fast:.12s}*{box-sizing:border-box}html{color:var(--ink);background:var(--surface);font-family:var(--font-sans);line-height:1.5}body{margin:0}a{color:var(--accent-light);text-underline-offset:.18em;text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
|