@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,2 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{o as t,p as n,u as r}from"./dist-DeW2Y1R5.js";import{r as i,t as a}from"./store-BvtFdlGX.js";import{M as o}from"./provider-display-DbLWpP3j.js";import{et as s,v as c}from"./display-CfO7rTuF.js";import{t as l}from"./api-CIIVBtAV.js";import{a as u,i as d,n as f,r as p,t as m}from"./select-DTQMP4Dk.js";import{t as h}from"./folder-tree-BG3Y9nqH.js";import{t as g}from"./globe-Cl5fXtqs.js";import{t as _}from"./layers-DEfClY-v.js";import{t as v}from"./pencil-B1Hf2V_J.js";import{n as y,t as b}from"./pin-DcsKeXxr.js";import{t as x}from"./refresh-cw-CfpvQcUn.js";import{t as S}from"./trash-2-FbcSq927.js";import{t as C}from"./button-Do6Z3vvn.js";import{t as w}from"./badge-DqJRtj_p.js";import{t as T}from"./input-CsTB6jIx.js";import{t as E}from"./textarea-hs6Mpyfl.js";import{t as D}from"./formatted-body-Cm1RrzmN.js";var O=[`manual`,`promoted`,`steward`];function k(e){return O.includes(e)}var A=[`project-wide`,`process`,`tooling`];function j(e){return A.includes(e)}var M=e(n(),1),N=r(),P=`border-tone-violet/30 bg-tone-violet/10 text-tone-violet-fg`,F=`border-tone-teal/30 bg-tone-teal/10 text-tone-teal-fg`;function I({area:e,active:n,onClick:r}){let i=j(e),a=i?g:h,o=t(`inline-flex h-5 max-w-full items-center gap-1 rounded-md border px-1.5 font-mono text-[10px]`,i?P:F,n&&`ring-2 ring-primary/60`),s=(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(a,{className:`size-3 shrink-0`,"aria-hidden":!0}),(0,N.jsx)(`span`,{className:`truncate`,children:e})]}),c=i?`system area`:`path area`;return r?(0,N.jsx)(`button`,{type:`button`,className:t(o,`cursor-pointer hover:brightness-110`),"data-area-kind":i?`system`:`path`,"aria-pressed":n,title:`${c} — filter`,onClick:r,children:s}):(0,N.jsx)(`span`,{className:o,"data-area-kind":i?`system`:`path`,title:c,children:s})}function L(e){let t=new Map;for(let n of e)for(let e of n.areas??[])t.set(e,(t.get(e)??0)+1);return[...t].sort(([e],[t])=>Number(j(t))-Number(j(e))||e.localeCompare(t))}function R(e){let t=new Map;for(let n of e)for(let e of n.tags)t.set(e,(t.get(e)??0)+1);return[...t].sort(([e,t],[n,r])=>r-t||e.localeCompare(n))}function z({counts:e,active:t,onChange:n}){return e.length===0?null:(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1`,role:`group`,"aria-label":`Filter by area`,children:[(0,N.jsx)(`span`,{className:`mr-0.5 text-[10px] text-muted-foreground`,children:`Areas`}),e.map(([e,r])=>(0,N.jsxs)(`span`,{className:`inline-flex max-w-full items-center gap-0.5`,children:[(0,N.jsx)(I,{area:e,active:t===e,onClick:()=>n(t===e?null:e)}),(0,N.jsx)(`span`,{className:`text-[9px] text-muted-foreground`,children:r})]},e)),t&&(0,N.jsx)(`button`,{type:`button`,className:`text-[10px] text-primary hover:underline`,onClick:()=>n(null),children:`clear`})]})}var B=[`rule`,`decision`,`fact`,`memory`],V={rule:`Rules`,decision:`Decisions`,fact:`Facts`,memory:`Memory`},H=[`pinned`,`indexed`,`never`],U=[`ingested`,...B],W={ingested:`Ingested CLAUDE.md`,...V};function G(e){return e===`ingested`?`bg-tone-info/10 text-tone-info-fg border-tone-info/30`:e===`promoted`?`bg-tone-success/10 text-tone-success-fg border-tone-success/30`:e===`steward`?`bg-tone-violet/10 text-tone-violet-fg border-tone-violet/30`:`bg-tone-neutral/10 text-tone-neutral-fg border-tone-neutral/30`}function K(e){return e.length===0?0:Math.max(1,Math.ceil(e.length/4))}function q(e){return`${e.length}c/${K(e)}t`}function J(e){return!e.inherited&&k(e.source)}function Y(e,t){return{kind:e?.kind??t??`memory`,title:e?.title??``,body:e?.body??``,tags:e?.tags??[],audience:e?.audience??`all`,inject:e?.inject??`indexed`}}function X(e){return{kind:e.kind,title:e.title,body:e.body,tags:e.tags,audience:e.audience,inject:e.inject}}var Z=320;function Q({audience:e,onChange:t,profiles:n}){let r=e===`all`;function i(n){let i=r?[]:e,a=i.includes(n)?i.filter(e=>e!==n):[...i,n];t(a.length?a:`all`)}return(0,N.jsxs)(`div`,{className:`min-w-[220px] flex-1 space-y-1`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,N.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:`Profiles (audience)`}),(0,N.jsxs)(`label`,{className:`flex items-center gap-1 text-[10px] text-muted-foreground select-none`,children:[(0,N.jsx)(`input`,{type:`checkbox`,className:`rounded`,checked:r,onChange:e=>t(e.target.checked?`all`:[])}),`All profiles`]})]}),!r&&(n.length===0?(0,N.jsx)(`div`,{className:`rounded border border-border px-1.5 py-1 text-[10px] text-muted-foreground`,children:`No agent profiles found.`}):(0,N.jsx)(`div`,{className:`grid max-h-28 grid-cols-2 gap-0.5 overflow-y-auto rounded border border-border p-1`,children:n.map(t=>(0,N.jsxs)(`label`,{className:`flex items-center gap-1.5 rounded px-1 py-0.5 text-[10px] hover:bg-accent`,children:[(0,N.jsx)(`input`,{type:`checkbox`,className:`rounded`,checked:e.includes(t.name),onChange:()=>i(t.name)}),(0,N.jsxs)(`span`,{className:`truncate font-mono`,children:[t.icon?`${t.icon} `:``,t.name]})]},t.name))}))]})}function $({initial:e,submitLabel:t,onSubmit:n,onCancel:r}){let s=a(e=>e.agentProfiles),[c,l]=(0,M.useState)(e.kind),[h,g]=(0,M.useState)(e.title),[_,v]=(0,M.useState)(e.body),[y,b]=(0,M.useState)(e.tags.join(`, `)),[x,S]=(0,M.useState)(e.audience),[w,D]=(0,M.useState)(e.inject),[O,k]=(0,M.useState)(!1),[A,j]=(0,M.useState)(null);async function P(){if(!h.trim()){j(`Title is required`);return}k(!0),j(null);let e=y.split(`,`).map(e=>e.trim()).filter(Boolean);try{await n({kind:c,title:h.trim(),body:_,tags:e,audience:x,inject:w})}catch(e){j(o(e)),k(!1)}}return(0,N.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border bg-card/60 p-3`,children:[(0,N.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,N.jsxs)(m,{value:c,onValueChange:e=>l(e),children:[(0,N.jsx)(d,{size:`sm`,className:`w-32`,children:(0,N.jsx)(u,{})}),(0,N.jsx)(f,{children:B.map(e=>(0,N.jsx)(p,{value:e,children:V[e]},e))})]}),(0,N.jsx)(T,{value:h,onChange:e=>g(e.target.value),placeholder:`Title`,className:`h-8 min-w-[200px] flex-1`})]}),(0,N.jsx)(E,{value:_,onChange:e=>v(e.target.value),placeholder:`Body (markdown)`,className:`min-h-24 font-mono text-xs`}),(0,N.jsxs)(`div`,{className:`flex flex-wrap gap-3 text-[9px] text-muted-foreground`,children:[(0,N.jsxs)(`span`,{children:[`label `,q(h)]}),(0,N.jsxs)(`span`,{children:[`body `,q(_)]})]}),(0,N.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,N.jsx)(T,{value:y,onChange:e=>b(e.target.value),placeholder:`tags, comma, separated`,className:`h-8 min-w-[160px] flex-1 text-xs`}),(0,N.jsxs)(m,{value:w,onValueChange:e=>D(e),children:[(0,N.jsx)(d,{size:`sm`,className:`w-28`,children:(0,N.jsx)(u,{})}),(0,N.jsx)(f,{children:H.map(e=>(0,N.jsx)(p,{value:e,children:e},e))})]})]}),(0,N.jsx)(Q,{audience:x,onChange:S,profiles:i(s)}),A&&(0,N.jsx)(`div`,{className:`text-xs text-destructive`,children:A}),(0,N.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,N.jsx)(C,{variant:`outline`,size:`sm`,onClick:r,disabled:O,children:`Cancel`}),(0,N.jsx)(C,{size:`sm`,onClick:()=>void P(),disabled:O,children:O?`Saving…`:t})]})]})}function ee({entry:e,ownerName:t,now:n,editing:r,expanded:i,onToggleExpanded:a,onEdit:o,onDelete:l,onTogglePin:u,onSubmitEdit:d,onCancelEdit:f,onAreaClick:p}){if(r)return(0,N.jsx)($,{initial:Y(e),submitLabel:`Save`,onSubmit:d,onCancel:f});let m=e.body??``,h=m.length>Z,g=i||!h?m:m.slice(0,Z).trimEnd()+`…`,x=J(e),T=e.inject===`pinned`;return(0,N.jsxs)(`div`,{className:`rounded-md border border-border bg-card/60 p-3`,children:[(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,N.jsx)(`span`,{className:`min-w-0 break-words text-sm font-medium`,children:e.title}),(0,N.jsx)(w,{variant:`outline`,className:`text-[10px] ${G(e.source)}`,children:e.source}),T&&(0,N.jsxs)(w,{variant:`outline`,className:`gap-1 border-primary/30 bg-primary/10 text-[10px] text-primary`,children:[(0,N.jsx)(b,{className:`h-3 w-3`}),`pinned`]}),e.inherited&&(0,N.jsxs)(w,{variant:`outline`,className:`gap-1 border-tone-warning/30 bg-tone-warning/10 text-[10px] text-tone-warning-fg`,children:[(0,N.jsx)(_,{className:`h-3 w-3`}),`inherited`,t?` · ${t}`:``]}),(0,N.jsxs)(`span`,{className:`ml-auto flex items-center gap-1`,children:[(0,N.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,title:`Created ${c(e.createdAt)}`,children:s(n,e.updatedAt)}),x&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(C,{variant:`ghost`,size:`icon`,className:`h-6 w-6`,onClick:u,title:T?`Unpin (revert to indexed)`:`Pin (always render full body)`,children:T?(0,N.jsx)(y,{className:`h-3 w-3 text-primary`}):(0,N.jsx)(b,{className:`h-3 w-3`})}),(0,N.jsx)(C,{variant:`ghost`,size:`icon`,className:`h-6 w-6`,onClick:o,title:`Edit entry`,children:(0,N.jsx)(v,{className:`h-3 w-3`})}),(0,N.jsx)(C,{variant:`ghost`,size:`icon`,className:`h-6 w-6 text-destructive hover:text-destructive`,onClick:l,title:`Remove entry`,children:(0,N.jsx)(S,{className:`h-3 w-3`})})]})]})]}),m&&(0,N.jsxs)(`div`,{className:`mt-2`,children:[(0,N.jsx)(D,{text:g,className:`text-xs text-muted-foreground`}),h&&(0,N.jsx)(`button`,{type:`button`,className:`mt-1 text-[11px] font-medium text-primary hover:underline`,onClick:a,children:i?`Show less`:`Show more`})]}),(e.areas?.length||e.tags.length>0)&&(0,N.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-1`,children:[e.areas?.map(e=>(0,N.jsx)(I,{area:e,onClick:p&&(()=>p(e))},`area:${e}`)),e.tags.map(e=>(0,N.jsx)(w,{variant:`secondary`,className:`h-4 px-1 text-[9px]`,children:e},e))]}),(0,N.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-x-3 gap-y-0.5 text-[9px] text-muted-foreground`,children:[(0,N.jsxs)(`span`,{children:[`label `,q(e.title)]}),m&&(0,N.jsxs)(`span`,{children:[`body `,q(m)]}),(0,N.jsxs)(`span`,{children:[`Created `,c(e.createdAt)]}),(0,N.jsxs)(`span`,{children:[`Updated `,c(e.updatedAt)]})]})]})}function te(){let e=a(e=>e.projectFocusId),t=a(e=>e.consumeProjectFocus),[n,r]=(0,M.useState)([]),[i,s]=(0,M.useState)(``),[c,u]=(0,M.useState)(!1),[d,f]=(0,M.useState)(!0),[p,m]=(0,M.useState)(null);async function h(){m(null);try{let n=await l(`GET`,`/projects${c?`?includeArchived=true`:``}`);r(n.projects);let i=e?n.projects.find(t=>t.id===e||t.slug===e):void 0;i?(s(i.id),t()):s(e=>n.projects.some(t=>t.id===e)?e:n.projects[0]?.id??``)}catch(e){m(o(e))}finally{f(!1)}}return(0,M.useEffect)(()=>{h()},[c]),(0,M.useEffect)(()=>{let r=e?n.find(t=>t.id===e||t.slug===e):void 0;r&&(s(r.id),t())},[e]),{projects:n,selectedId:i,setSelectedId:s,includeArchived:c,setIncludeArchived:u,loading:d,error:p,setError:m,refresh:h}}function ne({list:e}){let{projects:t,selectedId:n,setSelectedId:r,includeArchived:i,setIncludeArchived:a}=e;return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(`select`,{"aria-label":`Project`,className:`ml-auto h-8 w-full min-w-0 max-w-full basis-full rounded-md border border-border bg-card px-2 text-sm text-foreground sm:w-auto sm:basis-auto`,value:n,onChange:e=>r(e.target.value),disabled:t.length===0,children:[t.length===0&&(0,N.jsx)(`option`,{value:``,children:`No projects`}),t.map(e=>(0,N.jsxs)(`option`,{value:e.id,children:[e.title||e.slug,e.status===`archived`?` (archived)`:``]},e.id))]}),(0,N.jsxs)(`label`,{className:`flex items-center gap-1.5 text-xs text-muted-foreground select-none`,children:[(0,N.jsx)(`input`,{type:`checkbox`,className:`rounded`,checked:i,onChange:e=>a(e.target.checked)}),`Archived`]})]})}function re({icon:e,title:t,list:n,actions:r,onRefresh:i}){return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[e,(0,N.jsx)(`h1`,{className:`text-lg font-semibold`,children:t}),(0,N.jsx)(ne,{list:n}),r,(0,N.jsxs)(C,{variant:`outline`,size:`sm`,onClick:i,children:[(0,N.jsx)(x,{className:`size-4`}),` Refresh`]})]}),n.error&&(0,N.jsx)(`div`,{className:`rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2 text-sm text-destructive`,children:n.error})]})}export{$ as a,Y as c,L as d,R as f,U as i,J as l,te as n,ee as o,W as r,X as s,re as t,z as u};
|
|
2
|
-
//# sourceMappingURL=use-project-list-B-T2Bnnn.js.map
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{o as t,p as n,u as r}from"./dist-DeW2Y1R5.js";import{M as i}from"./provider-display-DbLWpP3j.js";import{t as a}from"./api-CIIVBtAV.js";import{t as o}from"./button-Do6Z3vvn.js";import{t as s}from"./badge-DqJRtj_p.js";var c=e(n(),1),l=class{diff(e,t,n={}){let r;typeof n==`function`?(r=n,n={}):`callback`in n&&(r=n.callback);let i=this.castInput(e,n),a=this.castInput(t,n),o=this.removeEmpty(this.tokenize(i,n)),s=this.removeEmpty(this.tokenize(a,n));return this.diffWithOptionsObj(o,s,n,r)}diffWithOptionsObj(e,t,n,r){let i=e=>{if(e=this.postProcess(e,n),r){setTimeout(function(){r(e)},0);return}else return e},a=t.length,o=e.length,s=1,c=a+o;n.maxEditLength!=null&&(c=Math.min(c,n.maxEditLength));let l=n.timeout??1/0,u=Date.now()+l,d=[{oldPos:-1,lastComponent:void 0}],f=this.extractCommon(d[0],t,e,0,n);if(d[0].oldPos+1>=o&&f+1>=a)return i(this.buildValues(d[0].lastComponent,t,e));let p=-1/0,m=1/0,h=()=>{for(let r=Math.max(p,-s);r<=Math.min(m,s);r+=2){let s,c=d[r-1],l=d[r+1];c&&(d[r-1]=void 0);let u=!1;if(l){let e=l.oldPos-r;u=l&&0<=e&&e<a}let h=c&&c.oldPos+1<o;if(!u&&!h){d[r]=void 0;continue}if(s=!h||u&&c.oldPos<l.oldPos?this.addToPath(l,!0,!1,0,n):this.addToPath(c,!1,!0,1,n),f=this.extractCommon(s,t,e,r,n),s.oldPos+1>=o&&f+1>=a)return i(this.buildValues(s.lastComponent,t,e))||!0;d[r]=s,s.oldPos+1>=o&&(m=Math.min(m,r-1)),f+1>=a&&(p=Math.max(p,r+1))}s++};if(r)(function e(){setTimeout(function(){if(s>c||Date.now()>u)return r(void 0);h()||e()},0)})();else for(;s<=c&&Date.now()<=u;){let e=h();if(e)return e}}addToPath(e,t,n,r,i){let a=e.lastComponent;return a&&!i.oneChangePerToken&&a.added===t&&a.removed===n?{oldPos:e.oldPos+r,lastComponent:{count:a.count+1,added:t,removed:n,previousComponent:a.previousComponent}}:{oldPos:e.oldPos+r,lastComponent:{count:1,added:t,removed:n,previousComponent:a}}}extractCommon(e,t,n,r,i){let a=t.length,o=n.length,s=e.oldPos,c=s-r,l=0;for(;c+1<a&&s+1<o&&this.equals(n[s+1],t[c+1],i);)c++,s++,l++,i.oneChangePerToken&&(e.lastComponent={count:1,previousComponent:e.lastComponent,added:!1,removed:!1});return l&&!i.oneChangePerToken&&(e.lastComponent={count:l,previousComponent:e.lastComponent,added:!1,removed:!1}),e.oldPos=s,c}equals(e,t,n){return n.comparator?n.comparator(e,t):e===t||!!n.ignoreCase&&e.toLowerCase()===t.toLowerCase()}removeEmpty(e){let t=[];for(let n=0;n<e.length;n++)e[n]&&t.push(e[n]);return t}castInput(e,t){return e}tokenize(e,t){return Array.from(e)}join(e){return e.join(``)}postProcess(e,t){return e}get useLongestToken(){return!1}buildValues(e,t,n){let r=[],i;for(;e;)r.push(e),i=e.previousComponent,delete e.previousComponent,e=i;r.reverse();let a=r.length,o=0,s=0,c=0;for(;o<a;o++){let e=r[o];if(e.removed)e.value=this.join(n.slice(c,c+e.count)),c+=e.count;else{if(!e.added&&this.useLongestToken){let r=t.slice(s,s+e.count);r=r.map(function(e,t){let r=n[c+t];return r.length>e.length?r:e}),e.value=this.join(r)}else e.value=this.join(t.slice(s,s+e.count));s+=e.count,e.added||(c+=e.count)}}return r}};new class extends l{};function u(e,t){let n;for(n=0;n<e.length&&n<t.length;n++)if(e[n]!=t[n])return e.slice(0,n);return e.slice(0,n)}function d(e,t){let n;if(!e||!t||e[e.length-1]!=t[t.length-1])return``;for(n=0;n<e.length&&n<t.length;n++)if(e[e.length-(n+1)]!=t[t.length-(n+1)])return e.slice(-n);return e.slice(-n)}function f(e,t,n){if(e.slice(0,t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't start with prefix ${JSON.stringify(t)}; this is a bug`);return n+e.slice(t.length)}function p(e,t,n){if(!t)return e+n;if(e.slice(-t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't end with suffix ${JSON.stringify(t)}; this is a bug`);return e.slice(0,-t.length)+n}function m(e,t){return f(e,t,``)}function h(e,t){return p(e,t,``)}function g(e,t){return t.slice(0,_(e,t))}function _(e,t){let n=0;e.length>t.length&&(n=e.length-t.length);let r=t.length;e.length<t.length&&(r=e.length);let i=Array(r),a=0;i[0]=0;for(let e=1;e<r;e++){for(t[e]==t[a]?i[e]=i[a]:i[e]=a;a>0&&t[e]!=t[a];)a=i[a];t[e]==t[a]&&a++}a=0;for(let r=n;r<e.length;r++){for(;a>0&&e[r]!=t[a];)a=i[a];e[r]==t[a]&&a++}return a}function v(e,t){let n=[];for(let r of Array.from(t.segment(e))){let e=r.segment;n.length&&/\s/.test(n[n.length-1])&&/\s/.test(e)?n[n.length-1]+=e:n.push(e)}return n}function y(e,t){if(t)return x(e,t)[1];let n;for(n=e.length-1;n>=0&&e[n].match(/\s/);n--);return e.substring(n+1)}function b(e,t){if(t)return x(e,t)[0];let n=e.match(/^\s*/);return n?n[0]:``}function x(e,t){if(!t)return[b(e),y(e)];if(t.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);let n=v(e,t),r=n[0],i=n[n.length-1];return[/\s/.test(r)?r:``,/\s/.test(i)?i:``]}var S=`a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}`,C=RegExp(`[${S}]+|\\s+|[^${S}]`,`ug`);new class extends l{equals(e,t,n){return n.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()}tokenize(e,t={}){let n;if(t.intlSegmenter){let r=t.intlSegmenter;if(r.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);n=v(e,r)}else n=e.match(C)||[];let r=[],i=null;return n.forEach(e=>{/\s/.test(e)?i==null?r.push(e):r.push(r.pop()+e):i!=null&&/\s/.test(i)?r[r.length-1]==i?r.push(r.pop()+e):r.push(i+e):r.push(e),i=e}),r}join(e){return e.map((e,t)=>t==0?e:e.replace(/^\s+/,``)).join(``)}postProcess(e,t){if(!e||t.oneChangePerToken)return e;let n=null,r=null,i=null;return e.forEach(e=>{e.added?r=e:e.removed?i=e:((r||i)&&w(n,i,r,e,t.intlSegmenter),n=e,r=null,i=null)}),(r||i)&&w(n,i,r,null,t.intlSegmenter),e}};function w(e,t,n,r,i){if(t&&n){let[a,o]=x(t.value,i),[s,c]=x(n.value,i);if(e){let r=u(a,s);e.value=p(e.value,s,r),t.value=m(t.value,r),n.value=m(n.value,r)}if(r){let e=d(o,c);r.value=f(r.value,c,e),t.value=h(t.value,e),n.value=h(n.value,e)}}else if(n){if(e){let e=b(n.value,i);n.value=n.value.substring(e.length)}if(r){let e=b(r.value,i);r.value=r.value.substring(e.length)}}else if(e&&r){let n=b(r.value,i),[a,o]=x(t.value,i),s=u(n,a);t.value=m(t.value,s);let c=d(m(n,s),o);t.value=h(t.value,c),r.value=f(r.value,n,c),e.value=p(e.value,n,n.slice(0,n.length-c.length))}else if(r){let e=b(r.value,i),n=g(y(t.value,i),e);t.value=h(t.value,n)}else if(e){let n=g(y(e.value,i),b(t.value,i));t.value=m(t.value,n)}}new class extends l{tokenize(e){let t=RegExp(`(\\r?\\n)|[${S}]+|[^\\S\\n\\r]+|[^${S}]`,`ug`);return e.match(t)||[]}};var T=new class extends l{constructor(){super(...arguments),this.tokenize=D}equals(e,t,n){return n.ignoreWhitespace?((!n.newlineIsToken||!e.includes(`
|
|
2
|
-
`))&&(e=e.trim()),(!n.newlineIsToken||!t.includes(`
|
|
3
|
-
`))&&(t=t.trim())):n.ignoreNewlineAtEof&&!n.newlineIsToken&&(e.endsWith(`
|
|
4
|
-
`)&&(e=e.slice(0,-1)),t.endsWith(`
|
|
5
|
-
`)&&(t=t.slice(0,-1))),super.equals(e,t,n)}};function E(e,t,n){return T.diff(e,t,n)}function D(e,t){t.stripTrailingCr&&(e=e.replace(/\r\n/g,`
|
|
6
|
-
`));let n=[],r=e.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(let e=0;e<r.length;e++){let i=r[e];e%2&&!t.newlineIsToken?n[n.length-1]+=i:n.push(i)}return n}function O(e){return e==`.`||e==`!`||e==`?`}new class extends l{tokenize(e){let t=[],n=0;for(let r=0;r<e.length;r++){if(r==e.length-1){t.push(e.slice(n));break}if(O(e[r])&&e[r+1].match(/\s/)){for(t.push(e.slice(n,r+1)),r=n=r+1;e[r+1]?.match(/\s/);)r++;t.push(e.slice(n,r+1)),n=r+1}}return t}},new class extends l{tokenize(e){return e.split(/([{}:;,]|\s+)/)}},new class extends l{constructor(){super(...arguments),this.tokenize=D}get useLongestToken(){return!0}castInput(e,t){let{undefinedReplacement:n,stringifyReplacer:r=(e,t)=>t===void 0?n:t}=t;return typeof e==`string`?e:JSON.stringify(k(e,null,null,r),null,` `)}equals(e,t,n){return super.equals(e.replace(/,([\r\n])/g,`$1`),t.replace(/,([\r\n])/g,`$1`),n)}};function k(e,t,n,r,i){t||=[],n||=[],r&&(e=r(i===void 0?``:i,e));let a;for(a=0;a<t.length;a+=1)if(t[a]===e)return n[a];let o;if(Object.prototype.toString.call(e)===`[object Array]`){for(t.push(e),o=Array(e.length),n.push(o),a=0;a<e.length;a+=1)o[a]=k(e[a],t,n,r,String(a));return t.pop(),n.pop(),o}if(e&&e.toJSON&&(e=e.toJSON()),typeof e==`object`&&e){t.push(e),o={},n.push(o);let i=[],s;for(s in e)Object.prototype.hasOwnProperty.call(e,s)&&i.push(s);for(i.sort(),a=0;a<i.length;a+=1)s=i[a],o[s]=k(e[s],t,n,r,s);t.pop(),n.pop()}else o=e;return o}new class extends l{tokenize(e){return e.slice()}join(e){return e}removeEmpty(e){return e}};var A=r(),j=2;function M(e,t){let n=E(e,t).flatMap(e=>{let t=e.added?`add`:e.removed?`del`:`same`;return e.value.replace(/\n$/,``).split(`
|
|
7
|
-
`).map(e=>({kind:t,text:e}))}),r=n.map((e,t)=>e.kind!==`same`||n.slice(Math.max(0,t-j),t+j+1).some(e=>e.kind!==`same`)),i=[],a=0;return n.forEach((e,t)=>{r[t]?(a&&i.push({kind:`gap`,text:`${a} unchanged line${a===1?``:`s`}`}),a=0,i.push(e)):a++}),a&&i.push({kind:`gap`,text:`${a} unchanged line${a===1?``:`s`}`}),i}function N({from:e,to:n,label:r}){let i=M(e,n),a=i.some(e=>e.kind===`add`||e.kind===`del`);return(0,A.jsxs)(`div`,{className:`min-w-0 space-y-1`,"data-testid":`prompt-diff`,children:[(0,A.jsx)(`p`,{className:`text-[11px] font-medium text-muted-foreground`,children:r}),a?(0,A.jsx)(`pre`,{className:`max-h-64 max-w-full overflow-auto rounded border bg-background p-1 font-mono text-[11px] leading-4`,children:i.map((e,n)=>(0,A.jsxs)(`div`,{className:t(`whitespace-pre-wrap break-words`,e.kind===`add`&&`bg-tone-success/10 text-tone-success-fg`,e.kind===`del`&&`bg-tone-danger/10 text-tone-danger-fg`,e.kind===`gap`&&`text-muted-foreground italic`),children:[e.kind===`add`?`+ `:e.kind===`del`?`- `:e.kind===`gap`?`… `:` `,e.text]},n))}):(0,A.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No differences.`})]})}function P(e){return`/settings/prompts/${encodeURIComponent(e)}`}async function F(e){let[t,n]=await Promise.all([a(`GET`,P(e)),a(`GET`,`${P(e)}/history`).then(e=>e.versions,()=>void 0)]);return[t,n]}function I(e){return new Date(e).toLocaleString()}function L(e){return e.fallbackReason===`db-error`?`The prompt database is unavailable, so the bundled text is being served. Editing is disabled until it recovers.`:`No saved version exists for this prompt yet, so the bundled text is being served. Editing is disabled until a saved version exists.`}function R({slug:e,children:t,onSaved:n,readOnly:r=!1}){let[l,u]=(0,c.useState)(),[d,f]=(0,c.useState)(),[p,m]=(0,c.useState)(``),[h,g]=(0,c.useState)(``),[_,v]=(0,c.useState)(``),[y,b]=(0,c.useState)(!1),[x,S]=(0,c.useState)(!1),[C,w]=(0,c.useState)(``);(0,c.useEffect)(()=>{let t=!0;return F(e).then(e=>{t&&u(e)},e=>{t&&g(i(e))}),()=>{t=!1}},[e]);async function T(){let t=await F(e);u(t),t[0].version&&n?.(t[0])}async function E(){S(!0);try{await T(),g(``),v(y?`Reloaded the latest version. Your unsaved text is kept; review the changes and save again.`:``),b(!1)}catch(e){g(i(e))}finally{S(!1)}}async function D(t,n){if(!l)return;let[r]=l;S(!0),g(``),v(``),b(!1);try{await a(t===`edit`?`PUT`:`POST`,`${P(e)}${t===`edit`?``:`/${t}`}`,{...t===`edit`?{template:d??r.template}:{},...n===void 0?{}:{version:n},expectedVersion:r.version,reason:p.trim()||void 0}),await T(),f(void 0),m(``),w(``)}catch(e){e.status===409?(b(!0),g(`Version ${r.version} is no longer current: someone else saved first. Reload the latest version, then re-apply your change.`)):g(i(e))}finally{S(!1)}}if(!l||l[0].version===void 0)return(0,A.jsxs)(A.Fragment,{children:[t,h&&(0,A.jsx)(`p`,{role:`alert`,className:`text-xs text-destructive`,children:h})]});let[O,k]=l,j=O.source===`bundled-fallback`,M=r||j,R=d!==void 0&&d!==O.template,z=k?.find(e=>e.version===O.version),B=!!O.bundledUpdateAvailable&&O.bundledTemplate!==void 0,V=R?`Save or discard your edits first`:void 0;return(0,A.jsxs)(`div`,{className:`min-w-0 space-y-2 rounded border p-2 text-xs`,"data-testid":`versioned-prompt-editor`,children:[(0,A.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,A.jsx)(`span`,{className:`min-w-0 break-all font-medium`,children:e}),(0,A.jsxs)(`span`,{children:[`· `,j?`No saved version`:`Version ${O.version}`]}),j&&(0,A.jsx)(s,{variant:`outline`,className:`border-tone-warning/40 bg-tone-warning/10 text-tone-warning-fg`,children:`Bundled fallback`}),B&&(0,A.jsx)(s,{variant:`outline`,className:`border-tone-info/40 bg-tone-info/10 text-tone-info-fg`,children:`Bundled update available`})]}),z&&(0,A.jsxs)(`p`,{className:`break-words text-muted-foreground`,children:[`Saved by `,z.actor,` · `,I(z.createdAt),z.reason?` · ${z.reason}`:``]}),j&&(0,A.jsxs)(`p`,{role:`status`,className:`rounded border border-tone-warning/30 bg-tone-warning/10 p-1.5 text-tone-warning-fg`,children:[L(O),` `,(0,A.jsx)(o,{type:`button`,variant:`outline`,size:`xs`,disabled:x,onClick:()=>void E(),children:`Reload`})]}),h&&(0,A.jsxs)(`p`,{role:`alert`,className:`rounded border border-destructive/40 bg-destructive/10 p-1.5 text-destructive`,children:[h,` `,y&&(0,A.jsx)(o,{type:`button`,variant:`outline`,size:`xs`,disabled:x,onClick:()=>void E(),children:`Reload latest`})]}),_&&(0,A.jsx)(`p`,{role:`status`,className:`rounded border border-tone-info/30 bg-tone-info/10 p-1.5 text-tone-info-fg`,children:_}),B&&!j&&(0,A.jsxs)(`details`,{className:`rounded border p-1.5`,children:[(0,A.jsx)(`summary`,{className:`cursor-pointer font-medium`,children:`Review bundled update`}),(0,A.jsxs)(`div`,{className:`mt-1.5 space-y-1.5`,children:[(0,A.jsx)(N,{from:O.template,to:O.bundledTemplate,label:`Live version ${O.version} → bundled update`}),(0,A.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[!r&&(0,A.jsx)(o,{type:`button`,size:`sm`,disabled:x||R,title:V,onClick:()=>void D(`adopt`),children:`Adopt bundled update`}),V&&!r&&(0,A.jsxs)(`span`,{className:`text-muted-foreground`,children:[V,`.`]})]})]})]}),(0,A.jsxs)(`label`,{className:`block`,children:[`Prompt text`,(0,A.jsx)(`textarea`,{className:`mt-1 w-full rounded border bg-background p-2 font-mono`,rows:8,readOnly:M,value:d??O.template,onChange:e=>f(e.target.value),disabled:x})]}),R&&(0,A.jsxs)(`details`,{className:`rounded border p-1.5`,children:[(0,A.jsx)(`summary`,{className:`cursor-pointer`,children:`Review my changes`}),(0,A.jsx)(`div`,{className:`mt-1.5`,children:(0,A.jsx)(N,{from:O.template,to:d,label:`Version ${O.version} → my edits`})})]}),!M&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(`label`,{className:`block`,children:[`Reason (optional)`,(0,A.jsx)(`input`,{className:`mt-1 w-full rounded border bg-background p-1`,value:p,maxLength:2e3,onChange:e=>m(e.target.value)})]}),(0,A.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,A.jsx)(o,{type:`button`,size:`sm`,disabled:x||!R,onClick:()=>void D(`edit`),children:`Save prompt version`}),(0,A.jsx)(o,{type:`button`,size:`sm`,variant:`outline`,disabled:x||!R,onClick:()=>{f(void 0),v(``)},children:`Discard changes`})]})]}),(0,A.jsxs)(`details`,{className:`rounded border p-1.5`,children:[(0,A.jsx)(`summary`,{className:`cursor-pointer font-medium`,children:k?`History (${k.length}${k.length>=100?`+, latest 100`:``})`:`History unavailable`}),(0,A.jsx)(`ul`,{className:`mt-1.5 space-y-1.5`,children:(k??[]).map(e=>{let t=e.version===O.version,n=`v${e.version}`;return(0,A.jsxs)(`li`,{className:`min-w-0 space-y-1 rounded border p-1.5`,children:[(0,A.jsxs)(`p`,{className:`break-words`,children:[`Version `,e.version,t?` (current)`:``,` · `,e.actor,` · `,I(e.createdAt),e.reason?` · ${e.reason}`:``]}),!t&&(0,A.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,A.jsxs)(o,{type:`button`,size:`xs`,variant:`outline`,"aria-pressed":C===n,disabled:x,onClick:()=>w(C===n?``:n),children:[`Compare version `,e.version,` with current`]}),!M&&(0,A.jsxs)(o,{type:`button`,size:`xs`,variant:`outline`,disabled:x||R,title:V,onClick:()=>void D(`restore`,e.version),children:[`Restore version `,e.version]})]}),C===n&&(0,A.jsx)(N,{from:e.template,to:O.template,label:`Version ${e.version} → current version ${O.version}`})]},e.version)})})]})]})}export{R as t};
|
|
8
|
-
//# sourceMappingURL=versioned-prompt-editor-Diu8BIaM.js.map
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { errMessage, type HumwickHttpClient } from "@humwick/sdk";
|
|
2
|
-
import { httpErrorKey, isHttpAuthError, runnerAgentStatus } from "../runner-helpers";
|
|
3
|
-
import type { ClaimTracker } from "../claim-tracker";
|
|
4
|
-
|
|
5
|
-
const HTTP_LIVENESS_INTERVAL_MS = 20_000;
|
|
6
|
-
|
|
7
|
-
interface HttpLivenessDeps {
|
|
8
|
-
http: Pick<HumwickHttpClient, "heartbeat">;
|
|
9
|
-
agentId: string;
|
|
10
|
-
instanceId: string;
|
|
11
|
-
logIntervalMs: number;
|
|
12
|
-
isStopped(): boolean;
|
|
13
|
-
isTerminalStatusLatched(): boolean;
|
|
14
|
-
currentStatus: ClaimTracker["currentStatus"];
|
|
15
|
-
publishQuota(): Promise<void>;
|
|
16
|
-
bootstrapUnreadMessages(): Promise<void>;
|
|
17
|
-
triggerEffort(): void;
|
|
18
|
-
recoverRuntimeTokenAfterAuthFailure(source: string): void;
|
|
19
|
-
logRunnerDiagnostic(message: string): void;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export class HttpLiveness {
|
|
23
|
-
private httpLivenessTimer?: Timer;
|
|
24
|
-
private httpLivenessInFlight = false;
|
|
25
|
-
private httpLivenessAuthFailed = false;
|
|
26
|
-
private httpLivenessLastLog?: { key: string; at: number };
|
|
27
|
-
|
|
28
|
-
constructor(private readonly deps: HttpLivenessDeps) {}
|
|
29
|
-
|
|
30
|
-
stop(): void {
|
|
31
|
-
if (this.httpLivenessTimer) clearInterval(this.httpLivenessTimer);
|
|
32
|
-
this.httpLivenessTimer = undefined;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
resetAuthFailure(): void { this.httpLivenessAuthFailed = false; }
|
|
36
|
-
|
|
37
|
-
start(): void {
|
|
38
|
-
if (this.httpLivenessTimer) clearInterval(this.httpLivenessTimer);
|
|
39
|
-
void this.publishHttpLiveness();
|
|
40
|
-
this.httpLivenessTimer = setInterval(() => {
|
|
41
|
-
void this.publishHttpLiveness();
|
|
42
|
-
}, HTTP_LIVENESS_INTERVAL_MS);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
private async publishHttpLiveness(): Promise<void> {
|
|
46
|
-
if (this.deps.isStopped() || this.deps.isTerminalStatusLatched() || this.httpLivenessInFlight || this.httpLivenessAuthFailed) return;
|
|
47
|
-
this.httpLivenessInFlight = true;
|
|
48
|
-
const status = this.deps.currentStatus();
|
|
49
|
-
const agentStatus = runnerAgentStatus(status);
|
|
50
|
-
try {
|
|
51
|
-
// #3606 — one call; the hub writes and emits only when status or readiness actually changed.
|
|
52
|
-
await this.deps.http.heartbeat(this.deps.agentId, this.deps.instanceId, { status: agentStatus, ready: agentStatus !== "offline" });
|
|
53
|
-
await this.deps.publishQuota().catch((error) => this.deps.logRunnerDiagnostic(`passive provider quota publish failed: ${errMessage(error)}`));
|
|
54
|
-
await this.deps.bootstrapUnreadMessages(); this.deps.triggerEffort();
|
|
55
|
-
} catch (error) {
|
|
56
|
-
if (!this.deps.isStopped()) this.handleHttpLivenessFailure(error);
|
|
57
|
-
} finally {
|
|
58
|
-
this.httpLivenessInFlight = false;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
private handleHttpLivenessFailure(error: unknown): void {
|
|
63
|
-
const authFailed = isHttpAuthError(error);
|
|
64
|
-
this.logHttpLivenessFailure(error, authFailed);
|
|
65
|
-
if (!authFailed) return;
|
|
66
|
-
this.httpLivenessAuthFailed = true;
|
|
67
|
-
if (this.httpLivenessTimer) clearInterval(this.httpLivenessTimer);
|
|
68
|
-
this.httpLivenessTimer = undefined;
|
|
69
|
-
// A 401/403 here is the only timely signal that the token died — stopping the
|
|
70
|
-
// liveness timer means there is no second chance, so recover from THIS failure.
|
|
71
|
-
this.deps.recoverRuntimeTokenAfterAuthFailure("http-liveness");
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
private logHttpLivenessFailure(error: unknown, authFailed: boolean): void {
|
|
75
|
-
const key = httpErrorKey(error);
|
|
76
|
-
const now = Date.now();
|
|
77
|
-
if (
|
|
78
|
-
this.httpLivenessLastLog?.key === key &&
|
|
79
|
-
now - this.httpLivenessLastLog.at < this.deps.logIntervalMs
|
|
80
|
-
) return;
|
|
81
|
-
this.httpLivenessLastLog = { key, at: now };
|
|
82
|
-
const suffix = authFailed ? "auth failed; stopping HTTP liveness retries until restart" : String(error);
|
|
83
|
-
this.deps.logRunnerDiagnostic(`[runner] HTTP liveness update failed: ${suffix}`);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
// #2461 — keep the runner's view of this agent's gate-run LEASE HOLDER fresh, off the dedup sweep's
|
|
2
|
-
// own path. The sweep must not block on a file read plus a `ps` every tick, and the holder only
|
|
3
|
-
// changes when a gate run starts or ends, so a cheap self-arming probe on the same cadence is
|
|
4
|
-
// enough. When a holder exists it is AUTHORITATIVE for the sweep: the launch-time lease already
|
|
5
|
-
// decided which run survives, and the backstop must not independently re-decide.
|
|
6
|
-
import { readLiveGateRunHolderPid } from "@humwick/sdk/gate-run-lease";
|
|
7
|
-
|
|
8
|
-
export class GateRunLeaseProbe {
|
|
9
|
-
private timer?: ReturnType<typeof setInterval>;
|
|
10
|
-
private holderPid: number | undefined;
|
|
11
|
-
|
|
12
|
-
constructor(private readonly agentId: string, private readonly intervalMs: number) {}
|
|
13
|
-
|
|
14
|
-
/** Last observed holder pid, or undefined when this agent has no live gate run. */
|
|
15
|
-
pid(): number | undefined {
|
|
16
|
-
return this.holderPid;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
start(): void {
|
|
20
|
-
if (this.timer) return;
|
|
21
|
-
const probe = () => {
|
|
22
|
-
void readLiveGateRunHolderPid(this.agentId)
|
|
23
|
-
.then((pid) => { this.holderPid = pid; })
|
|
24
|
-
// A failed read must read as "no holder", which returns the sweep to newest-wins rather
|
|
25
|
-
// than pinning it to a stale pid it can no longer verify.
|
|
26
|
-
.catch(() => { this.holderPid = undefined; });
|
|
27
|
-
};
|
|
28
|
-
probe();
|
|
29
|
-
this.timer = setInterval(probe, this.intervalMs);
|
|
30
|
-
this.timer.unref?.();
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
stop(): void {
|
|
34
|
-
if (this.timer) clearInterval(this.timer);
|
|
35
|
-
this.timer = undefined;
|
|
36
|
-
this.holderPid = undefined;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { getDb } from "./connection.ts";
|
|
2
|
-
import { providerCatalogList } from "@humwick/sdk/provider-catalog";
|
|
3
|
-
import { upsertProviderModelOverride } from "../provider-catalog-store.ts";
|
|
4
|
-
|
|
5
|
-
// #2750 — insert-only seeding otherwise freezes family aliases at their first release.
|
|
6
|
-
export function reconcileClaudeCatalogSeeds(): number {
|
|
7
|
-
const db = getDb();
|
|
8
|
-
const rows = db.query(`
|
|
9
|
-
SELECT provider, alias, entry FROM provider_model_overrides
|
|
10
|
-
WHERE provider IN ('claude', 'claude-b') AND updated_by LIKE 'seed:%'
|
|
11
|
-
AND deleted = 0 AND disabled = 0
|
|
12
|
-
`).all() as Array<{ provider: string; alias: string; entry: string }>;
|
|
13
|
-
const aliases = new Set(["haiku", "opus", "opus[1m]", "sonnet", "sonnet[1m]", "fable"]);
|
|
14
|
-
const catalog = providerCatalogList();
|
|
15
|
-
return db.transaction(() => {
|
|
16
|
-
let refreshed = 0;
|
|
17
|
-
for (const row of rows) {
|
|
18
|
-
if (!aliases.has(row.alias)) continue;
|
|
19
|
-
const model = catalog.find((entry) => entry.provider === row.provider)?.models.find((entry) => entry.alias === row.alias);
|
|
20
|
-
if (!model || model.disabled || model.unavailable) continue;
|
|
21
|
-
if (JSON.stringify(model) === row.entry) continue;
|
|
22
|
-
upsertProviderModelOverride({ provider: row.provider, alias: row.alias, entry: model, updatedBy: "seed:claude-5.5" });
|
|
23
|
-
refreshed++;
|
|
24
|
-
}
|
|
25
|
-
return refreshed;
|
|
26
|
-
})();
|
|
27
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { getDb, isSqliteBusyError, writeTransaction } from "./connection";
|
|
2
|
-
|
|
3
|
-
/** #3286 — wait for BEGIN asynchronously; never replay a body or a possibly committed write. */
|
|
4
|
-
export async function onLoopWriteTransaction<T>(
|
|
5
|
-
body: () => T,
|
|
6
|
-
capture: (attempt: () => T) => T,
|
|
7
|
-
timeoutMs: number,
|
|
8
|
-
signal: AbortSignal,
|
|
9
|
-
): Promise<T> {
|
|
10
|
-
const deadline = performance.now() + timeoutMs;
|
|
11
|
-
for (;;) {
|
|
12
|
-
signal.throwIfAborted();
|
|
13
|
-
let entered = false;
|
|
14
|
-
try {
|
|
15
|
-
return capture(() => {
|
|
16
|
-
const db = getDb();
|
|
17
|
-
const prior = (db.query("PRAGMA busy_timeout").get() as { timeout: number }).timeout;
|
|
18
|
-
db.run("PRAGMA busy_timeout = 0");
|
|
19
|
-
try {
|
|
20
|
-
return writeTransaction(() => {
|
|
21
|
-
entered = true;
|
|
22
|
-
db.run(`PRAGMA busy_timeout = ${prior}`);
|
|
23
|
-
return body();
|
|
24
|
-
});
|
|
25
|
-
} finally {
|
|
26
|
-
db.run(`PRAGMA busy_timeout = ${prior}`);
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
} catch (error) {
|
|
30
|
-
if (entered || !isSqliteBusyError(error) || performance.now() >= deadline) throw error;
|
|
31
|
-
await Bun.sleep(15);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { DispatchPolicy, RoutingPolicy } from "@humwick/sdk";
|
|
2
|
-
import { routingModelAliases } from "@humwick/providers";
|
|
3
|
-
|
|
4
|
-
/** Project saved version-pinned routing onto the current stable family aliases. */
|
|
5
|
-
export function currentRoutingModels(policy: RoutingPolicy): RoutingPolicy {
|
|
6
|
-
return policy.dispatch ? { ...policy, dispatch: currentDispatchModels(policy.dispatch) } : policy;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export function currentDispatchModels(policy: DispatchPolicy): DispatchPolicy {
|
|
10
|
-
return {
|
|
11
|
-
...policy,
|
|
12
|
-
rules: policy.rules.map((rule) => ({ ...rule, target: currentModelTarget(rule.target) })),
|
|
13
|
-
...(policy.fallback ? { fallback: currentModelTarget(policy.fallback) } : {}),
|
|
14
|
-
...(policy.autoReview?.target ? { autoReview: { ...policy.autoReview, target: currentModelTarget(policy.autoReview.target) } } : {}),
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function currentModelTarget<T extends { provider: string; model?: string }>(target: T): T {
|
|
19
|
-
const model = target.model ? routingModelAliases[target.provider]?.[target.model] : undefined;
|
|
20
|
-
return model ? { ...target, model } : target;
|
|
21
|
-
}
|