@tacuchi/agent-workflow-cli 21.0.0 → 21.3.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 (170) hide show
  1. package/README.md +3 -2
  2. package/dist/adapters/git-cli.js +12 -7
  3. package/dist/adapters/git-cli.js.map +1 -1
  4. package/dist/application/capability/compose.js +161 -0
  5. package/dist/application/capability/compose.js.map +1 -0
  6. package/dist/application/capability/descriptor-loader.js +109 -0
  7. package/dist/application/capability/descriptor-loader.js.map +1 -0
  8. package/dist/application/capability/design-handler.js +299 -0
  9. package/dist/application/capability/design-handler.js.map +1 -0
  10. package/dist/application/capability/dispatcher.js +312 -0
  11. package/dist/application/capability/dispatcher.js.map +1 -0
  12. package/dist/application/capability/durable-effect.js +220 -0
  13. package/dist/application/capability/durable-effect.js.map +1 -0
  14. package/dist/application/capability/installed-inventory.js +168 -0
  15. package/dist/application/capability/installed-inventory.js.map +1 -0
  16. package/dist/application/capability/readiness.js +204 -0
  17. package/dist/application/capability/readiness.js.map +1 -0
  18. package/dist/application/capability/resolution.js +264 -0
  19. package/dist/application/capability/resolution.js.map +1 -0
  20. package/dist/application/capability/wrapper.js +195 -0
  21. package/dist/application/capability/wrapper.js.map +1 -0
  22. package/dist/application/context/manifest.js +11 -5
  23. package/dist/application/context/manifest.js.map +1 -1
  24. package/dist/application/context/measure.js +5 -2
  25. package/dist/application/context/measure.js.map +1 -1
  26. package/dist/application/context/plan-service.js +6 -6
  27. package/dist/application/context/plan-service.js.map +1 -1
  28. package/dist/application/design/design-bundle-service.js +148 -0
  29. package/dist/application/design/design-bundle-service.js.map +1 -0
  30. package/dist/application/design/design-proposal-service.js +69 -0
  31. package/dist/application/design/design-proposal-service.js.map +1 -0
  32. package/dist/application/design/design-publish-service.js +275 -7
  33. package/dist/application/design/design-publish-service.js.map +1 -1
  34. package/dist/application/design/design-record-service.js +100 -0
  35. package/dist/application/design/design-record-service.js.map +1 -0
  36. package/dist/application/flow/advance.js +533 -0
  37. package/dist/application/flow/advance.js.map +1 -0
  38. package/dist/application/flow/flow-service.js +65 -0
  39. package/dist/application/flow/flow-service.js.map +1 -0
  40. package/dist/application/flow/run-projection.js +80 -0
  41. package/dist/application/flow/run-projection.js.map +1 -0
  42. package/dist/application/flow/run-state-service.js +107 -0
  43. package/dist/application/flow/run-state-service.js.map +1 -0
  44. package/dist/application/flow/submit.js +423 -0
  45. package/dist/application/flow/submit.js.map +1 -0
  46. package/dist/application/markdown.js +16 -2
  47. package/dist/application/markdown.js.map +1 -1
  48. package/dist/application/resume-service.js +23 -10
  49. package/dist/application/resume-service.js.map +1 -1
  50. package/dist/application/self/hooks-toml.js +137 -17
  51. package/dist/application/self/hooks-toml.js.map +1 -1
  52. package/dist/application/self/host-states.js +87 -1
  53. package/dist/application/self/host-states.js.map +1 -1
  54. package/dist/application/self/install-hooks.js +62 -6
  55. package/dist/application/self/install-hooks.js.map +1 -1
  56. package/dist/application/self/install-skill.js +37 -6
  57. package/dist/application/self/install-skill.js.map +1 -1
  58. package/dist/application/self/uninstall.js +21 -0
  59. package/dist/application/self/uninstall.js.map +1 -1
  60. package/dist/application/skills-resolver-service.js +8 -2
  61. package/dist/application/skills-resolver-service.js.map +1 -1
  62. package/dist/application/status-service.js +4 -1
  63. package/dist/application/status-service.js.map +1 -1
  64. package/dist/application/workline-index-service.js +15 -2
  65. package/dist/application/workline-index-service.js.map +1 -1
  66. package/dist/application/workspace-init-service.js +13 -1
  67. package/dist/application/workspace-init-service.js.map +1 -1
  68. package/dist/cli/commands/capability.js +182 -0
  69. package/dist/cli/commands/capability.js.map +1 -0
  70. package/dist/cli/commands/flow.js +71 -0
  71. package/dist/cli/commands/flow.js.map +1 -0
  72. package/dist/cli/commands/index.js +4 -0
  73. package/dist/cli/commands/index.js.map +1 -1
  74. package/dist/cli/commands/skills.js +55 -2
  75. package/dist/cli/commands/skills.js.map +1 -1
  76. package/dist/cli/commands/status.js +5 -0
  77. package/dist/cli/commands/status.js.map +1 -1
  78. package/dist/cli/help-groups.js +6 -0
  79. package/dist/cli/help-groups.js.map +1 -1
  80. package/dist/cli/parser.js +6 -0
  81. package/dist/cli/parser.js.map +1 -1
  82. package/dist/cli/tui/components/host-admin-section.js +14 -2
  83. package/dist/cli/tui/components/host-admin-section.js.map +1 -1
  84. package/dist/cli/tui/data/workflow-content.js +13 -1
  85. package/dist/cli/tui/data/workflow-content.js.map +1 -1
  86. package/dist/cli/tui/tabs/workflow-tab.js +8 -1
  87. package/dist/cli/tui/tabs/workflow-tab.js.map +1 -1
  88. package/dist/domain/capability/descriptor.js +553 -0
  89. package/dist/domain/capability/descriptor.js.map +1 -0
  90. package/dist/domain/capability/effects.js +90 -0
  91. package/dist/domain/capability/effects.js.map +1 -0
  92. package/dist/domain/capability/protocol.js +494 -0
  93. package/dist/domain/capability/protocol.js.map +1 -0
  94. package/dist/domain/contract-reader.js +84 -0
  95. package/dist/domain/contract-reader.js.map +1 -0
  96. package/dist/domain/design/adapter.js +161 -0
  97. package/dist/domain/design/adapter.js.map +1 -0
  98. package/dist/domain/design/artifact.js +148 -4
  99. package/dist/domain/design/artifact.js.map +1 -1
  100. package/dist/domain/design/capability.js +263 -4
  101. package/dist/domain/design/capability.js.map +1 -1
  102. package/dist/domain/design/direct.js +108 -0
  103. package/dist/domain/design/direct.js.map +1 -0
  104. package/dist/domain/design/external-send.js +65 -0
  105. package/dist/domain/design/external-send.js.map +1 -0
  106. package/dist/domain/design/maturity.js +71 -0
  107. package/dist/domain/design/maturity.js.map +1 -1
  108. package/dist/domain/design/offline.js +92 -0
  109. package/dist/domain/design/offline.js.map +1 -0
  110. package/dist/domain/design/profiles.js +212 -0
  111. package/dist/domain/design/profiles.js.map +1 -0
  112. package/dist/domain/design/proposal.js +234 -0
  113. package/dist/domain/design/proposal.js.map +1 -0
  114. package/dist/domain/design/render-bundle.js +0 -0
  115. package/dist/domain/design/render-bundle.js.map +1 -0
  116. package/dist/domain/design/rendition.js +472 -0
  117. package/dist/domain/design/rendition.js.map +1 -0
  118. package/dist/domain/design/sources.js +180 -0
  119. package/dist/domain/design/sources.js.map +1 -0
  120. package/dist/domain/design/validation.js +12 -68
  121. package/dist/domain/design/validation.js.map +1 -1
  122. package/dist/domain/design/visual-evidence.js +155 -0
  123. package/dist/domain/design/visual-evidence.js.map +1 -0
  124. package/dist/domain/flow/answer.js +459 -0
  125. package/dist/domain/flow/answer.js.map +1 -0
  126. package/dist/domain/flow/authority.js +2338 -0
  127. package/dist/domain/flow/authority.js.map +1 -0
  128. package/dist/domain/flow/authorization.js +62 -0
  129. package/dist/domain/flow/authorization.js.map +1 -0
  130. package/dist/domain/flow/directive.js +421 -0
  131. package/dist/domain/flow/directive.js.map +1 -0
  132. package/dist/domain/flow/rules.js +140 -0
  133. package/dist/domain/flow/rules.js.map +1 -0
  134. package/dist/domain/flow/run-state.js +317 -0
  135. package/dist/domain/flow/run-state.js.map +1 -0
  136. package/dist/domain/harnesses.js +124 -4
  137. package/dist/domain/harnesses.js.map +1 -1
  138. package/dist/domain/host-verification.js +8 -8
  139. package/dist/domain/skills.js +13 -14
  140. package/dist/domain/skills.js.map +1 -1
  141. package/dist/domain/structured-choice-stamp.js +106 -0
  142. package/dist/domain/structured-choice-stamp.js.map +1 -0
  143. package/package.json +1 -1
  144. package/skills/w/SKILL.md +5 -5
  145. package/skills/w/context/MANIFEST.json +42 -1
  146. package/skills/w/harness/HARNESS.md +30 -4
  147. package/skills/w/loops/CHASSIS.md +11 -20
  148. package/skills/w/loops/CODE-POLICIES.md +9 -15
  149. package/skills/w/loops/plan-exec-loop/LOOP.md +11 -13
  150. package/skills/w/loops/plan-new-loop/LOOP.md +6 -4
  151. package/skills/w/loops/plan-refine-loop/LOOP.md +5 -3
  152. package/skills/w/loops/quick-loop/LOOP.md +18 -26
  153. package/skills/w/loops/spec-refine-loop/LOOP.md +14 -18
  154. package/skills/w/modules/COMPACTION.md +2 -6
  155. package/skills/w/modules/DB-SCRIPTS-ONLY.md +2 -0
  156. package/skills/w/modules/DESIGN-REFERENCES.md +15 -11
  157. package/skills/w/modules/IDEATION-GATE.md +3 -3
  158. package/skills/w/modules/PLAN-EXECUTION-BATCHES.md +17 -36
  159. package/skills/w/modules/PLAN-INPUT.md +5 -3
  160. package/skills/w/modules/PLAN-REFINE-SPLIT.md +3 -1
  161. package/skills/w/modules/PLAN-SPLIT-GATE.md +7 -5
  162. package/skills/w/modules/PROMPT-CONTINUITY.md +3 -1
  163. package/skills/w/modules/SPEC-CHANGE-SHAPE.md +4 -4
  164. package/skills/w/roles/README.md +2 -0
  165. package/skills/w/roles/design/CONTRACT.md +80 -0
  166. package/skills/w/roles/design/ROLE.md +7 -0
  167. package/skills/w/schemas/capability-descriptor.schema.json +260 -0
  168. package/skills/w/schemas/design/design-render-bundle.v1.schema.json +191 -0
  169. package/skills/w/schemas/design/design-rendition.v1.schema.json +232 -0
  170. package/skills/w/schemas/design/ui-screen.v1.schema.json +29 -1
@@ -6,8 +6,13 @@ import { ARTIFACT_PREFIX, parseArtifactId } from "../../domain/design/identity.j
6
6
  import { validateDesignManifest } from "../../domain/design/manifest.js";
7
7
  import { gateDesignDocument } from "../../domain/design/maturity.js";
8
8
  import { NAMING, baselinePath, checkNaming } from "../../domain/design/naming.js";
9
+ import { checkOfflineHtml } from "../../domain/design/offline.js";
10
+ import { checkProviderLocator } from "../../domain/design/profiles.js";
9
11
  import { currentRevisions, renderDesignMd, renderPackageMd, } from "../../domain/design/projections.js";
12
+ import { checkDataAuthorization } from "../../domain/design/render-bundle.js";
13
+ import { validateDesignRendition } from "../../domain/design/rendition.js";
10
14
  import { KIND_LIST } from "../../domain/design/revision.js";
15
+ import { crossVisualEvidence } from "../../domain/design/visual-evidence.js";
11
16
  import { checkSafeRelativePath } from "../../domain/safe-path.js";
12
17
  import { publishArtifacts } from "../semantic-operation/publish.js";
13
18
  import { readDesignIndex } from "./design-index-service.js";
@@ -35,9 +40,21 @@ export async function publishDesignRevision(fs, workspace, input) {
35
40
  ],
36
41
  };
37
42
  }
38
- const catalog = mergeCatalog(manifest, input.files);
43
+ const catalog = mergeCatalog(manifest, input.files, input.dataAuthorization);
39
44
  if ("failures" in catalog)
40
45
  return { ok: false, failures: catalog.failures };
46
+ // Los archivos locales de una rendition se comprueban antes que las citas: una
47
+ // preview que no está, que no es la que su rendition declara o que se cuelga de
48
+ // una URL remota no puede respaldar nada, y decirlo así nombra la causa real.
49
+ const local = await checkLocalEvidence(fs, workspace, packagePath, catalog.value, input.files);
50
+ if (local.length > 0)
51
+ return { ok: false, failures: local };
52
+ // La evidencia visual se cruza acá, con el catálogo YA fusionado: una rendition
53
+ // publicada en esta misma revisión tiene que poder respaldar a la screen que la
54
+ // cita, y una cita que no se sostiene se rechaza ANTES de sellar nada.
55
+ const evidence = await crossPublishedEvidence(fs, workspace, packagePath, catalog.value, input.files);
56
+ if (evidence.length > 0)
57
+ return { ok: false, failures: evidence };
41
58
  const revision = (manifest.current_baseline?.revision ?? 0) + 1;
42
59
  const selection = await buildSelection(fs, workspace, packagePath, catalog.value, input.files);
43
60
  if ("failures" in selection)
@@ -154,7 +171,7 @@ function locate(index, packageId) {
154
171
  * authority for identity, revision and maturity (spec § *Canonical authority*):
155
172
  * the file name must AGREE with it, never define it.
156
173
  */
157
- function mergeCatalog(manifest, files) {
174
+ function mergeCatalog(manifest, files, authorization) {
158
175
  const catalog = structuredClone(manifest.catalog);
159
176
  const failures = [];
160
177
  for (const file of files) {
@@ -162,13 +179,27 @@ function mergeCatalog(manifest, files) {
162
179
  failures.push(...addAsset(catalog, file));
163
180
  continue;
164
181
  }
165
- failures.push(...addArtifact(catalog, manifest.id, file));
182
+ // Una preview NO se cataloga: la autoridad sobre los archivos de una
183
+ // rendition es su propio documento, que los declara con su digest. Darle una
184
+ // entrada de catálogo le daría una identidad y una revisión que no tiene, y
185
+ // ningún baseline puede sellar un path que el catálogo no nombre.
186
+ if (isRenditionCompanion(file.path))
187
+ continue;
188
+ failures.push(...addArtifact(catalog, manifest.id, file, authorization));
166
189
  }
167
190
  return failures.length > 0 ? { failures } : { value: catalog };
168
191
  }
192
+ /** A file inside a rendition's folder that is not the rendition document itself. */
193
+ function isRenditionCompanion(path) {
194
+ return path.startsWith(`${NAMING.rendition.dir}/`) && !path.endsWith(NAMING.rendition.suffix);
195
+ }
196
+ /** The directory a rendition's own files live in: `renditions/VIS-001-r001-x/`. */
197
+ function dirOf(renditionPath) {
198
+ return renditionPath.slice(0, renditionPath.length - "rendition.json".length);
199
+ }
169
200
  /** One flow, screen, rule, token or rendition into the catalog it belongs to. */
170
- function addArtifact(catalog, packageId, file) {
171
- const described = describeFile(file, packageId);
201
+ function addArtifact(catalog, packageId, file, authorization) {
202
+ const described = describeFile(file, packageId, authorization);
172
203
  if ("failures" in described)
173
204
  return described.failures;
174
205
  const { kind, id, revision, maturity, states, supersedes } = described.value;
@@ -235,7 +266,7 @@ function addAsset(catalog, file) {
235
266
  * the path must match it; for the kinds F2 gave no frontmatter contract, the
236
267
  * name is the only declaration there is — and that is stated, not hidden.
237
268
  */
238
- function describeFile(file, packageId) {
269
+ function describeFile(file, packageId, authorization) {
239
270
  const kind = kindOfPath(file.path);
240
271
  if (kind === null) {
241
272
  return {
@@ -251,8 +282,10 @@ function describeFile(file, packageId) {
251
282
  }
252
283
  if (kind === "flow" || kind === "screen")
253
284
  return describeDocument(file, packageId, kind);
285
+ if (kind === "rendition")
286
+ return describeRendition(file, packageId, authorization);
254
287
  const name = file.path.slice(NAMING[kind].dir.length + 1);
255
- const parsed = /^((?:RUL|TOK|VIS)-[0-9]+)-r([0-9]{3,})-/.exec(name);
288
+ const parsed = /^((?:RUL|TOK)-[0-9]+)-r([0-9]{3,})-/.exec(name);
256
289
  if (parsed === null) {
257
290
  return {
258
291
  failures: [
@@ -267,6 +300,76 @@ function describeFile(file, packageId) {
267
300
  }
268
301
  return { value: { kind, id: parsed[1], revision: Number(parsed[2]) } };
269
302
  }
303
+ /**
304
+ * A rendition: validated, and its identity read from its own JSON.
305
+ *
306
+ * Until F4 gave it a content contract, the file NAME was the only declaration a
307
+ * rendition had — so a picture could be filed as `VIS-003@r1` while claiming
308
+ * something else inside, and nothing looked. Now the document is the authority
309
+ * here too, exactly as it is for a flow or a screen, and the name must agree.
310
+ */
311
+ function describeRendition(file, packageId, authorization) {
312
+ const parsed = parseJson(file.content);
313
+ if (parsed === null) {
314
+ return {
315
+ failures: [
316
+ {
317
+ code: "DESIGN_RENDITION_UNREADABLE",
318
+ artifact: file.path,
319
+ message: "la rendition no es un JSON legible",
320
+ action: "reparala como un único objeto JSON válido",
321
+ },
322
+ ],
323
+ };
324
+ }
325
+ const validation = validateDesignRendition(parsed, file.path);
326
+ if (!validation.ok || validation.value === null)
327
+ return { failures: validation.failures };
328
+ const rendition = validation.value;
329
+ const identity = parseArtifactId(rendition.id);
330
+ if (identity === null || identity.package !== packageId) {
331
+ return {
332
+ failures: [
333
+ {
334
+ code: "DESIGN_AUTHORITY_CONFLICT",
335
+ artifact: file.path,
336
+ message: `la rendition declara '${rendition.id}' y el package es ${packageId}`,
337
+ action: "una rendition se publica dentro del package que declara su id",
338
+ },
339
+ ],
340
+ };
341
+ }
342
+ const naming = checkNaming("rendition", file.path, identity.artifact, rendition.revision);
343
+ if (!naming.ok) {
344
+ return {
345
+ failures: [
346
+ {
347
+ code: "DESIGN_AUTHORITY_CONFLICT",
348
+ artifact: file.path,
349
+ message: `la rendition declara ${identity.artifact}@r${rendition.revision} y ${naming.why}`,
350
+ action: `el documento manda: renombralo a '${naming.expected}'`,
351
+ },
352
+ ],
353
+ };
354
+ }
355
+ // Lo que ya no se puede deshacer una vez publicado: un dato personal queda en el
356
+ // historial del repo para siempre, y un locator incompleto deja una evidencia que
357
+ // apunta a nada.
358
+ const policy = [
359
+ ...checkDataAuthorization(rendition.data_classification, authorization, file.path),
360
+ ...checkProviderLocator(rendition.provider, file.path),
361
+ ];
362
+ if (policy.length > 0)
363
+ return { failures: policy };
364
+ return {
365
+ value: {
366
+ kind: "rendition",
367
+ id: identity.artifact,
368
+ revision: rendition.revision,
369
+ supersedes: rendition.supersedes,
370
+ },
371
+ };
372
+ }
270
373
  /** A flow or a screen: validated, and its identity read from the frontmatter. */
271
374
  function describeDocument(file, packageId, kind) {
272
375
  const document = validateDesignArtifact(file.content, kind, file.path);
@@ -317,6 +420,171 @@ function describeDocument(file, packageId, kind) {
317
420
  },
318
421
  };
319
422
  }
423
+ /**
424
+ * The elevated `handoff` gate, at the only place that can run it.
425
+ *
426
+ * A screen's classification matrix cites renditions, and whether those citations
427
+ * hold is a question about OTHER files — so it cannot be answered by the document
428
+ * validator. It is answered here, where the merged catalog says which renditions
429
+ * exist and the incoming batch plus the disk say what they contain.
430
+ *
431
+ * Only the screens this revision publishes are crossed. The ones already sealed
432
+ * were judged by the gate in force when they were published, and re-judging them
433
+ * would rewrite history; the elevation reaches them the next time somebody
434
+ * publishes a revision of them, which is exactly when it can be acted on.
435
+ */
436
+ async function crossPublishedEvidence(fs, workspace, packagePath, catalog, files) {
437
+ const screens = files.filter((f) => kindOfPath(f.path) === "screen");
438
+ if (screens.length === 0)
439
+ return [];
440
+ const renditions = await readRenditions(fs, workspace, packagePath, catalog.renditions, files);
441
+ const failures = [];
442
+ for (const file of screens) {
443
+ const parsed = validateDesignArtifact(file.content, "screen", file.path);
444
+ // Un documento que no valida ya se reportó en `mergeCatalog`: acá no se
445
+ // vuelve a decir, porque su clasificación tampoco se pudo leer.
446
+ if (!parsed.ok || parsed.value === null)
447
+ continue;
448
+ failures.push(...crossVisualEvidence(catalog.renditions, parsed.value, file.path, (path) => renditions.get(path) ?? null));
449
+ }
450
+ return failures;
451
+ }
452
+ /**
453
+ * The seal chain of a local preview, and its offline guarantee.
454
+ *
455
+ * A preview file is not catalogued and no baseline selects it — it cannot be, since
456
+ * a baseline only seals catalogued paths and a preview has no identity of its own.
457
+ * What seals it is its rendition: `files[].sha256` names the exact bytes, and the
458
+ * rendition document IS sealed. So the chain holds only if somebody checks that
459
+ * link at publication time, which is what this does.
460
+ *
461
+ * Three things, all about the revision being published — the already-sealed ones
462
+ * were judged by the gate in force then, same doctrine as the evidence cross:
463
+ *
464
+ * 1. every file a published rendition declares exists, with the declared digest;
465
+ * 2. a companion file belongs to a rendition the catalog knows and that
466
+ * rendition declares it — otherwise it is a stray file inside the package;
467
+ * 3. an `.html` export is self-sufficient (AC-REN-07).
468
+ */
469
+ async function checkLocalEvidence(fs, workspace, packagePath, catalog, files) {
470
+ const incoming = new Map(files.map((f) => [f.path, f.content]));
471
+ const failures = [];
472
+ const declared = new Set();
473
+ for (const file of files) {
474
+ if (!file.path.endsWith(NAMING.rendition.suffix))
475
+ continue;
476
+ const validation = validateDesignRendition(parseJson(file.content), file.path);
477
+ // Una rendition que no valida ya se reportó en `mergeCatalog`; sus archivos no
478
+ // se pueden juzgar porque no se pudo leer qué archivos declara.
479
+ if (!validation.ok || validation.value === null)
480
+ continue;
481
+ const dir = dirOf(file.path);
482
+ for (const entry of validation.value.files) {
483
+ const path = `${dir}${entry.path}`;
484
+ declared.add(path);
485
+ const bytes = await bytesOf(fs, workspace, packagePath, path, incoming);
486
+ failures.push(...sealFailures(file.path, entry, path, bytes));
487
+ }
488
+ }
489
+ for (const file of files) {
490
+ if (!isRenditionCompanion(file.path))
491
+ continue;
492
+ failures.push(...companionFailures(file, catalog, declared));
493
+ if (file.path.endsWith(".html"))
494
+ failures.push(...checkOfflineHtml(file.content, file.path));
495
+ }
496
+ return failures;
497
+ }
498
+ /** One declared file against the bytes that are really there. */
499
+ function sealFailures(document, entry, path, bytes) {
500
+ if (bytes === null) {
501
+ return [
502
+ {
503
+ code: "DESIGN_EVIDENCE_INSUFFICIENT",
504
+ artifact: document,
505
+ message: `declara '${entry.path}' y el archivo no está en el package`,
506
+ action: `publicá '${path}' junto con la rendition: la evidencia local es el archivo, no la promesa`,
507
+ },
508
+ ];
509
+ }
510
+ const actual = digestOf(bytes);
511
+ if (actual === entry.sha256)
512
+ return [];
513
+ return [
514
+ {
515
+ code: "DESIGN_DIGEST_MISMATCH",
516
+ artifact: path,
517
+ message: `'${entry.path}' no son los bytes que la rendition declara (declara ${entry.sha256}, calcula ${actual})`,
518
+ action: "recalculá el digest sobre el archivo publicado: el documento de la rendition es lo único que sella su preview",
519
+ },
520
+ ];
521
+ }
522
+ /**
523
+ * A companion file has to belong to a rendition, and be one it declares.
524
+ *
525
+ * Declaration is checked FIRST because it is the stronger fact: a storyboard may
526
+ * keep `frames/step-1.svg` in a subfolder of its own directory, and asking "which
527
+ * rendition sits in this file's immediate directory" would call that an orphan. The
528
+ * owner lookup exists only to produce the better of the two diagnostics.
529
+ */
530
+ function companionFailures(file, catalog, declared) {
531
+ if (declared.has(file.path))
532
+ return [];
533
+ const owner = catalog.renditions.find((e) => file.path.startsWith(dirOf(e.path)));
534
+ if (owner === undefined) {
535
+ const dir = file.path.slice(0, file.path.lastIndexOf("/") + 1);
536
+ return [
537
+ {
538
+ code: "DESIGN_REFERENCE_MISSING",
539
+ artifact: file.path,
540
+ message: `'${file.path}' no pertenece a ninguna rendition del package`,
541
+ action: `publicá '${dir}rendition.json', o movelo: dentro de 'renditions/' solo viven los archivos de una rendition`,
542
+ },
543
+ ];
544
+ }
545
+ return [
546
+ {
547
+ code: "DESIGN_EVIDENCE_INSUFFICIENT",
548
+ artifact: file.path,
549
+ message: `'${file.path}' se publica y ${owner.id}@r${owner.revision} no lo declara en 'files'`,
550
+ action: "declaralo en 'files' con su digest, o no lo publiques: un archivo que ninguna rendition sella es evidencia que nadie puede verificar",
551
+ },
552
+ ];
553
+ }
554
+ /**
555
+ * Every catalogued rendition, pre-read: the cross walks a graph synchronously and
556
+ * cannot await mid-traversal. An unreadable or invalid one is simply absent — the
557
+ * citation then reports as dangling, which is what it is.
558
+ */
559
+ async function readRenditions(fs, workspace, packagePath, entries, files) {
560
+ const incoming = new Map(files.map((f) => [f.path, f.content]));
561
+ const out = new Map();
562
+ for (const entry of entries) {
563
+ const inline = incoming.get(entry.path);
564
+ let text = inline;
565
+ if (text === undefined) {
566
+ const absolute = join(workspace, packagePath, entry.path);
567
+ if (!(await fs.exists(absolute)))
568
+ continue;
569
+ text = await fs.readText(absolute);
570
+ }
571
+ const parsed = parseJson(text);
572
+ if (parsed === null)
573
+ continue;
574
+ const validation = validateDesignRendition(parsed, entry.path);
575
+ if (validation.ok && validation.value !== null)
576
+ out.set(entry.path, validation.value);
577
+ }
578
+ return out;
579
+ }
580
+ function parseJson(text) {
581
+ try {
582
+ return JSON.parse(text);
583
+ }
584
+ catch {
585
+ return null;
586
+ }
587
+ }
320
588
  /** Which artifact kind lives in the directory a path sits in. */
321
589
  function kindOfPath(path) {
322
590
  const kinds = Object.entries(NAMING);
@@ -1 +1 @@
1
- {"version":3,"file":"design-publish-service.js","sourceRoot":"","sources":["../../../src/application/design/design-publish-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EACL,yBAAyB,EAGzB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,MAAM,EAAkB,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAClG,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,EAA4B,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAC9F,OAAO,EAAoB,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAoE9E,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,EAAkB,EAClB,SAAiB,EACjB,KAAmB;IAEnB,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAChG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAE9D,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,UAAU,IAAI,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC5E,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAE1C,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC;IAC1C,MAAM,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC/E,IAAI,KAAK,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;QAClC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,mBAAmB;oBACzB,QAAQ,EAAE,GAAG,WAAW,uBAAuB;oBAC/C,OAAO,EAAE,oBAAoB,KAAK,CAAC,YAAY,IAAI,kBAAkB,oBAAoB,MAAM,IAAI,SAAS,EAAE;oBAC9G,MAAM,EACJ,qGAAqG;iBACxG;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,UAAU,IAAI,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE5E,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/F,IAAI,UAAU,IAAI,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC;IAEhF,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IACpF,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAEvE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACxE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAExD,MAAM,SAAS,GAAG,kBAAkB,CAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACvF,4EAA4E;IAC5E,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE;QACtD,GAAG,SAAS;QACZ,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KACnE,CAAC,CAAC;IACH,IAAI,CAAC,SAAS,CAAC,EAAE;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;IACnF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;AACvF,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO;QACL;YACE,IAAI,EAAE,oBAAoB;YAC1B,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,EAAE;YACjC,MAAM,EAAE,8EAA8E;SACvF;KACF,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,SAAS,cAAc,CAAC,WAAmB;IACzC,OAAO;QACL,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,GAAG,WAAW,uBAAuB;QAC/C,OAAO,EAAE,yCAAyC;QAClD,MAAM,EAAE,qCAAqC;KAC9C,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,OAAwB,EAAE,WAAmB;IACnE,6EAA6E;IAC7E,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;IAC5C,IAAI,OAAO,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;QAC7C,OAAO,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC;IAClC,CAAC;IACD,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,QAAQ;QACR,OAAO,EAAE,IAAI,QAAQ,gEAAgE;QACrF,MAAM,EACJ,0FAA0F;KAC7F,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CACb,KAAkB,EAClB,SAAiB;IAEjB,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC;IAC9F,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,4BAA4B;oBAClC,QAAQ,EAAE,KAAK,CAAC,IAAI;oBACpB,OAAO,EAAE,GAAG,SAAS,uBAAuB,KAAK,CAAC,MAAM,WAAW;oBACnE,MAAM,EAAE,kEAAkE;iBAC3E;aACF;SACF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,0BAA0B;oBAChC,QAAQ,EAAE,KAAK,CAAC,IAAI;oBACpB,OAAO,EAAE,qBAAqB,SAAS,SAAS,KAAK,CAAC,IAAI,GAAG;oBAC7D,MAAM,EAAE,0DAA0D;iBACnE;aACF;SACF,CAAC;IACJ,CAAC;IACD,4EAA4E;IAC5E,6EAA6E;IAC7E,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC3B,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;IACjG,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAA0B,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AACjF,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,YAAY,CACnB,QAAwB,EACxB,KAAoB;IAEpB,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAC1C,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACjE,CAAC;AAED,iFAAiF;AACjF,SAAS,WAAW,CAClB,OAAkC,EAClC,SAAiB,EACjB,IAAiB;IAEjB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAChD,IAAI,UAAU,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC,QAAQ,CAAC;IAEvD,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC;IAC7E,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAmB,CAAC;IACxD,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC7D,OAAO;YACL;gBACE,IAAI,EAAE,qBAAqB;gBAC3B,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,oBAAoB;gBAC/C,MAAM,EAAE,6DAA6D;aACtE;SACF,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAClG,IAAI,CAAC,IAAI,CAAC;QACR,EAAE;QACF,QAAQ;QACR,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,2EAA2E;QAC3E,kEAAkE;QAClE,UAAU,EACR,UAAU,KAAK,SAAS;YACtB,CAAC,CAAC,QAAQ,KAAK,CAAC;gBACd,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,GAAG,SAAS,IAAI,EAAE,KAAK,QAAQ,EAAE;YACrC,CAAC,CAAC,UAAU;QAChB,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC/C,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5C,CAAC,CAAC;IACH,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,iFAAiF;AACjF,SAAS,QAAQ,CAAC,OAAkC,EAAE,IAAiB;IACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,UAAU,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;IAC7D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,OAAO;YACL;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,OAAO,EAAE,qDAAqD;gBAC9D,MAAM,EAAE,iBAAiB,QAAQ,iBAAiB;aACnD;SACF,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAC7D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,yEAAyE;QACzE,kEAAkE;QAClE,OAAO;YACL;gBACE,IAAI,EAAE,qBAAqB;gBAC3B,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,OAAO,EAAE,yCAAyC,IAAI,CAAC,IAAI,GAAG;gBAC9D,MAAM,EAAE,sEAAsE;aAC/E;SACF,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CACnB,IAAiB,EACjB,SAAiB;IAEjB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,uDAAuD;oBAC7E,MAAM,EAAE,iBAAiB,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBAC7F;aACF;SACF,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAEzF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,yCAAyC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,iDAAiD;oBACvE,MAAM,EAAE,QAAQ,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG;iBACnG;aACF;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACnF,CAAC;AAaD,iFAAiF;AACjF,SAAS,gBAAgB,CACvB,IAAiB,EACjB,SAAiB,EACjB,IAAuB;IAEvB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACvE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAEpF,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACpD,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,2BAA2B;oBACjC,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,OAAO,EAAE,2BAA2B,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,SAAS,EAAE;oBACrF,MAAM,EAAE,8DAA8D;iBACvE;aACF;SACF,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,2BAA2B;oBACjC,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,OAAO,EAAE,0BAA0B,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,KAAK,CAAC,QAAQ,MAAM,MAAM,CAAC,GAAG,EAAE;oBAChG,MAAM,EAAE,uCAAuC,MAAM,CAAC,QAAQ,GAAG;iBAClE;aACF;SACF,CAAC;IACJ,CAAC;IACD,8EAA8E;IAC9E,+EAA+E;IAC/E,mCAAmC;IACnC,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAEjE,OAAO;QACL,KAAK,EAAE;YACL,IAAI;YACJ,EAAE,EAAE,MAAM,CAAC,QAAQ;YACnB,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;YACjC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;YACjC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU;YACrC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAClC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;gBACxD,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAmD,CAAC;IACvF,MAAM,KAAK,GAAG,KAAK;SAChB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;SACnD,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACvD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,cAAc,CAC3B,EAAkB,EAClB,SAAiB,EACjB,WAAmB,EACnB,OAAkC,EAClC,KAAoB;IAEpB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAU,EAAE,CAAC;QACjF,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC9E,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;gBACpD,SAAS;YACX,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9E,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;YACpD,SAAS;QACX,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACjE,CAAC;AAED,0EAA0E;AAC1E,KAAK,UAAU,OAAO,CACpB,EAAkB,EAClB,SAAiB,EACjB,WAAmB,EACnB,IAAY,EACZ,QAA6B;IAE7B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IACpD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,OAAO,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,WAAmB;IACpD,OAAO;QACL,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,GAAG,WAAW,IAAI,IAAI,EAAE;QAClC,OAAO,EAAE,wBAAwB,IAAI,wBAAwB;QAC7D,MAAM,EAAE,wEAAwE;KACjF,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAiB;IACjC,OAAO,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,SAAS,YAAY,CACnB,QAAwB,EACxB,QAAgB,EAChB,SAAiB,EACjB,SAA2B;IAE3B,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC;IAC1C,MAAM,MAAM,GAAG;QACb,0EAA0E;QAC1E,2EAA2E;QAC3E,2EAA2E;QAC3E,iEAAiE;QACjE,MAAM,EAAE,yBAAyB;QACjC,OAAO,EAAE,QAAQ,CAAC,EAAE;QACpB,QAAQ;QACR,eAAe,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE;QAChF,SAAS;QACT,SAAS;KACV,CAAC;IACF,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;AAC9D,CAAC;AAED,SAAS,cAAc,CACrB,QAAwB,EACxB,OAAkC,EAClC,QAAwB;IAExB,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1D,OAAO;QACL,GAAG,QAAQ;QACX,OAAO;QACP,WAAW,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;QACpD,SAAS,EAAE;YACT,GAAG,QAAQ,CAAC,SAAS;YACrB;gBACE,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,IAAI;gBACJ,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,SAAS,EAAE,QAAQ,CAAC,SAAS;aAC9B;SACF;QACD,gBAAgB,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE;KACjF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CACxB,SAAiB,EACjB,OAAkC;IAElC,MAAM,GAAG,GAAkC,EAAE,CAAC;IAC9C,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAU,EAAE,CAAC;QACjF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC1C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,IAAI,CAAC;gBACP,GAAG,EAAE,GAAG,SAAS,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE;gBAClD,KAAK,EAAE,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY;aAC3E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CACxB,KAAqB,EACrB,QAAwB,EACxB,WAAmB;IAEnB,4EAA4E;IAC5E,yEAAyE;IACzE,0EAA0E;IAC1E,MAAM,YAAY,GAAG,GAAG,WAAW,uBAAuB,CAAC;IAC3D,MAAM,WAAW,GAAG,GAAG,WAAW,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAElF,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAC9F,IAAI,CAAC,aAAa,CAAC,EAAE;QAAE,OAAO,aAAa,CAAC,QAAQ,CAAC;IAErD,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAChG,IAAI,CAAC,aAAa,CAAC,EAAE;QAAE,OAAO,aAAa,CAAC,QAAQ,CAAC;IAErD,OAAO,sBAAsB,CAAC,aAAa,CAAC,KAAuB,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAC9F,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CACzB,WAAmB,EACnB,QAAwB,EACxB,QAAwB,EACxB,KAAoB;IAEpB,MAAM,EAAE,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,GAAG,WAAW,IAAI,IAAI,EAAE,CAAC;IAC9D,OAAO;QACL,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACjF;YACE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACtD,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;YACjD,SAAS,EAAE,KAAK;SACjB;QACD,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;QAC/E,6EAA6E;QAC7E,uDAAuD;QACvD,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YACpE,CAAC,CAAC;gBACE;oBACE,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC;oBACnC,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;oBACjC,SAAS,EAAE,IAAI;iBAChB;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,4EAA4E;QAC5E,sEAAsE;QACtE,sEAAsE;QACtE;YACE,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC;YAChC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;YACjD,SAAS,EAAE,IAAI;SAChB;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"design-publish-service.js","sourceRoot":"","sources":["../../../src/application/design/design-publish-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * The precondition of sealing a governance decision.
3
+ *
4
+ * `record` is the one operation that makes a statement ABOUT a revision rather
5
+ * than about content, so what it must not do is seal an approval over evidence
6
+ * that already moved. The hole this closes was left open on purpose at the end
7
+ * of B2 and written down: a rendition published in the SAME revision as its
8
+ * source screen can carry a `source_digest` that is no longer that screen's —
9
+ * generate the preview, touch the screen again before publishing, and the image
10
+ * is of the draft. The package-level cross-check verifies the REFERENCE
11
+ * (`sources` names `SCR-NNN@rN`), never the digest, so nothing noticed.
12
+ *
13
+ * The check is derived, not declared: every rendition's `source_digest` is
14
+ * recomputable from the bytes of the artifacts it names, which is why a stale
15
+ * one can be caught at all. Reading the current state off disk is the half a
16
+ * governance record cannot supply about itself.
17
+ */
18
+ import { createHash } from "node:crypto";
19
+ import { join } from "node:path";
20
+ import { validateDesignRendition } from "../../domain/design/rendition.js";
21
+ import { checkStale, staleFailure } from "../../domain/design/rendition.js";
22
+ import { readDesignIndex, resolveDesignPackage } from "./design-index-service.js";
23
+ /**
24
+ * Check every rendition the package catalogs against the bytes on disk today.
25
+ *
26
+ * A rendition that cannot be read or parsed is NOT reported as stale: "the file
27
+ * is broken" and "the picture is out of date" are different problems, and
28
+ * merging them would send whoever reads the failure to fix the wrong one.
29
+ */
30
+ export async function checkRecordPrecondition(fs, workspace, packageId) {
31
+ const index = await readDesignIndex(fs, workspace);
32
+ const entry = resolveDesignPackage(index, packageId);
33
+ if (entry === null || entry.manifest === null) {
34
+ return {
35
+ ok: false,
36
+ stale: [],
37
+ failures: [
38
+ {
39
+ code: "DESIGN_PACKAGE_NOT_FOUND",
40
+ artifact: packageId,
41
+ message: `no hay ningún package válido con identidad ${packageId}`,
42
+ action: `revisá 'aw designs' para ver las identidades publicadas bajo ${index.root}/`,
43
+ },
44
+ ],
45
+ };
46
+ }
47
+ const catalog = entry.manifest.catalog;
48
+ const current = await currentDigests(fs, join(workspace, entry.path), catalog);
49
+ const stale = [];
50
+ const failures = [];
51
+ for (const member of catalog.renditions) {
52
+ const rendition = await readRendition(fs, join(workspace, entry.path), member.path);
53
+ if (rendition === null)
54
+ continue;
55
+ const verdict = checkStale(rendition, current);
56
+ if (verdict === null)
57
+ continue;
58
+ stale.push(member.id);
59
+ failures.push(staleFailure(verdict, `${member.path}/rendition.json`));
60
+ }
61
+ return { ok: failures.length === 0, stale, failures };
62
+ }
63
+ /** Digest of every catalogued artifact, keyed by the reference a rendition uses. */
64
+ async function currentDigests(fs, packageRoot, catalog) {
65
+ const current = new Map();
66
+ for (const group of [catalog.flows, catalog.screens, catalog.rules, catalog.tokens]) {
67
+ for (const member of group) {
68
+ const absolute = join(packageRoot, member.path);
69
+ if (!(await fs.exists(absolute)))
70
+ continue;
71
+ current.set(`${member.id}@r${member.revision}`, digestOf(await fs.readBytes(absolute)));
72
+ }
73
+ }
74
+ return current;
75
+ }
76
+ /**
77
+ * Read one rendition, or null.
78
+ *
79
+ * Null covers "absent", "unparseable" and "invalid" on purpose: a broken file
80
+ * and an out-of-date picture are different problems, and reporting the first as
81
+ * the second would send whoever reads the failure to fix the wrong thing.
82
+ */
83
+ async function readRendition(fs, packageRoot, memberPath) {
84
+ const absolute = join(packageRoot, memberPath, "rendition.json");
85
+ if (!(await fs.exists(absolute)))
86
+ return null;
87
+ let parsed;
88
+ try {
89
+ parsed = JSON.parse(await fs.readText(absolute));
90
+ }
91
+ catch {
92
+ return null;
93
+ }
94
+ const validation = validateDesignRendition(parsed, `${memberPath}/rendition.json`);
95
+ return validation.ok ? validation.value : null;
96
+ }
97
+ function digestOf(bytes) {
98
+ return `sha256:${createHash("sha256").update(bytes).digest("hex")}`;
99
+ }
100
+ //# sourceMappingURL=design-record-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-record-service.js","sourceRoot":"","sources":["../../../src/application/design/design-record-service.ts"],"names":[],"mappings":"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"}