@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.
- package/README.md +3 -2
- package/dist/adapters/git-cli.js +12 -7
- package/dist/adapters/git-cli.js.map +1 -1
- package/dist/application/capability/compose.js +161 -0
- package/dist/application/capability/compose.js.map +1 -0
- package/dist/application/capability/descriptor-loader.js +109 -0
- package/dist/application/capability/descriptor-loader.js.map +1 -0
- package/dist/application/capability/design-handler.js +299 -0
- package/dist/application/capability/design-handler.js.map +1 -0
- package/dist/application/capability/dispatcher.js +312 -0
- package/dist/application/capability/dispatcher.js.map +1 -0
- package/dist/application/capability/durable-effect.js +220 -0
- package/dist/application/capability/durable-effect.js.map +1 -0
- package/dist/application/capability/installed-inventory.js +168 -0
- package/dist/application/capability/installed-inventory.js.map +1 -0
- package/dist/application/capability/readiness.js +204 -0
- package/dist/application/capability/readiness.js.map +1 -0
- package/dist/application/capability/resolution.js +264 -0
- package/dist/application/capability/resolution.js.map +1 -0
- package/dist/application/capability/wrapper.js +195 -0
- package/dist/application/capability/wrapper.js.map +1 -0
- package/dist/application/context/manifest.js +11 -5
- package/dist/application/context/manifest.js.map +1 -1
- package/dist/application/context/measure.js +5 -2
- package/dist/application/context/measure.js.map +1 -1
- package/dist/application/context/plan-service.js +6 -6
- package/dist/application/context/plan-service.js.map +1 -1
- package/dist/application/design/design-bundle-service.js +148 -0
- package/dist/application/design/design-bundle-service.js.map +1 -0
- package/dist/application/design/design-proposal-service.js +69 -0
- package/dist/application/design/design-proposal-service.js.map +1 -0
- package/dist/application/design/design-publish-service.js +275 -7
- package/dist/application/design/design-publish-service.js.map +1 -1
- package/dist/application/design/design-record-service.js +100 -0
- package/dist/application/design/design-record-service.js.map +1 -0
- package/dist/application/flow/advance.js +533 -0
- package/dist/application/flow/advance.js.map +1 -0
- package/dist/application/flow/flow-service.js +65 -0
- package/dist/application/flow/flow-service.js.map +1 -0
- package/dist/application/flow/run-projection.js +80 -0
- package/dist/application/flow/run-projection.js.map +1 -0
- package/dist/application/flow/run-state-service.js +107 -0
- package/dist/application/flow/run-state-service.js.map +1 -0
- package/dist/application/flow/submit.js +423 -0
- package/dist/application/flow/submit.js.map +1 -0
- package/dist/application/markdown.js +16 -2
- package/dist/application/markdown.js.map +1 -1
- package/dist/application/resume-service.js +23 -10
- package/dist/application/resume-service.js.map +1 -1
- package/dist/application/self/hooks-toml.js +137 -17
- package/dist/application/self/hooks-toml.js.map +1 -1
- package/dist/application/self/host-states.js +87 -1
- package/dist/application/self/host-states.js.map +1 -1
- package/dist/application/self/install-hooks.js +62 -6
- package/dist/application/self/install-hooks.js.map +1 -1
- package/dist/application/self/install-skill.js +37 -6
- package/dist/application/self/install-skill.js.map +1 -1
- package/dist/application/self/uninstall.js +21 -0
- package/dist/application/self/uninstall.js.map +1 -1
- package/dist/application/skills-resolver-service.js +8 -2
- package/dist/application/skills-resolver-service.js.map +1 -1
- package/dist/application/status-service.js +4 -1
- package/dist/application/status-service.js.map +1 -1
- package/dist/application/workline-index-service.js +15 -2
- package/dist/application/workline-index-service.js.map +1 -1
- package/dist/application/workspace-init-service.js +13 -1
- package/dist/application/workspace-init-service.js.map +1 -1
- package/dist/cli/commands/capability.js +182 -0
- package/dist/cli/commands/capability.js.map +1 -0
- package/dist/cli/commands/flow.js +71 -0
- package/dist/cli/commands/flow.js.map +1 -0
- package/dist/cli/commands/index.js +4 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/skills.js +55 -2
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/cli/commands/status.js +5 -0
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/help-groups.js +6 -0
- package/dist/cli/help-groups.js.map +1 -1
- package/dist/cli/parser.js +6 -0
- package/dist/cli/parser.js.map +1 -1
- package/dist/cli/tui/components/host-admin-section.js +14 -2
- package/dist/cli/tui/components/host-admin-section.js.map +1 -1
- package/dist/cli/tui/data/workflow-content.js +13 -1
- package/dist/cli/tui/data/workflow-content.js.map +1 -1
- package/dist/cli/tui/tabs/workflow-tab.js +8 -1
- package/dist/cli/tui/tabs/workflow-tab.js.map +1 -1
- package/dist/domain/capability/descriptor.js +553 -0
- package/dist/domain/capability/descriptor.js.map +1 -0
- package/dist/domain/capability/effects.js +90 -0
- package/dist/domain/capability/effects.js.map +1 -0
- package/dist/domain/capability/protocol.js +494 -0
- package/dist/domain/capability/protocol.js.map +1 -0
- package/dist/domain/contract-reader.js +84 -0
- package/dist/domain/contract-reader.js.map +1 -0
- package/dist/domain/design/adapter.js +161 -0
- package/dist/domain/design/adapter.js.map +1 -0
- package/dist/domain/design/artifact.js +148 -4
- package/dist/domain/design/artifact.js.map +1 -1
- package/dist/domain/design/capability.js +263 -4
- package/dist/domain/design/capability.js.map +1 -1
- package/dist/domain/design/direct.js +108 -0
- package/dist/domain/design/direct.js.map +1 -0
- package/dist/domain/design/external-send.js +65 -0
- package/dist/domain/design/external-send.js.map +1 -0
- package/dist/domain/design/maturity.js +71 -0
- package/dist/domain/design/maturity.js.map +1 -1
- package/dist/domain/design/offline.js +92 -0
- package/dist/domain/design/offline.js.map +1 -0
- package/dist/domain/design/profiles.js +212 -0
- package/dist/domain/design/profiles.js.map +1 -0
- package/dist/domain/design/proposal.js +234 -0
- package/dist/domain/design/proposal.js.map +1 -0
- package/dist/domain/design/render-bundle.js +0 -0
- package/dist/domain/design/render-bundle.js.map +1 -0
- package/dist/domain/design/rendition.js +472 -0
- package/dist/domain/design/rendition.js.map +1 -0
- package/dist/domain/design/sources.js +180 -0
- package/dist/domain/design/sources.js.map +1 -0
- package/dist/domain/design/validation.js +12 -68
- package/dist/domain/design/validation.js.map +1 -1
- package/dist/domain/design/visual-evidence.js +155 -0
- package/dist/domain/design/visual-evidence.js.map +1 -0
- package/dist/domain/flow/answer.js +459 -0
- package/dist/domain/flow/answer.js.map +1 -0
- package/dist/domain/flow/authority.js +2338 -0
- package/dist/domain/flow/authority.js.map +1 -0
- package/dist/domain/flow/authorization.js +62 -0
- package/dist/domain/flow/authorization.js.map +1 -0
- package/dist/domain/flow/directive.js +421 -0
- package/dist/domain/flow/directive.js.map +1 -0
- package/dist/domain/flow/rules.js +140 -0
- package/dist/domain/flow/rules.js.map +1 -0
- package/dist/domain/flow/run-state.js +317 -0
- package/dist/domain/flow/run-state.js.map +1 -0
- package/dist/domain/harnesses.js +124 -4
- package/dist/domain/harnesses.js.map +1 -1
- package/dist/domain/host-verification.js +8 -8
- package/dist/domain/skills.js +13 -14
- package/dist/domain/skills.js.map +1 -1
- package/dist/domain/structured-choice-stamp.js +106 -0
- package/dist/domain/structured-choice-stamp.js.map +1 -0
- package/package.json +1 -1
- package/skills/w/SKILL.md +5 -5
- package/skills/w/context/MANIFEST.json +42 -1
- package/skills/w/harness/HARNESS.md +30 -4
- package/skills/w/loops/CHASSIS.md +11 -20
- package/skills/w/loops/CODE-POLICIES.md +9 -15
- package/skills/w/loops/plan-exec-loop/LOOP.md +11 -13
- package/skills/w/loops/plan-new-loop/LOOP.md +6 -4
- package/skills/w/loops/plan-refine-loop/LOOP.md +5 -3
- package/skills/w/loops/quick-loop/LOOP.md +18 -26
- package/skills/w/loops/spec-refine-loop/LOOP.md +14 -18
- package/skills/w/modules/COMPACTION.md +2 -6
- package/skills/w/modules/DB-SCRIPTS-ONLY.md +2 -0
- package/skills/w/modules/DESIGN-REFERENCES.md +15 -11
- package/skills/w/modules/IDEATION-GATE.md +3 -3
- package/skills/w/modules/PLAN-EXECUTION-BATCHES.md +17 -36
- package/skills/w/modules/PLAN-INPUT.md +5 -3
- package/skills/w/modules/PLAN-REFINE-SPLIT.md +3 -1
- package/skills/w/modules/PLAN-SPLIT-GATE.md +7 -5
- package/skills/w/modules/PROMPT-CONTINUITY.md +3 -1
- package/skills/w/modules/SPEC-CHANGE-SHAPE.md +4 -4
- package/skills/w/roles/README.md +2 -0
- package/skills/w/roles/design/CONTRACT.md +80 -0
- package/skills/w/roles/design/ROLE.md +7 -0
- package/skills/w/schemas/capability-descriptor.schema.json +260 -0
- package/skills/w/schemas/design/design-render-bundle.v1.schema.json +191 -0
- package/skills/w/schemas/design/design-rendition.v1.schema.json +232 -0
- 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
|
-
|
|
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
|
|
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":"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"}
|
|
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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"}
|