@wildo-ai/platform-core-shared 1.1.11 → 1.1.13

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.
Files changed (142) hide show
  1. package/dist/esm/core/resources/resources-operations.custom.shared.definitions.d.ts.map +1 -1
  2. package/dist/esm/core/resources/resources-operations.custom.shared.definitions.js.map +1 -1
  3. package/dist/esm/core/resources/resources-relationships.custom.shared.definitions.d.ts.map +1 -1
  4. package/dist/esm/core/resources/resources-relationships.custom.shared.definitions.js.map +1 -1
  5. package/dist/esm/core/resources/resources-types.custom.shared.schemas.d.ts.map +1 -1
  6. package/dist/esm/core/resources/resources-types.custom.shared.schemas.js.map +1 -1
  7. package/dist/esm/dev-runtime/dependency-install-record.d.ts +111 -0
  8. package/dist/esm/dev-runtime/dependency-install-record.d.ts.map +1 -0
  9. package/dist/esm/dev-runtime/dependency-install-record.js +185 -0
  10. package/dist/esm/dev-runtime/dependency-install-record.js.map +1 -0
  11. package/dist/esm/dev-runtime/dev-runtime-command.d.ts +50 -0
  12. package/dist/esm/dev-runtime/dev-runtime-command.d.ts.map +1 -0
  13. package/dist/esm/dev-runtime/dev-runtime-command.js +147 -0
  14. package/dist/esm/dev-runtime/dev-runtime-command.js.map +1 -0
  15. package/dist/esm/dev-runtime/dev-runtime-processes.d.ts +47 -0
  16. package/dist/esm/dev-runtime/dev-runtime-processes.d.ts.map +1 -0
  17. package/dist/esm/dev-runtime/dev-runtime-processes.js +163 -0
  18. package/dist/esm/dev-runtime/dev-runtime-processes.js.map +1 -0
  19. package/dist/esm/dev-runtime/dev-runtime-signals.d.ts +54 -0
  20. package/dist/esm/dev-runtime/dev-runtime-signals.d.ts.map +1 -0
  21. package/dist/esm/dev-runtime/dev-runtime-signals.js +113 -0
  22. package/dist/esm/dev-runtime/dev-runtime-signals.js.map +1 -0
  23. package/dist/esm/dev-runtime/emitted-relative-specifiers.d.ts +14 -0
  24. package/dist/esm/dev-runtime/emitted-relative-specifiers.d.ts.map +1 -0
  25. package/dist/esm/dev-runtime/emitted-relative-specifiers.js +71 -0
  26. package/dist/esm/dev-runtime/emitted-relative-specifiers.js.map +1 -0
  27. package/dist/esm/dev-runtime/frontend-dev-runtime.d.ts +43 -0
  28. package/dist/esm/dev-runtime/frontend-dev-runtime.d.ts.map +1 -0
  29. package/dist/esm/dev-runtime/frontend-dev-runtime.js +42 -0
  30. package/dist/esm/dev-runtime/frontend-dev-runtime.js.map +1 -0
  31. package/dist/esm/dev-runtime/node-runtime-dev-supervisor.d.ts +233 -0
  32. package/dist/esm/dev-runtime/node-runtime-dev-supervisor.d.ts.map +1 -0
  33. package/dist/esm/dev-runtime/node-runtime-dev-supervisor.js +578 -0
  34. package/dist/esm/dev-runtime/node-runtime-dev-supervisor.js.map +1 -0
  35. package/dist/esm/dev-runtime/package-compile-loop.d.ts +125 -0
  36. package/dist/esm/dev-runtime/package-compile-loop.d.ts.map +1 -0
  37. package/dist/esm/dev-runtime/package-compile-loop.js +386 -0
  38. package/dist/esm/dev-runtime/package-compile-loop.js.map +1 -0
  39. package/dist/esm/dev-runtime.exports.d.ts +19 -0
  40. package/dist/esm/dev-runtime.exports.d.ts.map +1 -0
  41. package/dist/esm/dev-runtime.exports.js +19 -0
  42. package/dist/esm/dev-runtime.exports.js.map +1 -0
  43. package/dist/esm/index.d.ts +4 -0
  44. package/dist/esm/index.d.ts.map +1 -1
  45. package/dist/esm/index.js +4 -0
  46. package/dist/esm/index.js.map +1 -1
  47. package/dist/esm/runtime/application-backend-env.contracts.d.ts +9 -2
  48. package/dist/esm/runtime/application-backend-env.contracts.d.ts.map +1 -1
  49. package/dist/esm/runtime/application-backend-env.contracts.js +8 -1
  50. package/dist/esm/runtime/application-backend-env.contracts.js.map +1 -1
  51. package/dist/esm/runtime/application-worker-env.contracts.d.ts +11 -3
  52. package/dist/esm/runtime/application-worker-env.contracts.d.ts.map +1 -1
  53. package/dist/esm/runtime/application-worker-env.contracts.js +9 -0
  54. package/dist/esm/runtime/application-worker-env.contracts.js.map +1 -1
  55. package/dist/esm/runtime/backend-start-outcome.contracts.d.ts +27 -0
  56. package/dist/esm/runtime/backend-start-outcome.contracts.d.ts.map +1 -1
  57. package/dist/esm/runtime/backend-start-outcome.contracts.js +34 -0
  58. package/dist/esm/runtime/backend-start-outcome.contracts.js.map +1 -1
  59. package/dist/esm/runtime/frontend-settings-hub-wiring.contracts.d.ts +28 -0
  60. package/dist/esm/runtime/frontend-settings-hub-wiring.contracts.d.ts.map +1 -0
  61. package/dist/esm/runtime/frontend-settings-hub-wiring.contracts.js +35 -0
  62. package/dist/esm/runtime/frontend-settings-hub-wiring.contracts.js.map +1 -0
  63. package/dist/esm/runtime/http-server-env.contracts.d.ts +14 -1
  64. package/dist/esm/runtime/http-server-env.contracts.d.ts.map +1 -1
  65. package/dist/esm/runtime/http-server-env.contracts.js +13 -0
  66. package/dist/esm/runtime/http-server-env.contracts.js.map +1 -1
  67. package/dist/esm/runtime/local-dev-runtime-signals.contracts.d.ts +239 -0
  68. package/dist/esm/runtime/local-dev-runtime-signals.contracts.d.ts.map +1 -0
  69. package/dist/esm/runtime/local-dev-runtime-signals.contracts.js +256 -0
  70. package/dist/esm/runtime/local-dev-runtime-signals.contracts.js.map +1 -0
  71. package/dist/esm/runtime/runtime-topology.contracts.d.ts.map +1 -1
  72. package/dist/esm/runtime/runtime-topology.contracts.js.map +1 -1
  73. package/dist/esm/security/authorizations/roles.custom.shared.definitions.d.ts.map +1 -1
  74. package/dist/esm/security/authorizations/roles.custom.shared.definitions.js.map +1 -1
  75. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.d.ts +112 -104
  76. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.d.ts.map +1 -1
  77. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.js +4 -3
  78. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.resources-config.schemas.js.map +1 -1
  79. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.d.ts +112 -104
  80. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.d.ts.map +1 -1
  81. package/dist/esm/wildo-application-executions/wildo-application-executions.custom.shared.schemas.js.map +1 -1
  82. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.d.ts +24 -34
  83. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.d.ts.map +1 -1
  84. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.js +4 -3
  85. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.resources-config.schemas.js.map +1 -1
  86. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.d.ts +24 -34
  87. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.d.ts.map +1 -1
  88. package/dist/esm/wildo-application-tasks/wildo-application-tasks.custom.shared.schemas.js.map +1 -1
  89. package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.d.ts +3 -3
  90. package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.d.ts.map +1 -1
  91. package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.js +30 -42
  92. package/dist/esm/wildo-applications/wildo-applications.custom.shared.resources-config.schemas.js.map +1 -1
  93. package/dist/esm/wildo-applications/wildo-applications.custom.shared.schemas.d.ts +9 -9
  94. package/dist/esm/wildo-applications/wildo-applications.custom.shared.schemas.d.ts.map +1 -1
  95. package/dist/esm/wildo-applications/wildo-applications.custom.shared.schemas.js.map +1 -1
  96. package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.resources-config.schemas.d.ts.map +1 -1
  97. package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.resources-config.schemas.js.map +1 -1
  98. package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.schemas.d.ts +7 -7
  99. package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.schemas.d.ts.map +1 -1
  100. package/dist/esm/wildo-applications-versions/wildo-applications-versions.custom.shared.schemas.js.map +1 -1
  101. package/dist/esm/workbench/creation-drive.custom.shared.schemas.d.ts +82 -0
  102. package/dist/esm/workbench/creation-drive.custom.shared.schemas.d.ts.map +1 -0
  103. package/dist/esm/workbench/creation-drive.custom.shared.schemas.js +73 -0
  104. package/dist/esm/workbench/creation-drive.custom.shared.schemas.js.map +1 -0
  105. package/dist/esm/workbench/creation-journey-timeline.custom.shared.schemas.d.ts +183 -0
  106. package/dist/esm/workbench/creation-journey-timeline.custom.shared.schemas.d.ts.map +1 -0
  107. package/dist/esm/workbench/creation-journey-timeline.custom.shared.schemas.js +188 -0
  108. package/dist/esm/workbench/creation-journey-timeline.custom.shared.schemas.js.map +1 -0
  109. package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.d.ts.map +1 -1
  110. package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.js +46 -0
  111. package/dist/esm/workbench/workbench-aspect-resources.custom.shared.schemas.js.map +1 -1
  112. package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.d.ts +170 -7
  113. package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.d.ts.map +1 -1
  114. package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.js +177 -7
  115. package/dist/esm/workbench/workbench-creation-console.custom.shared.schemas.js.map +1 -1
  116. package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.d.ts.map +1 -1
  117. package/dist/esm/workbench/workbench-creation-conversation.custom.shared.schemas.js.map +1 -1
  118. package/dist/esm/workbench/workbench-creation-dossier.custom.shared.schemas.d.ts.map +1 -1
  119. package/dist/esm/workbench/workbench-creation-dossier.custom.shared.schemas.js.map +1 -1
  120. package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.d.ts +480 -459
  121. package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.d.ts.map +1 -1
  122. package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.js +21 -16
  123. package/dist/esm/workbench/workbench-creation-plane.custom.shared.resources-config.schemas.js.map +1 -1
  124. package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.d.ts +480 -278
  125. package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.d.ts.map +1 -1
  126. package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.js +316 -46
  127. package/dist/esm/workbench/workbench-creation-plane.custom.shared.schemas.js.map +1 -1
  128. package/dist/esm/workbench/workbench-domain-model.custom.shared.schemas.d.ts.map +1 -1
  129. package/dist/esm/workbench/workbench-domain-model.custom.shared.schemas.js.map +1 -1
  130. package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.d.ts +7 -0
  131. package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.d.ts.map +1 -1
  132. package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.js +13 -1
  133. package/dist/esm/workbench/workbench-resources-types.custom.shared.schemas.js.map +1 -1
  134. package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.d.ts +287 -277
  135. package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.d.ts.map +1 -1
  136. package/dist/esm/workbench/workbench-resources.custom.shared.resources-config.schemas.js.map +1 -1
  137. package/dist/esm/workbench/workbench-resources.custom.shared.schemas.d.ts +34 -29
  138. package/dist/esm/workbench/workbench-resources.custom.shared.schemas.d.ts.map +1 -1
  139. package/dist/esm/workbench/workbench-resources.custom.shared.schemas.js +9 -5
  140. package/dist/esm/workbench/workbench-resources.custom.shared.schemas.js.map +1 -1
  141. package/dist/tsconfig.build.tsbuildinfo +1 -1
  142. package/package.json +13 -8
@@ -0,0 +1,188 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * The creation journey's TIMELINE (#3206, the acceptance of epic #3204): how long each phase of creating an
4
+ * application took, end to end, and which build tasks took longest — split into the time a task waited to be
5
+ * dispatched and the time its run took.
6
+ *
7
+ * ## Why it exists
8
+ *
9
+ * On `app-creation-test-007` creating one application took 3.5 days, and about 75 % of the build's wall clock was a
10
+ * selected task WAITING for its dispatch (22 to 67 minutes a task, against 5 to 23 for the run). Nothing showed it:
11
+ * the figures in #3206 were reconstructed by hand from a log line, `wildo build dispatches` rows and commit times.
12
+ * The timeline is that reconstruction, derived on every read from the rows the companion already keeps — the playbook
13
+ * runs' executions and each build task's attempts — so the next creation run's figures are one command away.
14
+ *
15
+ * ## Where it is derived, and where this contract sits
16
+ *
17
+ * The companion derives it (`deriveCreationJourneyTimeline`) and serves it on `GET /api/companion/creation/timeline`;
18
+ * `wildo context journey` prints it. This file is the shape both read, and the vocabulary both name: the CLI cannot
19
+ * import the companion, so the enums live here, as the other creation-console contracts do.
20
+ */
21
+ /**
22
+ * A PHASE of creating an application: one of the four lanes the creation umbrella (`cross_cutting.application-creation`)
23
+ * admits. A phase is the work of its lane — the lane's own runs and every run of a playbook its choreography admits,
24
+ * transitively — not a gate: nothing waits on a phase (`MetaWorkflow_Phase` records why a derived phase was removed as
25
+ * a gate). The phases overlap in time when the lanes do; each one's span is its own first start to its last settle.
26
+ */
27
+ export var CreationJourneyPhase;
28
+ (function (CreationJourneyPhase) {
29
+ /** What the application is: vision, market, requirements, brand, scope (`top_down.definition`). */
30
+ CreationJourneyPhase["DEFINITION"] = "definition";
31
+ /** What the application owes: the compliance posture, its programme and its governed documents (`cross_cutting.compliance`). */
32
+ CreationJourneyPhase["COMPLIANCE"] = "compliance";
33
+ /** How it is built: the domain plan, the foundation, the surface plans, placement (`bottom_up.conception`). */
34
+ CreationJourneyPhase["CONCEPTION"] = "conception";
35
+ /**
36
+ * Building it: the build plan's decomposition and every task's dispatch (`bottom_up.build`). Its span also covers
37
+ * every build-task attempt, whoever started it: a single-task `wildo build run --single`, a workbench dispatch and a
38
+ * named run start no playbook of the build lane, and their runs are still the build.
39
+ */
40
+ CreationJourneyPhase["BUILD"] = "build";
41
+ })(CreationJourneyPhase || (CreationJourneyPhase = {}));
42
+ /**
43
+ * The lane composite each phase is the work of: the four lanes `cross_cutting.application-creation` admits. It also
44
+ * admits the vision interview, a leaf (#3386); that stays DEFINITION work because the definition lane admits it too.
45
+ */
46
+ export const CREATION_JOURNEY_PHASE_LANE_REFS = {
47
+ [CreationJourneyPhase.DEFINITION]: 'top_down.definition',
48
+ [CreationJourneyPhase.COMPLIANCE]: 'cross_cutting.compliance',
49
+ [CreationJourneyPhase.CONCEPTION]: 'bottom_up.conception',
50
+ [CreationJourneyPhase.BUILD]: 'bottom_up.build',
51
+ };
52
+ /** The order a straight-through creation takes the phases in, which is the order they are listed in. */
53
+ export const CREATION_JOURNEY_PHASE_ORDER = [
54
+ CreationJourneyPhase.DEFINITION,
55
+ CreationJourneyPhase.COMPLIANCE,
56
+ CreationJourneyPhase.CONCEPTION,
57
+ CreationJourneyPhase.BUILD,
58
+ ];
59
+ /**
60
+ * Where a build attempt's DISPATCH WAIT is measured from. It always ends when the run was admitted (its task row's
61
+ * start instant), or when the attempt ended for one that never started.
62
+ */
63
+ export var BuildDispatchWaitMeasuredFrom;
64
+ (function (BuildDispatchWaitMeasuredFrom) {
65
+ /**
66
+ * The moment the door that dispatched it began preparing it: for a wave slot, checking the backend starts; for the
67
+ * single-task doors, reading the plan. From there it is resolving landing, selecting the task, composing its brief
68
+ * and admitting the run — the stretch #3206 found to be most of the build's wall clock. Every dispatch door stamps
69
+ * it on the attempt's row since #3206.
70
+ *
71
+ * It is not quite the interval #3206 tabulated by hand, which ran from the first selection LOG line (possibly a slot
72
+ * abandoned earlier) to admission. And time between dispatches that no door spends preparing a task — a lane's own
73
+ * phases between waves, a wave waiting for a slot to free — is attributed to no task.
74
+ */
75
+ BuildDispatchWaitMeasuredFrom["PREPARATION"] = "preparation";
76
+ /**
77
+ * The moment the attempt's row was opened, which is after the task was chosen and its brief composed. Only a row
78
+ * recorded before #3206 has no preparation stamp: its wait is a FLOOR of the real one.
79
+ */
80
+ BuildDispatchWaitMeasuredFrom["SELECTION"] = "selection";
81
+ })(BuildDispatchWaitMeasuredFrom || (BuildDispatchWaitMeasuredFrom = {}));
82
+ /** One phase's span. Every phase is listed; one that never ran has no instants and no duration. */
83
+ export const CreationJourney_PhaseSpan_Schema = z.object({
84
+ phase: z.enum(CreationJourneyPhase),
85
+ laneRef: z.string().min(1),
86
+ /** The first start of any of its runs. */
87
+ startedAt: z.string().optional(),
88
+ /** The last settle of any of its runs, or the read's own instant while one is in flight. */
89
+ endedAt: z.string().optional(),
90
+ durationMs: z.number().int().nonnegative().optional(),
91
+ /** A run of the phase is still in flight, so `endedAt` is the read's instant and the duration is so far. */
92
+ inFlight: z.boolean(),
93
+ /** A run of the phase is waiting on a person; its span ends where it began waiting. */
94
+ waitingOnPerson: z.boolean(),
95
+ playbookRuns: z.number().int().nonnegative(),
96
+ /** Build-task attempts counted in the span: only the BUILD phase has any. */
97
+ buildAttempts: z.number().int().nonnegative(),
98
+ });
99
+ /** One build task with its time split into waiting and running, summed over its attempts. */
100
+ export const CreationJourney_SlowBuildTask_Schema = z.object({
101
+ taskRef: z.string().min(1),
102
+ attempts: z.number().int().nonnegative(),
103
+ /** From being prepared (or selected) to being admitted, over every attempt. */
104
+ dispatchWaitMs: z.number().int().nonnegative(),
105
+ /** From being admitted to settling, over every attempt. */
106
+ runMs: z.number().int().nonnegative(),
107
+ totalMs: z.number().int().nonnegative(),
108
+ /** SELECTION when any attempt's wait could only be measured from its row's opening: the wait is then a floor. */
109
+ dispatchWaitMeasuredFrom: z.enum(BuildDispatchWaitMeasuredFrom),
110
+ /** An attempt is still waiting or running, so its share is measured up to the read's instant. */
111
+ inFlight: z.boolean(),
112
+ /** An attempt is parked on a question to a person; its share ends where it parked. */
113
+ waitingOnPerson: z.boolean(),
114
+ /**
115
+ * An attempt was ended by the startup sweep after a companion restart: the row records no instant the run stopped,
116
+ * only when the next process settled it, so its share runs to that restart and includes any time the companion was down.
117
+ */
118
+ endedByCompanionRestart: z.boolean(),
119
+ /** A companion generation step (labels, migrations, translations) rather than a coding run. */
120
+ generationStep: z.boolean(),
121
+ });
122
+ /**
123
+ * One build-task ATTEMPT's time, split as {@link CreationJourney_SlowBuildTask} splits a task's (#3204's budget). The
124
+ * slowest-ten list answers "where did the time go"; this list answers "what is the distribution", which a budget is
125
+ * stated in: the p95 of the dispatch wait and of a worker's run, and how many ran at once. Every attempt the read saw is
126
+ * listed, oldest first, so a reader computes any statistic without the companion choosing one.
127
+ */
128
+ export const CreationJourney_BuildAttemptTiming_Schema = z.object({
129
+ taskRef: z.string().min(1),
130
+ /** Where the wait is measured from: the preparation start, else the row's opening ({@link BuildDispatchWaitMeasuredFrom}). */
131
+ startedAt: z.string(),
132
+ /** When the run was admitted (a coding run started, a generation step opened). Absent for an attempt never admitted. */
133
+ admittedAt: z.string().optional(),
134
+ /** Its settle, where it parked on a person, or the read's instant while it is in flight. */
135
+ endedAt: z.string(),
136
+ dispatchWaitMs: z.number().int().nonnegative(),
137
+ runMs: z.number().int().nonnegative(),
138
+ dispatchWaitMeasuredFrom: z.enum(BuildDispatchWaitMeasuredFrom),
139
+ inFlight: z.boolean(),
140
+ waitingOnPerson: z.boolean(),
141
+ /** Settled by a later companion's startup sweep: `endedAt` is that restart, not when the run stopped. */
142
+ endedByCompanionRestart: z.boolean(),
143
+ generationStep: z.boolean(),
144
+ });
145
+ /**
146
+ * One task of the accepted build plan and the tasks it waits on: the graph that decides when a task COULD have been
147
+ * dispatched, which an attempt's own instants cannot say. Read from the plan as authored, with no landing pass.
148
+ */
149
+ export const CreationJourney_BuildPlanTask_Schema = z.object({
150
+ taskRef: z.string().min(1),
151
+ prerequisiteTaskRefs: z.array(z.string().min(1)),
152
+ });
153
+ /** What `GET /api/companion/creation/timeline` answers. */
154
+ export const CreationJourney_Timeline_Schema = z.object({
155
+ generatedAt: z.string(),
156
+ /** From the first start of anything the journey ran to its last settle (the read's instant while anything runs). */
157
+ wallClock: z.object({
158
+ startedAt: z.string(),
159
+ endedAt: z.string(),
160
+ durationMs: z.number().int().nonnegative(),
161
+ inFlight: z.boolean(),
162
+ }).nullable(),
163
+ phases: z.array(CreationJourney_PhaseSpan_Schema),
164
+ /** The slowest build tasks by wait plus run, slowest first, at most {@link CREATION_JOURNEY_SLOWEST_BUILD_TASK_COUNT}. */
165
+ slowestBuildTasks: z.array(CreationJourney_SlowBuildTask_Schema),
166
+ /** Build tasks that had any attempt, so a reader knows how many the slowest list was chosen from. */
167
+ attemptedBuildTasks: z.number().int().nonnegative(),
168
+ /**
169
+ * Every build attempt the read saw, oldest first, each split into its dispatch wait and its run (#3204's budget, read
170
+ * by `scripts/app-creation/creation-budget.mjs`). Absent from a companion older than the budget, which the CLI may
171
+ * still be reading while the companion process has not restarted onto the new build.
172
+ */
173
+ buildAttemptTimings: z.array(CreationJourney_BuildAttemptTiming_Schema).optional(),
174
+ /**
175
+ * The accepted build plan's graph (#3204's budget): NULL when the application has no build plan yet, or its plan could
176
+ * not be read (said in `notChecked`). Absent from a companion older than the budget.
177
+ */
178
+ buildPlanGraph: z.array(CreationJourney_BuildPlanTask_Schema).nullable().optional(),
179
+ /** Playbook runs of no phase's lane: the umbrella itself, the unattended loop's lanes outside the four, refinement. In the wall clock only. */
180
+ outsidePhasePlaybookRuns: z.number().int().nonnegative(),
181
+ /** Playbook refs two lanes admit: their runs cannot be placed in one phase, so they are counted in none. */
182
+ ambiguousPlaybookRefs: z.array(z.string()),
183
+ /** What this read could not see, each a reason a figure is a floor. */
184
+ notChecked: z.array(z.string()),
185
+ });
186
+ /** How many of the slowest build tasks the timeline lists: the ten the epic's acceptance asks for. */
187
+ export const CREATION_JOURNEY_SLOWEST_BUILD_TASK_COUNT = 10;
188
+ //# sourceMappingURL=creation-journey-timeline.custom.shared.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creation-journey-timeline.custom.shared.schemas.js","sourceRoot":"","sources":["../../../src/workbench/creation-journey-timeline.custom.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\n\n/**\n * The creation journey's TIMELINE (#3206, the acceptance of epic #3204): how long each phase of creating an\n * application took, end to end, and which build tasks took longest — split into the time a task waited to be\n * dispatched and the time its run took.\n *\n * ## Why it exists\n *\n * On `app-creation-test-007` creating one application took 3.5 days, and about 75 % of the build's wall clock was a\n * selected task WAITING for its dispatch (22 to 67 minutes a task, against 5 to 23 for the run). Nothing showed it:\n * the figures in #3206 were reconstructed by hand from a log line, `wildo build dispatches` rows and commit times.\n * The timeline is that reconstruction, derived on every read from the rows the companion already keeps — the playbook\n * runs' executions and each build task's attempts — so the next creation run's figures are one command away.\n *\n * ## Where it is derived, and where this contract sits\n *\n * The companion derives it (`deriveCreationJourneyTimeline`) and serves it on `GET /api/companion/creation/timeline`;\n * `wildo context journey` prints it. This file is the shape both read, and the vocabulary both name: the CLI cannot\n * import the companion, so the enums live here, as the other creation-console contracts do.\n */\n\n/**\n * A PHASE of creating an application: one of the four lanes the creation umbrella (`cross_cutting.application-creation`)\n * admits. A phase is the work of its lane — the lane's own runs and every run of a playbook its choreography admits,\n * transitively — not a gate: nothing waits on a phase (`MetaWorkflow_Phase` records why a derived phase was removed as\n * a gate). The phases overlap in time when the lanes do; each one's span is its own first start to its last settle.\n */\nexport enum CreationJourneyPhase {\n /** What the application is: vision, market, requirements, brand, scope (`top_down.definition`). */\n DEFINITION = 'definition',\n /** What the application owes: the compliance posture, its programme and its governed documents (`cross_cutting.compliance`). */\n COMPLIANCE = 'compliance',\n /** How it is built: the domain plan, the foundation, the surface plans, placement (`bottom_up.conception`). */\n CONCEPTION = 'conception',\n /**\n * Building it: the build plan's decomposition and every task's dispatch (`bottom_up.build`). Its span also covers\n * every build-task attempt, whoever started it: a single-task `wildo build run --single`, a workbench dispatch and a\n * named run start no playbook of the build lane, and their runs are still the build.\n */\n BUILD = 'build',\n}\n\n/**\n * The lane composite each phase is the work of: the four lanes `cross_cutting.application-creation` admits. It also\n * admits the vision interview, a leaf (#3386); that stays DEFINITION work because the definition lane admits it too.\n */\nexport const CREATION_JOURNEY_PHASE_LANE_REFS: Readonly<Record<CreationJourneyPhase, string>> = {\n [CreationJourneyPhase.DEFINITION]: 'top_down.definition',\n [CreationJourneyPhase.COMPLIANCE]: 'cross_cutting.compliance',\n [CreationJourneyPhase.CONCEPTION]: 'bottom_up.conception',\n [CreationJourneyPhase.BUILD]: 'bottom_up.build',\n};\n\n/** The order a straight-through creation takes the phases in, which is the order they are listed in. */\nexport const CREATION_JOURNEY_PHASE_ORDER: readonly CreationJourneyPhase[] = [\n CreationJourneyPhase.DEFINITION,\n CreationJourneyPhase.COMPLIANCE,\n CreationJourneyPhase.CONCEPTION,\n CreationJourneyPhase.BUILD,\n];\n\n/**\n * Where a build attempt's DISPATCH WAIT is measured from. It always ends when the run was admitted (its task row's\n * start instant), or when the attempt ended for one that never started.\n */\nexport enum BuildDispatchWaitMeasuredFrom {\n /**\n * The moment the door that dispatched it began preparing it: for a wave slot, checking the backend starts; for the\n * single-task doors, reading the plan. From there it is resolving landing, selecting the task, composing its brief\n * and admitting the run — the stretch #3206 found to be most of the build's wall clock. Every dispatch door stamps\n * it on the attempt's row since #3206.\n *\n * It is not quite the interval #3206 tabulated by hand, which ran from the first selection LOG line (possibly a slot\n * abandoned earlier) to admission. And time between dispatches that no door spends preparing a task — a lane's own\n * phases between waves, a wave waiting for a slot to free — is attributed to no task.\n */\n PREPARATION = 'preparation',\n /**\n * The moment the attempt's row was opened, which is after the task was chosen and its brief composed. Only a row\n * recorded before #3206 has no preparation stamp: its wait is a FLOOR of the real one.\n */\n SELECTION = 'selection',\n}\n\n/** One phase's span. Every phase is listed; one that never ran has no instants and no duration. */\nexport const CreationJourney_PhaseSpan_Schema = z.object({\n phase: z.enum(CreationJourneyPhase),\n laneRef: z.string().min(1),\n /** The first start of any of its runs. */\n startedAt: z.string().optional(),\n /** The last settle of any of its runs, or the read's own instant while one is in flight. */\n endedAt: z.string().optional(),\n durationMs: z.number().int().nonnegative().optional(),\n /** A run of the phase is still in flight, so `endedAt` is the read's instant and the duration is so far. */\n inFlight: z.boolean(),\n /** A run of the phase is waiting on a person; its span ends where it began waiting. */\n waitingOnPerson: z.boolean(),\n playbookRuns: z.number().int().nonnegative(),\n /** Build-task attempts counted in the span: only the BUILD phase has any. */\n buildAttempts: z.number().int().nonnegative(),\n});\nexport type CreationJourney_PhaseSpan = z.infer<typeof CreationJourney_PhaseSpan_Schema>;\n\n/** One build task with its time split into waiting and running, summed over its attempts. */\nexport const CreationJourney_SlowBuildTask_Schema = z.object({\n taskRef: z.string().min(1),\n attempts: z.number().int().nonnegative(),\n /** From being prepared (or selected) to being admitted, over every attempt. */\n dispatchWaitMs: z.number().int().nonnegative(),\n /** From being admitted to settling, over every attempt. */\n runMs: z.number().int().nonnegative(),\n totalMs: z.number().int().nonnegative(),\n /** SELECTION when any attempt's wait could only be measured from its row's opening: the wait is then a floor. */\n dispatchWaitMeasuredFrom: z.enum(BuildDispatchWaitMeasuredFrom),\n /** An attempt is still waiting or running, so its share is measured up to the read's instant. */\n inFlight: z.boolean(),\n /** An attempt is parked on a question to a person; its share ends where it parked. */\n waitingOnPerson: z.boolean(),\n /**\n * An attempt was ended by the startup sweep after a companion restart: the row records no instant the run stopped,\n * only when the next process settled it, so its share runs to that restart and includes any time the companion was down.\n */\n endedByCompanionRestart: z.boolean(),\n /** A companion generation step (labels, migrations, translations) rather than a coding run. */\n generationStep: z.boolean(),\n});\nexport type CreationJourney_SlowBuildTask = z.infer<typeof CreationJourney_SlowBuildTask_Schema>;\n\n/**\n * One build-task ATTEMPT's time, split as {@link CreationJourney_SlowBuildTask} splits a task's (#3204's budget). The\n * slowest-ten list answers \"where did the time go\"; this list answers \"what is the distribution\", which a budget is\n * stated in: the p95 of the dispatch wait and of a worker's run, and how many ran at once. Every attempt the read saw is\n * listed, oldest first, so a reader computes any statistic without the companion choosing one.\n */\nexport const CreationJourney_BuildAttemptTiming_Schema = z.object({\n taskRef: z.string().min(1),\n /** Where the wait is measured from: the preparation start, else the row's opening ({@link BuildDispatchWaitMeasuredFrom}). */\n startedAt: z.string(),\n /** When the run was admitted (a coding run started, a generation step opened). Absent for an attempt never admitted. */\n admittedAt: z.string().optional(),\n /** Its settle, where it parked on a person, or the read's instant while it is in flight. */\n endedAt: z.string(),\n dispatchWaitMs: z.number().int().nonnegative(),\n runMs: z.number().int().nonnegative(),\n dispatchWaitMeasuredFrom: z.enum(BuildDispatchWaitMeasuredFrom),\n inFlight: z.boolean(),\n waitingOnPerson: z.boolean(),\n /** Settled by a later companion's startup sweep: `endedAt` is that restart, not when the run stopped. */\n endedByCompanionRestart: z.boolean(),\n generationStep: z.boolean(),\n});\nexport type CreationJourney_BuildAttemptTiming = z.infer<typeof CreationJourney_BuildAttemptTiming_Schema>;\n\n/**\n * One task of the accepted build plan and the tasks it waits on: the graph that decides when a task COULD have been\n * dispatched, which an attempt's own instants cannot say. Read from the plan as authored, with no landing pass.\n */\nexport const CreationJourney_BuildPlanTask_Schema = z.object({\n taskRef: z.string().min(1),\n prerequisiteTaskRefs: z.array(z.string().min(1)),\n});\nexport type CreationJourney_BuildPlanTask = z.infer<typeof CreationJourney_BuildPlanTask_Schema>;\n\n/** What `GET /api/companion/creation/timeline` answers. */\nexport const CreationJourney_Timeline_Schema = z.object({\n generatedAt: z.string(),\n /** From the first start of anything the journey ran to its last settle (the read's instant while anything runs). */\n wallClock: z.object({\n startedAt: z.string(),\n endedAt: z.string(),\n durationMs: z.number().int().nonnegative(),\n inFlight: z.boolean(),\n }).nullable(),\n phases: z.array(CreationJourney_PhaseSpan_Schema),\n /** The slowest build tasks by wait plus run, slowest first, at most {@link CREATION_JOURNEY_SLOWEST_BUILD_TASK_COUNT}. */\n slowestBuildTasks: z.array(CreationJourney_SlowBuildTask_Schema),\n /** Build tasks that had any attempt, so a reader knows how many the slowest list was chosen from. */\n attemptedBuildTasks: z.number().int().nonnegative(),\n /**\n * Every build attempt the read saw, oldest first, each split into its dispatch wait and its run (#3204's budget, read\n * by `scripts/app-creation/creation-budget.mjs`). Absent from a companion older than the budget, which the CLI may\n * still be reading while the companion process has not restarted onto the new build.\n */\n buildAttemptTimings: z.array(CreationJourney_BuildAttemptTiming_Schema).optional(),\n /**\n * The accepted build plan's graph (#3204's budget): NULL when the application has no build plan yet, or its plan could\n * not be read (said in `notChecked`). Absent from a companion older than the budget.\n */\n buildPlanGraph: z.array(CreationJourney_BuildPlanTask_Schema).nullable().optional(),\n /** Playbook runs of no phase's lane: the umbrella itself, the unattended loop's lanes outside the four, refinement. In the wall clock only. */\n outsidePhasePlaybookRuns: z.number().int().nonnegative(),\n /** Playbook refs two lanes admit: their runs cannot be placed in one phase, so they are counted in none. */\n ambiguousPlaybookRefs: z.array(z.string()),\n /** What this read could not see, each a reason a figure is a floor. */\n notChecked: z.array(z.string()),\n});\nexport type CreationJourney_Timeline = z.infer<typeof CreationJourney_Timeline_Schema>;\n\n/** How many of the slowest build tasks the timeline lists: the ten the epic's acceptance asks for. */\nexport const CREATION_JOURNEY_SLOWEST_BUILD_TASK_COUNT = 10;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"workbench-aspect-resources.custom.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/workbench/workbench-aspect-resources.custom.shared.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAMrB,oBAAoB,EAKrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,OAAO,EAEL,4BAA4B,EAC7B,MAAM,mDAAmD,CAAC;AAM3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH;;;;;;;GAOG;AACH,oBAAY,2BAA2B;IACrC,mFAAmF;IACnF,YAAY,iBAAiB;IAC7B,8DAA8D;IAC9D,SAAS,cAAc;IACvB,gGAAgG;IAChG,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,yBAAyB;IACxC,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,4BAA4B,CAAC;IACpD,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,SAAS,6BAA6B,EAAE,CAAC;CAC1D;AAED,eAAO,MAAM,4BAA4B,EAAE,SAAS,yBAAyB,EAk4B5E,CAAC;AAMF,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS,CAErG;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,yBAAyB,GACpC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAuC5B;AAED,KAAK,8BAA8B,GAAG,qBAAqB,CAAC,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC;AAE9F;;;;;GAKG;AACH,wBAAgB,wCAAwC,CAAC,UAAU,EAAE,yBAAyB,IAEpF,wBAAwB,oBAAoB,EAAE;;oBA6BvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,IAAI,oBAAoB,EAAE,CA8D1E;AAED,mGAAmG;AACnG,eAAO,MAAM,iDAAiD,EAAE,MAAM,CACpE,MAAM,EACN,UAAU,CAAC,OAAO,wCAAwC,CAAC,CAM5D,CAAC"}
1
+ {"version":3,"file":"workbench-aspect-resources.custom.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/workbench/workbench-aspect-resources.custom.shared.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAMrB,oBAAoB,EAKrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,OAAO,EAEL,4BAA4B,EAC7B,MAAM,mDAAmD,CAAC;AAM3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH;;;;;;;GAOG;AACH,oBAAY,2BAA2B;IACrC,mFAAmF;IACnF,YAAY,iBAAiB;IAC7B,8DAA8D;IAC9D,SAAS,cAAc;IACvB,gGAAgG;IAChG,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,yBAAyB;IACxC,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,4BAA4B,CAAC;IACpD,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,SAAS,6BAA6B,EAAE,CAAC;CAC1D;AAED,eAAO,MAAM,4BAA4B,EAAE,SAAS,yBAAyB,EAg7B5E,CAAC;AAMF,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS,CAErG;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,yBAAyB,GACpC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAuC5B;AAED,KAAK,8BAA8B,GAAG,qBAAqB,CAAC,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC;AAE9F;;;;;GAKG;AACH,wBAAgB,wCAAwC,CAAC,UAAU,EAAE,yBAAyB,IAEpF,wBAAwB,oBAAoB,EAAE;;oBA6BvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,IAAI,oBAAoB,EAAE,CA8D1E;AAED,mGAAmG;AACnG,eAAO,MAAM,iDAAiD,EAAE,MAAM,CACpE,MAAM,EACN,UAAU,CAAC,OAAO,wCAAwC,CAAC,CAM5D,CAAC"}
@@ -88,6 +88,14 @@ export const WORKBENCH_ASPECT_DESCRIPTORS = [
88
88
  identity: WorkbenchAspectIdentityKind.BUSINESS_KEY,
89
89
  edges: [],
90
90
  },
91
+ {
92
+ /* A regime research established (#3362): prose, keyed by its own ref, naming no row of another family. */
93
+ aspectKey: 'compliance-posture.constraint',
94
+ resourceType: WorkbenchShared_ResourceType.ASPECT_COMPLIANCE_POSTURE_CONSTRAINT,
95
+ rowsPath: 'compliancePostureConstraints',
96
+ identity: WorkbenchAspectIdentityKind.BUSINESS_KEY,
97
+ edges: [],
98
+ },
91
99
  {
92
100
  aspectKey: 'market.category',
93
101
  resourceType: WorkbenchShared_ResourceType.ASPECT_MARKET_CATEGORY,
@@ -533,6 +541,42 @@ export const WORKBENCH_ASPECT_DESCRIPTORS = [
533
541
  { field: 'resourceIds', targetAspectKey: 'domain-plan.resource', many: true },
534
542
  ],
535
543
  },
544
+ /*
545
+ * The organization model (#3032): the organization types, the relationship kinds between them (whose two sides point
546
+ * back at the types), the confined records and the records held in a system of record (both pointing at the resource).
547
+ */
548
+ {
549
+ aspectKey: 'domain-plan.organization-type',
550
+ resourceType: WorkbenchShared_ResourceType.ASPECT_DOMAIN_PLAN_ORGANIZATION_TYPE,
551
+ rowsPath: 'domainPlanOrganizationTypes',
552
+ identity: WorkbenchAspectIdentityKind.BUSINESS_KEY,
553
+ edges: [],
554
+ },
555
+ {
556
+ aspectKey: 'domain-plan.relationship-kind',
557
+ resourceType: WorkbenchShared_ResourceType.ASPECT_DOMAIN_PLAN_RELATIONSHIP_KIND,
558
+ rowsPath: 'domainPlanRelationshipKinds',
559
+ identity: WorkbenchAspectIdentityKind.BUSINESS_KEY,
560
+ edges: [
561
+ // Two registry fields reach the same target, and the SIDE is the decision, so each keeps its own spine field.
562
+ { field: 'representingTypeIds', targetAspectKey: 'domain-plan.organization-type', many: true, sourceField: 'representingTypes' },
563
+ { field: 'grantingTypeIds', targetAspectKey: 'domain-plan.organization-type', many: true, sourceField: 'grantingTypes' },
564
+ ],
565
+ },
566
+ {
567
+ aspectKey: 'domain-plan.unit-confinement',
568
+ resourceType: WorkbenchShared_ResourceType.ASPECT_DOMAIN_PLAN_UNIT_CONFINEMENT,
569
+ rowsPath: 'domainPlanUnitConfinements',
570
+ identity: WorkbenchAspectIdentityKind.INDEXED,
571
+ edges: [{ field: 'resourceId', targetAspectKey: 'domain-plan.resource', many: false }],
572
+ },
573
+ {
574
+ aspectKey: 'domain-plan.record-location',
575
+ resourceType: WorkbenchShared_ResourceType.ASPECT_DOMAIN_PLAN_RECORD_LOCATION,
576
+ rowsPath: 'domainPlanRecordLocations',
577
+ identity: WorkbenchAspectIdentityKind.BUSINESS_KEY,
578
+ edges: [{ field: 'resourceId', targetAspectKey: 'domain-plan.resource', many: false }],
579
+ },
536
580
  {
537
581
  aspectKey: 'build-plan.task',
538
582
  resourceType: WorkbenchShared_ResourceType.ASPECT_BUILD_TASK,
@@ -561,6 +605,8 @@ export const WORKBENCH_ASPECT_DESCRIPTORS = [
561
605
  /* The vision edges (#629) — see the registry for why a build task may serve these. */
562
606
  { field: 'servesSuccessCriterionIds', targetAspectKey: 'vision.success-criterion', many: true },
563
607
  { field: 'servesConstraintIds', targetAspectKey: 'vision.constraint', many: true },
608
+ /* A researched regime the task lands (#3362), since the posture has its own family. */
609
+ { field: 'servesPostureConstraintIds', targetAspectKey: 'compliance-posture.constraint', many: true },
564
610
  /*
565
611
  * The experience plan's entries on the PRODUCT side (#1660): a view, milestone or guidance task
566
612
  * names the entry it builds by the plan's own ref, so the task links to the decision.