@wildo-ai/platform-core-shared 1.1.4 → 1.1.6
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-relationships.custom.shared.definitions.d.ts.map +1 -1
- package/dist/esm/index.d.ts +4 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +4 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/runtime/application-backend-env.contracts.d.ts +49 -4
- package/dist/esm/runtime/application-backend-env.contracts.d.ts.map +1 -1
- package/dist/esm/runtime/application-backend-env.contracts.js +48 -1
- package/dist/esm/runtime/application-backend-env.contracts.js.map +1 -1
- package/dist/esm/runtime/http-server-env.contracts.d.ts +46 -0
- package/dist/esm/runtime/http-server-env.contracts.d.ts.map +1 -0
- package/dist/esm/runtime/http-server-env.contracts.js +55 -0
- package/dist/esm/runtime/http-server-env.contracts.js.map +1 -0
- package/dist/esm/runtime/runtime-topology.contracts.d.ts +0 -4
- package/dist/esm/runtime/runtime-topology.contracts.d.ts.map +1 -1
- package/dist/esm/runtime/runtime-topology.contracts.js +0 -12
- 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/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.d.ts +166 -70
- 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.schemas.d.ts +166 -70
- 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 +2 -2
- 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 +21 -10
- 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.schemas.d.ts +21 -10
- 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 +26 -28
- 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.map +1 -1
- 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 +29 -0
- 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 +58 -0
- 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.map +1 -1
- package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.d.ts +13 -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 +441 -1
- 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 +279 -0
- package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.d.ts.map +1 -0
- package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.js +303 -0
- package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.js.map +1 -0
- package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.d.ts +199 -0
- package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.d.ts.map +1 -0
- package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.js +185 -0
- package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.js.map +1 -0
- package/dist/esm/workbench/workbench-creation-dossier.custom.shared.schemas.d.ts +49 -0
- package/dist/esm/workbench/workbench-creation-dossier.custom.shared.schemas.d.ts.map +1 -0
- package/dist/esm/workbench/workbench-creation-dossier.custom.shared.schemas.js +42 -0
- package/dist/esm/workbench/workbench-creation-dossier.custom.shared.schemas.js.map +1 -0
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.d.ts +461 -11
- 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 +509 -6
- 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 +1102 -12
- 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 +1520 -19
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.d.ts +123 -1
- 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 +168 -0
- 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 +229 -9
- 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 +2 -2
- 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 +18 -3
- package/dist/esm/workbench/workbench-resources.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-resources.custom.shared.schemas.js +35 -7
- package/dist/esm/workbench/workbench-resources.custom.shared.schemas.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +4 -13
- package/dist/esm/workbench/workbench-creation-board.custom.shared.schemas.d.ts +0 -98
- package/dist/esm/workbench/workbench-creation-board.custom.shared.schemas.d.ts.map +0 -1
- package/dist/esm/workbench/workbench-creation-board.custom.shared.schemas.js +0 -86
- package/dist/esm/workbench/workbench-creation-board.custom.shared.schemas.js.map +0 -1
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { MetaWorkflow_ClarificationAction, MetaWorkflow_EvaluationVerdict } from '@wildo-ai/saas-models/meta-workflows';
|
|
2
|
+
import { EngineCapability } from '@wildo-ai/saas-models';
|
|
1
3
|
import { z } from 'zod';
|
|
4
|
+
import { WorkbenchSpecificationArtifactConcern } from './workbench-resources.custom.shared.schemas';
|
|
2
5
|
/**
|
|
3
6
|
* The CREATION PLANE's shared vocabulary — schemas for the four companion-runtime resource
|
|
4
7
|
* families, and the behavior ids their bindings name.
|
|
@@ -40,7 +43,27 @@ export declare enum WorkbenchCreationPlaneBehavior {
|
|
|
40
43
|
/** The write register's records, pre-image bytes stripped. */
|
|
41
44
|
RUN_WRITE_RECORDS = "creation-plane.run-write-records",
|
|
42
45
|
/** The execution-trace session index. */
|
|
43
|
-
TRACE_SESSIONS = "creation-plane.trace-sessions"
|
|
46
|
+
TRACE_SESSIONS = "creation-plane.trace-sessions",
|
|
47
|
+
/** The governance questionnaires' unanswered prompts, flattened one row per question. */
|
|
48
|
+
GOVERNANCE_DOCUMENTS = "creation-plane.governance-documents",
|
|
49
|
+
GOVERNANCE_QUESTIONS = "creation-plane.governance-questions",
|
|
50
|
+
/** The build lane's dispatch history, one row per attempt. */
|
|
51
|
+
BUILD_DISPATCH_PLAN = "creation-plane.build-dispatch-plan",
|
|
52
|
+
BUILD_DISPATCHES = "creation-plane.build-dispatches",
|
|
53
|
+
/** The playbook runs suspended waiting on a person. */
|
|
54
|
+
PLAYBOOK_RUNS = "creation-plane.playbook-runs",
|
|
55
|
+
WAITING_PLAYBOOK_RUNS = "creation-plane.waiting-playbook-runs",
|
|
56
|
+
/** The coding runs parked on a question. */
|
|
57
|
+
CODING_LANE_STATUS = "creation-plane.coding-lane-status",
|
|
58
|
+
PARKED_CODING_QUESTIONS = "creation-plane.parked-coding-questions",
|
|
59
|
+
/** The dossier: every declared interview question × the creator's answer from `creator-inputs`. */
|
|
60
|
+
DOSSIER_ENTRIES = "creation-plane.dossier-entries",
|
|
61
|
+
/** HOME's lines (#1454): what happened, what is asked of the creator, what they could do next — one derivation. */
|
|
62
|
+
HOME_LINES = "creation-plane.home-lines",
|
|
63
|
+
/** The four creation OUTCOMES with their standing, derived from the landed families and the build plan. */
|
|
64
|
+
CREATION_OUTCOMES = "creation-plane.creation-outcomes",
|
|
65
|
+
/** The application's provider secrets per environment — what it needs and what is set, never a value (#1637). */
|
|
66
|
+
APPLICATION_SECRETS = "creation-plane.application-secrets"
|
|
44
67
|
}
|
|
45
68
|
/** Membership test the companion's source routes by. */
|
|
46
69
|
export declare const WORKBENCH_CREATION_PLANE_BEHAVIOR_IDS: readonly string[];
|
|
@@ -57,6 +80,52 @@ export declare const WORKBENCH_CREATION_PLANE_BEHAVIOR_IDS: readonly string[];
|
|
|
57
80
|
* two rows under one id, and why server-side lookups match sanitized forms instead of reversing.
|
|
58
81
|
*/
|
|
59
82
|
export declare function sanitizeWorkbenchCreationPlaneIdentity(value: string): string;
|
|
83
|
+
/**
|
|
84
|
+
* A dossier row's id — `sanitize(playbookRef)--sanitize(questionRef)` for the step itself, and
|
|
85
|
+
* `sanitize(playbookRef)--<instanceKey>--sanitize(questionRef)` for one of its INSTANCES (#1609).
|
|
86
|
+
*
|
|
87
|
+
* Shared for the same reason the sanitizer is: the companion's projection EMITS the id and the
|
|
88
|
+
* conversation's answer tool ADDRESSES a row by it, and two copies would let the two drift apart the
|
|
89
|
+
* first time the shape changed — which is exactly what adding an instance did. An instance key is a
|
|
90
|
+
* kebab slug, so it needs no sanitizing and cannot contain the `--` separator's ambiguity in a way the
|
|
91
|
+
* question ref does not already (both are refused as duplicates by the projection, never guessed at).
|
|
92
|
+
*/
|
|
93
|
+
export declare function workbenchDossierEntryIdentity(input: {
|
|
94
|
+
readonly playbookRef: string;
|
|
95
|
+
readonly questionRef: string;
|
|
96
|
+
readonly instanceKey?: string | null;
|
|
97
|
+
}): string;
|
|
98
|
+
/**
|
|
99
|
+
* The creation plane's CORRELATION VOCABULARY on the engine's actor task — the one named source for
|
|
100
|
+
* the `context.correlation` envelope's domain and ref keys (#1348, #1330).
|
|
101
|
+
*
|
|
102
|
+
* The engine owns the envelope and validates only that keys and values are non-empty strings; this
|
|
103
|
+
* domain owns the keys. Both ends read them: the companion's coding-agent dispatch WRITES the
|
|
104
|
+
* envelope when it admits a run for a build-plan task, and the workbench READS it to draw the run's
|
|
105
|
+
* build-plan task as a resolved link. Two spellings of one key would be a join that silently stops
|
|
106
|
+
* matching, so neither end spells it.
|
|
107
|
+
*
|
|
108
|
+
* The value under {@link WorkbenchTaskCorrelationRef.BUILD_PLAN_TASK} is the build-plan ROW's
|
|
109
|
+
* identity — `sanitizeWorkbenchCreationPlaneIdentity(taskRef)` — so a reader holding the envelope
|
|
110
|
+
* addresses the row with no lookup.
|
|
111
|
+
*/
|
|
112
|
+
export declare const WORKBENCH_TASK_CORRELATION_DOMAIN = "application-creation";
|
|
113
|
+
export declare enum WorkbenchTaskCorrelationRef {
|
|
114
|
+
/** The `workbenchBuildPlanTaskId` of the build-plan task this coding run was dispatched for. */
|
|
115
|
+
BUILD_PLAN_TASK = "buildPlanTaskRef",
|
|
116
|
+
/**
|
|
117
|
+
* The creation CONVERSATION (the engine conversational execution's `executionId`) a run was
|
|
118
|
+
* started from, when it was (#1454). The conversation page joins a thread to its runs on this
|
|
119
|
+
* key; a run started from the board or the CLI carries none.
|
|
120
|
+
*/
|
|
121
|
+
CONVERSATION = "conversationId"
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* The build-plan row a task's correlation envelope names, or `undefined` when the task was not
|
|
125
|
+
* dispatched for one — a task with no build-plan task is the normal case for anything the creation
|
|
126
|
+
* plane did not admit, and it must read as ABSENT rather than as loading.
|
|
127
|
+
*/
|
|
128
|
+
export declare function readBuildPlanTaskCorrelation(context: unknown): string | undefined;
|
|
60
129
|
/**
|
|
61
130
|
* The dispatch status of one build-plan task — computed, never stored.
|
|
62
131
|
*
|
|
@@ -69,6 +138,84 @@ export declare enum WorkbenchBuildPlanTaskStatus {
|
|
|
69
138
|
LANDED = "landed",
|
|
70
139
|
BLOCKED = "blocked"
|
|
71
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Why a READY build-plan task cannot make progress, so dispatch passes over it.
|
|
143
|
+
*
|
|
144
|
+
* Each member carries a DIFFERENT remedy, and the remedy is the only thing the operator gets. The
|
|
145
|
+
* companion's dispatch service is the only producer; the workbench board renders it. Declared here
|
|
146
|
+
* rather than beside the producer for the reason `Workbench_BuildDispatchPhase` gives: a browser
|
|
147
|
+
* bundle cannot import the companion, and re-spelling the members board-side would be a second
|
|
148
|
+
* source (#1451).
|
|
149
|
+
*
|
|
150
|
+
* None of them refuses the queue. A stuck task is skipped so every unrelated branch proceeds, and a
|
|
151
|
+
* dispatch refuses only when NOTHING ready can move. The READ door never refuses: it answers with the
|
|
152
|
+
* stuck tasks, because "nothing can run, and here is why" is an answer.
|
|
153
|
+
*/
|
|
154
|
+
export declare enum Workbench_BuildTaskStuckReason {
|
|
155
|
+
/** It already ran, and its declared product is absent even from the working tree: fix the declaration or the work. */
|
|
156
|
+
COMPLETED_UNLANDED = "completed_unlanded",
|
|
157
|
+
/**
|
|
158
|
+
* It already ran, and its declared product IS in the working tree but not committed. Landing means
|
|
159
|
+
* committed because acceptance is a commit.
|
|
160
|
+
*
|
|
161
|
+
* Under GUIDED that is the whole story, and the remedy is to review and commit what the run wrote.
|
|
162
|
+
* Under the autonomy posture the loop has ALREADY tried to commit it (#1534), so reaching this state
|
|
163
|
+
* means its accept REFUSED a path — carried changes from before the run, edited since, or not this
|
|
164
|
+
* run's — and the companion's warning names which. The remedy is that refusal's, not a blind commit.
|
|
165
|
+
*/
|
|
166
|
+
COMPLETED_AWAITING_COMMIT = "completed_awaiting_commit",
|
|
167
|
+
/** Its run suspended on a question nobody has answered; re-dispatching would abandon that session. */
|
|
168
|
+
PARKED_AWAITING_ANSWER = "parked_awaiting_answer",
|
|
169
|
+
/** It produces a governed document the engine catalog does not define, so no run can author it. */
|
|
170
|
+
NO_DOCUMENT_BLUEPRINT = "no_document_blueprint",
|
|
171
|
+
/**
|
|
172
|
+
* Its coding runs FAILED as many times as the attempt budget allows (#1536), so another identical
|
|
173
|
+
* dispatch is not offered. Only failures the task caused count: a run failing on a check that was
|
|
174
|
+
* already red completes instead (`carriedVerificationFailures`), so this cannot be reached on the
|
|
175
|
+
* tree's account. Read the last failure, fix its cause, and re-arm the task.
|
|
176
|
+
*/
|
|
177
|
+
ATTEMPTS_EXHAUSTED = "attempts_exhausted",
|
|
178
|
+
/**
|
|
179
|
+
* A run of it is LIVE right now — selected, admitted or running (#1528). Under a parallel build
|
|
180
|
+
* wave several tasks run at once, and the next selection must pass over one already being built,
|
|
181
|
+
* or two agents would build the same task. Nobody's move: it clears when that run settles.
|
|
182
|
+
*/
|
|
183
|
+
IN_FLIGHT = "in_flight"
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* How far one BUILD DISPATCH got — the whole of what `GET /build/dispatches` can honestly say.
|
|
187
|
+
*
|
|
188
|
+
* ## Why it lives in the SHARED package rather than beside the service that sets it
|
|
189
|
+
*
|
|
190
|
+
* Both ends of this vocabulary are real consumers. The companion's dispatch service is the only
|
|
191
|
+
* PRODUCER — since #1359 by PROJECTION: every dispatch is an actor-system execution from the moment
|
|
192
|
+
* its task is selected, and the phase is a pure function of that execution's row
|
|
193
|
+
* (`projectBuildDispatchPhase`), not a record the companion keeps. Until then it was an in-memory
|
|
194
|
+
* list of five that a companion restart emptied. The workbench's build lane reads it to decide
|
|
195
|
+
* whether a dispatch reads as working, done or broken, and a browser bundle cannot import the
|
|
196
|
+
* companion. Declared companion-side, the board
|
|
197
|
+
* would have had to re-spell the four members — the second-source defect the creation board's own
|
|
198
|
+
* client docstring refuses by name. So it is declared ONCE here, where the workbench vocabulary
|
|
199
|
+
* already lives and which the companion already imports.
|
|
200
|
+
*
|
|
201
|
+
* ## The two executors resolve at DIFFERENT moments, and that is the whole reason for four members
|
|
202
|
+
*
|
|
203
|
+
* A companion generation step's dispatch resolves when the step has FINISHED. A coding task's
|
|
204
|
+
* resolves when the run is ADMITTED, with the agent still working — its outcome is the durable
|
|
205
|
+
* actor-task row the record names. Measured 2026-09-13 on Wonder CRM: the record said `ok: true`
|
|
206
|
+
* for `build-task-company-schema` at the instant its run started, and the route told the caller to
|
|
207
|
+
* poll that record "for the outcome", so a script following it read an admitted run as a success.
|
|
208
|
+
*/
|
|
209
|
+
export declare enum Workbench_BuildDispatchPhase {
|
|
210
|
+
/** Selected and handed to its executor; nothing has resolved yet. */
|
|
211
|
+
SUBMITTED = "submitted",
|
|
212
|
+
/** A coding run was admitted and is running. Its outcome is the durable actor-task row `codingTaskId`. */
|
|
213
|
+
ADMITTED = "admitted",
|
|
214
|
+
/** A companion generation step ran to completion. */
|
|
215
|
+
FINISHED = "finished",
|
|
216
|
+
/** The dispatch threw — before a coding run was admitted, or while a generation step ran. */
|
|
217
|
+
FAILED = "failed"
|
|
218
|
+
}
|
|
72
219
|
/**
|
|
73
220
|
* One playbook's row on the eligibility board.
|
|
74
221
|
*
|
|
@@ -87,13 +234,25 @@ export declare const Workbench_Playbook_Schema: z.ZodObject<{
|
|
|
87
234
|
unmet: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
88
235
|
blockedOnlyBySequencing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
89
236
|
requiresElicitation: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
237
|
+
unansweredQuestionRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
90
238
|
wouldReplace: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
239
|
+
outputOwners: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
|
|
240
|
+
family: z.ZodString;
|
|
241
|
+
playbookRefs: z.ZodArray<z.ZodString>;
|
|
242
|
+
}, z.core.$strip>>>;
|
|
243
|
+
unresolvedPlaybookRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
91
244
|
unlandableFamilies: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
92
245
|
staleOutputs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
|
|
93
246
|
family: z.ZodString;
|
|
94
247
|
changedInputs: z.ZodArray<z.ZodString>;
|
|
95
248
|
}, z.core.$strip>>>;
|
|
96
|
-
|
|
249
|
+
activeInLine: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<z.ZodBoolean>>;
|
|
250
|
+
activationDetail: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<z.ZodString>>;
|
|
251
|
+
openInstances: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
252
|
+
instanceKey: z.ZodString;
|
|
253
|
+
purpose: z.ZodString;
|
|
254
|
+
}, z.core.$strip>>>>;
|
|
255
|
+
computedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
|
|
97
256
|
}, z.core.$strip>;
|
|
98
257
|
export type Workbench_Playbook = z.infer<typeof Workbench_Playbook_Schema>;
|
|
99
258
|
/**
|
|
@@ -110,7 +269,7 @@ export declare const Workbench_BuildPlanTask_Schema: z.ZodObject<{
|
|
|
110
269
|
objective: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
111
270
|
targetKind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
112
271
|
functionalTopic: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
113
|
-
status: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchBuildPlanTaskStatus
|
|
272
|
+
status: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchBuildPlanTaskStatus>>>;
|
|
114
273
|
prerequisiteTaskRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
115
274
|
}, z.core.$strip>;
|
|
116
275
|
export type Workbench_BuildPlanTask = z.infer<typeof Workbench_BuildPlanTask_Schema>;
|
|
@@ -127,30 +286,126 @@ export declare const Workbench_RunWriteRecord_Schema: z.ZodObject<{
|
|
|
127
286
|
playbookRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
128
287
|
workbenchPlaybookId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
129
288
|
workbenchTraceSessionId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
|
|
130
|
-
at: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.
|
|
289
|
+
at: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
|
|
131
290
|
files: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
|
|
132
291
|
path: z.ZodString;
|
|
133
292
|
existedBefore: z.ZodBoolean;
|
|
134
293
|
}, z.core.$strip>>>;
|
|
135
294
|
fileCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
295
|
+
acceptedCommitSha: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
136
296
|
}, z.core.$strip>;
|
|
137
297
|
export type Workbench_RunWriteRecord = z.infer<typeof Workbench_RunWriteRecord_Schema>;
|
|
138
298
|
/** One execution-trace session — the queryable index the board links from. */
|
|
139
299
|
export declare const Workbench_TraceSession_Schema: z.ZodObject<{
|
|
140
300
|
workbenchTraceSessionId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
141
301
|
sessionId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
142
|
-
startedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.
|
|
302
|
+
startedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
|
|
143
303
|
label: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
144
304
|
eventCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
145
305
|
stepCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
146
306
|
}, z.core.$strip>;
|
|
147
307
|
export type Workbench_TraceSession = z.infer<typeof Workbench_TraceSession_Schema>;
|
|
308
|
+
/**
|
|
309
|
+
* One governance QUESTION a creator still owes an answer to.
|
|
310
|
+
*
|
|
311
|
+
* ## Why one row per question rather than per questionnaire
|
|
312
|
+
*
|
|
313
|
+
* The companion answers questionnaires — a document definition and the prompts it asks. The thing a
|
|
314
|
+
* creator ACTS on is one question, and the thing a board queues is one question, so the row is the
|
|
315
|
+
* question and the document it belongs to travels on it. That is the same flattening
|
|
316
|
+
* `Workbench_RunWriteRecord` does to a run's files, and for the same reason: a resource's row is
|
|
317
|
+
* whatever a reader selects.
|
|
318
|
+
*
|
|
319
|
+
* ## What it deliberately does NOT carry
|
|
320
|
+
*
|
|
321
|
+
* The ANSWER. Landing answers is a dispatch against the `document-facts-authored` family and goes
|
|
322
|
+
* through the companion's own service; a row here is the question as asked. Giving the row an answer
|
|
323
|
+
* field would make this the second place an answer lives, which is the ledger
|
|
324
|
+
* `one-source-of-truth.md` rule 5 refuses.
|
|
325
|
+
*/
|
|
326
|
+
/**
|
|
327
|
+
* One GOVERNED DOCUMENT whose questionnaire a person must answer — the document half of governance.
|
|
328
|
+
*
|
|
329
|
+
* ## Why this is its own resource rather than fields on the question row
|
|
330
|
+
*
|
|
331
|
+
* `derivedFactRefs` and the ask count are facts about the DOCUMENT, not about any one question, and
|
|
332
|
+
* a document-level fact repeated on every question row is a value with no owner: nothing says which
|
|
333
|
+
* copy is authoritative, and eight rows of one document can disagree.
|
|
334
|
+
*
|
|
335
|
+
* It is also what the board's document selector is a list OF. Before this it grouped question rows
|
|
336
|
+
* by `definitionRef` and had nowhere to read the derived facts from — so a panel showing only the
|
|
337
|
+
* human half presented four questions for a document declaring eight, and a reader had no way to
|
|
338
|
+
* tell a short questionnaire from a broken one.
|
|
339
|
+
*/
|
|
340
|
+
/**
|
|
341
|
+
* Where a dossier entry STANDS — the two states a question a playbook asks can be in from the
|
|
342
|
+
* creator's side (#1454). "Read from the product" (a typed config key) is a third source the
|
|
343
|
+
* dossier gains with the governed-document join (Step 6); it is not a standing of an interview
|
|
344
|
+
* question, so it is not here.
|
|
345
|
+
*/
|
|
346
|
+
export declare enum WorkbenchDossierEntryStanding {
|
|
347
|
+
/** The creator answered; the value is in the committed dossier. */
|
|
348
|
+
FROM_YOU = "from-you",
|
|
349
|
+
/** The playbook asks it and nobody has answered. */
|
|
350
|
+
STILL_NEEDED = "still-needed",
|
|
351
|
+
/**
|
|
352
|
+
* An opened INSTANCE of the step asks it and has no answer of its own, so it runs on the step's own
|
|
353
|
+
* answer (#1609). Answered, not needed: nothing is blocked, and an answer given here replaces the
|
|
354
|
+
* step's for this instance only.
|
|
355
|
+
*/
|
|
356
|
+
FROM_THE_STEP = "from-the-step",
|
|
357
|
+
/**
|
|
358
|
+
* The PRODUCT answers it: a governed-document fact the application's own declarations establish,
|
|
359
|
+
* read rather than asked (#1454, gap 4; `compliance-is-derived-from-the-product.md`). Never
|
|
360
|
+
* "needed" and never editable here — its answer changes when what the product declares changes.
|
|
361
|
+
*/
|
|
362
|
+
READ_FROM_PRODUCT = "read-from-product"
|
|
363
|
+
}
|
|
364
|
+
export declare const Workbench_GovernanceDocument_Schema: z.ZodObject<{
|
|
365
|
+
workbenchGovernanceDocumentId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
366
|
+
definitionRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
367
|
+
askCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
368
|
+
derivedFactRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
369
|
+
openCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
370
|
+
drafted: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
371
|
+
}, z.core.$strip>;
|
|
372
|
+
export type Workbench_GovernanceDocument = z.infer<typeof Workbench_GovernanceDocument_Schema>;
|
|
373
|
+
export declare const Workbench_GovernanceQuestion_Schema: z.ZodObject<{
|
|
374
|
+
workbenchGovernanceQuestionId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
375
|
+
definitionRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
376
|
+
questionRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
377
|
+
factRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
378
|
+
creatorPrompt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
379
|
+
decisionPurpose: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
380
|
+
answerKind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
381
|
+
factAuthorityKind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
382
|
+
allowsNotApplicable: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
383
|
+
sensitivityRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
384
|
+
semanticOptions: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
|
|
385
|
+
optionRef: z.ZodString;
|
|
386
|
+
creatorMeaning: z.ZodString;
|
|
387
|
+
}, z.core.$strip>>>;
|
|
388
|
+
standing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchDossierEntryStanding>>>;
|
|
389
|
+
answerSummary: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
390
|
+
answeredAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodDate>>;
|
|
391
|
+
askedNow: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
392
|
+
}, z.core.$strip>;
|
|
393
|
+
export type Workbench_GovernanceQuestion = z.infer<typeof Workbench_GovernanceQuestion_Schema>;
|
|
148
394
|
/** The playbook resource's dispatch verbs. */
|
|
149
395
|
export declare enum WorkbenchPlaybooks_Operations {
|
|
150
396
|
/** Fire one playbook run (the row is the playbook; the body carries brief/answers/dryRun). */
|
|
151
397
|
RUN = "run",
|
|
152
398
|
/** Answer a run that stopped at a clarification — accept with answers, decline, or cancel. */
|
|
153
|
-
RESUME = "resume_run"
|
|
399
|
+
RESUME = "resume_run",
|
|
400
|
+
/**
|
|
401
|
+
* The questions this playbook still needs answered, as a decision payload — the declared interview
|
|
402
|
+
* minus what the dossier already answers (shared decisions included), and `null` when nothing is left
|
|
403
|
+
* to ask: the step declares none, or the dossier answers them all (#1454 review). Read
|
|
404
|
+
* ON DEMAND, at the moment somebody chooses to run it, and deliberately not a field of the row: one
|
|
405
|
+
* playbook alone declares fifteen questions, so carrying them on every row would pay for all of
|
|
406
|
+
* them on every poll in order to show none of them.
|
|
407
|
+
*/
|
|
408
|
+
READ_INTERVIEW = "read_interview"
|
|
154
409
|
}
|
|
155
410
|
/** The build-plan resource's dispatch verb. */
|
|
156
411
|
export declare enum WorkbenchBuildPlanTasks_Operations {
|
|
@@ -159,12 +414,46 @@ export declare enum WorkbenchBuildPlanTasks_Operations {
|
|
|
159
414
|
* the order its author intended, and a per-row dispatch would be a second scheduler disagreeing
|
|
160
415
|
* with the first (the dispatch service's own doctrine).
|
|
161
416
|
*/
|
|
162
|
-
DISPATCH_NEXT = "dispatch_next"
|
|
417
|
+
DISPATCH_NEXT = "dispatch_next",
|
|
418
|
+
/**
|
|
419
|
+
* Append ONE task the creator asked for, beside the plan that exists (#1454, Step 7). Collection-
|
|
420
|
+
* level: the row does not exist until the append answers. Deterministic — no model runs; the
|
|
421
|
+
* companion validates the task against the plan's own graph rules and re-renders the plan file.
|
|
422
|
+
*/
|
|
423
|
+
ADD_TASK = "add_task",
|
|
424
|
+
/**
|
|
425
|
+
* Run THIS task, by row. Admitted only when the task is READY — the graph still decides what may
|
|
426
|
+
* run, and this verb only lets the creator pick among the ready ones instead of taking the next.
|
|
427
|
+
* A non-ready task answers 409 naming what it waits on. Costs a coding run.
|
|
428
|
+
*/
|
|
429
|
+
DISPATCH_TASK = "dispatch_task",
|
|
430
|
+
/**
|
|
431
|
+
* ACCEPT what this task's latest completed coding run wrote: commit exactly those paths, from the
|
|
432
|
+
* coding-run write register, in one commit whose message names the task. Paths carrying another
|
|
433
|
+
* lane's hunks (dirty at the run's baseline) and paths edited since the run are refused by name
|
|
434
|
+
* unless `force`. Acceptance is a commit (`one-source-of-truth.md`), and under the YOLO posture the
|
|
435
|
+
* system may make it on the creator's word — this verb IS that word.
|
|
436
|
+
*/
|
|
437
|
+
ACCEPT = "accept"
|
|
163
438
|
}
|
|
164
|
-
/** The write-record resource's dispatch
|
|
439
|
+
/** The write-record resource's dispatch verbs. */
|
|
165
440
|
export declare enum WorkbenchRunWriteRecords_Operations {
|
|
166
441
|
/** Revert this run's writes. Files edited since are refused by name unless `force`. */
|
|
167
|
-
REVERT = "revert_writes"
|
|
442
|
+
REVERT = "revert_writes",
|
|
443
|
+
/**
|
|
444
|
+
* ACCEPT this run's writes: commit exactly the register's paths. A file that no longer holds the
|
|
445
|
+
* bytes the run wrote is refused by name unless `force` — the same divergence test `revert` applies,
|
|
446
|
+
* because in both directions a human edit is never silently swept into the run's account.
|
|
447
|
+
*/
|
|
448
|
+
ACCEPT = "accept",
|
|
449
|
+
/**
|
|
450
|
+
* WHAT this run changed, per file — read on demand, one run at a time (#1274). Deliberately not a
|
|
451
|
+
* field of the LIST row: pre-image bytes "belong to the revert mechanism, and a list row carrying
|
|
452
|
+
* every pre-image would ship the working tree's history through every LIST". Computed from the
|
|
453
|
+
* register's own pre/post content, never from `git diff`, so it is the RUN's change and not
|
|
454
|
+
* everything uncommitted at those paths.
|
|
455
|
+
*/
|
|
456
|
+
READ_DIFF = "read_diff"
|
|
168
457
|
}
|
|
169
458
|
export declare const Workbench_PlaybookRunRequest_Schema: z.ZodObject<{
|
|
170
459
|
creatorBrief: z.ZodOptional<z.ZodString>;
|
|
@@ -173,11 +462,13 @@ export declare const Workbench_PlaybookRunRequest_Schema: z.ZodObject<{
|
|
|
173
462
|
answer: z.ZodString;
|
|
174
463
|
}, z.core.$strip>>>;
|
|
175
464
|
dryRun: z.ZodOptional<z.ZodBoolean>;
|
|
465
|
+
instanceKey: z.ZodOptional<z.ZodString>;
|
|
176
466
|
}, z.core.$strip>;
|
|
177
467
|
export type Workbench_PlaybookRunRequest = z.infer<typeof Workbench_PlaybookRunRequest_Schema>;
|
|
178
468
|
export declare const Workbench_PlaybookResumeRequest_Schema: z.ZodObject<{
|
|
179
469
|
runId: z.ZodString;
|
|
180
|
-
|
|
470
|
+
round: z.ZodNumber;
|
|
471
|
+
action: z.ZodEnum<typeof MetaWorkflow_ClarificationAction>;
|
|
181
472
|
answers: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
182
473
|
ref: z.ZodString;
|
|
183
474
|
answer: z.ZodString;
|
|
@@ -186,10 +477,49 @@ export declare const Workbench_PlaybookResumeRequest_Schema: z.ZodObject<{
|
|
|
186
477
|
export type Workbench_PlaybookResumeRequest = z.infer<typeof Workbench_PlaybookResumeRequest_Schema>;
|
|
187
478
|
export declare const Workbench_BuildPlanDispatchNextRequest_Schema: z.ZodObject<{}, z.core.$strip>;
|
|
188
479
|
export type Workbench_BuildPlanDispatchNextRequest = z.infer<typeof Workbench_BuildPlanDispatchNextRequest_Schema>;
|
|
480
|
+
/**
|
|
481
|
+
* One task to append (#1454, Step 7). The `target` and `produces` shapes are owned by
|
|
482
|
+
* `@wildo-ai/saas-specifications` (`BuildPlanTaskSchema`), which this package deliberately does not
|
|
483
|
+
* depend on, so they cross here as records and the companion parses them against the real schema
|
|
484
|
+
* before anything is written. `taskRef` is derived from the objective when absent.
|
|
485
|
+
*/
|
|
486
|
+
export declare const Workbench_BuildPlanAddTaskRequest_Schema: z.ZodObject<{
|
|
487
|
+
taskRef: z.ZodOptional<z.ZodString>;
|
|
488
|
+
objective: z.ZodString;
|
|
489
|
+
target: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
490
|
+
produces: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
491
|
+
functionalTopic: z.ZodString;
|
|
492
|
+
skillRefs: z.ZodArray<z.ZodString>;
|
|
493
|
+
prerequisiteTaskRefs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
494
|
+
servesRefs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
495
|
+
}, z.core.$strip>;
|
|
496
|
+
export type Workbench_BuildPlanAddTaskRequest = z.infer<typeof Workbench_BuildPlanAddTaskRequest_Schema>;
|
|
497
|
+
export declare const Workbench_BuildPlanDispatchTaskRequest_Schema: z.ZodObject<{
|
|
498
|
+
conversationId: z.ZodOptional<z.ZodString>;
|
|
499
|
+
}, z.core.$strip>;
|
|
500
|
+
export type Workbench_BuildPlanDispatchTaskRequest = z.infer<typeof Workbench_BuildPlanDispatchTaskRequest_Schema>;
|
|
501
|
+
export declare const Workbench_AcceptChangesRequest_Schema: z.ZodObject<{
|
|
502
|
+
force: z.ZodOptional<z.ZodBoolean>;
|
|
503
|
+
}, z.core.$strip>;
|
|
504
|
+
export type Workbench_AcceptChangesRequest = z.infer<typeof Workbench_AcceptChangesRequest_Schema>;
|
|
189
505
|
export declare const Workbench_RunWriteRevertRequest_Schema: z.ZodObject<{
|
|
190
506
|
force: z.ZodOptional<z.ZodBoolean>;
|
|
191
507
|
}, z.core.$strip>;
|
|
192
508
|
export type Workbench_RunWriteRevertRequest = z.infer<typeof Workbench_RunWriteRevertRequest_Schema>;
|
|
509
|
+
/**
|
|
510
|
+
* What a playbook run's answer says about the run, when it says anything (#1781). Absent on a run that
|
|
511
|
+
* concluded, or on a detached submission that is still going.
|
|
512
|
+
*
|
|
513
|
+
* One named home for a vocabulary the companion writes and several readers compare — the run record,
|
|
514
|
+
* the clarification lifecycle, the resume route, and the workbench's summary of a RESUME, which used
|
|
515
|
+
* to read every answer carrying a `runId` as "Started", a cancelled clarification included.
|
|
516
|
+
*/
|
|
517
|
+
export declare enum Workbench_PlaybookRunOutcomeStatus {
|
|
518
|
+
/** Healthy, and waiting at a clarification: the run asked the creator something and holds until answered. */
|
|
519
|
+
AWAITING_CREATOR_INPUT = "awaiting_creator_input",
|
|
520
|
+
/** The creator cancelled a clarification: the run was abandoned and does not continue. */
|
|
521
|
+
CANCELLED = "cancelled"
|
|
522
|
+
}
|
|
193
523
|
/**
|
|
194
524
|
* Dispatch RESPONSES are LOOSE objects, deliberately: each names the fields the board branches on
|
|
195
525
|
* and forwards the rest verbatim. The companion routes already spread the whole service result, and
|
|
@@ -198,8 +528,7 @@ export type Workbench_RunWriteRevertRequest = z.infer<typeof Workbench_RunWriteR
|
|
|
198
528
|
*/
|
|
199
529
|
export declare const Workbench_PlaybookRunOutcome_Schema: z.ZodObject<{
|
|
200
530
|
runId: z.ZodOptional<z.ZodString>;
|
|
201
|
-
|
|
202
|
-
status: z.ZodOptional<z.ZodString>;
|
|
531
|
+
status: z.ZodOptional<z.ZodEnum<typeof Workbench_PlaybookRunOutcomeStatus>>;
|
|
203
532
|
note: z.ZodOptional<z.ZodString>;
|
|
204
533
|
}, z.core.$loose>;
|
|
205
534
|
export type Workbench_PlaybookRunOutcome = z.infer<typeof Workbench_PlaybookRunOutcome_Schema>;
|
|
@@ -208,12 +537,773 @@ export declare const Workbench_BuildPlanDispatchOutcome_Schema: z.ZodObject<{
|
|
|
208
537
|
note: z.ZodOptional<z.ZodString>;
|
|
209
538
|
}, z.core.$loose>;
|
|
210
539
|
export type Workbench_BuildPlanDispatchOutcome = z.infer<typeof Workbench_BuildPlanDispatchOutcome_Schema>;
|
|
540
|
+
export declare const Workbench_BuildPlanAddTaskOutcome_Schema: z.ZodObject<{
|
|
541
|
+
taskRef: z.ZodOptional<z.ZodString>;
|
|
542
|
+
/** TRUE when no plan existed and this task is its first. */
|
|
543
|
+
createdPlan: z.ZodOptional<z.ZodBoolean>;
|
|
544
|
+
/** Validator findings below the hard floor — worth telling the creator, never a refusal. */
|
|
545
|
+
advisoryFindings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
546
|
+
code: z.ZodString;
|
|
547
|
+
taskRef: z.ZodString;
|
|
548
|
+
message: z.ZodString;
|
|
549
|
+
}, z.core.$strip>>>;
|
|
550
|
+
note: z.ZodOptional<z.ZodString>;
|
|
551
|
+
}, z.core.$loose>;
|
|
552
|
+
export type Workbench_BuildPlanAddTaskOutcome = z.infer<typeof Workbench_BuildPlanAddTaskOutcome_Schema>;
|
|
553
|
+
/** How ACCEPT answers, for a task's coding run or a playbook run alike: what was committed, what was refused and why. */
|
|
554
|
+
export declare const Workbench_AcceptChangesOutcome_Schema: z.ZodObject<{
|
|
555
|
+
commitSha: z.ZodOptional<z.ZodString>;
|
|
556
|
+
committedPaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
557
|
+
refusedPaths: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
558
|
+
path: z.ZodString;
|
|
559
|
+
reason: z.ZodString;
|
|
560
|
+
}, z.core.$strip>>>;
|
|
561
|
+
message: z.ZodOptional<z.ZodString>;
|
|
562
|
+
note: z.ZodOptional<z.ZodString>;
|
|
563
|
+
}, z.core.$loose>;
|
|
564
|
+
export type Workbench_AcceptChangesOutcome = z.infer<typeof Workbench_AcceptChangesOutcome_Schema>;
|
|
211
565
|
export declare const Workbench_RunWriteRevertOutcome_Schema: z.ZodObject<{
|
|
212
566
|
runId: z.ZodOptional<z.ZodString>;
|
|
213
567
|
reverted: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
214
568
|
/** Files whose current bytes differ from what the run wrote — refused by name, revertable with force. */
|
|
215
569
|
refusedDiverged: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
570
|
+
/**
|
|
571
|
+
* Files a LATER recorded run landed on (#1614): refused even under force, because the earlier bytes
|
|
572
|
+
* would destroy that run's work. Each names the run to revert first (#1666).
|
|
573
|
+
*/
|
|
574
|
+
refusedLaterRun: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
575
|
+
path: z.ZodString;
|
|
576
|
+
runId: z.ZodString;
|
|
577
|
+
}, z.core.$strip>>>;
|
|
216
578
|
note: z.ZodOptional<z.ZodString>;
|
|
217
579
|
}, z.core.$loose>;
|
|
218
580
|
export type Workbench_RunWriteRevertOutcome = z.infer<typeof Workbench_RunWriteRevertOutcome_Schema>;
|
|
581
|
+
/**
|
|
582
|
+
* One BUILD DISPATCH — an attempt to run one build-plan task.
|
|
583
|
+
*
|
|
584
|
+
* The lane's own history: what was selected, when, and how it ended. A task may be dispatched more
|
|
585
|
+
* than once (a failure is re-dispatchable), so the row is the ATTEMPT and `taskRef` is what groups
|
|
586
|
+
* them — the same relationship a run write record has to its playbook.
|
|
587
|
+
*/
|
|
588
|
+
/**
|
|
589
|
+
* The NEXT build task — what a dispatch would do, with nothing started. At most one row.
|
|
590
|
+
*
|
|
591
|
+
* ## Why a proposal is a row
|
|
592
|
+
*
|
|
593
|
+
* It looks like a computed answer rather than a record, and that is why it stayed a bespoke read
|
|
594
|
+
* longest. But everything a person asks of it is what they ask of a row: what is it, what may it
|
|
595
|
+
* touch, what must it pass, and how far through the plan are we. It has an identity (`taskRef`), it
|
|
596
|
+
* is polled, it is rendered as a card, and a dispatch acts on it.
|
|
597
|
+
*
|
|
598
|
+
* ## Distinct from the build-plan TASK, deliberately
|
|
599
|
+
*
|
|
600
|
+
* `workbenchBuildPlanTasks` is every task and its status. This is the SELECTION — which one is next,
|
|
601
|
+
* plus the guard rails a dispatch of it would carry (allowed paths, prohibited paths, required
|
|
602
|
+
* checks, installed skills), which belong to the dispatch rather than to the task. Two resources
|
|
603
|
+
* because they answer different questions; the task list never changes because a selection did.
|
|
604
|
+
*
|
|
605
|
+
* ## Zero rows means the build is FINISHED, not that the read failed
|
|
606
|
+
*
|
|
607
|
+
* The companion answers `plan: null` with an `exhausted` count for a completed build, and it is a
|
|
608
|
+
* 200. That used to be a non-2xx, so the end of the journey rendered as "could not look" — the board
|
|
609
|
+
* telling an operator something went wrong at the moment everything had gone right. The counts live
|
|
610
|
+
* on this row so the finished state can say how far it got.
|
|
611
|
+
*/
|
|
612
|
+
export declare const Workbench_BuildDispatchPlan_Schema: z.ZodObject<{
|
|
613
|
+
workbenchBuildDispatchPlanId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
614
|
+
taskRef: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
615
|
+
objective: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
616
|
+
targetKind: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
617
|
+
generationStepRef: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
618
|
+
allowedPathPrefixes: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
619
|
+
prohibitedPathPrefixes: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
620
|
+
requiredChecks: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
621
|
+
installedSkillRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
622
|
+
readyTaskRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
623
|
+
landedTaskRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
624
|
+
unverifiableLandedTaskRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
625
|
+
exhausted: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
626
|
+
stuckTasks: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
|
|
627
|
+
taskRef: z.ZodString;
|
|
628
|
+
reason: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof Workbench_BuildTaskStuckReason>>;
|
|
629
|
+
priorTaskId: z.ZodNullable<z.ZodString>;
|
|
630
|
+
uncommittedPaths: z.ZodArray<z.ZodString>;
|
|
631
|
+
question: z.ZodNullable<z.ZodString>;
|
|
632
|
+
documentRef: z.ZodNullable<z.ZodString>;
|
|
633
|
+
}, z.core.$strip>>>;
|
|
634
|
+
taskCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
635
|
+
landedCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
636
|
+
}, z.core.$strip>;
|
|
637
|
+
export type Workbench_BuildDispatchPlan = z.infer<typeof Workbench_BuildDispatchPlan_Schema>;
|
|
638
|
+
export declare const Workbench_BuildDispatch_Schema: z.ZodObject<{
|
|
639
|
+
workbenchBuildDispatchId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
640
|
+
taskRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
641
|
+
objective: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
642
|
+
phase: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof Workbench_BuildDispatchPhase>>>;
|
|
643
|
+
startedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
|
|
644
|
+
settledAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
|
|
645
|
+
codingTaskId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
|
|
646
|
+
error: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
647
|
+
conversationId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
648
|
+
accepted: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>>;
|
|
649
|
+
}, z.core.$strip>;
|
|
650
|
+
export type Workbench_BuildDispatch = z.infer<typeof Workbench_BuildDispatch_Schema>;
|
|
651
|
+
/**
|
|
652
|
+
* One playbook run SUSPENDED waiting on a person.
|
|
653
|
+
*
|
|
654
|
+
* The run stopped mid-way and asked something. The row carries where it stopped and what it asked,
|
|
655
|
+
* because both are what a creator needs to answer it — a question with no run context is a question
|
|
656
|
+
* nobody can answer.
|
|
657
|
+
*/
|
|
658
|
+
/**
|
|
659
|
+
* WHERE a playbook run is in its life — the one field that decides how its row reads.
|
|
660
|
+
*
|
|
661
|
+
* ## Why one vocabulary and not four collections
|
|
662
|
+
*
|
|
663
|
+
* The companion answers `{ running, runningDetached, interrupted, lastCompleted }`, and a board
|
|
664
|
+
* reading that shape has to know which array means what before it can render anything. They are not
|
|
665
|
+
* four kinds of thing: they are one thing — a run of a playbook — in four states, and the fields that
|
|
666
|
+
* differ between them (a finish time, a verdict, a checkpoint) are exactly the fields a state decides
|
|
667
|
+
* the presence of. Naming the state makes that explicit and makes the row renderable by one layout.
|
|
668
|
+
*
|
|
669
|
+
* The distinction that matters most is RUNNING vs RUNNING_DETACHED, and it is not cosmetic: the
|
|
670
|
+
* first is a composite holding its instance's single-flight subject and never an ordinary run, so a board
|
|
671
|
+
* that read it alone reported "nothing is running" while a fifteen-minute run was in flight.
|
|
672
|
+
*/
|
|
673
|
+
export declare enum Workbench_PlaybookRunState {
|
|
674
|
+
/** A composite holding its instance's single-flight subject (#1610): one per running instance, several at once, never an ordinary run. */
|
|
675
|
+
RUNNING = "running",
|
|
676
|
+
/** An ordinary run this companion process is executing right now. */
|
|
677
|
+
RUNNING_DETACHED = "running_detached",
|
|
678
|
+
/** A run that stopped without finishing and left a checkpoint that can be re-run. */
|
|
679
|
+
INTERRUPTED = "interrupted",
|
|
680
|
+
/** The most recent outcome for a playbook ref — settled, with a verdict. */
|
|
681
|
+
COMPLETED = "completed",
|
|
682
|
+
/**
|
|
683
|
+
* A run that STOPPED TO ASK and is waiting on a person — not running, not finished, no verdict.
|
|
684
|
+
*
|
|
685
|
+
* It borrowed COMPLETED until 2026-09-24, flagged by `awaitingFamily`, so every reader had to remember that one
|
|
686
|
+
* "completed" row was not complete. The outcome reader remembered; Home did not, and told the creator a dry run
|
|
687
|
+
* waiting on their answer had "ran and landed its result" (#1271). A state that has to be un-said by another field
|
|
688
|
+
* is a missing member of its vocabulary.
|
|
689
|
+
*/
|
|
690
|
+
AWAITING_ANSWER = "awaiting_answer"
|
|
691
|
+
}
|
|
692
|
+
/**
|
|
693
|
+
* One playbook run, in whatever state it is in.
|
|
694
|
+
*
|
|
695
|
+
* Kept ONE-PER-REF for the completed state by the companion, so a COMPLETED row is the last run of
|
|
696
|
+
* that playbook and never a history of it.
|
|
697
|
+
*/
|
|
698
|
+
export declare const Workbench_PlaybookRun_Schema: z.ZodObject<{
|
|
699
|
+
workbenchPlaybookRunId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
700
|
+
runId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
701
|
+
playbookRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
702
|
+
instanceKey: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
703
|
+
traceSessionId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
704
|
+
conversationId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
705
|
+
state: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof Workbench_PlaybookRunState>>>;
|
|
706
|
+
startedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
|
|
707
|
+
finishedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
|
|
708
|
+
ok: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>>;
|
|
709
|
+
error: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
710
|
+
completedIterations: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>>;
|
|
711
|
+
checkpointedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
|
|
712
|
+
awaitingFamily: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
713
|
+
awaitingRound: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>>;
|
|
714
|
+
judgeOverall: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof MetaWorkflow_EvaluationVerdict>>>>;
|
|
715
|
+
judgeCriteria: z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
716
|
+
criterionRef: z.ZodString;
|
|
717
|
+
verdict: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof MetaWorkflow_EvaluationVerdict>>;
|
|
718
|
+
rationale: z.ZodString;
|
|
719
|
+
}, z.core.$strip>>>;
|
|
720
|
+
judgeSkipped: z.ZodNullable<z.ZodString>;
|
|
721
|
+
}, z.core.$strip>;
|
|
722
|
+
export type Workbench_PlaybookRun = z.infer<typeof Workbench_PlaybookRun_Schema>;
|
|
723
|
+
export declare const Workbench_WaitingPlaybookRun_Schema: z.ZodObject<{
|
|
724
|
+
workbenchWaitingPlaybookRunId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
725
|
+
runId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
726
|
+
readable: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
727
|
+
playbookRef: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
728
|
+
family: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
729
|
+
suspendedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
|
|
730
|
+
round: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>>;
|
|
731
|
+
dryRun: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>>;
|
|
732
|
+
requests: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
|
|
733
|
+
ref: z.ZodString;
|
|
734
|
+
question: z.ZodString;
|
|
735
|
+
why: z.ZodString;
|
|
736
|
+
kind: z.ZodString;
|
|
737
|
+
options: z.ZodArray<z.ZodString>;
|
|
738
|
+
}, z.core.$strip>>>;
|
|
739
|
+
routedToUserId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
740
|
+
}, z.core.$strip>;
|
|
741
|
+
export type Workbench_WaitingPlaybookRun = z.infer<typeof Workbench_WaitingPlaybookRun_Schema>;
|
|
742
|
+
/**
|
|
743
|
+
* One coding run PARKED on a question.
|
|
744
|
+
*
|
|
745
|
+
* It arrives inside the coding-agent status payload, which is a singleton and stays a companion
|
|
746
|
+
* read. These do not: a parked question is identified by the task that parked on it, it persists
|
|
747
|
+
* until somebody answers, and a queue of work waiting on a person is the last thing that should be
|
|
748
|
+
* reachable only by reading a status blob.
|
|
749
|
+
*/
|
|
750
|
+
/**
|
|
751
|
+
* The coding lane's own posture — ONE row, always present.
|
|
752
|
+
*
|
|
753
|
+
* ## Why a singleton resource rather than the read it replaced
|
|
754
|
+
*
|
|
755
|
+
* It was a companion read answering a status object, and that read ALSO carried the parked
|
|
756
|
+
* questions — a queue keyed by task id — inside it. Two different things in one payload: a queue of
|
|
757
|
+
* work waiting on a person, and a statement about the lane. The queue is
|
|
758
|
+
* `workbenchParkedCodingQuestions`; this is what remains, and it is genuinely one row.
|
|
759
|
+
*
|
|
760
|
+
* ## What each field is careful about
|
|
761
|
+
*
|
|
762
|
+
* `codingAgentRegistered` reports exactly what the dispatch service can ESTABLISH — that every
|
|
763
|
+
* declared agent resolves in the registry — and deliberately does not claim the transport is usable,
|
|
764
|
+
* because that depends on the provider configuration and on a process it has not started. Anything
|
|
765
|
+
* reading this must not upgrade it to "ready".
|
|
766
|
+
*
|
|
767
|
+
* `activeRunTaskId` being NULL does not mean idle. A run that parks on a question clears it while
|
|
768
|
+
* staying very much alive, so a badge derived from this field alone read "idle" with a question
|
|
769
|
+
* outstanding — which is why the parked queue has to be read beside it.
|
|
770
|
+
*/
|
|
771
|
+
export declare const Workbench_CodingLaneStatus_Schema: z.ZodObject<{
|
|
772
|
+
workbenchCodingLaneStatusId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
773
|
+
codingAgentRegistered: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
774
|
+
codingAgentProviderRef: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
775
|
+
codingAgentSignedIn: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>>;
|
|
776
|
+
codingAgentLoginDetail: z.ZodNullable<z.ZodString>;
|
|
777
|
+
codingAgentLoginRemedy: z.ZodNullable<z.ZodString>;
|
|
778
|
+
activeRunTaskId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
|
|
779
|
+
activeRunStartedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
|
|
780
|
+
lockFilePath: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
781
|
+
defaultTimeoutMs: z.ZodNumber;
|
|
782
|
+
hardMaxTimeoutMs: z.ZodNumber;
|
|
783
|
+
defaultMaxCapturedBytes: z.ZodNumber;
|
|
784
|
+
hardMaxCapturedBytes: z.ZodNumber;
|
|
785
|
+
}, z.core.$strip>;
|
|
786
|
+
export type Workbench_CodingLaneStatus = z.infer<typeof Workbench_CodingLaneStatus_Schema>;
|
|
787
|
+
/**
|
|
788
|
+
* The option refs a parked coding run offers. Closed, because the caller BRANCHES on which came back.
|
|
789
|
+
*
|
|
790
|
+
* Both are real decisions here, unlike a playbook interview — which offers only "run with these
|
|
791
|
+
* answers", because declining an interview settles nothing that is waiting. A parked run IS waiting:
|
|
792
|
+
* answering resumes the same session, and cancelling ends the run.
|
|
793
|
+
*
|
|
794
|
+
* ## Why it lives HERE rather than in the companion that mints it
|
|
795
|
+
*
|
|
796
|
+
* Both ends need it and neither can import the other: the companion projects a parked run as a
|
|
797
|
+
* decision, and the workbench reconstructs that decision from the ROW to render the answer form. It
|
|
798
|
+
* was declared in the companion alone until 2026-09-19, which meant a browser wanting to branch on
|
|
799
|
+
* an option had to re-spell the two values — a second copy of a closed vocabulary, compiling
|
|
800
|
+
* perfectly and free to drift.
|
|
801
|
+
*/
|
|
802
|
+
export declare enum Workbench_ParkedCodingQuestionOptionRef {
|
|
803
|
+
ANSWER = "answer",
|
|
804
|
+
CANCEL = "cancel"
|
|
805
|
+
}
|
|
806
|
+
/** The single field a parked run asks: the agent's own question, verbatim. */
|
|
807
|
+
export declare const WORKBENCH_PARKED_CODING_QUESTION_FIELD_REF = "answer";
|
|
808
|
+
export declare const Workbench_ParkedCodingQuestion_Schema: z.ZodObject<{
|
|
809
|
+
workbenchParkedCodingQuestionId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
810
|
+
taskId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
811
|
+
taskRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
812
|
+
question: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
813
|
+
parkedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
|
|
814
|
+
resumable: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
815
|
+
suspensionRef: z.ZodString;
|
|
816
|
+
}, z.core.$strip>;
|
|
817
|
+
export type Workbench_ParkedCodingQuestion = z.infer<typeof Workbench_ParkedCodingQuestion_Schema>;
|
|
818
|
+
/**
|
|
819
|
+
* One dossier entry: a question a playbook declares, and what the creator said to it, if anything.
|
|
820
|
+
*
|
|
821
|
+
* The identity is the pair (`playbookRef`, `questionRef`), sanitized — the key the `creator-inputs`
|
|
822
|
+
* family stores answers under, so the page addresses an answer the way the file does. The
|
|
823
|
+
* question's own text, kind and options are carried on the row (from the compiled catalog) so a
|
|
824
|
+
* surface can ASK it without a second read.
|
|
825
|
+
*/
|
|
826
|
+
export declare const Workbench_DossierEntry_Schema: z.ZodObject<{
|
|
827
|
+
workbenchDossierEntryId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
828
|
+
playbookRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
829
|
+
questionRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
830
|
+
instanceKey: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
831
|
+
instancePurpose: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
832
|
+
question: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
833
|
+
kind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
834
|
+
options: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
835
|
+
position: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
836
|
+
standing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchDossierEntryStanding>>>;
|
|
837
|
+
value: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
838
|
+
answeredAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodDate>>;
|
|
839
|
+
answeredByRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
840
|
+
playbookEligible: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
841
|
+
askedNow: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
842
|
+
affectsFamilies: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
843
|
+
subject: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchSpecificationArtifactConcern>>>;
|
|
844
|
+
outOfDate: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
845
|
+
outOfDateStepRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
846
|
+
sharedWithPlaybookRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
847
|
+
}, z.core.$strip>;
|
|
848
|
+
export type Workbench_DossierEntry = z.infer<typeof Workbench_DossierEntry_Schema>;
|
|
849
|
+
/** The dossier resource's one write verb. */
|
|
850
|
+
export declare enum WorkbenchDossierEntries_Operations {
|
|
851
|
+
/** Record (or change) the creator's answer to this question. Lands `creator-inputs`; a commit accepts it. */
|
|
852
|
+
ANSWER = "answer"
|
|
853
|
+
}
|
|
854
|
+
export declare const Workbench_DossierAnswerRequest_Schema: z.ZodObject<{
|
|
855
|
+
value: z.ZodString;
|
|
856
|
+
}, z.core.$strip>;
|
|
857
|
+
export type Workbench_DossierAnswerRequest = z.infer<typeof Workbench_DossierAnswerRequest_Schema>;
|
|
858
|
+
export declare const Workbench_DossierAnswerOutcome_Schema: z.ZodObject<{
|
|
859
|
+
/** The answer as STORED (canonical for a `confirm`). */
|
|
860
|
+
value: z.ZodString;
|
|
861
|
+
answeredAt: z.ZodString;
|
|
862
|
+
/** The dossier file this landed in, package-relative. */
|
|
863
|
+
packageRelativePath: z.ZodString;
|
|
864
|
+
/** The asking playbook's questions still unanswered after this one — empty means it can run. */
|
|
865
|
+
unansweredQuestionRefs: z.ZodArray<z.ZodString>;
|
|
866
|
+
}, z.core.$loose>;
|
|
867
|
+
export type Workbench_DossierAnswerOutcome = z.infer<typeof Workbench_DossierAnswerOutcome_Schema>;
|
|
868
|
+
/**
|
|
869
|
+
* The SECTIONS of Home, the conversation page's opening surface (#1454, Step 3) — and the LIST filter
|
|
870
|
+
* a reader of `workbenchCreationHomeLines` narrows by.
|
|
871
|
+
*
|
|
872
|
+
* Three questions, three sections: what happened since I was here, what is asked of me now, what
|
|
873
|
+
* could I do next. Where the application stands is a resource of its own
|
|
874
|
+
* (`workbenchCreationOutcomes`), because an outcome is a measured STATE, not a line that opens
|
|
875
|
+
* something.
|
|
876
|
+
*/
|
|
877
|
+
export declare enum WorkbenchCreationHomeSection {
|
|
878
|
+
/** A run completed or cut short, a build dispatch settled — newest first. */
|
|
879
|
+
SINCE = "since",
|
|
880
|
+
/** What blocks something NOW and waits on the creator: a run stopped on a question, a coding run parked on one, a drafted document missing a fact. */
|
|
881
|
+
ASKED = "asked",
|
|
882
|
+
/** What the creator could do next, outcome-first: the plan's next task, a step producing a missing family, a step refreshing a stale one. */
|
|
883
|
+
SUGGESTION = "suggestion"
|
|
884
|
+
}
|
|
885
|
+
/**
|
|
886
|
+
* The KIND of a Home line — one closed vocabulary across the three sections, because a line's words
|
|
887
|
+
* and its tone are decided by its kind wherever it is rendered, and a section is only where it sits.
|
|
888
|
+
*
|
|
889
|
+
* ## Why the companion decides these and the page does not
|
|
890
|
+
*
|
|
891
|
+
* Until 2026-09-22 the page read SEVEN resources on their own cadences and derived every line itself
|
|
892
|
+
* — 900 lines of client arithmetic over rows a projection had already computed, re-run on every
|
|
893
|
+
* poll, invisible to the assistant's tools and to every other reader. A line is a FACT about the
|
|
894
|
+
* application ("this run was refused", "this task's writes wait to be committed"); facts are
|
|
895
|
+
* derived where the rows are, once, and served as rows themselves (`derive-before-you-ask.md`).
|
|
896
|
+
*/
|
|
897
|
+
export declare enum WorkbenchCreationHomeLineKind {
|
|
898
|
+
/** A playbook run completed — landed or refused; `failed` says which. */
|
|
899
|
+
RUN_COMPLETED = "run-completed",
|
|
900
|
+
/** A playbook run the companion's restart cut short; re-running resumes it. Shown whatever its date. */
|
|
901
|
+
RUN_INTERRUPTED = "run-interrupted",
|
|
902
|
+
/** A build dispatch finished or failed; `acceptable` says whether its writes wait to be committed. */
|
|
903
|
+
DISPATCH_SETTLED = "dispatch-settled",
|
|
904
|
+
/** A playbook run suspended on questions only the creator can answer. */
|
|
905
|
+
CLARIFICATION = "clarification",
|
|
906
|
+
/** A coding run parked on a question the agent could not answer alone. */
|
|
907
|
+
PARKED_QUESTION = "parked-question",
|
|
908
|
+
/** A governed document the creator asked for (a draft exists) still needing a fact only they can give. */
|
|
909
|
+
GOVERNANCE_DOCUMENT = "governance-document",
|
|
910
|
+
/** The next READY build task of the dispatch plan. */
|
|
911
|
+
CONTINUE_THE_PLAN = "continue-the-plan",
|
|
912
|
+
/**
|
|
913
|
+
* The plan can run NOTHING: every ready task is stuck, and `stuckReason` says what unblocks it.
|
|
914
|
+
*
|
|
915
|
+
* ASKED rather than SUGGESTION, because every reason is the creator's move — committing what a
|
|
916
|
+
* finished run wrote under GUIDED, or, under the autonomy posture where the loop commits (#1534),
|
|
917
|
+
* resolving the path its accept refused or correcting a declaration no run can satisfy.
|
|
918
|
+
* Without it the plan simply falls silent: `CONTINUE_THE_PLAN` is derived from the next ready task,
|
|
919
|
+
* and a stuck queue has none (#1451, #1463).
|
|
920
|
+
*/
|
|
921
|
+
UNBLOCK_THE_PLAN = "unblock-the-plan",
|
|
922
|
+
/** An eligible playbook whose output family is missing. */
|
|
923
|
+
PRODUCE_MISSING = "produce-missing",
|
|
924
|
+
/** An eligible playbook whose output is stale — derived before one of its inputs last changed. */
|
|
925
|
+
REFRESH_STALE = "refresh-stale"
|
|
926
|
+
}
|
|
927
|
+
/**
|
|
928
|
+
* One line of Home. Every line OPENS an element beside the page — `targetResourceType` +
|
|
929
|
+
* `targetResourceId` are the address the engine's hosted pane resolves — and carries the one or two
|
|
930
|
+
* facts the words need: the subject, in the creator's terms, and the flags that change the sentence.
|
|
931
|
+
*
|
|
932
|
+
* `targetResourceType` is a STRING, not `z.enum(WorkbenchShared_ResourceType)`: it is an address, not
|
|
933
|
+
* a vocabulary anyone words, and binding it here would make a line pointing at a resource a newer
|
|
934
|
+
* companion serves unparseable by an older workbench.
|
|
935
|
+
*/
|
|
936
|
+
export declare const Workbench_CreationHomeLine_Schema: z.ZodObject<{
|
|
937
|
+
workbenchCreationHomeLineId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
938
|
+
section: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchCreationHomeSection>>>;
|
|
939
|
+
kind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchCreationHomeLineKind>>>;
|
|
940
|
+
at: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodDate>>;
|
|
941
|
+
playbookRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
942
|
+
taskRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
943
|
+
subject: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
944
|
+
failed: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
945
|
+
acceptable: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
946
|
+
needsAnswers: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
947
|
+
stuckReason: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof Workbench_BuildTaskStuckReason>>>>;
|
|
948
|
+
targetResourceType: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
949
|
+
targetResourceId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
950
|
+
}, z.core.$strip>;
|
|
951
|
+
export type Workbench_CreationHomeLine = z.infer<typeof Workbench_CreationHomeLine_Schema>;
|
|
952
|
+
/**
|
|
953
|
+
* The four OUTCOMES an application's creation is measured by — the journey in the creator's words
|
|
954
|
+
* (Paul, 2026-09-21: "we do not have a real journey; top-down and bottom-up are internal
|
|
955
|
+
* considerations"). The playbook phases stay machinery underneath; this is what a person sees.
|
|
956
|
+
*
|
|
957
|
+
* Which specification family counts toward which outcome is the companion projection's business
|
|
958
|
+
* (`creation-home-projection.companion.ts`, total over `ApplicationSpecificationFamily`); this
|
|
959
|
+
* package deliberately does not import that vocabulary.
|
|
960
|
+
*/
|
|
961
|
+
export declare enum WorkbenchCreationOutcome {
|
|
962
|
+
/** Vision, market, requirements, features, business model, roadmap, brand. */
|
|
963
|
+
KNOW_WHAT_WE_BUILD = "know-what-we-build",
|
|
964
|
+
/** The compliance programme, the processor register, the facts and policies behind every governed document, the risks. */
|
|
965
|
+
KNOW_THE_RULES = "know-the-rules",
|
|
966
|
+
/** The domain plan, the placement plan, the build plan — and the build tasks landed. */
|
|
967
|
+
APPLICATION_WORKS = "application-works",
|
|
968
|
+
/** Governed documents released and published — and every other outcome done. */
|
|
969
|
+
READY_FOR_A_REAL_USER = "ready-for-a-real-user"
|
|
970
|
+
}
|
|
971
|
+
/** The order a person reads the outcomes in: what, rules, works, ready. Also the rows' `position`. */
|
|
972
|
+
export declare const WORKBENCH_CREATION_OUTCOMES_IN_ORDER: readonly WorkbenchCreationOutcome[];
|
|
973
|
+
export declare enum WorkbenchCreationOutcomeStatus {
|
|
974
|
+
NOT_STARTED = "not-started",
|
|
975
|
+
IN_PROGRESS = "in-progress",
|
|
976
|
+
DONE = "done"
|
|
977
|
+
}
|
|
978
|
+
/**
|
|
979
|
+
* Where the application stands on one outcome — ALWAYS four rows, one per outcome, in reading
|
|
980
|
+
* order. "Done" is strict: every family of the outcome landed, valid and not stale; for the
|
|
981
|
+
* application working, every build task landed too; for readiness, every other outcome done as
|
|
982
|
+
* well.
|
|
983
|
+
*/
|
|
984
|
+
export declare const Workbench_CreationOutcome_Schema: z.ZodObject<{
|
|
985
|
+
workbenchCreationOutcomeId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
986
|
+
outcome: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchCreationOutcome>>>;
|
|
987
|
+
status: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchCreationOutcomeStatus>>>;
|
|
988
|
+
position: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
989
|
+
familiesTotal: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
990
|
+
familiesLanded: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
991
|
+
familiesInvalid: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
992
|
+
familiesMissing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
993
|
+
familiesStale: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
994
|
+
tasksTotal: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodNumber>>;
|
|
995
|
+
tasksLanded: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodNumber>>;
|
|
996
|
+
unavailableRuntimes: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
997
|
+
}, z.core.$strip>;
|
|
998
|
+
export type Workbench_CreationOutcome = z.infer<typeof Workbench_CreationOutcome_Schema>;
|
|
999
|
+
/** An operation that takes nothing. */
|
|
1000
|
+
export declare const Workbench_EmptyRequest_Schema: z.ZodObject<{}, z.core.$strip>;
|
|
1001
|
+
/** `read_interview` on a playbook: the `HumanDecision_Request` it declares, or null. Carried opaquely — the engine owns that vocabulary. */
|
|
1002
|
+
export declare const Workbench_PlaybookInterview_Schema: z.ZodObject<{
|
|
1003
|
+
decision: z.ZodNullable<z.ZodUnknown>;
|
|
1004
|
+
}, z.core.$strip>;
|
|
1005
|
+
export type Workbench_PlaybookInterview = z.infer<typeof Workbench_PlaybookInterview_Schema>;
|
|
1006
|
+
/** One file's change within a run — see `read_diff`. */
|
|
1007
|
+
export declare const Workbench_RunWriteFileDiff_Schema: z.ZodObject<{
|
|
1008
|
+
path: z.ZodString;
|
|
1009
|
+
existedBefore: z.ZodBoolean;
|
|
1010
|
+
diverged: z.ZodBoolean;
|
|
1011
|
+
diff: z.ZodString;
|
|
1012
|
+
}, z.core.$strip>;
|
|
1013
|
+
export type Workbench_RunWriteFileDiff = z.infer<typeof Workbench_RunWriteFileDiff_Schema>;
|
|
1014
|
+
export declare const Workbench_RunWriteDiff_Schema: z.ZodObject<{
|
|
1015
|
+
runId: z.ZodString;
|
|
1016
|
+
playbookRef: z.ZodString;
|
|
1017
|
+
at: z.ZodString;
|
|
1018
|
+
files: z.ZodArray<z.ZodObject<{
|
|
1019
|
+
path: z.ZodString;
|
|
1020
|
+
existedBefore: z.ZodBoolean;
|
|
1021
|
+
diverged: z.ZodBoolean;
|
|
1022
|
+
diff: z.ZodString;
|
|
1023
|
+
}, z.core.$strip>>;
|
|
1024
|
+
}, z.core.$strip>;
|
|
1025
|
+
export type Workbench_RunWriteDiff = z.infer<typeof Workbench_RunWriteDiff_Schema>;
|
|
1026
|
+
/** The trace-session resource's READ-shaped verbs — what a session RECORDED, beyond the summary its row carries. */
|
|
1027
|
+
export declare enum WorkbenchTraceSessions_Operations {
|
|
1028
|
+
/** ONE session: every event in order, and its step artifacts by name (#1328) — what the Conversation tab reads. */
|
|
1029
|
+
READ_RECORD = "read_record",
|
|
1030
|
+
/** What one session SPENT, in tokens — summed from the agent-call usage already in its events (#1274). Never a currency. */
|
|
1031
|
+
READ_USAGE = "read_usage",
|
|
1032
|
+
/** One step ARTIFACT, as text — the brief the model saw, the answer it gave, a coding task's input (#1329). */
|
|
1033
|
+
READ_ARTIFACT = "read_artifact",
|
|
1034
|
+
/**
|
|
1035
|
+
* The trace sessions one ACTOR TASK ran in, latest first — the alias the coding lane writes for
|
|
1036
|
+
* every run (#1328). Collection-level: the task is the input, not a session. Empty for a task the
|
|
1037
|
+
* lane never ran, which is the ordinary case and not an error.
|
|
1038
|
+
*/
|
|
1039
|
+
LIST_FOR_TASK = "list_for_task"
|
|
1040
|
+
}
|
|
1041
|
+
/** One traced event, as the companion records it — the conversation's unit (#1328). */
|
|
1042
|
+
export declare const Workbench_TraceSessionEvent_Schema: z.ZodObject<{
|
|
1043
|
+
timestamp: z.ZodString;
|
|
1044
|
+
type: z.ZodString;
|
|
1045
|
+
summary: z.ZodString;
|
|
1046
|
+
stepId: z.ZodOptional<z.ZodString>;
|
|
1047
|
+
payload: z.ZodOptional<z.ZodUnknown>;
|
|
1048
|
+
}, z.core.$strip>;
|
|
1049
|
+
export type Workbench_TraceSessionEvent = z.infer<typeof Workbench_TraceSessionEvent_Schema>;
|
|
1050
|
+
/** One step directory of a session: the artifacts it holds, by file name. Bodies are read one at a time. */
|
|
1051
|
+
export declare const Workbench_TraceSessionStep_Schema: z.ZodObject<{
|
|
1052
|
+
stepDirName: z.ZodString;
|
|
1053
|
+
artifacts: z.ZodArray<z.ZodString>;
|
|
1054
|
+
}, z.core.$strip>;
|
|
1055
|
+
export type Workbench_TraceSessionStep = z.infer<typeof Workbench_TraceSessionStep_Schema>;
|
|
1056
|
+
export declare const Workbench_TraceSessionRecord_Schema: z.ZodObject<{
|
|
1057
|
+
sessionId: z.ZodString;
|
|
1058
|
+
startedAt: z.ZodString;
|
|
1059
|
+
label: z.ZodNullable<z.ZodString>;
|
|
1060
|
+
eventCount: z.ZodNumber;
|
|
1061
|
+
stepCount: z.ZodNumber;
|
|
1062
|
+
events: z.ZodArray<z.ZodObject<{
|
|
1063
|
+
timestamp: z.ZodString;
|
|
1064
|
+
type: z.ZodString;
|
|
1065
|
+
summary: z.ZodString;
|
|
1066
|
+
stepId: z.ZodOptional<z.ZodString>;
|
|
1067
|
+
payload: z.ZodOptional<z.ZodUnknown>;
|
|
1068
|
+
}, z.core.$strip>>;
|
|
1069
|
+
steps: z.ZodArray<z.ZodObject<{
|
|
1070
|
+
stepDirName: z.ZodString;
|
|
1071
|
+
artifacts: z.ZodArray<z.ZodString>;
|
|
1072
|
+
}, z.core.$strip>>;
|
|
1073
|
+
}, z.core.$strip>;
|
|
1074
|
+
export type Workbench_TraceSessionRecord = z.infer<typeof Workbench_TraceSessionRecord_Schema>;
|
|
1075
|
+
/** What one trace session spent, in TOKENS. `callsWithoutUsage` non-zero means the totals are a FLOOR, not the figure. */
|
|
1076
|
+
export declare const Workbench_TraceSessionUsage_Schema: z.ZodObject<{
|
|
1077
|
+
sessionId: z.ZodString;
|
|
1078
|
+
agentCalls: z.ZodNumber;
|
|
1079
|
+
callsWithoutUsage: z.ZodNumber;
|
|
1080
|
+
promptTokens: z.ZodNumber;
|
|
1081
|
+
completionTokens: z.ZodNumber;
|
|
1082
|
+
totalTokens: z.ZodNumber;
|
|
1083
|
+
}, z.core.$strip>;
|
|
1084
|
+
export type Workbench_TraceSessionUsage = z.infer<typeof Workbench_TraceSessionUsage_Schema>;
|
|
1085
|
+
export declare const Workbench_TraceArtifactRequest_Schema: z.ZodObject<{
|
|
1086
|
+
stepDirName: z.ZodString;
|
|
1087
|
+
fileName: z.ZodString;
|
|
1088
|
+
}, z.core.$strip>;
|
|
1089
|
+
export type Workbench_TraceArtifactRequest = z.infer<typeof Workbench_TraceArtifactRequest_Schema>;
|
|
1090
|
+
/** The artifact body, verbatim. A big brief renders by its OUTLINE, computed by the reader — the text is what it is owed. */
|
|
1091
|
+
export declare const Workbench_TraceArtifact_Schema: z.ZodObject<{
|
|
1092
|
+
body: z.ZodString;
|
|
1093
|
+
}, z.core.$strip>;
|
|
1094
|
+
export type Workbench_TraceArtifact = z.infer<typeof Workbench_TraceArtifact_Schema>;
|
|
1095
|
+
export declare const Workbench_TraceSessionsForTaskRequest_Schema: z.ZodObject<{
|
|
1096
|
+
taskId: z.ZodString;
|
|
1097
|
+
}, z.core.$strip>;
|
|
1098
|
+
export declare const Workbench_TraceSessionsForTask_Schema: z.ZodObject<{
|
|
1099
|
+
sessionIds: z.ZodArray<z.ZodString>;
|
|
1100
|
+
}, z.core.$strip>;
|
|
1101
|
+
export type Workbench_TraceSessionsForTask = z.infer<typeof Workbench_TraceSessionsForTask_Schema>;
|
|
1102
|
+
/**
|
|
1103
|
+
* The parked coding question's two verbs — the decision the row IS (see
|
|
1104
|
+
* {@link Workbench_ParkedCodingQuestionOptionRef}): answer it and resume the same session, or end
|
|
1105
|
+
* the run. Both were bespoke companion routes with a browser exemption on the token floor until
|
|
1106
|
+
* 2026-09-22; the row's own operations are where a reader meets them.
|
|
1107
|
+
*/
|
|
1108
|
+
export declare enum WorkbenchParkedCodingQuestions_Operations {
|
|
1109
|
+
/** Answer THIS parked run and resume the same agent session. A WRITE: it re-enters a workspace-mutating run behind the worktree lock. */
|
|
1110
|
+
ANSWER = "answer",
|
|
1111
|
+
/**
|
|
1112
|
+
* End THIS parked run. Per row since #1581 (seventh review): with waves (#1528) several runs may be
|
|
1113
|
+
* live, and a collection-level cancel ended whatever this process drove — doing nothing for a park
|
|
1114
|
+
* no chain held, and stopping other runs while this one stayed parked.
|
|
1115
|
+
*/
|
|
1116
|
+
CANCEL = "cancel"
|
|
1117
|
+
}
|
|
1118
|
+
export declare const Workbench_ParkedQuestionAnswerRequest_Schema: z.ZodObject<{
|
|
1119
|
+
answer: z.ZodString;
|
|
1120
|
+
suspensionRef: z.ZodString;
|
|
1121
|
+
}, z.core.$strip>;
|
|
1122
|
+
export type Workbench_ParkedQuestionAnswerRequest = z.infer<typeof Workbench_ParkedQuestionAnswerRequest_Schema>;
|
|
1123
|
+
/** The lane's admission of the resumed run — its own shape, carried loosely. */
|
|
1124
|
+
export declare const Workbench_ParkedQuestionAnswerOutcome_Schema: z.ZodObject<{}, z.core.$loose>;
|
|
1125
|
+
export type Workbench_ParkedQuestionAnswerOutcome = z.infer<typeof Workbench_ParkedQuestionAnswerOutcome_Schema>;
|
|
1126
|
+
/**
|
|
1127
|
+
* The row's `cancel` answers ONLY a run it ended or signalled: a run that moved on meanwhile is a 409 the
|
|
1128
|
+
* gate shows, never a `cancelled: false` read as success (#1581, eleventh and twelfth reviews).
|
|
1129
|
+
*/
|
|
1130
|
+
export declare const Workbench_CodingRunCancelOutcome_Schema: z.ZodObject<{
|
|
1131
|
+
cancelled: z.ZodLiteral<true>;
|
|
1132
|
+
}, z.core.$loose>;
|
|
1133
|
+
export type Workbench_CodingRunCancelOutcome = z.infer<typeof Workbench_CodingRunCancelOutcome_Schema>;
|
|
1134
|
+
/**
|
|
1135
|
+
* The governed document's one verb: LAND the facts a person established for it as the
|
|
1136
|
+
* `document-facts-authored` family. The row is the document; the body carries the governance scope,
|
|
1137
|
+
* the answers and, for a reviewed fact, the review — a per-question verb with a bare value could
|
|
1138
|
+
* carry none of that, which is why the question resource has no write verb of its own.
|
|
1139
|
+
*/
|
|
1140
|
+
export declare enum WorkbenchGovernanceDocuments_Operations {
|
|
1141
|
+
LAND_FACTS = "land_facts"
|
|
1142
|
+
}
|
|
1143
|
+
/**
|
|
1144
|
+
* The landing request's ENVELOPE. The answer SEMANTICS stay with the companion service that owns the
|
|
1145
|
+
* question catalog (it refuses an unknown question, a review with no reviewer, "does not apply" on a
|
|
1146
|
+
* question that does not offer it — each with its own sentence); this refuses a body that is not a
|
|
1147
|
+
* landing request at all.
|
|
1148
|
+
*/
|
|
1149
|
+
export declare const Workbench_GovernanceFactsLandingRequest_Schema: z.ZodObject<{
|
|
1150
|
+
definitionRef: z.ZodString;
|
|
1151
|
+
decidedByRef: z.ZodString;
|
|
1152
|
+
decidedAt: z.ZodString;
|
|
1153
|
+
governanceScope: z.ZodObject<{
|
|
1154
|
+
subjectKind: z.ZodString;
|
|
1155
|
+
subjectRef: z.ZodString;
|
|
1156
|
+
scopeRef: z.ZodString;
|
|
1157
|
+
scopeVersion: z.ZodNumber;
|
|
1158
|
+
participantRefs: z.ZodArray<z.ZodString>;
|
|
1159
|
+
precedenceRuleRefs: z.ZodArray<z.ZodString>;
|
|
1160
|
+
}, z.core.$strip>;
|
|
1161
|
+
answers: z.ZodArray<z.ZodUnknown>;
|
|
1162
|
+
dryRun: z.ZodOptional<z.ZodBoolean>;
|
|
1163
|
+
}, z.core.$strip>;
|
|
1164
|
+
export type Workbench_GovernanceFactsLandingRequest = z.infer<typeof Workbench_GovernanceFactsLandingRequest_Schema>;
|
|
1165
|
+
export declare const Workbench_GovernanceFactsLandingOutcome_Schema: z.ZodObject<{
|
|
1166
|
+
family: z.ZodString;
|
|
1167
|
+
packageRelativePath: z.ZodString;
|
|
1168
|
+
exportedConstantName: z.ZodString;
|
|
1169
|
+
renderedSource: z.ZodString;
|
|
1170
|
+
existedBefore: z.ZodBoolean;
|
|
1171
|
+
wiringAlreadyInPlace: z.ZodArray<z.ZodString>;
|
|
1172
|
+
}, z.core.$strip>;
|
|
1173
|
+
export type Workbench_GovernanceFactsLandingOutcome = z.infer<typeof Workbench_GovernanceFactsLandingOutcome_Schema>;
|
|
1174
|
+
/**
|
|
1175
|
+
* Where one secret stands for an application in one environment (#1637).
|
|
1176
|
+
*
|
|
1177
|
+
* The ONE vocabulary for `wildo secrets list`, the creation essentials of `wildo init`/`setup` and
|
|
1178
|
+
* the workbench's secrets section, so the three cannot disagree about what "needed" means. Derived
|
|
1179
|
+
* from what the application declares (the providers it scopes, the capabilities it enables, its systems
|
|
1180
|
+
* of record and inbound endpoints), never from the provider catalogue.
|
|
1181
|
+
*/
|
|
1182
|
+
export declare enum ApplicationSecretStanding {
|
|
1183
|
+
/**
|
|
1184
|
+
* Required by something the application uses, unset, and nothing else covers what it is for: a
|
|
1185
|
+
* capability, a provider the application scoped on purpose, a system of record or an inbound endpoint
|
|
1186
|
+
* cannot work until it is provided.
|
|
1187
|
+
*/
|
|
1188
|
+
NEEDED = "needed",
|
|
1189
|
+
/** It has a value in this environment, and something reads it. */
|
|
1190
|
+
SET = "set",
|
|
1191
|
+
/** Unset, and nothing waits for it: an optional key, or a capability another provider already serves. */
|
|
1192
|
+
AVAILABLE = "available",
|
|
1193
|
+
/**
|
|
1194
|
+
* It has a value, and nothing CONSUMES it: a provider key no provider declares, a system-of-record key
|
|
1195
|
+
* naming no declared instance or no slot its credential has, an inbound key naming no endpoint. It is
|
|
1196
|
+
* listed to be REMOVED — the one verb it offers. Usually the remains of something renamed or retired
|
|
1197
|
+
* (Odoo was a provider before it was a system of record).
|
|
1198
|
+
*
|
|
1199
|
+
* Unconsumed is not undelivered: the dev companion's `.env` carries EVERY provider key, and the backend
|
|
1200
|
+
* receives a well-formed inbound name or a slot of a declared instance. So a row says which runtimes still
|
|
1201
|
+
* receive it, and removing it regenerates their `.env` files like any other change — otherwise the value
|
|
1202
|
+
* would stay on disk and in the running process after the person was told it was gone.
|
|
1203
|
+
*/
|
|
1204
|
+
UNUSED = "unused"
|
|
1205
|
+
}
|
|
1206
|
+
/**
|
|
1207
|
+
* What a secret belongs to, and so which section of `secrets.json` holds it and how its name is formed.
|
|
1208
|
+
* Three kinds because they are three different things, not three spellings of a provider key: a system of
|
|
1209
|
+
* record is deliberately NOT a provider (#1049 D10) and an inbound endpoint secret proves a delivery rather
|
|
1210
|
+
* than authenticating a call.
|
|
1211
|
+
*/
|
|
1212
|
+
export declare enum ApplicationSecretKind {
|
|
1213
|
+
/** A provider's secret, declared by its secrets contract; `secrets.json` → `providerEnv`. */
|
|
1214
|
+
PROVIDER = "provider",
|
|
1215
|
+
/**
|
|
1216
|
+
* A credential slot of a declared system of record (#1055), named `WILDO_SOR_<NAME>__<SLOT>`;
|
|
1217
|
+
* `secrets.json` → `systemsOfRecordEnv`. Read by the application backend only.
|
|
1218
|
+
*/
|
|
1219
|
+
SYSTEM_OF_RECORD = "system_of_record",
|
|
1220
|
+
/**
|
|
1221
|
+
* The verification secret of an application inbound endpoint (#1596), named
|
|
1222
|
+
* `WILDO_INBOUND_<ENDPOINT_KEY>__SECRET`; `secrets.json` → `inboundEndpointEnv`. Read by the backend only.
|
|
1223
|
+
*/
|
|
1224
|
+
INBOUND_ENDPOINT = "inbound_endpoint"
|
|
1225
|
+
}
|
|
1226
|
+
/**
|
|
1227
|
+
* Which GitHub level holds a REMOTE environment's provider secret. Remote secrets are GitHub Actions
|
|
1228
|
+
* secrets; the generated deploy job declares `environment: <env>`, so an environment secret applies to
|
|
1229
|
+
* that environment alone and overrides a repository secret of the same name, which is the fallback.
|
|
1230
|
+
* spec-cite: https://docs.github.com/en/actions/reference/security/secrets — "If an organization, repository, and environment all have a secret with the same name, the environment-level secret takes precedence."
|
|
1231
|
+
*/
|
|
1232
|
+
export declare enum ApplicationSecretRemoteLevel {
|
|
1233
|
+
ENVIRONMENT = "environment",
|
|
1234
|
+
REPOSITORY = "repository"
|
|
1235
|
+
}
|
|
1236
|
+
/**
|
|
1237
|
+
* The `id` of one secret row: environment, kind and name (`local--provider--OPENAI_API_KEY`). The same name is
|
|
1238
|
+
* a different secret per environment, and per KIND too — each kind is its own `secrets.json` section, so a
|
|
1239
|
+
* key left in the wrong section during a migration (an Odoo credential still in `providerEnv`) is a second
|
|
1240
|
+
* secret beside the one that belongs, and must be addressable on its own rather than colliding with it.
|
|
1241
|
+
*
|
|
1242
|
+
* The id travels in the URL of the row's page and of its `set` / `unset` operations, and the engine checks
|
|
1243
|
+
* it before any handler runs (`ExecutionContextCreator.validateParameterFormat`). It was
|
|
1244
|
+
* `<environment>::<NAME>` until 2026-09-26: the list rendered, but the row's page and both operations
|
|
1245
|
+
* answered `400 api_call_initiator_parameter_unsupported`, because that check then held every id to
|
|
1246
|
+
* `^[a-zA-Z0-9_-]+$`. Since #2048 it holds an introspected row's id to the introspection format, which admits
|
|
1247
|
+
* more; this id stays inside the narrower alphabet anyway, so it is valid under both, and
|
|
1248
|
+
* `workbench-application-secret-row-id.test.ts` pins that.
|
|
1249
|
+
*/
|
|
1250
|
+
export declare function applicationSecretRowId(envName: string, kind: ApplicationSecretKind, envVarName: string): string;
|
|
1251
|
+
/**
|
|
1252
|
+
* Splits a secret row's id back into environment, kind and name, or `null` when it cannot be a row id. It
|
|
1253
|
+
* splits on the first two separators — neither the environment nor the kind can contain one — and the name
|
|
1254
|
+
* keeps any it has. A well-formed id naming nothing real is refused later by `wildo secrets`, which states
|
|
1255
|
+
* the reason itself.
|
|
1256
|
+
*/
|
|
1257
|
+
export declare function splitApplicationSecretRowId(rowId: string): {
|
|
1258
|
+
envName: string;
|
|
1259
|
+
kind: ApplicationSecretKind;
|
|
1260
|
+
envVarName: string;
|
|
1261
|
+
} | null;
|
|
1262
|
+
/**
|
|
1263
|
+
* One secret an application declares a use for (or still holds), in one environment — the workbench's
|
|
1264
|
+
* secrets section. Names and standings only: a value never enters this row, in either direction of the wire.
|
|
1265
|
+
*/
|
|
1266
|
+
export declare const Workbench_ApplicationSecret_Schema: z.ZodObject<{
|
|
1267
|
+
workbenchApplicationSecretId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
1268
|
+
environmentName: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
1269
|
+
envVarName: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
1270
|
+
standing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof ApplicationSecretStanding>>>;
|
|
1271
|
+
kind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof ApplicationSecretKind>>>;
|
|
1272
|
+
ownerRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
1273
|
+
description: z.ZodNullable<z.ZodString>;
|
|
1274
|
+
capabilities: z.ZodArray<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof EngineCapability>>>;
|
|
1275
|
+
runtimes: z.ZodArray<z.ZodString>;
|
|
1276
|
+
creationEssential: z.ZodBoolean;
|
|
1277
|
+
remoteLevel: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof ApplicationSecretRemoteLevel>>>;
|
|
1278
|
+
}, z.core.$strip>;
|
|
1279
|
+
export type Workbench_ApplicationSecret = z.infer<typeof Workbench_ApplicationSecret_Schema>;
|
|
1280
|
+
/** The secret row's two verbs. Both run `wildo secrets set/unset`, which is the only writer of a secret. */
|
|
1281
|
+
export declare enum WorkbenchApplicationSecrets_Operations {
|
|
1282
|
+
/**
|
|
1283
|
+
* Provide THIS secret's value. Locally the runtimes that read it restart to pick it up; remotely it
|
|
1284
|
+
* becomes the GitHub Environment secret the deploy reads.
|
|
1285
|
+
*/
|
|
1286
|
+
SET = "set",
|
|
1287
|
+
/** Remove THIS secret from its environment. */
|
|
1288
|
+
UNSET = "unset"
|
|
1289
|
+
}
|
|
1290
|
+
export declare const Workbench_ApplicationSecretSetRequest_Schema: z.ZodObject<{
|
|
1291
|
+
value: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
1292
|
+
}, z.core.$strip>;
|
|
1293
|
+
export type Workbench_ApplicationSecretSetRequest = z.infer<typeof Workbench_ApplicationSecretSetRequest_Schema>;
|
|
1294
|
+
/**
|
|
1295
|
+
* What a change did — the shape `wildo secrets set/unset --json` prints (#1637). The local fields are
|
|
1296
|
+
* inert for a remote environment, whose change is the GitHub secret itself.
|
|
1297
|
+
*/
|
|
1298
|
+
export declare const Workbench_ApplicationSecretChangeOutcome_Schema: z.ZodObject<{
|
|
1299
|
+
envVarName: z.ZodString;
|
|
1300
|
+
kind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof ApplicationSecretKind>>;
|
|
1301
|
+
envName: z.ZodString;
|
|
1302
|
+
restartSignalledRuntimes: z.ZodArray<z.ZodString>;
|
|
1303
|
+
envFilesRegenerated: z.ZodBoolean;
|
|
1304
|
+
envFilesRegenerationFailure: z.ZodNullable<z.ZodString>;
|
|
1305
|
+
companionAppliesChange: z.ZodBoolean;
|
|
1306
|
+
companionApplyFailure: z.ZodOptional<z.ZodString>;
|
|
1307
|
+
}, z.core.$strip>;
|
|
1308
|
+
export type Workbench_ApplicationSecretChangeOutcome = z.infer<typeof Workbench_ApplicationSecretChangeOutcome_Schema>;
|
|
219
1309
|
//# sourceMappingURL=workbench-creation-plane.custom.shared.schemas.d.ts.map
|