@wildo-ai/platform-core-shared 1.1.4 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/core/resources/resources-operations.custom.shared.definitions.d.ts.map +1 -1
- package/dist/esm/core/resources/resources-relationships.custom.shared.definitions.d.ts.map +1 -1
- package/dist/esm/index.d.ts +4 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +4 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/runtime/application-backend-env.contracts.d.ts +49 -4
- package/dist/esm/runtime/application-backend-env.contracts.d.ts.map +1 -1
- package/dist/esm/runtime/application-backend-env.contracts.js +48 -1
- package/dist/esm/runtime/application-backend-env.contracts.js.map +1 -1
- package/dist/esm/runtime/http-server-env.contracts.d.ts +46 -0
- package/dist/esm/runtime/http-server-env.contracts.d.ts.map +1 -0
- package/dist/esm/runtime/http-server-env.contracts.js +55 -0
- package/dist/esm/runtime/http-server-env.contracts.js.map +1 -0
- package/dist/esm/runtime/runtime-topology.contracts.d.ts +0 -4
- package/dist/esm/runtime/runtime-topology.contracts.d.ts.map +1 -1
- package/dist/esm/runtime/runtime-topology.contracts.js +0 -12
- package/dist/esm/runtime/runtime-topology.contracts.js.map +1 -1
- package/dist/esm/security/authorizations/roles.custom.shared.definitions.d.ts.map +1 -1
- package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.d.ts +166 -70
- package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.d.ts +166 -70
- package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.js +2 -2
- package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.js.map +1 -1
- package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.d.ts +21 -10
- package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.d.ts +21 -10
- package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.js +26 -28
- package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.js.map +1 -1
- package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/wildo-applications/wildo-applications.custom.shared.schemas.d.ts +29 -0
- package/dist/esm/wildo-applications/wildo-applications.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/wildo-applications/wildo-applications.custom.shared.schemas.js +58 -0
- package/dist/esm/wildo-applications/wildo-applications.custom.shared.schemas.js.map +1 -1
- package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.d.ts +13 -0
- package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.js +441 -1
- package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.d.ts +279 -0
- package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.d.ts.map +1 -0
- package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.js +303 -0
- package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.js.map +1 -0
- package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.d.ts +199 -0
- package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.d.ts.map +1 -0
- package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.js +185 -0
- package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.js.map +1 -0
- package/dist/esm/workbench/workbench-creation-dossier.custom.shared.schemas.d.ts +49 -0
- package/dist/esm/workbench/workbench-creation-dossier.custom.shared.schemas.d.ts.map +1 -0
- package/dist/esm/workbench/workbench-creation-dossier.custom.shared.schemas.js +42 -0
- package/dist/esm/workbench/workbench-creation-dossier.custom.shared.schemas.js.map +1 -0
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.d.ts +461 -11
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.js +509 -6
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.d.ts +1102 -12
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.js +1520 -19
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.d.ts +123 -1
- package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.js +168 -0
- package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.d.ts +229 -9
- package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.js +2 -2
- package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-resources.custom.shared.schemas.d.ts +18 -3
- package/dist/esm/workbench/workbench-resources.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-resources.custom.shared.schemas.js +35 -7
- package/dist/esm/workbench/workbench-resources.custom.shared.schemas.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +4 -13
- package/dist/esm/workbench/workbench-creation-board.custom.shared.schemas.d.ts +0 -98
- package/dist/esm/workbench/workbench-creation-board.custom.shared.schemas.d.ts.map +0 -1
- package/dist/esm/workbench/workbench-creation-board.custom.shared.schemas.js +0 -86
- package/dist/esm/workbench/workbench-creation-board.custom.shared.schemas.js.map +0 -1
package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { CORE_APP_ROLES, CoreResourceOperation, CoreResourceType, IntrospectionTenancyStance, PersistenceAdapter, ResourceOperationRiskLevel, ResourceOperationVariantType, ResourceParentResourceRequirement, ResourceRelationshipAccessScopeStrategy, ResourceRelationshipCardinality, RelationshipNature, createResourceConfiguration_Initialization, createResourcesRelationship, } from '@wildo-ai/saas-models';
|
|
2
|
+
import { CORE_APP_ROLES, CoreResourceOperation, CoreResourceType, IntrospectionTenancyStance, PersistenceAdapter, ResourceCollectionExportFormat, ResourceCollectionExportRowScope, ResourceOperationRiskLevel, ResourceOperationVariantType, ResourceParentResourceRequirement, ResourceRelationshipAccessScopeStrategy, ResourceRelationshipCardinality, RelationshipNature, createResourceConfiguration_Initialization, createResourcesRelationship, } from '@wildo-ai/saas-models';
|
|
3
|
+
import { CustomShared_ResourceType } from '../core/resources/resources-types.custom.shared.schemas.js';
|
|
3
4
|
import { WorkbenchShared_ResourceFieldIdentifier, WorkbenchShared_ResourceType, } from './workbench-resources-types.custom.shared.schemas.js';
|
|
4
5
|
import { WORKBENCH_INTROSPECTION_MAX_ROWS_PER_PAGE } from './workbench-resources.custom.shared.resources-config.schemas.js';
|
|
5
|
-
import {
|
|
6
|
+
import { WorkbenchSpecificationArtifactConcern } from './workbench-resources.custom.shared.schemas.js';
|
|
7
|
+
import { Workbench_AcceptChangesOutcome_Schema, Workbench_AcceptChangesRequest_Schema, Workbench_BuildPlanAddTaskOutcome_Schema, Workbench_BuildPlanAddTaskRequest_Schema, Workbench_BuildPlanDispatchNextRequest_Schema, Workbench_BuildPlanDispatchTaskRequest_Schema, Workbench_BuildPlanDispatchOutcome_Schema, Workbench_BuildPlanTask_Schema, Workbench_Playbook_Schema, Workbench_PlaybookResumeRequest_Schema, Workbench_PlaybookRunOutcome_Schema, Workbench_PlaybookRunRequest_Schema, Workbench_RunWriteRecord_Schema, Workbench_RunWriteRevertOutcome_Schema, Workbench_RunWriteRevertRequest_Schema, Workbench_BuildDispatchPlan_Schema, Workbench_BuildDispatch_Schema, Workbench_GovernanceDocument_Schema, Workbench_GovernanceQuestion_Schema, Workbench_CodingLaneStatus_Schema, Workbench_CreationHomeLine_Schema, Workbench_CreationOutcome_Schema, Workbench_DossierAnswerOutcome_Schema, Workbench_DossierAnswerRequest_Schema, Workbench_DossierEntry_Schema, WorkbenchDossierEntries_Operations, WorkbenchDossierEntryStanding, Workbench_EmptyRequest_Schema, Workbench_GovernanceFactsLandingOutcome_Schema, Workbench_GovernanceFactsLandingRequest_Schema, WorkbenchGovernanceDocuments_Operations, Workbench_CodingRunCancelOutcome_Schema, Workbench_ParkedQuestionAnswerOutcome_Schema, Workbench_ParkedQuestionAnswerRequest_Schema, WorkbenchParkedCodingQuestions_Operations, Workbench_ApplicationSecret_Schema, Workbench_ApplicationSecretChangeOutcome_Schema, Workbench_ApplicationSecretSetRequest_Schema, WorkbenchApplicationSecrets_Operations, ApplicationSecretStanding, Workbench_PlaybookInterview_Schema, Workbench_RunWriteDiff_Schema, Workbench_TraceArtifact_Schema, Workbench_TraceArtifactRequest_Schema, Workbench_TraceSessionRecord_Schema, Workbench_TraceSessionsForTask_Schema, Workbench_TraceSessionsForTaskRequest_Schema, Workbench_TraceSessionUsage_Schema, WorkbenchTraceSessions_Operations, Workbench_ParkedCodingQuestion_Schema, Workbench_PlaybookRun_Schema, Workbench_WaitingPlaybookRun_Schema, Workbench_TraceSession_Schema, WorkbenchBuildPlanTasks_Operations, WorkbenchCreationPlaneBehavior, WorkbenchPlaybooks_Operations, WorkbenchRunWriteRecords_Operations, } from './workbench-creation-plane.custom.shared.schemas.js';
|
|
6
8
|
/**
|
|
7
9
|
* Resource configurations for the CREATION PLANE — the four companion-runtime families the creation
|
|
8
10
|
* board consumes as resources (`workbench-creation-board-resources.md`, Phase 2; decides #166).
|
|
@@ -46,6 +48,18 @@ export const workbenchCreationPlane_ResourcesRelationships = [
|
|
|
46
48
|
WorkbenchShared_ResourceType.BUILD_PLAN_TASKS,
|
|
47
49
|
WorkbenchShared_ResourceType.RUN_WRITE_RECORDS,
|
|
48
50
|
WorkbenchShared_ResourceType.TRACE_SESSIONS,
|
|
51
|
+
WorkbenchShared_ResourceType.GOVERNANCE_DOCUMENTS,
|
|
52
|
+
WorkbenchShared_ResourceType.GOVERNANCE_QUESTIONS,
|
|
53
|
+
WorkbenchShared_ResourceType.BUILD_DISPATCH_PLAN,
|
|
54
|
+
WorkbenchShared_ResourceType.BUILD_DISPATCHES,
|
|
55
|
+
WorkbenchShared_ResourceType.PLAYBOOK_RUNS,
|
|
56
|
+
WorkbenchShared_ResourceType.WAITING_PLAYBOOK_RUNS,
|
|
57
|
+
WorkbenchShared_ResourceType.CODING_LANE_STATUS,
|
|
58
|
+
WorkbenchShared_ResourceType.PARKED_CODING_QUESTIONS,
|
|
59
|
+
WorkbenchShared_ResourceType.DOSSIER_ENTRIES,
|
|
60
|
+
WorkbenchShared_ResourceType.HOME_LINES,
|
|
61
|
+
WorkbenchShared_ResourceType.CREATION_OUTCOMES,
|
|
62
|
+
WorkbenchShared_ResourceType.APPLICATION_SECRETS,
|
|
49
63
|
].map((resourceType) => createResourcesRelationship(CoreResourceType.APPLICATION, resourceType, ResourceRelationshipCardinality.ONE, ResourceRelationshipCardinality.MANY, {
|
|
50
64
|
nature: RelationshipNature.COMPOSITION,
|
|
51
65
|
isPrimaryScope: true,
|
|
@@ -70,6 +84,53 @@ workbenchCreationPlane_ResourcesRelationships.push(createResourcesRelationship(W
|
|
|
70
84
|
accessScopeStrategy: ResourceRelationshipAccessScopeStrategy.STANDALONE,
|
|
71
85
|
parentResourceRequirement: ResourceParentResourceRequirement.OPTIONAL,
|
|
72
86
|
contextPolicy: {},
|
|
87
|
+
}),
|
|
88
|
+
/*
|
|
89
|
+
* The two edges OUT OF this lane and into the CONTROL PLANE: a build dispatch that admitted a
|
|
90
|
+
* coding run, and a coding run that parked on a question, both point at the durable actor-task row
|
|
91
|
+
* that carries the real outcome.
|
|
92
|
+
*
|
|
93
|
+
* ## Why these must be declared and not merely decorated
|
|
94
|
+
*
|
|
95
|
+
* `.isForeignKey()` on a field is a CLAIM that the field addresses another resource; the
|
|
96
|
+
* relationship is what says WHICH. The registry resolves a decorated FK through
|
|
97
|
+
* `buildFieldIdentifierToResourceTypeMap`, which learns a non-conventional field name only from an
|
|
98
|
+
* edge's `foreignKeyField` — so a decorated field with no edge is unresolvable, and the frontend
|
|
99
|
+
* registry REFUSES TO INITIALIZE (`frontend_fk_resolution_failed`) rather than rendering a
|
|
100
|
+
* reference that goes nowhere.
|
|
101
|
+
*
|
|
102
|
+
* Both fields shipped decorated and unrelated on 2026-09-18, which meant the workbench could not
|
|
103
|
+
* boot at all. Nothing in the unit suite could see it — the repository builds fine; it is the
|
|
104
|
+
* registry's own initialization that sweeps — and the browser smoke test is what reported it.
|
|
105
|
+
*
|
|
106
|
+
* ## Why the field names are not the target's own identifier
|
|
107
|
+
*
|
|
108
|
+
* Every other FK here is named for the row it addresses (`workbenchPlaybookId`,
|
|
109
|
+
* `workbenchTraceSessionId`). These two are named for the role the id plays in THIS lane — the
|
|
110
|
+
* coding task a dispatch admitted, the task a question parked — because that is what the companion
|
|
111
|
+
* projection emits and what an operator reads in the row. The map is taught by the edge, which is
|
|
112
|
+
* exactly the case `foreignKeyField` exists for.
|
|
113
|
+
*/
|
|
114
|
+
createResourcesRelationship(CustomShared_ResourceType.WILDO_APPLICATION_ACTOR_TASKS, WorkbenchShared_ResourceType.BUILD_DISPATCHES, ResourceRelationshipCardinality.ONE, ResourceRelationshipCardinality.MANY, {
|
|
115
|
+
nature: RelationshipNature.REFERENCE,
|
|
116
|
+
foreignKeyField: 'codingTaskId',
|
|
117
|
+
accessScopeStrategy: ResourceRelationshipAccessScopeStrategy.STANDALONE,
|
|
118
|
+
/* OPTIONAL and dangling-tolerant: a generation step admits no coding run, so the field is null. */
|
|
119
|
+
parentResourceRequirement: ResourceParentResourceRequirement.OPTIONAL,
|
|
120
|
+
contextPolicy: {},
|
|
121
|
+
}), createResourcesRelationship(CustomShared_ResourceType.WILDO_APPLICATION_ACTOR_TASKS, WorkbenchShared_ResourceType.CODING_LANE_STATUS, ResourceRelationshipCardinality.ONE, ResourceRelationshipCardinality.MANY, {
|
|
122
|
+
nature: RelationshipNature.REFERENCE,
|
|
123
|
+
foreignKeyField: 'activeRunTaskId',
|
|
124
|
+
accessScopeStrategy: ResourceRelationshipAccessScopeStrategy.STANDALONE,
|
|
125
|
+
/* NULL whenever nothing is running, which is most of the time. */
|
|
126
|
+
parentResourceRequirement: ResourceParentResourceRequirement.OPTIONAL,
|
|
127
|
+
contextPolicy: {},
|
|
128
|
+
}), createResourcesRelationship(CustomShared_ResourceType.WILDO_APPLICATION_ACTOR_TASKS, WorkbenchShared_ResourceType.PARKED_CODING_QUESTIONS, ResourceRelationshipCardinality.ONE, ResourceRelationshipCardinality.MANY, {
|
|
129
|
+
nature: RelationshipNature.REFERENCE,
|
|
130
|
+
foreignKeyField: 'taskId',
|
|
131
|
+
accessScopeStrategy: ResourceRelationshipAccessScopeStrategy.STANDALONE,
|
|
132
|
+
parentResourceRequirement: ResourceParentResourceRequirement.OPTIONAL,
|
|
133
|
+
contextPolicy: {},
|
|
73
134
|
}));
|
|
74
135
|
/**
|
|
75
136
|
* A shared dispatch-variant mold (Phase 3, plan D3): authenticated like the reads, MEDIUM risk by
|
|
@@ -99,15 +160,36 @@ function createDispatchApiVariant(params) {
|
|
|
99
160
|
* cut the run PUT mid-flight, losing the outcome and the post-success invalidation emits
|
|
100
161
|
* (issue #237) — so the variant declares its own transport expectation.
|
|
101
162
|
*/
|
|
102
|
-
clientRequestTimeoutMs: 600_000,
|
|
103
|
-
riskLevel: params.riskLevel ?? ResourceOperationRiskLevel.MEDIUM,
|
|
163
|
+
clientRequestTimeoutMs: params.readOnly ? 30_000 : 600_000,
|
|
164
|
+
riskLevel: params.riskLevel ?? (params.readOnly ? ResourceOperationRiskLevel.LOW : ResourceOperationRiskLevel.MEDIUM),
|
|
104
165
|
resourceOperationLike: params.resourceOperationLike ?? CoreResourceOperation.UPDATE,
|
|
105
166
|
requestDto: params.requestDto,
|
|
106
167
|
customResponseDto: params.customResponseDto,
|
|
107
168
|
};
|
|
108
169
|
}
|
|
109
|
-
/**
|
|
110
|
-
|
|
170
|
+
/**
|
|
171
|
+
* Governance questions are dispatch-free HERE, and that is a decision rather than an omission.
|
|
172
|
+
*
|
|
173
|
+
* Answering one lands the `document-facts-authored` family through the document's own door
|
|
174
|
+
* (`POST /compliance/governance-facts`), which carries the governance scope and, for a reviewed fact,
|
|
175
|
+
* the review — a per-question verb with a bare value could carry neither. Since 2026-09-22 (#1454,
|
|
176
|
+
* Step 6) that door accepts a PARTIAL set and merges by fact, so "half a questionnaire" is no longer
|
|
177
|
+
* the argument; the argument is the shape of an answer. The row is the question as asked, with its
|
|
178
|
+
* standing.
|
|
179
|
+
*/
|
|
180
|
+
const WorkbenchGovernanceQuestions_Operations = undefined;
|
|
181
|
+
/**
|
|
182
|
+
* The OBSERVATION resources are dispatch-free, and each for its own reason.
|
|
183
|
+
*
|
|
184
|
+
* A build dispatch is a RECORD of an attempt — there is nothing to fire at a thing that already
|
|
185
|
+
* happened; re-dispatching is a verb on the build-plan TASK. A waiting run is answered by a verb that
|
|
186
|
+
* already exists somewhere truer: `RESUME` rides the playbook row the clarification stopped. (A
|
|
187
|
+
* parked coding question carried the same argument until 2026-09-22, when its bespoke decision
|
|
188
|
+
* channel became the row's own `answer` / `cancel` — the act has ONE door either way, and the row is
|
|
189
|
+
* where a reader meets it.) Adding a second door to a dispatch or a waiting run would put the same
|
|
190
|
+
* act in two places.
|
|
191
|
+
*/
|
|
192
|
+
const WorkbenchObservation_Operations = undefined;
|
|
111
193
|
/**
|
|
112
194
|
* The four read-only creation-plane factories. READ + LIST only: dispatch VERBS
|
|
113
195
|
* (run/resume/dispatch-next/revert/cancel) arrive in Phase 3 as CUSTOM operations delegating to
|
|
@@ -157,6 +239,13 @@ export const workbenchPlaybooks_ResourceConfiguration_InitializationFactory = (r
|
|
|
157
239
|
customResponseDto: Workbench_PlaybookRunOutcome_Schema,
|
|
158
240
|
})],
|
|
159
241
|
},
|
|
242
|
+
[WorkbenchPlaybooks_Operations.READ_INTERVIEW]: {
|
|
243
|
+
variants: [createDispatchApiVariant({
|
|
244
|
+
readOnly: true,
|
|
245
|
+
requestDto: Workbench_EmptyRequest_Schema,
|
|
246
|
+
customResponseDto: Workbench_PlaybookInterview_Schema,
|
|
247
|
+
})],
|
|
248
|
+
},
|
|
160
249
|
},
|
|
161
250
|
});
|
|
162
251
|
export const workbenchBuildPlanTasks_ResourceConfiguration_InitializationFactory = (resourcesRelationships) => createResourceConfiguration_Initialization({
|
|
@@ -183,6 +272,28 @@ export const workbenchBuildPlanTasks_ResourceConfiguration_InitializationFactory
|
|
|
183
272
|
customResponseDto: Workbench_BuildPlanDispatchOutcome_Schema,
|
|
184
273
|
})],
|
|
185
274
|
},
|
|
275
|
+
[WorkbenchBuildPlanTasks_Operations.ADD_TASK]: {
|
|
276
|
+
variants: [createDispatchApiVariant({
|
|
277
|
+
/* Collection-level: the row does not exist until the append answers. */
|
|
278
|
+
resourceOperationLike: CoreResourceOperation.UPDATE_MANY,
|
|
279
|
+
requestDto: Workbench_BuildPlanAddTaskRequest_Schema,
|
|
280
|
+
customResponseDto: Workbench_BuildPlanAddTaskOutcome_Schema,
|
|
281
|
+
})],
|
|
282
|
+
},
|
|
283
|
+
[WorkbenchBuildPlanTasks_Operations.DISPATCH_TASK]: {
|
|
284
|
+
variants: [createDispatchApiVariant({
|
|
285
|
+
requestDto: Workbench_BuildPlanDispatchTaskRequest_Schema,
|
|
286
|
+
customResponseDto: Workbench_BuildPlanDispatchOutcome_Schema,
|
|
287
|
+
})],
|
|
288
|
+
},
|
|
289
|
+
[WorkbenchBuildPlanTasks_Operations.ACCEPT]: {
|
|
290
|
+
variants: [createDispatchApiVariant({
|
|
291
|
+
/* HIGH for the same reason `revert_writes` is: the verb's own by-name refusals are the guard. */
|
|
292
|
+
riskLevel: ResourceOperationRiskLevel.HIGH,
|
|
293
|
+
requestDto: Workbench_AcceptChangesRequest_Schema,
|
|
294
|
+
customResponseDto: Workbench_AcceptChangesOutcome_Schema,
|
|
295
|
+
})],
|
|
296
|
+
},
|
|
186
297
|
},
|
|
187
298
|
});
|
|
188
299
|
export const workbenchRunWriteRecords_ResourceConfiguration_InitializationFactory = (resourcesRelationships) => createResourceConfiguration_Initialization({
|
|
@@ -229,6 +340,20 @@ export const workbenchRunWriteRecords_ResourceConfiguration_InitializationFactor
|
|
|
229
340
|
customResponseDto: Workbench_RunWriteRevertOutcome_Schema,
|
|
230
341
|
})],
|
|
231
342
|
},
|
|
343
|
+
[WorkbenchRunWriteRecords_Operations.ACCEPT]: {
|
|
344
|
+
variants: [createDispatchApiVariant({
|
|
345
|
+
riskLevel: ResourceOperationRiskLevel.HIGH,
|
|
346
|
+
requestDto: Workbench_AcceptChangesRequest_Schema,
|
|
347
|
+
customResponseDto: Workbench_AcceptChangesOutcome_Schema,
|
|
348
|
+
})],
|
|
349
|
+
},
|
|
350
|
+
[WorkbenchRunWriteRecords_Operations.READ_DIFF]: {
|
|
351
|
+
variants: [createDispatchApiVariant({
|
|
352
|
+
readOnly: true,
|
|
353
|
+
requestDto: Workbench_EmptyRequest_Schema,
|
|
354
|
+
customResponseDto: Workbench_RunWriteDiff_Schema,
|
|
355
|
+
})],
|
|
356
|
+
},
|
|
232
357
|
},
|
|
233
358
|
});
|
|
234
359
|
export const workbenchTraceSessions_ResourceConfiguration_InitializationFactory = (resourcesRelationships) => createResourceConfiguration_Initialization({
|
|
@@ -247,6 +372,372 @@ export const workbenchTraceSessions_ResourceConfiguration_InitializationFactory
|
|
|
247
372
|
operationsConfiguration: {
|
|
248
373
|
[CoreResourceOperation.READ]: { variants: [createCreationPlaneReadApiVariant()] },
|
|
249
374
|
[CoreResourceOperation.LIST]: { variants: [createCreationPlaneReadListApiVariant()] },
|
|
375
|
+
/* What a session RECORDED, read on demand for the one a reader opened — never LIST-row fields. */
|
|
376
|
+
[WorkbenchTraceSessions_Operations.READ_RECORD]: {
|
|
377
|
+
variants: [createDispatchApiVariant({ readOnly: true, requestDto: Workbench_EmptyRequest_Schema, customResponseDto: Workbench_TraceSessionRecord_Schema })],
|
|
378
|
+
},
|
|
379
|
+
[WorkbenchTraceSessions_Operations.READ_USAGE]: {
|
|
380
|
+
variants: [createDispatchApiVariant({ readOnly: true, requestDto: Workbench_EmptyRequest_Schema, customResponseDto: Workbench_TraceSessionUsage_Schema })],
|
|
381
|
+
},
|
|
382
|
+
[WorkbenchTraceSessions_Operations.READ_ARTIFACT]: {
|
|
383
|
+
variants: [createDispatchApiVariant({ readOnly: true, requestDto: Workbench_TraceArtifactRequest_Schema, customResponseDto: Workbench_TraceArtifact_Schema })],
|
|
384
|
+
},
|
|
385
|
+
[WorkbenchTraceSessions_Operations.LIST_FOR_TASK]: {
|
|
386
|
+
variants: [createDispatchApiVariant({
|
|
387
|
+
/* Collection-level: the actor task is the input, and it names no session row. */
|
|
388
|
+
resourceOperationLike: CoreResourceOperation.UPDATE_MANY,
|
|
389
|
+
readOnly: true,
|
|
390
|
+
requestDto: Workbench_TraceSessionsForTaskRequest_Schema,
|
|
391
|
+
customResponseDto: Workbench_TraceSessionsForTask_Schema,
|
|
392
|
+
})],
|
|
393
|
+
},
|
|
394
|
+
},
|
|
395
|
+
});
|
|
396
|
+
/**
|
|
397
|
+
* The collection-export PDF template the governance-documents listing is printed through (#1645): every
|
|
398
|
+
* governed document's current text — its release, else its latest draft — as one file a creator can
|
|
399
|
+
* hand to a reviewer. The companion binds the template under this id; boot refuses either half alone.
|
|
400
|
+
*/
|
|
401
|
+
export const WORKBENCH_GOVERNED_DOCUMENTS_PDF_TEMPLATE_ID = 'workbench.governed-documents.v1';
|
|
402
|
+
export const workbenchGovernanceDocuments_ResourceConfiguration_InitializationFactory = (resourcesRelationships) => createResourceConfiguration_Initialization({
|
|
403
|
+
mainSchema: Workbench_GovernanceDocument_Schema,
|
|
404
|
+
resourceIdentifier: WorkbenchShared_ResourceType.GOVERNANCE_DOCUMENTS,
|
|
405
|
+
resourceFieldIdentifier: WorkbenchShared_ResourceFieldIdentifier[WorkbenchShared_ResourceType.GOVERNANCE_DOCUMENTS],
|
|
406
|
+
resourceRelationships: resourcesRelationships,
|
|
407
|
+
isSystemResource: false,
|
|
408
|
+
persistenceAdapter: PersistenceAdapter.INTROSPECTION,
|
|
409
|
+
introspectionBinding: {
|
|
410
|
+
behavior: WorkbenchCreationPlaneBehavior.GOVERNANCE_DOCUMENTS,
|
|
411
|
+
tenancy: IntrospectionTenancyStance.APPLICATION_RUNTIME,
|
|
412
|
+
},
|
|
413
|
+
coreOperations: [CoreResourceOperation.READ, CoreResourceOperation.LIST],
|
|
414
|
+
customOperation: WorkbenchGovernanceDocuments_Operations,
|
|
415
|
+
operationsConfiguration: {
|
|
416
|
+
[CoreResourceOperation.READ]: { variants: [createCreationPlaneReadApiVariant()] },
|
|
417
|
+
[CoreResourceOperation.LIST]: {
|
|
418
|
+
variants: [{
|
|
419
|
+
...createCreationPlaneReadListApiVariant(),
|
|
420
|
+
/*
|
|
421
|
+
* PDF only, and the WHOLE set only. A document bundle is read, not processed, so CSV and JSON
|
|
422
|
+
* would print the questionnaire counts nobody asked for; and a bundle cut at one page of the
|
|
423
|
+
* listing would silently leave documents out of the file meant to hold all of them.
|
|
424
|
+
*/
|
|
425
|
+
collectionExport: {
|
|
426
|
+
formats: [ResourceCollectionExportFormat.PDF],
|
|
427
|
+
rowScopes: [ResourceCollectionExportRowScope.FULL_RESULT_SET],
|
|
428
|
+
/* The engine catalog defines a handful of governed documents; a bound far above it, required of any PDF. */
|
|
429
|
+
maximumExportedRows: 100,
|
|
430
|
+
pdfTemplateId: WORKBENCH_GOVERNED_DOCUMENTS_PDF_TEMPLATE_ID,
|
|
431
|
+
},
|
|
432
|
+
}],
|
|
433
|
+
},
|
|
434
|
+
/* Lands `document-facts-authored` — it WRITES a file, hence MEDIUM and the run's transport budget. */
|
|
435
|
+
[WorkbenchGovernanceDocuments_Operations.LAND_FACTS]: {
|
|
436
|
+
variants: [createDispatchApiVariant({
|
|
437
|
+
requestDto: Workbench_GovernanceFactsLandingRequest_Schema,
|
|
438
|
+
customResponseDto: Workbench_GovernanceFactsLandingOutcome_Schema,
|
|
439
|
+
})],
|
|
440
|
+
},
|
|
441
|
+
},
|
|
442
|
+
});
|
|
443
|
+
export const workbenchGovernanceQuestions_ResourceConfiguration_InitializationFactory = (resourcesRelationships) => createResourceConfiguration_Initialization({
|
|
444
|
+
mainSchema: Workbench_GovernanceQuestion_Schema,
|
|
445
|
+
resourceIdentifier: WorkbenchShared_ResourceType.GOVERNANCE_QUESTIONS,
|
|
446
|
+
resourceFieldIdentifier: WorkbenchShared_ResourceFieldIdentifier[WorkbenchShared_ResourceType.GOVERNANCE_QUESTIONS],
|
|
447
|
+
resourceRelationships: resourcesRelationships,
|
|
448
|
+
isSystemResource: false,
|
|
449
|
+
persistenceAdapter: PersistenceAdapter.INTROSPECTION,
|
|
450
|
+
introspectionBinding: {
|
|
451
|
+
behavior: WorkbenchCreationPlaneBehavior.GOVERNANCE_QUESTIONS,
|
|
452
|
+
tenancy: IntrospectionTenancyStance.APPLICATION_RUNTIME,
|
|
453
|
+
},
|
|
454
|
+
coreOperations: [CoreResourceOperation.READ, CoreResourceOperation.LIST],
|
|
455
|
+
customOperation: WorkbenchGovernanceQuestions_Operations,
|
|
456
|
+
operationsConfiguration: {
|
|
457
|
+
[CoreResourceOperation.READ]: { variants: [createCreationPlaneReadApiVariant()] },
|
|
458
|
+
[CoreResourceOperation.LIST]: {
|
|
459
|
+
variants: [{
|
|
460
|
+
...createCreationPlaneReadListApiVariant(),
|
|
461
|
+
/* The dossier page filters by standing (its quick-filter tabs), by document, and by what waits on the person now. */
|
|
462
|
+
filterFields: {
|
|
463
|
+
definitionRef: z.string().min(1),
|
|
464
|
+
/*
|
|
465
|
+
* The ENUM, not a string: the quick-filter tabs and the list's grouping read the filter's
|
|
466
|
+
* declared values, and a `z.string()` declares none — so the tabs this comment promised
|
|
467
|
+
* were never drawn (#1454, found by the gap drive 2026-09-24).
|
|
468
|
+
*/
|
|
469
|
+
standing: z.enum(WorkbenchDossierEntryStanding).systemEnum('WorkbenchDossierEntryStanding'),
|
|
470
|
+
askedNow: z.boolean(),
|
|
471
|
+
},
|
|
472
|
+
}],
|
|
473
|
+
},
|
|
474
|
+
},
|
|
475
|
+
});
|
|
476
|
+
export const workbenchBuildDispatchPlan_ResourceConfiguration_InitializationFactory = (resourcesRelationships) => createResourceConfiguration_Initialization({
|
|
477
|
+
mainSchema: Workbench_BuildDispatchPlan_Schema,
|
|
478
|
+
resourceIdentifier: WorkbenchShared_ResourceType.BUILD_DISPATCH_PLAN,
|
|
479
|
+
resourceFieldIdentifier: WorkbenchShared_ResourceFieldIdentifier[WorkbenchShared_ResourceType.BUILD_DISPATCH_PLAN],
|
|
480
|
+
resourceRelationships: resourcesRelationships,
|
|
481
|
+
isSystemResource: false,
|
|
482
|
+
persistenceAdapter: PersistenceAdapter.INTROSPECTION,
|
|
483
|
+
introspectionBinding: {
|
|
484
|
+
behavior: WorkbenchCreationPlaneBehavior.BUILD_DISPATCH_PLAN,
|
|
485
|
+
tenancy: IntrospectionTenancyStance.APPLICATION_RUNTIME,
|
|
486
|
+
},
|
|
487
|
+
coreOperations: [CoreResourceOperation.READ, CoreResourceOperation.LIST],
|
|
488
|
+
customOperation: WorkbenchObservation_Operations,
|
|
489
|
+
operationsConfiguration: {
|
|
490
|
+
[CoreResourceOperation.READ]: { variants: [createCreationPlaneReadApiVariant()] },
|
|
491
|
+
[CoreResourceOperation.LIST]: { variants: [createCreationPlaneReadListApiVariant()] },
|
|
492
|
+
},
|
|
493
|
+
});
|
|
494
|
+
export const workbenchBuildDispatches_ResourceConfiguration_InitializationFactory = (resourcesRelationships) => createResourceConfiguration_Initialization({
|
|
495
|
+
mainSchema: Workbench_BuildDispatch_Schema,
|
|
496
|
+
resourceIdentifier: WorkbenchShared_ResourceType.BUILD_DISPATCHES,
|
|
497
|
+
resourceFieldIdentifier: WorkbenchShared_ResourceFieldIdentifier[WorkbenchShared_ResourceType.BUILD_DISPATCHES],
|
|
498
|
+
resourceRelationships: resourcesRelationships,
|
|
499
|
+
isSystemResource: false,
|
|
500
|
+
persistenceAdapter: PersistenceAdapter.INTROSPECTION,
|
|
501
|
+
introspectionBinding: {
|
|
502
|
+
behavior: WorkbenchCreationPlaneBehavior.BUILD_DISPATCHES,
|
|
503
|
+
tenancy: IntrospectionTenancyStance.APPLICATION_RUNTIME,
|
|
504
|
+
},
|
|
505
|
+
coreOperations: [CoreResourceOperation.READ, CoreResourceOperation.LIST],
|
|
506
|
+
customOperation: WorkbenchObservation_Operations,
|
|
507
|
+
operationsConfiguration: {
|
|
508
|
+
[CoreResourceOperation.READ]: { variants: [createCreationPlaneReadApiVariant()] },
|
|
509
|
+
[CoreResourceOperation.LIST]: { variants: [createCreationPlaneReadListApiVariant()] },
|
|
510
|
+
},
|
|
511
|
+
});
|
|
512
|
+
export const workbenchPlaybookRuns_ResourceConfiguration_InitializationFactory = (resourcesRelationships) => createResourceConfiguration_Initialization({
|
|
513
|
+
mainSchema: Workbench_PlaybookRun_Schema,
|
|
514
|
+
resourceIdentifier: WorkbenchShared_ResourceType.PLAYBOOK_RUNS,
|
|
515
|
+
resourceFieldIdentifier: WorkbenchShared_ResourceFieldIdentifier[WorkbenchShared_ResourceType.PLAYBOOK_RUNS],
|
|
516
|
+
resourceRelationships: resourcesRelationships,
|
|
517
|
+
isSystemResource: false,
|
|
518
|
+
persistenceAdapter: PersistenceAdapter.INTROSPECTION,
|
|
519
|
+
introspectionBinding: {
|
|
520
|
+
behavior: WorkbenchCreationPlaneBehavior.PLAYBOOK_RUNS,
|
|
521
|
+
tenancy: IntrospectionTenancyStance.APPLICATION_RUNTIME,
|
|
522
|
+
},
|
|
523
|
+
coreOperations: [CoreResourceOperation.READ, CoreResourceOperation.LIST],
|
|
524
|
+
customOperation: WorkbenchObservation_Operations,
|
|
525
|
+
operationsConfiguration: {
|
|
526
|
+
[CoreResourceOperation.READ]: { variants: [createCreationPlaneReadApiVariant()] },
|
|
527
|
+
[CoreResourceOperation.LIST]: { variants: [createCreationPlaneReadListApiVariant()] },
|
|
528
|
+
},
|
|
529
|
+
});
|
|
530
|
+
export const workbenchWaitingPlaybookRuns_ResourceConfiguration_InitializationFactory = (resourcesRelationships) => createResourceConfiguration_Initialization({
|
|
531
|
+
mainSchema: Workbench_WaitingPlaybookRun_Schema,
|
|
532
|
+
resourceIdentifier: WorkbenchShared_ResourceType.WAITING_PLAYBOOK_RUNS,
|
|
533
|
+
resourceFieldIdentifier: WorkbenchShared_ResourceFieldIdentifier[WorkbenchShared_ResourceType.WAITING_PLAYBOOK_RUNS],
|
|
534
|
+
resourceRelationships: resourcesRelationships,
|
|
535
|
+
isSystemResource: false,
|
|
536
|
+
persistenceAdapter: PersistenceAdapter.INTROSPECTION,
|
|
537
|
+
introspectionBinding: {
|
|
538
|
+
behavior: WorkbenchCreationPlaneBehavior.WAITING_PLAYBOOK_RUNS,
|
|
539
|
+
tenancy: IntrospectionTenancyStance.APPLICATION_RUNTIME,
|
|
540
|
+
},
|
|
541
|
+
coreOperations: [CoreResourceOperation.READ, CoreResourceOperation.LIST],
|
|
542
|
+
customOperation: WorkbenchObservation_Operations,
|
|
543
|
+
operationsConfiguration: {
|
|
544
|
+
[CoreResourceOperation.READ]: { variants: [createCreationPlaneReadApiVariant()] },
|
|
545
|
+
[CoreResourceOperation.LIST]: { variants: [createCreationPlaneReadListApiVariant()] },
|
|
546
|
+
},
|
|
547
|
+
});
|
|
548
|
+
export const workbenchCodingLaneStatus_ResourceConfiguration_InitializationFactory = (resourcesRelationships) => createResourceConfiguration_Initialization({
|
|
549
|
+
mainSchema: Workbench_CodingLaneStatus_Schema,
|
|
550
|
+
resourceIdentifier: WorkbenchShared_ResourceType.CODING_LANE_STATUS,
|
|
551
|
+
resourceFieldIdentifier: WorkbenchShared_ResourceFieldIdentifier[WorkbenchShared_ResourceType.CODING_LANE_STATUS],
|
|
552
|
+
resourceRelationships: resourcesRelationships,
|
|
553
|
+
isSystemResource: false,
|
|
554
|
+
persistenceAdapter: PersistenceAdapter.INTROSPECTION,
|
|
555
|
+
introspectionBinding: {
|
|
556
|
+
behavior: WorkbenchCreationPlaneBehavior.CODING_LANE_STATUS,
|
|
557
|
+
tenancy: IntrospectionTenancyStance.APPLICATION_RUNTIME,
|
|
558
|
+
},
|
|
559
|
+
coreOperations: [CoreResourceOperation.READ, CoreResourceOperation.LIST],
|
|
560
|
+
customOperation: WorkbenchObservation_Operations,
|
|
561
|
+
operationsConfiguration: {
|
|
562
|
+
[CoreResourceOperation.READ]: { variants: [createCreationPlaneReadApiVariant()] },
|
|
563
|
+
[CoreResourceOperation.LIST]: { variants: [createCreationPlaneReadListApiVariant()] },
|
|
564
|
+
},
|
|
565
|
+
});
|
|
566
|
+
export const workbenchParkedCodingQuestions_ResourceConfiguration_InitializationFactory = (resourcesRelationships) => createResourceConfiguration_Initialization({
|
|
567
|
+
mainSchema: Workbench_ParkedCodingQuestion_Schema,
|
|
568
|
+
resourceIdentifier: WorkbenchShared_ResourceType.PARKED_CODING_QUESTIONS,
|
|
569
|
+
resourceFieldIdentifier: WorkbenchShared_ResourceFieldIdentifier[WorkbenchShared_ResourceType.PARKED_CODING_QUESTIONS],
|
|
570
|
+
resourceRelationships: resourcesRelationships,
|
|
571
|
+
isSystemResource: false,
|
|
572
|
+
persistenceAdapter: PersistenceAdapter.INTROSPECTION,
|
|
573
|
+
introspectionBinding: {
|
|
574
|
+
behavior: WorkbenchCreationPlaneBehavior.PARKED_CODING_QUESTIONS,
|
|
575
|
+
tenancy: IntrospectionTenancyStance.APPLICATION_RUNTIME,
|
|
576
|
+
},
|
|
577
|
+
coreOperations: [CoreResourceOperation.READ, CoreResourceOperation.LIST],
|
|
578
|
+
customOperation: WorkbenchParkedCodingQuestions_Operations,
|
|
579
|
+
operationsConfiguration: {
|
|
580
|
+
[CoreResourceOperation.READ]: { variants: [createCreationPlaneReadApiVariant()] },
|
|
581
|
+
[CoreResourceOperation.LIST]: { variants: [createCreationPlaneReadListApiVariant()] },
|
|
582
|
+
[WorkbenchParkedCodingQuestions_Operations.ANSWER]: {
|
|
583
|
+
variants: [createDispatchApiVariant({
|
|
584
|
+
requestDto: Workbench_ParkedQuestionAnswerRequest_Schema,
|
|
585
|
+
customResponseDto: Workbench_ParkedQuestionAnswerOutcome_Schema,
|
|
586
|
+
})],
|
|
587
|
+
},
|
|
588
|
+
[WorkbenchParkedCodingQuestions_Operations.CANCEL]: {
|
|
589
|
+
variants: [createDispatchApiVariant({
|
|
590
|
+
/* Per row, like `answer`: the row names the run it ends — see the enum. */
|
|
591
|
+
requestDto: Workbench_EmptyRequest_Schema,
|
|
592
|
+
customResponseDto: Workbench_CodingRunCancelOutcome_Schema,
|
|
593
|
+
})],
|
|
594
|
+
},
|
|
595
|
+
},
|
|
596
|
+
});
|
|
597
|
+
/**
|
|
598
|
+
* THE DOSSIER (#1454, Step 5): what the creator was asked and what they said.
|
|
599
|
+
*
|
|
600
|
+
* READ/LIST like every creation-plane projection, plus ONE write verb, `answer`, which lands the
|
|
601
|
+
* `creator-inputs` family. A per-row dispatch because the row IS the question: the identity carries
|
|
602
|
+
* the playbook and question refs the family stores the answer under, so the body carries only the
|
|
603
|
+
* value. `PATCH`-shaped (`UPDATE` operation-like) rather than `PUT`, since an answer changes one
|
|
604
|
+
* field of an existing row and the resource has no CREATE — a question exists because a playbook
|
|
605
|
+
* declares it, never because someone answered it.
|
|
606
|
+
*/
|
|
607
|
+
export const workbenchDossierEntries_ResourceConfiguration_InitializationFactory = (resourcesRelationships) => createResourceConfiguration_Initialization({
|
|
608
|
+
mainSchema: Workbench_DossierEntry_Schema,
|
|
609
|
+
resourceIdentifier: WorkbenchShared_ResourceType.DOSSIER_ENTRIES,
|
|
610
|
+
resourceFieldIdentifier: WorkbenchShared_ResourceFieldIdentifier[WorkbenchShared_ResourceType.DOSSIER_ENTRIES],
|
|
611
|
+
resourceRelationships: resourcesRelationships,
|
|
612
|
+
isSystemResource: false,
|
|
613
|
+
persistenceAdapter: PersistenceAdapter.INTROSPECTION,
|
|
614
|
+
introspectionBinding: {
|
|
615
|
+
behavior: WorkbenchCreationPlaneBehavior.DOSSIER_ENTRIES,
|
|
616
|
+
tenancy: IntrospectionTenancyStance.APPLICATION_RUNTIME,
|
|
617
|
+
},
|
|
618
|
+
coreOperations: [CoreResourceOperation.READ, CoreResourceOperation.LIST],
|
|
619
|
+
customOperation: WorkbenchDossierEntries_Operations,
|
|
620
|
+
operationsConfiguration: {
|
|
621
|
+
[CoreResourceOperation.READ]: { variants: [createCreationPlaneReadApiVariant()] },
|
|
622
|
+
[CoreResourceOperation.LIST]: {
|
|
623
|
+
variants: [{
|
|
624
|
+
...createCreationPlaneReadListApiVariant(),
|
|
625
|
+
/* The scripted interview reads ONE playbook's questions; the dossier page reads all. */
|
|
626
|
+
filterFields: {
|
|
627
|
+
playbookRef: z.string().min(1),
|
|
628
|
+
/* ENUMS, so the standing tabs and the subject grouping have values to read (see the governance list above). */
|
|
629
|
+
standing: z.enum(WorkbenchDossierEntryStanding).systemEnum('WorkbenchDossierEntryStanding'),
|
|
630
|
+
subject: z.enum(WorkbenchSpecificationArtifactConcern).systemEnum('WorkbenchSpecificationArtifactConcern'),
|
|
631
|
+
/* "What waits on me now" — the dossier page's one narrow question, asked server-side. */
|
|
632
|
+
askedNow: z.boolean(),
|
|
633
|
+
},
|
|
634
|
+
}],
|
|
635
|
+
},
|
|
636
|
+
[WorkbenchDossierEntries_Operations.ANSWER]: {
|
|
637
|
+
variants: [createDispatchApiVariant({
|
|
638
|
+
requestDto: Workbench_DossierAnswerRequest_Schema,
|
|
639
|
+
customResponseDto: Workbench_DossierAnswerOutcome_Schema,
|
|
640
|
+
})],
|
|
641
|
+
},
|
|
642
|
+
},
|
|
643
|
+
});
|
|
644
|
+
/**
|
|
645
|
+
* HOME's LINES (#1454): READ/LIST like every creation-plane projection, no write verb — a line is a
|
|
646
|
+
* pointer at an element whose own operations do the work (Run on a playbook, Answer on a waiting
|
|
647
|
+
* run, Accept on a dispatch). `section` is the one declared filter: Home reads the three sections it
|
|
648
|
+
* lays out, and the assistant asks for "what is asked of the creator" without reading the rest.
|
|
649
|
+
*/
|
|
650
|
+
export const workbenchCreationHomeLines_ResourceConfiguration_InitializationFactory = (resourcesRelationships) => createResourceConfiguration_Initialization({
|
|
651
|
+
mainSchema: Workbench_CreationHomeLine_Schema,
|
|
652
|
+
resourceIdentifier: WorkbenchShared_ResourceType.HOME_LINES,
|
|
653
|
+
resourceFieldIdentifier: WorkbenchShared_ResourceFieldIdentifier[WorkbenchShared_ResourceType.HOME_LINES],
|
|
654
|
+
resourceRelationships: resourcesRelationships,
|
|
655
|
+
isSystemResource: false,
|
|
656
|
+
persistenceAdapter: PersistenceAdapter.INTROSPECTION,
|
|
657
|
+
introspectionBinding: {
|
|
658
|
+
behavior: WorkbenchCreationPlaneBehavior.HOME_LINES,
|
|
659
|
+
tenancy: IntrospectionTenancyStance.APPLICATION_RUNTIME,
|
|
660
|
+
},
|
|
661
|
+
coreOperations: [CoreResourceOperation.READ, CoreResourceOperation.LIST],
|
|
662
|
+
customOperation: WorkbenchObservation_Operations,
|
|
663
|
+
operationsConfiguration: {
|
|
664
|
+
[CoreResourceOperation.READ]: { variants: [createCreationPlaneReadApiVariant()] },
|
|
665
|
+
[CoreResourceOperation.LIST]: {
|
|
666
|
+
variants: [{
|
|
667
|
+
...createCreationPlaneReadListApiVariant(),
|
|
668
|
+
filterFields: { section: z.string().min(1) },
|
|
669
|
+
}],
|
|
670
|
+
},
|
|
671
|
+
},
|
|
672
|
+
});
|
|
673
|
+
/** The four creation OUTCOMES (#1454): READ/LIST, always four rows, nothing to write. */
|
|
674
|
+
export const workbenchCreationOutcomes_ResourceConfiguration_InitializationFactory = (resourcesRelationships) => createResourceConfiguration_Initialization({
|
|
675
|
+
mainSchema: Workbench_CreationOutcome_Schema,
|
|
676
|
+
resourceIdentifier: WorkbenchShared_ResourceType.CREATION_OUTCOMES,
|
|
677
|
+
resourceFieldIdentifier: WorkbenchShared_ResourceFieldIdentifier[WorkbenchShared_ResourceType.CREATION_OUTCOMES],
|
|
678
|
+
resourceRelationships: resourcesRelationships,
|
|
679
|
+
isSystemResource: false,
|
|
680
|
+
persistenceAdapter: PersistenceAdapter.INTROSPECTION,
|
|
681
|
+
introspectionBinding: {
|
|
682
|
+
behavior: WorkbenchCreationPlaneBehavior.CREATION_OUTCOMES,
|
|
683
|
+
tenancy: IntrospectionTenancyStance.APPLICATION_RUNTIME,
|
|
684
|
+
},
|
|
685
|
+
coreOperations: [CoreResourceOperation.READ, CoreResourceOperation.LIST],
|
|
686
|
+
customOperation: WorkbenchObservation_Operations,
|
|
687
|
+
operationsConfiguration: {
|
|
688
|
+
[CoreResourceOperation.READ]: { variants: [createCreationPlaneReadApiVariant()] },
|
|
689
|
+
[CoreResourceOperation.LIST]: { variants: [createCreationPlaneReadListApiVariant()] },
|
|
690
|
+
},
|
|
691
|
+
});
|
|
692
|
+
/**
|
|
693
|
+
* THE SECRETS SECTION (#1637): the provider secrets the application declares a use for, one row per
|
|
694
|
+
* (environment, secret), local and remote — names and standings, never values.
|
|
695
|
+
*
|
|
696
|
+
* `set` and `unset` per row. Both are `OVERRIDE_ALL` companion-side and run `wildo secrets set/unset`,
|
|
697
|
+
* the one writer of a secret: the value travels to it on stdin and is never held by the companion, so
|
|
698
|
+
* a secret has exactly one mutation path whether a person types it in a terminal or here. MEDIUM risk
|
|
699
|
+
* like every creation-plane write — it restarts the local runtimes that read the key, or replaces a
|
|
700
|
+
* deploy's GitHub secret.
|
|
701
|
+
*/
|
|
702
|
+
export const workbenchApplicationSecrets_ResourceConfiguration_InitializationFactory = (resourcesRelationships) => createResourceConfiguration_Initialization({
|
|
703
|
+
mainSchema: Workbench_ApplicationSecret_Schema,
|
|
704
|
+
resourceIdentifier: WorkbenchShared_ResourceType.APPLICATION_SECRETS,
|
|
705
|
+
resourceFieldIdentifier: WorkbenchShared_ResourceFieldIdentifier[WorkbenchShared_ResourceType.APPLICATION_SECRETS],
|
|
706
|
+
resourceRelationships: resourcesRelationships,
|
|
707
|
+
isSystemResource: false,
|
|
708
|
+
persistenceAdapter: PersistenceAdapter.INTROSPECTION,
|
|
709
|
+
introspectionBinding: {
|
|
710
|
+
behavior: WorkbenchCreationPlaneBehavior.APPLICATION_SECRETS,
|
|
711
|
+
tenancy: IntrospectionTenancyStance.APPLICATION_RUNTIME,
|
|
712
|
+
},
|
|
713
|
+
coreOperations: [CoreResourceOperation.READ, CoreResourceOperation.LIST],
|
|
714
|
+
customOperation: WorkbenchApplicationSecrets_Operations,
|
|
715
|
+
operationsConfiguration: {
|
|
716
|
+
[CoreResourceOperation.READ]: { variants: [createCreationPlaneReadApiVariant()] },
|
|
717
|
+
[CoreResourceOperation.LIST]: { variants: [createCreationPlaneReadListApiVariant()] },
|
|
718
|
+
[WorkbenchApplicationSecrets_Operations.SET]: {
|
|
719
|
+
variants: [{
|
|
720
|
+
...createDispatchApiVariant({
|
|
721
|
+
requestDto: Workbench_ApplicationSecretSetRequest_Schema,
|
|
722
|
+
customResponseDto: Workbench_ApplicationSecretChangeOutcome_Schema,
|
|
723
|
+
}),
|
|
724
|
+
/* A key nothing reads offers only its removal: `wildo secrets set` refuses to give it a value. */
|
|
725
|
+
enabledCondition: ({ currentObject }) => currentObject.standing !== ApplicationSecretStanding.UNUSED,
|
|
726
|
+
}],
|
|
727
|
+
},
|
|
728
|
+
[WorkbenchApplicationSecrets_Operations.UNSET]: {
|
|
729
|
+
variants: [{
|
|
730
|
+
...createDispatchApiVariant({
|
|
731
|
+
requestDto: Workbench_EmptyRequest_Schema,
|
|
732
|
+
customResponseDto: Workbench_ApplicationSecretChangeOutcome_Schema,
|
|
733
|
+
}),
|
|
734
|
+
/*
|
|
735
|
+
* Only a secret that HAS a value can be removed — one something reads, or an UNUSED one, which is
|
|
736
|
+
* listed precisely to be removed. Offering it on an unset one would state nothing.
|
|
737
|
+
*/
|
|
738
|
+
enabledCondition: ({ currentObject }) => currentObject.standing === ApplicationSecretStanding.SET || currentObject.standing === ApplicationSecretStanding.UNUSED,
|
|
739
|
+
}],
|
|
740
|
+
},
|
|
250
741
|
},
|
|
251
742
|
});
|
|
252
743
|
export const workbenchCreationPlane_ResourcesConfigurationsFactoryMap = {
|
|
@@ -254,5 +745,17 @@ export const workbenchCreationPlane_ResourcesConfigurationsFactoryMap = {
|
|
|
254
745
|
[WorkbenchShared_ResourceType.BUILD_PLAN_TASKS]: workbenchBuildPlanTasks_ResourceConfiguration_InitializationFactory,
|
|
255
746
|
[WorkbenchShared_ResourceType.RUN_WRITE_RECORDS]: workbenchRunWriteRecords_ResourceConfiguration_InitializationFactory,
|
|
256
747
|
[WorkbenchShared_ResourceType.TRACE_SESSIONS]: workbenchTraceSessions_ResourceConfiguration_InitializationFactory,
|
|
748
|
+
[WorkbenchShared_ResourceType.GOVERNANCE_DOCUMENTS]: workbenchGovernanceDocuments_ResourceConfiguration_InitializationFactory,
|
|
749
|
+
[WorkbenchShared_ResourceType.GOVERNANCE_QUESTIONS]: workbenchGovernanceQuestions_ResourceConfiguration_InitializationFactory,
|
|
750
|
+
[WorkbenchShared_ResourceType.BUILD_DISPATCH_PLAN]: workbenchBuildDispatchPlan_ResourceConfiguration_InitializationFactory,
|
|
751
|
+
[WorkbenchShared_ResourceType.BUILD_DISPATCHES]: workbenchBuildDispatches_ResourceConfiguration_InitializationFactory,
|
|
752
|
+
[WorkbenchShared_ResourceType.PLAYBOOK_RUNS]: workbenchPlaybookRuns_ResourceConfiguration_InitializationFactory,
|
|
753
|
+
[WorkbenchShared_ResourceType.WAITING_PLAYBOOK_RUNS]: workbenchWaitingPlaybookRuns_ResourceConfiguration_InitializationFactory,
|
|
754
|
+
[WorkbenchShared_ResourceType.CODING_LANE_STATUS]: workbenchCodingLaneStatus_ResourceConfiguration_InitializationFactory,
|
|
755
|
+
[WorkbenchShared_ResourceType.PARKED_CODING_QUESTIONS]: workbenchParkedCodingQuestions_ResourceConfiguration_InitializationFactory,
|
|
756
|
+
[WorkbenchShared_ResourceType.DOSSIER_ENTRIES]: workbenchDossierEntries_ResourceConfiguration_InitializationFactory,
|
|
757
|
+
[WorkbenchShared_ResourceType.HOME_LINES]: workbenchCreationHomeLines_ResourceConfiguration_InitializationFactory,
|
|
758
|
+
[WorkbenchShared_ResourceType.CREATION_OUTCOMES]: workbenchCreationOutcomes_ResourceConfiguration_InitializationFactory,
|
|
759
|
+
[WorkbenchShared_ResourceType.APPLICATION_SECRETS]: workbenchApplicationSecrets_ResourceConfiguration_InitializationFactory,
|
|
257
760
|
};
|
|
258
761
|
//# sourceMappingURL=workbench-creation-plane.custom.shared.resources-config.schemas.js.map
|