@wildo-ai/platform-core-shared 1.1.11 → 1.1.13

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.d.ts.map +1 -1
  2. package/dist/esm/core/resources/resources-operations.custom.shared.definitions.js.map +1 -1
  3. package/dist/esm/core/resources/resources-relationships.custom.shared.definitions.d.ts.map +1 -1
  4. package/dist/esm/core/resources/resources-relationships.custom.shared.definitions.js.map +1 -1
  5. package/dist/esm/core/resources/resources-types.custom.shared.schemas.d.ts.map +1 -1
  6. package/dist/esm/core/resources/resources-types.custom.shared.schemas.js.map +1 -1
  7. package/dist/esm/dev-runtime/dependency-install-record.d.ts +111 -0
  8. package/dist/esm/dev-runtime/dependency-install-record.d.ts.map +1 -0
  9. package/dist/esm/dev-runtime/dependency-install-record.js +185 -0
  10. package/dist/esm/dev-runtime/dependency-install-record.js.map +1 -0
  11. package/dist/esm/dev-runtime/dev-runtime-command.d.ts +50 -0
  12. package/dist/esm/dev-runtime/dev-runtime-command.d.ts.map +1 -0
  13. package/dist/esm/dev-runtime/dev-runtime-command.js +147 -0
  14. package/dist/esm/dev-runtime/dev-runtime-command.js.map +1 -0
  15. package/dist/esm/dev-runtime/dev-runtime-processes.d.ts +47 -0
  16. package/dist/esm/dev-runtime/dev-runtime-processes.d.ts.map +1 -0
  17. package/dist/esm/dev-runtime/dev-runtime-processes.js +163 -0
  18. package/dist/esm/dev-runtime/dev-runtime-processes.js.map +1 -0
  19. package/dist/esm/dev-runtime/dev-runtime-signals.d.ts +54 -0
  20. package/dist/esm/dev-runtime/dev-runtime-signals.d.ts.map +1 -0
  21. package/dist/esm/dev-runtime/dev-runtime-signals.js +113 -0
  22. package/dist/esm/dev-runtime/dev-runtime-signals.js.map +1 -0
  23. package/dist/esm/dev-runtime/emitted-relative-specifiers.d.ts +14 -0
  24. package/dist/esm/dev-runtime/emitted-relative-specifiers.d.ts.map +1 -0
  25. package/dist/esm/dev-runtime/emitted-relative-specifiers.js +71 -0
  26. package/dist/esm/dev-runtime/emitted-relative-specifiers.js.map +1 -0
  27. package/dist/esm/dev-runtime/frontend-dev-runtime.d.ts +43 -0
  28. package/dist/esm/dev-runtime/frontend-dev-runtime.d.ts.map +1 -0
  29. package/dist/esm/dev-runtime/frontend-dev-runtime.js +42 -0
  30. package/dist/esm/dev-runtime/frontend-dev-runtime.js.map +1 -0
  31. package/dist/esm/dev-runtime/node-runtime-dev-supervisor.d.ts +233 -0
  32. package/dist/esm/dev-runtime/node-runtime-dev-supervisor.d.ts.map +1 -0
  33. package/dist/esm/dev-runtime/node-runtime-dev-supervisor.js +578 -0
  34. package/dist/esm/dev-runtime/node-runtime-dev-supervisor.js.map +1 -0
  35. package/dist/esm/dev-runtime/package-compile-loop.d.ts +125 -0
  36. package/dist/esm/dev-runtime/package-compile-loop.d.ts.map +1 -0
  37. package/dist/esm/dev-runtime/package-compile-loop.js +386 -0
  38. package/dist/esm/dev-runtime/package-compile-loop.js.map +1 -0
  39. package/dist/esm/dev-runtime.exports.d.ts +19 -0
  40. package/dist/esm/dev-runtime.exports.d.ts.map +1 -0
  41. package/dist/esm/dev-runtime.exports.js +19 -0
  42. package/dist/esm/dev-runtime.exports.js.map +1 -0
  43. package/dist/esm/index.d.ts +4 -0
  44. package/dist/esm/index.d.ts.map +1 -1
  45. package/dist/esm/index.js +4 -0
  46. package/dist/esm/index.js.map +1 -1
  47. package/dist/esm/runtime/application-backend-env.contracts.d.ts +9 -2
  48. package/dist/esm/runtime/application-backend-env.contracts.d.ts.map +1 -1
  49. package/dist/esm/runtime/application-backend-env.contracts.js +8 -1
  50. package/dist/esm/runtime/application-backend-env.contracts.js.map +1 -1
  51. package/dist/esm/runtime/application-worker-env.contracts.d.ts +11 -3
  52. package/dist/esm/runtime/application-worker-env.contracts.d.ts.map +1 -1
  53. package/dist/esm/runtime/application-worker-env.contracts.js +9 -0
  54. package/dist/esm/runtime/application-worker-env.contracts.js.map +1 -1
  55. package/dist/esm/runtime/backend-start-outcome.contracts.d.ts +27 -0
  56. package/dist/esm/runtime/backend-start-outcome.contracts.d.ts.map +1 -1
  57. package/dist/esm/runtime/backend-start-outcome.contracts.js +34 -0
  58. package/dist/esm/runtime/backend-start-outcome.contracts.js.map +1 -1
  59. package/dist/esm/runtime/frontend-settings-hub-wiring.contracts.d.ts +28 -0
  60. package/dist/esm/runtime/frontend-settings-hub-wiring.contracts.d.ts.map +1 -0
  61. package/dist/esm/runtime/frontend-settings-hub-wiring.contracts.js +35 -0
  62. package/dist/esm/runtime/frontend-settings-hub-wiring.contracts.js.map +1 -0
  63. package/dist/esm/runtime/http-server-env.contracts.d.ts +14 -1
  64. package/dist/esm/runtime/http-server-env.contracts.d.ts.map +1 -1
  65. package/dist/esm/runtime/http-server-env.contracts.js +13 -0
  66. package/dist/esm/runtime/http-server-env.contracts.js.map +1 -1
  67. package/dist/esm/runtime/local-dev-runtime-signals.contracts.d.ts +239 -0
  68. package/dist/esm/runtime/local-dev-runtime-signals.contracts.d.ts.map +1 -0
  69. package/dist/esm/runtime/local-dev-runtime-signals.contracts.js +256 -0
  70. package/dist/esm/runtime/local-dev-runtime-signals.contracts.js.map +1 -0
  71. package/dist/esm/runtime/runtime-topology.contracts.d.ts.map +1 -1
  72. package/dist/esm/runtime/runtime-topology.contracts.js.map +1 -1
  73. package/dist/esm/security/authorizations/roles.custom.shared.definitions.d.ts.map +1 -1
  74. package/dist/esm/security/authorizations/roles.custom.shared.definitions.js.map +1 -1
  75. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.d.ts +112 -104
  76. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.d.ts.map +1 -1
  77. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.js +4 -3
  78. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.js.map +1 -1
  79. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.d.ts +112 -104
  80. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.d.ts.map +1 -1
  81. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.js.map +1 -1
  82. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.d.ts +24 -34
  83. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.d.ts.map +1 -1
  84. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.js +4 -3
  85. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.js.map +1 -1
  86. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.d.ts +24 -34
  87. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.d.ts.map +1 -1
  88. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.js.map +1 -1
  89. package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.d.ts +3 -3
  90. package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.d.ts.map +1 -1
  91. package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.js +30 -42
  92. package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.js.map +1 -1
  93. package/dist/esm/wildo-applications/wildo-applications.custom.shared.schemas.d.ts +9 -9
  94. package/dist/esm/wildo-applications/wildo-applications.custom.shared.schemas.d.ts.map +1 -1
  95. package/dist/esm/wildo-applications/wildo-applications.custom.shared.schemas.js.map +1 -1
  96. package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.resources-config.schemas.d.ts.map +1 -1
  97. package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.resources-config.schemas.js.map +1 -1
  98. package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.schemas.d.ts +7 -7
  99. package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.schemas.d.ts.map +1 -1
  100. package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.schemas.js.map +1 -1
  101. package/dist/esm/workbench/creation-drive.custom.shared.schemas.d.ts +82 -0
  102. package/dist/esm/workbench/creation-drive.custom.shared.schemas.d.ts.map +1 -0
  103. package/dist/esm/workbench/creation-drive.custom.shared.schemas.js +73 -0
  104. package/dist/esm/workbench/creation-drive.custom.shared.schemas.js.map +1 -0
  105. package/dist/esm/workbench/creation-journey-timeline.custom.shared.schemas.d.ts +183 -0
  106. package/dist/esm/workbench/creation-journey-timeline.custom.shared.schemas.d.ts.map +1 -0
  107. package/dist/esm/workbench/creation-journey-timeline.custom.shared.schemas.js +188 -0
  108. package/dist/esm/workbench/creation-journey-timeline.custom.shared.schemas.js.map +1 -0
  109. package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.d.ts.map +1 -1
  110. package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.js +46 -0
  111. package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.js.map +1 -1
  112. package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.d.ts +170 -7
  113. package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.d.ts.map +1 -1
  114. package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.js +177 -7
  115. package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.js.map +1 -1
  116. package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.d.ts.map +1 -1
  117. package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.js.map +1 -1
  118. package/dist/esm/workbench/workbench-creation-dossier.custom.shared.schemas.d.ts.map +1 -1
  119. package/dist/esm/workbench/workbench-creation-dossier.custom.shared.schemas.js.map +1 -1
  120. package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.d.ts +480 -459
  121. package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.d.ts.map +1 -1
  122. package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.js +21 -16
  123. package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.js.map +1 -1
  124. package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.d.ts +480 -278
  125. package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.d.ts.map +1 -1
  126. package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.js +316 -46
  127. package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.js.map +1 -1
  128. package/dist/esm/workbench/workbench-domain-model.custom.shared.schemas.d.ts.map +1 -1
  129. package/dist/esm/workbench/workbench-domain-model.custom.shared.schemas.js.map +1 -1
  130. package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.d.ts +7 -0
  131. package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.d.ts.map +1 -1
  132. package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.js +13 -1
  133. package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.js.map +1 -1
  134. package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.d.ts +287 -277
  135. package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.d.ts.map +1 -1
  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,4 +1,4 @@
1
- import { ApplicationInterviewDepth, MetaWorkflow_ClarificationAction, MetaWorkflow_EvaluationVerdict } from '@wildo-ai/saas-models/meta-workflows';
1
+ import { ApplicationInterviewDepth, MetaWorkflow_ClarificationAction, MetaWorkflow_ElicitationNonAnswer, MetaWorkflow_EvaluationVerdict } from '@wildo-ai/saas-models/meta-workflows';
2
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';
@@ -154,18 +154,13 @@ export declare enum WorkbenchBuildPlanTaskStatus {
154
154
  * stuck tasks, because "nothing can run, and here is why" is an answer.
155
155
  */
156
156
  export declare enum Workbench_BuildTaskStuckReason {
157
- /** It already ran, and its declared product is absent even from the working tree: fix the declaration or the work. */
158
- COMPLETED_UNLANDED = "completed_unlanded",
159
157
  /**
160
- * It already ran, and its declared product IS in the working tree but not committed. Landing means
161
- * 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.
162
159
  *
163
- * Under GUIDED that is the whole story, and the remedy is to review and commit what the run wrote.
164
- * Under the autonomy posture the loop has ALREADY tried to commit it (#1534), so reaching this state
165
- * means its accept REFUSED a path — carried changes from before the run, edited since, or not this
166
- * 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.
167
162
  */
168
- COMPLETED_AWAITING_COMMIT = "completed_awaiting_commit",
163
+ COMPLETED_UNLANDED = "completed_unlanded",
169
164
  /** Its run suspended on a question nobody has answered; re-dispatching would abandon that session. */
170
165
  PARKED_AWAITING_ANSWER = "parked_awaiting_answer",
171
166
  /** It produces a governed document the engine catalog does not define, so no run can author it. */
@@ -182,18 +177,86 @@ export declare enum Workbench_BuildTaskStuckReason {
182
177
  * wave several tasks run at once, and the next selection must pass over one already being built,
183
178
  * or two agents would build the same task. Nobody's move: it clears when that run settles.
184
179
  */
185
- 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",
221
+ /**
222
+ * A GENERATION STEP whose last two runs FAILED with the same failure, and nothing it could read has changed since the
223
+ * latest (#3709). A third run would meet the same inputs and fail the same way, so the unattended loop passes it over
224
+ * and runs the rest of the plan. Measured on reference run 42886943490: `build-task-documentation-publication` failed 21
225
+ * times in 76 minutes on one engine-owned cause (OpenAPI examples that did not match their schema), and
226
+ * `build-task-gen-i18n-labels` ran 32 times, for an hour as the only dispatchable task, so the waves ran nothing.
227
+ *
228
+ * The same rule a choreography lane meets (two identical failures over the same reads, 596611bf2). It clears by itself
229
+ * once anything outside the step's own write scope is committed or edited; a person who fixed a cause the application
230
+ * does not hold (an engine's examples, an engine label key) runs it by name (`wildo build run <task>`).
231
+ */
232
+ REPEATED_IDENTICAL_FAILURE = "repeated_identical_failure",
233
+ /**
234
+ * A GENERATION STEP whose latest run failed on a cause the FRAMEWORK owns, not the application (#3709): the step said so
235
+ * on its result (`failureOwner`), for instance a documentation publication refused only by examples the engine's own
236
+ * resource specifications author. No change in the application can fix it, so it is held after the FIRST such failure,
237
+ * whatever moves in the application's tree, and the rest of the plan proceeds. Fix it in the framework, then run it by
238
+ * name or re-arm it.
239
+ */
240
+ FAILURE_OUTSIDE_APPLICATION = "failure_outside_application"
186
241
  }
242
+ /**
243
+ * The stuck reasons that only WAIT for a live run to settle (#1528, #3204): progress, never a finding, and proof that a
244
+ * run is live. One set, so the dispatch's warning and the Home projection cannot disagree about which reasons mean it.
245
+ */
246
+ export declare const WORKBENCH_BUILD_TASK_STUCK_REASONS_WAITING_ON_A_LIVE_RUN: ReadonlySet<Workbench_BuildTaskStuckReason>;
187
247
  /**
188
248
  * 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
189
249
  * back — `WorkbenchBuildPlanTasks_Operations.REARM` is offered for these and no other.
190
250
  *
191
251
  * - `completed_unlanded`: a completed run holds it through the loop guard, and a re-arm releases that run.
192
252
  * - `attempts_exhausted`: its failed runs hold it through the attempt budget, and a re-arm releases them.
253
+ * - `repeated_identical_failure`: a generation step's identical failed runs hold it (#3709), and a re-arm releases them.
254
+ * - `failure_outside_application`: a generation step's run that failed on a framework cause holds it (#3709); a re-arm
255
+ * releases it once the framework is fixed.
193
256
  *
194
- * Left out, each because a re-arm would be the wrong remedy: `completed_awaiting_commit` (the product exists and wants
195
- * accepting, and a re-arm would build it again), `parked_awaiting_answer` (a question waits), `in_flight` (a run is
196
- * live), `no_document_blueprint` (no run can produce it).
257
+ * Left out, each because a re-arm would be the wrong remedy: `parked_awaiting_answer` (a question waits), `in_flight` (a run is
258
+ * live), `no_document_blueprint` (no run can produce it), `landing_unknown` (nothing holds it but a check that has not
259
+ * answered yet).
197
260
  */
198
261
  export declare const WORKBENCH_REARMABLE_STUCK_REASONS: readonly Workbench_BuildTaskStuckReason[];
199
262
  /**
@@ -226,6 +289,12 @@ export declare enum BuildTaskRearmReason {
226
289
  BLOCKING_DEFECT_FIXED = "blocking-defect-fixed",
227
290
  /** Neither of the above: an operator judged the work should run again. The note says why. */
228
291
  OPERATOR_JUDGEMENT = "operator-judgement",
292
+ /**
293
+ * The ENVIRONMENT failed the runs, not the task (#3236): the network or the machine went away (DNS lost, a connection
294
+ * cut, a sleep) and the runs the outage took are released. Distinct from `operator-judgement` so a later reader of the
295
+ * task's history sees that its failed attempts said nothing about the work.
296
+ */
297
+ ENVIRONMENT = "environment",
229
298
  /**
230
299
  * Set by the BUILD WAVE, never by a person (#2210): the run completed while other runs edited the same tree, and its
231
300
  * declared product is missing from a file one of them also changed, so the loss is theirs rather than the task's. The
@@ -238,12 +307,27 @@ export declare enum BuildTaskRearmReason {
238
307
  */
239
308
  INTERFERED_BY_CONCURRENT_RUN = "interfered-by-concurrent-run"
240
309
  }
310
+ /**
311
+ * How a build task a PERSON closed is accounted for (`wildo build close`, #3224, #3225, #3227) — the one question a reader
312
+ * of a closed task asks: what made it done, if anything did. A closure never makes a task's product true; it records that
313
+ * a person said it is done another way, or that a derived follow-up is not wanted. Declared here rather than beside its
314
+ * producer (the companion's build dispatch) because the workbench shows it on the task's record, and a browser bundle
315
+ * cannot import the companion.
316
+ */
317
+ export declare enum BuildTaskClosureKind {
318
+ /** Another task of the plan built what this one was for. It counts as landed while that task is landed. */
319
+ SATISFIED_BY_TASK = "satisfied_by_task",
320
+ /** A commit HEAD contains built it (a person's, a reconciliation's). It counts as landed while the closure is committed. */
321
+ SATISFIED_BY_COMMIT = "satisfied_by_commit",
322
+ /** A host-derived follow-up the creator declines: the gap it answers is not worked. Follow-ups only. */
323
+ DECLINED = "declined"
324
+ }
241
325
  /**
242
326
  * The reasons a PERSON may give (`wildo build rearm`, the companion's re-arm route, the workbench's `rearm` operation).
243
327
  * The wave's own reason is left out: it asserts a measurement (a sibling changed the product's file during the run)
244
328
  * that only the wave makes, and an operator choosing it would record a detection that never happened.
245
329
  */
246
- export declare const OPERATOR_BUILD_TASK_REARM_REASONS: readonly [BuildTaskRearmReason.PROBE_CORRECTED, BuildTaskRearmReason.BLOCKING_DEFECT_FIXED, BuildTaskRearmReason.OPERATOR_JUDGEMENT];
330
+ export declare const OPERATOR_BUILD_TASK_REARM_REASONS: readonly [BuildTaskRearmReason.PROBE_CORRECTED, BuildTaskRearmReason.BLOCKING_DEFECT_FIXED, BuildTaskRearmReason.OPERATOR_JUDGEMENT, BuildTaskRearmReason.ENVIRONMENT];
247
331
  /** One of the reasons a person may give a re-arm. */
248
332
  export type OperatorBuildTaskRearmReason = (typeof OPERATOR_BUILD_TASK_REARM_REASONS)[number];
249
333
  /**
@@ -292,38 +376,38 @@ export declare enum Workbench_BuildDispatchPhase {
292
376
  * row (`phase`, `computedAt`) because a resource row must be complete on its own.
293
377
  */
294
378
  export declare const Workbench_Playbook_Schema: z.ZodObject<{
295
- workbenchPlaybookId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
296
- playbookRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
297
- playbookVersion: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
298
- phase: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
299
- intent: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
300
- eligible: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
301
- unmet: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
302
- blockedOnlyBySequencing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
303
- requiresElicitation: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
304
- unansweredQuestionRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
305
- wouldReplace: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
306
- outputOwners: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
379
+ workbenchPlaybookId: z.ZodString;
380
+ playbookRef: z.ZodString;
381
+ playbookVersion: z.ZodString;
382
+ phase: z.ZodString;
383
+ intent: z.ZodString;
384
+ eligible: z.ZodBoolean;
385
+ unmet: z.ZodArray<z.ZodString>;
386
+ blockedOnlyBySequencing: z.ZodBoolean;
387
+ requiresElicitation: z.ZodBoolean;
388
+ unansweredQuestionRefs: z.ZodArray<z.ZodString>;
389
+ wouldReplace: z.ZodArray<z.ZodString>;
390
+ outputOwners: z.ZodArray<z.ZodObject<{
307
391
  family: z.ZodString;
308
392
  playbookRefs: z.ZodArray<z.ZodString>;
309
- }, z.core.$strip>>>;
310
- unresolvedPlaybookRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
311
- unlandableFamilies: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
312
- staleOutputs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
393
+ }, z.core.$strip>>;
394
+ unresolvedPlaybookRefs: z.ZodArray<z.ZodString>;
395
+ unlandableFamilies: z.ZodArray<z.ZodString>;
396
+ staleOutputs: z.ZodArray<z.ZodObject<{
313
397
  family: z.ZodString;
314
398
  changedInputs: z.ZodArray<z.ZodString>;
315
- }, z.core.$strip>>>;
316
- activeInLine: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<z.ZodBoolean>>;
317
- activationDetail: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<z.ZodString>>;
318
- openInstances: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<z.ZodArray<z.ZodObject<{
399
+ }, z.core.$strip>>;
400
+ activeInLine: z.ZodOptional<z.ZodBoolean>;
401
+ activationDetail: z.ZodOptional<z.ZodString>;
402
+ openInstances: z.ZodOptional<z.ZodArray<z.ZodObject<{
319
403
  instanceKey: z.ZodString;
320
404
  purpose: z.ZodString;
321
- }, z.core.$strip>>>>;
322
- inputFamilyIds: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
323
- preconditionFamilyIds: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
324
- conditionFamilyIds: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
325
- admittedPlaybookIds: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
326
- computedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
405
+ }, z.core.$strip>>>;
406
+ inputFamilyIds: z.ZodArray<z.ZodString>;
407
+ preconditionFamilyIds: z.ZodArray<z.ZodString>;
408
+ conditionFamilyIds: z.ZodArray<z.ZodString>;
409
+ admittedPlaybookIds: z.ZodArray<z.ZodString>;
410
+ computedAt: z.ZodDate;
327
411
  }, z.core.$strip>;
328
412
  export type Workbench_Playbook = z.infer<typeof Workbench_Playbook_Schema>;
329
413
  /**
@@ -335,13 +419,13 @@ export type Workbench_Playbook = z.infer<typeof Workbench_Playbook_Schema>;
335
419
  * stays on the aspect row sharing the same `taskRef`.
336
420
  */
337
421
  export declare const Workbench_BuildPlanTask_Schema: z.ZodObject<{
338
- workbenchBuildPlanTaskId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
339
- taskRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
340
- objective: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
341
- targetKind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
342
- functionalTopic: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
343
- status: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchBuildPlanTaskStatus>>>;
344
- prerequisiteTaskRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
422
+ workbenchBuildPlanTaskId: z.ZodString;
423
+ taskRef: z.ZodString;
424
+ objective: z.ZodString;
425
+ targetKind: z.ZodString;
426
+ functionalTopic: z.ZodString;
427
+ status: z.ZodEnum<typeof WorkbenchBuildPlanTaskStatus>;
428
+ prerequisiteTaskRefs: z.ZodArray<z.ZodString>;
345
429
  }, z.core.$strip>;
346
430
  export type Workbench_BuildPlanTask = z.infer<typeof Workbench_BuildPlanTask_Schema>;
347
431
  /**
@@ -370,28 +454,33 @@ export declare const WORKBENCH_PLAYBOOK_MAP_TRANSLATION_REF = "app.playbook-map"
370
454
  * every LIST.
371
455
  */
372
456
  export declare const Workbench_RunWriteRecord_Schema: z.ZodObject<{
373
- workbenchRunWriteRecordId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
374
- runId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
375
- playbookRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
376
- workbenchPlaybookId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
377
- workbenchTraceSessionId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
378
- at: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
379
- files: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
457
+ workbenchRunWriteRecordId: z.ZodString;
458
+ runId: z.ZodString;
459
+ playbookRef: z.ZodString;
460
+ workbenchPlaybookId: z.ZodString;
461
+ workbenchTraceSessionId: z.ZodNullable<z.ZodString>;
462
+ at: z.ZodDate;
463
+ files: z.ZodArray<z.ZodObject<{
380
464
  path: z.ZodString;
381
465
  existedBefore: z.ZodBoolean;
382
- }, z.core.$strip>>>;
383
- fileCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
384
- acceptedCommitSha: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
466
+ }, z.core.$strip>>;
467
+ fileCount: z.ZodNumber;
468
+ acceptedCommitSha: z.ZodNullable<z.ZodString>;
469
+ landingFailed: z.ZodBoolean;
470
+ failedLandingRemedies: z.ZodNullable<z.ZodObject<{
471
+ accept: z.ZodString;
472
+ revert: z.ZodString;
473
+ }, z.core.$strip>>;
385
474
  }, z.core.$strip>;
386
475
  export type Workbench_RunWriteRecord = z.infer<typeof Workbench_RunWriteRecord_Schema>;
387
476
  /** One execution-trace session — the queryable index the board links from. */
388
477
  export declare const Workbench_TraceSession_Schema: z.ZodObject<{
389
- workbenchTraceSessionId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
390
- sessionId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
391
- startedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
392
- label: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
393
- eventCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
394
- stepCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
478
+ workbenchTraceSessionId: z.ZodString;
479
+ sessionId: z.ZodString;
480
+ startedAt: z.ZodDate;
481
+ label: z.ZodNullable<z.ZodString>;
482
+ eventCount: z.ZodNumber;
483
+ stepCount: z.ZodNumber;
395
484
  }, z.core.$strip>;
396
485
  export type Workbench_TraceSession = z.infer<typeof Workbench_TraceSession_Schema>;
397
486
  /**
@@ -455,7 +544,18 @@ export declare enum WorkbenchDossierEntryStanding {
455
544
  * decided: the run treats it as a working hypothesis, and this standing is how the dossier lists it to revisit.
456
545
  * Changing it records the creator's own answer in its place.
457
546
  */
458
- ASSUMED = "assumed"
547
+ ASSUMED = "assumed",
548
+ /**
549
+ * The creator said the question does not concern this application, and why (#3437). Answered — nothing is
550
+ * blocked — and never filled in by a run. Changing it records an answer, or the other non-answer, in its place.
551
+ */
552
+ NOT_APPLICABLE = "not-applicable",
553
+ /**
554
+ * The creator said the question concerns this application and is not decided yet, and why (#3437). Nothing waits
555
+ * on it: the step runs and marks what rests on it as owed; a governed document shows the clause as owed. Listed
556
+ * to revisit, like an assumption.
557
+ */
558
+ DEFERRED = "deferred"
459
559
  }
460
560
  /**
461
561
  * Whether a CHOICE question's options can be offered right now — for a question whose options are
@@ -474,33 +574,33 @@ export declare enum WorkbenchDossierEntryOptionsState {
474
574
  ANSWER_NO_LONGER_OFFERED = "answer-no-longer-offered"
475
575
  }
476
576
  export declare const Workbench_GovernanceDocument_Schema: z.ZodObject<{
477
- workbenchGovernanceDocumentId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
478
- definitionRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
479
- askCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
480
- derivedFactRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
481
- openCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
482
- drafted: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
577
+ workbenchGovernanceDocumentId: z.ZodString;
578
+ definitionRef: z.ZodString;
579
+ askCount: z.ZodNumber;
580
+ derivedFactRefs: z.ZodArray<z.ZodString>;
581
+ openCount: z.ZodNumber;
582
+ drafted: z.ZodBoolean;
483
583
  }, z.core.$strip>;
484
584
  export type Workbench_GovernanceDocument = z.infer<typeof Workbench_GovernanceDocument_Schema>;
485
585
  export declare const Workbench_GovernanceQuestion_Schema: z.ZodObject<{
486
- workbenchGovernanceQuestionId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
487
- definitionRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
488
- questionRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
489
- factRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
490
- creatorPrompt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
491
- decisionPurpose: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
492
- answerKind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
493
- factAuthorityKind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
494
- allowsNotApplicable: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
495
- sensitivityRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
496
- semanticOptions: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
586
+ workbenchGovernanceQuestionId: z.ZodString;
587
+ definitionRef: z.ZodString;
588
+ questionRef: z.ZodString;
589
+ factRef: z.ZodString;
590
+ creatorPrompt: z.ZodString;
591
+ decisionPurpose: z.ZodString;
592
+ answerKind: z.ZodString;
593
+ factAuthorityKind: z.ZodString;
594
+ allowsNotApplicable: z.ZodBoolean;
595
+ sensitivityRef: z.ZodString;
596
+ semanticOptions: z.ZodArray<z.ZodObject<{
497
597
  optionRef: z.ZodString;
498
598
  creatorMeaning: z.ZodString;
499
- }, z.core.$strip>>>;
500
- standing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchDossierEntryStanding>>>;
501
- answerSummary: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
502
- answeredAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodDate>>;
503
- askedNow: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
599
+ }, z.core.$strip>>;
600
+ standing: z.ZodEnum<typeof WorkbenchDossierEntryStanding>;
601
+ answerSummary: z.ZodNullable<z.ZodString>;
602
+ answeredAt: z.ZodNullable<z.ZodDate>;
603
+ askedNow: z.ZodBoolean;
504
604
  }, z.core.$strip>;
505
605
  export type Workbench_GovernanceQuestion = z.infer<typeof Workbench_GovernanceQuestion_Schema>;
506
606
  /** The playbook resource's dispatch verbs. */
@@ -621,11 +721,12 @@ export declare const Workbench_BuildPlanDispatchTaskRequest_Schema: z.ZodObject<
621
721
  export type Workbench_BuildPlanDispatchTaskRequest = z.infer<typeof Workbench_BuildPlanDispatchTaskRequest_Schema>;
622
722
  /** Why a build task goes back in the queue (#2530): a person's reason, and what was fixed. */
623
723
  export declare const Workbench_BuildTaskRearmRequest_Schema: z.ZodObject<{
624
- reason: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<{
724
+ reason: z.ZodEnum<{
625
725
  "probe-corrected": BuildTaskRearmReason.PROBE_CORRECTED;
626
726
  "blocking-defect-fixed": BuildTaskRearmReason.BLOCKING_DEFECT_FIXED;
627
727
  "operator-judgement": BuildTaskRearmReason.OPERATOR_JUDGEMENT;
628
- }>>;
728
+ environment: BuildTaskRearmReason.ENVIRONMENT;
729
+ }>;
629
730
  note: z.ZodString;
630
731
  }, z.core.$strip>;
631
732
  export type Workbench_BuildTaskRearmRequest = z.infer<typeof Workbench_BuildTaskRearmRequest_Schema>;
@@ -694,9 +795,7 @@ export declare const Workbench_BuildTaskRearmOutcome_Schema: z.ZodObject<{
694
795
  export type Workbench_BuildTaskRearmOutcome = z.infer<typeof Workbench_BuildTaskRearmOutcome_Schema>;
695
796
  export declare const Workbench_BuildPlanAddTaskOutcome_Schema: z.ZodObject<{
696
797
  taskRef: z.ZodOptional<z.ZodString>;
697
- /** TRUE when no plan existed and this task is its first. */
698
798
  createdPlan: z.ZodOptional<z.ZodBoolean>;
699
- /** Validator findings below the hard floor — worth telling the creator, never a refusal. */
700
799
  advisoryFindings: z.ZodOptional<z.ZodArray<z.ZodObject<{
701
800
  code: z.ZodString;
702
801
  taskRef: z.ZodString;
@@ -707,12 +806,6 @@ export declare const Workbench_BuildPlanAddTaskOutcome_Schema: z.ZodObject<{
707
806
  export type Workbench_BuildPlanAddTaskOutcome = z.infer<typeof Workbench_BuildPlanAddTaskOutcome_Schema>;
708
807
  /** How ACCEPT answers, for a task's coding run or a playbook run alike: what was committed, what was refused and why. */
709
808
  export declare const Workbench_AcceptChangesOutcome_Schema: z.ZodObject<{
710
- /**
711
- * TRUE when no new commit was made because what it would commit was already committed: the run was accepted before, or
712
- * its files were committed by hand (#2531 review M3). `commitSha` is then that earlier commit, not a new one. An accept
713
- * can be partial, holding back the files it cannot vouch for, and the task waits on them; only a forced accept
714
- * (`force`) commits those.
715
- */
716
809
  alreadyCommitted: z.ZodOptional<z.ZodBoolean>;
717
810
  commitSha: z.ZodOptional<z.ZodString>;
718
811
  committedPaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -727,16 +820,12 @@ export type Workbench_AcceptChangesOutcome = z.infer<typeof Workbench_AcceptChan
727
820
  export declare const Workbench_RunWriteRevertOutcome_Schema: z.ZodObject<{
728
821
  runId: z.ZodOptional<z.ZodString>;
729
822
  reverted: z.ZodOptional<z.ZodArray<z.ZodString>>;
730
- /** Files whose current bytes differ from what the run wrote — refused by name, revertable with force. */
731
823
  refusedDiverged: z.ZodOptional<z.ZodArray<z.ZodString>>;
732
- /**
733
- * Files a LATER recorded run landed on (#1614): refused even under force, because the earlier bytes
734
- * would destroy that run's work. Each names the run to revert first (#1666).
735
- */
736
824
  refusedLaterRun: z.ZodOptional<z.ZodArray<z.ZodObject<{
737
825
  path: z.ZodString;
738
826
  runId: z.ZodString;
739
827
  }, z.core.$strip>>>;
828
+ refusedWithoutPreImage: z.ZodOptional<z.ZodArray<z.ZodString>>;
740
829
  note: z.ZodOptional<z.ZodString>;
741
830
  }, z.core.$loose>;
742
831
  export type Workbench_RunWriteRevertOutcome = z.infer<typeof Workbench_RunWriteRevertOutcome_Schema>;
@@ -772,46 +861,47 @@ export type Workbench_RunWriteRevertOutcome = z.infer<typeof Workbench_RunWriteR
772
861
  * on this row so the finished state can say how far it got.
773
862
  */
774
863
  export declare const Workbench_BuildDispatchPlan_Schema: z.ZodObject<{
775
- workbenchBuildDispatchPlanId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
776
- taskRef: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
777
- objective: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
778
- targetKind: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
779
- generationStepRef: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
780
- allowedPathPrefixes: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
781
- prohibitedPathPrefixes: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
782
- requiredChecks: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
783
- installedSkillRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
784
- readyTaskRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
785
- landedTaskRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
786
- unverifiableLandedTaskRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
787
- landedBeforeAnyRunTaskRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
788
- exhausted: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
789
- stuckTasks: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
864
+ workbenchBuildDispatchPlanId: z.ZodString;
865
+ taskRef: z.ZodNullable<z.ZodString>;
866
+ objective: z.ZodNullable<z.ZodString>;
867
+ targetKind: z.ZodNullable<z.ZodString>;
868
+ generationStepRef: z.ZodNullable<z.ZodString>;
869
+ allowedPathPrefixes: z.ZodArray<z.ZodString>;
870
+ prohibitedPathPrefixes: z.ZodArray<z.ZodString>;
871
+ requiredChecks: z.ZodArray<z.ZodString>;
872
+ installedSkillRefs: z.ZodArray<z.ZodString>;
873
+ readyTaskRefs: z.ZodArray<z.ZodString>;
874
+ landedTaskRefs: z.ZodArray<z.ZodString>;
875
+ unverifiableLandedTaskRefs: z.ZodArray<z.ZodString>;
876
+ landedBeforeAnyRunTaskRefs: z.ZodArray<z.ZodString>;
877
+ exhausted: z.ZodBoolean;
878
+ failingSpecificationModules: z.ZodArray<z.ZodString>;
879
+ specificationRepairOwed: z.ZodBoolean;
880
+ stuckTasks: z.ZodArray<z.ZodObject<{
790
881
  taskRef: z.ZodString;
791
- reason: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof Workbench_BuildTaskStuckReason>>;
882
+ reason: z.ZodEnum<typeof Workbench_BuildTaskStuckReason>;
792
883
  priorTaskId: z.ZodNullable<z.ZodString>;
793
- uncommittedPaths: z.ZodArray<z.ZodString>;
794
884
  question: z.ZodNullable<z.ZodString>;
795
885
  documentRef: z.ZodNullable<z.ZodString>;
796
- }, z.core.$strip>>>;
797
- taskCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
798
- landedCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
886
+ }, z.core.$strip>>;
887
+ taskCount: z.ZodNumber;
888
+ landedCount: z.ZodNumber;
799
889
  }, z.core.$strip>;
800
890
  export type Workbench_BuildDispatchPlan = z.infer<typeof Workbench_BuildDispatchPlan_Schema>;
801
891
  export declare const Workbench_BuildDispatch_Schema: z.ZodObject<{
802
- workbenchBuildDispatchId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
803
- taskRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
804
- objective: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
805
- phase: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof Workbench_BuildDispatchPhase>>>;
806
- startedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
807
- settledAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
808
- codingTaskId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
809
- error: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
810
- failureAttribution: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof CodingRunFailureAttribution>>>;
811
- conversationId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
812
- runStatus: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof FlowsActors_Status>>>;
813
- runFinishedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
814
- accepted: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>>;
892
+ workbenchBuildDispatchId: z.ZodString;
893
+ taskRef: z.ZodString;
894
+ objective: z.ZodNullable<z.ZodString>;
895
+ phase: z.ZodEnum<typeof Workbench_BuildDispatchPhase>;
896
+ startedAt: z.ZodDate;
897
+ settledAt: z.ZodNullable<z.ZodDate>;
898
+ codingTaskId: z.ZodNullable<z.ZodString>;
899
+ error: z.ZodNullable<z.ZodString>;
900
+ failureAttribution: z.ZodNullable<z.ZodEnum<typeof CodingRunFailureAttribution>>;
901
+ conversationId: z.ZodNullable<z.ZodString>;
902
+ runStatus: z.ZodEnum<typeof FlowsActors_Status>;
903
+ runFinishedAt: z.ZodNullable<z.ZodDate>;
904
+ accepted: z.ZodNullable<z.ZodBoolean>;
815
905
  }, z.core.$strip>;
816
906
  export type Workbench_BuildDispatch = z.infer<typeof Workbench_BuildDispatch_Schema>;
817
907
  /**
@@ -822,13 +912,13 @@ export declare const Workbench_BuildTaskAttempt_Schema: z.ZodObject<{
822
912
  runTaskId: z.ZodString;
823
913
  startedAt: z.ZodDate;
824
914
  settledAt: z.ZodNullable<z.ZodDate>;
825
- status: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof FlowsActors_Status>>;
915
+ status: z.ZodEnum<typeof FlowsActors_Status>;
826
916
  generationStep: z.ZodBoolean;
827
917
  refusedBeforeStart: z.ZodBoolean;
828
918
  ranNothing: z.ZodBoolean;
829
- failureAttribution: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof CodingRunFailureAttribution>>>;
919
+ failureAttribution: z.ZodNullable<z.ZodEnum<typeof CodingRunFailureAttribution>>;
830
920
  interferenceSuspected: z.ZodBoolean;
831
- rearmReason: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof BuildTaskRearmReason>>>;
921
+ rearmReason: z.ZodNullable<z.ZodEnum<typeof BuildTaskRearmReason>>;
832
922
  rearmNote: z.ZodNullable<z.ZodString>;
833
923
  error: z.ZodNullable<z.ZodString>;
834
924
  costAmount: z.ZodNullable<z.ZodNumber>;
@@ -908,29 +998,28 @@ export declare enum BrandDesignState {
908
998
  /** The brand's visual tone could not be read, so currency cannot be decided either way. */
909
999
  UNANSWERABLE = "unanswerable"
910
1000
  }
911
- /** A landing probe HEAD does not satisfy (#2530): what landing searched for, and whether the working tree has it. */
1001
+ /** A landing probe the working tree does not satisfy (#2530, #3204): what landing searched for there, and what is missing. */
912
1002
  export declare const Workbench_BuildTaskUnmetProbe_Schema: z.ZodObject<{
913
1003
  paths: z.ZodArray<z.ZodString>;
914
1004
  declarations: z.ZodArray<z.ZodString>;
915
1005
  keyPrefix: z.ZodNullable<z.ZodString>;
916
- shellSurface: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1006
+ shellSurface: z.ZodNullable<z.ZodString>;
917
1007
  shell: z.ZodNullable<z.ZodObject<{
918
1008
  unanswerable: z.ZodNullable<z.ZodString>;
919
1009
  missing: z.ZodArray<z.ZodString>;
920
1010
  declinedButPresent: z.ZodArray<z.ZodString>;
921
- uncommittedPaths: z.ZodArray<z.ZodString>;
1011
+ absentPaths: z.ZodArray<z.ZodString>;
922
1012
  }, z.core.$strip>>;
923
1013
  registered: z.ZodNullable<z.ZodObject<{
924
1014
  unanswerable: z.ZodNullable<z.ZodString>;
925
1015
  missing: z.ZodArray<z.ZodObject<{
926
- kind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof AgentWorkShortfallKind>>;
1016
+ kind: z.ZodEnum<typeof AgentWorkShortfallKind>;
927
1017
  ref: z.ZodString;
928
1018
  planned: z.ZodNullable<z.ZodString>;
929
1019
  registered: z.ZodNullable<z.ZodString>;
930
1020
  }, z.core.$strip>>;
931
- uncommittedPaths: z.ZodArray<z.ZodString>;
1021
+ absentPaths: z.ZodArray<z.ZodString>;
932
1022
  }, z.core.$strip>>;
933
- satisfiedInWorkingTree: z.ZodBoolean;
934
1023
  }, z.core.$strip>;
935
1024
  export type Workbench_BuildTaskUnmetProbe = z.infer<typeof Workbench_BuildTaskUnmetProbe_Schema>;
936
1025
  /**
@@ -947,22 +1036,22 @@ export type Workbench_BuildTaskUnmetProbe = z.infer<typeof Workbench_BuildTaskUn
947
1036
  * claimed.
948
1037
  */
949
1038
  export declare const Workbench_BuildTaskRecord_Schema: z.ZodObject<{
950
- workbenchBuildTaskRecordId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
951
- workbenchBuildPlanTaskId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
952
- taskRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
953
- status: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchBuildPlanTaskStatus>>>;
954
- attemptCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
1039
+ workbenchBuildTaskRecordId: z.ZodString;
1040
+ workbenchBuildPlanTaskId: z.ZodString;
1041
+ taskRef: z.ZodString;
1042
+ status: z.ZodEnum<typeof WorkbenchBuildPlanTaskStatus>;
1043
+ attemptCount: z.ZodNumber;
955
1044
  attempts: z.ZodArray<z.ZodObject<{
956
1045
  runTaskId: z.ZodString;
957
1046
  startedAt: z.ZodDate;
958
1047
  settledAt: z.ZodNullable<z.ZodDate>;
959
- status: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof FlowsActors_Status>>;
1048
+ status: z.ZodEnum<typeof FlowsActors_Status>;
960
1049
  generationStep: z.ZodBoolean;
961
1050
  refusedBeforeStart: z.ZodBoolean;
962
1051
  ranNothing: z.ZodBoolean;
963
- failureAttribution: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof CodingRunFailureAttribution>>>;
1052
+ failureAttribution: z.ZodNullable<z.ZodEnum<typeof CodingRunFailureAttribution>>;
964
1053
  interferenceSuspected: z.ZodBoolean;
965
- rearmReason: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof BuildTaskRearmReason>>>;
1054
+ rearmReason: z.ZodNullable<z.ZodEnum<typeof BuildTaskRearmReason>>;
966
1055
  rearmNote: z.ZodNullable<z.ZodString>;
967
1056
  error: z.ZodNullable<z.ZodString>;
968
1057
  costAmount: z.ZodNullable<z.ZodNumber>;
@@ -979,8 +1068,7 @@ export declare const Workbench_BuildTaskRecord_Schema: z.ZodObject<{
979
1068
  }, z.core.$strip>>;
980
1069
  }, z.core.$strip>>;
981
1070
  attemptsTruncated: z.ZodBoolean;
982
- stuckReason: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof Workbench_BuildTaskStuckReason>>>>;
983
- stuckUncommittedPaths: z.ZodArray<z.ZodString>;
1071
+ stuckReason: z.ZodNullable<z.ZodEnum<typeof Workbench_BuildTaskStuckReason>>;
984
1072
  stuckQuestion: z.ZodNullable<z.ZodString>;
985
1073
  stuckDocumentRef: z.ZodNullable<z.ZodString>;
986
1074
  waitingOnTaskRefs: z.ZodArray<z.ZodString>;
@@ -988,31 +1076,33 @@ export declare const Workbench_BuildTaskRecord_Schema: z.ZodObject<{
988
1076
  paths: z.ZodArray<z.ZodString>;
989
1077
  declarations: z.ZodArray<z.ZodString>;
990
1078
  keyPrefix: z.ZodNullable<z.ZodString>;
991
- shellSurface: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1079
+ shellSurface: z.ZodNullable<z.ZodString>;
992
1080
  shell: z.ZodNullable<z.ZodObject<{
993
1081
  unanswerable: z.ZodNullable<z.ZodString>;
994
1082
  missing: z.ZodArray<z.ZodString>;
995
1083
  declinedButPresent: z.ZodArray<z.ZodString>;
996
- uncommittedPaths: z.ZodArray<z.ZodString>;
1084
+ absentPaths: z.ZodArray<z.ZodString>;
997
1085
  }, z.core.$strip>>;
998
1086
  registered: z.ZodNullable<z.ZodObject<{
999
1087
  unanswerable: z.ZodNullable<z.ZodString>;
1000
1088
  missing: z.ZodArray<z.ZodObject<{
1001
- kind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof AgentWorkShortfallKind>>;
1089
+ kind: z.ZodEnum<typeof AgentWorkShortfallKind>;
1002
1090
  ref: z.ZodString;
1003
1091
  planned: z.ZodNullable<z.ZodString>;
1004
1092
  registered: z.ZodNullable<z.ZodString>;
1005
1093
  }, z.core.$strip>>;
1006
- uncommittedPaths: z.ZodArray<z.ZodString>;
1094
+ absentPaths: z.ZodArray<z.ZodString>;
1007
1095
  }, z.core.$strip>>;
1008
- satisfiedInWorkingTree: z.ZodBoolean;
1009
1096
  }, z.core.$strip>>;
1010
- schemaPlanSyncState: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof SchemaPlanSyncState>>>;
1011
- designTokenBlockState: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof DesignTokenBlockState>>>;
1012
- brandDesignState: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof BrandDesignState>>>;
1097
+ schemaPlanSyncState: z.ZodNullable<z.ZodEnum<typeof SchemaPlanSyncState>>;
1098
+ designTokenBlockState: z.ZodNullable<z.ZodEnum<typeof DesignTokenBlockState>>;
1099
+ brandDesignState: z.ZodNullable<z.ZodEnum<typeof BrandDesignState>>;
1013
1100
  landingBlockedBy: z.ZodNullable<z.ZodString>;
1014
- followUpTaskIds: z.ZodArray<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1015
- followUpOfTaskId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1101
+ followUpTaskIds: z.ZodArray<z.ZodString>;
1102
+ followUpOfTaskId: z.ZodNullable<z.ZodString>;
1103
+ closureKind: z.ZodNullable<z.ZodEnum<typeof BuildTaskClosureKind>>;
1104
+ closureSatisfiedBy: z.ZodNullable<z.ZodString>;
1105
+ closureReason: z.ZodNullable<z.ZodString>;
1016
1106
  unverifiable: z.ZodBoolean;
1017
1107
  landedBeforeAnyRun: z.ZodBoolean;
1018
1108
  landedBeforeAnyRunPaths: z.ZodArray<z.ZodString>;
@@ -1067,6 +1157,7 @@ export declare enum Workbench_PlaybookRunState {
1067
1157
  export declare const Workbench_PlaybookRunRoundChild_Schema: z.ZodObject<{
1068
1158
  playbookRef: z.ZodString;
1069
1159
  ranBecause: z.ZodNullable<z.ZodString>;
1160
+ reranOverLanding: z.ZodNullable<z.ZodBoolean>;
1070
1161
  landed: z.ZodArray<z.ZodString>;
1071
1162
  failure: z.ZodNullable<z.ZodString>;
1072
1163
  }, z.core.$strip>;
@@ -1090,6 +1181,7 @@ export declare const Workbench_PlaybookRunRound_Schema: z.ZodObject<{
1090
1181
  children: z.ZodArray<z.ZodObject<{
1091
1182
  playbookRef: z.ZodString;
1092
1183
  ranBecause: z.ZodNullable<z.ZodString>;
1184
+ reranOverLanding: z.ZodNullable<z.ZodBoolean>;
1093
1185
  landed: z.ZodArray<z.ZodString>;
1094
1186
  failure: z.ZodNullable<z.ZodString>;
1095
1187
  }, z.core.$strip>>;
@@ -1102,25 +1194,25 @@ export type Workbench_PlaybookRunRound = z.infer<typeof Workbench_PlaybookRunRou
1102
1194
  * that playbook and never a history of it.
1103
1195
  */
1104
1196
  export declare const Workbench_PlaybookRun_Schema: z.ZodObject<{
1105
- workbenchPlaybookRunId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1106
- runId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1107
- playbookRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
1108
- instanceKey: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1109
- traceSessionId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1110
- conversationId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1111
- state: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof Workbench_PlaybookRunState>>>;
1112
- startedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
1113
- finishedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
1114
- ok: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>>;
1115
- error: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1116
- completedIterations: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>>;
1117
- checkpointedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
1118
- awaitingFamily: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1119
- awaitingRound: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>>;
1120
- judgeOverall: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof MetaWorkflow_EvaluationVerdict>>>>;
1197
+ workbenchPlaybookRunId: z.ZodString;
1198
+ runId: z.ZodNullable<z.ZodString>;
1199
+ playbookRef: z.ZodString;
1200
+ instanceKey: z.ZodNullable<z.ZodString>;
1201
+ traceSessionId: z.ZodNullable<z.ZodString>;
1202
+ conversationId: z.ZodNullable<z.ZodString>;
1203
+ state: z.ZodEnum<typeof Workbench_PlaybookRunState>;
1204
+ startedAt: z.ZodNullable<z.ZodDate>;
1205
+ finishedAt: z.ZodNullable<z.ZodDate>;
1206
+ ok: z.ZodNullable<z.ZodBoolean>;
1207
+ error: z.ZodNullable<z.ZodString>;
1208
+ completedIterations: z.ZodNullable<z.ZodNumber>;
1209
+ checkpointedAt: z.ZodNullable<z.ZodDate>;
1210
+ awaitingFamily: z.ZodNullable<z.ZodString>;
1211
+ awaitingRound: z.ZodNullable<z.ZodNumber>;
1212
+ judgeOverall: z.ZodNullable<z.ZodEnum<typeof MetaWorkflow_EvaluationVerdict>>;
1121
1213
  judgeCriteria: z.ZodNullable<z.ZodArray<z.ZodObject<{
1122
1214
  criterionRef: z.ZodString;
1123
- verdict: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof MetaWorkflow_EvaluationVerdict>>;
1215
+ verdict: z.ZodEnum<typeof MetaWorkflow_EvaluationVerdict>;
1124
1216
  rationale: z.ZodString;
1125
1217
  }, z.core.$strip>>>;
1126
1218
  judgeSkipped: z.ZodNullable<z.ZodString>;
@@ -1134,6 +1226,7 @@ export declare const Workbench_PlaybookRun_Schema: z.ZodObject<{
1134
1226
  children: z.ZodArray<z.ZodObject<{
1135
1227
  playbookRef: z.ZodString;
1136
1228
  ranBecause: z.ZodNullable<z.ZodString>;
1229
+ reranOverLanding: z.ZodNullable<z.ZodBoolean>;
1137
1230
  landed: z.ZodArray<z.ZodString>;
1138
1231
  failure: z.ZodNullable<z.ZodString>;
1139
1232
  }, z.core.$strip>>;
@@ -1141,22 +1234,22 @@ export declare const Workbench_PlaybookRun_Schema: z.ZodObject<{
1141
1234
  }, z.core.$strip>;
1142
1235
  export type Workbench_PlaybookRun = z.infer<typeof Workbench_PlaybookRun_Schema>;
1143
1236
  export declare const Workbench_WaitingPlaybookRun_Schema: z.ZodObject<{
1144
- workbenchWaitingPlaybookRunId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1145
- runId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
1146
- readable: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
1147
- playbookRef: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1148
- family: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1149
- suspendedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
1150
- round: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>>;
1151
- dryRun: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>>;
1152
- requests: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
1237
+ workbenchWaitingPlaybookRunId: z.ZodString;
1238
+ runId: z.ZodString;
1239
+ readable: z.ZodBoolean;
1240
+ playbookRef: z.ZodNullable<z.ZodString>;
1241
+ family: z.ZodNullable<z.ZodString>;
1242
+ suspendedAt: z.ZodNullable<z.ZodDate>;
1243
+ round: z.ZodNullable<z.ZodNumber>;
1244
+ dryRun: z.ZodNullable<z.ZodBoolean>;
1245
+ requests: z.ZodArray<z.ZodObject<{
1153
1246
  ref: z.ZodString;
1154
1247
  question: z.ZodString;
1155
1248
  why: z.ZodString;
1156
1249
  kind: z.ZodString;
1157
1250
  options: z.ZodArray<z.ZodString>;
1158
- }, z.core.$strip>>>;
1159
- routedToUserId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1251
+ }, z.core.$strip>>;
1252
+ routedToUserId: z.ZodNullable<z.ZodString>;
1160
1253
  }, z.core.$strip>;
1161
1254
  export type Workbench_WaitingPlaybookRun = z.infer<typeof Workbench_WaitingPlaybookRun_Schema>;
1162
1255
  /**
@@ -1186,15 +1279,15 @@ export declare const WORKBENCH_CODING_LANE_STATUS_ROW_ID = "coding-lane";
1186
1279
  * outstanding — which is why the parked queue has to be read beside it.
1187
1280
  */
1188
1281
  export declare const Workbench_CodingLaneStatus_Schema: z.ZodObject<{
1189
- workbenchCodingLaneStatusId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1190
- codingAgentRegistered: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
1191
- codingAgentProviderRef: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1192
- codingAgentSignedIn: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>>;
1282
+ workbenchCodingLaneStatusId: z.ZodString;
1283
+ codingAgentRegistered: z.ZodBoolean;
1284
+ codingAgentProviderRef: z.ZodNullable<z.ZodString>;
1285
+ codingAgentSignedIn: z.ZodNullable<z.ZodBoolean>;
1193
1286
  codingAgentLoginDetail: z.ZodNullable<z.ZodString>;
1194
1287
  codingAgentLoginRemedy: z.ZodNullable<z.ZodString>;
1195
- activeRunTaskId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
1196
- activeRunStartedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
1197
- lockFilePath: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1288
+ activeRunTaskId: z.ZodNullable<z.ZodString>;
1289
+ activeRunStartedAt: z.ZodNullable<z.ZodDate>;
1290
+ lockFilePath: z.ZodNullable<z.ZodString>;
1198
1291
  defaultTimeoutMs: z.ZodNumber;
1199
1292
  hardMaxTimeoutMs: z.ZodNumber;
1200
1293
  defaultMaxCapturedBytes: z.ZodNumber;
@@ -1231,12 +1324,12 @@ export declare const WORKBENCH_PARKED_CODING_QUESTION_FIELD_REF = "answer";
1231
1324
  * reachable only by reading a status blob.
1232
1325
  */
1233
1326
  export declare const Workbench_ParkedCodingQuestion_Schema: z.ZodObject<{
1234
- workbenchParkedCodingQuestionId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1235
- taskId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1236
- taskRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
1237
- question: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
1238
- parkedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
1239
- resumable: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
1327
+ workbenchParkedCodingQuestionId: z.ZodString;
1328
+ taskId: z.ZodString;
1329
+ taskRef: z.ZodString;
1330
+ question: z.ZodString;
1331
+ parkedAt: z.ZodDate;
1332
+ resumable: z.ZodBoolean;
1240
1333
  suspensionRef: z.ZodString;
1241
1334
  }, z.core.$strip>;
1242
1335
  export type Workbench_ParkedCodingQuestion = z.infer<typeof Workbench_ParkedCodingQuestion_Schema>;
@@ -1249,34 +1342,36 @@ export type Workbench_ParkedCodingQuestion = z.infer<typeof Workbench_ParkedCodi
1249
1342
  * surface can ASK it without a second read.
1250
1343
  */
1251
1344
  export declare const Workbench_DossierEntry_Schema: z.ZodObject<{
1252
- workbenchDossierEntryId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1253
- playbookRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
1254
- questionRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
1255
- instanceKey: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
1256
- instancePurpose: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
1257
- question: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
1258
- kind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
1259
- options: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
1260
- optionDetails: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
1261
- position: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
1262
- standing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchDossierEntryStanding>>>;
1263
- optionsState: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchDossierEntryOptionsState>>>;
1264
- value: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
1265
- answeredAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodDate>>;
1266
- answeredByRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
1267
- shownOptionDetail: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
1268
- playbookEligible: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
1269
- askedNow: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
1270
- affectsFamilies: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
1271
- subject: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchSpecificationArtifactConcern>>>;
1272
- outOfDate: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
1273
- outOfDateStepRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
1274
- sharedWithPlaybookRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
1275
- askedInSimpleInterview: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
1276
- proposable: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
1277
- regulatedDomain: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
1278
- assumptionRationale: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
1279
- interviewDepth: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof ApplicationInterviewDepth>>>>;
1345
+ workbenchDossierEntryId: z.ZodString;
1346
+ playbookRef: z.ZodString;
1347
+ questionRef: z.ZodString;
1348
+ instanceKey: z.ZodNullable<z.ZodString>;
1349
+ instancePurpose: z.ZodNullable<z.ZodString>;
1350
+ question: z.ZodString;
1351
+ kind: z.ZodString;
1352
+ options: z.ZodArray<z.ZodString>;
1353
+ optionDetails: z.ZodArray<z.ZodString>;
1354
+ position: z.ZodNumber;
1355
+ standing: z.ZodEnum<typeof WorkbenchDossierEntryStanding>;
1356
+ optionsState: z.ZodEnum<typeof WorkbenchDossierEntryOptionsState>;
1357
+ value: z.ZodNullable<z.ZodString>;
1358
+ nonAnswerReason: z.ZodNullable<z.ZodString>;
1359
+ admittedNonAnswers: z.ZodArray<z.ZodEnum<typeof MetaWorkflow_ElicitationNonAnswer>>;
1360
+ answeredAt: z.ZodNullable<z.ZodDate>;
1361
+ answeredByRef: z.ZodNullable<z.ZodString>;
1362
+ shownOptionDetail: z.ZodNullable<z.ZodString>;
1363
+ playbookEligible: z.ZodBoolean;
1364
+ askedNow: z.ZodBoolean;
1365
+ affectsFamilies: z.ZodArray<z.ZodString>;
1366
+ subject: z.ZodEnum<typeof WorkbenchSpecificationArtifactConcern>;
1367
+ outOfDate: z.ZodBoolean;
1368
+ outOfDateStepRefs: z.ZodArray<z.ZodString>;
1369
+ sharedWithPlaybookRefs: z.ZodArray<z.ZodString>;
1370
+ askedInSimpleInterview: z.ZodBoolean;
1371
+ proposable: z.ZodBoolean;
1372
+ regulatedDomain: z.ZodBoolean;
1373
+ assumptionRationale: z.ZodNullable<z.ZodString>;
1374
+ interviewDepth: z.ZodNullable<z.ZodEnum<typeof ApplicationInterviewDepth>>;
1280
1375
  }, z.core.$strip>;
1281
1376
  export type Workbench_DossierEntry = z.infer<typeof Workbench_DossierEntry_Schema>;
1282
1377
  /** The dossier resource's one write verb. */
@@ -1326,7 +1421,6 @@ export declare const Workbench_DossierProposeOutcome_Schema: z.ZodObject<{
1326
1421
  rationale: z.ZodString;
1327
1422
  regulatedDomain: z.ZodBoolean;
1328
1423
  }, z.core.$strip>>;
1329
- /** Asked for, and nothing admissible came back — each with the last refusal. Ask these of the person. */
1330
1424
  unproposed: z.ZodArray<z.ZodObject<{
1331
1425
  questionRef: z.ZodString;
1332
1426
  reason: z.ZodString;
@@ -1342,19 +1436,24 @@ export declare const Workbench_DossierInterviewDepthOutcome_Schema: z.ZodObject<
1342
1436
  packageRelativePath: z.ZodString;
1343
1437
  }, z.core.$loose>;
1344
1438
  export type Workbench_DossierInterviewDepthOutcome = z.infer<typeof Workbench_DossierInterviewDepthOutcome_Schema>;
1439
+ /**
1440
+ * An answer to a dossier question: a VALUE, or (#3439) a NON-ANSWER with its reason — never both, and one of the two.
1441
+ * The exclusivity and the admission are decided by the operation against the ROW (`admittedNonAnswers`), not here: a
1442
+ * cross-field refinement would hide the one sentence that says what to change behind a generic schema error.
1443
+ */
1345
1444
  export declare const Workbench_DossierAnswerRequest_Schema: z.ZodObject<{
1346
- value: z.ZodString;
1445
+ value: z.ZodOptional<z.ZodString>;
1446
+ nonAnswer: z.ZodOptional<z.ZodEnum<typeof MetaWorkflow_ElicitationNonAnswer>>;
1447
+ reason: z.ZodOptional<z.ZodString>;
1347
1448
  assumed: z.ZodOptional<z.ZodBoolean>;
1348
1449
  assumptionRationale: z.ZodOptional<z.ZodString>;
1349
1450
  }, z.core.$strip>;
1350
1451
  export type Workbench_DossierAnswerRequest = z.infer<typeof Workbench_DossierAnswerRequest_Schema>;
1351
1452
  export declare const Workbench_DossierAnswerOutcome_Schema: z.ZodObject<{
1352
- /** The answer as STORED (canonical for a `confirm`). */
1353
- value: z.ZodString;
1453
+ value: z.ZodNullable<z.ZodString>;
1454
+ nonAnswer: z.ZodNullable<z.ZodEnum<typeof MetaWorkflow_ElicitationNonAnswer>>;
1354
1455
  answeredAt: z.ZodString;
1355
- /** The dossier file this landed in, package-relative. */
1356
1456
  packageRelativePath: z.ZodString;
1357
- /** The asking playbook's questions still unanswered after this one — empty means it can run. */
1358
1457
  unansweredQuestionRefs: z.ZodArray<z.ZodString>;
1359
1458
  }, z.core.$loose>;
1360
1459
  export type Workbench_DossierAnswerOutcome = z.infer<typeof Workbench_DossierAnswerOutcome_Schema>;
@@ -1394,16 +1493,62 @@ export declare enum WorkbenchCreationHomeLineKind {
1394
1493
  RUN_INTERRUPTED = "run-interrupted",
1395
1494
  /** A build dispatch finished or failed; `acceptable` says whether its writes wait to be committed. */
1396
1495
  DISPATCH_SETTLED = "dispatch-settled",
1496
+ /**
1497
+ * A re-run inside a lane — a repair of a GAP, a refresh — FAILED while the family's earlier landing still stands
1498
+ * (#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
1499
+ * went on with them (e.g. a refused build-decompose repair: the plan on disk still dispatches). `playbookRef` is the
1500
+ * re-run's playbook, `subject` its failure; the target is the lane's run. `failed` stays false, because nothing the
1501
+ * creation built is lost; the refusal is shown so it can be repaired when it matters.
1502
+ */
1503
+ REPAIR_FAILED_LANDING_STANDS = "repair-failed-landing-stands",
1397
1504
  /**
1398
1505
  * The coding agent's account hit its usage limit, and the build dispatches nothing until it resets
1399
1506
  * (#2388). `subject` is when the build resumes (`08:11 Europe/Paris`); the target is the dispatch that met
1400
1507
  * the limit. Shown only while the limit holds, so it disappears once the build has resumed.
1401
1508
  */
1402
1509
  CODING_AGENT_USAGE_LIMITED = "coding-agent-usage-limited",
1510
+ /**
1511
+ * The coding agent's provider ACCOUNT refused its turn: no credits left, a spend or usage limit, billing (#3204).
1512
+ * Distinct from {@link CODING_AGENT_USAGE_LIMITED}: nothing resets on its own, a PERSON adds credits or raises the
1513
+ * limit. The build holds and asks again every thirty minutes, charging no attempt, so a person who fixes the account
1514
+ * while a drive waits loses nothing; an unattended drive stops on it. `subject` is the refusal in the providers'
1515
+ * sentence (`describeModelProviderAccountRefusal`); the target is the dispatch that met it. Shown while the hold lasts.
1516
+ */
1517
+ CODING_AGENT_ACCOUNT_REFUSED = "coding-agent-account-refused",
1518
+ /**
1519
+ * A coding run lost the network, and no coding turn is admitted until a probe of the agent's API answers along the
1520
+ * agent's own route (#3236, #3262). `at` is when the loss was met, `taskRef` the task whose run met it, `subject` the
1521
+ * route the probe takes (`api.anthropic.com via proxy proxy.corp:3128`), absent when no route is known. Shown only
1522
+ * while the hold lasts; what ends it is the probe answering, a turn started after the loss succeeding, or
1523
+ * `wildo build rearm <task> --reason environment`.
1524
+ */
1525
+ CODING_AGENT_CONNECTIVITY_LOST = "coding-agent-connectivity-lost",
1526
+ /**
1527
+ * A verification check's command cannot be executed (#3423): `wildo`, say, is not on the companion's PATH, so every
1528
+ * task's check would fail the same way, and no coding turn is admitted. `subject` is the command, `taskRef` the task
1529
+ * whose run met it, `at` when. Nothing lifts it on its own: a person puts the command on PATH, and the next admission
1530
+ * looks it up first (or `wildo build rearm <task> --reason environment` ends it). Shown while the hold lasts; an
1531
+ * unattended drive stops on it.
1532
+ */
1533
+ VERIFICATION_TOOL_UNAVAILABLE = "verification-tool-unavailable",
1534
+ /**
1535
+ * A person CLOSED a build task (`wildo build close`, #3224, #3227): done another way, or a derived follow-up declined.
1536
+ * `at` is when, `taskRef` the task, `subject` the reason they gave. Shown so a reader of the build's history sees that a
1537
+ * person, not a probe, said the task is done.
1538
+ */
1539
+ BUILD_TASK_CLOSED = "build-task-closed",
1403
1540
  /** A playbook run suspended on questions only the creator can answer. */
1404
1541
  CLARIFICATION = "clarification",
1405
1542
  /** A coding run parked on a question the agent could not answer alone. */
1406
1543
  PARKED_QUESTION = "parked-question",
1544
+ /**
1545
+ * An interview still waiting on the creator whose answer would date work the next unattended round could run
1546
+ * (#3361): a step reading the creator's stated facts, which an answer given later re-derives. The round withholds
1547
+ * that work (`findReadersDatedByWaitingInterviews`), so this line is what moves it, and an unattended drive stops on
1548
+ * it. `playbookRef` is the interview's playbook, `subject` the steps it holds (refs, comma-separated); the target is
1549
+ * the interview's playbook. Not shown for a quick interview's questions an unattended round assumes (#2129).
1550
+ */
1551
+ INTERVIEW_DATES_NEXT_WORK = "interview-dates-next-work",
1407
1552
  /** A governed document the creator asked for (a draft exists) still needing a fact only they can give. */
1408
1553
  GOVERNANCE_DOCUMENT = "governance-document",
1409
1554
  /** The next READY build task of the dispatch plan. */
@@ -1411,13 +1556,42 @@ export declare enum WorkbenchCreationHomeLineKind {
1411
1556
  /**
1412
1557
  * The plan can run NOTHING: every ready task is stuck, and `stuckReason` says what unblocks it.
1413
1558
  *
1414
- * ASKED rather than SUGGESTION, because every reason is the creator's move — committing what a
1415
- * finished run wrote under GUIDED, or, under the autonomy posture where the loop commits (#1534),
1416
- * resolving the path its accept refused or correcting a declaration no run can satisfy.
1559
+ * ASKED rather than SUGGESTION, because every reason it is shown for is the creator's move — correcting a
1560
+ * declaration no run can satisfy, re-arming a task that spent its attempts, approving a follow-up. (A run's work
1561
+ * awaiting a commit was one until #3514: a task lands from the working tree since #3204.)
1417
1562
  * Without it the plan simply falls silent: `CONTINUE_THE_PLAN` is derived from the next ready task,
1418
1563
  * and a stuck queue has none (#1451, #1463).
1419
1564
  */
1420
1565
  UNBLOCK_THE_PLAN = "unblock-the-plan",
1566
+ /**
1567
+ * Nothing in the plan can run and it is not finished, because a specifications module fails (#3258). `subject` names the
1568
+ * modules. ASKED because the remedy is fixing the module, and without this line such a plan reads as nothing at all: no
1569
+ * next task, not finished, and no stuck task to explain it.
1570
+ */
1571
+ SPECIFICATION_FAULT_HOLDS_THE_PLAN = "specification-fault-holds-the-plan",
1572
+ /**
1573
+ * A FOLLOW-UP task landed while its latest completed run still reports a requirement unmet (#2583): advisory, never a
1574
+ * reason the loop stops. `taskRef` is the follow-up, `subject` names each requirement and what the run said is
1575
+ * missing. The door is running it again on purpose: `wildo build run <ref> --despite-landed --reason operator-judgement`.
1576
+ */
1577
+ FOLLOW_UP_LANDED_WITH_GAP = "follow-up-landed-with-gap",
1578
+ /**
1579
+ * Files a build task's coding runs left UNCOMMITTED that no automatic door will commit (#3267): a failed run's file a
1580
+ * retry refused, or a file dirty at a retry's baseline with what earlier failed runs left, and no run of the task live.
1581
+ * ASKED, because only a person can settle it: `taskRef` is the task, `subject` names each file and the runs whose
1582
+ * record holds it. The doors are `wildo build accept <ref> --leftovers` (commit, under those runs) and the discard
1583
+ * command `wildo build tasks` prints per file. Derived from the write register and the tree, so it disappears once
1584
+ * each file is committed or discarded.
1585
+ */
1586
+ RUN_LEFTOVER_UNCOMMITTED = "run-leftover-uncommitted",
1587
+ /**
1588
+ * A build task LANDED and something its landing does not cover is unfinished (#3285): a billing catalogue committed
1589
+ * while the backend does not enable billing, so nothing serves it. Advisory, a mark beside the landing and never a
1590
+ * reason anything stops. `taskRef` is the task, `subject` names each setting still to set and the file that holds it;
1591
+ * `wildo build tasks` prints what each needs first. Derived from the committed tree, so it disappears once the setting
1592
+ * is committed.
1593
+ */
1594
+ LANDED_WITH_ADVISORY = "landed-with-advisory",
1421
1595
  /** An eligible playbook whose output family is missing. */
1422
1596
  PRODUCE_MISSING = "produce-missing",
1423
1597
  /** An eligible playbook whose output is stale — derived before one of its inputs last changed. */
@@ -1433,19 +1607,19 @@ export declare enum WorkbenchCreationHomeLineKind {
1433
1607
  * companion serves unparseable by an older workbench.
1434
1608
  */
1435
1609
  export declare const Workbench_CreationHomeLine_Schema: z.ZodObject<{
1436
- workbenchCreationHomeLineId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1437
- section: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchCreationHomeSection>>>;
1438
- kind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchCreationHomeLineKind>>>;
1439
- at: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodDate>>;
1440
- playbookRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
1441
- taskRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
1442
- subject: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
1443
- failed: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
1444
- acceptable: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
1445
- needsAnswers: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
1446
- stuckReason: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof Workbench_BuildTaskStuckReason>>>>;
1447
- targetResourceType: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
1448
- targetResourceId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
1610
+ workbenchCreationHomeLineId: z.ZodString;
1611
+ section: z.ZodEnum<typeof WorkbenchCreationHomeSection>;
1612
+ kind: z.ZodEnum<typeof WorkbenchCreationHomeLineKind>;
1613
+ at: z.ZodNullable<z.ZodDate>;
1614
+ playbookRef: z.ZodNullable<z.ZodString>;
1615
+ taskRef: z.ZodNullable<z.ZodString>;
1616
+ subject: z.ZodNullable<z.ZodString>;
1617
+ failed: z.ZodBoolean;
1618
+ acceptable: z.ZodBoolean;
1619
+ needsAnswers: z.ZodBoolean;
1620
+ stuckReason: z.ZodNullable<z.ZodEnum<typeof Workbench_BuildTaskStuckReason>>;
1621
+ targetResourceType: z.ZodString;
1622
+ targetResourceId: z.ZodString;
1449
1623
  }, z.core.$strip>;
1450
1624
  export type Workbench_CreationHomeLine = z.infer<typeof Workbench_CreationHomeLine_Schema>;
1451
1625
  /**
@@ -1481,18 +1655,18 @@ export declare enum WorkbenchCreationOutcomeStatus {
1481
1655
  * well.
1482
1656
  */
1483
1657
  export declare const Workbench_CreationOutcome_Schema: z.ZodObject<{
1484
- workbenchCreationOutcomeId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1485
- outcome: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchCreationOutcome>>>;
1486
- status: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchCreationOutcomeStatus>>>;
1487
- position: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
1488
- familiesTotal: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
1489
- familiesLanded: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
1490
- familiesInvalid: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
1491
- familiesMissing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
1492
- familiesStale: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
1493
- tasksTotal: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodNumber>>;
1494
- tasksLanded: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodNumber>>;
1495
- unavailableRuntimes: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodArray<z.ZodString>>>;
1658
+ workbenchCreationOutcomeId: z.ZodString;
1659
+ outcome: z.ZodEnum<typeof WorkbenchCreationOutcome>;
1660
+ status: z.ZodEnum<typeof WorkbenchCreationOutcomeStatus>;
1661
+ position: z.ZodNumber;
1662
+ familiesTotal: z.ZodNumber;
1663
+ familiesLanded: z.ZodNumber;
1664
+ familiesInvalid: z.ZodNumber;
1665
+ familiesMissing: z.ZodNumber;
1666
+ familiesStale: z.ZodNumber;
1667
+ tasksTotal: z.ZodNullable<z.ZodNumber>;
1668
+ tasksLanded: z.ZodNullable<z.ZodNumber>;
1669
+ unavailableRuntimes: z.ZodNullable<z.ZodArray<z.ZodString>>;
1496
1670
  }, z.core.$strip>;
1497
1671
  export type Workbench_CreationOutcome = z.infer<typeof Workbench_CreationOutcome_Schema>;
1498
1672
  /** An operation that takes nothing. */
@@ -1508,6 +1682,7 @@ export declare const Workbench_RunWriteFileDiff_Schema: z.ZodObject<{
1508
1682
  existedBefore: z.ZodBoolean;
1509
1683
  diverged: z.ZodBoolean;
1510
1684
  diff: z.ZodString;
1685
+ binary: z.ZodOptional<z.ZodLiteral<true>>;
1511
1686
  }, z.core.$strip>;
1512
1687
  export type Workbench_RunWriteFileDiff = z.infer<typeof Workbench_RunWriteFileDiff_Schema>;
1513
1688
  export declare const Workbench_RunWriteDiff_Schema: z.ZodObject<{
@@ -1519,6 +1694,7 @@ export declare const Workbench_RunWriteDiff_Schema: z.ZodObject<{
1519
1694
  existedBefore: z.ZodBoolean;
1520
1695
  diverged: z.ZodBoolean;
1521
1696
  diff: z.ZodString;
1697
+ binary: z.ZodOptional<z.ZodLiteral<true>>;
1522
1698
  }, z.core.$strip>>;
1523
1699
  }, z.core.$strip>;
1524
1700
  export type Workbench_RunWriteDiff = z.infer<typeof Workbench_RunWriteDiff_Schema>;
@@ -1634,7 +1810,8 @@ export type Workbench_CodingRunCancelOutcome = z.infer<typeof Workbench_CodingRu
1634
1810
  * The governed document's one verb: LAND the facts a person established for it as the
1635
1811
  * `document-facts-authored` family. The row is the document; the body carries the governance scope,
1636
1812
  * the answers and, for a reviewed fact, the review — a per-question verb with a bare value could
1637
- * carry none of that, which is why the question resource has no write verb of its own.
1813
+ * carry none of that, which is why ANSWERING stays on the document. Deferring one question carries
1814
+ * only a reason and asserts nothing, so it is the question's own verb (`WorkbenchGovernanceQuestions_Operations`).
1638
1815
  */
1639
1816
  export declare enum WorkbenchGovernanceDocuments_Operations {
1640
1817
  LAND_FACTS = "land_facts"
@@ -1661,6 +1838,31 @@ export declare const Workbench_GovernanceFactsLandingRequest_Schema: z.ZodObject
1661
1838
  dryRun: z.ZodOptional<z.ZodBoolean>;
1662
1839
  }, z.core.$strip>;
1663
1840
  export type Workbench_GovernanceFactsLandingRequest = z.infer<typeof Workbench_GovernanceFactsLandingRequest_Schema>;
1841
+ /**
1842
+ * The governance question's one verb (#3439): DEFER it — the person says the fact concerns this application and is not
1843
+ * decided yet, and why. A dossier write (`deferredDocumentFacts`), never a fact declaration, so the fact stays absent
1844
+ * and every clause resting on it stays owed. It names no governance scope and records no review, which is why it can be
1845
+ * a per-question verb while answering cannot (see {@link WorkbenchGovernanceDocuments_Operations}).
1846
+ */
1847
+ export declare enum WorkbenchGovernanceQuestions_Operations {
1848
+ DEFER = "defer"
1849
+ }
1850
+ /**
1851
+ * Whether a governance question in this standing may be DEFERRED (#3439): one still needed, and one already deferred
1852
+ * (re-deferring rewords the reason). A fact the product establishes is read, never deferred; and an ANSWERED fact is
1853
+ * not either, because a landed declaration wins over a deferral of the same fact (`deriveOpenGovernanceQuestions`), so
1854
+ * the deferral would change nothing anyone sees. The ONE predicate the operation refuses by and the workbench offers by.
1855
+ */
1856
+ export declare function governanceQuestionAdmitsDeferral(standing: WorkbenchDossierEntryStanding): boolean;
1857
+ export declare const Workbench_GovernanceQuestionDeferRequest_Schema: z.ZodObject<{
1858
+ reason: z.ZodString;
1859
+ }, z.core.$strip>;
1860
+ export type Workbench_GovernanceQuestionDeferRequest = z.infer<typeof Workbench_GovernanceQuestionDeferRequest_Schema>;
1861
+ export declare const Workbench_GovernanceQuestionDeferOutcome_Schema: z.ZodObject<{
1862
+ factRef: z.ZodString;
1863
+ packageRelativePath: z.ZodString;
1864
+ }, z.core.$loose>;
1865
+ export type Workbench_GovernanceQuestionDeferOutcome = z.infer<typeof Workbench_GovernanceQuestionDeferOutcome_Schema>;
1664
1866
  export declare const Workbench_GovernanceFactsLandingOutcome_Schema: z.ZodObject<{
1665
1867
  family: z.ZodString;
1666
1868
  packageRelativePath: z.ZodString;
@@ -1766,17 +1968,17 @@ export declare function splitApplicationSecretRowId(rowId: string): {
1766
1968
  * secrets section. Names and standings only: a value never enters this row, in either direction of the wire.
1767
1969
  */
1768
1970
  export declare const Workbench_ApplicationSecret_Schema: z.ZodObject<{
1769
- workbenchApplicationSecretId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1770
- environmentName: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
1771
- envVarName: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
1772
- standing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof ApplicationSecretStanding>>>;
1773
- kind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof ApplicationSecretKind>>>;
1774
- ownerRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
1971
+ workbenchApplicationSecretId: z.ZodString;
1972
+ environmentName: z.ZodString;
1973
+ envVarName: z.ZodString;
1974
+ standing: z.ZodEnum<typeof ApplicationSecretStanding>;
1975
+ kind: z.ZodEnum<typeof ApplicationSecretKind>;
1976
+ ownerRef: z.ZodNullable<z.ZodString>;
1775
1977
  description: z.ZodNullable<z.ZodString>;
1776
- capabilities: z.ZodArray<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof EngineCapability>>>;
1978
+ capabilities: z.ZodArray<z.ZodEnum<typeof EngineCapability>>;
1777
1979
  runtimes: z.ZodArray<z.ZodString>;
1778
1980
  creationEssential: z.ZodBoolean;
1779
- remoteLevel: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof ApplicationSecretRemoteLevel>>>;
1981
+ remoteLevel: z.ZodNullable<z.ZodEnum<typeof ApplicationSecretRemoteLevel>>;
1780
1982
  }, z.core.$strip>;
1781
1983
  export type Workbench_ApplicationSecret = z.infer<typeof Workbench_ApplicationSecret_Schema>;
1782
1984
  /** The secret row's two verbs. Both run `wildo secrets set/unset`, which is the only writer of a secret. */
@@ -1790,7 +1992,7 @@ export declare enum WorkbenchApplicationSecrets_Operations {
1790
1992
  UNSET = "unset"
1791
1993
  }
1792
1994
  export declare const Workbench_ApplicationSecretSetRequest_Schema: z.ZodObject<{
1793
- value: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
1995
+ value: z.ZodString;
1794
1996
  }, z.core.$strip>;
1795
1997
  export type Workbench_ApplicationSecretSetRequest = z.infer<typeof Workbench_ApplicationSecretSetRequest_Schema>;
1796
1998
  /**
@@ -1804,7 +2006,7 @@ export type Workbench_ApplicationSecretSetRequest = z.infer<typeof Workbench_App
1804
2006
  */
1805
2007
  export declare const Workbench_ApplicationSecretChangeOutcome_Schema: z.ZodObject<{
1806
2008
  envVarName: z.ZodString;
1807
- kind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof ApplicationSecretKind>>;
2009
+ kind: z.ZodEnum<typeof ApplicationSecretKind>;
1808
2010
  envName: z.ZodString;
1809
2011
  restartSignalledRuntimes: z.ZodArray<z.ZodString>;
1810
2012
  envFilesRegenerated: z.ZodBoolean;