@wildo-ai/platform-core-shared 1.1.8 → 1.1.10
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 +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/runtime/backend-start-outcome.contracts.d.ts +47 -0
- package/dist/esm/runtime/backend-start-outcome.contracts.d.ts.map +1 -0
- package/dist/esm/runtime/backend-start-outcome.contracts.js +56 -0
- package/dist/esm/runtime/backend-start-outcome.contracts.js.map +1 -0
- package/dist/esm/runtime/runtime-topology.contracts.d.ts.map +1 -1
- package/dist/esm/security/authorizations/roles.custom.shared.definitions.d.ts.map +1 -1
- package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/wildo-applications/wildo-applications.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.js +53 -0
- package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.d.ts +101 -4
- package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.js +110 -5
- package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.d.ts +19 -1
- package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.js +18 -0
- package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.js.map +1 -1
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.d.ts +18 -0
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.js +16 -1
- 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 +112 -7
- 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 +138 -11
- 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 +5 -0
- package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.js +11 -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 +9 -0
- package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/workbench/workbench-resources.custom.shared.schemas.d.ts.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { MetaWorkflow_ClarificationAction, MetaWorkflow_EvaluationVerdict } from '@wildo-ai/saas-models/meta-workflows';
|
|
2
|
-
import { EngineCapability, } from '@wildo-ai/saas-models';
|
|
1
|
+
import { ApplicationInterviewDepth, MetaWorkflow_ClarificationAction, MetaWorkflow_EvaluationVerdict } from '@wildo-ai/saas-models/meta-workflows';
|
|
2
|
+
import { EngineCapability, HumanDecision_FieldKind, } from '@wildo-ai/saas-models';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { initZodDecorators, StringEditMode } from '@wildo-ai/zod-decorators';
|
|
5
5
|
import { WorkbenchSpecificationArtifactConcern } from './workbench-resources.custom.shared.schemas.js';
|
|
@@ -450,7 +450,31 @@ export var WorkbenchDossierEntryStanding;
|
|
|
450
450
|
* "needed" and never editable here — its answer changes when what the product declares changes.
|
|
451
451
|
*/
|
|
452
452
|
WorkbenchDossierEntryStanding["READ_FROM_PRODUCT"] = "read-from-product";
|
|
453
|
+
/**
|
|
454
|
+
* Answered by a PROPOSAL, never by the creator (#2129): one they kept because they did not know, or one an
|
|
455
|
+
* unattended round recorded for a quick interview with nobody present. Answered — nothing is blocked — but not
|
|
456
|
+
* decided: the run treats it as a working hypothesis, and this standing is how the dossier lists it to revisit.
|
|
457
|
+
* Changing it records the creator's own answer in its place.
|
|
458
|
+
*/
|
|
459
|
+
WorkbenchDossierEntryStanding["ASSUMED"] = "assumed";
|
|
453
460
|
})(WorkbenchDossierEntryStanding || (WorkbenchDossierEntryStanding = {}));
|
|
461
|
+
/**
|
|
462
|
+
* Whether a CHOICE question's options can be offered right now — for a question whose options are
|
|
463
|
+
* COMPUTED from what the application has landed (the brand name, chosen from the screened candidates).
|
|
464
|
+
* A catalog-authored question is always `AVAILABLE`.
|
|
465
|
+
*
|
|
466
|
+
* Its own vocabulary rather than a sentence on the row: what a person reads is worded once, in the
|
|
467
|
+
* i18n tree, and a renderer can branch on it.
|
|
468
|
+
*/
|
|
469
|
+
export var WorkbenchDossierEntryOptionsState;
|
|
470
|
+
(function (WorkbenchDossierEntryOptionsState) {
|
|
471
|
+
/** The options are offered (or the question has no options to compute). */
|
|
472
|
+
WorkbenchDossierEntryOptionsState["AVAILABLE"] = "available";
|
|
473
|
+
/** What the options are computed from has not landed yet, or offers nothing — the question cannot be answered yet. */
|
|
474
|
+
WorkbenchDossierEntryOptionsState["NOT_YET_AVAILABLE"] = "not-yet-available";
|
|
475
|
+
/** An answer exists, and it is no longer one of the offered options (re-screened, or given before the options were computed) — asked again. */
|
|
476
|
+
WorkbenchDossierEntryOptionsState["ANSWER_NO_LONGER_OFFERED"] = "answer-no-longer-offered";
|
|
477
|
+
})(WorkbenchDossierEntryOptionsState || (WorkbenchDossierEntryOptionsState = {}));
|
|
454
478
|
export const Workbench_GovernanceDocument_Schema = z.object({
|
|
455
479
|
/** The document's ref, sanitized — a definition ref carries `:` and `.`. */
|
|
456
480
|
workbenchGovernanceDocumentId: z.string().min(1).isPrimaryKey().isSummaryField(),
|
|
@@ -635,14 +659,18 @@ export const Workbench_PlaybookResumeRequest_Schema = z.object({
|
|
|
635
659
|
})).optional(),
|
|
636
660
|
});
|
|
637
661
|
/*
|
|
638
|
-
*
|
|
639
|
-
*
|
|
640
|
-
*
|
|
641
|
-
*
|
|
642
|
-
*
|
|
643
|
-
*
|
|
662
|
+
* What "run the build" takes. With a build parallelism above one the verb starts a parallel WAVE
|
|
663
|
+
* (#2243), as the console's `wildo build run` does; `single: true` runs only the next ready task.
|
|
664
|
+
*
|
|
665
|
+
* It once carried `maximumTokenBudget`, a ceiling the caller stated and nothing ever enforced:
|
|
666
|
+
* `composeBuildTaskCodingContract` dropped the input on 2026-09-08 and now DERIVES the budget by
|
|
667
|
+
* summing the selected sources' `estimatedTokens`. A request field that reads as a limit and binds
|
|
668
|
+
* nothing is worse than no field, so that whole chain is gone; do not bring it back.
|
|
644
669
|
*/
|
|
645
|
-
export const Workbench_BuildPlanDispatchNextRequest_Schema = z.object({
|
|
670
|
+
export const Workbench_BuildPlanDispatchNextRequest_Schema = z.object({
|
|
671
|
+
/** Run only the next ready task, even when the build parallelism would start a wave. */
|
|
672
|
+
single: z.boolean().optional(),
|
|
673
|
+
});
|
|
646
674
|
/**
|
|
647
675
|
* One task to append (#1454, Step 7). The `target` and `produces` shapes are owned by
|
|
648
676
|
* `@wildo-ai/saas-specifications` (`BuildPlanTaskSchema`), which this package deliberately does not
|
|
@@ -792,6 +820,13 @@ export const Workbench_BuildDispatchPlan_Schema = z.object({
|
|
|
792
820
|
* names the refs, and naming none is what an empty list looks like either way.
|
|
793
821
|
*/
|
|
794
822
|
unverifiableLandedTaskRefs: z.array(z.string().min(1)).isSummaryField(),
|
|
823
|
+
/**
|
|
824
|
+
* The subset of `landedTaskRefs` that NO RUN OF THEIR OWN produced (#2217): the landing probe found the product
|
|
825
|
+
* before the task ever ran. True when a sibling task or a person wrote it; false when the probe is reading
|
|
826
|
+
* something that is not the product — in `app-creation-test-004` it read a comment, and eighteen website sections
|
|
827
|
+
* counted as landed on pages that listed none. Named so "92 of 92 landed" can never hide it. Empty is healthy.
|
|
828
|
+
*/
|
|
829
|
+
landedBeforeAnyRunTaskRefs: z.array(z.string().min(1)).isSummaryField(),
|
|
795
830
|
/** TRUE when there is no next task because every one has landed. */
|
|
796
831
|
exhausted: z.boolean().isSummaryField(),
|
|
797
832
|
/**
|
|
@@ -1197,13 +1232,23 @@ export const Workbench_DossierEntry_Schema = z.object({
|
|
|
1197
1232
|
kind: z.string().min(1).isSummaryField(),
|
|
1198
1233
|
/** The closed set for a `choice` question; empty otherwise. */
|
|
1199
1234
|
options: z.array(z.string()).isSummaryField(),
|
|
1235
|
+
/**
|
|
1236
|
+
* What each COMPUTED option stands for (#2337), index-aligned with `options`: the line shown beside it — the
|
|
1237
|
+
* product already trading under a brand name, the registers nobody could read. An empty string for a computed
|
|
1238
|
+
* option with no detail; an EMPTY ARRAY when the options are authored, since no detail exists for them.
|
|
1239
|
+
*/
|
|
1240
|
+
optionDetails: z.array(z.string()).isSummaryField(),
|
|
1200
1241
|
/** Where the question sits in its playbook's interview, 0-based — the order a scripted interview asks in. */
|
|
1201
1242
|
position: z.number().int().min(0).isSummaryField(),
|
|
1202
1243
|
standing: z.enum(WorkbenchDossierEntryStanding).systemEnum('WorkbenchDossierEntryStanding').isSummaryField(),
|
|
1244
|
+
/** Whether the options can be offered now — see {@link WorkbenchDossierEntryOptionsState}. */
|
|
1245
|
+
optionsState: z.enum(WorkbenchDossierEntryOptionsState).systemEnum('WorkbenchDossierEntryOptionsState').isSummaryField(),
|
|
1203
1246
|
/** The answer as stored, when there is one. */
|
|
1204
1247
|
value: z.string().nullable().isSummaryField(),
|
|
1205
1248
|
answeredAt: z.date().nullable().isSummaryField(),
|
|
1206
1249
|
answeredByRef: z.string().nullable().isSummaryField(),
|
|
1250
|
+
/** What the person was shown beside the option they chose (#2337), recorded with the answer; null when nothing was. */
|
|
1251
|
+
shownOptionDetail: z.string().nullable().isSummaryField(),
|
|
1207
1252
|
/** Whether the asking playbook can run right now — a needed answer for an eligible playbook is what blocks something. */
|
|
1208
1253
|
playbookEligible: z.boolean().isSummaryField(),
|
|
1209
1254
|
/**
|
|
@@ -1245,16 +1290,87 @@ export const Workbench_DossierEntry_Schema = z.object({
|
|
|
1245
1290
|
* so it is asked once.
|
|
1246
1291
|
*/
|
|
1247
1292
|
sharedWithPlaybookRefs: z.array(z.string()).isSummaryField(),
|
|
1293
|
+
/**
|
|
1294
|
+
* Whether a SIMPLE interview asks this question of the person (#2129) — the shared
|
|
1295
|
+
* `isElicitationQuestionAskedInSimpleInterview`, so the workbench and the console select the same questions.
|
|
1296
|
+
* FALSE: a simple interview proposes it instead — for review on an open surface, or as an assumption an
|
|
1297
|
+
* unattended round records and the creator revisits.
|
|
1298
|
+
*/
|
|
1299
|
+
askedInSimpleInterview: z.boolean().isSummaryField(),
|
|
1300
|
+
/** Whether an answer may be PROPOSED when the person does not know (#2129); FALSE for a question only they may answer. */
|
|
1301
|
+
proposable: z.boolean().isSummaryField(),
|
|
1302
|
+
/** The question concerns a regulated domain (#2129): a proposed answer is named to the person before it is kept. */
|
|
1303
|
+
regulatedDomain: z.boolean().isSummaryField(),
|
|
1304
|
+
/** Why an ASSUMED answer was assumed, as the proposer said it; null for any other standing. */
|
|
1305
|
+
assumptionRationale: z.string().nullable().isSummaryField(),
|
|
1306
|
+
/**
|
|
1307
|
+
* How deep THIS APPLICATION's interviews go (#2129) — one value for the whole application, repeated on each
|
|
1308
|
+
* row so an interview reads it with the questions it asks. Null until the person chooses.
|
|
1309
|
+
*/
|
|
1310
|
+
interviewDepth: z.enum(ApplicationInterviewDepth).systemEnum('ApplicationInterviewDepth').nullable().isSummaryField(),
|
|
1248
1311
|
});
|
|
1249
1312
|
/** The dossier resource's one write verb. */
|
|
1250
1313
|
export var WorkbenchDossierEntries_Operations;
|
|
1251
1314
|
(function (WorkbenchDossierEntries_Operations) {
|
|
1252
1315
|
/** Record (or change) the creator's answer to this question. Lands `creator-inputs`; a commit accepts it. */
|
|
1253
1316
|
WorkbenchDossierEntries_Operations["ANSWER"] = "answer";
|
|
1317
|
+
/**
|
|
1318
|
+
* Propose answers for this question's step, when the person does not know (#2129). WRITES NOTHING: the
|
|
1319
|
+
* proposals come back to be reviewed, and what the person keeps is answered with `assumed`. Anchored on a
|
|
1320
|
+
* row because a proposal is always for a step's interview — the row names the step and its instance.
|
|
1321
|
+
*/
|
|
1322
|
+
WorkbenchDossierEntries_Operations["PROPOSE_ANSWERS"] = "propose_answers";
|
|
1323
|
+
/**
|
|
1324
|
+
* Choose how deep this APPLICATION's interviews go (#2129). Recorded once in the dossier for every
|
|
1325
|
+
* interview; anchored on the row of the interview where the person chose it.
|
|
1326
|
+
*/
|
|
1327
|
+
WorkbenchDossierEntries_Operations["SET_INTERVIEW_DEPTH"] = "set_interview_depth";
|
|
1254
1328
|
})(WorkbenchDossierEntries_Operations || (WorkbenchDossierEntries_Operations = {}));
|
|
1329
|
+
/** Which questions a `propose_answers` call proposes for (#2129). */
|
|
1330
|
+
export var WorkbenchDossierProposalScope;
|
|
1331
|
+
(function (WorkbenchDossierProposalScope) {
|
|
1332
|
+
/** This row's question only — the person said they do not know it. */
|
|
1333
|
+
WorkbenchDossierProposalScope["THIS_QUESTION"] = "this_question";
|
|
1334
|
+
/** Every unanswered question of this row's step that the application's interview depth does not ask — the review step of a simple interview. */
|
|
1335
|
+
WorkbenchDossierProposalScope["WHAT_THE_DEPTH_SKIPS"] = "what_the_depth_skips";
|
|
1336
|
+
})(WorkbenchDossierProposalScope || (WorkbenchDossierProposalScope = {}));
|
|
1337
|
+
export const Workbench_DossierProposeRequest_Schema = z.object({
|
|
1338
|
+
scope: z.enum(WorkbenchDossierProposalScope),
|
|
1339
|
+
});
|
|
1340
|
+
export const Workbench_DossierProposal_Schema = z.object({
|
|
1341
|
+
/** The dossier row the proposal answers — the row to send `answer` with `assumed` to if it is kept. */
|
|
1342
|
+
workbenchDossierEntryId: z.string().min(1),
|
|
1343
|
+
questionRef: z.string().min(1),
|
|
1344
|
+
question: z.string().min(1),
|
|
1345
|
+
/** Only an interview question is proposed, so this is always the engine's field kind. */
|
|
1346
|
+
kind: z.enum(HumanDecision_FieldKind),
|
|
1347
|
+
value: z.string().min(1),
|
|
1348
|
+
rationale: z.string().min(1),
|
|
1349
|
+
regulatedDomain: z.boolean(),
|
|
1350
|
+
});
|
|
1351
|
+
export const Workbench_DossierProposeOutcome_Schema = z.looseObject({
|
|
1352
|
+
proposals: z.array(Workbench_DossierProposal_Schema),
|
|
1353
|
+
/** Asked for, and nothing admissible came back — each with the last refusal. Ask these of the person. */
|
|
1354
|
+
unproposed: z.array(z.object({ questionRef: z.string().min(1), reason: z.string().min(1) })),
|
|
1355
|
+
});
|
|
1356
|
+
export const Workbench_DossierInterviewDepthRequest_Schema = z.object({
|
|
1357
|
+
interviewDepth: z.enum(ApplicationInterviewDepth),
|
|
1358
|
+
});
|
|
1359
|
+
export const Workbench_DossierInterviewDepthOutcome_Schema = z.looseObject({
|
|
1360
|
+
interviewDepth: z.enum(ApplicationInterviewDepth),
|
|
1361
|
+
packageRelativePath: z.string(),
|
|
1362
|
+
});
|
|
1255
1363
|
export const Workbench_DossierAnswerRequest_Schema = z.object({
|
|
1256
1364
|
/** The answer, in the creator's words — validated against the question's kind before it is stored. */
|
|
1257
1365
|
value: z.string().min(1),
|
|
1366
|
+
/**
|
|
1367
|
+
* TRUE when the value is a PROPOSAL the creator let stand because they did not know (#2129): it is
|
|
1368
|
+
* recorded as an assumption, authored by the companion's proposer, and the dossier lists it to revisit.
|
|
1369
|
+
* Refused for a question only the creator may answer.
|
|
1370
|
+
*/
|
|
1371
|
+
assumed: z.boolean().optional(),
|
|
1372
|
+
/** With `assumed`: what the proposal rests on, as the proposer said it. */
|
|
1373
|
+
assumptionRationale: z.string().min(1).optional(),
|
|
1258
1374
|
});
|
|
1259
1375
|
export const Workbench_DossierAnswerOutcome_Schema = z.looseObject({
|
|
1260
1376
|
/** The answer as STORED (canonical for a `confirm`). */
|
|
@@ -1303,6 +1419,12 @@ export var WorkbenchCreationHomeLineKind;
|
|
|
1303
1419
|
WorkbenchCreationHomeLineKind["RUN_INTERRUPTED"] = "run-interrupted";
|
|
1304
1420
|
/** A build dispatch finished or failed; `acceptable` says whether its writes wait to be committed. */
|
|
1305
1421
|
WorkbenchCreationHomeLineKind["DISPATCH_SETTLED"] = "dispatch-settled";
|
|
1422
|
+
/**
|
|
1423
|
+
* The coding agent's account hit its usage limit, and the build dispatches nothing until it resets
|
|
1424
|
+
* (#2388). `subject` is when the build resumes (`08:11 Europe/Paris`); the target is the dispatch that met
|
|
1425
|
+
* the limit. Shown only while the limit holds, so it disappears once the build has resumed.
|
|
1426
|
+
*/
|
|
1427
|
+
WorkbenchCreationHomeLineKind["CODING_AGENT_USAGE_LIMITED"] = "coding-agent-usage-limited";
|
|
1306
1428
|
/** A playbook run suspended on questions only the creator can answer. */
|
|
1307
1429
|
WorkbenchCreationHomeLineKind["CLARIFICATION"] = "clarification";
|
|
1308
1430
|
/** A coding run parked on a question the agent could not answer alone. */
|
|
@@ -1773,8 +1895,13 @@ export const Workbench_ApplicationSecretSetRequest_Schema = z.object({
|
|
|
1773
1895
|
value: z.string().min(1).stringUI({ edit: { editMode: StringEditMode.TEXTAREA } }).isWriteOnlySecret(),
|
|
1774
1896
|
});
|
|
1775
1897
|
/**
|
|
1776
|
-
* What a change did — the
|
|
1777
|
-
* inert for a remote environment, whose change is the GitHub secret itself.
|
|
1898
|
+
* What a change did — the part of what `wildo secrets set/unset --json` prints that the workbench shows
|
|
1899
|
+
* (#1637). The local fields are inert for a remote environment, whose change is the GitHub secret itself.
|
|
1900
|
+
*
|
|
1901
|
+
* The CLI also prints `companionLoadedInProcess` / `companionLoadFailure` (a terminal `set` asking the
|
|
1902
|
+
* running companion to load the key). They are deliberately absent here: the workbench passes
|
|
1903
|
+
* `--skip-companion-restart` and applies the change in its own process, so they are always false / null
|
|
1904
|
+
* on this path, and this non-strict object drops them.
|
|
1778
1905
|
*/
|
|
1779
1906
|
export const Workbench_ApplicationSecretChangeOutcome_Schema = z.object({
|
|
1780
1907
|
envVarName: z.string(),
|