@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.
- package/dist/esm/core/resources/resources-operations.custom.shared.definitions.d.ts.map +1 -1
- package/dist/esm/core/resources/resources-operations.custom.shared.definitions.js.map +1 -1
- package/dist/esm/core/resources/resources-relationships.custom.shared.definitions.d.ts.map +1 -1
- package/dist/esm/core/resources/resources-relationships.custom.shared.definitions.js.map +1 -1
- package/dist/esm/core/resources/resources-types.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/core/resources/resources-types.custom.shared.schemas.js.map +1 -1
- package/dist/esm/dev-runtime/dependency-install-record.d.ts +111 -0
- package/dist/esm/dev-runtime/dependency-install-record.d.ts.map +1 -0
- package/dist/esm/dev-runtime/dependency-install-record.js +185 -0
- package/dist/esm/dev-runtime/dependency-install-record.js.map +1 -0
- package/dist/esm/dev-runtime/dev-runtime-command.d.ts +50 -0
- package/dist/esm/dev-runtime/dev-runtime-command.d.ts.map +1 -0
- package/dist/esm/dev-runtime/dev-runtime-command.js +147 -0
- package/dist/esm/dev-runtime/dev-runtime-command.js.map +1 -0
- package/dist/esm/dev-runtime/dev-runtime-processes.d.ts +47 -0
- package/dist/esm/dev-runtime/dev-runtime-processes.d.ts.map +1 -0
- package/dist/esm/dev-runtime/dev-runtime-processes.js +163 -0
- package/dist/esm/dev-runtime/dev-runtime-processes.js.map +1 -0
- package/dist/esm/dev-runtime/dev-runtime-signals.d.ts +54 -0
- package/dist/esm/dev-runtime/dev-runtime-signals.d.ts.map +1 -0
- package/dist/esm/dev-runtime/dev-runtime-signals.js +113 -0
- package/dist/esm/dev-runtime/dev-runtime-signals.js.map +1 -0
- package/dist/esm/dev-runtime/emitted-relative-specifiers.d.ts +14 -0
- package/dist/esm/dev-runtime/emitted-relative-specifiers.d.ts.map +1 -0
- package/dist/esm/dev-runtime/emitted-relative-specifiers.js +71 -0
- package/dist/esm/dev-runtime/emitted-relative-specifiers.js.map +1 -0
- package/dist/esm/dev-runtime/frontend-dev-runtime.d.ts +43 -0
- package/dist/esm/dev-runtime/frontend-dev-runtime.d.ts.map +1 -0
- package/dist/esm/dev-runtime/frontend-dev-runtime.js +42 -0
- package/dist/esm/dev-runtime/frontend-dev-runtime.js.map +1 -0
- package/dist/esm/dev-runtime/node-runtime-dev-supervisor.d.ts +233 -0
- package/dist/esm/dev-runtime/node-runtime-dev-supervisor.d.ts.map +1 -0
- package/dist/esm/dev-runtime/node-runtime-dev-supervisor.js +578 -0
- package/dist/esm/dev-runtime/node-runtime-dev-supervisor.js.map +1 -0
- package/dist/esm/dev-runtime/package-compile-loop.d.ts +125 -0
- package/dist/esm/dev-runtime/package-compile-loop.d.ts.map +1 -0
- package/dist/esm/dev-runtime/package-compile-loop.js +386 -0
- package/dist/esm/dev-runtime/package-compile-loop.js.map +1 -0
- package/dist/esm/dev-runtime.exports.d.ts +19 -0
- package/dist/esm/dev-runtime.exports.d.ts.map +1 -0
- package/dist/esm/dev-runtime.exports.js +19 -0
- package/dist/esm/dev-runtime.exports.js.map +1 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/runtime/application-backend-env.contracts.d.ts +9 -2
- package/dist/esm/runtime/application-backend-env.contracts.d.ts.map +1 -1
- package/dist/esm/runtime/application-backend-env.contracts.js +8 -1
- package/dist/esm/runtime/application-backend-env.contracts.js.map +1 -1
- package/dist/esm/runtime/application-worker-env.contracts.d.ts +11 -3
- package/dist/esm/runtime/application-worker-env.contracts.d.ts.map +1 -1
- package/dist/esm/runtime/application-worker-env.contracts.js +9 -0
- package/dist/esm/runtime/application-worker-env.contracts.js.map +1 -1
- package/dist/esm/runtime/backend-start-outcome.contracts.d.ts +27 -0
- package/dist/esm/runtime/backend-start-outcome.contracts.d.ts.map +1 -1
- package/dist/esm/runtime/backend-start-outcome.contracts.js +34 -0
- package/dist/esm/runtime/backend-start-outcome.contracts.js.map +1 -1
- package/dist/esm/runtime/frontend-settings-hub-wiring.contracts.d.ts +28 -0
- package/dist/esm/runtime/frontend-settings-hub-wiring.contracts.d.ts.map +1 -0
- package/dist/esm/runtime/frontend-settings-hub-wiring.contracts.js +35 -0
- package/dist/esm/runtime/frontend-settings-hub-wiring.contracts.js.map +1 -0
- package/dist/esm/runtime/http-server-env.contracts.d.ts +14 -1
- package/dist/esm/runtime/http-server-env.contracts.d.ts.map +1 -1
- package/dist/esm/runtime/http-server-env.contracts.js +13 -0
- package/dist/esm/runtime/http-server-env.contracts.js.map +1 -1
- package/dist/esm/runtime/local-dev-runtime-signals.contracts.d.ts +239 -0
- package/dist/esm/runtime/local-dev-runtime-signals.contracts.d.ts.map +1 -0
- package/dist/esm/runtime/local-dev-runtime-signals.contracts.js +256 -0
- package/dist/esm/runtime/local-dev-runtime-signals.contracts.js.map +1 -0
- package/dist/esm/runtime/runtime-topology.contracts.d.ts.map +1 -1
- package/dist/esm/runtime/runtime-topology.contracts.js.map +1 -1
- package/dist/esm/security/authorizations/roles.custom.shared.definitions.d.ts.map +1 -1
- package/dist/esm/security/authorizations/roles.custom.shared.definitions.js.map +1 -1
- package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.d.ts +112 -104
- package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.js +4 -3
- package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.d.ts +112 -104
- package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.js.map +1 -1
- package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.d.ts +24 -34
- package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.js +4 -3
- package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.d.ts +24 -34
- package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.js.map +1 -1
- package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.d.ts +3 -3
- package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.js +30 -42
- package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/wildo-applications/wildo-applications.custom.shared.schemas.d.ts +9 -9
- package/dist/esm/wildo-applications/wildo-applications.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/wildo-applications/wildo-applications.custom.shared.schemas.js.map +1 -1
- package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.schemas.d.ts +7 -7
- package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/creation-drive.custom.shared.schemas.d.ts +82 -0
- package/dist/esm/workbench/creation-drive.custom.shared.schemas.d.ts.map +1 -0
- package/dist/esm/workbench/creation-drive.custom.shared.schemas.js +73 -0
- package/dist/esm/workbench/creation-drive.custom.shared.schemas.js.map +1 -0
- package/dist/esm/workbench/creation-journey-timeline.custom.shared.schemas.d.ts +183 -0
- package/dist/esm/workbench/creation-journey-timeline.custom.shared.schemas.d.ts.map +1 -0
- package/dist/esm/workbench/creation-journey-timeline.custom.shared.schemas.js +188 -0
- package/dist/esm/workbench/creation-journey-timeline.custom.shared.schemas.js.map +1 -0
- package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.js +46 -0
- package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.d.ts +170 -7
- package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.js +177 -7
- package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-creation-dossier.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-creation-dossier.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.d.ts +480 -459
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.js +21 -16
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.d.ts +480 -278
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.js +316 -46
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-domain-model.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-domain-model.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.d.ts +7 -0
- package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.js +13 -1
- package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.d.ts +287 -277
- package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-resources.custom.shared.schemas.d.ts +34 -29
- package/dist/esm/workbench/workbench-resources.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-resources.custom.shared.schemas.js +9 -5
- package/dist/esm/workbench/workbench-resources.custom.shared.schemas.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- 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 { initZodDecorators, StringEditMode } from '@wildo-ai/zod-decorators';
|
|
@@ -173,18 +173,13 @@ export var WorkbenchBuildPlanTaskStatus;
|
|
|
173
173
|
*/
|
|
174
174
|
export var Workbench_BuildTaskStuckReason;
|
|
175
175
|
(function (Workbench_BuildTaskStuckReason) {
|
|
176
|
-
/** It already ran, and its declared product is absent even from the working tree: fix the declaration or the work. */
|
|
177
|
-
Workbench_BuildTaskStuckReason["COMPLETED_UNLANDED"] = "completed_unlanded";
|
|
178
176
|
/**
|
|
179
|
-
* It already ran, and its declared product
|
|
180
|
-
* committed because acceptance is a commit.
|
|
177
|
+
* It already ran, and its declared product is absent from the working tree: fix the declaration or the work.
|
|
181
178
|
*
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
* means its accept REFUSED a path — carried changes from before the run, edited since, or not this
|
|
185
|
-
* run's — and the companion's warning names which. The remedy is that refusal's, not a blind commit.
|
|
179
|
+
* There is no "written, awaiting a commit" reason (#3514): a task lands when its product is in the working tree and
|
|
180
|
+
* something checked it (#3204), and a commit is a build checkpoint that records, never a condition of landing.
|
|
186
181
|
*/
|
|
187
|
-
Workbench_BuildTaskStuckReason["
|
|
182
|
+
Workbench_BuildTaskStuckReason["COMPLETED_UNLANDED"] = "completed_unlanded";
|
|
188
183
|
/** Its run suspended on a question nobody has answered; re-dispatching would abandon that session. */
|
|
189
184
|
Workbench_BuildTaskStuckReason["PARKED_AWAITING_ANSWER"] = "parked_awaiting_answer";
|
|
190
185
|
/** It produces a governed document the engine catalog does not define, so no run can author it. */
|
|
@@ -202,21 +197,94 @@ export var Workbench_BuildTaskStuckReason;
|
|
|
202
197
|
* or two agents would build the same task. Nobody's move: it clears when that run settles.
|
|
203
198
|
*/
|
|
204
199
|
Workbench_BuildTaskStuckReason["IN_FLIGHT"] = "in_flight";
|
|
200
|
+
/**
|
|
201
|
+
* A live run of ANOTHER task may write one of the files this task's declared products are written to (#3204). Two runs
|
|
202
|
+
* writing one file in the shared worktree interfere: one overwrites the other, and the wave repairs it after the fact
|
|
203
|
+
* with a re-check or a re-run. So the wave's own selection passes over it for a ready task whose declared products
|
|
204
|
+
* meet nothing in flight. Only DECLARED products are compared; a shared file no product names (a module barrel, a
|
|
205
|
+
* registry) is still left to the after-the-fact repair. Nobody's move: it clears when that run settles.
|
|
206
|
+
*/
|
|
207
|
+
Workbench_BuildTaskStuckReason["CONTENDED"] = "contended";
|
|
208
|
+
/**
|
|
209
|
+
* Its latest run failed its checks while other runs of the wave were writing beside it, so the failure may be theirs
|
|
210
|
+
* (#3204): a sibling's half-written file turned a shared typecheck red, or left a package's compiled output stale so the
|
|
211
|
+
* check could not be asked at all. It is not dispatched again in the same wave, where it would meet the same tree: the
|
|
212
|
+
* 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
|
|
213
|
+
* 42621319676: two schema tasks re-dispatched five times in nine minutes, each failing on a sibling's red build, spent their
|
|
214
|
+
* attempt budget while their checks passed alone. Nobody's move: it clears when the wave ends.
|
|
215
|
+
*/
|
|
216
|
+
Workbench_BuildTaskStuckReason["AWAITING_ISOLATED_RECHECK"] = "awaiting_isolated_recheck";
|
|
217
|
+
/**
|
|
218
|
+
* A generation step whose landing check could not be ANSWERED right now (#3223): a schema-plan check that neither passed
|
|
219
|
+
* nor reported drift, a design-token block the CLI could not validate, a brand nobody could read. Not "not landed": it
|
|
220
|
+
* is UNKNOWN, so it is never dispatched — running it would either fail the same way or redo work that may well have
|
|
221
|
+
* landed (a companion restart re-ran a landed `design-system-brand` step this way). It clears on its own once the check
|
|
222
|
+
* answers; when it does not, the dispatch refusal names the check and the command that shows why.
|
|
223
|
+
*/
|
|
224
|
+
Workbench_BuildTaskStuckReason["LANDING_UNKNOWN"] = "landing_unknown";
|
|
225
|
+
/**
|
|
226
|
+
* A FOLLOW-UP the host derived from a reported gap (#3227), waiting for the creator's review before it runs: the
|
|
227
|
+
* autonomy posture (`one-source-of-truth.md` D5) keeps approving a result a person's act, and a follow-up is work the
|
|
228
|
+
* accepted plan never listed. `wildo build approve <ref>` lets it run; `wildo build close <ref> --declined` closes it.
|
|
229
|
+
* Never reached under the automatic posture, where follow-ups run as they are derived.
|
|
230
|
+
*/
|
|
231
|
+
Workbench_BuildTaskStuckReason["FOLLOW_UP_AWAITING_REVIEW"] = "follow_up_awaiting_review";
|
|
232
|
+
/**
|
|
233
|
+
* A generation step whose panel refused to seat expert charters older than their inputs (#3244): a build task changed
|
|
234
|
+
* what they read (the design system, say). Passed over so the rest of the plan proceeds, and offered again once the
|
|
235
|
+
* staffing step, `top_down.expert-personas`, has derived them again, which the build-dispatch step runs on its own
|
|
236
|
+
* (reference run 42218788356, where the refusal ended the build lane at 32 of 98 tasks). A charter a person edited is
|
|
237
|
+
* never derived again: its remedy is the hand edit.
|
|
238
|
+
*/
|
|
239
|
+
Workbench_BuildTaskStuckReason["STALE_EXPERT_CHARTERS"] = "stale_expert_charters";
|
|
240
|
+
/**
|
|
241
|
+
* A GENERATION STEP whose last two runs FAILED with the same failure, and nothing it could read has changed since the
|
|
242
|
+
* latest (#3709). A third run would meet the same inputs and fail the same way, so the unattended loop passes it over
|
|
243
|
+
* and runs the rest of the plan. Measured on reference run 42886943490: `build-task-documentation-publication` failed 21
|
|
244
|
+
* times in 76 minutes on one engine-owned cause (OpenAPI examples that did not match their schema), and
|
|
245
|
+
* `build-task-gen-i18n-labels` ran 32 times, for an hour as the only dispatchable task, so the waves ran nothing.
|
|
246
|
+
*
|
|
247
|
+
* The same rule a choreography lane meets (two identical failures over the same reads, 596611bf2). It clears by itself
|
|
248
|
+
* once anything outside the step's own write scope is committed or edited; a person who fixed a cause the application
|
|
249
|
+
* does not hold (an engine's examples, an engine label key) runs it by name (`wildo build run <task>`).
|
|
250
|
+
*/
|
|
251
|
+
Workbench_BuildTaskStuckReason["REPEATED_IDENTICAL_FAILURE"] = "repeated_identical_failure";
|
|
252
|
+
/**
|
|
253
|
+
* A GENERATION STEP whose latest run failed on a cause the FRAMEWORK owns, not the application (#3709): the step said so
|
|
254
|
+
* on its result (`failureOwner`), for instance a documentation publication refused only by examples the engine's own
|
|
255
|
+
* resource specifications author. No change in the application can fix it, so it is held after the FIRST such failure,
|
|
256
|
+
* whatever moves in the application's tree, and the rest of the plan proceeds. Fix it in the framework, then run it by
|
|
257
|
+
* name or re-arm it.
|
|
258
|
+
*/
|
|
259
|
+
Workbench_BuildTaskStuckReason["FAILURE_OUTSIDE_APPLICATION"] = "failure_outside_application";
|
|
205
260
|
})(Workbench_BuildTaskStuckReason || (Workbench_BuildTaskStuckReason = {}));
|
|
261
|
+
/**
|
|
262
|
+
* The stuck reasons that only WAIT for a live run to settle (#1528, #3204): progress, never a finding, and proof that a
|
|
263
|
+
* run is live. One set, so the dispatch's warning and the Home projection cannot disagree about which reasons mean it.
|
|
264
|
+
*/
|
|
265
|
+
export const WORKBENCH_BUILD_TASK_STUCK_REASONS_WAITING_ON_A_LIVE_RUN = new Set([
|
|
266
|
+
Workbench_BuildTaskStuckReason.IN_FLIGHT,
|
|
267
|
+
Workbench_BuildTaskStuckReason.CONTENDED,
|
|
268
|
+
]);
|
|
206
269
|
/**
|
|
207
270
|
* 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
|
|
208
271
|
* back — `WorkbenchBuildPlanTasks_Operations.REARM` is offered for these and no other.
|
|
209
272
|
*
|
|
210
273
|
* - `completed_unlanded`: a completed run holds it through the loop guard, and a re-arm releases that run.
|
|
211
274
|
* - `attempts_exhausted`: its failed runs hold it through the attempt budget, and a re-arm releases them.
|
|
275
|
+
* - `repeated_identical_failure`: a generation step's identical failed runs hold it (#3709), and a re-arm releases them.
|
|
276
|
+
* - `failure_outside_application`: a generation step's run that failed on a framework cause holds it (#3709); a re-arm
|
|
277
|
+
* releases it once the framework is fixed.
|
|
212
278
|
*
|
|
213
|
-
* Left out, each because a re-arm would be the wrong remedy: `
|
|
214
|
-
*
|
|
215
|
-
*
|
|
279
|
+
* Left out, each because a re-arm would be the wrong remedy: `parked_awaiting_answer` (a question waits), `in_flight` (a run is
|
|
280
|
+
* live), `no_document_blueprint` (no run can produce it), `landing_unknown` (nothing holds it but a check that has not
|
|
281
|
+
* answered yet).
|
|
216
282
|
*/
|
|
217
283
|
export const WORKBENCH_REARMABLE_STUCK_REASONS = [
|
|
218
284
|
Workbench_BuildTaskStuckReason.COMPLETED_UNLANDED,
|
|
219
285
|
Workbench_BuildTaskStuckReason.ATTEMPTS_EXHAUSTED,
|
|
286
|
+
Workbench_BuildTaskStuckReason.REPEATED_IDENTICAL_FAILURE,
|
|
287
|
+
Workbench_BuildTaskStuckReason.FAILURE_OUTSIDE_APPLICATION,
|
|
220
288
|
];
|
|
221
289
|
/**
|
|
222
290
|
* Whose failure a failed coding run was (#1581), as the run's output records it.
|
|
@@ -250,6 +318,12 @@ export var BuildTaskRearmReason;
|
|
|
250
318
|
BuildTaskRearmReason["BLOCKING_DEFECT_FIXED"] = "blocking-defect-fixed";
|
|
251
319
|
/** Neither of the above: an operator judged the work should run again. The note says why. */
|
|
252
320
|
BuildTaskRearmReason["OPERATOR_JUDGEMENT"] = "operator-judgement";
|
|
321
|
+
/**
|
|
322
|
+
* The ENVIRONMENT failed the runs, not the task (#3236): the network or the machine went away (DNS lost, a connection
|
|
323
|
+
* cut, a sleep) and the runs the outage took are released. Distinct from `operator-judgement` so a later reader of the
|
|
324
|
+
* task's history sees that its failed attempts said nothing about the work.
|
|
325
|
+
*/
|
|
326
|
+
BuildTaskRearmReason["ENVIRONMENT"] = "environment";
|
|
253
327
|
/**
|
|
254
328
|
* Set by the BUILD WAVE, never by a person (#2210): the run completed while other runs edited the same tree, and its
|
|
255
329
|
* declared product is missing from a file one of them also changed, so the loss is theirs rather than the task's. The
|
|
@@ -262,6 +336,22 @@ export var BuildTaskRearmReason;
|
|
|
262
336
|
*/
|
|
263
337
|
BuildTaskRearmReason["INTERFERED_BY_CONCURRENT_RUN"] = "interfered-by-concurrent-run";
|
|
264
338
|
})(BuildTaskRearmReason || (BuildTaskRearmReason = {}));
|
|
339
|
+
/**
|
|
340
|
+
* How a build task a PERSON closed is accounted for (`wildo build close`, #3224, #3225, #3227) — the one question a reader
|
|
341
|
+
* of a closed task asks: what made it done, if anything did. A closure never makes a task's product true; it records that
|
|
342
|
+
* a person said it is done another way, or that a derived follow-up is not wanted. Declared here rather than beside its
|
|
343
|
+
* producer (the companion's build dispatch) because the workbench shows it on the task's record, and a browser bundle
|
|
344
|
+
* cannot import the companion.
|
|
345
|
+
*/
|
|
346
|
+
export var BuildTaskClosureKind;
|
|
347
|
+
(function (BuildTaskClosureKind) {
|
|
348
|
+
/** Another task of the plan built what this one was for. It counts as landed while that task is landed. */
|
|
349
|
+
BuildTaskClosureKind["SATISFIED_BY_TASK"] = "satisfied_by_task";
|
|
350
|
+
/** A commit HEAD contains built it (a person's, a reconciliation's). It counts as landed while the closure is committed. */
|
|
351
|
+
BuildTaskClosureKind["SATISFIED_BY_COMMIT"] = "satisfied_by_commit";
|
|
352
|
+
/** A host-derived follow-up the creator declines: the gap it answers is not worked. Follow-ups only. */
|
|
353
|
+
BuildTaskClosureKind["DECLINED"] = "declined";
|
|
354
|
+
})(BuildTaskClosureKind || (BuildTaskClosureKind = {}));
|
|
265
355
|
/**
|
|
266
356
|
* The reasons a PERSON may give (`wildo build rearm`, the companion's re-arm route, the workbench's `rearm` operation).
|
|
267
357
|
* The wave's own reason is left out: it asserts a measurement (a sibling changed the product's file during the run)
|
|
@@ -271,6 +361,7 @@ export const OPERATOR_BUILD_TASK_REARM_REASONS = [
|
|
|
271
361
|
BuildTaskRearmReason.PROBE_CORRECTED,
|
|
272
362
|
BuildTaskRearmReason.BLOCKING_DEFECT_FIXED,
|
|
273
363
|
BuildTaskRearmReason.OPERATOR_JUDGEMENT,
|
|
364
|
+
BuildTaskRearmReason.ENVIRONMENT,
|
|
274
365
|
];
|
|
275
366
|
/**
|
|
276
367
|
* How far one BUILD DISPATCH got — the whole of what `GET /build/dispatches` can honestly say.
|
|
@@ -495,6 +586,17 @@ export const Workbench_RunWriteRecord_Schema = z.object({
|
|
|
495
586
|
fileCount: z.number().int().isSummaryField(),
|
|
496
587
|
/** The commit the workbench's `accept` made of these writes (#1454, Step 7); NULL until one has. */
|
|
497
588
|
acceptedCommitSha: z.string().min(1).isSummaryField().nullable(),
|
|
589
|
+
/**
|
|
590
|
+
* The run FAILED after writing these files (#3265): a half-applied composition the autonomy posture never commits and no
|
|
591
|
+
* coding door takes. Not a landing, and shown as failed wherever the record is listed, with its accept and revert doors,
|
|
592
|
+
* because nothing else prompts a person to settle it. `false` on every completed landing.
|
|
593
|
+
*/
|
|
594
|
+
landingFailed: z.boolean().isSummaryField(),
|
|
595
|
+
/**
|
|
596
|
+
* For a failed landing, the two commands that settle it (`wildo creation accept <runId>` / `revert <runId>`), as the
|
|
597
|
+
* companion names them on every surface that lists the run (#3265). NULL on a completed landing.
|
|
598
|
+
*/
|
|
599
|
+
failedLandingRemedies: z.object({ accept: z.string().min(1), revert: z.string().min(1) }).isSummaryField().nullable(),
|
|
498
600
|
});
|
|
499
601
|
/** One execution-trace session — the queryable index the board links from. */
|
|
500
602
|
export const Workbench_TraceSession_Schema = z.object({
|
|
@@ -570,6 +672,17 @@ export var WorkbenchDossierEntryStanding;
|
|
|
570
672
|
* Changing it records the creator's own answer in its place.
|
|
571
673
|
*/
|
|
572
674
|
WorkbenchDossierEntryStanding["ASSUMED"] = "assumed";
|
|
675
|
+
/**
|
|
676
|
+
* The creator said the question does not concern this application, and why (#3437). Answered — nothing is
|
|
677
|
+
* blocked — and never filled in by a run. Changing it records an answer, or the other non-answer, in its place.
|
|
678
|
+
*/
|
|
679
|
+
WorkbenchDossierEntryStanding["NOT_APPLICABLE"] = "not-applicable";
|
|
680
|
+
/**
|
|
681
|
+
* The creator said the question concerns this application and is not decided yet, and why (#3437). Nothing waits
|
|
682
|
+
* on it: the step runs and marks what rests on it as owed; a governed document shows the clause as owed. Listed
|
|
683
|
+
* to revisit, like an assumption.
|
|
684
|
+
*/
|
|
685
|
+
WorkbenchDossierEntryStanding["DEFERRED"] = "deferred";
|
|
573
686
|
})(WorkbenchDossierEntryStanding || (WorkbenchDossierEntryStanding = {}));
|
|
574
687
|
/**
|
|
575
688
|
* Whether a CHOICE question's options can be offered right now — for a question whose options are
|
|
@@ -645,9 +758,12 @@ export const Workbench_GovernanceQuestion_Schema = z.object({
|
|
|
645
758
|
/** What choosing this option MEANS, in the creator's language rather than the schema's. */
|
|
646
759
|
creatorMeaning: z.string().min(1),
|
|
647
760
|
})).isSummaryField(),
|
|
648
|
-
/**
|
|
761
|
+
/**
|
|
762
|
+
* Answered in the authored facts (from you), deferred in the dossier (not decided yet, #3437), or neither (still
|
|
763
|
+
* needed) — the same standing vocabulary the interview dossier uses.
|
|
764
|
+
*/
|
|
649
765
|
standing: z.enum(WorkbenchDossierEntryStanding).systemEnum('WorkbenchDossierEntryStanding').isSummaryField(),
|
|
650
|
-
/** The answer as a person reads it — the text, the chosen options,
|
|
766
|
+
/** The answer as a person reads it — the text, the chosen options, the "does not apply" reason, or why it was deferred. `null` when still needed. */
|
|
651
767
|
answerSummary: z.string().nullable().isSummaryField(),
|
|
652
768
|
/** When the answer was decided (the declaration's own instant). `null` when still needed. */
|
|
653
769
|
answeredAt: z.date().nullable().isSummaryField(),
|
|
@@ -906,6 +1022,11 @@ export const Workbench_RunWriteRevertOutcome_Schema = z.looseObject({
|
|
|
906
1022
|
* would destroy that run's work. Each names the run to revert first (#1666).
|
|
907
1023
|
*/
|
|
908
1024
|
refusedLaterRun: z.array(z.object({ path: z.string(), runId: z.string() })).optional(),
|
|
1025
|
+
/**
|
|
1026
|
+
* Binary files the run replaced while their earlier version was uncommitted (#3264): the record holds their hash, not
|
|
1027
|
+
* their bytes, so nothing can restore them. Refused even under force.
|
|
1028
|
+
*/
|
|
1029
|
+
refusedWithoutPreImage: z.array(z.string()).optional(),
|
|
909
1030
|
note: z.string().optional(),
|
|
910
1031
|
});
|
|
911
1032
|
/**
|
|
@@ -978,8 +1099,15 @@ export const Workbench_BuildDispatchPlan_Schema = z.object({
|
|
|
978
1099
|
* counted as landed on pages that listed none. Named so "92 of 92 landed" can never hide it. Empty is healthy.
|
|
979
1100
|
*/
|
|
980
1101
|
landedBeforeAnyRunTaskRefs: z.array(z.string().min(1)).isSummaryField(),
|
|
981
|
-
/** TRUE when there is no next task because every one has landed. */
|
|
1102
|
+
/** TRUE when there is no next task because every one has landed, and no specifications module is failing. */
|
|
982
1103
|
exhausted: z.boolean().isSummaryField(),
|
|
1104
|
+
/**
|
|
1105
|
+
* The specifications modules failing while the plan has no next task (#3258). Such a plan is not `exhausted`: what landed
|
|
1106
|
+
* may only have run, and no check of the package can answer. Empty otherwise.
|
|
1107
|
+
*/
|
|
1108
|
+
failingSpecificationModules: z.array(z.string().min(1)).isSummaryField(),
|
|
1109
|
+
/** TRUE when that plan's next dispatch repairs the failing module (#3258), so nothing is asked of a person yet. */
|
|
1110
|
+
specificationRepairOwed: z.boolean(),
|
|
983
1111
|
/**
|
|
984
1112
|
* Every READY task dispatch passed over because it cannot make progress, and why (#1451).
|
|
985
1113
|
*
|
|
@@ -996,8 +1124,6 @@ export const Workbench_BuildDispatchPlan_Schema = z.object({
|
|
|
996
1124
|
reason: z.enum(Workbench_BuildTaskStuckReason).systemEnum('Workbench_BuildTaskStuckReason'),
|
|
997
1125
|
/** The run that proves it is stuck; NULL for a task that is unbuildable before any run. */
|
|
998
1126
|
priorTaskId: z.string().min(1).nullable(),
|
|
999
|
-
/** `completed_awaiting_commit` only: the probed paths present in the working tree and not committed. */
|
|
1000
|
-
uncommittedPaths: z.array(z.string().min(1)),
|
|
1001
1127
|
/** `parked_awaiting_answer` (and a parked `no_document_blueprint`): the question the run is waiting on. */
|
|
1002
1128
|
question: z.string().min(1).nullable(),
|
|
1003
1129
|
/** `no_document_blueprint` only: the governed document the catalog does not define. */
|
|
@@ -1217,24 +1343,24 @@ export var BrandDesignState;
|
|
|
1217
1343
|
/** The brand's visual tone could not be read, so currency cannot be decided either way. */
|
|
1218
1344
|
BrandDesignState["UNANSWERABLE"] = "unanswerable";
|
|
1219
1345
|
})(BrandDesignState || (BrandDesignState = {}));
|
|
1220
|
-
/** A landing probe
|
|
1346
|
+
/** A landing probe the working tree does not satisfy (#2530, #3204): what landing searched for there, and what is missing. */
|
|
1221
1347
|
export const Workbench_BuildTaskUnmetProbe_Schema = z.object({
|
|
1222
1348
|
/**
|
|
1223
|
-
* The files the probe reads, and how they are read: ONE path is that file,
|
|
1349
|
+
* The files the probe reads, and how they are read: ONE path is that file, present (and declaring `declarations`
|
|
1224
1350
|
* when it names any); SEVERAL paths with `declarations` are candidates, any one of which may declare them; several with
|
|
1225
|
-
* `keyPrefix` are the language packs, every
|
|
1351
|
+
* `keyPrefix` are the language packs, every present one of which must carry a key under it. Empty for a shell probe,
|
|
1226
1352
|
* which reads the resolved shell rather than a fixed file (`shellSurface`, `shell`). The probe's KIND is the
|
|
1227
1353
|
* companion's (`BuildPlanTaskLandedProbeKind`): these fields are what it looks for, and between them say which kind.
|
|
1228
1354
|
*/
|
|
1229
1355
|
paths: z.array(z.string().min(1)),
|
|
1230
1356
|
/**
|
|
1231
|
-
* The symbols the probe looks for in those files; empty for a probe that asks only that a file be
|
|
1357
|
+
* The symbols the probe looks for in those files; empty for a probe that asks only that a file be present. WHERE in
|
|
1232
1358
|
* the file they must sit (a set, one call's arguments, a key at an object path, a list's entry) is the companion's
|
|
1233
1359
|
* probe relation and is not carried: its parameters are code locations the companion derives only when it probes, and
|
|
1234
1360
|
* no surface shows them, a run's included (#2531 review L4). A reader learns WHAT is missing here, not where it goes.
|
|
1235
1361
|
*/
|
|
1236
1362
|
declarations: z.array(z.string().min(1)),
|
|
1237
|
-
/** The key every
|
|
1363
|
+
/** The key every present label pack must carry one under (a website section's words); null for other probes. */
|
|
1238
1364
|
keyPrefix: z.string().min(1).nullable(),
|
|
1239
1365
|
/**
|
|
1240
1366
|
* The shell surface a placement probe reads — a `PlacementSurface` value of the specifications. A string declaring that
|
|
@@ -1251,8 +1377,8 @@ export const Workbench_BuildTaskUnmetProbe_Schema = z.object({
|
|
|
1251
1377
|
missing: z.array(z.string().min(1)),
|
|
1252
1378
|
/** Subjects the plan declined that the surface still carries. */
|
|
1253
1379
|
declinedButPresent: z.array(z.string().min(1)),
|
|
1254
|
-
/** Files contributing the surface that
|
|
1255
|
-
|
|
1380
|
+
/** Files contributing the surface that the working tree does not hold (#3514). */
|
|
1381
|
+
absentPaths: z.array(z.string().min(1)),
|
|
1256
1382
|
}).nullable(),
|
|
1257
1383
|
/**
|
|
1258
1384
|
* A REGISTRY probe's explanation (#2966): an agent, an approval gate, a work unit, a metered usage recording (#2305
|
|
@@ -1274,14 +1400,9 @@ export const Workbench_BuildTaskUnmetProbe_Schema = z.object({
|
|
|
1274
1400
|
planned: z.string().min(1).nullable(),
|
|
1275
1401
|
registered: z.string().min(1).nullable(),
|
|
1276
1402
|
})),
|
|
1277
|
-
/**
|
|
1278
|
-
|
|
1403
|
+
/** Registration files, or files the agent index imports, that the working tree does not hold (#3514). */
|
|
1404
|
+
absentPaths: z.array(z.string().min(1)),
|
|
1279
1405
|
}).nullable(),
|
|
1280
|
-
/**
|
|
1281
|
-
* The working tree satisfies it: the product is written and not committed — an acceptance question. False: it is
|
|
1282
|
-
* absent — a declaration or a work question. "Not landed" alone cannot tell the two apart.
|
|
1283
|
-
*/
|
|
1284
|
-
satisfiedInWorkingTree: z.boolean(),
|
|
1285
1406
|
});
|
|
1286
1407
|
/**
|
|
1287
1408
|
* Everything the build knows about ONE task, in one row (#2530, from the companion's per-task record, #1521).
|
|
@@ -1314,15 +1435,13 @@ export const Workbench_BuildTaskRecord_Schema = z.object({
|
|
|
1314
1435
|
attemptsTruncated: z.boolean(),
|
|
1315
1436
|
/** READY and passed over by dispatch: why, from the same classification the selector uses. */
|
|
1316
1437
|
stuckReason: z.enum(Workbench_BuildTaskStuckReason).systemEnum('Workbench_BuildTaskStuckReason').isSummaryField().nullable(),
|
|
1317
|
-
/** `completed_awaiting_commit`: the files its run wrote that are not committed — what accepting it would commit. */
|
|
1318
|
-
stuckUncommittedPaths: z.array(z.string().min(1)),
|
|
1319
1438
|
/** `parked_awaiting_answer`: the question its run is waiting on. */
|
|
1320
1439
|
stuckQuestion: z.string().min(1).nullable(),
|
|
1321
1440
|
/** `no_document_blueprint`: the governed document no blueprint defines. */
|
|
1322
1441
|
stuckDocumentRef: z.string().min(1).nullable(),
|
|
1323
1442
|
/** BLOCKED: the prerequisites that have not landed. */
|
|
1324
1443
|
waitingOnTaskRefs: z.array(z.string().min(1)),
|
|
1325
|
-
/** Not landed and attempted: the probes
|
|
1444
|
+
/** Not landed and attempted: the probes the working tree, which landing reads (#3204), does not satisfy. */
|
|
1326
1445
|
unmetProbes: z.array(Workbench_BuildTaskUnmetProbe_Schema),
|
|
1327
1446
|
/*
|
|
1328
1447
|
* A GENERATION STEP lands on something other than a file it writes, and when it has not, which of these three it is
|
|
@@ -1349,6 +1468,16 @@ export const Workbench_BuildTaskRecord_Schema = z.object({
|
|
|
1349
1468
|
followUpTaskIds: z.array(z.string().min(1).isForeignKey()),
|
|
1350
1469
|
/** On a follow-up task: the task whose reported gap derived it; null on every other task. */
|
|
1351
1470
|
followUpOfTaskId: z.string().min(1).isForeignKey().nullable(),
|
|
1471
|
+
/*
|
|
1472
|
+
* A person's CLOSURE (`wildo build close`, #3224, #3227): the task counts as landed because a person said it is done
|
|
1473
|
+
* another way, or declined it, never because its own probe found its product. Null on every task nobody closed.
|
|
1474
|
+
*/
|
|
1475
|
+
/** How the closure accounts for the task. */
|
|
1476
|
+
closureKind: z.enum(BuildTaskClosureKind).systemEnum('BuildTaskClosureKind').nullable(),
|
|
1477
|
+
/** The task or the commit that built it; null when declined or not closed. */
|
|
1478
|
+
closureSatisfiedBy: z.string().min(1).nullable(),
|
|
1479
|
+
/** Why, in the person's words. */
|
|
1480
|
+
closureReason: z.string().min(1).nullable(),
|
|
1352
1481
|
/** LANDED with no product to prove: it ran, and nothing can show what it made. */
|
|
1353
1482
|
unverifiable: z.boolean(),
|
|
1354
1483
|
/** LANDED before any run of its own started: something else made its product, or the probe reads the wrong thing. */
|
|
@@ -1407,6 +1536,13 @@ export const Workbench_PlaybookRunRoundChild_Schema = z.object({
|
|
|
1407
1536
|
playbookRef: z.string().min(1),
|
|
1408
1537
|
/** Why it was on the table, in the runtime's own sentence (a first run, a refresh and what moved, a re-opening). */
|
|
1409
1538
|
ranBecause: z.string().min(1).nullable(),
|
|
1539
|
+
/**
|
|
1540
|
+
* TRUE when it re-ran over a landing the record already held — the runtime's rerun verdict was a refresh or a current
|
|
1541
|
+
* landing re-opened, never a first run (#3213). A failure of such a child left that earlier landing standing, which is
|
|
1542
|
+
* what makes it a non-fatal repair failure; `ranBecause` is a sentence and is written for a first run too, so it cannot
|
|
1543
|
+
* say this. NULL on a row recorded without a verdict.
|
|
1544
|
+
*/
|
|
1545
|
+
reranOverLanding: z.boolean().nullable(),
|
|
1410
1546
|
/** The specification files it landed, in landing order. Empty is a finding, not a gap. */
|
|
1411
1547
|
landed: z.array(z.string().min(1)),
|
|
1412
1548
|
/** Why it failed, bounded as the record keeps it; null when it did not. */
|
|
@@ -1745,8 +1881,20 @@ export const Workbench_DossierEntry_Schema = z.object({
|
|
|
1745
1881
|
standing: z.enum(WorkbenchDossierEntryStanding).systemEnum('WorkbenchDossierEntryStanding').isSummaryField(),
|
|
1746
1882
|
/** Whether the options can be offered now — see {@link WorkbenchDossierEntryOptionsState}. */
|
|
1747
1883
|
optionsState: z.enum(WorkbenchDossierEntryOptionsState).systemEnum('WorkbenchDossierEntryOptionsState').isSummaryField(),
|
|
1748
|
-
/** The answer as stored, when there is one. */
|
|
1884
|
+
/** The answer as stored, when there is one. Null for a question answered without a value (#3437). */
|
|
1749
1885
|
value: z.string().nullable().isSummaryField(),
|
|
1886
|
+
/**
|
|
1887
|
+
* Why the creator answered WITHOUT a value (#3437): the reason it does not apply, or what it waits on. Null for any
|
|
1888
|
+
* other standing. Kept apart from `value` so nothing reads the reason as an answer.
|
|
1889
|
+
*/
|
|
1890
|
+
nonAnswerReason: z.string().nullable().isSummaryField(),
|
|
1891
|
+
/**
|
|
1892
|
+
* The ways this question may be answered WITHOUT a value (#3439): what its playbook declares its output can carry,
|
|
1893
|
+
* and none for a question only the creator may answer — the shared `admittedElicitationNonAnswers`, so the
|
|
1894
|
+
* workbench, the console and the landing agree. Empty offers neither "does not apply" nor "later"; the answer
|
|
1895
|
+
* operation refuses a kind not listed here.
|
|
1896
|
+
*/
|
|
1897
|
+
admittedNonAnswers: z.array(z.enum(MetaWorkflow_ElicitationNonAnswer).systemEnum('MetaWorkflow_ElicitationNonAnswer')).isSummaryField(),
|
|
1750
1898
|
answeredAt: z.date().nullable().isSummaryField(),
|
|
1751
1899
|
answeredByRef: z.string().nullable().isSummaryField(),
|
|
1752
1900
|
/** What the person was shown beside the option they chose (#2337), recorded with the answer; null when nothing was. */
|
|
@@ -1862,9 +2010,21 @@ export const Workbench_DossierInterviewDepthOutcome_Schema = z.looseObject({
|
|
|
1862
2010
|
interviewDepth: z.enum(ApplicationInterviewDepth),
|
|
1863
2011
|
packageRelativePath: z.string(),
|
|
1864
2012
|
});
|
|
2013
|
+
/**
|
|
2014
|
+
* An answer to a dossier question: a VALUE, or (#3439) a NON-ANSWER with its reason — never both, and one of the two.
|
|
2015
|
+
* The exclusivity and the admission are decided by the operation against the ROW (`admittedNonAnswers`), not here: a
|
|
2016
|
+
* cross-field refinement would hide the one sentence that says what to change behind a generic schema error.
|
|
2017
|
+
*/
|
|
1865
2018
|
export const Workbench_DossierAnswerRequest_Schema = z.object({
|
|
1866
|
-
/** The answer, in the creator's words — validated against the question's kind before it is stored. */
|
|
1867
|
-
value: z.string().min(1),
|
|
2019
|
+
/** The answer, in the creator's words — validated against the question's kind before it is stored. Absent with `nonAnswer`. */
|
|
2020
|
+
value: z.string().min(1).optional(),
|
|
2021
|
+
/**
|
|
2022
|
+
* Answer WITHOUT a value (#3439): the question does not apply to this application, or it is not decided yet. Refused
|
|
2023
|
+
* where the row's `admittedNonAnswers` does not list it, and alongside a `value` or an assumption.
|
|
2024
|
+
*/
|
|
2025
|
+
nonAnswer: z.enum(MetaWorkflow_ElicitationNonAnswer).optional(),
|
|
2026
|
+
/** Required with `nonAnswer`: why it does not apply, or what it waits on — recorded so the person can revisit it. */
|
|
2027
|
+
reason: z.string().min(1).optional(),
|
|
1868
2028
|
/**
|
|
1869
2029
|
* TRUE when the value is a PROPOSAL the creator let stand because they did not know (#2129): it is
|
|
1870
2030
|
* recorded as an assumption, authored by the companion's proposer, and the dossier lists it to revisit.
|
|
@@ -1875,8 +2035,10 @@ export const Workbench_DossierAnswerRequest_Schema = z.object({
|
|
|
1875
2035
|
assumptionRationale: z.string().min(1).optional(),
|
|
1876
2036
|
});
|
|
1877
2037
|
export const Workbench_DossierAnswerOutcome_Schema = z.looseObject({
|
|
1878
|
-
/** The answer as STORED (canonical for a `confirm`). */
|
|
1879
|
-
value: z.string(),
|
|
2038
|
+
/** The answer as STORED (canonical for a `confirm`); null for a question answered without a value (#3439). */
|
|
2039
|
+
value: z.string().nullable(),
|
|
2040
|
+
/** The non-answer recorded instead of a value (#3439); null when a value was. */
|
|
2041
|
+
nonAnswer: z.enum(MetaWorkflow_ElicitationNonAnswer).nullable(),
|
|
1880
2042
|
answeredAt: z.string(),
|
|
1881
2043
|
/** The dossier file this landed in, package-relative. */
|
|
1882
2044
|
packageRelativePath: z.string(),
|
|
@@ -1921,16 +2083,62 @@ export var WorkbenchCreationHomeLineKind;
|
|
|
1921
2083
|
WorkbenchCreationHomeLineKind["RUN_INTERRUPTED"] = "run-interrupted";
|
|
1922
2084
|
/** A build dispatch finished or failed; `acceptable` says whether its writes wait to be committed. */
|
|
1923
2085
|
WorkbenchCreationHomeLineKind["DISPATCH_SETTLED"] = "dispatch-settled";
|
|
2086
|
+
/**
|
|
2087
|
+
* A re-run inside a lane — a repair of a GAP, a refresh — FAILED while the family's earlier landing still stands
|
|
2088
|
+
* (#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
|
|
2089
|
+
* went on with them (e.g. a refused build-decompose repair: the plan on disk still dispatches). `playbookRef` is the
|
|
2090
|
+
* re-run's playbook, `subject` its failure; the target is the lane's run. `failed` stays false, because nothing the
|
|
2091
|
+
* creation built is lost; the refusal is shown so it can be repaired when it matters.
|
|
2092
|
+
*/
|
|
2093
|
+
WorkbenchCreationHomeLineKind["REPAIR_FAILED_LANDING_STANDS"] = "repair-failed-landing-stands";
|
|
1924
2094
|
/**
|
|
1925
2095
|
* The coding agent's account hit its usage limit, and the build dispatches nothing until it resets
|
|
1926
2096
|
* (#2388). `subject` is when the build resumes (`08:11 Europe/Paris`); the target is the dispatch that met
|
|
1927
2097
|
* the limit. Shown only while the limit holds, so it disappears once the build has resumed.
|
|
1928
2098
|
*/
|
|
1929
2099
|
WorkbenchCreationHomeLineKind["CODING_AGENT_USAGE_LIMITED"] = "coding-agent-usage-limited";
|
|
2100
|
+
/**
|
|
2101
|
+
* The coding agent's provider ACCOUNT refused its turn: no credits left, a spend or usage limit, billing (#3204).
|
|
2102
|
+
* Distinct from {@link CODING_AGENT_USAGE_LIMITED}: nothing resets on its own, a PERSON adds credits or raises the
|
|
2103
|
+
* limit. The build holds and asks again every thirty minutes, charging no attempt, so a person who fixes the account
|
|
2104
|
+
* while a drive waits loses nothing; an unattended drive stops on it. `subject` is the refusal in the providers'
|
|
2105
|
+
* sentence (`describeModelProviderAccountRefusal`); the target is the dispatch that met it. Shown while the hold lasts.
|
|
2106
|
+
*/
|
|
2107
|
+
WorkbenchCreationHomeLineKind["CODING_AGENT_ACCOUNT_REFUSED"] = "coding-agent-account-refused";
|
|
2108
|
+
/**
|
|
2109
|
+
* A coding run lost the network, and no coding turn is admitted until a probe of the agent's API answers along the
|
|
2110
|
+
* agent's own route (#3236, #3262). `at` is when the loss was met, `taskRef` the task whose run met it, `subject` the
|
|
2111
|
+
* route the probe takes (`api.anthropic.com via proxy proxy.corp:3128`), absent when no route is known. Shown only
|
|
2112
|
+
* while the hold lasts; what ends it is the probe answering, a turn started after the loss succeeding, or
|
|
2113
|
+
* `wildo build rearm <task> --reason environment`.
|
|
2114
|
+
*/
|
|
2115
|
+
WorkbenchCreationHomeLineKind["CODING_AGENT_CONNECTIVITY_LOST"] = "coding-agent-connectivity-lost";
|
|
2116
|
+
/**
|
|
2117
|
+
* A verification check's command cannot be executed (#3423): `wildo`, say, is not on the companion's PATH, so every
|
|
2118
|
+
* task's check would fail the same way, and no coding turn is admitted. `subject` is the command, `taskRef` the task
|
|
2119
|
+
* whose run met it, `at` when. Nothing lifts it on its own: a person puts the command on PATH, and the next admission
|
|
2120
|
+
* looks it up first (or `wildo build rearm <task> --reason environment` ends it). Shown while the hold lasts; an
|
|
2121
|
+
* unattended drive stops on it.
|
|
2122
|
+
*/
|
|
2123
|
+
WorkbenchCreationHomeLineKind["VERIFICATION_TOOL_UNAVAILABLE"] = "verification-tool-unavailable";
|
|
2124
|
+
/**
|
|
2125
|
+
* A person CLOSED a build task (`wildo build close`, #3224, #3227): done another way, or a derived follow-up declined.
|
|
2126
|
+
* `at` is when, `taskRef` the task, `subject` the reason they gave. Shown so a reader of the build's history sees that a
|
|
2127
|
+
* person, not a probe, said the task is done.
|
|
2128
|
+
*/
|
|
2129
|
+
WorkbenchCreationHomeLineKind["BUILD_TASK_CLOSED"] = "build-task-closed";
|
|
1930
2130
|
/** A playbook run suspended on questions only the creator can answer. */
|
|
1931
2131
|
WorkbenchCreationHomeLineKind["CLARIFICATION"] = "clarification";
|
|
1932
2132
|
/** A coding run parked on a question the agent could not answer alone. */
|
|
1933
2133
|
WorkbenchCreationHomeLineKind["PARKED_QUESTION"] = "parked-question";
|
|
2134
|
+
/**
|
|
2135
|
+
* An interview still waiting on the creator whose answer would date work the next unattended round could run
|
|
2136
|
+
* (#3361): a step reading the creator's stated facts, which an answer given later re-derives. The round withholds
|
|
2137
|
+
* that work (`findReadersDatedByWaitingInterviews`), so this line is what moves it, and an unattended drive stops on
|
|
2138
|
+
* it. `playbookRef` is the interview's playbook, `subject` the steps it holds (refs, comma-separated); the target is
|
|
2139
|
+
* the interview's playbook. Not shown for a quick interview's questions an unattended round assumes (#2129).
|
|
2140
|
+
*/
|
|
2141
|
+
WorkbenchCreationHomeLineKind["INTERVIEW_DATES_NEXT_WORK"] = "interview-dates-next-work";
|
|
1934
2142
|
/** A governed document the creator asked for (a draft exists) still needing a fact only they can give. */
|
|
1935
2143
|
WorkbenchCreationHomeLineKind["GOVERNANCE_DOCUMENT"] = "governance-document";
|
|
1936
2144
|
/** The next READY build task of the dispatch plan. */
|
|
@@ -1938,13 +2146,42 @@ export var WorkbenchCreationHomeLineKind;
|
|
|
1938
2146
|
/**
|
|
1939
2147
|
* The plan can run NOTHING: every ready task is stuck, and `stuckReason` says what unblocks it.
|
|
1940
2148
|
*
|
|
1941
|
-
* ASKED rather than SUGGESTION, because every reason is the creator's move —
|
|
1942
|
-
*
|
|
1943
|
-
*
|
|
2149
|
+
* ASKED rather than SUGGESTION, because every reason it is shown for is the creator's move — correcting a
|
|
2150
|
+
* declaration no run can satisfy, re-arming a task that spent its attempts, approving a follow-up. (A run's work
|
|
2151
|
+
* awaiting a commit was one until #3514: a task lands from the working tree since #3204.)
|
|
1944
2152
|
* Without it the plan simply falls silent: `CONTINUE_THE_PLAN` is derived from the next ready task,
|
|
1945
2153
|
* and a stuck queue has none (#1451, #1463).
|
|
1946
2154
|
*/
|
|
1947
2155
|
WorkbenchCreationHomeLineKind["UNBLOCK_THE_PLAN"] = "unblock-the-plan";
|
|
2156
|
+
/**
|
|
2157
|
+
* Nothing in the plan can run and it is not finished, because a specifications module fails (#3258). `subject` names the
|
|
2158
|
+
* modules. ASKED because the remedy is fixing the module, and without this line such a plan reads as nothing at all: no
|
|
2159
|
+
* next task, not finished, and no stuck task to explain it.
|
|
2160
|
+
*/
|
|
2161
|
+
WorkbenchCreationHomeLineKind["SPECIFICATION_FAULT_HOLDS_THE_PLAN"] = "specification-fault-holds-the-plan";
|
|
2162
|
+
/**
|
|
2163
|
+
* A FOLLOW-UP task landed while its latest completed run still reports a requirement unmet (#2583): advisory, never a
|
|
2164
|
+
* reason the loop stops. `taskRef` is the follow-up, `subject` names each requirement and what the run said is
|
|
2165
|
+
* missing. The door is running it again on purpose: `wildo build run <ref> --despite-landed --reason operator-judgement`.
|
|
2166
|
+
*/
|
|
2167
|
+
WorkbenchCreationHomeLineKind["FOLLOW_UP_LANDED_WITH_GAP"] = "follow-up-landed-with-gap";
|
|
2168
|
+
/**
|
|
2169
|
+
* Files a build task's coding runs left UNCOMMITTED that no automatic door will commit (#3267): a failed run's file a
|
|
2170
|
+
* retry refused, or a file dirty at a retry's baseline with what earlier failed runs left, and no run of the task live.
|
|
2171
|
+
* ASKED, because only a person can settle it: `taskRef` is the task, `subject` names each file and the runs whose
|
|
2172
|
+
* record holds it. The doors are `wildo build accept <ref> --leftovers` (commit, under those runs) and the discard
|
|
2173
|
+
* command `wildo build tasks` prints per file. Derived from the write register and the tree, so it disappears once
|
|
2174
|
+
* each file is committed or discarded.
|
|
2175
|
+
*/
|
|
2176
|
+
WorkbenchCreationHomeLineKind["RUN_LEFTOVER_UNCOMMITTED"] = "run-leftover-uncommitted";
|
|
2177
|
+
/**
|
|
2178
|
+
* A build task LANDED and something its landing does not cover is unfinished (#3285): a billing catalogue committed
|
|
2179
|
+
* while the backend does not enable billing, so nothing serves it. Advisory, a mark beside the landing and never a
|
|
2180
|
+
* reason anything stops. `taskRef` is the task, `subject` names each setting still to set and the file that holds it;
|
|
2181
|
+
* `wildo build tasks` prints what each needs first. Derived from the committed tree, so it disappears once the setting
|
|
2182
|
+
* is committed.
|
|
2183
|
+
*/
|
|
2184
|
+
WorkbenchCreationHomeLineKind["LANDED_WITH_ADVISORY"] = "landed-with-advisory";
|
|
1948
2185
|
/** An eligible playbook whose output family is missing. */
|
|
1949
2186
|
WorkbenchCreationHomeLineKind["PRODUCE_MISSING"] = "produce-missing";
|
|
1950
2187
|
/** An eligible playbook whose output is stale — derived before one of its inputs last changed. */
|
|
@@ -2049,7 +2286,8 @@ export const Workbench_CreationOutcome_Schema = z.object({
|
|
|
2049
2286
|
tasksLanded: z.number().int().min(0).nullable().isSummaryField(),
|
|
2050
2287
|
/**
|
|
2051
2288
|
* APPLICATION_WORKS only: the application's runtimes whose dev-loop supervisor has PAUSED them — it
|
|
2052
|
-
* will not start them until something changes (#1537)
|
|
2289
|
+
* will not start them until something changes (#1537) — or is CRASH-LOOPING them, restarting each at most every five
|
|
2290
|
+
* minutes while it keeps failing to start (#3365). While any is listed the outcome is not DONE,
|
|
2053
2291
|
* whatever has landed: an application that cannot start does not work. Null on the other three,
|
|
2054
2292
|
* and null when no supervisor could answer, which is "cannot tell" rather than "all up".
|
|
2055
2293
|
*/
|
|
@@ -2076,8 +2314,10 @@ export const Workbench_RunWriteFileDiff_Schema = z.object({
|
|
|
2076
2314
|
existedBefore: z.boolean(),
|
|
2077
2315
|
/** The file on disk no longer holds what the run wrote; the diff still describes what the RUN did. */
|
|
2078
2316
|
diverged: z.boolean(),
|
|
2079
|
-
/** Unified diff. Empty when the run rewrote a file with identical bytes. */
|
|
2317
|
+
/** Unified diff. Empty when the run rewrote a file with identical bytes. For a binary file, one line naming its hashes. */
|
|
2080
2318
|
diff: z.string(),
|
|
2319
|
+
/** A binary file (#3264): its record holds a hash, so `diff` is one descriptive line and no lines of text. */
|
|
2320
|
+
binary: z.literal(true).optional(),
|
|
2081
2321
|
});
|
|
2082
2322
|
export const Workbench_RunWriteDiff_Schema = z.object({
|
|
2083
2323
|
runId: z.string().min(1),
|
|
@@ -2184,7 +2424,8 @@ export const Workbench_CodingRunCancelOutcome_Schema = z.looseObject({
|
|
|
2184
2424
|
* The governed document's one verb: LAND the facts a person established for it as the
|
|
2185
2425
|
* `document-facts-authored` family. The row is the document; the body carries the governance scope,
|
|
2186
2426
|
* the answers and, for a reviewed fact, the review — a per-question verb with a bare value could
|
|
2187
|
-
* carry none of that, which is why
|
|
2427
|
+
* carry none of that, which is why ANSWERING stays on the document. Deferring one question carries
|
|
2428
|
+
* only a reason and asserts nothing, so it is the question's own verb (`WorkbenchGovernanceQuestions_Operations`).
|
|
2188
2429
|
*/
|
|
2189
2430
|
export var WorkbenchGovernanceDocuments_Operations;
|
|
2190
2431
|
(function (WorkbenchGovernanceDocuments_Operations) {
|
|
@@ -2212,6 +2453,35 @@ export const Workbench_GovernanceFactsLandingRequest_Schema = z.object({
|
|
|
2212
2453
|
/** Run the whole pipe and write nothing — what lets a person see the exact file their answers produce BEFORE anything touches the tree. */
|
|
2213
2454
|
dryRun: z.boolean().optional(),
|
|
2214
2455
|
});
|
|
2456
|
+
/**
|
|
2457
|
+
* The governance question's one verb (#3439): DEFER it — the person says the fact concerns this application and is not
|
|
2458
|
+
* decided yet, and why. A dossier write (`deferredDocumentFacts`), never a fact declaration, so the fact stays absent
|
|
2459
|
+
* and every clause resting on it stays owed. It names no governance scope and records no review, which is why it can be
|
|
2460
|
+
* a per-question verb while answering cannot (see {@link WorkbenchGovernanceDocuments_Operations}).
|
|
2461
|
+
*/
|
|
2462
|
+
export var WorkbenchGovernanceQuestions_Operations;
|
|
2463
|
+
(function (WorkbenchGovernanceQuestions_Operations) {
|
|
2464
|
+
WorkbenchGovernanceQuestions_Operations["DEFER"] = "defer";
|
|
2465
|
+
})(WorkbenchGovernanceQuestions_Operations || (WorkbenchGovernanceQuestions_Operations = {}));
|
|
2466
|
+
/**
|
|
2467
|
+
* Whether a governance question in this standing may be DEFERRED (#3439): one still needed, and one already deferred
|
|
2468
|
+
* (re-deferring rewords the reason). A fact the product establishes is read, never deferred; and an ANSWERED fact is
|
|
2469
|
+
* not either, because a landed declaration wins over a deferral of the same fact (`deriveOpenGovernanceQuestions`), so
|
|
2470
|
+
* the deferral would change nothing anyone sees. The ONE predicate the operation refuses by and the workbench offers by.
|
|
2471
|
+
*/
|
|
2472
|
+
export function governanceQuestionAdmitsDeferral(standing) {
|
|
2473
|
+
return standing === WorkbenchDossierEntryStanding.STILL_NEEDED || standing === WorkbenchDossierEntryStanding.DEFERRED;
|
|
2474
|
+
}
|
|
2475
|
+
export const Workbench_GovernanceQuestionDeferRequest_Schema = z.object({
|
|
2476
|
+
/** Why it is not decided yet — what it waits on. Required: a deferral with no reason cannot be revisited. */
|
|
2477
|
+
reason: z.string().min(1),
|
|
2478
|
+
});
|
|
2479
|
+
export const Workbench_GovernanceQuestionDeferOutcome_Schema = z.looseObject({
|
|
2480
|
+
/** The fact deferred. */
|
|
2481
|
+
factRef: z.string().min(1),
|
|
2482
|
+
/** The dossier file the deferral landed in, package-relative. */
|
|
2483
|
+
packageRelativePath: z.string().min(1),
|
|
2484
|
+
});
|
|
2215
2485
|
export const Workbench_GovernanceFactsLandingOutcome_Schema = z.object({
|
|
2216
2486
|
family: z.string().min(1),
|
|
2217
2487
|
packageRelativePath: z.string().min(1),
|