@cat-factory/contracts 0.38.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 (61) hide show
  1. package/dist/agent-presentation.d.ts +2 -2
  2. package/dist/entities.d.ts +205 -0
  3. package/dist/entities.d.ts.map +1 -1
  4. package/dist/entities.js +76 -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/observability.d.ts +15 -3
  15. package/dist/observability.d.ts.map +1 -1
  16. package/dist/observability.js +9 -1
  17. package/dist/observability.js.map +1 -1
  18. package/dist/result-views.d.ts +1 -1
  19. package/dist/result-views.d.ts.map +1 -1
  20. package/dist/result-views.js +1 -0
  21. package/dist/result-views.js.map +1 -1
  22. package/dist/routes/agent-runs.d.ts +62 -0
  23. package/dist/routes/agent-runs.d.ts.map +1 -1
  24. package/dist/routes/execution.d.ts +252 -0
  25. package/dist/routes/execution.d.ts.map +1 -1
  26. package/dist/routes/human-review.d.ts +31 -0
  27. package/dist/routes/human-review.d.ts.map +1 -1
  28. package/dist/routes/human-test.d.ts +155 -0
  29. package/dist/routes/human-test.d.ts.map +1 -1
  30. package/dist/routes/index.d.ts +1 -0
  31. package/dist/routes/index.d.ts.map +1 -1
  32. package/dist/routes/index.js +1 -0
  33. package/dist/routes/index.js.map +1 -1
  34. package/dist/routes/models.d.ts +4 -0
  35. package/dist/routes/models.d.ts.map +1 -1
  36. package/dist/routes/notifications.d.ts +3 -3
  37. package/dist/routes/slack.d.ts +3 -3
  38. package/dist/routes/visual-confirm.d.ts +956 -0
  39. package/dist/routes/visual-confirm.d.ts.map +1 -0
  40. package/dist/routes/visual-confirm.js +34 -0
  41. package/dist/routes/visual-confirm.js.map +1 -0
  42. package/dist/routes/workspace-settings.d.ts +3 -0
  43. package/dist/routes/workspace-settings.d.ts.map +1 -1
  44. package/dist/routes/workspaces.d.ts +68 -4
  45. package/dist/routes/workspaces.d.ts.map +1 -1
  46. package/dist/slack.d.ts +2 -2
  47. package/dist/snapshot.d.ts +34 -2
  48. package/dist/snapshot.d.ts.map +1 -1
  49. package/dist/testing.d.ts +38 -0
  50. package/dist/testing.d.ts.map +1 -1
  51. package/dist/testing.js +26 -0
  52. package/dist/testing.js.map +1 -1
  53. package/dist/visual-confirm.d.ts +8 -0
  54. package/dist/visual-confirm.d.ts.map +1 -0
  55. package/dist/visual-confirm.js +11 -0
  56. package/dist/visual-confirm.js.map +1 -0
  57. package/dist/workspace-settings.d.ts +7 -0
  58. package/dist/workspace-settings.d.ts.map +1 -1
  59. package/dist/workspace-settings.js +7 -0
  60. package/dist/workspace-settings.js.map +1 -1
  61. 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"}
@@ -188,6 +188,7 @@ export declare const createWorkspaceContract: {
188
188
  readonly metrics: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
189
189
  readonly calls: v.NumberSchema<undefined>;
190
190
  readonly promptTokens: v.NumberSchema<undefined>;
191
+ readonly cachedPromptTokens: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
191
192
  readonly completionTokens: v.NumberSchema<undefined>;
192
193
  readonly peakCompletionTokens: v.NumberSchema<undefined>;
193
194
  readonly maxOutputTokens: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
@@ -254,6 +255,14 @@ export declare const createWorkspaceContract: {
254
255
  readonly severity: v.PicklistSchema<["low", "medium", "high", "critical"], undefined>;
255
256
  }, undefined>, undefined>;
256
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>;
257
266
  }, undefined>, undefined>, undefined>;
258
267
  }, undefined>, undefined>, undefined>;
259
268
  readonly humanTest: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
@@ -281,6 +290,28 @@ export declare const createWorkspaceContract: {
281
290
  readonly findings: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
282
291
  }, undefined>, undefined>, undefined>;
283
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>;
284
315
  readonly environment: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
285
316
  readonly id: v.StringSchema<undefined>;
286
317
  readonly url: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -478,7 +509,7 @@ export declare const createWorkspaceContract: {
478
509
  }, undefined>, undefined>;
479
510
  readonly notifications: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
480
511
  readonly id: v.StringSchema<undefined>;
481
- 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>;
482
513
  readonly status: v.PicklistSchema<["open", "acted", "dismissed"], undefined>;
483
514
  readonly severity: v.OptionalSchema<v.PicklistSchema<["normal", "urgent"], undefined>, undefined>;
484
515
  readonly blockId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -612,6 +643,7 @@ export declare const createWorkspaceContract: {
612
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>;
613
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>;
614
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>]>;
615
647
  readonly kaizenEnabled: v.BooleanSchema<undefined>;
616
648
  readonly delegateAgentsToRunnerPool: v.BooleanSchema<undefined>;
617
649
  readonly delegateTestEnvToProvider: v.BooleanSchema<undefined>;
@@ -626,7 +658,7 @@ export declare const createWorkspaceContract: {
626
658
  readonly color: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 40, undefined>]>;
627
659
  readonly description: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 500, undefined>]>;
628
660
  readonly category: v.OptionalSchema<v.PicklistSchema<["review", "design", "build", "test", "docs", "gates"], undefined>, undefined>;
629
- 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>;
630
662
  }, undefined>;
631
663
  readonly container: v.BooleanSchema<undefined>;
632
664
  }, undefined>, undefined>, undefined>;
@@ -786,6 +818,7 @@ export declare const getWorkspaceContract: {
786
818
  readonly metrics: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
787
819
  readonly calls: v.NumberSchema<undefined>;
788
820
  readonly promptTokens: v.NumberSchema<undefined>;
821
+ readonly cachedPromptTokens: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
789
822
  readonly completionTokens: v.NumberSchema<undefined>;
790
823
  readonly peakCompletionTokens: v.NumberSchema<undefined>;
791
824
  readonly maxOutputTokens: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
@@ -852,6 +885,14 @@ export declare const getWorkspaceContract: {
852
885
  readonly severity: v.PicklistSchema<["low", "medium", "high", "critical"], undefined>;
853
886
  }, undefined>, undefined>;
854
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>;
855
896
  }, undefined>, undefined>, undefined>;
856
897
  }, undefined>, undefined>, undefined>;
857
898
  readonly humanTest: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
@@ -879,6 +920,28 @@ export declare const getWorkspaceContract: {
879
920
  readonly findings: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
880
921
  }, undefined>, undefined>, undefined>;
881
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>;
882
945
  readonly environment: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
883
946
  readonly id: v.StringSchema<undefined>;
884
947
  readonly url: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -1076,7 +1139,7 @@ export declare const getWorkspaceContract: {
1076
1139
  }, undefined>, undefined>;
1077
1140
  readonly notifications: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1078
1141
  readonly id: v.StringSchema<undefined>;
1079
- 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>;
1080
1143
  readonly status: v.PicklistSchema<["open", "acted", "dismissed"], undefined>;
1081
1144
  readonly severity: v.OptionalSchema<v.PicklistSchema<["normal", "urgent"], undefined>, undefined>;
1082
1145
  readonly blockId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -1210,6 +1273,7 @@ export declare const getWorkspaceContract: {
1210
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>;
1211
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>;
1212
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>]>;
1213
1277
  readonly kaizenEnabled: v.BooleanSchema<undefined>;
1214
1278
  readonly delegateAgentsToRunnerPool: v.BooleanSchema<undefined>;
1215
1279
  readonly delegateTestEnvToProvider: v.BooleanSchema<undefined>;
@@ -1224,7 +1288,7 @@ export declare const getWorkspaceContract: {
1224
1288
  readonly color: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 40, undefined>]>;
1225
1289
  readonly description: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 500, undefined>]>;
1226
1290
  readonly category: v.OptionalSchema<v.PicklistSchema<["review", "design", "build", "test", "docs", "gates"], undefined>, undefined>;
1227
- 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>;
1228
1292
  }, undefined>;
1229
1293
  readonly container: v.BooleanSchema<undefined>;
1230
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>]>;
@@ -120,6 +120,7 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
120
120
  readonly metrics: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
121
121
  readonly calls: v.NumberSchema<undefined>;
122
122
  readonly promptTokens: v.NumberSchema<undefined>;
123
+ readonly cachedPromptTokens: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
123
124
  readonly completionTokens: v.NumberSchema<undefined>;
124
125
  readonly peakCompletionTokens: v.NumberSchema<undefined>;
125
126
  readonly maxOutputTokens: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
@@ -186,6 +187,14 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
186
187
  readonly severity: v.PicklistSchema<["low", "medium", "high", "critical"], undefined>;
187
188
  }, undefined>, undefined>;
188
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>;
189
198
  }, undefined>, undefined>, undefined>;
190
199
  }, undefined>, undefined>, undefined>;
191
200
  readonly humanTest: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
@@ -213,6 +222,28 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
213
222
  readonly findings: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
214
223
  }, undefined>, undefined>, undefined>;
215
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>;
216
247
  readonly environment: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
217
248
  readonly id: v.StringSchema<undefined>;
218
249
  readonly url: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -426,7 +457,7 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
426
457
  */
427
458
  readonly notifications: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
428
459
  readonly id: v.StringSchema<undefined>;
429
- 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>;
430
461
  readonly status: v.PicklistSchema<["open", "acted", "dismissed"], undefined>;
431
462
  readonly severity: v.OptionalSchema<v.PicklistSchema<["normal", "urgent"], undefined>, undefined>;
432
463
  readonly blockId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -610,6 +641,7 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
610
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>;
611
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>;
612
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>]>;
613
645
  readonly kaizenEnabled: v.BooleanSchema<undefined>;
614
646
  readonly delegateAgentsToRunnerPool: v.BooleanSchema<undefined>;
615
647
  readonly delegateTestEnvToProvider: v.BooleanSchema<undefined>;
@@ -631,7 +663,7 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
631
663
  readonly color: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 40, undefined>]>;
632
664
  readonly description: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 500, undefined>]>;
633
665
  readonly category: v.OptionalSchema<v.PicklistSchema<["review", "design", "build", "test", "docs", "gates"], undefined>, undefined>;
634
- 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>;
635
667
  }, undefined>;
636
668
  readonly container: v.BooleanSchema<undefined>;
637
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.38.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",