@tacuchi/agent-workflow-cli 20.26.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 (220) hide show
  1. package/README.md +2 -1
  2. package/dist/adapters/node-file-system.js +3 -0
  3. package/dist/adapters/node-file-system.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 +187 -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-gate-service.js +246 -0
  31. package/dist/application/design/design-gate-service.js.map +1 -0
  32. package/dist/application/design/design-graph-service.js +85 -0
  33. package/dist/application/design/design-graph-service.js.map +1 -0
  34. package/dist/application/design/design-index-service.js +132 -0
  35. package/dist/application/design/design-index-service.js.map +1 -0
  36. package/dist/application/design/design-proposal-service.js +69 -0
  37. package/dist/application/design/design-proposal-service.js.map +1 -0
  38. package/dist/application/design/design-publish-service.js +756 -0
  39. package/dist/application/design/design-publish-service.js.map +1 -0
  40. package/dist/application/design/design-record-service.js +100 -0
  41. package/dist/application/design/design-record-service.js.map +1 -0
  42. package/dist/application/design/design-resolver-service.js +165 -0
  43. package/dist/application/design/design-resolver-service.js.map +1 -0
  44. package/dist/application/flow/advance.js +533 -0
  45. package/dist/application/flow/advance.js.map +1 -0
  46. package/dist/application/flow/flow-service.js +65 -0
  47. package/dist/application/flow/flow-service.js.map +1 -0
  48. package/dist/application/flow/run-projection.js +80 -0
  49. package/dist/application/flow/run-projection.js.map +1 -0
  50. package/dist/application/flow/run-state-service.js +107 -0
  51. package/dist/application/flow/run-state-service.js.map +1 -0
  52. package/dist/application/flow/submit.js +423 -0
  53. package/dist/application/flow/submit.js.map +1 -0
  54. package/dist/application/resume-service.js +46 -14
  55. package/dist/application/resume-service.js.map +1 -1
  56. package/dist/application/self/install-skill.js +11 -0
  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/semantic-operation/protocol.js +18 -12
  61. package/dist/application/semantic-operation/protocol.js.map +1 -1
  62. package/dist/application/semantic-operation/publish.js +56 -9
  63. package/dist/application/semantic-operation/publish.js.map +1 -1
  64. package/dist/application/skills-resolver-service.js +27 -6
  65. package/dist/application/skills-resolver-service.js.map +1 -1
  66. package/dist/application/status-service.js +5 -1
  67. package/dist/application/status-service.js.map +1 -1
  68. package/dist/application/workline-index-service.js +6 -0
  69. package/dist/application/workline-index-service.js.map +1 -1
  70. package/dist/application/workspace-init-service.js +22 -2
  71. package/dist/application/workspace-init-service.js.map +1 -1
  72. package/dist/cli/commands/capability.js +182 -0
  73. package/dist/cli/commands/capability.js.map +1 -0
  74. package/dist/cli/commands/designs.js +110 -0
  75. package/dist/cli/commands/designs.js.map +1 -0
  76. package/dist/cli/commands/flow.js +71 -0
  77. package/dist/cli/commands/flow.js.map +1 -0
  78. package/dist/cli/commands/index.js +6 -0
  79. package/dist/cli/commands/index.js.map +1 -1
  80. package/dist/cli/commands/resume.js +8 -0
  81. package/dist/cli/commands/resume.js.map +1 -1
  82. package/dist/cli/commands/skills.js +55 -2
  83. package/dist/cli/commands/skills.js.map +1 -1
  84. package/dist/cli/commands/status.js +50 -0
  85. package/dist/cli/commands/status.js.map +1 -1
  86. package/dist/cli/help-groups.js +9 -0
  87. package/dist/cli/help-groups.js.map +1 -1
  88. package/dist/cli/parser.js +7 -0
  89. package/dist/cli/parser.js.map +1 -1
  90. package/dist/cli/tui/data/workflow-content.js +5 -0
  91. package/dist/cli/tui/data/workflow-content.js.map +1 -1
  92. package/dist/cli/tui/tabs/workflow-tab.js +5 -1
  93. package/dist/cli/tui/tabs/workflow-tab.js.map +1 -1
  94. package/dist/domain/capability/descriptor.js +553 -0
  95. package/dist/domain/capability/descriptor.js.map +1 -0
  96. package/dist/domain/capability/effects.js +90 -0
  97. package/dist/domain/capability/effects.js.map +1 -0
  98. package/dist/domain/capability/protocol.js +494 -0
  99. package/dist/domain/capability/protocol.js.map +1 -0
  100. package/dist/domain/contract-reader.js +84 -0
  101. package/dist/domain/contract-reader.js.map +1 -0
  102. package/dist/domain/design/adapter.js +161 -0
  103. package/dist/domain/design/adapter.js.map +1 -0
  104. package/dist/domain/design/artifact-body.js +223 -0
  105. package/dist/domain/design/artifact-body.js.map +1 -0
  106. package/dist/domain/design/artifact.js +750 -0
  107. package/dist/domain/design/artifact.js.map +1 -0
  108. package/dist/domain/design/baseline.js +359 -0
  109. package/dist/domain/design/baseline.js.map +1 -0
  110. package/dist/domain/design/capability.js +310 -0
  111. package/dist/domain/design/capability.js.map +1 -0
  112. package/dist/domain/design/closure.js +161 -0
  113. package/dist/domain/design/closure.js.map +1 -0
  114. package/dist/domain/design/direct.js +108 -0
  115. package/dist/domain/design/direct.js.map +1 -0
  116. package/dist/domain/design/external-send.js +65 -0
  117. package/dist/domain/design/external-send.js.map +1 -0
  118. package/dist/domain/design/governance.js +298 -0
  119. package/dist/domain/design/governance.js.map +1 -0
  120. package/dist/domain/design/identity.js +145 -0
  121. package/dist/domain/design/identity.js.map +1 -0
  122. package/dist/domain/design/manifest.js +552 -0
  123. package/dist/domain/design/manifest.js.map +1 -0
  124. package/dist/domain/design/maturity.js +305 -0
  125. package/dist/domain/design/maturity.js.map +1 -0
  126. package/dist/domain/design/naming.js +117 -0
  127. package/dist/domain/design/naming.js.map +1 -0
  128. package/dist/domain/design/offline.js +92 -0
  129. package/dist/domain/design/offline.js.map +1 -0
  130. package/dist/domain/design/profiles.js +212 -0
  131. package/dist/domain/design/profiles.js.map +1 -0
  132. package/dist/domain/design/projections.js +165 -0
  133. package/dist/domain/design/projections.js.map +1 -0
  134. package/dist/domain/design/proposal.js +234 -0
  135. package/dist/domain/design/proposal.js.map +1 -0
  136. package/dist/domain/design/reference.js +234 -0
  137. package/dist/domain/design/reference.js.map +1 -0
  138. package/dist/domain/design/render-bundle.js +0 -0
  139. package/dist/domain/design/render-bundle.js.map +1 -0
  140. package/dist/domain/design/rendition.js +472 -0
  141. package/dist/domain/design/rendition.js.map +1 -0
  142. package/dist/domain/design/retired.js +61 -0
  143. package/dist/domain/design/retired.js.map +1 -0
  144. package/dist/domain/design/revision.js +219 -0
  145. package/dist/domain/design/revision.js.map +1 -0
  146. package/dist/domain/design/secrets.js +86 -0
  147. package/dist/domain/design/secrets.js.map +1 -0
  148. package/dist/domain/design/sources.js +180 -0
  149. package/dist/domain/design/sources.js.map +1 -0
  150. package/dist/domain/design/validation.js +19 -0
  151. package/dist/domain/design/validation.js.map +1 -0
  152. package/dist/domain/design/visual-evidence.js +155 -0
  153. package/dist/domain/design/visual-evidence.js.map +1 -0
  154. package/dist/domain/design/yaml-subset.js +390 -0
  155. package/dist/domain/design/yaml-subset.js.map +1 -0
  156. package/dist/domain/flow/answer.js +459 -0
  157. package/dist/domain/flow/answer.js.map +1 -0
  158. package/dist/domain/flow/authority.js +2276 -0
  159. package/dist/domain/flow/authority.js.map +1 -0
  160. package/dist/domain/flow/authorization.js +62 -0
  161. package/dist/domain/flow/authorization.js.map +1 -0
  162. package/dist/domain/flow/directive.js +421 -0
  163. package/dist/domain/flow/directive.js.map +1 -0
  164. package/dist/domain/flow/rules.js +140 -0
  165. package/dist/domain/flow/rules.js.map +1 -0
  166. package/dist/domain/flow/run-state.js +317 -0
  167. package/dist/domain/flow/run-state.js.map +1 -0
  168. package/dist/domain/harnesses.js +21 -0
  169. package/dist/domain/harnesses.js.map +1 -1
  170. package/dist/domain/safe-path.js +23 -0
  171. package/dist/domain/safe-path.js.map +1 -0
  172. package/dist/domain/skills.js +26 -3
  173. package/dist/domain/skills.js.map +1 -1
  174. package/package.json +1 -1
  175. package/skills/w/SKILL.md +15 -13
  176. package/skills/w/artifacts/README.md +3 -4
  177. package/skills/w/artifacts/artifacts-core/CHECKPOINT.md +2 -2
  178. package/skills/w/commands/plan-exec.md +11 -5
  179. package/skills/w/commands/plan-new.md +6 -2
  180. package/skills/w/commands/plan-refine.md +6 -3
  181. package/skills/w/commands/quick.md +2 -2
  182. package/skills/w/commands/spec-new.md +2 -2
  183. package/skills/w/commands/spec-refine.md +1 -0
  184. package/skills/w/context/MANIFEST.json +57 -9
  185. package/skills/w/harness/HARNESS.md +20 -0
  186. package/skills/w/loops/CHASSIS.md +11 -20
  187. package/skills/w/loops/CODE-POLICIES.md +18 -9
  188. package/skills/w/loops/README.md +1 -1
  189. package/skills/w/loops/plan-exec-loop/LOOP.md +126 -62
  190. package/skills/w/loops/plan-new-loop/LOOP.md +71 -73
  191. package/skills/w/loops/plan-refine-loop/LOOP.md +20 -10
  192. package/skills/w/loops/quick-loop/LOOP.md +18 -26
  193. package/skills/w/loops/spec-refine-loop/LOOP.md +28 -30
  194. package/skills/w/modules/COMPACTION.md +2 -6
  195. package/skills/w/modules/DB-SCRIPTS-ONLY.md +2 -0
  196. package/skills/w/modules/DESIGN-REFERENCES.md +113 -0
  197. package/skills/w/modules/IDEATION-GATE.md +3 -3
  198. package/skills/w/modules/PERSIST-ROUTING.md +1 -0
  199. package/skills/w/modules/PLAN-EXECUTION-BATCHES.md +65 -0
  200. package/skills/w/modules/PLAN-INPUT.md +5 -3
  201. package/skills/w/modules/PLAN-REFINE-SPLIT.md +3 -1
  202. package/skills/w/modules/PLAN-SPLIT-GATE.md +7 -5
  203. package/skills/w/modules/PROMPT-CONTINUITY.md +3 -1
  204. package/skills/w/modules/SPEC-CHANGE-SHAPE.md +4 -4
  205. package/skills/w/roles/README.md +9 -5
  206. package/skills/w/roles/design/CONTRACT.md +80 -0
  207. package/skills/w/roles/design/ROLE.md +224 -0
  208. package/skills/w/schemas/capability-descriptor.schema.json +260 -0
  209. package/skills/w/schemas/design/design-baseline.v1.schema.json +71 -0
  210. package/skills/w/schemas/design/design-manifest.v1.schema.json +322 -0
  211. package/skills/w/schemas/design/design-render-bundle.v1.schema.json +191 -0
  212. package/skills/w/schemas/design/design-rendition.v1.schema.json +232 -0
  213. package/skills/w/schemas/design/design-review.v1.schema.json +72 -0
  214. package/skills/w/schemas/design/design-revocation.v1.schema.json +54 -0
  215. package/skills/w/schemas/design/ui-flow.v1.schema.json +211 -0
  216. package/skills/w/schemas/design/ui-screen.v1.schema.json +242 -0
  217. package/skills/w/artifacts/artifacts-design/SPEC.md +0 -42
  218. package/skills/w/modules/PLAN-DESIGN-SPECS.md +0 -12
  219. package/skills/w/modules/PLAN-REFINE-DESIGN-SPECS.md +0 -7
  220. package/skills/w/roles/ui-spec/ROLE.md +0 -147
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../../src/domain/design/artifact.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,359 @@
1
+ import { createHash } from "node:crypto";
2
+ import { canonicalJson } from "../../application/semantic-operation/protocol.js";
3
+ import { checkSafeRelativePath } from "../safe-path.js";
4
+ import { CANONICAL_SCHEMAS } from "./capability.js";
5
+ import { ARTIFACT_PREFIX, isArtifactId, isAssetFilename, isDigest, isPackageId, isRevision, parseBaselineRef, } from "./identity.js";
6
+ import { NAMING, PROJECTIONS, checkNaming } from "./naming.js";
7
+ import { secretFailures } from "./secrets.js";
8
+ import { Reader, eachRecord, isRecord, } from "./validation.js";
9
+ /**
10
+ * `baselines/DES-NNN-rNNN.json` — the immutable authority of one published
11
+ * revision of a package.
12
+ *
13
+ * A baseline answers one question: *which exact bytes were published together*.
14
+ * It enumerates a CLOSED selection of normative files with their revision and
15
+ * the SHA-256 of their bytes, and seals that with a digest of its own.
16
+ *
17
+ * Two exclusions make the seal mean something:
18
+ *
19
+ * - the digest is computed over canonical JSON **without its own `digest`
20
+ * field**, so there is no self-reference to chase; and
21
+ * - the selection excludes the mutable manifest, the governance records and the
22
+ * regenerable projections, so re-indexing the catalog or re-rendering
23
+ * `PACKAGE.md` can never alter a revision published months ago.
24
+ *
25
+ * Without the second one, every published digest would drift every time
26
+ * somebody added a package relation — which is exactly the retroactive change
27
+ * the contract exists to forbid.
28
+ */
29
+ export const DESIGN_BASELINE_SCHEMA_ID = CANONICAL_SCHEMAS.baseline;
30
+ export const ALLOWED_KEYS = {
31
+ "": ["schema", "package", "revision", "parent_baseline", "published", "digest", "selection"],
32
+ "selection[]": ["path", "revision", "sha256"],
33
+ };
34
+ const ISO_DATE_RE = /^\d{4}-\d{2}-\d{2}$/;
35
+ /** A date that EXISTS: `2026-13-45` has the shape and is not a day. */
36
+ export function isCalendarDate(value) {
37
+ if (!ISO_DATE_RE.test(value))
38
+ return false;
39
+ const date = new Date(`${value}T00:00:00Z`);
40
+ return !Number.isNaN(date.getTime()) && date.toISOString().slice(0, 10) === value;
41
+ }
42
+ /** Directories whose files a baseline may select. Everything else is excluded. */
43
+ const SELECTABLE_DIRS = [...Object.values(NAMING).map((r) => r.dir), "assets"];
44
+ /**
45
+ * The digest a baseline must carry. Excluding `digest` from its own input is
46
+ * what makes it verifiable: anyone can recompute it from the file and compare.
47
+ */
48
+ export function computeBaselineDigest(baseline) {
49
+ const { schema, package: pkg, revision, parent_baseline, published, selection } = baseline;
50
+ const sealed = {
51
+ schema,
52
+ package: pkg,
53
+ revision,
54
+ parent_baseline,
55
+ published,
56
+ // Sorted by path: a selection is a SET, so reordering the array is a
57
+ // no-change. Digesting it as written would let a reformat reseal a revision
58
+ // published months ago.
59
+ selection: [...selection].sort((a, b) => (a.path < b.path ? -1 : a.path > b.path ? 1 : 0)),
60
+ };
61
+ return `sha256:${createHash("sha256").update(canonicalJson(sealed), "utf8").digest("hex")}`;
62
+ }
63
+ export function validateDesignBaseline(raw, artifact) {
64
+ const r = new Reader(ALLOWED_KEYS);
65
+ if (!isRecord(raw)) {
66
+ r.fail("DESIGN_BASELINE_NOT_OBJECT", artifact, "el baseline no es un objeto JSON", `reescribí '${artifact}' como un único objeto JSON conforme a ${DESIGN_BASELINE_SCHEMA_ID}`);
67
+ return done(r, null);
68
+ }
69
+ const schema = r.read(raw, "schema");
70
+ if (schema !== DESIGN_BASELINE_SCHEMA_ID) {
71
+ r.fail("DESIGN_SCHEMA_UNKNOWN", artifact, `versión de formato no soportada: ${JSON.stringify(schema)}`, `este Workline entiende ${DESIGN_BASELINE_SCHEMA_ID}`);
72
+ return done(r, null);
73
+ }
74
+ r.closed(raw, "", artifact);
75
+ const pkg = r.read(raw, "package");
76
+ if (!isPackageId(pkg)) {
77
+ r.invalid(artifact, `'package' no es un identificador DES-NNN: ${JSON.stringify(pkg)}`, "nombrá el package que este baseline sella");
78
+ }
79
+ const revision = r.read(raw, "revision");
80
+ if (!isRevision(revision)) {
81
+ r.invalid(artifact, "'revision' debe ser un entero >= 1", "las revisiones son lógicas y empiezan en 1");
82
+ }
83
+ const parent = r.read(raw, "parent_baseline");
84
+ checkParent(r, artifact, parent, pkg, revision);
85
+ const published = r.read(raw, "published");
86
+ if (typeof published !== "string" || !isCalendarDate(published)) {
87
+ r.invalid(artifact, `'published' no es una fecha YYYY-MM-DD: ${JSON.stringify(published)}`, "escribí la fecha de publicación como YYYY-MM-DD");
88
+ }
89
+ const selection = readSelection(r, raw, artifact);
90
+ if (selection.length === 0 && r.failures.length === 0) {
91
+ r.invalid(artifact, "'selection' está vacía y una revisión publica algo", "enumerá los archivos normativos que esta revisión sella");
92
+ }
93
+ const digest = r.read(raw, "digest");
94
+ if (!isDigest(digest)) {
95
+ r.invalid(artifact, "'digest' debe ser 'sha256:' + 64 hex", "recalculá el digest del baseline");
96
+ }
97
+ for (const failure of secretFailures(raw, artifact))
98
+ r.failures.push(failure);
99
+ if (r.failures.length > 0)
100
+ return done(r, null);
101
+ const value = {
102
+ schema: DESIGN_BASELINE_SCHEMA_ID,
103
+ package: pkg,
104
+ revision: revision,
105
+ parent_baseline: typeof parent === "string" ? parent : null,
106
+ published: published,
107
+ digest: digest,
108
+ selection,
109
+ };
110
+ // The seal is only a seal if it matches. Checked last so a malformed baseline
111
+ // is reported for what it is, not for a digest that could never have matched.
112
+ const expected = computeBaselineDigest(value);
113
+ if (value.digest !== expected) {
114
+ r.fail("DESIGN_DIGEST_MISMATCH", artifact, `el digest declarado no es el de este contenido (declara ${value.digest}, calcula ${expected})`, "recalculá el digest sobre el JSON canónico sin el campo 'digest', o restaurá el contenido sellado");
115
+ return done(r, null);
116
+ }
117
+ return done(r, value);
118
+ }
119
+ function checkParent(r, artifact, parent, pkg, revision) {
120
+ if (parent === null) {
121
+ if (isRevision(revision) && revision !== 1) {
122
+ r.fail("DESIGN_RELATION_BROKEN", artifact, `r${revision} declara 'parent_baseline: null' y solo la primera revisión no tiene padre`, "encadenala con la revisión anterior del mismo package");
123
+ }
124
+ return;
125
+ }
126
+ const ref = parseBaselineRef(parent);
127
+ if (ref === null) {
128
+ r.invalid(artifact, `'parent_baseline' debe ser null o DES-NNN@rN: ${JSON.stringify(parent)}`, "encadená el baseline con su padre");
129
+ return;
130
+ }
131
+ if (isPackageId(pkg) && ref.package !== pkg) {
132
+ r.fail("DESIGN_RELATION_BROKEN", artifact, `'parent_baseline' apunta a ${ref.package} y este baseline es de ${pkg}`, "una línea de baselines pertenece a un solo package; una divergencia crea OTRO package con 'derived_from'");
133
+ return;
134
+ }
135
+ if (isRevision(revision) && ref.revision !== revision - 1) {
136
+ r.fail("DESIGN_RELATION_BROKEN", artifact, `r${revision} declara como padre a r${ref.revision} y su padre es r${revision - 1}`, "la línea es continua: no se saltean revisiones ni se bifurca");
137
+ }
138
+ }
139
+ /**
140
+ * The closed selection. Two things are checked beyond shape: that every entry
141
+ * is a file a baseline is ALLOWED to seal, and that the revision it declares is
142
+ * the one its own name carries.
143
+ */
144
+ function readSelection(r, raw, artifact) {
145
+ const out = [];
146
+ const seen = new Set();
147
+ for (const entry of eachRecord(r, raw, "selection", artifact, " de archivos normativos")) {
148
+ const path = r.read(entry, "selection[].path");
149
+ const revision = r.read(entry, "selection[].revision");
150
+ const sha256 = r.read(entry, "selection[].sha256");
151
+ if (typeof path !== "string" || path.length === 0) {
152
+ r.invalid(artifact, "cada entrada de 'selection' necesita 'path'", "escribí el path relativo al package");
153
+ continue;
154
+ }
155
+ const normalized = checkSelectable(r, artifact, path);
156
+ if (normalized === null)
157
+ continue;
158
+ // Deduplicated on the NORMALIZED path, and Unicode-normalized with it: a
159
+ // trailing space and an NFD spelling are the same file on disk, and sealing
160
+ // it twice with two different SHA-256 leaves nobody able to say which is right.
161
+ if (seen.has(normalized)) {
162
+ r.fail("DESIGN_ID_DUPLICATE", artifact, `'${normalized}' está seleccionado dos veces`, "una selección cerrada nombra cada archivo una vez");
163
+ continue;
164
+ }
165
+ seen.add(normalized);
166
+ if (!isDigest(sha256)) {
167
+ r.invalid(artifact, `selection['${normalized}']: 'sha256' debe ser 'sha256:' + 64 hex`, "hasheá los bytes del archivo");
168
+ continue;
169
+ }
170
+ if (!checkDeclaredRevision(r, artifact, normalized, revision))
171
+ continue;
172
+ out.push({
173
+ path: normalized,
174
+ revision: typeof revision === "number" ? revision : null,
175
+ sha256,
176
+ });
177
+ }
178
+ return out;
179
+ }
180
+ /** Only normative files. The mutable index and the projections are excluded BY CONSTRUCTION. */
181
+ function checkSelectable(r, artifact, path) {
182
+ // FIRST, before any prefix reasoning: `flows/../governance/reviews/REV-001.json`
183
+ // starts with `flows/` and would sail past every exclusion below. A traversal
184
+ // does not just escape the package — it defeats the whole "by construction".
185
+ const safe = checkSafeRelativePath(path);
186
+ if (!safe.ok) {
187
+ r.fail("DESIGN_PATH_UNSAFE", artifact, `selection: '${path}' ${safe.why}`, "los paths de una selección son relativos al package y nunca salen de él");
188
+ return null;
189
+ }
190
+ const normalized = safe.path.normalize("NFC");
191
+ if (PROJECTIONS.includes(normalized)) {
192
+ r.fail("DESIGN_SELECTION_FORBIDDEN", artifact, `'${normalized}' es una proyección regenerable y no puede sellarse`, "quitala de la selección: regenerarla cambiaría el digest de una revisión ya publicada");
193
+ return null;
194
+ }
195
+ if (normalized === "design-manifest.json" || normalized.startsWith("governance/")) {
196
+ r.fail("DESIGN_SELECTION_FORBIDDEN", artifact, `'${normalized}' es un índice mutable o un record de gobierno y no puede sellarse`, "quitalo de la selección: el catálogo y el gobierno cambian sin mintear una revisión");
197
+ return null;
198
+ }
199
+ if (!SELECTABLE_DIRS.some((dir) => normalized.startsWith(`${dir}/`))) {
200
+ r.fail("DESIGN_SELECTION_FORBIDDEN", artifact, `'${normalized}' no está en ninguna carpeta de artefactos normativos`, `una selección solo sella archivos bajo: ${SELECTABLE_DIRS.join(", ")}`);
201
+ return null;
202
+ }
203
+ return normalized;
204
+ }
205
+ /** An asset carries no revision; everything else carries it in its own name. */
206
+ function checkDeclaredRevision(r, artifact, path, revision) {
207
+ if (path.startsWith("assets/")) {
208
+ if (revision !== null) {
209
+ r.invalid(artifact, `selection['${path}']: un asset es content-addressed y no lleva revisión`, "poné 'revision': null");
210
+ return false;
211
+ }
212
+ // Content-addressed means the digest IS the name. Without this the selection
213
+ // could seal `assets/logo.svg` with any sha256 at all.
214
+ if (!isAssetFilename(path.slice("assets/".length))) {
215
+ r.invalid(artifact, `selection['${path}']: un asset se nombra <sha256>-<nombre>.<ext>`, "renombrá el archivo con su propio digest adelante");
216
+ return false;
217
+ }
218
+ return true;
219
+ }
220
+ if (!isRevision(revision)) {
221
+ r.invalid(artifact, `selection['${path}']: 'revision' debe ser un entero >= 1`, "declará la revisión que el archivo sella");
222
+ return false;
223
+ }
224
+ // The SAME naming rule the manifest applies, not a looser `includes`: an
225
+ // `includes("-r001-")` accepts `flows/FLW-001-r002-nota-r001-vieja.md` as r1,
226
+ // and a flow filed under `screens/`. One rule, one place.
227
+ const kind = kindOfDirectory(path);
228
+ if (kind === null)
229
+ return true; // ya reportado por checkSelectable
230
+ const id = path
231
+ .slice(NAMING[kind].dir.length + 1)
232
+ .split("-")
233
+ .slice(0, 2)
234
+ .join("-");
235
+ // The id comes FROM the path, so checking the name against it would be
236
+ // circular. What is not circular — and what actually catches a flow filed
237
+ // under `screens/` — is that the prefix has to match the directory's kind.
238
+ if (!isArtifactId(id, kind)) {
239
+ r.invalid(artifact, `selection['${path}']: un ${kind} vive en '${NAMING[kind].dir}/' y su id empieza con ${ARTIFACT_PREFIX[kind]}-`, "movelo a la carpeta de su tipo, o corregí el id");
240
+ return false;
241
+ }
242
+ const check = checkNaming(kind, path, id, revision);
243
+ if (check.ok)
244
+ return true;
245
+ r.fail("DESIGN_RELATION_BROKEN", artifact, `selection: ${check.why}`, `usá '${check.expected}'`);
246
+ return false;
247
+ }
248
+ /** Which artifact kind lives in the directory a selected path sits in. */
249
+ function kindOfDirectory(path) {
250
+ const kinds = Object.entries(NAMING);
251
+ // Longest directory first, so `design-system/rules` wins over any prefix of it.
252
+ const match = kinds
253
+ .sort(([, a], [, b]) => b.dir.length - a.dir.length)
254
+ .find(([, rule]) => path.startsWith(`${rule.dir}/`));
255
+ return match === undefined ? null : match[0];
256
+ }
257
+ function done(r, value) {
258
+ return { ok: value !== null, value, failures: r.failures, touched: r.touched };
259
+ }
260
+ /**
261
+ * The authority table, applied. Manifest and baseline describe overlapping
262
+ * facts; where they disagree the NORMATIVE owner wins and the disagreement is
263
+ * an error — never a silent reconciliation.
264
+ */
265
+ export function checkBaselineAuthority(manifest, baseline, artifact) {
266
+ const failures = [];
267
+ const broken = (message, action) => {
268
+ failures.push({ code: "DESIGN_AUTHORITY_CONFLICT", artifact, message, action });
269
+ };
270
+ if (baseline.package !== manifest.id) {
271
+ broken(`el baseline dice ser de ${baseline.package} y el manifest declara ${manifest.id}`, "un baseline vive dentro del package que sella");
272
+ return failures;
273
+ }
274
+ const indexed = manifest.baselines.find((b) => b.revision === baseline.revision);
275
+ if (indexed === undefined) {
276
+ broken(`el manifest no cataloga r${baseline.revision}`, "agregá la revisión a 'baselines' del manifest, o borrá el baseline huérfano");
277
+ }
278
+ else {
279
+ compareIndexEntry(broken, baseline, indexed);
280
+ }
281
+ compareSelectionAgainstCatalog(broken, manifest, baseline);
282
+ return failures;
283
+ }
284
+ /** The baseline is the authority; the manifest merely indexes it. */
285
+ function compareIndexEntry(broken, baseline, indexed) {
286
+ const fields = [
287
+ ["digest", indexed.digest, baseline.digest],
288
+ ["parent_baseline", indexed.parent_baseline, baseline.parent_baseline],
289
+ ["published", indexed.published, baseline.published],
290
+ ];
291
+ for (const [field, indexedValue, sealedValue] of fields) {
292
+ if (indexedValue === sealedValue)
293
+ continue;
294
+ broken(`el manifest declara ${field}=${indexedValue ?? "null"} para r${baseline.revision} y el baseline sella ${sealedValue ?? "null"}`, `el baseline es la autoridad: copiá su '${field}' al manifest`);
295
+ }
296
+ // No se compara `indexed.path`: `validateDesignManifest` ya exige el nombre
297
+ // canónico de cada baseline, así que un manifest con otro path no llega hasta
298
+ // acá. Duplicarlo sería una rama que ningún manifest válido puede alcanzar.
299
+ }
300
+ /**
301
+ * Everything a baseline seals, the package must know about — otherwise the
302
+ * revision publishes bytes its own catalog cannot name.
303
+ */
304
+ function compareSelectionAgainstCatalog(broken, manifest, baseline) {
305
+ const catalogued = new Set();
306
+ for (const list of Object.values(manifest.catalog)) {
307
+ for (const entry of list)
308
+ catalogued.add(entry.path);
309
+ }
310
+ for (const entry of baseline.selection) {
311
+ if (catalogued.has(entry.path))
312
+ continue;
313
+ broken(`el baseline sella '${entry.path}' y el catálogo del manifest no lo contiene`, "catalogá ese archivo en el manifest, o quitalo de la selección");
314
+ }
315
+ }
316
+ /**
317
+ * Compare-and-swap. Publishing a revision states which baseline it believed was
318
+ * current; if the line moved since, the publication is refused rather than
319
+ * leaving two revisions claiming the same succession.
320
+ */
321
+ export function checkPublicationBase(manifest, candidate, artifact) {
322
+ if (candidate.package !== manifest.id) {
323
+ return {
324
+ code: "DESIGN_AUTHORITY_CONFLICT",
325
+ artifact,
326
+ message: `la publicación trae un baseline de ${candidate.package} y el package es ${manifest.id}`,
327
+ action: "un baseline se publica dentro del package que sella",
328
+ };
329
+ }
330
+ if (manifest.baselines.some((b) => b.revision === candidate.revision)) {
331
+ return {
332
+ code: "DESIGN_BASE_STALE",
333
+ artifact,
334
+ message: `r${candidate.revision} ya está publicada`,
335
+ action: "una revisión publicada no se republica: numerá la siguiente",
336
+ };
337
+ }
338
+ const current = manifest.current_baseline;
339
+ const expected = current === null ? null : `${manifest.id}@r${current.revision}`;
340
+ if (candidate.parent_baseline !== expected) {
341
+ return {
342
+ code: "DESIGN_BASE_STALE",
343
+ artifact,
344
+ message: `la publicación parte de ${candidate.parent_baseline ?? "ninguna revisión"} y la vigente es ${expected ?? "ninguna"}`,
345
+ action: "alguien publicó mientras preparabas esta: releé el package y rehacé la revisión sobre la base nueva",
346
+ };
347
+ }
348
+ const next = current === null ? 1 : current.revision + 1;
349
+ if (candidate.revision !== next) {
350
+ return {
351
+ code: "DESIGN_BASE_STALE",
352
+ artifact,
353
+ message: `la publicación numera r${candidate.revision} y la siguiente de la línea es r${next}`,
354
+ action: "la línea es continua: numerá la revisión que sigue a la vigente",
355
+ };
356
+ }
357
+ return null;
358
+ }
359
+ //# sourceMappingURL=baseline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../../src/domain/design/baseline.ts"],"names":[],"mappings":"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"}