@cat-factory/contracts 0.39.0 → 0.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/agent-presentation.d.ts +2 -2
  2. package/dist/entities.d.ts +163 -0
  3. package/dist/entities.d.ts.map +1 -1
  4. package/dist/entities.js +59 -0
  5. package/dist/entities.js.map +1 -1
  6. package/dist/index.d.ts +1 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +1 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/notifications.d.ts +2 -2
  11. package/dist/notifications.d.ts.map +1 -1
  12. package/dist/notifications.js +1 -0
  13. package/dist/notifications.js.map +1 -1
  14. package/dist/result-views.d.ts +1 -1
  15. package/dist/result-views.d.ts.map +1 -1
  16. package/dist/result-views.js +1 -0
  17. package/dist/result-views.js.map +1 -1
  18. package/dist/routes/agent-runs.d.ts +60 -0
  19. package/dist/routes/agent-runs.d.ts.map +1 -1
  20. package/dist/routes/execution.d.ts +240 -0
  21. package/dist/routes/execution.d.ts.map +1 -1
  22. package/dist/routes/human-review.d.ts +30 -0
  23. package/dist/routes/human-review.d.ts.map +1 -1
  24. package/dist/routes/human-test.d.ts +150 -0
  25. package/dist/routes/human-test.d.ts.map +1 -1
  26. package/dist/routes/index.d.ts +1 -0
  27. package/dist/routes/index.d.ts.map +1 -1
  28. package/dist/routes/index.js +1 -0
  29. package/dist/routes/index.js.map +1 -1
  30. package/dist/routes/notifications.d.ts +3 -3
  31. package/dist/routes/slack.d.ts +3 -3
  32. package/dist/routes/visual-confirm.d.ts +956 -0
  33. package/dist/routes/visual-confirm.d.ts.map +1 -0
  34. package/dist/routes/visual-confirm.js +34 -0
  35. package/dist/routes/visual-confirm.js.map +1 -0
  36. package/dist/routes/workspace-settings.d.ts +3 -0
  37. package/dist/routes/workspace-settings.d.ts.map +1 -1
  38. package/dist/routes/workspaces.d.ts +66 -4
  39. package/dist/routes/workspaces.d.ts.map +1 -1
  40. package/dist/slack.d.ts +2 -2
  41. package/dist/snapshot.d.ts +33 -2
  42. package/dist/snapshot.d.ts.map +1 -1
  43. package/dist/testing.d.ts +38 -0
  44. package/dist/testing.d.ts.map +1 -1
  45. package/dist/testing.js +26 -0
  46. package/dist/testing.js.map +1 -1
  47. package/dist/visual-confirm.d.ts +8 -0
  48. package/dist/visual-confirm.d.ts.map +1 -0
  49. package/dist/visual-confirm.js +11 -0
  50. package/dist/visual-confirm.js.map +1 -0
  51. package/dist/workspace-settings.d.ts +7 -0
  52. package/dist/workspace-settings.d.ts.map +1 -1
  53. package/dist/workspace-settings.js +7 -0
  54. package/dist/workspace-settings.js.map +1 -1
  55. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visual-confirm.d.ts","sourceRoot":"","sources":["../../src/routes/visual-confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqC,MAAM,yBAAyB,CAAA;AAC3F,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAc5B,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMvC,CAAA;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM1C,CAAA;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMzC,CAAA"}
@@ -0,0 +1,34 @@
1
+ import { ContractNoBody, defineApiContract, withObjectKeys } from '@toad-contracts/valibot';
2
+ import * as v from 'valibot';
3
+ import { executionInstanceSchema } from '../entities.js';
4
+ import { requestVisualConfirmFixSchema } from '../visual-confirm.js';
5
+ import { errorResponses } from './_shared.js';
6
+ // ---------------------------------------------------------------------------
7
+ // Visual-confirmation gate route contracts. Mounted under `/workspaces/:workspaceId`,
8
+ // so the paths here are relative to that prefix. Each route drives the block's parked
9
+ // `visual-confirmation` step and returns the updated execution instance. See
10
+ // VisualConfirmationController in @cat-factory/server.
11
+ // ---------------------------------------------------------------------------
12
+ const blockIdParams = withObjectKeys(v.object({ blockId: v.string() }));
13
+ export const approveVisualConfirmContract = defineApiContract({
14
+ method: 'post',
15
+ requestPathParamsSchema: blockIdParams,
16
+ pathResolver: ({ blockId }) => `/blocks/${blockId}/visual-confirmation/approve`,
17
+ requestBodySchema: ContractNoBody,
18
+ responsesByStatusCode: { 200: executionInstanceSchema, ...errorResponses },
19
+ });
20
+ export const requestVisualConfirmFixContract = defineApiContract({
21
+ method: 'post',
22
+ requestPathParamsSchema: blockIdParams,
23
+ pathResolver: ({ blockId }) => `/blocks/${blockId}/visual-confirmation/request-fix`,
24
+ requestBodySchema: requestVisualConfirmFixSchema,
25
+ responsesByStatusCode: { 200: executionInstanceSchema, ...errorResponses },
26
+ });
27
+ export const recaptureVisualConfirmContract = defineApiContract({
28
+ method: 'post',
29
+ requestPathParamsSchema: blockIdParams,
30
+ pathResolver: ({ blockId }) => `/blocks/${blockId}/visual-confirmation/recapture`,
31
+ requestBodySchema: ContractNoBody,
32
+ responsesByStatusCode: { 200: executionInstanceSchema, ...errorResponses },
33
+ });
34
+ //# sourceMappingURL=visual-confirm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visual-confirm.js","sourceRoot":"","sources":["../../src/routes/visual-confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC3F,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,8EAA8E;AAC9E,sFAAsF;AACtF,sFAAsF;AACtF,6EAA6E;AAC7E,uDAAuD;AACvD,8EAA8E;AAE9E,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;AAEvE,MAAM,CAAC,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;IAC5D,MAAM,EAAE,MAAM;IACd,uBAAuB,EAAE,aAAa;IACtC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,WAAW,OAAO,8BAA8B;IAC/E,iBAAiB,EAAE,cAAc;IACjC,qBAAqB,EAAE,EAAE,GAAG,EAAE,uBAAuB,EAAE,GAAG,cAAc,EAAE;CAC3E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,iBAAiB,CAAC;IAC/D,MAAM,EAAE,MAAM;IACd,uBAAuB,EAAE,aAAa;IACtC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,WAAW,OAAO,kCAAkC;IACnF,iBAAiB,EAAE,6BAA6B;IAChD,qBAAqB,EAAE,EAAE,GAAG,EAAE,uBAAuB,EAAE,GAAG,cAAc,EAAE;CAC3E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG,iBAAiB,CAAC;IAC9D,MAAM,EAAE,MAAM;IACd,uBAAuB,EAAE,aAAa;IACtC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,WAAW,OAAO,gCAAgC;IACjF,iBAAiB,EAAE,cAAc;IACjC,qBAAqB,EAAE,EAAE,GAAG,EAAE,uBAAuB,EAAE,GAAG,cAAc,EAAE;CAC3E,CAAC,CAAA"}
@@ -30,6 +30,7 @@ export declare const getWorkspaceSettingsContract: {
30
30
  readonly taskLimitShared: import("valibot").NullableSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>, import("valibot").MaxValueAction<number, 1000, undefined>]>, undefined>;
31
31
  readonly taskLimitPerType: import("valibot").NullableSchema<import("valibot").RecordSchema<import("valibot").PicklistSchema<["feature", "bug", "document", "spike"], undefined>, import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>, import("valibot").MaxValueAction<number, 1000, undefined>]>, undefined>, undefined>;
32
32
  readonly storeAgentContext: import("valibot").BooleanSchema<undefined>;
33
+ readonly artifactRetentionDays: import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>, import("valibot").MaxValueAction<number, 3650, undefined>]>;
33
34
  readonly kaizenEnabled: import("valibot").BooleanSchema<undefined>;
34
35
  readonly delegateAgentsToRunnerPool: import("valibot").BooleanSchema<undefined>;
35
36
  readonly delegateTestEnvToProvider: import("valibot").BooleanSchema<undefined>;
@@ -47,6 +48,7 @@ export declare const updateWorkspaceSettingsContract: {
47
48
  readonly taskLimitShared: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>, import("valibot").MaxValueAction<number, 1000, undefined>]>, undefined>, undefined>;
48
49
  readonly taskLimitPerType: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").RecordSchema<import("valibot").PicklistSchema<["feature", "bug", "document", "spike"], undefined>, import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>, import("valibot").MaxValueAction<number, 1000, undefined>]>, undefined>, undefined>, undefined>;
49
50
  readonly storeAgentContext: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, undefined>;
51
+ readonly artifactRetentionDays: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>, import("valibot").MaxValueAction<number, 3650, undefined>]>, undefined>;
50
52
  readonly kaizenEnabled: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, undefined>;
51
53
  readonly delegateAgentsToRunnerPool: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, undefined>;
52
54
  readonly delegateTestEnvToProvider: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, undefined>;
@@ -82,6 +84,7 @@ export declare const updateWorkspaceSettingsContract: {
82
84
  readonly taskLimitShared: import("valibot").NullableSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>, import("valibot").MaxValueAction<number, 1000, undefined>]>, undefined>;
83
85
  readonly taskLimitPerType: import("valibot").NullableSchema<import("valibot").RecordSchema<import("valibot").PicklistSchema<["feature", "bug", "document", "spike"], undefined>, import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>, import("valibot").MaxValueAction<number, 1000, undefined>]>, undefined>, undefined>;
84
86
  readonly storeAgentContext: import("valibot").BooleanSchema<undefined>;
87
+ readonly artifactRetentionDays: import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").IntegerAction<number, undefined>, import("valibot").MinValueAction<number, 1, undefined>, import("valibot").MaxValueAction<number, 3650, undefined>]>;
85
88
  readonly kaizenEnabled: import("valibot").BooleanSchema<undefined>;
86
89
  readonly delegateAgentsToRunnerPool: import("valibot").BooleanSchema<undefined>;
87
90
  readonly delegateTestEnvToProvider: import("valibot").BooleanSchema<undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-settings.d.ts","sourceRoot":"","sources":["../../src/routes/workspace-settings.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIvC,CAAA;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK1C,CAAA"}
1
+ {"version":3,"file":"workspace-settings.d.ts","sourceRoot":"","sources":["../../src/routes/workspace-settings.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIvC,CAAA;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK1C,CAAA"}
@@ -255,6 +255,14 @@ export declare const createWorkspaceContract: {
255
255
  readonly severity: v.PicklistSchema<["low", "medium", "high", "critical"], undefined>;
256
256
  }, undefined>, undefined>;
257
257
  readonly environment: v.OptionalSchema<v.PicklistSchema<["local", "ephemeral"], undefined>, undefined>;
258
+ readonly screenshots: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
259
+ readonly view: v.StringSchema<undefined>;
260
+ readonly artifactId: v.StringSchema<undefined>;
261
+ readonly hash: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
262
+ readonly width: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
263
+ readonly height: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
264
+ readonly referenceArtifactId: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
265
+ }, undefined>, undefined>, undefined>;
258
266
  }, undefined>, undefined>, undefined>;
259
267
  }, undefined>, undefined>, undefined>;
260
268
  readonly humanTest: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
@@ -282,6 +290,28 @@ export declare const createWorkspaceContract: {
282
290
  readonly findings: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
283
291
  }, undefined>, undefined>, undefined>;
284
292
  }, undefined>, undefined>, undefined>;
293
+ readonly visualConfirm: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
294
+ readonly phase: v.PicklistSchema<["awaiting_human", "fixing", "approved"], undefined>;
295
+ readonly pairs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
296
+ readonly view: v.StringSchema<undefined>;
297
+ readonly actualArtifactId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
298
+ readonly referenceArtifactId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
299
+ }, undefined>, undefined>, undefined>;
300
+ readonly degradedReason: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
301
+ readonly attempts: v.NumberSchema<undefined>;
302
+ readonly maxAttempts: v.NumberSchema<undefined>;
303
+ readonly rounds: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
304
+ readonly findings: v.StringSchema<undefined>;
305
+ readonly helperKind: v.StringSchema<undefined>;
306
+ readonly jobId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
307
+ readonly outcome: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["completed", "failed"], undefined>, undefined>, undefined>;
308
+ readonly at: v.NumberSchema<undefined>;
309
+ }, undefined>, undefined>, undefined>;
310
+ readonly pendingAction: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
311
+ readonly type: v.PicklistSchema<["approve", "request-fix", "recapture"], undefined>;
312
+ readonly findings: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
313
+ }, undefined>, undefined>, undefined>;
314
+ }, undefined>, undefined>, undefined>;
285
315
  readonly environment: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
286
316
  readonly id: v.StringSchema<undefined>;
287
317
  readonly url: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -479,7 +509,7 @@ export declare const createWorkspaceContract: {
479
509
  }, undefined>, undefined>;
480
510
  readonly notifications: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
481
511
  readonly id: v.StringSchema<undefined>;
482
- readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "human_review", "followup_pending"], undefined>;
512
+ readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending"], undefined>;
483
513
  readonly status: v.PicklistSchema<["open", "acted", "dismissed"], undefined>;
484
514
  readonly severity: v.OptionalSchema<v.PicklistSchema<["normal", "urgent"], undefined>, undefined>;
485
515
  readonly blockId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -613,6 +643,7 @@ export declare const createWorkspaceContract: {
613
643
  readonly taskLimitShared: v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>;
614
644
  readonly taskLimitPerType: v.NullableSchema<v.RecordSchema<v.PicklistSchema<["feature", "bug", "document", "spike"], undefined>, v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>, undefined>;
615
645
  readonly storeAgentContext: v.BooleanSchema<undefined>;
646
+ readonly artifactRetentionDays: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 3650, undefined>]>;
616
647
  readonly kaizenEnabled: v.BooleanSchema<undefined>;
617
648
  readonly delegateAgentsToRunnerPool: v.BooleanSchema<undefined>;
618
649
  readonly delegateTestEnvToProvider: v.BooleanSchema<undefined>;
@@ -627,7 +658,7 @@ export declare const createWorkspaceContract: {
627
658
  readonly color: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 40, undefined>]>;
628
659
  readonly description: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 500, undefined>]>;
629
660
  readonly category: v.OptionalSchema<v.PicklistSchema<["review", "design", "build", "test", "docs", "gates"], undefined>, undefined>;
630
- readonly resultView: v.OptionalSchema<v.PicklistSchema<readonly ["requirements-review", "clarity-review", "brainstorm", "tester", "human-test", "gate", "consensus-session", "generic-structured", "service-spec", "follow-ups"], undefined>, undefined>;
661
+ readonly resultView: v.OptionalSchema<v.PicklistSchema<readonly ["requirements-review", "clarity-review", "brainstorm", "tester", "human-test", "visual-confirm", "gate", "consensus-session", "generic-structured", "service-spec", "follow-ups"], undefined>, undefined>;
631
662
  }, undefined>;
632
663
  readonly container: v.BooleanSchema<undefined>;
633
664
  }, undefined>, undefined>, undefined>;
@@ -854,6 +885,14 @@ export declare const getWorkspaceContract: {
854
885
  readonly severity: v.PicklistSchema<["low", "medium", "high", "critical"], undefined>;
855
886
  }, undefined>, undefined>;
856
887
  readonly environment: v.OptionalSchema<v.PicklistSchema<["local", "ephemeral"], undefined>, undefined>;
888
+ readonly screenshots: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
889
+ readonly view: v.StringSchema<undefined>;
890
+ readonly artifactId: v.StringSchema<undefined>;
891
+ readonly hash: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
892
+ readonly width: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
893
+ readonly height: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
894
+ readonly referenceArtifactId: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
895
+ }, undefined>, undefined>, undefined>;
857
896
  }, undefined>, undefined>, undefined>;
858
897
  }, undefined>, undefined>, undefined>;
859
898
  readonly humanTest: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
@@ -881,6 +920,28 @@ export declare const getWorkspaceContract: {
881
920
  readonly findings: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
882
921
  }, undefined>, undefined>, undefined>;
883
922
  }, undefined>, undefined>, undefined>;
923
+ readonly visualConfirm: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
924
+ readonly phase: v.PicklistSchema<["awaiting_human", "fixing", "approved"], undefined>;
925
+ readonly pairs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
926
+ readonly view: v.StringSchema<undefined>;
927
+ readonly actualArtifactId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
928
+ readonly referenceArtifactId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
929
+ }, undefined>, undefined>, undefined>;
930
+ readonly degradedReason: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
931
+ readonly attempts: v.NumberSchema<undefined>;
932
+ readonly maxAttempts: v.NumberSchema<undefined>;
933
+ readonly rounds: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
934
+ readonly findings: v.StringSchema<undefined>;
935
+ readonly helperKind: v.StringSchema<undefined>;
936
+ readonly jobId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
937
+ readonly outcome: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["completed", "failed"], undefined>, undefined>, undefined>;
938
+ readonly at: v.NumberSchema<undefined>;
939
+ }, undefined>, undefined>, undefined>;
940
+ readonly pendingAction: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
941
+ readonly type: v.PicklistSchema<["approve", "request-fix", "recapture"], undefined>;
942
+ readonly findings: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
943
+ }, undefined>, undefined>, undefined>;
944
+ }, undefined>, undefined>, undefined>;
884
945
  readonly environment: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
885
946
  readonly id: v.StringSchema<undefined>;
886
947
  readonly url: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -1078,7 +1139,7 @@ export declare const getWorkspaceContract: {
1078
1139
  }, undefined>, undefined>;
1079
1140
  readonly notifications: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1080
1141
  readonly id: v.StringSchema<undefined>;
1081
- readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "human_review", "followup_pending"], undefined>;
1142
+ readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending"], undefined>;
1082
1143
  readonly status: v.PicklistSchema<["open", "acted", "dismissed"], undefined>;
1083
1144
  readonly severity: v.OptionalSchema<v.PicklistSchema<["normal", "urgent"], undefined>, undefined>;
1084
1145
  readonly blockId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -1212,6 +1273,7 @@ export declare const getWorkspaceContract: {
1212
1273
  readonly taskLimitShared: v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>;
1213
1274
  readonly taskLimitPerType: v.NullableSchema<v.RecordSchema<v.PicklistSchema<["feature", "bug", "document", "spike"], undefined>, v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>, undefined>;
1214
1275
  readonly storeAgentContext: v.BooleanSchema<undefined>;
1276
+ readonly artifactRetentionDays: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 3650, undefined>]>;
1215
1277
  readonly kaizenEnabled: v.BooleanSchema<undefined>;
1216
1278
  readonly delegateAgentsToRunnerPool: v.BooleanSchema<undefined>;
1217
1279
  readonly delegateTestEnvToProvider: v.BooleanSchema<undefined>;
@@ -1226,7 +1288,7 @@ export declare const getWorkspaceContract: {
1226
1288
  readonly color: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 40, undefined>]>;
1227
1289
  readonly description: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 500, undefined>]>;
1228
1290
  readonly category: v.OptionalSchema<v.PicklistSchema<["review", "design", "build", "test", "docs", "gates"], undefined>, undefined>;
1229
- readonly resultView: v.OptionalSchema<v.PicklistSchema<readonly ["requirements-review", "clarity-review", "brainstorm", "tester", "human-test", "gate", "consensus-session", "generic-structured", "service-spec", "follow-ups"], undefined>, undefined>;
1291
+ readonly resultView: v.OptionalSchema<v.PicklistSchema<readonly ["requirements-review", "clarity-review", "brainstorm", "tester", "human-test", "visual-confirm", "gate", "consensus-session", "generic-structured", "service-spec", "follow-ups"], undefined>, undefined>;
1230
1292
  }, undefined>;
1231
1293
  readonly container: v.BooleanSchema<undefined>;
1232
1294
  }, undefined>, undefined>, undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/routes/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAgB5B,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIjC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKlC,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK/B,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMlC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKlC,CAAA"}
1
+ {"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/routes/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAgB5B,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIjC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKlC,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK/B,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMlC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKlC,CAAA"}
package/dist/slack.d.ts CHANGED
@@ -30,7 +30,7 @@ export type SlackRoute = v.InferOutput<typeof slackRouteSchema>;
30
30
  * type absent from `routes`, disabled, or with an empty channel does not post.
31
31
  */
32
32
  export declare const slackNotificationSettingsSchema: v.ObjectSchema<{
33
- readonly routes: v.RecordSchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "human_review", "followup_pending"], undefined>, v.ObjectSchema<{
33
+ readonly routes: v.RecordSchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending"], undefined>, v.ObjectSchema<{
34
34
  readonly enabled: v.BooleanSchema<undefined>;
35
35
  /** A channel id (`C0123…`) or name (`#general`); empty = unrouted. */
36
36
  readonly channel: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 200, undefined>]>;
@@ -83,7 +83,7 @@ export declare const connectSlackByTokenSchema: v.ObjectSchema<{
83
83
  export type ConnectSlackByTokenInput = v.InferOutput<typeof connectSlackByTokenSchema>;
84
84
  /** Replace a workspace's Slack notification routing. */
85
85
  export declare const updateSlackSettingsSchema: v.ObjectSchema<{
86
- readonly routes: v.RecordSchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "human_review", "followup_pending"], undefined>, v.ObjectSchema<{
86
+ readonly routes: v.RecordSchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending"], undefined>, v.ObjectSchema<{
87
87
  readonly enabled: v.BooleanSchema<undefined>;
88
88
  /** A channel id (`C0123…`) or name (`#general`); empty = unrouted. */
89
89
  readonly channel: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 200, undefined>]>;
@@ -187,6 +187,14 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
187
187
  readonly severity: v.PicklistSchema<["low", "medium", "high", "critical"], undefined>;
188
188
  }, undefined>, undefined>;
189
189
  readonly environment: v.OptionalSchema<v.PicklistSchema<["local", "ephemeral"], undefined>, undefined>;
190
+ readonly screenshots: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
191
+ readonly view: v.StringSchema<undefined>;
192
+ readonly artifactId: v.StringSchema<undefined>;
193
+ readonly hash: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
194
+ readonly width: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
195
+ readonly height: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
196
+ readonly referenceArtifactId: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
197
+ }, undefined>, undefined>, undefined>;
190
198
  }, undefined>, undefined>, undefined>;
191
199
  }, undefined>, undefined>, undefined>;
192
200
  readonly humanTest: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
@@ -214,6 +222,28 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
214
222
  readonly findings: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
215
223
  }, undefined>, undefined>, undefined>;
216
224
  }, undefined>, undefined>, undefined>;
225
+ readonly visualConfirm: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
226
+ readonly phase: v.PicklistSchema<["awaiting_human", "fixing", "approved"], undefined>;
227
+ readonly pairs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
228
+ readonly view: v.StringSchema<undefined>;
229
+ readonly actualArtifactId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
230
+ readonly referenceArtifactId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
231
+ }, undefined>, undefined>, undefined>;
232
+ readonly degradedReason: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
233
+ readonly attempts: v.NumberSchema<undefined>;
234
+ readonly maxAttempts: v.NumberSchema<undefined>;
235
+ readonly rounds: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
236
+ readonly findings: v.StringSchema<undefined>;
237
+ readonly helperKind: v.StringSchema<undefined>;
238
+ readonly jobId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
239
+ readonly outcome: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["completed", "failed"], undefined>, undefined>, undefined>;
240
+ readonly at: v.NumberSchema<undefined>;
241
+ }, undefined>, undefined>, undefined>;
242
+ readonly pendingAction: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
243
+ readonly type: v.PicklistSchema<["approve", "request-fix", "recapture"], undefined>;
244
+ readonly findings: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
245
+ }, undefined>, undefined>, undefined>;
246
+ }, undefined>, undefined>, undefined>;
217
247
  readonly environment: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
218
248
  readonly id: v.StringSchema<undefined>;
219
249
  readonly url: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -427,7 +457,7 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
427
457
  */
428
458
  readonly notifications: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
429
459
  readonly id: v.StringSchema<undefined>;
430
- readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "human_review", "followup_pending"], undefined>;
460
+ readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending"], undefined>;
431
461
  readonly status: v.PicklistSchema<["open", "acted", "dismissed"], undefined>;
432
462
  readonly severity: v.OptionalSchema<v.PicklistSchema<["normal", "urgent"], undefined>, undefined>;
433
463
  readonly blockId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -611,6 +641,7 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
611
641
  readonly taskLimitShared: v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>;
612
642
  readonly taskLimitPerType: v.NullableSchema<v.RecordSchema<v.PicklistSchema<["feature", "bug", "document", "spike"], undefined>, v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>, undefined>;
613
643
  readonly storeAgentContext: v.BooleanSchema<undefined>;
644
+ readonly artifactRetentionDays: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 3650, undefined>]>;
614
645
  readonly kaizenEnabled: v.BooleanSchema<undefined>;
615
646
  readonly delegateAgentsToRunnerPool: v.BooleanSchema<undefined>;
616
647
  readonly delegateTestEnvToProvider: v.BooleanSchema<undefined>;
@@ -632,7 +663,7 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
632
663
  readonly color: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 40, undefined>]>;
633
664
  readonly description: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 500, undefined>]>;
634
665
  readonly category: v.OptionalSchema<v.PicklistSchema<["review", "design", "build", "test", "docs", "gates"], undefined>, undefined>;
635
- readonly resultView: v.OptionalSchema<v.PicklistSchema<readonly ["requirements-review", "clarity-review", "brainstorm", "tester", "human-test", "gate", "consensus-session", "generic-structured", "service-spec", "follow-ups"], undefined>, undefined>;
666
+ readonly resultView: v.OptionalSchema<v.PicklistSchema<readonly ["requirements-review", "clarity-review", "brainstorm", "tester", "human-test", "visual-confirm", "gate", "consensus-session", "generic-structured", "service-spec", "follow-ups"], undefined>, undefined>;
636
667
  }, undefined>;
637
668
  readonly container: v.BooleanSchema<undefined>;
638
669
  }, undefined>, undefined>, undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAyB5B,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKlC;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;OAGG;;;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;OAGG;;;;;;;;;;;;;;;;IAEH;;;;;;OAMG;;;;;;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;IAEH;;;;;;;;OAQG;;;;;IAOH;;;OAGG;;;;IAEH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;IAEH;;;OAGG;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;IAGH;;;;OAIG;;;;;;;;;;;;;IAEH;;;;;;OAMG;;;;;;;;;;;;;IAEH;;;;;;;OAOG;;aAEH,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA"}
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAyB5B,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKlC;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;OAGG;;;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;OAGG;;;;;;;;;;;;;;;;IAEH;;;;;;OAMG;;;;;;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;IAEH;;;;;;;;OAQG;;;;;IAOH;;;OAGG;;;;IAEH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;IAEH;;;OAGG;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;IAGH;;;;OAIG;;;;;;;;;;;;;;IAEH;;;;;;OAMG;;;;;;;;;;;;;IAEH;;;;;;;OAOG;;aAEH,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA"}
package/dist/testing.d.ts CHANGED
@@ -30,6 +30,27 @@ export declare const testOutcomeSchema: v.ObjectSchema<{
30
30
  readonly detail: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
31
31
  }, undefined>;
32
32
  export type TestOutcome = v.InferOutput<typeof testOutcomeSchema>;
33
+ /**
34
+ * One screenshot the UI tester (`tester-ui`) captured of a distinct view while
35
+ * exercising the functionality. The bytes are uploaded to the binary-artifact store
36
+ * during the run (so they never bloat the report JSON); this entry references the
37
+ * stored artifact by id. `referenceArtifactId` links the matching reference design
38
+ * image (when one was supplied) so the visual-confirmation gate can pair actual vs
39
+ * reference by `view`.
40
+ */
41
+ export declare const testScreenshotSchema: v.ObjectSchema<{
42
+ /** Logical view name (pairs with a reference design image of the same view). */
43
+ readonly view: v.StringSchema<undefined>;
44
+ /** The stored artifact id (in the binary-artifact store) for the captured PNG. */
45
+ readonly artifactId: v.StringSchema<undefined>;
46
+ /** Content hash — drives non-redundant capture (one shot per distinct view). */
47
+ readonly hash: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
48
+ readonly width: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
49
+ readonly height: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
50
+ /** The matching reference design image's artifact id, when one was supplied. */
51
+ readonly referenceArtifactId: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
52
+ }, undefined>;
53
+ export type TestScreenshot = v.InferOutput<typeof testScreenshotSchema>;
33
54
  /**
34
55
  * A Tester's structured report. `greenlight` is the gate's verdict: true means the
35
56
  * change is safe to release (no blocking concerns); false routes the run through
@@ -68,6 +89,23 @@ export declare const testReportSchema: v.ObjectSchema<{
68
89
  }, undefined>, undefined>;
69
90
  /** Which environment the suite ran in, echoed back for the UI. */
70
91
  readonly environment: v.OptionalSchema<v.PicklistSchema<["local", "ephemeral"], undefined>, undefined>;
92
+ /**
93
+ * Non-redundant screenshots of the views the UI tester exercised (one per distinct
94
+ * view). Empty/absent for the API tester (`tester-api`), which captures none. Backs
95
+ * the visual-confirmation gate's actual-vs-reference review.
96
+ */
97
+ readonly screenshots: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
98
+ /** Logical view name (pairs with a reference design image of the same view). */
99
+ readonly view: v.StringSchema<undefined>;
100
+ /** The stored artifact id (in the binary-artifact store) for the captured PNG. */
101
+ readonly artifactId: v.StringSchema<undefined>;
102
+ /** Content hash — drives non-redundant capture (one shot per distinct view). */
103
+ readonly hash: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
104
+ readonly width: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
105
+ readonly height: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
106
+ /** The matching reference design image's artifact id, when one was supplied. */
107
+ readonly referenceArtifactId: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
108
+ }, undefined>, undefined>, undefined>;
71
109
  }, undefined>;
72
110
  export type TestReport = v.InferOutput<typeof testReportSchema>;
73
111
  /** Parse-or-throw a test report payload an agent returned (the engine validates it). */
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAgB5B;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,qDAAqC,CAAA;AACvE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE,oDAAoD;AACpD,eAAO,MAAM,yBAAyB,oEAAoD,CAAA;AAC1F,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF,yFAAyF;AACzF,eAAO,MAAM,iBAAiB;IAC5B,oCAAoC;;IAEpC,oDAAoD;;IAEpD,uDAAuD;;aAEvD,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEjE,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB;IAC5B,4DAA4D;;IAE5D,sDAAsD;;IAEtD,uEAAuE;;aAEvE,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEjE;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;IAC3B,sEAAsE;;IAEtE,0DAA0D;;IAE1D,2EAA2E;;IAE3E,wBAAwB;;QAvBxB,4DAA4D;;QAE5D,sDAAsD;;QAEtD,uEAAuE;;;IAqBvE;;;;OAIG;;QAxCH,oCAAoC;;QAEpC,oDAAoD;;QAEpD,uDAAuD;;;IAsCvD,kEAAkE;;aAElE,CAAA;AACF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE/D,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAE1D"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAgB5B;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,qDAAqC,CAAA;AACvE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE,oDAAoD;AACpD,eAAO,MAAM,yBAAyB,oEAAoD,CAAA;AAC1F,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF,yFAAyF;AACzF,eAAO,MAAM,iBAAiB;IAC5B,oCAAoC;;IAEpC,oDAAoD;;IAEpD,uDAAuD;;aAEvD,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEjE,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB;IAC5B,4DAA4D;;IAE5D,sDAAsD;;IAEtD,uEAAuE;;aAEvE,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEjE;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB;IAC/B,gFAAgF;;IAEhF,kFAAkF;;IAElF,gFAAgF;;;;IAIhF,gFAAgF;;aAEhF,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;IAC3B,sEAAsE;;IAEtE,0DAA0D;;IAE1D,2EAA2E;;IAE3E,wBAAwB;;QA7CxB,4DAA4D;;QAE5D,sDAAsD;;QAEtD,uEAAuE;;;IA2CvE;;;;OAIG;;QA9DH,oCAAoC;;QAEpC,oDAAoD;;QAEpD,uDAAuD;;;IA4DvD,kEAAkE;;IAElE;;;;OAIG;;QAzCH,gFAAgF;;QAEhF,kFAAkF;;QAElF,gFAAgF;;;;QAIhF,gFAAgF;;;aAmChF,CAAA;AACF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE/D,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAE1D"}
package/dist/testing.js CHANGED
@@ -39,6 +39,26 @@ export const testOutcomeSchema = v.object({
39
39
  /** Optional detail (the failure message, why it was skipped, etc.). */
40
40
  detail: v.optional(v.string()),
41
41
  });
42
+ /**
43
+ * One screenshot the UI tester (`tester-ui`) captured of a distinct view while
44
+ * exercising the functionality. The bytes are uploaded to the binary-artifact store
45
+ * during the run (so they never bloat the report JSON); this entry references the
46
+ * stored artifact by id. `referenceArtifactId` links the matching reference design
47
+ * image (when one was supplied) so the visual-confirmation gate can pair actual vs
48
+ * reference by `view`.
49
+ */
50
+ export const testScreenshotSchema = v.object({
51
+ /** Logical view name (pairs with a reference design image of the same view). */
52
+ view: v.string(),
53
+ /** The stored artifact id (in the binary-artifact store) for the captured PNG. */
54
+ artifactId: v.string(),
55
+ /** Content hash — drives non-redundant capture (one shot per distinct view). */
56
+ hash: v.optional(v.string()),
57
+ width: v.optional(v.number()),
58
+ height: v.optional(v.number()),
59
+ /** The matching reference design image's artifact id, when one was supplied. */
60
+ referenceArtifactId: v.optional(v.string()),
61
+ });
42
62
  /**
43
63
  * A Tester's structured report. `greenlight` is the gate's verdict: true means the
44
64
  * change is safe to release (no blocking concerns); false routes the run through
@@ -63,6 +83,12 @@ export const testReportSchema = v.object({
63
83
  concerns: v.array(testConcernSchema),
64
84
  /** Which environment the suite ran in, echoed back for the UI. */
65
85
  environment: v.optional(testEnvironmentSchema),
86
+ /**
87
+ * Non-redundant screenshots of the views the UI tester exercised (one per distinct
88
+ * view). Empty/absent for the API tester (`tester-api`), which captures none. Backs
89
+ * the visual-confirmation gate's actual-vs-reference review.
90
+ */
91
+ screenshots: v.optional(v.array(testScreenshotSchema)),
66
92
  });
67
93
  /** Parse-or-throw a test report payload an agent returned (the engine validates it). */
68
94
  export function parseTestReport(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,8EAA8E;AAC9E,iCAAiC;AACjC,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,kFAAkF;AAClF,6EAA6E;AAC7E,2EAA2E;AAC3E,+EAA+E;AAC/E,gFAAgF;AAChF,iFAAiF;AACjF,mDAAmD;AACnD,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;AAGvE,oDAAoD;AACpD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;AAG1F,yFAAyF;AACzF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,oCAAoC;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,oDAAoD;IACpD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,uDAAuD;IACvD,QAAQ,EAAE,yBAAyB;CACpC,CAAC,CAAA;AAGF,8DAA8D;AAC9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,4DAA4D;IAC5D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,sDAAsD;IACtD,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACnD,uEAAuE;IACvE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC/B,CAAC,CAAA;AAGF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,sEAAsE;IACtE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;IACvB,0DAA0D;IAC1D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,2EAA2E;IAC3E,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3B,wBAAwB;IACxB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;IACpC;;;;OAIG;IACH,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;IACpC,kEAAkE;IAClE,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;CAC/C,CAAC,CAAA;AAGF,wFAAwF;AACxF,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;AACzC,CAAC"}
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import * as v from 'valibot';
2
+ /** Body for "the human reviewed the screenshots and asked for a fix" → dispatches the `fixer`. */
3
+ export declare const requestVisualConfirmFixSchema: v.ObjectSchema<{
4
+ /** The human's findings: what looks wrong in the UI and what the fixer should change. */
5
+ readonly findings: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6
+ }, undefined>;
7
+ export type RequestVisualConfirmFixInput = v.InferOutput<typeof requestVisualConfirmFixSchema>;
8
+ //# sourceMappingURL=visual-confirm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visual-confirm.d.ts","sourceRoot":"","sources":["../src/visual-confirm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAO5B,kGAAkG;AAClG,eAAO,MAAM,6BAA6B;IACxC,yFAAyF;;aAEzF,CAAA;AACF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,6BAA6B,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ import * as v from 'valibot';
2
+ // Wire contracts for the visual-confirmation gate's run-driving actions. The gate gathers the
3
+ // UI tester's screenshots + the uploaded reference designs, parks for a human to review them,
4
+ // and then drives one of a small set of actions: approve (advance), request a fix from findings
5
+ // (dispatches the Tester's `fixer`), or recapture (refresh the pairs). Only `request-fix` has a body.
6
+ /** Body for "the human reviewed the screenshots and asked for a fix" → dispatches the `fixer`. */
7
+ export const requestVisualConfirmFixSchema = v.object({
8
+ /** The human's findings: what looks wrong in the UI and what the fixer should change. */
9
+ findings: v.pipe(v.string(), v.minLength(1)),
10
+ });
11
+ //# sourceMappingURL=visual-confirm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visual-confirm.js","sourceRoot":"","sources":["../src/visual-confirm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,8FAA8F;AAC9F,8FAA8F;AAC9F,gGAAgG;AAChG,sGAAsG;AAEtG,kGAAkG;AAClG,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,yFAAyF;IACzF,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAC7C,CAAC,CAAA"}
@@ -32,6 +32,12 @@ export declare const workspaceSettingsSchema: v.ObjectSchema<{
32
32
  * suppressed when the deployment disables prompt recording (`LLM_RECORD_PROMPTS`).
33
33
  */
34
34
  readonly storeAgentContext: v.BooleanSchema<undefined>;
35
+ /**
36
+ * How many days captured UI screenshots + uploaded reference design images (the
37
+ * binary artifacts backing the visual-confirmation gate) are retained before the
38
+ * cleanup sweep deletes them — bytes and metadata. Default 14. Bounded 1–3650.
39
+ */
40
+ readonly artifactRetentionDays: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 3650, undefined>]>;
35
41
  /**
36
42
  * Whether the Kaizen agent grades agent steps after each run completes and
37
43
  * recommends prompt/model improvements. On by default. When off, no gradings are
@@ -77,6 +83,7 @@ export declare const updateWorkspaceSettingsSchema: v.ObjectSchema<{
77
83
  readonly taskLimitShared: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>, undefined>;
78
84
  readonly taskLimitPerType: v.OptionalSchema<v.NullableSchema<v.RecordSchema<v.PicklistSchema<["feature", "bug", "document", "spike"], undefined>, v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>, undefined>, undefined>;
79
85
  readonly storeAgentContext: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
86
+ readonly artifactRetentionDays: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 3650, undefined>]>, undefined>;
80
87
  readonly kaizenEnabled: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
81
88
  readonly delegateAgentsToRunnerPool: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
82
89
  readonly delegateTestEnvToProvider: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-settings.d.ts","sourceRoot":"","sources":["../src/workspace-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAW5B;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,4DAA4C,CAAA;AAC5E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAIrE,6FAA6F;AAC7F,eAAO,MAAM,sBAAsB,gRAA8C,CAAA;AACjF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAoB3E,sCAAsC;AACtC,eAAO,MAAM,uBAAuB;IAClC;;;OAGG;;IAEH,kEAAkE;;IAElE,8EAA8E;;IAE9E,mFAAmF;;IAEnF;;;;;;;OAOG;;IAEH;;;;OAIG;;IAEH;;;;;;OAMG;;IAEH;;;;;;OAMG;;IAEH,6EAA6E;;IAE7E;;;;;;;;;;OAUG;;aAEH,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E,mFAAmF;AACnF,eAAO,MAAM,6BAA6B;;;;;;;;;;;aAaxC,CAAA;AACF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,6BAA6B,CAAC,CAAA"}
1
+ {"version":3,"file":"workspace-settings.d.ts","sourceRoot":"","sources":["../src/workspace-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAW5B;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,4DAA4C,CAAA;AAC5E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAIrE,6FAA6F;AAC7F,eAAO,MAAM,sBAAsB,gRAA8C,CAAA;AACjF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAoB3E,sCAAsC;AACtC,eAAO,MAAM,uBAAuB;IAClC;;;OAGG;;IAEH,kEAAkE;;IAElE,8EAA8E;;IAE9E,mFAAmF;;IAEnF;;;;;;;OAOG;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;IAEH;;;;;;OAMG;;IAEH;;;;;;OAMG;;IAEH,6EAA6E;;IAE7E;;;;;;;;;;OAUG;;aAEH,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E,mFAAmF;AACnF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;aAgBxC,CAAA;AACF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,6BAA6B,CAAC,CAAA"}
@@ -49,6 +49,12 @@ export const workspaceSettingsSchema = v.object({
49
49
  * suppressed when the deployment disables prompt recording (`LLM_RECORD_PROMPTS`).
50
50
  */
51
51
  storeAgentContext: v.boolean(),
52
+ /**
53
+ * How many days captured UI screenshots + uploaded reference design images (the
54
+ * binary artifacts backing the visual-confirmation gate) are retained before the
55
+ * cleanup sweep deletes them — bytes and metadata. Default 14. Bounded 1–3650.
56
+ */
57
+ artifactRetentionDays: v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(3650)),
52
58
  /**
53
59
  * Whether the Kaizen agent grades agent steps after each run completes and
54
60
  * recommends prompt/model improvements. On by default. When off, no gradings are
@@ -93,6 +99,7 @@ export const updateWorkspaceSettingsSchema = v.object({
93
99
  taskLimitShared: v.optional(v.nullable(limitSchema)),
94
100
  taskLimitPerType: v.optional(v.nullable(taskLimitPerTypeSchema)),
95
101
  storeAgentContext: v.optional(v.boolean()),
102
+ artifactRetentionDays: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(3650))),
96
103
  kaizenEnabled: v.optional(v.boolean()),
97
104
  delegateAgentsToRunnerPool: v.optional(v.boolean()),
98
105
  delegateTestEnvToProvider: v.optional(v.boolean()),
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-settings.js","sourceRoot":"","sources":["../src/workspace-settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-settings.js","sourceRoot":"","sources":["../src/workspace-settings.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/contracts",
3
- "version": "0.39.0",
3
+ "version": "0.40.0",
4
4
  "description": "Valibot wire contract shared between the Agent Architecture Board frontend and backend.",
5
5
  "repository": {
6
6
  "type": "git",