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.
@@ -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 const PROTOCOL_VERSION = '1.2.0';
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
- export const projectDesignGraphSchema = z.object({
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.object({
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
- export const designChangeSchema = z.object({
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: z.object({
325
- breakpoint: z.string().default('current'),
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 changeSetSchema = z.object({
336
- protocolVersion: z.literal(PROTOCOL_VERSION),
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
- export const designBranchSchema = z.object({
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.object({
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 applyRunSchema = z.object({
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 context = change.context;
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
- context.breakpoint,
694
- context.theme,
695
- context.state,
696
- [...change.stateIds].sort().join(','),
697
- ].join('::');
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 order = [];
701
- const byKey = new Map();
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
- const existing = byKey.get(key);
706
- if (!existing) {
707
- order.push(key);
708
- byKey.set(key, parsed);
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
- byKey.set(key, {
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 order.map((key) => byKey.get(key));
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
  }