@humwick/server 0.130.1 → 0.130.2

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 (437) hide show
  1. package/README.md +5 -0
  2. package/docs/guides/tools-administration.md +4 -0
  3. package/docs/guides/tools-coordination.md +1 -0
  4. package/docs/guides/tools-tasks.md +8 -0
  5. package/docs/guides/workflows.md +58 -0
  6. package/docs/openapi.json +414 -1
  7. package/package.json +8 -17
  8. package/public/assets/{MessageBubble-BWpoBjl4.js → MessageBubble-BWLqMGKG.js} +2 -2
  9. package/public/assets/{PlanGraphPanel-C0auck3n.js → PlanGraphPanel-3TlIQpjk.js} +2 -2
  10. package/public/assets/{TraceView-DBnOx7AQ.js → TraceView-Wimm0Czv.js} +2 -2
  11. package/public/assets/{VaultDecisionCard-0kp2oNBC.js → VaultDecisionCard-Bau_vNax.js} +2 -2
  12. package/public/assets/{activity-yLztXEBt.js → activity-CrSurn-r.js} +2 -2
  13. package/public/assets/{agent-lineage-BbJDR1dW.js → agent-lineage-CknAJKcb.js} +2 -2
  14. package/public/assets/agent-liveness-CaNwK0Zf.js +2 -0
  15. package/public/assets/{agent-name-CTZBrSD9.js → agent-name-DKbiIhBo.js} +2 -2
  16. package/public/assets/agent-profiles-DwF6EQ4R.js +2 -0
  17. package/public/assets/{agent-project-badge-9TqzUUYE.js → agent-project-badge-Diz4Sjjb.js} +2 -2
  18. package/public/assets/{agent-tools-D4n40pn8.js → agent-tools-CRhpRQza.js} +2 -2
  19. package/public/assets/{agent-type-icon-D6FUarOf.js → agent-type-icon-LrUEU3lB.js} +2 -2
  20. package/public/assets/{agents-BYDslkJc.js → agents-B-v66C-4.js} +2 -2
  21. package/public/assets/{analytics-B-XSbEMC.js → analytics-BqCb-LKi.js} +2 -2
  22. package/public/assets/{artifact-viewer-DdWIfV6M.js → artifact-viewer-kf4pGuAR.js} +2 -2
  23. package/public/assets/{artifacts-oBOqks-2.js → artifacts-D32zyw4Y.js} +2 -2
  24. package/public/assets/{artifacts-DPN1q4pA.js → artifacts-DJevXcvg.js} +2 -2
  25. package/public/assets/{automation-4KcRFXEu.js → automation-BpRajx_5.js} +2 -2
  26. package/public/assets/{backlog-Cw9xPTCF.js → backlog-D_UjTdzX.js} +2 -2
  27. package/public/assets/{busy-health-CTu32MZt.js → busy-health-N3VEh4ao.js} +2 -2
  28. package/public/assets/{channels-BiXzg1G9.js → channels-9jopungq.js} +2 -2
  29. package/public/assets/{chat-Ctk2qwvA.js → chat-CSXrTB3C.js} +2 -2
  30. package/public/assets/{code-preview-Bm1wWqAp.js → code-preview-p1NnmqK0.js} +2 -2
  31. package/public/assets/{connectors-C36ax4Vw.js → connectors-CZdqlDNL.js} +2 -2
  32. package/public/assets/{cosmos-Jj9LK2Wf.js → cosmos-BgdsE4dG.js} +2 -2
  33. package/public/assets/{crate-agent-H6S7-B9T.js → crate-agent-30aXTKva.js} +2 -2
  34. package/public/assets/{dependency-graph-Cd1E23wa.js → dependency-graph-B_jvw2GE.js} +2 -2
  35. package/public/assets/{deploys-Bwfq146q.js → deploys-DoN6bAb5.js} +2 -2
  36. package/public/assets/{display-CfO7rTuF.js → display-BrKWFGJz.js} +2 -2
  37. package/public/assets/{files-DhhZI2Ih.js → files-D6XEu8Ng.js} +2 -2
  38. package/public/assets/{fleet-B_rFEbnL.js → fleet-C7jQWbw2.js} +2 -2
  39. package/public/assets/{fleet-metrics-BkHP-P3R.js → fleet-metrics-BiDs3MLx.js} +2 -2
  40. package/public/assets/{formatted-body-Cm1RrzmN.js → formatted-body-CQBwc1fb.js} +3 -3
  41. package/public/assets/{formatted-body-impl-DQiOuOD1.js → formatted-body-impl-DyG0WsQS.js} +2 -2
  42. package/public/assets/{host-providers-dialog-CHqwXTov.js → host-providers-dialog-DKaW31dN.js} +2 -2
  43. package/public/assets/index-CRHep3M9.js +15 -0
  44. package/public/assets/index-MYAIwYTX.css +2 -0
  45. package/public/assets/{insights-fH1EL-qZ.js → insights-CzrtkpOE.js} +2 -2
  46. package/public/assets/{integrations-C5Oix6ng.js → integrations-aVsUmigt.js} +2 -2
  47. package/public/assets/{issue-ref-chip-ODyondIa.js → issue-ref-chip-BnSlM_95.js} +2 -2
  48. package/public/assets/{log-viewer-Cvfy6PW7.js → log-viewer-qe7Ee47Z.js} +2 -2
  49. package/public/assets/{maintenance-D8CDH5wZ.js → maintenance-NfjqFZAk.js} +2 -2
  50. package/public/assets/{managed-agents-egllbpij.js → managed-agents-BiH0HgaE.js} +2 -2
  51. package/public/assets/{markdown-preview-CYSFgVgK.js → markdown-preview-BixaT3Xr.js} +3 -3
  52. package/public/assets/{markdown-preview-impl-BteVIjX4.js → markdown-preview-impl-DNGlWIS3.js} +2 -2
  53. package/public/assets/{memory-C8WmXsyr.js → memory-DNsCl6UX.js} +2 -2
  54. package/public/assets/{messages-BzQdqlO6.js → messages-DopU1L1X.js} +2 -2
  55. package/public/assets/{orchestrators-B1HxzkNw.js → orchestrators-Cq7ckLQT.js} +2 -2
  56. package/public/assets/{overview-DCUnI4Z7.js → overview-C1DCTzzV.js} +2 -2
  57. package/public/assets/{pairs-ftCd2XcD.js → pairs-DE_m6rrE.js} +2 -2
  58. package/public/assets/{profile-icon-B2zH8DMH.js → profile-icon-B3rfh77F.js} +2 -2
  59. package/public/assets/project-profile-instructions-DQWZE0kA.js +2 -0
  60. package/public/assets/projects-Br2Bd2h1.js +2 -0
  61. package/public/assets/{prompt-settings-Bftq9czX.js → prompt-settings-BKvFsvGD.js} +2 -2
  62. package/public/assets/provider-display-DsuWMvVL.js +2 -0
  63. package/public/assets/{registry-DWCU5c8q.js → registry-Cw38_6gW.js} +2 -2
  64. package/public/assets/run-card-CpKqRbhg.js +2 -0
  65. package/public/assets/scroll-text-BKXS1ahr.js +2 -0
  66. package/public/assets/{secrets-C7GIUATz.js → secrets-DxI-vzSq.js} +2 -2
  67. package/public/assets/{service-access-settings-C3aujqTG.js → service-access-settings-D9s_VJbd.js} +2 -2
  68. package/public/assets/{settings-C6sZ9eBa.js → settings-CKZTVGIx.js} +2 -2
  69. package/public/assets/{shipping-Bu8p1gEw.js → shipping-B9YtnwtG.js} +2 -2
  70. package/public/assets/{stats-V9Z-GxUd.js → stats-DyUBKyWI.js} +2 -2
  71. package/public/assets/{status-dot-CVv0iGHL.js → status-dot-DYqlEUhJ.js} +2 -2
  72. package/public/assets/{store-BvtFdlGX.js → store-DcClXLH0.js} +3 -3
  73. package/public/assets/{tasks-CXU75HRF.js → tasks-Bh7Chr4-.js} +2 -2
  74. package/public/assets/{teams-BPf976zb.js → teams-bowI7qVY.js} +2 -2
  75. package/public/assets/{terminal-viewer-DE9BOe-8.js → terminal-viewer-BgVLHdsU.js} +3 -3
  76. package/public/assets/{terminal-viewer-impl-D04pjmGh.js → terminal-viewer-impl-Dz22UPy6.js} +2 -2
  77. package/public/assets/token-estimate-Co-Jdphh.js +2 -0
  78. package/public/assets/{use-agent-terminal-B1yR456R.js → use-agent-terminal-DSQQ-iY7.js} +2 -2
  79. package/public/assets/{use-decisions-D-S4tpDf.js → use-decisions-samMQhQf.js} +2 -2
  80. package/public/assets/use-project-list-59LheVP7.js +2 -0
  81. package/public/assets/{use-selectors-CnrAk2YP.js → use-selectors-BZa25xEB.js} +2 -2
  82. package/public/assets/{user-avatar-nBFIcR4M.js → user-avatar-DHxlvUvV.js} +2 -2
  83. package/public/assets/versioned-prompt-editor-BmED5DnJ.js +8 -0
  84. package/public/assets/{work-queue-TCjJxeT-.js → work-queue-CSvpuNLz.js} +2 -2
  85. package/public/assets/{workflow-marker-Cf3Hf2fN.js → workflow-marker-DAZcj5qt.js} +2 -2
  86. package/public/assets/{workflows-CXQX20Qj.js → workflows-DdmxRSyg.js} +2 -2
  87. package/public/assets/{workspaces-qSYzKYMA.js → workspaces-BxeKfVuF.js} +2 -2
  88. package/public/cosmos.html +4 -4
  89. package/public/index.html +31 -29
  90. package/runner/plugins/claude/.claude-plugin/plugin.json +1 -1
  91. package/runner/plugins/claude/hooks/gate-run-guard.provisioned.mjs +31 -1
  92. package/runner/src/adapters/claude-effort.ts +2 -4
  93. package/runner/src/adapters/codex-launch-config.ts +4 -5
  94. package/runner/src/adapters/codex.ts +1 -1
  95. package/runner/src/adapters/opencode-provider.ts +7 -22
  96. package/runner/src/adapters/opencode.ts +4 -4
  97. package/runner/src/agent-runner/credentials.ts +42 -12
  98. package/runner/src/agent-runner/inbox.ts +27 -0
  99. package/runner/src/agent-runner/lifecycle-milestones.ts +0 -2
  100. package/runner/src/bin/claude.ts +4 -0
  101. package/runner/src/bin/codex.ts +4 -0
  102. package/runner/src/bin/opencode.ts +4 -0
  103. package/runner/src/index.ts +5 -2
  104. package/runner/src/provider-setup.ts +34 -0
  105. package/runner/src/providers.ts +2 -1
  106. package/runner/src/runner-core.ts +18 -23
  107. package/runner/src/spawn-input.ts +2 -1
  108. package/runner/src/test-run-dedup.ts +59 -56
  109. package/scripts/cd-config.ts +8 -0
  110. package/scripts/gate-run-lease.ts +10 -7
  111. package/scripts/gate.sh +5 -1
  112. package/src/branch-land-notice.ts +93 -0
  113. package/src/branch-landed.ts +7 -76
  114. package/src/bus.ts +19 -20
  115. package/src/cd-deploy-notify.ts +30 -2
  116. package/src/cd-host-lag-notify.ts +7 -6
  117. package/src/ci/incidents.ts +2 -2
  118. package/src/ci/monitor.ts +5 -8
  119. package/src/ci/root-missing.ts +2 -7
  120. package/src/ci/transition-notify.ts +7 -39
  121. package/src/cli/cd-pauses.ts +19 -0
  122. package/src/cli/orchestrator.ts +1 -1
  123. package/src/cli/state.ts +2 -19
  124. package/src/cli/task-edit.ts +22 -0
  125. package/src/cli/task.ts +3 -1
  126. package/src/cli/workflow.ts +8 -2
  127. package/src/commands-db.ts +3 -3
  128. package/src/config-store-write.ts +13 -1
  129. package/src/config-store.ts +25 -14
  130. package/src/db/activity-async.ts +6 -1
  131. package/src/db/activity-write-ops.ts +12 -1
  132. package/src/db/activity.ts +1 -14
  133. package/src/db/agent-search.ts +1 -15
  134. package/src/db/agents-async.ts +52 -5
  135. package/src/db/agents-write-ops.ts +12 -3
  136. package/src/db/agents.ts +81 -54
  137. package/src/db/ci-incidents-async.ts +5 -5
  138. package/src/db/ci-incidents-write-ops.ts +2 -2
  139. package/src/db/command-row.ts +10 -2
  140. package/src/db/commands-list-query.ts +2 -0
  141. package/src/db/commands-spawn-read.ts +1 -1
  142. package/src/db/config-store-write-ops.ts +7 -2
  143. package/src/db/continuation-archives-async.ts +5 -0
  144. package/src/db/continuation-archives-write-ops.ts +7 -0
  145. package/src/db/continuations.ts +2 -2
  146. package/src/db/db-writer-worker.ts +8 -1
  147. package/src/db/deploy-events-async.ts +1 -0
  148. package/src/db/deploy-events-read-ops.ts +2 -1
  149. package/src/db/deploy-events.ts +35 -4
  150. package/src/db/hosts-registration.ts +10 -2
  151. package/src/db/hosts.ts +9 -6
  152. package/src/db/inbox.ts +0 -14
  153. package/src/db/index.ts +2 -0
  154. package/src/db/integrations-async.ts +8 -0
  155. package/src/db/integrations-ops.ts +15 -0
  156. package/src/db/integrations.ts +15 -21
  157. package/src/db/issue-lifecycle.ts +3 -4
  158. package/src/db/issue-refs-async.ts +20 -0
  159. package/src/db/issue-refs-write-ops.ts +29 -0
  160. package/src/db/issue-refs.ts +7 -8
  161. package/src/db/long-running-work.ts +2 -2
  162. package/src/db/main-connection-writes.ts +23 -2
  163. package/src/db/maintenance-job-reconcile.ts +61 -0
  164. package/src/db/maintenance-job-runs-async.ts +14 -0
  165. package/src/db/maintenance-job-write-ops.ts +9 -0
  166. package/src/db/mappers.ts +2 -14
  167. package/src/db/merge-lease.ts +1 -15
  168. package/src/db/migrations.ts +7 -15
  169. package/src/db/orchestrators.ts +4 -72
  170. package/src/db/pairs.ts +1 -13
  171. package/src/db/project-profile-instructions.ts +50 -0
  172. package/src/db/prompt-versions.ts +9 -2
  173. package/src/db/provider-config-history.ts +8 -3
  174. package/src/db/provider-model-seed.ts +34 -0
  175. package/src/db/read-op-marshaling-fixtures.ts +5 -0
  176. package/src/db/read-ops.ts +4 -0
  177. package/src/db/routing-policy.ts +2 -3
  178. package/src/db/schema.ts +9 -3
  179. package/src/db/spawn-delegation-state.ts +11 -4
  180. package/src/db/stats-async.ts +4 -3
  181. package/src/db/task-entity.ts +23 -2
  182. package/src/db/task-list.ts +3 -1
  183. package/src/db/tasks.ts +1 -17
  184. package/src/db/timer-ingress.ts +7 -1
  185. package/src/db/token-db-write-ops.ts +17 -0
  186. package/src/db/token-standing.ts +15 -11
  187. package/src/db/workflow-contact.ts +1 -1
  188. package/src/db/workflow-task-read-ops.ts +30 -0
  189. package/src/db/write-ops.ts +6 -0
  190. package/src/db/writer-gateway.ts +17 -11
  191. package/src/dispatch-availability.ts +10 -6
  192. package/src/ephemeral/{landing-ingress-proof-worker.ts → landing-ingress-proof.test-fixture.ts} +4 -2
  193. package/src/host/disk-alert.ts +121 -0
  194. package/src/lifecycle-manager.ts +3 -2
  195. package/src/maintenance/cd-watcher.ts +3 -3
  196. package/src/maintenance/critical-job-watchdog.ts +16 -17
  197. package/src/maintenance/index.ts +1 -0
  198. package/src/maintenance/jobs.ts +3 -2
  199. package/src/maintenance/scheduler.ts +84 -128
  200. package/src/maintenance/stalled-delivery-pager.ts +6 -5
  201. package/src/maintenance/workspaces.ts +1 -1
  202. package/src/managed-policy.ts +31 -27
  203. package/src/mcp/index.ts +5 -2
  204. package/src/mcp/output-descriptions.ts +8 -8
  205. package/src/mcp/presentation.ts +4 -4
  206. package/src/mcp/project-profile-instructions.ts +32 -0
  207. package/src/mcp/tool-groups.ts +1 -1
  208. package/src/mcp/tools-spawn.ts +4 -3
  209. package/src/mcp-agent-action.ts +1 -2
  210. package/src/mcp-issue-ref-tools.ts +12 -11
  211. package/src/mcp-maintenance-tools.ts +2 -2
  212. package/src/mcp-profile-trust-tools.ts +4 -4
  213. package/src/mcp-provider-catalog.ts +2 -2
  214. package/src/mcp-task-tools.ts +11 -5
  215. package/src/mcp-team-template-tools.ts +3 -3
  216. package/src/mcp-workflow-tools.ts +10 -3
  217. package/src/notification-types.ts +2 -1
  218. package/src/operator-alarm.ts +26 -11
  219. package/src/project-instructions.ts +4 -0
  220. package/src/project-profile-instruction-text.ts +6 -0
  221. package/src/project-profile-instructions.ts +20 -0
  222. package/src/provider-catalog-store.ts +3 -49
  223. package/src/provider-config-store.ts +12 -11
  224. package/src/provider-model-seed.ts +1 -18
  225. package/src/provider-quota-config-store.ts +5 -4
  226. package/src/provider-secrets.test-fixture.ts +3 -3
  227. package/src/recipe-runner.ts +2 -2
  228. package/src/repo-config-source.ts +10 -4
  229. package/src/routes/agent-profiles.ts +6 -6
  230. package/src/routes/agents-spawn.ts +1 -1
  231. package/src/routes/agents.ts +6 -6
  232. package/src/routes/commands-listing.ts +4 -0
  233. package/src/routes/commands.ts +2 -2
  234. package/src/routes/continuation-archives.ts +2 -2
  235. package/src/routes/index.ts +10 -1
  236. package/src/routes/integrations.ts +24 -50
  237. package/src/routes/issue-refs.ts +7 -7
  238. package/src/routes/orchestrator-bootstrap.ts +1 -1
  239. package/src/routes/orchestrator-host-registration.ts +2 -2
  240. package/src/routes/orchestrator-host-utilization.ts +3 -1
  241. package/src/routes/orchestrator-proxy.ts +2 -2
  242. package/src/routes/orchestrator.ts +2 -2
  243. package/src/routes/project-profile-instructions.ts +27 -0
  244. package/src/routes/project-trust.ts +2 -2
  245. package/src/routes/provider-config.ts +6 -6
  246. package/src/routes/provider-quota-config.ts +2 -2
  247. package/src/routes/settings.ts +5 -5
  248. package/src/routes/stats.ts +6 -6
  249. package/src/routes/task-http.ts +15 -1
  250. package/src/routes/task-issues.ts +11 -26
  251. package/src/routes/tasks.ts +22 -53
  252. package/src/routes/team-templates.ts +5 -5
  253. package/src/routes/teams-config.ts +2 -2
  254. package/src/routes/tokens.ts +12 -5
  255. package/src/routes/workflows.ts +20 -5
  256. package/src/routing-policy-normalize.ts +1 -2
  257. package/src/routing-step-defaults.ts +0 -2
  258. package/src/runner-token-mint-limit.ts +63 -0
  259. package/src/runtime-grant.ts +4 -2
  260. package/src/runtime-tokens.ts +39 -7
  261. package/src/security.ts +13 -20
  262. package/src/server-background.ts +1 -1
  263. package/src/server.ts +5 -2
  264. package/src/services/host-utilization.ts +23 -0
  265. package/src/services/idle-epics.ts +5 -6
  266. package/src/services/issue-lifecycle.ts +57 -61
  267. package/src/services/issue-refs.ts +9 -13
  268. package/src/services/kernel-timers-cutover-chaos-worker.ts +10 -7
  269. package/src/services/kernel-timers-ingress.ts +1 -1
  270. package/src/services/landed-ancestry.ts +19 -3
  271. package/src/services/memory-areas.ts +15 -51
  272. package/src/services/plan-ci-notice.ts +57 -0
  273. package/src/services/plan-ci-recovery.ts +2 -55
  274. package/src/services/plan-wake-digest.ts +1 -0
  275. package/src/services/profile-trust.ts +4 -3
  276. package/src/services/project-config-read.ts +70 -0
  277. package/src/services/project-profile-instructions.ts +54 -0
  278. package/src/services/provisioning-harness/budget-baseline.json +4 -4
  279. package/src/services/restart-spawn.ts +61 -49
  280. package/src/services/self-care-state.ts +2 -1
  281. package/src/services/self-effort.ts +5 -5
  282. package/src/services/send-message.ts +5 -1
  283. package/src/services/spawn-agent.ts +13 -2
  284. package/src/services/spawn-chain-inspector.ts +6 -13
  285. package/src/services/spawn-policy.ts +68 -0
  286. package/src/services/spawn-tree-cleanup.ts +2 -2
  287. package/src/services/task-dispatch.ts +3 -0
  288. package/src/services/task-state-reconcile.ts +6 -14
  289. package/src/services/team-templates.ts +9 -8
  290. package/src/services/transient-agent-reaper.ts +3 -1
  291. package/src/services/workflow-auto-start.ts +25 -13
  292. package/src/services/workflow-ci-main.ts +1 -1
  293. package/src/services/workflow-deferred-cleanup.ts +4 -2
  294. package/src/services/workflow-effect-driver.ts +2 -0
  295. package/src/services/workflow-effects.ts +18 -11
  296. package/src/services/workflow-land-notice.ts +10 -0
  297. package/src/services/workflow-pause-text.ts +43 -0
  298. package/src/services/workflow-reconcile.ts +13 -11
  299. package/src/services/workflow-run-view.ts +2 -0
  300. package/src/services/workflow-runs.ts +29 -13
  301. package/src/services/workflow-supervisor-state.ts +5 -0
  302. package/src/services/workflow-supervisor.ts +7 -3
  303. package/src/settings/registry.ts +1 -2
  304. package/src/spawn-command.ts +4 -4
  305. package/src/spawn-models.ts +10 -12
  306. package/src/spawn-placement.ts +1 -1
  307. package/src/spawn-targets.ts +1 -1
  308. package/src/startup-context-injection.ts +1 -0
  309. package/src/state-adoption/cd-cutover.ts +53 -7
  310. package/src/state-adoption/fleet-cutover.ts +35 -0
  311. package/src/state-adoption/fleet-plan.ts +36 -0
  312. package/src/state-adoption/index.ts +2 -2
  313. package/src/state-adoption/linux-plan.ts +2 -2
  314. package/src/state-adoption/linux.ts +2 -2
  315. package/src/state-adoption/macos-plan.ts +2 -2
  316. package/src/state-adoption/macos.ts +1 -1
  317. package/src/steward.ts +7 -6
  318. package/src/task-dispatch-live.ts +1 -1
  319. package/src/task-dispatcher.ts +1 -1
  320. package/src/teams-config-store.ts +4 -3
  321. package/src/token-db-write.ts +10 -0
  322. package/src/workspace-command-settle.ts +2 -1
  323. package/src/workspace-steward-wake.ts +2 -2
  324. package/node_modules/@humwick/kernel/LICENSE +0 -167
  325. package/node_modules/@humwick/kernel/async-entity-persistence.ts +0 -344
  326. package/node_modules/@humwick/kernel/async-event-log.ts +0 -107
  327. package/node_modules/@humwick/kernel/automations.pilot.ts +0 -147
  328. package/node_modules/@humwick/kernel/config.ts +0 -111
  329. package/node_modules/@humwick/kernel/contract.ts +0 -572
  330. package/node_modules/@humwick/kernel/control-authz.ts +0 -281
  331. package/node_modules/@humwick/kernel/control.ts +0 -645
  332. package/node_modules/@humwick/kernel/effects.ts +0 -493
  333. package/node_modules/@humwick/kernel/event-log.ts +0 -319
  334. package/node_modules/@humwick/kernel/http-transport.ts +0 -384
  335. package/node_modules/@humwick/kernel/identity-grammar.ts +0 -20
  336. package/node_modules/@humwick/kernel/identity.ts +0 -248
  337. package/node_modules/@humwick/kernel/index.ts +0 -28
  338. package/node_modules/@humwick/kernel/kernel-persistence.ts +0 -181
  339. package/node_modules/@humwick/kernel/landing-incident.ts +0 -306
  340. package/node_modules/@humwick/kernel/landing.ts +0 -953
  341. package/node_modules/@humwick/kernel/manifest-validation.ts +0 -460
  342. package/node_modules/@humwick/kernel/mcp-transport.ts +0 -109
  343. package/node_modules/@humwick/kernel/message-authority-chaos-worker.ts +0 -200
  344. package/node_modules/@humwick/kernel/message-authority.ts +0 -281
  345. package/node_modules/@humwick/kernel/module-host.ts +0 -722
  346. package/node_modules/@humwick/kernel/openapi-init.ts +0 -14
  347. package/node_modules/@humwick/kernel/package.json +0 -39
  348. package/node_modules/@humwick/kernel/persistence-schema.ts +0 -248
  349. package/node_modules/@humwick/kernel/persistence.ts +0 -510
  350. package/node_modules/@humwick/kernel/registry.ts +0 -60
  351. package/node_modules/@humwick/kernel/sqlite-kernel-persistence.ts +0 -499
  352. package/node_modules/@humwick/kernel/sqlite-module-host.ts +0 -87
  353. package/node_modules/@humwick/kernel/timers-chaos-worker.ts +0 -186
  354. package/node_modules/@humwick/kernel/timers.pilot.ts +0 -1411
  355. package/node_modules/@humwick/kernel/workflow-activation.ts +0 -25
  356. package/node_modules/@humwick/kernel/workflow-backstop.ts +0 -40
  357. package/node_modules/@humwick/kernel/workflow-cancel-tree.ts +0 -20
  358. package/node_modules/@humwick/kernel/workflow-chaos-worker.ts +0 -213
  359. package/node_modules/@humwick/kernel/workflow-composition.ts +0 -231
  360. package/node_modules/@humwick/kernel/workflow-container.ts +0 -72
  361. package/node_modules/@humwick/kernel/workflow-control.test-fixture.ts +0 -42
  362. package/node_modules/@humwick/kernel/workflow-control.ts +0 -178
  363. package/node_modules/@humwick/kernel/workflow-definition.ts +0 -507
  364. package/node_modules/@humwick/kernel/workflow-dispatch.ts +0 -60
  365. package/node_modules/@humwick/kernel/workflow-foreach.ts +0 -167
  366. package/node_modules/@humwick/kernel/workflow-journal-codec.ts +0 -339
  367. package/node_modules/@humwick/kernel/workflow-journal.ts +0 -922
  368. package/node_modules/@humwick/kernel/workflow-lane.ts +0 -48
  369. package/node_modules/@humwick/kernel/workflow-lease-owner.ts +0 -60
  370. package/node_modules/@humwick/kernel/workflow-recovery.test-fixture.ts +0 -19
  371. package/node_modules/@humwick/kernel/workflow-runtime.ts +0 -938
  372. package/node_modules/@humwick/kernel/workflow-script.ts +0 -11
  373. package/node_modules/@humwick/kernel/workflow-state.ts +0 -299
  374. package/node_modules/@humwick/kernel/workflow-step-commit.ts +0 -195
  375. package/node_modules/@humwick/kernel/workflow-transitions.ts +0 -317
  376. package/node_modules/@humwick/kernel/workflow-values.ts +0 -153
  377. package/node_modules/@humwick/kernel/workflow.pilot.ts +0 -376
  378. package/node_modules/@humwick/offload/LICENSE +0 -167
  379. package/node_modules/@humwick/offload/README.md +0 -57
  380. package/node_modules/@humwick/offload/dist/async-runner.d.ts +0 -18
  381. package/node_modules/@humwick/offload/dist/async-runner.d.ts.map +0 -1
  382. package/node_modules/@humwick/offload/dist/async-runner.js +0 -158
  383. package/node_modules/@humwick/offload/dist/async-runner.js.map +0 -1
  384. package/node_modules/@humwick/offload/dist/envelope.d.ts +0 -25
  385. package/node_modules/@humwick/offload/dist/envelope.d.ts.map +0 -1
  386. package/node_modules/@humwick/offload/dist/envelope.js +0 -80
  387. package/node_modules/@humwick/offload/dist/envelope.js.map +0 -1
  388. package/node_modules/@humwick/offload/dist/fixtures/worker-task.d.ts +0 -10
  389. package/node_modules/@humwick/offload/dist/fixtures/worker-task.d.ts.map +0 -1
  390. package/node_modules/@humwick/offload/dist/fixtures/worker-task.js +0 -59
  391. package/node_modules/@humwick/offload/dist/fixtures/worker-task.js.map +0 -1
  392. package/node_modules/@humwick/offload/dist/index.d.ts +0 -5
  393. package/node_modules/@humwick/offload/dist/index.d.ts.map +0 -1
  394. package/node_modules/@humwick/offload/dist/index.js +0 -5
  395. package/node_modules/@humwick/offload/dist/index.js.map +0 -1
  396. package/node_modules/@humwick/offload/dist/subprocess-runner.d.ts +0 -62
  397. package/node_modules/@humwick/offload/dist/subprocess-runner.d.ts.map +0 -1
  398. package/node_modules/@humwick/offload/dist/subprocess-runner.js +0 -295
  399. package/node_modules/@humwick/offload/dist/subprocess-runner.js.map +0 -1
  400. package/node_modules/@humwick/offload/dist/types.d.ts +0 -111
  401. package/node_modules/@humwick/offload/dist/types.d.ts.map +0 -1
  402. package/node_modules/@humwick/offload/dist/types.js +0 -176
  403. package/node_modules/@humwick/offload/dist/types.js.map +0 -1
  404. package/node_modules/@humwick/offload/dist/worker-pool.d.ts +0 -23
  405. package/node_modules/@humwick/offload/dist/worker-pool.d.ts.map +0 -1
  406. package/node_modules/@humwick/offload/dist/worker-pool.js +0 -435
  407. package/node_modules/@humwick/offload/dist/worker-pool.js.map +0 -1
  408. package/node_modules/@humwick/offload/dist/worker-runtime.d.ts +0 -2
  409. package/node_modules/@humwick/offload/dist/worker-runtime.d.ts.map +0 -1
  410. package/node_modules/@humwick/offload/dist/worker-runtime.js +0 -27
  411. package/node_modules/@humwick/offload/dist/worker-runtime.js.map +0 -1
  412. package/node_modules/@humwick/offload/dist/worker.d.ts +0 -5
  413. package/node_modules/@humwick/offload/dist/worker.d.ts.map +0 -1
  414. package/node_modules/@humwick/offload/dist/worker.js +0 -1
  415. package/node_modules/@humwick/offload/dist/worker.js.map +0 -1
  416. package/node_modules/@humwick/offload/package.json +0 -42
  417. package/node_modules/@humwick/offload/src/async-runner.ts +0 -170
  418. package/node_modules/@humwick/offload/src/envelope.ts +0 -92
  419. package/node_modules/@humwick/offload/src/fixtures/worker-task.ts +0 -49
  420. package/node_modules/@humwick/offload/src/index.ts +0 -4
  421. package/node_modules/@humwick/offload/src/subprocess-runner.ts +0 -334
  422. package/node_modules/@humwick/offload/src/types.ts +0 -235
  423. package/node_modules/@humwick/offload/src/worker-pool.ts +0 -463
  424. package/node_modules/@humwick/offload/src/worker-runtime.ts +0 -32
  425. package/node_modules/@humwick/offload/src/worker.ts +0 -5
  426. package/public/assets/agent-liveness-DyqxfB-t.js +0 -2
  427. package/public/assets/agent-profiles-BpI_jTxq.js +0 -2
  428. package/public/assets/index-B7ZerHLY.css +0 -2
  429. package/public/assets/index-BU3uWo2t.js +0 -15
  430. package/public/assets/projects-B_lmcqfO.js +0 -2
  431. package/public/assets/provider-display-DbLWpP3j.js +0 -2
  432. package/public/assets/run-card-CO_bguQf.js +0 -2
  433. package/public/assets/use-project-list-B-T2Bnnn.js +0 -2
  434. package/public/assets/versioned-prompt-editor-Diu8BIaM.js +0 -8
  435. package/runner/src/gate-run-lease-probe.ts +0 -38
  436. package/src/db/claude-catalog-reconcile.ts +0 -27
  437. package/src/routing-model-aliases.ts +0 -21
package/README.md CHANGED
@@ -77,6 +77,11 @@ claude plugin install agent-relay@agent-relay
77
77
 
78
78
  **Codex** (requires Bun + Codex CLI):
79
79
 
80
+ First run `codex login` in the same home you will use for the runner. For Claude,
81
+ run `claude auth login` and complete the standalone CLI’s first-run setup. Runners
82
+ check that login before becoming ready. Setup errors appear on the dashboard and
83
+ are returned when sending a message.
84
+
80
85
  ```bash
81
86
  bun install -g @humwick/runner@latest
82
87
  codex-humwick --cwd /path/to/project
@@ -82,3 +82,7 @@ List, inspect, apply, reconcile or test profile service access through Relay, or
82
82
  ## relay_prompt
83
83
 
84
84
  Read or change versioned prompt text with `operation`: `list`, `get`, `history`, `edit`, `restore`, or `adopt`. Supply `slug` except for list. `list` pages slug, title, version, status and a short description; `get` returns the complete template. Edits supply `template`; restore supplies `version`. All writes require the last read `expectedVersion` and accept an optional `reason`. Conflicts return status 409 and `current`. The actor is the user or the single agent identified by the credential; request bodies cannot set it. The tool uses `agent:write`, belongs to the `prompts` group, and is available only with `HUMWICK_VERSIONED_PROMPTS=1`. Reads expose `source`, `fallbackReason`, and `warning` when bundled text replaces an unavailable DB value. CLI: `humwick prompts`; write JSON via `--file` or `--stdin`.
85
+
86
+ ## relay_project_profile_instructions
87
+
88
+ Read project additions to a profile with `operation: get`, `projectId` and `profile`. An unset addition has empty `template` and `version: 0`. Use `set` with `template` and the last read `expectedVersion`; empty text removes the addition from context. `history` returns revision texts for comparison with actor, time and reason. `restore` takes a historical `version` and current `expectedVersion`, appending a new revision. Stale writes return 409 with `current`. `list` accepts either projectId (all profiles) or profile (all projects). Reads need `agent:read`; writes also need `agent:write`. The tool belongs to `prompts`. Text applies after the global charter to launches and context resets in that project, including roles extending the profile. The limit is 16000 characters; control bytes are rejected. Invalid stored text is skipped at launch with a named warning.
@@ -200,6 +200,7 @@ Coordinator-only (#3045): after a workflow escalation (a bound hit, a failed or
200
200
  - `step`: Where to re-enter: a declared step, land (an explicit override of the review verdict) or, after the land, ci-main. Default: the step that escalated.
201
201
  - `note`: Your decision for the step's agent (what to fix, what to ignore).
202
202
  - `pins`: Per-step pins { <step>: { provider?, model?, effort?, orchestratorId?, profile? } }. Each field set wins over the YAML step's same field, which wins over the role file, which wins over the Task's dispatch policy. A provider pin wins over the step's crossProvider. A model pin needs its provider (here or in the YAML). `profile` replaces the base profile the step's role extends (e.g. worker-gui for a UI builder). An invalid pin for its host fails the call before anything spawns.
203
+ - `pause`: true pauses a running run, false unpauses it (#3757); pass only `runId` and, to pause, `note` as the required reason. A paused run keeps its agents, workspace and history; a working step agent is not interrupted, but the run goes past no seam (no step spawns, no delivery is routed, no review starts, no land is armed) and escalates nothing. Its step deadline, backstop and land wait stand still and continue with the time they had left on unpause. A delivery made while paused is routed on unpause. relay_workflow_get shows `paused` {by, at, reason}; you get a notice on pause and unpause, and your next context generation lists your team's paused runs. Cancel still ends a paused run.
203
204
 
204
205
  ## relay_workflow_start
205
206
 
@@ -76,6 +76,8 @@ Confirm a #1456 carry-pending Task: assert the delivered change discarded by a m
76
76
 
77
77
  ## relay_task_create
78
78
 
79
+ `onDeploy` is an optional follow-up of up to 500 characters. It appears under the Task in the deploy notice. Set it through MCP/HTTP create or `humwick task create --title TEXT --intent TEXT --on-deploy TEXT`.
80
+
79
81
  Create a durable deliverable Task (#834). Owns execution telemetry (status, stage, gates, branch, commits, deps); references GitHub issue(s) for intent/spec. Optionally seed issue refs and dependencies. Returns id, status, issue refs and review-hold state; pass verbose:true for the full Task.
80
82
 
81
83
  - `label`: alias for title; concise task label
@@ -86,6 +88,7 @@ Create a durable deliverable Task (#834). Owns execution telemetry (status, stag
86
88
  - `doneWhen`: exit predicate / acceptance for execution
87
89
  - `repo`: owner/repo for the task's project/repository
88
90
  - `branch`: optional branch ref to seed on the task
91
+ - `paths`: repo-relative files or folders the Task touches; a project spawn policy's `taskPaths` matches them (#3736)
89
92
  - `issueRefs`: Issue(s) this Task delivers or references (see relation): #n, owner/repo#n, GitHub URL, or issue_<id>. Linked issues are hydrated into a task-bound spawn's first-turn brief, so pass the ref instead of pasting the spec. Aliases accepted: refs, issues, issue, issueRef, externalKey, issueNumber. A bare #n resolves against defaultRepo, else the Task's repo, else your own project's repo.
90
93
  - `relation`: Issue relation: delivers authorizes auto-close at land; references only links/hydrates the spec. Omitted relations resolve from the current Task type at land: delivers for build/ui/refactor/debug/mechanical (or an omitted type with a build-like bound profile), references for research/design (use research), review and ops. Unset type derives from the bound profile: software-design, reviewer, isolated-research and ops-assistant reference; other profiles default to build. Inferred refs always store references. Applies to every issue in this call; re-add with a relation to change it, or omit relation to preserve an existing explicit one.
91
94
  - `defaultRepo`: owner/repo for bare #n issue refs
@@ -138,6 +141,8 @@ List a Task's append-only event timeline (status, stage, gate, dependency, ref,
138
141
 
139
142
  ## relay_task_list
140
143
 
144
+ Use `{teamId, deliverableStage:"awaiting-deploy", mine:false}` for the team's landed or deploying Tasks that have not reached deployed. Results include each Task's optional `onDeploy` follow-up.
145
+
141
146
  List Task awareness rows, optionally filtered by execution status, deliverable stage, team, project, or repo. `brief` is id/label/status only; the default lean rows omit paragraph titles and raw timestamps; `full`/verbose:true preserve the complete legacy summary shape. Defaults to your own Tasks (created by you, assigned to you, or owned by a coordinator role you hold); pass `mine:false` for every Task. `inFlight:true` drops done/canceled rows. Lean/brief rows page within the list budget, blocked/validating Tasks first.
142
147
 
143
148
  - `mine`: Default true: only the caller's own Tasks. false lists every Task.
@@ -222,10 +227,13 @@ Coordinator-only: add/update a Task validation item by stable id. open waits for
222
227
 
223
228
  ## relay_task_update
224
229
 
230
+ Set `onDeploy` to replace the follow-up; an empty string clears it. CLI: `humwick task update T123 --on-deploy TEXT`. The Task drawer also shows and edits this field.
231
+
225
232
  Update a deliverable Task's editable fields (title/label, intent, complexity, context, latest steer, doneWhen, dispatch, team, project/repo).
226
233
 
227
234
  - `taskId`: Task id: a number, numeric string, or TNNNN form (e.g. "T4409").
228
235
  - `terminalStage`: null clears the override and restores the repo default.
236
+ - `paths`: replaces the Task's repo-relative paths; `[]` clears them.
229
237
 
230
238
  ## relay_task_withdraw_land
231
239
 
@@ -183,6 +183,64 @@ Uncommitted edits and changes on a feature branch do not change the workflow tha
183
183
  reviews that branch. The run records the source and commit it used. A running run
184
184
  keeps its resolved definition; start a new run to pick up a later definition.
185
185
 
186
+ ## Limit who a project's agents can spawn
187
+
188
+ Commit `.agent-relay/spawn-policy.json` to make your project's rules enforced, not
189
+ just written down. Humwick reads it from the default branch, like workflows and
190
+ roles, and checks it on every spawn into the project. This includes spawns made
191
+ directly, through Task dispatch, from the dashboard, by workflow steps and by
192
+ sub-coordinators. This example says that a coordinator or sub-coordinator spawns
193
+ only a project role or the `QA` profile. It also says that a Task touching
194
+ `src/manuscripts/love-exe/` runs only through the `story-build-review` workflow:
195
+
196
+ ```json
197
+ {
198
+ "version": 1,
199
+ "rules": [
200
+ {
201
+ "name": "love-exe-story",
202
+ "when": { "taskPaths": ["src/manuscripts/love-exe/**"] },
203
+ "require": { "workflow": "story-build-review" },
204
+ "hint": "love-exe chapters run only through story-build-review: spawn with the taskId and Humwick starts it."
205
+ },
206
+ {
207
+ "name": "project-roles",
208
+ "when": { "spawner": ["coordinator", "sub-coordinator"] },
209
+ "require": { "roles": ["writer", "editor", "builder", "reviewer"], "profiles": ["QA"] },
210
+ "hint": "Spawn a role from .agent-relay/roles, or the QA profile."
211
+ }
212
+ ]
213
+ }
214
+ ```
215
+
216
+ A rule applies when every `when` condition holds. A condition holds when any one of
217
+ its listed values matches. A rule without `when` applies to every spawn.
218
+
219
+ | Condition | Matches |
220
+ | --- | --- |
221
+ | `taskTags` | the spawn's Task has one of these tags |
222
+ | `taskPaths` | one of the Task's `paths` matches a glob; `dir/**` also matches `dir` |
223
+ | `spawner` | `coordinator` (any agent spawning directly), `sub-coordinator`, `workflow` (a run's step) or `operator` (the dashboard or a person) |
224
+
225
+ Set a Task's `paths` (repo-relative files or folders) with `relay_task_create` or
226
+ `relay_task_update`. Each rule has a `hint` and either `deny: true` or a `require`:
227
+
228
+ - `roles` and `profiles` list what the spawn may name. A role spawn must name a
229
+ listed role; a profile spawn must name a listed profile. Names match without
230
+ regard to case, and by canonical profile name: the retired `default-relay` is
231
+ `worker`, and a spawn that names no profile gets `worker`. So a list with
232
+ `worker` admits `default-relay` and an omitted profile, and a list without
233
+ `worker` refuses both (the refusal says `profile worker`). Listing `default-relay`
234
+ is the same as listing `worker`.
235
+ - `workflow` sends the Task's work through that workflow. Spawning for the Task
236
+ starts it, whatever the Task's type, and only that run's steps may spawn for it.
237
+ Passing `workflow:false` is refused.
238
+
239
+ A refused spawn fails before anything launches. The error names the rule, what it
240
+ allows and the hint. A spawn receipt lists the rules that applied in `spawnPolicy`.
241
+ A project without the file is not limited. If the file is invalid or cannot be
242
+ read, Humwick logs one warning with the reason and limits nothing until it is fixed.
243
+
186
244
  ## Resume work that needs a decision
187
245
 
188
246
  An `escalated` run is waiting for its coordinator to resolve the reported cause.
package/docs/openapi.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.1.0",
3
3
  "info": {
4
4
  "title": "Humwick API",
5
- "version": "0.130.1",
5
+ "version": "0.130.2",
6
6
  "description": "Real-time message bus for inter-agent communication. Agent-first: this spec is designed for machine consumption — agents can self-discover the full API surface via GET /api/spec.",
7
7
  "license": {
8
8
  "name": "MIT",
@@ -8335,6 +8335,45 @@
8335
8335
  ]
8336
8336
  }
8337
8337
  },
8338
+ "/api/agent-profiles/{name}/project-instructions": {
8339
+ "get": {
8340
+ "operationId": "projectProfileInstructionsRoute",
8341
+ "summary": "List all projects and their additions for one profile",
8342
+ "tags": [
8343
+ "Agent profiles"
8344
+ ],
8345
+ "description": "Project additions follow the global profile charter. Unset text is empty at version 0 and adds no context tokens. Profile aliases resolve to their canonical profile. Reads require agent:read; writes require agent:write. Actors come from the authenticated credential.",
8346
+ "parameters": [
8347
+ {
8348
+ "name": "name",
8349
+ "in": "path",
8350
+ "required": true,
8351
+ "schema": {
8352
+ "type": "string"
8353
+ }
8354
+ }
8355
+ ],
8356
+ "responses": {
8357
+ "200": {
8358
+ "description": "Success",
8359
+ "content": {
8360
+ "application/json": {}
8361
+ }
8362
+ }
8363
+ },
8364
+ "security": [
8365
+ {
8366
+ "bearerAuth": []
8367
+ },
8368
+ {
8369
+ "tokenHeader": []
8370
+ },
8371
+ {
8372
+ "tokenQuery": []
8373
+ }
8374
+ ]
8375
+ }
8376
+ },
8338
8377
  "/api/agent-profiles/tool-groups": {
8339
8378
  "get": {
8340
8379
  "operationId": "getAgentProfileToolGroupsRoute",
@@ -16437,6 +16476,281 @@
16437
16476
  ]
16438
16477
  }
16439
16478
  },
16479
+ "/api/projects/{id}/profile-instructions": {
16480
+ "get": {
16481
+ "operationId": "projectProfileInstructionsRoute",
16482
+ "summary": "List all profile additions for one project",
16483
+ "tags": [
16484
+ "Agent profiles"
16485
+ ],
16486
+ "description": "Project additions follow the global profile charter. Unset text is empty at version 0 and adds no context tokens. Profile aliases resolve to their canonical profile. Reads require agent:read; writes require agent:write. Actors come from the authenticated credential.",
16487
+ "parameters": [
16488
+ {
16489
+ "name": "id",
16490
+ "in": "path",
16491
+ "required": true,
16492
+ "schema": {
16493
+ "type": "string"
16494
+ }
16495
+ }
16496
+ ],
16497
+ "responses": {
16498
+ "200": {
16499
+ "description": "Success",
16500
+ "content": {
16501
+ "application/json": {}
16502
+ }
16503
+ }
16504
+ },
16505
+ "security": [
16506
+ {
16507
+ "bearerAuth": []
16508
+ },
16509
+ {
16510
+ "tokenHeader": []
16511
+ },
16512
+ {
16513
+ "tokenQuery": []
16514
+ }
16515
+ ]
16516
+ }
16517
+ },
16518
+ "/api/projects/{id}/profile-instructions/{profile}": {
16519
+ "get": {
16520
+ "operationId": "projectProfileInstructionsRoute",
16521
+ "summary": "Read a project profile instruction addition",
16522
+ "tags": [
16523
+ "Agent profiles"
16524
+ ],
16525
+ "description": "Project additions follow the global profile charter. Unset text is empty at version 0 and adds no context tokens. Profile aliases resolve to their canonical profile. Reads require agent:read; writes require agent:write. Actors come from the authenticated credential.",
16526
+ "parameters": [
16527
+ {
16528
+ "name": "id",
16529
+ "in": "path",
16530
+ "required": true,
16531
+ "schema": {
16532
+ "type": "string"
16533
+ }
16534
+ },
16535
+ {
16536
+ "name": "profile",
16537
+ "in": "path",
16538
+ "required": true,
16539
+ "schema": {
16540
+ "type": "string"
16541
+ }
16542
+ }
16543
+ ],
16544
+ "responses": {
16545
+ "200": {
16546
+ "description": "Success",
16547
+ "content": {
16548
+ "application/json": {}
16549
+ }
16550
+ }
16551
+ },
16552
+ "security": [
16553
+ {
16554
+ "bearerAuth": []
16555
+ },
16556
+ {
16557
+ "tokenHeader": []
16558
+ },
16559
+ {
16560
+ "tokenQuery": []
16561
+ }
16562
+ ]
16563
+ },
16564
+ "put": {
16565
+ "operationId": "projectProfileInstructionsRoute",
16566
+ "summary": "Set project profile instructions with optimistic version checking",
16567
+ "tags": [
16568
+ "Agent profiles"
16569
+ ],
16570
+ "description": "Project additions follow the global profile charter. Unset text is empty at version 0 and adds no context tokens. Profile aliases resolve to their canonical profile. Reads require agent:read; writes require agent:write. Actors come from the authenticated credential.",
16571
+ "parameters": [
16572
+ {
16573
+ "name": "id",
16574
+ "in": "path",
16575
+ "required": true,
16576
+ "schema": {
16577
+ "type": "string"
16578
+ }
16579
+ },
16580
+ {
16581
+ "name": "profile",
16582
+ "in": "path",
16583
+ "required": true,
16584
+ "schema": {
16585
+ "type": "string"
16586
+ }
16587
+ }
16588
+ ],
16589
+ "requestBody": {
16590
+ "required": true,
16591
+ "content": {
16592
+ "application/json": {
16593
+ "schema": {
16594
+ "type": "object",
16595
+ "required": [
16596
+ "expectedVersion",
16597
+ "template"
16598
+ ],
16599
+ "properties": {
16600
+ "expectedVersion": {
16601
+ "type": "integer",
16602
+ "minimum": 0
16603
+ },
16604
+ "reason": {
16605
+ "type": "string",
16606
+ "maxLength": 2000
16607
+ },
16608
+ "template": {
16609
+ "type": "string",
16610
+ "maxLength": 16000
16611
+ }
16612
+ }
16613
+ }
16614
+ }
16615
+ }
16616
+ },
16617
+ "responses": {
16618
+ "409": {
16619
+ "description": "Stale expectedVersion. current contains the current version and template."
16620
+ }
16621
+ },
16622
+ "security": [
16623
+ {
16624
+ "bearerAuth": []
16625
+ },
16626
+ {
16627
+ "tokenHeader": []
16628
+ },
16629
+ {
16630
+ "tokenQuery": []
16631
+ }
16632
+ ]
16633
+ }
16634
+ },
16635
+ "/api/projects/{id}/profile-instructions/{profile}/history": {
16636
+ "get": {
16637
+ "operationId": "projectProfileInstructionsRoute",
16638
+ "summary": "Read audited project profile instruction revisions for history and diff",
16639
+ "tags": [
16640
+ "Agent profiles"
16641
+ ],
16642
+ "description": "Project additions follow the global profile charter. Unset text is empty at version 0 and adds no context tokens. Profile aliases resolve to their canonical profile. Reads require agent:read; writes require agent:write. Actors come from the authenticated credential.",
16643
+ "parameters": [
16644
+ {
16645
+ "name": "id",
16646
+ "in": "path",
16647
+ "required": true,
16648
+ "schema": {
16649
+ "type": "string"
16650
+ }
16651
+ },
16652
+ {
16653
+ "name": "profile",
16654
+ "in": "path",
16655
+ "required": true,
16656
+ "schema": {
16657
+ "type": "string"
16658
+ }
16659
+ }
16660
+ ],
16661
+ "responses": {
16662
+ "200": {
16663
+ "description": "Success",
16664
+ "content": {
16665
+ "application/json": {}
16666
+ }
16667
+ }
16668
+ },
16669
+ "security": [
16670
+ {
16671
+ "bearerAuth": []
16672
+ },
16673
+ {
16674
+ "tokenHeader": []
16675
+ },
16676
+ {
16677
+ "tokenQuery": []
16678
+ }
16679
+ ]
16680
+ }
16681
+ },
16682
+ "/api/projects/{id}/profile-instructions/{profile}/restore": {
16683
+ "post": {
16684
+ "operationId": "projectProfileInstructionsRoute",
16685
+ "summary": "Restore a project profile instruction revision as a new head",
16686
+ "tags": [
16687
+ "Agent profiles"
16688
+ ],
16689
+ "description": "Project additions follow the global profile charter. Unset text is empty at version 0 and adds no context tokens. Profile aliases resolve to their canonical profile. Reads require agent:read; writes require agent:write. Actors come from the authenticated credential.",
16690
+ "parameters": [
16691
+ {
16692
+ "name": "id",
16693
+ "in": "path",
16694
+ "required": true,
16695
+ "schema": {
16696
+ "type": "string"
16697
+ }
16698
+ },
16699
+ {
16700
+ "name": "profile",
16701
+ "in": "path",
16702
+ "required": true,
16703
+ "schema": {
16704
+ "type": "string"
16705
+ }
16706
+ }
16707
+ ],
16708
+ "requestBody": {
16709
+ "required": true,
16710
+ "content": {
16711
+ "application/json": {
16712
+ "schema": {
16713
+ "type": "object",
16714
+ "required": [
16715
+ "expectedVersion",
16716
+ "version"
16717
+ ],
16718
+ "properties": {
16719
+ "expectedVersion": {
16720
+ "type": "integer",
16721
+ "minimum": 0
16722
+ },
16723
+ "reason": {
16724
+ "type": "string",
16725
+ "maxLength": 2000
16726
+ },
16727
+ "version": {
16728
+ "type": "integer",
16729
+ "minimum": 1
16730
+ }
16731
+ }
16732
+ }
16733
+ }
16734
+ }
16735
+ },
16736
+ "responses": {
16737
+ "409": {
16738
+ "description": "Stale expectedVersion. current contains the current version and template."
16739
+ }
16740
+ },
16741
+ "security": [
16742
+ {
16743
+ "bearerAuth": []
16744
+ },
16745
+ {
16746
+ "tokenHeader": []
16747
+ },
16748
+ {
16749
+ "tokenQuery": []
16750
+ }
16751
+ ]
16752
+ }
16753
+ },
16440
16754
  "/api/projects/{id}/checkouts/bind": {
16441
16755
  "post": {
16442
16756
  "operationId": "postProjectBindCheckoutRoute",
@@ -18122,6 +18436,105 @@
18122
18436
  ]
18123
18437
  }
18124
18438
  },
18439
+ "/api/workflows/runs/{runId}/pause": {
18440
+ "post": {
18441
+ "operationId": "postWorkflowRunPauseRoute",
18442
+ "summary": "Pause a workflow run",
18443
+ "tags": [
18444
+ "Other"
18445
+ ],
18446
+ "description": "As relay_workflow_resume with pause:true (#3757): pauses a running run at its next seam. A working step agent is not interrupted; the run spawns no step, routes no delivery, starts no review, arms no land and escalates nothing until unpaused, and its deadlines stand still. `reason` is required (400 without it). A run that is not running refuses (400). Returns the run as GET /api/workflows/runs/:runId shows it, with `paused` {by, at, reason}. Coordinator-only: the run's caller, the Task's coordinators and admins. Requires task:write.",
18447
+ "parameters": [
18448
+ {
18449
+ "name": "runId",
18450
+ "in": "path",
18451
+ "required": true,
18452
+ "schema": {
18453
+ "type": "string"
18454
+ }
18455
+ }
18456
+ ],
18457
+ "requestBody": {
18458
+ "required": true,
18459
+ "content": {
18460
+ "application/json": {
18461
+ "schema": {
18462
+ "type": "object",
18463
+ "additionalProperties": false,
18464
+ "required": [
18465
+ "reason"
18466
+ ],
18467
+ "properties": {
18468
+ "reason": {
18469
+ "type": "string",
18470
+ "minLength": 1,
18471
+ "maxLength": 2000
18472
+ }
18473
+ }
18474
+ }
18475
+ }
18476
+ }
18477
+ },
18478
+ "responses": {
18479
+ "200": {
18480
+ "description": "Success",
18481
+ "content": {
18482
+ "application/json": {}
18483
+ }
18484
+ }
18485
+ },
18486
+ "security": [
18487
+ {
18488
+ "bearerAuth": []
18489
+ },
18490
+ {
18491
+ "tokenHeader": []
18492
+ },
18493
+ {
18494
+ "tokenQuery": []
18495
+ }
18496
+ ]
18497
+ }
18498
+ },
18499
+ "/api/workflows/runs/{runId}/unpause": {
18500
+ "post": {
18501
+ "operationId": "postWorkflowRunUnpauseRoute",
18502
+ "summary": "Unpause a workflow run",
18503
+ "tags": [
18504
+ "Other"
18505
+ ],
18506
+ "description": "As relay_workflow_resume with pause:false (#3757): unpauses a paused run. Its step deadline, backstop and land wait move by the time it was paused, and a delivery recorded meanwhile is routed. A run that is not paused refuses (400). Returns the run as GET /api/workflows/runs/:runId shows it. Coordinator-only: the run's caller, the Task's coordinators and admins. Requires task:write.",
18507
+ "parameters": [
18508
+ {
18509
+ "name": "runId",
18510
+ "in": "path",
18511
+ "required": true,
18512
+ "schema": {
18513
+ "type": "string"
18514
+ }
18515
+ }
18516
+ ],
18517
+ "responses": {
18518
+ "200": {
18519
+ "description": "Success",
18520
+ "content": {
18521
+ "application/json": {}
18522
+ }
18523
+ }
18524
+ },
18525
+ "security": [
18526
+ {
18527
+ "bearerAuth": []
18528
+ },
18529
+ {
18530
+ "tokenHeader": []
18531
+ },
18532
+ {
18533
+ "tokenQuery": []
18534
+ }
18535
+ ]
18536
+ }
18537
+ },
18125
18538
  "/api/workflows/runs/{runId}/resume": {
18126
18539
  "post": {
18127
18540
  "operationId": "postWorkflowRunResumeRoute",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@humwick/server",
3
- "version": "0.130.1",
3
+ "version": "0.130.2",
4
4
  "description": "Lightweight HTTP message relay for inter-agent communication across machines",
5
5
  "module": "src/index.ts",
6
6
  "type": "module",
@@ -84,21 +84,16 @@
84
84
  ],
85
85
  "dependencies": {
86
86
  "age-encryption": "0.3.1",
87
- "@humwick/channels-host": "0.130.1",
88
- "@humwick/kernel": "0.0.0",
89
- "@humwick/offload": "0.0.0",
90
- "@humwick/providers": "0.104.7",
91
- "@humwick/sdk": "0.2.136",
87
+ "@humwick/channels-host": "0.130.2",
88
+ "@humwick/kernel": "0.130.2",
89
+ "@humwick/offload": "0.130.2",
90
+ "@humwick/providers": "0.104.8",
91
+ "@humwick/sdk": "0.2.137",
92
92
  "ajv": "^8.20.0",
93
93
  "@modelcontextprotocol/sdk": "1.32.0",
94
94
  "express": "^5.2.1",
95
95
  "busboy": "^1.6.0",
96
- "unbash": "6.0.0",
97
- "@hono/zod-openapi": "^1.4.0",
98
- "hono": "^4.12.0",
99
- "zod": "^4.4.3",
100
- "jsep": "^1.4.0",
101
- "p-queue": "^9.3.3"
96
+ "unbash": "6.0.0"
102
97
  },
103
98
  "scripts": {
104
99
  "public:gate": "bun run scripts/public-gate.ts",
@@ -223,9 +218,5 @@
223
218
  },
224
219
  "engines": {
225
220
  "bun": ">=1.4.4"
226
- },
227
- "bundleDependencies": [
228
- "@humwick/kernel",
229
- "@humwick/offload"
230
- ]
221
+ }
231
222
  }