@tacuchi/agent-workflow-cli 21.0.0 → 21.1.0

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 (153) hide show
  1. package/README.md +1 -0
  2. package/dist/application/capability/compose.js +161 -0
  3. package/dist/application/capability/compose.js.map +1 -0
  4. package/dist/application/capability/descriptor-loader.js +109 -0
  5. package/dist/application/capability/descriptor-loader.js.map +1 -0
  6. package/dist/application/capability/design-handler.js +299 -0
  7. package/dist/application/capability/design-handler.js.map +1 -0
  8. package/dist/application/capability/dispatcher.js +312 -0
  9. package/dist/application/capability/dispatcher.js.map +1 -0
  10. package/dist/application/capability/durable-effect.js +220 -0
  11. package/dist/application/capability/durable-effect.js.map +1 -0
  12. package/dist/application/capability/installed-inventory.js +168 -0
  13. package/dist/application/capability/installed-inventory.js.map +1 -0
  14. package/dist/application/capability/readiness.js +204 -0
  15. package/dist/application/capability/readiness.js.map +1 -0
  16. package/dist/application/capability/resolution.js +264 -0
  17. package/dist/application/capability/resolution.js.map +1 -0
  18. package/dist/application/capability/wrapper.js +187 -0
  19. package/dist/application/capability/wrapper.js.map +1 -0
  20. package/dist/application/context/manifest.js +11 -5
  21. package/dist/application/context/manifest.js.map +1 -1
  22. package/dist/application/context/measure.js +5 -2
  23. package/dist/application/context/measure.js.map +1 -1
  24. package/dist/application/context/plan-service.js +6 -6
  25. package/dist/application/context/plan-service.js.map +1 -1
  26. package/dist/application/design/design-bundle-service.js +148 -0
  27. package/dist/application/design/design-bundle-service.js.map +1 -0
  28. package/dist/application/design/design-proposal-service.js +69 -0
  29. package/dist/application/design/design-proposal-service.js.map +1 -0
  30. package/dist/application/design/design-publish-service.js +275 -7
  31. package/dist/application/design/design-publish-service.js.map +1 -1
  32. package/dist/application/design/design-record-service.js +100 -0
  33. package/dist/application/design/design-record-service.js.map +1 -0
  34. package/dist/application/flow/advance.js +533 -0
  35. package/dist/application/flow/advance.js.map +1 -0
  36. package/dist/application/flow/flow-service.js +65 -0
  37. package/dist/application/flow/flow-service.js.map +1 -0
  38. package/dist/application/flow/run-projection.js +80 -0
  39. package/dist/application/flow/run-projection.js.map +1 -0
  40. package/dist/application/flow/run-state-service.js +107 -0
  41. package/dist/application/flow/run-state-service.js.map +1 -0
  42. package/dist/application/flow/submit.js +423 -0
  43. package/dist/application/flow/submit.js.map +1 -0
  44. package/dist/application/resume-service.js +23 -10
  45. package/dist/application/resume-service.js.map +1 -1
  46. package/dist/application/self/install-skill.js +11 -0
  47. package/dist/application/self/install-skill.js.map +1 -1
  48. package/dist/application/self/uninstall.js +21 -0
  49. package/dist/application/self/uninstall.js.map +1 -1
  50. package/dist/application/skills-resolver-service.js +8 -2
  51. package/dist/application/skills-resolver-service.js.map +1 -1
  52. package/dist/application/status-service.js +4 -1
  53. package/dist/application/status-service.js.map +1 -1
  54. package/dist/application/workspace-init-service.js +13 -1
  55. package/dist/application/workspace-init-service.js.map +1 -1
  56. package/dist/cli/commands/capability.js +182 -0
  57. package/dist/cli/commands/capability.js.map +1 -0
  58. package/dist/cli/commands/flow.js +71 -0
  59. package/dist/cli/commands/flow.js.map +1 -0
  60. package/dist/cli/commands/index.js +4 -0
  61. package/dist/cli/commands/index.js.map +1 -1
  62. package/dist/cli/commands/skills.js +55 -2
  63. package/dist/cli/commands/skills.js.map +1 -1
  64. package/dist/cli/commands/status.js +5 -0
  65. package/dist/cli/commands/status.js.map +1 -1
  66. package/dist/cli/help-groups.js +6 -0
  67. package/dist/cli/help-groups.js.map +1 -1
  68. package/dist/cli/parser.js +6 -0
  69. package/dist/cli/parser.js.map +1 -1
  70. package/dist/cli/tui/data/workflow-content.js +5 -0
  71. package/dist/cli/tui/data/workflow-content.js.map +1 -1
  72. package/dist/cli/tui/tabs/workflow-tab.js +5 -1
  73. package/dist/cli/tui/tabs/workflow-tab.js.map +1 -1
  74. package/dist/domain/capability/descriptor.js +553 -0
  75. package/dist/domain/capability/descriptor.js.map +1 -0
  76. package/dist/domain/capability/effects.js +90 -0
  77. package/dist/domain/capability/effects.js.map +1 -0
  78. package/dist/domain/capability/protocol.js +494 -0
  79. package/dist/domain/capability/protocol.js.map +1 -0
  80. package/dist/domain/contract-reader.js +84 -0
  81. package/dist/domain/contract-reader.js.map +1 -0
  82. package/dist/domain/design/adapter.js +161 -0
  83. package/dist/domain/design/adapter.js.map +1 -0
  84. package/dist/domain/design/artifact.js +148 -4
  85. package/dist/domain/design/artifact.js.map +1 -1
  86. package/dist/domain/design/capability.js +263 -4
  87. package/dist/domain/design/capability.js.map +1 -1
  88. package/dist/domain/design/direct.js +108 -0
  89. package/dist/domain/design/direct.js.map +1 -0
  90. package/dist/domain/design/external-send.js +65 -0
  91. package/dist/domain/design/external-send.js.map +1 -0
  92. package/dist/domain/design/maturity.js +71 -0
  93. package/dist/domain/design/maturity.js.map +1 -1
  94. package/dist/domain/design/offline.js +92 -0
  95. package/dist/domain/design/offline.js.map +1 -0
  96. package/dist/domain/design/profiles.js +212 -0
  97. package/dist/domain/design/profiles.js.map +1 -0
  98. package/dist/domain/design/proposal.js +234 -0
  99. package/dist/domain/design/proposal.js.map +1 -0
  100. package/dist/domain/design/render-bundle.js +0 -0
  101. package/dist/domain/design/render-bundle.js.map +1 -0
  102. package/dist/domain/design/rendition.js +472 -0
  103. package/dist/domain/design/rendition.js.map +1 -0
  104. package/dist/domain/design/sources.js +180 -0
  105. package/dist/domain/design/sources.js.map +1 -0
  106. package/dist/domain/design/validation.js +12 -68
  107. package/dist/domain/design/validation.js.map +1 -1
  108. package/dist/domain/design/visual-evidence.js +155 -0
  109. package/dist/domain/design/visual-evidence.js.map +1 -0
  110. package/dist/domain/flow/answer.js +459 -0
  111. package/dist/domain/flow/answer.js.map +1 -0
  112. package/dist/domain/flow/authority.js +2276 -0
  113. package/dist/domain/flow/authority.js.map +1 -0
  114. package/dist/domain/flow/authorization.js +62 -0
  115. package/dist/domain/flow/authorization.js.map +1 -0
  116. package/dist/domain/flow/directive.js +421 -0
  117. package/dist/domain/flow/directive.js.map +1 -0
  118. package/dist/domain/flow/rules.js +140 -0
  119. package/dist/domain/flow/rules.js.map +1 -0
  120. package/dist/domain/flow/run-state.js +317 -0
  121. package/dist/domain/flow/run-state.js.map +1 -0
  122. package/dist/domain/harnesses.js +21 -0
  123. package/dist/domain/harnesses.js.map +1 -1
  124. package/dist/domain/skills.js +13 -14
  125. package/dist/domain/skills.js.map +1 -1
  126. package/package.json +1 -1
  127. package/skills/w/SKILL.md +5 -5
  128. package/skills/w/context/MANIFEST.json +38 -1
  129. package/skills/w/harness/HARNESS.md +20 -0
  130. package/skills/w/loops/CHASSIS.md +11 -20
  131. package/skills/w/loops/CODE-POLICIES.md +9 -15
  132. package/skills/w/loops/plan-exec-loop/LOOP.md +11 -13
  133. package/skills/w/loops/plan-new-loop/LOOP.md +6 -4
  134. package/skills/w/loops/plan-refine-loop/LOOP.md +5 -3
  135. package/skills/w/loops/quick-loop/LOOP.md +18 -26
  136. package/skills/w/loops/spec-refine-loop/LOOP.md +14 -18
  137. package/skills/w/modules/COMPACTION.md +2 -6
  138. package/skills/w/modules/DB-SCRIPTS-ONLY.md +2 -0
  139. package/skills/w/modules/DESIGN-REFERENCES.md +15 -11
  140. package/skills/w/modules/IDEATION-GATE.md +3 -3
  141. package/skills/w/modules/PLAN-EXECUTION-BATCHES.md +17 -36
  142. package/skills/w/modules/PLAN-INPUT.md +5 -3
  143. package/skills/w/modules/PLAN-REFINE-SPLIT.md +3 -1
  144. package/skills/w/modules/PLAN-SPLIT-GATE.md +7 -5
  145. package/skills/w/modules/PROMPT-CONTINUITY.md +3 -1
  146. package/skills/w/modules/SPEC-CHANGE-SHAPE.md +4 -4
  147. package/skills/w/roles/README.md +2 -0
  148. package/skills/w/roles/design/CONTRACT.md +80 -0
  149. package/skills/w/roles/design/ROLE.md +7 -0
  150. package/skills/w/schemas/capability-descriptor.schema.json +260 -0
  151. package/skills/w/schemas/design/design-render-bundle.v1.schema.json +191 -0
  152. package/skills/w/schemas/design/design-rendition.v1.schema.json +232 -0
  153. package/skills/w/schemas/design/ui-screen.v1.schema.json +29 -1
@@ -1,3 +1,4 @@
1
+ import { CAPABILITY_CONTRACT_VERSION } from "../capability/descriptor.js";
1
2
  /**
2
3
  * What the `design` capability IS, said once.
3
4
  *
@@ -30,10 +31,10 @@ export const DESIGN_OPERATIONS = ["create", "update", "validate", "render", "rec
30
31
  * Every format this capability produces, and the only ones it accepts.
31
32
  *
32
33
  * The validators read their id from here rather than repeating a literal, so
33
- * the registry is load-bearing instead of documentation: a seventh format
34
- * cannot appear in code without appearing here, and `design-schema-guard`
35
- * proves this table and the published JSON Schemas under
36
- * `skills/w/schemas/design/` name the same six things.
34
+ * the registry is load-bearing instead of documentation: a new format cannot
35
+ * appear in code without appearing here, and `design-schema-guard` proves this
36
+ * table and the published JSON Schemas under `skills/w/schemas/design/` name
37
+ * the same things.
37
38
  *
38
39
  * This is the canonical authority (S013/AC-CAP-03). The built-in floor and any
39
40
  * third-party improvement bound to the role write these and are validated by
@@ -47,5 +48,263 @@ export const CANONICAL_SCHEMAS = {
47
48
  screen: "workline.ui-screen/v1",
48
49
  review: "workline.design-review/v1",
49
50
  revocation: "workline.design-revocation/v1",
51
+ rendition: "workline.design-rendition/v1",
52
+ renderBundle: "workline.design-render-bundle/v1",
53
+ };
54
+ /**
55
+ * `design` as a capability descriptor — the v1 conformant instance.
56
+ *
57
+ * This is the same capability the table above describes, restated in the ONE
58
+ * form every consumer reads: the wrapper installed into a host, the dispatcher,
59
+ * discovery, the generated help and any flow that composes an operation all
60
+ * derive from this object rather than re-describing it. Two descriptions of one
61
+ * contract is the failure mode the whole layer exists to prevent.
62
+ *
63
+ * The typing is load-bearing twice over. `CapabilityDescriptor` keeps the shape
64
+ * honest, and `name: SkillRole` proves at COMPILE TIME that the capability's
65
+ * public identity and the `skills.toml` binding slot are the same string. The
66
+ * day someone names a capability differently from its role, the parallel public
67
+ * identity `S014/AC-ID-01` forbids reappears — and this annotation is the only
68
+ * barrier against it.
69
+ *
70
+ * The `schema` fields point at formats already published under
71
+ * `skills/w/schemas/design/`; the descriptor references them and does not become
72
+ * another one. That is why it lives here and the CONTRACT lives in
73
+ * `domain/capability` — a design format never has to know a capability exists.
74
+ */
75
+ export const DESIGN_DESCRIPTOR = {
76
+ contract_version: CAPABILITY_CONTRACT_VERSION,
77
+ name: DESIGN_CAPABILITY,
78
+ purpose: "producir, actualizar, juzgar, proyectar y sellar un UI Design Package v1 sobre un contrato único",
79
+ exposure: ["direct", "compose"],
80
+ default_operation: null,
81
+ operations: [
82
+ {
83
+ name: "create",
84
+ summary: "primera revisión de un package a partir de fuentes declaradas",
85
+ exposure: ["direct", "compose"],
86
+ // `optional`, not `required`: inside a workspace the package defaults to
87
+ // `docs/designs/`, and OUTSIDE one an explicit root still produces a
88
+ // portable package (`AC-DIR-04`). Refusing outside a workspace would turn
89
+ // "design something on a machine with no Workline project" into an error
90
+ // instead of an answer — and `resolveOutputRoot` is what keeps the other
91
+ // half of `AC-REQ-03` intact: no root declared, no writing, and never an
92
+ // invented one.
93
+ workspace: "optional",
94
+ interaction: "needs_input",
95
+ inputs: [
96
+ { name: "title", kind: "text", required: true, sensitivity: "public", schema: null },
97
+ { name: "sources", kind: "reference", required: true, sensitivity: "public", schema: null },
98
+ { name: "target", kind: "text", required: true, sensitivity: "public", schema: null },
99
+ {
100
+ name: "profile",
101
+ kind: "selection",
102
+ required: false,
103
+ sensitivity: "public",
104
+ schema: null,
105
+ },
106
+ { name: "context", kind: "text", required: false, sensitivity: "public", schema: null },
107
+ // The maturity the caller ASKS FOR. Declared as an input because the
108
+ // answer "you got `outline`, not `handoff`" only means something
109
+ // against something that was requested.
110
+ {
111
+ name: "maturity",
112
+ kind: "selection",
113
+ required: false,
114
+ sensitivity: "public",
115
+ schema: null,
116
+ },
117
+ ],
118
+ output: {
119
+ kind: "value_and_reference",
120
+ schema: CANONICAL_SCHEMAS.baseline,
121
+ completeness: ["complete", "partial"],
122
+ },
123
+ effects: [
124
+ { class: "read_only", idempotent: true, authorization: "invocation", approval: "none" },
125
+ {
126
+ class: "local_additive",
127
+ idempotent: false,
128
+ authorization: "invocation",
129
+ approval: "none",
130
+ },
131
+ ],
132
+ off: "blocked",
133
+ },
134
+ {
135
+ name: "update",
136
+ summary: "revisión siguiente de un package existente, con base de compare-and-swap",
137
+ exposure: ["direct", "compose"],
138
+ workspace: "optional",
139
+ interaction: "needs_input",
140
+ inputs: [
141
+ { name: "package", kind: "reference", required: true, sensitivity: "public", schema: null },
142
+ { name: "base", kind: "reference", required: true, sensitivity: "public", schema: null },
143
+ {
144
+ name: "sources",
145
+ kind: "reference",
146
+ required: false,
147
+ sensitivity: "public",
148
+ schema: null,
149
+ },
150
+ { name: "context", kind: "text", required: false, sensitivity: "public", schema: null },
151
+ {
152
+ name: "maturity",
153
+ kind: "selection",
154
+ required: false,
155
+ sensitivity: "public",
156
+ schema: null,
157
+ },
158
+ ],
159
+ output: {
160
+ kind: "value_and_reference",
161
+ schema: CANONICAL_SCHEMAS.baseline,
162
+ completeness: ["complete", "partial"],
163
+ },
164
+ effects: [
165
+ { class: "read_only", idempotent: true, authorization: "invocation", approval: "none" },
166
+ {
167
+ class: "local_additive",
168
+ idempotent: false,
169
+ authorization: "invocation",
170
+ approval: "none",
171
+ },
172
+ // Publishing a revision moves the manifest's current baseline: an
173
+ // existing file says something else afterwards, so a human sees it first.
174
+ {
175
+ class: "mutate_overwrite",
176
+ idempotent: false,
177
+ authorization: "preflight",
178
+ approval: "visible",
179
+ },
180
+ ],
181
+ off: "blocked",
182
+ },
183
+ {
184
+ name: "validate",
185
+ summary: "juzgar un package sin escribir: schemas, naming, referencias y madurez",
186
+ exposure: ["direct", "compose"],
187
+ // The one operation a flow can reach with `design` off, so it must not
188
+ // depend on workspace state it might not have.
189
+ workspace: "optional",
190
+ interaction: "single_pass",
191
+ inputs: [
192
+ { name: "package", kind: "reference", required: true, sensitivity: "public", schema: null },
193
+ {
194
+ name: "profile",
195
+ kind: "selection",
196
+ required: false,
197
+ sensitivity: "public",
198
+ schema: null,
199
+ },
200
+ ],
201
+ output: { kind: "value", schema: null, completeness: ["complete"] },
202
+ effects: [
203
+ { class: "read_only", idempotent: true, authorization: "invocation", approval: "none" },
204
+ ],
205
+ // Survives `off` on purpose: a package that already exists stays
206
+ // consultable and consumable, or turning the capability off would
207
+ // retroactively invalidate work nobody asked to discard.
208
+ off: "allowed",
209
+ },
210
+ {
211
+ name: "render",
212
+ summary: "regenerar las proyecciones de una revisión y preparar el handoff a un proveedor",
213
+ exposure: ["direct", "compose"],
214
+ workspace: "optional",
215
+ interaction: "single_pass",
216
+ inputs: [
217
+ { name: "package", kind: "reference", required: true, sensitivity: "public", schema: null },
218
+ { name: "profile", kind: "selection", required: true, sensitivity: "public", schema: null },
219
+ ],
220
+ output: {
221
+ kind: "reference",
222
+ schema: CANONICAL_SCHEMAS.renderBundle,
223
+ completeness: ["complete", "partial"],
224
+ },
225
+ effects: [
226
+ { class: "read_only", idempotent: true, authorization: "invocation", approval: "none" },
227
+ {
228
+ class: "local_additive",
229
+ idempotent: true,
230
+ authorization: "invocation",
231
+ approval: "none",
232
+ },
233
+ // A provider profile can leave the machine. Declared here rather than
234
+ // decided at call time: the preflight is what makes the destination and
235
+ // the payload visible before anything is sent.
236
+ {
237
+ class: "network_external",
238
+ idempotent: false,
239
+ authorization: "preflight",
240
+ approval: "visible",
241
+ },
242
+ ],
243
+ off: "blocked",
244
+ },
245
+ {
246
+ name: "record",
247
+ summary: "sellar una decisión de gobierno sobre una revisión existente",
248
+ exposure: ["direct", "compose"],
249
+ workspace: "optional",
250
+ interaction: "single_pass",
251
+ inputs: [
252
+ { name: "package", kind: "reference", required: true, sensitivity: "public", schema: null },
253
+ {
254
+ name: "revision",
255
+ kind: "reference",
256
+ required: true,
257
+ sensitivity: "public",
258
+ schema: null,
259
+ },
260
+ { name: "decision", kind: "text", required: true, sensitivity: "public", schema: null },
261
+ ],
262
+ output: {
263
+ kind: "reference",
264
+ schema: CANONICAL_SCHEMAS.review,
265
+ completeness: ["complete"],
266
+ },
267
+ effects: [
268
+ { class: "read_only", idempotent: true, authorization: "invocation", approval: "none" },
269
+ {
270
+ class: "local_additive",
271
+ idempotent: false,
272
+ authorization: "invocation",
273
+ approval: "none",
274
+ },
275
+ // A revocation changes what a published revision means downstream.
276
+ {
277
+ class: "mutate_overwrite",
278
+ idempotent: false,
279
+ authorization: "preflight",
280
+ approval: "visible",
281
+ },
282
+ ],
283
+ off: "blocked",
284
+ },
285
+ ],
286
+ // Core with a built-in floor: the PLAN and SPEC gates that consume a package
287
+ // must keep working on a machine where nothing extra is installed.
288
+ floor: { builtin: true, kind: "core", improvements: "host_selected" },
289
+ degradations: [
290
+ { cause: "opaque_selection", action: "floor" },
291
+ { cause: "incompatible_improvement", action: "floor" },
292
+ { cause: "invalid_binding", action: "floor" },
293
+ { cause: "digest_changed", action: "floor" },
294
+ ],
295
+ compatibility: {
296
+ status: "active",
297
+ minimum_contract_version: CAPABILITY_CONTRACT_VERSION,
298
+ // This descriptor IS the capability, not an improvement to one.
299
+ improves: null,
300
+ // Not aliases. Listed so every entry surface can refuse them by NAME with a
301
+ // corrective action instead of failing with "unknown skill".
302
+ retired_names: ["ui-design", "ui-spec"],
303
+ retired_formats: [
304
+ "spec-section:## UI spec",
305
+ "session-design-spec:NNN-SPEC-<SLUG>.md",
306
+ "ui-spec-generator:output",
307
+ ],
308
+ },
50
309
  };
51
310
  //# sourceMappingURL=capability.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"capability.js","sourceRoot":"","sources":["../../../src/domain/design/capability.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAc,QAAQ,CAAC;AAErD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAI/F;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,6BAA6B;IACvC,QAAQ,EAAE,6BAA6B;IACvC,IAAI,EAAE,qBAAqB;IAC3B,MAAM,EAAE,uBAAuB;IAC/B,MAAM,EAAE,2BAA2B;IACnC,UAAU,EAAE,+BAA+B;CACnC,CAAC"}
1
+ {"version":3,"file":"capability.js","sourceRoot":"","sources":["../../../src/domain/design/capability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * What the DIRECT route adds on top of the capability contract.
3
+ *
4
+ * The generic half — envelope, attempts, outcomes, receipt correlation, the
5
+ * rule that a direct invocation opens no flow session — is already delivered
6
+ * and tested by the capability layer. Three things are left, and all three are
7
+ * design-domain decisions:
8
+ *
9
+ * - **Where the output lands.** Inside a workspace it defaults to
10
+ * `docs/designs/`; outside one it needs an explicit root and still produces
11
+ * something portable. A capability that simply refused outside a workspace
12
+ * would make "design something on a machine that has no Workline project" an
13
+ * error instead of an answer.
14
+ * - **Which domain fields the receipt carries.** The canonical receipt already
15
+ * says operation, validations, degradations, effects and next action; it
16
+ * knows nothing about packages, baselines or maturity. Those are added here
17
+ * and nowhere else — repeating the canonical ones would be a second receipt.
18
+ * - **What maturity the result may claim.** The one rule the whole ladder rests
19
+ * on: an omission that could change behavior means the answer is `outline`
20
+ * with a gap, never a `handoff` nobody can trace back.
21
+ */
22
+ import { checkSafeRelativePath } from "../safe-path.js";
23
+ import { handoffGapsFrom } from "./sources.js";
24
+ /** The conventional home of packages inside a workspace. */
25
+ export const DESIGNS_DIR = "docs/designs";
26
+ /**
27
+ * Decide where a directly-invoked operation writes.
28
+ *
29
+ * Being outside a workspace is not an error — it is a different mode, and the
30
+ * only thing it costs is that the caller has to say where. What is refused is
31
+ * guessing: writing a package into whatever directory the process happened to
32
+ * start in is how a design ends up somewhere nobody looks again.
33
+ */
34
+ export function resolveOutputRoot(workspace, target, artifact = "design") {
35
+ if (workspace === null) {
36
+ if (target === null || target.trim().length === 0) {
37
+ return {
38
+ ok: false,
39
+ failure: {
40
+ code: "DESIGN_OUTPUT_ROOT_REQUIRED",
41
+ artifact,
42
+ message: "fuera de un workspace hace falta una raíz explícita para el package",
43
+ action: "pasá 'target' con la ruta donde debe quedar el package",
44
+ },
45
+ };
46
+ }
47
+ // An explicit root outside a workspace is the caller's own path: it is not
48
+ // validated as workspace-relative, because it is not relative to one.
49
+ return { ok: true, value: { kind: "explicit", root: target.trim() } };
50
+ }
51
+ if (target === null || target.trim().length === 0) {
52
+ return { ok: true, value: { kind: "workspace", root: DESIGNS_DIR, declared: false } };
53
+ }
54
+ const safe = checkSafeRelativePath(target.trim());
55
+ if (!safe.ok) {
56
+ return {
57
+ ok: false,
58
+ failure: {
59
+ code: "DESIGN_OUTPUT_ROOT_UNSAFE",
60
+ artifact,
61
+ message: `'${target}' no es una ruta relativa válida dentro del workspace: ${safe.why}`,
62
+ action: `usá una ruta relativa dentro del workspace, por ejemplo '${DESIGNS_DIR}'`,
63
+ },
64
+ };
65
+ }
66
+ return { ok: true, value: { kind: "workspace", root: safe.path, declared: true } };
67
+ }
68
+ /**
69
+ * Whether a package written at this root is discoverable by the index.
70
+ *
71
+ * Only the ones under `docs/designs/` are. That is not a limitation of the
72
+ * index — it is what makes `AC-DIR-06` meaningful: a package created directly
73
+ * inside a workspace can be referenced later by a spec or a plan without ever
74
+ * having had a relationship with those flows, precisely because it landed where
75
+ * discovery looks.
76
+ */
77
+ export function isIndexable(root) {
78
+ if (root.kind !== "workspace")
79
+ return false;
80
+ const segments = root.root.split("/").filter((s) => s.length > 0);
81
+ const expected = DESIGNS_DIR.split("/");
82
+ return expected.every((segment, i) => segments[i] === segment);
83
+ }
84
+ /**
85
+ * The maturity the result may honestly claim.
86
+ *
87
+ * Two independent reasons to fall back to `outline`, and both are ceilings
88
+ * rather than opinions: the document-level verdict the `012` gate already
89
+ * computes, and an essential source that did not contribute. Neither can be
90
+ * argued past — a floor and an improvement get the same answer here, which is
91
+ * what stops an improvement from "achieving" a `handoff` the evidence does not
92
+ * support.
93
+ */
94
+ export function attainedMaturity(requested, gateVerdict, report) {
95
+ const gaps = handoffGapsFrom(report);
96
+ if (report.blocksHandoff)
97
+ return { attained: "outline", gaps };
98
+ if (requested === "handoff" && gateVerdict !== "handoff") {
99
+ return {
100
+ attained: gateVerdict,
101
+ gaps: [
102
+ `se pidió 'handoff' y la evidencia del package alcanza '${gateVerdict}': completá lo que el gate reclama`,
103
+ ],
104
+ };
105
+ }
106
+ return { attained: gateVerdict, gaps: [] };
107
+ }
108
+ //# sourceMappingURL=direct.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direct.js","sourceRoot":"","sources":["../../../src/domain/design/direct.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,4DAA4D;AAC5D,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAY1C;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAwB,EACxB,MAAqB,EACrB,QAAQ,GAAG,QAAQ;IAEnB,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE;oBACP,IAAI,EAAE,6BAA6B;oBACnC,QAAQ;oBACR,OAAO,EAAE,qEAAqE;oBAC9E,MAAM,EAAE,wDAAwD;iBACjE;aACF,CAAC;QACJ,CAAC;QACD,2EAA2E;QAC3E,sEAAsE;QACtE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;IACxE,CAAC;IAED,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;IACxF,CAAC;IAED,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE;gBACP,IAAI,EAAE,2BAA2B;gBACjC,QAAQ;gBACR,OAAO,EAAE,IAAI,MAAM,0DAA0D,IAAI,CAAC,GAAG,EAAE;gBACvF,MAAM,EAAE,4DAA4D,WAAW,GAAG;aACnF;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;AACrF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,IAAgB;IAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;AACjE,CAAC;AAoCD;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAgC,EAChC,WAA2B,EAC3B,MAAoB;IAEpB,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,aAAa;QAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC/D,IAAI,SAAS,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACzD,OAAO;YACL,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE;gBACJ,0DAA0D,WAAW,oCAAoC;aAC1G;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,65 @@
1
+ import { conformanceOf, degradationFailure, resolveCapability, } from "./adapter.js";
2
+ /**
3
+ * Plan a send, and say whether it may proceed.
4
+ *
5
+ * Two independent reasons to refuse, checked in this order because they answer
6
+ * different questions: the capability decides whether this profile can do the
7
+ * thing at all, and the authorization decides whether it may do it now. Reporting
8
+ * the missing authorization for an operation the profile never supported would
9
+ * send the author to get approval for something that still would not work.
10
+ */
11
+ export function planExternalSend(input) {
12
+ const capability = input.capability ?? "handoff";
13
+ const requires = input.adapter.network === "opt_in";
14
+ const authorization = (input.authorization ?? "").trim();
15
+ const authorized = !requires || authorization.length > 0;
16
+ const plan = {
17
+ adapter: input.adapter.id,
18
+ version: input.adapter.version,
19
+ conformance: conformanceOf(input.adapter),
20
+ capability,
21
+ requires_authorization: requires,
22
+ authorized,
23
+ would_send: sendManifest(input.bundle),
24
+ local_handoff: "el bundle queda disponible localmente: validar, leer y entregarlo a mano no necesitan proveedor, cuenta ni red",
25
+ };
26
+ const resolution = resolveCapability(input.adapter, capability);
27
+ if (!resolution.ok) {
28
+ return {
29
+ ok: false,
30
+ plan,
31
+ failure: degradationFailure(resolution.degradation, `${input.bundle.package}/render-bundle.json`),
32
+ };
33
+ }
34
+ if (!authorized) {
35
+ return { ok: false, plan, failure: unauthorized(plan) };
36
+ }
37
+ return { ok: true, plan };
38
+ }
39
+ function sendManifest(bundle) {
40
+ return {
41
+ package: bundle.package,
42
+ baseline: bundle.baseline,
43
+ baseline_digest: bundle.baseline_digest,
44
+ data_classification: bundle.data_classification,
45
+ documents: bundle.closure.map((m) => m.ref),
46
+ assets: bundle.assets.map((a) => a.path),
47
+ obligations: bundle.accessibility.length,
48
+ losses: bundle.losses.map((l) => l.subject),
49
+ };
50
+ }
51
+ /**
52
+ * The refusal. It names what would have been sent, because that IS the thing being
53
+ * authorized — and the count of documents and assets is what makes "real data to a
54
+ * third party" concrete instead of abstract.
55
+ */
56
+ function unauthorized(plan) {
57
+ const sent = plan.would_send;
58
+ return {
59
+ code: "DESIGN_SEND_UNAUTHORIZED",
60
+ artifact: `${sent.package}/render-bundle.json`,
61
+ message: `'${plan.adapter}' alcanza a un tercero y nadie autorizó el envío: se enviarían ${sent.documents.length} revisión(es), ${sent.assets.length} asset(s) y material '${sent.data_classification}' de ${sent.package}@r${sent.baseline}`,
62
+ action: "declará la autorización explícita del envío (quién la da y con qué visibilidad), o quedate con el handoff neutral local: el bundle ya está y no necesita proveedor",
63
+ };
64
+ }
65
+ //# sourceMappingURL=external-send.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-send.js","sourceRoot":"","sources":["../../../src/domain/design/external-send.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,aAAa,EACb,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAkEtB;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAwB;IACvD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,SAAS,CAAC;IACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC;IACpD,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzD,MAAM,UAAU,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAqB;QAC7B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;QACzB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;QAC9B,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;QACzC,UAAU;QACV,sBAAsB,EAAE,QAAQ;QAChC,UAAU;QACV,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;QACtC,aAAa,EACX,gHAAgH;KACnH,CAAC;IAEF,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAChE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI;YACJ,OAAO,EAAE,kBAAkB,CACzB,UAAU,CAAC,WAAW,EACtB,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAC7C;SACF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1D,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,YAAY,CAAC,MAAoB;IACxC,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACxC,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM;QACxC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,IAAsB;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;IAC7B,OAAO;QACL,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,qBAAqB;QAC9C,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,kEAAkE,IAAI,CAAC,SAAS,CAAC,MAAM,kBAAkB,IAAI,CAAC,MAAM,CAAC,MAAM,yBAAyB,IAAI,CAAC,mBAAmB,QAAQ,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,QAAQ,EAAE;QAC7O,MAAM,EACJ,oKAAoK;KACvK,CAAC;AACJ,CAAC"}
@@ -100,8 +100,79 @@ function checkHandoff(artifact, sections, kind, file) {
100
100
  ...checkGraph(artifact, file),
101
101
  ...checkApplicableCompleteness(artifact, sections, kind, file),
102
102
  ...checkExternalCustody(artifact, file),
103
+ ...checkVisualEvidence(artifact, file),
103
104
  ];
104
105
  }
106
+ /**
107
+ * The elevation of AC-REN-01 and AC-REN-02: a `handoff` screen is LOOKABLE.
108
+ *
109
+ * Until this existed, `handoff` meant the prose was complete. That let a screen
110
+ * be declared implementable while nobody could see it — and the visual evidence,
111
+ * when it existed at all, was somebody's habit rather than a requirement. So a
112
+ * `handoff` screen now owes two things:
113
+ *
114
+ * 1. a classification for every criterion it traces, and
115
+ * 2. a local preview of its `default_state` — the criterion that shows the base
116
+ * state has to enumerate it AND enumerate a rendition of it.
117
+ *
118
+ * Both are checked HERE, against the document alone, and only the document's own
119
+ * claims. Whether the enumerated rendition exists, was cut from this revision and
120
+ * really covers that state is the package-level cross in `visual-evidence.ts`:
121
+ * this gate cannot open another file, and a gate that pretended to would be
122
+ * reporting on evidence it never read.
123
+ *
124
+ * `outline` is untouched on purpose. A screen still being shaped legitimately has
125
+ * no picture yet, and demanding one would push the author to render a placeholder
126
+ * so the document matches a template.
127
+ */
128
+ function checkVisualEvidence(artifact, file) {
129
+ if (artifact.kind !== "screen")
130
+ return [];
131
+ const screen = artifact;
132
+ const failures = [];
133
+ for (const entry of screen.trace) {
134
+ failures.push(...checkClassified(entry, file));
135
+ }
136
+ const base = screen.trace.filter((e) => e.classification !== "not_visual" && e.states.includes(screen.default_state));
137
+ if (!base.some((e) => e.renditions.length > 0)) {
138
+ failures.push({
139
+ code: "DESIGN_EVIDENCE_INSUFFICIENT",
140
+ artifact: file,
141
+ message: `ningún criterio trazado muestra el estado base '${screen.default_state}' con una rendition`,
142
+ action: "un 'handoff' conserva una preview estática local de su default_state: creá la rendition y enumerala en el criterio que lo demuestra",
143
+ });
144
+ }
145
+ return failures;
146
+ }
147
+ /** One entry of the matrix: classified, and enumerating what its class demands. */
148
+ function checkClassified(entry, file) {
149
+ const incomplete = (message, action) => ({
150
+ code: "DESIGN_MATURITY_INCOMPLETE",
151
+ artifact: file,
152
+ message: `trace['${entry.criterion}'] ${message}`,
153
+ action,
154
+ });
155
+ if (entry.classification === null) {
156
+ return [
157
+ incomplete("no está clasificado", "clasificalo 'visual', 'interaction' o 'not_visual': un 'handoff' dice cómo se demuestra cada criterio"),
158
+ ];
159
+ }
160
+ if (entry.classification === "not_visual") {
161
+ return entry.reason === null
162
+ ? [
163
+ incomplete("está clasificado 'not_visual' y no dice por qué", "escribí en 'reason' qué hace que ese criterio no tenga nada que mirar"),
164
+ ]
165
+ : [];
166
+ }
167
+ const failures = [];
168
+ if (entry.states.length === 0) {
169
+ failures.push(incomplete(`es '${entry.classification}' y no enumera estados`, "nombrá en 'states' los anchors donde se ve"));
170
+ }
171
+ if (entry.renditions.length === 0) {
172
+ failures.push(incomplete(`es '${entry.classification}' y no enumera renditions`, "referenciá en 'renditions' la evidencia visual que lo muestra"));
173
+ }
174
+ return failures;
175
+ }
105
176
  /**
106
177
  * AC-SEM-02: a `handoff` flow states its TRANSITIONS, not just its steps.
107
178
  *
@@ -1 +1 @@
1
- {"version":3,"file":"maturity.js","sourceRoot":"","sources":["../../../src/domain/design/maturity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,UAAU,EACV,SAAS,GACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAsClE;;;;;GAKG;AACH,MAAM,cAAc,GAAG,4DAA4D,CAAC;AAEpF,4EAA4E;AAC5E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,eAAe;IACf,iCAAiC;IACjC,wBAAwB;IACxB,2BAA2B;IAC3B,cAAc;IACd,yBAAyB;IACzB,2BAA2B;CAC5B,CAAC,CAAC;AAEH,MAAM,UAAU,aAAa,CAC3B,QAAwB,EACxB,QAAuB,EACvB,IAAmB,EACnB,IAAY;IAEZ,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG;QACf,GAAG,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC;QACpD,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACzF,CAAC;IACF,OAAO;QACL,UAAU,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QACjE,QAAQ;QACR,WAAW;KACZ,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,iBAAiB,CACxB,QAAwB,EACxB,QAAuB,EACvB,IAAmB,EACnB,IAAY;IAEZ,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,4BAA4B;YAClC,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,wDAAwD;YACjE,MAAM,EAAE,4EAA4E;SACrF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,4BAA4B;YAClC,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,mEAAmE;YAC5E,MAAM,EAAE,uCAAuC;SAChD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,SAAS,GACb,QAAQ,CAAC,IAAI,KAAK,MAAM;QACtB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACvD,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAC/D,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,4BAA4B;YAClC,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,+CAA+C,SAAS,CAAC,IAAI,EAAE;YACxE,MAAM,EAAE,MAAM,IAAI,gCAAgC,SAAS,CAAC,IAAI,yBAAyB;SAC1F,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAC7E,6EAA6E;IAC7E,8EAA8E;IAC9E,4EAA4E;IAC5E,+EAA+E;IAC/E,wBAAwB;IAExB,QAAQ,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,gFAAgF;AAChF,SAAS,iBAAiB,CACxB,QAAuB,EACvB,IAAmB,EACnB,IAAY;IAEZ,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,OAAO,QAAQ;SACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;SAC9E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,yCAAyC;QAC/D,MAAM,EACJ,8FAA8F;KACjG,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CACnB,QAAwB,EACxB,QAAuB,EACvB,IAAmB,EACnB,IAAY;IAEZ,OAAO;QACL,GAAG,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC;QACxC,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC;QAC7B,GAAG,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC;QAC9D,GAAG,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC;KACxC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,QAAwB,EAAE,IAAY;IACxD,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvF,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO;QACL;YACE,IAAI,EAAE,4BAA4B;YAClC,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,WAAW,QAAQ,CAAC,KAAK,CAAC,MAAM,yCAAyC;YAClF,MAAM,EACJ,sFAAsF;SACzF;KACF,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,SAAS,qBAAqB,CAAC,QAAwB,EAAE,IAAY;IACnE,OAAO,QAAQ,CAAC,QAAQ;SACrB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,oCAAoC,CAAC,CAAC,QAAQ,GAAG;QAC1D,MAAM,EACJ,gGAAgG;KACnG,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;;;;;GAMG;AACH,SAAS,2BAA2B,CAClC,QAAwB,EACxB,QAAuB,EACvB,IAAmB,EACnB,IAAY;IAEZ,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS;YAAE,SAAS;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QACtE,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,4BAA4B;YAClC,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,2CAA2C;YAC5E,MAAM,EAAE,wCAAwC,GAAG,eAAe;SACnE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,QAAwB,EAAE,IAAY;IAClE,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAClD,8EAA8E;IAC9E,8EAA8E;IAC9E,+EAA+E;IAC/E,MAAM,IAAI,GACR,QAAQ,CAAC,IAAI,KAAK,MAAM;QACtB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC;QAC/D,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,SAAS,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAE/F,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;YAAE,SAAS;QACtF,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEhC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,cAAc,QAAQ,iBAAiB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACjE,MAAM,EAAE,oCAAoC,QAAQ,2GAA2G;KAChK,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,eAAe,CACtB,QAAuB,EACvB,MAA8B;IAE9B,OAAO,QAAQ;SACZ,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS,CAC9F;SACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,SAAS,CAAC,IAAmB,EAAE,GAAW;IACjD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC;AAClE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,IAAmB,EACnB,IAAY;IAEZ,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IACjF,CAAC;IACD,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;IACtF,OAAO,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"maturity.js","sourceRoot":"","sources":["../../../src/domain/design/maturity.ts"],"names":[],"mappings":"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"}