@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.
- package/README.md +5 -0
- package/bundled/prompts/manifest.json +1 -0
- package/bundled/prompts/task.hydration.md +1 -1
- package/bundled/roles/builder.md +1 -1
- package/docs/guides/sub-coordinators.md +12 -5
- package/docs/guides/tools-administration.md +4 -0
- package/docs/guides/tools-coordination.md +2 -0
- package/docs/guides/tools-tasks.md +8 -0
- package/docs/guides/workflows.md +74 -0
- package/docs/openapi.json +486 -4
- package/package.json +10 -18
- package/public/assets/{MessageBubble-BWpoBjl4.js → MessageBubble-Bq9kr21N.js} +2 -2
- package/public/assets/{PlanGraphPanel-C0auck3n.js → PlanGraphPanel-Dqiroy06.js} +2 -2
- package/public/assets/{TraceView-DBnOx7AQ.js → TraceView-DYU962-H.js} +2 -2
- package/public/assets/{VaultDecisionCard-0kp2oNBC.js → VaultDecisionCard-DhPfzioE.js} +2 -2
- package/public/assets/{activity-yLztXEBt.js → activity-DzCcQTee.js} +2 -2
- package/public/assets/{agent-lineage-BbJDR1dW.js → agent-lineage-SgDt9i3T.js} +2 -2
- package/public/assets/agent-liveness-Bq-s73jW.js +2 -0
- package/public/assets/{agent-name-CTZBrSD9.js → agent-name-CcY3Aijy.js} +2 -2
- package/public/assets/agent-profiles-cxtRBn6O.js +2 -0
- package/public/assets/{agent-project-badge-9TqzUUYE.js → agent-project-badge-DGYbIhaI.js} +2 -2
- package/public/assets/{agent-tools-D4n40pn8.js → agent-tools-DHbftV0N.js} +2 -2
- package/public/assets/{agent-type-icon-D6FUarOf.js → agent-type-icon-CY113sp-.js} +2 -2
- package/public/assets/{agents-BYDslkJc.js → agents-BPzY7IlQ.js} +2 -2
- package/public/assets/{analytics-B-XSbEMC.js → analytics-DENFPv_a.js} +2 -2
- package/public/assets/{artifact-viewer-DdWIfV6M.js → artifact-viewer-KRvSc7sl.js} +2 -2
- package/public/assets/{artifacts-DPN1q4pA.js → artifacts-C9gSmL3s.js} +2 -2
- package/public/assets/{artifacts-oBOqks-2.js → artifacts-DT-HkI5O.js} +2 -2
- package/public/assets/{automation-4KcRFXEu.js → automation-BsmjQhKD.js} +2 -2
- package/public/assets/{backlog-Cw9xPTCF.js → backlog-8NYH_62t.js} +2 -2
- package/public/assets/{busy-health-CTu32MZt.js → busy-health-D3hwvYb4.js} +2 -2
- package/public/assets/{channels-BiXzg1G9.js → channels-DCJ5WL7O.js} +2 -2
- package/public/assets/{chat-Ctk2qwvA.js → chat-DAIl357U.js} +3 -3
- package/public/assets/{code-preview-Bm1wWqAp.js → code-preview-CzrZfr9U.js} +2 -2
- package/public/assets/{connectors-C36ax4Vw.js → connectors-xTxtlyou.js} +2 -2
- package/public/assets/{cosmos-Jj9LK2Wf.js → cosmos-BpebFLK2.js} +2 -2
- package/public/assets/{crate-agent-H6S7-B9T.js → crate-agent-BHvI5wXC.js} +2 -2
- package/public/assets/{dependency-graph-Cd1E23wa.js → dependency-graph-DGT0o3wJ.js} +2 -2
- package/public/assets/{deploys-Bwfq146q.js → deploys-hqWOHSHE.js} +2 -2
- package/public/assets/{display-CfO7rTuF.js → display-CDeH4I8T.js} +2 -2
- package/public/assets/{files-DhhZI2Ih.js → files-BTeGVmTg.js} +2 -2
- package/public/assets/{fleet-B_rFEbnL.js → fleet-DgXtNgCa.js} +2 -2
- package/public/assets/{fleet-metrics-BkHP-P3R.js → fleet-metrics-BHEt5yc_.js} +2 -2
- package/public/assets/{formatted-body-Cm1RrzmN.js → formatted-body-MLtodyPp.js} +3 -3
- package/public/assets/{formatted-body-impl-DQiOuOD1.js → formatted-body-impl-CAe664Z8.js} +2 -2
- package/public/assets/{host-providers-dialog-CHqwXTov.js → host-providers-dialog-mapF4Fj9.js} +2 -2
- package/public/assets/index-CqqgOI5R.js +15 -0
- package/public/assets/index-MYAIwYTX.css +2 -0
- package/public/assets/{insights-fH1EL-qZ.js → insights-DNyf7IzF.js} +2 -2
- package/public/assets/{integrations-C5Oix6ng.js → integrations-DlYOHq7T.js} +2 -2
- package/public/assets/{issue-ref-chip-ODyondIa.js → issue-ref-chip-CeWBNWn7.js} +2 -2
- package/public/assets/{log-viewer-Cvfy6PW7.js → log-viewer-Cib8nqdE.js} +2 -2
- package/public/assets/{maintenance-D8CDH5wZ.js → maintenance-DSn1cPm7.js} +2 -2
- package/public/assets/{managed-agents-egllbpij.js → managed-agents-C3CkM81m.js} +2 -2
- package/public/assets/{markdown-preview-CYSFgVgK.js → markdown-preview-W4VQQPAv.js} +3 -3
- package/public/assets/{markdown-preview-impl-BteVIjX4.js → markdown-preview-impl-CMsTdhjq.js} +2 -2
- package/public/assets/{memory-C8WmXsyr.js → memory-BV17qtO4.js} +2 -2
- package/public/assets/{messages-BzQdqlO6.js → messages-Bm_1AqSA.js} +2 -2
- package/public/assets/{orchestrators-B1HxzkNw.js → orchestrators-Dg-vfP09.js} +2 -2
- package/public/assets/{overview-DCUnI4Z7.js → overview-DcYCrvlr.js} +2 -2
- package/public/assets/{pairs-ftCd2XcD.js → pairs-8o9nuG3V.js} +2 -2
- package/public/assets/{profile-icon-B2zH8DMH.js → profile-icon-BsRyBMea.js} +2 -2
- package/public/assets/project-profile-instructions-DETKFn_E.js +2 -0
- package/public/assets/projects-M_m6AHws.js +2 -0
- package/public/assets/{prompt-settings-Bftq9czX.js → prompt-settings-C_mNCgeL.js} +2 -2
- package/public/assets/provider-display-BEeLXC_D.js +2 -0
- package/public/assets/{registry-DWCU5c8q.js → registry-DDHHHE5N.js} +2 -2
- package/public/assets/run-card-Dt4I4jaP.js +2 -0
- package/public/assets/scroll-text-BKXS1ahr.js +2 -0
- package/public/assets/{secrets-C7GIUATz.js → secrets-BkVwxI5O.js} +2 -2
- package/public/assets/{service-access-settings-C3aujqTG.js → service-access-settings-Crq-6a-B.js} +2 -2
- package/public/assets/{settings-C6sZ9eBa.js → settings-CYcavMFu.js} +2 -2
- package/public/assets/shipping-H6gzEeZB.js +2 -0
- package/public/assets/{stats-V9Z-GxUd.js → stats-BJVeWkpV.js} +2 -2
- package/public/assets/{status-dot-CVv0iGHL.js → status-dot-BcHyw1Vw.js} +2 -2
- package/public/assets/store-DKPDIZBe.js +9 -0
- package/public/assets/{tasks-CXU75HRF.js → tasks-qJjlQPpx.js} +2 -2
- package/public/assets/{teams-BPf976zb.js → teams-Cd5Sk1uX.js} +2 -2
- package/public/assets/{terminal-viewer-DE9BOe-8.js → terminal-viewer-CpY5_m7W.js} +3 -3
- package/public/assets/{terminal-viewer-impl-D04pjmGh.js → terminal-viewer-impl-DI_2llFR.js} +2 -2
- package/public/assets/token-estimate-Co-Jdphh.js +2 -0
- package/public/assets/{use-agent-terminal-B1yR456R.js → use-agent-terminal-0yJA_buM.js} +2 -2
- package/public/assets/{use-decisions-D-S4tpDf.js → use-decisions-uJXHf34W.js} +2 -2
- package/public/assets/use-project-list-CpWl6eHQ.js +2 -0
- package/public/assets/{use-selectors-CnrAk2YP.js → use-selectors-BdxBW8mL.js} +2 -2
- package/public/assets/{user-avatar-nBFIcR4M.js → user-avatar-3IndfpOc.js} +2 -2
- package/public/assets/versioned-prompt-editor-CIVg7XB1.js +8 -0
- package/public/assets/{work-queue-TCjJxeT-.js → work-queue-B9rnLwHZ.js} +2 -2
- package/public/assets/{workflow-marker-Cf3Hf2fN.js → workflow-marker-X8wxyhzC.js} +2 -2
- package/public/assets/{workflows-CXQX20Qj.js → workflows-o5YyMFW7.js} +2 -2
- package/public/assets/{workspaces-qSYzKYMA.js → workspaces-CzEGoAng.js} +2 -2
- package/public/cosmos.html +4 -4
- package/public/index.html +31 -29
- package/runner/plugins/claude/.claude-plugin/plugin.json +1 -1
- package/runner/plugins/claude/hooks/gate-run-guard.provisioned.mjs +31 -1
- package/runner/src/adapters/claude-effort.ts +2 -4
- package/runner/src/adapters/claude-headless.ts +1 -1
- package/runner/src/adapters/claude-launch-exit.ts +26 -0
- package/runner/src/adapters/claude-session-probe.ts +1 -1
- package/runner/src/adapters/claude-tmux.ts +38 -10
- package/runner/src/adapters/claude.ts +28 -75
- package/runner/src/adapters/codex-launch-config.ts +4 -5
- package/runner/src/adapters/codex.ts +1 -1
- package/runner/src/adapters/opencode-provider.ts +7 -22
- package/runner/src/adapters/opencode.ts +4 -4
- package/runner/src/adapters/provider-quota-harvest.ts +20 -71
- package/runner/src/agent-runner/credentials.ts +42 -12
- package/runner/src/agent-runner/inbox.ts +27 -0
- package/runner/src/agent-runner/lifecycle-milestones.ts +2 -4
- package/runner/src/agent-runner/liveness-exchange.ts +104 -0
- package/runner/src/bin/claude.ts +4 -0
- package/runner/src/bin/codex.ts +4 -0
- package/runner/src/bin/opencode.ts +4 -0
- package/runner/src/claude-system-prompt.ts +49 -0
- package/runner/src/index.ts +5 -2
- package/runner/src/launch-assembly.ts +14 -10
- package/runner/src/profile-home.ts +1 -1
- package/runner/src/project-instructions.ts +2 -2
- package/runner/src/provider-command.ts +18 -0
- package/runner/src/provider-setup.ts +35 -0
- package/runner/src/providers.ts +2 -1
- package/runner/src/runner-core.ts +32 -38
- package/runner/src/runner-helpers.ts +0 -8
- package/runner/src/session-scratch.ts +6 -2
- package/runner/src/spawn-input.ts +2 -1
- package/runner/src/test-run-dedup.ts +59 -56
- package/runner/test-support/provisioning-context.ts +4 -2
- package/runner/test-support/runner-harness.ts +2 -1
- package/scripts/cd-config.ts +8 -0
- package/scripts/gate-run-lease.ts +10 -7
- package/scripts/gate.sh +5 -1
- package/scripts/steward-policy-cleanup.ts +2 -2
- package/src/agent-authz.ts +2 -2
- package/src/agent-drive-arbiter.ts +3 -8
- package/src/agent-exit-cleanup-async.ts +2 -2
- package/src/agent-exit-cleanup.ts +23 -19
- package/src/agent-lifecycle-events.ts +112 -85
- package/src/agent-ref.ts +3 -2
- package/src/agent-status-events.ts +43 -14
- package/src/auth/password.ts +4 -3
- package/src/auth/session-refresh.ts +1 -1
- package/src/auth/session.test-fixture.ts +2 -2
- package/src/auth/session.ts +7 -7
- package/src/automations/crud.ts +8 -81
- package/src/automations/dispatch.ts +33 -58
- package/src/automations/index.ts +1 -1
- package/src/automations/persistence.ts +65 -0
- package/src/automations/precheck.ts +18 -16
- package/src/automations/read-async.ts +11 -0
- package/src/automations/reconcile.ts +30 -39
- package/src/automations/storage.ts +33 -10
- package/src/automations/write-async.ts +33 -0
- package/src/branch-land-notice.ts +93 -0
- package/src/branch-landed.ts +31 -98
- package/src/bus.ts +40 -39
- package/src/cd-deploy-notify.ts +32 -4
- package/src/cd-host-lag-notify.ts +7 -6
- package/src/ci/incidents.ts +2 -2
- package/src/ci/monitor.ts +5 -8
- package/src/ci/notifications.ts +4 -4
- package/src/ci/root-missing.ts +4 -9
- package/src/ci/transition-notify.ts +12 -44
- package/src/claude-app/oauth-http.ts +3 -3
- package/src/cli/cd-pauses.ts +19 -0
- package/src/cli/orchestrator.ts +1 -1
- package/src/cli/state.ts +2 -19
- package/src/cli/task-edit.ts +22 -0
- package/src/cli/task.ts +3 -1
- package/src/cli/workflow.ts +19 -4
- package/src/commands-db.ts +7 -7
- package/src/commands-write.ts +8 -0
- package/src/compaction-watch.ts +10 -8
- package/src/config-store-write.ts +13 -1
- package/src/config-store.ts +25 -14
- package/src/config.ts +4 -11
- package/src/connectors.ts +10 -8
- package/src/context-advisory.ts +22 -21
- package/src/db/activity-async.ts +6 -1
- package/src/db/activity-write-ops.ts +12 -1
- package/src/db/activity.ts +1 -14
- package/src/db/agent-action-write.ts +36 -0
- package/src/db/agent-control-async.ts +9 -0
- package/src/db/agent-control-write.ts +49 -0
- package/src/db/agent-effort-observe.ts +22 -0
- package/src/db/agent-meta.ts +14 -3
- package/src/db/agent-search.ts +1 -15
- package/src/db/agents-async.ts +59 -9
- package/src/db/agents-write-ops.ts +12 -3
- package/src/db/agents.ts +95 -65
- package/src/db/auth-identities.ts +2 -2
- package/src/db/automation-read-ops.ts +11 -0
- package/src/db/automation-write-ops.ts +46 -0
- package/src/db/blackboard.ts +2 -2
- package/src/db/browser-session-write.ts +32 -0
- package/src/db/bus-outbox-write-ops.ts +3 -1
- package/src/db/checkout-refresh-schema.ts +47 -0
- package/src/db/checkout-refresh.ts +5 -5
- package/src/db/ci-incidents-async.ts +5 -5
- package/src/db/ci-incidents-write-ops.ts +2 -2
- package/src/db/command-agent-profile-backfill.ts +39 -0
- package/src/db/command-agent-profiles.ts +5 -1
- package/src/db/command-retention.ts +126 -0
- package/src/db/command-row.ts +10 -2
- package/src/db/commands-list-query.ts +2 -0
- package/src/db/commands-planner-stats.test-fixture.ts +8 -0
- package/src/db/commands-read-ops.ts +16 -0
- package/src/db/commands-spawn-read.ts +1 -1
- package/src/db/config-store-write-ops.ts +7 -2
- package/src/db/connection.ts +1 -182
- package/src/db/context-carry-write.ts +74 -0
- package/src/db/continuation-archives-async.ts +5 -0
- package/src/db/continuation-archives-write-ops.ts +7 -0
- package/src/db/continuations.ts +6 -6
- package/src/db/db-error-registry.ts +12 -0
- package/src/db/db-writer-worker.ts +8 -1
- package/src/db/deploy-events-async.ts +1 -0
- package/src/db/deploy-events-read-ops.ts +2 -1
- package/src/db/deploy-events.ts +35 -4
- package/src/db/gateway.ts +26 -133
- package/src/db/history-retention-ops.ts +13 -0
- package/src/db/hosts-registration.ts +10 -2
- package/src/db/hosts.ts +9 -6
- package/src/db/inbox-async.ts +2 -2
- package/src/db/inbox-read-ops.ts +1 -1
- package/src/db/inbox.ts +9 -17
- package/src/db/index.ts +2 -0
- package/src/db/integrations-async.ts +8 -0
- package/src/db/integrations-ops.ts +15 -0
- package/src/db/integrations.ts +15 -21
- package/src/db/issue-associations.ts +2 -2
- package/src/db/issue-lifecycle.ts +3 -4
- package/src/db/issue-refs-async.ts +23 -0
- package/src/db/issue-refs-read-ops.ts +6 -0
- package/src/db/issue-refs-write-ops.ts +29 -0
- package/src/db/issue-refs.ts +15 -16
- package/src/db/kernel-event-log-schema.ts +2 -0
- package/src/db/land-boundaries.ts +51 -5
- package/src/db/land-gate-attestations.ts +2 -2
- package/src/db/landing-receipts.ts +2 -2
- package/src/db/lifecycle-context-write.ts +5 -0
- package/src/db/lifecycle-tail-async.ts +76 -0
- package/src/db/lifecycle-tail-write-ops.ts +62 -0
- package/src/db/lifecycle-write-window.ts +2 -1
- package/src/db/lineage-pair-dedupe-sql.ts +3 -3
- package/src/db/long-running-work.ts +2 -2
- package/src/db/main-connection-mode.ts +11 -0
- package/src/db/main-connection-writes.ts +41 -2
- package/src/db/maintenance-job-reconcile.ts +61 -0
- package/src/db/maintenance-job-runs-async.ts +14 -0
- package/src/db/maintenance-job-write-ops.ts +9 -0
- package/src/db/maintenance-pauses.ts +2 -2
- package/src/db/mappers.ts +2 -14
- package/src/db/merge-lease.ts +1 -15
- package/src/db/message-send.ts +4 -0
- package/src/db/messages.ts +31 -25
- package/src/db/migrations.ts +25 -16
- package/src/db/notification-write-ops.ts +19 -0
- package/src/db/operator-answer-write.ts +19 -0
- package/src/db/orchestrators.ts +14 -76
- package/src/db/pairs-async.ts +22 -1
- package/src/db/pairs-write-ops.ts +8 -3
- package/src/db/pairs.ts +42 -61
- package/src/db/plan-dispatch-schema.ts +5 -1
- package/src/db/plan-ready-notices.ts +43 -0
- package/src/db/plan-tools-include-migration.ts +36 -0
- package/src/db/plans-write-ops.ts +2 -0
- package/src/db/presence-buffer.ts +5 -0
- package/src/db/presence-loop.ts +18 -23
- package/src/db/presence-write.ts +0 -6
- package/src/db/project-entries-async.ts +14 -0
- package/src/db/project-entries-read-ops.ts +5 -1
- package/src/db/project-entries-write-ops.ts +8 -0
- package/src/db/project-entries.ts +15 -12
- package/src/db/project-journal.ts +2 -2
- package/src/db/project-profile-instructions.ts +50 -0
- package/src/db/project-trust-approvals.ts +2 -2
- package/src/db/prompt-templates.ts +4 -4
- package/src/db/prompt-versions.ts +9 -2
- package/src/db/provider-config-history.ts +8 -3
- package/src/db/provider-model-seed.ts +34 -0
- package/src/db/read-op-marshaling-fixtures.ts +23 -0
- package/src/db/read-ops.ts +8 -0
- package/src/db/retention.ts +13 -2
- package/src/db/review-publish-write.ts +8 -0
- package/src/db/routing-policy.ts +2 -3
- package/src/db/runtime-admin-async.ts +19 -0
- package/src/db/runtime-admin-write-ops.ts +36 -0
- package/src/db/runtime-tail-async.ts +288 -0
- package/src/db/runtime-tail-write-ops.ts +97 -0
- package/src/db/schema.ts +13 -4
- package/src/db/spawn-budget.ts +5 -0
- package/src/db/spawn-delegation-state.ts +11 -4
- package/src/db/spawn-delegation.ts +1 -11
- package/src/db/sql-audit-indexes.ts +3 -0
- package/src/db/stats-async.ts +9 -6
- package/src/db/task-entity.ts +28 -6
- package/src/db/task-list.ts +3 -1
- package/src/db/tasks.ts +1 -17
- package/src/db/team-claim-policy.ts +60 -0
- package/src/db/teams-async.ts +4 -0
- package/src/db/teams-write-ops.ts +4 -0
- package/src/db/terminal-events.ts +15 -0
- package/src/db/timer-cutover-bodies.ts +292 -0
- package/src/db/timer-cutover-core.ts +37 -278
- package/src/db/timer-cutover-state.ts +40 -0
- package/src/db/timer-cutover-write-ops.ts +1 -40
- package/src/db/timer-ingress.ts +7 -1
- package/src/db/token-db-write-ops.ts +19 -0
- package/src/db/token-standing-async.ts +12 -0
- package/src/db/token-standing.ts +21 -20
- package/src/db/token-usage-retention.ts +33 -0
- package/src/db/token-usage-write-ops.ts +1 -1
- package/src/db/token-usage.ts +4 -1
- package/src/db/user-invites-async.ts +13 -0
- package/src/db/user-invites.ts +3 -3
- package/src/db/users.ts +14 -6
- package/src/db/workflow-contact.ts +1 -1
- package/src/db/workflow-task-read-ops.ts +30 -0
- package/src/db/workspaces.ts +8 -5
- package/src/db/write-ops.ts +37 -12
- package/src/db/writer-fault-seam.ts +2 -9
- package/src/db/writer-fault-test-ops.ts +18 -0
- package/src/db/writer-gateway.ts +58 -56
- package/src/dev.ts +8 -3
- package/src/dispatch-availability.ts +10 -6
- package/src/ephemeral/{landing-ingress-proof-worker.ts → landing-ingress-proof.test-fixture.ts} +4 -2
- package/src/event-loop-lag.ts +4 -2
- package/src/event-loop-yield.ts +2 -2
- package/src/events.ts +10 -8
- package/src/host/disk-alert.ts +121 -0
- package/src/host-provider-store.ts +5 -4
- package/src/hub-metrics-report.ts +5 -1
- package/src/hub-metrics.ts +38 -18
- package/src/injection-sweep-pacing.ts +6 -8
- package/src/land-gate-notifications.ts +11 -10
- package/src/land-gate-queue-progress.ts +3 -3
- package/src/land-settle-dispatch.ts +52 -92
- package/src/lifecycle-context-pressure.ts +11 -10
- package/src/lifecycle-manager.ts +107 -100
- package/src/maintenance/breaker.ts +18 -16
- package/src/maintenance/cd-watcher.ts +3 -3
- package/src/maintenance/checkout-refresh.ts +18 -1
- package/src/maintenance/critical-job-watchdog.ts +19 -20
- package/src/maintenance/events.ts +3 -3
- package/src/maintenance/history-retention-job.ts +30 -0
- package/src/maintenance/index.ts +1 -0
- package/src/maintenance/jobs.ts +32 -69
- package/src/maintenance/long-running-work.ts +3 -1
- package/src/maintenance/offline-agent-prune-job.ts +28 -0
- package/src/maintenance/orphaned-sessions.ts +5 -4
- package/src/maintenance/pauses.ts +4 -10
- package/src/maintenance/plan-ready-notice-job.ts +71 -0
- package/src/maintenance/scheduler.ts +98 -137
- package/src/maintenance/stalled-delivery-pager.ts +10 -9
- package/src/maintenance/teams.ts +19 -30
- package/src/maintenance/workspaces.ts +18 -28
- package/src/managed-policy-escalation.ts +7 -7
- package/src/managed-policy.ts +32 -28
- package/src/managed-provider-gate.ts +5 -4
- package/src/managed-spawn-reservation.ts +5 -4
- package/src/mcp/index.ts +12 -9
- package/src/mcp/output-descriptions.ts +8 -8
- package/src/mcp/presentation.ts +6 -5
- package/src/mcp/project-profile-instructions.ts +32 -0
- package/src/mcp/runtime-output.ts +6 -1
- package/src/mcp/self-care-visibility.ts +2 -2
- package/src/mcp/spawn-targets-matrix.ts +10 -1
- package/src/mcp/tool-groups.ts +4 -3
- package/src/mcp/tool-roles.ts +81 -0
- package/src/mcp/tools-spawn.ts +4 -3
- package/src/mcp/tools-workspace.ts +1 -1
- package/src/mcp-agent-action.ts +1 -2
- package/src/mcp-blackboard-tools.ts +6 -5
- package/src/mcp-decision-tools.ts +7 -7
- package/src/mcp-egress-tools.ts +10 -9
- package/src/mcp-issue-activity-tools.ts +2 -2
- package/src/mcp-issue-association-tools.ts +4 -4
- package/src/mcp-issue-ref-tools.ts +13 -12
- package/src/mcp-maintenance-tools.ts +2 -2
- package/src/mcp-merge-tools.ts +5 -5
- package/src/mcp-notification-subscription-tools.ts +14 -15
- package/src/mcp-output-levels.test-fixture.ts +1 -1
- package/src/mcp-profile-trust-tools.ts +5 -5
- package/src/mcp-project-journal-tools.ts +4 -12
- package/src/mcp-project-tools.ts +17 -18
- package/src/mcp-provider-catalog.ts +2 -2
- package/src/mcp-routing-policy-tools.ts +3 -2
- package/src/mcp-task-tools.ts +11 -5
- package/src/mcp-team-template-tools.ts +3 -3
- package/src/mcp-team-tools.ts +6 -6
- package/src/mcp-workflow-tools.ts +13 -4
- package/src/memory-area-injection.ts +13 -12
- package/src/memory-boundary-capture.ts +6 -6
- package/src/memory-injection.ts +45 -43
- package/src/merge-pause-maintenance.ts +5 -4
- package/src/notification-router.ts +44 -17
- package/src/notification-types.ts +2 -1
- package/src/notify.ts +5 -5
- package/src/observed-reset-refresh.ts +4 -4
- package/src/operator-alarm.ts +23 -11
- package/src/project-ingest.ts +6 -6
- package/src/project-instructions.ts +12 -1
- package/src/project-profile-instruction-text.ts +6 -0
- package/src/project-profile-instructions.ts +20 -0
- package/src/project-trust.ts +12 -11
- package/src/prompt-resolver.ts +3 -3
- package/src/provider-catalog-store.ts +3 -49
- package/src/provider-config-store.ts +12 -11
- package/src/provider-model-seed.ts +1 -18
- package/src/provider-quota-async.ts +5 -7
- package/src/provider-quota-config-store.ts +5 -4
- package/src/provider-secrets.test-fixture.ts +3 -3
- package/src/provider-timeline-event.ts +4 -7
- package/src/quota-band-delivery.ts +2 -2
- package/src/recipe-runner.ts +6 -5
- package/src/repo-config-source.ts +10 -4
- package/src/retention-config-store.ts +4 -3
- package/src/reviewer-pipeline.ts +11 -10
- package/src/routes/_route.ts +4 -4
- package/src/routes/_shared.ts +13 -12
- package/src/routes/agent-effort.ts +5 -5
- package/src/routes/agent-heartbeat-quota.ts +23 -0
- package/src/routes/agent-keep.ts +1 -1
- package/src/routes/agent-profiles.ts +6 -6
- package/src/routes/agent-reporting.ts +1 -1
- package/src/routes/agent-self-effort.ts +5 -5
- package/src/routes/agent-sessions.ts +24 -24
- package/src/routes/agents-spawn.ts +2 -2
- package/src/routes/agents.ts +19 -121
- package/src/routes/auth.ts +14 -15
- package/src/routes/authority-audit.ts +2 -2
- package/src/routes/automations.ts +6 -5
- package/src/routes/channel-binding-delete.ts +1 -1
- package/src/routes/channel-output.ts +3 -3
- package/src/routes/claude-api-budget.ts +5 -5
- package/src/routes/commands-listing.ts +5 -1
- package/src/routes/commands.ts +31 -29
- package/src/routes/context-resets.ts +2 -2
- package/src/routes/continuation-archives.ts +2 -2
- package/src/routes/coordinator-teams.ts +1 -1
- package/src/routes/decisions.ts +2 -2
- package/src/routes/host-secret-files.ts +1 -1
- package/src/routes/hosts.ts +11 -11
- package/src/routes/inbox.ts +3 -2
- package/src/routes/index.ts +12 -2
- package/src/routes/integrations.ts +32 -56
- package/src/routes/issue-activity.ts +2 -2
- package/src/routes/issue-associations.ts +4 -4
- package/src/routes/issue-refs.ts +9 -9
- package/src/routes/kernel-timers-operator.ts +1 -1
- package/src/routes/memory.ts +1 -1
- package/src/routes/merges.ts +11 -11
- package/src/routes/messages.ts +23 -17
- package/src/routes/orchestrator-bootstrap.ts +2 -2
- package/src/routes/orchestrator-host-registration.ts +4 -2
- package/src/routes/orchestrator-host-utilization.ts +5 -3
- package/src/routes/orchestrator-proxy.ts +4 -4
- package/src/routes/orchestrator.ts +28 -19
- package/src/routes/pairs.ts +8 -8
- package/src/routes/project-profile-instructions.ts +27 -0
- package/src/routes/project-trust.ts +3 -3
- package/src/routes/projects.ts +16 -16
- package/src/routes/prompt-templates.ts +12 -12
- package/src/routes/provider-config.ts +6 -6
- package/src/routes/provider-quota-config.ts +2 -2
- package/src/routes/provider-quotas.ts +10 -10
- package/src/routes/run-command.ts +1 -1
- package/src/routes/secrets-backup.ts +2 -2
- package/src/routes/secrets-import.ts +1 -1
- package/src/routes/secrets-vault.ts +7 -7
- package/src/routes/settings.ts +6 -6
- package/src/routes/shipping.ts +9 -1
- package/src/routes/spawn-policy.ts +8 -7
- package/src/routes/sse.ts +2 -2
- package/src/routes/stats.ts +6 -6
- package/src/routes/task-http.ts +15 -1
- package/src/routes/task-issues.ts +11 -26
- package/src/routes/tasks.ts +22 -53
- package/src/routes/team-templates.ts +12 -12
- package/src/routes/teams-config.ts +2 -2
- package/src/routes/teams.ts +10 -10
- package/src/routes/tokens.ts +30 -22
- package/src/routes/users.ts +24 -24
- package/src/routes/viewer-read.ts +3 -3
- package/src/routes/web-tool-calls.ts +4 -4
- package/src/routes/workflows.ts +22 -7
- package/src/routes/workspaces.ts +17 -16
- package/src/routing-policy-normalize.ts +1 -2
- package/src/routing-policy-push.ts +6 -6
- package/src/routing-step-defaults.ts +0 -2
- package/src/runner-token-mint-limit.ts +63 -0
- package/src/runtime-grant.ts +21 -13
- package/src/runtime-tokens.ts +59 -35
- package/src/secrets-broker/config.ts +1 -1
- package/src/secrets-broker/service.ts +2 -2
- package/src/security.ts +16 -21
- package/src/self-resume-carry.ts +21 -110
- package/src/self-resume-supersede.ts +4 -3
- package/src/self-resume.ts +54 -66
- package/src/server-background.ts +2 -2
- package/src/server.ts +26 -24
- package/src/services/agent-action.ts +12 -31
- package/src/services/agent-effort.ts +7 -32
- package/src/services/agent-hang-watchdog-job.ts +2 -2
- package/src/services/agent-heartbeat.ts +166 -0
- package/src/services/agent-reporting.ts +1 -1
- package/src/services/browser-inventory.ts +3 -3
- package/src/services/browser-session-state.ts +3 -2
- package/src/services/browser-session.ts +21 -27
- package/src/services/bus-command-update.ts +9 -9
- package/src/services/checkout-refresh-state.ts +1 -0
- package/src/services/checkout-refresh.test-fixture.ts +3 -2
- package/src/services/command-host.ts +7 -2
- package/src/services/coordinator-digest.ts +3 -2
- package/src/services/dispatch-command.ts +12 -13
- package/src/services/effective-launch-driver.ts +14 -9
- package/src/services/host-changed-paths.test-fixture.ts +5 -6
- package/src/services/host-project-readiness.ts +2 -2
- package/src/services/host-providers.ts +1 -1
- package/src/services/host-utilization.ts +27 -4
- package/src/services/idle-agent-digest.ts +17 -12
- package/src/services/idle-epics.ts +9 -10
- package/src/services/interrupt-agent.ts +12 -9
- package/src/services/issue-activity.ts +3 -3
- package/src/services/issue-associations.ts +15 -18
- package/src/services/issue-lifecycle-comments.ts +3 -2
- package/src/services/issue-lifecycle.ts +69 -72
- package/src/services/issue-refs.ts +10 -15
- package/src/services/kernel-timers-cutover-chaos-worker.ts +11 -8
- package/src/services/kernel-timers-ingress-chaos-worker.ts +6 -1
- package/src/services/kernel-timers-ingress.ts +4 -4
- package/src/services/kernel-timers-message-authority-chaos-worker.ts +3 -10
- package/src/services/kernel-timers-operator-chaos-worker.ts +3 -2
- package/src/services/kernel-timers-outbox.ts +1 -1
- package/src/services/kernel-timers-stage10-operator.ts +1 -1
- package/src/services/kernel-timers.ts +4 -3
- package/src/services/land-gate-placement.ts +11 -2
- package/src/services/land-issue-relations.ts +5 -4
- package/src/services/land-restart-retry.ts +7 -6
- package/src/services/landed-ancestry.ts +25 -8
- package/src/services/legacy-landing-host.ts +4 -1
- package/src/services/legacy-landing-recovery.ts +8 -6
- package/src/services/managed-running.ts +17 -17
- package/src/services/memory-areas.ts +17 -53
- package/src/services/merge-pause.ts +9 -15
- package/src/services/operator-decisions.ts +37 -41
- package/src/services/orchestrator-registration-recovery.ts +6 -2
- package/src/services/orchestrator-upgrade.ts +14 -12
- package/src/services/permission-decision.ts +4 -3
- package/src/services/plan-ci-notice.ts +57 -0
- package/src/services/plan-ci-recovery.ts +2 -55
- package/src/services/plan-conformance.ts +4 -4
- package/src/services/plan-dispatch-policy.ts +10 -3
- package/src/services/plan-dispatch.ts +35 -14
- package/src/services/plan-graph.ts +39 -261
- package/src/services/plan-import.ts +1 -1
- package/src/services/plan-live-bindings.ts +8 -37
- package/src/services/plan-task-create.ts +1 -1
- package/src/services/plan-terminal-refs.ts +2 -12
- package/src/services/plan-wake-digest.ts +9 -3
- package/src/services/profile-trust.ts +6 -5
- package/src/services/project-config-read.ts +70 -0
- package/src/services/project-profile-instructions.ts +54 -0
- package/src/services/project.ts +11 -10
- package/src/services/prompt-templates.ts +6 -5
- package/src/services/provider-hold-nudge.ts +9 -9
- package/src/services/provider-hold-record.ts +13 -12
- package/src/services/provider-state-audit.ts +19 -18
- package/src/services/provisioning-harness/budget-baseline.json +4 -4
- package/src/services/provisioning-harness/driver.ts +1 -1
- package/src/services/provisioning-harness/fixture-matrix.ts +3 -3
- package/src/services/provisioning-harness/lifecycle.ts +24 -22
- package/src/services/provisioning-harness/prepare.ts +16 -17
- package/src/services/rate-limit-resume.ts +10 -9
- package/src/services/red-main-auto-revert.ts +7 -5
- package/src/services/red-main-controller-deps.ts +20 -3
- package/src/services/red-main-incident.ts +3 -1
- package/src/services/red-main-quarantine.ts +2 -3
- package/src/services/register-agent.ts +22 -22
- package/src/services/restart-project-role.ts +1 -1
- package/src/services/restart-spawn.ts +74 -61
- package/src/services/review-publish.ts +7 -24
- package/src/services/review-ref-reconcile.ts +29 -38
- package/src/services/runtime-dependency-alert.ts +27 -0
- package/src/services/scheduler-command.ts +11 -9
- package/src/services/scheduler.ts +5 -5
- package/src/services/self-care-state.ts +2 -1
- package/src/services/self-effort-grant.ts +5 -25
- package/src/services/self-effort.ts +5 -5
- package/src/services/send-message.ts +21 -34
- package/src/services/shutdown-agent.ts +17 -14
- package/src/services/spawn-agent.ts +25 -43
- package/src/services/spawn-chain-inspector.ts +7 -14
- package/src/services/spawn-cwd-placement.ts +21 -5
- package/src/services/spawn-issue-activity.ts +8 -6
- package/src/services/spawn-launch.ts +17 -1
- package/src/services/spawn-loss-escalation.ts +1 -1
- package/src/services/spawn-policy.ts +68 -0
- package/src/services/spawn-registration-watchdog.ts +2 -2
- package/src/services/spawn-repo-probe.ts +7 -5
- package/src/services/spawn-tree-cleanup.ts +8 -9
- package/src/services/steward-reaper.ts +4 -4
- package/src/services/task-context-hydration.ts +25 -1
- package/src/services/task-delivery.ts +20 -34
- package/src/services/task-dispatch.ts +3 -0
- package/src/services/task-entity.ts +40 -203
- package/src/services/task-issue-link.ts +13 -20
- package/src/services/task-issue-weave.ts +12 -11
- package/src/services/task-lifecycle.ts +27 -31
- package/src/services/task-repo-cwd.ts +37 -0
- package/src/services/task-review-hold.ts +4 -17
- package/src/services/task-semantic-events.ts +13 -11
- package/src/services/task-state-reconcile.ts +8 -17
- package/src/services/task-validation.ts +2 -2
- package/src/services/team-templates.ts +12 -11
- package/src/services/team.ts +31 -98
- package/src/services/terminal-provider-exit.ts +6 -5
- package/src/services/timer-message-fire-chaos-worker.ts +7 -3
- package/src/services/timer-message-fire-outbox.ts +1 -1
- package/src/services/transient-agent-reaper.ts +25 -20
- package/src/services/turn-reconcile-audit.ts +9 -9
- package/src/services/user-onboarding.ts +8 -6
- package/src/services/user-profile.ts +6 -9
- package/src/services/work-finality.ts +16 -4
- package/src/services/workflow-auto-start.ts +26 -13
- package/src/services/workflow-caller.ts +61 -4
- package/src/services/workflow-child-proof-worker.ts +1 -1
- package/src/services/workflow-ci-main.ts +1 -1
- package/src/services/workflow-control-proof-worker.ts +1 -1
- package/src/services/workflow-coordinator.ts +8 -2
- package/src/services/workflow-decisions.ts +5 -5
- package/src/services/workflow-deferred-cleanup.ts +5 -3
- package/src/services/workflow-effect-driver.ts +42 -17
- package/src/services/workflow-effects.ts +58 -37
- package/src/services/workflow-land-notice.ts +10 -0
- package/src/services/workflow-pause-text.ts +43 -0
- package/src/services/workflow-pins.ts +7 -4
- package/src/services/workflow-reconcile.ts +14 -11
- package/src/services/workflow-resume-pins.ts +3 -3
- package/src/services/workflow-routing-defaults.ts +18 -0
- package/src/services/workflow-run-view.ts +6 -3
- package/src/services/workflow-run.test-fixture.ts +1 -1
- package/src/services/workflow-runs.ts +61 -33
- package/src/services/workflow-supervisor-state.ts +26 -1
- package/src/services/workflow-supervisor.ts +11 -6
- package/src/services/workspace-recovery.ts +4 -3
- package/src/settings/registry.ts +1 -2
- package/src/spawn-admission.ts +10 -2
- package/src/spawn-command.ts +4 -4
- package/src/spawn-models.ts +10 -12
- package/src/spawn-placement.ts +28 -10
- package/src/spawn-targets.ts +9 -9
- package/src/sse-agent-status.ts +15 -6
- package/src/sse.ts +49 -24
- package/src/startup-context-injection.ts +62 -57
- package/src/state-adoption/cd-cutover.ts +53 -7
- package/src/state-adoption/fleet-cutover.ts +35 -0
- package/src/state-adoption/fleet-plan.ts +36 -0
- package/src/state-adoption/index.ts +2 -2
- package/src/state-adoption/linux-plan.ts +2 -2
- package/src/state-adoption/linux.ts +2 -2
- package/src/state-adoption/macos-plan.ts +2 -2
- package/src/state-adoption/macos.ts +1 -1
- package/src/steward-handoff.ts +4 -3
- package/src/steward-policy-cleanup.ts +9 -8
- package/src/steward.ts +9 -8
- package/src/task-dispatch-live.ts +6 -3
- package/src/task-dispatcher.ts +3 -3
- package/src/teams-config-store.ts +4 -3
- package/src/token-db-write.ts +10 -0
- package/src/token-db.ts +2 -2
- package/src/token-usage-async.ts +2 -4
- package/src/user-awaiting-reply.ts +5 -5
- package/src/workspace-actions.ts +24 -29
- package/src/workspace-auto-merge.ts +14 -12
- package/src/workspace-changed-paths-client.ts +16 -5
- package/src/workspace-cleanup-stale.ts +30 -7
- package/src/workspace-command-settle.ts +26 -17
- package/src/workspace-config.ts +1 -1
- package/src/workspace-conflict-resolver.ts +9 -7
- package/src/workspace-dead-owner-recovery.ts +5 -4
- package/src/workspace-escalation.ts +12 -11
- package/src/workspace-human-escalation.ts +3 -3
- package/src/workspace-land-gate-watchdog.ts +3 -3
- package/src/workspace-land-refusal.ts +20 -0
- package/src/workspace-land-stopped.ts +1 -0
- package/src/workspace-merge.ts +10 -26
- package/src/workspace-nothing-to-land-notice.ts +2 -2
- package/src/workspace-orphans.ts +18 -37
- package/src/workspace-pr-completion.ts +10 -8
- package/src/workspace-rekey.ts +3 -3
- package/src/workspace-steward-failure.ts +2 -2
- package/src/workspace-steward-wake.ts +4 -4
- package/node_modules/@humwick/kernel/LICENSE +0 -167
- package/node_modules/@humwick/kernel/async-entity-persistence.ts +0 -344
- package/node_modules/@humwick/kernel/async-event-log.ts +0 -107
- package/node_modules/@humwick/kernel/automations.pilot.ts +0 -147
- package/node_modules/@humwick/kernel/config.ts +0 -111
- package/node_modules/@humwick/kernel/contract.ts +0 -572
- package/node_modules/@humwick/kernel/control-authz.ts +0 -281
- package/node_modules/@humwick/kernel/control.ts +0 -645
- package/node_modules/@humwick/kernel/effects.ts +0 -493
- package/node_modules/@humwick/kernel/event-log.ts +0 -319
- package/node_modules/@humwick/kernel/http-transport.ts +0 -384
- package/node_modules/@humwick/kernel/identity-grammar.ts +0 -20
- package/node_modules/@humwick/kernel/identity.ts +0 -248
- package/node_modules/@humwick/kernel/index.ts +0 -28
- package/node_modules/@humwick/kernel/kernel-persistence.ts +0 -181
- package/node_modules/@humwick/kernel/landing-incident.ts +0 -306
- package/node_modules/@humwick/kernel/landing.ts +0 -953
- package/node_modules/@humwick/kernel/manifest-validation.ts +0 -460
- package/node_modules/@humwick/kernel/mcp-transport.ts +0 -109
- package/node_modules/@humwick/kernel/message-authority-chaos-worker.ts +0 -200
- package/node_modules/@humwick/kernel/message-authority.ts +0 -281
- package/node_modules/@humwick/kernel/module-host.ts +0 -722
- package/node_modules/@humwick/kernel/openapi-init.ts +0 -14
- package/node_modules/@humwick/kernel/package.json +0 -39
- package/node_modules/@humwick/kernel/persistence-schema.ts +0 -248
- package/node_modules/@humwick/kernel/persistence.ts +0 -510
- package/node_modules/@humwick/kernel/registry.ts +0 -60
- package/node_modules/@humwick/kernel/sqlite-kernel-persistence.ts +0 -499
- package/node_modules/@humwick/kernel/sqlite-module-host.ts +0 -87
- package/node_modules/@humwick/kernel/timers-chaos-worker.ts +0 -186
- package/node_modules/@humwick/kernel/timers.pilot.ts +0 -1411
- package/node_modules/@humwick/kernel/workflow-activation.ts +0 -25
- package/node_modules/@humwick/kernel/workflow-backstop.ts +0 -40
- package/node_modules/@humwick/kernel/workflow-cancel-tree.ts +0 -20
- package/node_modules/@humwick/kernel/workflow-chaos-worker.ts +0 -213
- package/node_modules/@humwick/kernel/workflow-composition.ts +0 -231
- package/node_modules/@humwick/kernel/workflow-container.ts +0 -72
- package/node_modules/@humwick/kernel/workflow-control.test-fixture.ts +0 -42
- package/node_modules/@humwick/kernel/workflow-control.ts +0 -178
- package/node_modules/@humwick/kernel/workflow-definition.ts +0 -507
- package/node_modules/@humwick/kernel/workflow-dispatch.ts +0 -60
- package/node_modules/@humwick/kernel/workflow-foreach.ts +0 -167
- package/node_modules/@humwick/kernel/workflow-journal-codec.ts +0 -339
- package/node_modules/@humwick/kernel/workflow-journal.ts +0 -922
- package/node_modules/@humwick/kernel/workflow-lane.ts +0 -48
- package/node_modules/@humwick/kernel/workflow-lease-owner.ts +0 -60
- package/node_modules/@humwick/kernel/workflow-recovery.test-fixture.ts +0 -19
- package/node_modules/@humwick/kernel/workflow-runtime.ts +0 -938
- package/node_modules/@humwick/kernel/workflow-script.ts +0 -11
- package/node_modules/@humwick/kernel/workflow-state.ts +0 -299
- package/node_modules/@humwick/kernel/workflow-step-commit.ts +0 -195
- package/node_modules/@humwick/kernel/workflow-transitions.ts +0 -317
- package/node_modules/@humwick/kernel/workflow-values.ts +0 -153
- package/node_modules/@humwick/kernel/workflow.pilot.ts +0 -376
- package/node_modules/@humwick/offload/LICENSE +0 -167
- package/node_modules/@humwick/offload/README.md +0 -57
- package/node_modules/@humwick/offload/dist/async-runner.d.ts +0 -18
- package/node_modules/@humwick/offload/dist/async-runner.d.ts.map +0 -1
- package/node_modules/@humwick/offload/dist/async-runner.js +0 -158
- package/node_modules/@humwick/offload/dist/async-runner.js.map +0 -1
- package/node_modules/@humwick/offload/dist/envelope.d.ts +0 -25
- package/node_modules/@humwick/offload/dist/envelope.d.ts.map +0 -1
- package/node_modules/@humwick/offload/dist/envelope.js +0 -80
- package/node_modules/@humwick/offload/dist/envelope.js.map +0 -1
- package/node_modules/@humwick/offload/dist/fixtures/worker-task.d.ts +0 -10
- package/node_modules/@humwick/offload/dist/fixtures/worker-task.d.ts.map +0 -1
- package/node_modules/@humwick/offload/dist/fixtures/worker-task.js +0 -59
- package/node_modules/@humwick/offload/dist/fixtures/worker-task.js.map +0 -1
- package/node_modules/@humwick/offload/dist/index.d.ts +0 -5
- package/node_modules/@humwick/offload/dist/index.d.ts.map +0 -1
- package/node_modules/@humwick/offload/dist/index.js +0 -5
- package/node_modules/@humwick/offload/dist/index.js.map +0 -1
- package/node_modules/@humwick/offload/dist/subprocess-runner.d.ts +0 -62
- package/node_modules/@humwick/offload/dist/subprocess-runner.d.ts.map +0 -1
- package/node_modules/@humwick/offload/dist/subprocess-runner.js +0 -295
- package/node_modules/@humwick/offload/dist/subprocess-runner.js.map +0 -1
- package/node_modules/@humwick/offload/dist/types.d.ts +0 -111
- package/node_modules/@humwick/offload/dist/types.d.ts.map +0 -1
- package/node_modules/@humwick/offload/dist/types.js +0 -176
- package/node_modules/@humwick/offload/dist/types.js.map +0 -1
- package/node_modules/@humwick/offload/dist/worker-pool.d.ts +0 -23
- package/node_modules/@humwick/offload/dist/worker-pool.d.ts.map +0 -1
- package/node_modules/@humwick/offload/dist/worker-pool.js +0 -435
- package/node_modules/@humwick/offload/dist/worker-pool.js.map +0 -1
- package/node_modules/@humwick/offload/dist/worker-runtime.d.ts +0 -2
- package/node_modules/@humwick/offload/dist/worker-runtime.d.ts.map +0 -1
- package/node_modules/@humwick/offload/dist/worker-runtime.js +0 -27
- package/node_modules/@humwick/offload/dist/worker-runtime.js.map +0 -1
- package/node_modules/@humwick/offload/dist/worker.d.ts +0 -5
- package/node_modules/@humwick/offload/dist/worker.d.ts.map +0 -1
- package/node_modules/@humwick/offload/dist/worker.js +0 -1
- package/node_modules/@humwick/offload/dist/worker.js.map +0 -1
- package/node_modules/@humwick/offload/package.json +0 -42
- package/node_modules/@humwick/offload/src/async-runner.ts +0 -170
- package/node_modules/@humwick/offload/src/envelope.ts +0 -92
- package/node_modules/@humwick/offload/src/fixtures/worker-task.ts +0 -49
- package/node_modules/@humwick/offload/src/index.ts +0 -4
- package/node_modules/@humwick/offload/src/subprocess-runner.ts +0 -334
- package/node_modules/@humwick/offload/src/types.ts +0 -235
- package/node_modules/@humwick/offload/src/worker-pool.ts +0 -463
- package/node_modules/@humwick/offload/src/worker-runtime.ts +0 -32
- package/node_modules/@humwick/offload/src/worker.ts +0 -5
- package/public/assets/agent-liveness-DyqxfB-t.js +0 -2
- package/public/assets/agent-profiles-BpI_jTxq.js +0 -2
- package/public/assets/index-B7ZerHLY.css +0 -2
- package/public/assets/index-BU3uWo2t.js +0 -15
- package/public/assets/projects-B_lmcqfO.js +0 -2
- package/public/assets/provider-display-DbLWpP3j.js +0 -2
- package/public/assets/run-card-CO_bguQf.js +0 -2
- package/public/assets/shipping-Bu8p1gEw.js +0 -2
- package/public/assets/store-BvtFdlGX.js +0 -9
- package/public/assets/use-project-list-B-T2Bnnn.js +0 -2
- package/public/assets/versioned-prompt-editor-Diu8BIaM.js +0 -8
- package/runner/src/agent-runner/http-liveness.ts +0 -85
- package/runner/src/gate-run-lease-probe.ts +0 -38
- package/src/db/claude-catalog-reconcile.ts +0 -27
- package/src/db/on-loop-write-transaction.ts +0 -34
- package/src/routing-model-aliases.ts +0 -21
|
@@ -1,435 +0,0 @@
|
|
|
1
|
-
import { beginRun, errorForExit, finishLog, recordResult, startLog } from "./envelope.js";
|
|
2
|
-
import { OffloadError, StrikeCounter, normalizeError, validateTimeout } from "./types.js";
|
|
3
|
-
// For a RETRY-SAFE job (env.retrySafe), a worker death with the job in flight is absorbed by
|
|
4
|
-
// re-dispatching to a fresh worker up to this many times. Reaching the limit means the job's OWN
|
|
5
|
-
// execution repeatedly killed the worker (a real fault), so it is then charged and still
|
|
6
|
-
// escalates. A non-retry-safe (default) job is never re-dispatched — it runs at most once
|
|
7
|
-
// (#1822 HIGH-1). See onWorkerDeath.
|
|
8
|
-
const MAX_JOB_REDISPATCHES = 2;
|
|
9
|
-
/**
|
|
10
|
-
* Fixed native Bun Worker pool. A deadline or abort replaces the whole worker because
|
|
11
|
-
* CPU-bound synchronous code cannot observe a cancellation message while it is busy.
|
|
12
|
-
*/
|
|
13
|
-
export function createWorkerPool(options) {
|
|
14
|
-
const size = options.size ?? Math.max(1, (navigator.hardwareConcurrency || 2) - 1);
|
|
15
|
-
if (!Number.isSafeInteger(size) || size < 1)
|
|
16
|
-
throw new RangeError("size must be a positive integer");
|
|
17
|
-
const workerModule = options.worker instanceof URL ? options.worker.href : options.worker;
|
|
18
|
-
const slots = [];
|
|
19
|
-
const queued = [];
|
|
20
|
-
const counter = new StrikeCounter(options.escalationThreshold, options.escalationWindowAttempts);
|
|
21
|
-
let nextId = 1;
|
|
22
|
-
let destroyed = false;
|
|
23
|
-
let destroyPromise;
|
|
24
|
-
let dispatching = false;
|
|
25
|
-
let compactionScheduled = false;
|
|
26
|
-
let cancelledQueued = 0;
|
|
27
|
-
const createSlot = () => {
|
|
28
|
-
const slot = { worker: undefined, generation: 0, replacing: false };
|
|
29
|
-
spawnInto(slot);
|
|
30
|
-
return slot;
|
|
31
|
-
};
|
|
32
|
-
// A worker that dies while idle (OOM kill, external SIGKILL, a crash between jobs) leaves a
|
|
33
|
-
// dead handle in the slot. Respawn it so the next run() gets a live worker; nobody is charged
|
|
34
|
-
// because no job was running (#1822 item 2). There is deliberately NO revival breaker: a tight
|
|
35
|
-
// spawn-death loop would require the worker BOOTSTRAP itself to fail to load repeatedly, which
|
|
36
|
-
// cannot happen through the public API (the bootstrap is this package's own module), so a
|
|
37
|
-
// breaker for it is disproportionate surface (#1822 F3 — simplified). A job that races this
|
|
38
|
-
// revival is protected by re-dispatch (onWorkerDeath), never by counting idle deaths.
|
|
39
|
-
const reviveIdle = (slot) => {
|
|
40
|
-
if (destroyed || slot.replacing)
|
|
41
|
-
return;
|
|
42
|
-
void replace(slot);
|
|
43
|
-
};
|
|
44
|
-
const spawnInto = (slot) => {
|
|
45
|
-
if (destroyed)
|
|
46
|
-
return;
|
|
47
|
-
const generation = ++slot.generation;
|
|
48
|
-
// `.js` is intentional: package consumers execute the compiled dist asset. Bun maps this
|
|
49
|
-
// to the sibling TypeScript source while running the workspace directly in development.
|
|
50
|
-
const worker = new Worker(new URL("./worker-runtime.js", import.meta.url), { type: "module" });
|
|
51
|
-
slot.worker = worker;
|
|
52
|
-
worker.onmessage = (event) => {
|
|
53
|
-
if (slot.generation !== generation)
|
|
54
|
-
return;
|
|
55
|
-
const active = slot.active;
|
|
56
|
-
if (!active || active.id !== event.data.id)
|
|
57
|
-
return;
|
|
58
|
-
if (event.data.ok)
|
|
59
|
-
settle(slot, active, undefined, event.data.value);
|
|
60
|
-
else
|
|
61
|
-
settle(slot, active, new OffloadError({
|
|
62
|
-
kind: "worker-error", taskName: active.taskName, code: event.data.error?.code, message: event.data.error?.message ?? "Worker task failed",
|
|
63
|
-
}));
|
|
64
|
-
};
|
|
65
|
-
worker.onerror = (event) => {
|
|
66
|
-
if (slot.generation !== generation)
|
|
67
|
-
return;
|
|
68
|
-
const active = slot.active;
|
|
69
|
-
if (!active) {
|
|
70
|
-
reviveIdle(slot);
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
// An uncaught error is by definition an abnormal termination attributable to the running job.
|
|
74
|
-
onWorkerDeath(slot, active, new OffloadError({ kind: "worker-error", taskName: active.taskName, message: event.message || "Worker errored", cause: event.error }), true);
|
|
75
|
-
};
|
|
76
|
-
// Bun reports process.exit(), OOM, and hard crashes through `close` without an `error` event.
|
|
77
|
-
// Reclaiming the slot here is essential when a caller omitted a timeout — and when the slot is
|
|
78
|
-
// idle, so a later run() never inherits the dead worker (#1822 item 2). The close event carries
|
|
79
|
-
// the exit `code`: 0 is a clean exit the worker CHOSE (not the job's fault); anything else is an
|
|
80
|
-
// abnormal termination attributable to the in-flight job (#1822 MED-4). A missing code is
|
|
81
|
-
// treated as abnormal — the safe default is to preserve escalation, not to drop it.
|
|
82
|
-
worker.addEventListener("close", (event) => {
|
|
83
|
-
if (slot.generation !== generation)
|
|
84
|
-
return;
|
|
85
|
-
const active = slot.active;
|
|
86
|
-
if (!active) {
|
|
87
|
-
reviveIdle(slot);
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
const code = event.code;
|
|
91
|
-
const clean = code === 0;
|
|
92
|
-
onWorkerDeath(slot, active, errorForExit(active.taskName, clean ? undefined : String(code)), !clean);
|
|
93
|
-
});
|
|
94
|
-
};
|
|
95
|
-
const settle = (slot, active, error, value) => {
|
|
96
|
-
if (active.settled)
|
|
97
|
-
return;
|
|
98
|
-
active.settled = true;
|
|
99
|
-
active.context.cleanup();
|
|
100
|
-
active.removeAbort();
|
|
101
|
-
slot.active = undefined;
|
|
102
|
-
const labels = active.env?.labels ?? {};
|
|
103
|
-
const logger = active.env?.logger ?? options.logger;
|
|
104
|
-
finishLog(logger, "worker", active.taskName, labels, active.startedAt, error);
|
|
105
|
-
void recordResult({
|
|
106
|
-
counter, taskName: active.taskName, backend: "worker", labels, error,
|
|
107
|
-
sink: active.env?.onEscalate ?? options.onEscalate, logger,
|
|
108
|
-
});
|
|
109
|
-
if (error)
|
|
110
|
-
active.reject(error);
|
|
111
|
-
else
|
|
112
|
-
active.resolve(value);
|
|
113
|
-
dispatch();
|
|
114
|
-
};
|
|
115
|
-
// `error` is omitted only when reviving an idle slot: with no active job there is nothing to
|
|
116
|
-
// settle and nobody to charge, so the slot is simply respawned (#1822 item 2).
|
|
117
|
-
const replace = async (slot, error) => {
|
|
118
|
-
if (slot.replacing)
|
|
119
|
-
return;
|
|
120
|
-
slot.replacing = true;
|
|
121
|
-
const active = slot.active;
|
|
122
|
-
if (active && error)
|
|
123
|
-
settle(slot, active, error);
|
|
124
|
-
const old = slot.worker;
|
|
125
|
-
slot.generation += 1;
|
|
126
|
-
try {
|
|
127
|
-
await old.terminate();
|
|
128
|
-
}
|
|
129
|
-
catch { /* worker is already gone */ }
|
|
130
|
-
if (!destroyed) {
|
|
131
|
-
spawnInto(slot);
|
|
132
|
-
slot.replacing = false;
|
|
133
|
-
dispatch();
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
/** Fails exactly one job without touching the slot it was about to occupy. */
|
|
137
|
-
const failJob = (job, error) => {
|
|
138
|
-
// Every terminal path must be visible in the structured stream, including the ones that
|
|
139
|
-
// never reached startLog — otherwise the failure that used to wedge the pool is silent.
|
|
140
|
-
finishLog(job.env?.logger ?? options.logger, "worker", job.taskName, job.env?.labels ?? {}, performance.now(), error);
|
|
141
|
-
job.reject(error);
|
|
142
|
-
void recordResult({
|
|
143
|
-
counter, taskName: job.taskName, backend: "worker", labels: job.env?.labels ?? {}, error,
|
|
144
|
-
sink: job.env?.onEscalate ?? options.onEscalate, logger: job.env?.logger ?? options.logger,
|
|
145
|
-
});
|
|
146
|
-
};
|
|
147
|
-
// Attaches the while-queued abort wiring and enqueues a job. Shared by run() and redispatch()
|
|
148
|
-
// so a re-dispatched job re-arms its abort handling exactly like a fresh one. `front` puts an
|
|
149
|
-
// innocent, re-dispatched job ahead of newer work so its retry is prompt.
|
|
150
|
-
const enqueue = (job, front = false) => {
|
|
151
|
-
const labels = job.env?.labels ?? {};
|
|
152
|
-
const logger = job.env?.logger ?? options.logger;
|
|
153
|
-
const signal = job.env?.signal;
|
|
154
|
-
if (signal?.aborted) {
|
|
155
|
-
const error = new OffloadError({ kind: "aborted", taskName: job.taskName, message: `${job.taskName} was aborted`, cause: signal.reason });
|
|
156
|
-
finishLog(logger, "worker", job.taskName, labels, performance.now(), error);
|
|
157
|
-
job.reject(error);
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
if (signal) {
|
|
161
|
-
// Without this, a job aborted while queued waits for a slot to free before it is
|
|
162
|
-
// rejected — unbounded when the occupying worker has no deadline (#1809 P1-8).
|
|
163
|
-
const onQueuedAbort = () => {
|
|
164
|
-
if (job.cancelled)
|
|
165
|
-
return;
|
|
166
|
-
job.cancelled = true;
|
|
167
|
-
cancelledQueued += 1;
|
|
168
|
-
scheduleCompaction();
|
|
169
|
-
const error = new OffloadError({ kind: "aborted", taskName: job.taskName, message: `${job.taskName} was aborted`, cause: signal.reason });
|
|
170
|
-
// An abort that lands mid-run logs `offload failed kind=aborted`; one that lands
|
|
171
|
-
// while queued must not be the single asymmetric case that logs nothing.
|
|
172
|
-
finishLog(logger, "worker", job.taskName, labels, performance.now(), error);
|
|
173
|
-
job.reject(error);
|
|
174
|
-
};
|
|
175
|
-
signal.addEventListener("abort", onQueuedAbort, { once: true });
|
|
176
|
-
job.releaseQueued = () => signal.removeEventListener("abort", onQueuedAbort);
|
|
177
|
-
}
|
|
178
|
-
if (front)
|
|
179
|
-
queued.unshift(job);
|
|
180
|
-
else
|
|
181
|
-
queued.push(job);
|
|
182
|
-
dispatch();
|
|
183
|
-
};
|
|
184
|
-
// Fails a job WITHOUT charging a strike, for a death that is not attributable to the job's own
|
|
185
|
-
// execution (an idle-death race — the job never ran). Still logged so the stream is complete.
|
|
186
|
-
const failJobUncharged = (job, error) => {
|
|
187
|
-
finishLog(job.env?.logger ?? options.logger, "worker", job.taskName, job.env?.labels ?? {}, performance.now(), error);
|
|
188
|
-
job.reject(error);
|
|
189
|
-
};
|
|
190
|
-
// A worker died with `active` still in flight and unsettled. Two axes decide the outcome:
|
|
191
|
-
// - RE-RUN? Only a retry-safe (idempotent) job may re-run, and only while it has retries left.
|
|
192
|
-
// A default job runs AT MOST ONCE, so it is never re-dispatched (#1822 HIGH-1) — re-running
|
|
193
|
-
// a side-effecting job would repeat its effect. A retry-safe job re-dispatches on ANY death
|
|
194
|
-
// (clean or abnormal) while retries remain, since re-running it is safe by construction.
|
|
195
|
-
// - CHARGE? Only when the death is ATTRIBUTABLE to the job's own execution, decided from the
|
|
196
|
-
// worker's EXIT MANNER observed by the pool: an abnormal termination (non-zero exit, signal,
|
|
197
|
-
// or uncaught error) with this job in flight is charged; a clean exit (code 0 — the worker
|
|
198
|
-
// chose to stop) or a job that never reached a worker (postMessage threw) is an idle-race /
|
|
199
|
-
// infra event, not a task fault, and is rejected WITHOUT a strike. Exit manner is used instead
|
|
200
|
-
// of a worker-sent execution-start frame precisely because that frame can be LOST when a hard
|
|
201
|
-
// crash races it, which would let a job that reliably crashes its worker escape escalation
|
|
202
|
-
// forever (#1822 MED-4). `attributable` already covers retry-exhaustion: a retry-safe job that
|
|
203
|
-
// crashes every worker exhausts its retries on an abnormal death, so that final death charges.
|
|
204
|
-
const onWorkerDeath = (slot, active, error, attributable) => {
|
|
205
|
-
const retrySafe = active.retrySafe;
|
|
206
|
-
if (retrySafe && active.redispatches < MAX_JOB_REDISPATCHES) {
|
|
207
|
-
redispatch(slot, active);
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
|
-
if (attributable) {
|
|
211
|
-
// `replace` settles the still-attached active job with the error, charging it once.
|
|
212
|
-
void replace(slot, error);
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
// Clean exit / never executed → do not charge. Detach, respawn a fresh worker, reject the caller.
|
|
216
|
-
slot.active = undefined;
|
|
217
|
-
active.removeAbort();
|
|
218
|
-
active.context.cleanup();
|
|
219
|
-
void replace(slot);
|
|
220
|
-
failJobUncharged(active, error);
|
|
221
|
-
};
|
|
222
|
-
// Detaches a retry-safe job from a dead slot, respawns a fresh worker there, and re-queues the
|
|
223
|
-
// SAME caller promise so an idempotent job that raced a worker death runs cleanly. The absolute
|
|
224
|
-
// deadline is carried on the job, so the retry continues the original deadline (#1822 MED-2).
|
|
225
|
-
const redispatch = (slot, active) => {
|
|
226
|
-
slot.active = undefined;
|
|
227
|
-
active.removeAbort();
|
|
228
|
-
active.context.cleanup();
|
|
229
|
-
const job = {
|
|
230
|
-
id: active.id, taskName: active.taskName, input: active.input, env: active.env,
|
|
231
|
-
retrySafe: active.retrySafe, timeoutMs: active.timeoutMs,
|
|
232
|
-
cancelled: false, redispatches: active.redispatches + 1, deadlineAt: active.deadlineAt,
|
|
233
|
-
releaseQueued: () => { }, resolve: active.resolve, reject: active.reject,
|
|
234
|
-
};
|
|
235
|
-
// Respawn FIRST so the slot is marked `replacing` synchronously and dispatch cannot hand the
|
|
236
|
-
// re-queued job straight back to the same corpse; replace()'s own dispatch then serves it.
|
|
237
|
-
void replace(slot);
|
|
238
|
-
enqueue(job, true);
|
|
239
|
-
};
|
|
240
|
-
const start = (slot, job) => {
|
|
241
|
-
job.releaseQueued();
|
|
242
|
-
let context;
|
|
243
|
-
let removeAbort;
|
|
244
|
-
try {
|
|
245
|
-
// Fix the deadline at the FIRST execution and carry it, so a retry-safe re-dispatch
|
|
246
|
-
// continues the original deadline rather than restarting the full timeout (#1822 MED-2).
|
|
247
|
-
// The budget comes from the SUBMISSION-TIME snapshot (`job.timeoutMs`), never from the
|
|
248
|
-
// mutable envelope, so a caller cannot erase or add a deadline after submission (#1822 MED).
|
|
249
|
-
const baseTimeoutMs = job.timeoutMs;
|
|
250
|
-
let effectiveTimeoutMs = baseTimeoutMs;
|
|
251
|
-
if (baseTimeoutMs !== undefined) {
|
|
252
|
-
if (job.deadlineAt === undefined)
|
|
253
|
-
job.deadlineAt = performance.now() + baseTimeoutMs;
|
|
254
|
-
const remaining = job.deadlineAt - performance.now();
|
|
255
|
-
if (remaining <= 0) {
|
|
256
|
-
// The absolute deadline set on the first execution has already elapsed. A re-dispatch
|
|
257
|
-
// must NOT be granted a fresh run past it (the old `Math.max(1, …)` handed out a 1ms
|
|
258
|
-
// execution AFTER expiry — #1822 MED). A genuine timeout is attributable, so charge it.
|
|
259
|
-
failJob(job, new OffloadError({ kind: "timeout", taskName: job.taskName, message: `${job.taskName} timed out after ${baseTimeoutMs}ms` }));
|
|
260
|
-
return;
|
|
261
|
-
}
|
|
262
|
-
effectiveTimeoutMs = remaining;
|
|
263
|
-
}
|
|
264
|
-
// Pass the ALREADY-RESOLVED timeout as the authoritative override, so beginRun installs
|
|
265
|
-
// exactly it and re-reads neither the envelope NOR the mutable pool default at dispatch —
|
|
266
|
-
// a post-submission mutation of either cannot add or erase this job's deadline (#1822 MED).
|
|
267
|
-
// `null` (not `undefined`) carries "no deadline" so beginRun does not mistake it for "no
|
|
268
|
-
// argument" and fall back to the default. The live envelope is still passed for its signal.
|
|
269
|
-
context = beginRun(job.taskName, job.env, options, undefined, effectiveTimeoutMs ?? null);
|
|
270
|
-
if (context.signal.aborted) {
|
|
271
|
-
const error = context.abortError();
|
|
272
|
-
context.cleanup();
|
|
273
|
-
failJob(job, error);
|
|
274
|
-
return;
|
|
275
|
-
}
|
|
276
|
-
const run = context;
|
|
277
|
-
const onAbort = () => { void replace(slot, run.abortError()); };
|
|
278
|
-
run.signal.addEventListener("abort", onAbort, { once: true });
|
|
279
|
-
removeAbort = () => run.signal.removeEventListener("abort", onAbort);
|
|
280
|
-
const active = {
|
|
281
|
-
...job, context: run, removeAbort, settled: false,
|
|
282
|
-
startedAt: startLog(job.env?.logger ?? options.logger, "worker", job.taskName, job.env?.labels ?? {}),
|
|
283
|
-
};
|
|
284
|
-
slot.active = active;
|
|
285
|
-
try {
|
|
286
|
-
slot.worker.postMessage({ id: job.id, taskName: job.taskName, input: job.input, worker: workerModule });
|
|
287
|
-
}
|
|
288
|
-
catch (error) {
|
|
289
|
-
// postMessage throws when the worker died between dispatch and here (an idle-death race):
|
|
290
|
-
// the job never reached a worker, so it is NOT attributable — re-dispatch it (retrySafe)
|
|
291
|
-
// or reject it uncharged rather than charge it for a death it did not cause (#1822 F2).
|
|
292
|
-
onWorkerDeath(slot, active, normalizeError(job.taskName, error, "worker-error"), false);
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
catch (error) {
|
|
296
|
-
// Anything that throws while starting (an invalid deadline, a hostile logger) must fail
|
|
297
|
-
// ONLY this job. Letting it escape leaves the slot idle with the queue stuck (#1809 P0-1),
|
|
298
|
-
// and the caller must still see an OffloadError rather than the raw RangeError.
|
|
299
|
-
removeAbort?.();
|
|
300
|
-
context?.cleanup();
|
|
301
|
-
if (slot.active?.id === job.id)
|
|
302
|
-
slot.active = undefined;
|
|
303
|
-
failJob(job, normalizeError(job.taskName, error, "rejected"));
|
|
304
|
-
}
|
|
305
|
-
};
|
|
306
|
-
/**
|
|
307
|
-
* Iterative on purpose: the previous version recursed through `start()` for every
|
|
308
|
-
* pre-aborted job, so a mass abort over a deep queue blew the stack (#1809 P0-2).
|
|
309
|
-
* The guard makes the nested `dispatch()` calls on the settle path no-ops — the loop
|
|
310
|
-
* below re-reads slot and queue state on every turn, so no wakeup is lost.
|
|
311
|
-
*/
|
|
312
|
-
const dispatch = () => {
|
|
313
|
-
if (destroyed || dispatching)
|
|
314
|
-
return;
|
|
315
|
-
dispatching = true;
|
|
316
|
-
try {
|
|
317
|
-
while (!destroyed && queued.length) {
|
|
318
|
-
const job = queued[0];
|
|
319
|
-
if (job.cancelled) {
|
|
320
|
-
queued.shift();
|
|
321
|
-
cancelledQueued -= 1;
|
|
322
|
-
continue;
|
|
323
|
-
}
|
|
324
|
-
const slot = slots.find((candidate) => !candidate.active && !candidate.replacing);
|
|
325
|
-
if (!slot)
|
|
326
|
-
break;
|
|
327
|
-
queued.shift();
|
|
328
|
-
start(slot, job);
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
finally {
|
|
332
|
-
dispatching = false;
|
|
333
|
-
}
|
|
334
|
-
};
|
|
335
|
-
/**
|
|
336
|
-
* A mass abort marks jobs in place — splicing each one out would be quadratic over a
|
|
337
|
-
* deep queue — so the dead entries are swept once per batch instead.
|
|
338
|
-
*/
|
|
339
|
-
const scheduleCompaction = () => {
|
|
340
|
-
if (compactionScheduled)
|
|
341
|
-
return;
|
|
342
|
-
compactionScheduled = true;
|
|
343
|
-
queueMicrotask(() => {
|
|
344
|
-
compactionScheduled = false;
|
|
345
|
-
if (cancelledQueued <= 0)
|
|
346
|
-
return;
|
|
347
|
-
const kept = queued.filter((job) => !job.cancelled);
|
|
348
|
-
queued.length = 0;
|
|
349
|
-
for (const job of kept)
|
|
350
|
-
queued.push(job);
|
|
351
|
-
cancelledQueued = 0;
|
|
352
|
-
});
|
|
353
|
-
};
|
|
354
|
-
for (let index = 0; index < size; index += 1)
|
|
355
|
-
slots.push(createSlot());
|
|
356
|
-
return {
|
|
357
|
-
offThread: true,
|
|
358
|
-
get stats() {
|
|
359
|
-
const busy = slots.filter((slot) => slot.active).length;
|
|
360
|
-
return { busy, idle: slots.length - busy, queued: queued.length - cancelledQueued };
|
|
361
|
-
},
|
|
362
|
-
run(taskName, input, env) {
|
|
363
|
-
const labels = env?.labels ?? {};
|
|
364
|
-
const logger = env?.logger ?? options.logger;
|
|
365
|
-
// Rejecting before the run ever starts is still a terminal outcome, so it gets the same
|
|
366
|
-
// one line in the structured stream that every other settle path emits.
|
|
367
|
-
const rejectBeforeStart = (error) => {
|
|
368
|
-
finishLog(logger, "worker", taskName, labels, performance.now(), error);
|
|
369
|
-
return Promise.reject(error);
|
|
370
|
-
};
|
|
371
|
-
if (destroyed)
|
|
372
|
-
return rejectBeforeStart(new OffloadError({ kind: "worker-exit", taskName, message: "Worker pool has been destroyed" }));
|
|
373
|
-
// Validated here rather than at dispatch so an invalid deadline fails the caller fast,
|
|
374
|
-
// with the OffloadError every backend promises, even when a slot is free (#1809 P0-1). The
|
|
375
|
-
// validated value is SNAPSHOTTED onto the job so the deadline it drives is fixed at
|
|
376
|
-
// submission and immune to a later envelope mutation (#1822 MED).
|
|
377
|
-
let timeoutMs;
|
|
378
|
-
try {
|
|
379
|
-
timeoutMs = validateTimeout(env?.timeoutMs ?? options.defaultTimeoutMs);
|
|
380
|
-
}
|
|
381
|
-
catch (error) {
|
|
382
|
-
const normalized = normalizeError(taskName, error, "rejected");
|
|
383
|
-
// Counted as a strike like the other two backends do for the same input: an invalid
|
|
384
|
-
// deadline is a genuine caller failure, not a cancellation.
|
|
385
|
-
void recordResult({ counter, taskName, backend: "worker", labels, error: normalized, sink: env?.onEscalate ?? options.onEscalate, logger });
|
|
386
|
-
return rejectBeforeStart(normalized);
|
|
387
|
-
}
|
|
388
|
-
// `retrySafe` is snapshotted here too, for the same reason (#1822 HIGH): the pool must decide
|
|
389
|
-
// re-dispatch from the caller's intent AT SUBMISSION, not from whatever `env` holds when a
|
|
390
|
-
// worker later dies.
|
|
391
|
-
const retrySafe = env?.retrySafe === true;
|
|
392
|
-
return new Promise((resolve, reject) => {
|
|
393
|
-
const job = { id: nextId++, taskName, input, env, retrySafe, timeoutMs, cancelled: false, redispatches: 0, releaseQueued: () => { }, resolve, reject };
|
|
394
|
-
enqueue(job);
|
|
395
|
-
});
|
|
396
|
-
},
|
|
397
|
-
destroy() {
|
|
398
|
-
if (destroyPromise)
|
|
399
|
-
return destroyPromise;
|
|
400
|
-
destroyed = true;
|
|
401
|
-
// The split below is INTENTIONAL — do not unify the two.
|
|
402
|
-
// Cancelled-at-destroy is `aborted`, matching what the async and subprocess runners
|
|
403
|
-
// already report for teardown: only `aborted` is strike-exempt, so anything else
|
|
404
|
-
// charges a strike per in-flight job and a pool sitting at its threshold false-pages
|
|
405
|
-
// on the orderly shutdown every adopter runs. A `run()` arriving AFTER destroy() is a
|
|
406
|
-
// different event — caller misuse against a dead pool — and deliberately keeps its own
|
|
407
|
-
// distinguishable `worker-exit` kind.
|
|
408
|
-
const error = (taskName) => new OffloadError({ kind: "aborted", taskName, message: `${taskName} was cancelled: worker pool destroyed` });
|
|
409
|
-
while (queued.length) {
|
|
410
|
-
const job = queued.shift();
|
|
411
|
-
if (!job)
|
|
412
|
-
continue;
|
|
413
|
-
job.releaseQueued();
|
|
414
|
-
if (job.cancelled)
|
|
415
|
-
continue;
|
|
416
|
-
const cancellation = error(job.taskName);
|
|
417
|
-
finishLog(job.env?.logger ?? options.logger, "worker", job.taskName, job.env?.labels ?? {}, performance.now(), cancellation);
|
|
418
|
-
job.reject(cancellation);
|
|
419
|
-
}
|
|
420
|
-
cancelledQueued = 0;
|
|
421
|
-
const workers = slots.map(async (slot) => {
|
|
422
|
-
if (slot.active)
|
|
423
|
-
settle(slot, slot.active, error(slot.active.taskName));
|
|
424
|
-
slot.generation += 1;
|
|
425
|
-
try {
|
|
426
|
-
await slot.worker.terminate();
|
|
427
|
-
}
|
|
428
|
-
catch { /* already stopped */ }
|
|
429
|
-
});
|
|
430
|
-
destroyPromise = Promise.all(workers).then(() => undefined);
|
|
431
|
-
return destroyPromise;
|
|
432
|
-
},
|
|
433
|
-
};
|
|
434
|
-
}
|
|
435
|
-
//# sourceMappingURL=worker-pool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-pool.js","sourceRoot":"","sources":["../src/worker-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-runtime.d.ts","sourceRoot":"","sources":["../src/worker-runtime.ts"],"names":[],"mappings":""}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
function serialize(error) {
|
|
2
|
-
const value = error;
|
|
3
|
-
return {
|
|
4
|
-
name: typeof value?.name === "string" ? value.name : "Error",
|
|
5
|
-
message: typeof value?.message === "string" ? value.message : String(error),
|
|
6
|
-
code: typeof value?.code === "string" ? value.code : undefined,
|
|
7
|
-
stack: typeof value?.stack === "string" ? value.stack : undefined,
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
self.onmessage = async (event) => {
|
|
11
|
-
const { id, taskName, input, worker } = event.data;
|
|
12
|
-
try {
|
|
13
|
-
const module = await import(worker);
|
|
14
|
-
if (typeof module.default !== "function")
|
|
15
|
-
throw new TypeError(`Worker module ${worker} must default-export a task function`);
|
|
16
|
-
// No execution-start handshake is sent: the pool attributes a later worker death from the
|
|
17
|
-
// worker's EXIT MANNER (a clean exit vs an abnormal/crash termination it observes on the exit
|
|
18
|
-
// event), which cannot be lost the way an in-band frame can when a hard crash races it (#1822
|
|
19
|
-
// MED-4). See onWorkerDeath in worker-pool.ts.
|
|
20
|
-
const value = await module.default(input, { taskName });
|
|
21
|
-
self.postMessage({ id, ok: true, value });
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
self.postMessage({ id, ok: false, error: serialize(error) });
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=worker-runtime.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-runtime.js","sourceRoot":"","sources":["../src/worker-runtime.ts"],"names":[],"mappings":"AAOA,SAAS,SAAS,CAAC,KAAc;IAC/B,MAAM,KAAK,GAAG,KAA+E,CAAC;IAC9F,OAAO;QACL,IAAI,EAAE,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;QAC5D,OAAO,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3E,IAAI,EAAE,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC9D,KAAK,EAAE,OAAO,KAAK,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;KAClE,CAAC;AACJ,CAAC;AAED,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,KAAgC,EAAE,EAAE;IAC1D,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAA6B,CAAC;QAChE,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU;YAAE,MAAM,IAAI,SAAS,CAAC,iBAAiB,MAAM,sCAAsC,CAAC,CAAC;QAC7H,0FAA0F;QAC1F,8FAA8F;QAC9F,8FAA8F;QAC9F,+CAA+C;QAC/C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,MAAM,MAAM,iBAAiB,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,CAC3D,KAAK,EAAE,EAAE,EACT,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,KAC1B,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=worker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":""}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@humwick/offload",
|
|
3
|
-
"version": "0.0.0",
|
|
4
|
-
"description": "Bounded off-loop execution primitives for Humwick",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"license": "PolyForm-Shield-1.0.0",
|
|
7
|
-
"author": "Edin Mujkanovic",
|
|
8
|
-
"repository": {
|
|
9
|
-
"type": "git",
|
|
10
|
-
"url": "git+https://github.com/edimuj/agent-relay.git",
|
|
11
|
-
"directory": "offload"
|
|
12
|
-
},
|
|
13
|
-
"main": "./dist/index.js",
|
|
14
|
-
"types": "./dist/index.d.ts",
|
|
15
|
-
"exports": {
|
|
16
|
-
".": {
|
|
17
|
-
"types": "./dist/index.d.ts",
|
|
18
|
-
"import": "./dist/index.js"
|
|
19
|
-
},
|
|
20
|
-
"./worker": {
|
|
21
|
-
"types": "./dist/worker.d.ts",
|
|
22
|
-
"import": "./dist/worker.js"
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"files": [
|
|
26
|
-
"dist",
|
|
27
|
-
"src",
|
|
28
|
-
"!src/**/*.test.ts",
|
|
29
|
-
"LICENSE"
|
|
30
|
-
],
|
|
31
|
-
"scripts": {
|
|
32
|
-
"build": "tsc -p tsconfig.build.json",
|
|
33
|
-
"prepack": "bun run build"
|
|
34
|
-
},
|
|
35
|
-
"devDependencies": {
|
|
36
|
-
"@types/bun": "1.4.2",
|
|
37
|
-
"typescript": "7.0.2"
|
|
38
|
-
},
|
|
39
|
-
"engines": {
|
|
40
|
-
"bun": ">=1.4.4"
|
|
41
|
-
}
|
|
42
|
-
}
|