@farmslot/protocol 0.21.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/CHANGELOG.md +96 -0
  2. package/dist/contracts/agents.d.ts +16 -0
  3. package/dist/contracts/agents.d.ts.map +1 -1
  4. package/dist/contracts/backlog.d.ts +8 -0
  5. package/dist/contracts/backlog.d.ts.map +1 -1
  6. package/dist/contracts/backlog.js.map +1 -1
  7. package/dist/contracts/device-inventory.d.ts +118 -0
  8. package/dist/contracts/device-inventory.d.ts.map +1 -0
  9. package/dist/contracts/device-inventory.js +51 -0
  10. package/dist/contracts/device-inventory.js.map +1 -0
  11. package/dist/contracts/dispatch.d.ts +2 -0
  12. package/dist/contracts/dispatch.d.ts.map +1 -1
  13. package/dist/contracts/execution-templates.d.ts +10 -0
  14. package/dist/contracts/execution-templates.d.ts.map +1 -1
  15. package/dist/contracts/gate-park.d.ts +284 -0
  16. package/dist/contracts/gate-park.d.ts.map +1 -0
  17. package/dist/contracts/gate-park.js +415 -0
  18. package/dist/contracts/gate-park.js.map +1 -0
  19. package/dist/contracts/index.d.ts +4 -0
  20. package/dist/contracts/index.d.ts.map +1 -1
  21. package/dist/contracts/index.js +4 -0
  22. package/dist/contracts/index.js.map +1 -1
  23. package/dist/contracts/pressure-admission.d.ts +175 -0
  24. package/dist/contracts/pressure-admission.d.ts.map +1 -0
  25. package/dist/contracts/pressure-admission.js +26 -0
  26. package/dist/contracts/pressure-admission.js.map +1 -0
  27. package/dist/contracts/resource-posture.d.ts +379 -0
  28. package/dist/contracts/resource-posture.d.ts.map +1 -0
  29. package/dist/contracts/resource-posture.js +293 -0
  30. package/dist/contracts/resource-posture.js.map +1 -0
  31. package/dist/contracts/resources.d.ts +27 -1
  32. package/dist/contracts/resources.d.ts.map +1 -1
  33. package/dist/contracts/resources.js +1 -1
  34. package/dist/contracts/resources.js.map +1 -1
  35. package/dist/contracts/reviews.d.ts +2 -0
  36. package/dist/contracts/reviews.d.ts.map +1 -1
  37. package/dist/contracts/reviews.js.map +1 -1
  38. package/dist/contracts/runs.d.ts +480 -7
  39. package/dist/contracts/runs.d.ts.map +1 -1
  40. package/dist/contracts/runs.js +130 -1
  41. package/dist/contracts/runs.js.map +1 -1
  42. package/dist/contracts/runtime-capabilities.d.ts +255 -3
  43. package/dist/contracts/runtime-capabilities.d.ts.map +1 -1
  44. package/dist/contracts/runtime-capabilities.js +113 -1
  45. package/dist/contracts/runtime-capabilities.js.map +1 -1
  46. package/dist/contracts/slots.d.ts +53 -1
  47. package/dist/contracts/slots.d.ts.map +1 -1
  48. package/dist/recipes/step-io.d.ts +10 -1
  49. package/dist/recipes/step-io.d.ts.map +1 -1
  50. package/dist/rpc/config.d.ts +9 -1
  51. package/dist/rpc/config.d.ts.map +1 -1
  52. package/dist/rpc/copilot-runtime.d.ts +17 -0
  53. package/dist/rpc/copilot-runtime.d.ts.map +1 -1
  54. package/dist/rpc/copilot-runtime.js +5 -0
  55. package/dist/rpc/copilot-runtime.js.map +1 -1
  56. package/dist/rpc/dispatch.d.ts +39 -1
  57. package/dist/rpc/dispatch.d.ts.map +1 -1
  58. package/dist/rpc/dispatch.js +2 -0
  59. package/dist/rpc/dispatch.js.map +1 -1
  60. package/dist/rpc/git.d.ts +35 -0
  61. package/dist/rpc/git.d.ts.map +1 -1
  62. package/dist/rpc/index.d.ts +3 -0
  63. package/dist/rpc/index.d.ts.map +1 -1
  64. package/dist/rpc/index.js +3 -0
  65. package/dist/rpc/index.js.map +1 -1
  66. package/dist/rpc/machine-pause.d.ts +158 -0
  67. package/dist/rpc/machine-pause.d.ts.map +1 -0
  68. package/dist/rpc/machine-pause.js +8 -0
  69. package/dist/rpc/machine-pause.js.map +1 -0
  70. package/dist/rpc/registry.d.ts +16 -0
  71. package/dist/rpc/registry.d.ts.map +1 -1
  72. package/dist/rpc/registry.js +17 -0
  73. package/dist/rpc/registry.js.map +1 -1
  74. package/dist/rpc/resource-posture.d.ts +36 -0
  75. package/dist/rpc/resource-posture.d.ts.map +1 -0
  76. package/dist/rpc/resource-posture.js +7 -0
  77. package/dist/rpc/resource-posture.js.map +1 -0
  78. package/dist/rpc/resource-pressure-selection.d.ts +4 -0
  79. package/dist/rpc/resource-pressure-selection.d.ts.map +1 -0
  80. package/dist/rpc/resource-pressure-selection.js +21 -0
  81. package/dist/rpc/resource-pressure-selection.js.map +1 -0
  82. package/dist/rpc/resources.d.ts +176 -1
  83. package/dist/rpc/resources.d.ts.map +1 -1
  84. package/dist/rpc/resources.js +6 -0
  85. package/dist/rpc/resources.js.map +1 -1
  86. package/dist/rpc/run.d.ts +122 -5
  87. package/dist/rpc/run.d.ts.map +1 -1
  88. package/dist/rpc/run.js +1 -0
  89. package/dist/rpc/run.js.map +1 -1
  90. package/dist/rpc/runtime-capabilities.d.ts +73 -3
  91. package/dist/rpc/runtime-capabilities.d.ts.map +1 -1
  92. package/dist/rpc/runtime-capabilities.js +11 -0
  93. package/dist/rpc/runtime-capabilities.js.map +1 -1
  94. package/dist/rpc/slot.d.ts +9 -1
  95. package/dist/rpc/slot.d.ts.map +1 -1
  96. package/dist/rpc/slot.js.map +1 -1
  97. package/dist/rpc/tmux.d.ts +4 -0
  98. package/dist/rpc/tmux.d.ts.map +1 -1
  99. package/dist/runs/decision-resolution.d.ts +7 -0
  100. package/dist/runs/decision-resolution.d.ts.map +1 -1
  101. package/dist/runs/decision-resolution.js +1 -0
  102. package/dist/runs/decision-resolution.js.map +1 -1
  103. package/dist/slots/tracking-branch.d.ts +12 -0
  104. package/dist/slots/tracking-branch.d.ts.map +1 -1
  105. package/dist/slots/tracking-branch.js +12 -0
  106. package/dist/slots/tracking-branch.js.map +1 -1
  107. package/dist/transport/events.d.ts +7 -1
  108. package/dist/transport/events.d.ts.map +1 -1
  109. package/dist/transport/events.js +2 -0
  110. package/dist/transport/events.js.map +1 -1
  111. package/dist/transport/signal.d.ts +11 -0
  112. package/dist/transport/signal.d.ts.map +1 -1
  113. package/dist/transport/signal.js +19 -1
  114. package/dist/transport/signal.js.map +1 -1
  115. package/dist/version.d.ts +1 -1
  116. package/dist/version.js +1 -1
  117. package/package.json +6 -1
package/CHANGELOG.md CHANGED
@@ -6,6 +6,102 @@ All notable changes to `@farmslot/protocol` are tracked here.
6
6
 
7
7
  - Active-development baseline; add user-facing changes here before release or package publication.
8
8
 
9
+ ## 0.25.0 - 2026-09-08
10
+
11
+ - feat(parking): cross-slot re-dispatch contracts for a freed gate park. `MachineParkRecord.rehome`
12
+ (`MachineParkRehome`) records the slot a restore moved the run out of and the one it moved into,
13
+ so a client can say "restoring into B, was A" and a repair path can tell which slot the record is
14
+ homed to. `MachinePauseRestoreTarget` and `GateParkRestoreTargetView` gain `originalSlotId`
15
+ alongside the Gateway-chosen `slotId`, and the shared gate-park reading gains a `rehoming` slot
16
+ state with the label, summary line, and gate notice to match — each naming BOTH slots, because an
17
+ operator told only the new one reads it as where the park was taken and one told only the old
18
+ attaches to a pane the successor now owns. New eligibility codes: `ELIGIBLE_FREED_SLOT_REHOME`,
19
+ `RESTORE_REHOME_SESSION_NOT_PORTABLE`, and `RESTORE_NO_REHOME_TARGET`.
20
+ - feat(runtime): device inventory contracts. `resource.device.inventory`
21
+ (`DeviceInventoryParams`/`DeviceInventoryResult`) lists the devices a slot's machine has, as
22
+ `DeviceInventoryEntry` records carrying the re-target `key` (`DeviceInventoryKey`), the
23
+ `identity`, the device name, the tool's own `state`, and `configuredForSlots` — every slot that
24
+ configures it, a list because two slots legitimately share one physical device.
25
+ `DeviceInventorySource` says per tool (`DEVICE_INVENTORY_TOOLS`) whether it answered, and
26
+ `DEVICE_INVENTORY_KEY_TOOL` / `DEVICE_INVENTORY_KEY_LISTS_EXISTENCE` / `deviceInventoryCovers` say
27
+ which tool answers for which key and whether that tool enumerates what EXISTS or only what is
28
+ currently connected — so a partial read is usable, silence is never read as absence, and an
29
+ `adb_serial` is never refused, because `adb devices` lists live transports and booting the device
30
+ is what the provider acquire does next. `DeviceInventoryRefusal` is the
31
+ typed refusal for a target the machine does not have, naming the machine and the nearest known
32
+ identities, and `ResourcePostureRejection` gains a matching `device-unknown` member.
33
+
34
+ - feat(runtime): contracts for opt-in host-pressure admission. `ProjectRuntimeCapabilitiesConfig`
35
+ gains `hostPressureAdmission` (`ProjectHostPressureAdmissionConfig`: a `HostPressureAdmissionMode`
36
+ from `HOST_PRESSURE_ADMISSION_MODES` — `off` | `refuse` | `queue` — plus optional
37
+ `load1CriticalMultiplier`, `cpuCriticalPercent`, `memoryCriticalPercent`, `diskCriticalPercent`).
38
+ Absent means `off`. `RuntimeCapabilityPressureConflict` gains `enforced?: false`, present only when
39
+ the gate was not enforced: the acquire went through and the conflict is advisory, carried on the
40
+ granted lease. On the dispatch side, `PressureAdmissionAdmitted` gains `enforced?: false` and
41
+ `advisory` (`PressureAdmissionAdvisory`: the code, reason, and causes an enabled gate would have
42
+ rejected with), and `PressureAdmissionControlState` gains `envOverride` for the
43
+ `FARMSLOT_DISPATCH_PRESSURE_ADMISSION` value that wins over the durable state. `state: 'disabled'`
44
+ is now the default posture rather than a kill-switch exception. `DispatchPressureAdmissionMode`
45
+ (`off` | `refuse`, with `DISPATCH_PRESSURE_ADMISSION_MODES`) names the dispatch half of that
46
+ vocabulary so clients stop re-hardcoding the literals. Unenforced pressure is a
47
+ SEPARATE type: `RuntimeCapabilityPressureAdvisory` (`kind: 'host-pressure-advisory'`), which is
48
+ deliberately not a member of `RuntimeCapabilityAcquireConflict`, so a client matching
49
+ `kind === 'host-pressure'` cannot paint an admitted acquire as a block and the compiler refuses any
50
+ code path that tries to return one as a refusal. It carries a required `observedAt` because it is
51
+ pinned to a lease at acquire time and never refreshed. `RuntimeCapabilityLease.pressure` and
52
+ `RuntimeCapabilityStatusResult.pressure` are now `RuntimeCapabilityLeasePressure`, the union of the
53
+ two. The dispatch side's discriminant is the existing required `state: 'disabled'`, which every
54
+ consumer already guards on.
55
+ - feat(runtime): resource claims carry a scope. `RuntimeCapabilityResourceClaim` gains `scope` (`slot` | `machine` | `fleet`, absent means `slot`), with `runtimeCapabilityClaimScope` and `widerRuntimeCapabilityClaimScope` as the only places the default and the symmetric widening are applied. A lease records the `machine` and the `claims` it was taken with, so arbitration across slots reads the snapshot instead of every foreign slot's catalog; a lease with no `claims` predates scopes and stays slot-scoped. `RuntimeCapabilityAcquireParams` gains `queueOnConflict`, deliberately separate from `queueOnPressure` because host pressure and claim contention drain differently. A queued lease carries `wait` (`RuntimeCapabilityScopedClaimWait`) with the blocking owner, which is usually on another slot; the acquire is refused with the new `scoped-wait` conflict naming the claim, the holder, the queued lease and the place in line. `RuntimeCapabilityStatusResult` gains `claimWaiters` (`RuntimeCapabilityClaimWaiter[]`), the fleet-wide queue derived on read from enqueue time, since the slot-filtered lease list cannot say how many runs are ahead. `RunResourcePostureState` gains `resourceWait` (`RunResourceWait`) so a run's durable place in line survives a reconnect; the Gateway derives it from the run's own lease on every read, so it clears itself the moment the reservation is completed. `RunResourceWait` carries a `phase` (`RunResourceWaitPhase`: `queued` behind a holder, or `granted` — the claim reserved for this run with no provider started yet, reported at position 0). Both are waits: a `granted` one that never clears is a claim held with nothing behind it, and reporting only the queued half is what made that invisible on every client.
56
+ - feat(posture): device-identity acquire parameters for runtime capability providers (ADR-054 item 3). `RUNTIME_CAPABILITY_TARGET_KEYS` names the five keys a provider may accept (`platform`, `udid`, `simulator`, `avd`, `adb_serial`), `RUNTIME_CAPABILITY_TARGET_VALUE_PATTERN` is the charset an identity must match because the value is substituted into a project hook command, and `runtimeCapabilityTargetFromParameters`/`formatRuntimeCapabilityTarget` let every client read and label the device a lease resolved to from one derivation. `RecipeRerunParams` gains `target` and `ResourcePostureCapabilityState` gains `target`. An identity may not start with a dash: `-x` passes a shell-safety check but is still an argument to whatever the provider hook runs. `RuntimeCapabilityAcquireParams` also gains `dependencyParameters`, so a caller reconciling a whole proof plan can say which device each dependency should be acquired with rather than letting the order it walks the plan decide.
57
+ - feat(parking): `MachineParkEligibilityCodes` gains `RUNNER_LIVENESS_PROBE_TIMEOUT` and `MACHINE_PAUSE_PREVIEW_STALE`, and `MachinePauseEligibility` gains an optional `details` (`MachinePauseEligibilityDetails`, currently `probeBudgetMs`) that `ResourcePostureRejection`'s `park-ineligible` variant passes through. The two codes name transient races — a liveness probe that ran out of budget, a preview digest that moved between preview and execute — that previously shared a code with genuine verdicts about the run, so a client or validation harness had to read the reason prose to tell them apart. `CompleteStepOutput.slotDisposition` also gains `release-deferred`, for the terminal-flow case where COMPLETE chooses the release but the engine performs it after the run publishes; it used to report `released` for a teardown that had not happened yet.
58
+
59
+ - feat(posture): `MachineParkRecord` gains `restoreEffects` (`MachineParkRestoreEffect[]`, with `MachineParkRestoreAction` = `verified` | `booted` | `stopped` | `skipped`), the lifecycle effects a restore actually performed per resource, emitted by the Gateway code path that performs them — the single function that runs a resource's boot, shutdown, or relaunch hook, which a capability acquire reaches too, and attributed to the restore that initiated it rather than to the slot it touched — and reset at the start of each attempt. A boot that succeeds leaves no error behind, so an absence of boot errors could never prove no boot happened; this states what was done instead of leaving it to be inferred. Absent on records written before restore recorded its effects.
60
+ - feat(runtime): `RuntimeCapabilityProviderConfig` gains optional `affectedResources` (`RuntimeCapabilityAffectedResource[]`, with `RUNTIME_CAPABILITY_AFFECTED_OWNERSHIPS` and `RUNTIME_CAPABILITY_AFFECTED_RELEASE_EFFECTS`), which flows onto the catalog entry. A provider declares which slot resources it touches, whether the lease owns that resource or only rides on a slot-lifecycle one, and whether releasing it stops or retains the resource. Absent keeps the old derivation from resource-kind action refs, so no existing catalog changes meaning; an empty array is the distinct claim that the provider touches no watched resource. `MachineParkResource` gains `releaseEffect`, so a park manifest records which resources it will stop and which it deliberately leaves running for restore to verify instead of boot.
61
+ - feat(posture): `RunResourcePostureState` gains `gateChoiceSuppressedForGeneration`, the run generation a `machine.pause.restore` replay took ownership at when it re-presented a gate. Without it a run whose stored choice is `free-slot` re-parks itself the moment its gate comes back, before the operator ever sees it; the restored gate falls back to the framework default once and the choice stays available to make explicitly. Keyed on the generation rather than a bare flag so a suppression cannot outlive the gate it was set for.
62
+ - feat(slots): `SlotStatus` gains `headSha`, the commit the last fleet refresh saw HEAD on. A detached checkout reports `branch` as the literal `HEAD`, which identifies nothing, so the commit is what tells one detached slot from another. It is written by the fleet refresh, so it is absent on a cached row until the first refresh after a deploy; a park-freed slot simply scores stale until then, which is transient and self-healing.
63
+ - feat(slots): export `DETACHED_HEAD_BRANCH`, the literal `HEAD` that `git rev-parse --abbrev-ref` reports for a detached checkout. `isSlotIdleBranch` deliberately still calls a detached slot stale, because the predicate is shared with the unmerged-work release refusal and fleet health, where a detached HEAD can hold real unpushed commits; only dispatch scoring makes an exception, and only for a slot a park record proves is preserved.
64
+ - feat(posture): `MachineParkRecord` gains `slotDisposition` (`retained` | `freed`) and `slotFreedAt`, and `MachinePausePreviewRun` gains `slotDisposition`, so clients can tell a park that frees the run's slot from one that keeps it bound and can tell the intent apart from the release actually landing. `MachineParkRecord.preservedWorkspace` (`MachineParkWorkspace`) carries the branch and tip a freeing park detached, so clients can show what was preserved and restore can check it out again. `MachineParkEligibilityCodes` names the gate-park verdicts clients render: `ELIGIBLE_GATE_RELEASE_PAUSE`, `RUNNER_RELOAD_UNSUPPORTED`, `GATE_PARK_REQUIRES_RELEASE`, `WORKSPACE_NOT_PRESERVABLE`, `GATE_PARK_IN_FLIGHT`, and the restore verdicts `FREED_SLOT_RESTORE_REQUIRED`, `RESTORE_SLOT_TAKEN`, `RESTORE_WORKSPACE_UNAVAILABLE`, `RESTORE_RUNNER_RELOAD_FAILED`, and `RESTORE_GATE_REPLAYED`. Restoring a freed park adds `MachineParkRecord.slotReboundAt` (when the slot came back, as a fact rather than an intent) and `restoreRefusal` (`MachineParkRestoreRefusal`: the typed code and reason the last attempt refused, so a reconnecting client can still explain a gate that would not answer), `MachinePauseRestorePreviewRun.restoreTarget` (`MachinePauseRestoreTarget`: the ORIGINAL slot, its disposition, and whether it can take the run back right now — there is deliberately no alternative target, because cross-slot re-dispatch is a separate decision), and `RunResolveDecisionResult.gateParkRestore`, present only when answering the gate had to restore the run first, so a client can tell that apart from answering a live gate. `MachineParkRecord.restoreProgress` (`MachineParkRestoreProgress` over `MACHINE_PARK_RESTORE_STAGES` = `rebind` | `reattach` | `reacquire` | `reload`, with `machineParkRestoreComplete`) tracks what a restore still owes, written before each stage and completed after. It is deliberately independent of occupancy: a restore that re-bound the slot and booted its resources and then failed to get an acknowledged reload leaves an occupied slot and a running process, and reading those as progress is how a retry skipped the restore. `slotReboundAt` is now the occupancy fact and `slotFreedAt` survives until every stage lands. `MachineParkRecord.recoveryProof.acknowledgement.kind` widens from `'structured'` to `'structured' | 'adopted'`: `structured` is a relaunch the runner acknowledged, with a turn delivered and started, while `adopted` is a worker that was ALREADY running this run's persisted session when the restore reached it — proven by the live-binding check rather than by a prompt, and carrying no `turnToken`. **A client narrowing on `kind === 'structured'` stops recognizing an adopted proof**, so both kinds must be accepted wherever a restored worker counts as back. The single client reading of all of this is `gateParkView` / `liveGateParkView` with `gateParkStateLabel`, `gateParkSummaryLine`, and `gateParkGateNotice`: it turns a run plus its park record into the slot state (`retained` | `freeing` | `freed` | `restoring` | `settled`), the freed slot, the preserved branch and tip, the restore stages still owed, the typed refusal, and whether answering the gate restores the run first — with restore-target availability carried in from a Gateway verdict and reported as not known when nothing supplied one, never derived. `isSlotFreedByPark`, `needsGateParkRestore`, `isGateParkInFlightOrFreed`, and `hasLiveParkRecord` move here from the Gateway so clients read the exact predicates the Gateway acts on instead of approximations of them. A `partial` park is split into `partial-answerable` and `partial-needs-restore` off that same fence rather than lumped in with a park still landing: a partial has settled and will not finish, so telling the operator to wait is advice that cannot work, and a partial that detached nothing and left a live worker is answerable exactly where it stands. `GateParkGateNotice` carries `blocking` so no client re-derives that from `kind`, and `refusalSuperseded` so an `available` verdict is allowed to overtake a refusal from an earlier attempt instead of being outranked by it.
65
+ - feat(posture): add the shared post-resolution transition contract — `correlateResourcePostureTransition`, `resourcePostureTransitionBaseline`, `resourcePostureTransitions`, `isTerminalResourcePostureOutcome`, `RESOURCE_POSTURE_TERMINAL_OUTCOMES`, and `RESOURCE_POSTURE_TRANSITION_POLL_LIMIT`. `run.resolveDecision` returns before reconciliation finishes, so a client must tell the resulting transition apart from the one that was already there: correlate on id novelty, on recency measured Gateway-clock to Gateway-clock, and on gate choice only where the record carries one, preferring a record the Gateway attributed over one the client inferred. Terminal outcomes are an allowlist, so a new outcome is a wait until it is considered rather than silently terminal.
66
+ - feat(runtime): export `RUNTIME_CAPABILITY_PROOF_MODES` and `isRuntimeCapabilityProofMode` beside `RuntimeCapabilityProofMode`, so clients build option lists and validators from the protocol instead of retyping the union.
67
+ - feat(posture): add `runtime.capability.stopWarm` (`RuntimeCapabilityStopWarmParams`/`Result`) for stopping one provider that a released lease is still keeping warm. The result carries a typed outcome (`stopped`, `deferred`, `not-warm`, `failed`), the resulting observed provider state, the reason a stop was deferred, and any cleanup failure; observed state is never `stopped` unless the provider really stopped.
68
+ - feat(posture): add the ADR-054 run resource posture contract — `ResourcePosture` (`active`, `operator-wait`, `parked`, `terminal`), gate choices, dispatch `waitPolicy`, per-capability desired disposition versus observed provider state, policy source, transition outcomes, and the `runtime.posture.status|preview|apply` RPCs. Runtime capability providers gain per-posture `retention` and projects a `runtime_capabilities.posture` default; `runtime.capability.release` gains `keepWarm` so stopping a provider no longer requires `force`, which keeps its narrower meaning of bypassing the provenance guard. Backlog dispatch settings, queue items, `run.create`, and `Run` carry `waitPolicy`, `Run` carries `resourcePosture`, and `run.resolveDecision` takes a typed `resourcePosture` gate choice, which `buildRunResolveDecisionParams` now carries so every operator client sends it the same way. `observedStateForLease` moves here from the Gateway, so the Gateway and every client derive a provider's observed state from one function. `runtime.capability.acquire` gains `revalidateHealth`, which re-checks a lease the caller already holds and cleans up a dead provider before reuse, a posture transition can report the `failed` outcome when reconciliation could not run, and `RunResourcePostureState.recentTransitions` keeps a bounded operation-id history so replaying an earlier operation returns its stored result instead of re-executing. `resourcePostureRowStatus`, `resourcePostureCounts`, and `resourcePostureTransitionFailuresToShow` join `observedStateForLease` here so Command Center, Companion, and the CLI compare desired against observed state, bucket the retained/warm/stopped/failed counts, and de-duplicate transition failures with one implementation instead of three.
69
+ - feat(tmux): add `tmux.pasteText` (`TmuxPasteTextParams`) for atomic bracketed-paste delivery, and `TmuxPane.currentCommand` / `paneId` / `panePid` carrying tmux's `#{pane_current_command}`, `#{pane_id}`, and `#{pane_pid}` so callers can identify a pane and its process tree. `tmux.newWindow` now returns the created `paneId`, `windowIndex`, `windowName`, and `sessionName` instead of a bare ok.
70
+ - feat(run): add `run.sessionCommand` (`RunSessionCommandParams`/`RunSessionCommandResult`) for reopening an agent context's runner session, selected by exact `contextId` (with `role` as a fallback), and `AgentContext.runnerSessionCapturedAt` recording when that session identity was bound. `RunSessionCommandResult.rediscoveredTarget` marks a `tmuxTarget` recovered by scanning the slot's tmux session, `interrupt` carries the runner's registry-declared graceful exit so callers never hardcode runner-specific stop syntax, and `ownership` (`owned` | `transferred` | `unknown`) / `ownerRunId` / `paneId` report whether the requesting run still owns the slot and which exact pane holds the session.
71
+ - fix(run): allow recovery replays to replace a runner and compatible model without replacing the task or worktree.
72
+ - fix(run): version publication-review counting and let an operator replay an ambiguous retained handoff as an explicit fresh dispatch.
73
+ - feat(dispatch): identify ready slots with unowned live runners as `replaceableWarm`, allowing an explicit fresh dispatch while active-run workers remain protected.
74
+ - fix(run): add `RunMonitorState.budgetNudgeAttempts`, `RunMonitorBudgetUsageState.skippedOversizedRecords`, `RunMonitorBudgetUsageState.lastCumulative` (the reference reading for runners that restate session totals), `RunMonitorBudgetUsageState.discardNextRecord`, and `RunBudgetDeliveryState` on `RunMonitorState.budgetDelivery`, which supersedes the `budgetWarned` / `budgetNudgeSent` / `budgetNudgeAttempts` / `budgetFirstDeferredAt` flags (still read for migration). `baselineTurns`/`baselineTotalTokens` remain only as legacy fields migrated on restore. All are restored on monitor recovery.
75
+ - fix(agents): persist prompt-delivery boundaries and their source ref so restart recovery never guesses whether a destructive runner handoff began.
76
+ - feat(dispatch): `dispatch.candidates` may omit `project` to return every enabled slot, each tagged with `project`, and accepts `forceRefresh` to bypass the branch-refresh TTL.
77
+ - feat(execution-templates): catalog options may carry `sourceDomains`, `shadowedBy`, and `defaults`; `config.templateOptions` accepts `unfiltered` so a client can load one full project catalog and filter locally.
78
+ - fix(run): persist `RunMonitorState.lastStructuredProgressAt` so a gateway restart does not reset an idle runner's stuck clock.
79
+ - fix(run): `run.forceComplete` accepts optional `prNumber` so an operator can attach an already-opened PR when marking a failed run done.
80
+ - fix(run): `RunEngineState.operatorForceCompleted` marks an operator hatch so replay cannot treat it as ordinary done.
81
+ - fix(run): `run.forceComplete` returns advisory `effects` (same envelope as cancel) so a failed slot release is visible after the run is already `done`.
82
+
83
+ ## 0.24.0 - 2026-08-21
84
+
85
+ - feat(pressure): add the gateway-owned pressure-admission kill switch contract: `PressureAdmissionControlState`, `dispatch.pressureAdmission.get/setEnabled`, and the admitted `state: 'disabled'` decision variant (MANUAL-000109).
86
+ - feat(pressure): add `historyFreshness` (live/restored + explicit staleness) to `resource.pressure.snapshot` machines so rehydrated history is usable immediately after a gateway restart (MANUAL-000109).
87
+ - feat(pressure): add the sustained-pressure dispatch admission contract with admission states, stable rejection codes, normalized sample evidence, attributed causes, preview identity (`PressureAdmissionReference`), and the principal-audited one-dispatch override; add `pressureAdmission` on dispatch preview/candidate results and `pressureOverride`/`pressureAdmissionRef` on run creation (MANUAL-000109).
88
+
89
+ ## 0.23.0 - 2026-08-20
90
+
91
+ - feat(machine-pause): add typed machine-scoped pause, release, durable park, and restore contracts.
92
+
93
+ ## 0.22.0 - 2026-08-20
94
+
95
+ - feat(resources): add bounded normalized pressure history, ownership-safe process inventory and attribution contracts, cleanup-impact preview metadata, plus the typed `resource.pressure.snapshot` RPC.
96
+ - perf(resources): add backward-compatible typed shared-poll provider hints and aggregate execution/fan-out/failure telemetry to resource-watch contracts.
97
+ - fix(runners): default standalone Grok runs to the available `grok-4.6` model.
98
+ - perf(resources): expose aggregate node watch pressure in the existing machine-metrics stream.
99
+ - fix(ci): carry full bot-comment fingerprints so edited findings cannot be hidden by preview truncation.
100
+ - fix(runs): share active-run and authoritative Co-Pilot terminal identity across gateway and clients.
101
+ - feat(copilot): configure persisted runtime runner, model, and gateway autostart policy through the shared protocol.
102
+ - feat(review): carry normalized per-step checklist timing on worker signals and review attempts.
103
+ - fix(review): carry a gateway-derived task identity so clients match active tasks across configured roots.
104
+
9
105
  ## 0.21.0 - 2026-08-14
10
106
 
11
107
  - fix(runtime-capabilities): retain queued admission pressure in status results and document forced provenance cleanup.
@@ -6,6 +6,8 @@ export interface AgentContextTarget {
6
6
  session: string;
7
7
  window?: string | null;
8
8
  pane?: string | null;
9
+ /** Stable tmux pane identity (`%N`); required by destructive runner lifecycle operations. */
10
+ paneId?: string | null;
9
11
  target: string;
10
12
  }
11
13
  export interface AgentContext {
@@ -28,6 +30,12 @@ export interface AgentContext {
28
30
  target?: AgentContextTarget | null;
29
31
  runnerSessionId?: string | null;
30
32
  runnerSessionPath?: string | null;
33
+ /**
34
+ * When the runner-layer session hook last bound this role to the id/path pair
35
+ * above. Written only alongside a complete binding, so it also dates the
36
+ * evidence an operator reopens the session from.
37
+ */
38
+ runnerSessionCapturedAt?: string;
31
39
  nudgeCount?: number;
32
40
  /** Runner context-window usage percentage (0-100). See {@link AgentContextSummary.ctxPct}. */
33
41
  ctxPct?: number | null;
@@ -39,6 +47,12 @@ export interface AgentContext {
39
47
  * current attempt", which restart recovery needs.
40
48
  */
41
49
  attemptStartedAt?: string;
50
+ /** Durable boundary recorded immediately before a task prompt may mutate the runner. */
51
+ promptDeliveryStartedAt?: string;
52
+ /** Optional source ref captured with the delivery boundary, such as the pre-fix HEAD. */
53
+ deliveryBaselineRef?: string;
54
+ /** Tmux pane PID captured before a destructive delivery, used to prove whether respawn occurred. */
55
+ deliveryBaselinePanePid?: string;
42
56
  /** Attempt identity last observed from the worker signal contract. */
43
57
  signalAttemptId?: string;
44
58
  updatedAt?: string;
@@ -52,6 +66,8 @@ export interface AgentContextSummary {
52
66
  status: AgentContextStatus;
53
67
  runId?: string | null;
54
68
  taskFile?: string | null;
69
+ /** Run-relative task identity derived by the gateway, independent of the configured task root. */
70
+ taskIdentity?: string | null;
55
71
  signalFile?: string | null;
56
72
  runner?: string | null;
57
73
  model?: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/contracts/agents.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAEvD,eAAO,MAAM,WAAW,8FAQd,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AACrD,MAAM,MAAM,kBAAkB,GAC1B,WAAW,GACX,SAAS,GACT,SAAS,GACT,UAAU,GACV,QAAQ,GACR,SAAS,GACT,MAAM,CAAC;AAEX,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,4FAA4F;IAC5F,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;6CAIyC;IACzC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AAEjE,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEvE,MAAM,MAAM,oBAAoB,GAC5B;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,sBAAsB,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEN,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/contracts/agents.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { ScriptedRunnerConfig } from './agents.js';
2
2
  import type { QueueItem } from './dispatch.js';
3
3
  import type { TaskTemplateSelection } from './evals.js';
4
+ import type { ResourcePostureWaitPolicy } from './resource-posture.js';
4
5
  import type { DevInteractiveProfile, FlowType, ReviewDepthPolicy, ReviewLoopRequest, RunStatus } from './runs.js';
5
6
  export declare const BACKLOG_STATUSES: readonly ["candidate", "ready", "queued", "dispatching", "running", "done", "failed", "needs-attention", "archived"];
6
7
  export type BacklogStatus = (typeof BACKLOG_STATUSES)[number];
@@ -98,6 +99,11 @@ export interface BacklogItem {
98
99
  mode?: 'interactive' | 'autonomous';
99
100
  devInteractiveProfile?: DevInteractiveProfile;
100
101
  reviewDepth?: ReviewDepthPolicy;
102
+ /**
103
+ * Dispatch-time resource posture preset copied onto every run created from
104
+ * this item; presets the gate choice for each durable wait (ADR-054).
105
+ */
106
+ waitPolicy?: ResourcePostureWaitPolicy;
101
107
  pendingReviewPlan?: ReviewLoopRequest[];
102
108
  launchPlan?: BacklogLaunchPlan;
103
109
  launchPlanState?: BacklogLaunchPlanState;
@@ -144,6 +150,7 @@ export interface BacklogCreateInput {
144
150
  mode?: 'interactive' | 'autonomous';
145
151
  devInteractiveProfile?: DevInteractiveProfile;
146
152
  reviewDepth?: ReviewDepthPolicy;
153
+ waitPolicy?: ResourcePostureWaitPolicy;
147
154
  pendingReviewPlan?: ReviewLoopRequest[];
148
155
  launchPlan?: BacklogLaunchPlan;
149
156
  status?: Extract<BacklogStatus, 'candidate' | 'ready'>;
@@ -173,6 +180,7 @@ export interface BacklogUpdateInput {
173
180
  mode?: 'interactive' | 'autonomous' | null;
174
181
  devInteractiveProfile?: DevInteractiveProfile | null;
175
182
  reviewDepth?: ReviewDepthPolicy | null;
183
+ waitPolicy?: ResourcePostureWaitPolicy | null;
176
184
  pendingReviewPlan?: ReviewLoopRequest[] | null;
177
185
  launchPlan?: BacklogLaunchPlan | null;
178
186
  }
@@ -1 +1 @@
1
- {"version":3,"file":"backlog.d.ts","sourceRoot":"","sources":["../../src/contracts/backlog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backlog.d.ts","sourceRoot":"","sources":["../../src/contracts/backlog.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"backlog.js","sourceRoot":"","sources":["../../src/contracts/backlog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backlog.js","sourceRoot":"","sources":["../../src/contracts/backlog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * The devices a slot's machine actually has (MANUAL-000124).
3
+ *
4
+ * ADR-054 item 3 shipped device re-targeting with no inventory: an identity was
5
+ * validated only by the provider's own acquire action, which happens AFTER the
6
+ * posture has released the device the run was holding. A typo therefore cost a
7
+ * run its device and gave it nothing back. This contract is what lets a
8
+ * re-target be refused first, and what feeds the operator a list to pick from
9
+ * instead of a free-text field.
10
+ *
11
+ * Read-only and machine-scoped: a device name identifies a device on ONE
12
+ * machine, so every entry here belongs to `machine` and nothing compares across
13
+ * machines.
14
+ */
15
+ import type { RuntimeCapabilityTargetKey } from './runtime-capabilities.js';
16
+ /** Which provider family an entry belongs to. */
17
+ export declare const DEVICE_INVENTORY_PLATFORMS: readonly ["ios", "android"];
18
+ export type DeviceInventoryPlatform = (typeof DEVICE_INVENTORY_PLATFORMS)[number];
19
+ /**
20
+ * The device-identity key an entry can be named by.
21
+ *
22
+ * A subset of the re-target keys: `platform` selects a provider rather than a
23
+ * device, so it is never an inventory entry.
24
+ */
25
+ export type DeviceInventoryKey = Exclude<RuntimeCapabilityTargetKey, 'platform'>;
26
+ /**
27
+ * The tools an inventory is built from. Each answers for exactly the keys it
28
+ * knows, which is what makes a partial read usable: `simctl` being absent says
29
+ * nothing about whether an `avd` exists.
30
+ */
31
+ export declare const DEVICE_INVENTORY_TOOLS: readonly ["simctl", "adb", "emulator"];
32
+ export type DeviceInventoryTool = (typeof DEVICE_INVENTORY_TOOLS)[number];
33
+ /** Which tool answers for a given identity key. */
34
+ export declare const DEVICE_INVENTORY_KEY_TOOL: Record<DeviceInventoryKey, DeviceInventoryTool>;
35
+ /**
36
+ * Whether a tool's silence about an identity is evidence that it does not
37
+ * EXIST, as opposed to evidence that it is not running right now.
38
+ *
39
+ * `simctl list devices` and `emulator -list-avds` enumerate what is installed,
40
+ * whatever state it is in, so an identity they omit does not exist. `adb
41
+ * devices -l` enumerates currently CONNECTED transports: an unplugged phone and
42
+ * an unbooted emulator are both absent from it, and booting them is exactly
43
+ * what the provider acquire would do. Treating that absence as nonexistence
44
+ * refused every legitimate re-target to a device that was not already up.
45
+ *
46
+ * So `adb_serial` is never refused on absence. The provider's own `adb
47
+ * get-state` remains the closed door behind it, as it was before this inventory
48
+ * existed.
49
+ */
50
+ export declare const DEVICE_INVENTORY_KEY_LISTS_EXISTENCE: Record<DeviceInventoryKey, boolean>;
51
+ export interface DeviceInventoryEntry {
52
+ platform: DeviceInventoryPlatform;
53
+ /** The re-target key this identity may be sent as. */
54
+ key: DeviceInventoryKey;
55
+ /** The value a `target` would carry — a simulator name, a udid, an avd, a serial. */
56
+ identity: string;
57
+ /** Human name of the device, which for `simulator`/`avd` equals the identity. */
58
+ name: string;
59
+ /**
60
+ * The tool's own word for the device's state, passed through unchanged
61
+ * (`Booted`, `Shutdown`, `device`, `offline`, `available`). Not normalized:
62
+ * every normalization we tried lost the distinction an operator needed.
63
+ */
64
+ state: string;
65
+ /**
66
+ * Every slot on this machine whose configured resources name this identity,
67
+ * sorted.
68
+ *
69
+ * A list, not one slot: two slots legitimately share one physical device —
70
+ * that is the contention fleet-scoped claims exist for — and naming only the
71
+ * first would tell an operator the device is free on the slot it hides.
72
+ * Absent when no slot configures it.
73
+ */
74
+ configuredForSlots?: string[];
75
+ }
76
+ /** Whether one tool answered, and why not when it did not. */
77
+ export interface DeviceInventorySource {
78
+ tool: DeviceInventoryTool;
79
+ ok: boolean;
80
+ /** The tool's own failure text, when it failed. */
81
+ detail?: string;
82
+ }
83
+ export interface DeviceInventoryResult {
84
+ /** The machine the slot runs on; every entry belongs to it. */
85
+ machine: string;
86
+ slotId: string;
87
+ devices: DeviceInventoryEntry[];
88
+ sources: DeviceInventorySource[];
89
+ /** When this inventory was collected. A cached read repeats the original time. */
90
+ collectedAt: string;
91
+ /** True when this result came from the per-machine cache rather than the tools. */
92
+ cached: boolean;
93
+ }
94
+ /**
95
+ * A re-target refused because the machine's inventory does not have the device.
96
+ *
97
+ * Typed rather than a bare string so a client can offer `nearest` as choices
98
+ * instead of reprinting a sentence.
99
+ */
100
+ export interface DeviceInventoryRefusal {
101
+ code: 'device-not-in-inventory';
102
+ machine: string;
103
+ key: DeviceInventoryKey;
104
+ identity: string;
105
+ /** Identities of the same key the machine does have, nearest first. */
106
+ nearest: string[];
107
+ reason: string;
108
+ }
109
+ /**
110
+ * Whether this inventory can say an identity of `key` does not exist.
111
+ *
112
+ * Two conditions, and both are load-bearing: the tool that answers for the key
113
+ * actually answered, AND that tool enumerates existence rather than current
114
+ * connectivity. Either one missing means silence proves nothing, and the caller
115
+ * must not refuse.
116
+ */
117
+ export declare function deviceInventoryCovers(sources: readonly DeviceInventorySource[], key: DeviceInventoryKey): boolean;
118
+ //# sourceMappingURL=device-inventory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-inventory.d.ts","sourceRoot":"","sources":["../../src/contracts/device-inventory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAE5E,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,6BAA8B,CAAC;AACtE,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAElF;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAC;AAEjF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,wCAAyC,CAAC;AAC7E,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,mDAAmD;AACnD,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,kBAAkB,EAAE,mBAAmB,CAKrF,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oCAAoC,EAAE,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAKpF,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,uBAAuB,CAAC;IAClC,sDAAsD;IACtD,GAAG,EAAE,kBAAkB,CAAC;IACxB,qFAAqF;IACrF,QAAQ,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,8DAA8D;AAC9D,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,yBAAyB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,kBAAkB,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,SAAS,qBAAqB,EAAE,EACzC,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAIT"}
@@ -0,0 +1,51 @@
1
+ /** Which provider family an entry belongs to. */
2
+ export const DEVICE_INVENTORY_PLATFORMS = ['ios', 'android'];
3
+ /**
4
+ * The tools an inventory is built from. Each answers for exactly the keys it
5
+ * knows, which is what makes a partial read usable: `simctl` being absent says
6
+ * nothing about whether an `avd` exists.
7
+ */
8
+ export const DEVICE_INVENTORY_TOOLS = ['simctl', 'adb', 'emulator'];
9
+ /** Which tool answers for a given identity key. */
10
+ export const DEVICE_INVENTORY_KEY_TOOL = {
11
+ simulator: 'simctl',
12
+ udid: 'simctl',
13
+ avd: 'emulator',
14
+ adb_serial: 'adb',
15
+ };
16
+ /**
17
+ * Whether a tool's silence about an identity is evidence that it does not
18
+ * EXIST, as opposed to evidence that it is not running right now.
19
+ *
20
+ * `simctl list devices` and `emulator -list-avds` enumerate what is installed,
21
+ * whatever state it is in, so an identity they omit does not exist. `adb
22
+ * devices -l` enumerates currently CONNECTED transports: an unplugged phone and
23
+ * an unbooted emulator are both absent from it, and booting them is exactly
24
+ * what the provider acquire would do. Treating that absence as nonexistence
25
+ * refused every legitimate re-target to a device that was not already up.
26
+ *
27
+ * So `adb_serial` is never refused on absence. The provider's own `adb
28
+ * get-state` remains the closed door behind it, as it was before this inventory
29
+ * existed.
30
+ */
31
+ export const DEVICE_INVENTORY_KEY_LISTS_EXISTENCE = {
32
+ simulator: true,
33
+ udid: true,
34
+ avd: true,
35
+ adb_serial: false,
36
+ };
37
+ /**
38
+ * Whether this inventory can say an identity of `key` does not exist.
39
+ *
40
+ * Two conditions, and both are load-bearing: the tool that answers for the key
41
+ * actually answered, AND that tool enumerates existence rather than current
42
+ * connectivity. Either one missing means silence proves nothing, and the caller
43
+ * must not refuse.
44
+ */
45
+ export function deviceInventoryCovers(sources, key) {
46
+ if (!DEVICE_INVENTORY_KEY_LISTS_EXISTENCE[key])
47
+ return false;
48
+ const tool = DEVICE_INVENTORY_KEY_TOOL[key];
49
+ return sources.some((source) => source.tool === tool && source.ok);
50
+ }
51
+ //# sourceMappingURL=device-inventory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-inventory.js","sourceRoot":"","sources":["../../src/contracts/device-inventory.ts"],"names":[],"mappings":"AAgBA,iDAAiD;AACjD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAAK,EAAE,SAAS,CAAU,CAAC;AAWtE;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAU,CAAC;AAG7E,mDAAmD;AACnD,MAAM,CAAC,MAAM,yBAAyB,GAAoD;IACxF,SAAS,EAAE,QAAQ;IACnB,IAAI,EAAE,QAAQ;IACd,GAAG,EAAE,UAAU;IACf,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAwC;IACvF,SAAS,EAAE,IAAI;IACf,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,IAAI;IACT,UAAU,EAAE,KAAK;CAClB,CAAC;AAgEF;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAyC,EACzC,GAAuB;IAEvB,IAAI,CAAC,oCAAoC,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7D,MAAM,IAAI,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AACrE,CAAC"}
@@ -52,6 +52,8 @@ export interface QueueItem {
52
52
  app?: string;
53
53
  /** Named prepare profile persisted for queued dispatch parity (ADR-037). */
54
54
  prepareProfile?: string;
55
+ /** ADR-054 resource posture preset carried from backlog dispatch settings to the run. */
56
+ waitPolicy?: import('./resource-posture.js').ResourcePostureWaitPolicy;
55
57
  model?: string;
56
58
  runner?: string;
57
59
  /** Worker scripted-runner config when runner='scripted'. */
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/contracts/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/contracts/dispatch.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,14 @@ export interface ExecutionTemplateCatalogOption extends ExecutionTemplateReferen
58
58
  /** Short guidance explaining when an operator should select this template. */
59
59
  description?: string;
60
60
  sourceKind: ExecutionTemplateSourceKind;
61
+ /**
62
+ * Source-level domain gate copied from the catalog source. Absent or empty
63
+ * means the source participates for every domain. Clients that filter a
64
+ * full catalog locally use this together with `labels`.
65
+ */
66
+ sourceDomains?: string[];
67
+ /** Present on unfiltered catalogs when a higher-precedence source claimed this id. */
68
+ shadowedBy?: string;
61
69
  }
62
70
  export interface UnavailableExecutionTemplateSource {
63
71
  id: string;
@@ -84,5 +92,7 @@ export interface ExecutionTemplateOptions {
84
92
  unavailableSources: UnavailableExecutionTemplateSource[];
85
93
  /** Sources dropped by the domain gate for this query — never silently hidden. */
86
94
  filteredSources: DomainRestrictedExecutionTemplateSource[];
95
+ /** Configured selection defaults from the project pack, when any exist. */
96
+ defaults?: ExecutionTemplateDefault[];
87
97
  }
88
98
  //# sourceMappingURL=execution-templates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"execution-templates.d.ts","sourceRoot":"","sources":["../../src/contracts/execution-templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution-templates.d.ts","sourceRoot":"","sources":["../../src/contracts/execution-templates.ts"],"names":[],"mappings":"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"}