foundry-design-protocol 0.2.0-beta.20 → 0.2.0-beta.21
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 +4 -4
- package/dist/index.d.ts +2696 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +383 -33
- package/dist/index.js.map +1 -1
- package/dist/verification-value.d.ts +3 -0
- package/dist/verification-value.d.ts.map +1 -0
- package/dist/verification-value.js +250 -0
- package/dist/verification-value.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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AAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoC3B,CAAC;AAsFL,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAOxB,CAAC;AAEL,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export
|
|
2
|
+
export { verificationValueMatches } from './verification-value.js';
|
|
3
|
+
export const PROTOCOL_VERSION = '1.3.0';
|
|
4
|
+
export const PREVIOUS_PROTOCOL_VERSION = '1.2.0';
|
|
3
5
|
export const LEGACY_PROTOCOL_VERSION = '1.0.0';
|
|
4
6
|
export const APPLY_RUN_PROTOCOL_VERSION = '1.1.0';
|
|
7
|
+
const readableProtocolVersionSchema = z.enum([
|
|
8
|
+
PROTOCOL_VERSION,
|
|
9
|
+
PREVIOUS_PROTOCOL_VERSION,
|
|
10
|
+
APPLY_RUN_PROTOCOL_VERSION,
|
|
11
|
+
LEGACY_PROTOCOL_VERSION,
|
|
12
|
+
]);
|
|
5
13
|
export const platformSchema = z.enum(['web', 'swiftui', 'react-native']);
|
|
6
14
|
export const changeCategorySchema = z.enum([
|
|
7
15
|
'layout',
|
|
@@ -39,6 +47,7 @@ export const sessionContextSchema = z.object({
|
|
|
39
47
|
designGraphRevision: z.string().optional(),
|
|
40
48
|
platform: platformSchema,
|
|
41
49
|
targetUrl: z.string().url().optional(),
|
|
50
|
+
previewOrigin: z.string().url().optional(),
|
|
42
51
|
targetName: z.string().optional(),
|
|
43
52
|
device: z.string().optional(),
|
|
44
53
|
viewport: z.object({ width: z.number().positive(), height: z.number().positive() }).optional(),
|
|
@@ -46,6 +55,27 @@ export const sessionContextSchema = z.object({
|
|
|
46
55
|
breakpoint: z.string().default('current'),
|
|
47
56
|
state: z.string().default('current'),
|
|
48
57
|
});
|
|
58
|
+
export const changeContextSchema = z.object({
|
|
59
|
+
breakpoint: z.string().default('current'),
|
|
60
|
+
theme: z.string().default('current'),
|
|
61
|
+
state: z.string().default('current'),
|
|
62
|
+
});
|
|
63
|
+
const contextSetValuesSchema = z
|
|
64
|
+
.array(z.string().min(1))
|
|
65
|
+
.min(1)
|
|
66
|
+
.transform((values) => [...new Set(values)]);
|
|
67
|
+
export const contextSetSchema = z.object({
|
|
68
|
+
breakpoints: contextSetValuesSchema,
|
|
69
|
+
themes: contextSetValuesSchema,
|
|
70
|
+
states: contextSetValuesSchema,
|
|
71
|
+
});
|
|
72
|
+
function singletonContextSet(context) {
|
|
73
|
+
return {
|
|
74
|
+
breakpoints: [context.breakpoint],
|
|
75
|
+
themes: [context.theme],
|
|
76
|
+
states: [context.state],
|
|
77
|
+
};
|
|
78
|
+
}
|
|
49
79
|
export const targetRefSchema = z.object({
|
|
50
80
|
id: z.string().min(1),
|
|
51
81
|
platform: platformSchema,
|
|
@@ -203,6 +233,8 @@ export const themeDefinitionSchema = z.object({
|
|
|
203
233
|
attribute: z.string().optional(),
|
|
204
234
|
value: z.string().optional(),
|
|
205
235
|
source: sourceRefSchema.optional(),
|
|
236
|
+
confidence: confidenceSchema.default('instrumented'),
|
|
237
|
+
evidence: z.array(z.string()).default([]),
|
|
206
238
|
});
|
|
207
239
|
export const motionPresetSchema = z.object({
|
|
208
240
|
id: z.string().min(1),
|
|
@@ -242,8 +274,8 @@ export const designSystemFindingSchema = z.object({
|
|
|
242
274
|
source: sourceRefSchema.optional(),
|
|
243
275
|
evidence: z.array(z.string()).default([]),
|
|
244
276
|
});
|
|
245
|
-
|
|
246
|
-
protocolVersion: z.literal(PROTOCOL_VERSION),
|
|
277
|
+
const projectDesignGraphInputSchema = z.object({
|
|
278
|
+
protocolVersion: z.union([z.literal(PROTOCOL_VERSION), z.literal(PREVIOUS_PROTOCOL_VERSION)]),
|
|
247
279
|
projectRoot: z.string().min(1),
|
|
248
280
|
revision: z.string().optional(),
|
|
249
281
|
tokens: z.array(designTokenSchema).default([]),
|
|
@@ -258,6 +290,10 @@ export const projectDesignGraphSchema = z.object({
|
|
|
258
290
|
tokenPromotions: z.array(tokenPromotionCandidateSchema).optional(),
|
|
259
291
|
indexedAt: z.string().datetime(),
|
|
260
292
|
});
|
|
293
|
+
export const projectDesignGraphSchema = projectDesignGraphInputSchema.transform((graph) => ({
|
|
294
|
+
...graph,
|
|
295
|
+
protocolVersion: PROTOCOL_VERSION,
|
|
296
|
+
}));
|
|
261
297
|
export const sourceMappingCandidateSchema = z.object({
|
|
262
298
|
id: z.string().min(1),
|
|
263
299
|
label: z.string().min(1),
|
|
@@ -283,7 +319,8 @@ export const sourceMappingCandidateSchema = z.object({
|
|
|
283
319
|
evidence: z.array(z.string()).default([]),
|
|
284
320
|
blastRadius: z.number().int().nonnegative().default(1),
|
|
285
321
|
});
|
|
286
|
-
export const designOperationSchema = z
|
|
322
|
+
export const designOperationSchema = z
|
|
323
|
+
.object({
|
|
287
324
|
id: z.string().min(1),
|
|
288
325
|
kind: z.enum([
|
|
289
326
|
'resize',
|
|
@@ -306,8 +343,35 @@ export const designOperationSchema = z.object({
|
|
|
306
343
|
status: z.enum(['preview', 'resolved', 'unresolved']).default('preview'),
|
|
307
344
|
createdAt: z.string().datetime(),
|
|
308
345
|
updatedAt: z.string().datetime(),
|
|
346
|
+
})
|
|
347
|
+
.superRefine((operation, context) => {
|
|
348
|
+
const candidateIds = operation.mappingCandidates.map((candidate) => candidate.id);
|
|
349
|
+
if (new Set(candidateIds).size !== candidateIds.length) {
|
|
350
|
+
context.addIssue({
|
|
351
|
+
code: 'custom',
|
|
352
|
+
path: ['mappingCandidates'],
|
|
353
|
+
message: 'Source mapping candidate ids must be unique',
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
if (operation.selectedMappingId &&
|
|
357
|
+
!operation.mappingCandidates.some((candidate) => candidate.id === operation.selectedMappingId)) {
|
|
358
|
+
context.addIssue({
|
|
359
|
+
code: 'custom',
|
|
360
|
+
path: ['selectedMappingId'],
|
|
361
|
+
message: 'Selected source mapping must name an existing candidate',
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
if (operation.status === 'resolved' &&
|
|
365
|
+
(operation.mappingCandidates.length === 0 ||
|
|
366
|
+
(operation.mappingCandidates.length > 1 && !operation.selectedMappingId))) {
|
|
367
|
+
context.addIssue({
|
|
368
|
+
code: 'custom',
|
|
369
|
+
path: ['selectedMappingId'],
|
|
370
|
+
message: 'Resolved operations require a selected source mapping',
|
|
371
|
+
});
|
|
372
|
+
}
|
|
309
373
|
});
|
|
310
|
-
|
|
374
|
+
const designChangeInputSchema = z.object({
|
|
311
375
|
id: z.string().min(1),
|
|
312
376
|
target: targetRefSchema,
|
|
313
377
|
category: changeCategorySchema,
|
|
@@ -321,19 +385,51 @@ export const designChangeSchema = z.object({
|
|
|
321
385
|
mappingCandidates: z.array(sourceMappingCandidateSchema).default([]),
|
|
322
386
|
selectedMappingId: z.string().optional(),
|
|
323
387
|
scope: scopeSchema.default('instance'),
|
|
324
|
-
context:
|
|
325
|
-
|
|
326
|
-
theme: z.string().default('current'),
|
|
327
|
-
state: z.string().default('current'),
|
|
328
|
-
}),
|
|
388
|
+
context: changeContextSchema,
|
|
389
|
+
contextSet: contextSetSchema.optional(),
|
|
329
390
|
confidence: confidenceSchema,
|
|
330
391
|
evidence: z.array(z.string()).default([]),
|
|
331
392
|
createdAt: z.string().datetime(),
|
|
332
393
|
updatedAt: z.string().datetime(),
|
|
333
394
|
status: z.enum(['draft', 'approved', 'applied', 'rejected', 'unresolved']).default('draft'),
|
|
334
395
|
});
|
|
335
|
-
export const
|
|
336
|
-
|
|
396
|
+
export const designChangeSchema = designChangeInputSchema
|
|
397
|
+
.transform((change) => ({
|
|
398
|
+
...change,
|
|
399
|
+
contextSet: change.contextSet ?? singletonContextSet(change.context),
|
|
400
|
+
}))
|
|
401
|
+
.superRefine((change, context) => {
|
|
402
|
+
const candidateIds = change.mappingCandidates.map((candidate) => candidate.id);
|
|
403
|
+
if (new Set(candidateIds).size !== candidateIds.length) {
|
|
404
|
+
context.addIssue({
|
|
405
|
+
code: 'custom',
|
|
406
|
+
path: ['mappingCandidates'],
|
|
407
|
+
message: 'Source mapping candidate ids must be unique',
|
|
408
|
+
});
|
|
409
|
+
}
|
|
410
|
+
if (change.selectedMappingId &&
|
|
411
|
+
!change.mappingCandidates.some((candidate) => candidate.id === change.selectedMappingId)) {
|
|
412
|
+
context.addIssue({
|
|
413
|
+
code: 'custom',
|
|
414
|
+
path: ['selectedMappingId'],
|
|
415
|
+
message: 'Selected source mapping must name an existing candidate',
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
const missingAxes = [
|
|
419
|
+
change.contextSet.breakpoints.includes(change.context.breakpoint) ? undefined : 'breakpoint',
|
|
420
|
+
change.contextSet.themes.includes(change.context.theme) ? undefined : 'theme',
|
|
421
|
+
change.contextSet.states.includes(change.context.state) ? undefined : 'state',
|
|
422
|
+
].filter((axis) => Boolean(axis));
|
|
423
|
+
if (missingAxes.length) {
|
|
424
|
+
context.addIssue({
|
|
425
|
+
code: 'custom',
|
|
426
|
+
path: ['contextSet'],
|
|
427
|
+
message: `Context set must contain the exact capture ${missingAxes.join(', ')}`,
|
|
428
|
+
});
|
|
429
|
+
}
|
|
430
|
+
});
|
|
431
|
+
const changeSetInputSchema = z.object({
|
|
432
|
+
protocolVersion: readableProtocolVersionSchema,
|
|
337
433
|
sessionId: z.string().min(1),
|
|
338
434
|
context: sessionContextSchema,
|
|
339
435
|
changes: z.array(designChangeSchema),
|
|
@@ -349,7 +445,74 @@ export const changeSetSchema = z.object({
|
|
|
349
445
|
createdAt: z.string().datetime(),
|
|
350
446
|
updatedAt: z.string().datetime(),
|
|
351
447
|
});
|
|
352
|
-
|
|
448
|
+
function refineChangeCollection(value, context) {
|
|
449
|
+
const changeIds = value.changes.map((change) => change.id);
|
|
450
|
+
if (new Set(changeIds).size !== changeIds.length) {
|
|
451
|
+
context.addIssue({
|
|
452
|
+
code: 'custom',
|
|
453
|
+
path: ['changes'],
|
|
454
|
+
message: 'Design change ids must be unique within a change collection',
|
|
455
|
+
});
|
|
456
|
+
}
|
|
457
|
+
const operationIds = value.operations.map((operation) => operation.id);
|
|
458
|
+
if (new Set(operationIds).size !== operationIds.length) {
|
|
459
|
+
context.addIssue({
|
|
460
|
+
code: 'custom',
|
|
461
|
+
path: ['operations'],
|
|
462
|
+
message: 'Design operation ids must be unique within a change collection',
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
|
+
const changes = new Map(value.changes.map((change) => [change.id, change]));
|
|
466
|
+
const operations = new Map(value.operations.map((operation) => [operation.id, operation]));
|
|
467
|
+
for (const [index, operation] of value.operations.entries()) {
|
|
468
|
+
if (new Set(operation.changeIds).size !== operation.changeIds.length) {
|
|
469
|
+
context.addIssue({
|
|
470
|
+
code: 'custom',
|
|
471
|
+
path: ['operations', index, 'changeIds'],
|
|
472
|
+
message: 'Operation change ids must be unique',
|
|
473
|
+
});
|
|
474
|
+
}
|
|
475
|
+
if (new Set(operation.targetIds).size !== operation.targetIds.length) {
|
|
476
|
+
context.addIssue({
|
|
477
|
+
code: 'custom',
|
|
478
|
+
path: ['operations', index, 'targetIds'],
|
|
479
|
+
message: 'Operation target ids must be unique',
|
|
480
|
+
});
|
|
481
|
+
}
|
|
482
|
+
for (const referencedId of operation.changeIds) {
|
|
483
|
+
const change = changes.get(referencedId);
|
|
484
|
+
if (!change || change.operationId !== operation.id) {
|
|
485
|
+
context.addIssue({
|
|
486
|
+
code: 'custom',
|
|
487
|
+
path: ['operations', index, 'changeIds'],
|
|
488
|
+
message: `Operation ${operation.id} references an inconsistent change ${referencedId}`,
|
|
489
|
+
});
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
for (const [index, change] of value.changes.entries()) {
|
|
494
|
+
if (!change.operationId)
|
|
495
|
+
continue;
|
|
496
|
+
const operation = operations.get(change.operationId);
|
|
497
|
+
if (!operation || !operation.changeIds.includes(change.id)) {
|
|
498
|
+
context.addIssue({
|
|
499
|
+
code: 'custom',
|
|
500
|
+
path: ['changes', index, 'operationId'],
|
|
501
|
+
message: `Change ${change.id} references an inconsistent operation ${change.operationId}`,
|
|
502
|
+
});
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
export const changeSetSchema = changeSetInputSchema
|
|
507
|
+
.transform((changeSet) => ({
|
|
508
|
+
...changeSet,
|
|
509
|
+
protocolVersion: PROTOCOL_VERSION,
|
|
510
|
+
}))
|
|
511
|
+
.superRefine((changeSet, context) => {
|
|
512
|
+
refineChangeCollection(changeSet, context);
|
|
513
|
+
});
|
|
514
|
+
export const designBranchSchema = z
|
|
515
|
+
.object({
|
|
353
516
|
id: z.string().min(1),
|
|
354
517
|
name: z.string().min(1).max(80),
|
|
355
518
|
status: z.enum(['exploring', 'chosen', 'rejected', 'archived']).default('exploring'),
|
|
@@ -359,6 +522,9 @@ export const designBranchSchema = z.object({
|
|
|
359
522
|
rejectionReason: z.string().max(280).optional(),
|
|
360
523
|
createdAt: z.string().datetime(),
|
|
361
524
|
updatedAt: z.string().datetime(),
|
|
525
|
+
})
|
|
526
|
+
.superRefine((branch, context) => {
|
|
527
|
+
refineChangeCollection(branch, context);
|
|
362
528
|
});
|
|
363
529
|
export const designBranchRecordSourceSchema = z.object({
|
|
364
530
|
targetId: z.string().min(1),
|
|
@@ -367,7 +533,8 @@ export const designBranchRecordSourceSchema = z.object({
|
|
|
367
533
|
componentPath: z.array(z.string()).default([]),
|
|
368
534
|
source: sourceRefSchema.optional(),
|
|
369
535
|
});
|
|
370
|
-
export const designBranchRecordSchema = z
|
|
536
|
+
export const designBranchRecordSchema = z
|
|
537
|
+
.object({
|
|
371
538
|
version: z.literal(1),
|
|
372
539
|
id: z.string().min(1),
|
|
373
540
|
branchId: z.string().min(1),
|
|
@@ -388,6 +555,9 @@ export const designBranchRecordSchema = z.object({
|
|
|
388
555
|
importedAt: z.string().datetime().optional(),
|
|
389
556
|
createdAt: z.string().datetime(),
|
|
390
557
|
updatedAt: z.string().datetime(),
|
|
558
|
+
})
|
|
559
|
+
.superRefine((record, context) => {
|
|
560
|
+
refineChangeCollection(record, context);
|
|
391
561
|
});
|
|
392
562
|
export const designBranchRecordBundleSchema = z.object({
|
|
393
563
|
format: z.literal('foundry.design-branch-records'),
|
|
@@ -400,9 +570,13 @@ export const verificationResultSchema = z.object({
|
|
|
400
570
|
property: z.string().min(1),
|
|
401
571
|
requested: changeValueSchema,
|
|
402
572
|
rendered: changeValueSchema,
|
|
573
|
+
context: changeContextSchema.optional(),
|
|
574
|
+
applyRunId: z.string().min(1).optional(),
|
|
575
|
+
claimAttemptId: z.string().min(1).optional(),
|
|
403
576
|
passed: z.boolean(),
|
|
404
577
|
reason: z.string().optional(),
|
|
405
578
|
geometry: geometrySchema.optional(),
|
|
579
|
+
evidence: z.array(z.string().min(1)).default([]),
|
|
406
580
|
screenshotPath: z.string().optional(),
|
|
407
581
|
verifiedAt: z.string().datetime(),
|
|
408
582
|
});
|
|
@@ -427,11 +601,44 @@ export const validationResultSchema = z.object({
|
|
|
427
601
|
name: z.string().min(1),
|
|
428
602
|
passed: z.boolean(),
|
|
429
603
|
summary: z.string().optional(),
|
|
604
|
+
applyRunId: z.string().min(1).optional(),
|
|
605
|
+
claimAttemptId: z.string().min(1).optional(),
|
|
606
|
+
validatedRevision: z.string().min(1).optional(),
|
|
607
|
+
validatedAt: z.string().datetime().optional(),
|
|
430
608
|
});
|
|
431
|
-
export const
|
|
609
|
+
export const sourceLineAnchorSchema = z
|
|
610
|
+
.object({
|
|
611
|
+
line: z.number().int().positive(),
|
|
612
|
+
endLine: z.number().int().positive().optional(),
|
|
613
|
+
symbol: z.string().min(1).optional(),
|
|
614
|
+
sha256: z.string().regex(/^[a-f0-9]{64}$/),
|
|
615
|
+
})
|
|
616
|
+
.superRefine((anchor, context) => {
|
|
617
|
+
if (anchor.endLine !== undefined && anchor.endLine < anchor.line) {
|
|
618
|
+
context.addIssue({
|
|
619
|
+
code: 'custom',
|
|
620
|
+
path: ['endLine'],
|
|
621
|
+
message: 'Source anchor endLine must not precede line',
|
|
622
|
+
});
|
|
623
|
+
}
|
|
624
|
+
});
|
|
625
|
+
export const sourceFileSnapshotSchema = z.object({
|
|
626
|
+
path: z.string().min(1),
|
|
627
|
+
exists: z.boolean(),
|
|
628
|
+
sha256: z
|
|
629
|
+
.string()
|
|
630
|
+
.regex(/^[a-f0-9]{64}$/)
|
|
631
|
+
.nullable(),
|
|
632
|
+
lineAnchors: z.array(sourceLineAnchorSchema).optional(),
|
|
633
|
+
});
|
|
634
|
+
export const applyRunSchema = z
|
|
635
|
+
.object({
|
|
432
636
|
id: z.string().min(1),
|
|
433
637
|
sessionId: z.string().min(1),
|
|
434
638
|
changeIds: z.array(z.string().min(1)).min(1),
|
|
639
|
+
reviewedChangeSet: changeSetSchema.optional(),
|
|
640
|
+
/** Enables only the pre-1.3 acknowledgement shape for a run migrated from that protocol. */
|
|
641
|
+
legacyApplyCompatibility: z.boolean().optional(),
|
|
435
642
|
revision: z.string().optional(),
|
|
436
643
|
designGraphRevision: z.string().optional(),
|
|
437
644
|
state: applyRunStateSchema,
|
|
@@ -446,8 +653,20 @@ export const applyRunSchema = z.object({
|
|
|
446
653
|
changedFiles: z.array(z.string()).default([]),
|
|
447
654
|
validationResults: z.array(validationResultSchema).default([]),
|
|
448
655
|
verificationResults: z.array(verificationResultSchema).default([]),
|
|
656
|
+
applyResultAcknowledgedAt: z.string().datetime().optional(),
|
|
657
|
+
applyResultClaimAttemptId: z.string().min(1).optional(),
|
|
658
|
+
sourceProofScope: z.enum(['git', 'mapped-files']).optional(),
|
|
659
|
+
sourceHeadRevision: z.string().min(1).optional(),
|
|
660
|
+
baselineSourceFiles: z.array(sourceFileSnapshotSchema).default([]),
|
|
661
|
+
appliedRevision: z.string().min(1).optional(),
|
|
662
|
+
appliedChangedFiles: z.array(z.string().min(1)).default([]),
|
|
663
|
+
appliedSourceFiles: z.array(sourceFileSnapshotSchema).default([]),
|
|
449
664
|
attempts: z.number().int().positive().default(1),
|
|
450
665
|
claimAttemptId: z.string().min(1).optional(),
|
|
666
|
+
claimCapabilityHash: z
|
|
667
|
+
.string()
|
|
668
|
+
.regex(/^[a-f0-9]{64}$/)
|
|
669
|
+
.optional(),
|
|
451
670
|
claimExpiresAt: z.string().datetime().optional(),
|
|
452
671
|
claimHeartbeatAt: z.string().datetime().optional(),
|
|
453
672
|
requeueCount: z.number().int().nonnegative().default(0),
|
|
@@ -459,6 +678,57 @@ export const applyRunSchema = z.object({
|
|
|
459
678
|
claimedAt: z.string().datetime().optional(),
|
|
460
679
|
completedAt: z.string().datetime().optional(),
|
|
461
680
|
updatedAt: z.string().datetime(),
|
|
681
|
+
})
|
|
682
|
+
.superRefine((run, context) => {
|
|
683
|
+
if (Boolean(run.applyResultAcknowledgedAt) !== Boolean(run.applyResultClaimAttemptId)) {
|
|
684
|
+
context.addIssue({
|
|
685
|
+
code: 'custom',
|
|
686
|
+
path: ['applyResultAcknowledgedAt'],
|
|
687
|
+
message: 'Apply result acknowledgement time and claim attempt must be stored together',
|
|
688
|
+
});
|
|
689
|
+
}
|
|
690
|
+
if (run.applyResultAcknowledgedAt &&
|
|
691
|
+
(!run.appliedRevision ||
|
|
692
|
+
run.appliedChangedFiles.length === 0 ||
|
|
693
|
+
run.appliedSourceFiles.length === 0)) {
|
|
694
|
+
context.addIssue({
|
|
695
|
+
code: 'custom',
|
|
696
|
+
path: ['appliedRevision'],
|
|
697
|
+
message: 'Acknowledged Apply results require a proven revision and changed source files',
|
|
698
|
+
});
|
|
699
|
+
}
|
|
700
|
+
if (!run.reviewedChangeSet)
|
|
701
|
+
return;
|
|
702
|
+
if (run.reviewedChangeSet.sessionId !== run.sessionId) {
|
|
703
|
+
context.addIssue({
|
|
704
|
+
code: 'custom',
|
|
705
|
+
path: ['reviewedChangeSet', 'sessionId'],
|
|
706
|
+
message: 'Reviewed change set must belong to the apply run session',
|
|
707
|
+
});
|
|
708
|
+
}
|
|
709
|
+
const runIds = [...new Set(run.changeIds)].sort();
|
|
710
|
+
const reviewedIds = [
|
|
711
|
+
...new Set(run.reviewedChangeSet.changes.map((change) => change.id)),
|
|
712
|
+
].sort();
|
|
713
|
+
if (runIds.length !== run.changeIds.length ||
|
|
714
|
+
reviewedIds.length !== run.reviewedChangeSet.changes.length ||
|
|
715
|
+
runIds.length !== reviewedIds.length ||
|
|
716
|
+
runIds.some((id, index) => id !== reviewedIds[index])) {
|
|
717
|
+
context.addIssue({
|
|
718
|
+
code: 'custom',
|
|
719
|
+
path: ['reviewedChangeSet', 'changes'],
|
|
720
|
+
message: 'Reviewed change set must contain each apply run change exactly once',
|
|
721
|
+
});
|
|
722
|
+
}
|
|
723
|
+
for (const [index, change] of run.reviewedChangeSet.changes.entries()) {
|
|
724
|
+
if (change.status !== 'approved') {
|
|
725
|
+
context.addIssue({
|
|
726
|
+
code: 'custom',
|
|
727
|
+
path: ['reviewedChangeSet', 'changes', index, 'status'],
|
|
728
|
+
message: 'Frozen reviewed changes must remain approved',
|
|
729
|
+
});
|
|
730
|
+
}
|
|
731
|
+
}
|
|
462
732
|
});
|
|
463
733
|
export const deliveryRecordStatusSchema = z.enum([
|
|
464
734
|
'draft',
|
|
@@ -510,6 +780,8 @@ export const deliveryRecordSchema = z.object({
|
|
|
510
780
|
}))
|
|
511
781
|
.default([]),
|
|
512
782
|
revision: z.string().optional(),
|
|
783
|
+
baselineRevision: z.string().optional(),
|
|
784
|
+
appliedRevision: z.string().optional(),
|
|
513
785
|
designGraphRevision: z.string().optional(),
|
|
514
786
|
createdAt: z.string().datetime(),
|
|
515
787
|
updatedAt: z.string().datetime(),
|
|
@@ -550,6 +822,8 @@ export const designHistoryEntrySchema = z.object({
|
|
|
550
822
|
validationResults: z.array(validationResultSchema).default([]),
|
|
551
823
|
verificationResults: z.array(verificationResultSchema).default([]),
|
|
552
824
|
revision: z.string().optional(),
|
|
825
|
+
baselineRevision: z.string().optional(),
|
|
826
|
+
appliedRevision: z.string().optional(),
|
|
553
827
|
createdAt: z.string().datetime(),
|
|
554
828
|
});
|
|
555
829
|
export const deliveryMilestoneSchema = z.object({
|
|
@@ -639,6 +913,10 @@ export const visualAgentRequestSchema = z.object({
|
|
|
639
913
|
})
|
|
640
914
|
.optional(),
|
|
641
915
|
claimAttemptId: z.string().optional(),
|
|
916
|
+
claimCapabilityHash: z
|
|
917
|
+
.string()
|
|
918
|
+
.regex(/^[a-f0-9]{64}$/)
|
|
919
|
+
.optional(),
|
|
642
920
|
claimExpiresAt: z.string().datetime().optional(),
|
|
643
921
|
error: z.string().optional(),
|
|
644
922
|
createdAt: z.string().datetime(),
|
|
@@ -676,6 +954,71 @@ export const surfaceSnapshotSchema = z.object({
|
|
|
676
954
|
controlsByTarget: z.record(z.string(), z.array(controlDescriptorSchema)).default({}),
|
|
677
955
|
updatedAt: z.string().datetime(),
|
|
678
956
|
});
|
|
957
|
+
export const previewContextSchema = z.object({
|
|
958
|
+
version: z.literal(1),
|
|
959
|
+
requestRevision: z.number().int().nonnegative(),
|
|
960
|
+
viewport: z.object({
|
|
961
|
+
id: z.string().min(1),
|
|
962
|
+
width: z.number().positive().optional(),
|
|
963
|
+
height: z.number().positive().optional(),
|
|
964
|
+
}),
|
|
965
|
+
theme: z.string().min(1),
|
|
966
|
+
state: z.string().min(1),
|
|
967
|
+
motionPreference: z.enum(['system', 'reduce', 'no-preference']),
|
|
968
|
+
selectedTarget: z
|
|
969
|
+
.object({
|
|
970
|
+
id: z.string().min(1),
|
|
971
|
+
selector: z.string().min(1),
|
|
972
|
+
})
|
|
973
|
+
.optional(),
|
|
974
|
+
});
|
|
975
|
+
export const previewAxisResultSchema = z.object({
|
|
976
|
+
status: z.enum(['applied', 'current', 'unsupported']),
|
|
977
|
+
method: z.string().min(1),
|
|
978
|
+
evidence: z.array(z.string()).default([]),
|
|
979
|
+
failureReason: z.string().min(1).optional(),
|
|
980
|
+
});
|
|
981
|
+
export const previewContextResultSchema = z.object({
|
|
982
|
+
version: z.literal(1),
|
|
983
|
+
requestRevision: z.number().int().nonnegative(),
|
|
984
|
+
applied: z.boolean(),
|
|
985
|
+
reloadQuery: z.record(z.string(), z.string()).optional(),
|
|
986
|
+
failureReason: z.string().min(1).optional(),
|
|
987
|
+
context: previewContextSchema,
|
|
988
|
+
axes: z.object({
|
|
989
|
+
viewport: previewAxisResultSchema,
|
|
990
|
+
theme: previewAxisResultSchema,
|
|
991
|
+
state: previewAxisResultSchema,
|
|
992
|
+
motion: previewAxisResultSchema,
|
|
993
|
+
}),
|
|
994
|
+
});
|
|
995
|
+
export const previewCapabilitiesSchema = z.object({
|
|
996
|
+
version: z.literal(1),
|
|
997
|
+
viewports: z.array(z.object({
|
|
998
|
+
id: z.string().min(1),
|
|
999
|
+
width: z.number().positive().optional(),
|
|
1000
|
+
height: z.number().positive().optional(),
|
|
1001
|
+
})),
|
|
1002
|
+
themes: z.array(z.object({
|
|
1003
|
+
id: z.string().min(1),
|
|
1004
|
+
selector: z.string().min(1).optional(),
|
|
1005
|
+
attribute: z.string().min(1).optional(),
|
|
1006
|
+
value: z.string().optional(),
|
|
1007
|
+
})),
|
|
1008
|
+
states: z.array(z.object({
|
|
1009
|
+
id: z.string().min(1),
|
|
1010
|
+
methods: z
|
|
1011
|
+
.array(z.enum(['query', 'variant', 'pseudo', 'native', 'reduced-motion']))
|
|
1012
|
+
.default([]),
|
|
1013
|
+
})),
|
|
1014
|
+
motionPreferences: z.array(z.enum(['system', 'reduce', 'no-preference'])).default(['system']),
|
|
1015
|
+
});
|
|
1016
|
+
export const workspaceSnapshotSchema = z.object({
|
|
1017
|
+
version: z.literal(1),
|
|
1018
|
+
capabilities: previewCapabilitiesSchema,
|
|
1019
|
+
currentPreviewContext: previewContextSchema.nullable().default(null),
|
|
1020
|
+
lastPreviewApplication: previewContextResultSchema.nullable().default(null),
|
|
1021
|
+
});
|
|
679
1022
|
export const previewCommandSchema = z.object({
|
|
680
1023
|
id: z.string().min(1),
|
|
681
1024
|
targetId: z.string().min(1),
|
|
@@ -685,37 +1028,43 @@ export const previewCommandSchema = z.object({
|
|
|
685
1028
|
createdAt: z.string().datetime(),
|
|
686
1029
|
});
|
|
687
1030
|
export function changeKey(change) {
|
|
688
|
-
const
|
|
689
|
-
return [
|
|
1031
|
+
const contextSet = change.contextSet;
|
|
1032
|
+
return JSON.stringify([
|
|
690
1033
|
change.target.id,
|
|
691
1034
|
change.property,
|
|
692
1035
|
change.scope,
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
[...change.stateIds].sort()
|
|
697
|
-
]
|
|
1036
|
+
[...contextSet.breakpoints].sort(),
|
|
1037
|
+
[...contextSet.themes].sort(),
|
|
1038
|
+
[...contextSet.states].sort(),
|
|
1039
|
+
[...change.stateIds].sort(),
|
|
1040
|
+
]);
|
|
698
1041
|
}
|
|
699
1042
|
export function coalesceChanges(changes) {
|
|
700
|
-
const
|
|
701
|
-
const
|
|
1043
|
+
const result = [];
|
|
1044
|
+
const editableIndexByKey = new Map();
|
|
702
1045
|
for (const change of changes) {
|
|
703
1046
|
const parsed = designChangeSchema.parse(change);
|
|
704
1047
|
const key = changeKey(parsed);
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
1048
|
+
if (!['draft', 'unresolved'].includes(parsed.status)) {
|
|
1049
|
+
result.push(parsed);
|
|
1050
|
+
editableIndexByKey.delete(key);
|
|
1051
|
+
continue;
|
|
1052
|
+
}
|
|
1053
|
+
const existingIndex = editableIndexByKey.get(key);
|
|
1054
|
+
if (existingIndex === undefined) {
|
|
1055
|
+
editableIndexByKey.set(key, result.length);
|
|
1056
|
+
result.push(parsed);
|
|
709
1057
|
continue;
|
|
710
1058
|
}
|
|
711
|
-
|
|
1059
|
+
const existing = result[existingIndex];
|
|
1060
|
+
result[existingIndex] = {
|
|
712
1061
|
...parsed,
|
|
713
1062
|
id: existing.id,
|
|
714
1063
|
before: existing.before,
|
|
715
1064
|
createdAt: existing.createdAt,
|
|
716
|
-
}
|
|
1065
|
+
};
|
|
717
1066
|
}
|
|
718
|
-
return
|
|
1067
|
+
return result;
|
|
719
1068
|
}
|
|
720
1069
|
function renderValue(value, unit) {
|
|
721
1070
|
const rendered = typeof value === 'string' ? value : JSON.stringify(value);
|
|
@@ -740,12 +1089,13 @@ export function renderChangePrompt(changeSet) {
|
|
|
740
1089
|
return lines.join('\n');
|
|
741
1090
|
}
|
|
742
1091
|
for (const [index, change] of approved.entries()) {
|
|
743
|
-
lines.push(`${index + 1}. ${change.target.label} — ${change.property}`, ` - Change: ${renderValue(change.before, change.unit)} → ${renderValue(change.after, change.unit)}`, ` - Scope: ${change.scope}; breakpoint=${change.context.breakpoint}; theme=${change.context.theme}; state=${change.context.state}`, ` - Target: ${change.target.source ? `${change.target.source.file}${change.target.source.line ? `:${change.target.source.line}` : ''}` : JSON.stringify(change.target.locator)}`, ` - Evidence: ${change.confidence}; ${[...new Set([...change.target.evidence, ...change.evidence])].join('; ') || 'none recorded'}`);
|
|
1092
|
+
lines.push(`${index + 1}. ${change.target.label} — ${change.property}`, ` - Change: ${renderValue(change.before, change.unit)} → ${renderValue(change.after, change.unit)}`, ` - Scope: ${change.scope}; breakpoint=${change.context.breakpoint}; theme=${change.context.theme}; state=${change.context.state}`, ` - Affected contexts: breakpoints=${change.contextSet.breakpoints.join(', ')}; themes=${change.contextSet.themes.join(', ')}; states=${change.contextSet.states.join(', ')}`, ` - Target: ${change.target.source ? `${change.target.source.file}${change.target.source.line ? `:${change.target.source.line}` : ''}` : JSON.stringify(change.target.locator)}`, ` - Evidence: ${change.confidence}; ${[...new Set([...change.target.evidence, ...change.evidence])].join('; ') || 'none recorded'}`);
|
|
744
1093
|
if (change.token)
|
|
745
1094
|
lines.push(` - Token: ${change.token}`);
|
|
746
1095
|
if (change.stateIds.length)
|
|
747
1096
|
lines.push(` - State set: ${change.stateIds.join(', ')}`);
|
|
748
|
-
const mapping = change.mappingCandidates.find((candidate) => candidate.id === change.selectedMappingId)
|
|
1097
|
+
const mapping = change.mappingCandidates.find((candidate) => candidate.id === change.selectedMappingId) ??
|
|
1098
|
+
(change.mappingCandidates.length === 1 ? change.mappingCandidates[0] : undefined);
|
|
749
1099
|
if (mapping) {
|
|
750
1100
|
lines.push(` - Source intent: ${mapping.label}; property=${mapping.property}; confidence=${mapping.confidence}; blast-radius=${mapping.blastRadius}`);
|
|
751
1101
|
}
|