@humwick/server 0.130.1 → 0.130.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (811) hide show
  1. package/README.md +5 -0
  2. package/bundled/prompts/manifest.json +1 -0
  3. package/bundled/prompts/task.hydration.md +1 -1
  4. package/bundled/roles/builder.md +1 -1
  5. package/docs/guides/sub-coordinators.md +12 -5
  6. package/docs/guides/tools-administration.md +4 -0
  7. package/docs/guides/tools-coordination.md +2 -0
  8. package/docs/guides/tools-tasks.md +8 -0
  9. package/docs/guides/workflows.md +74 -0
  10. package/docs/openapi.json +486 -4
  11. package/package.json +10 -18
  12. package/public/assets/{MessageBubble-BWpoBjl4.js → MessageBubble-Bq9kr21N.js} +2 -2
  13. package/public/assets/{PlanGraphPanel-C0auck3n.js → PlanGraphPanel-Dqiroy06.js} +2 -2
  14. package/public/assets/{TraceView-DBnOx7AQ.js → TraceView-DYU962-H.js} +2 -2
  15. package/public/assets/{VaultDecisionCard-0kp2oNBC.js → VaultDecisionCard-DhPfzioE.js} +2 -2
  16. package/public/assets/{activity-yLztXEBt.js → activity-DzCcQTee.js} +2 -2
  17. package/public/assets/{agent-lineage-BbJDR1dW.js → agent-lineage-SgDt9i3T.js} +2 -2
  18. package/public/assets/agent-liveness-Bq-s73jW.js +2 -0
  19. package/public/assets/{agent-name-CTZBrSD9.js → agent-name-CcY3Aijy.js} +2 -2
  20. package/public/assets/agent-profiles-cxtRBn6O.js +2 -0
  21. package/public/assets/{agent-project-badge-9TqzUUYE.js → agent-project-badge-DGYbIhaI.js} +2 -2
  22. package/public/assets/{agent-tools-D4n40pn8.js → agent-tools-DHbftV0N.js} +2 -2
  23. package/public/assets/{agent-type-icon-D6FUarOf.js → agent-type-icon-CY113sp-.js} +2 -2
  24. package/public/assets/{agents-BYDslkJc.js → agents-BPzY7IlQ.js} +2 -2
  25. package/public/assets/{analytics-B-XSbEMC.js → analytics-DENFPv_a.js} +2 -2
  26. package/public/assets/{artifact-viewer-DdWIfV6M.js → artifact-viewer-KRvSc7sl.js} +2 -2
  27. package/public/assets/{artifacts-DPN1q4pA.js → artifacts-C9gSmL3s.js} +2 -2
  28. package/public/assets/{artifacts-oBOqks-2.js → artifacts-DT-HkI5O.js} +2 -2
  29. package/public/assets/{automation-4KcRFXEu.js → automation-BsmjQhKD.js} +2 -2
  30. package/public/assets/{backlog-Cw9xPTCF.js → backlog-8NYH_62t.js} +2 -2
  31. package/public/assets/{busy-health-CTu32MZt.js → busy-health-D3hwvYb4.js} +2 -2
  32. package/public/assets/{channels-BiXzg1G9.js → channels-DCJ5WL7O.js} +2 -2
  33. package/public/assets/{chat-Ctk2qwvA.js → chat-DAIl357U.js} +3 -3
  34. package/public/assets/{code-preview-Bm1wWqAp.js → code-preview-CzrZfr9U.js} +2 -2
  35. package/public/assets/{connectors-C36ax4Vw.js → connectors-xTxtlyou.js} +2 -2
  36. package/public/assets/{cosmos-Jj9LK2Wf.js → cosmos-BpebFLK2.js} +2 -2
  37. package/public/assets/{crate-agent-H6S7-B9T.js → crate-agent-BHvI5wXC.js} +2 -2
  38. package/public/assets/{dependency-graph-Cd1E23wa.js → dependency-graph-DGT0o3wJ.js} +2 -2
  39. package/public/assets/{deploys-Bwfq146q.js → deploys-hqWOHSHE.js} +2 -2
  40. package/public/assets/{display-CfO7rTuF.js → display-CDeH4I8T.js} +2 -2
  41. package/public/assets/{files-DhhZI2Ih.js → files-BTeGVmTg.js} +2 -2
  42. package/public/assets/{fleet-B_rFEbnL.js → fleet-DgXtNgCa.js} +2 -2
  43. package/public/assets/{fleet-metrics-BkHP-P3R.js → fleet-metrics-BHEt5yc_.js} +2 -2
  44. package/public/assets/{formatted-body-Cm1RrzmN.js → formatted-body-MLtodyPp.js} +3 -3
  45. package/public/assets/{formatted-body-impl-DQiOuOD1.js → formatted-body-impl-CAe664Z8.js} +2 -2
  46. package/public/assets/{host-providers-dialog-CHqwXTov.js → host-providers-dialog-mapF4Fj9.js} +2 -2
  47. package/public/assets/index-CqqgOI5R.js +15 -0
  48. package/public/assets/index-MYAIwYTX.css +2 -0
  49. package/public/assets/{insights-fH1EL-qZ.js → insights-DNyf7IzF.js} +2 -2
  50. package/public/assets/{integrations-C5Oix6ng.js → integrations-DlYOHq7T.js} +2 -2
  51. package/public/assets/{issue-ref-chip-ODyondIa.js → issue-ref-chip-CeWBNWn7.js} +2 -2
  52. package/public/assets/{log-viewer-Cvfy6PW7.js → log-viewer-Cib8nqdE.js} +2 -2
  53. package/public/assets/{maintenance-D8CDH5wZ.js → maintenance-DSn1cPm7.js} +2 -2
  54. package/public/assets/{managed-agents-egllbpij.js → managed-agents-C3CkM81m.js} +2 -2
  55. package/public/assets/{markdown-preview-CYSFgVgK.js → markdown-preview-W4VQQPAv.js} +3 -3
  56. package/public/assets/{markdown-preview-impl-BteVIjX4.js → markdown-preview-impl-CMsTdhjq.js} +2 -2
  57. package/public/assets/{memory-C8WmXsyr.js → memory-BV17qtO4.js} +2 -2
  58. package/public/assets/{messages-BzQdqlO6.js → messages-Bm_1AqSA.js} +2 -2
  59. package/public/assets/{orchestrators-B1HxzkNw.js → orchestrators-Dg-vfP09.js} +2 -2
  60. package/public/assets/{overview-DCUnI4Z7.js → overview-DcYCrvlr.js} +2 -2
  61. package/public/assets/{pairs-ftCd2XcD.js → pairs-8o9nuG3V.js} +2 -2
  62. package/public/assets/{profile-icon-B2zH8DMH.js → profile-icon-BsRyBMea.js} +2 -2
  63. package/public/assets/project-profile-instructions-DETKFn_E.js +2 -0
  64. package/public/assets/projects-M_m6AHws.js +2 -0
  65. package/public/assets/{prompt-settings-Bftq9czX.js → prompt-settings-C_mNCgeL.js} +2 -2
  66. package/public/assets/provider-display-BEeLXC_D.js +2 -0
  67. package/public/assets/{registry-DWCU5c8q.js → registry-DDHHHE5N.js} +2 -2
  68. package/public/assets/run-card-Dt4I4jaP.js +2 -0
  69. package/public/assets/scroll-text-BKXS1ahr.js +2 -0
  70. package/public/assets/{secrets-C7GIUATz.js → secrets-BkVwxI5O.js} +2 -2
  71. package/public/assets/{service-access-settings-C3aujqTG.js → service-access-settings-Crq-6a-B.js} +2 -2
  72. package/public/assets/{settings-C6sZ9eBa.js → settings-CYcavMFu.js} +2 -2
  73. package/public/assets/shipping-H6gzEeZB.js +2 -0
  74. package/public/assets/{stats-V9Z-GxUd.js → stats-BJVeWkpV.js} +2 -2
  75. package/public/assets/{status-dot-CVv0iGHL.js → status-dot-BcHyw1Vw.js} +2 -2
  76. package/public/assets/store-DKPDIZBe.js +9 -0
  77. package/public/assets/{tasks-CXU75HRF.js → tasks-qJjlQPpx.js} +2 -2
  78. package/public/assets/{teams-BPf976zb.js → teams-Cd5Sk1uX.js} +2 -2
  79. package/public/assets/{terminal-viewer-DE9BOe-8.js → terminal-viewer-CpY5_m7W.js} +3 -3
  80. package/public/assets/{terminal-viewer-impl-D04pjmGh.js → terminal-viewer-impl-DI_2llFR.js} +2 -2
  81. package/public/assets/token-estimate-Co-Jdphh.js +2 -0
  82. package/public/assets/{use-agent-terminal-B1yR456R.js → use-agent-terminal-0yJA_buM.js} +2 -2
  83. package/public/assets/{use-decisions-D-S4tpDf.js → use-decisions-uJXHf34W.js} +2 -2
  84. package/public/assets/use-project-list-CpWl6eHQ.js +2 -0
  85. package/public/assets/{use-selectors-CnrAk2YP.js → use-selectors-BdxBW8mL.js} +2 -2
  86. package/public/assets/{user-avatar-nBFIcR4M.js → user-avatar-3IndfpOc.js} +2 -2
  87. package/public/assets/versioned-prompt-editor-CIVg7XB1.js +8 -0
  88. package/public/assets/{work-queue-TCjJxeT-.js → work-queue-B9rnLwHZ.js} +2 -2
  89. package/public/assets/{workflow-marker-Cf3Hf2fN.js → workflow-marker-X8wxyhzC.js} +2 -2
  90. package/public/assets/{workflows-CXQX20Qj.js → workflows-o5YyMFW7.js} +2 -2
  91. package/public/assets/{workspaces-qSYzKYMA.js → workspaces-CzEGoAng.js} +2 -2
  92. package/public/cosmos.html +4 -4
  93. package/public/index.html +31 -29
  94. package/runner/plugins/claude/.claude-plugin/plugin.json +1 -1
  95. package/runner/plugins/claude/hooks/gate-run-guard.provisioned.mjs +31 -1
  96. package/runner/src/adapters/claude-effort.ts +2 -4
  97. package/runner/src/adapters/claude-headless.ts +1 -1
  98. package/runner/src/adapters/claude-launch-exit.ts +26 -0
  99. package/runner/src/adapters/claude-session-probe.ts +1 -1
  100. package/runner/src/adapters/claude-tmux.ts +38 -10
  101. package/runner/src/adapters/claude.ts +28 -75
  102. package/runner/src/adapters/codex-launch-config.ts +4 -5
  103. package/runner/src/adapters/codex.ts +1 -1
  104. package/runner/src/adapters/opencode-provider.ts +7 -22
  105. package/runner/src/adapters/opencode.ts +4 -4
  106. package/runner/src/adapters/provider-quota-harvest.ts +20 -71
  107. package/runner/src/agent-runner/credentials.ts +42 -12
  108. package/runner/src/agent-runner/inbox.ts +27 -0
  109. package/runner/src/agent-runner/lifecycle-milestones.ts +2 -4
  110. package/runner/src/agent-runner/liveness-exchange.ts +104 -0
  111. package/runner/src/bin/claude.ts +4 -0
  112. package/runner/src/bin/codex.ts +4 -0
  113. package/runner/src/bin/opencode.ts +4 -0
  114. package/runner/src/claude-system-prompt.ts +49 -0
  115. package/runner/src/index.ts +5 -2
  116. package/runner/src/launch-assembly.ts +14 -10
  117. package/runner/src/profile-home.ts +1 -1
  118. package/runner/src/project-instructions.ts +2 -2
  119. package/runner/src/provider-command.ts +18 -0
  120. package/runner/src/provider-setup.ts +35 -0
  121. package/runner/src/providers.ts +2 -1
  122. package/runner/src/runner-core.ts +32 -38
  123. package/runner/src/runner-helpers.ts +0 -8
  124. package/runner/src/session-scratch.ts +6 -2
  125. package/runner/src/spawn-input.ts +2 -1
  126. package/runner/src/test-run-dedup.ts +59 -56
  127. package/runner/test-support/provisioning-context.ts +4 -2
  128. package/runner/test-support/runner-harness.ts +2 -1
  129. package/scripts/cd-config.ts +8 -0
  130. package/scripts/gate-run-lease.ts +10 -7
  131. package/scripts/gate.sh +5 -1
  132. package/scripts/steward-policy-cleanup.ts +2 -2
  133. package/src/agent-authz.ts +2 -2
  134. package/src/agent-drive-arbiter.ts +3 -8
  135. package/src/agent-exit-cleanup-async.ts +2 -2
  136. package/src/agent-exit-cleanup.ts +23 -19
  137. package/src/agent-lifecycle-events.ts +112 -85
  138. package/src/agent-ref.ts +3 -2
  139. package/src/agent-status-events.ts +43 -14
  140. package/src/auth/password.ts +4 -3
  141. package/src/auth/session-refresh.ts +1 -1
  142. package/src/auth/session.test-fixture.ts +2 -2
  143. package/src/auth/session.ts +7 -7
  144. package/src/automations/crud.ts +8 -81
  145. package/src/automations/dispatch.ts +33 -58
  146. package/src/automations/index.ts +1 -1
  147. package/src/automations/persistence.ts +65 -0
  148. package/src/automations/precheck.ts +18 -16
  149. package/src/automations/read-async.ts +11 -0
  150. package/src/automations/reconcile.ts +30 -39
  151. package/src/automations/storage.ts +33 -10
  152. package/src/automations/write-async.ts +33 -0
  153. package/src/branch-land-notice.ts +93 -0
  154. package/src/branch-landed.ts +31 -98
  155. package/src/bus.ts +40 -39
  156. package/src/cd-deploy-notify.ts +32 -4
  157. package/src/cd-host-lag-notify.ts +7 -6
  158. package/src/ci/incidents.ts +2 -2
  159. package/src/ci/monitor.ts +5 -8
  160. package/src/ci/notifications.ts +4 -4
  161. package/src/ci/root-missing.ts +4 -9
  162. package/src/ci/transition-notify.ts +12 -44
  163. package/src/claude-app/oauth-http.ts +3 -3
  164. package/src/cli/cd-pauses.ts +19 -0
  165. package/src/cli/orchestrator.ts +1 -1
  166. package/src/cli/state.ts +2 -19
  167. package/src/cli/task-edit.ts +22 -0
  168. package/src/cli/task.ts +3 -1
  169. package/src/cli/workflow.ts +19 -4
  170. package/src/commands-db.ts +7 -7
  171. package/src/commands-write.ts +8 -0
  172. package/src/compaction-watch.ts +10 -8
  173. package/src/config-store-write.ts +13 -1
  174. package/src/config-store.ts +25 -14
  175. package/src/config.ts +4 -11
  176. package/src/connectors.ts +10 -8
  177. package/src/context-advisory.ts +22 -21
  178. package/src/db/activity-async.ts +6 -1
  179. package/src/db/activity-write-ops.ts +12 -1
  180. package/src/db/activity.ts +1 -14
  181. package/src/db/agent-action-write.ts +36 -0
  182. package/src/db/agent-control-async.ts +9 -0
  183. package/src/db/agent-control-write.ts +49 -0
  184. package/src/db/agent-effort-observe.ts +22 -0
  185. package/src/db/agent-meta.ts +14 -3
  186. package/src/db/agent-search.ts +1 -15
  187. package/src/db/agents-async.ts +59 -9
  188. package/src/db/agents-write-ops.ts +12 -3
  189. package/src/db/agents.ts +95 -65
  190. package/src/db/auth-identities.ts +2 -2
  191. package/src/db/automation-read-ops.ts +11 -0
  192. package/src/db/automation-write-ops.ts +46 -0
  193. package/src/db/blackboard.ts +2 -2
  194. package/src/db/browser-session-write.ts +32 -0
  195. package/src/db/bus-outbox-write-ops.ts +3 -1
  196. package/src/db/checkout-refresh-schema.ts +47 -0
  197. package/src/db/checkout-refresh.ts +5 -5
  198. package/src/db/ci-incidents-async.ts +5 -5
  199. package/src/db/ci-incidents-write-ops.ts +2 -2
  200. package/src/db/command-agent-profile-backfill.ts +39 -0
  201. package/src/db/command-agent-profiles.ts +5 -1
  202. package/src/db/command-retention.ts +126 -0
  203. package/src/db/command-row.ts +10 -2
  204. package/src/db/commands-list-query.ts +2 -0
  205. package/src/db/commands-planner-stats.test-fixture.ts +8 -0
  206. package/src/db/commands-read-ops.ts +16 -0
  207. package/src/db/commands-spawn-read.ts +1 -1
  208. package/src/db/config-store-write-ops.ts +7 -2
  209. package/src/db/connection.ts +1 -182
  210. package/src/db/context-carry-write.ts +74 -0
  211. package/src/db/continuation-archives-async.ts +5 -0
  212. package/src/db/continuation-archives-write-ops.ts +7 -0
  213. package/src/db/continuations.ts +6 -6
  214. package/src/db/db-error-registry.ts +12 -0
  215. package/src/db/db-writer-worker.ts +8 -1
  216. package/src/db/deploy-events-async.ts +1 -0
  217. package/src/db/deploy-events-read-ops.ts +2 -1
  218. package/src/db/deploy-events.ts +35 -4
  219. package/src/db/gateway.ts +26 -133
  220. package/src/db/history-retention-ops.ts +13 -0
  221. package/src/db/hosts-registration.ts +10 -2
  222. package/src/db/hosts.ts +9 -6
  223. package/src/db/inbox-async.ts +2 -2
  224. package/src/db/inbox-read-ops.ts +1 -1
  225. package/src/db/inbox.ts +9 -17
  226. package/src/db/index.ts +2 -0
  227. package/src/db/integrations-async.ts +8 -0
  228. package/src/db/integrations-ops.ts +15 -0
  229. package/src/db/integrations.ts +15 -21
  230. package/src/db/issue-associations.ts +2 -2
  231. package/src/db/issue-lifecycle.ts +3 -4
  232. package/src/db/issue-refs-async.ts +23 -0
  233. package/src/db/issue-refs-read-ops.ts +6 -0
  234. package/src/db/issue-refs-write-ops.ts +29 -0
  235. package/src/db/issue-refs.ts +15 -16
  236. package/src/db/kernel-event-log-schema.ts +2 -0
  237. package/src/db/land-boundaries.ts +51 -5
  238. package/src/db/land-gate-attestations.ts +2 -2
  239. package/src/db/landing-receipts.ts +2 -2
  240. package/src/db/lifecycle-context-write.ts +5 -0
  241. package/src/db/lifecycle-tail-async.ts +76 -0
  242. package/src/db/lifecycle-tail-write-ops.ts +62 -0
  243. package/src/db/lifecycle-write-window.ts +2 -1
  244. package/src/db/lineage-pair-dedupe-sql.ts +3 -3
  245. package/src/db/long-running-work.ts +2 -2
  246. package/src/db/main-connection-mode.ts +11 -0
  247. package/src/db/main-connection-writes.ts +41 -2
  248. package/src/db/maintenance-job-reconcile.ts +61 -0
  249. package/src/db/maintenance-job-runs-async.ts +14 -0
  250. package/src/db/maintenance-job-write-ops.ts +9 -0
  251. package/src/db/maintenance-pauses.ts +2 -2
  252. package/src/db/mappers.ts +2 -14
  253. package/src/db/merge-lease.ts +1 -15
  254. package/src/db/message-send.ts +4 -0
  255. package/src/db/messages.ts +31 -25
  256. package/src/db/migrations.ts +25 -16
  257. package/src/db/notification-write-ops.ts +19 -0
  258. package/src/db/operator-answer-write.ts +19 -0
  259. package/src/db/orchestrators.ts +14 -76
  260. package/src/db/pairs-async.ts +22 -1
  261. package/src/db/pairs-write-ops.ts +8 -3
  262. package/src/db/pairs.ts +42 -61
  263. package/src/db/plan-dispatch-schema.ts +5 -1
  264. package/src/db/plan-ready-notices.ts +43 -0
  265. package/src/db/plan-tools-include-migration.ts +36 -0
  266. package/src/db/plans-write-ops.ts +2 -0
  267. package/src/db/presence-buffer.ts +5 -0
  268. package/src/db/presence-loop.ts +18 -23
  269. package/src/db/presence-write.ts +0 -6
  270. package/src/db/project-entries-async.ts +14 -0
  271. package/src/db/project-entries-read-ops.ts +5 -1
  272. package/src/db/project-entries-write-ops.ts +8 -0
  273. package/src/db/project-entries.ts +15 -12
  274. package/src/db/project-journal.ts +2 -2
  275. package/src/db/project-profile-instructions.ts +50 -0
  276. package/src/db/project-trust-approvals.ts +2 -2
  277. package/src/db/prompt-templates.ts +4 -4
  278. package/src/db/prompt-versions.ts +9 -2
  279. package/src/db/provider-config-history.ts +8 -3
  280. package/src/db/provider-model-seed.ts +34 -0
  281. package/src/db/read-op-marshaling-fixtures.ts +23 -0
  282. package/src/db/read-ops.ts +8 -0
  283. package/src/db/retention.ts +13 -2
  284. package/src/db/review-publish-write.ts +8 -0
  285. package/src/db/routing-policy.ts +2 -3
  286. package/src/db/runtime-admin-async.ts +19 -0
  287. package/src/db/runtime-admin-write-ops.ts +36 -0
  288. package/src/db/runtime-tail-async.ts +288 -0
  289. package/src/db/runtime-tail-write-ops.ts +97 -0
  290. package/src/db/schema.ts +13 -4
  291. package/src/db/spawn-budget.ts +5 -0
  292. package/src/db/spawn-delegation-state.ts +11 -4
  293. package/src/db/spawn-delegation.ts +1 -11
  294. package/src/db/sql-audit-indexes.ts +3 -0
  295. package/src/db/stats-async.ts +9 -6
  296. package/src/db/task-entity.ts +28 -6
  297. package/src/db/task-list.ts +3 -1
  298. package/src/db/tasks.ts +1 -17
  299. package/src/db/team-claim-policy.ts +60 -0
  300. package/src/db/teams-async.ts +4 -0
  301. package/src/db/teams-write-ops.ts +4 -0
  302. package/src/db/terminal-events.ts +15 -0
  303. package/src/db/timer-cutover-bodies.ts +292 -0
  304. package/src/db/timer-cutover-core.ts +37 -278
  305. package/src/db/timer-cutover-state.ts +40 -0
  306. package/src/db/timer-cutover-write-ops.ts +1 -40
  307. package/src/db/timer-ingress.ts +7 -1
  308. package/src/db/token-db-write-ops.ts +19 -0
  309. package/src/db/token-standing-async.ts +12 -0
  310. package/src/db/token-standing.ts +21 -20
  311. package/src/db/token-usage-retention.ts +33 -0
  312. package/src/db/token-usage-write-ops.ts +1 -1
  313. package/src/db/token-usage.ts +4 -1
  314. package/src/db/user-invites-async.ts +13 -0
  315. package/src/db/user-invites.ts +3 -3
  316. package/src/db/users.ts +14 -6
  317. package/src/db/workflow-contact.ts +1 -1
  318. package/src/db/workflow-task-read-ops.ts +30 -0
  319. package/src/db/workspaces.ts +8 -5
  320. package/src/db/write-ops.ts +37 -12
  321. package/src/db/writer-fault-seam.ts +2 -9
  322. package/src/db/writer-fault-test-ops.ts +18 -0
  323. package/src/db/writer-gateway.ts +58 -56
  324. package/src/dev.ts +8 -3
  325. package/src/dispatch-availability.ts +10 -6
  326. package/src/ephemeral/{landing-ingress-proof-worker.ts → landing-ingress-proof.test-fixture.ts} +4 -2
  327. package/src/event-loop-lag.ts +4 -2
  328. package/src/event-loop-yield.ts +2 -2
  329. package/src/events.ts +10 -8
  330. package/src/host/disk-alert.ts +121 -0
  331. package/src/host-provider-store.ts +5 -4
  332. package/src/hub-metrics-report.ts +5 -1
  333. package/src/hub-metrics.ts +38 -18
  334. package/src/injection-sweep-pacing.ts +6 -8
  335. package/src/land-gate-notifications.ts +11 -10
  336. package/src/land-gate-queue-progress.ts +3 -3
  337. package/src/land-settle-dispatch.ts +52 -92
  338. package/src/lifecycle-context-pressure.ts +11 -10
  339. package/src/lifecycle-manager.ts +107 -100
  340. package/src/maintenance/breaker.ts +18 -16
  341. package/src/maintenance/cd-watcher.ts +3 -3
  342. package/src/maintenance/checkout-refresh.ts +18 -1
  343. package/src/maintenance/critical-job-watchdog.ts +19 -20
  344. package/src/maintenance/events.ts +3 -3
  345. package/src/maintenance/history-retention-job.ts +30 -0
  346. package/src/maintenance/index.ts +1 -0
  347. package/src/maintenance/jobs.ts +32 -69
  348. package/src/maintenance/long-running-work.ts +3 -1
  349. package/src/maintenance/offline-agent-prune-job.ts +28 -0
  350. package/src/maintenance/orphaned-sessions.ts +5 -4
  351. package/src/maintenance/pauses.ts +4 -10
  352. package/src/maintenance/plan-ready-notice-job.ts +71 -0
  353. package/src/maintenance/scheduler.ts +98 -137
  354. package/src/maintenance/stalled-delivery-pager.ts +10 -9
  355. package/src/maintenance/teams.ts +19 -30
  356. package/src/maintenance/workspaces.ts +18 -28
  357. package/src/managed-policy-escalation.ts +7 -7
  358. package/src/managed-policy.ts +32 -28
  359. package/src/managed-provider-gate.ts +5 -4
  360. package/src/managed-spawn-reservation.ts +5 -4
  361. package/src/mcp/index.ts +12 -9
  362. package/src/mcp/output-descriptions.ts +8 -8
  363. package/src/mcp/presentation.ts +6 -5
  364. package/src/mcp/project-profile-instructions.ts +32 -0
  365. package/src/mcp/runtime-output.ts +6 -1
  366. package/src/mcp/self-care-visibility.ts +2 -2
  367. package/src/mcp/spawn-targets-matrix.ts +10 -1
  368. package/src/mcp/tool-groups.ts +4 -3
  369. package/src/mcp/tool-roles.ts +81 -0
  370. package/src/mcp/tools-spawn.ts +4 -3
  371. package/src/mcp/tools-workspace.ts +1 -1
  372. package/src/mcp-agent-action.ts +1 -2
  373. package/src/mcp-blackboard-tools.ts +6 -5
  374. package/src/mcp-decision-tools.ts +7 -7
  375. package/src/mcp-egress-tools.ts +10 -9
  376. package/src/mcp-issue-activity-tools.ts +2 -2
  377. package/src/mcp-issue-association-tools.ts +4 -4
  378. package/src/mcp-issue-ref-tools.ts +13 -12
  379. package/src/mcp-maintenance-tools.ts +2 -2
  380. package/src/mcp-merge-tools.ts +5 -5
  381. package/src/mcp-notification-subscription-tools.ts +14 -15
  382. package/src/mcp-output-levels.test-fixture.ts +1 -1
  383. package/src/mcp-profile-trust-tools.ts +5 -5
  384. package/src/mcp-project-journal-tools.ts +4 -12
  385. package/src/mcp-project-tools.ts +17 -18
  386. package/src/mcp-provider-catalog.ts +2 -2
  387. package/src/mcp-routing-policy-tools.ts +3 -2
  388. package/src/mcp-task-tools.ts +11 -5
  389. package/src/mcp-team-template-tools.ts +3 -3
  390. package/src/mcp-team-tools.ts +6 -6
  391. package/src/mcp-workflow-tools.ts +13 -4
  392. package/src/memory-area-injection.ts +13 -12
  393. package/src/memory-boundary-capture.ts +6 -6
  394. package/src/memory-injection.ts +45 -43
  395. package/src/merge-pause-maintenance.ts +5 -4
  396. package/src/notification-router.ts +44 -17
  397. package/src/notification-types.ts +2 -1
  398. package/src/notify.ts +5 -5
  399. package/src/observed-reset-refresh.ts +4 -4
  400. package/src/operator-alarm.ts +23 -11
  401. package/src/project-ingest.ts +6 -6
  402. package/src/project-instructions.ts +12 -1
  403. package/src/project-profile-instruction-text.ts +6 -0
  404. package/src/project-profile-instructions.ts +20 -0
  405. package/src/project-trust.ts +12 -11
  406. package/src/prompt-resolver.ts +3 -3
  407. package/src/provider-catalog-store.ts +3 -49
  408. package/src/provider-config-store.ts +12 -11
  409. package/src/provider-model-seed.ts +1 -18
  410. package/src/provider-quota-async.ts +5 -7
  411. package/src/provider-quota-config-store.ts +5 -4
  412. package/src/provider-secrets.test-fixture.ts +3 -3
  413. package/src/provider-timeline-event.ts +4 -7
  414. package/src/quota-band-delivery.ts +2 -2
  415. package/src/recipe-runner.ts +6 -5
  416. package/src/repo-config-source.ts +10 -4
  417. package/src/retention-config-store.ts +4 -3
  418. package/src/reviewer-pipeline.ts +11 -10
  419. package/src/routes/_route.ts +4 -4
  420. package/src/routes/_shared.ts +13 -12
  421. package/src/routes/agent-effort.ts +5 -5
  422. package/src/routes/agent-heartbeat-quota.ts +23 -0
  423. package/src/routes/agent-keep.ts +1 -1
  424. package/src/routes/agent-profiles.ts +6 -6
  425. package/src/routes/agent-reporting.ts +1 -1
  426. package/src/routes/agent-self-effort.ts +5 -5
  427. package/src/routes/agent-sessions.ts +24 -24
  428. package/src/routes/agents-spawn.ts +2 -2
  429. package/src/routes/agents.ts +19 -121
  430. package/src/routes/auth.ts +14 -15
  431. package/src/routes/authority-audit.ts +2 -2
  432. package/src/routes/automations.ts +6 -5
  433. package/src/routes/channel-binding-delete.ts +1 -1
  434. package/src/routes/channel-output.ts +3 -3
  435. package/src/routes/claude-api-budget.ts +5 -5
  436. package/src/routes/commands-listing.ts +5 -1
  437. package/src/routes/commands.ts +31 -29
  438. package/src/routes/context-resets.ts +2 -2
  439. package/src/routes/continuation-archives.ts +2 -2
  440. package/src/routes/coordinator-teams.ts +1 -1
  441. package/src/routes/decisions.ts +2 -2
  442. package/src/routes/host-secret-files.ts +1 -1
  443. package/src/routes/hosts.ts +11 -11
  444. package/src/routes/inbox.ts +3 -2
  445. package/src/routes/index.ts +12 -2
  446. package/src/routes/integrations.ts +32 -56
  447. package/src/routes/issue-activity.ts +2 -2
  448. package/src/routes/issue-associations.ts +4 -4
  449. package/src/routes/issue-refs.ts +9 -9
  450. package/src/routes/kernel-timers-operator.ts +1 -1
  451. package/src/routes/memory.ts +1 -1
  452. package/src/routes/merges.ts +11 -11
  453. package/src/routes/messages.ts +23 -17
  454. package/src/routes/orchestrator-bootstrap.ts +2 -2
  455. package/src/routes/orchestrator-host-registration.ts +4 -2
  456. package/src/routes/orchestrator-host-utilization.ts +5 -3
  457. package/src/routes/orchestrator-proxy.ts +4 -4
  458. package/src/routes/orchestrator.ts +28 -19
  459. package/src/routes/pairs.ts +8 -8
  460. package/src/routes/project-profile-instructions.ts +27 -0
  461. package/src/routes/project-trust.ts +3 -3
  462. package/src/routes/projects.ts +16 -16
  463. package/src/routes/prompt-templates.ts +12 -12
  464. package/src/routes/provider-config.ts +6 -6
  465. package/src/routes/provider-quota-config.ts +2 -2
  466. package/src/routes/provider-quotas.ts +10 -10
  467. package/src/routes/run-command.ts +1 -1
  468. package/src/routes/secrets-backup.ts +2 -2
  469. package/src/routes/secrets-import.ts +1 -1
  470. package/src/routes/secrets-vault.ts +7 -7
  471. package/src/routes/settings.ts +6 -6
  472. package/src/routes/shipping.ts +9 -1
  473. package/src/routes/spawn-policy.ts +8 -7
  474. package/src/routes/sse.ts +2 -2
  475. package/src/routes/stats.ts +6 -6
  476. package/src/routes/task-http.ts +15 -1
  477. package/src/routes/task-issues.ts +11 -26
  478. package/src/routes/tasks.ts +22 -53
  479. package/src/routes/team-templates.ts +12 -12
  480. package/src/routes/teams-config.ts +2 -2
  481. package/src/routes/teams.ts +10 -10
  482. package/src/routes/tokens.ts +30 -22
  483. package/src/routes/users.ts +24 -24
  484. package/src/routes/viewer-read.ts +3 -3
  485. package/src/routes/web-tool-calls.ts +4 -4
  486. package/src/routes/workflows.ts +22 -7
  487. package/src/routes/workspaces.ts +17 -16
  488. package/src/routing-policy-normalize.ts +1 -2
  489. package/src/routing-policy-push.ts +6 -6
  490. package/src/routing-step-defaults.ts +0 -2
  491. package/src/runner-token-mint-limit.ts +63 -0
  492. package/src/runtime-grant.ts +21 -13
  493. package/src/runtime-tokens.ts +59 -35
  494. package/src/secrets-broker/config.ts +1 -1
  495. package/src/secrets-broker/service.ts +2 -2
  496. package/src/security.ts +16 -21
  497. package/src/self-resume-carry.ts +21 -110
  498. package/src/self-resume-supersede.ts +4 -3
  499. package/src/self-resume.ts +54 -66
  500. package/src/server-background.ts +2 -2
  501. package/src/server.ts +26 -24
  502. package/src/services/agent-action.ts +12 -31
  503. package/src/services/agent-effort.ts +7 -32
  504. package/src/services/agent-hang-watchdog-job.ts +2 -2
  505. package/src/services/agent-heartbeat.ts +166 -0
  506. package/src/services/agent-reporting.ts +1 -1
  507. package/src/services/browser-inventory.ts +3 -3
  508. package/src/services/browser-session-state.ts +3 -2
  509. package/src/services/browser-session.ts +21 -27
  510. package/src/services/bus-command-update.ts +9 -9
  511. package/src/services/checkout-refresh-state.ts +1 -0
  512. package/src/services/checkout-refresh.test-fixture.ts +3 -2
  513. package/src/services/command-host.ts +7 -2
  514. package/src/services/coordinator-digest.ts +3 -2
  515. package/src/services/dispatch-command.ts +12 -13
  516. package/src/services/effective-launch-driver.ts +14 -9
  517. package/src/services/host-changed-paths.test-fixture.ts +5 -6
  518. package/src/services/host-project-readiness.ts +2 -2
  519. package/src/services/host-providers.ts +1 -1
  520. package/src/services/host-utilization.ts +27 -4
  521. package/src/services/idle-agent-digest.ts +17 -12
  522. package/src/services/idle-epics.ts +9 -10
  523. package/src/services/interrupt-agent.ts +12 -9
  524. package/src/services/issue-activity.ts +3 -3
  525. package/src/services/issue-associations.ts +15 -18
  526. package/src/services/issue-lifecycle-comments.ts +3 -2
  527. package/src/services/issue-lifecycle.ts +69 -72
  528. package/src/services/issue-refs.ts +10 -15
  529. package/src/services/kernel-timers-cutover-chaos-worker.ts +11 -8
  530. package/src/services/kernel-timers-ingress-chaos-worker.ts +6 -1
  531. package/src/services/kernel-timers-ingress.ts +4 -4
  532. package/src/services/kernel-timers-message-authority-chaos-worker.ts +3 -10
  533. package/src/services/kernel-timers-operator-chaos-worker.ts +3 -2
  534. package/src/services/kernel-timers-outbox.ts +1 -1
  535. package/src/services/kernel-timers-stage10-operator.ts +1 -1
  536. package/src/services/kernel-timers.ts +4 -3
  537. package/src/services/land-gate-placement.ts +11 -2
  538. package/src/services/land-issue-relations.ts +5 -4
  539. package/src/services/land-restart-retry.ts +7 -6
  540. package/src/services/landed-ancestry.ts +25 -8
  541. package/src/services/legacy-landing-host.ts +4 -1
  542. package/src/services/legacy-landing-recovery.ts +8 -6
  543. package/src/services/managed-running.ts +17 -17
  544. package/src/services/memory-areas.ts +17 -53
  545. package/src/services/merge-pause.ts +9 -15
  546. package/src/services/operator-decisions.ts +37 -41
  547. package/src/services/orchestrator-registration-recovery.ts +6 -2
  548. package/src/services/orchestrator-upgrade.ts +14 -12
  549. package/src/services/permission-decision.ts +4 -3
  550. package/src/services/plan-ci-notice.ts +57 -0
  551. package/src/services/plan-ci-recovery.ts +2 -55
  552. package/src/services/plan-conformance.ts +4 -4
  553. package/src/services/plan-dispatch-policy.ts +10 -3
  554. package/src/services/plan-dispatch.ts +35 -14
  555. package/src/services/plan-graph.ts +39 -261
  556. package/src/services/plan-import.ts +1 -1
  557. package/src/services/plan-live-bindings.ts +8 -37
  558. package/src/services/plan-task-create.ts +1 -1
  559. package/src/services/plan-terminal-refs.ts +2 -12
  560. package/src/services/plan-wake-digest.ts +9 -3
  561. package/src/services/profile-trust.ts +6 -5
  562. package/src/services/project-config-read.ts +70 -0
  563. package/src/services/project-profile-instructions.ts +54 -0
  564. package/src/services/project.ts +11 -10
  565. package/src/services/prompt-templates.ts +6 -5
  566. package/src/services/provider-hold-nudge.ts +9 -9
  567. package/src/services/provider-hold-record.ts +13 -12
  568. package/src/services/provider-state-audit.ts +19 -18
  569. package/src/services/provisioning-harness/budget-baseline.json +4 -4
  570. package/src/services/provisioning-harness/driver.ts +1 -1
  571. package/src/services/provisioning-harness/fixture-matrix.ts +3 -3
  572. package/src/services/provisioning-harness/lifecycle.ts +24 -22
  573. package/src/services/provisioning-harness/prepare.ts +16 -17
  574. package/src/services/rate-limit-resume.ts +10 -9
  575. package/src/services/red-main-auto-revert.ts +7 -5
  576. package/src/services/red-main-controller-deps.ts +20 -3
  577. package/src/services/red-main-incident.ts +3 -1
  578. package/src/services/red-main-quarantine.ts +2 -3
  579. package/src/services/register-agent.ts +22 -22
  580. package/src/services/restart-project-role.ts +1 -1
  581. package/src/services/restart-spawn.ts +74 -61
  582. package/src/services/review-publish.ts +7 -24
  583. package/src/services/review-ref-reconcile.ts +29 -38
  584. package/src/services/runtime-dependency-alert.ts +27 -0
  585. package/src/services/scheduler-command.ts +11 -9
  586. package/src/services/scheduler.ts +5 -5
  587. package/src/services/self-care-state.ts +2 -1
  588. package/src/services/self-effort-grant.ts +5 -25
  589. package/src/services/self-effort.ts +5 -5
  590. package/src/services/send-message.ts +21 -34
  591. package/src/services/shutdown-agent.ts +17 -14
  592. package/src/services/spawn-agent.ts +25 -43
  593. package/src/services/spawn-chain-inspector.ts +7 -14
  594. package/src/services/spawn-cwd-placement.ts +21 -5
  595. package/src/services/spawn-issue-activity.ts +8 -6
  596. package/src/services/spawn-launch.ts +17 -1
  597. package/src/services/spawn-loss-escalation.ts +1 -1
  598. package/src/services/spawn-policy.ts +68 -0
  599. package/src/services/spawn-registration-watchdog.ts +2 -2
  600. package/src/services/spawn-repo-probe.ts +7 -5
  601. package/src/services/spawn-tree-cleanup.ts +8 -9
  602. package/src/services/steward-reaper.ts +4 -4
  603. package/src/services/task-context-hydration.ts +25 -1
  604. package/src/services/task-delivery.ts +20 -34
  605. package/src/services/task-dispatch.ts +3 -0
  606. package/src/services/task-entity.ts +40 -203
  607. package/src/services/task-issue-link.ts +13 -20
  608. package/src/services/task-issue-weave.ts +12 -11
  609. package/src/services/task-lifecycle.ts +27 -31
  610. package/src/services/task-repo-cwd.ts +37 -0
  611. package/src/services/task-review-hold.ts +4 -17
  612. package/src/services/task-semantic-events.ts +13 -11
  613. package/src/services/task-state-reconcile.ts +8 -17
  614. package/src/services/task-validation.ts +2 -2
  615. package/src/services/team-templates.ts +12 -11
  616. package/src/services/team.ts +31 -98
  617. package/src/services/terminal-provider-exit.ts +6 -5
  618. package/src/services/timer-message-fire-chaos-worker.ts +7 -3
  619. package/src/services/timer-message-fire-outbox.ts +1 -1
  620. package/src/services/transient-agent-reaper.ts +25 -20
  621. package/src/services/turn-reconcile-audit.ts +9 -9
  622. package/src/services/user-onboarding.ts +8 -6
  623. package/src/services/user-profile.ts +6 -9
  624. package/src/services/work-finality.ts +16 -4
  625. package/src/services/workflow-auto-start.ts +26 -13
  626. package/src/services/workflow-caller.ts +61 -4
  627. package/src/services/workflow-child-proof-worker.ts +1 -1
  628. package/src/services/workflow-ci-main.ts +1 -1
  629. package/src/services/workflow-control-proof-worker.ts +1 -1
  630. package/src/services/workflow-coordinator.ts +8 -2
  631. package/src/services/workflow-decisions.ts +5 -5
  632. package/src/services/workflow-deferred-cleanup.ts +5 -3
  633. package/src/services/workflow-effect-driver.ts +42 -17
  634. package/src/services/workflow-effects.ts +58 -37
  635. package/src/services/workflow-land-notice.ts +10 -0
  636. package/src/services/workflow-pause-text.ts +43 -0
  637. package/src/services/workflow-pins.ts +7 -4
  638. package/src/services/workflow-reconcile.ts +14 -11
  639. package/src/services/workflow-resume-pins.ts +3 -3
  640. package/src/services/workflow-routing-defaults.ts +18 -0
  641. package/src/services/workflow-run-view.ts +6 -3
  642. package/src/services/workflow-run.test-fixture.ts +1 -1
  643. package/src/services/workflow-runs.ts +61 -33
  644. package/src/services/workflow-supervisor-state.ts +26 -1
  645. package/src/services/workflow-supervisor.ts +11 -6
  646. package/src/services/workspace-recovery.ts +4 -3
  647. package/src/settings/registry.ts +1 -2
  648. package/src/spawn-admission.ts +10 -2
  649. package/src/spawn-command.ts +4 -4
  650. package/src/spawn-models.ts +10 -12
  651. package/src/spawn-placement.ts +28 -10
  652. package/src/spawn-targets.ts +9 -9
  653. package/src/sse-agent-status.ts +15 -6
  654. package/src/sse.ts +49 -24
  655. package/src/startup-context-injection.ts +62 -57
  656. package/src/state-adoption/cd-cutover.ts +53 -7
  657. package/src/state-adoption/fleet-cutover.ts +35 -0
  658. package/src/state-adoption/fleet-plan.ts +36 -0
  659. package/src/state-adoption/index.ts +2 -2
  660. package/src/state-adoption/linux-plan.ts +2 -2
  661. package/src/state-adoption/linux.ts +2 -2
  662. package/src/state-adoption/macos-plan.ts +2 -2
  663. package/src/state-adoption/macos.ts +1 -1
  664. package/src/steward-handoff.ts +4 -3
  665. package/src/steward-policy-cleanup.ts +9 -8
  666. package/src/steward.ts +9 -8
  667. package/src/task-dispatch-live.ts +6 -3
  668. package/src/task-dispatcher.ts +3 -3
  669. package/src/teams-config-store.ts +4 -3
  670. package/src/token-db-write.ts +10 -0
  671. package/src/token-db.ts +2 -2
  672. package/src/token-usage-async.ts +2 -4
  673. package/src/user-awaiting-reply.ts +5 -5
  674. package/src/workspace-actions.ts +24 -29
  675. package/src/workspace-auto-merge.ts +14 -12
  676. package/src/workspace-changed-paths-client.ts +16 -5
  677. package/src/workspace-cleanup-stale.ts +30 -7
  678. package/src/workspace-command-settle.ts +26 -17
  679. package/src/workspace-config.ts +1 -1
  680. package/src/workspace-conflict-resolver.ts +9 -7
  681. package/src/workspace-dead-owner-recovery.ts +5 -4
  682. package/src/workspace-escalation.ts +12 -11
  683. package/src/workspace-human-escalation.ts +3 -3
  684. package/src/workspace-land-gate-watchdog.ts +3 -3
  685. package/src/workspace-land-refusal.ts +20 -0
  686. package/src/workspace-land-stopped.ts +1 -0
  687. package/src/workspace-merge.ts +10 -26
  688. package/src/workspace-nothing-to-land-notice.ts +2 -2
  689. package/src/workspace-orphans.ts +18 -37
  690. package/src/workspace-pr-completion.ts +10 -8
  691. package/src/workspace-rekey.ts +3 -3
  692. package/src/workspace-steward-failure.ts +2 -2
  693. package/src/workspace-steward-wake.ts +4 -4
  694. package/node_modules/@humwick/kernel/LICENSE +0 -167
  695. package/node_modules/@humwick/kernel/async-entity-persistence.ts +0 -344
  696. package/node_modules/@humwick/kernel/async-event-log.ts +0 -107
  697. package/node_modules/@humwick/kernel/automations.pilot.ts +0 -147
  698. package/node_modules/@humwick/kernel/config.ts +0 -111
  699. package/node_modules/@humwick/kernel/contract.ts +0 -572
  700. package/node_modules/@humwick/kernel/control-authz.ts +0 -281
  701. package/node_modules/@humwick/kernel/control.ts +0 -645
  702. package/node_modules/@humwick/kernel/effects.ts +0 -493
  703. package/node_modules/@humwick/kernel/event-log.ts +0 -319
  704. package/node_modules/@humwick/kernel/http-transport.ts +0 -384
  705. package/node_modules/@humwick/kernel/identity-grammar.ts +0 -20
  706. package/node_modules/@humwick/kernel/identity.ts +0 -248
  707. package/node_modules/@humwick/kernel/index.ts +0 -28
  708. package/node_modules/@humwick/kernel/kernel-persistence.ts +0 -181
  709. package/node_modules/@humwick/kernel/landing-incident.ts +0 -306
  710. package/node_modules/@humwick/kernel/landing.ts +0 -953
  711. package/node_modules/@humwick/kernel/manifest-validation.ts +0 -460
  712. package/node_modules/@humwick/kernel/mcp-transport.ts +0 -109
  713. package/node_modules/@humwick/kernel/message-authority-chaos-worker.ts +0 -200
  714. package/node_modules/@humwick/kernel/message-authority.ts +0 -281
  715. package/node_modules/@humwick/kernel/module-host.ts +0 -722
  716. package/node_modules/@humwick/kernel/openapi-init.ts +0 -14
  717. package/node_modules/@humwick/kernel/package.json +0 -39
  718. package/node_modules/@humwick/kernel/persistence-schema.ts +0 -248
  719. package/node_modules/@humwick/kernel/persistence.ts +0 -510
  720. package/node_modules/@humwick/kernel/registry.ts +0 -60
  721. package/node_modules/@humwick/kernel/sqlite-kernel-persistence.ts +0 -499
  722. package/node_modules/@humwick/kernel/sqlite-module-host.ts +0 -87
  723. package/node_modules/@humwick/kernel/timers-chaos-worker.ts +0 -186
  724. package/node_modules/@humwick/kernel/timers.pilot.ts +0 -1411
  725. package/node_modules/@humwick/kernel/workflow-activation.ts +0 -25
  726. package/node_modules/@humwick/kernel/workflow-backstop.ts +0 -40
  727. package/node_modules/@humwick/kernel/workflow-cancel-tree.ts +0 -20
  728. package/node_modules/@humwick/kernel/workflow-chaos-worker.ts +0 -213
  729. package/node_modules/@humwick/kernel/workflow-composition.ts +0 -231
  730. package/node_modules/@humwick/kernel/workflow-container.ts +0 -72
  731. package/node_modules/@humwick/kernel/workflow-control.test-fixture.ts +0 -42
  732. package/node_modules/@humwick/kernel/workflow-control.ts +0 -178
  733. package/node_modules/@humwick/kernel/workflow-definition.ts +0 -507
  734. package/node_modules/@humwick/kernel/workflow-dispatch.ts +0 -60
  735. package/node_modules/@humwick/kernel/workflow-foreach.ts +0 -167
  736. package/node_modules/@humwick/kernel/workflow-journal-codec.ts +0 -339
  737. package/node_modules/@humwick/kernel/workflow-journal.ts +0 -922
  738. package/node_modules/@humwick/kernel/workflow-lane.ts +0 -48
  739. package/node_modules/@humwick/kernel/workflow-lease-owner.ts +0 -60
  740. package/node_modules/@humwick/kernel/workflow-recovery.test-fixture.ts +0 -19
  741. package/node_modules/@humwick/kernel/workflow-runtime.ts +0 -938
  742. package/node_modules/@humwick/kernel/workflow-script.ts +0 -11
  743. package/node_modules/@humwick/kernel/workflow-state.ts +0 -299
  744. package/node_modules/@humwick/kernel/workflow-step-commit.ts +0 -195
  745. package/node_modules/@humwick/kernel/workflow-transitions.ts +0 -317
  746. package/node_modules/@humwick/kernel/workflow-values.ts +0 -153
  747. package/node_modules/@humwick/kernel/workflow.pilot.ts +0 -376
  748. package/node_modules/@humwick/offload/LICENSE +0 -167
  749. package/node_modules/@humwick/offload/README.md +0 -57
  750. package/node_modules/@humwick/offload/dist/async-runner.d.ts +0 -18
  751. package/node_modules/@humwick/offload/dist/async-runner.d.ts.map +0 -1
  752. package/node_modules/@humwick/offload/dist/async-runner.js +0 -158
  753. package/node_modules/@humwick/offload/dist/async-runner.js.map +0 -1
  754. package/node_modules/@humwick/offload/dist/envelope.d.ts +0 -25
  755. package/node_modules/@humwick/offload/dist/envelope.d.ts.map +0 -1
  756. package/node_modules/@humwick/offload/dist/envelope.js +0 -80
  757. package/node_modules/@humwick/offload/dist/envelope.js.map +0 -1
  758. package/node_modules/@humwick/offload/dist/fixtures/worker-task.d.ts +0 -10
  759. package/node_modules/@humwick/offload/dist/fixtures/worker-task.d.ts.map +0 -1
  760. package/node_modules/@humwick/offload/dist/fixtures/worker-task.js +0 -59
  761. package/node_modules/@humwick/offload/dist/fixtures/worker-task.js.map +0 -1
  762. package/node_modules/@humwick/offload/dist/index.d.ts +0 -5
  763. package/node_modules/@humwick/offload/dist/index.d.ts.map +0 -1
  764. package/node_modules/@humwick/offload/dist/index.js +0 -5
  765. package/node_modules/@humwick/offload/dist/index.js.map +0 -1
  766. package/node_modules/@humwick/offload/dist/subprocess-runner.d.ts +0 -62
  767. package/node_modules/@humwick/offload/dist/subprocess-runner.d.ts.map +0 -1
  768. package/node_modules/@humwick/offload/dist/subprocess-runner.js +0 -295
  769. package/node_modules/@humwick/offload/dist/subprocess-runner.js.map +0 -1
  770. package/node_modules/@humwick/offload/dist/types.d.ts +0 -111
  771. package/node_modules/@humwick/offload/dist/types.d.ts.map +0 -1
  772. package/node_modules/@humwick/offload/dist/types.js +0 -176
  773. package/node_modules/@humwick/offload/dist/types.js.map +0 -1
  774. package/node_modules/@humwick/offload/dist/worker-pool.d.ts +0 -23
  775. package/node_modules/@humwick/offload/dist/worker-pool.d.ts.map +0 -1
  776. package/node_modules/@humwick/offload/dist/worker-pool.js +0 -435
  777. package/node_modules/@humwick/offload/dist/worker-pool.js.map +0 -1
  778. package/node_modules/@humwick/offload/dist/worker-runtime.d.ts +0 -2
  779. package/node_modules/@humwick/offload/dist/worker-runtime.d.ts.map +0 -1
  780. package/node_modules/@humwick/offload/dist/worker-runtime.js +0 -27
  781. package/node_modules/@humwick/offload/dist/worker-runtime.js.map +0 -1
  782. package/node_modules/@humwick/offload/dist/worker.d.ts +0 -5
  783. package/node_modules/@humwick/offload/dist/worker.d.ts.map +0 -1
  784. package/node_modules/@humwick/offload/dist/worker.js +0 -1
  785. package/node_modules/@humwick/offload/dist/worker.js.map +0 -1
  786. package/node_modules/@humwick/offload/package.json +0 -42
  787. package/node_modules/@humwick/offload/src/async-runner.ts +0 -170
  788. package/node_modules/@humwick/offload/src/envelope.ts +0 -92
  789. package/node_modules/@humwick/offload/src/fixtures/worker-task.ts +0 -49
  790. package/node_modules/@humwick/offload/src/index.ts +0 -4
  791. package/node_modules/@humwick/offload/src/subprocess-runner.ts +0 -334
  792. package/node_modules/@humwick/offload/src/types.ts +0 -235
  793. package/node_modules/@humwick/offload/src/worker-pool.ts +0 -463
  794. package/node_modules/@humwick/offload/src/worker-runtime.ts +0 -32
  795. package/node_modules/@humwick/offload/src/worker.ts +0 -5
  796. package/public/assets/agent-liveness-DyqxfB-t.js +0 -2
  797. package/public/assets/agent-profiles-BpI_jTxq.js +0 -2
  798. package/public/assets/index-B7ZerHLY.css +0 -2
  799. package/public/assets/index-BU3uWo2t.js +0 -15
  800. package/public/assets/projects-B_lmcqfO.js +0 -2
  801. package/public/assets/provider-display-DbLWpP3j.js +0 -2
  802. package/public/assets/run-card-CO_bguQf.js +0 -2
  803. package/public/assets/shipping-Bu8p1gEw.js +0 -2
  804. package/public/assets/store-BvtFdlGX.js +0 -9
  805. package/public/assets/use-project-list-B-T2Bnnn.js +0 -2
  806. package/public/assets/versioned-prompt-editor-Diu8BIaM.js +0 -8
  807. package/runner/src/agent-runner/http-liveness.ts +0 -85
  808. package/runner/src/gate-run-lease-probe.ts +0 -38
  809. package/src/db/claude-catalog-reconcile.ts +0 -27
  810. package/src/db/on-loop-write-transaction.ts +0 -34
  811. package/src/routing-model-aliases.ts +0 -21
@@ -1,5 +1,6 @@
1
1
  import { getDb, getDbPath, runDbMaintenanceWorker } from "./connection.ts";
2
2
  import { spawnProcessGoneSql } from "./spawn-process-evidence";
3
+ import { slimSpawnProfileChunk } from "./command-agent-profile-backfill";
3
4
 
4
5
  export interface RetentionPruneInput {
5
6
  messageCutoff: number;
@@ -13,6 +14,8 @@ export interface RetentionPruneResult {
13
14
  prunedMessages: number;
14
15
  prunedActivityEvents: number;
15
16
  prunedSpawnCommands: number;
17
+ /** #3610 — legacy spawn rows whose inline agentProfile moved to the content-hash store. */
18
+ slimmedSpawnProfiles: number;
16
19
  // #1758 — true when this run stopped on its batch-size cap or its wall-time budget with candidate
17
20
  // rows still available in at least one table, i.e. it made bounded progress but did NOT drain the
18
21
  // backlog. The scheduler uses it to record the run `succeeded` (not `failed`) and to reschedule the
@@ -325,11 +328,13 @@ export function pruneRetentionBatchOnDb(db: RetentionDb, input: RetentionPruneIn
325
328
  const messages = pruneChunks(batchSize, deadlineAt, (limit) => messageChunk(db, input.messageCutoff, limit));
326
329
  const activity = pruneChunks(batchSize, deadlineAt, (limit) => activityChunk(db, input.activityCutoff, activityHotSetBoundary, limit));
327
330
  const spawnCommands = pruneChunks(batchSize, deadlineAt, (limit) => spawnCommandChunk(db, input.spawnCommandCutoff, limit));
331
+ const profiles = pruneChunks(batchSize, deadlineAt, (limit) => slimSpawnProfileChunk(db, limit));
328
332
  return {
329
333
  prunedMessages: messages.pruned,
330
334
  prunedActivityEvents: activity.pruned,
331
335
  prunedSpawnCommands: spawnCommands.pruned,
332
- moreWork: messages.moreWork || activity.moreWork || spawnCommands.moreWork,
336
+ slimmedSpawnProfiles: profiles.pruned,
337
+ moreWork: messages.moreWork || activity.moreWork || spawnCommands.moreWork || profiles.moreWork,
333
338
  };
334
339
  }
335
340
 
@@ -362,10 +367,13 @@ export async function pruneRetentionBatchOnDbAsync(
362
367
  const runMessages = (deadlineAt: number) => pruneChunksAsync(batchCap, deadlineAt, (limit) => messageChunk(db, input.messageCutoff, limit));
363
368
  const runActivity = (deadlineAt: number) => pruneChunksAsync(batchCap, deadlineAt, (limit) => activityChunk(db, input.activityCutoff, activityHotSetBoundary, limit));
364
369
  const runSpawn = (deadlineAt: number) => pruneChunksAsync(batchCap, deadlineAt, (limit) => spawnCommandChunk(db, input.spawnCommandCutoff, limit));
370
+ // After the deletes, so rows about to age out are never rewritten first.
371
+ const runProfiles = (deadlineAt: number) => pruneChunksAsync(batchCap, deadlineAt, (limit) => slimSpawnProfileChunk(db, limit));
365
372
 
366
373
  let messages: { pruned: number; moreWork: boolean };
367
374
  let activity: { pruned: number; moreWork: boolean };
368
375
  let spawnCommands: { pruned: number; moreWork: boolean };
376
+ let profiles: { pruned: number; moreWork: boolean };
369
377
  if (options.catchUp) {
370
378
  // Cumulative per-table deadline checkpoints against one shared clock. With the batch cap unreachable,
371
379
  // a single shared deadline would let a large `messages` backlog consume the whole budget before
@@ -377,6 +385,7 @@ export async function pruneRetentionBatchOnDbAsync(
377
385
  const third = totalBudget / 3;
378
386
  activity = await runActivity(start + third);
379
387
  spawnCommands = await runSpawn(start + 2 * third);
388
+ profiles = await runProfiles(start + 2 * third);
380
389
  messages = await runMessages(start + totalBudget);
381
390
  } else {
382
391
  // Inline-async fallback (:memory:): one shared deadline + the operator batch cap, unchanged.
@@ -384,12 +393,14 @@ export async function pruneRetentionBatchOnDbAsync(
384
393
  messages = await runMessages(deadlineAt);
385
394
  activity = await runActivity(deadlineAt);
386
395
  spawnCommands = await runSpawn(deadlineAt);
396
+ profiles = await runProfiles(deadlineAt);
387
397
  }
388
398
  return {
389
399
  prunedMessages: messages.pruned,
390
400
  prunedActivityEvents: activity.pruned,
391
401
  prunedSpawnCommands: spawnCommands.pruned,
392
- moreWork: messages.moreWork || activity.moreWork || spawnCommands.moreWork,
402
+ slimmedSpawnProfiles: profiles.pruned,
403
+ moreWork: messages.moreWork || activity.moreWork || spawnCommands.moreWork || profiles.moreWork,
393
404
  };
394
405
  }
395
406
 
@@ -0,0 +1,8 @@
1
+ import { createCommandInternal, type CreateCommandWriteArgs } from "../commands-db";
2
+ import { upsertReviewRefCleanup } from "./review-ref-cleanups";
3
+ export type ReviewCleanupInput = Omit<Parameters<typeof upsertReviewRefCleanup>[0], "id">;
4
+ export function createReviewPublishBody(args: { command: CreateCommandWriteArgs; cleanup: ReviewCleanupInput }, now: number) {
5
+ const command = createCommandInternal(args.command, now);
6
+ upsertReviewRefCleanup({ ...args.cleanup, id: command.id });
7
+ return command;
8
+ }
@@ -3,7 +3,6 @@ import { isRecord, ValidationError, type RoutingPolicy, type RoutingPolicyEnvelo
3
3
  import { getConfig, setConfigInternal } from "../config-store";
4
4
  import { getDb } from "./connection";
5
5
  import { DEFAULT_ROUTING_POLICY, normalizeRoutingPolicy, ROUTING_POLICY_NAMESPACE as NS, ROUTING_POLICY_KEY as KEY } from "../routing-policy-normalize";
6
- import { currentRoutingModels } from "../routing-model-aliases";
7
6
 
8
7
  export function readRoutingPolicy(): RoutingPolicyEnvelope {
9
8
  const entry = getConfig(NS, KEY);
@@ -19,7 +18,7 @@ export function readRoutingPolicy(): RoutingPolicyEnvelope {
19
18
  policy.migration = { sourceSchemaVersion: 1, notes: stored.migration.notes.filter((note): note is string => typeof note === "string") };
20
19
  }
21
20
  }
22
- return { policy: currentRoutingModels(policy), revision: entry?.version ?? 0, diagnostics: policy.migration ?? null };
21
+ return { policy, revision: entry?.version ?? 0, diagnostics: policy.migration ?? null };
23
22
  }
24
23
 
25
24
  export interface RoutingPolicyWrite {
@@ -53,7 +52,7 @@ export function writeRoutingPolicy(args: RoutingPolicyWrite, now: number) {
53
52
  }
54
53
  }
55
54
  const policy: RoutingPolicy = { ...parsed, ...(migration ? { migration } : {}), ...(sourceRevision ? { migrationSourceRevision: sourceRevision } : {}) };
56
- const changed = (isRecord(stored?.value) && stored.value.schemaVersion === 1) || JSON.stringify(currentRoutingModels(policy)) !== JSON.stringify(current.policy);
55
+ const changed = (isRecord(stored?.value) && stored.value.schemaVersion === 1) || JSON.stringify(policy) !== JSON.stringify(current.policy);
57
56
  if (changed) setConfigInternal(NS, KEY, policy, args.updatedBy, now);
58
57
  return { envelope: readRoutingPolicy(), previous: current.policy, changed };
59
58
  }
@@ -0,0 +1,19 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { getGateway } from "./gateway";
3
+ import { emitWorkspaceChange, emitWorkspaceCreate, type RecoveredWorkspaceInput } from "./workspaces";
4
+ import type { upsertWorkspaceRow } from "./workspaces";
5
+ import type { recoverWorkspaceBody, expireRuntimeCommands } from "./runtime-admin-write-ops";
6
+
7
+ export async function upsertWorkspaceAsync(input: Parameters<typeof upsertWorkspaceRow>[0]) {
8
+ const result = await getGateway().write("workspaces.upsertRow", input, { idempotencyKey: randomUUID() }) as unknown as ReturnType<typeof upsertWorkspaceRow>;
9
+ if (result.changed) emitWorkspaceChange(result.workspace);
10
+ return result.workspace;
11
+ }
12
+ export async function insertRecoveredWorkspaceAsync(input: RecoveredWorkspaceInput): Promise<ReturnType<typeof recoverWorkspaceBody>> {
13
+ const result = await getGateway().write("workspaces.recover", input, { idempotencyKey: randomUUID() }) as unknown as ReturnType<typeof recoverWorkspaceBody>;
14
+ if (result.created) { emitWorkspaceChange(result.workspace); emitWorkspaceCreate(result.workspace); }
15
+ return result;
16
+ }
17
+ export function expireCommandsAsync(now = Date.now()): Promise<ReturnType<typeof expireRuntimeCommands>> {
18
+ return getGateway().write("commands.expireRuntime", { now }, { idempotencyKey: randomUUID(), critical: true }) as unknown as Promise<ReturnType<typeof expireRuntimeCommands>>;
19
+ }
@@ -0,0 +1,36 @@
1
+ import { createUserInvite, acceptUserInvite } from "./user-invites";
2
+ import { getAgent } from "./agents";
3
+ import { getWorkspace, upsertWorkspaceRow, type RecoveredWorkspaceInput } from "./workspaces";
4
+ import { expireCommands, updateCommandInternal, applyCommandUpdatePostCommit } from "../commands-db";
5
+ import { redactCommandSecrets } from "../command-secrets";
6
+ import type { Command } from "../types";
7
+ import type { WriterOpSpec } from "./write-ops";
8
+
9
+ export function recoverWorkspaceBody(input: RecoveredWorkspaceInput, now: number) {
10
+ const existing = getWorkspace(input.id);
11
+ if (existing) return { workspace: existing, created: false };
12
+ const result = upsertWorkspaceRow({ id: input.id, repoRoot: input.repoRoot, sourceCwd: input.sourceCwd, worktreePath: input.worktreePath,
13
+ branch: input.branch, baseRef: input.baseRef, baseSha: input.baseSha, mode: "isolated", status: "active", orchestratorId: input.orchestratorId,
14
+ ownerAgentId: input.ownerAgentId, metadata: { reregistered: true, ...input.landMetadata } }, now);
15
+ return { workspace: result.workspace, created: result.created };
16
+ }
17
+ export function expireRuntimeCommands(now: number) {
18
+ return expireCommands(now, {
19
+ isTargetGone: command => Boolean(command.target && command.target !== "system" && (!getAgent(command.target) || getAgent(command.target)!.status === "offline")),
20
+ update: (id, input, options) => {
21
+ const result = updateCommandInternal(id, input, options, now);
22
+ return applyCommandUpdatePostCommit(result.previousStatus, result.command);
23
+ },
24
+ });
25
+ }
26
+ export const RUNTIME_ADMIN_WRITE_OPS: Readonly<Record<string, WriterOpSpec>> = Object.freeze({
27
+ "userInvites.create": { offLoop: true, idempotent: false,
28
+ fn: (input: Parameters<typeof createUserInvite>[0], ctx) => createUserInvite({ ...input, now: input.now ?? ctx.now }),
29
+ // The invite code is a bearer credential returned once, like a token mint (#1870).
30
+ serializeIdempotencyResult: value => ({ invite: (value as ReturnType<typeof createUserInvite>).invite }) },
31
+ "userInvites.accept": { offLoop: true, idempotent: false, fn: (input: Parameters<typeof acceptUserInvite>[0], ctx) => acceptUserInvite({ ...input, now: input.now ?? ctx.now }) },
32
+ "workspaces.upsertRow": { offLoop: true, idempotent: false, fn: (input: Parameters<typeof upsertWorkspaceRow>[0], ctx) => upsertWorkspaceRow(input, ctx.now) },
33
+ "workspaces.recover": { offLoop: true, idempotent: false, fn: (input: RecoveredWorkspaceInput, ctx) => recoverWorkspaceBody(input, ctx.now) },
34
+ "commands.expireRuntime": { offLoop: true, idempotent: false, fn: (args: { now?: number }, ctx) => expireRuntimeCommands(args.now ?? ctx.now),
35
+ serializeIdempotencyResult: value => (value as Command[]).map(command => redactCommandSecrets(command)) },
36
+ });
@@ -0,0 +1,288 @@
1
+ import type { pruneWorkspaceOrphanAlerts, pruneOrphanedSharedWorkspaces, claimWorkspaceOrphanAlert, claimWorkspaceHumanEscalationAlert, pruneStaleWorkspaceHumanEscalationAlerts, reelectRepoSteward } from "./workspaces";
2
+ import type { upsertProjectTrustApproval } from "./project-trust-approvals";
3
+ import type { setProjectJournalFields } from "./project-journal";
4
+ import type { promoteLineageCapturedResponse, markSelfResumeContinuationIngested } from "./messages";
5
+ import type { acquireMergePause, acquireMergeLease, releaseMergeLease, releaseExpiredMergeLeases, releaseExpiredMergePauses, renewMergePause, releaseMergePause } from "./merge-lease";
6
+ import type { ingestIntegrationEvent, upsertIntegrationRegistry } from "./integrations";
7
+ import type { refreshPendingLandQueueLease } from "./commands-claim-admission";
8
+ import type { writeEntry, retractEntry } from "./blackboard";
9
+ import type { fencePublishForPush, cancelPendingCommand } from "../commands-db";
10
+ import { randomUUID } from "node:crypto";
11
+ import { getGateway } from "./gateway";
12
+ import { deferLineageReport } from "./deferred-lineage-reports";
13
+ import { applyLineageReportEffects } from "./messages";
14
+ import { evictPendingPresence } from "./presence-buffer";
15
+ import type { deleteOrchestratorRow } from "./orchestrators";
16
+ import type { setUserSecret, createAuthIdentity } from "./auth-identities";
17
+ import type { markWorkspaceCarryPending, confirmWorkspaceCarryPendingForTask } from "./carry-pending-marker";
18
+ import type { ensureContinuationEnvelope, updateContinuationObjective } from "./continuations";
19
+ import type { releaseDriveLease, releaseExpiredDriveLeases } from "./drive-leases";
20
+ import type { finishIdleDigestScan, updateIdleDigestScan, startIdleDigestWindow } from "./idle-digest";
21
+ import type { associateIssue, removeAssociation } from "./issue-associations";
22
+ import type { insertLandGateAttestation } from "./land-gate-attestations";
23
+ import type { insertLandingReceipt } from "./landing-receipts";
24
+ import type { recordIssueLifecycleComment } from "./long-running-work";
25
+ import type { pauseMaintenanceJob, resumeMaintenanceJob } from "./maintenance-pauses";
26
+ import type { updateOpenOperatorDecision, withdrawOpenOperatorDecision } from "./operator-decisions";
27
+ import type { deleteOrchestrator } from "./orchestrators";
28
+ import type { upsertTemplate, resetTemplate } from "./prompt-templates";
29
+ import type { setReviewRefFenceToken, markReviewRefPublished, markReviewRefAnnounced, markReviewRefFailed, markReviewRefClosed, recordReviewRefCleanupDispatch, deleteReviewRefCleanup } from "./review-ref-cleanups";
30
+ import type { insertTaskEvent } from "./task-core";
31
+ import type { clearTeamIdleEntry, setTeamIdleEntry } from "./team-idle";
32
+ import type { updateUserProfile, updateUserAccess } from "./users";
33
+ import type { upsertTokenProfile, updateTokenProfile, deleteTokenProfile } from "../token-db";
34
+
35
+ export function setUserSecretAsync(...args: Parameters<typeof setUserSecret>): Promise<ReturnType<typeof setUserSecret>> {
36
+ return getGateway().write("runtimeTail.setUserSecret", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof setUserSecret>>;
37
+ }
38
+
39
+ export function createAuthIdentityAsync(...args: Parameters<typeof createAuthIdentity>): Promise<ReturnType<typeof createAuthIdentity>> {
40
+ return getGateway().write("runtimeTail.createAuthIdentity", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof createAuthIdentity>>;
41
+ }
42
+
43
+ export function retractEntryAsync(...args: Parameters<typeof retractEntry>): Promise<ReturnType<typeof retractEntry>> {
44
+ return getGateway().write("runtimeTail.retractEntry", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof retractEntry>>;
45
+ }
46
+
47
+ export function markWorkspaceCarryPendingAsync(...args: Parameters<typeof markWorkspaceCarryPending>): Promise<ReturnType<typeof markWorkspaceCarryPending>> {
48
+ return getGateway().write("runtimeTail.markWorkspaceCarryPending", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof markWorkspaceCarryPending>>;
49
+ }
50
+
51
+ export function confirmWorkspaceCarryPendingForTaskAsync(...args: Parameters<typeof confirmWorkspaceCarryPendingForTask>): Promise<ReturnType<typeof confirmWorkspaceCarryPendingForTask>> {
52
+ return getGateway().write("runtimeTail.confirmWorkspaceCarryPendingForTask", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof confirmWorkspaceCarryPendingForTask>>;
53
+ }
54
+
55
+ export function ensureContinuationEnvelopeAsync(...args: Parameters<typeof ensureContinuationEnvelope>): Promise<ReturnType<typeof ensureContinuationEnvelope>> {
56
+ return getGateway().write("runtimeTail.ensureContinuationEnvelope", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof ensureContinuationEnvelope>>;
57
+ }
58
+
59
+ export function updateContinuationObjectiveAsync(...args: Parameters<typeof updateContinuationObjective>): Promise<ReturnType<typeof updateContinuationObjective>> {
60
+ return getGateway().write("runtimeTail.updateContinuationObjective", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof updateContinuationObjective>>;
61
+ }
62
+
63
+ export function releaseDriveLeaseAsync(...args: Parameters<typeof releaseDriveLease>): Promise<ReturnType<typeof releaseDriveLease>> {
64
+ return getGateway().write("runtimeTail.releaseDriveLease", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof releaseDriveLease>>;
65
+ }
66
+
67
+ export function releaseExpiredDriveLeasesAsync(...args: Parameters<typeof releaseExpiredDriveLeases>): Promise<ReturnType<typeof releaseExpiredDriveLeases>> {
68
+ return getGateway().write("runtimeTail.releaseExpiredDriveLeases", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof releaseExpiredDriveLeases>>;
69
+ }
70
+
71
+ export function finishIdleDigestScanAsync(...args: Parameters<typeof finishIdleDigestScan>): Promise<ReturnType<typeof finishIdleDigestScan>> {
72
+ return getGateway().write("runtimeTail.finishIdleDigestScan", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof finishIdleDigestScan>>;
73
+ }
74
+
75
+ export function updateIdleDigestScanAsync(...args: Parameters<typeof updateIdleDigestScan>): Promise<ReturnType<typeof updateIdleDigestScan>> {
76
+ return getGateway().write("runtimeTail.updateIdleDigestScan", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof updateIdleDigestScan>>;
77
+ }
78
+
79
+ export function startIdleDigestWindowAsync(...args: Parameters<typeof startIdleDigestWindow>): Promise<ReturnType<typeof startIdleDigestWindow>> {
80
+ return getGateway().write("runtimeTail.startIdleDigestWindow", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof startIdleDigestWindow>>;
81
+ }
82
+
83
+ export function associateIssueAsync(...args: Parameters<typeof associateIssue>): Promise<ReturnType<typeof associateIssue>> {
84
+ return getGateway().write("runtimeTail.associateIssue", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof associateIssue>>;
85
+ }
86
+
87
+ export function removeAssociationAsync(...args: Parameters<typeof removeAssociation>): Promise<ReturnType<typeof removeAssociation>> {
88
+ return getGateway().write("runtimeTail.removeAssociation", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof removeAssociation>>;
89
+ }
90
+
91
+ export function insertLandGateAttestationAsync(...args: Parameters<typeof insertLandGateAttestation>): Promise<ReturnType<typeof insertLandGateAttestation>> {
92
+ return getGateway().write("runtimeTail.insertLandGateAttestation", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof insertLandGateAttestation>>;
93
+ }
94
+
95
+ export function insertLandingReceiptAsync(...args: Parameters<typeof insertLandingReceipt>): Promise<ReturnType<typeof insertLandingReceipt>> {
96
+ return getGateway().write("runtimeTail.insertLandingReceipt", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof insertLandingReceipt>>;
97
+ }
98
+
99
+ export function recordIssueLifecycleCommentAsync(...args: Parameters<typeof recordIssueLifecycleComment>): Promise<ReturnType<typeof recordIssueLifecycleComment>> {
100
+ return getGateway().write("runtimeTail.recordIssueLifecycleComment", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof recordIssueLifecycleComment>>;
101
+ }
102
+
103
+ export function pauseMaintenanceJobAsync(...args: Parameters<typeof pauseMaintenanceJob>): Promise<ReturnType<typeof pauseMaintenanceJob>> {
104
+ return getGateway().write("runtimeTail.pauseMaintenanceJob", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof pauseMaintenanceJob>>;
105
+ }
106
+
107
+ export function resumeMaintenanceJobAsync(...args: Parameters<typeof resumeMaintenanceJob>): Promise<ReturnType<typeof resumeMaintenanceJob>> {
108
+ return getGateway().write("runtimeTail.resumeMaintenanceJob", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof resumeMaintenanceJob>>;
109
+ }
110
+
111
+ export function releaseMergeLeaseAsync(...args: Parameters<typeof releaseMergeLease>): Promise<ReturnType<typeof releaseMergeLease>> {
112
+ return getGateway().write("runtimeTail.releaseMergeLease", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof releaseMergeLease>>;
113
+ }
114
+
115
+ export function releaseExpiredMergeLeasesAsync(...args: Parameters<typeof releaseExpiredMergeLeases>): Promise<ReturnType<typeof releaseExpiredMergeLeases>> {
116
+ return getGateway().write("runtimeTail.releaseExpiredMergeLeases", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof releaseExpiredMergeLeases>>;
117
+ }
118
+
119
+ export function releaseExpiredMergePausesAsync(...args: Parameters<typeof releaseExpiredMergePauses>): Promise<ReturnType<typeof releaseExpiredMergePauses>> {
120
+ return getGateway().write("runtimeTail.releaseExpiredMergePauses", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof releaseExpiredMergePauses>>;
121
+ }
122
+
123
+ export function renewMergePauseAsync(...args: Parameters<typeof renewMergePause>): Promise<ReturnType<typeof renewMergePause>> {
124
+ return getGateway().write("runtimeTail.renewMergePause", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof renewMergePause>>;
125
+ }
126
+
127
+ export function releaseMergePauseAsync(...args: Parameters<typeof releaseMergePause>): Promise<ReturnType<typeof releaseMergePause>> {
128
+ return getGateway().write("runtimeTail.releaseMergePause", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof releaseMergePause>>;
129
+ }
130
+
131
+ export function markSelfResumeContinuationIngestedAsync(...args: Parameters<typeof markSelfResumeContinuationIngested>): Promise<ReturnType<typeof markSelfResumeContinuationIngested>> {
132
+ return getGateway().write("runtimeTail.markSelfResumeContinuationIngested", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof markSelfResumeContinuationIngested>>;
133
+ }
134
+
135
+ export function updateOpenOperatorDecisionAsync(...args: Parameters<typeof updateOpenOperatorDecision>): Promise<ReturnType<typeof updateOpenOperatorDecision>> {
136
+ return getGateway().write("runtimeTail.updateOpenOperatorDecision", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof updateOpenOperatorDecision>>;
137
+ }
138
+
139
+ export function withdrawOpenOperatorDecisionAsync(...args: Parameters<typeof withdrawOpenOperatorDecision>): Promise<ReturnType<typeof withdrawOpenOperatorDecision>> {
140
+ return getGateway().write("runtimeTail.withdrawOpenOperatorDecision", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof withdrawOpenOperatorDecision>>;
141
+ }
142
+
143
+ export async function deleteOrchestratorAsync(...args: Parameters<typeof deleteOrchestrator>): Promise<ReturnType<typeof deleteOrchestrator>> {
144
+ const result = await getGateway().write("runtimeTail.deleteOrchestrator", args, { idempotencyKey: randomUUID() }) as unknown as ReturnType<typeof deleteOrchestratorRow>;
145
+ if (result.agentId) evictPendingPresence(result.agentId);
146
+ return result.deleted;
147
+ }
148
+
149
+ export function upsertTemplateAsync(...args: Parameters<typeof upsertTemplate>): Promise<ReturnType<typeof upsertTemplate>> {
150
+ return getGateway().write("runtimeTail.upsertTemplate", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof upsertTemplate>>;
151
+ }
152
+
153
+ export function resetTemplateAsync(...args: Parameters<typeof resetTemplate>): Promise<ReturnType<typeof resetTemplate>> {
154
+ return getGateway().write("runtimeTail.resetTemplate", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof resetTemplate>>;
155
+ }
156
+
157
+ export function setReviewRefFenceTokenAsync(...args: Parameters<typeof setReviewRefFenceToken>): Promise<ReturnType<typeof setReviewRefFenceToken>> {
158
+ return getGateway().write("runtimeTail.setReviewRefFenceToken", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof setReviewRefFenceToken>>;
159
+ }
160
+
161
+ export function markReviewRefPublishedAsync(...args: Parameters<typeof markReviewRefPublished>): Promise<ReturnType<typeof markReviewRefPublished>> {
162
+ return getGateway().write("runtimeTail.markReviewRefPublished", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof markReviewRefPublished>>;
163
+ }
164
+
165
+ export function markReviewRefAnnouncedAsync(...args: Parameters<typeof markReviewRefAnnounced>): Promise<ReturnType<typeof markReviewRefAnnounced>> {
166
+ return getGateway().write("runtimeTail.markReviewRefAnnounced", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof markReviewRefAnnounced>>;
167
+ }
168
+
169
+ export function markReviewRefFailedAsync(...args: Parameters<typeof markReviewRefFailed>): Promise<ReturnType<typeof markReviewRefFailed>> {
170
+ return getGateway().write("runtimeTail.markReviewRefFailed", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof markReviewRefFailed>>;
171
+ }
172
+
173
+ export function markReviewRefClosedAsync(...args: Parameters<typeof markReviewRefClosed>): Promise<ReturnType<typeof markReviewRefClosed>> {
174
+ return getGateway().write("runtimeTail.markReviewRefClosed", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof markReviewRefClosed>>;
175
+ }
176
+
177
+ export function recordReviewRefCleanupDispatchAsync(...args: Parameters<typeof recordReviewRefCleanupDispatch>): Promise<ReturnType<typeof recordReviewRefCleanupDispatch>> {
178
+ return getGateway().write("runtimeTail.recordReviewRefCleanupDispatch", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof recordReviewRefCleanupDispatch>>;
179
+ }
180
+
181
+ export function deleteReviewRefCleanupAsync(...args: Parameters<typeof deleteReviewRefCleanup>): Promise<ReturnType<typeof deleteReviewRefCleanup>> {
182
+ return getGateway().write("runtimeTail.deleteReviewRefCleanup", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof deleteReviewRefCleanup>>;
183
+ }
184
+
185
+ export function insertTaskEventAsync(...args: Parameters<typeof insertTaskEvent>): Promise<ReturnType<typeof insertTaskEvent>> {
186
+ return getGateway().write("runtimeTail.insertTaskEvent", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof insertTaskEvent>>;
187
+ }
188
+
189
+ export function clearTeamIdleEntryAsync(...args: Parameters<typeof clearTeamIdleEntry>): Promise<ReturnType<typeof clearTeamIdleEntry>> {
190
+ return getGateway().write("runtimeTail.clearTeamIdleEntry", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof clearTeamIdleEntry>>;
191
+ }
192
+
193
+ export function setTeamIdleEntryAsync(...args: Parameters<typeof setTeamIdleEntry>): Promise<ReturnType<typeof setTeamIdleEntry>> {
194
+ return getGateway().write("runtimeTail.setTeamIdleEntry", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof setTeamIdleEntry>>;
195
+ }
196
+
197
+ export function updateUserProfileAsync(...args: Parameters<typeof updateUserProfile>): Promise<ReturnType<typeof updateUserProfile>> {
198
+ return getGateway().write("runtimeTail.updateUserProfile", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof updateUserProfile>>;
199
+ }
200
+
201
+ export function updateUserAccessAsync(...args: Parameters<typeof updateUserAccess>): Promise<ReturnType<typeof updateUserAccess>> {
202
+ return getGateway().write("runtimeTail.updateUserAccess", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof updateUserAccess>>;
203
+ }
204
+
205
+ export function claimWorkspaceOrphanAlertAsync(...args: Parameters<typeof claimWorkspaceOrphanAlert>): Promise<ReturnType<typeof claimWorkspaceOrphanAlert>> {
206
+ return getGateway().write("runtimeTail.claimWorkspaceOrphanAlert", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof claimWorkspaceOrphanAlert>>;
207
+ }
208
+
209
+ export function claimWorkspaceHumanEscalationAlertAsync(...args: Parameters<typeof claimWorkspaceHumanEscalationAlert>): Promise<ReturnType<typeof claimWorkspaceHumanEscalationAlert>> {
210
+ return getGateway().write("runtimeTail.claimWorkspaceHumanEscalationAlert", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof claimWorkspaceHumanEscalationAlert>>;
211
+ }
212
+
213
+ export function pruneStaleWorkspaceHumanEscalationAlertsAsync(...args: Parameters<typeof pruneStaleWorkspaceHumanEscalationAlerts>): Promise<ReturnType<typeof pruneStaleWorkspaceHumanEscalationAlerts>> {
214
+ return getGateway().write("runtimeTail.pruneStaleWorkspaceHumanEscalationAlerts", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof pruneStaleWorkspaceHumanEscalationAlerts>>;
215
+ }
216
+
217
+ export function reelectRepoStewardAsync(...args: Parameters<typeof reelectRepoSteward>): Promise<ReturnType<typeof reelectRepoSteward>> {
218
+ return getGateway().write("runtimeTail.reelectRepoSteward", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof reelectRepoSteward>>;
219
+ }
220
+
221
+ export function upsertTokenProfileAsync(...args: Parameters<typeof upsertTokenProfile>): Promise<ReturnType<typeof upsertTokenProfile>> {
222
+ return getGateway().write("runtimeTail.upsertTokenProfile", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof upsertTokenProfile>>;
223
+ }
224
+
225
+ export function updateTokenProfileAsync(...args: Parameters<typeof updateTokenProfile>): Promise<ReturnType<typeof updateTokenProfile>> {
226
+ return getGateway().write("runtimeTail.updateTokenProfile", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof updateTokenProfile>>;
227
+ }
228
+
229
+ export function deleteTokenProfileAsync(...args: Parameters<typeof deleteTokenProfile>): Promise<ReturnType<typeof deleteTokenProfile>> {
230
+ return getGateway().write("runtimeTail.deleteTokenProfile", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof deleteTokenProfile>>;
231
+ }
232
+
233
+ export function cancelPendingCommandAsync(...args: Parameters<typeof cancelPendingCommand>): Promise<ReturnType<typeof cancelPendingCommand>> {
234
+ return getGateway().write("runtimeTail.cancelPendingCommand", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof cancelPendingCommand>>;
235
+ }
236
+
237
+ export function fencePublishForPushAsync(...args: Parameters<typeof fencePublishForPush>): Promise<ReturnType<typeof fencePublishForPush>> {
238
+ return getGateway().write("runtimeTail.fencePublishForPush", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof fencePublishForPush>>;
239
+ }
240
+
241
+ export function writeEntryAsync(...args: Parameters<typeof writeEntry>): Promise<ReturnType<typeof writeEntry>> {
242
+ return getGateway().write("runtimeTail.writeEntry", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof writeEntry>>;
243
+ }
244
+
245
+ export function refreshPendingLandQueueLeaseAsync(...args: Parameters<typeof refreshPendingLandQueueLease>): Promise<ReturnType<typeof refreshPendingLandQueueLease>> {
246
+ return getGateway().write("runtimeTail.refreshPendingLandQueueLease", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof refreshPendingLandQueueLease>>;
247
+ }
248
+
249
+ export function upsertIntegrationRegistryAsync(...args: Parameters<typeof upsertIntegrationRegistry>): Promise<ReturnType<typeof upsertIntegrationRegistry>> {
250
+ return getGateway().write("runtimeTail.upsertIntegrationRegistry", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof upsertIntegrationRegistry>>;
251
+ }
252
+
253
+ export function ingestIntegrationEventAsync(...args: Parameters<typeof ingestIntegrationEvent>): Promise<ReturnType<typeof ingestIntegrationEvent>> {
254
+ return getGateway().write("runtimeTail.ingestIntegrationEvent", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof ingestIntegrationEvent>>;
255
+ }
256
+
257
+ export function acquireMergeLeaseAsync(...args: Parameters<typeof acquireMergeLease>): Promise<ReturnType<typeof acquireMergeLease>> {
258
+ return getGateway().write("runtimeTail.acquireMergeLease", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof acquireMergeLease>>;
259
+ }
260
+
261
+ export function acquireMergePauseAsync(...args: Parameters<typeof acquireMergePause>): Promise<ReturnType<typeof acquireMergePause>> {
262
+ return getGateway().write("runtimeTail.acquireMergePause", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof acquireMergePause>>;
263
+ }
264
+
265
+ export async function promoteLineageCapturedResponseAsync(message: Parameters<typeof promoteLineageCapturedResponse>[0]): Promise<ReturnType<typeof promoteLineageCapturedResponse>> {
266
+ const value = await getGateway().write("runtimeTail.promoteLineageCapturedResponse", [message], { idempotencyKey: randomUUID() }) as unknown as {
267
+ result: ReturnType<typeof promoteLineageCapturedResponse>; deferred: Array<{ childId: string; messageId: number }>;
268
+ };
269
+ for (const effect of value.deferred) deferLineageReport(effect.childId, effect.messageId);
270
+ applyLineageReportEffects(value.result);
271
+ return value.result;
272
+ }
273
+
274
+ export function setProjectJournalFieldsAsync(...args: Parameters<typeof setProjectJournalFields>): Promise<ReturnType<typeof setProjectJournalFields>> {
275
+ return getGateway().write("runtimeTail.setProjectJournalFields", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof setProjectJournalFields>>;
276
+ }
277
+
278
+ export function upsertProjectTrustApprovalAsync(...args: Parameters<typeof upsertProjectTrustApproval>): Promise<ReturnType<typeof upsertProjectTrustApproval>> {
279
+ return getGateway().write("runtimeTail.upsertProjectTrustApproval", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof upsertProjectTrustApproval>>;
280
+ }
281
+
282
+ export function pruneOrphanedSharedWorkspacesAsync(...args: Parameters<typeof pruneOrphanedSharedWorkspaces>): Promise<ReturnType<typeof pruneOrphanedSharedWorkspaces>> {
283
+ return getGateway().write("runtimeTail.pruneOrphanedSharedWorkspaces", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof pruneOrphanedSharedWorkspaces>>;
284
+ }
285
+
286
+ export function pruneWorkspaceOrphanAlertsAsync(...args: Parameters<typeof pruneWorkspaceOrphanAlerts>): Promise<ReturnType<typeof pruneWorkspaceOrphanAlerts>> {
287
+ return getGateway().write("runtimeTail.pruneWorkspaceOrphanAlerts", args, { idempotencyKey: randomUUID() }) as unknown as Promise<ReturnType<typeof pruneWorkspaceOrphanAlerts>>;
288
+ }
@@ -0,0 +1,97 @@
1
+ import { redactCommandSecrets } from "../command-secrets";
2
+ import { pruneWorkspaceOrphanAlerts, pruneOrphanedSharedWorkspaces, claimWorkspaceOrphanAlert, claimWorkspaceHumanEscalationAlert, pruneStaleWorkspaceHumanEscalationAlerts, reelectRepoSteward } from "./workspaces";
3
+ import { upsertProjectTrustApproval } from "./project-trust-approvals";
4
+ import { setProjectJournalFields } from "./project-journal";
5
+ import { promoteLineageCapturedResponse, markSelfResumeContinuationIngested } from "./messages";
6
+ import { acquireMergePause, acquireMergeLease, releaseMergeLease, releaseExpiredMergeLeases, releaseExpiredMergePauses, renewMergePause, releaseMergePause } from "./merge-lease";
7
+ import { ingestIntegrationEvent, upsertIntegrationRegistry } from "./integrations";
8
+ import { refreshPendingLandQueueLease } from "./commands-claim-admission";
9
+ import { writeEntry, retractEntry } from "./blackboard";
10
+ import { fencePublishForPush, cancelPendingCommand } from "../commands-db";
11
+ import { setUserSecret, createAuthIdentity } from "./auth-identities";
12
+ import { markWorkspaceCarryPending, confirmWorkspaceCarryPendingForTask } from "./carry-pending-marker";
13
+ import { ensureContinuationEnvelope, updateContinuationObjective } from "./continuations";
14
+ import { releaseDriveLease, releaseExpiredDriveLeases } from "./drive-leases";
15
+ import { finishIdleDigestScan, updateIdleDigestScan, startIdleDigestWindow } from "./idle-digest";
16
+ import { associateIssue, removeAssociation } from "./issue-associations";
17
+ import { insertLandGateAttestation } from "./land-gate-attestations";
18
+ import { insertLandingReceipt } from "./landing-receipts";
19
+ import { recordIssueLifecycleComment } from "./long-running-work";
20
+ import { pauseMaintenanceJob, resumeMaintenanceJob } from "./maintenance-pauses";
21
+ import { updateOpenOperatorDecision, withdrawOpenOperatorDecision } from "./operator-decisions";
22
+ import { deleteOrchestratorRow } from "./orchestrators";
23
+ import { upsertTemplate, resetTemplate } from "./prompt-templates";
24
+ import { setReviewRefFenceToken, markReviewRefPublished, markReviewRefAnnounced, markReviewRefFailed, markReviewRefClosed, recordReviewRefCleanupDispatch, deleteReviewRefCleanup } from "./review-ref-cleanups";
25
+ import { insertTaskEvent } from "./task-core";
26
+ import { clearTeamIdleEntry, setTeamIdleEntry } from "./team-idle";
27
+ import { updateUserProfile, updateUserAccess } from "./users";
28
+ import { upsertTokenProfile, updateTokenProfile, deleteTokenProfile } from "../token-db";
29
+ import type { WriterOpSpec } from "./write-ops";
30
+
31
+ export const RUNTIME_TAIL_WRITE_OPS: Readonly<Record<string, WriterOpSpec>> = Object.freeze({
32
+ "runtimeTail.setUserSecret": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof setUserSecret>) => setUserSecret(...args) ?? null },
33
+ "runtimeTail.createAuthIdentity": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof createAuthIdentity>, ctx) => { const values: Parameters<typeof createAuthIdentity> = [...args]; values[1] ??= ctx.now; return createAuthIdentity(...values) ?? null; } },
34
+ "runtimeTail.retractEntry": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof retractEntry>, ctx) => { const values: Parameters<typeof retractEntry> = [...args]; values[1] ??= ctx.now; return retractEntry(...values) ?? null; } },
35
+ "runtimeTail.markWorkspaceCarryPending": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof markWorkspaceCarryPending>) => markWorkspaceCarryPending(...args) ?? null },
36
+ "runtimeTail.confirmWorkspaceCarryPendingForTask": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof confirmWorkspaceCarryPendingForTask>) => confirmWorkspaceCarryPendingForTask(...args) ?? null },
37
+ "runtimeTail.ensureContinuationEnvelope": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof ensureContinuationEnvelope>, ctx) => { const values: Parameters<typeof ensureContinuationEnvelope> = [...args]; values[1] ??= ctx.now; return ensureContinuationEnvelope(...values) ?? null; } },
38
+ "runtimeTail.updateContinuationObjective": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof updateContinuationObjective>, ctx) => { const values: Parameters<typeof updateContinuationObjective> = [...args]; values[1] ??= ctx.now; return updateContinuationObjective(...values) ?? null; } },
39
+ "runtimeTail.releaseDriveLease": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof releaseDriveLease>) => releaseDriveLease(...args) ?? null },
40
+ "runtimeTail.releaseExpiredDriveLeases": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof releaseExpiredDriveLeases>, ctx) => { const values: Parameters<typeof releaseExpiredDriveLeases> = [...args]; values[0] ??= ctx.now; return releaseExpiredDriveLeases(...values) ?? null; } },
41
+ "runtimeTail.finishIdleDigestScan": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof finishIdleDigestScan>) => finishIdleDigestScan(...args) ?? null },
42
+ "runtimeTail.updateIdleDigestScan": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof updateIdleDigestScan>) => updateIdleDigestScan(...args) ?? null },
43
+ "runtimeTail.startIdleDigestWindow": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof startIdleDigestWindow>) => startIdleDigestWindow(...args) ?? null },
44
+ "runtimeTail.associateIssue": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof associateIssue>, ctx) => { const values: Parameters<typeof associateIssue> = [...args]; values[4] ??= ctx.now; return associateIssue(...values) ?? null; } },
45
+ "runtimeTail.removeAssociation": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof removeAssociation>) => removeAssociation(...args) ?? null },
46
+ "runtimeTail.insertLandGateAttestation": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof insertLandGateAttestation>, ctx) => { const values: Parameters<typeof insertLandGateAttestation> = [...args]; values[1] ??= ctx.now; return insertLandGateAttestation(...values) ?? null; } },
47
+ "runtimeTail.insertLandingReceipt": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof insertLandingReceipt>, ctx) => { const values: Parameters<typeof insertLandingReceipt> = [...args]; values[1] ??= ctx.now; return insertLandingReceipt(...values) ?? null; } },
48
+ "runtimeTail.recordIssueLifecycleComment": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof recordIssueLifecycleComment>) => recordIssueLifecycleComment(...args) ?? null },
49
+ "runtimeTail.pauseMaintenanceJob": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof pauseMaintenanceJob>, ctx) => { const values: Parameters<typeof pauseMaintenanceJob> = [...args]; values[1] ??= ctx.now; return pauseMaintenanceJob(...values) ?? null; } },
50
+ "runtimeTail.resumeMaintenanceJob": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof resumeMaintenanceJob>) => resumeMaintenanceJob(...args) ?? null },
51
+ "runtimeTail.releaseMergeLease": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof releaseMergeLease>) => releaseMergeLease(...args) ?? null },
52
+ "runtimeTail.releaseExpiredMergeLeases": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof releaseExpiredMergeLeases>, ctx) => { const values: Parameters<typeof releaseExpiredMergeLeases> = [...args]; values[0] ??= ctx.now; return releaseExpiredMergeLeases(...values) ?? null; } },
53
+ "runtimeTail.releaseExpiredMergePauses": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof releaseExpiredMergePauses>, ctx) => { const values: Parameters<typeof releaseExpiredMergePauses> = [...args]; values[0] ??= ctx.now; return releaseExpiredMergePauses(...values) ?? null; } },
54
+ "runtimeTail.renewMergePause": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof renewMergePause>, ctx) => { const values: Parameters<typeof renewMergePause> = [...args]; values[2] ??= ctx.now; return renewMergePause(...values) ?? null; } },
55
+ "runtimeTail.releaseMergePause": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof releaseMergePause>) => releaseMergePause(...args) ?? null },
56
+ "runtimeTail.markSelfResumeContinuationIngested": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof markSelfResumeContinuationIngested>, ctx) => { const values: Parameters<typeof markSelfResumeContinuationIngested> = [...args]; values[1] ??= ctx.now; return markSelfResumeContinuationIngested(...values) ?? null; } },
57
+ "runtimeTail.updateOpenOperatorDecision": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof updateOpenOperatorDecision>, ctx) => { const values: Parameters<typeof updateOpenOperatorDecision> = [...args]; values[2] ??= ctx.now; return updateOpenOperatorDecision(...values) ?? null; } },
58
+ "runtimeTail.withdrawOpenOperatorDecision": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof withdrawOpenOperatorDecision>, ctx) => { const values: Parameters<typeof withdrawOpenOperatorDecision> = [...args]; values[1] ??= ctx.now; return withdrawOpenOperatorDecision(...values) ?? null; } },
59
+ "runtimeTail.deleteOrchestrator": { offLoop: true, idempotent: false, fn: (args: [string], ctx) => deleteOrchestratorRow(args[0], ctx.now) },
60
+ "runtimeTail.upsertTemplate": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof upsertTemplate>, ctx) => { const values: Parameters<typeof upsertTemplate> = [...args]; values[2] ??= ctx.now; return upsertTemplate(...values) ?? null; } },
61
+ "runtimeTail.resetTemplate": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof resetTemplate>, ctx) => { const values: Parameters<typeof resetTemplate> = [...args]; values[1] ??= ctx.now; return resetTemplate(...values) ?? null; } },
62
+ "runtimeTail.setReviewRefFenceToken": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof setReviewRefFenceToken>, ctx) => { const values: Parameters<typeof setReviewRefFenceToken> = [...args]; values[2] ??= ctx.now; return setReviewRefFenceToken(...values) ?? null; } },
63
+ "runtimeTail.markReviewRefPublished": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof markReviewRefPublished>, ctx) => { const values: Parameters<typeof markReviewRefPublished> = [...args]; values[2] ??= ctx.now; return markReviewRefPublished(...values) ?? null; } },
64
+ "runtimeTail.markReviewRefAnnounced": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof markReviewRefAnnounced>, ctx) => { const values: Parameters<typeof markReviewRefAnnounced> = [...args]; values[1] ??= ctx.now; return markReviewRefAnnounced(...values) ?? null; } },
65
+ "runtimeTail.markReviewRefFailed": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof markReviewRefFailed>, ctx) => { const values: Parameters<typeof markReviewRefFailed> = [...args]; values[1] ??= ctx.now; return markReviewRefFailed(...values) ?? null; } },
66
+ "runtimeTail.markReviewRefClosed": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof markReviewRefClosed>, ctx) => { const values: Parameters<typeof markReviewRefClosed> = [...args]; values[1] ??= ctx.now; return markReviewRefClosed(...values) ?? null; } },
67
+ "runtimeTail.recordReviewRefCleanupDispatch": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof recordReviewRefCleanupDispatch>, ctx) => { const values: Parameters<typeof recordReviewRefCleanupDispatch> = [...args]; values[3] ??= ctx.now; return recordReviewRefCleanupDispatch(...values) ?? null; } },
68
+ "runtimeTail.deleteReviewRefCleanup": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof deleteReviewRefCleanup>) => deleteReviewRefCleanup(...args) ?? null },
69
+ "runtimeTail.insertTaskEvent": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof insertTaskEvent>, ctx) => { const values: Parameters<typeof insertTaskEvent> = [...args]; values[2] ??= ctx.now; return insertTaskEvent(...values) ?? null; } },
70
+ "runtimeTail.clearTeamIdleEntry": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof clearTeamIdleEntry>) => clearTeamIdleEntry(...args) ?? null },
71
+ "runtimeTail.setTeamIdleEntry": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof setTeamIdleEntry>) => setTeamIdleEntry(...args) ?? null },
72
+ "runtimeTail.updateUserProfile": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof updateUserProfile>, ctx) => { const values: Parameters<typeof updateUserProfile> = [...args]; values[1] ??= ctx.now; return updateUserProfile(...values) ?? null; } },
73
+ "runtimeTail.updateUserAccess": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof updateUserAccess>, ctx) => { const values: Parameters<typeof updateUserAccess> = [...args]; values[1] ??= ctx.now; return updateUserAccess(...values) ?? null; } },
74
+ "runtimeTail.claimWorkspaceOrphanAlert": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof claimWorkspaceOrphanAlert>, ctx) => { const values: Parameters<typeof claimWorkspaceOrphanAlert> = [...args]; values[2] ??= ctx.now; return claimWorkspaceOrphanAlert(...values) ?? null; } },
75
+ "runtimeTail.claimWorkspaceHumanEscalationAlert": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof claimWorkspaceHumanEscalationAlert>, ctx) => { const values: Parameters<typeof claimWorkspaceHumanEscalationAlert> = [...args]; values[1] ??= ctx.now; return claimWorkspaceHumanEscalationAlert(...values) ?? null; } },
76
+ "runtimeTail.pruneStaleWorkspaceHumanEscalationAlerts": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof pruneStaleWorkspaceHumanEscalationAlerts>, ctx) => { const values: Parameters<typeof pruneStaleWorkspaceHumanEscalationAlerts> = [...args]; values[0] ??= ctx.now; return pruneStaleWorkspaceHumanEscalationAlerts(...values) ?? null; } },
77
+ "runtimeTail.reelectRepoSteward": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof reelectRepoSteward>) => reelectRepoSteward(...args) ?? null },
78
+ "runtimeTail.upsertTokenProfile": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof upsertTokenProfile>, ctx) => { const values: Parameters<typeof upsertTokenProfile> = [...args]; values[1] ??= ctx.now; return upsertTokenProfile(...values) ?? null; } },
79
+ "runtimeTail.updateTokenProfile": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof updateTokenProfile>) => updateTokenProfile(...args) ?? null },
80
+ "runtimeTail.deleteTokenProfile": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof deleteTokenProfile>) => deleteTokenProfile(...args) ?? null },
81
+ "runtimeTail.cancelPendingCommand": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof cancelPendingCommand>, ctx) => { const values: Parameters<typeof cancelPendingCommand> = [...args]; values[3] ??= ctx.now; return cancelPendingCommand(...values) ?? null; } },
82
+ "runtimeTail.fencePublishForPush": { offLoop: true, idempotent: false, serializeIdempotencyResult: value => value ? redactCommandSecrets(value as import("../types").Command) : null, fn: (args: Parameters<typeof fencePublishForPush>) => fencePublishForPush(...args) ?? null },
83
+ "runtimeTail.writeEntry": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof writeEntry>) => writeEntry(...args) ?? null },
84
+ "runtimeTail.refreshPendingLandQueueLease": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof refreshPendingLandQueueLease>, ctx) => { const values: Parameters<typeof refreshPendingLandQueueLease> = [...args]; values[1] ??= ctx.now; return refreshPendingLandQueueLease(...values) ?? null; } },
85
+ "runtimeTail.upsertIntegrationRegistry": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof upsertIntegrationRegistry>, ctx) => { const values: Parameters<typeof upsertIntegrationRegistry> = [...args]; values[1] ??= ctx.now; return upsertIntegrationRegistry(...values) ?? null; } },
86
+ "runtimeTail.ingestIntegrationEvent": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof ingestIntegrationEvent>) => ingestIntegrationEvent(...args) ?? null },
87
+ "runtimeTail.acquireMergeLease": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof acquireMergeLease>) => acquireMergeLease(...args) ?? null },
88
+ "runtimeTail.acquireMergePause": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof acquireMergePause>) => acquireMergePause(...args) ?? null },
89
+ "runtimeTail.promoteLineageCapturedResponse": { offLoop: true, idempotent: false, fn: (args: [Parameters<typeof promoteLineageCapturedResponse>[0]]) => {
90
+ const deferred: NonNullable<Parameters<typeof promoteLineageCapturedResponse>[1]> = [];
91
+ return { result: promoteLineageCapturedResponse(args[0], deferred), deferred };
92
+ } },
93
+ "runtimeTail.setProjectJournalFields": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof setProjectJournalFields>, ctx) => { const values: Parameters<typeof setProjectJournalFields> = [...args]; values[1] ??= ctx.now; return setProjectJournalFields(...values) ?? null; } },
94
+ "runtimeTail.upsertProjectTrustApproval": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof upsertProjectTrustApproval>, ctx) => { const values: Parameters<typeof upsertProjectTrustApproval> = [...args]; values[1] ??= ctx.now; return upsertProjectTrustApproval(...values) ?? null; } },
95
+ "runtimeTail.pruneOrphanedSharedWorkspaces": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof pruneOrphanedSharedWorkspaces>) => pruneOrphanedSharedWorkspaces(...args) ?? null },
96
+ "runtimeTail.pruneWorkspaceOrphanAlerts": { offLoop: true, idempotent: false, fn: (args: Parameters<typeof pruneWorkspaceOrphanAlerts>) => pruneWorkspaceOrphanAlerts(...args) ?? null },
97
+ });