lastlight 0.1.8 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +265 -118
- package/agent-context/rules.md +62 -9
- package/agent-context/security.md +69 -0
- package/config/default.yaml +89 -0
- package/deploy/.env.production.example +20 -2
- package/deploy/entrypoint.sh +16 -17
- package/deploy/native/README.md +160 -0
- package/deploy/native/install.sh +110 -0
- package/deploy/native/lastlight.env.example +95 -0
- package/deploy/native/lastlight.service +50 -0
- package/deploy/sandbox-entrypoint.sh +59 -42
- package/dist/admin/auth.d.ts +1 -1
- package/dist/admin/auth.js +3 -1
- package/dist/admin/auth.js.map +1 -1
- package/dist/admin/chat-session-reader.d.ts +11 -14
- package/dist/admin/chat-session-reader.js +27 -51
- package/dist/admin/chat-session-reader.js.map +1 -1
- package/dist/admin/docker.d.ts +37 -0
- package/dist/admin/docker.js +86 -1
- package/dist/admin/docker.js.map +1 -1
- package/dist/admin/index.js +38 -3
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/log-search.test.d.ts +1 -0
- package/dist/admin/log-search.test.js +78 -0
- package/dist/admin/log-search.test.js.map +1 -0
- package/dist/admin/routes.d.ts +52 -3
- package/dist/admin/routes.js +780 -63
- package/dist/admin/routes.js.map +1 -1
- package/dist/admin/routes.test.js +680 -14
- package/dist/admin/routes.test.js.map +1 -1
- package/dist/admin/server-logs.test.d.ts +1 -0
- package/dist/admin/server-logs.test.js +58 -0
- package/dist/admin/server-logs.test.js.map +1 -0
- package/dist/admin/sessions.d.ts +26 -39
- package/dist/admin/sessions.js +86 -310
- package/dist/admin/sessions.js.map +1 -1
- package/dist/admin/sessions.test.d.ts +1 -0
- package/dist/admin/sessions.test.js +78 -0
- package/dist/admin/sessions.test.js.map +1 -0
- package/dist/admin/version.d.ts +15 -0
- package/dist/admin/version.js +73 -0
- package/dist/admin/version.js.map +1 -0
- package/dist/admin/version.test.d.ts +1 -0
- package/dist/admin/version.test.js +71 -0
- package/dist/admin/version.test.js.map +1 -0
- package/dist/cli-config.d.ts +55 -0
- package/dist/cli-config.js +119 -0
- package/dist/cli-config.js.map +1 -0
- package/dist/cli-config.test.d.ts +1 -0
- package/dist/cli-config.test.js +92 -0
- package/dist/cli-config.test.js.map +1 -0
- package/dist/cli-format.d.ts +19 -0
- package/dist/cli-format.js +107 -0
- package/dist/cli-format.js.map +1 -0
- package/dist/cli-server.d.ts +73 -0
- package/dist/cli-server.js +347 -0
- package/dist/cli-server.js.map +1 -0
- package/dist/cli-server.test.d.ts +1 -0
- package/dist/cli-server.test.js +38 -0
- package/dist/cli-server.test.js.map +1 -0
- package/dist/cli-timeline.d.ts +35 -0
- package/dist/cli-timeline.js +373 -0
- package/dist/cli-timeline.js.map +1 -0
- package/dist/cli-timeline.test.d.ts +1 -0
- package/dist/cli-timeline.test.js +104 -0
- package/dist/cli-timeline.test.js.map +1 -0
- package/dist/cli.d.ts +0 -19
- package/dist/cli.js +910 -194
- package/dist/cli.js.map +1 -1
- package/dist/config-overlay.test.d.ts +1 -0
- package/dist/config-overlay.test.js +112 -0
- package/dist/config-overlay.test.js.map +1 -0
- package/dist/config-resolve.d.ts +28 -0
- package/dist/config-resolve.js +47 -0
- package/dist/config-resolve.js.map +1 -0
- package/dist/config-resolve.test.d.ts +1 -0
- package/dist/config-resolve.test.js +68 -0
- package/dist/config-resolve.test.js.map +1 -0
- package/dist/config.d.ts +62 -49
- package/dist/config.js +452 -76
- package/dist/config.js.map +1 -1
- package/dist/config.test.js +201 -32
- package/dist/config.test.js.map +1 -1
- package/dist/connectors/github-webhook.js +83 -5
- package/dist/connectors/github-webhook.js.map +1 -1
- package/dist/connectors/github-webhook.test.d.ts +1 -0
- package/dist/connectors/github-webhook.test.js +156 -0
- package/dist/connectors/github-webhook.test.js.map +1 -0
- package/dist/connectors/messaging/session-manager.d.ts +18 -0
- package/dist/connectors/messaging/session-manager.js +83 -2
- package/dist/connectors/messaging/session-manager.js.map +1 -1
- package/dist/connectors/messaging/session-manager.test.d.ts +1 -0
- package/dist/connectors/messaging/session-manager.test.js +144 -0
- package/dist/connectors/messaging/session-manager.test.js.map +1 -0
- package/dist/connectors/slack/connector.d.ts +9 -0
- package/dist/connectors/slack/connector.js +15 -0
- package/dist/connectors/slack/connector.js.map +1 -1
- package/dist/connectors/slack/mrkdwn.js +81 -0
- package/dist/connectors/slack/mrkdwn.js.map +1 -1
- package/dist/connectors/slack/mrkdwn.test.js +49 -0
- package/dist/connectors/slack/mrkdwn.test.js.map +1 -1
- package/dist/connectors/types.d.ts +1 -1
- package/dist/cron/fanout.d.ts +33 -0
- package/dist/cron/fanout.js +55 -0
- package/dist/cron/fanout.js.map +1 -0
- package/dist/cron/fanout.test.d.ts +1 -0
- package/dist/cron/fanout.test.js +73 -0
- package/dist/cron/fanout.test.js.map +1 -0
- package/dist/cron/jobs.d.ts +5 -0
- package/dist/cron/jobs.js +10 -3
- package/dist/cron/jobs.js.map +1 -1
- package/dist/cron/scheduler.d.ts +12 -0
- package/dist/cron/scheduler.js +27 -1
- package/dist/cron/scheduler.js.map +1 -1
- package/dist/engine/agent-executor.d.ts +158 -0
- package/dist/engine/agent-executor.js +1140 -0
- package/dist/engine/agent-executor.js.map +1 -0
- package/dist/engine/agent-executor.test.d.ts +1 -0
- package/dist/engine/agent-executor.test.js +395 -0
- package/dist/engine/agent-executor.test.js.map +1 -0
- package/dist/engine/chat-runner.d.ts +123 -0
- package/dist/engine/chat-runner.js +379 -0
- package/dist/engine/chat-runner.js.map +1 -0
- package/dist/engine/chat-runner.test.d.ts +1 -0
- package/dist/engine/chat-runner.test.js +104 -0
- package/dist/engine/chat-runner.test.js.map +1 -0
- package/dist/engine/chat-skills.d.ts +45 -0
- package/dist/engine/chat-skills.js +184 -0
- package/dist/engine/chat-skills.js.map +1 -0
- package/dist/engine/chat-skills.test.d.ts +1 -0
- package/dist/engine/chat-skills.test.js +20 -0
- package/dist/engine/chat-skills.test.js.map +1 -0
- package/dist/engine/chat.d.ts +20 -23
- package/dist/engine/chat.js +251 -155
- package/dist/engine/chat.js.map +1 -1
- package/dist/engine/chat.test.d.ts +1 -0
- package/dist/engine/chat.test.js +42 -0
- package/dist/engine/chat.test.js.map +1 -0
- package/dist/engine/classifier.d.ts +35 -2
- package/dist/engine/classifier.js +170 -31
- package/dist/engine/classifier.js.map +1 -1
- package/dist/engine/classifier.test.d.ts +1 -0
- package/dist/engine/classifier.test.js +115 -0
- package/dist/engine/classifier.test.js.map +1 -0
- package/dist/engine/dispatcher.d.ts +60 -0
- package/dist/engine/dispatcher.js +601 -0
- package/dist/engine/dispatcher.js.map +1 -0
- package/dist/engine/dispatcher.test.d.ts +1 -0
- package/dist/engine/dispatcher.test.js +511 -0
- package/dist/engine/dispatcher.test.js.map +1 -0
- package/dist/engine/event-shim.d.ts +117 -0
- package/dist/engine/event-shim.js +435 -0
- package/dist/engine/event-shim.js.map +1 -0
- package/dist/engine/event-shim.test.d.ts +1 -0
- package/dist/engine/event-shim.test.js +194 -0
- package/dist/engine/event-shim.test.js.map +1 -0
- package/dist/engine/git-auth.d.ts +13 -17
- package/dist/engine/git-auth.js +99 -42
- package/dist/engine/git-auth.js.map +1 -1
- package/dist/engine/git-auth.test.d.ts +1 -0
- package/dist/engine/git-auth.test.js +117 -0
- package/dist/engine/git-auth.test.js.map +1 -0
- package/dist/engine/github-app-client.d.ts +7 -0
- package/dist/engine/github-app-client.js +16 -0
- package/dist/engine/github-app-client.js.map +1 -0
- package/dist/engine/github-app-client.test.d.ts +1 -0
- package/dist/engine/github-app-client.test.js +44 -0
- package/dist/engine/github-app-client.test.js.map +1 -0
- package/dist/engine/github-tools.d.ts +12 -0
- package/dist/engine/github-tools.js +261 -0
- package/dist/engine/github-tools.js.map +1 -0
- package/dist/engine/github.d.ts +1027 -43
- package/dist/engine/github.js +153 -14
- package/dist/engine/github.js.map +1 -1
- package/dist/engine/llm.d.ts +47 -0
- package/dist/engine/llm.js +221 -0
- package/dist/engine/llm.js.map +1 -0
- package/dist/engine/llm.test.d.ts +1 -0
- package/dist/engine/llm.test.js +189 -0
- package/dist/engine/llm.test.js.map +1 -0
- package/dist/engine/profiles.d.ts +249 -0
- package/dist/engine/profiles.js +42 -0
- package/dist/engine/profiles.js.map +1 -0
- package/dist/engine/router.d.ts +12 -6
- package/dist/engine/router.js +339 -81
- package/dist/engine/router.js.map +1 -1
- package/dist/engine/router.test.js +428 -78
- package/dist/engine/router.test.js.map +1 -1
- package/dist/engine/screen.d.ts +41 -0
- package/dist/engine/screen.js +93 -0
- package/dist/engine/screen.js.map +1 -0
- package/dist/engine/screen.test.d.ts +1 -0
- package/dist/engine/screen.test.js +82 -0
- package/dist/engine/screen.test.js.map +1 -0
- package/dist/index.js +423 -437
- package/dist/index.js.map +1 -1
- package/dist/managed-repos.d.ts +7 -9
- package/dist/managed-repos.js +12 -15
- package/dist/managed-repos.js.map +1 -1
- package/dist/managed-repos.test.js +24 -19
- package/dist/managed-repos.test.js.map +1 -1
- package/dist/notify/index.d.ts +15 -0
- package/dist/notify/index.js +6 -0
- package/dist/notify/index.js.map +1 -0
- package/dist/notify/model.d.ts +57 -0
- package/dist/notify/model.js +89 -0
- package/dist/notify/model.js.map +1 -0
- package/dist/notify/model.test.d.ts +1 -0
- package/dist/notify/model.test.js +109 -0
- package/dist/notify/model.test.js.map +1 -0
- package/dist/notify/notifier.d.ts +17 -0
- package/dist/notify/notifier.js +87 -0
- package/dist/notify/notifier.js.map +1 -0
- package/dist/notify/notifier.test.d.ts +1 -0
- package/dist/notify/notifier.test.js +100 -0
- package/dist/notify/notifier.test.js.map +1 -0
- package/dist/notify/render.d.ts +21 -0
- package/dist/notify/render.js +59 -0
- package/dist/notify/render.js.map +1 -0
- package/dist/notify/render.test.d.ts +1 -0
- package/dist/notify/render.test.js +65 -0
- package/dist/notify/render.test.js.map +1 -0
- package/dist/notify/transports/github.d.ts +26 -0
- package/dist/notify/transports/github.js +26 -0
- package/dist/notify/transports/github.js.map +1 -0
- package/dist/notify/transports/slack.d.ts +26 -0
- package/dist/notify/transports/slack.js +28 -0
- package/dist/notify/transports/slack.js.map +1 -0
- package/dist/notify/transports.test.d.ts +1 -0
- package/dist/notify/transports.test.js +71 -0
- package/dist/notify/transports.test.js.map +1 -0
- package/dist/notify/types.d.ts +95 -0
- package/dist/notify/types.js +16 -0
- package/dist/notify/types.js.map +1 -0
- package/dist/sandbox/docker-compose.test.d.ts +1 -0
- package/dist/sandbox/docker-compose.test.js +128 -0
- package/dist/sandbox/docker-compose.test.js.map +1 -0
- package/dist/sandbox/docker.d.ts +97 -9
- package/dist/sandbox/docker.js +192 -41
- package/dist/sandbox/docker.js.map +1 -1
- package/dist/sandbox/docker.test.d.ts +1 -0
- package/dist/sandbox/docker.test.js +137 -0
- package/dist/sandbox/docker.test.js.map +1 -0
- package/dist/sandbox/egress-allowlist.d.ts +69 -0
- package/dist/sandbox/egress-allowlist.js +164 -0
- package/dist/sandbox/egress-allowlist.js.map +1 -0
- package/dist/sandbox/egress-allowlist.test.d.ts +1 -0
- package/dist/sandbox/egress-allowlist.test.js +65 -0
- package/dist/sandbox/egress-allowlist.test.js.map +1 -0
- package/dist/sandbox/egress-firewall-config.d.ts +127 -0
- package/dist/sandbox/egress-firewall-config.js +434 -0
- package/dist/sandbox/egress-firewall-config.js.map +1 -0
- package/dist/sandbox/egress-firewall-config.test.d.ts +1 -0
- package/dist/sandbox/egress-firewall-config.test.js +244 -0
- package/dist/sandbox/egress-firewall-config.test.js.map +1 -0
- package/dist/sandbox/images.d.ts +23 -0
- package/dist/sandbox/images.js +55 -0
- package/dist/sandbox/images.js.map +1 -0
- package/dist/sandbox/index.d.ts +82 -3
- package/dist/sandbox/index.js +223 -93
- package/dist/sandbox/index.js.map +1 -1
- package/dist/sandbox/index.test.d.ts +1 -0
- package/dist/sandbox/index.test.js +157 -0
- package/dist/sandbox/index.test.js.map +1 -0
- package/dist/session-log.d.ts +63 -0
- package/dist/session-log.js +290 -0
- package/dist/session-log.js.map +1 -0
- package/dist/session-log.test.d.ts +1 -0
- package/dist/session-log.test.js +85 -0
- package/dist/session-log.test.js.map +1 -0
- package/dist/setup.d.ts +31 -12
- package/dist/setup.js +516 -174
- package/dist/setup.js.map +1 -1
- package/dist/setup.test.js +138 -6
- package/dist/setup.test.js.map +1 -1
- package/dist/state/approval-store.d.ts +86 -0
- package/dist/state/approval-store.js +140 -0
- package/dist/state/approval-store.js.map +1 -0
- package/dist/state/build-assets.d.ts +50 -0
- package/dist/state/build-assets.js +154 -0
- package/dist/state/build-assets.js.map +1 -0
- package/dist/state/build-assets.test.d.ts +1 -0
- package/dist/state/build-assets.test.js +106 -0
- package/dist/state/build-assets.test.js.map +1 -0
- package/dist/state/db.d.ts +65 -333
- package/dist/state/db.js +112 -835
- package/dist/state/db.js.map +1 -1
- package/dist/state/db.test.js +127 -91
- package/dist/state/db.test.js.map +1 -1
- package/dist/state/execution-store.d.ts +257 -0
- package/dist/state/execution-store.js +527 -0
- package/dist/state/execution-store.js.map +1 -0
- package/dist/state/migrate.d.ts +15 -0
- package/dist/state/migrate.js +175 -0
- package/dist/state/migrate.js.map +1 -0
- package/dist/state/workflow-run-store.d.ts +195 -0
- package/dist/state/workflow-run-store.js +363 -0
- package/dist/state/workflow-run-store.js.map +1 -0
- package/dist/state/workflow-run-store.test.d.ts +1 -0
- package/dist/state/workflow-run-store.test.js +264 -0
- package/dist/state/workflow-run-store.test.js.map +1 -0
- package/dist/telemetry/index.d.ts +38 -0
- package/dist/telemetry/index.js +253 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/index.test.d.ts +1 -0
- package/dist/telemetry/index.test.js +73 -0
- package/dist/telemetry/index.test.js.map +1 -0
- package/dist/telemetry/pi-events.d.ts +12 -0
- package/dist/telemetry/pi-events.js +134 -0
- package/dist/telemetry/pi-events.js.map +1 -0
- package/dist/telemetry/pi-events.test.d.ts +1 -0
- package/dist/telemetry/pi-events.test.js +69 -0
- package/dist/telemetry/pi-events.test.js.map +1 -0
- package/dist/workflows/dag.d.ts +13 -1
- package/dist/workflows/dag.js +7 -3
- package/dist/workflows/dag.js.map +1 -1
- package/dist/workflows/dag.test.js +22 -0
- package/dist/workflows/dag.test.js.map +1 -1
- package/dist/workflows/golden-build.test.d.ts +1 -0
- package/dist/workflows/golden-build.test.js +45 -0
- package/dist/workflows/golden-build.test.js.map +1 -0
- package/dist/workflows/loader-overlay.test.d.ts +1 -0
- package/dist/workflows/loader-overlay.test.js +101 -0
- package/dist/workflows/loader-overlay.test.js.map +1 -0
- package/dist/workflows/loader.d.ts +36 -11
- package/dist/workflows/loader.js +311 -87
- package/dist/workflows/loader.js.map +1 -1
- package/dist/workflows/loader.test.js +114 -10
- package/dist/workflows/loader.test.js.map +1 -1
- package/dist/workflows/loop-eval.js +2 -0
- package/dist/workflows/loop-eval.js.map +1 -1
- package/dist/workflows/loop-eval.test.js +14 -0
- package/dist/workflows/loop-eval.test.js.map +1 -1
- package/dist/workflows/phase-executor.d.ts +145 -0
- package/dist/workflows/phase-executor.js +691 -0
- package/dist/workflows/phase-executor.js.map +1 -0
- package/dist/workflows/phase-executor.test.d.ts +1 -0
- package/dist/workflows/phase-executor.test.js +434 -0
- package/dist/workflows/phase-executor.test.js.map +1 -0
- package/dist/workflows/phase-ref.d.ts +44 -0
- package/dist/workflows/phase-ref.js +78 -0
- package/dist/workflows/phase-ref.js.map +1 -0
- package/dist/workflows/phase-ref.test.d.ts +1 -0
- package/dist/workflows/phase-ref.test.js +24 -0
- package/dist/workflows/phase-ref.test.js.map +1 -0
- package/dist/workflows/resume.d.ts +5 -11
- package/dist/workflows/resume.js +88 -7
- package/dist/workflows/resume.js.map +1 -1
- package/dist/workflows/runner.d.ts +34 -27
- package/dist/workflows/runner.js +252 -930
- package/dist/workflows/runner.js.map +1 -1
- package/dist/workflows/runner.test.js +346 -35
- package/dist/workflows/runner.test.js.map +1 -1
- package/dist/workflows/schema.d.ts +52 -10
- package/dist/workflows/schema.js +147 -7
- package/dist/workflows/schema.js.map +1 -1
- package/dist/workflows/simple.d.ts +67 -3
- package/dist/workflows/simple.js +248 -87
- package/dist/workflows/simple.js.map +1 -1
- package/dist/workflows/simple.test.d.ts +1 -0
- package/dist/workflows/simple.test.js +107 -0
- package/dist/workflows/simple.test.js.map +1 -0
- package/dist/workflows/templates.d.ts +29 -0
- package/dist/workflows/templates.js +42 -4
- package/dist/workflows/templates.js.map +1 -1
- package/dist/workflows/templates.test.js +103 -0
- package/dist/workflows/templates.test.js.map +1 -1
- package/dist/workflows/triggers.d.ts +21 -0
- package/dist/workflows/triggers.js +44 -0
- package/dist/workflows/triggers.js.map +1 -0
- package/dist/workflows/verdict.d.ts +19 -0
- package/dist/workflows/verdict.js +30 -0
- package/dist/workflows/verdict.js.map +1 -0
- package/dist/workflows/verdict.test.d.ts +1 -0
- package/dist/workflows/verdict.test.js +44 -0
- package/dist/workflows/verdict.test.js.map +1 -0
- package/dist/worktree/manager.d.ts +1 -1
- package/dist/worktree/manager.js +14 -14
- package/dist/worktree/manager.js.map +1 -1
- package/dist/worktree/manager.test.d.ts +1 -0
- package/dist/worktree/manager.test.js +87 -0
- package/dist/worktree/manager.test.js.map +1 -0
- package/docker-compose.yml +206 -5
- package/package.json +19 -7
- package/sandbox.Dockerfile +97 -18
- package/skills/README.md +40 -0
- package/skills/browser-qa/SKILL.md +193 -0
- package/skills/browser-qa/scripts/agent-browser.mjs +380 -0
- package/skills/building/SKILL.md +95 -0
- package/skills/chat/SKILL.md +30 -11
- package/skills/code-review/SKILL.md +59 -0
- package/skills/debug-production/SKILL.md +108 -0
- package/skills/demo/SKILL.md +194 -0
- package/skills/demo/scripts/compose-demo.sh +205 -0
- package/skills/issue-answer/SKILL.md +90 -0
- package/skills/issue-comment/SKILL.md +38 -24
- package/skills/issue-triage/SKILL.md +103 -37
- package/skills/issue-triage/references/AGENT-BRIEF.md +61 -0
- package/skills/pr-comment/SKILL.md +64 -0
- package/skills/pr-review/SKILL.md +65 -49
- package/skills/qa-test/SKILL.md +97 -0
- package/skills/repo-health/SKILL.md +48 -45
- package/skills/security-feedback/SKILL.md +173 -0
- package/skills/security-feedback/references/templates.md +77 -0
- package/skills/security-review/SKILL.md +213 -0
- package/skills/security-review/references/issue-format.md +302 -0
- package/skills/verify/SKILL.md +118 -0
- package/workflows/answer.yaml +37 -0
- package/workflows/build.yaml +32 -22
- package/workflows/cron-security.yaml +6 -0
- package/workflows/demo.yaml +55 -0
- package/workflows/explore.yaml +9 -0
- package/workflows/pr-comment.yaml +16 -0
- package/workflows/pr-fix.yaml +3 -0
- package/workflows/pr-review.yaml +4 -1
- package/workflows/prompts/answer.md +67 -0
- package/workflows/prompts/architect.md +24 -7
- package/workflows/prompts/demo.md +100 -0
- package/workflows/prompts/executor.md +29 -20
- package/workflows/prompts/explore-ask.md +51 -22
- package/workflows/prompts/explore-publish.md +2 -2
- package/workflows/prompts/explore-read.md +24 -10
- package/workflows/prompts/explore-synthesize.md +15 -8
- package/workflows/prompts/fix.md +9 -10
- package/workflows/prompts/guardrails.md +26 -8
- package/workflows/prompts/pr-fix.md +6 -7
- package/workflows/prompts/pr.md +11 -10
- package/workflows/prompts/qa-browser.md +95 -0
- package/workflows/prompts/qa-synth.md +44 -0
- package/workflows/prompts/qa-test.md +60 -0
- package/workflows/prompts/re-reviewer.md +8 -9
- package/workflows/prompts/reviewer.md +10 -9
- package/workflows/prompts/verify-browser.md +93 -0
- package/workflows/prompts/verify-synth.md +44 -0
- package/workflows/prompts/verify.md +63 -0
- package/workflows/qa-test.yaml +87 -0
- package/workflows/security-feedback.yaml +25 -0
- package/workflows/security-review.yaml +29 -0
- package/workflows/verify.yaml +85 -0
- package/deploy/mcp-config.tmpl.json +0 -14
- package/dist/cron/rate-limits.d.ts +0 -26
- package/dist/cron/rate-limits.js +0 -193
- package/dist/cron/rate-limits.js.map +0 -1
- package/dist/engine/executor.d.ts +0 -75
- package/dist/engine/executor.js +0 -292
- package/dist/engine/executor.js.map +0 -1
- package/mcp-github-app/package.json +0 -18
- package/mcp-github-app/src/auth.js +0 -66
- package/mcp-github-app/src/github.js +0 -371
- package/mcp-github-app/src/index.js +0 -534
- package/skills/devops/webhook-subscriptions/SKILL.md +0 -180
- package/skills/github/DESCRIPTION.md +0 -3
- package/skills/github/codebase-inspection/SKILL.md +0 -115
- package/skills/github/github-auth/SKILL.md +0 -54
- package/skills/github/github-auth/scripts/gh-env.sh +0 -66
- package/skills/github/github-code-review/SKILL.md +0 -480
- package/skills/github/github-code-review/references/review-output-template.md +0 -74
- package/skills/github/github-issues/SKILL.md +0 -369
- package/skills/github/github-issues/templates/bug-report.md +0 -35
- package/skills/github/github-issues/templates/feature-request.md +0 -31
- package/skills/github/github-pr-workflow/SKILL.md +0 -395
- package/skills/github/github-pr-workflow/references/ci-troubleshooting.md +0 -183
- package/skills/github/github-pr-workflow/references/conventional-commits.md +0 -71
- package/skills/github/github-pr-workflow/templates/pr-body-bugfix.md +0 -35
- package/skills/github/github-pr-workflow/templates/pr-body-feature.md +0 -33
- package/skills/github/github-repo-management/SKILL.md +0 -515
- package/skills/github/github-repo-management/references/github-api-cheatsheet.md +0 -161
- package/skills/github-orchestrator/SKILL.md +0 -103
- package/skills/mcp/DESCRIPTION.md +0 -3
- package/skills/mcp/mcporter/SKILL.md +0 -122
- package/skills/mcp/native-mcp/SKILL.md +0 -356
- package/skills/software-development/architect/SKILL.md +0 -154
- package/skills/software-development/assure-guardrails/SKILL.md +0 -239
- package/skills/software-development/plan/SKILL.md +0 -64
- package/skills/software-development/requesting-code-review/SKILL.md +0 -291
- package/skills/software-development/subagent-driven-development/SKILL.md +0 -433
- package/skills/software-development/systematic-debugging/SKILL.md +0 -366
- package/skills/software-development/test-driven-development/SKILL.md +0 -342
package/dist/state/db.d.ts
CHANGED
|
@@ -1,348 +1,80 @@
|
|
|
1
1
|
import Database from "better-sqlite3";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
|
|
16
|
-
* command; `reply` gates resolve on any free-form reply in the same
|
|
17
|
-
* thread (used by the socratic explore loop).
|
|
18
|
-
*/
|
|
19
|
-
kind: 'approve' | 'reply';
|
|
20
|
-
requestedBy?: string;
|
|
21
|
-
respondedBy?: string;
|
|
22
|
-
response?: string;
|
|
23
|
-
respondedAt?: string;
|
|
24
|
-
createdAt: string;
|
|
25
|
-
}
|
|
26
|
-
export interface WorkflowRun {
|
|
27
|
-
id: string;
|
|
28
|
-
workflowName: string;
|
|
29
|
-
triggerId: string;
|
|
30
|
-
repo?: string;
|
|
31
|
-
issueNumber?: number;
|
|
32
|
-
currentPhase: string;
|
|
33
|
-
phaseHistory: PhaseHistoryEntry[];
|
|
34
|
-
status: "running" | "paused" | "succeeded" | "failed" | "cancelled";
|
|
35
|
-
context?: Record<string, unknown>;
|
|
36
|
-
/**
|
|
37
|
-
* Mutable phase-to-phase state, merged at the top level by
|
|
38
|
-
* `updateWorkflowRunScratch`. Distinct from `context` (which is the
|
|
39
|
-
* immutable trigger input) — used by features like the socratic explore
|
|
40
|
-
* loop to accumulate Q&A across reply-gate pauses.
|
|
41
|
-
*/
|
|
42
|
-
scratch?: Record<string, unknown>;
|
|
43
|
-
nodeStatuses?: Record<string, "pending" | "running" | "succeeded" | "failed" | "skipped">;
|
|
44
|
-
startedAt: string;
|
|
2
|
+
import { ExecutionStore } from "./execution-store.js";
|
|
3
|
+
import { ApprovalStore } from "./approval-store.js";
|
|
4
|
+
import { WorkflowRunStore } from "./workflow-run-store.js";
|
|
5
|
+
export type { ExecutionRecord } from "./execution-store.js";
|
|
6
|
+
export type { WorkflowApproval } from "./approval-store.js";
|
|
7
|
+
export type { WorkflowRun, PhaseHistoryEntry, PhaseMarker } from "./workflow-run-store.js";
|
|
8
|
+
export { ExecutionStore } from "./execution-store.js";
|
|
9
|
+
export { ApprovalStore } from "./approval-store.js";
|
|
10
|
+
export { WorkflowRunStore } from "./workflow-run-store.js";
|
|
11
|
+
export interface CronOverride {
|
|
12
|
+
name: string;
|
|
13
|
+
enabled: boolean;
|
|
14
|
+
/** Cron expression overriding the YAML default; null means use the YAML value. */
|
|
15
|
+
schedule: string | null;
|
|
45
16
|
updatedAt: string;
|
|
46
|
-
|
|
17
|
+
updatedBy: string | null;
|
|
47
18
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
turns?: number;
|
|
60
|
-
durationMs?: number;
|
|
61
|
-
/**
|
|
62
|
-
* Agent SDK session id captured from the stream-json `system/init` line.
|
|
63
|
-
* Used by the dashboard to look up the session log for a given phase.
|
|
64
|
-
*/
|
|
65
|
-
sessionId?: string;
|
|
66
|
-
/** Total USD cost reported by Claude on the final result message. */
|
|
67
|
-
costUsd?: number;
|
|
68
|
-
/** Fresh input tokens (no cache hit). */
|
|
69
|
-
inputTokens?: number;
|
|
70
|
-
/** Tokens that triggered a cache write. */
|
|
71
|
-
cacheCreationInputTokens?: number;
|
|
72
|
-
/** Tokens served from prompt cache. */
|
|
73
|
-
cacheReadInputTokens?: number;
|
|
74
|
-
/** Output tokens generated by the model. */
|
|
75
|
-
outputTokens?: number;
|
|
76
|
-
/** API-side duration (excludes orchestrator overhead). */
|
|
77
|
-
apiDurationMs?: number;
|
|
78
|
-
/** Result subtype, e.g. "success" or "error_max_turns". */
|
|
79
|
-
stopReason?: string;
|
|
80
|
-
/**
|
|
81
|
-
* Workflow run that owns this execution. Scopes dedup: a fresh re-trigger
|
|
82
|
-
* creates a new workflow_run_id, so `shouldRunPhase` won't find matching
|
|
83
|
-
* rows from the prior run and will correctly run the phase again.
|
|
84
|
-
*/
|
|
85
|
-
workflowRunId?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Per-workflow kill switch persisted to SQLite. When `enabled` is false,
|
|
21
|
+
* `runSimpleWorkflow` short-circuits and does not create a `workflow_runs`
|
|
22
|
+
* row — applies to every trigger source (cron, webhooks, mentions, Slack).
|
|
23
|
+
* No row at all means "enabled" (default).
|
|
24
|
+
*/
|
|
25
|
+
export interface WorkflowOverride {
|
|
26
|
+
name: string;
|
|
27
|
+
enabled: boolean;
|
|
28
|
+
updatedAt: string;
|
|
29
|
+
updatedBy: string | null;
|
|
86
30
|
}
|
|
87
31
|
/**
|
|
88
32
|
* Lightweight SQLite state for operational tracking.
|
|
89
33
|
* NOT for conversation history — only execution logs and rate limits.
|
|
34
|
+
*
|
|
35
|
+
* Construction root for the three per-table stores (issue #97): it opens the
|
|
36
|
+
* single `Database` connection, runs {@link migrate}, and builds
|
|
37
|
+
* {@link ExecutionStore} / {@link ApprovalStore} / {@link WorkflowRunStore} on
|
|
38
|
+
* top of it (all sharing the one connection so better-sqlite3 transactions
|
|
39
|
+
* span every store). Callers reach the stores via `db.runs` / `db.approvals` /
|
|
40
|
+
* `db.executions`. StateDb itself retains only the cross-cutting cron-override
|
|
41
|
+
* and workflow kill-switch concerns.
|
|
90
42
|
*/
|
|
91
43
|
export declare class StateDb {
|
|
92
44
|
private db;
|
|
45
|
+
/** Owns the `executions` ledger. */
|
|
46
|
+
readonly executions: ExecutionStore;
|
|
47
|
+
/** Owns the `workflow_approvals` table. */
|
|
48
|
+
readonly approvals: ApprovalStore;
|
|
49
|
+
/** Aggregate root for `workflow_runs` + the atomic lifecycle operations. */
|
|
50
|
+
readonly runs: WorkflowRunStore;
|
|
93
51
|
constructor(dbPath?: string);
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
*
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
sessionId?: string;
|
|
108
|
-
costUsd?: number;
|
|
109
|
-
inputTokens?: number;
|
|
110
|
-
cacheCreationInputTokens?: number;
|
|
111
|
-
cacheReadInputTokens?: number;
|
|
112
|
-
outputTokens?: number;
|
|
113
|
-
apiDurationMs?: number;
|
|
114
|
-
stopReason?: string;
|
|
115
|
-
}): void;
|
|
116
|
-
/**
|
|
117
|
-
* List chat threads aggregated from the executions table.
|
|
118
|
-
*
|
|
119
|
-
* Each row collapses every execution sharing a `trigger_id` (the messaging
|
|
120
|
-
* session id) into one summary so the dashboard's chat-sessions tab can
|
|
121
|
-
* show one card per Slack thread, not one per turn. Joined with
|
|
122
|
-
* `messaging_sessions` for the agent SDK session id (used to resolve to
|
|
123
|
-
* the on-disk jsonl when streaming messages) and with `messaging_messages`
|
|
124
|
-
* for the most recent assistant text (preview snippet).
|
|
125
|
-
*/
|
|
126
|
-
listChatThreads(limit: number): {
|
|
127
|
-
triggerId: string;
|
|
128
|
-
agentSessionId: string | null;
|
|
129
|
-
firstStartedAt: string;
|
|
130
|
-
lastActivityAt: string;
|
|
131
|
-
turnCount: number;
|
|
132
|
-
totalCost: number;
|
|
133
|
-
inputTokens: number;
|
|
134
|
-
outputTokens: number;
|
|
135
|
-
cacheReadTokens: number;
|
|
136
|
-
lastAssistantContent: string | null;
|
|
137
|
-
}[];
|
|
138
|
-
/** Look up a single chat thread by its messaging session id (= trigger_id). */
|
|
139
|
-
getChatThread(triggerId: string): {
|
|
140
|
-
triggerId: string;
|
|
141
|
-
agentSessionId: string | null;
|
|
142
|
-
firstStartedAt: string;
|
|
143
|
-
lastActivityAt: string;
|
|
144
|
-
turnCount: number;
|
|
145
|
-
totalCost: number;
|
|
146
|
-
inputTokens: number;
|
|
147
|
-
outputTokens: number;
|
|
148
|
-
cacheReadTokens: number;
|
|
149
|
-
lastAssistantContent: string | null;
|
|
150
|
-
} | null;
|
|
151
|
-
/** Check if a skill is currently running for a given trigger */
|
|
152
|
-
isRunning(skill: string, triggerId: string): boolean;
|
|
153
|
-
/** Check if a skill has already completed successfully for a given trigger */
|
|
154
|
-
isCompleted(skill: string, triggerId: string): boolean;
|
|
155
|
-
/**
|
|
156
|
-
* Check if a phase should run: not currently running AND not already
|
|
157
|
-
* succeeded. When `workflowRunId` is provided, scopes the check to that
|
|
158
|
-
* specific run — a fresh re-trigger (new workflow_run_id) will see no
|
|
159
|
-
* matching rows and correctly return "run" even if a prior completed run
|
|
160
|
-
* for the same trigger exists. Omit `workflowRunId` for legacy callers
|
|
161
|
-
* (e.g. chat/status-report dedup) that want the old trigger-wide scope.
|
|
162
|
-
*/
|
|
163
|
-
shouldRunPhase(skill: string, triggerId: string, workflowRunId?: string): "run" | "running" | "done";
|
|
164
|
-
/** Mark all stale "running" executions for a skill/trigger as failed.
|
|
165
|
-
* Called when we detect no matching Docker container is alive. */
|
|
166
|
-
markStaleAsFailed(skill: string, triggerId: string, workflowRunId?: string): number;
|
|
167
|
-
/**
|
|
168
|
-
* Mark every unfinished execution row for a trigger as failed, regardless
|
|
169
|
-
* of skill. Used by the boot-time recovery sweep to clear out phases that
|
|
170
|
-
* were running when the harness crashed/restarted, so the runner's dedup
|
|
171
|
-
* logic doesn't think they're still in flight.
|
|
172
|
-
*/
|
|
173
|
-
markAllStaleForTrigger(triggerId: string, reason: string): number;
|
|
174
|
-
/**
|
|
175
|
-
* Mark the most recent execution for a skill/trigger as failed.
|
|
176
|
-
* Used when the agent SDK reported success but the orchestrator decided
|
|
177
|
-
* the business outcome was a failure (e.g. guardrails BLOCKED, reviewer
|
|
178
|
-
* REQUEST_CHANGES). Without this, runPhase would skip the phase on the
|
|
179
|
-
* next run because the DB still says success=1.
|
|
180
|
-
*/
|
|
181
|
-
markLatestAsFailed(skill: string, triggerId: string, reason: string, workflowRunId?: string): number;
|
|
182
|
-
/** Get recent executions for a skill */
|
|
183
|
-
recentExecutions(skill: string, limit?: number): ExecutionRecord[];
|
|
184
|
-
/** Count consecutive failures for a skill (for cron failure tracking) */
|
|
185
|
-
consecutiveFailures(skill: string): number;
|
|
186
|
-
/** Update rate limit state */
|
|
187
|
-
updateRateLimit(resource: string, remaining: number, resetAt: string): void;
|
|
188
|
-
/** Get all rate limit records */
|
|
189
|
-
getRateLimits(): Array<{
|
|
190
|
-
resource: string;
|
|
191
|
-
remaining: number;
|
|
192
|
-
reset_at: string;
|
|
193
|
-
updated_at: string;
|
|
194
|
-
}>;
|
|
195
|
-
/**
|
|
196
|
-
* Get the current state of a system component.
|
|
197
|
-
* Returns null if the component has never reported.
|
|
198
|
-
*/
|
|
199
|
-
getSystemStatus(component: string): {
|
|
200
|
-
state: string;
|
|
201
|
-
reason: string | null;
|
|
202
|
-
since: string;
|
|
203
|
-
updated_at: string;
|
|
204
|
-
} | null;
|
|
205
|
-
/**
|
|
206
|
-
* Set the state of a system component. If the new state differs from the
|
|
207
|
-
* current state, updates `since` to now (transition timestamp). Returns
|
|
208
|
-
* true on transition (state changed), false on refresh (state unchanged).
|
|
209
|
-
*/
|
|
210
|
-
setSystemStatus(component: string, state: string, reason?: string): boolean;
|
|
211
|
-
/** List all known component statuses. */
|
|
212
|
-
listSystemStatus(): Array<{
|
|
213
|
-
component: string;
|
|
214
|
-
state: string;
|
|
215
|
-
reason: string | null;
|
|
216
|
-
since: string;
|
|
217
|
-
updated_at: string;
|
|
218
|
-
}>;
|
|
219
|
-
/** Get all executions with pagination */
|
|
220
|
-
allExecutions(limit?: number, offset?: number): ExecutionRecord[];
|
|
221
|
-
/**
|
|
222
|
-
* Get every execution recorded for a workflow run, with camelCase fields
|
|
223
|
-
* ready for the dashboard. Ordered by start time ascending so phases
|
|
224
|
-
* display in the order they ran. Scopes to a specific `workflow_run_id`
|
|
225
|
-
* when provided (preferred — isolates fresh re-triggers from prior runs);
|
|
226
|
-
* falls back to the legacy trigger-wide scope for rows written before the
|
|
227
|
-
* workflow_run_id column existed.
|
|
228
|
-
*/
|
|
229
|
-
getExecutionsForWorkflowRun(workflowRunId: string, triggerId: string, workflowName?: string): ExecutionRecord[];
|
|
230
|
-
/** Get currently running executions (no finished_at) */
|
|
231
|
-
runningExecutions(): ExecutionRecord[];
|
|
232
|
-
/** Aggregate execution stats */
|
|
233
|
-
executionStats(): {
|
|
234
|
-
total_executions: number;
|
|
235
|
-
today_count: number;
|
|
236
|
-
by_skill: Record<string, {
|
|
237
|
-
count: number;
|
|
238
|
-
success: number;
|
|
239
|
-
fail: number;
|
|
240
|
-
}>;
|
|
241
|
-
by_trigger: Record<string, number>;
|
|
242
|
-
running: number;
|
|
243
|
-
};
|
|
244
|
-
/** Daily aggregated stats for the last N days */
|
|
245
|
-
dailyStats(days: number): {
|
|
246
|
-
date: string;
|
|
247
|
-
executions: number;
|
|
248
|
-
successes: number;
|
|
249
|
-
failures: number;
|
|
250
|
-
totalTokens: number;
|
|
251
|
-
inputTokens: number;
|
|
252
|
-
outputTokens: number;
|
|
253
|
-
cacheReadTokens: number;
|
|
254
|
-
costUsd: number;
|
|
255
|
-
}[];
|
|
256
|
-
/** Hourly aggregated stats for the last N hours (UTC). Bucket key is `YYYY-MM-DDTHH`. */
|
|
257
|
-
hourlyStats(hours: number): {
|
|
258
|
-
date: string;
|
|
259
|
-
executions: number;
|
|
260
|
-
successes: number;
|
|
261
|
-
failures: number;
|
|
262
|
-
totalTokens: number;
|
|
263
|
-
inputTokens: number;
|
|
264
|
-
outputTokens: number;
|
|
265
|
-
cacheReadTokens: number;
|
|
266
|
-
costUsd: number;
|
|
267
|
-
}[];
|
|
268
|
-
/** Create a new workflow run record */
|
|
269
|
-
createWorkflowRun(run: Omit<WorkflowRun, "phaseHistory" | "updatedAt">): void;
|
|
270
|
-
/**
|
|
271
|
-
* Top-level merge of `patch` into the workflow run's scratch state.
|
|
272
|
-
* Loop iterations can append to `scratch.socratic.qa` without clobbering
|
|
273
|
-
* other keys.
|
|
274
|
-
*/
|
|
275
|
-
updateWorkflowRunScratch(id: string, patch: Record<string, unknown>): void;
|
|
276
|
-
/** Update the current phase and append to phase history */
|
|
277
|
-
updateWorkflowPhase(id: string, phase: string, entry: PhaseHistoryEntry): void;
|
|
278
|
-
/** Mark a workflow run as finished */
|
|
279
|
-
finishWorkflowRun(id: string, status: "succeeded" | "failed" | "cancelled", error?: string): void;
|
|
280
|
-
/** Get a single workflow run by ID */
|
|
281
|
-
getWorkflowRun(id: string): WorkflowRun | null;
|
|
282
|
-
/** Find the most recent active (running or paused) workflow run for a trigger */
|
|
283
|
-
getWorkflowRunByTrigger(triggerId: string): WorkflowRun | null;
|
|
284
|
-
/** List all active (running or paused) workflow runs */
|
|
285
|
-
activeWorkflowRuns(): WorkflowRun[];
|
|
286
|
-
/** List recent workflow runs, ordered by start time descending */
|
|
287
|
-
recentWorkflowRuns(limit?: number): WorkflowRun[];
|
|
288
|
-
/**
|
|
289
|
-
* List workflow runs with pagination + filters. Returns the page slice
|
|
290
|
-
* AND the post-filter total so the dashboard knows how many remain.
|
|
291
|
-
*
|
|
292
|
-
* - sinceIso filters `started_at >= sinceIso` (used for the header date range).
|
|
293
|
-
* - workflowName filters by exact `workflow_name`.
|
|
294
|
-
* - statuses filters to one of the workflow statuses (`running`, `paused`,
|
|
295
|
-
* `succeeded`, `failed`, `cancelled`). Used for the dashboard's "live"
|
|
296
|
-
* filter, which maps to ['running','paused'].
|
|
297
|
-
*/
|
|
298
|
-
listWorkflowRuns(opts?: {
|
|
299
|
-
limit?: number;
|
|
300
|
-
offset?: number;
|
|
301
|
-
sinceIso?: string;
|
|
302
|
-
workflowName?: string;
|
|
303
|
-
statuses?: string[];
|
|
304
|
-
}): {
|
|
305
|
-
runs: WorkflowRun[];
|
|
306
|
-
total: number;
|
|
307
|
-
};
|
|
308
|
-
/** Distinct workflow_name values, sorted alphabetically. */
|
|
309
|
-
distinctWorkflowNames(): string[];
|
|
310
|
-
/** Cancel a workflow run */
|
|
311
|
-
cancelWorkflowRun(id: string): void;
|
|
312
|
-
/** Pause a workflow run (waiting for approval) */
|
|
313
|
-
pauseWorkflowRun(id: string): void;
|
|
314
|
-
/** Resume a paused workflow run (set back to running) */
|
|
315
|
-
resumeWorkflowRun(id: string): void;
|
|
316
|
-
/** Create a new pending approval request */
|
|
317
|
-
createApproval(approval: Omit<WorkflowApproval, "status" | "respondedBy" | "response" | "respondedAt" | "kind"> & {
|
|
318
|
-
kind?: WorkflowApproval["kind"];
|
|
52
|
+
/** Get the override row for a single cron, or null if none. */
|
|
53
|
+
getCronOverride(name: string): CronOverride | null;
|
|
54
|
+
/** All override rows keyed by cron name. */
|
|
55
|
+
getAllCronOverrides(): Map<string, CronOverride>;
|
|
56
|
+
/**
|
|
57
|
+
* Upsert an override. Pass only the fields you want to change — undefined
|
|
58
|
+
* fields preserve the existing value (or default to enabled=1, schedule=null
|
|
59
|
+
* on insert).
|
|
60
|
+
*/
|
|
61
|
+
setCronOverride(name: string, patch: {
|
|
62
|
+
enabled?: boolean;
|
|
63
|
+
schedule?: string | null;
|
|
64
|
+
updatedBy?: string;
|
|
319
65
|
}): void;
|
|
320
|
-
/**
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
/** Get a single approval by ID */
|
|
333
|
-
getApproval(id: string): WorkflowApproval | null;
|
|
334
|
-
/** Find the pending approval for a workflow run */
|
|
335
|
-
getPendingApprovalForWorkflow(workflowRunId: string): WorkflowApproval | null;
|
|
336
|
-
/** Find the pending approval by trigger ID (join with workflow_runs) */
|
|
337
|
-
getPendingApprovalByTrigger(triggerId: string): WorkflowApproval | null;
|
|
338
|
-
/** List all pending approvals */
|
|
339
|
-
listPendingApprovals(): WorkflowApproval[];
|
|
340
|
-
/** Record the response to an approval */
|
|
341
|
-
respondToApproval(id: string, status: 'approved' | 'rejected', respondedBy: string, response?: string): void;
|
|
342
|
-
/** Update a single node's status in the workflow run's nodeStatuses map. */
|
|
343
|
-
updateNodeStatus(workflowId: string, nodeName: string, status: "pending" | "running" | "succeeded" | "failed" | "skipped"): void;
|
|
344
|
-
private deserializeApproval;
|
|
345
|
-
private deserializeWorkflowRun;
|
|
66
|
+
/** Remove the override entirely (revert to YAML defaults). */
|
|
67
|
+
clearCronOverride(name: string): void;
|
|
68
|
+
private deserializeCronOverride;
|
|
69
|
+
/**
|
|
70
|
+
* Cheap check used by every dispatch path. Returns true unless an explicit
|
|
71
|
+
* `workflow_overrides` row says otherwise.
|
|
72
|
+
*/
|
|
73
|
+
isWorkflowEnabled(name: string): boolean;
|
|
74
|
+
getWorkflowOverride(name: string): WorkflowOverride | null;
|
|
75
|
+
getAllWorkflowOverrides(): Map<string, WorkflowOverride>;
|
|
76
|
+
setWorkflowEnabled(name: string, enabled: boolean, updatedBy?: string): void;
|
|
77
|
+
private deserializeWorkflowOverride;
|
|
346
78
|
/** Expose the underlying Database instance (for SessionManager, etc.) */
|
|
347
79
|
get database(): Database.Database;
|
|
348
80
|
close(): void;
|