@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
|
@@ -120,6 +120,8 @@ export declare const workbenchDomainResources_ResourceConfiguration_Initializati
|
|
|
120
120
|
isUnimplemented: z.ZodBoolean;
|
|
121
121
|
isDisabled: z.ZodBoolean;
|
|
122
122
|
requiresStepUpAuthentication: z.ZodBoolean;
|
|
123
|
+
idempotencyKey: z.ZodNullable<z.ZodString>;
|
|
124
|
+
submissionChallengeAction: z.ZodNullable<z.ZodString>;
|
|
123
125
|
admitsCrossTenantPlatformAdministration: z.ZodBoolean;
|
|
124
126
|
auditableEventType: z.ZodNullable<z.ZodString>;
|
|
125
127
|
isMcpExposed: z.ZodBoolean;
|
|
@@ -160,8 +162,8 @@ export declare const workbenchSpecificationArtifacts_ResourceConfiguration_Initi
|
|
|
160
162
|
title: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
161
163
|
description: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
162
164
|
contentSummary: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
163
|
-
concern: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchSpecificationArtifactConcern
|
|
164
|
-
state: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchSpecificationArtifactState
|
|
165
|
+
concern: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchSpecificationArtifactConcern>>>;
|
|
166
|
+
state: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchSpecificationArtifactState>>>;
|
|
165
167
|
schemaRef: z.ZodString;
|
|
166
168
|
sourcePath: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
167
169
|
errorCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
@@ -170,6 +172,10 @@ export declare const workbenchSpecificationArtifacts_ResourceConfiguration_Initi
|
|
|
170
172
|
content: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
171
173
|
document: z.ZodNullable<z.ZodString>;
|
|
172
174
|
issues: z.ZodNullable<z.ZodString>;
|
|
175
|
+
warnings: z.ZodArray<z.ZodObject<{
|
|
176
|
+
path: z.ZodString;
|
|
177
|
+
message: z.ZodString;
|
|
178
|
+
}, z.core.$strip>>;
|
|
173
179
|
decisionRecord: z.ZodNullable<z.ZodString>;
|
|
174
180
|
diagram: z.ZodNullable<z.ZodString>;
|
|
175
181
|
}, z.core.$strip>>;
|
|
@@ -184,13 +190,25 @@ export declare const workbenchShared_ResourcesConfigurationsFactoryMap: {
|
|
|
184
190
|
unmet: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
185
191
|
blockedOnlyBySequencing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
186
192
|
requiresElicitation: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
193
|
+
unansweredQuestionRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
187
194
|
wouldReplace: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
195
|
+
outputOwners: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
|
|
196
|
+
family: z.ZodString;
|
|
197
|
+
playbookRefs: z.ZodArray<z.ZodString>;
|
|
198
|
+
}, z.core.$strip>>>;
|
|
199
|
+
unresolvedPlaybookRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
188
200
|
unlandableFamilies: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
189
201
|
staleOutputs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
|
|
190
202
|
family: z.ZodString;
|
|
191
203
|
changedInputs: z.ZodArray<z.ZodString>;
|
|
192
204
|
}, z.core.$strip>>>;
|
|
193
|
-
|
|
205
|
+
activeInLine: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<z.ZodBoolean>>;
|
|
206
|
+
activationDetail: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<z.ZodString>>;
|
|
207
|
+
openInstances: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
208
|
+
instanceKey: z.ZodString;
|
|
209
|
+
purpose: z.ZodString;
|
|
210
|
+
}, z.core.$strip>>>>;
|
|
211
|
+
computedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
|
|
194
212
|
}, z.core.$strip>>;
|
|
195
213
|
workbenchBuildPlanTasks: (resourcesRelationships: ResourceRelationship[]) => import("@wildo-ai/saas-models").ResourceConfiguration<typeof import("./workbench-creation-plane.custom.shared.schemas").WorkbenchBuildPlanTasks_Operations, CoreResourceOperation.READ | CoreResourceOperation.LIST, z.ZodObject<{
|
|
196
214
|
workbenchBuildPlanTaskId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
@@ -198,7 +216,7 @@ export declare const workbenchShared_ResourcesConfigurationsFactoryMap: {
|
|
|
198
216
|
objective: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
199
217
|
targetKind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
200
218
|
functionalTopic: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
201
|
-
status: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("./workbench-creation-plane.custom.shared.schemas").WorkbenchBuildPlanTaskStatus
|
|
219
|
+
status: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("./workbench-creation-plane.custom.shared.schemas").WorkbenchBuildPlanTaskStatus>>>;
|
|
202
220
|
prerequisiteTaskRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
203
221
|
}, z.core.$strip>>;
|
|
204
222
|
workbenchRunWriteRecords: (resourcesRelationships: ResourceRelationship[]) => import("@wildo-ai/saas-models").ResourceConfiguration<typeof import("./workbench-creation-plane.custom.shared.schemas").WorkbenchRunWriteRecords_Operations, CoreResourceOperation.READ | CoreResourceOperation.LIST, z.ZodObject<{
|
|
@@ -207,21 +225,217 @@ export declare const workbenchShared_ResourcesConfigurationsFactoryMap: {
|
|
|
207
225
|
playbookRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
208
226
|
workbenchPlaybookId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
209
227
|
workbenchTraceSessionId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
|
|
210
|
-
at: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.
|
|
228
|
+
at: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
|
|
211
229
|
files: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
|
|
212
230
|
path: z.ZodString;
|
|
213
231
|
existedBefore: z.ZodBoolean;
|
|
214
232
|
}, z.core.$strip>>>;
|
|
215
233
|
fileCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
234
|
+
acceptedCommitSha: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
216
235
|
}, z.core.$strip>>;
|
|
217
|
-
workbenchTraceSessions: (resourcesRelationships: ResourceRelationship[]) => import("@wildo-ai/saas-models").ResourceConfiguration<
|
|
236
|
+
workbenchTraceSessions: (resourcesRelationships: ResourceRelationship[]) => import("@wildo-ai/saas-models").ResourceConfiguration<typeof import("./workbench-creation-plane.custom.shared.schemas").WorkbenchTraceSessions_Operations, CoreResourceOperation.READ | CoreResourceOperation.LIST, z.ZodObject<{
|
|
218
237
|
workbenchTraceSessionId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
219
238
|
sessionId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
220
|
-
startedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.
|
|
239
|
+
startedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
|
|
221
240
|
label: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
222
241
|
eventCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
223
242
|
stepCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
224
243
|
}, z.core.$strip>>;
|
|
244
|
+
workbenchGovernanceDocuments: (resourcesRelationships: ResourceRelationship[]) => import("@wildo-ai/saas-models").ResourceConfiguration<typeof import("./workbench-creation-plane.custom.shared.schemas").WorkbenchGovernanceDocuments_Operations, CoreResourceOperation.READ | CoreResourceOperation.LIST, z.ZodObject<{
|
|
245
|
+
workbenchGovernanceDocumentId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
246
|
+
definitionRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
247
|
+
askCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
248
|
+
derivedFactRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
249
|
+
openCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
250
|
+
drafted: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
251
|
+
}, z.core.$strip>>;
|
|
252
|
+
workbenchGovernanceQuestions: (resourcesRelationships: ResourceRelationship[]) => import("@wildo-ai/saas-models").ResourceConfiguration<any, CoreResourceOperation.READ | CoreResourceOperation.LIST, z.ZodObject<{
|
|
253
|
+
workbenchGovernanceQuestionId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
254
|
+
definitionRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
255
|
+
questionRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
256
|
+
factRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
257
|
+
creatorPrompt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
258
|
+
decisionPurpose: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
259
|
+
answerKind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
260
|
+
factAuthorityKind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
261
|
+
allowsNotApplicable: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
262
|
+
sensitivityRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
263
|
+
semanticOptions: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
|
|
264
|
+
optionRef: z.ZodString;
|
|
265
|
+
creatorMeaning: z.ZodString;
|
|
266
|
+
}, z.core.$strip>>>;
|
|
267
|
+
standing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("./workbench-creation-plane.custom.shared.schemas").WorkbenchDossierEntryStanding>>>;
|
|
268
|
+
answerSummary: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
269
|
+
answeredAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodDate>>;
|
|
270
|
+
askedNow: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
271
|
+
}, z.core.$strip>>;
|
|
272
|
+
workbenchBuildDispatchPlan: (resourcesRelationships: ResourceRelationship[]) => import("@wildo-ai/saas-models").ResourceConfiguration<any, CoreResourceOperation.READ | CoreResourceOperation.LIST, z.ZodObject<{
|
|
273
|
+
workbenchBuildDispatchPlanId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
274
|
+
taskRef: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
275
|
+
objective: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
276
|
+
targetKind: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
277
|
+
generationStepRef: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
278
|
+
allowedPathPrefixes: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
279
|
+
prohibitedPathPrefixes: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
280
|
+
requiredChecks: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
281
|
+
installedSkillRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
282
|
+
readyTaskRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
283
|
+
landedTaskRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
284
|
+
unverifiableLandedTaskRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
285
|
+
exhausted: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
286
|
+
stuckTasks: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
|
|
287
|
+
taskRef: z.ZodString;
|
|
288
|
+
reason: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("./workbench-creation-plane.custom.shared.schemas").Workbench_BuildTaskStuckReason>>;
|
|
289
|
+
priorTaskId: z.ZodNullable<z.ZodString>;
|
|
290
|
+
uncommittedPaths: z.ZodArray<z.ZodString>;
|
|
291
|
+
question: z.ZodNullable<z.ZodString>;
|
|
292
|
+
documentRef: z.ZodNullable<z.ZodString>;
|
|
293
|
+
}, z.core.$strip>>>;
|
|
294
|
+
taskCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
295
|
+
landedCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
296
|
+
}, z.core.$strip>>;
|
|
297
|
+
workbenchBuildDispatches: (resourcesRelationships: ResourceRelationship[]) => import("@wildo-ai/saas-models").ResourceConfiguration<any, CoreResourceOperation.READ | CoreResourceOperation.LIST, z.ZodObject<{
|
|
298
|
+
workbenchBuildDispatchId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
299
|
+
taskRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
300
|
+
objective: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
301
|
+
phase: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("./workbench-creation-plane.custom.shared.schemas").Workbench_BuildDispatchPhase>>>;
|
|
302
|
+
startedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
|
|
303
|
+
settledAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
|
|
304
|
+
codingTaskId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
|
|
305
|
+
error: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
306
|
+
conversationId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
307
|
+
accepted: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>>;
|
|
308
|
+
}, z.core.$strip>>;
|
|
309
|
+
workbenchPlaybookRuns: (resourcesRelationships: ResourceRelationship[]) => import("@wildo-ai/saas-models").ResourceConfiguration<any, CoreResourceOperation.READ | CoreResourceOperation.LIST, z.ZodObject<{
|
|
310
|
+
workbenchPlaybookRunId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
311
|
+
runId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
312
|
+
playbookRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
313
|
+
instanceKey: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
314
|
+
traceSessionId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
315
|
+
conversationId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
316
|
+
state: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("./workbench-creation-plane.custom.shared.schemas").Workbench_PlaybookRunState>>>;
|
|
317
|
+
startedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
|
|
318
|
+
finishedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
|
|
319
|
+
ok: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>>;
|
|
320
|
+
error: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
321
|
+
completedIterations: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>>;
|
|
322
|
+
checkpointedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
|
|
323
|
+
awaitingFamily: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
324
|
+
awaitingRound: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>>;
|
|
325
|
+
judgeOverall: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("@wildo-ai/saas-models/meta-workflows").MetaWorkflow_EvaluationVerdict>>>>;
|
|
326
|
+
judgeCriteria: z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
327
|
+
criterionRef: z.ZodString;
|
|
328
|
+
verdict: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("@wildo-ai/saas-models/meta-workflows").MetaWorkflow_EvaluationVerdict>>;
|
|
329
|
+
rationale: z.ZodString;
|
|
330
|
+
}, z.core.$strip>>>;
|
|
331
|
+
judgeSkipped: z.ZodNullable<z.ZodString>;
|
|
332
|
+
}, z.core.$strip>>;
|
|
333
|
+
workbenchWaitingPlaybookRuns: (resourcesRelationships: ResourceRelationship[]) => import("@wildo-ai/saas-models").ResourceConfiguration<any, CoreResourceOperation.READ | CoreResourceOperation.LIST, z.ZodObject<{
|
|
334
|
+
workbenchWaitingPlaybookRunId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
335
|
+
runId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
336
|
+
readable: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
337
|
+
playbookRef: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
338
|
+
family: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
339
|
+
suspendedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
|
|
340
|
+
round: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>>;
|
|
341
|
+
dryRun: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>>;
|
|
342
|
+
requests: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodObject<{
|
|
343
|
+
ref: z.ZodString;
|
|
344
|
+
question: z.ZodString;
|
|
345
|
+
why: z.ZodString;
|
|
346
|
+
kind: z.ZodString;
|
|
347
|
+
options: z.ZodArray<z.ZodString>;
|
|
348
|
+
}, z.core.$strip>>>;
|
|
349
|
+
routedToUserId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
350
|
+
}, z.core.$strip>>;
|
|
351
|
+
workbenchCodingLaneStatus: (resourcesRelationships: ResourceRelationship[]) => import("@wildo-ai/saas-models").ResourceConfiguration<any, CoreResourceOperation.READ | CoreResourceOperation.LIST, z.ZodObject<{
|
|
352
|
+
workbenchCodingLaneStatusId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
353
|
+
codingAgentRegistered: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
354
|
+
codingAgentProviderRef: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
355
|
+
codingAgentSignedIn: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>>;
|
|
356
|
+
codingAgentLoginDetail: z.ZodNullable<z.ZodString>;
|
|
357
|
+
codingAgentLoginRemedy: z.ZodNullable<z.ZodString>;
|
|
358
|
+
activeRunTaskId: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
|
|
359
|
+
activeRunStartedAt: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>>;
|
|
360
|
+
lockFilePath: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
361
|
+
defaultTimeoutMs: z.ZodNumber;
|
|
362
|
+
hardMaxTimeoutMs: z.ZodNumber;
|
|
363
|
+
defaultMaxCapturedBytes: z.ZodNumber;
|
|
364
|
+
hardMaxCapturedBytes: z.ZodNumber;
|
|
365
|
+
}, z.core.$strip>>;
|
|
366
|
+
workbenchParkedCodingQuestions: (resourcesRelationships: ResourceRelationship[]) => import("@wildo-ai/saas-models").ResourceConfiguration<typeof import("./workbench-creation-plane.custom.shared.schemas").WorkbenchParkedCodingQuestions_Operations, CoreResourceOperation.READ | CoreResourceOperation.LIST, z.ZodObject<{
|
|
367
|
+
workbenchParkedCodingQuestionId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
368
|
+
taskId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
369
|
+
taskRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
370
|
+
question: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
371
|
+
parkedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDate>;
|
|
372
|
+
resumable: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
373
|
+
suspensionRef: z.ZodString;
|
|
374
|
+
}, z.core.$strip>>;
|
|
375
|
+
workbenchDossierEntries: (resourcesRelationships: ResourceRelationship[]) => import("@wildo-ai/saas-models").ResourceConfiguration<typeof import("./workbench-creation-plane.custom.shared.schemas").WorkbenchDossierEntries_Operations, CoreResourceOperation.READ | CoreResourceOperation.LIST, z.ZodObject<{
|
|
376
|
+
workbenchDossierEntryId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
377
|
+
playbookRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
378
|
+
questionRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
379
|
+
instanceKey: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
380
|
+
instancePurpose: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
381
|
+
question: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
382
|
+
kind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
383
|
+
options: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
384
|
+
position: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
385
|
+
standing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("./workbench-creation-plane.custom.shared.schemas").WorkbenchDossierEntryStanding>>>;
|
|
386
|
+
value: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
387
|
+
answeredAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodDate>>;
|
|
388
|
+
answeredByRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
389
|
+
playbookEligible: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
390
|
+
askedNow: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
391
|
+
affectsFamilies: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
392
|
+
subject: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchSpecificationArtifactConcern>>>;
|
|
393
|
+
outOfDate: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
394
|
+
outOfDateStepRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
395
|
+
sharedWithPlaybookRefs: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodArray<z.ZodString>>;
|
|
396
|
+
}, z.core.$strip>>;
|
|
397
|
+
workbenchCreationHomeLines: (resourcesRelationships: ResourceRelationship[]) => import("@wildo-ai/saas-models").ResourceConfiguration<any, CoreResourceOperation.READ | CoreResourceOperation.LIST, z.ZodObject<{
|
|
398
|
+
workbenchCreationHomeLineId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
399
|
+
section: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("./workbench-creation-plane.custom.shared.schemas").WorkbenchCreationHomeSection>>>;
|
|
400
|
+
kind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("./workbench-creation-plane.custom.shared.schemas").WorkbenchCreationHomeLineKind>>>;
|
|
401
|
+
at: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodDate>>;
|
|
402
|
+
playbookRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
403
|
+
taskRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
404
|
+
subject: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
405
|
+
failed: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
406
|
+
acceptable: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
407
|
+
needsAnswers: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodBoolean>;
|
|
408
|
+
stuckReason: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("./workbench-creation-plane.custom.shared.schemas").Workbench_BuildTaskStuckReason>>>>;
|
|
409
|
+
targetResourceType: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
410
|
+
targetResourceId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
411
|
+
}, z.core.$strip>>;
|
|
412
|
+
workbenchCreationOutcomes: (resourcesRelationships: ResourceRelationship[]) => import("@wildo-ai/saas-models").ResourceConfiguration<any, CoreResourceOperation.READ | CoreResourceOperation.LIST, z.ZodObject<{
|
|
413
|
+
workbenchCreationOutcomeId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
414
|
+
outcome: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("./workbench-creation-plane.custom.shared.schemas").WorkbenchCreationOutcome>>>;
|
|
415
|
+
status: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("./workbench-creation-plane.custom.shared.schemas").WorkbenchCreationOutcomeStatus>>>;
|
|
416
|
+
position: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
417
|
+
familiesTotal: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
418
|
+
familiesLanded: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
419
|
+
familiesInvalid: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
420
|
+
familiesMissing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
421
|
+
familiesStale: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
422
|
+
tasksTotal: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodNumber>>;
|
|
423
|
+
tasksLanded: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodNumber>>;
|
|
424
|
+
unavailableRuntimes: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
425
|
+
}, z.core.$strip>>;
|
|
426
|
+
workbenchApplicationSecrets: (resourcesRelationships: ResourceRelationship[]) => import("@wildo-ai/saas-models").ResourceConfiguration<typeof import("./workbench-creation-plane.custom.shared.schemas").WorkbenchApplicationSecrets_Operations, CoreResourceOperation.READ | CoreResourceOperation.LIST, z.ZodObject<{
|
|
427
|
+
workbenchApplicationSecretId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
428
|
+
environmentName: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
429
|
+
envVarName: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
430
|
+
standing: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("./workbench-creation-plane.custom.shared.schemas").ApplicationSecretStanding>>>;
|
|
431
|
+
kind: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("./workbench-creation-plane.custom.shared.schemas").ApplicationSecretKind>>>;
|
|
432
|
+
ownerRef: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
433
|
+
description: z.ZodNullable<z.ZodString>;
|
|
434
|
+
capabilities: z.ZodArray<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("@wildo-ai/saas-models").EngineCapability>>>;
|
|
435
|
+
runtimes: z.ZodArray<z.ZodString>;
|
|
436
|
+
creationEssential: z.ZodBoolean;
|
|
437
|
+
remoteLevel: z.ZodNullable<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("./workbench-creation-plane.custom.shared.schemas").ApplicationSecretRemoteLevel>>>;
|
|
438
|
+
}, z.core.$strip>>;
|
|
225
439
|
workbenchDomainResources: (resourcesRelationships: ResourceRelationship[]) => import("@wildo-ai/saas-models").ResourceConfiguration<any, WorkbenchDomainResource_CoreOperations, z.ZodObject<{
|
|
226
440
|
workbenchDomainResourceId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
|
|
227
441
|
resourceType: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
@@ -247,6 +461,8 @@ export declare const workbenchShared_ResourcesConfigurationsFactoryMap: {
|
|
|
247
461
|
isUnimplemented: z.ZodBoolean;
|
|
248
462
|
isDisabled: z.ZodBoolean;
|
|
249
463
|
requiresStepUpAuthentication: z.ZodBoolean;
|
|
464
|
+
idempotencyKey: z.ZodNullable<z.ZodString>;
|
|
465
|
+
submissionChallengeAction: z.ZodNullable<z.ZodString>;
|
|
250
466
|
admitsCrossTenantPlatformAdministration: z.ZodBoolean;
|
|
251
467
|
auditableEventType: z.ZodNullable<z.ZodString>;
|
|
252
468
|
isMcpExposed: z.ZodBoolean;
|
|
@@ -286,8 +502,8 @@ export declare const workbenchShared_ResourcesConfigurationsFactoryMap: {
|
|
|
286
502
|
title: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
287
503
|
description: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
288
504
|
contentSummary: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
289
|
-
concern: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchSpecificationArtifactConcern
|
|
290
|
-
state: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchSpecificationArtifactState
|
|
505
|
+
concern: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchSpecificationArtifactConcern>>>;
|
|
506
|
+
state: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchSpecificationArtifactState>>>;
|
|
291
507
|
schemaRef: z.ZodString;
|
|
292
508
|
sourcePath: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
293
509
|
errorCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
@@ -296,6 +512,10 @@ export declare const workbenchShared_ResourcesConfigurationsFactoryMap: {
|
|
|
296
512
|
content: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
297
513
|
document: z.ZodNullable<z.ZodString>;
|
|
298
514
|
issues: z.ZodNullable<z.ZodString>;
|
|
515
|
+
warnings: z.ZodArray<z.ZodObject<{
|
|
516
|
+
path: z.ZodString;
|
|
517
|
+
message: z.ZodString;
|
|
518
|
+
}, z.core.$strip>>;
|
|
299
519
|
decisionRecord: z.ZodNullable<z.ZodString>;
|
|
300
520
|
diagram: z.ZodNullable<z.ZodString>;
|
|
301
521
|
}, z.core.$strip>>;
|
package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workbench-resources.custom.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"workbench-resources.custom.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../src/workbench/workbench-resources.custom.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,qBAAqB,EAIrB,0BAA0B,EAC1B,4BAA4B,EAC5B,oBAAoB,EAMrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,OAAO,EAGL,qCAAqC,EACrC,mCAAmC,EACpC,MAAM,6CAA6C,CAAC;AAMrD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,yCAAyC,OAAO,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,wBAAwB;;;;;EA6BvC;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B;;;;;;EAK3C;AAGD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,sCAAsC,EAAE,oBAAoB,EA2CxE,CAAC;AAsBF,KAAK,sCAAsC,GACvC,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,IAAI,CAAC;AAE/B,eAAO,MAAM,oEAAoE,GAC9E,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkC7C,CAAC;AAiCL,KAAK,6CAA6C,GAC9C,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,IAAI,CAAC;AAE/B,eAAO,MAAM,2EAA2E,GACrF,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;kBA+C7C,CAAC;AAEL,eAAO,MAAM,iDAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAzHnC,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8DAwEtB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;CA0DhD,CAAC"}
|
|
@@ -265,8 +265,8 @@ export const workbenchSpecificationArtifacts_ResourceConfiguration_Initializatio
|
|
|
265
265
|
* tab strip silently never renders.
|
|
266
266
|
*/
|
|
267
267
|
filterFields: {
|
|
268
|
-
concern: z.enum(WorkbenchSpecificationArtifactConcern),
|
|
269
|
-
state: z.enum(WorkbenchSpecificationArtifactState),
|
|
268
|
+
concern: z.enum(WorkbenchSpecificationArtifactConcern).systemEnum('WorkbenchSpecificationArtifactConcern'),
|
|
269
|
+
state: z.enum(WorkbenchSpecificationArtifactState).systemEnum('WorkbenchSpecificationArtifactState'),
|
|
270
270
|
},
|
|
271
271
|
}],
|
|
272
272
|
},
|
package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workbench-resources.custom.shared.resources-config.schemas.js","sourceRoot":"","sources":["../../../../src/workbench/workbench-resources.custom.shared.resources-config.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CORE_APP_ROLES,\n CoreResourceOperation,\n CoreResourceType,\n IntrospectionTenancyStance,\n PersistenceAdapter,\n ResourceOperationRiskLevel,\n ResourceOperationVariantType,\n ResourceRelationship,\n ResourceRelationshipAccessScopeStrategy,\n ResourceRelationshipCardinality,\n RelationshipNature,\n createResourceConfiguration_Initialization,\n createResourcesRelationship,\n} from '@wildo-ai/saas-models';\n\nimport { z } from 'zod';\n\nimport {\n WorkbenchShared_ResourceFieldIdentifier,\n WorkbenchShared_ResourceType,\n} from './workbench-resources-types.custom.shared.schemas';\nimport {\n buildWorkbenchAspectRelationships,\n workbenchAspectResources_ConfigurationsFactoryMap,\n} from './workbench-aspect-resources.custom.shared.schemas';\nimport {\n Workbench_DomainResource_Schema,\n Workbench_SpecificationArtifact_Schema,\n WorkbenchSpecificationArtifactConcern,\n WorkbenchSpecificationArtifactState,\n} from './workbench-resources.custom.shared.schemas';\nimport {\n workbenchCreationPlane_ResourcesConfigurationsFactoryMap,\n workbenchCreationPlane_ResourcesRelationships,\n} from './workbench-creation-plane.custom.shared.resources-config.schemas';\n\n/**\n * The page ceiling every workbench LIST declares — and it is a correctness fix, not a tuning knob.\n *\n * `IntrospectionResourceRepository.list()` answers `pagination.limit = rows.length` over the WHOLE\n * derived set, deliberately: a behavior computes its entire answer in one subprocess run, there is no\n * cursor to seek, and reporting a total the caller cannot page past would be a lie. The response DTO\n * then bounds that `limit` by the operation's `maxPaginatedResultPerPageLimit`, whose default is\n * **100**. So any introspected resource whose derivation exceeds 100 rows fails with `too_big` at\n * `pagination.limit` — the request having been served correctly right up to the last hop.\n *\n * Measured 2026-08-31, and the measurement is why this ceiling is a CORRECTNESS FIX rather than\n * headroom. The domain model projects every resource the observed application RUNS, which is its own\n * plus the engine's whole merged vocabulary: `saas-models`' core map alone carries **82** resources\n * and **105** relationships before `saas-backend-lib`'s map or the application's own eight are\n * counted. So the domain-model LIST is already comfortably past the default 100 on the smallest\n * application there is, and would have failed with `too_big` at `pagination.limit` — the request\n * having been served correctly right up to the last hop, and the bound named in none of these\n * declarations. The number also scales with the OBSERVED application, which is the one input this\n * repository does not control.\n *\n * Declared on the shared variant so every workbench resource is bounded by the same number, rather\n * than one being raised and its siblings left waiting to hit the same wall.\n *\n * Above the ceiling the request FAILS rather than truncating, which is the correct direction: a\n * silently short domain model is indistinguishable from a complete one once it is drawn.\n */\nexport const WORKBENCH_INTROSPECTION_MAX_ROWS_PER_PAGE = 1000;\n\n/**\n * Read-only over HTTP, and PUBLIC.\n *\n * `APP_PUBLIC` means what its enum comment says — accessible to everyone, no credential — and as of\n * 2026-08-30 the runtime implements it: the authentication chain now admits an operation declaring\n * this role instead of demanding a credential it never required. Before that it was declared,\n * published as public by the OpenAPI generator, and refused at runtime.\n *\n * ## Why these rows are genuinely public\n *\n * They are a projection of the application's OWN SOURCE — module ids and the resource types each\n * registers — carrying no tenant dimension, which is exactly what the binding's\n * `APPLICATION_STRUCTURE` tenancy stance declares. There is no subject whose data could leak,\n * because no subject's data is here.\n *\n * This is the same category as a public price list, a frontend application configuration or an i18n\n * bundle: things every caller may read, which until now could only be served by escaping the\n * resource system into a manual controller.\n *\n * ## What still confines them\n *\n * The companion asserts a loopback bind at startup and fails closed otherwise, so this surface is\n * reachable only from the developer's own machine. `APP_PUBLIC` is the right declaration on its\n * merits; the loopback bind is what makes the whole workbench local, and both remain true\n * independently.\n *\n * If an introspected resource is ever added that projects something OTHER than the application's own\n * structure, this role is wrong for it — the stance and the role must move together.\n */\nexport function createReadOnlyApiVariant() {\n return {\n variantType: ResourceOperationVariantType.API_CALL as const,\n isDefault: true as const,\n /*\n * `APP_PUBLIC` ALONE, and that single entry is now load-bearing evidence rather than a shorthand.\n *\n * It briefly read `[APP_PUBLIC, APP_USER]`. That was a WORKAROUND for an engine defect (#153),\n * not a statement about these rows: the authorizer admitted a public operation only when the\n * caller was ALSO a public execution, so an AUTHENTICATED caller fell past that carve-out to the\n * ordinary role gate — where `APP_PUBLIC` is in nobody's granted set — and was refused. Measured\n * 2026-08-31 on the workbench's module projection (a resource retired the same day): with no\n * credential the LIST answered 200 with the eight modules; with a valid administrator bearer it\n * answered 403 `authorizations_access_denied`. The workbench's own sidebar could not read the\n * rows it exists to show, because its operator had logged in.\n *\n * `requiredRolesDeclarePublicAccess` in `@wildo-ai/saas-models` is now the one named source for\n * what `APP_PUBLIC` means, and every role gate in the engine consults it — so the sentinel\n * genuinely admits every caller and the second role has nothing left to add. Declaring it anyway\n * would say these rows need an authenticated reader, which is the opposite of what they are.\n *\n * Keeping the bare declaration is deliberate: it is the surface the fix is exercised on. If the\n * defect ever returns, the workbench sidebar goes blank for a logged-in operator — a loud,\n * immediate signal — instead of being silently masked by a role that was only ever there to hide\n * it.\n */\n roles: [CORE_APP_ROLES.APP_PUBLIC],\n riskLevel: ResourceOperationRiskLevel.LOW as const,\n };\n}\n\n/**\n * The LIST variant — the read-only variant plus the page ceiling.\n *\n * Separate from {@link createReadOnlyApiVariant} because `maxPaginatedResultPerPageLimit` is only\n * read on a LIST-like operation (`isListLike` in the resource factory); putting it on READ too would\n * declare a field that operation does not have, which reads as though it did something.\n */\nexport function createReadOnlyListApiVariant() {\n return {\n ...createReadOnlyApiVariant(),\n maxPaginatedResultPerPageLimit: WORKBENCH_INTROSPECTION_MAX_ROWS_PER_PAGE,\n };\n}\n\n\n/**\n * APPLICATION-scoped, anchored by a STANDALONE relationship.\n *\n * The form the resource factory's own migration note prescribes: STANDALONE \"keeps the rel inert for\n * URL routing while declaring the structural ownership anchor\", so the resource is reachable at a\n * flat path rather than nested under `/applications/:id/`.\n *\n * APPLICATION rather than ORGANIZATIONS on purpose: these rows describe the application's own\n * structure, so the application IS their scope. There is no tenant dimension to anchor on — the\n * binding's `APPLICATION_STRUCTURE` stance above says the same thing from the data's side.\n *\n * This originally read as a consequence of API-key scoping, because the workbench browser was\n * expected to authenticate with an application-scope key. `APP_PUBLIC` removed that requirement\n * entirely (see the role note above), so the scope now rests on its own merits rather than on a\n * credential's constraint. The tenant-scoping trade remains recorded in issue #118.\n */\nexport const workbenchShared_ResourcesRelationships: ResourceRelationship[] = [\n /*\n * A STANDALONE anchor for the domain-model resource. Every INTROSPECTION resource needs one:\n * `resourcePrimaryScope` is DERIVED from a relationship flagged `isPrimaryScope`, so a resource\n * without one has no scope at all — and STANDALONE keeps it off the URL, which is what gives these\n * resources a flat route instead of `/applications/:id/...`.\n */\n createResourcesRelationship(\n CoreResourceType.APPLICATION,\n WorkbenchShared_ResourceType.DOMAIN_RESOURCES,\n ResourceRelationshipCardinality.ONE,\n ResourceRelationshipCardinality.MANY,\n {\n nature: RelationshipNature.COMPOSITION,\n isPrimaryScope: true,\n accessScopeStrategy: ResourceRelationshipAccessScopeStrategy.STANDALONE,\n contextPolicy: {},\n },\n ),\n /* And for the specification-artifacts resource. Same anchor, same reason. */\n createResourcesRelationship(\n CoreResourceType.APPLICATION,\n WorkbenchShared_ResourceType.SPECIFICATION_ARTIFACTS,\n ResourceRelationshipCardinality.ONE,\n ResourceRelationshipCardinality.MANY,\n {\n nature: RelationshipNature.COMPOSITION,\n isPrimaryScope: true,\n accessScopeStrategy: ResourceRelationshipAccessScopeStrategy.STANDALONE,\n contextPolicy: {},\n },\n ),\n /*\n * Every family-aspect resource's relationships — the same STANDALONE anchor per aspect, plus\n * one REFERENCE per declared edge whose `foreignKeyField` is what makes reference navigation\n * resolve. Generated from the descriptor table beside the aspect configs.\n */\n ...buildWorkbenchAspectRelationships(),\n /*\n * The creation plane's four STANDALONE anchors — same form, declared beside its configs. Merged\n * here so the one array every registrar consumes stays the single relationship authority.\n */\n ...workbenchCreationPlane_ResourcesRelationships,\n];\n\n\n/**\n * The observed application's domain model — one row per resource, and the source the workbench's\n * domain-model graph is drawn from.\n *\n * ## Why a THIRD introspected resource beside modules and relationships\n *\n * Its two siblings project two DIFFERENT behaviors on two different targets, so a graph assembled\n * from both is assembled from two subprocess runs against a working tree an operator is editing —\n * nodes from one state of the application, edges from the next, with nothing to detect the mismatch.\n * `application-domain-model` answers ownership, edges, field names and specification prose from a\n * SINGLE import, which is the only shape in which the three are internally consistent. Speed is the\n * smaller half of the reason; consistency is the whole of it.\n *\n * Same tenancy stance and same PUBLIC role as its siblings, for the same reason: a resource, the\n * module that registers it and the edges it declares are facts about the application's SOURCE, with\n * no tenant dimension and no subject whose data could leak.\n */\nconst WorkbenchDomainResource_Operations = undefined;\n\ntype WorkbenchDomainResource_CoreOperations =\n | CoreResourceOperation.READ\n | CoreResourceOperation.LIST;\n\nexport const workbenchDomainResources_ResourceConfiguration_InitializationFactory =\n (resourcesRelationships: ResourceRelationship[]) => createResourceConfiguration_Initialization<\n typeof WorkbenchDomainResource_Operations,\n WorkbenchDomainResource_CoreOperations,\n typeof Workbench_DomainResource_Schema\n >({\n mainSchema: Workbench_DomainResource_Schema,\n resourceIdentifier: WorkbenchShared_ResourceType.DOMAIN_RESOURCES,\n resourceFieldIdentifier:\n WorkbenchShared_ResourceFieldIdentifier[WorkbenchShared_ResourceType.DOMAIN_RESOURCES],\n resourceRelationships: resourcesRelationships,\n isSystemResource: false,\n persistenceAdapter: PersistenceAdapter.INTROSPECTION,\n introspectionBinding: {\n behavior: 'application-domain-model',\n rowsPath: 'domainResources',\n tenancy: IntrospectionTenancyStance.APPLICATION_STRUCTURE,\n /*\n * A resource type is unique in a registry by construction — a registry is keyed by it — so one\n * field is the whole key here, and no discriminator can be needed.\n *\n * Composed onto `workbenchDomainResourceId` rather than addressing the row by `resourceType`\n * directly: `resourceFieldIdentifier` values are published into the GLOBAL field-identifier map\n * that resolves a foreign-key field NAME to the resource it points at, and `resourceType` is a\n * name any application could collide with on a map whose whole job is that names are\n * unambiguous.\n */\n identityFields: ['resourceType'],\n },\n coreOperations: [CoreResourceOperation.READ, CoreResourceOperation.LIST],\n customOperation: WorkbenchDomainResource_Operations,\n operationsConfiguration: {\n [CoreResourceOperation.READ]: { variants: [createReadOnlyApiVariant()] },\n [CoreResourceOperation.LIST]: { variants: [createReadOnlyListApiVariant()] },\n },\n });\n\n/**\n * Every application-specification family the journey produces, projected for a human reviewer.\n *\n * ## What this is for\n *\n * Its three siblings project the application's STRUCTURE. This one projects the PRODUCT and its\n * obligations — vision, market, requirements, roadmap, brand, business model, the assurance\n * programme and the governed-document families — which until now were reachable only by opening a\n * TypeScript file in an editor (issue #162).\n *\n * ## Why the same behavior does not serve it\n *\n * `application-domain-model` answers questions about the resource registry. A family's content is\n * not in the registry at all: it is on the specifications package's companion exports, validated by\n * the `_core` validator the semantic authority names for it. Different target, different question,\n * different behavior — the split the two original workbench resources already demonstrate.\n *\n * ## Same posture as its siblings, for the same reason\n *\n * `APPLICATION_STRUCTURE` tenancy and `APP_PUBLIC`: a vision brief, a roadmap and a compliance\n * programme are facts about what the application's own source SAYS about itself. There is no tenant\n * dimension and no subject whose data could leak, and the companion's loopback bind is what keeps\n * the whole workbench local.\n *\n * READ and LIST only, and structurally so — `PersistenceAdapter.INTROSPECTION` refuses every write\n * verb, rows are derived per read and nothing is stored. Acceptance of a specification is a human\n * git commit (`.claude/rules/one-source-of-truth.md` rule 2), so there is deliberately no place here\n * for an acceptance state to accumulate, not even by accident.\n */\nconst WorkbenchSpecificationArtifact_Operations = undefined;\n\ntype WorkbenchSpecificationArtifact_CoreOperations =\n | CoreResourceOperation.READ\n | CoreResourceOperation.LIST;\n\nexport const workbenchSpecificationArtifacts_ResourceConfiguration_InitializationFactory =\n (resourcesRelationships: ResourceRelationship[]) => createResourceConfiguration_Initialization<\n typeof WorkbenchSpecificationArtifact_Operations,\n WorkbenchSpecificationArtifact_CoreOperations,\n typeof Workbench_SpecificationArtifact_Schema\n >({\n mainSchema: Workbench_SpecificationArtifact_Schema,\n resourceIdentifier: WorkbenchShared_ResourceType.SPECIFICATION_ARTIFACTS,\n resourceFieldIdentifier:\n WorkbenchShared_ResourceFieldIdentifier[WorkbenchShared_ResourceType.SPECIFICATION_ARTIFACTS],\n resourceRelationships: resourcesRelationships,\n isSystemResource: false,\n persistenceAdapter: PersistenceAdapter.INTROSPECTION,\n introspectionBinding: {\n behavior: 'specification-artifacts',\n rowsPath: 'artifacts',\n tenancy: IntrospectionTenancyStance.APPLICATION_STRUCTURE,\n /*\n * NO `identityFields`, and the omission is the point.\n *\n * Every row already carries `family`, and `family` IS this resource's\n * `resourceFieldIdentifier` — so there is nothing to compose. This is the `moduleId` case, not\n * the relationships one: declaring an identity here would stamp a composed key over a real\n * field, replacing the source's own id with a copy of itself.\n */\n },\n coreOperations: [CoreResourceOperation.READ, CoreResourceOperation.LIST],\n customOperation: WorkbenchSpecificationArtifact_Operations,\n operationsConfiguration: {\n [CoreResourceOperation.READ]: { variants: [createReadOnlyApiVariant()] },\n [CoreResourceOperation.LIST]: {\n variants: [{\n ...createReadOnlyListApiVariant(),\n /*\n * The two review axes a reader slices fifteen rows by. Declaring them is an OBLIGATION,\n * not a hint: the introspection source honors exactly the scalar-equality/IN filters that\n * reach it and REFUSES shapes it cannot apply, because a declared filter that is silently\n * dropped returns the unfiltered set wearing a filtered label — the `--state ready` defect\n * class. The frontend's concern quick-filter tabs require `concern` to be here, or the\n * tab strip silently never renders.\n */\n filterFields: {\n concern: z.enum(WorkbenchSpecificationArtifactConcern),\n state: z.enum(WorkbenchSpecificationArtifactState),\n },\n }],\n },\n },\n });\n\nexport const workbenchShared_ResourcesConfigurationsFactoryMap = {\n [WorkbenchShared_ResourceType.DOMAIN_RESOURCES]:\n workbenchDomainResources_ResourceConfiguration_InitializationFactory,\n [WorkbenchShared_ResourceType.SPECIFICATION_ARTIFACTS]:\n workbenchSpecificationArtifacts_ResourceConfiguration_InitializationFactory,\n // The 40 family-aspect resources — generated from the descriptor table, one mold for all.\n ...workbenchAspectResources_ConfigurationsFactoryMap,\n // The creation plane — companion-RUNTIME projections (authenticated, APPLICATION_RUNTIME tenancy).\n ...workbenchCreationPlane_ResourcesConfigurationsFactoryMap,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"workbench-resources.custom.shared.resources-config.schemas.js","sourceRoot":"","sources":["../../../../src/workbench/workbench-resources.custom.shared.resources-config.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CORE_APP_ROLES,\n CoreResourceOperation,\n CoreResourceType,\n IntrospectionTenancyStance,\n PersistenceAdapter,\n ResourceOperationRiskLevel,\n ResourceOperationVariantType,\n ResourceRelationship,\n ResourceRelationshipAccessScopeStrategy,\n ResourceRelationshipCardinality,\n RelationshipNature,\n createResourceConfiguration_Initialization,\n createResourcesRelationship,\n} from '@wildo-ai/saas-models';\n\nimport { z } from 'zod';\n\nimport {\n WorkbenchShared_ResourceFieldIdentifier,\n WorkbenchShared_ResourceType,\n} from './workbench-resources-types.custom.shared.schemas';\nimport {\n buildWorkbenchAspectRelationships,\n workbenchAspectResources_ConfigurationsFactoryMap,\n} from './workbench-aspect-resources.custom.shared.schemas';\nimport {\n Workbench_DomainResource_Schema,\n Workbench_SpecificationArtifact_Schema,\n WorkbenchSpecificationArtifactConcern,\n WorkbenchSpecificationArtifactState,\n} from './workbench-resources.custom.shared.schemas';\nimport {\n workbenchCreationPlane_ResourcesConfigurationsFactoryMap,\n workbenchCreationPlane_ResourcesRelationships,\n} from './workbench-creation-plane.custom.shared.resources-config.schemas';\n\n/**\n * The page ceiling every workbench LIST declares — and it is a correctness fix, not a tuning knob.\n *\n * `IntrospectionResourceRepository.list()` answers `pagination.limit = rows.length` over the WHOLE\n * derived set, deliberately: a behavior computes its entire answer in one subprocess run, there is no\n * cursor to seek, and reporting a total the caller cannot page past would be a lie. The response DTO\n * then bounds that `limit` by the operation's `maxPaginatedResultPerPageLimit`, whose default is\n * **100**. So any introspected resource whose derivation exceeds 100 rows fails with `too_big` at\n * `pagination.limit` — the request having been served correctly right up to the last hop.\n *\n * Measured 2026-08-31, and the measurement is why this ceiling is a CORRECTNESS FIX rather than\n * headroom. The domain model projects every resource the observed application RUNS, which is its own\n * plus the engine's whole merged vocabulary: `saas-models`' core map alone carries **82** resources\n * and **105** relationships before `saas-backend-lib`'s map or the application's own eight are\n * counted. So the domain-model LIST is already comfortably past the default 100 on the smallest\n * application there is, and would have failed with `too_big` at `pagination.limit` — the request\n * having been served correctly right up to the last hop, and the bound named in none of these\n * declarations. The number also scales with the OBSERVED application, which is the one input this\n * repository does not control.\n *\n * Declared on the shared variant so every workbench resource is bounded by the same number, rather\n * than one being raised and its siblings left waiting to hit the same wall.\n *\n * Above the ceiling the request FAILS rather than truncating, which is the correct direction: a\n * silently short domain model is indistinguishable from a complete one once it is drawn.\n */\nexport const WORKBENCH_INTROSPECTION_MAX_ROWS_PER_PAGE = 1000;\n\n/**\n * Read-only over HTTP, and PUBLIC.\n *\n * `APP_PUBLIC` means what its enum comment says — accessible to everyone, no credential — and as of\n * 2026-08-30 the runtime implements it: the authentication chain now admits an operation declaring\n * this role instead of demanding a credential it never required. Before that it was declared,\n * published as public by the OpenAPI generator, and refused at runtime.\n *\n * ## Why these rows are genuinely public\n *\n * They are a projection of the application's OWN SOURCE — module ids and the resource types each\n * registers — carrying no tenant dimension, which is exactly what the binding's\n * `APPLICATION_STRUCTURE` tenancy stance declares. There is no subject whose data could leak,\n * because no subject's data is here.\n *\n * This is the same category as a public price list, a frontend application configuration or an i18n\n * bundle: things every caller may read, which until now could only be served by escaping the\n * resource system into a manual controller.\n *\n * ## What still confines them\n *\n * The companion asserts a loopback bind at startup and fails closed otherwise, so this surface is\n * reachable only from the developer's own machine. `APP_PUBLIC` is the right declaration on its\n * merits; the loopback bind is what makes the whole workbench local, and both remain true\n * independently.\n *\n * If an introspected resource is ever added that projects something OTHER than the application's own\n * structure, this role is wrong for it — the stance and the role must move together.\n */\nexport function createReadOnlyApiVariant() {\n return {\n variantType: ResourceOperationVariantType.API_CALL as const,\n isDefault: true as const,\n /*\n * `APP_PUBLIC` ALONE, and that single entry is now load-bearing evidence rather than a shorthand.\n *\n * It briefly read `[APP_PUBLIC, APP_USER]`. That was a WORKAROUND for an engine defect (#153),\n * not a statement about these rows: the authorizer admitted a public operation only when the\n * caller was ALSO a public execution, so an AUTHENTICATED caller fell past that carve-out to the\n * ordinary role gate — where `APP_PUBLIC` is in nobody's granted set — and was refused. Measured\n * 2026-08-31 on the workbench's module projection (a resource retired the same day): with no\n * credential the LIST answered 200 with the eight modules; with a valid administrator bearer it\n * answered 403 `authorizations_access_denied`. The workbench's own sidebar could not read the\n * rows it exists to show, because its operator had logged in.\n *\n * `requiredRolesDeclarePublicAccess` in `@wildo-ai/saas-models` is now the one named source for\n * what `APP_PUBLIC` means, and every role gate in the engine consults it — so the sentinel\n * genuinely admits every caller and the second role has nothing left to add. Declaring it anyway\n * would say these rows need an authenticated reader, which is the opposite of what they are.\n *\n * Keeping the bare declaration is deliberate: it is the surface the fix is exercised on. If the\n * defect ever returns, the workbench sidebar goes blank for a logged-in operator — a loud,\n * immediate signal — instead of being silently masked by a role that was only ever there to hide\n * it.\n */\n roles: [CORE_APP_ROLES.APP_PUBLIC],\n riskLevel: ResourceOperationRiskLevel.LOW as const,\n };\n}\n\n/**\n * The LIST variant — the read-only variant plus the page ceiling.\n *\n * Separate from {@link createReadOnlyApiVariant} because `maxPaginatedResultPerPageLimit` is only\n * read on a LIST-like operation (`isListLike` in the resource factory); putting it on READ too would\n * declare a field that operation does not have, which reads as though it did something.\n */\nexport function createReadOnlyListApiVariant() {\n return {\n ...createReadOnlyApiVariant(),\n maxPaginatedResultPerPageLimit: WORKBENCH_INTROSPECTION_MAX_ROWS_PER_PAGE,\n };\n}\n\n\n/**\n * APPLICATION-scoped, anchored by a STANDALONE relationship.\n *\n * The form the resource factory's own migration note prescribes: STANDALONE \"keeps the rel inert for\n * URL routing while declaring the structural ownership anchor\", so the resource is reachable at a\n * flat path rather than nested under `/applications/:id/`.\n *\n * APPLICATION rather than ORGANIZATIONS on purpose: these rows describe the application's own\n * structure, so the application IS their scope. There is no tenant dimension to anchor on — the\n * binding's `APPLICATION_STRUCTURE` stance above says the same thing from the data's side.\n *\n * This originally read as a consequence of API-key scoping, because the workbench browser was\n * expected to authenticate with an application-scope key. `APP_PUBLIC` removed that requirement\n * entirely (see the role note above), so the scope now rests on its own merits rather than on a\n * credential's constraint. The tenant-scoping trade remains recorded in issue #118.\n */\nexport const workbenchShared_ResourcesRelationships: ResourceRelationship[] = [\n /*\n * A STANDALONE anchor for the domain-model resource. Every INTROSPECTION resource needs one:\n * `resourcePrimaryScope` is DERIVED from a relationship flagged `isPrimaryScope`, so a resource\n * without one has no scope at all — and STANDALONE keeps it off the URL, which is what gives these\n * resources a flat route instead of `/applications/:id/...`.\n */\n createResourcesRelationship(\n CoreResourceType.APPLICATION,\n WorkbenchShared_ResourceType.DOMAIN_RESOURCES,\n ResourceRelationshipCardinality.ONE,\n ResourceRelationshipCardinality.MANY,\n {\n nature: RelationshipNature.COMPOSITION,\n isPrimaryScope: true,\n accessScopeStrategy: ResourceRelationshipAccessScopeStrategy.STANDALONE,\n contextPolicy: {},\n },\n ),\n /* And for the specification-artifacts resource. Same anchor, same reason. */\n createResourcesRelationship(\n CoreResourceType.APPLICATION,\n WorkbenchShared_ResourceType.SPECIFICATION_ARTIFACTS,\n ResourceRelationshipCardinality.ONE,\n ResourceRelationshipCardinality.MANY,\n {\n nature: RelationshipNature.COMPOSITION,\n isPrimaryScope: true,\n accessScopeStrategy: ResourceRelationshipAccessScopeStrategy.STANDALONE,\n contextPolicy: {},\n },\n ),\n /*\n * Every family-aspect resource's relationships — the same STANDALONE anchor per aspect, plus\n * one REFERENCE per declared edge whose `foreignKeyField` is what makes reference navigation\n * resolve. Generated from the descriptor table beside the aspect configs.\n */\n ...buildWorkbenchAspectRelationships(),\n /*\n * The creation plane's four STANDALONE anchors — same form, declared beside its configs. Merged\n * here so the one array every registrar consumes stays the single relationship authority.\n */\n ...workbenchCreationPlane_ResourcesRelationships,\n];\n\n\n/**\n * The observed application's domain model — one row per resource, and the source the workbench's\n * domain-model graph is drawn from.\n *\n * ## Why a THIRD introspected resource beside modules and relationships\n *\n * Its two siblings project two DIFFERENT behaviors on two different targets, so a graph assembled\n * from both is assembled from two subprocess runs against a working tree an operator is editing —\n * nodes from one state of the application, edges from the next, with nothing to detect the mismatch.\n * `application-domain-model` answers ownership, edges, field names and specification prose from a\n * SINGLE import, which is the only shape in which the three are internally consistent. Speed is the\n * smaller half of the reason; consistency is the whole of it.\n *\n * Same tenancy stance and same PUBLIC role as its siblings, for the same reason: a resource, the\n * module that registers it and the edges it declares are facts about the application's SOURCE, with\n * no tenant dimension and no subject whose data could leak.\n */\nconst WorkbenchDomainResource_Operations = undefined;\n\ntype WorkbenchDomainResource_CoreOperations =\n | CoreResourceOperation.READ\n | CoreResourceOperation.LIST;\n\nexport const workbenchDomainResources_ResourceConfiguration_InitializationFactory =\n (resourcesRelationships: ResourceRelationship[]) => createResourceConfiguration_Initialization<\n typeof WorkbenchDomainResource_Operations,\n WorkbenchDomainResource_CoreOperations,\n typeof Workbench_DomainResource_Schema\n >({\n mainSchema: Workbench_DomainResource_Schema,\n resourceIdentifier: WorkbenchShared_ResourceType.DOMAIN_RESOURCES,\n resourceFieldIdentifier:\n WorkbenchShared_ResourceFieldIdentifier[WorkbenchShared_ResourceType.DOMAIN_RESOURCES],\n resourceRelationships: resourcesRelationships,\n isSystemResource: false,\n persistenceAdapter: PersistenceAdapter.INTROSPECTION,\n introspectionBinding: {\n behavior: 'application-domain-model',\n rowsPath: 'domainResources',\n tenancy: IntrospectionTenancyStance.APPLICATION_STRUCTURE,\n /*\n * A resource type is unique in a registry by construction — a registry is keyed by it — so one\n * field is the whole key here, and no discriminator can be needed.\n *\n * Composed onto `workbenchDomainResourceId` rather than addressing the row by `resourceType`\n * directly: `resourceFieldIdentifier` values are published into the GLOBAL field-identifier map\n * that resolves a foreign-key field NAME to the resource it points at, and `resourceType` is a\n * name any application could collide with on a map whose whole job is that names are\n * unambiguous.\n */\n identityFields: ['resourceType'],\n },\n coreOperations: [CoreResourceOperation.READ, CoreResourceOperation.LIST],\n customOperation: WorkbenchDomainResource_Operations,\n operationsConfiguration: {\n [CoreResourceOperation.READ]: { variants: [createReadOnlyApiVariant()] },\n [CoreResourceOperation.LIST]: { variants: [createReadOnlyListApiVariant()] },\n },\n });\n\n/**\n * Every application-specification family the journey produces, projected for a human reviewer.\n *\n * ## What this is for\n *\n * Its three siblings project the application's STRUCTURE. This one projects the PRODUCT and its\n * obligations — vision, market, requirements, roadmap, brand, business model, the assurance\n * programme and the governed-document families — which until now were reachable only by opening a\n * TypeScript file in an editor (issue #162).\n *\n * ## Why the same behavior does not serve it\n *\n * `application-domain-model` answers questions about the resource registry. A family's content is\n * not in the registry at all: it is on the specifications package's companion exports, validated by\n * the `_core` validator the semantic authority names for it. Different target, different question,\n * different behavior — the split the two original workbench resources already demonstrate.\n *\n * ## Same posture as its siblings, for the same reason\n *\n * `APPLICATION_STRUCTURE` tenancy and `APP_PUBLIC`: a vision brief, a roadmap and a compliance\n * programme are facts about what the application's own source SAYS about itself. There is no tenant\n * dimension and no subject whose data could leak, and the companion's loopback bind is what keeps\n * the whole workbench local.\n *\n * READ and LIST only, and structurally so — `PersistenceAdapter.INTROSPECTION` refuses every write\n * verb, rows are derived per read and nothing is stored. Acceptance of a specification is a human\n * git commit (`.claude/rules/one-source-of-truth.md` rule 2), so there is deliberately no place here\n * for an acceptance state to accumulate, not even by accident.\n */\nconst WorkbenchSpecificationArtifact_Operations = undefined;\n\ntype WorkbenchSpecificationArtifact_CoreOperations =\n | CoreResourceOperation.READ\n | CoreResourceOperation.LIST;\n\nexport const workbenchSpecificationArtifacts_ResourceConfiguration_InitializationFactory =\n (resourcesRelationships: ResourceRelationship[]) => createResourceConfiguration_Initialization<\n typeof WorkbenchSpecificationArtifact_Operations,\n WorkbenchSpecificationArtifact_CoreOperations,\n typeof Workbench_SpecificationArtifact_Schema\n >({\n mainSchema: Workbench_SpecificationArtifact_Schema,\n resourceIdentifier: WorkbenchShared_ResourceType.SPECIFICATION_ARTIFACTS,\n resourceFieldIdentifier:\n WorkbenchShared_ResourceFieldIdentifier[WorkbenchShared_ResourceType.SPECIFICATION_ARTIFACTS],\n resourceRelationships: resourcesRelationships,\n isSystemResource: false,\n persistenceAdapter: PersistenceAdapter.INTROSPECTION,\n introspectionBinding: {\n behavior: 'specification-artifacts',\n rowsPath: 'artifacts',\n tenancy: IntrospectionTenancyStance.APPLICATION_STRUCTURE,\n /*\n * NO `identityFields`, and the omission is the point.\n *\n * Every row already carries `family`, and `family` IS this resource's\n * `resourceFieldIdentifier` — so there is nothing to compose. This is the `moduleId` case, not\n * the relationships one: declaring an identity here would stamp a composed key over a real\n * field, replacing the source's own id with a copy of itself.\n */\n },\n coreOperations: [CoreResourceOperation.READ, CoreResourceOperation.LIST],\n customOperation: WorkbenchSpecificationArtifact_Operations,\n operationsConfiguration: {\n [CoreResourceOperation.READ]: { variants: [createReadOnlyApiVariant()] },\n [CoreResourceOperation.LIST]: {\n variants: [{\n ...createReadOnlyListApiVariant(),\n /*\n * The two review axes a reader slices fifteen rows by. Declaring them is an OBLIGATION,\n * not a hint: the introspection source honors exactly the scalar-equality/IN filters that\n * reach it and REFUSES shapes it cannot apply, because a declared filter that is silently\n * dropped returns the unfiltered set wearing a filtered label — the `--state ready` defect\n * class. The frontend's concern quick-filter tabs require `concern` to be here, or the\n * tab strip silently never renders.\n */\n filterFields: {\n concern: z.enum(WorkbenchSpecificationArtifactConcern).systemEnum('WorkbenchSpecificationArtifactConcern'),\n state: z.enum(WorkbenchSpecificationArtifactState).systemEnum('WorkbenchSpecificationArtifactState'),\n },\n }],\n },\n },\n });\n\nexport const workbenchShared_ResourcesConfigurationsFactoryMap = {\n [WorkbenchShared_ResourceType.DOMAIN_RESOURCES]:\n workbenchDomainResources_ResourceConfiguration_InitializationFactory,\n [WorkbenchShared_ResourceType.SPECIFICATION_ARTIFACTS]:\n workbenchSpecificationArtifacts_ResourceConfiguration_InitializationFactory,\n // The 40 family-aspect resources — generated from the descriptor table, one mold for all.\n ...workbenchAspectResources_ConfigurationsFactoryMap,\n // The creation plane — companion-RUNTIME projections (authenticated, APPLICATION_RUNTIME tenancy).\n ...workbenchCreationPlane_ResourcesConfigurationsFactoryMap,\n};\n"]}
|
|
@@ -81,6 +81,8 @@ export declare const Workbench_DomainResource_Schema: z.ZodObject<{
|
|
|
81
81
|
isUnimplemented: z.ZodBoolean;
|
|
82
82
|
isDisabled: z.ZodBoolean;
|
|
83
83
|
requiresStepUpAuthentication: z.ZodBoolean;
|
|
84
|
+
idempotencyKey: z.ZodNullable<z.ZodString>;
|
|
85
|
+
submissionChallengeAction: z.ZodNullable<z.ZodString>;
|
|
84
86
|
admitsCrossTenantPlatformAdministration: z.ZodBoolean;
|
|
85
87
|
auditableEventType: z.ZodNullable<z.ZodString>;
|
|
86
88
|
isMcpExposed: z.ZodBoolean;
|
|
@@ -193,6 +195,15 @@ export declare enum WorkbenchSpecificationArtifactState {
|
|
|
193
195
|
*/
|
|
194
196
|
NOT_LANDED = "not_landed"
|
|
195
197
|
}
|
|
198
|
+
/**
|
|
199
|
+
* One WARNING the family's validator reports on the landed content: where it sits in the artifact
|
|
200
|
+
* (`path`, the validator's own dotted locator) and what it says (`message`, the validator's words).
|
|
201
|
+
* A warning is authoring drift that does not invalidate the artifact — see `warnCount`.
|
|
202
|
+
*/
|
|
203
|
+
export declare const Workbench_SpecificationArtifactWarning_Schema: z.ZodObject<{
|
|
204
|
+
path: z.ZodString;
|
|
205
|
+
message: z.ZodString;
|
|
206
|
+
}, z.core.$strip>;
|
|
196
207
|
/**
|
|
197
208
|
* ONE application-specification family, projected for a human reviewer.
|
|
198
209
|
*
|
|
@@ -209,7 +220,7 @@ export declare enum WorkbenchSpecificationArtifactState {
|
|
|
209
220
|
*
|
|
210
221
|
* ## Why the heavy fields are NOT summary fields
|
|
211
222
|
*
|
|
212
|
-
* `document`, `issues`, `decisionRecord` and `diagram` are excluded from the summary by omission, so
|
|
223
|
+
* `document`, `issues`, `warnings`, `decisionRecord` and `diagram` are excluded from the summary by omission, so
|
|
213
224
|
* a list carries the INDEX while a detail page carries the documents. One derivation still computes
|
|
214
225
|
* all of them either way — this bounds the RESPONSE, not the work.
|
|
215
226
|
*
|
|
@@ -226,8 +237,8 @@ export declare const Workbench_SpecificationArtifact_Schema: z.ZodObject<{
|
|
|
226
237
|
title: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
227
238
|
description: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>;
|
|
228
239
|
contentSummary: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
229
|
-
concern: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchSpecificationArtifactConcern
|
|
230
|
-
state: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchSpecificationArtifactState
|
|
240
|
+
concern: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchSpecificationArtifactConcern>>>;
|
|
241
|
+
state: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof WorkbenchSpecificationArtifactState>>>;
|
|
231
242
|
schemaRef: z.ZodString;
|
|
232
243
|
sourcePath: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNullable<z.ZodString>>;
|
|
233
244
|
errorCount: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodNumber>;
|
|
@@ -236,6 +247,10 @@ export declare const Workbench_SpecificationArtifact_Schema: z.ZodObject<{
|
|
|
236
247
|
content: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
237
248
|
document: z.ZodNullable<z.ZodString>;
|
|
238
249
|
issues: z.ZodNullable<z.ZodString>;
|
|
250
|
+
warnings: z.ZodArray<z.ZodObject<{
|
|
251
|
+
path: z.ZodString;
|
|
252
|
+
message: z.ZodString;
|
|
253
|
+
}, z.core.$strip>>;
|
|
239
254
|
decisionRecord: z.ZodNullable<z.ZodString>;
|
|
240
255
|
diagram: z.ZodNullable<z.ZodString>;
|
|
241
256
|
}, z.core.$strip>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workbench-resources.custom.shared.schemas.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"workbench-resources.custom.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/workbench/workbench-resources.custom.shared.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,2CAA2C;;;;;;;;;;;;;;;;iBA+DtD,CAAC;AAEH,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2CAA2C,CAAC,CAAC;AAE/G;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0L1C,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAEvF;;;;;GAKG;AACH,MAAM,MAAM,6BAA6B,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvF,qFAAqF;AACrF,MAAM,MAAM,iCAAiC,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/F;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,oBAAY,qCAAqC;IAC/C,oFAAoF;IACpF,MAAM,WAAW;IACjB,8FAA8F;IAC9F,KAAK,UAAU;IACf,6FAA6F;IAC7F,QAAQ,aAAa;IACrB,8CAA8C;IAC9C,QAAQ,aAAa;IACrB,uFAAuF;IACvF,WAAW,gBAAgB;IAC3B;;;;;;;;;;;OAWG;IACH,YAAY,iBAAiB;CAC9B;AAED;;;;;;GAMG;AACH,oBAAY,mCAAmC;IAC7C,4FAA4F;IAC5F,YAAY,iBAAiB;IAC7B,kGAAkG;IAClG,cAAc,mBAAmB;IACjC;;;;;;;OAOG;IACH,UAAU,eAAe;CAC1B;AAED;;;;GAIG;AACH,eAAO,MAAM,6CAA6C;;;iBAGxD,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,sCAAsC;;;;;;;;;;;;;;;;;;;;;iBA6HjD,CAAC;AAEH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sCAAsC,CAAC,CAAC"}
|