@kya-os/cli 1.8.1 → 1.8.3
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/commands/agent.d.ts +35 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +321 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/build.js +2 -2
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/check.js +3 -3
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/checkpoint-init.d.ts +1 -1
- package/dist/commands/checkpoint-init.d.ts.map +1 -1
- package/dist/commands/checkpoint-init.js +8 -41
- package/dist/commands/checkpoint-init.js.map +1 -1
- package/dist/commands/claim.js +2 -2
- package/dist/commands/claim.js.map +1 -1
- package/dist/commands/dco.d.ts +59 -0
- package/dist/commands/dco.d.ts.map +1 -1
- package/dist/commands/dco.js +280 -5
- package/dist/commands/dco.js.map +1 -1
- package/dist/commands/dev.js +1 -1
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +18 -24
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/env.js +6 -6
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/identity.js +3 -3
- package/dist/commands/identity.js.map +1 -1
- package/dist/commands/init-stages.d.ts +141 -0
- package/dist/commands/init-stages.d.ts.map +1 -0
- package/dist/commands/init-stages.js +684 -0
- package/dist/commands/init-stages.js.map +1 -0
- package/dist/commands/init.d.ts +46 -16
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +229 -279
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/orchestrator.d.ts +18 -0
- package/dist/commands/orchestrator.d.ts.map +1 -0
- package/dist/commands/orchestrator.js +251 -0
- package/dist/commands/orchestrator.js.map +1 -0
- package/dist/commands/register.d.ts +1 -1
- package/dist/commands/register.d.ts.map +1 -1
- package/dist/commands/register.js +35 -7
- package/dist/commands/register.js.map +1 -1
- package/dist/commands/review.d.ts +48 -0
- package/dist/commands/review.d.ts.map +1 -0
- package/dist/commands/review.js +220 -0
- package/dist/commands/review.js.map +1 -0
- package/dist/commands/rotate.js +4 -4
- package/dist/commands/rotate.js.map +1 -1
- package/dist/commands/score.d.ts +15 -0
- package/dist/commands/score.d.ts.map +1 -0
- package/dist/commands/score.js +471 -0
- package/dist/commands/score.js.map +1 -0
- package/dist/commands/start.js +3 -3
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.js +1 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/verify.js +6 -6
- package/dist/commands/verify.js.map +1 -1
- package/dist/dco.d.ts +4 -0
- package/dist/dco.d.ts.map +1 -0
- package/dist/dco.js +23 -0
- package/dist/dco.js.map +1 -0
- package/dist/index.js +52 -9
- package/dist/orchestrator/daemon.d.ts +137 -0
- package/dist/orchestrator/daemon.d.ts.map +1 -0
- package/dist/orchestrator/daemon.js +242 -0
- package/dist/orchestrator/daemon.js.map +1 -0
- package/dist/orchestrator/db/dispatches.d.ts +108 -0
- package/dist/orchestrator/db/dispatches.d.ts.map +1 -0
- package/dist/orchestrator/db/dispatches.js +122 -0
- package/dist/orchestrator/db/dispatches.js.map +1 -0
- package/dist/orchestrator/db/index.d.ts +50 -0
- package/dist/orchestrator/db/index.d.ts.map +1 -0
- package/dist/orchestrator/db/index.js +116 -0
- package/dist/orchestrator/db/index.js.map +1 -0
- package/dist/orchestrator/db/journal.d.ts +93 -0
- package/dist/orchestrator/db/journal.d.ts.map +1 -0
- package/dist/orchestrator/db/journal.js +91 -0
- package/dist/orchestrator/db/journal.js.map +1 -0
- package/dist/orchestrator/db/liveness.d.ts +97 -0
- package/dist/orchestrator/db/liveness.d.ts.map +1 -0
- package/dist/orchestrator/db/liveness.js +105 -0
- package/dist/orchestrator/db/liveness.js.map +1 -0
- package/dist/orchestrator/db/mission.d.ts +78 -0
- package/dist/orchestrator/db/mission.d.ts.map +1 -0
- package/dist/orchestrator/db/mission.js +99 -0
- package/dist/orchestrator/db/mission.js.map +1 -0
- package/dist/orchestrator/db/schema.d.ts +14 -0
- package/dist/orchestrator/db/schema.d.ts.map +1 -0
- package/dist/orchestrator/db/schema.js +169 -0
- package/dist/orchestrator/db/schema.js.map +1 -0
- package/dist/orchestrator/db/tickets.d.ts +147 -0
- package/dist/orchestrator/db/tickets.d.ts.map +1 -0
- package/dist/orchestrator/db/tickets.js +238 -0
- package/dist/orchestrator/db/tickets.js.map +1 -0
- package/dist/orchestrator/db/verdicts.d.ts +187 -0
- package/dist/orchestrator/db/verdicts.d.ts.map +1 -0
- package/dist/orchestrator/db/verdicts.js +197 -0
- package/dist/orchestrator/db/verdicts.js.map +1 -0
- package/dist/orchestrator/events.d.ts +69 -0
- package/dist/orchestrator/events.d.ts.map +1 -0
- package/dist/orchestrator/events.js +20 -0
- package/dist/orchestrator/events.js.map +1 -0
- package/dist/orchestrator/github-credential-anchor-sender.d.ts +159 -0
- package/dist/orchestrator/github-credential-anchor-sender.d.ts.map +1 -0
- package/dist/orchestrator/github-credential-anchor-sender.js +313 -0
- package/dist/orchestrator/github-credential-anchor-sender.js.map +1 -0
- package/dist/orchestrator/hub-dispatch.d.ts +120 -0
- package/dist/orchestrator/hub-dispatch.d.ts.map +1 -0
- package/dist/orchestrator/hub-dispatch.js +257 -0
- package/dist/orchestrator/hub-dispatch.js.map +1 -0
- package/dist/orchestrator/hub-observer.d.ts +201 -0
- package/dist/orchestrator/hub-observer.d.ts.map +1 -0
- package/dist/orchestrator/hub-observer.js +474 -0
- package/dist/orchestrator/hub-observer.js.map +1 -0
- package/dist/orchestrator/journal-writer.d.ts +80 -0
- package/dist/orchestrator/journal-writer.d.ts.map +1 -0
- package/dist/orchestrator/journal-writer.js +113 -0
- package/dist/orchestrator/journal-writer.js.map +1 -0
- package/dist/orchestrator/mcp/server.d.ts +136 -0
- package/dist/orchestrator/mcp/server.d.ts.map +1 -0
- package/dist/orchestrator/mcp/server.js +582 -0
- package/dist/orchestrator/mcp/server.js.map +1 -0
- package/dist/orchestrator/mcp/stdio.d.ts +22 -0
- package/dist/orchestrator/mcp/stdio.d.ts.map +1 -0
- package/dist/orchestrator/mcp/stdio.js +51 -0
- package/dist/orchestrator/mcp/stdio.js.map +1 -0
- package/dist/orchestrator/review.d.ts +131 -0
- package/dist/orchestrator/review.d.ts.map +1 -0
- package/dist/orchestrator/review.js +322 -0
- package/dist/orchestrator/review.js.map +1 -0
- package/dist/tui/app.d.ts +33 -0
- package/dist/tui/app.d.ts.map +1 -0
- package/dist/tui/app.js +71 -0
- package/dist/tui/app.js.map +1 -0
- package/dist/tui/components.d.ts +110 -0
- package/dist/tui/components.d.ts.map +1 -0
- package/dist/tui/components.js +118 -0
- package/dist/tui/components.js.map +1 -0
- package/dist/tui/index.d.ts +30 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +95 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/keymap.d.ts +33 -0
- package/dist/tui/keymap.d.ts.map +1 -0
- package/dist/tui/keymap.js +49 -0
- package/dist/tui/keymap.js.map +1 -0
- package/dist/tui/nav.d.ts +29 -0
- package/dist/tui/nav.d.ts.map +1 -0
- package/dist/tui/nav.js +39 -0
- package/dist/tui/nav.js.map +1 -0
- package/dist/tui/sanitize.d.ts +25 -0
- package/dist/tui/sanitize.d.ts.map +1 -0
- package/dist/tui/sanitize.js +36 -0
- package/dist/tui/sanitize.js.map +1 -0
- package/dist/tui/theme.d.ts +32 -0
- package/dist/tui/theme.d.ts.map +1 -0
- package/dist/tui/theme.js +63 -0
- package/dist/tui/theme.js.map +1 -0
- package/dist/tui/views/agents.d.ts +67 -0
- package/dist/tui/views/agents.d.ts.map +1 -0
- package/dist/tui/views/agents.js +231 -0
- package/dist/tui/views/agents.js.map +1 -0
- package/dist/tui/views/index.d.ts +93 -0
- package/dist/tui/views/index.d.ts.map +1 -0
- package/dist/tui/views/index.js +150 -0
- package/dist/tui/views/index.js.map +1 -0
- package/dist/tui/views/registry.d.ts +22 -0
- package/dist/tui/views/registry.d.ts.map +1 -0
- package/dist/tui/views/registry.js +110 -0
- package/dist/tui/views/registry.js.map +1 -0
- package/dist/utils/agent/backoff.d.ts +31 -0
- package/dist/utils/agent/backoff.d.ts.map +1 -0
- package/dist/utils/agent/backoff.js +51 -0
- package/dist/utils/agent/backoff.js.map +1 -0
- package/dist/utils/agent/markers.d.ts +87 -0
- package/dist/utils/agent/markers.d.ts.map +1 -0
- package/dist/utils/agent/markers.js +147 -0
- package/dist/utils/agent/markers.js.map +1 -0
- package/dist/utils/agent/review.d.ts +67 -0
- package/dist/utils/agent/review.d.ts.map +1 -0
- package/dist/utils/agent/review.js +305 -0
- package/dist/utils/agent/review.js.map +1 -0
- package/dist/utils/agent/spawn-agent.d.ts +117 -0
- package/dist/utils/agent/spawn-agent.d.ts.map +1 -0
- package/dist/utils/agent/spawn-agent.js +177 -0
- package/dist/utils/agent/spawn-agent.js.map +1 -0
- package/dist/utils/agent/task.d.ts +101 -0
- package/dist/utils/agent/task.d.ts.map +1 -0
- package/dist/utils/agent/task.js +357 -0
- package/dist/utils/agent/task.js.map +1 -0
- package/dist/utils/agent/verify.d.ts +47 -0
- package/dist/utils/agent/verify.d.ts.map +1 -0
- package/dist/utils/agent/verify.js +144 -0
- package/dist/utils/agent/verify.js.map +1 -0
- package/dist/utils/agent-detector.d.ts +48 -0
- package/dist/utils/agent-detector.d.ts.map +1 -0
- package/dist/utils/agent-detector.js +74 -0
- package/dist/utils/agent-detector.js.map +1 -0
- package/dist/utils/agent-profile-stage.d.ts +70 -0
- package/dist/utils/agent-profile-stage.d.ts.map +1 -0
- package/dist/utils/agent-profile-stage.js +153 -0
- package/dist/utils/agent-profile-stage.js.map +1 -0
- package/dist/utils/agent-profiles.d.ts +27 -0
- package/dist/utils/agent-profiles.d.ts.map +1 -0
- package/dist/utils/agent-profiles.js +61 -0
- package/dist/utils/agent-profiles.js.map +1 -0
- package/dist/utils/checkpoint-api.d.ts +1 -1
- package/dist/utils/checkpoint-api.js +1 -1
- package/dist/utils/checkpoint-env.d.ts +1 -1
- package/dist/utils/checkpoint-env.js +2 -2
- package/dist/utils/checkpoint-env.js.map +1 -1
- package/dist/utils/checkpoint-scaffold.d.ts +1 -1
- package/dist/utils/checkpoint-scaffold.js +1 -1
- package/dist/utils/cli-kit/browser.d.ts +24 -0
- package/dist/utils/cli-kit/browser.d.ts.map +1 -0
- package/dist/utils/cli-kit/browser.js +58 -0
- package/dist/utils/cli-kit/browser.js.map +1 -0
- package/dist/utils/cli-kit/claim-polling.d.ts +18 -0
- package/dist/utils/cli-kit/claim-polling.d.ts.map +1 -0
- package/dist/utils/{claim-polling.js → cli-kit/claim-polling.js} +19 -26
- package/dist/utils/cli-kit/claim-polling.js.map +1 -0
- package/dist/utils/cli-kit/diagnostics.d.ts +9 -0
- package/dist/utils/cli-kit/diagnostics.d.ts.map +1 -0
- package/dist/utils/cli-kit/diagnostics.js +11 -0
- package/dist/utils/cli-kit/diagnostics.js.map +1 -0
- package/dist/utils/cli-kit/fs-safe.d.ts +14 -0
- package/dist/utils/cli-kit/fs-safe.d.ts.map +1 -0
- package/dist/utils/cli-kit/fs-safe.js +20 -0
- package/dist/utils/cli-kit/fs-safe.js.map +1 -0
- package/dist/utils/cli-kit/index.d.ts +15 -0
- package/dist/utils/cli-kit/index.d.ts.map +1 -0
- package/dist/utils/cli-kit/index.js +10 -0
- package/dist/utils/cli-kit/index.js.map +1 -0
- package/dist/utils/cli-kit/json-file.d.ts +21 -0
- package/dist/utils/cli-kit/json-file.d.ts.map +1 -0
- package/dist/utils/cli-kit/json-file.js +51 -0
- package/dist/utils/cli-kit/json-file.js.map +1 -0
- package/dist/utils/cli-kit/marker-block.d.ts +26 -0
- package/dist/utils/cli-kit/marker-block.d.ts.map +1 -0
- package/dist/utils/cli-kit/marker-block.js +61 -0
- package/dist/utils/cli-kit/marker-block.js.map +1 -0
- package/dist/utils/cli-kit/paths.d.ts +15 -0
- package/dist/utils/cli-kit/paths.d.ts.map +1 -0
- package/dist/utils/cli-kit/paths.js +21 -0
- package/dist/utils/cli-kit/paths.js.map +1 -0
- package/dist/utils/cli-kit/secure-storage.d.ts +14 -0
- package/dist/utils/cli-kit/secure-storage.d.ts.map +1 -0
- package/dist/utils/cli-kit/secure-storage.js +20 -0
- package/dist/utils/cli-kit/secure-storage.js.map +1 -0
- package/dist/utils/cli-kit/step-report.d.ts +16 -0
- package/dist/utils/cli-kit/step-report.d.ts.map +1 -0
- package/dist/utils/cli-kit/step-report.js +36 -0
- package/dist/utils/cli-kit/step-report.js.map +1 -0
- package/dist/utils/dco/agent-metadata.d.ts +1 -1
- package/dist/utils/dco/agent-metadata.js +1 -1
- package/dist/utils/dco/agent-metadata.js.map +1 -1
- package/dist/utils/dco/claude-config.d.ts +18 -14
- package/dist/utils/dco/claude-config.d.ts.map +1 -1
- package/dist/utils/dco/claude-config.js +31 -97
- package/dist/utils/dco/claude-config.js.map +1 -1
- package/dist/utils/dco/dispatch.d.ts +134 -0
- package/dist/utils/dco/dispatch.d.ts.map +1 -0
- package/dist/utils/dco/dispatch.js +399 -0
- package/dist/utils/dco/dispatch.js.map +1 -0
- package/dist/utils/dco/fix.d.ts +122 -0
- package/dist/utils/dco/fix.d.ts.map +1 -0
- package/dist/utils/dco/fix.js +560 -0
- package/dist/utils/dco/fix.js.map +1 -0
- package/dist/utils/dco/git-config.d.ts.map +1 -1
- package/dist/utils/dco/git-config.js +5 -3
- package/dist/utils/dco/git-config.js.map +1 -1
- package/dist/utils/dco/github.d.ts +101 -0
- package/dist/utils/dco/github.d.ts.map +1 -1
- package/dist/utils/dco/github.js +133 -0
- package/dist/utils/dco/github.js.map +1 -1
- package/dist/utils/dco/paths.d.ts +1 -8
- package/dist/utils/dco/paths.d.ts.map +1 -1
- package/dist/utils/dco/paths.js +3 -12
- package/dist/utils/dco/paths.js.map +1 -1
- package/dist/utils/dco/render.d.ts +1 -1
- package/dist/utils/dco/render.d.ts.map +1 -1
- package/dist/utils/dco/render.js +4 -21
- package/dist/utils/dco/render.js.map +1 -1
- package/dist/utils/dco/resolve-agent.d.ts +54 -0
- package/dist/utils/dco/resolve-agent.d.ts.map +1 -0
- package/dist/utils/dco/resolve-agent.js +164 -0
- package/dist/utils/dco/resolve-agent.js.map +1 -0
- package/dist/utils/dco/setup.d.ts +10 -7
- package/dist/utils/dco/setup.d.ts.map +1 -1
- package/dist/utils/dco/setup.js +264 -200
- package/dist/utils/dco/setup.js.map +1 -1
- package/dist/utils/dco/signing-key-writer.d.ts +40 -0
- package/dist/utils/dco/signing-key-writer.d.ts.map +1 -0
- package/dist/utils/dco/signing-key-writer.js +76 -0
- package/dist/utils/dco/signing-key-writer.js.map +1 -0
- package/dist/utils/dco/ssh-key.d.ts +50 -0
- package/dist/utils/dco/ssh-key.d.ts.map +1 -1
- package/dist/utils/dco/ssh-key.js +129 -8
- package/dist/utils/dco/ssh-key.js.map +1 -1
- package/dist/utils/dco/status.d.ts +1 -1
- package/dist/utils/dco/status.d.ts.map +1 -1
- package/dist/utils/dco/status.js +3 -3
- package/dist/utils/dco/status.js.map +1 -1
- package/dist/utils/dco/verify.d.ts +170 -0
- package/dist/utils/dco/verify.d.ts.map +1 -0
- package/dist/utils/dco/verify.js +550 -0
- package/dist/utils/dco/verify.js.map +1 -0
- package/dist/utils/dependency-installer.d.ts +37 -0
- package/dist/utils/dependency-installer.d.ts.map +1 -0
- package/dist/utils/dependency-installer.js +32 -0
- package/dist/utils/dependency-installer.js.map +1 -0
- package/dist/utils/github-credential-stage.d.ts +87 -0
- package/dist/utils/github-credential-stage.d.ts.map +1 -0
- package/dist/utils/github-credential-stage.js +168 -0
- package/dist/utils/github-credential-stage.js.map +1 -0
- package/dist/utils/github-credential.d.ts +160 -0
- package/dist/utils/github-credential.d.ts.map +1 -0
- package/dist/utils/github-credential.js +308 -0
- package/dist/utils/github-credential.js.map +1 -0
- package/dist/utils/gitignore.d.ts +17 -0
- package/dist/utils/gitignore.d.ts.map +1 -0
- package/dist/utils/gitignore.js +40 -0
- package/dist/utils/gitignore.js.map +1 -0
- package/dist/utils/hub-config.d.ts +21 -0
- package/dist/utils/hub-config.d.ts.map +1 -0
- package/dist/utils/hub-config.js +28 -0
- package/dist/utils/hub-config.js.map +1 -0
- package/dist/utils/identity-heal.d.ts +16 -0
- package/dist/utils/identity-heal.d.ts.map +1 -0
- package/dist/utils/identity-heal.js +37 -0
- package/dist/utils/identity-heal.js.map +1 -0
- package/dist/utils/init/pipeline.d.ts +74 -0
- package/dist/utils/init/pipeline.d.ts.map +1 -0
- package/dist/utils/init/pipeline.js +96 -0
- package/dist/utils/init/pipeline.js.map +1 -0
- package/dist/utils/poll.d.ts +15 -1
- package/dist/utils/poll.d.ts.map +1 -1
- package/dist/utils/poll.js +6 -3
- package/dist/utils/poll.js.map +1 -1
- package/dist/utils/register-agent-identity.d.ts +67 -0
- package/dist/utils/register-agent-identity.d.ts.map +1 -0
- package/dist/utils/register-agent-identity.js +34 -0
- package/dist/utils/register-agent-identity.js.map +1 -0
- package/dist/utils/review/did-web-key.d.ts +34 -0
- package/dist/utils/review/did-web-key.d.ts.map +1 -0
- package/dist/utils/review/did-web-key.js +104 -0
- package/dist/utils/review/did-web-key.js.map +1 -0
- package/dist/utils/review/load-registry.d.ts +33 -0
- package/dist/utils/review/load-registry.d.ts.map +1 -0
- package/dist/utils/review/load-registry.js +62 -0
- package/dist/utils/review/load-registry.js.map +1 -0
- package/dist/utils/review/verdict-verify.d.ts +43 -0
- package/dist/utils/review/verdict-verify.d.ts.map +1 -0
- package/dist/utils/review/verdict-verify.js +53 -0
- package/dist/utils/review/verdict-verify.js.map +1 -0
- package/dist/utils/review-registry-writer.d.ts +52 -0
- package/dist/utils/review-registry-writer.d.ts.map +1 -0
- package/dist/utils/review-registry-writer.js +79 -0
- package/dist/utils/review-registry-writer.js.map +1 -0
- package/dist/utils/should-install-dependency.d.ts +17 -0
- package/dist/utils/should-install-dependency.d.ts.map +1 -0
- package/dist/utils/should-install-dependency.js +25 -0
- package/dist/utils/should-install-dependency.js.map +1 -0
- package/dist/utils/tool-readiness.d.ts +57 -0
- package/dist/utils/tool-readiness.d.ts.map +1 -0
- package/dist/utils/tool-readiness.js +114 -0
- package/dist/utils/tool-readiness.js.map +1 -0
- package/dist/utils/which.d.ts +2 -0
- package/dist/utils/which.d.ts.map +1 -0
- package/dist/utils/which.js +22 -0
- package/dist/utils/which.js.map +1 -0
- package/dist/version.d.ts +15 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +29 -0
- package/dist/version.js.map +1 -0
- package/package.json +19 -6
- package/dist/utils/claim-polling.d.ts +0 -21
- package/dist/utils/claim-polling.d.ts.map +0 -1
- package/dist/utils/claim-polling.js.map +0 -1
- package/dist/utils/dco/fs-safe.d.ts +0 -14
- package/dist/utils/dco/fs-safe.d.ts.map +0 -1
- package/dist/utils/dco/fs-safe.js +0 -20
- package/dist/utils/dco/fs-safe.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EACL,WAAW,EACX,SAAS,GAGV,MAAM,qBAAqB,CAAC;AAsD7B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,UAAyB,EAAE;IACtD,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAEjE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,kDAAkD;aAC1D,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,kDAAkD,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,OAAO,GAAG,IAAI;QAClB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEtD,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,kDAAkD,CAAC;YACjE,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,kBAAkB;QAClB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,KAAK,GACT,yEAAyE,CAAC;YAC5E,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,GAAG,kCAAkC,CAAC;QACpD,CAAC;QAED,6BAA6B;QAC7B,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEnE,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,IAAI,EAAE,CAAC;YAChB,0BAA0B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QAED,6BAA6B;QAC7B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QAE3D,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,YAAY;aACpB,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,IAAI,CAAC,wBAAwB,YAAY,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAAC,OAAsB;IAKjD,IAAI,CAAC;QACH,IAAI,KAAoB,CAAC;QACzB,IAAI,OAAY,CAAC;QACjB,IAAI,QAAa,CAAC;QAElB,aAAa;QACb,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,MAAM,gBAAgB,GAAG;gBACvB,uBAAuB;gBACvB,YAAY;gBACZ,iBAAiB;aAClB,CAAC;YAEF,IAAI,SAAS,GAAkB,IAAI,CAAC;YACpC,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;gBACpC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrB,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM;gBACR,CAAC;YACH,CAAC;YAED,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC;YACd,CAAC;YAED,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,2BAA2B;QAC3B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACrD,CAAC;QAED,4BAA4B;QAC5B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,8BAA8B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACzF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,KAAa,EAAE,IAAY;IAC/C,IAAI,CAAC;QACH,4BAA4B;QAC5B,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAED,8BAA8B;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,CAClF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,wBAAwB,CACrC,QAAyB,EACzB,SAAkE;IAElE,MAAM,MAAM,GAA4B;QACtC,OAAO,EAAE,KAAK;QACd,OAAO,EAAE;YACP,cAAc,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;YAC5C,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;YACvC,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;YACpC,eAAe,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;YAC7C,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;SACxC;QACD,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;SAC5D;KACF,CAAC;IAEF,8BAA8B;IAC9B,MAAM,CAAC,OAAO,CAAC,cAAc,GAAG,sBAAsB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAExE,wBAAwB;IACxB,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAE9E,oDAAoD;IACpD,IAAI,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,cAAc,CACpC,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,QAAQ,CACnB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,QAAQ,CAAC,IAAI,CAClB,8DAA8D,CAC/D,CAAC;IACJ,CAAC;IAED,+BAA+B;IAC/B,MAAM,CAAC,OAAO,CAAC,eAAe,GAAG,uBAAuB,CACtD,SAAS,CAAC,KAAK,EACf,QAAQ,CACT,CAAC;IAEF,wBAAwB;IACxB,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAE9D,4BAA4B;IAC5B,MAAM,CAAC,OAAO;QACZ,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK;YACnC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK;YAC9B,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;gBAC1B,CAAC,SAAS,CAAC,OAAO;gBAClB,CAAC,SAAS,CAAC,QAAQ,CAAC;YACtB,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK;YACpC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;IAEjC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,KAAoB;IAIlD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,wBAAwB;IACxB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,gDAAgD;QAChD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,cAAc,GAAG;YACrB,KAAK;YACL,KAAK;YACL,IAAI;YACJ,OAAO;YACP,UAAU;YACV,WAAW;YACX,aAAa;YACb,cAAc;SACf,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,KAAwB,CAAC,EAAE,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC;YACzE,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAClE,CAAC;QAED,IACE,IAAI,CAAC,YAAY;YACjB,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,uBAAuB,CAAC,EACjD,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC9B,KAAoB,EACpB,QAAyB;IAEzB,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,CAAC;QACH,mDAAmD;QACnD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAElE,8CAA8C;QAC9C,MAAM,YAAY,GAAG;YACnB,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,SAAS;YACd,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;SACtD,CAAC;QAEF,wBAAwB;QACxB,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAEzD,4CAA4C;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAC9D,WAAW,CACZ,CAAC;QACF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,OAAO,GAAG,CAAC,CAAC;QAExD,uBAAuB;QACvB,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE;YACvE,UAAU,EAAE,CAAC,OAAO,CAAC;SACtB,CAAC,CAAC;QAEH,sCAAsC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAEnD,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CACT,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC7F,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACrB,KAAoB,EACpB,OAAY,EACZ,QAAa;IAEb,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,CAAC;QACH,0EAA0E;QAC1E,MAAM,cAAc,GAAG,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAElE,MAAM,MAAM,GAAG;YACb,KAAK,EAAE,KAAK;YACZ,MAAM;YACN,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE;gBACN,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW;gBACnC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY;aACtC;SACF,CAAC;QAEF,iBAAiB;QACjB,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,cAAc,CAAC,WAAW,EAAE,CAAC;YAC1D,MAAM,CAAC,IAAI,CACT,oCAAoC,cAAc,CAAC,WAAW,SAAS,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAChG,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,cAAc,CAAC,YAAY,EAAE,CAAC;YAC5D,MAAM,CAAC,IAAI,CACT,qCAAqC,cAAc,CAAC,YAAY,SAAS,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CACnG,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CACT,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACtF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAC9B,OAAY,EACZ,QAAa;IAEb,+EAA+E;IAC/E,MAAM,gBAAgB,GAAG;QACvB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;KAClD,CAAC;IAEF,2DAA2D;IAC3D,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC;IAEpD,oDAAoD;IACpD,MAAM,WAAW,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IAE3D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,IAAS;IACnC,mDAAmD;IACnD,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAE7C,wBAAwB;IACxB,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE9E,OAAO,UAAU,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,GAAQ;IAChC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAChC,IAAI,OAAO,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACpD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC;QACzC,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAExD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,mCAAmC;QACnC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACnC,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACzC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,CAAC;IAED,2BAA2B;IAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAC9B,KAAoB,EACpB,QAAyB;IAEzB,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,kBAAkB;IAClB,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CACT,yBAAyB,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,QAAQ,CAAC,GAAG,EAAE,CACrE,CAAC;IACJ,CAAC;IAED,qBAAqB;IACrB,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CACT,4BAA4B,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,QAAQ,CAAC,GAAG,EAAE,CACxE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,KAAoB;IAK7C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;IAEvC,oEAAoE;IACpE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,KAAK,CAAC,CAAC;IAElE,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,6BAA6B,IAAI,WAAW,OAAO,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;QACN,IAAI;KACL,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CACjC,MAA+B,EAC/B,OAAgB;IAEhB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAEvD,iBAAiB;IACjB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,WAAW,CAAC,6BAA6B,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,SAAS,CAAC,6BAA6B,CAAC,CAAC;IAC3C,CAAC;IAED,gBAAgB;IAChB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,mBAAmB;IACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAG;QACb,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE;QAClE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;QACvD,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;QAC1D,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE;QACpE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;KACxD,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;QAE3D,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEjD,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACvE,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAED,eAAe;IACf,IACE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ;QAC9B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM;QAC5B,OAAO,EACP,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CACT,6BAA6B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CACtF,CAAC;QACF,OAAO,CAAC,GAAG,CACT,6BAA6B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CACpF,CAAC;QACF,OAAO,CAAC,GAAG,CACT,8BAA8B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CACxF,CAAC;QACF,OAAO,CAAC,GAAG,CACT,8BAA8B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CACtF,CAAC;IACJ,CAAC;IAED,oBAAoB;IACpB,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CACT,kBAAkB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CACpE,CAAC;QACF,OAAO,CAAC,GAAG,CACT,mBAAmB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,KAAK,CAAC,GAAG,CAC1E,CAAC;IACJ,CAAC;IAED,WAAW;IACX,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC3C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,cAAc;IACd,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,2FAA2F,CAC5F,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAClE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"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"}
|
package/dist/dco.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dco.d.ts","sourceRoot":"","sources":["../src/dco.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,OAAO,SAEnB,CAAC"}
|
package/dist/dco.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from "commander";
|
|
3
|
+
import { registerDcoSubcommands } from "./commands/dco.js";
|
|
4
|
+
import { cliVersion } from "./version.js";
|
|
5
|
+
// Standalone `dco` binary: setup/status/verify/dispatch/whoami, with no
|
|
6
|
+
// `kya-os` prefix. registerDcoSubcommands is the single place these
|
|
7
|
+
// subcommands are defined, so this is the only surface that exposes them.
|
|
8
|
+
export const program = new Command("dco").description("DCO sign-off, commit signing, and PR attribution for your agent");
|
|
9
|
+
// Reads from package.json, same as the kya-os program's own `.version()`
|
|
10
|
+
// call, so the two can never drift the way "1.2.2" (a hand-synced literal)
|
|
11
|
+
// once did.
|
|
12
|
+
program.version(cliVersion);
|
|
13
|
+
registerDcoSubcommands(program);
|
|
14
|
+
// parseAsync, not parse: dispatch/setup/verify/whoami are all async actions,
|
|
15
|
+
// and plain parse() doesn't await them, so a rejection inside one would
|
|
16
|
+
// surface as an unhandled promise rejection instead of a clean, reported
|
|
17
|
+
// command failure.
|
|
18
|
+
await program.parseAsync();
|
|
19
|
+
// Show help if no command specified, same as the kya-os entry points.
|
|
20
|
+
if (!process.argv.slice(2).length) {
|
|
21
|
+
program.outputHelp();
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=dco.js.map
|
package/dist/dco.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dco.js","sourceRoot":"","sources":["../src/dco.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,wEAAwE;AACxE,oEAAoE;AACpE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CACnD,iEAAiE,CAClE,CAAC;AAEF,yEAAyE;AACzE,2EAA2E;AAC3E,YAAY;AACZ,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE5B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAEhC,6EAA6E;AAC7E,wEAAwE;AACxE,yEAAyE;AACzE,mBAAmB;AACnB,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;AAE3B,sEAAsE;AACtE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -18,6 +18,11 @@ import { createDcoCommand } from "./commands/dco.js";
|
|
|
18
18
|
import { doctor } from "./commands/doctor.js";
|
|
19
19
|
import { verify } from "./commands/verify.js";
|
|
20
20
|
import { createCheckpointCommand } from "./commands/checkpoint-init.js";
|
|
21
|
+
import { createOrchestratorCommand } from "./commands/orchestrator.js";
|
|
22
|
+
import { createAgentCommand } from "./commands/agent.js";
|
|
23
|
+
import { score } from "./commands/score.js";
|
|
24
|
+
import { createReviewCommand } from "./commands/review.js";
|
|
25
|
+
import { cliVersion } from "./version.js";
|
|
21
26
|
export const program = new Command();
|
|
22
27
|
// ASCII art logo
|
|
23
28
|
const logo = chalk.cyan(`
|
|
@@ -26,9 +31,9 @@ const logo = chalk.cyan(`
|
|
|
26
31
|
╩ ╩ ╩ ╩ ╩ ╚═╝╚═╝
|
|
27
32
|
`);
|
|
28
33
|
program
|
|
29
|
-
.name("
|
|
34
|
+
.name("kya-os")
|
|
30
35
|
.description("CLI for XMCP-I setup and management")
|
|
31
|
-
.version(
|
|
36
|
+
.version(cliVersion)
|
|
32
37
|
.addHelpText("before", logo);
|
|
33
38
|
// Development commands
|
|
34
39
|
program
|
|
@@ -55,6 +60,27 @@ program
|
|
|
55
60
|
.option("-v, --verbose", "Show detailed debug information")
|
|
56
61
|
.option("--skip-claim-check", "Skip waiting for agent claim")
|
|
57
62
|
.option("--no-dco", "Skip the commit signing and PR attribution prompt after registration")
|
|
63
|
+
.option("--install", "Install missing dependencies (e.g. @kya-os/mcp-i) without prompting, for CI")
|
|
64
|
+
.option("--no-install", "Never install missing dependencies; keep the current error behavior")
|
|
65
|
+
.option("--yes", "Accept install prompts automatically (never consents to registration or key-overwrite decisions)")
|
|
66
|
+
.option("--profiles <kinds>", "Comma-separated agent kinds to set up KYA profiles for, non-interactive only (e.g. claude-code,codex)")
|
|
67
|
+
.option("--skip-profiles", "Skip the agent-profile detection stage entirely")
|
|
68
|
+
.option("--skip-github", "Skip the GitHub credential onboarding stage entirely")
|
|
69
|
+
.option("--github-token-env <name>", "Non-interactive GitHub credential acquisition: read the token from this env var")
|
|
70
|
+
.option("--skip-hub", "Skip hub-context resolution entirely")
|
|
71
|
+
.option("--hub <endpoint>", "Explicit DIDComm hub endpoint, non-interactive")
|
|
72
|
+
// --tui MUST be declared before --no-tui: Commander's negated-option
|
|
73
|
+
// handling (addOption) gives a `--no-foo` an implicit `foo: true` default
|
|
74
|
+
// "unless a --foo option is already defined" at the time --no-foo is
|
|
75
|
+
// registered. Reversing this order (as a prior revision of this file did)
|
|
76
|
+
// makes options.tui default to true on every plain, flagless run --
|
|
77
|
+
// identical to an explicit --tui -- silently defeating the "Open the KYA
|
|
78
|
+
// TUI now? (Y/n)" prompt this PR exists to add. --install/--no-install
|
|
79
|
+
// above gets this right for the same reason; verified against the
|
|
80
|
+
// installed commander via a standalone repro before fixing.
|
|
81
|
+
.option("--tui", "Open the KYA TUI after setup without asking")
|
|
82
|
+
.option("--no-tui", "Never offer to open the KYA TUI after setup; skips the prompt and defaults no")
|
|
83
|
+
.option("--reconfigure <stage>", "Force one stage (github, hub) to run interactively again")
|
|
58
84
|
.action(init);
|
|
59
85
|
// Check command
|
|
60
86
|
program
|
|
@@ -146,6 +172,12 @@ program.addCommand(createDemoCommand());
|
|
|
146
172
|
program.addCommand(createDcoCommand());
|
|
147
173
|
// Checkpoint Detect install (KYA-1037)
|
|
148
174
|
program.addCommand(createCheckpointCommand());
|
|
175
|
+
// Orchestrator ledger inspection
|
|
176
|
+
program.addCommand(createOrchestratorCommand());
|
|
177
|
+
// Two-party agent review loop (review-loop P13): task/review/verify
|
|
178
|
+
program.addCommand(createAgentCommand());
|
|
179
|
+
// Signed review-verdict verification (review-loop P9)
|
|
180
|
+
program.addCommand(createReviewCommand());
|
|
149
181
|
// Doctor command
|
|
150
182
|
program
|
|
151
183
|
.command("doctor")
|
|
@@ -164,6 +196,16 @@ program
|
|
|
164
196
|
.option("--request <path>", "Path to request file or JSON string")
|
|
165
197
|
.option("--response <path>", "Path to response file or JSON string")
|
|
166
198
|
.action((options) => verify(options));
|
|
199
|
+
// Score command
|
|
200
|
+
program
|
|
201
|
+
.command("score <url>")
|
|
202
|
+
.description("Audit an MCP server's Spec Score via the KYA-OS registry")
|
|
203
|
+
.option("--min-grade <letter>", "Fail (exit 1) if the grade is below this letter (e.g. B)")
|
|
204
|
+
.option("--json", "Emit machine-readable JSON and suppress decorative output")
|
|
205
|
+
.option("--ci", "Non-interactive; treat unreachable/failed/timeout as a gate failure")
|
|
206
|
+
.option("--timeout <seconds>", "Max seconds to wait for the audit to complete")
|
|
207
|
+
.option("--kta-url <url>", "Override the KTA base URL (defaults to $KTA_API_URL or knowthat.ai)")
|
|
208
|
+
.action((url, options) => score(url, options));
|
|
167
209
|
// Add custom help text
|
|
168
210
|
program.addHelpText("after", `
|
|
169
211
|
${chalk.bold("Available Commands:")}
|
|
@@ -184,23 +226,24 @@ ${chalk.bold("Available Commands:")}
|
|
|
184
226
|
${chalk.cyan("receipts")} List and manage stored receipts
|
|
185
227
|
${chalk.cyan("doctor")} Check system health and compatibility
|
|
186
228
|
${chalk.cyan("verify --local")} Verify proofs and signatures locally
|
|
229
|
+
${chalk.cyan("score <url>")} Audit an MCP server's Spec Score
|
|
187
230
|
|
|
188
231
|
${chalk.bold("Examples:")}
|
|
189
232
|
${chalk.gray("# Create and start a new agent")}
|
|
190
233
|
${chalk.cyan("npx @kya-os/create-mcpi-app my-agent")}
|
|
191
|
-
${chalk.cyan("cd my-agent &&
|
|
234
|
+
${chalk.cyan("cd my-agent && kya-os dev")}
|
|
192
235
|
|
|
193
236
|
${chalk.gray("# Initialize identity and register")}
|
|
194
|
-
${chalk.cyan("
|
|
195
|
-
${chalk.cyan("
|
|
237
|
+
${chalk.cyan("kya-os init")}
|
|
238
|
+
${chalk.cyan("kya-os register")}
|
|
196
239
|
|
|
197
240
|
${chalk.gray("# Build and deploy")}
|
|
198
|
-
${chalk.cyan("
|
|
199
|
-
${chalk.cyan("
|
|
241
|
+
${chalk.cyan("kya-os build")}
|
|
242
|
+
${chalk.cyan("kya-os start")}
|
|
200
243
|
|
|
201
244
|
${chalk.gray("# Key management")}
|
|
202
|
-
${chalk.cyan("
|
|
203
|
-
${chalk.cyan("
|
|
245
|
+
${chalk.cyan("kya-os keys rotate")}
|
|
246
|
+
${chalk.cyan("kya-os identity clean --force")}
|
|
204
247
|
|
|
205
248
|
${chalk.bold("Documentation:")}
|
|
206
249
|
${chalk.gray("https://docs.kya-os.ai/xmcp-i")}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrator daemon (ORC-W1 PR-2).
|
|
3
|
+
*
|
|
4
|
+
* The single writer to the ledger. Everything that mutates state does so here,
|
|
5
|
+
* driven by verified protocol events, which is what lets the journal be read
|
|
6
|
+
* as evidence of what happened rather than as a record of what something
|
|
7
|
+
* claimed happened.
|
|
8
|
+
*
|
|
9
|
+
* It owns no judgement. Deciding what to staff, whether two tickets are
|
|
10
|
+
* related, or when to escalate belongs to an orchestrator session on top of
|
|
11
|
+
* this (ORC-W5). The dividing line: this file owns anything whose correctness
|
|
12
|
+
* a test can check.
|
|
13
|
+
*
|
|
14
|
+
* @module orchestrator/daemon
|
|
15
|
+
*/
|
|
16
|
+
import { type Ledger } from "./db/index.js";
|
|
17
|
+
import { type BeatInput } from "./db/liveness.js";
|
|
18
|
+
import type { EventSource } from "./events.js";
|
|
19
|
+
/**
|
|
20
|
+
* Atomically check for a live writer and, if there is none, claim sole-writer
|
|
21
|
+
* status -- in ONE step, not two.
|
|
22
|
+
*
|
|
23
|
+
* The read and the claim used to be separate calls (this function only
|
|
24
|
+
* asserted; the daemon's own first beat happened much later, after
|
|
25
|
+
* subscribing and reconciling), which left a window where two processes
|
|
26
|
+
* racing to start against the same ledger could both read "no live writer"
|
|
27
|
+
* before either had claimed it, and both proceed (Bugbot finding on #686:
|
|
28
|
+
* the earlier fix enforced the invariant against a SEQUENTIAL second start,
|
|
29
|
+
* but not against two that begin in the same window). `BEGIN IMMEDIATE`
|
|
30
|
+
* closes it: SQLite serializes immediate transactions against each other, so
|
|
31
|
+
* a second process's transaction cannot even begin until the first's has
|
|
32
|
+
* committed, and by the time it does begin, it reads the row the first just
|
|
33
|
+
* claimed rather than the state from before it existed.
|
|
34
|
+
*
|
|
35
|
+
* The staleness/pid-liveness reasoning is unchanged: a recent beat alone
|
|
36
|
+
* cannot tell "still running" from "beat once, then crashed" -- where the
|
|
37
|
+
* row names a pid on THIS host, the OS is asked directly rather than
|
|
38
|
+
* trusting the timestamp, so a genuinely dead process clears this regardless
|
|
39
|
+
* of how recent its last beat was, and a row from another host falls back to
|
|
40
|
+
* the staleness window, the same ambiguity `judgeLiveness` already lives
|
|
41
|
+
* with.
|
|
42
|
+
*/
|
|
43
|
+
export declare function claimSoleWriter(db: Ledger, claim: BeatInput & {
|
|
44
|
+
pid: number;
|
|
45
|
+
host: string;
|
|
46
|
+
}): void;
|
|
47
|
+
export interface DaemonConfig {
|
|
48
|
+
/**
|
|
49
|
+
* How often to record liveness, in ms. Default 30s against a 90s staleness
|
|
50
|
+
* threshold, so two beats can be lost before a reader calls the daemon dead.
|
|
51
|
+
* A one-beat margin would report every scheduling hiccup as a death.
|
|
52
|
+
*/
|
|
53
|
+
beatIntervalMs?: number;
|
|
54
|
+
/**
|
|
55
|
+
* The coordination hub, INJECTED. The daemon never constructs one, so tests
|
|
56
|
+
* drive a fake and the hub can be embedded locally now and remote later
|
|
57
|
+
* without this file changing.
|
|
58
|
+
*/
|
|
59
|
+
hub: EventSource;
|
|
60
|
+
/** Ledger path. Defaults to the per-user state dir; ":memory:" in tests. */
|
|
61
|
+
ledgerPath?: string;
|
|
62
|
+
/** An already-open ledger, when a caller wants to share one. */
|
|
63
|
+
ledger?: Ledger;
|
|
64
|
+
/** Events to replay on boot. Matches the hub's own default. */
|
|
65
|
+
reconcileLimit?: number;
|
|
66
|
+
}
|
|
67
|
+
export interface DaemonStatus {
|
|
68
|
+
running: boolean;
|
|
69
|
+
startedAt: string | null;
|
|
70
|
+
/** Rows recovered from the hub's replay window at boot. */
|
|
71
|
+
reconciledOnBoot: number;
|
|
72
|
+
/** Liveness as last recorded, plus whether a reader should trust it. */
|
|
73
|
+
liveness: {
|
|
74
|
+
present: boolean;
|
|
75
|
+
stale: boolean;
|
|
76
|
+
ageMs: number | null;
|
|
77
|
+
} | null;
|
|
78
|
+
/**
|
|
79
|
+
* Tickets whose status the boot replay corrected.
|
|
80
|
+
*
|
|
81
|
+
* Distinct from reconciledOnBoot, which counts journal rows. A restart that
|
|
82
|
+
* recovers events but moves no ticket is the normal case; a non-zero value
|
|
83
|
+
* here means the daemon slept through a verdict.
|
|
84
|
+
*/
|
|
85
|
+
movedOnBoot: number;
|
|
86
|
+
}
|
|
87
|
+
export declare class OrchestratorDaemon {
|
|
88
|
+
private readonly hub;
|
|
89
|
+
private readonly ownsLedger;
|
|
90
|
+
private db;
|
|
91
|
+
private unsubscribers;
|
|
92
|
+
private startedAt;
|
|
93
|
+
/** Did THIS start() successfully claim sole-writer status? Set only when
|
|
94
|
+
* `ownsLedger` and only after `claimSoleWriter` returns without throwing --
|
|
95
|
+
* distinct from `startedAt`, since a LATER step (subscribe, reconcile) can
|
|
96
|
+
* still fail after the claim already succeeded. */
|
|
97
|
+
private claimedWriter;
|
|
98
|
+
private reconciledOnBoot;
|
|
99
|
+
private movedOnBoot;
|
|
100
|
+
private beatTimer;
|
|
101
|
+
private readonly beatIntervalMs;
|
|
102
|
+
private readonly ledgerPath;
|
|
103
|
+
private readonly providedLedger;
|
|
104
|
+
private readonly reconcileLimit;
|
|
105
|
+
constructor(config: DaemonConfig);
|
|
106
|
+
/** The ledger handle, once started. Throws before start, by design. */
|
|
107
|
+
get ledger(): Ledger;
|
|
108
|
+
/**
|
|
109
|
+
* Open the ledger, replay what we slept through, then subscribe.
|
|
110
|
+
*
|
|
111
|
+
* Order matters. Reconciling BEFORE subscribing would race: an event
|
|
112
|
+
* arriving mid-replay could be written twice under two different orderings.
|
|
113
|
+
* Subscribing first is safe only because journal ids are content-derived, so
|
|
114
|
+
* an event seen live and again in the replay window collapses to one row.
|
|
115
|
+
*/
|
|
116
|
+
start(): void;
|
|
117
|
+
/**
|
|
118
|
+
* Detach everything and release the ledger, running every step even if an
|
|
119
|
+
* earlier one throws.
|
|
120
|
+
*
|
|
121
|
+
* Shared by {@link stop} and by start()'s failure path so the two cannot
|
|
122
|
+
* drift: a cleanup that only the error path exercises is a cleanup nobody
|
|
123
|
+
* tests. Returns the errors it collected rather than throwing, leaving the
|
|
124
|
+
* caller to decide whether a teardown failure should surface.
|
|
125
|
+
*/
|
|
126
|
+
private teardown;
|
|
127
|
+
/**
|
|
128
|
+
* Detach every subscription, then release the ledger if we opened it.
|
|
129
|
+
*
|
|
130
|
+
* Unsubscribing before closing is not tidiness: a handler still attached to
|
|
131
|
+
* a closed database throws inside the hub's emit loop, which is a failure in
|
|
132
|
+
* someone else's code caused by ours.
|
|
133
|
+
*/
|
|
134
|
+
stop(): void;
|
|
135
|
+
status(): DaemonStatus;
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=daemon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/orchestrator/daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAGxD,OAAO,EAML,KAAK,SAAS,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAkBlG;AAED,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,GAAG,EAAE,WAAW,CAAC;IACjB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,QAAQ,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5E;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,EAAE,CAAqB;IAC/B,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,SAAS,CAAuB;IACxC;;;uDAGmD;IACnD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAE5B,MAAM,EAAE,YAAY;IAShC,uEAAuE;IACvE,IAAI,MAAM,IAAI,MAAM,CAGnB;IAED;;;;;;;OAOG;IACH,KAAK,IAAI,IAAI;IAsEb;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ;IAiDhB;;;;;;OAMG;IACH,IAAI,IAAI,IAAI;IASZ,MAAM,IAAI,YAAY;CASvB"}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrator daemon (ORC-W1 PR-2).
|
|
3
|
+
*
|
|
4
|
+
* The single writer to the ledger. Everything that mutates state does so here,
|
|
5
|
+
* driven by verified protocol events, which is what lets the journal be read
|
|
6
|
+
* as evidence of what happened rather than as a record of what something
|
|
7
|
+
* claimed happened.
|
|
8
|
+
*
|
|
9
|
+
* It owns no judgement. Deciding what to staff, whether two tickets are
|
|
10
|
+
* related, or when to escalate belongs to an orchestrator session on top of
|
|
11
|
+
* this (ORC-W5). The dividing line: this file owns anything whose correctness
|
|
12
|
+
* a test can check.
|
|
13
|
+
*
|
|
14
|
+
* @module orchestrator/daemon
|
|
15
|
+
*/
|
|
16
|
+
import { hostname } from "node:os";
|
|
17
|
+
import { openLedger } from "./db/index.js";
|
|
18
|
+
import { registerJournalWriter, reconcileRecentEvents } from "./journal-writer.js";
|
|
19
|
+
import { registerReviewReactor, reconcileReviewState } from "./review.js";
|
|
20
|
+
import { beat, readLiveness, judgeLiveness, clearLiveness, isProcessAlive, } from "./db/liveness.js";
|
|
21
|
+
/**
|
|
22
|
+
* Atomically check for a live writer and, if there is none, claim sole-writer
|
|
23
|
+
* status -- in ONE step, not two.
|
|
24
|
+
*
|
|
25
|
+
* The read and the claim used to be separate calls (this function only
|
|
26
|
+
* asserted; the daemon's own first beat happened much later, after
|
|
27
|
+
* subscribing and reconciling), which left a window where two processes
|
|
28
|
+
* racing to start against the same ledger could both read "no live writer"
|
|
29
|
+
* before either had claimed it, and both proceed (Bugbot finding on #686:
|
|
30
|
+
* the earlier fix enforced the invariant against a SEQUENTIAL second start,
|
|
31
|
+
* but not against two that begin in the same window). `BEGIN IMMEDIATE`
|
|
32
|
+
* closes it: SQLite serializes immediate transactions against each other, so
|
|
33
|
+
* a second process's transaction cannot even begin until the first's has
|
|
34
|
+
* committed, and by the time it does begin, it reads the row the first just
|
|
35
|
+
* claimed rather than the state from before it existed.
|
|
36
|
+
*
|
|
37
|
+
* The staleness/pid-liveness reasoning is unchanged: a recent beat alone
|
|
38
|
+
* cannot tell "still running" from "beat once, then crashed" -- where the
|
|
39
|
+
* row names a pid on THIS host, the OS is asked directly rather than
|
|
40
|
+
* trusting the timestamp, so a genuinely dead process clears this regardless
|
|
41
|
+
* of how recent its last beat was, and a row from another host falls back to
|
|
42
|
+
* the staleness window, the same ambiguity `judgeLiveness` already lives
|
|
43
|
+
* with.
|
|
44
|
+
*/
|
|
45
|
+
export function claimSoleWriter(db, claim) {
|
|
46
|
+
db.transaction(() => {
|
|
47
|
+
const row = readLiveness(db);
|
|
48
|
+
if (row) {
|
|
49
|
+
const verdict = judgeLiveness(row, Date.now());
|
|
50
|
+
const deadOnThisHost = row.host === claim.host && row.pid !== null && !isProcessAlive(row.pid);
|
|
51
|
+
if (!verdict.stale && !deadOnThisHost) {
|
|
52
|
+
throw new Error(`orchestrator: ledger already has a live writer (pid ${row.pid ?? "unknown"} on ` +
|
|
53
|
+
`${row.host ?? "an unknown host"}, last beat ${verdict.ageMs ?? "an unknown number of"}ms ago). Refusing to start a second daemon against the same ledger.`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
beat(db, claim);
|
|
57
|
+
}).immediate();
|
|
58
|
+
}
|
|
59
|
+
export class OrchestratorDaemon {
|
|
60
|
+
constructor(config) {
|
|
61
|
+
this.unsubscribers = [];
|
|
62
|
+
this.startedAt = null;
|
|
63
|
+
/** Did THIS start() successfully claim sole-writer status? Set only when
|
|
64
|
+
* `ownsLedger` and only after `claimSoleWriter` returns without throwing --
|
|
65
|
+
* distinct from `startedAt`, since a LATER step (subscribe, reconcile) can
|
|
66
|
+
* still fail after the claim already succeeded. */
|
|
67
|
+
this.claimedWriter = false;
|
|
68
|
+
this.reconciledOnBoot = 0;
|
|
69
|
+
this.movedOnBoot = 0;
|
|
70
|
+
this.hub = config.hub;
|
|
71
|
+
this.beatIntervalMs = config.beatIntervalMs ?? 30000;
|
|
72
|
+
this.providedLedger = config.ledger;
|
|
73
|
+
this.ledgerPath = config.ledgerPath;
|
|
74
|
+
this.ownsLedger = config.ledger === undefined;
|
|
75
|
+
this.reconcileLimit = config.reconcileLimit ?? 50;
|
|
76
|
+
}
|
|
77
|
+
/** The ledger handle, once started. Throws before start, by design. */
|
|
78
|
+
get ledger() {
|
|
79
|
+
if (!this.db)
|
|
80
|
+
throw new Error("orchestrator: daemon is not started");
|
|
81
|
+
return this.db;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Open the ledger, replay what we slept through, then subscribe.
|
|
85
|
+
*
|
|
86
|
+
* Order matters. Reconciling BEFORE subscribing would race: an event
|
|
87
|
+
* arriving mid-replay could be written twice under two different orderings.
|
|
88
|
+
* Subscribing first is safe only because journal ids are content-derived, so
|
|
89
|
+
* an event seen live and again in the replay window collapses to one row.
|
|
90
|
+
*/
|
|
91
|
+
start() {
|
|
92
|
+
if (this.startedAt)
|
|
93
|
+
return;
|
|
94
|
+
this.db = this.providedLedger ?? openLedger(this.ledgerPath);
|
|
95
|
+
try {
|
|
96
|
+
// Beat once synchronously (as part of the claim, when we own the
|
|
97
|
+
// ledger; on its own otherwise), so a reader can tell a live daemon
|
|
98
|
+
// from a dead one immediately rather than only after the first
|
|
99
|
+
// interval elapses. A freshly started daemon that has not beaten yet
|
|
100
|
+
// is indistinguishable from one that died, which is the exact
|
|
101
|
+
// confusion liveness exists to end.
|
|
102
|
+
const claim = { startedAt: new Date().toISOString(), pid: process.pid, host: hostname() };
|
|
103
|
+
if (this.ownsLedger) {
|
|
104
|
+
// Only when WE opened the connection: a ledger the caller shared
|
|
105
|
+
// with us (tests do this deliberately, to observe two reconcile
|
|
106
|
+
// passes against one database) is the caller's own concurrency to
|
|
107
|
+
// manage, not a second daemon PROCESS this check exists to catch.
|
|
108
|
+
//
|
|
109
|
+
// Check-and-claim as one atomic step -- this is also the daemon's
|
|
110
|
+
// FIRST beat, so a reader can tell this daemon apart from a dead one
|
|
111
|
+
// from the moment it wins the claim, before subscribing or
|
|
112
|
+
// reconciling even begin.
|
|
113
|
+
claimSoleWriter(this.db, claim);
|
|
114
|
+
this.claimedWriter = true;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
beat(this.db, claim);
|
|
118
|
+
}
|
|
119
|
+
this.unsubscribers.push(registerJournalWriter(this.db, this.hub));
|
|
120
|
+
// AFTER the journal writer, so the raw event is recorded before any
|
|
121
|
+
// status derived from it. Reversed, a throw in the reactor could leave a
|
|
122
|
+
// transition with no evidence of the event that caused it.
|
|
123
|
+
this.unsubscribers.push(registerReviewReactor(this.db, this.hub));
|
|
124
|
+
this.reconciledOnBoot = reconcileRecentEvents(this.db, this.hub, this.reconcileLimit);
|
|
125
|
+
// Journalling the window is not enough: the reactor is live-only, so a
|
|
126
|
+
// verdict that arrived while this daemon was down would be on record with
|
|
127
|
+
// the ticket never moved.
|
|
128
|
+
this.movedOnBoot = reconcileReviewState(this.db, this.hub, this.reconcileLimit);
|
|
129
|
+
const db = this.db;
|
|
130
|
+
this.beatTimer = setInterval(() => {
|
|
131
|
+
try {
|
|
132
|
+
beat(db, { pid: process.pid, host: hostname() });
|
|
133
|
+
}
|
|
134
|
+
catch (err) {
|
|
135
|
+
// A failed beat must not kill the daemon. Not being able to write
|
|
136
|
+
// makes it LOOK dead to readers, which is the honest outcome, and
|
|
137
|
+
// recovery is simply the next beat succeeding.
|
|
138
|
+
console.error(`[orchestrator] liveness beat failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
139
|
+
}
|
|
140
|
+
}, this.beatIntervalMs);
|
|
141
|
+
// Never hold the process open for a heartbeat alone, or a CLI that starts
|
|
142
|
+
// a daemon can never exit.
|
|
143
|
+
this.beatTimer.unref?.();
|
|
144
|
+
}
|
|
145
|
+
catch (err) {
|
|
146
|
+
// Start is all-or-nothing. Without this unwind a failure between
|
|
147
|
+
// subscribing and finishing leaves a LIVE handler on a daemon that
|
|
148
|
+
// reports itself stopped: `startedAt` is never set, so the idempotence
|
|
149
|
+
// guard above does not trip, and the next start() stacks a second
|
|
150
|
+
// subscription on top of a leaked ledger handle. Half-started is a
|
|
151
|
+
// worse state than not started, because nothing looks wrong.
|
|
152
|
+
this.teardown();
|
|
153
|
+
throw err;
|
|
154
|
+
}
|
|
155
|
+
this.startedAt = new Date().toISOString();
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Detach everything and release the ledger, running every step even if an
|
|
159
|
+
* earlier one throws.
|
|
160
|
+
*
|
|
161
|
+
* Shared by {@link stop} and by start()'s failure path so the two cannot
|
|
162
|
+
* drift: a cleanup that only the error path exercises is a cleanup nobody
|
|
163
|
+
* tests. Returns the errors it collected rather than throwing, leaving the
|
|
164
|
+
* caller to decide whether a teardown failure should surface.
|
|
165
|
+
*/
|
|
166
|
+
teardown() {
|
|
167
|
+
// First, so no beat can fire against a ledger this method is about to close.
|
|
168
|
+
// The reverse order is the same class of bug as leaving a hub handler
|
|
169
|
+
// attached: a timer outliving its database throws from a stack nobody owns.
|
|
170
|
+
if (this.beatTimer !== undefined) {
|
|
171
|
+
clearInterval(this.beatTimer);
|
|
172
|
+
this.beatTimer = undefined;
|
|
173
|
+
}
|
|
174
|
+
const errors = [];
|
|
175
|
+
for (const off of this.unsubscribers.splice(0)) {
|
|
176
|
+
try {
|
|
177
|
+
off();
|
|
178
|
+
}
|
|
179
|
+
catch (err) {
|
|
180
|
+
// Keep going. One hostile unsubscribe must not strand the others,
|
|
181
|
+
// and must not cost us the ledger close below.
|
|
182
|
+
errors.push(err);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
if (this.ownsLedger && this.db) {
|
|
186
|
+
// Only a start() that actually WON the claim ever wrote this row.
|
|
187
|
+
// Erasing it after a start() that failed before claiming -- e.g.
|
|
188
|
+
// because claimSoleWriter refused it -- would destroy the OTHER
|
|
189
|
+
// daemon's evidence of being alive rather than our own. Distinct from
|
|
190
|
+
// `startedAt`: a LATER step (subscribe, reconcile) can still fail
|
|
191
|
+
// after the claim already succeeded, and this row is ours to clear
|
|
192
|
+
// either way.
|
|
193
|
+
if (this.claimedWriter) {
|
|
194
|
+
try {
|
|
195
|
+
clearLiveness(this.db);
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
// Best effort. Must not block closing the ledger below: a daemon
|
|
199
|
+
// that leaked its handle over a failed liveness cleanup would be a
|
|
200
|
+
// worse outcome than the next reader waiting out the stale window.
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
try {
|
|
204
|
+
this.db.close();
|
|
205
|
+
}
|
|
206
|
+
catch (err) {
|
|
207
|
+
errors.push(err);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
this.db = undefined;
|
|
211
|
+
this.startedAt = null;
|
|
212
|
+
this.claimedWriter = false;
|
|
213
|
+
this.reconciledOnBoot = 0;
|
|
214
|
+
this.movedOnBoot = 0;
|
|
215
|
+
return errors;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Detach every subscription, then release the ledger if we opened it.
|
|
219
|
+
*
|
|
220
|
+
* Unsubscribing before closing is not tidiness: a handler still attached to
|
|
221
|
+
* a closed database throws inside the hub's emit loop, which is a failure in
|
|
222
|
+
* someone else's code caused by ours.
|
|
223
|
+
*/
|
|
224
|
+
stop() {
|
|
225
|
+
const errors = this.teardown();
|
|
226
|
+
if (errors.length > 0) {
|
|
227
|
+
// Surface the failure, but only after every other step has run. A
|
|
228
|
+
// teardown that aborts on its first error is how a ledger handle leaks.
|
|
229
|
+
throw errors[0];
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
status() {
|
|
233
|
+
return {
|
|
234
|
+
running: this.startedAt !== null,
|
|
235
|
+
startedAt: this.startedAt,
|
|
236
|
+
reconciledOnBoot: this.reconciledOnBoot,
|
|
237
|
+
movedOnBoot: this.movedOnBoot,
|
|
238
|
+
liveness: this.db ? judgeLiveness(readLiveness(this.db), Date.now()) : null,
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=daemon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/orchestrator/daemon.ts"],"names":[],"mappings":"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"}
|