@wildo-ai/platform-core-shared 1.1.10 → 1.1.11
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.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/runtime/application-backend-env.contracts.d.ts +9 -2
- package/dist/esm/runtime/application-backend-env.contracts.d.ts.map +1 -1
- package/dist/esm/runtime/application-backend-env.contracts.js +12 -0
- package/dist/esm/runtime/application-backend-env.contracts.js.map +1 -1
- package/dist/esm/runtime/application-worker-env.contracts.d.ts +4 -2
- package/dist/esm/runtime/application-worker-env.contracts.d.ts.map +1 -1
- package/dist/esm/runtime/application-worker-env.contracts.js +3 -0
- package/dist/esm/runtime/application-worker-env.contracts.js.map +1 -1
- package/dist/esm/runtime/backend-start-outcome.contracts.d.ts.map +1 -1
- package/dist/esm/runtime/backend-start-outcome.contracts.js.map +1 -1
- package/dist/esm/runtime/runtime-topology.contracts.d.ts.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 +362 -44
- 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 +400 -45
- 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 +107 -1
- package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.js.map +1 -1
- package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.d.ts +24 -14
- 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 +31 -15
- 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 -2
- 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.schemas.d.ts.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.schemas.d.ts.map +1 -1
- 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 +30 -0
- package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.d.ts +21 -3
- package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.js +7 -0
- package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.d.ts +185 -0
- 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 +78 -2
- 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 +412 -10
- 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 +524 -15
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-domain-model.custom.shared.schemas.d.ts +34 -0
- package/dist/esm/workbench/workbench-domain-model.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-domain-model.custom.shared.schemas.js +31 -0
- package/dist/esm/workbench/workbench-domain-model.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.d.ts +7 -2
- 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 +12 -2
- 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 +93 -0
- 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 +1 -0
- 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.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workbench-creation-plane.custom.shared.schemas.js","sourceRoot":"","sources":["../../../src/workbench/workbench-creation-plane.custom.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { ApplicationInterviewDepth, MetaWorkflow_ClarificationAction, MetaWorkflow_EvaluationVerdict } from '@wildo-ai/saas-models/meta-workflows';\nimport {\n EngineCapability,\n HumanDecision_FieldKind,\n} from '@wildo-ai/saas-models';\nimport { z } from 'zod';\nimport { initZodDecorators, StringEditMode } from '@wildo-ai/zod-decorators';\n\nimport { WorkbenchSpecificationArtifactConcern } from './workbench-resources.custom.shared.schemas';\n\ninitZodDecorators(z);\n\n/**\n * The CREATION PLANE's shared vocabulary — schemas for the four companion-runtime resource\n * families, and the behavior ids their bindings name.\n *\n * ## What these rows are, and are not\n *\n * They are the companion's OWN RUNTIME projections for the one application it serves: the playbook\n * eligibility board, the build-plan dispatch view, the run write-register and the execution-trace\n * index. Unlike every other workbench resource, nothing here is derived from the application's\n * source by a subprocess — the behaviors materialize IN-PROCESS from the companion's running\n * services, which is why their binding declares `IntrospectionTenancyStance.APPLICATION_RUNTIME`\n * and their variants are authenticated rather than `APP_PUBLIC`.\n *\n * ## Why the vocabularies stay plain strings\n *\n * Same argument as the domain-model schema one file over: `phase`, `functionalTopic` and\n * `targetKind` are owned by `@wildo-ai/saas-specifications`, which this package deliberately does\n * not depend on (it would drag the whole specification graph into every platform consumer). The\n * companion produces the values from the real enums; binding them here would make a row a newer\n * companion legitimately produces unparseable by an older workbench — refusing to show exactly the\n * state the board exists to reveal.\n */\n\n/**\n * The behavior ids the creation-plane bindings declare — the companion's IN-PROCESS catalog.\n *\n * ONE named source, consumed from both ends: the resource configs (this package) write these into\n * `introspectionBinding.behavior`, and the companion's introspection source routes on membership —\n * an id in this set is served by `CreationPlaneProjectionCompanionService` in-process; any other id\n * flows to the subprocess lane. Deliberately NOT added to the companion's\n * `CompanionIntrospectionBehaviorIdValues`: that vocabulary's execution contract\n * (`materializationBoundary: 'subprocess'`, routing targets, service kinds) describes a machinery\n * these behaviors never enter.\n */\nexport enum WorkbenchCreationPlaneBehavior {\n /** `listPlaybookEligibility()` rows + projected `computedAt`/`phase`, behind the eligibility cache. */\n PLAYBOOK_ELIGIBILITY = 'creation-plane.playbook-eligibility',\n /** The build-plan graph's tasks with dispatch `status` computed against git (ready / landed / blocked). */\n BUILD_PLAN_TASKS = 'creation-plane.build-plan-tasks',\n /** The write register's records, pre-image bytes stripped. */\n RUN_WRITE_RECORDS = 'creation-plane.run-write-records',\n /** The execution-trace session index. */\n TRACE_SESSIONS = 'creation-plane.trace-sessions',\n /** The governance questionnaires' unanswered prompts, flattened one row per question. */\n GOVERNANCE_DOCUMENTS = 'creation-plane.governance-documents',\n GOVERNANCE_QUESTIONS = 'creation-plane.governance-questions',\n /** The build lane's dispatch history, one row per attempt. */\n BUILD_DISPATCH_PLAN = 'creation-plane.build-dispatch-plan',\n BUILD_DISPATCHES = 'creation-plane.build-dispatches',\n /** The playbook runs suspended waiting on a person. */\n PLAYBOOK_RUNS = 'creation-plane.playbook-runs',\n WAITING_PLAYBOOK_RUNS = 'creation-plane.waiting-playbook-runs',\n /** The coding runs parked on a question. */\n CODING_LANE_STATUS = 'creation-plane.coding-lane-status',\n PARKED_CODING_QUESTIONS = 'creation-plane.parked-coding-questions',\n /** The dossier: every declared interview question × the creator's answer from `creator-inputs`. */\n DOSSIER_ENTRIES = 'creation-plane.dossier-entries',\n /** HOME's lines (#1454): what happened, what is asked of the creator, what they could do next — one derivation. */\n HOME_LINES = 'creation-plane.home-lines',\n /** The four creation OUTCOMES with their standing, derived from the landed families and the build plan. */\n CREATION_OUTCOMES = 'creation-plane.creation-outcomes',\n /** The application's provider secrets per environment — what it needs and what is set, never a value (#1637). */\n APPLICATION_SECRETS = 'creation-plane.application-secrets',\n}\n\n/** Membership test the companion's source routes by. */\nexport const WORKBENCH_CREATION_PLANE_BEHAVIOR_IDS: readonly string[] = Object.freeze(\n Object.values(WorkbenchCreationPlaneBehavior),\n);\n\n/**\n * The creation plane's IDENTITY RULE — part of the shared contract, deliberately, because both ends\n * apply it: the companion's projections emit each row's id from its business key\n * (`identityFields` composition refuses values outside `[a-zA-Z0-9_-]`, and playbook refs and trace\n * session ids legitimately carry dots), and a frontend surface holding only the business key\n * (an interrupted run's `playbookRef`) derives the row address the same way. Two copies of this\n * function would be the drift this package exists to prevent.\n *\n * `.` becomes `__`; anything else outside the charset becomes `-`. NOT injective in general —\n * which is why the companion's projections refuse post-sanitization duplicates rather than serving\n * two rows under one id, and why server-side lookups match sanitized forms instead of reversing.\n */\nexport function sanitizeWorkbenchCreationPlaneIdentity(value: string): string {\n return value.replaceAll('.', '__').replace(/[^a-zA-Z0-9_-]/g, '-');\n}\n\n/**\n * A dossier row's id — `sanitize(playbookRef)--sanitize(questionRef)` for the step itself, and\n * `sanitize(playbookRef)--<instanceKey>--sanitize(questionRef)` for one of its INSTANCES (#1609).\n *\n * Shared for the same reason the sanitizer is: the companion's projection EMITS the id and the\n * conversation's answer tool ADDRESSES a row by it, and two copies would let the two drift apart the\n * first time the shape changed — which is exactly what adding an instance did. An instance key is a\n * kebab slug, so it needs no sanitizing and cannot contain the `--` separator's ambiguity in a way the\n * question ref does not already (both are refused as duplicates by the projection, never guessed at).\n */\nexport function workbenchDossierEntryIdentity(input: { readonly playbookRef: string; readonly questionRef: string; readonly instanceKey?: string | null }): string {\n const step = sanitizeWorkbenchCreationPlaneIdentity(input.playbookRef);\n const question = sanitizeWorkbenchCreationPlaneIdentity(input.questionRef);\n return input.instanceKey ? `${step}--${input.instanceKey}--${question}` : `${step}--${question}`;\n}\n\n/**\n * The creation plane's CORRELATION VOCABULARY on the engine's actor task — the one named source for\n * the `context.correlation` envelope's domain and ref keys (#1348, #1330).\n *\n * The engine owns the envelope and validates only that keys and values are non-empty strings; this\n * domain owns the keys. Both ends read them: the companion's coding-agent dispatch WRITES the\n * envelope when it admits a run for a build-plan task, and the workbench READS it to draw the run's\n * build-plan task as a resolved link. Two spellings of one key would be a join that silently stops\n * matching, so neither end spells it.\n *\n * The value under {@link WorkbenchTaskCorrelationRef.BUILD_PLAN_TASK} is the build-plan ROW's\n * identity — `sanitizeWorkbenchCreationPlaneIdentity(taskRef)` — so a reader holding the envelope\n * addresses the row with no lookup.\n */\nexport const WORKBENCH_TASK_CORRELATION_DOMAIN = 'application-creation';\n\nexport enum WorkbenchTaskCorrelationRef {\n /** The `workbenchBuildPlanTaskId` of the build-plan task this coding run was dispatched for. */\n BUILD_PLAN_TASK = 'buildPlanTaskRef',\n /**\n * The creation CONVERSATION (the engine conversational execution's `executionId`) a run was\n * started from, when it was (#1454). The conversation page joins a thread to its runs on this\n * key; a run started from the board or the CLI carries none.\n */\n CONVERSATION = 'conversationId',\n}\n\n/**\n * The build-plan row a task's correlation envelope names, or `undefined` when the task was not\n * dispatched for one — a task with no build-plan task is the normal case for anything the creation\n * plane did not admit, and it must read as ABSENT rather than as loading.\n */\nexport function readBuildPlanTaskCorrelation(context: unknown): string | undefined {\n if (typeof context !== 'object' || context === null) return undefined;\n const correlation = (context as { correlation?: unknown }).correlation;\n if (typeof correlation !== 'object' || correlation === null) return undefined;\n const { domain, refs } = correlation as { domain?: unknown; refs?: unknown };\n if (domain !== WORKBENCH_TASK_CORRELATION_DOMAIN || typeof refs !== 'object' || refs === null) return undefined;\n const value = (refs as Record<string, unknown>)[WorkbenchTaskCorrelationRef.BUILD_PLAN_TASK];\n return typeof value === 'string' && value.length > 0 ? value : undefined;\n}\n\n/**\n * The dispatch status of one build-plan task — computed, never stored.\n *\n * `LANDED` = the dispatch service's landed-refs resolution (evidence in git) includes it.\n * `READY` = every prerequisite landed and it has not. `BLOCKED` = at least one prerequisite has\n * not landed. Exactly one holds per task, derived per read.\n */\nexport enum WorkbenchBuildPlanTaskStatus {\n READY = 'ready',\n LANDED = 'landed',\n BLOCKED = 'blocked',\n}\n\n/**\n * Why a READY build-plan task cannot make progress, so dispatch passes over it.\n *\n * Each member carries a DIFFERENT remedy, and the remedy is the only thing the operator gets. The\n * companion's dispatch service is the only producer; the workbench board renders it. Declared here\n * rather than beside the producer for the reason `Workbench_BuildDispatchPhase` gives: a browser\n * bundle cannot import the companion, and re-spelling the members board-side would be a second\n * source (#1451).\n *\n * None of them refuses the queue. A stuck task is skipped so every unrelated branch proceeds, and a\n * dispatch refuses only when NOTHING ready can move. The READ door never refuses: it answers with the\n * stuck tasks, because \"nothing can run, and here is why\" is an answer.\n */\nexport enum Workbench_BuildTaskStuckReason {\n /** It already ran, and its declared product is absent even from the working tree: fix the declaration or the work. */\n COMPLETED_UNLANDED = 'completed_unlanded',\n /**\n * It already ran, and its declared product IS in the working tree but not committed. Landing means\n * committed because acceptance is a commit.\n *\n * Under GUIDED that is the whole story, and the remedy is to review and commit what the run wrote.\n * Under the autonomy posture the loop has ALREADY tried to commit it (#1534), so reaching this state\n * means its accept REFUSED a path — carried changes from before the run, edited since, or not this\n * run's — and the companion's warning names which. The remedy is that refusal's, not a blind commit.\n */\n COMPLETED_AWAITING_COMMIT = 'completed_awaiting_commit',\n /** Its run suspended on a question nobody has answered; re-dispatching would abandon that session. */\n PARKED_AWAITING_ANSWER = 'parked_awaiting_answer',\n /** It produces a governed document the engine catalog does not define, so no run can author it. */\n NO_DOCUMENT_BLUEPRINT = 'no_document_blueprint',\n /**\n * Its coding runs FAILED as many times as the attempt budget allows (#1536), so another identical\n * dispatch is not offered. Only failures the task caused count: a run failing on a check that was\n * already red completes instead (`carriedVerificationFailures`), so this cannot be reached on the\n * tree's account. Read the last failure, fix its cause, and re-arm the task.\n */\n ATTEMPTS_EXHAUSTED = 'attempts_exhausted',\n /**\n * A run of it is LIVE right now — selected, admitted or running (#1528). Under a parallel build\n * wave several tasks run at once, and the next selection must pass over one already being built,\n * or two agents would build the same task. Nobody's move: it clears when that run settles.\n */\n IN_FLIGHT = 'in_flight',\n}\n\n/**\n * How far one BUILD DISPATCH got — the whole of what `GET /build/dispatches` can honestly say.\n *\n * ## Why it lives in the SHARED package rather than beside the service that sets it\n *\n * Both ends of this vocabulary are real consumers. The companion's dispatch service is the only\n * PRODUCER — since #1359 by PROJECTION: every dispatch is an actor-system execution from the moment\n * its task is selected, and the phase is a pure function of that execution's row\n * (`projectBuildDispatchPhase`), not a record the companion keeps. Until then it was an in-memory\n * list of five that a companion restart emptied. The workbench's build lane reads it to decide\n * whether a dispatch reads as working, done or broken, and a browser bundle cannot import the\n * companion. Declared companion-side, the board\n * would have had to re-spell the four members — the second-source defect the creation board's own\n * client docstring refuses by name. So it is declared ONCE here, where the workbench vocabulary\n * already lives and which the companion already imports.\n *\n * ## The two executors resolve at DIFFERENT moments, and that is the whole reason for four members\n *\n * A companion generation step's dispatch resolves when the step has FINISHED. A coding task's\n * resolves when the run is ADMITTED, with the agent still working — its outcome is the durable\n * actor-task row the record names. Measured 2026-09-13 on Wonder CRM: the record said `ok: true`\n * for `build-task-company-schema` at the instant its run started, and the route told the caller to\n * poll that record \"for the outcome\", so a script following it read an admitted run as a success.\n */\nexport enum Workbench_BuildDispatchPhase {\n /** Selected and handed to its executor; nothing has resolved yet. */\n SUBMITTED = 'submitted',\n /** A coding run was admitted and is running. Its outcome is the durable actor-task row `codingTaskId`. */\n ADMITTED = 'admitted',\n /** A companion generation step ran to completion. */\n FINISHED = 'finished',\n /** The dispatch threw — before a coding run was admitted, or while a generation step ran. */\n FAILED = 'failed',\n}\n\n/**\n * One playbook's row on the eligibility board.\n *\n * A projection of the application-creation runtime's `PlaybookEligibility` (whose docs carry the\n * semantics), flattened for a list row: the per-precondition verdict objects are NOT carried —\n * `unmet` is their already-rendered \"why not\" — and two board-level scalars are projected ONTO each\n * row (`phase`, `computedAt`) because a resource row must be complete on its own.\n */\nexport const Workbench_Playbook_Schema = z.object({\n /**\n * EMITTED BY THE BEHAVIOR — `playbookRef` sanitized to the URL-safe identity charset — NOT\n * composed by the binding's `identityFields`. Composition refuses any value outside\n * `[a-zA-Z0-9_-]`, and playbook refs legitimately carry dots (`top_down.phase-gate`), so the\n * projection service derives the field itself (`.` → `__`, anything else invalid → `-`) and\n * REFUSES on a post-sanitization duplicate rather than serving two rows under one id.\n */\n workbenchPlaybookId: z.string().min(1).isPrimaryKey().isSummaryField(),\n playbookRef: z.string().min(1).isSummaryField(),\n playbookVersion: z.string().min(1).isSummaryField(),\n /**\n * The PLAYBOOK's own taxonomy label (`top_down`, `bottom_up`, `refinement`, `cross_cutting`) — what\n * kind of reasoning it embodies.\n *\n * It said \"the derived journey phase — board-level, projected per row\" until 2026-09-04, and that is\n * what it carried: one application-level value stamped onto every row, while the workbench rendered\n * it beside each playbook as if it described that playbook. The derived application phase is gone\n * (`MetaWorkflow_Phase`); this is the label that was always true of the row.\n *\n * A STRING, not the enum: the vocabulary is `MetaWorkflow_Phase` in `saas-specifications`, which this\n * package deliberately does not import. The map's lane headers (#1326) word each value through the\n * board's own copy block, keyed by the value, so a member added to the enum renders its key — visibly\n * unworded — rather than a guess.\n */\n phase: z.string().min(1).isSummaryField(), /** One sentence: what running this playbook produces. */\n intent: z.string().isSummaryField(),\n /** The deterministic gate's verdict: may this playbook run right now. */\n eligible: z.boolean().isSummaryField(),\n /** The `detail` of every unsatisfied precondition — \"why not\", already rendered by the runtime. */\n unmet: z.array(z.string()).isSummaryField(),\n /** Every READINESS precondition holds and only SEQUENCING ones do not: information, not a refusal. */\n blockedOnlyBySequencing: z.boolean().isSummaryField(),\n /** This playbook DECLARES an interview. Whether it is answered is `unansweredQuestionRefs`. */\n requiresElicitation: z.boolean().isSummaryField(),\n /**\n * The declared questions the dossier does not answer yet (#1454). Empty means a run can proceed\n * without asking — the run reads its interview from the dossier — so this, not\n * `requiresElicitation`, is what \"will stop and ask\" means now.\n */\n unansweredQuestionRefs: z.array(z.string().min(1)).isSummaryField(),\n /** Families this playbook writes that ALREADY have content — a run implies an overwrite. */\n wouldReplace: z.array(z.string()).isSummaryField(),\n /** Declaring playbooks for direct and composed output families. Derived board data, never persisted authority. */\n outputOwners: z.array(z.object({ family: z.string(), playbookRefs: z.array(z.string()) })).isSummaryField(),\n /** Child references missing from the catalog; distinct from a missing output renderer. */\n unresolvedPlaybookRefs: z.array(z.string()).isSummaryField(),\n /** Direct or composed families without a renderer; child impact is descriptive, not a parent readiness gate. */\n unlandableFamilies: z.array(z.string()).isSummaryField(),\n /** Landed outputs whose declared inputs have moved since. An ANNOTATION, never a gate. */\n staleOutputs: z.array(z.object({\n family: z.string().min(1),\n changedInputs: z.array(z.string()),\n })).isSummaryField(),\n /**\n * Whether the application's LINE runs this playbook at all (#1607): true when it is in the line's active\n * set. Distinct from `eligible`, which asks whether an active playbook may run RIGHT NOW. Absent when the\n * board was computed without a line.\n */\n activeInLine: z.boolean().optional().isSummaryField(),\n /**\n * Why it is, or is not, in the active set — one sentence, already rendered by the runtime, like `unmet`:\n * in the line, outside it, producing only what does not apply, or waiting for the line to be declared.\n * A sentence rather than the status value because this package does not import the vocabulary.\n */\n activationDetail: z.string().optional().isSummaryField(),\n /**\n * The instances of this playbook the creator opened and has not closed (#1609): each one's key and what it\n * is for. The default instance is not listed; it is the playbook itself. Absent without a line.\n */\n openInstances: z.array(z.object({ instanceKey: z.string().min(1), purpose: z.string().min(1) })).optional().isSummaryField(),\n /** When the served board was computed — the cache's honesty field, rendered as \"as of\". */\n computedAt: z.date().isSummaryField(),\n});\nexport type Workbench_Playbook = z.infer<typeof Workbench_Playbook_Schema>;\n\n/**\n * One build-plan task in the DISPATCH view.\n *\n * DELIBERATELY THIN beside the `workbenchBuildTasks` aspect resource, which projects the same\n * authored population from the specification artifact with its traceability edges. This row\n * answers \"what can run next and what has landed\"; authored detail (skill refs, serves edges)\n * stays on the aspect row sharing the same `taskRef`.\n */\nexport const Workbench_BuildPlanTask_Schema = z.object({\n /** Emitted by the behavior (task refs are already URL-safe by their own regex; same lane as its siblings). */\n workbenchBuildPlanTaskId: z.string().min(1).isPrimaryKey().isSummaryField(),\n taskRef: z.string().min(1).isSummaryField(),\n /** One sentence of intent: what this task delivers. */\n objective: z.string().min(1).isSummaryField(),\n /** The target's `kind` discriminant only — the physical detail belongs to the dispatch plan. */\n targetKind: z.string().min(1).isSummaryField(),\n /** Which phase of building the application this task belongs to (context, never ordering). */\n functionalTopic: z.string().min(1).isSummaryField(),\n status: z.enum(WorkbenchBuildPlanTaskStatus).systemEnum('WorkbenchBuildPlanTaskStatus').isSummaryField(),\n /** Task refs that must land first — the only thing that decides what may run next. */\n prerequisiteTaskRefs: z.array(z.string()).isSummaryField(),\n});\nexport type Workbench_BuildPlanTask = z.infer<typeof Workbench_BuildPlanTask_Schema>;\n\n/**\n * One run's write record — the evidence lane behind every dispatch.\n *\n * Pre-image BYTES (`previousContent`) are deliberately not projected: they belong to the revert\n * mechanism, and a list row carrying every pre-image would ship the working tree's history through\n * every LIST.\n */\nexport const Workbench_RunWriteRecord_Schema = z.object({\n /** Emitted by the behavior — `runId` sanitized to the identity charset (see the playbook id note). */\n workbenchRunWriteRecordId: z.string().min(1).isPrimaryKey().isSummaryField(),\n runId: z.string().min(1).isSummaryField(),\n playbookRef: z.string().min(1).isSummaryField(),\n /*\n * The JOIN KEYS (Phase 4, requirement R5), emitted by the projection as SANITIZED identities so\n * the values match the target rows' ids — `playbookRef` is the human-readable business key,\n * `workbenchPlaybookId` is the addressable one. Named exactly as the target's own field\n * identifier so the global field-identifier map resolves the reference, and declared as\n * REFERENCE relationships beside the configs so the engine's reference machinery (labels,\n * navigation, related lists) does the linking — no bespoke link code.\n */\n /** The playbook this run executed — every record has one. */\n workbenchPlaybookId: z.string().min(1).isForeignKey().isSummaryField(),\n /**\n * The execution-trace session the run recorded under, as the register RECORDED it (#1358 — the\n * run id is the actor execution's id and carries no session, so the join is a recorded field, not\n * a prefix match). NULL when the record carries none, or when no listed session matches — a\n * register can legitimately outlive its trace directory, and a dangling id would render as a\n * broken link.\n */\n workbenchTraceSessionId: z.string().min(1).isForeignKey().isSummaryField().nullable(),\n /** When the run recorded its writes. */\n at: z.date().isSummaryField(),\n files: z.array(z.object({\n /** App-root-relative path of the written file. */\n path: z.string().min(1),\n /** What makes a revert honest: whether the file existed before the run. */\n existedBefore: z.boolean(),\n })).isSummaryField(),\n /** Projected count, so a list can say \"wrote 7 files\" without rendering the array. */\n fileCount: z.number().int().isSummaryField(),\n /** The commit the workbench's `accept` made of these writes (#1454, Step 7); NULL until one has. */\n acceptedCommitSha: z.string().min(1).isSummaryField().nullable(),\n});\nexport type Workbench_RunWriteRecord = z.infer<typeof Workbench_RunWriteRecord_Schema>;\n\n/** One execution-trace session — the queryable index the board links from. */\nexport const Workbench_TraceSession_Schema = z.object({\n /** Emitted by the behavior — session ids admit `.` (`dev-<ISO-ish>` directory names), so sanitized (see the playbook id note). */\n workbenchTraceSessionId: z.string().min(1).isPrimaryKey().isSummaryField(),\n sessionId: z.string().min(1).isSummaryField(),\n /** When the session started (the session manifest's own `startedAt`). */\n startedAt: z.date().isSummaryField(),\n label: z.string().min(1).isSummaryField().nullable(),\n eventCount: z.number().int().isSummaryField(),\n stepCount: z.number().int().isSummaryField(),\n});\nexport type Workbench_TraceSession = z.infer<typeof Workbench_TraceSession_Schema>;\n\n/**\n * One governance QUESTION a creator still owes an answer to.\n *\n * ## Why one row per question rather than per questionnaire\n *\n * The companion answers questionnaires — a document definition and the prompts it asks. The thing a\n * creator ACTS on is one question, and the thing a board queues is one question, so the row is the\n * question and the document it belongs to travels on it. That is the same flattening\n * `Workbench_RunWriteRecord` does to a run's files, and for the same reason: a resource's row is\n * whatever a reader selects.\n *\n * ## What it deliberately does NOT carry\n *\n * The ANSWER. Landing answers is a dispatch against the `document-facts-authored` family and goes\n * through the companion's own service; a row here is the question as asked. Giving the row an answer\n * field would make this the second place an answer lives, which is the ledger\n * `one-source-of-truth.md` rule 5 refuses.\n */\n/**\n * One GOVERNED DOCUMENT whose questionnaire a person must answer — the document half of governance.\n *\n * ## Why this is its own resource rather than fields on the question row\n *\n * `derivedFactRefs` and the ask count are facts about the DOCUMENT, not about any one question, and\n * a document-level fact repeated on every question row is a value with no owner: nothing says which\n * copy is authoritative, and eight rows of one document can disagree.\n *\n * It is also what the board's document selector is a list OF. Before this it grouped question rows\n * by `definitionRef` and had nowhere to read the derived facts from — so a panel showing only the\n * human half presented four questions for a document declaring eight, and a reader had no way to\n * tell a short questionnaire from a broken one.\n */\n/**\n * Where a dossier entry STANDS — the two states a question a playbook asks can be in from the\n * creator's side (#1454). \"Read from the product\" (a typed config key) is a third source the\n * dossier gains with the governed-document join (Step 6); it is not a standing of an interview\n * question, so it is not here.\n */\nexport enum WorkbenchDossierEntryStanding {\n /** The creator answered; the value is in the committed dossier. */\n FROM_YOU = 'from-you',\n /** The playbook asks it and nobody has answered. */\n STILL_NEEDED = 'still-needed',\n /**\n * An opened INSTANCE of the step asks it and has no answer of its own, so it runs on the step's own\n * answer (#1609). Answered, not needed: nothing is blocked, and an answer given here replaces the\n * step's for this instance only.\n */\n FROM_THE_STEP = 'from-the-step',\n /**\n * The PRODUCT answers it: a governed-document fact the application's own declarations establish,\n * read rather than asked (#1454, gap 4; `compliance-is-derived-from-the-product.md`). Never\n * \"needed\" and never editable here — its answer changes when what the product declares changes.\n */\n READ_FROM_PRODUCT = 'read-from-product',\n /**\n * Answered by a PROPOSAL, never by the creator (#2129): one they kept because they did not know, or one an\n * unattended round recorded for a quick interview with nobody present. Answered — nothing is blocked — but not\n * decided: the run treats it as a working hypothesis, and this standing is how the dossier lists it to revisit.\n * Changing it records the creator's own answer in its place.\n */\n ASSUMED = 'assumed',\n}\n\n/**\n * Whether a CHOICE question's options can be offered right now — for a question whose options are\n * COMPUTED from what the application has landed (the brand name, chosen from the screened candidates).\n * A catalog-authored question is always `AVAILABLE`.\n *\n * Its own vocabulary rather than a sentence on the row: what a person reads is worded once, in the\n * i18n tree, and a renderer can branch on it.\n */\nexport enum WorkbenchDossierEntryOptionsState {\n /** The options are offered (or the question has no options to compute). */\n AVAILABLE = 'available',\n /** What the options are computed from has not landed yet, or offers nothing — the question cannot be answered yet. */\n NOT_YET_AVAILABLE = 'not-yet-available',\n /** An answer exists, and it is no longer one of the offered options (re-screened, or given before the options were computed) — asked again. */\n ANSWER_NO_LONGER_OFFERED = 'answer-no-longer-offered',\n}\n\nexport const Workbench_GovernanceDocument_Schema = z.object({\n /** The document's ref, sanitized — a definition ref carries `:` and `.`. */\n workbenchGovernanceDocumentId: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** The governed document this questionnaire belongs to. */\n definitionRef: z.string().min(1).isSummaryField(),\n /** How many facts a PERSON must establish for it. */\n askCount: z.number().int().isSummaryField(),\n /**\n * The facts the GENERATOR derives, named rather than omitted.\n *\n * Naming them is what lets a reader tell a short questionnaire from a broken one: a document\n * declaring eight facts of which four are derived shows four questions, and without this the\n * other four look missing rather than answered.\n */\n derivedFactRefs: z.array(z.string().min(1)).isSummaryField(),\n /**\n * How many of the asked facts NO authored declaration establishes yet (#1454, Step 6) — the\n * dossier's \"still needed\" for this document. `askCount` is total; this is what is left.\n */\n openCount: z.number().int().isSummaryField(),\n /**\n * The creator ASKED FOR this document: a draft of it has landed. An open fact of a drafted document\n * is waiting on the person NOW (the draft carries the gap); an open fact of a document nobody\n * drafted is merely not told yet, and does not count as asked of you.\n */\n drafted: z.boolean().isSummaryField(),\n});\nexport type Workbench_GovernanceDocument = z.infer<typeof Workbench_GovernanceDocument_Schema>;\n\nexport const Workbench_GovernanceQuestion_Schema = z.object({\n /**\n * Emitted by the behavior as `<definitionRef>--<questionRef>`, sanitized — both halves admit `.`\n * and neither alone is unique, for the same reason the playbook id is sanitized (see its note).\n */\n workbenchGovernanceQuestionId: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** The governed document whose questionnaire asks this. */\n definitionRef: z.string().min(1).isSummaryField(),\n /** The question's own ref within that questionnaire. */\n questionRef: z.string().min(1).isSummaryField(),\n /** The fact the answer establishes. */\n factRef: z.string().min(1).isSummaryField(),\n /** The question as a person reads it — the row's own words. */\n creatorPrompt: z.string().min(1).isSummaryField(),\n /** Why the answer is needed, in the document's terms. */\n decisionPurpose: z.string().min(1).isSummaryField(),\n /** What shape of answer the question takes. */\n answerKind: z.string().min(1).isSummaryField(),\n /** Whose authority the answer carries — a creator decision, a qualified review, a specification. */\n factAuthorityKind: z.string().min(1).isSummaryField(),\n /** Whether \"not applicable\" is an admissible answer. */\n allowsNotApplicable: z.boolean().isSummaryField(),\n /** How sensitive the answer is, by the document's own classification. */\n sensitivityRef: z.string().min(1).isSummaryField(),\n /** The closed set of answers, when the question has one. Empty for a free-text question. */\n semanticOptions: z.array(z.object({\n optionRef: z.string().min(1),\n /** What choosing this option MEANS, in the creator's language rather than the schema's. */\n creatorMeaning: z.string().min(1),\n })).isSummaryField(),\n /** Answered in the authored facts (from you) or not (still needed) — the same standing vocabulary the interview dossier uses. */\n standing: z.enum(WorkbenchDossierEntryStanding).systemEnum('WorkbenchDossierEntryStanding').isSummaryField(),\n /** The answer as a person reads it — the text, the chosen options, or the \"does not apply\" reason. `null` when still needed. */\n answerSummary: z.string().nullable().isSummaryField(),\n /** When the answer was decided (the declaration's own instant). `null` when still needed. */\n answeredAt: z.date().nullable().isSummaryField(),\n /**\n * ASKED OF YOU NOW: still needed AND the document is DRAFTED — a draft is waiting on this fact. An\n * open fact of an undrafted document is merely not told yet. Derived by the projection, declared\n * as a LIST filter, for the same reason the dossier entry's is.\n */\n askedNow: z.boolean().isSummaryField(),\n});\nexport type Workbench_GovernanceQuestion = z.infer<typeof Workbench_GovernanceQuestion_Schema>;\n\n\n/*\n * ────────────────────────── Phase 3: dispatch OPERATIONS ──────────────────────────\n *\n * The creation board's dispatches as CUSTOM OPERATIONS (plan D3): declared here beside the\n * resources they act on, implemented COMPANION-SIDE as `OVERRIDE_ALL` custom implementations\n * delegating to the companion's own services — never as generated writes, which the introspection\n * repository refuses by contract. `OVERRIDE_ALL` returns before the framework's repository and\n * transaction machinery, which is exactly what a dispatch onto a derived resource needs (verified,\n * plan Phase 0), and none of these declares a transaction contract, so the\n * `override_all_not_supported_for_transaction_requiring_operation` refusal never applies.\n */\n\n/** The playbook resource's dispatch verbs. */\nexport enum WorkbenchPlaybooks_Operations {\n /** Fire one playbook run (the row is the playbook; the body carries brief/answers/dryRun). */\n RUN = 'run',\n /** Answer a run that stopped at a clarification — accept with answers, decline, or cancel. */\n RESUME = 'resume_run',\n /**\n * The questions this playbook still needs answered, as a decision payload — the declared interview\n * minus what the dossier already answers (shared decisions included), and `null` when nothing is left\n * to ask: the step declares none, or the dossier answers them all (#1454 review). Read\n * ON DEMAND, at the moment somebody chooses to run it, and deliberately not a field of the row: one\n * playbook alone declares fifteen questions, so carrying them on every row would pay for all of\n * them on every poll in order to show none of them.\n */\n READ_INTERVIEW = 'read_interview',\n}\n\n/** The build-plan resource's dispatch verb. */\nexport enum WorkbenchBuildPlanTasks_Operations {\n /**\n * Run the NEXT ready build-plan task — collection-level on purpose: the graph already encodes\n * the order its author intended, and a per-row dispatch would be a second scheduler disagreeing\n * with the first (the dispatch service's own doctrine).\n */\n DISPATCH_NEXT = 'dispatch_next',\n /**\n * Append ONE task the creator asked for, beside the plan that exists (#1454, Step 7). Collection-\n * level: the row does not exist until the append answers. Deterministic — no model runs; the\n * companion validates the task against the plan's own graph rules and re-renders the plan file.\n */\n ADD_TASK = 'add_task',\n /**\n * Run THIS task, by row. Admitted only when the task is READY — the graph still decides what may\n * run, and this verb only lets the creator pick among the ready ones instead of taking the next.\n * A non-ready task answers 409 naming what it waits on. Costs a coding run.\n */\n DISPATCH_TASK = 'dispatch_task',\n /**\n * ACCEPT what this task's latest completed coding run wrote: commit exactly those paths, from the\n * coding-run write register, in one commit whose message names the task. Paths carrying another\n * lane's hunks (dirty at the run's baseline) and paths edited since the run are refused by name\n * unless `force`. Acceptance is a commit (`one-source-of-truth.md`), and under the YOLO posture the\n * system may make it on the creator's word — this verb IS that word.\n */\n ACCEPT = 'accept',\n}\n\n/** The write-record resource's dispatch verbs. */\nexport enum WorkbenchRunWriteRecords_Operations {\n /** Revert this run's writes. Files edited since are refused by name unless `force`. */\n REVERT = 'revert_writes',\n /**\n * ACCEPT this run's writes: commit exactly the register's paths. A file that no longer holds the\n * bytes the run wrote is refused by name unless `force` — the same divergence test `revert` applies,\n * because in both directions a human edit is never silently swept into the run's account.\n */\n ACCEPT = 'accept',\n /**\n * WHAT this run changed, per file — read on demand, one run at a time (#1274). Deliberately not a\n * field of the LIST row: pre-image bytes \"belong to the revert mechanism, and a list row carrying\n * every pre-image would ship the working tree's history through every LIST\". Computed from the\n * register's own pre/post content, never from `git diff`, so it is the RUN's change and not\n * everything uncommitted at those paths.\n */\n READ_DIFF = 'read_diff',\n}\n\nexport const Workbench_PlaybookRunRequest_Schema = z.object({\n /** Optional product brief forwarded to the derivation. */\n creatorBrief: z.string().min(1).optional(),\n /**\n * Answers to a playbook's declared elicitation, when the creator pre-answers. Keyed by\n * `questionRef` — the elicitation vocabulary's own key, DISTINCT from a clarification answer's\n * `ref` (resume below): two different question planes, two different key names, kept as they are.\n */\n elicitationAnswers: z.array(z.object({\n questionRef: z.string().min(1),\n answer: z.string().min(1),\n })).optional(),\n /** Full pipe — generation, validation, rendering, judge — with NO filesystem writes. */\n dryRun: z.boolean().optional(),\n /**\n * The opened INSTANCE to run (#1609); omitted runs the step itself. An instance nobody opened is refused,\n * and its pre-answers are filed as that instance's answers, never the step's.\n */\n instanceKey: z.string().min(1).optional(),\n});\nexport type Workbench_PlaybookRunRequest = z.infer<typeof Workbench_PlaybookRunRequest_Schema>;\n\nexport const Workbench_PlaybookResumeRequest_Schema = z.object({\n /** The suspended run being answered — the handle `run` returned when it stopped to ask. */\n runId: z.string().min(1),\n /**\n * WHICH round of its questions this answers, declines or cancels — the waiting row's `round` (#1584). A\n * run asks again after an answer under the same `runId`; a round it has moved past is refused 409.\n */\n round: z.number().int().min(1),\n /** ACCEPT (every question answered), DECLINE (the rest delegated) or CANCEL — see `MetaWorkflow_ClarificationAction` (#1785). */\n action: z.enum(MetaWorkflow_ClarificationAction),\n answers: z.array(z.object({\n ref: z.string().min(1),\n answer: z.string().min(1),\n })).optional(),\n});\nexport type Workbench_PlaybookResumeRequest = z.infer<typeof Workbench_PlaybookResumeRequest_Schema>;\n\n/*\n * What \"run the build\" takes. With a build parallelism above one the verb starts a parallel WAVE\n * (#2243), as the console's `wildo build run` does; `single: true` runs only the next ready task.\n *\n * It once carried `maximumTokenBudget`, a ceiling the caller stated and nothing ever enforced:\n * `composeBuildTaskCodingContract` dropped the input on 2026-09-08 and now DERIVES the budget by\n * summing the selected sources' `estimatedTokens`. A request field that reads as a limit and binds\n * nothing is worse than no field, so that whole chain is gone; do not bring it back.\n */\nexport const Workbench_BuildPlanDispatchNextRequest_Schema = z.object({\n /** Run only the next ready task, even when the build parallelism would start a wave. */\n single: z.boolean().optional(),\n});\nexport type Workbench_BuildPlanDispatchNextRequest = z.infer<typeof Workbench_BuildPlanDispatchNextRequest_Schema>;\n\n/**\n * One task to append (#1454, Step 7). The `target` and `produces` shapes are owned by\n * `@wildo-ai/saas-specifications` (`BuildPlanTaskSchema`), which this package deliberately does not\n * depend on, so they cross here as records and the companion parses them against the real schema\n * before anything is written. `taskRef` is derived from the objective when absent.\n */\nexport const Workbench_BuildPlanAddTaskRequest_Schema = z.object({\n taskRef: z.string().min(1).optional(),\n objective: z.string().min(1),\n target: z.record(z.string(), z.unknown()),\n produces: z.array(z.record(z.string(), z.unknown())),\n functionalTopic: z.string().min(1),\n skillRefs: z.array(z.string().min(1)).min(1),\n prerequisiteTaskRefs: z.array(z.string().min(1)).optional(),\n servesRefs: z.array(z.string().min(1)).optional(),\n});\nexport type Workbench_BuildPlanAddTaskRequest = z.infer<typeof Workbench_BuildPlanAddTaskRequest_Schema>;\n\nexport const Workbench_BuildPlanDispatchTaskRequest_Schema = z.object({\n /** The conversation this dispatch belongs to, so the thread shows the run as a card. */\n conversationId: z.string().min(1).optional(),\n});\nexport type Workbench_BuildPlanDispatchTaskRequest = z.infer<typeof Workbench_BuildPlanDispatchTaskRequest_Schema>;\n\nexport const Workbench_AcceptChangesRequest_Schema = z.object({\n /** Commit paths that diverged since the run. NOT defaulted on — a human edit is never silently swept in. */\n force: z.boolean().optional(),\n});\nexport type Workbench_AcceptChangesRequest = z.infer<typeof Workbench_AcceptChangesRequest_Schema>;\n\nexport const Workbench_RunWriteRevertRequest_Schema = z.object({\n /** Overwrite files edited since the run. NOT defaulted on — a human edit is never silently destroyed. */\n force: z.boolean().optional(),\n});\nexport type Workbench_RunWriteRevertRequest = z.infer<typeof Workbench_RunWriteRevertRequest_Schema>;\n\n/**\n * What a playbook run's answer says about the run, when it says anything (#1781). Absent on a run that\n * concluded, or on a detached submission that is still going.\n *\n * One named home for a vocabulary the companion writes and several readers compare — the run record,\n * the clarification lifecycle, the resume route, and the workbench's summary of a RESUME, which used\n * to read every answer carrying a `runId` as \"Started\", a cancelled clarification included.\n */\nexport enum Workbench_PlaybookRunOutcomeStatus {\n /** Healthy, and waiting at a clarification: the run asked the creator something and holds until answered. */\n AWAITING_CREATOR_INPUT = 'awaiting_creator_input',\n /** The creator cancelled a clarification: the run was abandoned and does not continue. */\n CANCELLED = 'cancelled',\n}\n\n/**\n * Dispatch RESPONSES are LOOSE objects, deliberately: each names the fields the board branches on\n * and forwards the rest verbatim. The companion routes already spread the whole service result, and\n * the recorded lesson stands — naming a closed subset is how five computed fields once vanished\n * from every creator's view until someone noticed live.\n */\nexport const Workbench_PlaybookRunOutcome_Schema = z.looseObject({\n runId: z.string().optional(),\n status: z.enum(Workbench_PlaybookRunOutcomeStatus).optional(),\n note: z.string().optional(),\n});\nexport type Workbench_PlaybookRunOutcome = z.infer<typeof Workbench_PlaybookRunOutcome_Schema>;\n\nexport const Workbench_BuildPlanDispatchOutcome_Schema = z.looseObject({\n taskRef: z.string().optional(),\n note: z.string().optional(),\n});\nexport type Workbench_BuildPlanDispatchOutcome = z.infer<typeof Workbench_BuildPlanDispatchOutcome_Schema>;\n\nexport const Workbench_BuildPlanAddTaskOutcome_Schema = z.looseObject({\n taskRef: z.string().optional(),\n /** TRUE when no plan existed and this task is its first. */\n createdPlan: z.boolean().optional(),\n /** Validator findings below the hard floor — worth telling the creator, never a refusal. */\n advisoryFindings: z.array(z.object({ code: z.string(), taskRef: z.string(), message: z.string() })).optional(),\n note: z.string().optional(),\n});\nexport type Workbench_BuildPlanAddTaskOutcome = z.infer<typeof Workbench_BuildPlanAddTaskOutcome_Schema>;\n\n/** How ACCEPT answers, for a task's coding run or a playbook run alike: what was committed, what was refused and why. */\nexport const Workbench_AcceptChangesOutcome_Schema = z.looseObject({\n commitSha: z.string().optional(),\n committedPaths: z.array(z.string()).optional(),\n refusedPaths: z.array(z.object({ path: z.string(), reason: z.string() })).optional(),\n message: z.string().optional(),\n note: z.string().optional(),\n});\nexport type Workbench_AcceptChangesOutcome = z.infer<typeof Workbench_AcceptChangesOutcome_Schema>;\n\nexport const Workbench_RunWriteRevertOutcome_Schema = z.looseObject({\n runId: z.string().optional(),\n reverted: z.array(z.string()).optional(),\n /** Files whose current bytes differ from what the run wrote — refused by name, revertable with force. */\n refusedDiverged: z.array(z.string()).optional(),\n /**\n * Files a LATER recorded run landed on (#1614): refused even under force, because the earlier bytes\n * would destroy that run's work. Each names the run to revert first (#1666).\n */\n refusedLaterRun: z.array(z.object({ path: z.string(), runId: z.string() })).optional(),\n note: z.string().optional(),\n});\nexport type Workbench_RunWriteRevertOutcome = z.infer<typeof Workbench_RunWriteRevertOutcome_Schema>;\n\n/**\n * One BUILD DISPATCH — an attempt to run one build-plan task.\n *\n * The lane's own history: what was selected, when, and how it ended. A task may be dispatched more\n * than once (a failure is re-dispatchable), so the row is the ATTEMPT and `taskRef` is what groups\n * them — the same relationship a run write record has to its playbook.\n */\n/**\n * The NEXT build task — what a dispatch would do, with nothing started. At most one row.\n *\n * ## Why a proposal is a row\n *\n * It looks like a computed answer rather than a record, and that is why it stayed a bespoke read\n * longest. But everything a person asks of it is what they ask of a row: what is it, what may it\n * touch, what must it pass, and how far through the plan are we. It has an identity (`taskRef`), it\n * is polled, it is rendered as a card, and a dispatch acts on it.\n *\n * ## Distinct from the build-plan TASK, deliberately\n *\n * `workbenchBuildPlanTasks` is every task and its status. This is the SELECTION — which one is next,\n * plus the guard rails a dispatch of it would carry (allowed paths, prohibited paths, required\n * checks, installed skills), which belong to the dispatch rather than to the task. Two resources\n * because they answer different questions; the task list never changes because a selection did.\n *\n * ## Zero rows means the build is FINISHED, not that the read failed\n *\n * The companion answers `plan: null` with an `exhausted` count for a completed build, and it is a\n * 200. That used to be a non-2xx, so the end of the journey rendered as \"could not look\" — the board\n * telling an operator something went wrong at the moment everything had gone right. The counts live\n * on this row so the finished state can say how far it got.\n */\nexport const Workbench_BuildDispatchPlan_Schema = z.object({\n /** The task's ref, sanitized — a task ref carries dots. */\n workbenchBuildDispatchPlanId: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** The task a dispatch would run. NULL exactly when the build is exhausted. */\n taskRef: z.string().min(1).isSummaryField().nullable(),\n /** What it is for, in the plan's own words. */\n objective: z.string().min(1).isSummaryField().nullable(),\n /** What kind of thing it produces. */\n targetKind: z.string().min(1).isSummaryField().nullable(),\n /** Present exactly when the next task is a companion GENERATION step rather than a coding task. */\n generationStepRef: z.string().min(1).isSummaryField().nullable(),\n /** Where a dispatch of it MAY write. */\n allowedPathPrefixes: z.array(z.string().min(1)).isSummaryField(),\n /** Where it may NOT, whatever the agent decides. */\n prohibitedPathPrefixes: z.array(z.string().min(1)).isSummaryField(),\n /** What its work must pass before it counts as done. */\n requiredChecks: z.array(z.string().min(1)).isSummaryField(),\n /** The framework knowledge the agent is given for it. */\n installedSkillRefs: z.array(z.string().min(1)).isSummaryField(),\n /** Every task that could run right now — this one is the head of that queue. */\n readyTaskRefs: z.array(z.string().min(1)).isSummaryField(),\n /** Every task already landed. */\n landedTaskRefs: z.array(z.string().min(1)).isSummaryField(),\n /**\n * The subset of `landedTaskRefs` that landed WITHOUT PROOF — a task declaring no product, which\n * ran and therefore cannot be held against the queue, but whose work nothing verified.\n *\n * Empty and \"not reported\" are the same array here, which is the one thing this loses against the\n * optional wire field it replaced. That is acceptable because the board never rendered a count: it\n * names the refs, and naming none is what an empty list looks like either way.\n */\n unverifiableLandedTaskRefs: z.array(z.string().min(1)).isSummaryField(),\n /**\n * The subset of `landedTaskRefs` that NO RUN OF THEIR OWN produced (#2217): the landing probe found the product\n * before the task ever ran. True when a sibling task or a person wrote it; false when the probe is reading\n * something that is not the product — in `app-creation-test-004` it read a comment, and eighteen website sections\n * counted as landed on pages that listed none. Named so \"92 of 92 landed\" can never hide it. Empty is healthy.\n */\n landedBeforeAnyRunTaskRefs: z.array(z.string().min(1)).isSummaryField(),\n /** TRUE when there is no next task because every one has landed. */\n exhausted: z.boolean().isSummaryField(),\n /**\n * Every READY task dispatch passed over because it cannot make progress, and why (#1451).\n *\n * Present on BOTH kinds of row. Beside a next task it names what that selection skipped; with no\n * next task and `exhausted` false it IS the answer: nothing ready can run. That state used to fail\n * the read, so the board said \"could not look\" at the one moment it had a precise answer.\n *\n * Typed facts rather than a sentence: the remedy's WORDS belong to the reason\n * (`system_enums.Workbench_BuildTaskStuckReason`), and each reason carries only the facts its\n * remedy needs.\n */\n stuckTasks: z.array(z.object({\n taskRef: z.string().min(1),\n reason: z.enum(Workbench_BuildTaskStuckReason).systemEnum('Workbench_BuildTaskStuckReason'),\n /** The run that proves it is stuck; NULL for a task that is unbuildable before any run. */\n priorTaskId: z.string().min(1).nullable(),\n /** `completed_awaiting_commit` only: the probed paths present in the working tree and not committed. */\n uncommittedPaths: z.array(z.string().min(1)),\n /** `parked_awaiting_answer` (and a parked `no_document_blueprint`): the question the run is waiting on. */\n question: z.string().min(1).nullable(),\n /** `no_document_blueprint` only: the governed document the catalog does not define. */\n documentRef: z.string().min(1).nullable(),\n })).isSummaryField(),\n /** How many tasks the plan holds. Meaningful on the exhausted row, where it is the total reached. */\n taskCount: z.number().int().isSummaryField(),\n /** How many have landed. */\n landedCount: z.number().int().isSummaryField(),\n});\nexport type Workbench_BuildDispatchPlan = z.infer<typeof Workbench_BuildDispatchPlan_Schema>;\n\nexport const Workbench_BuildDispatch_Schema = z.object({\n /** Emitted by the behavior as `<taskRef>--<startedAt>`, sanitized — a task can be dispatched twice. */\n workbenchBuildDispatchId: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** The build-plan task this attempt ran. */\n taskRef: z.string().min(1).isSummaryField(),\n /**\n * What the task delivers, in its own sentence — joined from the plan by `taskRef` so a card, a pane\n * title and a Home line name the run by what it does rather than by its key (#1454, gap 1). NULL when\n * the plan no longer holds the task (a plan re-decomposed since): the ref is then the only name.\n */\n objective: z.string().min(1).isSummaryField().nullable(),\n /**\n * How the attempt ended, or that it has not.\n *\n * `.systemEnum(...)` so the four words are authored ONCE for the enum rather than per field path:\n * the frontend's label cascade reads only the vocabulary a field DECLARES, and without it every\n * surface renders the raw constant.\n */\n phase: z.enum(Workbench_BuildDispatchPhase).systemEnum('Workbench_BuildDispatchPhase').isSummaryField(),\n /** When the dispatch was handed to its executor. */\n startedAt: z.date().isSummaryField(),\n /** When the phase left SUBMITTED. NULL while it has not — a dispatch still running has no end. */\n settledAt: z.date().isSummaryField().nullable(),\n /**\n * The durable actor-task row a coding run produced, when one was admitted.\n *\n * NULL for a generation step (there is no coding task) and for a dispatch that failed before\n * admission. It is the edge from this lane into the control plane, which is why it is a foreign\n * key rather than a printed id.\n */\n codingTaskId: z.string().min(1).isForeignKey().isSummaryField().nullable(),\n /** Why it failed, verbatim. NULL on every dispatch that did not. */\n error: z.string().min(1).isSummaryField().nullable(),\n /**\n * The conversation the dispatch was started from (#1454, Step 7), so the thread shows it as a\n * card. NULL for a dispatch started from the plan's next-task door or before conversations existed.\n */\n conversationId: z.string().min(1).isSummaryField().nullable(),\n /**\n * Whether the coding run's writes have been ACCEPTED — committed through the `accept` verb, or\n * found already committed. NULL when there is nothing to accept: a generation step, a failed run,\n * a run that wrote nothing, or a run older than the coding-run write register.\n */\n accepted: z.boolean().isSummaryField().nullable(),\n});\nexport type Workbench_BuildDispatch = z.infer<typeof Workbench_BuildDispatch_Schema>;\n\n/**\n * One playbook run SUSPENDED waiting on a person.\n *\n * The run stopped mid-way and asked something. The row carries where it stopped and what it asked,\n * because both are what a creator needs to answer it — a question with no run context is a question\n * nobody can answer.\n */\n/**\n * WHERE a playbook run is in its life — the one field that decides how its row reads.\n *\n * ## Why one vocabulary and not four collections\n *\n * The companion answers `{ running, runningDetached, interrupted, lastCompleted }`, and a board\n * reading that shape has to know which array means what before it can render anything. They are not\n * four kinds of thing: they are one thing — a run of a playbook — in four states, and the fields that\n * differ between them (a finish time, a verdict, a checkpoint) are exactly the fields a state decides\n * the presence of. Naming the state makes that explicit and makes the row renderable by one layout.\n *\n * The distinction that matters most is RUNNING vs RUNNING_DETACHED, and it is not cosmetic: the\n * first is a composite holding its instance's single-flight subject and never an ordinary run, so a board\n * that read it alone reported \"nothing is running\" while a fifteen-minute run was in flight.\n */\nexport enum Workbench_PlaybookRunState {\n /** A composite holding its instance's single-flight subject (#1610): one per running instance, several at once, never an ordinary run. */\n RUNNING = 'running',\n /** An ordinary run this companion process is executing right now. */\n RUNNING_DETACHED = 'running_detached',\n /** A run that stopped without finishing and left a checkpoint that can be re-run. */\n INTERRUPTED = 'interrupted',\n /** The most recent outcome for a playbook ref — settled, with a verdict. */\n COMPLETED = 'completed',\n /**\n * A run that STOPPED TO ASK and is waiting on a person — not running, not finished, no verdict.\n *\n * It borrowed COMPLETED until 2026-09-24, flagged by `awaitingFamily`, so every reader had to remember that one\n * \"completed\" row was not complete. The outcome reader remembered; Home did not, and told the creator a dry run\n * waiting on their answer had \"ran and landed its result\" (#1271). A state that has to be un-said by another field\n * is a missing member of its vocabulary.\n */\n AWAITING_ANSWER = 'awaiting_answer',\n}\n\n/**\n * One playbook run, in whatever state it is in.\n *\n * Kept ONE-PER-REF for the completed state by the companion, so a COMPLETED row is the last run of\n * that playbook and never a history of it.\n */\nexport const Workbench_PlaybookRun_Schema = z.object({\n /** The row's own id, sanitized — run ids carry dots (see the playbook id note). */\n workbenchPlaybookRunId: z.string().min(1).isPrimaryKey().isSummaryField(),\n /**\n * The run id as the companion records it. NULL only for an INTERRUPTED entry, which the companion\n * knows by the checkpoint it left (its playbook and instance), not by a run.\n */\n runId: z.string().min(1).isSummaryField().nullable(),\n /** The playbook this run is of. Every state has one; it is how a run is known. */\n playbookRef: z.string().min(1).isSummaryField(),\n /**\n * The playbook INSTANCE this run is of (#1609), or null for a run of the step itself. Two instances of\n * one playbook run and settle side by side, so a reader telling runs apart by playbook alone would show\n * one instance's outcome as the other's.\n */\n instanceKey: z.string().min(1).isSummaryField().nullable(),\n /**\n * The execution-trace session the run recorded under, as the companion RECORDED it at run time.\n * NULL when the request carried no session, and for the RUNNING and INTERRUPTED states.\n *\n * Recorded rather than derived (#1358): a run id used to be `<sessionId>-<playbookRef>-<ts>` and the\n * board recovered the session by longest-prefix match. The run id is the actor execution's own id\n * now, which says nothing about a session, so the join has to be a field.\n */\n traceSessionId: z.string().min(1).isSummaryField().nullable(),\n /**\n * The creation CONVERSATION the run was started from, when it was — the engine conversational\n * execution's `executionId`, read from the run's correlation envelope (#1454). The conversation\n * page joins a thread to its run cards on this key; `null` for a run started from the board, the\n * CLI, or a choreography.\n */\n conversationId: z.string().min(1).isSummaryField().nullable(),\n state: z.enum(Workbench_PlaybookRunState).systemEnum('Workbench_PlaybookRunState').isSummaryField(),\n /** When it started. NULL for an INTERRUPTED entry, which records only when it checkpointed. */\n startedAt: z.date().isSummaryField().nullable(),\n /** When it settled. Present only for COMPLETED — a run AWAITING_ANSWER has not settled. */\n finishedAt: z.date().isSummaryField().nullable(),\n /**\n * The run's own verdict, for COMPLETED only.\n *\n * TRUE for a run that SUSPENDED to ask, which is why `awaitingCreatorInput` below has to be read\n * beside it: `ok` records whether the run threw, and a suspension does not throw. A board reading\n * `ok` alone rendered a green \"completed\" badge for a run waiting on a person — the worst available\n * lie, because their correct next action is to answer it and \"completed\" reads as no action at all.\n */\n ok: z.boolean().isSummaryField().nullable(),\n /**\n * Why it failed, verbatim.\n *\n * A validation refusal an async submission could not throw — an unanswered elicitation, an\n * ineligible playbook — surfaces HERE rather than as an HTTP error, which is the whole reason the\n * board must render it.\n */\n error: z.string().min(1).isSummaryField().nullable(),\n /** How many iterations a checkpointed run completed. INTERRUPTED only. */\n completedIterations: z.number().int().isSummaryField().nullable(),\n /** When it checkpointed. INTERRUPTED only. */\n checkpointedAt: z.date().isSummaryField().nullable(),\n /** The family a suspended run was producing when it stopped to ask. Present only when it did. */\n awaitingFamily: z.string().min(1).isSummaryField().nullable(),\n /** Which round of asking a suspended run reached. Present only when it stopped to ask. */\n awaitingRound: z.number().int().isSummaryField().nullable(),\n /**\n * The ADVISORY judge's verdict over the run's landed artifacts — the worst criterion, in\n * PASS < CONCERN < INDETERMINATE < GAP order. COMPLETED only, and NULL when the judge did not run\n * (`judgeSkipped` says why) or the playbook declares no evaluation (#1329).\n *\n * Lifted onto the row from the run's own result envelope, where it always was, because the\n * timeline row and the detail's verdict tab both need it and `events.ndjson` — the only other\n * place it lives — is a second call per run.\n */\n judgeOverall: z.enum(MetaWorkflow_EvaluationVerdict).systemEnum('MetaWorkflow_EvaluationVerdict').isSummaryField().nullable(),\n /** The per-criterion verdicts behind `judgeOverall`, with the judge's rationale for each. */\n judgeCriteria: z.array(z.object({\n criterionRef: z.string().min(1),\n verdict: z.enum(MetaWorkflow_EvaluationVerdict).systemEnum('MetaWorkflow_EvaluationVerdict'),\n rationale: z.string(),\n })).nullable(),\n /** Why the judge stayed silent, in its own words — a failed call, or an evaluation that never ran. */\n judgeSkipped: z.string().min(1).nullable(),\n});\nexport type Workbench_PlaybookRun = z.infer<typeof Workbench_PlaybookRun_Schema>;\n\nexport const Workbench_WaitingPlaybookRun_Schema = z.object({\n /** The run's own id, sanitized — run ids carry dots (see the playbook id note). */\n workbenchWaitingPlaybookRunId: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** The run id as the companion records it. */\n runId: z.string().min(1).isSummaryField(),\n /**\n * Whether the checkpoint on disk could be READ.\n *\n * FALSE is a real row, not an omission. A checkpoint file that exists and fails to parse is a\n * suspended run an operator must deal with — the run is stopped, nothing will resume it, and the\n * remedy is to inspect or remove that file. Dropping it would make a stuck lane look like an idle\n * one, and the only thing knowable about such a run is its id, which is why every descriptive\n * field below is nullable.\n *\n * This is what keeps the resource TOTAL over what the companion knows. The bespoke read it\n * replaced carried the same fact in a separate `unreadable: string[]` beside the rows, which no\n * resource lane could express and which therefore had no way to reach a row template.\n */\n readable: z.boolean().isSummaryField(),\n /** The playbook that was running. NULL when the checkpoint could not be read. */\n playbookRef: z.string().min(1).isSummaryField().nullable(),\n /** The family it was producing when it stopped. NULL when the checkpoint could not be read. */\n family: z.string().min(1).isSummaryField().nullable(),\n /** When it suspended. NULL when the checkpoint could not be read. */\n suspendedAt: z.date().isSummaryField().nullable(),\n /** Which round of asking this is — a run may stop more than once. NULL when unreadable. */\n round: z.number().int().isSummaryField().nullable(),\n /** Whether the suspended run was a dry run, which changes what answering it will write. */\n dryRun: z.boolean().isSummaryField().nullable(),\n /** What it is waiting to be told. */\n requests: z.array(z.object({\n ref: z.string().min(1),\n /** The question as a person reads it. */\n question: z.string().min(1),\n /** Why the run needs it — what it cannot decide without an answer. */\n why: z.string().min(1),\n /**\n * The question's shape. A plain string by this tier's contract: the vocabulary is\n * `HumanDecision_FieldKind` in `saas-specifications`, which this package\n * deliberately does not import.\n */\n kind: z.string().min(1),\n /** The closed answer set, when the question has one. */\n options: z.array(z.string().min(1)),\n })).isSummaryField(),\n /**\n * The signed-in person the question is ROUTED to (#1751): whoever started the run from the workbench or\n * the conversation. Only they may answer it; anybody else is refused as if nothing waited. NULL when the\n * question is unrouted (a run started from the console) or the checkpoint could not be read.\n */\n routedToUserId: z.string().min(1).isSummaryField().nullable(),\n});\nexport type Workbench_WaitingPlaybookRun = z.infer<typeof Workbench_WaitingPlaybookRun_Schema>;\n\n/**\n * One coding run PARKED on a question.\n *\n * It arrives inside the coding-agent status payload, which is a singleton and stays a companion\n * read. These do not: a parked question is identified by the task that parked on it, it persists\n * until somebody answers, and a queue of work waiting on a person is the last thing that should be\n * reachable only by reading a status blob.\n */\n/**\n * The coding lane's own posture — ONE row, always present.\n *\n * ## Why a singleton resource rather than the read it replaced\n *\n * It was a companion read answering a status object, and that read ALSO carried the parked\n * questions — a queue keyed by task id — inside it. Two different things in one payload: a queue of\n * work waiting on a person, and a statement about the lane. The queue is\n * `workbenchParkedCodingQuestions`; this is what remains, and it is genuinely one row.\n *\n * ## What each field is careful about\n *\n * `codingAgentRegistered` reports exactly what the dispatch service can ESTABLISH — that every\n * declared agent resolves in the registry — and deliberately does not claim the transport is usable,\n * because that depends on the provider configuration and on a process it has not started. Anything\n * reading this must not upgrade it to \"ready\".\n *\n * `activeRunTaskId` being NULL does not mean idle. A run that parks on a question clears it while\n * staying very much alive, so a badge derived from this field alone read \"idle\" with a question\n * outstanding — which is why the parked queue has to be read beside it.\n */\nexport const Workbench_CodingLaneStatus_Schema = z.object({\n /** One row, one id. The projection stamps a constant: there is exactly one coding lane. */\n workbenchCodingLaneStatusId: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** Every declared coding agent resolves in the registry. NOT a claim that the transport works. */\n codingAgentRegistered: z.boolean().isSummaryField(),\n /**\n * The coding agent this host dispatches to (a provider ref: `anthropic`, `openai`, `opencode`).\n * NULL when the selection cannot be resolved (#1637).\n */\n codingAgentProviderRef: z.string().min(1).isSummaryField().nullable(),\n /**\n * Whether that agent's operator is signed in on this host, read from the agent's own status command\n * without a model call — what `codingAgentRegistered` cannot say: a registered agent with no login\n * fails every run on its first prompt. `false` means a definite \"not signed in\" — the one state a\n * dispatch refuses on. NULL when the state could not be read, and when the agent's status command is not\n * installed: the Claude and Codex agents run through adapters that do not need it, so its absence says\n * nothing about the login; {@link codingAgentLoginRemedy} then names the install (#1637).\n */\n codingAgentSignedIn: z.boolean().isSummaryField().nullable(),\n /** What the status command reported, in one line. NULL when nothing was read. */\n codingAgentLoginDetail: z.string().nullable(),\n /** What to do when the agent is not signed in — the login or install command. NULL when nothing is owed. */\n codingAgentLoginRemedy: z.string().nullable(),\n /**\n * The durable actor-task row of the run in flight — the edge from this lane into the control\n * plane, which is why it is a foreign key rather than a printed id. NULL when none is running,\n * INCLUDING while a run is parked on a question.\n */\n activeRunTaskId: z.string().min(1).isForeignKey().isSummaryField().nullable(),\n /** When the run in flight started. NULL when none is running. */\n activeRunStartedAt: z.date().isSummaryField().nullable(),\n /** The workspace mutation lock — one coding run at a time, and this is the file that says so. */\n lockFilePath: z.string().min(1).isSummaryField().nullable(),\n /** What a dispatch gets when it asks for no timeout of its own (ms). */\n defaultTimeoutMs: z.number().int(),\n /** The ceiling a dispatch cannot ask past (ms) — the answer to \"why did my long run stop\". */\n hardMaxTimeoutMs: z.number().int(),\n /** How much of an agent's output is captured by default (bytes). */\n defaultMaxCapturedBytes: z.number().int(),\n /** The capture ceiling (bytes). */\n hardMaxCapturedBytes: z.number().int(),\n});\nexport type Workbench_CodingLaneStatus = z.infer<typeof Workbench_CodingLaneStatus_Schema>;\n\n/**\n * The option refs a parked coding run offers. Closed, because the caller BRANCHES on which came back.\n *\n * Both are real decisions here, unlike a playbook interview — which offers only \"run with these\n * answers\", because declining an interview settles nothing that is waiting. A parked run IS waiting:\n * answering resumes the same session, and cancelling ends the run.\n *\n * ## Why it lives HERE rather than in the companion that mints it\n *\n * Both ends need it and neither can import the other: the companion projects a parked run as a\n * decision, and the workbench reconstructs that decision from the ROW to render the answer form. It\n * was declared in the companion alone until 2026-09-19, which meant a browser wanting to branch on\n * an option had to re-spell the two values — a second copy of a closed vocabulary, compiling\n * perfectly and free to drift.\n */\nexport enum Workbench_ParkedCodingQuestionOptionRef {\n ANSWER = 'answer',\n CANCEL = 'cancel',\n}\n\n/** The single field a parked run asks: the agent's own question, verbatim. */\nexport const WORKBENCH_PARKED_CODING_QUESTION_FIELD_REF = 'answer';\n\nexport const Workbench_ParkedCodingQuestion_Schema = z.object({\n /** The parked task's id, sanitized. */\n workbenchParkedCodingQuestionId: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** The durable actor-task row that parked — the edge into the control plane. */\n taskId: z.string().min(1).isForeignKey().isSummaryField(),\n /** The build-plan task it was running. */\n taskRef: z.string().min(1).isSummaryField(),\n /** What the run is asking. */\n question: z.string().min(1).isSummaryField(),\n /** When it parked. */\n parkedAt: z.date().isSummaryField(),\n /**\n * Whether the SAME session can be re-entered.\n *\n * False is not a refusal: answering still works, but it starts a new session that must restate the\n * task context. Carried because it changes what answering COSTS, which is a thing a creator weighs\n * before answering rather than after.\n */\n resumable: z.boolean().isSummaryField(),\n /**\n * WHICH of the run's questions this row shows — opaque, echoed back by an answer (#1581, eighth review).\n * A run may ask again after an answer, under the same task id, so the task id alone cannot say which\n * question a person was looking at when they typed; an answer carrying this continues only that one.\n */\n suspensionRef: z.string().min(1),\n});\nexport type Workbench_ParkedCodingQuestion = z.infer<typeof Workbench_ParkedCodingQuestion_Schema>;\n\n/**\n * One dossier entry: a question a playbook declares, and what the creator said to it, if anything.\n *\n * The identity is the pair (`playbookRef`, `questionRef`), sanitized — the key the `creator-inputs`\n * family stores answers under, so the page addresses an answer the way the file does. The\n * question's own text, kind and options are carried on the row (from the compiled catalog) so a\n * surface can ASK it without a second read.\n */\nexport const Workbench_DossierEntry_Schema = z.object({\n /** EMITTED BY THE BEHAVIOR through `workbenchDossierEntryIdentity`. */\n workbenchDossierEntryId: z.string().min(1).isPrimaryKey().isSummaryField(),\n playbookRef: z.string().min(1).isSummaryField(),\n questionRef: z.string().min(1).isSummaryField(),\n /**\n * The INSTANCE of the step this question is asked for (#1609), or null for the step itself. An opened\n * instance asks its own questions, so the same question appears once per instance; an instance that\n * has not answered one falls back to the step's own answer when it runs.\n */\n instanceKey: z.string().nullable().isSummaryField(),\n /** What the instance was opened FOR, in the creator's words; null for the step itself. */\n instancePurpose: z.string().nullable().isSummaryField(),\n /** The authored question, verbatim from the playbook. */\n question: z.string().min(1).isSummaryField(),\n /**\n * `free_text` | `choice` | `confirm` — `HumanDecision_FieldKind`, carried as a STRING for the same\n * reason `phase` is above: the vocabulary is the engine's, this package restates none of it.\n */\n kind: z.string().min(1).isSummaryField(),\n /** The closed set for a `choice` question; empty otherwise. */\n options: z.array(z.string()).isSummaryField(),\n /**\n * What each COMPUTED option stands for (#2337), index-aligned with `options`: the line shown beside it — the\n * product already trading under a brand name, the registers nobody could read. An empty string for a computed\n * option with no detail; an EMPTY ARRAY when the options are authored, since no detail exists for them.\n */\n optionDetails: z.array(z.string()).isSummaryField(),\n /** Where the question sits in its playbook's interview, 0-based — the order a scripted interview asks in. */\n position: z.number().int().min(0).isSummaryField(),\n standing: z.enum(WorkbenchDossierEntryStanding).systemEnum('WorkbenchDossierEntryStanding').isSummaryField(),\n /** Whether the options can be offered now — see {@link WorkbenchDossierEntryOptionsState}. */\n optionsState: z.enum(WorkbenchDossierEntryOptionsState).systemEnum('WorkbenchDossierEntryOptionsState').isSummaryField(),\n /** The answer as stored, when there is one. */\n value: z.string().nullable().isSummaryField(),\n answeredAt: z.date().nullable().isSummaryField(),\n answeredByRef: z.string().nullable().isSummaryField(),\n /** What the person was shown beside the option they chose (#2337), recorded with the answer; null when nothing was. */\n shownOptionDetail: z.string().nullable().isSummaryField(),\n /** Whether the asking playbook can run right now — a needed answer for an eligible playbook is what blocks something. */\n playbookEligible: z.boolean().isSummaryField(),\n /**\n * ASKED OF YOU NOW: still needed AND the asking playbook can run — the one state that blocks\n * something. Derived by the projection from the two facts above, and a declared LIST filter, so\n * \"what waits on me\" is one server-side question rather than a page's own arithmetic.\n */\n askedNow: z.boolean().isSummaryField(),\n /**\n * CHANGING THIS AFFECTS: every family the answer feeds — what the asking playbook produces and\n * everything downstream of it (#1454, Step 8). Derived by the companion from the catalog's declared\n * inputs and outputs, so a person sees the reach of an answer before saving it, and a family\n * derived before the answer changed reads as stale on its playbook.\n */\n affectsFamilies: z.array(z.string()).isSummaryField(),\n /**\n * WHAT THE QUESTION IS ABOUT, on the axis the artifact list groups families by (#1454, gap 4): the\n * concern of the family the asking step produces — or, for a step that produces none, of the first\n * family its answer reaches. The dossier groups by it, so a creator reads \"why it exists\", \"how it\n * gets built\" and \"what it must promise\" rather than three lists organised by machinery.\n */\n subject: z.enum(WorkbenchSpecificationArtifactConcern).systemEnum('WorkbenchSpecificationArtifactConcern').isSummaryField(),\n /**\n * OUT OF DATE: answered, and a step READING this answer made its result before one of the answers it\n * reads changed (its stale outputs list `creator-inputs`; #1454, gap 4 and its review). Derived from `outOfDateStepRefs` (non-empty), and\n * kept as its own boolean because it is what the row's badge and a list filter ask.\n */\n outOfDate: z.boolean().isSummaryField(),\n /**\n * WHICH steps are out of date for this answer: the asking step and every step sharing the decision\n * (`sharedWithPlaybookRefs`) with a stale output whose changed inputs include `creator-inputs`. A shared decision is ONE row,\n * so \"Regenerate\" has to name the step it reruns; before this carried the refs, a change to a shared\n * answer marked and reran only the owner (#1454 review, LOW).\n */\n outOfDateStepRefs: z.array(z.string()).isSummaryField(),\n /**\n * The other steps that READ this decision (a `sameDecisionAs` fallback with no answer of its own,\n * #1454 review). One decision is one row, at its owner; those steps' interviews show and answer it,\n * so it is asked once.\n */\n sharedWithPlaybookRefs: z.array(z.string()).isSummaryField(),\n /**\n * Whether a SIMPLE interview asks this question of the person (#2129) — the shared\n * `isElicitationQuestionAskedInSimpleInterview`, so the workbench and the console select the same questions.\n * FALSE: a simple interview proposes it instead — for review on an open surface, or as an assumption an\n * unattended round records and the creator revisits.\n */\n askedInSimpleInterview: z.boolean().isSummaryField(),\n /** Whether an answer may be PROPOSED when the person does not know (#2129); FALSE for a question only they may answer. */\n proposable: z.boolean().isSummaryField(),\n /** The question concerns a regulated domain (#2129): a proposed answer is named to the person before it is kept. */\n regulatedDomain: z.boolean().isSummaryField(),\n /** Why an ASSUMED answer was assumed, as the proposer said it; null for any other standing. */\n assumptionRationale: z.string().nullable().isSummaryField(),\n /**\n * How deep THIS APPLICATION's interviews go (#2129) — one value for the whole application, repeated on each\n * row so an interview reads it with the questions it asks. Null until the person chooses.\n */\n interviewDepth: z.enum(ApplicationInterviewDepth).systemEnum('ApplicationInterviewDepth').nullable().isSummaryField(),\n});\nexport type Workbench_DossierEntry = z.infer<typeof Workbench_DossierEntry_Schema>;\n\n/** The dossier resource's one write verb. */\nexport enum WorkbenchDossierEntries_Operations {\n /** Record (or change) the creator's answer to this question. Lands `creator-inputs`; a commit accepts it. */\n ANSWER = 'answer',\n /**\n * Propose answers for this question's step, when the person does not know (#2129). WRITES NOTHING: the\n * proposals come back to be reviewed, and what the person keeps is answered with `assumed`. Anchored on a\n * row because a proposal is always for a step's interview — the row names the step and its instance.\n */\n PROPOSE_ANSWERS = 'propose_answers',\n /**\n * Choose how deep this APPLICATION's interviews go (#2129). Recorded once in the dossier for every\n * interview; anchored on the row of the interview where the person chose it.\n */\n SET_INTERVIEW_DEPTH = 'set_interview_depth',\n}\n\n/** Which questions a `propose_answers` call proposes for (#2129). */\nexport enum WorkbenchDossierProposalScope {\n /** This row's question only — the person said they do not know it. */\n THIS_QUESTION = 'this_question',\n /** Every unanswered question of this row's step that the application's interview depth does not ask — the review step of a simple interview. */\n WHAT_THE_DEPTH_SKIPS = 'what_the_depth_skips',\n}\n\nexport const Workbench_DossierProposeRequest_Schema = z.object({\n scope: z.enum(WorkbenchDossierProposalScope),\n});\nexport type Workbench_DossierProposeRequest = z.infer<typeof Workbench_DossierProposeRequest_Schema>;\n\nexport const Workbench_DossierProposal_Schema = z.object({\n /** The dossier row the proposal answers — the row to send `answer` with `assumed` to if it is kept. */\n workbenchDossierEntryId: z.string().min(1),\n questionRef: z.string().min(1),\n question: z.string().min(1),\n /** Only an interview question is proposed, so this is always the engine's field kind. */\n kind: z.enum(HumanDecision_FieldKind),\n value: z.string().min(1),\n rationale: z.string().min(1),\n regulatedDomain: z.boolean(),\n});\nexport type Workbench_DossierProposal = z.infer<typeof Workbench_DossierProposal_Schema>;\n\nexport const Workbench_DossierProposeOutcome_Schema = z.looseObject({\n proposals: z.array(Workbench_DossierProposal_Schema),\n /** Asked for, and nothing admissible came back — each with the last refusal. Ask these of the person. */\n unproposed: z.array(z.object({ questionRef: z.string().min(1), reason: z.string().min(1) })),\n});\nexport type Workbench_DossierProposeOutcome = z.infer<typeof Workbench_DossierProposeOutcome_Schema>;\n\nexport const Workbench_DossierInterviewDepthRequest_Schema = z.object({\n interviewDepth: z.enum(ApplicationInterviewDepth),\n});\nexport type Workbench_DossierInterviewDepthRequest = z.infer<typeof Workbench_DossierInterviewDepthRequest_Schema>;\n\nexport const Workbench_DossierInterviewDepthOutcome_Schema = z.looseObject({\n interviewDepth: z.enum(ApplicationInterviewDepth),\n packageRelativePath: z.string(),\n});\nexport type Workbench_DossierInterviewDepthOutcome = z.infer<typeof Workbench_DossierInterviewDepthOutcome_Schema>;\n\nexport const Workbench_DossierAnswerRequest_Schema = z.object({\n /** The answer, in the creator's words — validated against the question's kind before it is stored. */\n value: z.string().min(1),\n /**\n * TRUE when the value is a PROPOSAL the creator let stand because they did not know (#2129): it is\n * recorded as an assumption, authored by the companion's proposer, and the dossier lists it to revisit.\n * Refused for a question only the creator may answer.\n */\n assumed: z.boolean().optional(),\n /** With `assumed`: what the proposal rests on, as the proposer said it. */\n assumptionRationale: z.string().min(1).optional(),\n});\nexport type Workbench_DossierAnswerRequest = z.infer<typeof Workbench_DossierAnswerRequest_Schema>;\n\nexport const Workbench_DossierAnswerOutcome_Schema = z.looseObject({\n /** The answer as STORED (canonical for a `confirm`). */\n value: z.string(),\n answeredAt: z.string(),\n /** The dossier file this landed in, package-relative. */\n packageRelativePath: z.string(),\n /** The asking playbook's questions still unanswered after this one — empty means it can run. */\n unansweredQuestionRefs: z.array(z.string()),\n});\nexport type Workbench_DossierAnswerOutcome = z.infer<typeof Workbench_DossierAnswerOutcome_Schema>;\n\n/**\n * The SECTIONS of Home, the conversation page's opening surface (#1454, Step 3) — and the LIST filter\n * a reader of `workbenchCreationHomeLines` narrows by.\n *\n * Three questions, three sections: what happened since I was here, what is asked of me now, what\n * could I do next. Where the application stands is a resource of its own\n * (`workbenchCreationOutcomes`), because an outcome is a measured STATE, not a line that opens\n * something.\n */\nexport enum WorkbenchCreationHomeSection {\n /** A run completed or cut short, a build dispatch settled — newest first. */\n SINCE = 'since',\n /** 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. */\n ASKED = 'asked',\n /** 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. */\n SUGGESTION = 'suggestion',\n}\n\n/**\n * The KIND of a Home line — one closed vocabulary across the three sections, because a line's words\n * and its tone are decided by its kind wherever it is rendered, and a section is only where it sits.\n *\n * ## Why the companion decides these and the page does not\n *\n * Until 2026-09-22 the page read SEVEN resources on their own cadences and derived every line itself\n * — 900 lines of client arithmetic over rows a projection had already computed, re-run on every\n * poll, invisible to the assistant's tools and to every other reader. A line is a FACT about the\n * application (\"this run was refused\", \"this task's writes wait to be committed\"); facts are\n * derived where the rows are, once, and served as rows themselves (`derive-before-you-ask.md`).\n */\nexport enum WorkbenchCreationHomeLineKind {\n /** A playbook run completed — landed or refused; `failed` says which. */\n RUN_COMPLETED = 'run-completed',\n /** A playbook run the companion's restart cut short; re-running resumes it. Shown whatever its date. */\n RUN_INTERRUPTED = 'run-interrupted',\n /** A build dispatch finished or failed; `acceptable` says whether its writes wait to be committed. */\n DISPATCH_SETTLED = 'dispatch-settled',\n /**\n * The coding agent's account hit its usage limit, and the build dispatches nothing until it resets\n * (#2388). `subject` is when the build resumes (`08:11 Europe/Paris`); the target is the dispatch that met\n * the limit. Shown only while the limit holds, so it disappears once the build has resumed.\n */\n CODING_AGENT_USAGE_LIMITED = 'coding-agent-usage-limited',\n /** A playbook run suspended on questions only the creator can answer. */\n CLARIFICATION = 'clarification',\n /** A coding run parked on a question the agent could not answer alone. */\n PARKED_QUESTION = 'parked-question',\n /** A governed document the creator asked for (a draft exists) still needing a fact only they can give. */\n GOVERNANCE_DOCUMENT = 'governance-document',\n /** The next READY build task of the dispatch plan. */\n CONTINUE_THE_PLAN = 'continue-the-plan',\n /**\n * The plan can run NOTHING: every ready task is stuck, and `stuckReason` says what unblocks it.\n *\n * ASKED rather than SUGGESTION, because every reason is the creator's move — committing what a\n * finished run wrote under GUIDED, or, under the autonomy posture where the loop commits (#1534),\n * resolving the path its accept refused or correcting a declaration no run can satisfy.\n * Without it the plan simply falls silent: `CONTINUE_THE_PLAN` is derived from the next ready task,\n * and a stuck queue has none (#1451, #1463).\n */\n UNBLOCK_THE_PLAN = 'unblock-the-plan',\n /** An eligible playbook whose output family is missing. */\n PRODUCE_MISSING = 'produce-missing',\n /** An eligible playbook whose output is stale — derived before one of its inputs last changed. */\n REFRESH_STALE = 'refresh-stale',\n}\n\n/**\n * One line of Home. Every line OPENS an element beside the page — `targetResourceType` +\n * `targetResourceId` are the address the engine's hosted pane resolves — and carries the one or two\n * facts the words need: the subject, in the creator's terms, and the flags that change the sentence.\n *\n * `targetResourceType` is a STRING, not `z.enum(WorkbenchShared_ResourceType)`: it is an address, not\n * a vocabulary anyone words, and binding it here would make a line pointing at a resource a newer\n * companion serves unparseable by an older workbench.\n */\nexport const Workbench_CreationHomeLine_Schema = z.object({\n /** EMITTED BY THE BEHAVIOR: `<section>--<kind>--<sanitized target id>`. */\n workbenchCreationHomeLineId: z.string().min(1).isPrimaryKey().isSummaryField(),\n section: z.enum(WorkbenchCreationHomeSection).systemEnum('WorkbenchCreationHomeSection').isSummaryField(),\n kind: z.enum(WorkbenchCreationHomeLineKind).systemEnum('WorkbenchCreationHomeLineKind').isSummaryField(),\n /** The instant the line is ordered on, newest first; null when the row records none (a suggestion, a document). */\n at: z.date().nullable().isSummaryField(),\n /** The playbook the line is about, when it is about one — its words come from the label tree. */\n playbookRef: z.string().nullable().isSummaryField(),\n /** The build task the line is about, when it is about one. */\n taskRef: z.string().nullable().isSummaryField(),\n /** The next task's objective, for CONTINUE_THE_PLAN; the document's definition ref, for GOVERNANCE_DOCUMENT. */\n subject: z.string().nullable().isSummaryField(),\n /** A refused run, a failed dispatch. */\n failed: z.boolean().isSummaryField(),\n /** A finished coding run whose writes are recorded and not yet committed — the one line Home offers ACCEPT on (#1454, Step 7). */\n acceptable: z.boolean().isSummaryField(),\n /** The suggested playbook still has questions the dossier does not answer, so the way in is its interview (#1454, Step 5). */\n needsAnswers: z.boolean().isSummaryField(),\n /**\n * Why the plan is stuck, for `UNBLOCK_THE_PLAN` — the remedy is what the line is FOR, and each\n * reason's is different. Its words are authored once for the vocabulary\n * (`system_enums.Workbench_BuildTaskStuckReason`), so this line states no remedy of its own.\n */\n stuckReason: z.enum(Workbench_BuildTaskStuckReason).systemEnum('Workbench_BuildTaskStuckReason').nullable().isSummaryField(),\n /** The element the line opens: a `WorkbenchShared_ResourceType` value and that row's addressable id. */\n targetResourceType: z.string().min(1).isSummaryField(),\n targetResourceId: z.string().min(1).isSummaryField(),\n});\nexport type Workbench_CreationHomeLine = z.infer<typeof Workbench_CreationHomeLine_Schema>;\n\n/**\n * The four OUTCOMES an application's creation is measured by — the journey in the creator's words\n * (Paul, 2026-09-21: \"we do not have a real journey; top-down and bottom-up are internal\n * considerations\"). The playbook phases stay machinery underneath; this is what a person sees.\n *\n * Which specification family counts toward which outcome is the companion projection's business\n * (`creation-home-projection.companion.ts`, total over `ApplicationSpecificationFamily`); this\n * package deliberately does not import that vocabulary.\n */\nexport enum WorkbenchCreationOutcome {\n /** Vision, market, requirements, features, business model, roadmap, brand. */\n KNOW_WHAT_WE_BUILD = 'know-what-we-build',\n /** The compliance programme, the processor register, the facts and policies behind every governed document, the risks. */\n KNOW_THE_RULES = 'know-the-rules',\n /** The domain plan, the placement plan, the build plan — and the build tasks landed. */\n APPLICATION_WORKS = 'application-works',\n /** Governed documents released and published — and every other outcome done. */\n READY_FOR_A_REAL_USER = 'ready-for-a-real-user',\n}\n\n/** The order a person reads the outcomes in: what, rules, works, ready. Also the rows' `position`. */\nexport const WORKBENCH_CREATION_OUTCOMES_IN_ORDER: readonly WorkbenchCreationOutcome[] = [\n WorkbenchCreationOutcome.KNOW_WHAT_WE_BUILD,\n WorkbenchCreationOutcome.KNOW_THE_RULES,\n WorkbenchCreationOutcome.APPLICATION_WORKS,\n WorkbenchCreationOutcome.READY_FOR_A_REAL_USER,\n];\n\nexport enum WorkbenchCreationOutcomeStatus {\n NOT_STARTED = 'not-started',\n IN_PROGRESS = 'in-progress',\n DONE = 'done',\n}\n\n/**\n * Where the application stands on one outcome — ALWAYS four rows, one per outcome, in reading\n * order. \"Done\" is strict: every family of the outcome landed, valid and not stale; for the\n * application working, every build task landed too; for readiness, every other outcome done as\n * well.\n */\nexport const Workbench_CreationOutcome_Schema = z.object({\n /** EMITTED BY THE BEHAVIOR: the outcome value. */\n workbenchCreationOutcomeId: z.string().min(1).isPrimaryKey().isSummaryField(),\n outcome: z.enum(WorkbenchCreationOutcome).systemEnum('WorkbenchCreationOutcome').isSummaryField(),\n status: z.enum(WorkbenchCreationOutcomeStatus).systemEnum('WorkbenchCreationOutcomeStatus').isSummaryField(),\n /** 0-based reading order. */\n position: z.number().int().min(0).isSummaryField(),\n /** Families this outcome is measured by — those the projection reports, placed under this outcome. */\n familiesTotal: z.number().int().min(0).isSummaryField(),\n /** Landed, valid, and not stale. */\n familiesLanded: z.number().int().min(0).isSummaryField(),\n /** Landed but refused by the family's own validator. */\n familiesInvalid: z.number().int().min(0).isSummaryField(),\n /** Not landed at all. */\n familiesMissing: z.number().int().min(0).isSummaryField(),\n /** Landed, but derived before one of its inputs last changed. */\n familiesStale: z.number().int().min(0).isSummaryField(),\n /** Build tasks, for APPLICATION_WORKS only; null on the other three. */\n tasksTotal: z.number().int().min(0).nullable().isSummaryField(),\n tasksLanded: z.number().int().min(0).nullable().isSummaryField(),\n /**\n * APPLICATION_WORKS only: the application's runtimes whose dev-loop supervisor has PAUSED them — it\n * will not start them until something changes (#1537). While any is listed the outcome is not DONE,\n * whatever has landed: an application that cannot start does not work. Null on the other three,\n * and null when no supervisor could answer, which is \"cannot tell\" rather than \"all up\".\n */\n unavailableRuntimes: z.array(z.string().min(1)).nullable().isSummaryField(),\n});\nexport type Workbench_CreationOutcome = z.infer<typeof Workbench_CreationOutcome_Schema>;\n\n/*\n * ────────────────────────────────────────────────────────────────────────────────────────────────\n * The verbs that were the workbench's BESPOKE companion client until 2026-09-22 (#1454), now\n * declared operations on the resources they always addressed. Same door for every act: the engine's\n * auth chain and role gate, request-DTO validation, the registered path, the operation identity the\n * invalidation chain keys on — and the companion's local token floor no longer needs a browser\n * exemption for any of them.\n * ────────────────────────────────────────────────────────────────────────────────────────────────\n */\n\n/** An operation that takes nothing. */\nexport const Workbench_EmptyRequest_Schema = z.object({});\n\n/** `read_interview` on a playbook: the `HumanDecision_Request` it declares, or null. Carried opaquely — the engine owns that vocabulary. */\nexport const Workbench_PlaybookInterview_Schema = z.object({\n decision: z.unknown().nullable(),\n});\nexport type Workbench_PlaybookInterview = z.infer<typeof Workbench_PlaybookInterview_Schema>;\n\n/** One file's change within a run — see `read_diff`. */\nexport const Workbench_RunWriteFileDiff_Schema = z.object({\n path: z.string().min(1),\n existedBefore: z.boolean(),\n /** The file on disk no longer holds what the run wrote; the diff still describes what the RUN did. */\n diverged: z.boolean(),\n /** Unified diff. Empty when the run rewrote a file with identical bytes. */\n diff: z.string(),\n});\nexport type Workbench_RunWriteFileDiff = z.infer<typeof Workbench_RunWriteFileDiff_Schema>;\n\nexport const Workbench_RunWriteDiff_Schema = z.object({\n runId: z.string().min(1),\n playbookRef: z.string().min(1),\n at: z.string().min(1),\n files: z.array(Workbench_RunWriteFileDiff_Schema),\n});\nexport type Workbench_RunWriteDiff = z.infer<typeof Workbench_RunWriteDiff_Schema>;\n\n/** The trace-session resource's READ-shaped verbs — what a session RECORDED, beyond the summary its row carries. */\nexport enum WorkbenchTraceSessions_Operations {\n /** ONE session: every event in order, and its step artifacts by name (#1328) — what the Conversation tab reads. */\n READ_RECORD = 'read_record',\n /** What one session SPENT, in tokens — summed from the agent-call usage already in its events (#1274). Never a currency. */\n READ_USAGE = 'read_usage',\n /** One step ARTIFACT, as text — the brief the model saw, the answer it gave, a coding task's input (#1329). */\n READ_ARTIFACT = 'read_artifact',\n /**\n * The trace sessions one ACTOR TASK ran in, latest first — the alias the coding lane writes for\n * every run (#1328). Collection-level: the task is the input, not a session. Empty for a task the\n * lane never ran, which is the ordinary case and not an error.\n */\n LIST_FOR_TASK = 'list_for_task',\n}\n\n/** One traced event, as the companion records it — the conversation's unit (#1328). */\nexport const Workbench_TraceSessionEvent_Schema = z.object({\n timestamp: z.string().min(1),\n /** A `PlaybookExecutionTraceEvent` value, or a coding-lane event type; a closed vocabulary the companion owns. */\n type: z.string().min(1),\n summary: z.string(),\n stepId: z.string().optional(),\n payload: z.unknown().optional(),\n});\nexport type Workbench_TraceSessionEvent = z.infer<typeof Workbench_TraceSessionEvent_Schema>;\n\n/** One step directory of a session: the artifacts it holds, by file name. Bodies are read one at a time. */\nexport const Workbench_TraceSessionStep_Schema = z.object({\n stepDirName: z.string().min(1),\n artifacts: z.array(z.string()),\n});\nexport type Workbench_TraceSessionStep = z.infer<typeof Workbench_TraceSessionStep_Schema>;\n\nexport const Workbench_TraceSessionRecord_Schema = z.object({\n sessionId: z.string().min(1),\n startedAt: z.string().min(1),\n label: z.string().nullable(),\n eventCount: z.number().int(),\n stepCount: z.number().int(),\n events: z.array(Workbench_TraceSessionEvent_Schema),\n steps: z.array(Workbench_TraceSessionStep_Schema),\n});\nexport type Workbench_TraceSessionRecord = z.infer<typeof Workbench_TraceSessionRecord_Schema>;\n\n/** What one trace session spent, in TOKENS. `callsWithoutUsage` non-zero means the totals are a FLOOR, not the figure. */\nexport const Workbench_TraceSessionUsage_Schema = z.object({\n sessionId: z.string().min(1),\n agentCalls: z.number().int(),\n callsWithoutUsage: z.number().int(),\n promptTokens: z.number().int(),\n completionTokens: z.number().int(),\n totalTokens: z.number().int(),\n});\nexport type Workbench_TraceSessionUsage = z.infer<typeof Workbench_TraceSessionUsage_Schema>;\n\nexport const Workbench_TraceArtifactRequest_Schema = z.object({\n stepDirName: z.string().min(1),\n fileName: z.string().min(1),\n});\nexport type Workbench_TraceArtifactRequest = z.infer<typeof Workbench_TraceArtifactRequest_Schema>;\n\n/** The artifact body, verbatim. A big brief renders by its OUTLINE, computed by the reader — the text is what it is owed. */\nexport const Workbench_TraceArtifact_Schema = z.object({\n body: z.string(),\n});\nexport type Workbench_TraceArtifact = z.infer<typeof Workbench_TraceArtifact_Schema>;\n\nexport const Workbench_TraceSessionsForTaskRequest_Schema = z.object({\n /** The durable actor-task row a coding run was dispatched as. */\n taskId: z.string().min(1),\n});\nexport const Workbench_TraceSessionsForTask_Schema = z.object({\n sessionIds: z.array(z.string()),\n});\nexport type Workbench_TraceSessionsForTask = z.infer<typeof Workbench_TraceSessionsForTask_Schema>;\n\n/**\n * The parked coding question's two verbs — the decision the row IS (see\n * {@link Workbench_ParkedCodingQuestionOptionRef}): answer it and resume the same session, or end\n * the run. Both were bespoke companion routes with a browser exemption on the token floor until\n * 2026-09-22; the row's own operations are where a reader meets them.\n */\nexport enum WorkbenchParkedCodingQuestions_Operations {\n /** Answer THIS parked run and resume the same agent session. A WRITE: it re-enters a workspace-mutating run behind the worktree lock. */\n ANSWER = 'answer',\n /**\n * End THIS parked run. Per row since #1581 (seventh review): with waves (#1528) several runs may be\n * live, and a collection-level cancel ended whatever this process drove — doing nothing for a park\n * no chain held, and stopping other runs while this one stayed parked.\n */\n CANCEL = 'cancel',\n}\n\nexport const Workbench_ParkedQuestionAnswerRequest_Schema = z.object({\n /** The answer, in the operator's words. Empty is refused by the lane with its own sentence. */\n answer: z.string(),\n /** The row's `suspensionRef`: the question this answers. Refused (409) once the run has asked another. */\n suspensionRef: z.string().min(1),\n});\nexport type Workbench_ParkedQuestionAnswerRequest = z.infer<typeof Workbench_ParkedQuestionAnswerRequest_Schema>;\n\n/** The lane's admission of the resumed run — its own shape, carried loosely. */\nexport const Workbench_ParkedQuestionAnswerOutcome_Schema = z.looseObject({});\nexport type Workbench_ParkedQuestionAnswerOutcome = z.infer<typeof Workbench_ParkedQuestionAnswerOutcome_Schema>;\n\n/**\n * The row's `cancel` answers ONLY a run it ended or signalled: a run that moved on meanwhile is a 409 the\n * gate shows, never a `cancelled: false` read as success (#1581, eleventh and twelfth reviews).\n */\nexport const Workbench_CodingRunCancelOutcome_Schema = z.looseObject({\n cancelled: z.literal(true),\n});\nexport type Workbench_CodingRunCancelOutcome = z.infer<typeof Workbench_CodingRunCancelOutcome_Schema>;\n\n/**\n * The governed document's one verb: LAND the facts a person established for it as the\n * `document-facts-authored` family. The row is the document; the body carries the governance scope,\n * the answers and, for a reviewed fact, the review — a per-question verb with a bare value could\n * carry none of that, which is why the question resource has no write verb of its own.\n */\nexport enum WorkbenchGovernanceDocuments_Operations {\n LAND_FACTS = 'land_facts',\n}\n\n/**\n * The landing request's ENVELOPE. The answer SEMANTICS stay with the companion service that owns the\n * question catalog (it refuses an unknown question, a review with no reviewer, \"does not apply\" on a\n * question that does not offer it — each with its own sentence); this refuses a body that is not a\n * landing request at all.\n */\nexport const Workbench_GovernanceFactsLandingRequest_Schema = z.object({\n definitionRef: z.string().min(1),\n decidedByRef: z.string().min(1),\n decidedAt: z.string().min(1),\n governanceScope: z.object({\n subjectKind: z.string().min(1),\n subjectRef: z.string().min(1),\n scopeRef: z.string().min(1),\n scopeVersion: z.number().int().positive(),\n participantRefs: z.array(z.string()),\n precedenceRuleRefs: z.array(z.string()),\n }),\n answers: z.array(z.unknown()),\n /** Run the whole pipe and write nothing — what lets a person see the exact file their answers produce BEFORE anything touches the tree. */\n dryRun: z.boolean().optional(),\n});\nexport type Workbench_GovernanceFactsLandingRequest = z.infer<typeof Workbench_GovernanceFactsLandingRequest_Schema>;\n\nexport const Workbench_GovernanceFactsLandingOutcome_Schema = z.object({\n family: z.string().min(1),\n packageRelativePath: z.string().min(1),\n exportedConstantName: z.string().min(1),\n renderedSource: z.string(),\n existedBefore: z.boolean(),\n wiringAlreadyInPlace: z.array(z.string()),\n});\nexport type Workbench_GovernanceFactsLandingOutcome = z.infer<typeof Workbench_GovernanceFactsLandingOutcome_Schema>;\n\n/**\n * Where one secret stands for an application in one environment (#1637).\n *\n * The ONE vocabulary for `wildo secrets list`, the creation essentials of `wildo init`/`setup` and\n * the workbench's secrets section, so the three cannot disagree about what \"needed\" means. Derived\n * from what the application declares (the providers it scopes, the capabilities it enables, its systems\n * of record and inbound endpoints), never from the provider catalogue.\n */\nexport enum ApplicationSecretStanding {\n /**\n * Required by something the application uses, unset, and nothing else covers what it is for: a\n * capability, a provider the application scoped on purpose, a system of record or an inbound endpoint\n * cannot work until it is provided.\n */\n NEEDED = 'needed',\n /** It has a value in this environment, and something reads it. */\n SET = 'set',\n /** Unset, and nothing waits for it: an optional key, or a capability another provider already serves. */\n AVAILABLE = 'available',\n /**\n * It has a value, and nothing CONSUMES it: a provider key no provider declares, a system-of-record key\n * naming no declared instance or no slot its credential has, an inbound key naming no endpoint. It is\n * listed to be REMOVED — the one verb it offers. Usually the remains of something renamed or retired\n * (Odoo was a provider before it was a system of record).\n *\n * Unconsumed is not undelivered: the dev companion's `.env` carries EVERY provider key, and the backend\n * receives a well-formed inbound name or a slot of a declared instance. So a row says which runtimes still\n * receive it, and removing it regenerates their `.env` files like any other change — otherwise the value\n * would stay on disk and in the running process after the person was told it was gone.\n */\n UNUSED = 'unused',\n}\n\n/**\n * What a secret belongs to, and so which section of `secrets.json` holds it and how its name is formed.\n * Three kinds because they are three different things, not three spellings of a provider key: a system of\n * record is deliberately NOT a provider (#1049 D10) and an inbound endpoint secret proves a delivery rather\n * than authenticating a call.\n */\nexport enum ApplicationSecretKind {\n /** A provider's secret, declared by its secrets contract; `secrets.json` → `providerEnv`. */\n PROVIDER = 'provider',\n /**\n * A credential slot of a declared system of record (#1055), named `WILDO_SOR_<NAME>__<SLOT>`;\n * `secrets.json` → `systemsOfRecordEnv`. Read by the application backend only.\n */\n SYSTEM_OF_RECORD = 'system_of_record',\n /**\n * The verification secret of an application inbound endpoint (#1596), named\n * `WILDO_INBOUND_<ENDPOINT_KEY>__SECRET`; `secrets.json` → `inboundEndpointEnv`. Read by the backend only.\n */\n INBOUND_ENDPOINT = 'inbound_endpoint',\n}\n\n/**\n * Which GitHub level holds a REMOTE environment's provider secret. Remote secrets are GitHub Actions\n * secrets; the generated deploy job declares `environment: <env>`, so an environment secret applies to\n * that environment alone and overrides a repository secret of the same name, which is the fallback.\n * 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.\"\n */\nexport enum ApplicationSecretRemoteLevel {\n ENVIRONMENT = 'environment',\n REPOSITORY = 'repository',\n}\n\n/**\n * Joins the parts of a secret row's id. The separator must be something an environment id and a kind cannot\n * contain, so the id splits back on its first two occurrences. Environment ids are `^[a-z0-9]+(?:-[a-z0-9]+)*$`\n * (`WildoEnvironmentIdSchema`), and no {@link ApplicationSecretKind} value contains `--`.\n */\nconst APPLICATION_SECRET_ROW_ID_SEPARATOR = '--';\n\nconst APPLICATION_SECRET_KIND_VALUES: ReadonlySet<string> = new Set(Object.values(ApplicationSecretKind));\n\n/**\n * The `id` of one secret row: environment, kind and name (`local--provider--OPENAI_API_KEY`). The same name is\n * a different secret per environment, and per KIND too — each kind is its own `secrets.json` section, so a\n * key left in the wrong section during a migration (an Odoo credential still in `providerEnv`) is a second\n * secret beside the one that belongs, and must be addressable on its own rather than colliding with it.\n *\n * The id travels in the URL of the row's page and of its `set` / `unset` operations, and the engine checks\n * it before any handler runs (`ExecutionContextCreator.validateParameterFormat`). It was\n * `<environment>::<NAME>` until 2026-09-26: the list rendered, but the row's page and both operations\n * answered `400 api_call_initiator_parameter_unsupported`, because that check then held every id to\n * `^[a-zA-Z0-9_-]+$`. Since #2048 it holds an introspected row's id to the introspection format, which admits\n * more; this id stays inside the narrower alphabet anyway, so it is valid under both, and\n * `workbench-application-secret-row-id.test.ts` pins that.\n */\nexport function applicationSecretRowId(envName: string, kind: ApplicationSecretKind, envVarName: string): string {\n return [envName, kind, envVarName].join(APPLICATION_SECRET_ROW_ID_SEPARATOR);\n}\n\n/**\n * Splits a secret row's id back into environment, kind and name, or `null` when it cannot be a row id. It\n * splits on the first two separators — neither the environment nor the kind can contain one — and the name\n * keeps any it has. A well-formed id naming nothing real is refused later by `wildo secrets`, which states\n * the reason itself.\n */\nexport function splitApplicationSecretRowId(rowId: string): { envName: string; kind: ApplicationSecretKind; envVarName: string } | null {\n const first = rowId.indexOf(APPLICATION_SECRET_ROW_ID_SEPARATOR);\n if (first <= 0) return null;\n const kindStart = first + APPLICATION_SECRET_ROW_ID_SEPARATOR.length;\n const second = rowId.indexOf(APPLICATION_SECRET_ROW_ID_SEPARATOR, kindStart);\n if (second <= kindStart) return null;\n const kind = rowId.slice(kindStart, second);\n const envVarName = rowId.slice(second + APPLICATION_SECRET_ROW_ID_SEPARATOR.length);\n if (!APPLICATION_SECRET_KIND_VALUES.has(kind) || envVarName.length === 0) return null;\n return { envName: rowId.slice(0, first), kind: kind as ApplicationSecretKind, envVarName };\n}\n\n/**\n * One secret an application declares a use for (or still holds), in one environment — the workbench's\n * secrets section. Names and standings only: a value never enters this row, in either direction of the wire.\n */\nexport const Workbench_ApplicationSecret_Schema = z.object({\n /**\n * `<environment>--<kind>--<NAME>` — see {@link applicationSecretRowId}. A SUMMARY field like every other\n * workbench row's key: the list is read in summary mode, and a card whose row carries no id cannot open its\n * row — which is where `set` and `unset` live (#1637).\n */\n workbenchApplicationSecretId: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** The environment this row describes (`local`, or a remote environment's name). */\n environmentName: z.string().min(1).isSummaryField(),\n /** The environment variable the runtime reads — the key in the `secrets.json` section its {@link kind} names. */\n envVarName: z.string().min(1).isSummaryField(),\n /** Where it stands: needed, set, available, or unused. */\n standing: z.enum(ApplicationSecretStanding).systemEnum('ApplicationSecretStanding').isSummaryField(),\n /** What it belongs to: a provider, a system of record, or an inbound endpoint. */\n kind: z.enum(ApplicationSecretKind).systemEnum('ApplicationSecretKind').isSummaryField(),\n /**\n * WHICH one, in the vocabulary of its {@link kind}: the provider ref, the system-of-record instance name,\n * or the inbound endpoint key. NULL only for an {@link ApplicationSecretStanding.UNUSED} key that names\n * no owner: a provider key no provider declares, or a system-of-record or inbound name that does not parse.\n */\n ownerRef: z.string().min(1).nullable().isSummaryField(),\n /** Its owner's own description of it, when it has one. */\n description: z.string().nullable(),\n /** The enabled capabilities a provider serves for this application — why the secret is needed. Empty for the other kinds. */\n capabilities: z.array(z.enum(EngineCapability).systemEnum('EngineCapability')),\n /**\n * The runtimes that RECEIVE it in their environment — the ones a change regenerates and restarts: `backend`,\n * `companion`, `minions.<key>`, `workers.<key>`, `frontendServices.<key>`. For an UNUSED key this is where it\n * is still carried, never where it is used.\n */\n runtimes: z.array(z.string()),\n /** The companion's LLM key — the one secret `wildo init`/`setup` ask for, because the creation chat runs on it. */\n creationEssential: z.boolean(),\n /** Remote only: which GitHub level holds it. NULL locally, and NULL for a remote secret that is not set. */\n remoteLevel: z.enum(ApplicationSecretRemoteLevel).systemEnum('ApplicationSecretRemoteLevel').nullable(),\n});\nexport type Workbench_ApplicationSecret = z.infer<typeof Workbench_ApplicationSecret_Schema>;\n\n/** The secret row's two verbs. Both run `wildo secrets set/unset`, which is the only writer of a secret. */\nexport enum WorkbenchApplicationSecrets_Operations {\n /**\n * Provide THIS secret's value. Locally the runtimes that read it restart to pick it up; remotely it\n * becomes the GitHub Environment secret the deploy reads.\n */\n SET = 'set',\n /** Remove THIS secret from its environment. */\n UNSET = 'unset',\n}\n\nexport const Workbench_ApplicationSecretSetRequest_Schema = z.object({\n /**\n * The value. Never returned, never logged, never stored by the companion: `.isWriteOnlySecret()` masks\n * it in every RESPONSE, so once saved nothing shows it again.\n *\n * Entered in a multi-line box, visible while typed, as GitHub's own secret form does. Decided by\n * practice rather than taste, and measured against the two alternatives:\n * - A masked (`type=password`) input was tried first. It is single-line, so a pasted key file lost its\n * line breaks, and a browser treats it as a login: Chrome ignores `autocomplete=\"off\"` on password\n * fields and still autofills or offers to save into `new-password` ones, so a provider key could be\n * saved as a localhost password or a saved one filled in unseen. The vocabulary has no `off` token.\n * - A single-line text input strips newlines from a paste too (HTML value sanitization).\n * The box preserves what was pasted, and a person can check a paste before saving it.\n */\n value: z.string().min(1).stringUI({ edit: { editMode: StringEditMode.TEXTAREA } }).isWriteOnlySecret(),\n});\nexport type Workbench_ApplicationSecretSetRequest = z.infer<typeof Workbench_ApplicationSecretSetRequest_Schema>;\n\n/**\n * What a change did — the part of what `wildo secrets set/unset --json` prints that the workbench shows\n * (#1637). The local fields are inert for a remote environment, whose change is the GitHub secret itself.\n *\n * The CLI also prints `companionLoadedInProcess` / `companionLoadFailure` (a terminal `set` asking the\n * running companion to load the key). They are deliberately absent here: the workbench passes\n * `--skip-companion-restart` and applies the change in its own process, so they are always false / null\n * on this path, and this non-strict object drops them.\n */\nexport const Workbench_ApplicationSecretChangeOutcome_Schema = z.object({\n envVarName: z.string(),\n /** Which section the change was made in — with the name and the environment, the secret's identity. */\n kind: z.enum(ApplicationSecretKind).systemEnum('ApplicationSecretKind'),\n envName: z.string(),\n /** Local: the runtimes a LIVE `wildo local dev` supervisor was asked to restart to read the change. */\n restartSignalledRuntimes: z.array(z.string()),\n /** Local: whether the runtimes' `.env` files were regenerated. */\n envFilesRegenerated: z.boolean(),\n /** Local: why the `.env` files were not regenerated, with the command to run; null when they were. */\n envFilesRegenerationFailure: z.string().nullable(),\n /** Local: the companion reads this key and applies the change itself instead of restarting. */\n companionAppliesChange: z.boolean(),\n /**\n * Set by the COMPANION (never by the CLI) when it could not apply the change in-process: the value is\n * saved and reaches the companion at its next start. Absent when nothing failed.\n */\n companionApplyFailure: z.string().optional(),\n});\nexport type Workbench_ApplicationSecretChangeOutcome = z.infer<typeof Workbench_ApplicationSecretChangeOutcome_Schema>;\n\n"]}
|
|
1
|
+
{"version":3,"file":"workbench-creation-plane.custom.shared.schemas.js","sourceRoot":"","sources":["../../../../src/workbench/workbench-creation-plane.custom.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { ApplicationInterviewDepth, MetaWorkflow_ClarificationAction, MetaWorkflow_EvaluationVerdict } from '@wildo-ai/saas-models/meta-workflows';\nimport {\n AgentWorkShortfallKind,\n EngineCapability,\n FlowsActors_Status,\n HumanDecision_FieldKind,\n} from '@wildo-ai/saas-models';\nimport { z } from 'zod';\nimport { initZodDecorators, StringEditMode } from '@wildo-ai/zod-decorators';\n\nimport { WorkbenchSpecificationArtifactConcern } from './workbench-resources.custom.shared.schemas';\n\ninitZodDecorators(z);\n\n/**\n * The CREATION PLANE's shared vocabulary — schemas for the four companion-runtime resource\n * families, and the behavior ids their bindings name.\n *\n * ## What these rows are, and are not\n *\n * They are the companion's OWN RUNTIME projections for the one application it serves: the playbook\n * eligibility board, the build-plan dispatch view, the run write-register and the execution-trace\n * index. Unlike every other workbench resource, nothing here is derived from the application's\n * source by a subprocess — the behaviors materialize IN-PROCESS from the companion's running\n * services, which is why their binding declares `IntrospectionTenancyStance.APPLICATION_RUNTIME`\n * and their variants are authenticated rather than `APP_PUBLIC`.\n *\n * ## Why the vocabularies stay plain strings\n *\n * Same argument as the domain-model schema one file over: `phase`, `functionalTopic` and\n * `targetKind` are owned by `@wildo-ai/saas-specifications`, which this package deliberately does\n * not depend on (it would drag the whole specification graph into every platform consumer). The\n * companion produces the values from the real enums; binding them here would make a row a newer\n * companion legitimately produces unparseable by an older workbench — refusing to show exactly the\n * state the board exists to reveal.\n */\n\n/**\n * The behavior ids the creation-plane bindings declare — the companion's IN-PROCESS catalog.\n *\n * ONE named source, consumed from both ends: the resource configs (this package) write these into\n * `introspectionBinding.behavior`, and the companion's introspection source routes on membership —\n * an id in this set is served by `CreationPlaneProjectionCompanionService` in-process; any other id\n * flows to the subprocess lane. Deliberately NOT added to the companion's\n * `CompanionIntrospectionBehaviorIdValues`: that vocabulary's execution contract\n * (`materializationBoundary: 'subprocess'`, routing targets, service kinds) describes a machinery\n * these behaviors never enter.\n */\nexport enum WorkbenchCreationPlaneBehavior {\n /** `listPlaybookEligibility()` rows + projected `computedAt`/`phase`, behind the eligibility cache. */\n PLAYBOOK_ELIGIBILITY = 'creation-plane.playbook-eligibility',\n /** The build-plan graph's tasks with dispatch `status` computed against git (ready / landed / blocked). */\n BUILD_PLAN_TASKS = 'creation-plane.build-plan-tasks',\n /** The write register's records, pre-image bytes stripped. */\n RUN_WRITE_RECORDS = 'creation-plane.run-write-records',\n /** The execution-trace session index. */\n TRACE_SESSIONS = 'creation-plane.trace-sessions',\n /** The governance questionnaires' unanswered prompts, flattened one row per question. */\n GOVERNANCE_DOCUMENTS = 'creation-plane.governance-documents',\n GOVERNANCE_QUESTIONS = 'creation-plane.governance-questions',\n /** The build lane's dispatch history, one row per attempt. */\n BUILD_DISPATCH_PLAN = 'creation-plane.build-dispatch-plan',\n BUILD_DISPATCHES = 'creation-plane.build-dispatches',\n /** Everything the build knows about each task (#2530): its attempts, whose failures they were, what they cost, why it has not landed. */\n BUILD_TASK_RECORDS = 'creation-plane.build-task-records',\n /** The playbook runs suspended waiting on a person. */\n PLAYBOOK_RUNS = 'creation-plane.playbook-runs',\n WAITING_PLAYBOOK_RUNS = 'creation-plane.waiting-playbook-runs',\n /** The coding runs parked on a question. */\n CODING_LANE_STATUS = 'creation-plane.coding-lane-status',\n PARKED_CODING_QUESTIONS = 'creation-plane.parked-coding-questions',\n /** The dossier: every declared interview question × the creator's answer from `creator-inputs`. */\n DOSSIER_ENTRIES = 'creation-plane.dossier-entries',\n /** HOME's lines (#1454): what happened, what is asked of the creator, what they could do next — one derivation. */\n HOME_LINES = 'creation-plane.home-lines',\n /** The four creation OUTCOMES with their standing, derived from the landed families and the build plan. */\n CREATION_OUTCOMES = 'creation-plane.creation-outcomes',\n /** The application's provider secrets per environment — what it needs and what is set, never a value (#1637). */\n APPLICATION_SECRETS = 'creation-plane.application-secrets',\n}\n\n/** Membership test the companion's source routes by. */\nexport const WORKBENCH_CREATION_PLANE_BEHAVIOR_IDS: readonly string[] = Object.freeze(\n Object.values(WorkbenchCreationPlaneBehavior),\n);\n\n/**\n * The creation plane's IDENTITY RULE — part of the shared contract, deliberately, because both ends\n * apply it: the companion's projections emit each row's id from its business key\n * (`identityFields` composition refuses values outside `[a-zA-Z0-9_-]`, and playbook refs and trace\n * session ids legitimately carry dots), and a frontend surface holding only the business key\n * (an interrupted run's `playbookRef`) derives the row address the same way. Two copies of this\n * function would be the drift this package exists to prevent.\n *\n * `.` becomes `__`; anything else outside the charset becomes `-`. NOT injective in general —\n * which is why the companion's projections refuse post-sanitization duplicates rather than serving\n * two rows under one id, and why server-side lookups match sanitized forms instead of reversing.\n */\nexport function sanitizeWorkbenchCreationPlaneIdentity(value: string): string {\n return value.replaceAll('.', '__').replace(/[^a-zA-Z0-9_-]/g, '-');\n}\n\n/**\n * A dossier row's id — `sanitize(playbookRef)--sanitize(questionRef)` for the step itself, and\n * `sanitize(playbookRef)--<instanceKey>--sanitize(questionRef)` for one of its INSTANCES (#1609).\n *\n * Shared for the same reason the sanitizer is: the companion's projection EMITS the id and the\n * conversation's answer tool ADDRESSES a row by it, and two copies would let the two drift apart the\n * first time the shape changed — which is exactly what adding an instance did. An instance key is a\n * kebab slug, so it needs no sanitizing and cannot contain the `--` separator's ambiguity in a way the\n * question ref does not already (both are refused as duplicates by the projection, never guessed at).\n */\nexport function workbenchDossierEntryIdentity(input: { readonly playbookRef: string; readonly questionRef: string; readonly instanceKey?: string | null }): string {\n const step = sanitizeWorkbenchCreationPlaneIdentity(input.playbookRef);\n const question = sanitizeWorkbenchCreationPlaneIdentity(input.questionRef);\n return input.instanceKey ? `${step}--${input.instanceKey}--${question}` : `${step}--${question}`;\n}\n\n/**\n * The creation plane's CORRELATION VOCABULARY on the engine's actor task — the one named source for\n * the `context.correlation` envelope's domain and ref keys (#1348, #1330).\n *\n * The engine owns the envelope and validates only that keys and values are non-empty strings; this\n * domain owns the keys. Both ends read them: the companion's coding-agent dispatch WRITES the\n * envelope when it admits a run for a build-plan task, and the workbench READS it to draw the run's\n * build-plan task as a resolved link. Two spellings of one key would be a join that silently stops\n * matching, so neither end spells it.\n *\n * The value under {@link WorkbenchTaskCorrelationRef.BUILD_PLAN_TASK} is the build-plan ROW's\n * identity — `sanitizeWorkbenchCreationPlaneIdentity(taskRef)` — so a reader holding the envelope\n * addresses the row with no lookup.\n */\nexport const WORKBENCH_TASK_CORRELATION_DOMAIN = 'application-creation';\n\nexport enum WorkbenchTaskCorrelationRef {\n /** The `workbenchBuildPlanTaskId` of the build-plan task this coding run was dispatched for. */\n BUILD_PLAN_TASK = 'buildPlanTaskRef',\n /**\n * The creation CONVERSATION (the engine conversational execution's `executionId`) a run was\n * started from, when it was (#1454). The conversation page joins a thread to its runs on this\n * key; a run started from the board or the CLI carries none.\n */\n CONVERSATION = 'conversationId',\n}\n\n/**\n * The build-plan row a task's correlation envelope names, or `undefined` when the task was not\n * dispatched for one — a task with no build-plan task is the normal case for anything the creation\n * plane did not admit, and it must read as ABSENT rather than as loading.\n */\nexport function readBuildPlanTaskCorrelation(context: unknown): string | undefined {\n if (typeof context !== 'object' || context === null) return undefined;\n const correlation = (context as { correlation?: unknown }).correlation;\n if (typeof correlation !== 'object' || correlation === null) return undefined;\n const { domain, refs } = correlation as { domain?: unknown; refs?: unknown };\n if (domain !== WORKBENCH_TASK_CORRELATION_DOMAIN || typeof refs !== 'object' || refs === null) return undefined;\n const value = (refs as Record<string, unknown>)[WorkbenchTaskCorrelationRef.BUILD_PLAN_TASK];\n return typeof value === 'string' && value.length > 0 ? value : undefined;\n}\n\n/**\n * The dispatch status of one build-plan task — computed, never stored.\n *\n * `LANDED` = the dispatch service's landed-refs resolution (evidence in git) includes it.\n * `READY` = every prerequisite landed and it has not. `BLOCKED` = at least one prerequisite has\n * not landed. Exactly one holds per task, derived per read.\n */\nexport enum WorkbenchBuildPlanTaskStatus {\n READY = 'ready',\n LANDED = 'landed',\n BLOCKED = 'blocked',\n}\n\n/**\n * Why a READY build-plan task cannot make progress, so dispatch passes over it.\n *\n * Each member carries a DIFFERENT remedy, and the remedy is the only thing the operator gets. The\n * companion's dispatch service is the only producer; the workbench board renders it. Declared here\n * rather than beside the producer for the reason `Workbench_BuildDispatchPhase` gives: a browser\n * bundle cannot import the companion, and re-spelling the members board-side would be a second\n * source (#1451).\n *\n * None of them refuses the queue. A stuck task is skipped so every unrelated branch proceeds, and a\n * dispatch refuses only when NOTHING ready can move. The READ door never refuses: it answers with the\n * stuck tasks, because \"nothing can run, and here is why\" is an answer.\n */\nexport enum Workbench_BuildTaskStuckReason {\n /** It already ran, and its declared product is absent even from the working tree: fix the declaration or the work. */\n COMPLETED_UNLANDED = 'completed_unlanded',\n /**\n * It already ran, and its declared product IS in the working tree but not committed. Landing means\n * committed because acceptance is a commit.\n *\n * Under GUIDED that is the whole story, and the remedy is to review and commit what the run wrote.\n * Under the autonomy posture the loop has ALREADY tried to commit it (#1534), so reaching this state\n * means its accept REFUSED a path — carried changes from before the run, edited since, or not this\n * run's — and the companion's warning names which. The remedy is that refusal's, not a blind commit.\n */\n COMPLETED_AWAITING_COMMIT = 'completed_awaiting_commit',\n /** Its run suspended on a question nobody has answered; re-dispatching would abandon that session. */\n PARKED_AWAITING_ANSWER = 'parked_awaiting_answer',\n /** It produces a governed document the engine catalog does not define, so no run can author it. */\n NO_DOCUMENT_BLUEPRINT = 'no_document_blueprint',\n /**\n * Its coding runs FAILED as many times as the attempt budget allows (#1536), so another identical\n * dispatch is not offered. Only failures the task caused count: a run failing on a check that was\n * already red completes instead (`carriedVerificationFailures`), so this cannot be reached on the\n * tree's account. Read the last failure, fix its cause, and re-arm the task.\n */\n ATTEMPTS_EXHAUSTED = 'attempts_exhausted',\n /**\n * A run of it is LIVE right now — selected, admitted or running (#1528). Under a parallel build\n * wave several tasks run at once, and the next selection must pass over one already being built,\n * or two agents would build the same task. Nobody's move: it clears when that run settles.\n */\n IN_FLIGHT = 'in_flight',\n}\n\n/**\n * The stuck reasons a RE-ARM releases (#2530): the task is held by its own runs, and the remedy is to fix why and put it\n * back — `WorkbenchBuildPlanTasks_Operations.REARM` is offered for these and no other.\n *\n * - `completed_unlanded`: a completed run holds it through the loop guard, and a re-arm releases that run.\n * - `attempts_exhausted`: its failed runs hold it through the attempt budget, and a re-arm releases them.\n *\n * Left out, each because a re-arm would be the wrong remedy: `completed_awaiting_commit` (the product exists and wants\n * accepting, and a re-arm would build it again), `parked_awaiting_answer` (a question waits), `in_flight` (a run is\n * live), `no_document_blueprint` (no run can produce it).\n */\nexport const WORKBENCH_REARMABLE_STUCK_REASONS: readonly Workbench_BuildTaskStuckReason[] = [\n Workbench_BuildTaskStuckReason.COMPLETED_UNLANDED,\n Workbench_BuildTaskStuckReason.ATTEMPTS_EXHAUSTED,\n];\n\n/**\n * Whose failure a failed coding run was (#1581), as the run's output records it.\n *\n * TASK runs are counted against the task's attempt budget; HOST runs (the run could not be recorded, or the turn was\n * taken away: a mid-turn kill, a provider's 529/429, an exhausted quota, an expired login, an operator's cancel) are\n * forgiven up to a bound. Declared here rather than beside its producer (the companion's coding dispatch) for the reason\n * `Workbench_BuildTaskStuckReason` gives: the workbench shows it per attempt (#2530), and a browser bundle cannot import\n * the companion.\n */\nexport enum CodingRunFailureAttribution {\n /** The task's own failure: its checks went red, or its agent ran and failed at the work. Counted. */\n TASK = 'task',\n /** The host's: it could not record the run, or the turn was taken away. Forgiven, up to a bound. */\n HOST = 'host',\n}\n\n/**\n * WHY a build task was put back in the queue (#1535) — the one question a later reader of a re-arm asks.\n *\n * A re-arm keeps a task's run history and adds one fact to it, on the runs it releases: they no longer hold the task,\n * and here is why. Declared here rather than beside its producer (the companion's build dispatch) because the workbench\n * both offers the re-arm (`WorkbenchBuildPlanTasks_Operations.REARM`) and shows each attempt's reason (#2530), and a\n * browser bundle cannot import the companion.\n */\nexport enum BuildTaskRearmReason {\n /** The landing check was wrong about this task, and has been corrected. */\n PROBE_CORRECTED = 'probe-corrected',\n /** A defect outside the task made its product impossible to produce, and has been fixed. */\n BLOCKING_DEFECT_FIXED = 'blocking-defect-fixed',\n /** Neither of the above: an operator judged the work should run again. The note says why. */\n OPERATOR_JUDGEMENT = 'operator-judgement',\n /**\n * Set by the BUILD WAVE, never by a person (#2210): the run completed while other runs edited the same tree, and its\n * declared product is missing from a file one of them also changed, so the loss is theirs rather than the task's. The\n * wave re-arms the task and re-runs it alone, a bounded number of times (`MAXIMUM_INTERFERENCE_REARMS`).\n * The run also carries the interference the wave found (`BuildTaskInterference`, companion-side).\n *\n * Like every re-arm it also releases the task's FAILED runs not yet re-armed, so the attempt budget starts afresh.\n * Deliberate: the task did complete, so its earlier failures say nothing about whether the work can be done, and the\n * interference bound still stops a task that keeps losing its product.\n */\n INTERFERED_BY_CONCURRENT_RUN = 'interfered-by-concurrent-run',\n}\n\n/**\n * The reasons a PERSON may give (`wildo build rearm`, the companion's re-arm route, the workbench's `rearm` operation).\n * The wave's own reason is left out: it asserts a measurement (a sibling changed the product's file during the run)\n * that only the wave makes, and an operator choosing it would record a detection that never happened.\n */\nexport const OPERATOR_BUILD_TASK_REARM_REASONS = [\n BuildTaskRearmReason.PROBE_CORRECTED,\n BuildTaskRearmReason.BLOCKING_DEFECT_FIXED,\n BuildTaskRearmReason.OPERATOR_JUDGEMENT,\n] as const satisfies readonly BuildTaskRearmReason[];\n\n/** One of the reasons a person may give a re-arm. */\nexport type OperatorBuildTaskRearmReason = (typeof OPERATOR_BUILD_TASK_REARM_REASONS)[number];\n\n/**\n * How far one BUILD DISPATCH got — the whole of what `GET /build/dispatches` can honestly say.\n *\n * ## Why it lives in the SHARED package rather than beside the service that sets it\n *\n * Both ends of this vocabulary are real consumers. The companion's dispatch service is the only\n * PRODUCER — since #1359 by PROJECTION: every dispatch is an actor-system execution from the moment\n * its task is selected, and the phase is a pure function of that execution's row\n * (`projectBuildDispatchPhase`), not a record the companion keeps. Until then it was an in-memory\n * list of five that a companion restart emptied. The workbench's build lane reads it to decide\n * whether a dispatch reads as working, done or broken, and a browser bundle cannot import the\n * companion. Declared companion-side, the board\n * would have had to re-spell the four members — the second-source defect the creation board's own\n * client docstring refuses by name. So it is declared ONCE here, where the workbench vocabulary\n * already lives and which the companion already imports.\n *\n * ## The two executors resolve at DIFFERENT moments, and that is the whole reason for four members\n *\n * A companion generation step's dispatch resolves when the step has FINISHED. A coding task's\n * resolves when the run is ADMITTED, with the agent still working — its outcome is the durable\n * actor-task row the record names. Measured 2026-09-13 on Wonder CRM: the record said `ok: true`\n * for `build-task-company-schema` at the instant its run started, and the route told the caller to\n * poll that record \"for the outcome\", so a script following it read an admitted run as a success.\n */\nexport enum Workbench_BuildDispatchPhase {\n /** Selected and handed to its executor; nothing has resolved yet. */\n SUBMITTED = 'submitted',\n /**\n * A coding run was admitted. The phase names the HAND-OFF and stays ADMITTED however the run ends: how\n * the run stands is `Workbench_BuildDispatch.runStatus`, read off the same execution row (#2523).\n */\n ADMITTED = 'admitted',\n /** A companion generation step ran to completion. */\n FINISHED = 'finished',\n /** The dispatch threw — before a coding run was admitted, or while a generation step ran. */\n FAILED = 'failed',\n}\n\n/**\n * One playbook's row on the eligibility board.\n *\n * A projection of the application-creation runtime's `PlaybookEligibility` (whose docs carry the\n * semantics), flattened for a list row: the per-precondition verdict objects are NOT carried —\n * `unmet` is their already-rendered \"why not\" — and two board-level scalars are projected ONTO each\n * row (`phase`, `computedAt`) because a resource row must be complete on its own.\n */\nexport const Workbench_Playbook_Schema = z.object({\n /**\n * EMITTED BY THE BEHAVIOR — `playbookRef` sanitized to the URL-safe identity charset — NOT\n * composed by the binding's `identityFields`. Composition refuses any value outside\n * `[a-zA-Z0-9_-]`, and playbook refs legitimately carry dots (`top_down.phase-gate`), so the\n * projection service derives the field itself (`.` → `__`, anything else invalid → `-`) and\n * REFUSES on a post-sanitization duplicate rather than serving two rows under one id.\n */\n workbenchPlaybookId: z.string().min(1).isPrimaryKey().isSummaryField(),\n playbookRef: z.string().min(1).isSummaryField(),\n playbookVersion: z.string().min(1).isSummaryField(),\n /**\n * The PLAYBOOK's own taxonomy label (`top_down`, `bottom_up`, `refinement`, `cross_cutting`) — what\n * kind of reasoning it embodies.\n *\n * It said \"the derived journey phase — board-level, projected per row\" until 2026-09-04, and that is\n * what it carried: one application-level value stamped onto every row, while the workbench rendered\n * it beside each playbook as if it described that playbook. The derived application phase is gone\n * (`MetaWorkflow_Phase`); this is the label that was always true of the row.\n *\n * A STRING, not the enum: the vocabulary is `MetaWorkflow_Phase` in `saas-specifications`, which this\n * package deliberately does not import. The map's lane headers (#1326) word each value through the\n * board's own copy block, keyed by the value, so a member added to the enum renders its key — visibly\n * unworded — rather than a guess.\n */\n phase: z.string().min(1).isSummaryField(), /** One sentence: what running this playbook produces. */\n intent: z.string().isSummaryField(),\n /** The deterministic gate's verdict: may this playbook run right now. */\n eligible: z.boolean().isSummaryField(),\n /** The `detail` of every unsatisfied precondition — \"why not\", already rendered by the runtime. */\n unmet: z.array(z.string()).isSummaryField(),\n /** Every READINESS precondition holds and only SEQUENCING ones do not: information, not a refusal. */\n blockedOnlyBySequencing: z.boolean().isSummaryField(),\n /** This playbook DECLARES an interview. Whether it is answered is `unansweredQuestionRefs`. */\n requiresElicitation: z.boolean().isSummaryField(),\n /**\n * The declared questions the dossier does not answer yet (#1454). Empty means a run can proceed\n * without asking — the run reads its interview from the dossier — so this, not\n * `requiresElicitation`, is what \"will stop and ask\" means now.\n */\n unansweredQuestionRefs: z.array(z.string().min(1)).isSummaryField(),\n /** Families this playbook writes that ALREADY have content — a run implies an overwrite. */\n wouldReplace: z.array(z.string()).isSummaryField(),\n /** Declaring playbooks for direct and composed output families. Derived board data, never persisted authority. */\n outputOwners: z.array(z.object({ family: z.string(), playbookRefs: z.array(z.string()) })).isSummaryField(),\n /** Child references missing from the catalog; distinct from a missing output renderer. */\n unresolvedPlaybookRefs: z.array(z.string()).isSummaryField(),\n /** Direct or composed families without a renderer; child impact is descriptive, not a parent readiness gate. */\n unlandableFamilies: z.array(z.string()).isSummaryField(),\n /** Landed outputs whose declared inputs have moved since. An ANNOTATION, never a gate. */\n staleOutputs: z.array(z.object({\n family: z.string().min(1),\n changedInputs: z.array(z.string()),\n })).isSummaryField(),\n /**\n * Whether the application's LINE runs this playbook at all (#1607): true when it is in the line's active\n * set. Distinct from `eligible`, which asks whether an active playbook may run RIGHT NOW. Absent when the\n * board was computed without a line.\n */\n activeInLine: z.boolean().optional().isSummaryField(),\n /**\n * Why it is, or is not, in the active set — one sentence, already rendered by the runtime, like `unmet`:\n * in the line, outside it, producing only what does not apply, or waiting for the line to be declared.\n * A sentence rather than the status value because this package does not import the vocabulary.\n */\n activationDetail: z.string().optional().isSummaryField(),\n /**\n * The instances of this playbook the creator opened and has not closed (#1609): each one's key and what it\n * is for. The default instance is not listed; it is the playbook itself. Absent without a line.\n */\n openInstances: z.array(z.object({ instanceKey: z.string().min(1), purpose: z.string().min(1) })).optional().isSummaryField(),\n /*\n * The playbook's DECLARED edges (#2530), each a reference a process map draws. With `outputOwners` (the families it\n * writes) they make the catalogue a graph: a family feeds the playbooks that read it, which write the families that\n * feed the next, and a composite admits its children.\n *\n * The family fields address the specification-artifact row of that family (its id IS the family); a family no row\n * holds is a dangling reference, which the edge tolerates. `inputFamilyIds` and `preconditionFamilyIds` stay apart:\n * a playbook gated on a family waits for it without reading it, and reads families it is not gated on. So does\n * `conditionFamilyIds` (#2670): a family whose decision decides what the playbook waits for, which it never waits for.\n */\n /** The families it reads, from its declared inputs. */\n inputFamilyIds: z.array(z.string().min(1).isForeignKey()).isSummaryField(),\n /** The families its preconditions name: an artifact that must exist, be valid, be stale or decide. */\n preconditionFamilyIds: z.array(z.string().min(1).isForeignKey()).isSummaryField(),\n /**\n * The families whose DECISION decides whether one of its preconditions applies: an `artifact_expected` gate's `when`\n * (#2494). The build decomposition expects a website plan only once the capability composition decided it is NEEDED.\n */\n conditionFamilyIds: z.array(z.string().min(1).isForeignKey()).isSummaryField(),\n /** The playbooks it admits as children when it is a composite, by their row id; empty otherwise. */\n admittedPlaybookIds: z.array(z.string().min(1).isForeignKey()).isSummaryField(),\n /** When the served board was computed — the cache's honesty field, rendered as \"as of\". */\n computedAt: z.date().isSummaryField(),\n});\nexport type Workbench_Playbook = z.infer<typeof Workbench_Playbook_Schema>;\n\n/**\n * One build-plan task in the DISPATCH view.\n *\n * DELIBERATELY THIN beside the `workbenchBuildTasks` aspect resource, which projects the same\n * authored population from the specification artifact with its traceability edges. This row\n * answers \"what can run next and what has landed\"; authored detail (skill refs, serves edges)\n * stays on the aspect row sharing the same `taskRef`.\n */\nexport const Workbench_BuildPlanTask_Schema = z.object({\n /** Emitted by the behavior (task refs are already URL-safe by their own regex; same lane as its siblings). */\n workbenchBuildPlanTaskId: z.string().min(1).isPrimaryKey().isSummaryField(),\n taskRef: z.string().min(1).isSummaryField(),\n /** One sentence of intent: what this task delivers. */\n objective: z.string().min(1).isSummaryField(),\n /** The target's `kind` discriminant only — the physical detail belongs to the dispatch plan. */\n targetKind: z.string().min(1).isSummaryField(),\n /** Which phase of building the application this task belongs to (context, never ordering). */\n functionalTopic: z.string().min(1).isSummaryField(),\n status: z.enum(WorkbenchBuildPlanTaskStatus).systemEnum('WorkbenchBuildPlanTaskStatus').isSummaryField(),\n /** Task refs that must land first — the only thing that decides what may run next. */\n prerequisiteTaskRefs: z.array(z.string()).isSummaryField(),\n});\nexport type Workbench_BuildPlanTask = z.infer<typeof Workbench_BuildPlanTask_Schema>;\n\n/**\n * The BUILD PLAN view's `ref` (#2531): the plan drawn as a graph, a menubar destination beside the domain model. Its\n * nodes are the build-plan tasks and its edges their prerequisites; a node opens the task's own page.\n *\n * It must not contain a dot, for the reason `WORKBENCH_DOMAIN_MODEL_VIEW_REF` records: the label lookup splits the\n * whole `composite_views.<translationRef>.<key>` path on `.`.\n */\nexport const WORKBENCH_BUILD_PLAN_VIEW_REF = 'build-plan';\n\n/** The label key the view's title and description hang off: the engine's `app.<ref>` derivation, restated. */\nexport const WORKBENCH_BUILD_PLAN_TRANSLATION_REF = `app.${WORKBENCH_BUILD_PLAN_VIEW_REF}`;\n\n/**\n * The PLAYBOOK MAP view's `ref` (#2531): the playbook catalog drawn as what unlocks what, a menubar destination beside\n * the build plan. Its nodes are the playbooks and the families they name; its edges what each writes, reads, waits for\n * and, as a composite, runs (the playbook row's declared edges, #2530). No dot, for the domain model's reason.\n */\nexport const WORKBENCH_PLAYBOOK_MAP_VIEW_REF = 'playbook-map';\n\n/** The label key the view's title and description hang off: the engine's `app.<ref>` derivation, restated. */\nexport const WORKBENCH_PLAYBOOK_MAP_TRANSLATION_REF = `app.${WORKBENCH_PLAYBOOK_MAP_VIEW_REF}`;\n\n/**\n * One run's write record — the evidence lane behind every dispatch.\n *\n * Pre-image BYTES (`previousContent`) are deliberately not projected: they belong to the revert\n * mechanism, and a list row carrying every pre-image would ship the working tree's history through\n * every LIST.\n */\nexport const Workbench_RunWriteRecord_Schema = z.object({\n /** Emitted by the behavior — `runId` sanitized to the identity charset (see the playbook id note). */\n workbenchRunWriteRecordId: z.string().min(1).isPrimaryKey().isSummaryField(),\n runId: z.string().min(1).isSummaryField(),\n playbookRef: z.string().min(1).isSummaryField(),\n /*\n * The JOIN KEYS (Phase 4, requirement R5), emitted by the projection as SANITIZED identities so\n * the values match the target rows' ids — `playbookRef` is the human-readable business key,\n * `workbenchPlaybookId` is the addressable one. Named exactly as the target's own field\n * identifier so the global field-identifier map resolves the reference, and declared as\n * REFERENCE relationships beside the configs so the engine's reference machinery (labels,\n * navigation, related lists) does the linking — no bespoke link code.\n */\n /** The playbook this run executed — every record has one. */\n workbenchPlaybookId: z.string().min(1).isForeignKey().isSummaryField(),\n /**\n * The execution-trace session the run recorded under, as the register RECORDED it (#1358 — the\n * run id is the actor execution's id and carries no session, so the join is a recorded field, not\n * a prefix match). NULL when the record carries none, or when no listed session matches — a\n * register can legitimately outlive its trace directory, and a dangling id would render as a\n * broken link.\n */\n workbenchTraceSessionId: z.string().min(1).isForeignKey().isSummaryField().nullable(),\n /** When the run recorded its writes. */\n at: z.date().isSummaryField(),\n files: z.array(z.object({\n /** App-root-relative path of the written file. */\n path: z.string().min(1),\n /** What makes a revert honest: whether the file existed before the run. */\n existedBefore: z.boolean(),\n })).isSummaryField(),\n /** Projected count, so a list can say \"wrote 7 files\" without rendering the array. */\n fileCount: z.number().int().isSummaryField(),\n /** The commit the workbench's `accept` made of these writes (#1454, Step 7); NULL until one has. */\n acceptedCommitSha: z.string().min(1).isSummaryField().nullable(),\n});\nexport type Workbench_RunWriteRecord = z.infer<typeof Workbench_RunWriteRecord_Schema>;\n\n/** One execution-trace session — the queryable index the board links from. */\nexport const Workbench_TraceSession_Schema = z.object({\n /** Emitted by the behavior — session ids admit `.` (`dev-<ISO-ish>` directory names), so sanitized (see the playbook id note). */\n workbenchTraceSessionId: z.string().min(1).isPrimaryKey().isSummaryField(),\n sessionId: z.string().min(1).isSummaryField(),\n /** When the session started (the session manifest's own `startedAt`). */\n startedAt: z.date().isSummaryField(),\n label: z.string().min(1).isSummaryField().nullable(),\n eventCount: z.number().int().isSummaryField(),\n stepCount: z.number().int().isSummaryField(),\n});\nexport type Workbench_TraceSession = z.infer<typeof Workbench_TraceSession_Schema>;\n\n/**\n * One governance QUESTION a creator still owes an answer to.\n *\n * ## Why one row per question rather than per questionnaire\n *\n * The companion answers questionnaires — a document definition and the prompts it asks. The thing a\n * creator ACTS on is one question, and the thing a board queues is one question, so the row is the\n * question and the document it belongs to travels on it. That is the same flattening\n * `Workbench_RunWriteRecord` does to a run's files, and for the same reason: a resource's row is\n * whatever a reader selects.\n *\n * ## What it deliberately does NOT carry\n *\n * The ANSWER. Landing answers is a dispatch against the `document-facts-authored` family and goes\n * through the companion's own service; a row here is the question as asked. Giving the row an answer\n * field would make this the second place an answer lives, which is the ledger\n * `one-source-of-truth.md` rule 5 refuses.\n */\n/**\n * One GOVERNED DOCUMENT whose questionnaire a person must answer — the document half of governance.\n *\n * ## Why this is its own resource rather than fields on the question row\n *\n * `derivedFactRefs` and the ask count are facts about the DOCUMENT, not about any one question, and\n * a document-level fact repeated on every question row is a value with no owner: nothing says which\n * copy is authoritative, and eight rows of one document can disagree.\n *\n * It is also what the board's document selector is a list OF. Before this it grouped question rows\n * by `definitionRef` and had nowhere to read the derived facts from — so a panel showing only the\n * human half presented four questions for a document declaring eight, and a reader had no way to\n * tell a short questionnaire from a broken one.\n */\n/**\n * Where a dossier entry STANDS — the two states a question a playbook asks can be in from the\n * creator's side (#1454). \"Read from the product\" (a typed config key) is a third source the\n * dossier gains with the governed-document join (Step 6); it is not a standing of an interview\n * question, so it is not here.\n */\nexport enum WorkbenchDossierEntryStanding {\n /** The creator answered; the value is in the committed dossier. */\n FROM_YOU = 'from-you',\n /** The playbook asks it and nobody has answered. */\n STILL_NEEDED = 'still-needed',\n /**\n * An opened INSTANCE of the step asks it and has no answer of its own, so it runs on the step's own\n * answer (#1609). Answered, not needed: nothing is blocked, and an answer given here replaces the\n * step's for this instance only.\n */\n FROM_THE_STEP = 'from-the-step',\n /**\n * The PRODUCT answers it: a governed-document fact the application's own declarations establish,\n * read rather than asked (#1454, gap 4; `compliance-is-derived-from-the-product.md`). Never\n * \"needed\" and never editable here — its answer changes when what the product declares changes.\n */\n READ_FROM_PRODUCT = 'read-from-product',\n /**\n * Answered by a PROPOSAL, never by the creator (#2129): one they kept because they did not know, or one an\n * unattended round recorded for a quick interview with nobody present. Answered — nothing is blocked — but not\n * decided: the run treats it as a working hypothesis, and this standing is how the dossier lists it to revisit.\n * Changing it records the creator's own answer in its place.\n */\n ASSUMED = 'assumed',\n}\n\n/**\n * Whether a CHOICE question's options can be offered right now — for a question whose options are\n * COMPUTED from what the application has landed (the brand name, chosen from the screened candidates).\n * A catalog-authored question is always `AVAILABLE`.\n *\n * Its own vocabulary rather than a sentence on the row: what a person reads is worded once, in the\n * i18n tree, and a renderer can branch on it.\n */\nexport enum WorkbenchDossierEntryOptionsState {\n /** The options are offered (or the question has no options to compute). */\n AVAILABLE = 'available',\n /** What the options are computed from has not landed yet, or offers nothing — the question cannot be answered yet. */\n NOT_YET_AVAILABLE = 'not-yet-available',\n /** An answer exists, and it is no longer one of the offered options (re-screened, or given before the options were computed) — asked again. */\n ANSWER_NO_LONGER_OFFERED = 'answer-no-longer-offered',\n}\n\nexport const Workbench_GovernanceDocument_Schema = z.object({\n /** The document's ref, sanitized — a definition ref carries `:` and `.`. */\n workbenchGovernanceDocumentId: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** The governed document this questionnaire belongs to. */\n definitionRef: z.string().min(1).isSummaryField(),\n /** How many facts a PERSON must establish for it. */\n askCount: z.number().int().isSummaryField(),\n /**\n * The facts the GENERATOR derives, named rather than omitted.\n *\n * Naming them is what lets a reader tell a short questionnaire from a broken one: a document\n * declaring eight facts of which four are derived shows four questions, and without this the\n * other four look missing rather than answered.\n */\n derivedFactRefs: z.array(z.string().min(1)).isSummaryField(),\n /**\n * How many of the asked facts NO authored declaration establishes yet (#1454, Step 6) — the\n * dossier's \"still needed\" for this document. `askCount` is total; this is what is left.\n */\n openCount: z.number().int().isSummaryField(),\n /**\n * The creator ASKED FOR this document: a draft of it has landed. An open fact of a drafted document\n * is waiting on the person NOW (the draft carries the gap); an open fact of a document nobody\n * drafted is merely not told yet, and does not count as asked of you.\n */\n drafted: z.boolean().isSummaryField(),\n});\nexport type Workbench_GovernanceDocument = z.infer<typeof Workbench_GovernanceDocument_Schema>;\n\nexport const Workbench_GovernanceQuestion_Schema = z.object({\n /**\n * Emitted by the behavior as `<definitionRef>--<questionRef>`, sanitized — both halves admit `.`\n * and neither alone is unique, for the same reason the playbook id is sanitized (see its note).\n */\n workbenchGovernanceQuestionId: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** The governed document whose questionnaire asks this. */\n definitionRef: z.string().min(1).isSummaryField(),\n /** The question's own ref within that questionnaire. */\n questionRef: z.string().min(1).isSummaryField(),\n /** The fact the answer establishes. */\n factRef: z.string().min(1).isSummaryField(),\n /** The question as a person reads it — the row's own words. */\n creatorPrompt: z.string().min(1).isSummaryField(),\n /** Why the answer is needed, in the document's terms. */\n decisionPurpose: z.string().min(1).isSummaryField(),\n /** What shape of answer the question takes. */\n answerKind: z.string().min(1).isSummaryField(),\n /** Whose authority the answer carries — a creator decision, a qualified review, a specification. */\n factAuthorityKind: z.string().min(1).isSummaryField(),\n /** Whether \"not applicable\" is an admissible answer. */\n allowsNotApplicable: z.boolean().isSummaryField(),\n /** How sensitive the answer is, by the document's own classification. */\n sensitivityRef: z.string().min(1).isSummaryField(),\n /** The closed set of answers, when the question has one. Empty for a free-text question. */\n semanticOptions: z.array(z.object({\n optionRef: z.string().min(1),\n /** What choosing this option MEANS, in the creator's language rather than the schema's. */\n creatorMeaning: z.string().min(1),\n })).isSummaryField(),\n /** Answered in the authored facts (from you) or not (still needed) — the same standing vocabulary the interview dossier uses. */\n standing: z.enum(WorkbenchDossierEntryStanding).systemEnum('WorkbenchDossierEntryStanding').isSummaryField(),\n /** The answer as a person reads it — the text, the chosen options, or the \"does not apply\" reason. `null` when still needed. */\n answerSummary: z.string().nullable().isSummaryField(),\n /** When the answer was decided (the declaration's own instant). `null` when still needed. */\n answeredAt: z.date().nullable().isSummaryField(),\n /**\n * ASKED OF YOU NOW: still needed AND the document is DRAFTED — a draft is waiting on this fact. An\n * open fact of an undrafted document is merely not told yet. Derived by the projection, declared\n * as a LIST filter, for the same reason the dossier entry's is.\n */\n askedNow: z.boolean().isSummaryField(),\n});\nexport type Workbench_GovernanceQuestion = z.infer<typeof Workbench_GovernanceQuestion_Schema>;\n\n\n/*\n * ────────────────────────── Phase 3: dispatch OPERATIONS ──────────────────────────\n *\n * The creation board's dispatches as CUSTOM OPERATIONS (plan D3): declared here beside the\n * resources they act on, implemented COMPANION-SIDE as `OVERRIDE_ALL` custom implementations\n * delegating to the companion's own services — never as generated writes, which the introspection\n * repository refuses by contract. `OVERRIDE_ALL` returns before the framework's repository and\n * transaction machinery, which is exactly what a dispatch onto a derived resource needs (verified,\n * plan Phase 0), and none of these declares a transaction contract, so the\n * `override_all_not_supported_for_transaction_requiring_operation` refusal never applies.\n */\n\n/** The playbook resource's dispatch verbs. */\nexport enum WorkbenchPlaybooks_Operations {\n /** Fire one playbook run (the row is the playbook; the body carries brief/answers/dryRun). */\n RUN = 'run',\n /** Answer a run that stopped at a clarification — accept with answers, decline, or cancel. */\n RESUME = 'resume_run',\n /**\n * The questions this playbook still needs answered, as a decision payload — the declared interview\n * minus what the dossier already answers (shared decisions included), and `null` when nothing is left\n * to ask: the step declares none, or the dossier answers them all (#1454 review). Read\n * ON DEMAND, at the moment somebody chooses to run it, and deliberately not a field of the row: one\n * playbook alone declares fifteen questions, so carrying them on every row would pay for all of\n * them on every poll in order to show none of them.\n */\n READ_INTERVIEW = 'read_interview',\n}\n\n/** The build-plan resource's dispatch verb. */\nexport enum WorkbenchBuildPlanTasks_Operations {\n /**\n * Run the NEXT ready build-plan task — collection-level on purpose: the graph already encodes\n * the order its author intended, and a per-row dispatch would be a second scheduler disagreeing\n * with the first (the dispatch service's own doctrine).\n */\n DISPATCH_NEXT = 'dispatch_next',\n /**\n * Append ONE task the creator asked for, beside the plan that exists (#1454, Step 7). Collection-\n * level: the row does not exist until the append answers. Deterministic — no model runs; the\n * companion validates the task against the plan's own graph rules and re-renders the plan file.\n */\n ADD_TASK = 'add_task',\n /**\n * Run THIS task, by row. Admitted only when the task is READY — the graph still decides what may\n * run, and this verb only lets the creator pick among the ready ones instead of taking the next.\n * A non-ready task answers 409 naming what it waits on. Costs a coding run.\n */\n DISPATCH_TASK = 'dispatch_task',\n /**\n * Put THIS task back in the queue once the reason it did not land is fixed (#1535, #2530): its completed runs that\n * still hold it, and its failed runs not yet re-armed, stop counting, each recording why. Offered for a task held by\n * either guard (`completed_unlanded`, `attempts_exhausted`); a task with no such run answers 409, since there is\n * nothing to release. Runs nothing itself: the next dispatch offers the task again.\n */\n REARM = 'rearm',\n /**\n * ACCEPT what this task's latest completed coding run wrote: commit exactly those paths, from the\n * coding-run write register, in one commit whose message names the task. Paths carrying another\n * lane's hunks (dirty at the run's baseline) and paths edited since the run are refused by name\n * unless `force`. Acceptance is a commit (`one-source-of-truth.md`), and under the YOLO posture the\n * system may make it on the creator's word — this verb IS that word.\n */\n ACCEPT = 'accept',\n}\n\n/** The write-record resource's dispatch verbs. */\nexport enum WorkbenchRunWriteRecords_Operations {\n /** Revert this run's writes. Files edited since are refused by name unless `force`. */\n REVERT = 'revert_writes',\n /**\n * ACCEPT this run's writes: commit exactly the register's paths. A file that no longer holds the\n * bytes the run wrote is refused by name unless `force` — the same divergence test `revert` applies,\n * because in both directions a human edit is never silently swept into the run's account.\n */\n ACCEPT = 'accept',\n /**\n * WHAT this run changed, per file — read on demand, one run at a time (#1274). Deliberately not a\n * field of the LIST row: pre-image bytes \"belong to the revert mechanism, and a list row carrying\n * every pre-image would ship the working tree's history through every LIST\". Computed from the\n * register's own pre/post content, never from `git diff`, so it is the RUN's change and not\n * everything uncommitted at those paths.\n */\n READ_DIFF = 'read_diff',\n}\n\nexport const Workbench_PlaybookRunRequest_Schema = z.object({\n /** Optional product brief forwarded to the derivation. */\n creatorBrief: z.string().min(1).optional(),\n /**\n * Answers to a playbook's declared elicitation, when the creator pre-answers. Keyed by\n * `questionRef` — the elicitation vocabulary's own key, DISTINCT from a clarification answer's\n * `ref` (resume below): two different question planes, two different key names, kept as they are.\n */\n elicitationAnswers: z.array(z.object({\n questionRef: z.string().min(1),\n answer: z.string().min(1),\n })).optional(),\n /** Full pipe — generation, validation, rendering, judge — with NO filesystem writes. */\n dryRun: z.boolean().optional(),\n /**\n * The opened INSTANCE to run (#1609); omitted runs the step itself. An instance nobody opened is refused,\n * and its pre-answers are filed as that instance's answers, never the step's.\n */\n instanceKey: z.string().min(1).optional(),\n});\nexport type Workbench_PlaybookRunRequest = z.infer<typeof Workbench_PlaybookRunRequest_Schema>;\n\nexport const Workbench_PlaybookResumeRequest_Schema = z.object({\n /** The suspended run being answered — the handle `run` returned when it stopped to ask. */\n runId: z.string().min(1),\n /**\n * WHICH round of its questions this answers, declines or cancels — the waiting row's `round` (#1584). A\n * run asks again after an answer under the same `runId`; a round it has moved past is refused 409.\n */\n round: z.number().int().min(1),\n /** ACCEPT (every question answered), DECLINE (the rest delegated) or CANCEL — see `MetaWorkflow_ClarificationAction` (#1785). */\n action: z.enum(MetaWorkflow_ClarificationAction),\n answers: z.array(z.object({\n ref: z.string().min(1),\n answer: z.string().min(1),\n })).optional(),\n});\nexport type Workbench_PlaybookResumeRequest = z.infer<typeof Workbench_PlaybookResumeRequest_Schema>;\n\n/*\n * What \"run the build\" takes. With a build parallelism above one the verb starts a parallel WAVE\n * (#2243), as the console's `wildo build run` does; `single: true` runs only the next ready task.\n *\n * It once carried `maximumTokenBudget`, a ceiling the caller stated and nothing ever enforced:\n * `composeBuildTaskCodingContract` dropped the input on 2026-09-08 and now DERIVES the budget by\n * summing the selected sources' `estimatedTokens`. A request field that reads as a limit and binds\n * nothing is worse than no field, so that whole chain is gone; do not bring it back.\n */\nexport const Workbench_BuildPlanDispatchNextRequest_Schema = z.object({\n /** Run only the next ready task, even when the build parallelism would start a wave. */\n single: z.boolean().optional(),\n});\nexport type Workbench_BuildPlanDispatchNextRequest = z.infer<typeof Workbench_BuildPlanDispatchNextRequest_Schema>;\n\n/**\n * One task to append (#1454, Step 7). The `target` and `produces` shapes are owned by\n * `@wildo-ai/saas-specifications` (`BuildPlanTaskSchema`), which this package deliberately does not\n * depend on, so they cross here as records and the companion parses them against the real schema\n * before anything is written. `taskRef` is derived from the objective when absent.\n */\nexport const Workbench_BuildPlanAddTaskRequest_Schema = z.object({\n taskRef: z.string().min(1).optional(),\n objective: z.string().min(1),\n target: z.record(z.string(), z.unknown()),\n produces: z.array(z.record(z.string(), z.unknown())),\n functionalTopic: z.string().min(1),\n skillRefs: z.array(z.string().min(1)).min(1),\n prerequisiteTaskRefs: z.array(z.string().min(1)).optional(),\n servesRefs: z.array(z.string().min(1)).optional(),\n});\nexport type Workbench_BuildPlanAddTaskRequest = z.infer<typeof Workbench_BuildPlanAddTaskRequest_Schema>;\n\nexport const Workbench_BuildPlanDispatchTaskRequest_Schema = z.object({\n /** The conversation this dispatch belongs to, so the thread shows the run as a card. */\n conversationId: z.string().min(1).optional(),\n});\nexport type Workbench_BuildPlanDispatchTaskRequest = z.infer<typeof Workbench_BuildPlanDispatchTaskRequest_Schema>;\n\n/** Why a build task goes back in the queue (#2530): a person's reason, and what was fixed. */\nexport const Workbench_BuildTaskRearmRequest_Schema = z.object({\n /* A person's reasons only: the wave's own records a detection only the wave makes. */\n reason: z.enum(OPERATOR_BUILD_TASK_REARM_REASONS).systemEnum('BuildTaskRearmReason'),\n /** What was fixed, in a sentence. Required: a reason alone cannot say which defect. */\n note: z.string().trim().min(1),\n});\nexport type Workbench_BuildTaskRearmRequest = z.infer<typeof Workbench_BuildTaskRearmRequest_Schema>;\n\nexport const Workbench_AcceptChangesRequest_Schema = z.object({\n /** Commit paths that diverged since the run. NOT defaulted on — a human edit is never silently swept in. */\n force: z.boolean().optional(),\n});\nexport type Workbench_AcceptChangesRequest = z.infer<typeof Workbench_AcceptChangesRequest_Schema>;\n\nexport const Workbench_RunWriteRevertRequest_Schema = z.object({\n /** Overwrite files edited since the run. NOT defaulted on — a human edit is never silently destroyed. */\n force: z.boolean().optional(),\n});\nexport type Workbench_RunWriteRevertRequest = z.infer<typeof Workbench_RunWriteRevertRequest_Schema>;\n\n/**\n * What a playbook run's answer says about the run, when it says anything (#1781). Absent on a run that\n * concluded, or on a detached submission that is still going.\n *\n * One named home for a vocabulary the companion writes and several readers compare — the run record,\n * the clarification lifecycle, the resume route, and the workbench's summary of a RESUME, which used\n * to read every answer carrying a `runId` as \"Started\", a cancelled clarification included.\n */\nexport enum Workbench_PlaybookRunOutcomeStatus {\n /** Healthy, and waiting at a clarification: the run asked the creator something and holds until answered. */\n AWAITING_CREATOR_INPUT = 'awaiting_creator_input',\n /** The creator cancelled a clarification: the run was abandoned and does not continue. */\n CANCELLED = 'cancelled',\n}\n\n/**\n * Dispatch RESPONSES are LOOSE objects, deliberately: each names the fields the board branches on\n * and forwards the rest verbatim. The companion routes already spread the whole service result, and\n * the recorded lesson stands — naming a closed subset is how five computed fields once vanished\n * from every creator's view until someone noticed live.\n */\nexport const Workbench_PlaybookRunOutcome_Schema = z.looseObject({\n runId: z.string().optional(),\n status: z.enum(Workbench_PlaybookRunOutcomeStatus).optional(),\n note: z.string().optional(),\n});\nexport type Workbench_PlaybookRunOutcome = z.infer<typeof Workbench_PlaybookRunOutcome_Schema>;\n\n/**\n * How a build dispatch answers (#2531 review M1): the companion forwards its dispatch result as it is. One task run\n * answers the task it dispatched (`plan`) and what started for it, a coding run's `admission` or the result of a\n * `generationStep` the companion ran itself, exactly one of the two. A parallel `dispatch_next` answers the `wave` it\n * started, with a `note`.\n *\n * There is no top-level `taskRef`. This schema declared one, which no answer ever carried, so the line saying what a run\n * started was never shown and the raw answer opened in its place.\n */\nexport const Workbench_BuildPlanDispatchOutcome_Schema = z.looseObject({\n plan: z.looseObject({ taskRef: z.string().min(1) }).optional(),\n admission: z.looseObject({}).optional(),\n generationStep: z.looseObject({}).optional(),\n wave: z.looseObject({}).optional(),\n note: z.string().optional(),\n});\nexport type Workbench_BuildPlanDispatchOutcome = z.infer<typeof Workbench_BuildPlanDispatchOutcome_Schema>;\n\n/** How a re-arm answers: the runs it released, and the reason it recorded on them. */\nexport const Workbench_BuildTaskRearmOutcome_Schema = z.looseObject({\n rearmedRunTaskIds: z.array(z.string()).optional(),\n rearm: z.looseObject({ reason: z.enum(BuildTaskRearmReason), note: z.string(), rearmedAt: z.string() }).optional(),\n});\nexport type Workbench_BuildTaskRearmOutcome = z.infer<typeof Workbench_BuildTaskRearmOutcome_Schema>;\n\nexport const Workbench_BuildPlanAddTaskOutcome_Schema = z.looseObject({\n taskRef: z.string().optional(),\n /** TRUE when no plan existed and this task is its first. */\n createdPlan: z.boolean().optional(),\n /** Validator findings below the hard floor — worth telling the creator, never a refusal. */\n advisoryFindings: z.array(z.object({ code: z.string(), taskRef: z.string(), message: z.string() })).optional(),\n note: z.string().optional(),\n});\nexport type Workbench_BuildPlanAddTaskOutcome = z.infer<typeof Workbench_BuildPlanAddTaskOutcome_Schema>;\n\n/** How ACCEPT answers, for a task's coding run or a playbook run alike: what was committed, what was refused and why. */\nexport const Workbench_AcceptChangesOutcome_Schema = z.looseObject({\n /**\n * TRUE when no new commit was made because what it would commit was already committed: the run was accepted before, or\n * its files were committed by hand (#2531 review M3). `commitSha` is then that earlier commit, not a new one. An accept\n * can be partial, holding back the files it cannot vouch for, and the task waits on them; only a forced accept\n * (`force`) commits those.\n */\n alreadyCommitted: z.boolean().optional(),\n commitSha: z.string().optional(),\n committedPaths: z.array(z.string()).optional(),\n refusedPaths: z.array(z.object({ path: z.string(), reason: z.string() })).optional(),\n message: z.string().optional(),\n note: z.string().optional(),\n});\nexport type Workbench_AcceptChangesOutcome = z.infer<typeof Workbench_AcceptChangesOutcome_Schema>;\n\nexport const Workbench_RunWriteRevertOutcome_Schema = z.looseObject({\n runId: z.string().optional(),\n reverted: z.array(z.string()).optional(),\n /** Files whose current bytes differ from what the run wrote — refused by name, revertable with force. */\n refusedDiverged: z.array(z.string()).optional(),\n /**\n * Files a LATER recorded run landed on (#1614): refused even under force, because the earlier bytes\n * would destroy that run's work. Each names the run to revert first (#1666).\n */\n refusedLaterRun: z.array(z.object({ path: z.string(), runId: z.string() })).optional(),\n note: z.string().optional(),\n});\nexport type Workbench_RunWriteRevertOutcome = z.infer<typeof Workbench_RunWriteRevertOutcome_Schema>;\n\n/**\n * One BUILD DISPATCH — an attempt to run one build-plan task.\n *\n * The lane's own history: what was selected, when, and how it ended. A task may be dispatched more\n * than once (a failure is re-dispatchable), so the row is the ATTEMPT and `taskRef` is what groups\n * them — the same relationship a run write record has to its playbook.\n */\n/**\n * The NEXT build task — what a dispatch would do, with nothing started. At most one row.\n *\n * ## Why a proposal is a row\n *\n * It looks like a computed answer rather than a record, and that is why it stayed a bespoke read\n * longest. But everything a person asks of it is what they ask of a row: what is it, what may it\n * touch, what must it pass, and how far through the plan are we. It has an identity (`taskRef`), it\n * is polled, it is rendered as a card, and a dispatch acts on it.\n *\n * ## Distinct from the build-plan TASK, deliberately\n *\n * `workbenchBuildPlanTasks` is every task and its status. This is the SELECTION — which one is next,\n * plus the guard rails a dispatch of it would carry (allowed paths, prohibited paths, required\n * checks, installed skills), which belong to the dispatch rather than to the task. Two resources\n * because they answer different questions; the task list never changes because a selection did.\n *\n * ## Zero rows means the build is FINISHED, not that the read failed\n *\n * The companion answers `plan: null` with an `exhausted` count for a completed build, and it is a\n * 200. That used to be a non-2xx, so the end of the journey rendered as \"could not look\" — the board\n * telling an operator something went wrong at the moment everything had gone right. The counts live\n * on this row so the finished state can say how far it got.\n */\nexport const Workbench_BuildDispatchPlan_Schema = z.object({\n /** The task's ref, sanitized — a task ref carries dots. */\n workbenchBuildDispatchPlanId: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** The task a dispatch would run. NULL exactly when the build is exhausted. */\n taskRef: z.string().min(1).isSummaryField().nullable(),\n /** What it is for, in the plan's own words. */\n objective: z.string().min(1).isSummaryField().nullable(),\n /** What kind of thing it produces. */\n targetKind: z.string().min(1).isSummaryField().nullable(),\n /** Present exactly when the next task is a companion GENERATION step rather than a coding task. */\n generationStepRef: z.string().min(1).isSummaryField().nullable(),\n /** Where a dispatch of it MAY write. */\n allowedPathPrefixes: z.array(z.string().min(1)).isSummaryField(),\n /** Where it may NOT, whatever the agent decides. */\n prohibitedPathPrefixes: z.array(z.string().min(1)).isSummaryField(),\n /** What its work must pass before it counts as done. */\n requiredChecks: z.array(z.string().min(1)).isSummaryField(),\n /** The framework knowledge the agent is given for it. */\n installedSkillRefs: z.array(z.string().min(1)).isSummaryField(),\n /** Every task that could run right now — this one is the head of that queue. */\n readyTaskRefs: z.array(z.string().min(1)).isSummaryField(),\n /** Every task already landed. */\n landedTaskRefs: z.array(z.string().min(1)).isSummaryField(),\n /**\n * The subset of `landedTaskRefs` that landed WITHOUT PROOF — a task declaring no product, which\n * ran and therefore cannot be held against the queue, but whose work nothing verified.\n *\n * Empty and \"not reported\" are the same array here, which is the one thing this loses against the\n * optional wire field it replaced. That is acceptable because the board never rendered a count: it\n * names the refs, and naming none is what an empty list looks like either way.\n */\n unverifiableLandedTaskRefs: z.array(z.string().min(1)).isSummaryField(),\n /**\n * The subset of `landedTaskRefs` that NO RUN OF THEIR OWN produced (#2217): the landing probe found the product\n * before the task ever ran. True when a sibling task or a person wrote it; false when the probe is reading\n * something that is not the product — in `app-creation-test-004` it read a comment, and eighteen website sections\n * counted as landed on pages that listed none. Named so \"92 of 92 landed\" can never hide it. Empty is healthy.\n */\n landedBeforeAnyRunTaskRefs: z.array(z.string().min(1)).isSummaryField(),\n /** TRUE when there is no next task because every one has landed. */\n exhausted: z.boolean().isSummaryField(),\n /**\n * Every READY task dispatch passed over because it cannot make progress, and why (#1451).\n *\n * Present on BOTH kinds of row. Beside a next task it names what that selection skipped; with no\n * next task and `exhausted` false it IS the answer: nothing ready can run. That state used to fail\n * the read, so the board said \"could not look\" at the one moment it had a precise answer.\n *\n * Typed facts rather than a sentence: the remedy's WORDS belong to the reason\n * (`system_enums.Workbench_BuildTaskStuckReason`), and each reason carries only the facts its\n * remedy needs.\n */\n stuckTasks: z.array(z.object({\n taskRef: z.string().min(1),\n reason: z.enum(Workbench_BuildTaskStuckReason).systemEnum('Workbench_BuildTaskStuckReason'),\n /** The run that proves it is stuck; NULL for a task that is unbuildable before any run. */\n priorTaskId: z.string().min(1).nullable(),\n /** `completed_awaiting_commit` only: the probed paths present in the working tree and not committed. */\n uncommittedPaths: z.array(z.string().min(1)),\n /** `parked_awaiting_answer` (and a parked `no_document_blueprint`): the question the run is waiting on. */\n question: z.string().min(1).nullable(),\n /** `no_document_blueprint` only: the governed document the catalog does not define. */\n documentRef: z.string().min(1).nullable(),\n })).isSummaryField(),\n /** How many tasks the plan holds. Meaningful on the exhausted row, where it is the total reached. */\n taskCount: z.number().int().isSummaryField(),\n /** How many have landed. */\n landedCount: z.number().int().isSummaryField(),\n});\nexport type Workbench_BuildDispatchPlan = z.infer<typeof Workbench_BuildDispatchPlan_Schema>;\n\nexport const Workbench_BuildDispatch_Schema = z.object({\n /**\n * The dispatch's own EXECUTION id (#2530): a task can be dispatched twice, even in the same second, and was keyed on its\n * task and start instant until two such attempts shared one id.\n */\n workbenchBuildDispatchId: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** The build-plan task this attempt ran. */\n taskRef: z.string().min(1).isSummaryField(),\n /**\n * What the task delivers, in its own sentence — joined from the plan by `taskRef` so a card, a pane\n * title and a Home line name the run by what it does rather than by its key (#1454, gap 1). NULL when\n * the plan no longer holds the task (a plan re-decomposed since): the ref is then the only name.\n */\n objective: z.string().min(1).isSummaryField().nullable(),\n /**\n * How the attempt ended, or that it has not.\n *\n * `.systemEnum(...)` so the four words are authored ONCE for the enum rather than per field path:\n * the frontend's label cascade reads only the vocabulary a field DECLARES, and without it every\n * surface renders the raw constant.\n */\n phase: z.enum(Workbench_BuildDispatchPhase).systemEnum('Workbench_BuildDispatchPhase').isSummaryField(),\n /** When the dispatch was handed to its executor. */\n startedAt: z.date().isSummaryField(),\n /** When the phase left SUBMITTED. NULL while it has not — a dispatch still running has no end. */\n settledAt: z.date().isSummaryField().nullable(),\n /**\n * The durable actor-task row a coding run produced, when one was admitted.\n *\n * NULL for a generation step (there is no coding task) and for a dispatch that failed before\n * admission. It is the edge from this lane into the control plane, which is why it is a foreign\n * key rather than a printed id.\n */\n codingTaskId: z.string().min(1).isForeignKey().isSummaryField().nullable(),\n /** Why it failed, verbatim. NULL on every dispatch that did not. */\n error: z.string().min(1).isSummaryField().nullable(),\n /**\n * Whose failure a failed coding run was (#1581): the task's, or the host's. HOST is everything that is not the task's: the\n * agent's turn taken by the environment (a signed-out agent, a spent quota, a killed turn, an operator's cancel) or a\n * change set or trace the host could not capture. Only the first kind is the coding lane's, so the dispatch's page and\n * card offer to see whether the lane is ready, never to explain the failure (#2530 review M2, #2531 review L1). NULL for\n * a run that did not fail, a generation step, and a run recorded before it.\n */\n failureAttribution: z.enum(CodingRunFailureAttribution).systemEnum('CodingRunFailureAttribution').nullable(),\n /**\n * The conversation the dispatch was started from (#1454, Step 7), so the thread shows it as a\n * card. NULL for a dispatch started from the plan's next-task door or before conversations existed.\n */\n conversationId: z.string().min(1).isSummaryField().nullable(),\n /**\n * How the dispatch's RUN stands — the status of the actor execution the dispatch is (#2523).\n *\n * Every dispatch is one execution (#1359): a coding run on `application-coding.system`, a generation step\n * on `application-build.system`. Its status is the one truthful answer to \"did it work\", for both\n * executors. The phase cannot give it: a coding dispatch's phase resolves at ADMITTED, by design, so a run\n * that has since completed, failed or is waiting on an answer still reads ADMITTED there. Every consumer\n * that keyed a coding run's end on `phase === FINISHED` was asking a question no coding run could answer:\n * the conversation's dispatch card never offered Accept, and Home never listed a coding run as settled.\n */\n runStatus: z.enum(FlowsActors_Status).systemEnum('FlowsActors_Status').isSummaryField(),\n /** When the run ENDED. NULL while it is pending, running or waiting on an answer. */\n runFinishedAt: z.date().isSummaryField().nullable(),\n /**\n * Whether the coding run's writes have been ACCEPTED — committed through the `accept` verb, or\n * found already committed.\n *\n * FALSE means exactly one thing: a coding run that COMPLETED, recorded writes, and has none committed\n * yet — the state the `accept` verb addresses. NULL when there is nothing to accept NOW: a generation\n * step, a run still running or waiting on an answer, a failed run, a run that wrote nothing, or a run\n * older than the coding-run write register.\n */\n accepted: z.boolean().isSummaryField().nullable(),\n});\nexport type Workbench_BuildDispatch = z.infer<typeof Workbench_BuildDispatch_Schema>;\n\n/**\n * One ATTEMPT at a build task (#2530): one actor execution, as the build's record reads it. A coding run, or a companion\n * generation step (labels, migrations, translations).\n */\nexport const Workbench_BuildTaskAttempt_Schema = z.object({\n /** The execution's own task id: the coding run's actor task, or the generation step's. */\n runTaskId: z.string().min(1),\n startedAt: z.date(),\n settledAt: z.date().nullable(),\n status: z.enum(FlowsActors_Status).systemEnum('FlowsActors_Status'),\n /**\n * A companion generation step (labels, migrations, translations) rather than a coding run. No agent ran, so its cost and\n * tokens are what its own model calls were MEASURED at, and may be a floor (`spendIsFloor`) where some reported nothing.\n */\n generationStep: z.boolean(),\n /**\n * Refused by the host before it started (an admission refusal, a run a stopped process left selected). In the\n * history, because it explains why nothing ran; counted by no figure, because it was no attempt of the task's.\n */\n refusedBeforeStart: z.boolean(),\n /** Nothing ran: a host refusal, or admission refusing the task's own contract (which the budget does count). */\n ranNothing: z.boolean(),\n /** Whose failure a failed run was; null for a run that did not fail, and for a run recorded before the field. */\n failureAttribution: z.enum(CodingRunFailureAttribution).systemEnum('CodingRunFailureAttribution').nullable(),\n /** It failed while other runs were editing the tree, so the failure may be theirs. */\n interferenceSuspected: z.boolean(),\n /**\n * Why the task was put back in the queue after this run, which then no longer held it; null when it was not. A person's\n * reason, or the build wave's own when the run's product was lost to a sibling run editing the same file.\n */\n rearmReason: z.enum(BuildTaskRearmReason).systemEnum('BuildTaskRearmReason').nullable(),\n /** What was fixed, as the re-arm recorded it; null when the run was not re-armed. */\n rearmNote: z.string().min(1).nullable(),\n /** Why it failed, verbatim; null when it did not. */\n error: z.string().min(1).nullable(),\n /**\n * What the run cost, with its currency: what the agent reported for a coding run, what its model calls were measured at\n * for a generation step (in one currency; a step that spent in several shows none). Null when nothing reported a cost —\n * never read as zero.\n */\n costAmount: z.number().nullable(),\n costCurrency: z.string().min(1).nullable(),\n /** The cost and tokens are a FLOOR: a generation step some of whose model calls reported no usage. */\n spendIsFloor: z.boolean(),\n /**\n * The tokens the run reported in all; null when it reported none. Mostly prompt-cache reads for a coding run, so a\n * large figure is the agent re-reading its context, not that much new work.\n */\n totalTokens: z.number().int().min(0).nullable(),\n /** Files the run itself changed; null when the run recorded none. */\n filesChanged: z.number().int().nullable(),\n /** The checks the run itself failed, by ref (a check already red when it started is not its failure, so not here). */\n failedCheckRefs: z.array(z.string().min(1)),\n /** Paths the run changed outside the task's declared scope: recorded, never refused. */\n outOfScopePaths: z.array(z.string().min(1)),\n /**\n * The run COMPLETED and a sibling of its wave overwrote its product (#2210): which runs, which of the task's product\n * files both changed, and whether the wave re-ran the task for it. Null for a run nobody overwrote. The case a person's\n * re-arm answers once the wave's own re-runs are spent.\n */\n interference: z.object({\n overlappingTaskRefs: z.array(z.string().min(1)),\n contendedProductPaths: z.array(z.string().min(1)),\n requeued: z.boolean(),\n }).nullable(),\n /*\n * NOT carried: why the agent's turn ended (`max_tokens`, `refusal`), which is the agent's own vocabulary with no\n * words here yet; the run's own page shows it.\n */\n});\nexport type Workbench_BuildTaskAttempt = z.infer<typeof Workbench_BuildTaskAttempt_Schema>;\n\n/**\n * What `wildo db diff --check` could tell the host about the resource model versus the accepted schema plan.\n *\n * THREE answers, not two. A boolean merged the two failures that lead to opposite places (found in review,\n * 2026-09-13): DRIFTED means the migration step has work and must run first; UNANSWERABLE means the check did not\n * report drift and did not pass — no accepted plan and an undeterminable store declaration, no built backend registry, a compiled model older than its\n * sources (`assessCompiledModelCurrency`, #403: before it, a dead watcher's stale dist answered IN_SYNC and landed\n * this step with drift on disk), a CLI that could not import\n * it or could not be spawned, a timeout, a lockfile that fails strict parsing, or an ENGINE planner-contract\n * mismatch (whose remedy is `wildo db generate --accept-planner-contract`, not a rebuild) — and\n * running the step then only throws. Read as one \"not in sync\", an unanswerable check put a step that can\n * only fail at the head of the build queue on every dispatch, so no other task could run.\n *\n * Only IN_SYNC ever lands the step: an unanswered question must not land a migration step either.\n *\n * Declared here rather than beside its producer (the companion's generation steps) because the workbench shows it on a\n * step's record (#2530).\n */\nexport enum SchemaPlanSyncState {\n /** The model and the accepted plan agree: the migration step has landed. */\n IN_SYNC = 'in_sync',\n /** The check ran and reported ungenerated changes: the migration step has work to do. */\n DRIFTED = 'drifted',\n /** The check neither passed nor reported drift (see above for the causes); running the step now would refuse or fail. */\n UNANSWERABLE = 'unanswerable',\n}\n\n/**\n * What `wildo design-tokens validate` could tell the host about the stylesheet's generated block.\n *\n * Three answers, for the reason {@link SchemaPlanSyncState} has three: the command exits non-zero for a\n * stale block AND for every could-not-ask failure (a config that does not load, a stylesheet with no\n * markers, a CLI that cannot start or times out), and the two lead to opposite places. STALE means the\n * `design-tokens` step has work; UNANSWERABLE means running it would refuse or fail the same way, so the\n * dispatch host passes over it while other work is ready.\n *\n * Declared here for the reason {@link SchemaPlanSyncState} is (#2530).\n */\nexport enum DesignTokenBlockState {\n /** The block is exactly what `generate` would write from the config. */\n CURRENT = 'current',\n /** The block differs from what `generate` would write: the step has work. */\n STALE = 'stale',\n /** The command neither confirmed nor refuted the block; running the step now would fail the same way. */\n UNANSWERABLE = 'unanswerable',\n}\n\n/**\n * Does every module the brand step writes (the frontend's brand design, and the website's colours when a website is\n * declared) say what the brand's visual tone now renders?\n *\n * Three answers, for the reason {@link DesignTokenBlockState} has three: STALE means the step has work and runs,\n * UNANSWERABLE means the brand could not be read (the specifications do not evaluate, or this host has no\n * introspection), and running the step then only throws, so the selector passes it over while other work is ready.\n *\n * Declared here for the reason {@link SchemaPlanSyncState} is (#2530).\n */\nexport enum BrandDesignState {\n /** Every module exists and equals the render of the brand's current visual tone. */\n CURRENT = 'current',\n /** A module is absent or says something the brand no longer does. */\n STALE = 'stale',\n /** The brand's visual tone could not be read, so currency cannot be decided either way. */\n UNANSWERABLE = 'unanswerable',\n}\n\n/** A landing probe HEAD does not satisfy (#2530): what landing searched for, and whether the working tree has it. */\nexport const Workbench_BuildTaskUnmetProbe_Schema = z.object({\n /**\n * The files the probe reads, and how they are read: ONE path is that file, committed (and declaring `declarations`\n * when it names any); SEVERAL paths with `declarations` are candidates, any one of which may declare them; several with\n * `keyPrefix` are the language packs, every committed one of which must carry a key under it. Empty for a shell probe,\n * which reads the resolved shell rather than a fixed file (`shellSurface`, `shell`). The probe's KIND is the\n * companion's (`BuildPlanTaskLandedProbeKind`): these fields are what it looks for, and between them say which kind.\n */\n paths: z.array(z.string().min(1)),\n /**\n * The symbols the probe looks for in those files; empty for a probe that asks only that a file be committed. WHERE in\n * the file they must sit (a set, one call's arguments, a key at an object path, a list's entry) is the companion's\n * probe relation and is not carried: its parameters are code locations the companion derives only when it probes, and\n * no surface shows them, a run's included (#2531 review L4). A reader learns WHAT is missing here, not where it goes.\n */\n declarations: z.array(z.string().min(1)),\n /** The key every committed label pack must carry one under (a website section's words); null for other probes. */\n keyPrefix: z.string().min(1).nullable(),\n /**\n * The shell surface a placement probe reads — a `PlacementSurface` value of the specifications. A string declaring that\n * vocabulary, so it reads `system_enums.PlacementSurface` like the enum, since this package does not depend on the\n * specifications. Null for the probe that asks whether ANY surface carries a placement, and for every probe that reads\n * files.\n */\n shellSurface: z.string().min(1).systemEnum('PlacementSurface').nullable(),\n /** A shell probe's explanation: what the surface lacks, still carries, or could not be asked. Null for a file probe. */\n shell: z.object({\n /** Why the surface could not be read, verbatim: the probe is then unsatisfied without being a \"no\". */\n unanswerable: z.string().min(1).nullable(),\n /** Subjects the plan placed there that the surface does not carry. */\n missing: z.array(z.string().min(1)),\n /** Subjects the plan declined that the surface still carries. */\n declinedButPresent: z.array(z.string().min(1)),\n /** Files contributing the surface that are not committed as they are. */\n uncommittedPaths: z.array(z.string().min(1)),\n }).nullable(),\n /**\n * A REGISTRY probe's explanation (#2966): an agent, an approval gate, a work unit, a metered usage recording (#2305\n * S5) or a retention binding, proven from what the backend registers, and a role a relationship confers (#2305 S6),\n * proven from `wildo.saas.config.ts`. Null for every other probe. Kept apart from `shell`, which reads a surface: these read a registry, and\n * a \"declined\" entry has no meaning here.\n */\n registered: z.object({\n /** Why the registry could not be read, verbatim: the probe is then unsatisfied without being a \"no\". */\n unanswerable: z.string().min(1).nullable(),\n /**\n * What the task's module does not register as planned, one entry per shortfall: WHY (worded from\n * `system_enums.AgentWorkShortfallKind`), the ref it is about, and the planned and registered values where it compares\n * them (for a refused gate, the engine's refusal, verbatim).\n */\n missing: z.array(z.object({\n kind: z.enum(AgentWorkShortfallKind).systemEnum('AgentWorkShortfallKind'),\n ref: z.string().min(1),\n planned: z.string().min(1).nullable(),\n registered: z.string().min(1).nullable(),\n })),\n /** Files where the product is written that are not committed as they are. */\n uncommittedPaths: z.array(z.string().min(1)),\n }).nullable(),\n /**\n * The working tree satisfies it: the product is written and not committed — an acceptance question. False: it is\n * absent — a declaration or a work question. \"Not landed\" alone cannot tell the two apart.\n */\n satisfiedInWorkingTree: z.boolean(),\n});\nexport type Workbench_BuildTaskUnmetProbe = z.infer<typeof Workbench_BuildTaskUnmetProbe_Schema>;\n\n/**\n * Everything the build knows about ONE task, in one row (#2530, from the companion's per-task record, #1521).\n *\n * The case it exists for: \"not landed\" hid three facts — never dispatched, dispatched and FAILED, dispatched,\n * SUCCEEDED and unprovable — and they are three shapes here: no attempts; a failed attempt; a completed attempt with\n * unmet probes. Its id IS the build-plan task row's id, so a task's detail reads its record by the id it already has;\n * it is its own resource because reading attempts, classifying a stuck task and probing the tree is too much to pay on\n * every row of the task list.\n *\n * The attempts are read from the actor plane by ONE listing per coding system, bounded far above a whole build's runs;\n * `attemptsTruncated` says when that bound was met, so an early task's oldest runs may be missing and \"never run\" is not\n * claimed.\n */\nexport const Workbench_BuildTaskRecord_Schema = z.object({\n workbenchBuildTaskRecordId: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** The build-plan task this is the record of (the same id). */\n workbenchBuildPlanTaskId: z.string().min(1).isForeignKey().isSummaryField(),\n taskRef: z.string().min(1).isSummaryField(),\n status: z.enum(WorkbenchBuildPlanTaskStatus).systemEnum('WorkbenchBuildPlanTaskStatus').isSummaryField(),\n /**\n * Attempts that count (every one but a host refusal before start). Which FAILED ones count against the attempt\n * budget is the budget's own question (host failures and suspected interference are forgiven up to a bound); each\n * attempt says what it needs for that, and a spent budget is `stuckReason` ATTEMPTS_EXHAUSTED, never re-derived here.\n */\n attemptCount: z.number().int().min(0).isSummaryField(),\n /** Newest first. Empty: never dispatched (unless `attemptsTruncated`). */\n attempts: z.array(Workbench_BuildTaskAttempt_Schema),\n /** The attempt listing met its bound: the oldest attempts of an early task may be missing. */\n attemptsTruncated: z.boolean(),\n /** READY and passed over by dispatch: why, from the same classification the selector uses. */\n stuckReason: z.enum(Workbench_BuildTaskStuckReason).systemEnum('Workbench_BuildTaskStuckReason').isSummaryField().nullable(),\n /** `completed_awaiting_commit`: the files its run wrote that are not committed — what accepting it would commit. */\n stuckUncommittedPaths: z.array(z.string().min(1)),\n /** `parked_awaiting_answer`: the question its run is waiting on. */\n stuckQuestion: z.string().min(1).nullable(),\n /** `no_document_blueprint`: the governed document no blueprint defines. */\n stuckDocumentRef: z.string().min(1).nullable(),\n /** BLOCKED: the prerequisites that have not landed. */\n waitingOnTaskRefs: z.array(z.string().min(1)),\n /** Not landed and attempted: the probes HEAD does not satisfy. */\n unmetProbes: z.array(Workbench_BuildTaskUnmetProbe_Schema),\n /*\n * A GENERATION STEP lands on something other than a file it writes, and when it has not, which of these three it is\n * says whether running it again can help: the step's own state, null when it is current or is not that step.\n */\n /** The migration step: whether the model and the accepted schema plan agree. */\n schemaPlanSyncState: z.enum(SchemaPlanSyncState).systemEnum('SchemaPlanSyncState').nullable(),\n /** The design-tokens step: whether the stylesheet's generated block is what the config would generate. */\n designTokenBlockState: z.enum(DesignTokenBlockState).systemEnum('DesignTokenBlockState').nullable(),\n /** The brand-design step: whether the generated module says what the brand's visual tone renders. */\n brandDesignState: z.enum(BrandDesignState).systemEnum('BrandDesignState').nullable(),\n /**\n * A generation step whose landing cannot be judged, and why, verbatim (#2504): today a labels plan that hides units\n * the application owes. Named before the step's first run too, since it holds the step back from running. Null when\n * nothing holds its landing.\n */\n landingBlockedBy: z.string().min(1).nullable(),\n /*\n * The follow-up tasks (#2496): what the host derived from a gap this task's latest completed run reported still unmet,\n * and on a follow-up, the task whose gap derived it. By build-plan task row id, so each opens the task it names\n * (#2652); `wildo context journey` prints the same two facts.\n */\n /** The follow-up tasks derived from this task's reported gaps; empty when none was derived. */\n followUpTaskIds: z.array(z.string().min(1).isForeignKey()),\n /** On a follow-up task: the task whose reported gap derived it; null on every other task. */\n followUpOfTaskId: z.string().min(1).isForeignKey().nullable(),\n /** LANDED with no product to prove: it ran, and nothing can show what it made. */\n unverifiable: z.boolean(),\n /** LANDED before any run of its own started: something else made its product, or the probe reads the wrong thing. */\n landedBeforeAnyRun: z.boolean(),\n /** Where the probe found that product, so a reader can see what it took for it; empty unless `landedBeforeAnyRun`. */\n landedBeforeAnyRunPaths: z.array(z.string().min(1)),\n});\nexport type Workbench_BuildTaskRecord = z.infer<typeof Workbench_BuildTaskRecord_Schema>;\n\n/**\n * One playbook run SUSPENDED waiting on a person.\n *\n * The run stopped mid-way and asked something. The row carries where it stopped and what it asked,\n * because both are what a creator needs to answer it — a question with no run context is a question\n * nobody can answer.\n */\n/**\n * WHERE a playbook run is in its life — the one field that decides how its row reads.\n *\n * ## Why one vocabulary and not four collections\n *\n * The companion answers `{ running, runningDetached, interrupted, lastCompleted }`, and a board\n * reading that shape has to know which array means what before it can render anything. They are not\n * four kinds of thing: they are one thing — a run of a playbook — in four states, and the fields that\n * differ between them (a finish time, a verdict, a checkpoint) are exactly the fields a state decides\n * the presence of. Naming the state makes that explicit and makes the row renderable by one layout.\n *\n * The distinction that matters most is RUNNING vs RUNNING_DETACHED, and it is not cosmetic: the\n * first is a composite holding its instance's single-flight subject and never an ordinary run, so a board\n * that read it alone reported \"nothing is running\" while a fifteen-minute run was in flight.\n */\nexport enum Workbench_PlaybookRunState {\n /** A composite holding its instance's single-flight subject (#1610): one per running instance, several at once, never an ordinary run. */\n RUNNING = 'running',\n /** An ordinary run this companion process is executing right now. */\n RUNNING_DETACHED = 'running_detached',\n /** A run that stopped without finishing and left a checkpoint that can be re-run. */\n INTERRUPTED = 'interrupted',\n /** The most recent outcome for a playbook ref — settled, with a verdict. */\n COMPLETED = 'completed',\n /**\n * A run that STOPPED TO ASK and is waiting on a person — not running, not finished, no verdict.\n *\n * It borrowed COMPLETED until 2026-09-24, flagged by `awaitingFamily`, so every reader had to remember that one\n * \"completed\" row was not complete. The outcome reader remembered; Home did not, and told the creator a dry run\n * waiting on their answer had \"ran and landed its result\" (#1271). A state that has to be un-said by another field\n * is a missing member of its vocabulary.\n */\n AWAITING_ANSWER = 'awaiting_answer',\n}\n\n/**\n * One child of a composite run's round (#2530): the playbook that ran in it, why it was on the table, what it landed and\n * whether it failed — the record's own summary (`PlaybookRunChoreographyChildSummary`), with its measurement left on the\n * run's record. A child that was itself a LANE is known by the rounds that name it as their lane.\n */\nexport const Workbench_PlaybookRunRoundChild_Schema = z.object({\n playbookRef: z.string().min(1),\n /** Why it was on the table, in the runtime's own sentence (a first run, a refresh and what moved, a re-opening). */\n ranBecause: z.string().min(1).nullable(),\n /** The specification files it landed, in landing order. Empty is a finding, not a gap. */\n landed: z.array(z.string().min(1)),\n /** Why it failed, bounded as the record keeps it; null when it did not. */\n failure: z.string().min(1).nullable(),\n});\nexport type Workbench_PlaybookRunRoundChild = z.infer<typeof Workbench_PlaybookRunRoundChild_Schema>;\n\n/**\n * One round of a composite run (#2530): the root's, or a nested lane's. FLAT rather than nested: a lane's rounds follow\n * the round whose child ran the lane and name it (`parentRoundKey`, `lanePlaybookRef`), so a process map nests them as\n * groups without a recursive contract, and every depth the record keeps reaches the row.\n *\n * The choreography's own stop reason (`PlaybookChoreographyStopReason`) is NOT here: it is a closed vocabulary of the\n * runtime, which this package does not depend on, and a raw code would render as words nobody authored. Each round's\n * `stopRationale` is the selector's own sentence for why that round ended the run; the reason code stays on the record.\n */\nexport const Workbench_PlaybookRunRound_Schema = z.object({\n /** The round's place in the run: `3` for the root's third, `3/<lane playbook>/2` for the second round of that lane. */\n roundKey: z.string().min(1),\n /** The round whose child ran this lane; null for a round of the run itself. */\n parentRoundKey: z.string().min(1).nullable(),\n /** The child playbook whose lane this round belongs to; null for a round of the run itself. */\n lanePlaybookRef: z.string().min(1).nullable(),\n iteration: z.number().int().min(1),\n /** The earlier round of the same lane that began from the very same input state: a lane spending without converging. */\n sameInputStateAsIteration: z.number().int().min(1).nullable(),\n /** Why the selector stopped after this round, in its own sentence; null when it went on. */\n stopRationale: z.string().min(1).nullable(),\n children: z.array(Workbench_PlaybookRunRoundChild_Schema),\n});\nexport type Workbench_PlaybookRunRound = z.infer<typeof Workbench_PlaybookRunRound_Schema>;\n\n/**\n * One playbook run, in whatever state it is in.\n *\n * Kept ONE-PER-REF for the completed state by the companion, so a COMPLETED row is the last run of\n * that playbook and never a history of it.\n */\nexport const Workbench_PlaybookRun_Schema = z.object({\n /** The row's own id, sanitized — run ids carry dots (see the playbook id note). */\n workbenchPlaybookRunId: z.string().min(1).isPrimaryKey().isSummaryField(),\n /**\n * The run id as the companion records it. NULL only for an INTERRUPTED entry, which the companion\n * knows by the checkpoint it left (its playbook and instance), not by a run.\n */\n runId: z.string().min(1).isSummaryField().nullable(),\n /** The playbook this run is of. Every state has one; it is how a run is known. */\n playbookRef: z.string().min(1).isSummaryField(),\n /**\n * The playbook INSTANCE this run is of (#1609), or null for a run of the step itself. Two instances of\n * one playbook run and settle side by side, so a reader telling runs apart by playbook alone would show\n * one instance's outcome as the other's.\n */\n instanceKey: z.string().min(1).isSummaryField().nullable(),\n /**\n * The execution-trace session the run recorded under, as the companion RECORDED it at run time.\n * NULL when the request carried no session, and for the RUNNING and INTERRUPTED states.\n *\n * Recorded rather than derived (#1358): a run id used to be `<sessionId>-<playbookRef>-<ts>` and the\n * board recovered the session by longest-prefix match. The run id is the actor execution's own id\n * now, which says nothing about a session, so the join has to be a field.\n */\n traceSessionId: z.string().min(1).isSummaryField().nullable(),\n /**\n * The creation CONVERSATION the run was started from, when it was — the engine conversational\n * execution's `executionId`, read from the run's correlation envelope (#1454). The conversation\n * page joins a thread to its run cards on this key; `null` for a run started from the board, the\n * CLI, or a choreography.\n */\n conversationId: z.string().min(1).isSummaryField().nullable(),\n state: z.enum(Workbench_PlaybookRunState).systemEnum('Workbench_PlaybookRunState').isSummaryField(),\n /** When it started. NULL for an INTERRUPTED entry, which records only when it checkpointed. */\n startedAt: z.date().isSummaryField().nullable(),\n /** When it settled. Present only for COMPLETED — a run AWAITING_ANSWER has not settled. */\n finishedAt: z.date().isSummaryField().nullable(),\n /**\n * The run's own verdict, for COMPLETED only.\n *\n * TRUE for a run that SUSPENDED to ask, which is why `awaitingCreatorInput` below has to be read\n * beside it: `ok` records whether the run threw, and a suspension does not throw. A board reading\n * `ok` alone rendered a green \"completed\" badge for a run waiting on a person — the worst available\n * lie, because their correct next action is to answer it and \"completed\" reads as no action at all.\n */\n ok: z.boolean().isSummaryField().nullable(),\n /**\n * Why it failed, verbatim.\n *\n * A validation refusal an async submission could not throw — an unanswered elicitation, an\n * ineligible playbook — surfaces HERE rather than as an HTTP error, which is the whole reason the\n * board must render it.\n */\n error: z.string().min(1).isSummaryField().nullable(),\n /** How many iterations a checkpointed run completed. INTERRUPTED only. */\n completedIterations: z.number().int().isSummaryField().nullable(),\n /** When it checkpointed. INTERRUPTED only. */\n checkpointedAt: z.date().isSummaryField().nullable(),\n /** The family a suspended run was producing when it stopped to ask. Present only when it did. */\n awaitingFamily: z.string().min(1).isSummaryField().nullable(),\n /** Which round of asking a suspended run reached. Present only when it stopped to ask. */\n awaitingRound: z.number().int().isSummaryField().nullable(),\n /**\n * The ADVISORY judge's verdict over the run's landed artifacts — the worst criterion, in\n * PASS < CONCERN < INDETERMINATE < GAP order. COMPLETED only, and NULL when the judge did not run\n * (`judgeSkipped` says why) or the playbook declares no evaluation (#1329).\n *\n * Lifted onto the row from the run's own result envelope, where it always was, because the\n * timeline row and the detail's verdict tab both need it and `events.ndjson` — the only other\n * place it lives — is a second call per run.\n */\n judgeOverall: z.enum(MetaWorkflow_EvaluationVerdict).systemEnum('MetaWorkflow_EvaluationVerdict').isSummaryField().nullable(),\n /** The per-criterion verdicts behind `judgeOverall`, with the judge's rationale for each. */\n judgeCriteria: z.array(z.object({\n criterionRef: z.string().min(1),\n verdict: z.enum(MetaWorkflow_EvaluationVerdict).systemEnum('MetaWorkflow_EvaluationVerdict'),\n rationale: z.string(),\n })).nullable(),\n /** Why the judge stayed silent, in its own words — a failed call, or an evaluation that never ran. */\n judgeSkipped: z.string().min(1).nullable(),\n /**\n * A COMPOSITE run's rounds, its own and every nested lane's, in run order (#2530), each with the children that ran in\n * it — what a process map draws as rounds, then child runs. Null for a run of a single playbook, and for a run not\n * settled yet (its rounds are on the record once it ends).\n */\n choreographyRounds: z.array(Workbench_PlaybookRunRound_Schema).nullable(),\n});\nexport type Workbench_PlaybookRun = z.infer<typeof Workbench_PlaybookRun_Schema>;\n\nexport const Workbench_WaitingPlaybookRun_Schema = z.object({\n /** The run's own id, sanitized — run ids carry dots (see the playbook id note). */\n workbenchWaitingPlaybookRunId: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** The run id as the companion records it. */\n runId: z.string().min(1).isSummaryField(),\n /**\n * Whether the checkpoint on disk could be READ.\n *\n * FALSE is a real row, not an omission. A checkpoint file that exists and fails to parse is a\n * suspended run an operator must deal with — the run is stopped, nothing will resume it, and the\n * remedy is to inspect or remove that file. Dropping it would make a stuck lane look like an idle\n * one, and the only thing knowable about such a run is its id, which is why every descriptive\n * field below is nullable.\n *\n * This is what keeps the resource TOTAL over what the companion knows. The bespoke read it\n * replaced carried the same fact in a separate `unreadable: string[]` beside the rows, which no\n * resource lane could express and which therefore had no way to reach a row template.\n */\n readable: z.boolean().isSummaryField(),\n /** The playbook that was running. NULL when the checkpoint could not be read. */\n playbookRef: z.string().min(1).isSummaryField().nullable(),\n /** The family it was producing when it stopped. NULL when the checkpoint could not be read. */\n family: z.string().min(1).isSummaryField().nullable(),\n /** When it suspended. NULL when the checkpoint could not be read. */\n suspendedAt: z.date().isSummaryField().nullable(),\n /** Which round of asking this is — a run may stop more than once. NULL when unreadable. */\n round: z.number().int().isSummaryField().nullable(),\n /** Whether the suspended run was a dry run, which changes what answering it will write. */\n dryRun: z.boolean().isSummaryField().nullable(),\n /** What it is waiting to be told. */\n requests: z.array(z.object({\n ref: z.string().min(1),\n /** The question as a person reads it. */\n question: z.string().min(1),\n /** Why the run needs it — what it cannot decide without an answer. */\n why: z.string().min(1),\n /**\n * The question's shape. A plain string by this tier's contract: the vocabulary is\n * `HumanDecision_FieldKind` in `saas-specifications`, which this package\n * deliberately does not import.\n */\n kind: z.string().min(1),\n /** The closed answer set, when the question has one. */\n options: z.array(z.string().min(1)),\n })).isSummaryField(),\n /**\n * The signed-in person the question is ROUTED to (#1751): whoever started the run from the workbench or\n * the conversation. Only they may answer it; anybody else is refused as if nothing waited. NULL when the\n * question is unrouted (a run started from the console) or the checkpoint could not be read.\n */\n routedToUserId: z.string().min(1).isSummaryField().nullable(),\n});\nexport type Workbench_WaitingPlaybookRun = z.infer<typeof Workbench_WaitingPlaybookRun_Schema>;\n\n/**\n * The coding lane's one row id. Named, because the workbench links to the row from where the lane's trouble shows (an\n * attempt, a dispatch or a dispatch card the host failed, #2530) and the companion stamps it: two copies of the literal would be two ids.\n */\nexport const WORKBENCH_CODING_LANE_STATUS_ROW_ID = 'coding-lane';\n\n/**\n * The coding lane's own posture — ONE row, always present.\n *\n * ## Why a singleton resource rather than the read it replaced\n *\n * It was a companion read answering a status object, and that read ALSO carried the parked\n * questions — a queue keyed by task id — inside it. Two different things in one payload: a queue of\n * work waiting on a person, and a statement about the lane. The queue is\n * `workbenchParkedCodingQuestions`; this is what remains, and it is genuinely one row.\n *\n * ## What each field is careful about\n *\n * `codingAgentRegistered` reports exactly what the dispatch service can ESTABLISH — that every\n * declared agent resolves in the registry — and deliberately does not claim the transport is usable,\n * because that depends on the provider configuration and on a process it has not started. Anything\n * reading this must not upgrade it to \"ready\".\n *\n * `activeRunTaskId` being NULL does not mean idle. A run that parks on a question clears it while\n * staying very much alive, so a badge derived from this field alone read \"idle\" with a question\n * outstanding — which is why the parked queue has to be read beside it.\n */\nexport const Workbench_CodingLaneStatus_Schema = z.object({\n /** One row, one id ({@link WORKBENCH_CODING_LANE_STATUS_ROW_ID}): there is exactly one coding lane. */\n workbenchCodingLaneStatusId: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** Every declared coding agent resolves in the registry. NOT a claim that the transport works. */\n codingAgentRegistered: z.boolean().isSummaryField(),\n /**\n * The coding agent this host dispatches to (a provider ref: `anthropic`, `openai`, `opencode`).\n * NULL when the selection cannot be resolved (#1637).\n */\n codingAgentProviderRef: z.string().min(1).isSummaryField().nullable(),\n /**\n * Whether that agent's operator is signed in on this host, read from the agent's own status command\n * without a model call — what `codingAgentRegistered` cannot say: a registered agent with no login\n * fails every run on its first prompt. `false` means a definite \"not signed in\" — the one state a\n * dispatch refuses on. NULL when the state could not be read, and when the agent's status command is not\n * installed: the Claude and Codex agents run through adapters that do not need it, so its absence says\n * nothing about the login; {@link codingAgentLoginRemedy} then names the install (#1637).\n */\n codingAgentSignedIn: z.boolean().isSummaryField().nullable(),\n /** What the status command reported, in one line. NULL when nothing was read. */\n codingAgentLoginDetail: z.string().nullable(),\n /** What to do when the agent is not signed in — the login or install command. NULL when nothing is owed. */\n codingAgentLoginRemedy: z.string().nullable(),\n /**\n * The durable actor-task row of the run in flight — the edge from this lane into the control\n * plane, which is why it is a foreign key rather than a printed id. NULL when none is running,\n * INCLUDING while a run is parked on a question.\n */\n activeRunTaskId: z.string().min(1).isForeignKey().isSummaryField().nullable(),\n /** When the run in flight started. NULL when none is running. */\n activeRunStartedAt: z.date().isSummaryField().nullable(),\n /** The workspace mutation lock — one coding run at a time, and this is the file that says so. */\n lockFilePath: z.string().min(1).isSummaryField().nullable(),\n /** What a dispatch gets when it asks for no timeout of its own (ms). */\n defaultTimeoutMs: z.number().int(),\n /** The ceiling a dispatch cannot ask past (ms) — the answer to \"why did my long run stop\". */\n hardMaxTimeoutMs: z.number().int(),\n /** How much of an agent's output is captured by default (bytes). */\n defaultMaxCapturedBytes: z.number().int(),\n /** The capture ceiling (bytes). */\n hardMaxCapturedBytes: z.number().int(),\n});\nexport type Workbench_CodingLaneStatus = z.infer<typeof Workbench_CodingLaneStatus_Schema>;\n\n/**\n * The option refs a parked coding run offers. Closed, because the caller BRANCHES on which came back.\n *\n * Both are real decisions here, unlike a playbook interview — which offers only \"run with these\n * answers\", because declining an interview settles nothing that is waiting. A parked run IS waiting:\n * answering resumes the same session, and cancelling ends the run.\n *\n * ## Why it lives HERE rather than in the companion that mints it\n *\n * Both ends need it and neither can import the other: the companion projects a parked run as a\n * decision, and the workbench reconstructs that decision from the ROW to render the answer form. It\n * was declared in the companion alone until 2026-09-19, which meant a browser wanting to branch on\n * an option had to re-spell the two values — a second copy of a closed vocabulary, compiling\n * perfectly and free to drift.\n */\nexport enum Workbench_ParkedCodingQuestionOptionRef {\n ANSWER = 'answer',\n CANCEL = 'cancel',\n}\n\n/** The single field a parked run asks: the agent's own question, verbatim. */\nexport const WORKBENCH_PARKED_CODING_QUESTION_FIELD_REF = 'answer';\n\n/**\n * One coding run PARKED on a question.\n *\n * It arrives inside the coding-agent status payload, which is a singleton and stays a companion\n * read. These do not: a parked question is identified by the task that parked on it, it persists\n * until somebody answers, and a queue of work waiting on a person is the last thing that should be\n * reachable only by reading a status blob.\n */\nexport const Workbench_ParkedCodingQuestion_Schema = z.object({\n /** The parked task's id, sanitized. */\n workbenchParkedCodingQuestionId: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** The durable actor-task row that parked — the edge into the control plane. */\n taskId: z.string().min(1).isForeignKey().isSummaryField(),\n /** The build-plan task it was running. */\n taskRef: z.string().min(1).isSummaryField(),\n /** What the run is asking. */\n question: z.string().min(1).isSummaryField(),\n /** When it parked. */\n parkedAt: z.date().isSummaryField(),\n /**\n * Whether the SAME session can be re-entered.\n *\n * False is not a refusal: answering still works, but it starts a new session that must restate the\n * task context. Carried because it changes what answering COSTS, which is a thing a creator weighs\n * before answering rather than after.\n */\n resumable: z.boolean().isSummaryField(),\n /**\n * WHICH of the run's questions this row shows — opaque, echoed back by an answer (#1581, eighth review).\n * A run may ask again after an answer, under the same task id, so the task id alone cannot say which\n * question a person was looking at when they typed; an answer carrying this continues only that one.\n */\n suspensionRef: z.string().min(1),\n});\nexport type Workbench_ParkedCodingQuestion = z.infer<typeof Workbench_ParkedCodingQuestion_Schema>;\n\n/**\n * One dossier entry: a question a playbook declares, and what the creator said to it, if anything.\n *\n * The identity is the pair (`playbookRef`, `questionRef`), sanitized — the key the `creator-inputs`\n * family stores answers under, so the page addresses an answer the way the file does. The\n * question's own text, kind and options are carried on the row (from the compiled catalog) so a\n * surface can ASK it without a second read.\n */\nexport const Workbench_DossierEntry_Schema = z.object({\n /** EMITTED BY THE BEHAVIOR through `workbenchDossierEntryIdentity`. */\n workbenchDossierEntryId: z.string().min(1).isPrimaryKey().isSummaryField(),\n playbookRef: z.string().min(1).isSummaryField(),\n questionRef: z.string().min(1).isSummaryField(),\n /**\n * The INSTANCE of the step this question is asked for (#1609), or null for the step itself. An opened\n * instance asks its own questions, so the same question appears once per instance; an instance that\n * has not answered one falls back to the step's own answer when it runs.\n */\n instanceKey: z.string().nullable().isSummaryField(),\n /** What the instance was opened FOR, in the creator's words; null for the step itself. */\n instancePurpose: z.string().nullable().isSummaryField(),\n /** The authored question, verbatim from the playbook. */\n question: z.string().min(1).isSummaryField(),\n /**\n * `free_text` | `choice` | `confirm` — `HumanDecision_FieldKind`, carried as a STRING for the same\n * reason `phase` is above: the vocabulary is the engine's, this package restates none of it.\n */\n kind: z.string().min(1).isSummaryField(),\n /** The closed set for a `choice` question; empty otherwise. */\n options: z.array(z.string()).isSummaryField(),\n /**\n * What each COMPUTED option stands for (#2337), index-aligned with `options`: the line shown beside it — the\n * product already trading under a brand name, the registers nobody could read. An empty string for a computed\n * option with no detail; an EMPTY ARRAY when the options are authored, since no detail exists for them.\n */\n optionDetails: z.array(z.string()).isSummaryField(),\n /** Where the question sits in its playbook's interview, 0-based — the order a scripted interview asks in. */\n position: z.number().int().min(0).isSummaryField(),\n standing: z.enum(WorkbenchDossierEntryStanding).systemEnum('WorkbenchDossierEntryStanding').isSummaryField(),\n /** Whether the options can be offered now — see {@link WorkbenchDossierEntryOptionsState}. */\n optionsState: z.enum(WorkbenchDossierEntryOptionsState).systemEnum('WorkbenchDossierEntryOptionsState').isSummaryField(),\n /** The answer as stored, when there is one. */\n value: z.string().nullable().isSummaryField(),\n answeredAt: z.date().nullable().isSummaryField(),\n answeredByRef: z.string().nullable().isSummaryField(),\n /** What the person was shown beside the option they chose (#2337), recorded with the answer; null when nothing was. */\n shownOptionDetail: z.string().nullable().isSummaryField(),\n /** Whether the asking playbook can run right now — a needed answer for an eligible playbook is what blocks something. */\n playbookEligible: z.boolean().isSummaryField(),\n /**\n * ASKED OF YOU NOW: still needed AND the asking playbook can run — the one state that blocks\n * something. Derived by the projection from the two facts above, and a declared LIST filter, so\n * \"what waits on me\" is one server-side question rather than a page's own arithmetic.\n */\n askedNow: z.boolean().isSummaryField(),\n /**\n * CHANGING THIS AFFECTS: every family the answer feeds — what the asking playbook produces and\n * everything downstream of it (#1454, Step 8). Derived by the companion from the catalog's declared\n * inputs and outputs, so a person sees the reach of an answer before saving it, and a family\n * derived before the answer changed reads as stale on its playbook.\n */\n affectsFamilies: z.array(z.string()).isSummaryField(),\n /**\n * WHAT THE QUESTION IS ABOUT, on the axis the artifact list groups families by (#1454, gap 4): the\n * concern of the family the asking step produces — or, for a step that produces none, of the first\n * family its answer reaches. The dossier groups by it, so a creator reads \"why it exists\", \"how it\n * gets built\" and \"what it must promise\" rather than three lists organised by machinery.\n */\n subject: z.enum(WorkbenchSpecificationArtifactConcern).systemEnum('WorkbenchSpecificationArtifactConcern').isSummaryField(),\n /**\n * OUT OF DATE: answered, and a step READING this answer made its result before one of the answers it\n * reads changed (its stale outputs list `creator-inputs`; #1454, gap 4 and its review). Derived from `outOfDateStepRefs` (non-empty), and\n * kept as its own boolean because it is what the row's badge and a list filter ask.\n */\n outOfDate: z.boolean().isSummaryField(),\n /**\n * WHICH steps are out of date for this answer: the asking step and every step sharing the decision\n * (`sharedWithPlaybookRefs`) with a stale output whose changed inputs include `creator-inputs`. A shared decision is ONE row,\n * so \"Regenerate\" has to name the step it reruns; before this carried the refs, a change to a shared\n * answer marked and reran only the owner (#1454 review, LOW).\n */\n outOfDateStepRefs: z.array(z.string()).isSummaryField(),\n /**\n * The other steps that READ this decision (a `sameDecisionAs` fallback with no answer of its own,\n * #1454 review). One decision is one row, at its owner; those steps' interviews show and answer it,\n * so it is asked once.\n */\n sharedWithPlaybookRefs: z.array(z.string()).isSummaryField(),\n /**\n * Whether a SIMPLE interview asks this question of the person (#2129) — the shared\n * `isElicitationQuestionAskedInSimpleInterview`, so the workbench and the console select the same questions.\n * FALSE: a simple interview proposes it instead — for review on an open surface, or as an assumption an\n * unattended round records and the creator revisits.\n */\n askedInSimpleInterview: z.boolean().isSummaryField(),\n /** Whether an answer may be PROPOSED when the person does not know (#2129); FALSE for a question only they may answer. */\n proposable: z.boolean().isSummaryField(),\n /** The question concerns a regulated domain (#2129): a proposed answer is named to the person before it is kept. */\n regulatedDomain: z.boolean().isSummaryField(),\n /** Why an ASSUMED answer was assumed, as the proposer said it; null for any other standing. */\n assumptionRationale: z.string().nullable().isSummaryField(),\n /**\n * How deep THIS APPLICATION's interviews go (#2129) — one value for the whole application, repeated on each\n * row so an interview reads it with the questions it asks. Null until the person chooses.\n */\n interviewDepth: z.enum(ApplicationInterviewDepth).systemEnum('ApplicationInterviewDepth').nullable().isSummaryField(),\n});\nexport type Workbench_DossierEntry = z.infer<typeof Workbench_DossierEntry_Schema>;\n\n/** The dossier resource's one write verb. */\nexport enum WorkbenchDossierEntries_Operations {\n /** Record (or change) the creator's answer to this question. Lands `creator-inputs`; a commit accepts it. */\n ANSWER = 'answer',\n /**\n * Propose answers for this question's step, when the person does not know (#2129). WRITES NOTHING: the\n * proposals come back to be reviewed, and what the person keeps is answered with `assumed`. Anchored on a\n * row because a proposal is always for a step's interview — the row names the step and its instance.\n */\n PROPOSE_ANSWERS = 'propose_answers',\n /**\n * Choose how deep this APPLICATION's interviews go (#2129). Recorded once in the dossier for every\n * interview; anchored on the row of the interview where the person chose it.\n */\n SET_INTERVIEW_DEPTH = 'set_interview_depth',\n}\n\n/** Which questions a `propose_answers` call proposes for (#2129). */\nexport enum WorkbenchDossierProposalScope {\n /** This row's question only — the person said they do not know it. */\n THIS_QUESTION = 'this_question',\n /** Every unanswered question of this row's step that the application's interview depth does not ask — the review step of a simple interview. */\n WHAT_THE_DEPTH_SKIPS = 'what_the_depth_skips',\n}\n\nexport const Workbench_DossierProposeRequest_Schema = z.object({\n scope: z.enum(WorkbenchDossierProposalScope),\n});\nexport type Workbench_DossierProposeRequest = z.infer<typeof Workbench_DossierProposeRequest_Schema>;\n\nexport const Workbench_DossierProposal_Schema = z.object({\n /** The dossier row the proposal answers — the row to send `answer` with `assumed` to if it is kept. */\n workbenchDossierEntryId: z.string().min(1),\n questionRef: z.string().min(1),\n question: z.string().min(1),\n /** Only an interview question is proposed, so this is always the engine's field kind. */\n kind: z.enum(HumanDecision_FieldKind),\n value: z.string().min(1),\n rationale: z.string().min(1),\n regulatedDomain: z.boolean(),\n});\nexport type Workbench_DossierProposal = z.infer<typeof Workbench_DossierProposal_Schema>;\n\nexport const Workbench_DossierProposeOutcome_Schema = z.looseObject({\n proposals: z.array(Workbench_DossierProposal_Schema),\n /** Asked for, and nothing admissible came back — each with the last refusal. Ask these of the person. */\n unproposed: z.array(z.object({ questionRef: z.string().min(1), reason: z.string().min(1) })),\n});\nexport type Workbench_DossierProposeOutcome = z.infer<typeof Workbench_DossierProposeOutcome_Schema>;\n\nexport const Workbench_DossierInterviewDepthRequest_Schema = z.object({\n interviewDepth: z.enum(ApplicationInterviewDepth),\n});\nexport type Workbench_DossierInterviewDepthRequest = z.infer<typeof Workbench_DossierInterviewDepthRequest_Schema>;\n\nexport const Workbench_DossierInterviewDepthOutcome_Schema = z.looseObject({\n interviewDepth: z.enum(ApplicationInterviewDepth),\n packageRelativePath: z.string(),\n});\nexport type Workbench_DossierInterviewDepthOutcome = z.infer<typeof Workbench_DossierInterviewDepthOutcome_Schema>;\n\nexport const Workbench_DossierAnswerRequest_Schema = z.object({\n /** The answer, in the creator's words — validated against the question's kind before it is stored. */\n value: z.string().min(1),\n /**\n * TRUE when the value is a PROPOSAL the creator let stand because they did not know (#2129): it is\n * recorded as an assumption, authored by the companion's proposer, and the dossier lists it to revisit.\n * Refused for a question only the creator may answer.\n */\n assumed: z.boolean().optional(),\n /** With `assumed`: what the proposal rests on, as the proposer said it. */\n assumptionRationale: z.string().min(1).optional(),\n});\nexport type Workbench_DossierAnswerRequest = z.infer<typeof Workbench_DossierAnswerRequest_Schema>;\n\nexport const Workbench_DossierAnswerOutcome_Schema = z.looseObject({\n /** The answer as STORED (canonical for a `confirm`). */\n value: z.string(),\n answeredAt: z.string(),\n /** The dossier file this landed in, package-relative. */\n packageRelativePath: z.string(),\n /** The asking playbook's questions still unanswered after this one — empty means it can run. */\n unansweredQuestionRefs: z.array(z.string()),\n});\nexport type Workbench_DossierAnswerOutcome = z.infer<typeof Workbench_DossierAnswerOutcome_Schema>;\n\n/**\n * The SECTIONS of Home, the conversation page's opening surface (#1454, Step 3) — and the LIST filter\n * a reader of `workbenchCreationHomeLines` narrows by.\n *\n * Three questions, three sections: what happened since I was here, what is asked of me now, what\n * could I do next. Where the application stands is a resource of its own\n * (`workbenchCreationOutcomes`), because an outcome is a measured STATE, not a line that opens\n * something.\n */\nexport enum WorkbenchCreationHomeSection {\n /** A run completed or cut short, a build dispatch settled — newest first. */\n SINCE = 'since',\n /** 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. */\n ASKED = 'asked',\n /** 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. */\n SUGGESTION = 'suggestion',\n}\n\n/**\n * The KIND of a Home line — one closed vocabulary across the three sections, because a line's words\n * and its tone are decided by its kind wherever it is rendered, and a section is only where it sits.\n *\n * ## Why the companion decides these and the page does not\n *\n * Until 2026-09-22 the page read SEVEN resources on their own cadences and derived every line itself\n * — 900 lines of client arithmetic over rows a projection had already computed, re-run on every\n * poll, invisible to the assistant's tools and to every other reader. A line is a FACT about the\n * application (\"this run was refused\", \"this task's writes wait to be committed\"); facts are\n * derived where the rows are, once, and served as rows themselves (`derive-before-you-ask.md`).\n */\nexport enum WorkbenchCreationHomeLineKind {\n /** A playbook run completed — landed or refused; `failed` says which. */\n RUN_COMPLETED = 'run-completed',\n /** A playbook run the companion's restart cut short; re-running resumes it. Shown whatever its date. */\n RUN_INTERRUPTED = 'run-interrupted',\n /** A build dispatch finished or failed; `acceptable` says whether its writes wait to be committed. */\n DISPATCH_SETTLED = 'dispatch-settled',\n /**\n * The coding agent's account hit its usage limit, and the build dispatches nothing until it resets\n * (#2388). `subject` is when the build resumes (`08:11 Europe/Paris`); the target is the dispatch that met\n * the limit. Shown only while the limit holds, so it disappears once the build has resumed.\n */\n CODING_AGENT_USAGE_LIMITED = 'coding-agent-usage-limited',\n /** A playbook run suspended on questions only the creator can answer. */\n CLARIFICATION = 'clarification',\n /** A coding run parked on a question the agent could not answer alone. */\n PARKED_QUESTION = 'parked-question',\n /** A governed document the creator asked for (a draft exists) still needing a fact only they can give. */\n GOVERNANCE_DOCUMENT = 'governance-document',\n /** The next READY build task of the dispatch plan. */\n CONTINUE_THE_PLAN = 'continue-the-plan',\n /**\n * The plan can run NOTHING: every ready task is stuck, and `stuckReason` says what unblocks it.\n *\n * ASKED rather than SUGGESTION, because every reason is the creator's move — committing what a\n * finished run wrote under GUIDED, or, under the autonomy posture where the loop commits (#1534),\n * resolving the path its accept refused or correcting a declaration no run can satisfy.\n * Without it the plan simply falls silent: `CONTINUE_THE_PLAN` is derived from the next ready task,\n * and a stuck queue has none (#1451, #1463).\n */\n UNBLOCK_THE_PLAN = 'unblock-the-plan',\n /** An eligible playbook whose output family is missing. */\n PRODUCE_MISSING = 'produce-missing',\n /** An eligible playbook whose output is stale — derived before one of its inputs last changed. */\n REFRESH_STALE = 'refresh-stale',\n}\n\n/**\n * One line of Home. Every line OPENS an element beside the page — `targetResourceType` +\n * `targetResourceId` are the address the engine's hosted pane resolves — and carries the one or two\n * facts the words need: the subject, in the creator's terms, and the flags that change the sentence.\n *\n * `targetResourceType` is a STRING, not `z.enum(WorkbenchShared_ResourceType)`: it is an address, not\n * a vocabulary anyone words, and binding it here would make a line pointing at a resource a newer\n * companion serves unparseable by an older workbench.\n */\nexport const Workbench_CreationHomeLine_Schema = z.object({\n /** EMITTED BY THE BEHAVIOR: `<section>--<kind>--<sanitized target id>`. */\n workbenchCreationHomeLineId: z.string().min(1).isPrimaryKey().isSummaryField(),\n section: z.enum(WorkbenchCreationHomeSection).systemEnum('WorkbenchCreationHomeSection').isSummaryField(),\n kind: z.enum(WorkbenchCreationHomeLineKind).systemEnum('WorkbenchCreationHomeLineKind').isSummaryField(),\n /** The instant the line is ordered on, newest first; null when the row records none (a suggestion, a document). */\n at: z.date().nullable().isSummaryField(),\n /** The playbook the line is about, when it is about one — its words come from the label tree. */\n playbookRef: z.string().nullable().isSummaryField(),\n /** The build task the line is about, when it is about one. */\n taskRef: z.string().nullable().isSummaryField(),\n /** The next task's objective, for CONTINUE_THE_PLAN; the document's definition ref, for GOVERNANCE_DOCUMENT. */\n subject: z.string().nullable().isSummaryField(),\n /** A refused run, a failed dispatch. */\n failed: z.boolean().isSummaryField(),\n /** A finished coding run whose writes are recorded and not yet committed — the one line Home offers ACCEPT on (#1454, Step 7). */\n acceptable: z.boolean().isSummaryField(),\n /** The suggested playbook still has questions the dossier does not answer, so the way in is its interview (#1454, Step 5). */\n needsAnswers: z.boolean().isSummaryField(),\n /**\n * Why the plan is stuck, for `UNBLOCK_THE_PLAN` — the remedy is what the line is FOR, and each\n * reason's is different. Its words are authored once for the vocabulary\n * (`system_enums.Workbench_BuildTaskStuckReason`), so this line states no remedy of its own.\n */\n stuckReason: z.enum(Workbench_BuildTaskStuckReason).systemEnum('Workbench_BuildTaskStuckReason').nullable().isSummaryField(),\n /** The element the line opens: a `WorkbenchShared_ResourceType` value and that row's addressable id. */\n targetResourceType: z.string().min(1).isSummaryField(),\n targetResourceId: z.string().min(1).isSummaryField(),\n});\nexport type Workbench_CreationHomeLine = z.infer<typeof Workbench_CreationHomeLine_Schema>;\n\n/**\n * The four OUTCOMES an application's creation is measured by — the journey in the creator's words\n * (Paul, 2026-09-21: \"we do not have a real journey; top-down and bottom-up are internal\n * considerations\"). The playbook phases stay machinery underneath; this is what a person sees.\n *\n * Which specification family counts toward which outcome is the companion projection's business\n * (`creation-home-projection.companion.ts`, total over `ApplicationSpecificationFamily`); this\n * package deliberately does not import that vocabulary.\n */\nexport enum WorkbenchCreationOutcome {\n /** Vision, market, requirements, features, business model, roadmap, brand. */\n KNOW_WHAT_WE_BUILD = 'know-what-we-build',\n /** The compliance programme, the processor register, the facts and policies behind every governed document, the risks. */\n KNOW_THE_RULES = 'know-the-rules',\n /** The domain plan, the placement plan, the build plan — and the build tasks landed. */\n APPLICATION_WORKS = 'application-works',\n /** Governed documents released and published — and every other outcome done. */\n READY_FOR_A_REAL_USER = 'ready-for-a-real-user',\n}\n\n/** The order a person reads the outcomes in: what, rules, works, ready. Also the rows' `position`. */\nexport const WORKBENCH_CREATION_OUTCOMES_IN_ORDER: readonly WorkbenchCreationOutcome[] = [\n WorkbenchCreationOutcome.KNOW_WHAT_WE_BUILD,\n WorkbenchCreationOutcome.KNOW_THE_RULES,\n WorkbenchCreationOutcome.APPLICATION_WORKS,\n WorkbenchCreationOutcome.READY_FOR_A_REAL_USER,\n];\n\nexport enum WorkbenchCreationOutcomeStatus {\n NOT_STARTED = 'not-started',\n IN_PROGRESS = 'in-progress',\n DONE = 'done',\n}\n\n/**\n * Where the application stands on one outcome — ALWAYS four rows, one per outcome, in reading\n * order. \"Done\" is strict: every family of the outcome landed, valid and not stale; for the\n * application working, every build task landed too; for readiness, every other outcome done as\n * well.\n */\nexport const Workbench_CreationOutcome_Schema = z.object({\n /** EMITTED BY THE BEHAVIOR: the outcome value. */\n workbenchCreationOutcomeId: z.string().min(1).isPrimaryKey().isSummaryField(),\n outcome: z.enum(WorkbenchCreationOutcome).systemEnum('WorkbenchCreationOutcome').isSummaryField(),\n status: z.enum(WorkbenchCreationOutcomeStatus).systemEnum('WorkbenchCreationOutcomeStatus').isSummaryField(),\n /** 0-based reading order. */\n position: z.number().int().min(0).isSummaryField(),\n /** Families this outcome is measured by — those the projection reports, placed under this outcome. */\n familiesTotal: z.number().int().min(0).isSummaryField(),\n /** Landed, valid, and not stale. */\n familiesLanded: z.number().int().min(0).isSummaryField(),\n /** Landed but refused by the family's own validator. */\n familiesInvalid: z.number().int().min(0).isSummaryField(),\n /** Not landed at all. */\n familiesMissing: z.number().int().min(0).isSummaryField(),\n /** Landed, but derived before one of its inputs last changed. */\n familiesStale: z.number().int().min(0).isSummaryField(),\n /** Build tasks, for APPLICATION_WORKS only; null on the other three. */\n tasksTotal: z.number().int().min(0).nullable().isSummaryField(),\n tasksLanded: z.number().int().min(0).nullable().isSummaryField(),\n /**\n * APPLICATION_WORKS only: the application's runtimes whose dev-loop supervisor has PAUSED them — it\n * will not start them until something changes (#1537). While any is listed the outcome is not DONE,\n * whatever has landed: an application that cannot start does not work. Null on the other three,\n * and null when no supervisor could answer, which is \"cannot tell\" rather than \"all up\".\n */\n unavailableRuntimes: z.array(z.string().min(1)).nullable().isSummaryField(),\n});\nexport type Workbench_CreationOutcome = z.infer<typeof Workbench_CreationOutcome_Schema>;\n\n/*\n * ────────────────────────────────────────────────────────────────────────────────────────────────\n * The verbs that were the workbench's BESPOKE companion client until 2026-09-22 (#1454), now\n * declared operations on the resources they always addressed. Same door for every act: the engine's\n * auth chain and role gate, request-DTO validation, the registered path, the operation identity the\n * invalidation chain keys on — and the companion's local token floor no longer needs a browser\n * exemption for any of them.\n * ────────────────────────────────────────────────────────────────────────────────────────────────\n */\n\n/** An operation that takes nothing. */\nexport const Workbench_EmptyRequest_Schema = z.object({});\n\n/** `read_interview` on a playbook: the `HumanDecision_Request` it declares, or null. Carried opaquely — the engine owns that vocabulary. */\nexport const Workbench_PlaybookInterview_Schema = z.object({\n decision: z.unknown().nullable(),\n});\nexport type Workbench_PlaybookInterview = z.infer<typeof Workbench_PlaybookInterview_Schema>;\n\n/** One file's change within a run — see `read_diff`. */\nexport const Workbench_RunWriteFileDiff_Schema = z.object({\n path: z.string().min(1),\n existedBefore: z.boolean(),\n /** The file on disk no longer holds what the run wrote; the diff still describes what the RUN did. */\n diverged: z.boolean(),\n /** Unified diff. Empty when the run rewrote a file with identical bytes. */\n diff: z.string(),\n});\nexport type Workbench_RunWriteFileDiff = z.infer<typeof Workbench_RunWriteFileDiff_Schema>;\n\nexport const Workbench_RunWriteDiff_Schema = z.object({\n runId: z.string().min(1),\n playbookRef: z.string().min(1),\n at: z.string().min(1),\n files: z.array(Workbench_RunWriteFileDiff_Schema),\n});\nexport type Workbench_RunWriteDiff = z.infer<typeof Workbench_RunWriteDiff_Schema>;\n\n/** The trace-session resource's READ-shaped verbs — what a session RECORDED, beyond the summary its row carries. */\nexport enum WorkbenchTraceSessions_Operations {\n /** ONE session: every event in order, and its step artifacts by name (#1328) — what the Conversation tab reads. */\n READ_RECORD = 'read_record',\n /** What one session SPENT, in tokens — summed from the agent-call usage already in its events (#1274). Never a currency. */\n READ_USAGE = 'read_usage',\n /** One step ARTIFACT, as text — the brief the model saw, the answer it gave, a coding task's input (#1329). */\n READ_ARTIFACT = 'read_artifact',\n /**\n * The trace sessions one ACTOR TASK ran in, latest first — the alias the coding lane writes for\n * every run (#1328). Collection-level: the task is the input, not a session. Empty for a task the\n * lane never ran, which is the ordinary case and not an error.\n */\n LIST_FOR_TASK = 'list_for_task',\n}\n\n/** One traced event, as the companion records it — the conversation's unit (#1328). */\nexport const Workbench_TraceSessionEvent_Schema = z.object({\n timestamp: z.string().min(1),\n /** A `PlaybookExecutionTraceEvent` value, or a coding-lane event type; a closed vocabulary the companion owns. */\n type: z.string().min(1),\n summary: z.string(),\n stepId: z.string().optional(),\n payload: z.unknown().optional(),\n});\nexport type Workbench_TraceSessionEvent = z.infer<typeof Workbench_TraceSessionEvent_Schema>;\n\n/** One step directory of a session: the artifacts it holds, by file name. Bodies are read one at a time. */\nexport const Workbench_TraceSessionStep_Schema = z.object({\n stepDirName: z.string().min(1),\n artifacts: z.array(z.string()),\n});\nexport type Workbench_TraceSessionStep = z.infer<typeof Workbench_TraceSessionStep_Schema>;\n\nexport const Workbench_TraceSessionRecord_Schema = z.object({\n sessionId: z.string().min(1),\n startedAt: z.string().min(1),\n label: z.string().nullable(),\n eventCount: z.number().int(),\n stepCount: z.number().int(),\n events: z.array(Workbench_TraceSessionEvent_Schema),\n steps: z.array(Workbench_TraceSessionStep_Schema),\n});\nexport type Workbench_TraceSessionRecord = z.infer<typeof Workbench_TraceSessionRecord_Schema>;\n\n/** What one trace session spent, in TOKENS. `callsWithoutUsage` non-zero means the totals are a FLOOR, not the figure. */\nexport const Workbench_TraceSessionUsage_Schema = z.object({\n sessionId: z.string().min(1),\n agentCalls: z.number().int(),\n callsWithoutUsage: z.number().int(),\n promptTokens: z.number().int(),\n completionTokens: z.number().int(),\n totalTokens: z.number().int(),\n});\nexport type Workbench_TraceSessionUsage = z.infer<typeof Workbench_TraceSessionUsage_Schema>;\n\nexport const Workbench_TraceArtifactRequest_Schema = z.object({\n stepDirName: z.string().min(1),\n fileName: z.string().min(1),\n});\nexport type Workbench_TraceArtifactRequest = z.infer<typeof Workbench_TraceArtifactRequest_Schema>;\n\n/** The artifact body, verbatim. A big brief renders by its OUTLINE, computed by the reader — the text is what it is owed. */\nexport const Workbench_TraceArtifact_Schema = z.object({\n body: z.string(),\n});\nexport type Workbench_TraceArtifact = z.infer<typeof Workbench_TraceArtifact_Schema>;\n\nexport const Workbench_TraceSessionsForTaskRequest_Schema = z.object({\n /** The durable actor-task row a coding run was dispatched as. */\n taskId: z.string().min(1),\n});\nexport const Workbench_TraceSessionsForTask_Schema = z.object({\n sessionIds: z.array(z.string()),\n});\nexport type Workbench_TraceSessionsForTask = z.infer<typeof Workbench_TraceSessionsForTask_Schema>;\n\n/**\n * The parked coding question's two verbs — the decision the row IS (see\n * {@link Workbench_ParkedCodingQuestionOptionRef}): answer it and resume the same session, or end\n * the run. Both were bespoke companion routes with a browser exemption on the token floor until\n * 2026-09-22; the row's own operations are where a reader meets them.\n */\nexport enum WorkbenchParkedCodingQuestions_Operations {\n /** Answer THIS parked run and resume the same agent session. A WRITE: it re-enters a workspace-mutating run behind the worktree lock. */\n ANSWER = 'answer',\n /**\n * End THIS parked run. Per row since #1581 (seventh review): with waves (#1528) several runs may be\n * live, and a collection-level cancel ended whatever this process drove — doing nothing for a park\n * no chain held, and stopping other runs while this one stayed parked.\n */\n CANCEL = 'cancel',\n}\n\nexport const Workbench_ParkedQuestionAnswerRequest_Schema = z.object({\n /** The answer, in the operator's words. Empty is refused by the lane with its own sentence. */\n answer: z.string(),\n /** The row's `suspensionRef`: the question this answers. Refused (409) once the run has asked another. */\n suspensionRef: z.string().min(1),\n});\nexport type Workbench_ParkedQuestionAnswerRequest = z.infer<typeof Workbench_ParkedQuestionAnswerRequest_Schema>;\n\n/** The lane's admission of the resumed run — its own shape, carried loosely. */\nexport const Workbench_ParkedQuestionAnswerOutcome_Schema = z.looseObject({});\nexport type Workbench_ParkedQuestionAnswerOutcome = z.infer<typeof Workbench_ParkedQuestionAnswerOutcome_Schema>;\n\n/**\n * The row's `cancel` answers ONLY a run it ended or signalled: a run that moved on meanwhile is a 409 the\n * gate shows, never a `cancelled: false` read as success (#1581, eleventh and twelfth reviews).\n */\nexport const Workbench_CodingRunCancelOutcome_Schema = z.looseObject({\n cancelled: z.literal(true),\n});\nexport type Workbench_CodingRunCancelOutcome = z.infer<typeof Workbench_CodingRunCancelOutcome_Schema>;\n\n/**\n * The governed document's one verb: LAND the facts a person established for it as the\n * `document-facts-authored` family. The row is the document; the body carries the governance scope,\n * the answers and, for a reviewed fact, the review — a per-question verb with a bare value could\n * carry none of that, which is why the question resource has no write verb of its own.\n */\nexport enum WorkbenchGovernanceDocuments_Operations {\n LAND_FACTS = 'land_facts',\n}\n\n/**\n * The landing request's ENVELOPE. The answer SEMANTICS stay with the companion service that owns the\n * question catalog (it refuses an unknown question, a review with no reviewer, \"does not apply\" on a\n * question that does not offer it — each with its own sentence); this refuses a body that is not a\n * landing request at all.\n */\nexport const Workbench_GovernanceFactsLandingRequest_Schema = z.object({\n definitionRef: z.string().min(1),\n decidedByRef: z.string().min(1),\n decidedAt: z.string().min(1),\n governanceScope: z.object({\n subjectKind: z.string().min(1),\n subjectRef: z.string().min(1),\n scopeRef: z.string().min(1),\n scopeVersion: z.number().int().positive(),\n participantRefs: z.array(z.string()),\n precedenceRuleRefs: z.array(z.string()),\n }),\n answers: z.array(z.unknown()),\n /** Run the whole pipe and write nothing — what lets a person see the exact file their answers produce BEFORE anything touches the tree. */\n dryRun: z.boolean().optional(),\n});\nexport type Workbench_GovernanceFactsLandingRequest = z.infer<typeof Workbench_GovernanceFactsLandingRequest_Schema>;\n\nexport const Workbench_GovernanceFactsLandingOutcome_Schema = z.object({\n family: z.string().min(1),\n packageRelativePath: z.string().min(1),\n exportedConstantName: z.string().min(1),\n renderedSource: z.string(),\n existedBefore: z.boolean(),\n wiringAlreadyInPlace: z.array(z.string()),\n});\nexport type Workbench_GovernanceFactsLandingOutcome = z.infer<typeof Workbench_GovernanceFactsLandingOutcome_Schema>;\n\n/**\n * Where one secret stands for an application in one environment (#1637).\n *\n * The ONE vocabulary for `wildo secrets list`, the creation essentials of `wildo init`/`setup` and\n * the workbench's secrets section, so the three cannot disagree about what \"needed\" means. Derived\n * from what the application declares (the providers it scopes, the capabilities it enables, its systems\n * of record and inbound endpoints), never from the provider catalogue.\n */\nexport enum ApplicationSecretStanding {\n /**\n * Required by something the application uses, unset, and nothing else covers what it is for: a\n * capability, a provider the application scoped on purpose, a system of record or an inbound endpoint\n * cannot work until it is provided.\n */\n NEEDED = 'needed',\n /** It has a value in this environment, and something reads it. */\n SET = 'set',\n /**\n * Unset, and nothing waits for it: an optional key, or a capability another provider already serves, ready, in every\n * runtime that would use this key for it (a provider ready in the backend serves nothing to the companion, #2985).\n */\n AVAILABLE = 'available',\n /**\n * It has a value, and nothing CONSUMES it: a provider key no provider declares, a system-of-record key\n * naming no declared instance or no slot its credential has, an inbound key naming no endpoint. It is\n * listed to be REMOVED — the one verb it offers. Usually the remains of something renamed or retired\n * (Odoo was a provider before it was a system of record).\n *\n * Unconsumed is not undelivered: the dev companion's `.env` carries EVERY provider key, and the backend\n * receives a well-formed inbound name or a slot of a declared instance. So a row says which runtimes still\n * receive it, and removing it regenerates their `.env` files like any other change — otherwise the value\n * would stay on disk and in the running process after the person was told it was gone.\n */\n UNUSED = 'unused',\n}\n\n/**\n * What a secret belongs to, and so which section of `secrets.json` holds it and how its name is formed.\n * Three kinds because they are three different things, not three spellings of a provider key: a system of\n * record is deliberately NOT a provider (#1049 D10) and an inbound endpoint secret proves a delivery rather\n * than authenticating a call.\n */\nexport enum ApplicationSecretKind {\n /** A provider's secret, declared by its secrets contract; `secrets.json` → `providerEnv`. */\n PROVIDER = 'provider',\n /**\n * A credential slot of a declared system of record (#1055), named `WILDO_SOR_<NAME>__<SLOT>`;\n * `secrets.json` → `systemsOfRecordEnv`. Read by the application backend only.\n */\n SYSTEM_OF_RECORD = 'system_of_record',\n /**\n * The verification secret of an application inbound endpoint (#1596), named\n * `WILDO_INBOUND_<ENDPOINT_KEY>__SECRET`; `secrets.json` → `inboundEndpointEnv`. Read by the backend only.\n */\n INBOUND_ENDPOINT = 'inbound_endpoint',\n}\n\n/**\n * Which GitHub level holds a REMOTE environment's provider secret. Remote secrets are GitHub Actions\n * secrets; the generated deploy job declares `environment: <env>`, so an environment secret applies to\n * that environment alone and overrides a repository secret of the same name, which is the fallback.\n * 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.\"\n */\nexport enum ApplicationSecretRemoteLevel {\n ENVIRONMENT = 'environment',\n REPOSITORY = 'repository',\n}\n\n/**\n * Joins the parts of a secret row's id. The separator must be something an environment id and a kind cannot\n * contain, so the id splits back on its first two occurrences. Environment ids are `^[a-z0-9]+(?:-[a-z0-9]+)*$`\n * (`WildoEnvironmentIdSchema`), and no {@link ApplicationSecretKind} value contains `--`.\n */\nconst APPLICATION_SECRET_ROW_ID_SEPARATOR = '--';\n\nconst APPLICATION_SECRET_KIND_VALUES: ReadonlySet<string> = new Set(Object.values(ApplicationSecretKind));\n\n/**\n * The `id` of one secret row: environment, kind and name (`local--provider--OPENAI_API_KEY`). The same name is\n * a different secret per environment, and per KIND too — each kind is its own `secrets.json` section, so a\n * key left in the wrong section during a migration (an Odoo credential still in `providerEnv`) is a second\n * secret beside the one that belongs, and must be addressable on its own rather than colliding with it.\n *\n * The id travels in the URL of the row's page and of its `set` / `unset` operations, and the engine checks\n * it before any handler runs (`ExecutionContextCreator.validateParameterFormat`). It was\n * `<environment>::<NAME>` until 2026-09-26: the list rendered, but the row's page and both operations\n * answered `400 api_call_initiator_parameter_unsupported`, because that check then held every id to\n * `^[a-zA-Z0-9_-]+$`. Since #2048 it holds an introspected row's id to the introspection format, which admits\n * more; this id stays inside the narrower alphabet anyway, so it is valid under both, and\n * `workbench-application-secret-row-id.test.ts` pins that.\n */\nexport function applicationSecretRowId(envName: string, kind: ApplicationSecretKind, envVarName: string): string {\n return [envName, kind, envVarName].join(APPLICATION_SECRET_ROW_ID_SEPARATOR);\n}\n\n/**\n * Splits a secret row's id back into environment, kind and name, or `null` when it cannot be a row id. It\n * splits on the first two separators — neither the environment nor the kind can contain one — and the name\n * keeps any it has. A well-formed id naming nothing real is refused later by `wildo secrets`, which states\n * the reason itself.\n */\nexport function splitApplicationSecretRowId(rowId: string): { envName: string; kind: ApplicationSecretKind; envVarName: string } | null {\n const first = rowId.indexOf(APPLICATION_SECRET_ROW_ID_SEPARATOR);\n if (first <= 0) return null;\n const kindStart = first + APPLICATION_SECRET_ROW_ID_SEPARATOR.length;\n const second = rowId.indexOf(APPLICATION_SECRET_ROW_ID_SEPARATOR, kindStart);\n if (second <= kindStart) return null;\n const kind = rowId.slice(kindStart, second);\n const envVarName = rowId.slice(second + APPLICATION_SECRET_ROW_ID_SEPARATOR.length);\n if (!APPLICATION_SECRET_KIND_VALUES.has(kind) || envVarName.length === 0) return null;\n return { envName: rowId.slice(0, first), kind: kind as ApplicationSecretKind, envVarName };\n}\n\n/**\n * One secret an application declares a use for (or still holds), in one environment — the workbench's\n * secrets section. Names and standings only: a value never enters this row, in either direction of the wire.\n */\nexport const Workbench_ApplicationSecret_Schema = z.object({\n /**\n * `<environment>--<kind>--<NAME>` — see {@link applicationSecretRowId}. A SUMMARY field like every other\n * workbench row's key: the list is read in summary mode, and a card whose row carries no id cannot open its\n * row — which is where `set` and `unset` live (#1637).\n */\n workbenchApplicationSecretId: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** The environment this row describes (`local`, or a remote environment's name). */\n environmentName: z.string().min(1).isSummaryField(),\n /** The environment variable the runtime reads — the key in the `secrets.json` section its {@link kind} names. */\n envVarName: z.string().min(1).isSummaryField(),\n /** Where it stands: needed, set, available, or unused. */\n standing: z.enum(ApplicationSecretStanding).systemEnum('ApplicationSecretStanding').isSummaryField(),\n /** What it belongs to: a provider, a system of record, or an inbound endpoint. */\n kind: z.enum(ApplicationSecretKind).systemEnum('ApplicationSecretKind').isSummaryField(),\n /**\n * WHICH one, in the vocabulary of its {@link kind}: the provider ref, the system-of-record instance name,\n * or the inbound endpoint key. NULL only for an {@link ApplicationSecretStanding.UNUSED} key that names\n * no owner: a provider key no provider declares, or a system-of-record or inbound name that does not parse.\n */\n ownerRef: z.string().min(1).nullable().isSummaryField(),\n /** Its owner's own description of it, when it has one. */\n description: z.string().nullable(),\n /**\n * The enabled capabilities this secret serves — why it is needed: those of the provider arms that READ it, not every\n * capability its provider serves (#2978). Empty for a key no capability-serving arm reads (a sign-in client secret)\n * and for the other kinds.\n */\n capabilities: z.array(z.enum(EngineCapability).systemEnum('EngineCapability')),\n /**\n * The runtimes that RECEIVE it in their environment — the ones a change regenerates and restarts: `backend`,\n * `companion`, `minions.<key>`, `workers.<key>`, `frontendServices.<key>`. For an UNUSED key this is where it\n * is still carried, never where it is used.\n */\n runtimes: z.array(z.string()),\n /** The companion's LLM key — the one secret `wildo init`/`setup` ask for, because the creation chat runs on it. */\n creationEssential: z.boolean(),\n /** Remote only: which GitHub level holds it. NULL locally, and NULL for a remote secret that is not set. */\n remoteLevel: z.enum(ApplicationSecretRemoteLevel).systemEnum('ApplicationSecretRemoteLevel').nullable(),\n});\nexport type Workbench_ApplicationSecret = z.infer<typeof Workbench_ApplicationSecret_Schema>;\n\n/** The secret row's two verbs. Both run `wildo secrets set/unset`, which is the only writer of a secret. */\nexport enum WorkbenchApplicationSecrets_Operations {\n /**\n * Provide THIS secret's value. Locally the runtimes that read it restart to pick it up; remotely it\n * becomes the GitHub Environment secret the deploy reads.\n */\n SET = 'set',\n /** Remove THIS secret from its environment. */\n UNSET = 'unset',\n}\n\nexport const Workbench_ApplicationSecretSetRequest_Schema = z.object({\n /**\n * The value. Never returned, never logged, never stored by the companion: `.isWriteOnlySecret()` masks\n * it in every RESPONSE, so once saved nothing shows it again.\n *\n * Entered in a multi-line box, visible while typed, as GitHub's own secret form does. Decided by\n * practice rather than taste, and measured against the two alternatives:\n * - A masked (`type=password`) input was tried first. It is single-line, so a pasted key file lost its\n * line breaks, and a browser treats it as a login: Chrome ignores `autocomplete=\"off\"` on password\n * fields and still autofills or offers to save into `new-password` ones, so a provider key could be\n * saved as a localhost password or a saved one filled in unseen. The vocabulary has no `off` token.\n * - A single-line text input strips newlines from a paste too (HTML value sanitization).\n * The box preserves what was pasted, and a person can check a paste before saving it.\n */\n value: z.string().min(1).stringUI({ edit: { editMode: StringEditMode.TEXTAREA } }).isWriteOnlySecret(),\n});\nexport type Workbench_ApplicationSecretSetRequest = z.infer<typeof Workbench_ApplicationSecretSetRequest_Schema>;\n\n/**\n * What a change did — the part of what `wildo secrets set/unset --json` prints that the workbench shows\n * (#1637). The local fields are inert for a remote environment, whose change is the GitHub secret itself.\n *\n * The CLI also prints `companionLoadedInProcess` / `companionLoadFailure` (a terminal `set` asking the\n * running companion to load the key). They are deliberately absent here: the workbench passes\n * `--skip-companion-restart` and applies the change in its own process, so they are always false / null\n * on this path, and this non-strict object drops them.\n */\nexport const Workbench_ApplicationSecretChangeOutcome_Schema = z.object({\n envVarName: z.string(),\n /** Which section the change was made in — with the name and the environment, the secret's identity. */\n kind: z.enum(ApplicationSecretKind).systemEnum('ApplicationSecretKind'),\n envName: z.string(),\n /** Local: the runtimes a LIVE `wildo local dev` supervisor was asked to restart to read the change. */\n restartSignalledRuntimes: z.array(z.string()),\n /** Local: whether the runtimes' `.env` files were regenerated. */\n envFilesRegenerated: z.boolean(),\n /** Local: why the `.env` files were not regenerated, with the command to run; null when they were. */\n envFilesRegenerationFailure: z.string().nullable(),\n /** Local: the companion reads this key and applies the change itself instead of restarting. */\n companionAppliesChange: z.boolean(),\n /**\n * Set by the COMPANION (never by the CLI) when it could not apply the change in-process: the value is\n * saved and reaches the companion at its next start. Absent when nothing failed.\n */\n companionApplyFailure: z.string().optional(),\n});\nexport type Workbench_ApplicationSecretChangeOutcome = z.infer<typeof Workbench_ApplicationSecretChangeOutcome_Schema>;\n\n"]}
|