@wascartech/devbot 0.0.0-stage → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +638 -2
- package/dist/access-grant-store.js +99 -0
- package/dist/access-grant-store.js.map +1 -0
- package/dist/access-resolve.js +11 -0
- package/dist/access-resolve.js.map +1 -0
- package/dist/access-rule-store.js +99 -0
- package/dist/access-rule-store.js.map +1 -0
- package/dist/admin/access-routes.js +73 -0
- package/dist/admin/access-routes.js.map +1 -0
- package/dist/admin/access-rule-routes.js +107 -0
- package/dist/admin/access-rule-routes.js.map +1 -0
- package/dist/admin/custom-repos-routes.js +93 -0
- package/dist/admin/custom-repos-routes.js.map +1 -0
- package/dist/admin/env-routes.js +74 -0
- package/dist/admin/env-routes.js.map +1 -0
- package/dist/admin/global-settings-routes.js +254 -0
- package/dist/admin/global-settings-routes.js.map +1 -0
- package/dist/admin/mcp-cleanup.js +12 -0
- package/dist/admin/mcp-cleanup.js.map +1 -0
- package/dist/admin/mcp-routes.js +169 -0
- package/dist/admin/mcp-routes.js.map +1 -0
- package/dist/admin/query-params.js +80 -0
- package/dist/admin/query-params.js.map +1 -0
- package/dist/admin/routes.js +150 -0
- package/dist/admin/routes.js.map +1 -0
- package/dist/admin/run-history-routes.js +44 -0
- package/dist/admin/run-history-routes.js.map +1 -0
- package/dist/admin/run-routes.js +99 -0
- package/dist/admin/run-routes.js.map +1 -0
- package/dist/admin/settings-routes.js +119 -0
- package/dist/admin/settings-routes.js.map +1 -0
- package/dist/admin/stats-routes.js +51 -0
- package/dist/admin/stats-routes.js.map +1 -0
- package/dist/admin/task-routes.js +213 -0
- package/dist/admin/task-routes.js.map +1 -0
- package/dist/admin/test-routes.js +38 -0
- package/dist/admin/test-routes.js.map +1 -0
- package/dist/admin/volume-routes.js +82 -0
- package/dist/admin/volume-routes.js.map +1 -0
- package/dist/admin/webhook-routes.js +174 -0
- package/dist/admin/webhook-routes.js.map +1 -0
- package/dist/agents.js +48 -0
- package/dist/agents.js.map +1 -0
- package/dist/assignee-value.js +6 -0
- package/dist/assignee-value.js.map +1 -0
- package/dist/attachments.js +76 -0
- package/dist/attachments.js.map +1 -0
- package/dist/auto-commands.js +88 -0
- package/dist/auto-commands.js.map +1 -0
- package/dist/auto-features.js +32 -0
- package/dist/auto-features.js.map +1 -0
- package/dist/base-branch-store.js +40 -0
- package/dist/base-branch-store.js.map +1 -0
- package/dist/base-branches.js +9 -0
- package/dist/base-branches.js.map +1 -0
- package/dist/build-workflow.js +116 -0
- package/dist/build-workflow.js.map +1 -0
- package/dist/change-request-lifecycle.js +16 -0
- package/dist/change-request-lifecycle.js.map +1 -0
- package/dist/change-request-store.js +72 -0
- package/dist/change-request-store.js.map +1 -0
- package/dist/ci-failure.js +80 -0
- package/dist/ci-failure.js.map +1 -0
- package/dist/cli.js +3 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.js +17 -0
- package/dist/config.js.map +1 -0
- package/dist/conflict-fix.js +178 -0
- package/dist/conflict-fix.js.map +1 -0
- package/dist/cookie.js +70 -0
- package/dist/cookie.js.map +1 -0
- package/dist/crypto-util.js +40 -0
- package/dist/crypto-util.js.map +1 -0
- package/dist/custom-repos-store.js +90 -0
- package/dist/custom-repos-store.js.map +1 -0
- package/dist/custom-repos-sync.js +118 -0
- package/dist/custom-repos-sync.js.map +1 -0
- package/dist/db.js +12 -0
- package/dist/db.js.map +1 -0
- package/dist/devbot-scripts.js +18 -0
- package/dist/devbot-scripts.js.map +1 -0
- package/dist/devcontainer.js +150 -0
- package/dist/devcontainer.js.map +1 -0
- package/dist/env-config-store.js +132 -0
- package/dist/env-config-store.js.map +1 -0
- package/dist/error-log-store.js +193 -0
- package/dist/error-log-store.js.map +1 -0
- package/dist/git.js +605 -0
- package/dist/git.js.map +1 -0
- package/dist/global-queue.js +127 -0
- package/dist/global-queue.js.map +1 -0
- package/dist/global-settings-store.js +307 -0
- package/dist/global-settings-store.js.map +1 -0
- package/dist/help.js +41 -0
- package/dist/help.js.map +1 -0
- package/dist/http-csp.js +15 -0
- package/dist/http-csp.js.map +1 -0
- package/dist/http-util.js +40 -0
- package/dist/http-util.js.map +1 -0
- package/dist/idempotency.js +50 -0
- package/dist/idempotency.js.map +1 -0
- package/dist/lifecycle.js +234 -0
- package/dist/lifecycle.js.map +1 -0
- package/dist/logger.js +33 -0
- package/dist/logger.js.map +1 -0
- package/dist/lsp-servers.js +81 -0
- package/dist/lsp-servers.js.map +1 -0
- package/dist/mcp/auth.js +62 -0
- package/dist/mcp/auth.js.map +1 -0
- package/dist/mcp/effective-mcp.js +42 -0
- package/dist/mcp/effective-mcp.js.map +1 -0
- package/dist/mcp/oauth-refresh.js +138 -0
- package/dist/mcp/oauth-refresh.js.map +1 -0
- package/dist/mcp/peer-sync.js +109 -0
- package/dist/mcp/peer-sync.js.map +1 -0
- package/dist/mcp/registry.js +54 -0
- package/dist/mcp/registry.js.map +1 -0
- package/dist/mcp/runner-bridge.js +93 -0
- package/dist/mcp/runner-bridge.js.map +1 -0
- package/dist/mcp/server.js +173 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/_helpers.js +88 -0
- package/dist/mcp/tools/_helpers.js.map +1 -0
- package/dist/mcp/tools/attachments.js +117 -0
- package/dist/mcp/tools/attachments.js.map +1 -0
- package/dist/mcp/tools/cicd.js +105 -0
- package/dist/mcp/tools/cicd.js.map +1 -0
- package/dist/mcp/tools/discovery.js +34 -0
- package/dist/mcp/tools/discovery.js.map +1 -0
- package/dist/mcp/tools/issues.js +56 -0
- package/dist/mcp/tools/issues.js.map +1 -0
- package/dist/mcp/tools/merge_requests.js +67 -0
- package/dist/mcp/tools/merge_requests.js.map +1 -0
- package/dist/mcp/tools/metadata.js +127 -0
- package/dist/mcp/tools/metadata.js.map +1 -0
- package/dist/mcp/tools/peer_sync.js +43 -0
- package/dist/mcp/tools/peer_sync.js.map +1 -0
- package/dist/mcp/tools/repository.js +178 -0
- package/dist/mcp/tools/repository.js.map +1 -0
- package/dist/mcp/tools/work_tracking.js +125 -0
- package/dist/mcp/tools/work_tracking.js.map +1 -0
- package/dist/mcp/tools/workitems.js +30 -0
- package/dist/mcp/tools/workitems.js.map +1 -0
- package/dist/mcp/volume-files.js +187 -0
- package/dist/mcp/volume-files.js.map +1 -0
- package/dist/mcp-auth-store.js +134 -0
- package/dist/mcp-auth-store.js.map +1 -0
- package/dist/mcp-config-store.js +83 -0
- package/dist/mcp-config-store.js.map +1 -0
- package/dist/mention.js +512 -0
- package/dist/mention.js.map +1 -0
- package/dist/migrate.js +438 -0
- package/dist/migrate.js.map +1 -0
- package/dist/mr-assignee.js +71 -0
- package/dist/mr-assignee.js.map +1 -0
- package/dist/mr-content.js +90 -0
- package/dist/mr-content.js.map +1 -0
- package/dist/oauth-routes.js +54 -0
- package/dist/oauth-routes.js.map +1 -0
- package/dist/onboarding-allowlist.js +32 -0
- package/dist/onboarding-allowlist.js.map +1 -0
- package/dist/opencode.js +291 -0
- package/dist/opencode.js.map +1 -0
- package/dist/outbound-webhook-store.js +229 -0
- package/dist/outbound-webhook-store.js.map +1 -0
- package/dist/outbound-webhook.js +314 -0
- package/dist/outbound-webhook.js.map +1 -0
- package/dist/path-sandbox.js +200 -0
- package/dist/path-sandbox.js.map +1 -0
- package/dist/platform/git-auth.js +34 -0
- package/dist/platform/git-auth.js.map +1 -0
- package/dist/platform/gitealike/attachments.js +62 -0
- package/dist/platform/gitealike/attachments.js.map +1 -0
- package/dist/platform/gitealike/base.js +935 -0
- package/dist/platform/gitealike/base.js.map +1 -0
- package/dist/platform/gitealike/forgejo.js +16 -0
- package/dist/platform/gitealike/forgejo.js.map +1 -0
- package/dist/platform/gitealike/gitea.js +16 -0
- package/dist/platform/gitealike/gitea.js.map +1 -0
- package/dist/platform/gitealike/http.js +152 -0
- package/dist/platform/gitealike/http.js.map +1 -0
- package/dist/platform/gitealike/schemas.js +284 -0
- package/dist/platform/gitealike/schemas.js.map +1 -0
- package/dist/platform/github/attachments.js +52 -0
- package/dist/platform/github/attachments.js.map +1 -0
- package/dist/platform/github/http.js +153 -0
- package/dist/platform/github/http.js.map +1 -0
- package/dist/platform/github/index.js +936 -0
- package/dist/platform/github/index.js.map +1 -0
- package/dist/platform/github/schemas.js +308 -0
- package/dist/platform/github/schemas.js.map +1 -0
- package/dist/platform/github/zip.js +85 -0
- package/dist/platform/github/zip.js.map +1 -0
- package/dist/platform/gitlab/admin.js +105 -0
- package/dist/platform/gitlab/admin.js.map +1 -0
- package/dist/platform/gitlab/api.js +229 -0
- package/dist/platform/gitlab/api.js.map +1 -0
- package/dist/platform/gitlab/attachments.js +79 -0
- package/dist/platform/gitlab/attachments.js.map +1 -0
- package/dist/platform/gitlab/http.js +165 -0
- package/dist/platform/gitlab/http.js.map +1 -0
- package/dist/platform/gitlab/index.js +630 -0
- package/dist/platform/gitlab/index.js.map +1 -0
- package/dist/platform/gitlab/oauth.js +58 -0
- package/dist/platform/gitlab/oauth.js.map +1 -0
- package/dist/platform/gitlab/read.js +182 -0
- package/dist/platform/gitlab/read.js.map +1 -0
- package/dist/platform/gitlab/schemas-read.js +274 -0
- package/dist/platform/gitlab/schemas-read.js.map +1 -0
- package/dist/platform/gitlab/schemas.js +251 -0
- package/dist/platform/gitlab/schemas.js.map +1 -0
- package/dist/platform/gitlab/signature.js +52 -0
- package/dist/platform/gitlab/signature.js.map +1 -0
- package/dist/platform/index.js +38 -0
- package/dist/platform/index.js.map +1 -0
- package/dist/platform/port.js +26 -0
- package/dist/platform/port.js.map +1 -0
- package/dist/platform/types.js +80 -0
- package/dist/platform/types.js.map +1 -0
- package/dist/podman.js +119 -0
- package/dist/podman.js.map +1 -0
- package/dist/project-sync.js +69 -0
- package/dist/project-sync.js.map +1 -0
- package/dist/prompt.js +47 -0
- package/dist/prompt.js.map +1 -0
- package/dist/queue-store.js +236 -0
- package/dist/queue-store.js.map +1 -0
- package/dist/queue.js +129 -0
- package/dist/queue.js.map +1 -0
- package/dist/redact.js +23 -0
- package/dist/redact.js.map +1 -0
- package/dist/run-files.js +297 -0
- package/dist/run-files.js.map +1 -0
- package/dist/run-filters.js +54 -0
- package/dist/run-filters.js.map +1 -0
- package/dist/run-history-store.js +229 -0
- package/dist/run-history-store.js.map +1 -0
- package/dist/run-log-sink.js +270 -0
- package/dist/run-log-sink.js.map +1 -0
- package/dist/run-log.js +97 -0
- package/dist/run-log.js.map +1 -0
- package/dist/run-usage.js +29 -0
- package/dist/run-usage.js.map +1 -0
- package/dist/run-view.js +112 -0
- package/dist/run-view.js.map +1 -0
- package/dist/runner.js +1094 -0
- package/dist/runner.js.map +1 -0
- package/dist/runtime-apply.js +26 -0
- package/dist/runtime-apply.js.map +1 -0
- package/dist/runtime-settings.js +71 -0
- package/dist/runtime-settings.js.map +1 -0
- package/dist/runtime-state.js +19 -0
- package/dist/runtime-state.js.map +1 -0
- package/dist/server.js +119 -0
- package/dist/server.js.map +1 -0
- package/dist/settings-store.js +320 -0
- package/dist/settings-store.js.map +1 -0
- package/dist/status.js +121 -0
- package/dist/status.js.map +1 -0
- package/dist/stop.js +56 -0
- package/dist/stop.js.map +1 -0
- package/dist/sweeps.js +87 -0
- package/dist/sweeps.js.map +1 -0
- package/dist/task-log.js +279 -0
- package/dist/task-log.js.map +1 -0
- package/dist/task-view.js +62 -0
- package/dist/task-view.js.map +1 -0
- package/dist/token-store.js +68 -0
- package/dist/token-store.js.map +1 -0
- package/dist/types/access.js +74 -0
- package/dist/types/access.js.map +1 -0
- package/dist/types/custom-repos.js +28 -0
- package/dist/types/custom-repos.js.map +1 -0
- package/dist/types/env-config.js +25 -0
- package/dist/types/env-config.js.map +1 -0
- package/dist/types/env.js +190 -0
- package/dist/types/env.js.map +1 -0
- package/dist/types/global-settings.js +178 -0
- package/dist/types/global-settings.js.map +1 -0
- package/dist/types/lsp-servers.js +145 -0
- package/dist/types/lsp-servers.js.map +1 -0
- package/dist/types/mcp-config.js +77 -0
- package/dist/types/mcp-config.js.map +1 -0
- package/dist/types/opencode.js +59 -0
- package/dist/types/opencode.js.map +1 -0
- package/dist/types/outbound-webhook.js +56 -0
- package/dist/types/outbound-webhook.js.map +1 -0
- package/dist/types/project-settings.js +114 -0
- package/dist/types/project-settings.js.map +1 -0
- package/dist/types/provider-registry.js +37 -0
- package/dist/types/provider-registry.js.map +1 -0
- package/dist/types/runtime-settings.js +78 -0
- package/dist/types/runtime-settings.js.map +1 -0
- package/dist/usage-stats.js +159 -0
- package/dist/usage-stats.js.map +1 -0
- package/dist/version.js +19 -0
- package/dist/version.js.map +1 -0
- package/dist/volume-gc.js +193 -0
- package/dist/volume-gc.js.map +1 -0
- package/dist/volume-manage.js +191 -0
- package/dist/volume-manage.js.map +1 -0
- package/dist/volume-store.js +122 -0
- package/dist/volume-store.js.map +1 -0
- package/dist/webhook.js +1106 -0
- package/dist/webhook.js.map +1 -0
- package/dist/work-item-auto-store.js +75 -0
- package/dist/work-item-auto-store.js.map +1 -0
- package/dist/work-item-branch-store.js +37 -0
- package/dist/work-item-branch-store.js.map +1 -0
- package/migrations/0001_initial.sql +59 -0
- package/migrations/0002_queue_status.sql +15 -0
- package/migrations/0003_work_item_base_branch.sql +14 -0
- package/migrations/0004_project_settings.sql +15 -0
- package/migrations/0005_global_settings.sql +34 -0
- package/migrations/0006_model_variants.sql +8 -0
- package/migrations/0007_container_error_logs.sql +21 -0
- package/migrations/0008_project_access_grants.sql +16 -0
- package/migrations/0009_drop_imported_legacy.sql +4 -0
- package/migrations/0010_container_error_log_model.sql +6 -0
- package/migrations/0011_container_error_log_title.sql +5 -0
- package/migrations/0012_pending_task_cancel.sql +6 -0
- package/migrations/0013_builder_image.sql +6 -0
- package/migrations/0014_build_workflow.sql +7 -0
- package/migrations/0015_access_rules.sql +24 -0
- package/migrations/0016_trigger_policy.sql +17 -0
- package/migrations/0017_attachment_upload.sql +8 -0
- package/migrations/0018_work_item_branch.sql +11 -0
- package/migrations/0019_auto_push_mr.sql +18 -0
- package/migrations/0020_outbound_webhooks.sql +47 -0
- package/migrations/0021_runtime_settings.sql +12 -0
- package/migrations/0022_auto_resolve_conflicts.sql +17 -0
- package/migrations/0023_ci_fail_auto_report.sql +27 -0
- package/migrations/0024_work_item_auto_override.sql +22 -0
- package/migrations/0025_run_history.sql +37 -0
- package/migrations/0026_run_history_task_seq.sql +6 -0
- package/migrations/0027_custom_repos.sql +11 -0
- package/migrations/0028_run_usage.sql +14 -0
- package/migrations/0029_drop_ocr_langs.sql +6 -0
- package/migrations/0030_mr_assignee.sql +9 -0
- package/migrations/0031_lsp_servers.sql +14 -0
- package/opencode-config/managed/devbot-agent-policy.md +61 -0
- package/opencode-config/managed/opencode.json +77 -0
- package/opencode-config/opencode.json +211 -0
- package/opencode-config/plugins/devbot-path-guard.js +224 -0
- package/package.json +158 -4
- package/public/assets/DashboardSidebarCollapse-rIuzCmVm.js +1 -0
- package/public/assets/DashboardToolbar-DFCUqZ4Z.js +1 -0
- package/public/assets/ErrorLogModal.vue_vue_type_script_setup_true_lang-BCyNIf1E.js +1 -0
- package/public/assets/ErrorLogsPage-DyYK2Rop.js +1 -0
- package/public/assets/LogSlideover.vue_vue_type_script_setup_true_lang-33xie7TE.js +1 -0
- package/public/assets/OverviewPage-CFfa0uwg.js +1 -0
- package/public/assets/PageGrid-CBROIU87.js +1 -0
- package/public/assets/PeriodRangePicker.vue_vue_type_script_setup_true_lang-DiFUNem7.js +1 -0
- package/public/assets/ProjectDetailPage-CreyvUit.js +1 -0
- package/public/assets/ProjectsPage-CFx8-elJ.js +1 -0
- package/public/assets/RunDetailSlideover.vue_vue_type_script_setup_true_lang-DopYYmCT.js +1 -0
- package/public/assets/RunsPage-CRnnXU4P.js +1 -0
- package/public/assets/Select-Bvx32Diz.js +1 -0
- package/public/assets/SelectMenu-BjMxc4VB.js +1 -0
- package/public/assets/SettingsPage-Bb6LM3wO.js +60 -0
- package/public/assets/TimeCell.vue_vue_type_script_setup_true_lang-DW_UB0Fu.js +1 -0
- package/public/assets/UsagePage-BLMDEsv-.js +332 -0
- package/public/assets/UsagePage-DodEeAjB.css +1 -0
- package/public/assets/VolumesPage-CxcLc3L2.js +1 -0
- package/public/assets/WebhookConfigPanel.vue_vue_type_script_setup_true_lang-B2V2GF6b.js +1 -0
- package/public/assets/WorkItemCell.vue_vue_type_script_setup_true_lang-BQn6vTjd.js +1 -0
- package/public/assets/index-BMbMibyb.js +4 -0
- package/public/assets/index-C5RBBrPj.js +30 -0
- package/public/assets/index-CgX29UgC.css +1 -0
- package/public/assets/usage-format-jsb31_O8.js +1 -0
- package/public/assets/useManagedProjects-8rtjRqVJ.js +1 -0
- package/public/assets/useRouteTab-DfwrcMic.js +1 -0
- package/public/favicon.ico +0 -0
- package/public/favicon.png +0 -0
- package/public/index.html +15 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.js","sourceRoot":"","sources":["../src/webhook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAA0D,MAAM,YAAY,CAAC;AAChH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAChI,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACrI,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAyB,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAiB,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAiC,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,8BAA8B,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjI,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAoB,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAmB,MAAM,aAAa,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAmB,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAqB,MAAM,kBAAkB,CAAC;AACtJ,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,8BAA8B,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,2EAA2E;AAC3E,gDAAgD;AAChD,2EAA2E;AAC3E,kCAAkC;AAClC,6EAA6E;AAC7E,sEAAsE;AACtE,gFAAgF;AAChF,0CAA0C;AAC1C,0EAA0E;AAC1E,MAAM,gBAAgB,GAAG,iGAAiG,CAAC;AAU3H,SAAS,YAAY,CAAC,CAAa;IACjC,OAAO,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACtF,CAAC;AAED,8EAA8E;AAC9E,SAAS,YAAY,CAAC,uBAAgC,EAAE,OAAmB;IACzE,MAAM,QAAQ,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC;IACzF,IAAI,uBAAuB,IAAI,QAAQ,EAAE,CAAC;QACxC,OAAO,kDAAkD,QAAQ,wBAAwB,CAAC;IAC5F,CAAC;IACD,IAAI,uBAAuB,EAAE,CAAC;QAC5B,OAAO,+DAA+D,CAAC;IACzE,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,WAAW,QAAQ,wBAAwB,CAAC;IACrD,CAAC;IACD,6EAA6E;IAC7E,qDAAqD;IACrD,OAAO,gEAAgE,CAAC;AAC1E,CAAC;AAED,kDAAkD;AAClD,oEAAoE;AACpE,wEAAwE;AACxE,8EAA8E;AAC9E,mEAAmE;AACnE,mEAAmE;AACnE,6EAA6E;AAC7E,0EAA0E;AAC1E,+EAA+E;AAC/E,KAAK,UAAU,gBAAgB,CAC7B,MAAc,EACd,cAAsB,EACtB,KAAwC,EACxC,mBAAuC,EACvC,mBAAgC;IAEhC,MAAM,CAAC,GAAG,WAAW,EAAE,CAAC;IACxB,IAAI,UAAsB,CAAC;IAC3B,IAAI,mBAAmB,EAAE,CAAC;QACxB,2EAA2E;QAC3E,6EAA6E;QAC7E,4EAA4E;QAC5E,sEAAsE;QACtE,UAAU,GAAG,mBAAmB,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,CAAU,EAAE,CAAC,CAAC;YAC7F,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAC3G,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,MAAM,uBAAuB,GAAG,8BAA8B,CAAC,MAAM,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,YAAY,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAE/D,mDAAmD;IACnD,IAAI,uBAAuB,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YACpE,MAAM,kBAAkB,GACtB,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1F,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;gBACvF,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,CAAU,EAAE,CAAC,CAAC;YAC1F,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;YACvF,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,qCAAqC;IACrC,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACnG,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,wCAAwC,EAAE;gBACjD,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS;aACnF,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,GAAG,CAAC,KAAK,CAAC,gCAAgC,EAAE;YAC1C,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK;SACtG,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,wBAAwB;IACxB,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;QAC1D,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;QACvF,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,uEAAuE;AACvE,0EAA0E;AAC1E,sBAAsB;AACtB,SAAS,UAAU,CAAC,MAAqB;IACvC,OAAO,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,YAAY,CAAC;AACxG,CAAC;AAED,8EAA8E;AAC9E,gFAAgF;AAChF,qCAAqC;AACrC,SAAS,YAAY,CAAC,MAAqB;IACzC,OAAO,CACL,MAAM,CAAC,IAAI,KAAK,OAAO;QACvB,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QACxB,MAAM,CAAC,SAAS;QAChB,MAAM,CAAC,IAAI;QACX,MAAM,CAAC,EAAE;QACT,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,UAAU,KAAK,SAAS;QAC/B,MAAM,CAAC,UAAU,KAAK,SAAS,CAChC,CAAC;AACJ,CAAC;AAmCD,8EAA8E;AAC9E,8EAA8E;AAC9E,qDAAqD;AACrD,SAAS,eAAe,CAAC,UAAkB,EAAE,OAAmB,EAAE,GAAW;IAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,EAAE,CAAC;IACzF,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC;AAED,gFAAgF;AAChF,+EAA+E;AAC/E,2EAA2E;AAC3E,4EAA4E;AAC5E,oEAAoE;AACpE,SAAS,iBAAiB,CACxB,KAAoB,EACpB,GAAW,EACX,OAAmB,EACnB,MAA+C,EAC/C,KAAe;IAEf,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAC;IACvF,MAAM,MAAM,GACV,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACzG,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACpG,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC;QACH,OAAO,gBAAgB,CAAC;YACtB,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC;YACxE,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,qBAAqB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC;YAC9E,MAAM;YACN,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE;YAC1B,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI;YAClC,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,IAAI;YAClC,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,eAAe;YAC3C,QAAQ;YACR,UAAU,EAAE,IAAI,EAAE,WAAW,IAAI,CAAC;YAClC,SAAS,EAAE,IAAI,EAAE,UAAU,IAAI,CAAC;YAChC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,MAAM,CAAC,SAAS;YAC9B,WAAW,EAAE,KAAK,CAAC,KAAK;YACxB,YAAY,EAAE,KAAK,CAAC,MAAM;YAC1B,eAAe,EAAE,KAAK,CAAC,SAAS;YAChC,eAAe,EAAE,KAAK,CAAC,SAAS;YAChC,gBAAgB,EAAE,KAAK,CAAC,UAAU;YAClC,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,CAAU,EAAE,CAAC,CAAC;QAC/F,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,2EAA2E;AAC3E,yEAAyE;AACzE,uEAAuE;AACvE,iFAAiF;AACjF,6EAA6E;AAC7E,sDAAsD;AACtD,SAAS,mBAAmB,CAC1B,KAAoB,EACpB,GAAW,EACX,OAAmB,EACnB,eAAwB,EACxB,MAAgD,EAChD,SAAkB;IAElB,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO;IAClE,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC;YAAE,OAAO;IAC9E,CAAC;IACD,MAAM,MAAM,GAAkB,OAAO,CAAC,OAAO,IAAI;QAC/C,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,eAAe,IAAI,OAAO,CAAC,MAAM;QAC1C,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;KACZ,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC;QACH,cAAc,CAAC;YACb,OAAO,EAAE,GAAG;YACZ,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,oEAAoE;YACpE,sEAAsE;YACtE,qCAAqC;YACrC,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,wEAAwE;YACxE,0EAA0E;YAC1E,8DAA8D;YAC9D,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI;YAChC,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,OAAO;YACP,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChE,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,CAAU,EAAE,CAAC,CAAC;IAC1F,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,4EAA4E;AAC5E,6EAA6E;AAC7E,SAAS,YAAY,CAAC,KAAoB;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,IAAI;QACJ,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC;QACjD,OAAO,EAAE,qBAAqB,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,8EAA8E;AAC9E,4EAA4E;AAC5E,oEAAoE;AACpE,SAAS,gBAAgB,CAAC,KAAoB,EAAE,GAAW,EAAE,OAAmB;IAC9E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC;QAAE,OAAO;IAC7E,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACnG,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,cAAc,CACZ;QACE,GAAG,KAAK;QACR,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK;QACnC,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO;KAC1C,EACD;QACE,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,CAAC,MAAM;YACR,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE;YAClF,CAAC,CAAC,EAAE,CAAC;KACR,CACF,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,4EAA4E;AAC5E,4EAA4E;AAC5E,yBAAyB;AACzB,SAAS,yBAAyB,CAAC,KAAoB,EAAE,GAAW;IAClE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC;QAAE,OAAO;IAC/D,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,OAAO,CAAC,MAAc,EAAE,MAAc,EAAE,IAAY;IAC3D,WAAW,EAAE;SACV,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC;SAC3C,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAU,EAAE,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,yEAAyE;AACzE,2EAA2E;AAC3E,oDAAoD;AACpD,SAAS,YAAY,CAAC,GAAiB;IACrC,IAAI,KAAK,GAA2B,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAY,CAAC;QAClD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAClD,KAAK,GAAG,MAAgC,CAAC;QAC3C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,yCAAyC;IAC3C,CAAC;IACD,OAAO;QACL,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,KAAK,EAAE,SAAS,CAAC;YACf,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;YAC/C,QAAQ,EAAE,KAAK,CAAC,QAAQ,KAAK,IAAI;YACjC,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI;YAC7B,aAAa,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI;YAC3C,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,KAAK,IAAI;SAClD,CAAC;QACF,MAAM,EAAE,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QAC5D,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,cAAc,EAAE,GAAG,CAAC,QAAQ;KAC7B,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,6EAA6E;AAC7E,+DAA+D;AAC/D,KAAK,UAAU,gBAAgB,CAC7B,SAAiB,EACjB,cAAsB,EACtB,UAAkB,EAClB,gBAAoC;IAEpC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC;QACpE,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,CAAC;QAC5E,MAAM,aAAa,GAAG,8BAA8B,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CACrC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAC5C,CAAC;QAElC,MAAM,IAAI,GAAG,eAAe,CAAC;YAC3B,cAAc;YACd,MAAM;YACN,mBAAmB,EAAE,aAAa,EAAE,SAAS,IAAI,IAAI;YACrD,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;YACrD,mBAAmB,EAAE,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;YAC5E,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;YACnE,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE;YAC7E,mBAAmB,EAAE,OAAO,EAAE,CAAC,mBAAmB;YAClD,UAAU,EAAE,OAAO,EAAE,CAAC,UAAU;YAChC,YAAY;SACb,CAAC,CAAC;QAEH,MAAM,WAAW,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAClG,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,EAAE,CAAU,EAAE,CAAC,CAAC;IAClF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAgB;IACvC,MAAM,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;IAChC,MAAM,YAAY,GAAG,uBAAuB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7D,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAE9E,wEAAwE;IACxE,IAAI,OAAO,EAAE,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,IAAI,MAAM,GAAG,OAAO,EAAE,CAAC,cAAc,EAAE,CAAC;YACtC,aAAa,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;YACzF,IAAI,OAAO,EAAE,CAAC,aAAa;gBAAE,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,cAAc,EAAE,oCAAoC,CAAC,CAAC;YAC1G,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,OAAO,EAAE,CAAC,aAAa,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YAC7C,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC;YAC3C,OAAO,CACL,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,cAAc,EAChB,eAAe,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,wBAAwB,CACjE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,cAAc,EAAE,eAAe,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,0EAA0E;IAC1E,+CAA+C;IAC/C,MAAM,OAAO,GAAiB,CAAC,UAAU,EAAE,OAAO,EAAuB,EAAE;QACzE,IAAI,KAAoB,CAAC;QACzB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAkB,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,KAAK,CAAC,wCAAwC,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;YACzE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,0EAA0E;QAC1E,2EAA2E;QAC3E,iEAAiE;QACjE,IAAI,MAAM,GAA4C,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACxF,yEAAyE;QACzE,4EAA4E;QAC5E,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,yEAAyE;QACzE,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,GAAG,EAAE,QAAQ,IAAI,CAAC,CAAC;QAEpC,MAAM,IAAI,GAAG,iBAAiB,CAAC;YAC7B,GAAG,EAAE,UAAU;YACf,UAAU;YACV,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBAC1B,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa;oBAAE,OAAO;gBAChD,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;YACnE,CAAC;SACF,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE,CAAC,aAAa,EAAE,CAAC;YAC3C,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE,+BAA+B,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;QACnG,CAAC;QACD,OAAO,IAAI,CAAC,KAAK;aACd,IAAI,CAAC,KAAK,IAAI,EAAE;YACf,sEAAsE;YACtE,wEAAwE;YACxE,MAAM,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YAC3C,aAAa,GAAG,KAAK,CAAC;YACtB,IAAI,OAAO,EAAE,CAAC,aAAa,EAAE,CAAC;gBAC5B,MAAM,SAAS,GAAG,YAAY,EAAE;qBAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC;qBAC3E,GAAG,CAAC,YAAY,CAAC,CAAC;gBACrB,MAAM,IAAI,GAAG,cAAc,CAAC;oBAC1B,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;oBACvB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,UAAU;oBACV,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,YAAY,EAAE,KAAK,CAAC,YAAY,KAAK,IAAI;oBACzC,UAAU,EAAE,IAAI,CAAC,MAAM;oBACvB,QAAQ;oBACR,SAAS;iBACV,CAAC,CAAC;gBACH,IAAI,IAAI;oBAAE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YACjE,CAAC;YACD,uEAAuE;YACvE,wEAAwE;YACxE,uBAAuB;YACvB,yBAAyB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAC7C,yEAAyE;YACzE,oEAAoE;YACpE,gDAAgD;YAChD,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAC1C,IAAI,OAAmB,CAAC;YACxB,IAAI,CAAC;gBACH,OAAO,GAAG,KAAK,CAAC,MAAM;oBACpB,CAAC,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC;oBACxB,CAAC,CAAC,KAAK,CAAC,gBAAgB;wBACtB,CAAC,CAAC,MAAM,mBAAmB,CAAC,KAAK,CAAC;wBAClC,CAAC,CAAC,KAAK,CAAC,QAAQ;4BACd,CAAC,CAAC,MAAM,WAAW,CAAC,KAAK,CAAC;4BAC1B,CAAC,CAAC,KAAK,CAAC,aAAa;gCACnB,CAAC,CAAC,MAAM,gBAAgB,CAAC,KAAK,CAAC;gCAC/B,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;oBAAS,CAAC;gBACT,sEAAsE;gBACtE,yDAAyD;gBACzD,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC7C,CAAC;YACD,qEAAqE;YACrE,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,EAAE,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;gBAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC;gBACpD,IAAI,QAAQ,GAAG,OAAO,EAAE,CAAC,UAAU,EAAE,CAAC;oBACpC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE,wBAAwB,QAAQ,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,UAAU,gBAAgB,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;gBACjJ,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE,oBAAoB,OAAO,EAAE,CAAC,UAAU,cAAc,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1H,CAAC;YACH,CAAC;YACD,wEAAwE;YACxE,oEAAoE;YACpE,yEAAyE;YACzE,iDAAiD;YACjD,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YACrE,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAC/E,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YAC9E,aAAa,GAAG,IAAI,CAAC;YACrB,kEAAkE;YAClE,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAe,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;YACpF,yEAAyE;YACzE,uCAAuC;YACvC,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAChE,yEAAyE;YACzE,yEAAyE;YACzE,sBAAsB;YACtB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;gBAChI,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC/G,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,iBAAiB,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAE3F,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,aAAa,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE,CAAC,aAAa;YAAE,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,cAAc,EAAE,6BAA6B,CAAC,CAAC;QACnG,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,aAAa,EAAE,CAAC;QACnD,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,cAAc,EAAE,sBAAsB,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACpF,CAAC;AACH,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAqB;IAC/C,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAChE,CAAC;AAED,yEAAyE;AACzE,KAAK,UAAU,eAAe,CAC5B,MAAc,EACd,cAAsB,EACtB,mBAAuC,EACvC,MAAqB;IAErB,MAAM,CAAC,GAAG,WAAW,EAAE,CAAC;IACxB,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC,CAAC;QACrJ,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1E,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,MAAM,CAAC,UAAU,+BAA+B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC,CAAC;gBACtM,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,CAAU,EAAE,CAAC,CAAC;YACvG,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,gCAAgC,MAAM,CAAC,UAAU,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1M,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,4CAA4C;AAC5C,0EAA0E;AAC1E,6BAA6B;AAC7B,2EAA2E;AAC3E,iFAAiF;AACjF,6EAA6E;AAC7E,2EAA2E;AAC3E,yEAAyE;AACzE,KAAK,UAAU,eAAe,CAC5B,MAAc,EACd,cAAsB,EACtB,UAAkB,EAClB,mBAAuC,EACvC,MAAqB;IAErB,MAAM,CAAC,GAAG,WAAW,EAAE,CAAC;IACxB,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC,CAAC;QACzJ,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,aAAa,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1E,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAC9B,MAAM,EACN,cAAc,EACd,mBAAmB,EACnB,eAAe,MAAM,CAAC,UAAU,4FAA4F,cAAc,GAAG,CAC9I,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,CAAU,EAAE,CAAC,CAAC;QACvG,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,gCAAgC,MAAM,CAAC,UAAU,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5M,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,EAA0B;IAC9C,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,EAA0B;IAC1D,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC9F,wDAAwD;IACxD,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAEhD,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;IAC/B,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;IAElC,wEAAwE;IACxE,2EAA2E;IAC3E,qEAAqE;IACrE,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC;IAC7F,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAEpC,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAErC,4EAA4E;IAC5E,uEAAuE;IACvE,IAAI,IAAI,KAAK,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,IAAI,CAAC,oDAAoD,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;QACxH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8EAA8E;IAC9E,4EAA4E;IAC5E,iFAAiF;IACjF,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2EAA2E;IAC3E,mEAAmE;IACnE,yEAAyE;IACzE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6EAA6E;IAC7E,uEAAuE;IACvE,sEAAsE;IACtE,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2EAA2E;IAC3E,4EAA4E;IAC5E,sEAAsE;IACtE,8EAA8E;IAC9E,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,kBAAkB,CAAC;YACvB,SAAS,EAAE,MAAM;YACjB,cAAc,EAAE,MAAM;YACtB,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;YAC1B,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,QAAQ,EAAE,MAAM,CAAC,YAAY;YAC7B,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;IACzC,CAAC;IAED,6EAA6E;IAC7E,2EAA2E;IAC3E,+EAA+E;IAC/E,0EAA0E;IAC1E,8EAA8E;IAC9E,uEAAuE;IACvE,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACnD,QAAQ,CAAC;YACP,SAAS,EAAE,MAAM;YACjB,cAAc,EAAE,MAAM;YACtB,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;YAC1B,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;YAC7B,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,EAAE;YACV,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK;YAChC,mBAAmB,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW;YAC5C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0EAA0E;IAC1E,2EAA2E;IAC3E,sEAAsE;IACtE,+EAA+E;IAC/E,qCAAqC;IACrC,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzC,QAAQ,CAAC;YACP,SAAS,EAAE,MAAM;YACjB,cAAc,EAAE,MAAM;YACtB,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;YAC1B,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;YAC7B,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,EAAE;YACV,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK;YAChC,mBAAmB,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW;YAC5C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,MAAM,EAAE,IAAI;YACZ,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yEAAyE;IACzE,6EAA6E;IAC7E,6EAA6E;IAC7E,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAChD,QAAQ,CAAC;YACP,SAAS,EAAE,MAAM;YACjB,cAAc,EAAE,MAAM;YACtB,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;YAC1B,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;YAC7B,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,EAAE;YACV,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK;YAChC,mBAAmB,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW;YAC5C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+EAA+E;IAC/E,0EAA0E;IAC1E,kCAAkC;IAClC,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3C,QAAQ,CAAC;YACP,SAAS,EAAE,MAAM;YACjB,cAAc,EAAE,MAAM;YACtB,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;YAC1B,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;YAC7B,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,EAAE;YACV,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK;YAChC,mBAAmB,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW;YAC5C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2EAA2E;IAC3E,2EAA2E;IAC3E,wEAAwE;IACxE,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7E,yEAAyE;IACzE,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7F,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,KAAK,EAAE,CAAC;QACV,WAAW,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC,CAAC;QACjI,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvB,WAAW,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3I,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC;QACP,SAAS,EAAE,MAAM;QACjB,cAAc,EAAE,MAAM;QACtB,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;QAC1B,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;QAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM;QACN,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK;QAChC,mBAAmB,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW;QAC5C,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,EAA0B;IAC/D,IAAI,EAAE,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAC3E,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC;IAC3C,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAE7C,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;IAElC,uEAAuE;IACvE,4EAA4E;IAC5E,wEAAwE;IACxE,oEAAoE;IACpE,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC;IAC7F,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAEpC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAElC,mEAAmE;IACnE,IAAI,IAAI,KAAK,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,IAAI,CAAC,oDAAoD,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;QACxH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8EAA8E;IAC9E,gFAAgF;IAChF,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wEAAwE;IACxE,4EAA4E;IAC5E,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2EAA2E;IAC3E,kDAAkD;IAClD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+EAA+E;IAC/E,yEAAyE;IACzE,6DAA6D;IAC7D,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,kBAAkB,CAAC;YACvB,SAAS,EAAE,MAAM;YACjB,cAAc,EAAE,MAAM;YACtB,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;YAC1B,QAAQ,EAAE,MAAM,CAAC,YAAY;YAC7B,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;IACzC,CAAC;IAED,8EAA8E;IAC9E,0EAA0E;IAC1E,2DAA2D;IAC3D,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACnD,QAAQ,CAAC;YACP,SAAS,EAAE,MAAM;YACjB,cAAc,EAAE,MAAM;YACtB,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;YAC1B,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;YAC7B,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,EAAE;YACV,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK;YAChC,mBAAmB,EAAE,EAAE;YACvB,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2EAA2E;IAC3E,8EAA8E;IAC9E,kEAAkE;IAClE,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzC,QAAQ,CAAC;YACP,SAAS,EAAE,MAAM;YACjB,cAAc,EAAE,MAAM;YACtB,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;YAC1B,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;YAC7B,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,EAAE;YACV,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK;YAChC,mBAAmB,EAAE,EAAE;YACvB,MAAM,EAAE,IAAI;YACZ,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4EAA4E;IAC5E,kEAAkE;IAClE,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAChD,QAAQ,CAAC;YACP,SAAS,EAAE,MAAM;YACjB,cAAc,EAAE,MAAM;YACtB,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;YAC1B,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;YAC7B,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,EAAE;YACV,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK;YAChC,mBAAmB,EAAE,EAAE;YACvB,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6EAA6E;IAC7E,oEAAoE;IACpE,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3C,QAAQ,CAAC;YACP,SAAS,EAAE,MAAM;YACjB,cAAc,EAAE,MAAM;YACtB,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;YAC1B,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;YAC7B,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,EAAE;YACV,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK;YAChC,mBAAmB,EAAE,EAAE;YACvB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wEAAwE;IACxE,sEAAsE;IACtE,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7E,0EAA0E;IAC1E,kEAAkE;IAClE,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7F,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,KAAK,EAAE,CAAC;QACV,WAAW,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,2CAA2C,EAAE,CAAC,CAAC,CAAC,CAAC;QAChJ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvB,WAAW,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3I,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC;QACP,SAAS,EAAE,MAAM;QACjB,cAAc,EAAE,MAAM;QACtB,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;QAC1B,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;QAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM;QACN,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK;QAChC,mBAAmB,EAAE,EAAE;QACvB,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,EAA0B;IAChE,IAAI,EAAE,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,EAAE,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC/D,MAAM,UAAU,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;IAClC,qBAAqB,CAAC,UAAU,CAAC;SAC9B,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACV,GAAG,CAAC,KAAK,CAAC,gCAAgC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtE,eAAe,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,uCAAuC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAU,EAAE,CAAC,CAAC,CAAC;IACpG,IAAI,CAAC;QACH,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,IAAI,CAAC,2CAA2C,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAU,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yEAAyE;AACzE,8EAA8E;AAC9E,+EAA+E;AAC/E,4EAA4E;AAC5E,2EAA2E;AAC3E,wCAAwC;AACxC,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,EAA0B;IACzE,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAEnC,MAAM,UAAU,GAAG,8BAA8B,CAAC,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IAC9E,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9B,2EAA2E;IAC3E,kEAAkE;IAClE,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,UAAU,CAAC,YAAY,EAAE,kBAAkB,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9F,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,gBAAgB,KAAK,EAAE,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAC/F,IAAI,EAAE,CAAC,SAAS,IAAI,UAAU,CAAC,iBAAiB,KAAK,EAAE,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAEhF,MAAM,CAAC,GAAG,WAAW,EAAE,CAAC;IACxB,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CAAC,8CAA8C,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,QAA6D,CAAC;IAClE,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACnF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAU,EAAE,CAAC,CAAC;QAC5H,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,8CAA8C,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACrH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8EAA8E;IAC9E,mEAAmE;IACnE,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,cAAc,CAAC;YAC7B,SAAS;YACT,YAAY,EAAE,EAAE,CAAC,YAAY;YAC7B,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,GAAG,EAAE,EAAE,CAAC,SAAS,IAAI,IAAI;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;IAC7B,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,gBAAgB,CAAC;IAC7C,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC;IACpC,QAAQ,CAAC;QACP,SAAS;QACT,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,UAAU,CAAC,YAAY;QACnC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ;QAC7B,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,sFAAsF;QAC9F,aAAa,EAAE,QAAQ,CAAC,KAAK;QAC7B,mBAAmB,EAAE,QAAQ,CAAC,WAAW;QACzC,GAAG,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS;YAC7B,CAAC,CAAC;gBACE,SAAS,EAAE;oBACT,UAAU,EAAE,EAAE,CAAC,UAAU;oBACzB,GAAG,EAAE,WAAW;oBAChB,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9C,GAAG,CAAC,EAAE,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjG;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,EAAE,YAAY;KACrB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,KAAyB,EAAE,MAAc,EAAE,MAA+B,EAAE;IAC9F,MAAM,KAAK,GAAG,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9C,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAoB;IAC/C,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACtC,MAAM,CAAC,GAAG,WAAW,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAwD,CAAC,CAAC;QAChG,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;YACzD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/B,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,CAAC;YACjE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,OAAwD,EAAG,GAAW,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;YACpJ,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC,CAAC;YACpE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/B,CAAC;QACD,yEAAyE;QACzE,mEAAmE;QACnE,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,OAAwD,CAAC,CAAC;QACrG,IAAI,SAAS,IAAI,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/C,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;YACzD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC3B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/B,CAAC;QACD,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE;YAC5B,KAAK;YACL,aAAa,EAAE,IAAI;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACvC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,OAAwD,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAClH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;YACtD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;YACxB,KAAK,SAAS;gBACZ,OAAO,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBAC/C,MAAM;YACR,KAAK,eAAe;gBAClB,OAAO,GAAG,MAAM,uBAAuB,CAAC,UAAU,CAAC,CAAC;gBACpD,MAAM;YACR,KAAK,gBAAgB;gBACnB,OAAO,GAAG,MAAM,wBAAwB,CAAC,UAAU,CAAC,CAAC;gBACrD,MAAM;YACR,KAAK,iBAAiB;gBACpB,OAAO,GAAG,MAAM,0BAA0B,CAAC,UAAU,CAAC,CAAC;gBACvD,MAAM;YACR;gBACE,OAAO,GAAG,KAAK,CAAC;QACpB,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACnC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE;YACxB,cAAc,EAAE,UAAU,CAAC,QAAQ,EAAE,MAAM;YAC3C,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;SACxC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { db } from "./db.js";
|
|
2
|
+
import { resolveAutoFeature } from "./settings-store.js";
|
|
3
|
+
import { AUTO_FEATURES, autoFeatureMeta } from "./auto-features.js";
|
|
4
|
+
export function initWorkItemAutoTable() {
|
|
5
|
+
db.exec(`
|
|
6
|
+
CREATE TABLE IF NOT EXISTS work_item_auto_override (
|
|
7
|
+
work_item_id INTEGER NOT NULL,
|
|
8
|
+
feature TEXT NOT NULL CHECK (feature IN
|
|
9
|
+
('auto_push','auto_mr','auto_resolve_conflicts','ci_fail_auto_report')),
|
|
10
|
+
state TEXT NOT NULL CHECK (state IN ('on','off')),
|
|
11
|
+
created_at INTEGER NOT NULL,
|
|
12
|
+
updated_at INTEGER NOT NULL,
|
|
13
|
+
PRIMARY KEY (work_item_id, feature)
|
|
14
|
+
)
|
|
15
|
+
`);
|
|
16
|
+
}
|
|
17
|
+
export function getAutoOverride(workItemId, feature) {
|
|
18
|
+
let row;
|
|
19
|
+
try {
|
|
20
|
+
row = db
|
|
21
|
+
.prepare("SELECT state FROM work_item_auto_override WHERE work_item_id = ? AND feature = ?")
|
|
22
|
+
.get(workItemId, autoFeatureMeta(feature).dbKey);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
// Table may not exist in focused unit tests that skip init/migrate.
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
return row?.state === "on" || row?.state === "off" ? row.state : null;
|
|
29
|
+
}
|
|
30
|
+
// Write (or replace) the override for one feature. created_at is preserved on
|
|
31
|
+
// an update so a re-toggle doesn't lose when the override was first set.
|
|
32
|
+
export function setAutoOverride(workItemId, feature, state) {
|
|
33
|
+
const now = Math.floor(Date.now() / 1000);
|
|
34
|
+
db.prepare(`INSERT INTO work_item_auto_override (work_item_id, feature, state, created_at, updated_at)
|
|
35
|
+
VALUES (?, ?, ?, ?, ?)
|
|
36
|
+
ON CONFLICT(work_item_id, feature) DO UPDATE SET
|
|
37
|
+
state = excluded.state,
|
|
38
|
+
updated_at = excluded.updated_at`).run(workItemId, autoFeatureMeta(feature).dbKey, state, now, now);
|
|
39
|
+
}
|
|
40
|
+
// Delete the override so the feature follows the project/global resolution.
|
|
41
|
+
// Returns true when a row was removed.
|
|
42
|
+
export function clearAutoOverride(workItemId, feature) {
|
|
43
|
+
const r = db
|
|
44
|
+
.prepare("DELETE FROM work_item_auto_override WHERE work_item_id = ? AND feature = ?")
|
|
45
|
+
.run(workItemId, autoFeatureMeta(feature).dbKey);
|
|
46
|
+
return r.changes > 0;
|
|
47
|
+
}
|
|
48
|
+
export function listAutoOverrides(workItemId) {
|
|
49
|
+
const rows = db
|
|
50
|
+
.prepare("SELECT feature, state FROM work_item_auto_override WHERE work_item_id = ?")
|
|
51
|
+
.all(workItemId);
|
|
52
|
+
const out = {};
|
|
53
|
+
for (const row of rows) {
|
|
54
|
+
const key = AUTO_FEATURES.find((k) => autoFeatureMeta(k).dbKey === row.feature);
|
|
55
|
+
if (key && (row.state === "on" || row.state === "off")) {
|
|
56
|
+
out[key] = row.state;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return out;
|
|
60
|
+
}
|
|
61
|
+
// Effective value for a run: a work-item override wins in either direction;
|
|
62
|
+
// otherwise fall back to the project -> global -> false resolution.
|
|
63
|
+
export function autoFeatureEnabled(projectId, workItemId, feature) {
|
|
64
|
+
const override = getAutoOverride(workItemId, feature);
|
|
65
|
+
if (override === "on")
|
|
66
|
+
return true;
|
|
67
|
+
if (override === "off")
|
|
68
|
+
return false;
|
|
69
|
+
return resolveAutoFeature(projectId, feature);
|
|
70
|
+
}
|
|
71
|
+
// Test-only cleanup hook.
|
|
72
|
+
export function deleteAllAutoOverrides(workItemId) {
|
|
73
|
+
db.prepare("DELETE FROM work_item_auto_override WHERE work_item_id = ?").run(workItemId);
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=work-item-auto-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-item-auto-store.js","sourceRoot":"","sources":["../src/work-item-auto-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { db } from "./db.js";
|
|
2
|
+
// Per-work-item work branch chosen via the /branch <name> mention token.
|
|
3
|
+
// First-write-wins and durable: unlike work_item_base_branch this row is NOT
|
|
4
|
+
// cleared by /reset or work-item close, so a reopened item keeps its branch.
|
|
5
|
+
// init runs in lifecycle.ts bootstrap() alongside the other init*Table() calls
|
|
6
|
+
// so the table exists even for test DBs that skip migrate(). Idempotent.
|
|
7
|
+
export function initWorkItemBranchTable() {
|
|
8
|
+
db.exec(`
|
|
9
|
+
CREATE TABLE IF NOT EXISTS work_item_branch (
|
|
10
|
+
work_item_id INTEGER PRIMARY KEY,
|
|
11
|
+
branch TEXT NOT NULL,
|
|
12
|
+
created_at INTEGER NOT NULL
|
|
13
|
+
)
|
|
14
|
+
`);
|
|
15
|
+
}
|
|
16
|
+
// First-write-wins: INSERT OR IGNORE is the atomic primitive. A second /branch
|
|
17
|
+
// mention does not overwrite the stored name; runner.ts surfaces the ignore to
|
|
18
|
+
// the user. The row is the single source of truth for the work branch across
|
|
19
|
+
// every subsequent run.
|
|
20
|
+
export function setWorkBranchIfUnset(workItemId, branch) {
|
|
21
|
+
db.prepare(`
|
|
22
|
+
INSERT OR IGNORE INTO work_item_branch (work_item_id, branch, created_at)
|
|
23
|
+
VALUES (?, ?, ?)
|
|
24
|
+
`).run(workItemId, branch, Math.floor(Date.now() / 1000));
|
|
25
|
+
}
|
|
26
|
+
export function getWorkBranch(workItemId) {
|
|
27
|
+
const row = db
|
|
28
|
+
.prepare("SELECT branch FROM work_item_branch WHERE work_item_id = ?")
|
|
29
|
+
.get(workItemId);
|
|
30
|
+
return row ? row.branch : null;
|
|
31
|
+
}
|
|
32
|
+
// Test-only: no production path clears a work-item's branch name. /reset and
|
|
33
|
+
// close deliberately keep it (see migration 0018).
|
|
34
|
+
export function deleteWorkBranch(workItemId) {
|
|
35
|
+
db.prepare("DELETE FROM work_item_branch WHERE work_item_id = ?").run(workItemId);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=work-item-branch-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-item-branch-store.js","sourceRoot":"","sources":["../src/work-item-branch-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE7B,yEAAyE;AACzE,6EAA6E;AAC7E,6EAA6E;AAC7E,+EAA+E;AAC/E,yEAAyE;AACzE,MAAM,UAAU,uBAAuB;IACrC,EAAE,CAAC,IAAI,CAAC;;;;;;GAMP,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,+EAA+E;AAC/E,6EAA6E;AAC7E,wBAAwB;AACxB,MAAM,UAAU,oBAAoB,CAAC,UAAkB,EAAE,MAAc;IACrE,EAAE,CAAC,OAAO,CAAC;;;GAGV,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,UAAkB;IAC9C,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CAAC,4DAA4D,CAAC;SACrE,GAAG,CAAC,UAAU,CAAmC,CAAC;IACrD,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,6EAA6E;AAC7E,mDAAmD;AACnD,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,EAAE,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACpF,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
-- Baseline schema: recreate every table that the scattered initXTables() calls
|
|
2
|
+
-- in token-store / mcp/auth / mcp-config-store / mcp-auth-store / queue-store /
|
|
3
|
+
-- idempotency created via CREATE TABLE IF NOT EXISTS. idempotent: a pre-existing
|
|
4
|
+
-- devbot.db (created by the old initXTables path) is untouched by this migration
|
|
5
|
+
-- since every statement uses IF NOT EXISTS; only schema_migrations is new. A fresh
|
|
6
|
+
-- DB gets everything built here so the initXTables() calls become a redundant
|
|
7
|
+
-- belt-and-braces layer.
|
|
8
|
+
|
|
9
|
+
CREATE TABLE IF NOT EXISTS schema_migrations (
|
|
10
|
+
version INTEGER PRIMARY KEY,
|
|
11
|
+
applied_at INTEGER NOT NULL
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
CREATE TABLE IF NOT EXISTS project_tokens (
|
|
15
|
+
project_id INTEGER PRIMARY KEY,
|
|
16
|
+
project_path TEXT NOT NULL,
|
|
17
|
+
signing_token TEXT NOT NULL,
|
|
18
|
+
webhook_id INTEGER NOT NULL,
|
|
19
|
+
created_at INTEGER NOT NULL
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
CREATE TABLE IF NOT EXISTS mcp_thread_tokens (
|
|
23
|
+
token TEXT PRIMARY KEY,
|
|
24
|
+
project_id INTEGER NOT NULL,
|
|
25
|
+
work_item_id INTEGER NOT NULL,
|
|
26
|
+
created_at INTEGER NOT NULL,
|
|
27
|
+
exp_at INTEGER NOT NULL
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
CREATE TABLE IF NOT EXISTS project_mcp_servers (
|
|
31
|
+
project_id INTEGER NOT NULL,
|
|
32
|
+
name TEXT NOT NULL,
|
|
33
|
+
config TEXT NOT NULL,
|
|
34
|
+
created_at INTEGER NOT NULL,
|
|
35
|
+
updated_at INTEGER NOT NULL,
|
|
36
|
+
PRIMARY KEY (project_id, name)
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
CREATE TABLE IF NOT EXISTS project_mcp_auth (
|
|
40
|
+
project_id INTEGER NOT NULL,
|
|
41
|
+
name TEXT NOT NULL,
|
|
42
|
+
entry TEXT NOT NULL,
|
|
43
|
+
created_at INTEGER NOT NULL,
|
|
44
|
+
updated_at INTEGER NOT NULL,
|
|
45
|
+
PRIMARY KEY (project_id, name)
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
CREATE TABLE IF NOT EXISTS pending_tasks (
|
|
49
|
+
seq INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
50
|
+
work_item_id INTEGER NOT NULL,
|
|
51
|
+
payload TEXT NOT NULL,
|
|
52
|
+
created_at INTEGER NOT NULL
|
|
53
|
+
);
|
|
54
|
+
CREATE INDEX IF NOT EXISTS idx_pending_work_item ON pending_tasks(work_item_id);
|
|
55
|
+
|
|
56
|
+
CREATE TABLE IF NOT EXISTS seen_webhook_ids (
|
|
57
|
+
webhook_id TEXT PRIMARY KEY,
|
|
58
|
+
seen_at INTEGER NOT NULL
|
|
59
|
+
);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
-- Promote pending_tasks from a replay-only durability log to the runtime queue.
|
|
2
|
+
-- New columns track claim state, retry attempts, and timing so the DB — not an
|
|
3
|
+
-- in-memory Map/array — drives FIFO ordering, the concurrency gate, and
|
|
4
|
+
-- transient-failure retry. Existing rows (pre-migration, status-less) get safe
|
|
5
|
+
-- defaults: status='queued', attempts=0, enqueued_at=0 (recomputed on first
|
|
6
|
+
-- claim by the worker). last_error is nullable (set only after a transient
|
|
7
|
+
-- failure). idx_pending_status backs the global-gate claim query.
|
|
8
|
+
|
|
9
|
+
ALTER TABLE pending_tasks ADD COLUMN status TEXT NOT NULL DEFAULT 'queued';
|
|
10
|
+
ALTER TABLE pending_tasks ADD COLUMN attempts INTEGER NOT NULL DEFAULT 0;
|
|
11
|
+
ALTER TABLE pending_tasks ADD COLUMN claimed_at INTEGER;
|
|
12
|
+
ALTER TABLE pending_tasks ADD COLUMN enqueued_at INTEGER NOT NULL DEFAULT 0;
|
|
13
|
+
ALTER TABLE pending_tasks ADD COLUMN last_error TEXT;
|
|
14
|
+
|
|
15
|
+
CREATE INDEX IF NOT EXISTS idx_pending_status ON pending_tasks(status);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
-- Per-work-item base/target branch chosen via the /base <branch> mention token.
|
|
2
|
+
-- First-write-wins: set once on the work item's first run, cleared by /reset
|
|
3
|
+
-- and work-item close. mrTarget (build-mode MR target + prompt diff range) reads
|
|
4
|
+
-- from this table on every run, so a second mention without /base keeps the
|
|
5
|
+
-- chosen target instead of falling back to the BASE_BRANCHES env walk. Idempotent
|
|
6
|
+
-- via IF NOT EXISTS — safe on pre-existing DBs (no-op) and fresh DBs (creates
|
|
7
|
+
-- it). Forward-compatible with the migration framework on wi-3 (MR !3): inert
|
|
8
|
+
-- until src/migrate.ts lands, then applied as version 3 after 0001/0002.
|
|
9
|
+
|
|
10
|
+
CREATE TABLE IF NOT EXISTS work_item_base_branch (
|
|
11
|
+
work_item_id INTEGER PRIMARY KEY,
|
|
12
|
+
base_branch TEXT NOT NULL,
|
|
13
|
+
created_at INTEGER NOT NULL
|
|
14
|
+
);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
-- Per-project override settings: base/plan/build model, OpenCode plugins, and
|
|
2
|
+
-- base branches. All columns nullable TEXT; NULL or '' means "inherit the
|
|
3
|
+
-- global .env default". Values are non-secret (unlike project_env_vars), so
|
|
4
|
+
-- stored plaintext. One row per project; absent row = all inherit.
|
|
5
|
+
|
|
6
|
+
CREATE TABLE IF NOT EXISTS project_settings (
|
|
7
|
+
project_id INTEGER PRIMARY KEY,
|
|
8
|
+
base_model TEXT,
|
|
9
|
+
plan_model TEXT,
|
|
10
|
+
build_model TEXT,
|
|
11
|
+
plugins TEXT,
|
|
12
|
+
base_branches TEXT,
|
|
13
|
+
created_at INTEGER NOT NULL,
|
|
14
|
+
updated_at INTEGER NOT NULL
|
|
15
|
+
);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
-- Global (bot-wide) settings: plan/build models, OpenCode plugins, base
|
|
2
|
+
-- branches, OCR languages, plus the provider registry. Replaces the LLM_*,
|
|
3
|
+
-- OPENCODE_PLUGINS, BASE_BRANCHES and ATTACHMENT_OCR_LANG env vars. The
|
|
4
|
+
-- imported_legacy column originally here was dropped by 0009.
|
|
5
|
+
CREATE TABLE IF NOT EXISTS global_settings (
|
|
6
|
+
id INTEGER PRIMARY KEY CHECK (id = 1),
|
|
7
|
+
plan_model TEXT,
|
|
8
|
+
build_model TEXT,
|
|
9
|
+
plugins TEXT,
|
|
10
|
+
base_branches TEXT NOT NULL DEFAULT 'main,dev',
|
|
11
|
+
ocr_langs TEXT NOT NULL DEFAULT 'eng',
|
|
12
|
+
imported_legacy INTEGER NOT NULL DEFAULT 0,
|
|
13
|
+
created_at INTEGER NOT NULL,
|
|
14
|
+
updated_at INTEGER NOT NULL
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
CREATE TABLE IF NOT EXISTS global_providers (
|
|
18
|
+
id TEXT PRIMARY KEY,
|
|
19
|
+
name TEXT NOT NULL,
|
|
20
|
+
npm TEXT NOT NULL,
|
|
21
|
+
api_url TEXT,
|
|
22
|
+
env_var TEXT,
|
|
23
|
+
api_key TEXT NOT NULL,
|
|
24
|
+
base_url TEXT,
|
|
25
|
+
models TEXT NOT NULL,
|
|
26
|
+
enabled INTEGER NOT NULL,
|
|
27
|
+
source TEXT NOT NULL,
|
|
28
|
+
created_at INTEGER NOT NULL,
|
|
29
|
+
updated_at INTEGER NOT NULL
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
-- baseModel is gone: plan/build are the source of truth. SQLite 3.35+ supports
|
|
33
|
+
-- DROP COLUMN; Node 22's bundled SQLite qualifies.
|
|
34
|
+
ALTER TABLE project_settings DROP COLUMN base_model;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
-- Model variant selection (global + per-project). A variant is a named option
|
|
2
|
+
-- set opencode applies to the model (e.g. reasoning effort: "high", "max").
|
|
3
|
+
-- Empty/NULL means "inherit" (project) or "opencode default" (global). opencode
|
|
4
|
+
-- receives it via `opencode run --variant <name>`.
|
|
5
|
+
ALTER TABLE global_settings ADD COLUMN plan_variant TEXT NOT NULL DEFAULT '';
|
|
6
|
+
ALTER TABLE global_settings ADD COLUMN build_variant TEXT NOT NULL DEFAULT '';
|
|
7
|
+
ALTER TABLE project_settings ADD COLUMN plan_variant TEXT;
|
|
8
|
+
ALTER TABLE project_settings ADD COLUMN build_variant TEXT;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
-- Persisted container/run error logs. One row per final run failure (all
|
|
2
|
+
-- phases: attachment, prepare/clone/sync, auth-write, run, push, MR, or an
|
|
3
|
+
-- unexpected runner fault). Bounded by ERROR_LOG_RETENTION_DAYS at startup +
|
|
4
|
+
-- a daily sweep. Bodies are redacted and capped by the store before insert.
|
|
5
|
+
CREATE TABLE IF NOT EXISTS container_error_logs (
|
|
6
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
7
|
+
task_seq INTEGER,
|
|
8
|
+
work_item_id INTEGER NOT NULL,
|
|
9
|
+
work_item_iid INTEGER NOT NULL,
|
|
10
|
+
project_id INTEGER NOT NULL,
|
|
11
|
+
mode TEXT NOT NULL,
|
|
12
|
+
phase TEXT NOT NULL,
|
|
13
|
+
kind TEXT NOT NULL,
|
|
14
|
+
exit_code INTEGER,
|
|
15
|
+
message TEXT NOT NULL,
|
|
16
|
+
logs TEXT NOT NULL DEFAULT '',
|
|
17
|
+
truncated INTEGER NOT NULL DEFAULT 0,
|
|
18
|
+
created_at INTEGER NOT NULL
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
CREATE INDEX IF NOT EXISTS idx_container_error_logs_created ON container_error_logs(created_at);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
-- Directed cross-project access grants for the internal devbot-gitlab MCP.
|
|
2
|
+
-- A row (source, target) means "source's runs may read target's GitLab data"
|
|
3
|
+
-- and, via sync_project, clone/fetch target's code into the run volume.
|
|
4
|
+
-- Direction matters: A->B does not imply B->A. Both projects must already be
|
|
5
|
+
-- enrolled (project_tokens row); that invariant is enforced at grant and read
|
|
6
|
+
-- time in the store/routes, not by a DB constraint (project_tokens is a
|
|
7
|
+
-- separate table and SQLite can't FK across the enrollment lifecycle cleanly).
|
|
8
|
+
CREATE TABLE IF NOT EXISTS project_access_grants (
|
|
9
|
+
source_project_id INTEGER NOT NULL,
|
|
10
|
+
target_project_id INTEGER NOT NULL,
|
|
11
|
+
created_at INTEGER NOT NULL,
|
|
12
|
+
updated_at INTEGER NOT NULL,
|
|
13
|
+
PRIMARY KEY (source_project_id, target_project_id)
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
CREATE INDEX IF NOT EXISTS idx_access_grants_target ON project_access_grants(target_project_id);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
-- Record the exact model + variant a failed run used, so the WebUI error-log
|
|
2
|
+
-- table can show "provider/model (variant)" without re-resolving settings that
|
|
3
|
+
-- may have changed since the run. Empty string = no model resolved (pre-prepare
|
|
4
|
+
-- phases such as attachment rejection, or an unexpected runner fault).
|
|
5
|
+
ALTER TABLE container_error_logs ADD COLUMN model TEXT NOT NULL DEFAULT '';
|
|
6
|
+
ALTER TABLE container_error_logs ADD COLUMN variant TEXT NOT NULL DEFAULT '';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
-- Record the work item title alongside the iid so the WebUI error-log table can
|
|
2
|
+
-- show the same "Work item" cell as Running tasks (#iid title / project path)
|
|
3
|
+
-- without a per-row GitLab fetch or re-reading the queue payload (the row may
|
|
4
|
+
-- outlive the task). Empty string = unknown (pre-title callers, old rows).
|
|
5
|
+
ALTER TABLE container_error_logs ADD COLUMN work_item_title TEXT NOT NULL DEFAULT '';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
-- User-requested cancellation of an in-flight (queued/running) task. Set by
|
|
2
|
+
-- /stop (work-item scope) or the WebUI Stop button (task scope); read by the
|
|
3
|
+
-- runner at phase boundaries to unwind as {kind:"cancelled"} instead of an
|
|
4
|
+
-- error. Rows are deleted on completion, so a persisted 1 only survives a
|
|
5
|
+
-- crash mid-run — lifecycle purgeCancelled() drops those before replay.
|
|
6
|
+
ALTER TABLE pending_tasks ADD COLUMN cancel_requested INTEGER NOT NULL DEFAULT 0;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
-- Builder image selection (global + per-project). The podman image used for
|
|
2
|
+
-- every container spawned for a work item (clone/sync, run-files, peer sync,
|
|
3
|
+
-- push, and the opencode run). Empty/NULL means "inherit": a project inherits
|
|
4
|
+
-- the global value, which in turn falls back to the BUILDER_IMAGE env var.
|
|
5
|
+
ALTER TABLE global_settings ADD COLUMN builder_image TEXT NOT NULL DEFAULT '';
|
|
6
|
+
ALTER TABLE project_settings ADD COLUMN builder_image TEXT;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
-- Editable build-mode prompt templates (global + per-project). Empty/NULL means
|
|
2
|
+
-- "use the built-in default". A project value overrides the global value.
|
|
3
|
+
-- Placeholders are validated in the zod schemas, not here.
|
|
4
|
+
ALTER TABLE global_settings ADD COLUMN build_workflow TEXT NOT NULL DEFAULT '';
|
|
5
|
+
ALTER TABLE global_settings ADD COLUMN mr_description TEXT NOT NULL DEFAULT '';
|
|
6
|
+
ALTER TABLE project_settings ADD COLUMN build_workflow TEXT;
|
|
7
|
+
ALTER TABLE project_settings ADD COLUMN mr_description TEXT;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
-- Per-project trigger access rules.
|
|
2
|
+
--
|
|
3
|
+
-- The bot-wide policy is role based: a Developer+ project member who is also
|
|
4
|
+
-- the work item's author/assignee may trigger a full (plan + build) run. A
|
|
5
|
+
-- rule refines that default for one subject — a normalized project role
|
|
6
|
+
-- (none/read/write/admin/owner) or a specific forge user (numeric id) — with a
|
|
7
|
+
-- level of full, plan (plan-mode only) or denied (silently ignored).
|
|
8
|
+
--
|
|
9
|
+
-- Precedence: an exact user rule beats a role rule; the role-based baseline
|
|
10
|
+
-- applies when neither matches. Rules are read on every mention so changes
|
|
11
|
+
-- take effect immediately.
|
|
12
|
+
CREATE TABLE IF NOT EXISTS project_access_rules (
|
|
13
|
+
project_id INTEGER NOT NULL,
|
|
14
|
+
subject_type TEXT NOT NULL,
|
|
15
|
+
subject_id TEXT NOT NULL,
|
|
16
|
+
username TEXT NOT NULL DEFAULT '',
|
|
17
|
+
role TEXT NOT NULL DEFAULT '',
|
|
18
|
+
level TEXT NOT NULL,
|
|
19
|
+
created_at INTEGER NOT NULL,
|
|
20
|
+
updated_at INTEGER NOT NULL,
|
|
21
|
+
PRIMARY KEY (project_id, subject_type, subject_id)
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
CREATE INDEX IF NOT EXISTS idx_project_access_rules_project ON project_access_rules(project_id);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
-- Configurable baseline trigger policy (global + per-project).
|
|
2
|
+
--
|
|
3
|
+
-- The baseline gate has two conditions, each resolved project -> global ->
|
|
4
|
+
-- default and overridable per project:
|
|
5
|
+
--
|
|
6
|
+
-- 1. require_author_or_assignee (default 1): the actor must be the work
|
|
7
|
+
-- item's author or assignee.
|
|
8
|
+
-- 2. min_role (default 'write'): the actor's normalized project permission
|
|
9
|
+
-- must be at least this role (none < read < write < admin < owner).
|
|
10
|
+
--
|
|
11
|
+
-- Per-project min_role is NULL/'' = inherit the global value. Per-project
|
|
12
|
+
-- require_author_or_assignee is TEXT: NULL/'' = inherit, else 'true'/'false'
|
|
13
|
+
-- (kept as text so it shares the settings' empty-means-inherit convention).
|
|
14
|
+
ALTER TABLE global_settings ADD COLUMN min_role TEXT NOT NULL DEFAULT 'write';
|
|
15
|
+
ALTER TABLE global_settings ADD COLUMN require_author_or_assignee INTEGER NOT NULL DEFAULT 1;
|
|
16
|
+
ALTER TABLE project_settings ADD COLUMN min_role TEXT;
|
|
17
|
+
ALTER TABLE project_settings ADD COLUMN require_author_or_assignee TEXT;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
-- Outbound attachment upload (work item #49).
|
|
2
|
+
--
|
|
3
|
+
-- The MCP tool surface must know the work item's project-internal NUMBER to
|
|
4
|
+
-- post the uploaded file's markdown as a comment (postComment takes `number`,
|
|
5
|
+
-- not the forge's global id). The MCP bearer already carries project_id +
|
|
6
|
+
-- work_item_id; add work_item_number so tools can address the work item.
|
|
7
|
+
-- 0 is an invalid work-item number, so the default is a safe "unknown" marker.
|
|
8
|
+
ALTER TABLE mcp_thread_tokens ADD COLUMN work_item_number INTEGER NOT NULL DEFAULT 0;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
-- Per-work-item work branch chosen via the /branch <name> mention token.
|
|
2
|
+
-- First-write-wins: set once on the work item's first naming, and NEVER cleared
|
|
3
|
+
-- by /reset or work-item close (unlike work_item_base_branch) — the branch name
|
|
4
|
+
-- is a durable property of the work item, so a reopened/reset item reuses the
|
|
5
|
+
-- same remote branch. Idempotent via IF NOT EXISTS.
|
|
6
|
+
|
|
7
|
+
CREATE TABLE IF NOT EXISTS work_item_branch (
|
|
8
|
+
work_item_id INTEGER PRIMARY KEY,
|
|
9
|
+
branch TEXT NOT NULL,
|
|
10
|
+
created_at INTEGER NOT NULL
|
|
11
|
+
);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
-- Configurable auto-push and auto-MR (work item #53).
|
|
2
|
+
--
|
|
3
|
+
-- A build run used to always push the work-item branch and open/update the
|
|
4
|
+
-- merge request. Both steps are now opt-in, configured globally with a
|
|
5
|
+
-- per-project override, and DISABLED BY DEFAULT:
|
|
6
|
+
--
|
|
7
|
+
-- auto_push (global INTEGER, default 0) — push the branch after a build.
|
|
8
|
+
-- auto_mr (global INTEGER, default 0) — create/update the MR. Requires
|
|
9
|
+
-- auto_push: an MR needs a branch.
|
|
10
|
+
--
|
|
11
|
+
-- Per-project values are TEXT following the settings' empty-means-inherit
|
|
12
|
+
-- convention: NULL/'' = inherit the global value, else 'true'/'false'.
|
|
13
|
+
-- The /push and /mr mention tokens are per-run overrides that turn the steps on
|
|
14
|
+
-- even when the stored settings are off.
|
|
15
|
+
ALTER TABLE global_settings ADD COLUMN auto_push INTEGER NOT NULL DEFAULT 0;
|
|
16
|
+
ALTER TABLE global_settings ADD COLUMN auto_mr INTEGER NOT NULL DEFAULT 0;
|
|
17
|
+
ALTER TABLE project_settings ADD COLUMN auto_push TEXT;
|
|
18
|
+
ALTER TABLE project_settings ADD COLUMN auto_mr TEXT;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
-- Outbound webhooks (work item #50).
|
|
2
|
+
--
|
|
3
|
+
-- DevBot emits signed JSON events to admin-configured URLs when a run reaches a
|
|
4
|
+
-- terminal state (run.succeeded / run.failed / run.cancelled) or a change
|
|
5
|
+
-- request is created or refreshed (mr.created / mr.updated). This is the mirror
|
|
6
|
+
-- image of the inbound forge-webhook receiver.
|
|
7
|
+
--
|
|
8
|
+
-- outbound_webhooks: one row per endpoint, keyed by (project_id, name). Global
|
|
9
|
+
-- endpoints reuse the sentinel project_id 0 (GLOBAL_SCOPE_ID), exactly like
|
|
10
|
+
-- global MCP servers. `secret` is encrypted at rest with SESSION_KEY (see
|
|
11
|
+
-- crypto-util.ts); `events` and `headers` are JSON.
|
|
12
|
+
--
|
|
13
|
+
-- outbound_webhook_deliveries: durable delivery queue + history. One row is
|
|
14
|
+
-- inserted per matching endpoint at emit time; a worker claims due rows
|
|
15
|
+
-- (pending -> delivering) and settles them. A failed delivery is re-queued with
|
|
16
|
+
-- a backoff until attempts reach WEBHOOK_RETRY_MAX, then marked failed.
|
|
17
|
+
CREATE TABLE IF NOT EXISTS outbound_webhooks (
|
|
18
|
+
project_id INTEGER NOT NULL,
|
|
19
|
+
name TEXT NOT NULL,
|
|
20
|
+
url TEXT NOT NULL,
|
|
21
|
+
events TEXT NOT NULL,
|
|
22
|
+
headers TEXT NOT NULL DEFAULT '{}',
|
|
23
|
+
enabled INTEGER NOT NULL DEFAULT 1,
|
|
24
|
+
secret TEXT NOT NULL,
|
|
25
|
+
created_at INTEGER NOT NULL,
|
|
26
|
+
updated_at INTEGER NOT NULL,
|
|
27
|
+
PRIMARY KEY (project_id, name)
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
CREATE TABLE IF NOT EXISTS outbound_webhook_deliveries (
|
|
31
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
32
|
+
project_id INTEGER NOT NULL,
|
|
33
|
+
webhook_name TEXT NOT NULL,
|
|
34
|
+
event TEXT NOT NULL,
|
|
35
|
+
payload TEXT NOT NULL,
|
|
36
|
+
status TEXT NOT NULL DEFAULT 'pending',
|
|
37
|
+
attempts INTEGER NOT NULL DEFAULT 0,
|
|
38
|
+
next_attempt_at INTEGER NOT NULL,
|
|
39
|
+
response_status INTEGER,
|
|
40
|
+
response_body TEXT NOT NULL DEFAULT '',
|
|
41
|
+
last_error TEXT NOT NULL DEFAULT '',
|
|
42
|
+
created_at INTEGER NOT NULL,
|
|
43
|
+
updated_at INTEGER NOT NULL
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
CREATE INDEX IF NOT EXISTS idx_outbound_deliveries_due ON outbound_webhook_deliveries(status, next_attempt_at);
|
|
47
|
+
CREATE INDEX IF NOT EXISTS idx_outbound_deliveries_webhook ON outbound_webhook_deliveries(project_id, webhook_name);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
-- Runtime settings (ENV -> WebUI), work item #55.
|
|
2
|
+
--
|
|
3
|
+
-- Operational knobs that used to be env-only (timeouts, queue caps, attachment
|
|
4
|
+
-- limits, volume GC, project sync, dev containers, git submodules) are now
|
|
5
|
+
-- editable in the WebUI. They are stored as a single JSON blob of string values
|
|
6
|
+
-- following the empty-means-inherit convention: "" = fall back to the env var,
|
|
7
|
+
-- which itself falls back to the built-in default. The legacy env vars remain in
|
|
8
|
+
-- EnvSchema as the fallback layer.
|
|
9
|
+
--
|
|
10
|
+
-- DRY_RUN and LOG_LEVEL deliberately stay env-only (test/CI gate and per-process
|
|
11
|
+
-- logging respectively) and are not part of this blob.
|
|
12
|
+
ALTER TABLE global_settings ADD COLUMN runtime TEXT NOT NULL DEFAULT '';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
-- Opt-in branch conflict auto-fix (work item #56).
|
|
2
|
+
--
|
|
3
|
+
-- When enabled, a build run checks whether the work branch merges cleanly into
|
|
4
|
+
-- its MR target before creating/updating the merge request. If it does not, a
|
|
5
|
+
-- direct OpenCode build run resolves the conflicts (rebase-first, merge
|
|
6
|
+
-- fallback) and the MR is opened only once the branch is conflict-free. On
|
|
7
|
+
-- failure the branch is pushed as-is and the MR is skipped with an actionable
|
|
8
|
+
-- note.
|
|
9
|
+
--
|
|
10
|
+
-- Disabled by default: with the setting off there is no check, no extra
|
|
11
|
+
-- container, and no behavior change.
|
|
12
|
+
--
|
|
13
|
+
-- Global value is INTEGER (0/1); per-project values are TEXT following the
|
|
14
|
+
-- settings' empty-means-inherit convention: NULL/'' = inherit global, else
|
|
15
|
+
-- 'true'/'false'.
|
|
16
|
+
ALTER TABLE global_settings ADD COLUMN auto_resolve_conflicts INTEGER NOT NULL DEFAULT 0;
|
|
17
|
+
ALTER TABLE project_settings ADD COLUMN auto_resolve_conflicts TEXT;
|