@wildo-ai/platform-core-shared 1.1.10 → 1.1.12

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 (142) hide show
  1. package/dist/esm/core/resources/resources-operations.custom.shared.definitions.js.map +1 -1
  2. package/dist/esm/core/resources/resources-relationships.custom.shared.definitions.js.map +1 -1
  3. package/dist/esm/core/resources/resources-types.custom.shared.schemas.d.ts.map +1 -1
  4. package/dist/esm/core/resources/resources-types.custom.shared.schemas.js.map +1 -1
  5. package/dist/esm/dev-runtime/dependency-install-record.d.ts +111 -0
  6. package/dist/esm/dev-runtime/dependency-install-record.d.ts.map +1 -0
  7. package/dist/esm/dev-runtime/dependency-install-record.js +185 -0
  8. package/dist/esm/dev-runtime/dependency-install-record.js.map +1 -0
  9. package/dist/esm/dev-runtime/dev-runtime-command.d.ts +50 -0
  10. package/dist/esm/dev-runtime/dev-runtime-command.d.ts.map +1 -0
  11. package/dist/esm/dev-runtime/dev-runtime-command.js +147 -0
  12. package/dist/esm/dev-runtime/dev-runtime-command.js.map +1 -0
  13. package/dist/esm/dev-runtime/dev-runtime-processes.d.ts +47 -0
  14. package/dist/esm/dev-runtime/dev-runtime-processes.d.ts.map +1 -0
  15. package/dist/esm/dev-runtime/dev-runtime-processes.js +163 -0
  16. package/dist/esm/dev-runtime/dev-runtime-processes.js.map +1 -0
  17. package/dist/esm/dev-runtime/dev-runtime-signals.d.ts +54 -0
  18. package/dist/esm/dev-runtime/dev-runtime-signals.d.ts.map +1 -0
  19. package/dist/esm/dev-runtime/dev-runtime-signals.js +113 -0
  20. package/dist/esm/dev-runtime/dev-runtime-signals.js.map +1 -0
  21. package/dist/esm/dev-runtime/emitted-relative-specifiers.d.ts +14 -0
  22. package/dist/esm/dev-runtime/emitted-relative-specifiers.d.ts.map +1 -0
  23. package/dist/esm/dev-runtime/emitted-relative-specifiers.js +71 -0
  24. package/dist/esm/dev-runtime/emitted-relative-specifiers.js.map +1 -0
  25. package/dist/esm/dev-runtime/frontend-dev-runtime.d.ts +43 -0
  26. package/dist/esm/dev-runtime/frontend-dev-runtime.d.ts.map +1 -0
  27. package/dist/esm/dev-runtime/frontend-dev-runtime.js +42 -0
  28. package/dist/esm/dev-runtime/frontend-dev-runtime.js.map +1 -0
  29. package/dist/esm/dev-runtime/node-runtime-dev-supervisor.d.ts +233 -0
  30. package/dist/esm/dev-runtime/node-runtime-dev-supervisor.d.ts.map +1 -0
  31. package/dist/esm/dev-runtime/node-runtime-dev-supervisor.js +578 -0
  32. package/dist/esm/dev-runtime/node-runtime-dev-supervisor.js.map +1 -0
  33. package/dist/esm/dev-runtime/package-compile-loop.d.ts +125 -0
  34. package/dist/esm/dev-runtime/package-compile-loop.d.ts.map +1 -0
  35. package/dist/esm/dev-runtime/package-compile-loop.js +386 -0
  36. package/dist/esm/dev-runtime/package-compile-loop.js.map +1 -0
  37. package/dist/esm/dev-runtime.exports.d.ts +19 -0
  38. package/dist/esm/dev-runtime.exports.d.ts.map +1 -0
  39. package/dist/esm/dev-runtime.exports.js +19 -0
  40. package/dist/esm/dev-runtime.exports.js.map +1 -0
  41. package/dist/esm/index.d.ts +4 -0
  42. package/dist/esm/index.d.ts.map +1 -1
  43. package/dist/esm/index.js +4 -0
  44. package/dist/esm/index.js.map +1 -1
  45. package/dist/esm/runtime/application-backend-env.contracts.d.ts +16 -2
  46. package/dist/esm/runtime/application-backend-env.contracts.d.ts.map +1 -1
  47. package/dist/esm/runtime/application-backend-env.contracts.js +20 -1
  48. package/dist/esm/runtime/application-backend-env.contracts.js.map +1 -1
  49. package/dist/esm/runtime/application-worker-env.contracts.d.ts +14 -4
  50. package/dist/esm/runtime/application-worker-env.contracts.d.ts.map +1 -1
  51. package/dist/esm/runtime/application-worker-env.contracts.js +12 -0
  52. package/dist/esm/runtime/application-worker-env.contracts.js.map +1 -1
  53. package/dist/esm/runtime/backend-start-outcome.contracts.d.ts +27 -0
  54. package/dist/esm/runtime/backend-start-outcome.contracts.d.ts.map +1 -1
  55. package/dist/esm/runtime/backend-start-outcome.contracts.js +34 -0
  56. package/dist/esm/runtime/backend-start-outcome.contracts.js.map +1 -1
  57. package/dist/esm/runtime/frontend-settings-hub-wiring.contracts.d.ts +28 -0
  58. package/dist/esm/runtime/frontend-settings-hub-wiring.contracts.d.ts.map +1 -0
  59. package/dist/esm/runtime/frontend-settings-hub-wiring.contracts.js +35 -0
  60. package/dist/esm/runtime/frontend-settings-hub-wiring.contracts.js.map +1 -0
  61. package/dist/esm/runtime/http-server-env.contracts.d.ts +14 -1
  62. package/dist/esm/runtime/http-server-env.contracts.d.ts.map +1 -1
  63. package/dist/esm/runtime/http-server-env.contracts.js +13 -0
  64. package/dist/esm/runtime/http-server-env.contracts.js.map +1 -1
  65. package/dist/esm/runtime/local-dev-runtime-signals.contracts.d.ts +239 -0
  66. package/dist/esm/runtime/local-dev-runtime-signals.contracts.d.ts.map +1 -0
  67. package/dist/esm/runtime/local-dev-runtime-signals.contracts.js +256 -0
  68. package/dist/esm/runtime/local-dev-runtime-signals.contracts.js.map +1 -0
  69. package/dist/esm/runtime/runtime-topology.contracts.js.map +1 -1
  70. package/dist/esm/security/authorizations/roles.custom.shared.definitions.js.map +1 -1
  71. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.d.ts +362 -36
  72. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.d.ts.map +1 -1
  73. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.js +4 -3
  74. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.js.map +1 -1
  75. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.d.ts +400 -37
  76. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.d.ts.map +1 -1
  77. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.js +107 -1
  78. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.js.map +1 -1
  79. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.d.ts +26 -26
  80. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.d.ts.map +1 -1
  81. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.js +4 -3
  82. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.js.map +1 -1
  83. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.d.ts +33 -27
  84. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.d.ts.map +1 -1
  85. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.js +26 -2
  86. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.js.map +1 -1
  87. package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.d.ts +3 -3
  88. package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.d.ts.map +1 -1
  89. package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.js +30 -42
  90. package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.js.map +1 -1
  91. package/dist/esm/wildo-applications/wildo-applications.custom.shared.schemas.d.ts +9 -9
  92. package/dist/esm/wildo-applications/wildo-applications.custom.shared.schemas.js.map +1 -1
  93. package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.resources-config.schemas.js.map +1 -1
  94. package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.schemas.d.ts +7 -7
  95. package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.schemas.js.map +1 -1
  96. package/dist/esm/workbench/creation-drive.custom.shared.schemas.d.ts +52 -0
  97. package/dist/esm/workbench/creation-drive.custom.shared.schemas.d.ts.map +1 -0
  98. package/dist/esm/workbench/creation-drive.custom.shared.schemas.js +49 -0
  99. package/dist/esm/workbench/creation-drive.custom.shared.schemas.js.map +1 -0
  100. package/dist/esm/workbench/creation-journey-timeline.custom.shared.schemas.d.ts +183 -0
  101. package/dist/esm/workbench/creation-journey-timeline.custom.shared.schemas.d.ts.map +1 -0
  102. package/dist/esm/workbench/creation-journey-timeline.custom.shared.schemas.js +188 -0
  103. package/dist/esm/workbench/creation-journey-timeline.custom.shared.schemas.js.map +1 -0
  104. package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.d.ts.map +1 -1
  105. package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.js +76 -0
  106. package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.js.map +1 -1
  107. package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.d.ts +170 -7
  108. package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.d.ts.map +1 -1
  109. package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.js +177 -7
  110. package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.js.map +1 -1
  111. package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.d.ts +21 -3
  112. package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.d.ts.map +1 -1
  113. package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.js +7 -0
  114. package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.js.map +1 -1
  115. package/dist/esm/workbench/workbench-creation-dossier.custom.shared.schemas.d.ts.map +1 -1
  116. package/dist/esm/workbench/workbench-creation-dossier.custom.shared.schemas.js.map +1 -1
  117. package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.d.ts +611 -405
  118. package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.d.ts.map +1 -1
  119. package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.js +98 -17
  120. package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.js.map +1 -1
  121. package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.d.ts +821 -240
  122. package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.d.ts.map +1 -1
  123. package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.js +795 -41
  124. package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.js.map +1 -1
  125. package/dist/esm/workbench/workbench-domain-model.custom.shared.schemas.d.ts +34 -0
  126. package/dist/esm/workbench/workbench-domain-model.custom.shared.schemas.d.ts.map +1 -1
  127. package/dist/esm/workbench/workbench-domain-model.custom.shared.schemas.js +31 -0
  128. package/dist/esm/workbench/workbench-domain-model.custom.shared.schemas.js.map +1 -1
  129. package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.d.ts +14 -2
  130. package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.d.ts.map +1 -1
  131. package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.js +25 -3
  132. package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.js.map +1 -1
  133. package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.d.ts +353 -250
  134. package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.d.ts.map +1 -1
  135. package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.js +1 -0
  136. package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.js.map +1 -1
  137. package/dist/esm/workbench/workbench-resources.custom.shared.schemas.d.ts +34 -29
  138. package/dist/esm/workbench/workbench-resources.custom.shared.schemas.d.ts.map +1 -1
  139. package/dist/esm/workbench/workbench-resources.custom.shared.schemas.js +9 -5
  140. package/dist/esm/workbench/workbench-resources.custom.shared.schemas.js.map +1 -1
  141. package/dist/tsconfig.build.tsbuildinfo +1 -1
  142. package/package.json +13 -8
@@ -1,5 +1,5 @@
1
- import { ApplicationInterviewDepth, MetaWorkflow_ClarificationAction, MetaWorkflow_EvaluationVerdict } from '@wildo-ai/saas-models/meta-workflows';
2
- import { EngineCapability, HumanDecision_FieldKind } from '@wildo-ai/saas-models';
1
+ import { ApplicationInterviewDepth, MetaWorkflow_ClarificationAction, MetaWorkflow_ElicitationNonAnswer, MetaWorkflow_EvaluationVerdict } from '@wildo-ai/saas-models/meta-workflows';
2
+ import { AgentWorkShortfallKind, EngineCapability, FlowsActors_Status, HumanDecision_FieldKind } from '@wildo-ai/saas-models';
3
3
  import { z } from 'zod';
4
4
  import { WorkbenchSpecificationArtifactConcern } from './workbench-resources.custom.shared.schemas';
5
5
  /**
@@ -50,6 +50,8 @@ export declare enum WorkbenchCreationPlaneBehavior {
50
50
  /** The build lane's dispatch history, one row per attempt. */
51
51
  BUILD_DISPATCH_PLAN = "creation-plane.build-dispatch-plan",
52
52
  BUILD_DISPATCHES = "creation-plane.build-dispatches",
53
+ /** Everything the build knows about each task (#2530): its attempts, whose failures they were, what they cost, why it has not landed. */
54
+ BUILD_TASK_RECORDS = "creation-plane.build-task-records",
53
55
  /** The playbook runs suspended waiting on a person. */
54
56
  PLAYBOOK_RUNS = "creation-plane.playbook-runs",
55
57
  WAITING_PLAYBOOK_RUNS = "creation-plane.waiting-playbook-runs",
@@ -152,18 +154,13 @@ export declare enum WorkbenchBuildPlanTaskStatus {
152
154
  * stuck tasks, because "nothing can run, and here is why" is an answer.
153
155
  */
154
156
  export declare enum Workbench_BuildTaskStuckReason {
155
- /** It already ran, and its declared product is absent even from the working tree: fix the declaration or the work. */
156
- COMPLETED_UNLANDED = "completed_unlanded",
157
157
  /**
158
- * It already ran, and its declared product IS in the working tree but not committed. Landing means
159
- * committed because acceptance is a commit.
158
+ * It already ran, and its declared product is absent from the working tree: fix the declaration or the work.
160
159
  *
161
- * Under GUIDED that is the whole story, and the remedy is to review and commit what the run wrote.
162
- * Under the autonomy posture the loop has ALREADY tried to commit it (#1534), so reaching this state
163
- * means its accept REFUSED a path — carried changes from before the run, edited since, or not this
164
- * run's — and the companion's warning names which. The remedy is that refusal's, not a blind commit.
160
+ * There is no "written, awaiting a commit" reason (#3514): a task lands when its product is in the working tree and
161
+ * something checked it (#3204), and a commit is a build checkpoint that records, never a condition of landing.
165
162
  */
166
- COMPLETED_AWAITING_COMMIT = "completed_awaiting_commit",
163
+ COMPLETED_UNLANDED = "completed_unlanded",
167
164
  /** Its run suspended on a question nobody has answered; re-dispatching would abandon that session. */
168
165
  PARKED_AWAITING_ANSWER = "parked_awaiting_answer",
169
166
  /** It produces a governed document the engine catalog does not define, so no run can author it. */
@@ -180,8 +177,136 @@ export declare enum Workbench_BuildTaskStuckReason {
180
177
  * wave several tasks run at once, and the next selection must pass over one already being built,
181
178
  * or two agents would build the same task. Nobody's move: it clears when that run settles.
182
179
  */
183
- IN_FLIGHT = "in_flight"
180
+ IN_FLIGHT = "in_flight",
181
+ /**
182
+ * A live run of ANOTHER task may write one of the files this task's declared products are written to (#3204). Two runs
183
+ * writing one file in the shared worktree interfere: one overwrites the other, and the wave repairs it after the fact
184
+ * with a re-check or a re-run. So the wave's own selection passes over it for a ready task whose declared products
185
+ * meet nothing in flight. Only DECLARED products are compared; a shared file no product names (a module barrel, a
186
+ * registry) is still left to the after-the-fact repair. Nobody's move: it clears when that run settles.
187
+ */
188
+ CONTENDED = "contended",
189
+ /**
190
+ * Its latest run failed its checks while other runs of the wave were writing beside it, so the failure may be theirs
191
+ * (#3204): a sibling's half-written file turned a shared typecheck red, or left a package's compiled output stale so the
192
+ * check could not be asked at all. It is not dispatched again in the same wave, where it would meet the same tree: the
193
+ * wave's end re-runs its checks ALONE, a pass lands it and a failure offers it to the next wave. Measured on reference run
194
+ * 42621319676: two schema tasks re-dispatched five times in nine minutes, each failing on a sibling's red build, spent their
195
+ * attempt budget while their checks passed alone. Nobody's move: it clears when the wave ends.
196
+ */
197
+ AWAITING_ISOLATED_RECHECK = "awaiting_isolated_recheck",
198
+ /**
199
+ * A generation step whose landing check could not be ANSWERED right now (#3223): a schema-plan check that neither passed
200
+ * nor reported drift, a design-token block the CLI could not validate, a brand nobody could read. Not "not landed": it
201
+ * is UNKNOWN, so it is never dispatched — running it would either fail the same way or redo work that may well have
202
+ * landed (a companion restart re-ran a landed `design-system-brand` step this way). It clears on its own once the check
203
+ * answers; when it does not, the dispatch refusal names the check and the command that shows why.
204
+ */
205
+ LANDING_UNKNOWN = "landing_unknown",
206
+ /**
207
+ * A FOLLOW-UP the host derived from a reported gap (#3227), waiting for the creator's review before it runs: the
208
+ * autonomy posture (`one-source-of-truth.md` D5) keeps approving a result a person's act, and a follow-up is work the
209
+ * accepted plan never listed. `wildo build approve <ref>` lets it run; `wildo build close <ref> --declined` closes it.
210
+ * Never reached under the automatic posture, where follow-ups run as they are derived.
211
+ */
212
+ FOLLOW_UP_AWAITING_REVIEW = "follow_up_awaiting_review",
213
+ /**
214
+ * A generation step whose panel refused to seat expert charters older than their inputs (#3244): a build task changed
215
+ * what they read (the design system, say). Passed over so the rest of the plan proceeds, and offered again once the
216
+ * staffing step, `top_down.expert-personas`, has derived them again, which the build-dispatch step runs on its own
217
+ * (reference run 42218788356, where the refusal ended the build lane at 32 of 98 tasks). A charter a person edited is
218
+ * never derived again: its remedy is the hand edit.
219
+ */
220
+ STALE_EXPERT_CHARTERS = "stale_expert_charters"
184
221
  }
222
+ /**
223
+ * The stuck reasons that only WAIT for a live run to settle (#1528, #3204): progress, never a finding, and proof that a
224
+ * run is live. One set, so the dispatch's warning and the Home projection cannot disagree about which reasons mean it.
225
+ */
226
+ export declare const WORKBENCH_BUILD_TASK_STUCK_REASONS_WAITING_ON_A_LIVE_RUN: ReadonlySet<Workbench_BuildTaskStuckReason>;
227
+ /**
228
+ * The stuck reasons a RE-ARM releases (#2530): the task is held by its own runs, and the remedy is to fix why and put it
229
+ * back — `WorkbenchBuildPlanTasks_Operations.REARM` is offered for these and no other.
230
+ *
231
+ * - `completed_unlanded`: a completed run holds it through the loop guard, and a re-arm releases that run.
232
+ * - `attempts_exhausted`: its failed runs hold it through the attempt budget, and a re-arm releases them.
233
+ *
234
+ * Left out, each because a re-arm would be the wrong remedy: `parked_awaiting_answer` (a question waits), `in_flight` (a run is
235
+ * live), `no_document_blueprint` (no run can produce it), `landing_unknown` (nothing holds it but a check that has not
236
+ * answered yet).
237
+ */
238
+ export declare const WORKBENCH_REARMABLE_STUCK_REASONS: readonly Workbench_BuildTaskStuckReason[];
239
+ /**
240
+ * Whose failure a failed coding run was (#1581), as the run's output records it.
241
+ *
242
+ * TASK runs are counted against the task's attempt budget; HOST runs (the run could not be recorded, or the turn was
243
+ * taken away: a mid-turn kill, a provider's 529/429, an exhausted quota, an expired login, an operator's cancel) are
244
+ * forgiven up to a bound. Declared here rather than beside its producer (the companion's coding dispatch) for the reason
245
+ * `Workbench_BuildTaskStuckReason` gives: the workbench shows it per attempt (#2530), and a browser bundle cannot import
246
+ * the companion.
247
+ */
248
+ export declare enum CodingRunFailureAttribution {
249
+ /** The task's own failure: its checks went red, or its agent ran and failed at the work. Counted. */
250
+ TASK = "task",
251
+ /** The host's: it could not record the run, or the turn was taken away. Forgiven, up to a bound. */
252
+ HOST = "host"
253
+ }
254
+ /**
255
+ * WHY a build task was put back in the queue (#1535) — the one question a later reader of a re-arm asks.
256
+ *
257
+ * A re-arm keeps a task's run history and adds one fact to it, on the runs it releases: they no longer hold the task,
258
+ * and here is why. Declared here rather than beside its producer (the companion's build dispatch) because the workbench
259
+ * both offers the re-arm (`WorkbenchBuildPlanTasks_Operations.REARM`) and shows each attempt's reason (#2530), and a
260
+ * browser bundle cannot import the companion.
261
+ */
262
+ export declare enum BuildTaskRearmReason {
263
+ /** The landing check was wrong about this task, and has been corrected. */
264
+ PROBE_CORRECTED = "probe-corrected",
265
+ /** A defect outside the task made its product impossible to produce, and has been fixed. */
266
+ BLOCKING_DEFECT_FIXED = "blocking-defect-fixed",
267
+ /** Neither of the above: an operator judged the work should run again. The note says why. */
268
+ OPERATOR_JUDGEMENT = "operator-judgement",
269
+ /**
270
+ * The ENVIRONMENT failed the runs, not the task (#3236): the network or the machine went away (DNS lost, a connection
271
+ * cut, a sleep) and the runs the outage took are released. Distinct from `operator-judgement` so a later reader of the
272
+ * task's history sees that its failed attempts said nothing about the work.
273
+ */
274
+ ENVIRONMENT = "environment",
275
+ /**
276
+ * Set by the BUILD WAVE, never by a person (#2210): the run completed while other runs edited the same tree, and its
277
+ * declared product is missing from a file one of them also changed, so the loss is theirs rather than the task's. The
278
+ * wave re-arms the task and re-runs it alone, a bounded number of times (`MAXIMUM_INTERFERENCE_REARMS`).
279
+ * The run also carries the interference the wave found (`BuildTaskInterference`, companion-side).
280
+ *
281
+ * Like every re-arm it also releases the task's FAILED runs not yet re-armed, so the attempt budget starts afresh.
282
+ * Deliberate: the task did complete, so its earlier failures say nothing about whether the work can be done, and the
283
+ * interference bound still stops a task that keeps losing its product.
284
+ */
285
+ INTERFERED_BY_CONCURRENT_RUN = "interfered-by-concurrent-run"
286
+ }
287
+ /**
288
+ * How a build task a PERSON closed is accounted for (`wildo build close`, #3224, #3225, #3227) — the one question a reader
289
+ * of a closed task asks: what made it done, if anything did. A closure never makes a task's product true; it records that
290
+ * a person said it is done another way, or that a derived follow-up is not wanted. Declared here rather than beside its
291
+ * producer (the companion's build dispatch) because the workbench shows it on the task's record, and a browser bundle
292
+ * cannot import the companion.
293
+ */
294
+ export declare enum BuildTaskClosureKind {
295
+ /** Another task of the plan built what this one was for. It counts as landed while that task is landed. */
296
+ SATISFIED_BY_TASK = "satisfied_by_task",
297
+ /** A commit HEAD contains built it (a person's, a reconciliation's). It counts as landed while the closure is committed. */
298
+ SATISFIED_BY_COMMIT = "satisfied_by_commit",
299
+ /** A host-derived follow-up the creator declines: the gap it answers is not worked. Follow-ups only. */
300
+ DECLINED = "declined"
301
+ }
302
+ /**
303
+ * The reasons a PERSON may give (`wildo build rearm`, the companion's re-arm route, the workbench's `rearm` operation).
304
+ * The wave's own reason is left out: it asserts a measurement (a sibling changed the product's file during the run)
305
+ * that only the wave makes, and an operator choosing it would record a detection that never happened.
306
+ */
307
+ export declare const OPERATOR_BUILD_TASK_REARM_REASONS: readonly [BuildTaskRearmReason.PROBE_CORRECTED, BuildTaskRearmReason.BLOCKING_DEFECT_FIXED, BuildTaskRearmReason.OPERATOR_JUDGEMENT, BuildTaskRearmReason.ENVIRONMENT];
308
+ /** One of the reasons a person may give a re-arm. */
309
+ export type OperatorBuildTaskRearmReason = (typeof OPERATOR_BUILD_TASK_REARM_REASONS)[number];
185
310
  /**
186
311
  * How far one BUILD DISPATCH got — the whole of what `GET /build/dispatches` can honestly say.
187
312
  *
@@ -209,7 +334,10 @@ export declare enum Workbench_BuildTaskStuckReason {
209
334
  export declare enum Workbench_BuildDispatchPhase {
210
335
  /** Selected and handed to its executor; nothing has resolved yet. */
211
336
  SUBMITTED = "submitted",
212
- /** A coding run was admitted and is running. Its outcome is the durable actor-task row `codingTaskId`. */
337
+ /**
338
+ * A coding run was admitted. The phase names the HAND-OFF and stays ADMITTED however the run ends: how
339
+ * the run stands is `Workbench_BuildDispatch.runStatus`, read off the same execution row (#2523).
340
+ */
213
341
  ADMITTED = "admitted",
214
342
  /** A companion generation step ran to completion. */
215
343
  FINISHED = "finished",
@@ -225,34 +353,38 @@ export declare enum Workbench_BuildDispatchPhase {
225
353
  * row (`phase`, `computedAt`) because a resource row must be complete on its own.
226
354
  */
227
355
  export declare const Workbench_Playbook_Schema: z.ZodObject<{
228
- workbenchPlaybookId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
229
- playbookRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
230
- playbookVersion: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
231
- phase: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
232
- intent: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
233
- eligible: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
234
- unmet: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
235
- blockedOnlyBySequencing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
236
- requiresElicitation: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
237
- unansweredQuestionRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
238
- wouldReplace: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
239
- outputOwners: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
356
+ workbenchPlaybookId: z.ZodString;
357
+ playbookRef: z.ZodString;
358
+ playbookVersion: z.ZodString;
359
+ phase: z.ZodString;
360
+ intent: z.ZodString;
361
+ eligible: z.ZodBoolean;
362
+ unmet: z.ZodArray<z.ZodString>;
363
+ blockedOnlyBySequencing: z.ZodBoolean;
364
+ requiresElicitation: z.ZodBoolean;
365
+ unansweredQuestionRefs: z.ZodArray<z.ZodString>;
366
+ wouldReplace: z.ZodArray<z.ZodString>;
367
+ outputOwners: z.ZodArray<z.ZodObject<{
240
368
  family: z.ZodString;
241
369
  playbookRefs: z.ZodArray<z.ZodString>;
242
- }, z.core.$strip>>>;
243
- unresolvedPlaybookRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
244
- unlandableFamilies: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
245
- staleOutputs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
370
+ }, z.core.$strip>>;
371
+ unresolvedPlaybookRefs: z.ZodArray<z.ZodString>;
372
+ unlandableFamilies: z.ZodArray<z.ZodString>;
373
+ staleOutputs: z.ZodArray<z.ZodObject<{
246
374
  family: z.ZodString;
247
375
  changedInputs: z.ZodArray<z.ZodString>;
248
- }, z.core.$strip>>>;
249
- activeInLine: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<z.ZodBoolean>>;
250
- activationDetail: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<z.ZodString>>;
251
- openInstances: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<z.ZodArray<z.ZodObject<{
376
+ }, z.core.$strip>>;
377
+ activeInLine: z.ZodOptional<z.ZodBoolean>;
378
+ activationDetail: z.ZodOptional<z.ZodString>;
379
+ openInstances: z.ZodOptional<z.ZodArray<z.ZodObject<{
252
380
  instanceKey: z.ZodString;
253
381
  purpose: z.ZodString;
254
- }, z.core.$strip>>>>;
255
- computedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
382
+ }, z.core.$strip>>>;
383
+ inputFamilyIds: z.ZodArray<z.ZodString>;
384
+ preconditionFamilyIds: z.ZodArray<z.ZodString>;
385
+ conditionFamilyIds: z.ZodArray<z.ZodString>;
386
+ admittedPlaybookIds: z.ZodArray<z.ZodString>;
387
+ computedAt: z.ZodDate;
256
388
  }, z.core.$strip>;
257
389
  export type Workbench_Playbook = z.infer<typeof Workbench_Playbook_Schema>;
258
390
  /**
@@ -264,15 +396,33 @@ export type Workbench_Playbook = z.infer<typeof Workbench_Playbook_Schema>;
264
396
  * stays on the aspect row sharing the same `taskRef`.
265
397
  */
266
398
  export declare const Workbench_BuildPlanTask_Schema: z.ZodObject<{
267
- workbenchBuildPlanTaskId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
268
- taskRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
269
- objective: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
270
- targetKind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
271
- functionalTopic: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
272
- status: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchBuildPlanTaskStatus>>>;
273
- prerequisiteTaskRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
399
+ workbenchBuildPlanTaskId: z.ZodString;
400
+ taskRef: z.ZodString;
401
+ objective: z.ZodString;
402
+ targetKind: z.ZodString;
403
+ functionalTopic: z.ZodString;
404
+ status: z.ZodEnum<typeof WorkbenchBuildPlanTaskStatus>;
405
+ prerequisiteTaskRefs: z.ZodArray<z.ZodString>;
274
406
  }, z.core.$strip>;
275
407
  export type Workbench_BuildPlanTask = z.infer<typeof Workbench_BuildPlanTask_Schema>;
408
+ /**
409
+ * The BUILD PLAN view's `ref` (#2531): the plan drawn as a graph, a menubar destination beside the domain model. Its
410
+ * nodes are the build-plan tasks and its edges their prerequisites; a node opens the task's own page.
411
+ *
412
+ * It must not contain a dot, for the reason `WORKBENCH_DOMAIN_MODEL_VIEW_REF` records: the label lookup splits the
413
+ * whole `composite_views.<translationRef>.<key>` path on `.`.
414
+ */
415
+ export declare const WORKBENCH_BUILD_PLAN_VIEW_REF = "build-plan";
416
+ /** The label key the view's title and description hang off: the engine's `app.<ref>` derivation, restated. */
417
+ export declare const WORKBENCH_BUILD_PLAN_TRANSLATION_REF = "app.build-plan";
418
+ /**
419
+ * The PLAYBOOK MAP view's `ref` (#2531): the playbook catalog drawn as what unlocks what, a menubar destination beside
420
+ * the build plan. Its nodes are the playbooks and the families they name; its edges what each writes, reads, waits for
421
+ * and, as a composite, runs (the playbook row's declared edges, #2530). No dot, for the domain model's reason.
422
+ */
423
+ export declare const WORKBENCH_PLAYBOOK_MAP_VIEW_REF = "playbook-map";
424
+ /** The label key the view's title and description hang off: the engine's `app.<ref>` derivation, restated. */
425
+ export declare const WORKBENCH_PLAYBOOK_MAP_TRANSLATION_REF = "app.playbook-map";
276
426
  /**
277
427
  * One run's write record — the evidence lane behind every dispatch.
278
428
  *
@@ -281,28 +431,33 @@ export type Workbench_BuildPlanTask = z.infer<typeof Workbench_BuildPlanTask_Sch
281
431
  * every LIST.
282
432
  */
283
433
  export declare const Workbench_RunWriteRecord_Schema: z.ZodObject<{
284
- workbenchRunWriteRecordId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
285
- runId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
286
- playbookRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
287
- workbenchPlaybookId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
288
- workbenchTraceSessionId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
289
- at: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
290
- files: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
434
+ workbenchRunWriteRecordId: z.ZodString;
435
+ runId: z.ZodString;
436
+ playbookRef: z.ZodString;
437
+ workbenchPlaybookId: z.ZodString;
438
+ workbenchTraceSessionId: z.ZodNullable<z.ZodString>;
439
+ at: z.ZodDate;
440
+ files: z.ZodArray<z.ZodObject<{
291
441
  path: z.ZodString;
292
442
  existedBefore: z.ZodBoolean;
293
- }, z.core.$strip>>>;
294
- fileCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
295
- acceptedCommitSha: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
443
+ }, z.core.$strip>>;
444
+ fileCount: z.ZodNumber;
445
+ acceptedCommitSha: z.ZodNullable<z.ZodString>;
446
+ landingFailed: z.ZodBoolean;
447
+ failedLandingRemedies: z.ZodNullable<z.ZodObject<{
448
+ accept: z.ZodString;
449
+ revert: z.ZodString;
450
+ }, z.core.$strip>>;
296
451
  }, z.core.$strip>;
297
452
  export type Workbench_RunWriteRecord = z.infer<typeof Workbench_RunWriteRecord_Schema>;
298
453
  /** One execution-trace session — the queryable index the board links from. */
299
454
  export declare const Workbench_TraceSession_Schema: z.ZodObject<{
300
- workbenchTraceSessionId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
301
- sessionId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
302
- startedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
303
- label: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
304
- eventCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
305
- stepCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
455
+ workbenchTraceSessionId: z.ZodString;
456
+ sessionId: z.ZodString;
457
+ startedAt: z.ZodDate;
458
+ label: z.ZodNullable<z.ZodString>;
459
+ eventCount: z.ZodNumber;
460
+ stepCount: z.ZodNumber;
306
461
  }, z.core.$strip>;
307
462
  export type Workbench_TraceSession = z.infer<typeof Workbench_TraceSession_Schema>;
308
463
  /**
@@ -366,7 +521,18 @@ export declare enum WorkbenchDossierEntryStanding {
366
521
  * decided: the run treats it as a working hypothesis, and this standing is how the dossier lists it to revisit.
367
522
  * Changing it records the creator's own answer in its place.
368
523
  */
369
- ASSUMED = "assumed"
524
+ ASSUMED = "assumed",
525
+ /**
526
+ * The creator said the question does not concern this application, and why (#3437). Answered — nothing is
527
+ * blocked — and never filled in by a run. Changing it records an answer, or the other non-answer, in its place.
528
+ */
529
+ NOT_APPLICABLE = "not-applicable",
530
+ /**
531
+ * The creator said the question concerns this application and is not decided yet, and why (#3437). Nothing waits
532
+ * on it: the step runs and marks what rests on it as owed; a governed document shows the clause as owed. Listed
533
+ * to revisit, like an assumption.
534
+ */
535
+ DEFERRED = "deferred"
370
536
  }
371
537
  /**
372
538
  * Whether a CHOICE question's options can be offered right now — for a question whose options are
@@ -385,33 +551,33 @@ export declare enum WorkbenchDossierEntryOptionsState {
385
551
  ANSWER_NO_LONGER_OFFERED = "answer-no-longer-offered"
386
552
  }
387
553
  export declare const Workbench_GovernanceDocument_Schema: z.ZodObject<{
388
- workbenchGovernanceDocumentId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
389
- definitionRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
390
- askCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
391
- derivedFactRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
392
- openCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
393
- drafted: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
554
+ workbenchGovernanceDocumentId: z.ZodString;
555
+ definitionRef: z.ZodString;
556
+ askCount: z.ZodNumber;
557
+ derivedFactRefs: z.ZodArray<z.ZodString>;
558
+ openCount: z.ZodNumber;
559
+ drafted: z.ZodBoolean;
394
560
  }, z.core.$strip>;
395
561
  export type Workbench_GovernanceDocument = z.infer<typeof Workbench_GovernanceDocument_Schema>;
396
562
  export declare const Workbench_GovernanceQuestion_Schema: z.ZodObject<{
397
- workbenchGovernanceQuestionId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
398
- definitionRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
399
- questionRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
400
- factRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
401
- creatorPrompt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
402
- decisionPurpose: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
403
- answerKind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
404
- factAuthorityKind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
405
- allowsNotApplicable: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
406
- sensitivityRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
407
- semanticOptions: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
563
+ workbenchGovernanceQuestionId: z.ZodString;
564
+ definitionRef: z.ZodString;
565
+ questionRef: z.ZodString;
566
+ factRef: z.ZodString;
567
+ creatorPrompt: z.ZodString;
568
+ decisionPurpose: z.ZodString;
569
+ answerKind: z.ZodString;
570
+ factAuthorityKind: z.ZodString;
571
+ allowsNotApplicable: z.ZodBoolean;
572
+ sensitivityRef: z.ZodString;
573
+ semanticOptions: z.ZodArray<z.ZodObject<{
408
574
  optionRef: z.ZodString;
409
575
  creatorMeaning: z.ZodString;
410
- }, z.core.$strip>>>;
411
- standing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchDossierEntryStanding>>>;
412
- answerSummary: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
413
- answeredAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodDate>>;
414
- askedNow: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
576
+ }, z.core.$strip>>;
577
+ standing: z.ZodEnum<typeof WorkbenchDossierEntryStanding>;
578
+ answerSummary: z.ZodNullable<z.ZodString>;
579
+ answeredAt: z.ZodNullable<z.ZodDate>;
580
+ askedNow: z.ZodBoolean;
415
581
  }, z.core.$strip>;
416
582
  export type Workbench_GovernanceQuestion = z.infer<typeof Workbench_GovernanceQuestion_Schema>;
417
583
  /** The playbook resource's dispatch verbs. */
@@ -450,6 +616,13 @@ export declare enum WorkbenchBuildPlanTasks_Operations {
450
616
  * A non-ready task answers 409 naming what it waits on. Costs a coding run.
451
617
  */
452
618
  DISPATCH_TASK = "dispatch_task",
619
+ /**
620
+ * Put THIS task back in the queue once the reason it did not land is fixed (#1535, #2530): its completed runs that
621
+ * still hold it, and its failed runs not yet re-armed, stop counting, each recording why. Offered for a task held by
622
+ * either guard (`completed_unlanded`, `attempts_exhausted`); a task with no such run answers 409, since there is
623
+ * nothing to release. Runs nothing itself: the next dispatch offers the task again.
624
+ */
625
+ REARM = "rearm",
453
626
  /**
454
627
  * ACCEPT what this task's latest completed coding run wrote: commit exactly those paths, from the
455
628
  * coding-run write register, in one commit whose message names the task. Paths carrying another
@@ -523,6 +696,17 @@ export declare const Workbench_BuildPlanDispatchTaskRequest_Schema: z.ZodObject<
523
696
  conversationId: z.ZodOptional<z.ZodString>;
524
697
  }, z.core.$strip>;
525
698
  export type Workbench_BuildPlanDispatchTaskRequest = z.infer<typeof Workbench_BuildPlanDispatchTaskRequest_Schema>;
699
+ /** Why a build task goes back in the queue (#2530): a person's reason, and what was fixed. */
700
+ export declare const Workbench_BuildTaskRearmRequest_Schema: z.ZodObject<{
701
+ reason: z.ZodEnum<{
702
+ "probe-corrected": BuildTaskRearmReason.PROBE_CORRECTED;
703
+ "blocking-defect-fixed": BuildTaskRearmReason.BLOCKING_DEFECT_FIXED;
704
+ "operator-judgement": BuildTaskRearmReason.OPERATOR_JUDGEMENT;
705
+ environment: BuildTaskRearmReason.ENVIRONMENT;
706
+ }>;
707
+ note: z.ZodString;
708
+ }, z.core.$strip>;
709
+ export type Workbench_BuildTaskRearmRequest = z.infer<typeof Workbench_BuildTaskRearmRequest_Schema>;
526
710
  export declare const Workbench_AcceptChangesRequest_Schema: z.ZodObject<{
527
711
  force: z.ZodOptional<z.ZodBoolean>;
528
712
  }, z.core.$strip>;
@@ -557,16 +741,38 @@ export declare const Workbench_PlaybookRunOutcome_Schema: z.ZodObject<{
557
741
  note: z.ZodOptional<z.ZodString>;
558
742
  }, z.core.$loose>;
559
743
  export type Workbench_PlaybookRunOutcome = z.infer<typeof Workbench_PlaybookRunOutcome_Schema>;
744
+ /**
745
+ * How a build dispatch answers (#2531 review M1): the companion forwards its dispatch result as it is. One task run
746
+ * answers the task it dispatched (`plan`) and what started for it, a coding run's `admission` or the result of a
747
+ * `generationStep` the companion ran itself, exactly one of the two. A parallel `dispatch_next` answers the `wave` it
748
+ * started, with a `note`.
749
+ *
750
+ * There is no top-level `taskRef`. This schema declared one, which no answer ever carried, so the line saying what a run
751
+ * started was never shown and the raw answer opened in its place.
752
+ */
560
753
  export declare const Workbench_BuildPlanDispatchOutcome_Schema: z.ZodObject<{
561
- taskRef: z.ZodOptional<z.ZodString>;
754
+ plan: z.ZodOptional<z.ZodObject<{
755
+ taskRef: z.ZodString;
756
+ }, z.core.$loose>>;
757
+ admission: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
758
+ generationStep: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
759
+ wave: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
562
760
  note: z.ZodOptional<z.ZodString>;
563
761
  }, z.core.$loose>;
564
762
  export type Workbench_BuildPlanDispatchOutcome = z.infer<typeof Workbench_BuildPlanDispatchOutcome_Schema>;
763
+ /** How a re-arm answers: the runs it released, and the reason it recorded on them. */
764
+ export declare const Workbench_BuildTaskRearmOutcome_Schema: z.ZodObject<{
765
+ rearmedRunTaskIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
766
+ rearm: z.ZodOptional<z.ZodObject<{
767
+ reason: z.ZodEnum<typeof BuildTaskRearmReason>;
768
+ note: z.ZodString;
769
+ rearmedAt: z.ZodString;
770
+ }, z.core.$loose>>;
771
+ }, z.core.$loose>;
772
+ export type Workbench_BuildTaskRearmOutcome = z.infer<typeof Workbench_BuildTaskRearmOutcome_Schema>;
565
773
  export declare const Workbench_BuildPlanAddTaskOutcome_Schema: z.ZodObject<{
566
774
  taskRef: z.ZodOptional<z.ZodString>;
567
- /** TRUE when no plan existed and this task is its first. */
568
775
  createdPlan: z.ZodOptional<z.ZodBoolean>;
569
- /** Validator findings below the hard floor — worth telling the creator, never a refusal. */
570
776
  advisoryFindings: z.ZodOptional<z.ZodArray<z.ZodObject<{
571
777
  code: z.ZodString;
572
778
  taskRef: z.ZodString;
@@ -577,6 +783,7 @@ export declare const Workbench_BuildPlanAddTaskOutcome_Schema: z.ZodObject<{
577
783
  export type Workbench_BuildPlanAddTaskOutcome = z.infer<typeof Workbench_BuildPlanAddTaskOutcome_Schema>;
578
784
  /** How ACCEPT answers, for a task's coding run or a playbook run alike: what was committed, what was refused and why. */
579
785
  export declare const Workbench_AcceptChangesOutcome_Schema: z.ZodObject<{
786
+ alreadyCommitted: z.ZodOptional<z.ZodBoolean>;
580
787
  commitSha: z.ZodOptional<z.ZodString>;
581
788
  committedPaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
582
789
  refusedPaths: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -590,16 +797,12 @@ export type Workbench_AcceptChangesOutcome = z.infer<typeof Workbench_AcceptChan
590
797
  export declare const Workbench_RunWriteRevertOutcome_Schema: z.ZodObject<{
591
798
  runId: z.ZodOptional<z.ZodString>;
592
799
  reverted: z.ZodOptional<z.ZodArray<z.ZodString>>;
593
- /** Files whose current bytes differ from what the run wrote — refused by name, revertable with force. */
594
800
  refusedDiverged: z.ZodOptional<z.ZodArray<z.ZodString>>;
595
- /**
596
- * Files a LATER recorded run landed on (#1614): refused even under force, because the earlier bytes
597
- * would destroy that run's work. Each names the run to revert first (#1666).
598
- */
599
801
  refusedLaterRun: z.ZodOptional<z.ZodArray<z.ZodObject<{
600
802
  path: z.ZodString;
601
803
  runId: z.ZodString;
602
804
  }, z.core.$strip>>>;
805
+ refusedWithoutPreImage: z.ZodOptional<z.ZodArray<z.ZodString>>;
603
806
  note: z.ZodOptional<z.ZodString>;
604
807
  }, z.core.$loose>;
605
808
  export type Workbench_RunWriteRevertOutcome = z.infer<typeof Workbench_RunWriteRevertOutcome_Schema>;
@@ -635,45 +838,253 @@ export type Workbench_RunWriteRevertOutcome = z.infer<typeof Workbench_RunWriteR
635
838
  * on this row so the finished state can say how far it got.
636
839
  */
637
840
  export declare const Workbench_BuildDispatchPlan_Schema: z.ZodObject<{
638
- workbenchBuildDispatchPlanId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
639
- taskRef: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
640
- objective: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
641
- targetKind: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
642
- generationStepRef: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
643
- allowedPathPrefixes: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
644
- prohibitedPathPrefixes: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
645
- requiredChecks: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
646
- installedSkillRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
647
- readyTaskRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
648
- landedTaskRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
649
- unverifiableLandedTaskRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
650
- landedBeforeAnyRunTaskRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
651
- exhausted: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
652
- stuckTasks: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
841
+ workbenchBuildDispatchPlanId: z.ZodString;
842
+ taskRef: z.ZodNullable<z.ZodString>;
843
+ objective: z.ZodNullable<z.ZodString>;
844
+ targetKind: z.ZodNullable<z.ZodString>;
845
+ generationStepRef: z.ZodNullable<z.ZodString>;
846
+ allowedPathPrefixes: z.ZodArray<z.ZodString>;
847
+ prohibitedPathPrefixes: z.ZodArray<z.ZodString>;
848
+ requiredChecks: z.ZodArray<z.ZodString>;
849
+ installedSkillRefs: z.ZodArray<z.ZodString>;
850
+ readyTaskRefs: z.ZodArray<z.ZodString>;
851
+ landedTaskRefs: z.ZodArray<z.ZodString>;
852
+ unverifiableLandedTaskRefs: z.ZodArray<z.ZodString>;
853
+ landedBeforeAnyRunTaskRefs: z.ZodArray<z.ZodString>;
854
+ exhausted: z.ZodBoolean;
855
+ failingSpecificationModules: z.ZodArray<z.ZodString>;
856
+ specificationRepairOwed: z.ZodBoolean;
857
+ stuckTasks: z.ZodArray<z.ZodObject<{
653
858
  taskRef: z.ZodString;
654
- reason: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof Workbench_BuildTaskStuckReason>>;
859
+ reason: z.ZodEnum<typeof Workbench_BuildTaskStuckReason>;
655
860
  priorTaskId: z.ZodNullable<z.ZodString>;
656
- uncommittedPaths: z.ZodArray<z.ZodString>;
657
861
  question: z.ZodNullable<z.ZodString>;
658
862
  documentRef: z.ZodNullable<z.ZodString>;
659
- }, z.core.$strip>>>;
660
- taskCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
661
- landedCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
863
+ }, z.core.$strip>>;
864
+ taskCount: z.ZodNumber;
865
+ landedCount: z.ZodNumber;
662
866
  }, z.core.$strip>;
663
867
  export type Workbench_BuildDispatchPlan = z.infer<typeof Workbench_BuildDispatchPlan_Schema>;
664
868
  export declare const Workbench_BuildDispatch_Schema: z.ZodObject<{
665
- workbenchBuildDispatchId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
666
- taskRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
667
- objective: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
668
- phase: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof Workbench_BuildDispatchPhase>>>;
669
- startedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
670
- settledAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
671
- codingTaskId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
672
- error: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
673
- conversationId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
674
- accepted: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>>;
869
+ workbenchBuildDispatchId: z.ZodString;
870
+ taskRef: z.ZodString;
871
+ objective: z.ZodNullable<z.ZodString>;
872
+ phase: z.ZodEnum<typeof Workbench_BuildDispatchPhase>;
873
+ startedAt: z.ZodDate;
874
+ settledAt: z.ZodNullable<z.ZodDate>;
875
+ codingTaskId: z.ZodNullable<z.ZodString>;
876
+ error: z.ZodNullable<z.ZodString>;
877
+ failureAttribution: z.ZodNullable<z.ZodEnum<typeof CodingRunFailureAttribution>>;
878
+ conversationId: z.ZodNullable<z.ZodString>;
879
+ runStatus: z.ZodEnum<typeof FlowsActors_Status>;
880
+ runFinishedAt: z.ZodNullable<z.ZodDate>;
881
+ accepted: z.ZodNullable<z.ZodBoolean>;
675
882
  }, z.core.$strip>;
676
883
  export type Workbench_BuildDispatch = z.infer<typeof Workbench_BuildDispatch_Schema>;
884
+ /**
885
+ * One ATTEMPT at a build task (#2530): one actor execution, as the build's record reads it. A coding run, or a companion
886
+ * generation step (labels, migrations, translations).
887
+ */
888
+ export declare const Workbench_BuildTaskAttempt_Schema: z.ZodObject<{
889
+ runTaskId: z.ZodString;
890
+ startedAt: z.ZodDate;
891
+ settledAt: z.ZodNullable<z.ZodDate>;
892
+ status: z.ZodEnum<typeof FlowsActors_Status>;
893
+ generationStep: z.ZodBoolean;
894
+ refusedBeforeStart: z.ZodBoolean;
895
+ ranNothing: z.ZodBoolean;
896
+ failureAttribution: z.ZodNullable<z.ZodEnum<typeof CodingRunFailureAttribution>>;
897
+ interferenceSuspected: z.ZodBoolean;
898
+ rearmReason: z.ZodNullable<z.ZodEnum<typeof BuildTaskRearmReason>>;
899
+ rearmNote: z.ZodNullable<z.ZodString>;
900
+ error: z.ZodNullable<z.ZodString>;
901
+ costAmount: z.ZodNullable<z.ZodNumber>;
902
+ costCurrency: z.ZodNullable<z.ZodString>;
903
+ spendIsFloor: z.ZodBoolean;
904
+ totalTokens: z.ZodNullable<z.ZodNumber>;
905
+ filesChanged: z.ZodNullable<z.ZodNumber>;
906
+ failedCheckRefs: z.ZodArray<z.ZodString>;
907
+ outOfScopePaths: z.ZodArray<z.ZodString>;
908
+ interference: z.ZodNullable<z.ZodObject<{
909
+ overlappingTaskRefs: z.ZodArray<z.ZodString>;
910
+ contendedProductPaths: z.ZodArray<z.ZodString>;
911
+ requeued: z.ZodBoolean;
912
+ }, z.core.$strip>>;
913
+ }, z.core.$strip>;
914
+ export type Workbench_BuildTaskAttempt = z.infer<typeof Workbench_BuildTaskAttempt_Schema>;
915
+ /**
916
+ * What `wildo db diff --check` could tell the host about the resource model versus the accepted schema plan.
917
+ *
918
+ * THREE answers, not two. A boolean merged the two failures that lead to opposite places (found in review,
919
+ * 2026-09-13): DRIFTED means the migration step has work and must run first; UNANSWERABLE means the check did not
920
+ * report drift and did not pass — no accepted plan and an undeterminable store declaration, no built backend registry, a compiled model older than its
921
+ * sources (`assessCompiledModelCurrency`, #403: before it, a dead watcher's stale dist answered IN_SYNC and landed
922
+ * this step with drift on disk), a CLI that could not import
923
+ * it or could not be spawned, a timeout, a lockfile that fails strict parsing, or an ENGINE planner-contract
924
+ * mismatch (whose remedy is `wildo db generate --accept-planner-contract`, not a rebuild) — and
925
+ * running the step then only throws. Read as one "not in sync", an unanswerable check put a step that can
926
+ * only fail at the head of the build queue on every dispatch, so no other task could run.
927
+ *
928
+ * Only IN_SYNC ever lands the step: an unanswered question must not land a migration step either.
929
+ *
930
+ * Declared here rather than beside its producer (the companion's generation steps) because the workbench shows it on a
931
+ * step's record (#2530).
932
+ */
933
+ export declare enum SchemaPlanSyncState {
934
+ /** The model and the accepted plan agree: the migration step has landed. */
935
+ IN_SYNC = "in_sync",
936
+ /** The check ran and reported ungenerated changes: the migration step has work to do. */
937
+ DRIFTED = "drifted",
938
+ /** The check neither passed nor reported drift (see above for the causes); running the step now would refuse or fail. */
939
+ UNANSWERABLE = "unanswerable"
940
+ }
941
+ /**
942
+ * What `wildo design-tokens validate` could tell the host about the stylesheet's generated block.
943
+ *
944
+ * Three answers, for the reason {@link SchemaPlanSyncState} has three: the command exits non-zero for a
945
+ * stale block AND for every could-not-ask failure (a config that does not load, a stylesheet with no
946
+ * markers, a CLI that cannot start or times out), and the two lead to opposite places. STALE means the
947
+ * `design-tokens` step has work; UNANSWERABLE means running it would refuse or fail the same way, so the
948
+ * dispatch host passes over it while other work is ready.
949
+ *
950
+ * Declared here for the reason {@link SchemaPlanSyncState} is (#2530).
951
+ */
952
+ export declare enum DesignTokenBlockState {
953
+ /** The block is exactly what `generate` would write from the config. */
954
+ CURRENT = "current",
955
+ /** The block differs from what `generate` would write: the step has work. */
956
+ STALE = "stale",
957
+ /** The command neither confirmed nor refuted the block; running the step now would fail the same way. */
958
+ UNANSWERABLE = "unanswerable"
959
+ }
960
+ /**
961
+ * Does every module the brand step writes (the frontend's brand design, and the website's colours when a website is
962
+ * declared) say what the brand's visual tone now renders?
963
+ *
964
+ * Three answers, for the reason {@link DesignTokenBlockState} has three: STALE means the step has work and runs,
965
+ * UNANSWERABLE means the brand could not be read (the specifications do not evaluate, or this host has no
966
+ * introspection), and running the step then only throws, so the selector passes it over while other work is ready.
967
+ *
968
+ * Declared here for the reason {@link SchemaPlanSyncState} is (#2530).
969
+ */
970
+ export declare enum BrandDesignState {
971
+ /** Every module exists and equals the render of the brand's current visual tone. */
972
+ CURRENT = "current",
973
+ /** A module is absent or says something the brand no longer does. */
974
+ STALE = "stale",
975
+ /** The brand's visual tone could not be read, so currency cannot be decided either way. */
976
+ UNANSWERABLE = "unanswerable"
977
+ }
978
+ /** A landing probe the working tree does not satisfy (#2530, #3204): what landing searched for there, and what is missing. */
979
+ export declare const Workbench_BuildTaskUnmetProbe_Schema: z.ZodObject<{
980
+ paths: z.ZodArray<z.ZodString>;
981
+ declarations: z.ZodArray<z.ZodString>;
982
+ keyPrefix: z.ZodNullable<z.ZodString>;
983
+ shellSurface: z.ZodNullable<z.ZodString>;
984
+ shell: z.ZodNullable<z.ZodObject<{
985
+ unanswerable: z.ZodNullable<z.ZodString>;
986
+ missing: z.ZodArray<z.ZodString>;
987
+ declinedButPresent: z.ZodArray<z.ZodString>;
988
+ absentPaths: z.ZodArray<z.ZodString>;
989
+ }, z.core.$strip>>;
990
+ registered: z.ZodNullable<z.ZodObject<{
991
+ unanswerable: z.ZodNullable<z.ZodString>;
992
+ missing: z.ZodArray<z.ZodObject<{
993
+ kind: z.ZodEnum<typeof AgentWorkShortfallKind>;
994
+ ref: z.ZodString;
995
+ planned: z.ZodNullable<z.ZodString>;
996
+ registered: z.ZodNullable<z.ZodString>;
997
+ }, z.core.$strip>>;
998
+ absentPaths: z.ZodArray<z.ZodString>;
999
+ }, z.core.$strip>>;
1000
+ }, z.core.$strip>;
1001
+ export type Workbench_BuildTaskUnmetProbe = z.infer<typeof Workbench_BuildTaskUnmetProbe_Schema>;
1002
+ /**
1003
+ * Everything the build knows about ONE task, in one row (#2530, from the companion's per-task record, #1521).
1004
+ *
1005
+ * The case it exists for: "not landed" hid three facts — never dispatched, dispatched and FAILED, dispatched,
1006
+ * SUCCEEDED and unprovable — and they are three shapes here: no attempts; a failed attempt; a completed attempt with
1007
+ * unmet probes. Its id IS the build-plan task row's id, so a task's detail reads its record by the id it already has;
1008
+ * it is its own resource because reading attempts, classifying a stuck task and probing the tree is too much to pay on
1009
+ * every row of the task list.
1010
+ *
1011
+ * The attempts are read from the actor plane by ONE listing per coding system, bounded far above a whole build's runs;
1012
+ * `attemptsTruncated` says when that bound was met, so an early task's oldest runs may be missing and "never run" is not
1013
+ * claimed.
1014
+ */
1015
+ export declare const Workbench_BuildTaskRecord_Schema: z.ZodObject<{
1016
+ workbenchBuildTaskRecordId: z.ZodString;
1017
+ workbenchBuildPlanTaskId: z.ZodString;
1018
+ taskRef: z.ZodString;
1019
+ status: z.ZodEnum<typeof WorkbenchBuildPlanTaskStatus>;
1020
+ attemptCount: z.ZodNumber;
1021
+ attempts: z.ZodArray<z.ZodObject<{
1022
+ runTaskId: z.ZodString;
1023
+ startedAt: z.ZodDate;
1024
+ settledAt: z.ZodNullable<z.ZodDate>;
1025
+ status: z.ZodEnum<typeof FlowsActors_Status>;
1026
+ generationStep: z.ZodBoolean;
1027
+ refusedBeforeStart: z.ZodBoolean;
1028
+ ranNothing: z.ZodBoolean;
1029
+ failureAttribution: z.ZodNullable<z.ZodEnum<typeof CodingRunFailureAttribution>>;
1030
+ interferenceSuspected: z.ZodBoolean;
1031
+ rearmReason: z.ZodNullable<z.ZodEnum<typeof BuildTaskRearmReason>>;
1032
+ rearmNote: z.ZodNullable<z.ZodString>;
1033
+ error: z.ZodNullable<z.ZodString>;
1034
+ costAmount: z.ZodNullable<z.ZodNumber>;
1035
+ costCurrency: z.ZodNullable<z.ZodString>;
1036
+ spendIsFloor: z.ZodBoolean;
1037
+ totalTokens: z.ZodNullable<z.ZodNumber>;
1038
+ filesChanged: z.ZodNullable<z.ZodNumber>;
1039
+ failedCheckRefs: z.ZodArray<z.ZodString>;
1040
+ outOfScopePaths: z.ZodArray<z.ZodString>;
1041
+ interference: z.ZodNullable<z.ZodObject<{
1042
+ overlappingTaskRefs: z.ZodArray<z.ZodString>;
1043
+ contendedProductPaths: z.ZodArray<z.ZodString>;
1044
+ requeued: z.ZodBoolean;
1045
+ }, z.core.$strip>>;
1046
+ }, z.core.$strip>>;
1047
+ attemptsTruncated: z.ZodBoolean;
1048
+ stuckReason: z.ZodNullable<z.ZodEnum<typeof Workbench_BuildTaskStuckReason>>;
1049
+ stuckQuestion: z.ZodNullable<z.ZodString>;
1050
+ stuckDocumentRef: z.ZodNullable<z.ZodString>;
1051
+ waitingOnTaskRefs: z.ZodArray<z.ZodString>;
1052
+ unmetProbes: z.ZodArray<z.ZodObject<{
1053
+ paths: z.ZodArray<z.ZodString>;
1054
+ declarations: z.ZodArray<z.ZodString>;
1055
+ keyPrefix: z.ZodNullable<z.ZodString>;
1056
+ shellSurface: z.ZodNullable<z.ZodString>;
1057
+ shell: z.ZodNullable<z.ZodObject<{
1058
+ unanswerable: z.ZodNullable<z.ZodString>;
1059
+ missing: z.ZodArray<z.ZodString>;
1060
+ declinedButPresent: z.ZodArray<z.ZodString>;
1061
+ absentPaths: z.ZodArray<z.ZodString>;
1062
+ }, z.core.$strip>>;
1063
+ registered: z.ZodNullable<z.ZodObject<{
1064
+ unanswerable: z.ZodNullable<z.ZodString>;
1065
+ missing: z.ZodArray<z.ZodObject<{
1066
+ kind: z.ZodEnum<typeof AgentWorkShortfallKind>;
1067
+ ref: z.ZodString;
1068
+ planned: z.ZodNullable<z.ZodString>;
1069
+ registered: z.ZodNullable<z.ZodString>;
1070
+ }, z.core.$strip>>;
1071
+ absentPaths: z.ZodArray<z.ZodString>;
1072
+ }, z.core.$strip>>;
1073
+ }, z.core.$strip>>;
1074
+ schemaPlanSyncState: z.ZodNullable<z.ZodEnum<typeof SchemaPlanSyncState>>;
1075
+ designTokenBlockState: z.ZodNullable<z.ZodEnum<typeof DesignTokenBlockState>>;
1076
+ brandDesignState: z.ZodNullable<z.ZodEnum<typeof BrandDesignState>>;
1077
+ landingBlockedBy: z.ZodNullable<z.ZodString>;
1078
+ followUpTaskIds: z.ZodArray<z.ZodString>;
1079
+ followUpOfTaskId: z.ZodNullable<z.ZodString>;
1080
+ closureKind: z.ZodNullable<z.ZodEnum<typeof BuildTaskClosureKind>>;
1081
+ closureSatisfiedBy: z.ZodNullable<z.ZodString>;
1082
+ closureReason: z.ZodNullable<z.ZodString>;
1083
+ unverifiable: z.ZodBoolean;
1084
+ landedBeforeAnyRun: z.ZodBoolean;
1085
+ landedBeforeAnyRunPaths: z.ZodArray<z.ZodString>;
1086
+ }, z.core.$strip>;
1087
+ export type Workbench_BuildTaskRecord = z.infer<typeof Workbench_BuildTaskRecord_Schema>;
677
1088
  /**
678
1089
  * One playbook run SUSPENDED waiting on a person.
679
1090
  *
@@ -715,6 +1126,44 @@ export declare enum Workbench_PlaybookRunState {
715
1126
  */
716
1127
  AWAITING_ANSWER = "awaiting_answer"
717
1128
  }
1129
+ /**
1130
+ * One child of a composite run's round (#2530): the playbook that ran in it, why it was on the table, what it landed and
1131
+ * whether it failed — the record's own summary (`PlaybookRunChoreographyChildSummary`), with its measurement left on the
1132
+ * run's record. A child that was itself a LANE is known by the rounds that name it as their lane.
1133
+ */
1134
+ export declare const Workbench_PlaybookRunRoundChild_Schema: z.ZodObject<{
1135
+ playbookRef: z.ZodString;
1136
+ ranBecause: z.ZodNullable<z.ZodString>;
1137
+ reranOverLanding: z.ZodNullable<z.ZodBoolean>;
1138
+ landed: z.ZodArray<z.ZodString>;
1139
+ failure: z.ZodNullable<z.ZodString>;
1140
+ }, z.core.$strip>;
1141
+ export type Workbench_PlaybookRunRoundChild = z.infer<typeof Workbench_PlaybookRunRoundChild_Schema>;
1142
+ /**
1143
+ * One round of a composite run (#2530): the root's, or a nested lane's. FLAT rather than nested: a lane's rounds follow
1144
+ * the round whose child ran the lane and name it (`parentRoundKey`, `lanePlaybookRef`), so a process map nests them as
1145
+ * groups without a recursive contract, and every depth the record keeps reaches the row.
1146
+ *
1147
+ * The choreography's own stop reason (`PlaybookChoreographyStopReason`) is NOT here: it is a closed vocabulary of the
1148
+ * runtime, which this package does not depend on, and a raw code would render as words nobody authored. Each round's
1149
+ * `stopRationale` is the selector's own sentence for why that round ended the run; the reason code stays on the record.
1150
+ */
1151
+ export declare const Workbench_PlaybookRunRound_Schema: z.ZodObject<{
1152
+ roundKey: z.ZodString;
1153
+ parentRoundKey: z.ZodNullable<z.ZodString>;
1154
+ lanePlaybookRef: z.ZodNullable<z.ZodString>;
1155
+ iteration: z.ZodNumber;
1156
+ sameInputStateAsIteration: z.ZodNullable<z.ZodNumber>;
1157
+ stopRationale: z.ZodNullable<z.ZodString>;
1158
+ children: z.ZodArray<z.ZodObject<{
1159
+ playbookRef: z.ZodString;
1160
+ ranBecause: z.ZodNullable<z.ZodString>;
1161
+ reranOverLanding: z.ZodNullable<z.ZodBoolean>;
1162
+ landed: z.ZodArray<z.ZodString>;
1163
+ failure: z.ZodNullable<z.ZodString>;
1164
+ }, z.core.$strip>>;
1165
+ }, z.core.$strip>;
1166
+ export type Workbench_PlaybookRunRound = z.infer<typeof Workbench_PlaybookRunRound_Schema>;
718
1167
  /**
719
1168
  * One playbook run, in whatever state it is in.
720
1169
  *
@@ -722,57 +1171,69 @@ export declare enum Workbench_PlaybookRunState {
722
1171
  * that playbook and never a history of it.
723
1172
  */
724
1173
  export declare const Workbench_PlaybookRun_Schema: z.ZodObject<{
725
- workbenchPlaybookRunId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
726
- runId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
727
- playbookRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
728
- instanceKey: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
729
- traceSessionId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
730
- conversationId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
731
- state: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof Workbench_PlaybookRunState>>>;
732
- startedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
733
- finishedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
734
- ok: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>>;
735
- error: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
736
- completedIterations: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>>;
737
- checkpointedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
738
- awaitingFamily: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
739
- awaitingRound: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>>;
740
- judgeOverall: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof MetaWorkflow_EvaluationVerdict>>>>;
1174
+ workbenchPlaybookRunId: z.ZodString;
1175
+ runId: z.ZodNullable<z.ZodString>;
1176
+ playbookRef: z.ZodString;
1177
+ instanceKey: z.ZodNullable<z.ZodString>;
1178
+ traceSessionId: z.ZodNullable<z.ZodString>;
1179
+ conversationId: z.ZodNullable<z.ZodString>;
1180
+ state: z.ZodEnum<typeof Workbench_PlaybookRunState>;
1181
+ startedAt: z.ZodNullable<z.ZodDate>;
1182
+ finishedAt: z.ZodNullable<z.ZodDate>;
1183
+ ok: z.ZodNullable<z.ZodBoolean>;
1184
+ error: z.ZodNullable<z.ZodString>;
1185
+ completedIterations: z.ZodNullable<z.ZodNumber>;
1186
+ checkpointedAt: z.ZodNullable<z.ZodDate>;
1187
+ awaitingFamily: z.ZodNullable<z.ZodString>;
1188
+ awaitingRound: z.ZodNullable<z.ZodNumber>;
1189
+ judgeOverall: z.ZodNullable<z.ZodEnum<typeof MetaWorkflow_EvaluationVerdict>>;
741
1190
  judgeCriteria: z.ZodNullable<z.ZodArray<z.ZodObject<{
742
1191
  criterionRef: z.ZodString;
743
- verdict: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof MetaWorkflow_EvaluationVerdict>>;
1192
+ verdict: z.ZodEnum<typeof MetaWorkflow_EvaluationVerdict>;
744
1193
  rationale: z.ZodString;
745
1194
  }, z.core.$strip>>>;
746
1195
  judgeSkipped: z.ZodNullable<z.ZodString>;
1196
+ choreographyRounds: z.ZodNullable<z.ZodArray<z.ZodObject<{
1197
+ roundKey: z.ZodString;
1198
+ parentRoundKey: z.ZodNullable<z.ZodString>;
1199
+ lanePlaybookRef: z.ZodNullable<z.ZodString>;
1200
+ iteration: z.ZodNumber;
1201
+ sameInputStateAsIteration: z.ZodNullable<z.ZodNumber>;
1202
+ stopRationale: z.ZodNullable<z.ZodString>;
1203
+ children: z.ZodArray<z.ZodObject<{
1204
+ playbookRef: z.ZodString;
1205
+ ranBecause: z.ZodNullable<z.ZodString>;
1206
+ reranOverLanding: z.ZodNullable<z.ZodBoolean>;
1207
+ landed: z.ZodArray<z.ZodString>;
1208
+ failure: z.ZodNullable<z.ZodString>;
1209
+ }, z.core.$strip>>;
1210
+ }, z.core.$strip>>>;
747
1211
  }, z.core.$strip>;
748
1212
  export type Workbench_PlaybookRun = z.infer<typeof Workbench_PlaybookRun_Schema>;
749
1213
  export declare const Workbench_WaitingPlaybookRun_Schema: z.ZodObject<{
750
- workbenchWaitingPlaybookRunId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
751
- runId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
752
- readable: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
753
- playbookRef: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
754
- family: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
755
- suspendedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
756
- round: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>>;
757
- dryRun: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>>;
758
- requests: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
1214
+ workbenchWaitingPlaybookRunId: z.ZodString;
1215
+ runId: z.ZodString;
1216
+ readable: z.ZodBoolean;
1217
+ playbookRef: z.ZodNullable<z.ZodString>;
1218
+ family: z.ZodNullable<z.ZodString>;
1219
+ suspendedAt: z.ZodNullable<z.ZodDate>;
1220
+ round: z.ZodNullable<z.ZodNumber>;
1221
+ dryRun: z.ZodNullable<z.ZodBoolean>;
1222
+ requests: z.ZodArray<z.ZodObject<{
759
1223
  ref: z.ZodString;
760
1224
  question: z.ZodString;
761
1225
  why: z.ZodString;
762
1226
  kind: z.ZodString;
763
1227
  options: z.ZodArray<z.ZodString>;
764
- }, z.core.$strip>>>;
765
- routedToUserId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1228
+ }, z.core.$strip>>;
1229
+ routedToUserId: z.ZodNullable<z.ZodString>;
766
1230
  }, z.core.$strip>;
767
1231
  export type Workbench_WaitingPlaybookRun = z.infer<typeof Workbench_WaitingPlaybookRun_Schema>;
768
1232
  /**
769
- * One coding run PARKED on a question.
770
- *
771
- * It arrives inside the coding-agent status payload, which is a singleton and stays a companion
772
- * read. These do not: a parked question is identified by the task that parked on it, it persists
773
- * until somebody answers, and a queue of work waiting on a person is the last thing that should be
774
- * reachable only by reading a status blob.
1233
+ * The coding lane's one row id. Named, because the workbench links to the row from where the lane's trouble shows (an
1234
+ * attempt, a dispatch or a dispatch card the host failed, #2530) and the companion stamps it: two copies of the literal would be two ids.
775
1235
  */
1236
+ export declare const WORKBENCH_CODING_LANE_STATUS_ROW_ID = "coding-lane";
776
1237
  /**
777
1238
  * The coding lane's own posture — ONE row, always present.
778
1239
  *
@@ -795,15 +1256,15 @@ export type Workbench_WaitingPlaybookRun = z.infer<typeof Workbench_WaitingPlayb
795
1256
  * outstanding — which is why the parked queue has to be read beside it.
796
1257
  */
797
1258
  export declare const Workbench_CodingLaneStatus_Schema: z.ZodObject<{
798
- workbenchCodingLaneStatusId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
799
- codingAgentRegistered: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
800
- codingAgentProviderRef: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
801
- codingAgentSignedIn: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>>;
1259
+ workbenchCodingLaneStatusId: z.ZodString;
1260
+ codingAgentRegistered: z.ZodBoolean;
1261
+ codingAgentProviderRef: z.ZodNullable<z.ZodString>;
1262
+ codingAgentSignedIn: z.ZodNullable<z.ZodBoolean>;
802
1263
  codingAgentLoginDetail: z.ZodNullable<z.ZodString>;
803
1264
  codingAgentLoginRemedy: z.ZodNullable<z.ZodString>;
804
- activeRunTaskId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
805
- activeRunStartedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
806
- lockFilePath: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1265
+ activeRunTaskId: z.ZodNullable<z.ZodString>;
1266
+ activeRunStartedAt: z.ZodNullable<z.ZodDate>;
1267
+ lockFilePath: z.ZodNullable<z.ZodString>;
807
1268
  defaultTimeoutMs: z.ZodNumber;
808
1269
  hardMaxTimeoutMs: z.ZodNumber;
809
1270
  defaultMaxCapturedBytes: z.ZodNumber;
@@ -831,13 +1292,21 @@ export declare enum Workbench_ParkedCodingQuestionOptionRef {
831
1292
  }
832
1293
  /** The single field a parked run asks: the agent's own question, verbatim. */
833
1294
  export declare const WORKBENCH_PARKED_CODING_QUESTION_FIELD_REF = "answer";
1295
+ /**
1296
+ * One coding run PARKED on a question.
1297
+ *
1298
+ * It arrives inside the coding-agent status payload, which is a singleton and stays a companion
1299
+ * read. These do not: a parked question is identified by the task that parked on it, it persists
1300
+ * until somebody answers, and a queue of work waiting on a person is the last thing that should be
1301
+ * reachable only by reading a status blob.
1302
+ */
834
1303
  export declare const Workbench_ParkedCodingQuestion_Schema: z.ZodObject<{
835
- workbenchParkedCodingQuestionId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
836
- taskId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
837
- taskRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
838
- question: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
839
- parkedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
840
- resumable: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
1304
+ workbenchParkedCodingQuestionId: z.ZodString;
1305
+ taskId: z.ZodString;
1306
+ taskRef: z.ZodString;
1307
+ question: z.ZodString;
1308
+ parkedAt: z.ZodDate;
1309
+ resumable: z.ZodBoolean;
841
1310
  suspensionRef: z.ZodString;
842
1311
  }, z.core.$strip>;
843
1312
  export type Workbench_ParkedCodingQuestion = z.infer<typeof Workbench_ParkedCodingQuestion_Schema>;
@@ -850,34 +1319,36 @@ export type Workbench_ParkedCodingQuestion = z.infer<typeof Workbench_ParkedCodi
850
1319
  * surface can ASK it without a second read.
851
1320
  */
852
1321
  export declare const Workbench_DossierEntry_Schema: z.ZodObject<{
853
- workbenchDossierEntryId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
854
- playbookRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
855
- questionRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
856
- instanceKey: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
857
- instancePurpose: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
858
- question: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
859
- kind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
860
- options: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
861
- optionDetails: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
862
- position: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
863
- standing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchDossierEntryStanding>>>;
864
- optionsState: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchDossierEntryOptionsState>>>;
865
- value: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
866
- answeredAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodDate>>;
867
- answeredByRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
868
- shownOptionDetail: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
869
- playbookEligible: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
870
- askedNow: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
871
- affectsFamilies: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
872
- subject: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchSpecificationArtifactConcern>>>;
873
- outOfDate: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
874
- outOfDateStepRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
875
- sharedWithPlaybookRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
876
- askedInSimpleInterview: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
877
- proposable: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
878
- regulatedDomain: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
879
- assumptionRationale: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
880
- interviewDepth: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof ApplicationInterviewDepth>>>>;
1322
+ workbenchDossierEntryId: z.ZodString;
1323
+ playbookRef: z.ZodString;
1324
+ questionRef: z.ZodString;
1325
+ instanceKey: z.ZodNullable<z.ZodString>;
1326
+ instancePurpose: z.ZodNullable<z.ZodString>;
1327
+ question: z.ZodString;
1328
+ kind: z.ZodString;
1329
+ options: z.ZodArray<z.ZodString>;
1330
+ optionDetails: z.ZodArray<z.ZodString>;
1331
+ position: z.ZodNumber;
1332
+ standing: z.ZodEnum<typeof WorkbenchDossierEntryStanding>;
1333
+ optionsState: z.ZodEnum<typeof WorkbenchDossierEntryOptionsState>;
1334
+ value: z.ZodNullable<z.ZodString>;
1335
+ nonAnswerReason: z.ZodNullable<z.ZodString>;
1336
+ admittedNonAnswers: z.ZodArray<z.ZodEnum<typeof MetaWorkflow_ElicitationNonAnswer>>;
1337
+ answeredAt: z.ZodNullable<z.ZodDate>;
1338
+ answeredByRef: z.ZodNullable<z.ZodString>;
1339
+ shownOptionDetail: z.ZodNullable<z.ZodString>;
1340
+ playbookEligible: z.ZodBoolean;
1341
+ askedNow: z.ZodBoolean;
1342
+ affectsFamilies: z.ZodArray<z.ZodString>;
1343
+ subject: z.ZodEnum<typeof WorkbenchSpecificationArtifactConcern>;
1344
+ outOfDate: z.ZodBoolean;
1345
+ outOfDateStepRefs: z.ZodArray<z.ZodString>;
1346
+ sharedWithPlaybookRefs: z.ZodArray<z.ZodString>;
1347
+ askedInSimpleInterview: z.ZodBoolean;
1348
+ proposable: z.ZodBoolean;
1349
+ regulatedDomain: z.ZodBoolean;
1350
+ assumptionRationale: z.ZodNullable<z.ZodString>;
1351
+ interviewDepth: z.ZodNullable<z.ZodEnum<typeof ApplicationInterviewDepth>>;
881
1352
  }, z.core.$strip>;
882
1353
  export type Workbench_DossierEntry = z.infer<typeof Workbench_DossierEntry_Schema>;
883
1354
  /** The dossier resource's one write verb. */
@@ -927,7 +1398,6 @@ export declare const Workbench_DossierProposeOutcome_Schema: z.ZodObject<{
927
1398
  rationale: z.ZodString;
928
1399
  regulatedDomain: z.ZodBoolean;
929
1400
  }, z.core.$strip>>;
930
- /** Asked for, and nothing admissible came back — each with the last refusal. Ask these of the person. */
931
1401
  unproposed: z.ZodArray<z.ZodObject<{
932
1402
  questionRef: z.ZodString;
933
1403
  reason: z.ZodString;
@@ -943,19 +1413,24 @@ export declare const Workbench_DossierInterviewDepthOutcome_Schema: z.ZodObject<
943
1413
  packageRelativePath: z.ZodString;
944
1414
  }, z.core.$loose>;
945
1415
  export type Workbench_DossierInterviewDepthOutcome = z.infer<typeof Workbench_DossierInterviewDepthOutcome_Schema>;
1416
+ /**
1417
+ * An answer to a dossier question: a VALUE, or (#3439) a NON-ANSWER with its reason — never both, and one of the two.
1418
+ * The exclusivity and the admission are decided by the operation against the ROW (`admittedNonAnswers`), not here: a
1419
+ * cross-field refinement would hide the one sentence that says what to change behind a generic schema error.
1420
+ */
946
1421
  export declare const Workbench_DossierAnswerRequest_Schema: z.ZodObject<{
947
- value: z.ZodString;
1422
+ value: z.ZodOptional<z.ZodString>;
1423
+ nonAnswer: z.ZodOptional<z.ZodEnum<typeof MetaWorkflow_ElicitationNonAnswer>>;
1424
+ reason: z.ZodOptional<z.ZodString>;
948
1425
  assumed: z.ZodOptional<z.ZodBoolean>;
949
1426
  assumptionRationale: z.ZodOptional<z.ZodString>;
950
1427
  }, z.core.$strip>;
951
1428
  export type Workbench_DossierAnswerRequest = z.infer<typeof Workbench_DossierAnswerRequest_Schema>;
952
1429
  export declare const Workbench_DossierAnswerOutcome_Schema: z.ZodObject<{
953
- /** The answer as STORED (canonical for a `confirm`). */
954
- value: z.ZodString;
1430
+ value: z.ZodNullable<z.ZodString>;
1431
+ nonAnswer: z.ZodNullable<z.ZodEnum<typeof MetaWorkflow_ElicitationNonAnswer>>;
955
1432
  answeredAt: z.ZodString;
956
- /** The dossier file this landed in, package-relative. */
957
1433
  packageRelativePath: z.ZodString;
958
- /** The asking playbook's questions still unanswered after this one — empty means it can run. */
959
1434
  unansweredQuestionRefs: z.ZodArray<z.ZodString>;
960
1435
  }, z.core.$loose>;
961
1436
  export type Workbench_DossierAnswerOutcome = z.infer<typeof Workbench_DossierAnswerOutcome_Schema>;
@@ -995,16 +1470,62 @@ export declare enum WorkbenchCreationHomeLineKind {
995
1470
  RUN_INTERRUPTED = "run-interrupted",
996
1471
  /** A build dispatch finished or failed; `acceptable` says whether its writes wait to be committed. */
997
1472
  DISPATCH_SETTLED = "dispatch-settled",
1473
+ /**
1474
+ * A re-run inside a lane — a repair of a GAP, a refresh — FAILED while the family's earlier landing still stands
1475
+ * (#3213): a NON-FATAL repair failure, whether the re-run was refused or the environment failed it. The landing it would have replaced is what its consumers read, and the lane
1476
+ * went on with them (e.g. a refused build-decompose repair: the plan on disk still dispatches). `playbookRef` is the
1477
+ * re-run's playbook, `subject` its failure; the target is the lane's run. `failed` stays false, because nothing the
1478
+ * creation built is lost; the refusal is shown so it can be repaired when it matters.
1479
+ */
1480
+ REPAIR_FAILED_LANDING_STANDS = "repair-failed-landing-stands",
998
1481
  /**
999
1482
  * The coding agent's account hit its usage limit, and the build dispatches nothing until it resets
1000
1483
  * (#2388). `subject` is when the build resumes (`08:11 Europe/Paris`); the target is the dispatch that met
1001
1484
  * the limit. Shown only while the limit holds, so it disappears once the build has resumed.
1002
1485
  */
1003
1486
  CODING_AGENT_USAGE_LIMITED = "coding-agent-usage-limited",
1487
+ /**
1488
+ * The coding agent's provider ACCOUNT refused its turn: no credits left, a spend or usage limit, billing (#3204).
1489
+ * Distinct from {@link CODING_AGENT_USAGE_LIMITED}: nothing resets on its own, a PERSON adds credits or raises the
1490
+ * limit. The build holds and asks again every thirty minutes, charging no attempt, so a person who fixes the account
1491
+ * while a drive waits loses nothing; an unattended drive stops on it. `subject` is the refusal in the providers'
1492
+ * sentence (`describeModelProviderAccountRefusal`); the target is the dispatch that met it. Shown while the hold lasts.
1493
+ */
1494
+ CODING_AGENT_ACCOUNT_REFUSED = "coding-agent-account-refused",
1495
+ /**
1496
+ * A coding run lost the network, and no coding turn is admitted until a probe of the agent's API answers along the
1497
+ * agent's own route (#3236, #3262). `at` is when the loss was met, `taskRef` the task whose run met it, `subject` the
1498
+ * route the probe takes (`api.anthropic.com via proxy proxy.corp:3128`), absent when no route is known. Shown only
1499
+ * while the hold lasts; what ends it is the probe answering, a turn started after the loss succeeding, or
1500
+ * `wildo build rearm <task> --reason environment`.
1501
+ */
1502
+ CODING_AGENT_CONNECTIVITY_LOST = "coding-agent-connectivity-lost",
1503
+ /**
1504
+ * A verification check's command cannot be executed (#3423): `wildo`, say, is not on the companion's PATH, so every
1505
+ * task's check would fail the same way, and no coding turn is admitted. `subject` is the command, `taskRef` the task
1506
+ * whose run met it, `at` when. Nothing lifts it on its own: a person puts the command on PATH, and the next admission
1507
+ * looks it up first (or `wildo build rearm <task> --reason environment` ends it). Shown while the hold lasts; an
1508
+ * unattended drive stops on it.
1509
+ */
1510
+ VERIFICATION_TOOL_UNAVAILABLE = "verification-tool-unavailable",
1511
+ /**
1512
+ * A person CLOSED a build task (`wildo build close`, #3224, #3227): done another way, or a derived follow-up declined.
1513
+ * `at` is when, `taskRef` the task, `subject` the reason they gave. Shown so a reader of the build's history sees that a
1514
+ * person, not a probe, said the task is done.
1515
+ */
1516
+ BUILD_TASK_CLOSED = "build-task-closed",
1004
1517
  /** A playbook run suspended on questions only the creator can answer. */
1005
1518
  CLARIFICATION = "clarification",
1006
1519
  /** A coding run parked on a question the agent could not answer alone. */
1007
1520
  PARKED_QUESTION = "parked-question",
1521
+ /**
1522
+ * An interview still waiting on the creator whose answer would date work the next unattended round could run
1523
+ * (#3361): a step reading the creator's stated facts, which an answer given later re-derives. The round withholds
1524
+ * that work (`findReadersDatedByWaitingInterviews`), so this line is what moves it, and an unattended drive stops on
1525
+ * it. `playbookRef` is the interview's playbook, `subject` the steps it holds (refs, comma-separated); the target is
1526
+ * the interview's playbook. Not shown for a quick interview's questions an unattended round assumes (#2129).
1527
+ */
1528
+ INTERVIEW_DATES_NEXT_WORK = "interview-dates-next-work",
1008
1529
  /** A governed document the creator asked for (a draft exists) still needing a fact only they can give. */
1009
1530
  GOVERNANCE_DOCUMENT = "governance-document",
1010
1531
  /** The next READY build task of the dispatch plan. */
@@ -1012,13 +1533,42 @@ export declare enum WorkbenchCreationHomeLineKind {
1012
1533
  /**
1013
1534
  * The plan can run NOTHING: every ready task is stuck, and `stuckReason` says what unblocks it.
1014
1535
  *
1015
- * ASKED rather than SUGGESTION, because every reason is the creator's move — committing what a
1016
- * finished run wrote under GUIDED, or, under the autonomy posture where the loop commits (#1534),
1017
- * resolving the path its accept refused or correcting a declaration no run can satisfy.
1536
+ * ASKED rather than SUGGESTION, because every reason it is shown for is the creator's move — correcting a
1537
+ * declaration no run can satisfy, re-arming a task that spent its attempts, approving a follow-up. (A run's work
1538
+ * awaiting a commit was one until #3514: a task lands from the working tree since #3204.)
1018
1539
  * Without it the plan simply falls silent: `CONTINUE_THE_PLAN` is derived from the next ready task,
1019
1540
  * and a stuck queue has none (#1451, #1463).
1020
1541
  */
1021
1542
  UNBLOCK_THE_PLAN = "unblock-the-plan",
1543
+ /**
1544
+ * Nothing in the plan can run and it is not finished, because a specifications module fails (#3258). `subject` names the
1545
+ * modules. ASKED because the remedy is fixing the module, and without this line such a plan reads as nothing at all: no
1546
+ * next task, not finished, and no stuck task to explain it.
1547
+ */
1548
+ SPECIFICATION_FAULT_HOLDS_THE_PLAN = "specification-fault-holds-the-plan",
1549
+ /**
1550
+ * A FOLLOW-UP task landed while its latest completed run still reports a requirement unmet (#2583): advisory, never a
1551
+ * reason the loop stops. `taskRef` is the follow-up, `subject` names each requirement and what the run said is
1552
+ * missing. The door is running it again on purpose: `wildo build run <ref> --despite-landed --reason operator-judgement`.
1553
+ */
1554
+ FOLLOW_UP_LANDED_WITH_GAP = "follow-up-landed-with-gap",
1555
+ /**
1556
+ * Files a build task's coding runs left UNCOMMITTED that no automatic door will commit (#3267): a failed run's file a
1557
+ * retry refused, or a file dirty at a retry's baseline with what earlier failed runs left, and no run of the task live.
1558
+ * ASKED, because only a person can settle it: `taskRef` is the task, `subject` names each file and the runs whose
1559
+ * record holds it. The doors are `wildo build accept <ref> --leftovers` (commit, under those runs) and the discard
1560
+ * command `wildo build tasks` prints per file. Derived from the write register and the tree, so it disappears once
1561
+ * each file is committed or discarded.
1562
+ */
1563
+ RUN_LEFTOVER_UNCOMMITTED = "run-leftover-uncommitted",
1564
+ /**
1565
+ * A build task LANDED and something its landing does not cover is unfinished (#3285): a billing catalogue committed
1566
+ * while the backend does not enable billing, so nothing serves it. Advisory, a mark beside the landing and never a
1567
+ * reason anything stops. `taskRef` is the task, `subject` names each setting still to set and the file that holds it;
1568
+ * `wildo build tasks` prints what each needs first. Derived from the committed tree, so it disappears once the setting
1569
+ * is committed.
1570
+ */
1571
+ LANDED_WITH_ADVISORY = "landed-with-advisory",
1022
1572
  /** An eligible playbook whose output family is missing. */
1023
1573
  PRODUCE_MISSING = "produce-missing",
1024
1574
  /** An eligible playbook whose output is stale — derived before one of its inputs last changed. */
@@ -1034,19 +1584,19 @@ export declare enum WorkbenchCreationHomeLineKind {
1034
1584
  * companion serves unparseable by an older workbench.
1035
1585
  */
1036
1586
  export declare const Workbench_CreationHomeLine_Schema: z.ZodObject<{
1037
- workbenchCreationHomeLineId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1038
- section: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchCreationHomeSection>>>;
1039
- kind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchCreationHomeLineKind>>>;
1040
- at: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodDate>>;
1041
- playbookRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
1042
- taskRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
1043
- subject: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
1044
- failed: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
1045
- acceptable: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
1046
- needsAnswers: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
1047
- stuckReason: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof Workbench_BuildTaskStuckReason>>>>;
1048
- targetResourceType: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
1049
- targetResourceId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
1587
+ workbenchCreationHomeLineId: z.ZodString;
1588
+ section: z.ZodEnum<typeof WorkbenchCreationHomeSection>;
1589
+ kind: z.ZodEnum<typeof WorkbenchCreationHomeLineKind>;
1590
+ at: z.ZodNullable<z.ZodDate>;
1591
+ playbookRef: z.ZodNullable<z.ZodString>;
1592
+ taskRef: z.ZodNullable<z.ZodString>;
1593
+ subject: z.ZodNullable<z.ZodString>;
1594
+ failed: z.ZodBoolean;
1595
+ acceptable: z.ZodBoolean;
1596
+ needsAnswers: z.ZodBoolean;
1597
+ stuckReason: z.ZodNullable<z.ZodEnum<typeof Workbench_BuildTaskStuckReason>>;
1598
+ targetResourceType: z.ZodString;
1599
+ targetResourceId: z.ZodString;
1050
1600
  }, z.core.$strip>;
1051
1601
  export type Workbench_CreationHomeLine = z.infer<typeof Workbench_CreationHomeLine_Schema>;
1052
1602
  /**
@@ -1082,18 +1632,18 @@ export declare enum WorkbenchCreationOutcomeStatus {
1082
1632
  * well.
1083
1633
  */
1084
1634
  export declare const Workbench_CreationOutcome_Schema: z.ZodObject<{
1085
- workbenchCreationOutcomeId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1086
- outcome: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchCreationOutcome>>>;
1087
- status: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchCreationOutcomeStatus>>>;
1088
- position: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
1089
- familiesTotal: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
1090
- familiesLanded: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
1091
- familiesInvalid: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
1092
- familiesMissing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
1093
- familiesStale: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
1094
- tasksTotal: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodNumber>>;
1095
- tasksLanded: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodNumber>>;
1096
- unavailableRuntimes: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodArray<z.ZodString>>>;
1635
+ workbenchCreationOutcomeId: z.ZodString;
1636
+ outcome: z.ZodEnum<typeof WorkbenchCreationOutcome>;
1637
+ status: z.ZodEnum<typeof WorkbenchCreationOutcomeStatus>;
1638
+ position: z.ZodNumber;
1639
+ familiesTotal: z.ZodNumber;
1640
+ familiesLanded: z.ZodNumber;
1641
+ familiesInvalid: z.ZodNumber;
1642
+ familiesMissing: z.ZodNumber;
1643
+ familiesStale: z.ZodNumber;
1644
+ tasksTotal: z.ZodNullable<z.ZodNumber>;
1645
+ tasksLanded: z.ZodNullable<z.ZodNumber>;
1646
+ unavailableRuntimes: z.ZodNullable<z.ZodArray<z.ZodString>>;
1097
1647
  }, z.core.$strip>;
1098
1648
  export type Workbench_CreationOutcome = z.infer<typeof Workbench_CreationOutcome_Schema>;
1099
1649
  /** An operation that takes nothing. */
@@ -1109,6 +1659,7 @@ export declare const Workbench_RunWriteFileDiff_Schema: z.ZodObject<{
1109
1659
  existedBefore: z.ZodBoolean;
1110
1660
  diverged: z.ZodBoolean;
1111
1661
  diff: z.ZodString;
1662
+ binary: z.ZodOptional<z.ZodLiteral<true>>;
1112
1663
  }, z.core.$strip>;
1113
1664
  export type Workbench_RunWriteFileDiff = z.infer<typeof Workbench_RunWriteFileDiff_Schema>;
1114
1665
  export declare const Workbench_RunWriteDiff_Schema: z.ZodObject<{
@@ -1120,6 +1671,7 @@ export declare const Workbench_RunWriteDiff_Schema: z.ZodObject<{
1120
1671
  existedBefore: z.ZodBoolean;
1121
1672
  diverged: z.ZodBoolean;
1122
1673
  diff: z.ZodString;
1674
+ binary: z.ZodOptional<z.ZodLiteral<true>>;
1123
1675
  }, z.core.$strip>>;
1124
1676
  }, z.core.$strip>;
1125
1677
  export type Workbench_RunWriteDiff = z.infer<typeof Workbench_RunWriteDiff_Schema>;
@@ -1235,7 +1787,8 @@ export type Workbench_CodingRunCancelOutcome = z.infer<typeof Workbench_CodingRu
1235
1787
  * The governed document's one verb: LAND the facts a person established for it as the
1236
1788
  * `document-facts-authored` family. The row is the document; the body carries the governance scope,
1237
1789
  * the answers and, for a reviewed fact, the review — a per-question verb with a bare value could
1238
- * carry none of that, which is why the question resource has no write verb of its own.
1790
+ * carry none of that, which is why ANSWERING stays on the document. Deferring one question carries
1791
+ * only a reason and asserts nothing, so it is the question's own verb (`WorkbenchGovernanceQuestions_Operations`).
1239
1792
  */
1240
1793
  export declare enum WorkbenchGovernanceDocuments_Operations {
1241
1794
  LAND_FACTS = "land_facts"
@@ -1262,6 +1815,31 @@ export declare const Workbench_GovernanceFactsLandingRequest_Schema: z.ZodObject
1262
1815
  dryRun: z.ZodOptional<z.ZodBoolean>;
1263
1816
  }, z.core.$strip>;
1264
1817
  export type Workbench_GovernanceFactsLandingRequest = z.infer<typeof Workbench_GovernanceFactsLandingRequest_Schema>;
1818
+ /**
1819
+ * The governance question's one verb (#3439): DEFER it — the person says the fact concerns this application and is not
1820
+ * decided yet, and why. A dossier write (`deferredDocumentFacts`), never a fact declaration, so the fact stays absent
1821
+ * and every clause resting on it stays owed. It names no governance scope and records no review, which is why it can be
1822
+ * a per-question verb while answering cannot (see {@link WorkbenchGovernanceDocuments_Operations}).
1823
+ */
1824
+ export declare enum WorkbenchGovernanceQuestions_Operations {
1825
+ DEFER = "defer"
1826
+ }
1827
+ /**
1828
+ * Whether a governance question in this standing may be DEFERRED (#3439): one still needed, and one already deferred
1829
+ * (re-deferring rewords the reason). A fact the product establishes is read, never deferred; and an ANSWERED fact is
1830
+ * not either, because a landed declaration wins over a deferral of the same fact (`deriveOpenGovernanceQuestions`), so
1831
+ * the deferral would change nothing anyone sees. The ONE predicate the operation refuses by and the workbench offers by.
1832
+ */
1833
+ export declare function governanceQuestionAdmitsDeferral(standing: WorkbenchDossierEntryStanding): boolean;
1834
+ export declare const Workbench_GovernanceQuestionDeferRequest_Schema: z.ZodObject<{
1835
+ reason: z.ZodString;
1836
+ }, z.core.$strip>;
1837
+ export type Workbench_GovernanceQuestionDeferRequest = z.infer<typeof Workbench_GovernanceQuestionDeferRequest_Schema>;
1838
+ export declare const Workbench_GovernanceQuestionDeferOutcome_Schema: z.ZodObject<{
1839
+ factRef: z.ZodString;
1840
+ packageRelativePath: z.ZodString;
1841
+ }, z.core.$loose>;
1842
+ export type Workbench_GovernanceQuestionDeferOutcome = z.infer<typeof Workbench_GovernanceQuestionDeferOutcome_Schema>;
1265
1843
  export declare const Workbench_GovernanceFactsLandingOutcome_Schema: z.ZodObject<{
1266
1844
  family: z.ZodString;
1267
1845
  packageRelativePath: z.ZodString;
@@ -1288,7 +1866,10 @@ export declare enum ApplicationSecretStanding {
1288
1866
  NEEDED = "needed",
1289
1867
  /** It has a value in this environment, and something reads it. */
1290
1868
  SET = "set",
1291
- /** Unset, and nothing waits for it: an optional key, or a capability another provider already serves. */
1869
+ /**
1870
+ * Unset, and nothing waits for it: an optional key, or a capability another provider already serves, ready, in every
1871
+ * runtime that would use this key for it (a provider ready in the backend serves nothing to the companion, #2985).
1872
+ */
1292
1873
  AVAILABLE = "available",
1293
1874
  /**
1294
1875
  * It has a value, and nothing CONSUMES it: a provider key no provider declares, a system-of-record key
@@ -1364,17 +1945,17 @@ export declare function splitApplicationSecretRowId(rowId: string): {
1364
1945
  * secrets section. Names and standings only: a value never enters this row, in either direction of the wire.
1365
1946
  */
1366
1947
  export declare const Workbench_ApplicationSecret_Schema: z.ZodObject<{
1367
- workbenchApplicationSecretId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1368
- environmentName: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
1369
- envVarName: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
1370
- standing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof ApplicationSecretStanding>>>;
1371
- kind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof ApplicationSecretKind>>>;
1372
- ownerRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
1948
+ workbenchApplicationSecretId: z.ZodString;
1949
+ environmentName: z.ZodString;
1950
+ envVarName: z.ZodString;
1951
+ standing: z.ZodEnum<typeof ApplicationSecretStanding>;
1952
+ kind: z.ZodEnum<typeof ApplicationSecretKind>;
1953
+ ownerRef: z.ZodNullable<z.ZodString>;
1373
1954
  description: z.ZodNullable<z.ZodString>;
1374
- capabilities: z.ZodArray<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof EngineCapability>>>;
1955
+ capabilities: z.ZodArray<z.ZodEnum<typeof EngineCapability>>;
1375
1956
  runtimes: z.ZodArray<z.ZodString>;
1376
1957
  creationEssential: z.ZodBoolean;
1377
- remoteLevel: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof ApplicationSecretRemoteLevel>>>;
1958
+ remoteLevel: z.ZodNullable<z.ZodEnum<typeof ApplicationSecretRemoteLevel>>;
1378
1959
  }, z.core.$strip>;
1379
1960
  export type Workbench_ApplicationSecret = z.infer<typeof Workbench_ApplicationSecret_Schema>;
1380
1961
  /** The secret row's two verbs. Both run `wildo secrets set/unset`, which is the only writer of a secret. */
@@ -1388,7 +1969,7 @@ export declare enum WorkbenchApplicationSecrets_Operations {
1388
1969
  UNSET = "unset"
1389
1970
  }
1390
1971
  export declare const Workbench_ApplicationSecretSetRequest_Schema: z.ZodObject<{
1391
- value: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1972
+ value: z.ZodString;
1392
1973
  }, z.core.$strip>;
1393
1974
  export type Workbench_ApplicationSecretSetRequest = z.infer<typeof Workbench_ApplicationSecretSetRequest_Schema>;
1394
1975
  /**
@@ -1402,7 +1983,7 @@ export type Workbench_ApplicationSecretSetRequest = z.infer<typeof Workbench_App
1402
1983
  */
1403
1984
  export declare const Workbench_ApplicationSecretChangeOutcome_Schema: z.ZodObject<{
1404
1985
  envVarName: z.ZodString;
1405
- kind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof ApplicationSecretKind>>;
1986
+ kind: z.ZodEnum<typeof ApplicationSecretKind>;
1406
1987
  envName: z.ZodString;
1407
1988
  restartSignalledRuntimes: z.ZodArray<z.ZodString>;
1408
1989
  envFilesRegenerated: z.ZodBoolean;