@cat-factory/contracts 0.196.0 → 0.198.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 (76) hide show
  1. package/dist/compose-sources.d.ts +85 -0
  2. package/dist/compose-sources.d.ts.map +1 -0
  3. package/dist/compose-sources.js +118 -0
  4. package/dist/compose-sources.js.map +1 -0
  5. package/dist/entities.d.ts +27 -1
  6. package/dist/entities.d.ts.map +1 -1
  7. package/dist/environment-analyst.d.ts +27 -1
  8. package/dist/environment-analyst.d.ts.map +1 -1
  9. package/dist/environments.d.ts +54 -2
  10. package/dist/environments.d.ts.map +1 -1
  11. package/dist/events.d.ts +28 -0
  12. package/dist/events.d.ts.map +1 -1
  13. package/dist/execution.d.ts +54 -2
  14. package/dist/execution.d.ts.map +1 -1
  15. package/dist/index.d.ts +1 -0
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +1 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/infra-setup.d.ts +65 -4
  20. package/dist/infra-setup.d.ts.map +1 -1
  21. package/dist/infra-setup.js +80 -1
  22. package/dist/infra-setup.js.map +1 -1
  23. package/dist/notification-webhooks.d.ts +8 -5
  24. package/dist/notification-webhooks.d.ts.map +1 -1
  25. package/dist/notification-webhooks.js +4 -2
  26. package/dist/notification-webhooks.js.map +1 -1
  27. package/dist/notifications.d.ts +30 -6
  28. package/dist/notifications.d.ts.map +1 -1
  29. package/dist/notifications.js +26 -4
  30. package/dist/notifications.js.map +1 -1
  31. package/dist/public-api.d.ts +2 -1
  32. package/dist/public-api.d.ts.map +1 -1
  33. package/dist/requests.d.ts +154 -11
  34. package/dist/requests.d.ts.map +1 -1
  35. package/dist/routes/agent-runs.d.ts +54 -2
  36. package/dist/routes/agent-runs.d.ts.map +1 -1
  37. package/dist/routes/board.d.ts +478 -23
  38. package/dist/routes/board.d.ts.map +1 -1
  39. package/dist/routes/bug-hunt.d.ts +108 -4
  40. package/dist/routes/bug-hunt.d.ts.map +1 -1
  41. package/dist/routes/environments.d.ts +27 -1
  42. package/dist/routes/environments.d.ts.map +1 -1
  43. package/dist/routes/execution.d.ts +270 -10
  44. package/dist/routes/execution.d.ts.map +1 -1
  45. package/dist/routes/human-review.d.ts +27 -1
  46. package/dist/routes/human-review.d.ts.map +1 -1
  47. package/dist/routes/human-test.d.ts +135 -5
  48. package/dist/routes/human-test.d.ts.map +1 -1
  49. package/dist/routes/initiative.d.ts +27 -1
  50. package/dist/routes/initiative.d.ts.map +1 -1
  51. package/dist/routes/notification-webhooks.d.ts +3 -3
  52. package/dist/routes/notifications.d.ts +6 -3
  53. package/dist/routes/notifications.d.ts.map +1 -1
  54. package/dist/routes/public-api.d.ts +6 -3
  55. package/dist/routes/public-api.d.ts.map +1 -1
  56. package/dist/routes/shared-stacks.d.ts +196 -14
  57. package/dist/routes/shared-stacks.d.ts.map +1 -1
  58. package/dist/routes/slack.d.ts +3 -3
  59. package/dist/routes/tasks.d.ts +81 -3
  60. package/dist/routes/tasks.d.ts.map +1 -1
  61. package/dist/routes/visual-confirm.d.ts +81 -3
  62. package/dist/routes/visual-confirm.d.ts.map +1 -1
  63. package/dist/routes/workspaces.d.ts +228 -18
  64. package/dist/routes/workspaces.d.ts.map +1 -1
  65. package/dist/shared-stacks.d.ts +97 -8
  66. package/dist/shared-stacks.d.ts.map +1 -1
  67. package/dist/shared-stacks.js +20 -8
  68. package/dist/shared-stacks.js.map +1 -1
  69. package/dist/slack.d.ts +2 -2
  70. package/dist/snapshot.d.ts +114 -9
  71. package/dist/snapshot.d.ts.map +1 -1
  72. package/dist/stack-recipes.d.ts +33 -2
  73. package/dist/stack-recipes.d.ts.map +1 -1
  74. package/dist/stack-recipes.js +8 -2
  75. package/dist/stack-recipes.js.map +1 -1
  76. package/package.json +1 -1
@@ -174,7 +174,33 @@ export declare const createWorkspaceContract: {
174
174
  readonly localDevOnly: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
175
175
  readonly composeBuild: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
176
176
  readonly recipe: v.OptionalSchema<v.ObjectSchema<{
177
- readonly composeFiles: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>, v.MinLengthAction<string[], 1, undefined>]>, undefined>;
177
+ readonly composeFiles: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, v.VariantSchema<"kind", [v.ObjectSchema<{
178
+ readonly kind: v.LiteralSchema<"path", undefined>;
179
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
180
+ }, undefined>, v.ObjectSchema<{
181
+ readonly kind: v.LiteralSchema<"inline", undefined>;
182
+ readonly content: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 262144, undefined>]>;
183
+ readonly path: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
184
+ }, undefined>, v.ObjectSchema<{
185
+ readonly kind: v.LiteralSchema<"repo", undefined>;
186
+ readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
187
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
188
+ readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
189
+ readonly provider: v.OptionalSchema<v.PicklistSchema<["github", "gitlab"], undefined>, undefined>;
190
+ }, undefined>], undefined>], undefined>, undefined>, v.MinLengthAction<(string | {
191
+ kind: "path";
192
+ path: string;
193
+ } | {
194
+ kind: "inline";
195
+ content: string;
196
+ path?: string | undefined;
197
+ } | {
198
+ kind: "repo";
199
+ repo: string;
200
+ path: string;
201
+ ref?: string | undefined;
202
+ provider?: "github" | "gitlab" | undefined;
203
+ })[], 1, undefined>]>, undefined>;
178
204
  readonly composeProfiles: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>, undefined>;
179
205
  readonly envFiles: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
180
206
  readonly template: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
@@ -1156,7 +1182,33 @@ export declare const createWorkspaceContract: {
1156
1182
  readonly localDevOnly: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1157
1183
  readonly composeBuild: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1158
1184
  readonly recipe: v.OptionalSchema<v.ObjectSchema<{
1159
- readonly composeFiles: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>, v.MinLengthAction<string[], 1, undefined>]>, undefined>;
1185
+ readonly composeFiles: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, v.VariantSchema<"kind", [v.ObjectSchema<{
1186
+ readonly kind: v.LiteralSchema<"path", undefined>;
1187
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
1188
+ }, undefined>, v.ObjectSchema<{
1189
+ readonly kind: v.LiteralSchema<"inline", undefined>;
1190
+ readonly content: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 262144, undefined>]>;
1191
+ readonly path: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
1192
+ }, undefined>, v.ObjectSchema<{
1193
+ readonly kind: v.LiteralSchema<"repo", undefined>;
1194
+ readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
1195
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
1196
+ readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
1197
+ readonly provider: v.OptionalSchema<v.PicklistSchema<["github", "gitlab"], undefined>, undefined>;
1198
+ }, undefined>], undefined>], undefined>, undefined>, v.MinLengthAction<(string | {
1199
+ kind: "path";
1200
+ path: string;
1201
+ } | {
1202
+ kind: "inline";
1203
+ content: string;
1204
+ path?: string | undefined;
1205
+ } | {
1206
+ kind: "repo";
1207
+ repo: string;
1208
+ path: string;
1209
+ ref?: string | undefined;
1210
+ provider?: "github" | "gitlab" | undefined;
1211
+ })[], 1, undefined>]>, undefined>;
1160
1212
  readonly composeProfiles: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>, undefined>;
1161
1213
  readonly envFiles: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1162
1214
  readonly template: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
@@ -1561,7 +1613,7 @@ export declare const createWorkspaceContract: {
1561
1613
  }, undefined>, undefined>;
1562
1614
  readonly notifications: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1563
1615
  readonly id: v.StringSchema<undefined>;
1564
- 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", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
1616
+ 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", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
1565
1617
  readonly status: v.PicklistSchema<["open", "acted", "dismissed"], undefined>;
1566
1618
  readonly severity: v.OptionalSchema<v.PicklistSchema<["normal", "urgent"], undefined>, undefined>;
1567
1619
  readonly blockId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -1600,6 +1652,7 @@ export declare const createWorkspaceContract: {
1600
1652
  readonly unmergedRepos: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
1601
1653
  readonly platformWindow: v.OptionalSchema<v.PicklistSchema<["1h", "24h", "7d"], undefined>, undefined>;
1602
1654
  readonly platformAlerts: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["failure_rate_high", "duration_p99_high", "backlog_high"], undefined>, undefined>, undefined>;
1655
+ readonly unreachableAreas: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["ephemeralEnvironments", "agentExecutor", "binaryStorage"], undefined>, undefined>, undefined>;
1603
1656
  readonly driftAffected: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1604
1657
  readonly source: v.StringSchema<undefined>;
1605
1658
  readonly id: v.StringSchema<undefined>;
@@ -1703,9 +1756,35 @@ export declare const createWorkspaceContract: {
1703
1756
  readonly id: v.StringSchema<undefined>;
1704
1757
  readonly workspaceId: v.StringSchema<undefined>;
1705
1758
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
1706
- readonly cloneUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
1759
+ readonly cloneUrl: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
1707
1760
  readonly gitRef: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
1708
- readonly composeFiles: v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>, v.MinLengthAction<string[], 1, undefined>]>;
1761
+ readonly composeFiles: v.SchemaWithPipe<readonly [v.ArraySchema<v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, v.VariantSchema<"kind", [v.ObjectSchema<{
1762
+ readonly kind: v.LiteralSchema<"path", undefined>;
1763
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
1764
+ }, undefined>, v.ObjectSchema<{
1765
+ readonly kind: v.LiteralSchema<"inline", undefined>;
1766
+ readonly content: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 262144, undefined>]>;
1767
+ readonly path: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
1768
+ }, undefined>, v.ObjectSchema<{
1769
+ readonly kind: v.LiteralSchema<"repo", undefined>;
1770
+ readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
1771
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
1772
+ readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
1773
+ readonly provider: v.OptionalSchema<v.PicklistSchema<["github", "gitlab"], undefined>, undefined>;
1774
+ }, undefined>], undefined>], undefined>, undefined>, v.MinLengthAction<(string | {
1775
+ kind: "path";
1776
+ path: string;
1777
+ } | {
1778
+ kind: "inline";
1779
+ content: string;
1780
+ path?: string | undefined;
1781
+ } | {
1782
+ kind: "repo";
1783
+ repo: string;
1784
+ path: string;
1785
+ ref?: string | undefined;
1786
+ provider?: "github" | "gitlab" | undefined;
1787
+ })[], 1, undefined>]>;
1709
1788
  readonly composeProfiles: v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
1710
1789
  readonly envFiles: v.ArraySchema<v.ObjectSchema<{
1711
1790
  readonly template: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
@@ -1987,7 +2066,33 @@ export declare const createWorkspaceContract: {
1987
2066
  readonly localDevOnly: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1988
2067
  readonly composeBuild: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1989
2068
  readonly recipe: v.OptionalSchema<v.ObjectSchema<{
1990
- readonly composeFiles: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>, v.MinLengthAction<string[], 1, undefined>]>, undefined>;
2069
+ readonly composeFiles: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, v.VariantSchema<"kind", [v.ObjectSchema<{
2070
+ readonly kind: v.LiteralSchema<"path", undefined>;
2071
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
2072
+ }, undefined>, v.ObjectSchema<{
2073
+ readonly kind: v.LiteralSchema<"inline", undefined>;
2074
+ readonly content: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 262144, undefined>]>;
2075
+ readonly path: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
2076
+ }, undefined>, v.ObjectSchema<{
2077
+ readonly kind: v.LiteralSchema<"repo", undefined>;
2078
+ readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
2079
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
2080
+ readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
2081
+ readonly provider: v.OptionalSchema<v.PicklistSchema<["github", "gitlab"], undefined>, undefined>;
2082
+ }, undefined>], undefined>], undefined>, undefined>, v.MinLengthAction<(string | {
2083
+ kind: "path";
2084
+ path: string;
2085
+ } | {
2086
+ kind: "inline";
2087
+ content: string;
2088
+ path?: string | undefined;
2089
+ } | {
2090
+ kind: "repo";
2091
+ repo: string;
2092
+ path: string;
2093
+ ref?: string | undefined;
2094
+ provider?: "github" | "gitlab" | undefined;
2095
+ })[], 1, undefined>]>, undefined>;
1991
2096
  readonly composeProfiles: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>, undefined>;
1992
2097
  readonly envFiles: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1993
2098
  readonly template: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
@@ -2588,9 +2693,9 @@ export declare const createWorkspaceContract: {
2588
2693
  readonly probe: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
2589
2694
  }, undefined>, undefined>, undefined>;
2590
2695
  readonly infraSetup: v.OptionalSchema<v.ObjectSchema<{
2591
- readonly ephemeralEnvironments: v.PicklistSchema<["not_defined", "configured", "not_applicable"], undefined>;
2592
- readonly agentExecutor: v.PicklistSchema<["not_defined", "configured", "not_applicable"], undefined>;
2593
- readonly binaryStorage: v.PicklistSchema<["not_defined", "configured", "not_applicable"], undefined>;
2696
+ readonly ephemeralEnvironments: v.PicklistSchema<["not_defined", "configured", "not_applicable", "unreachable"], undefined>;
2697
+ readonly agentExecutor: v.PicklistSchema<["not_defined", "configured", "not_applicable", "unreachable"], undefined>;
2698
+ readonly binaryStorage: v.PicklistSchema<["not_defined", "configured", "not_applicable", "unreachable"], undefined>;
2594
2699
  }, undefined>, undefined>;
2595
2700
  readonly skills: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
2596
2701
  readonly id: v.StringSchema<undefined>;
@@ -2724,7 +2829,33 @@ export declare const getWorkspaceContract: {
2724
2829
  readonly localDevOnly: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
2725
2830
  readonly composeBuild: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
2726
2831
  readonly recipe: v.OptionalSchema<v.ObjectSchema<{
2727
- readonly composeFiles: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>, v.MinLengthAction<string[], 1, undefined>]>, undefined>;
2832
+ readonly composeFiles: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, v.VariantSchema<"kind", [v.ObjectSchema<{
2833
+ readonly kind: v.LiteralSchema<"path", undefined>;
2834
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
2835
+ }, undefined>, v.ObjectSchema<{
2836
+ readonly kind: v.LiteralSchema<"inline", undefined>;
2837
+ readonly content: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 262144, undefined>]>;
2838
+ readonly path: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
2839
+ }, undefined>, v.ObjectSchema<{
2840
+ readonly kind: v.LiteralSchema<"repo", undefined>;
2841
+ readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
2842
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
2843
+ readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
2844
+ readonly provider: v.OptionalSchema<v.PicklistSchema<["github", "gitlab"], undefined>, undefined>;
2845
+ }, undefined>], undefined>], undefined>, undefined>, v.MinLengthAction<(string | {
2846
+ kind: "path";
2847
+ path: string;
2848
+ } | {
2849
+ kind: "inline";
2850
+ content: string;
2851
+ path?: string | undefined;
2852
+ } | {
2853
+ kind: "repo";
2854
+ repo: string;
2855
+ path: string;
2856
+ ref?: string | undefined;
2857
+ provider?: "github" | "gitlab" | undefined;
2858
+ })[], 1, undefined>]>, undefined>;
2728
2859
  readonly composeProfiles: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>, undefined>;
2729
2860
  readonly envFiles: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
2730
2861
  readonly template: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
@@ -3706,7 +3837,33 @@ export declare const getWorkspaceContract: {
3706
3837
  readonly localDevOnly: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
3707
3838
  readonly composeBuild: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
3708
3839
  readonly recipe: v.OptionalSchema<v.ObjectSchema<{
3709
- readonly composeFiles: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>, v.MinLengthAction<string[], 1, undefined>]>, undefined>;
3840
+ readonly composeFiles: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, v.VariantSchema<"kind", [v.ObjectSchema<{
3841
+ readonly kind: v.LiteralSchema<"path", undefined>;
3842
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
3843
+ }, undefined>, v.ObjectSchema<{
3844
+ readonly kind: v.LiteralSchema<"inline", undefined>;
3845
+ readonly content: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 262144, undefined>]>;
3846
+ readonly path: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
3847
+ }, undefined>, v.ObjectSchema<{
3848
+ readonly kind: v.LiteralSchema<"repo", undefined>;
3849
+ readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
3850
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
3851
+ readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
3852
+ readonly provider: v.OptionalSchema<v.PicklistSchema<["github", "gitlab"], undefined>, undefined>;
3853
+ }, undefined>], undefined>], undefined>, undefined>, v.MinLengthAction<(string | {
3854
+ kind: "path";
3855
+ path: string;
3856
+ } | {
3857
+ kind: "inline";
3858
+ content: string;
3859
+ path?: string | undefined;
3860
+ } | {
3861
+ kind: "repo";
3862
+ repo: string;
3863
+ path: string;
3864
+ ref?: string | undefined;
3865
+ provider?: "github" | "gitlab" | undefined;
3866
+ })[], 1, undefined>]>, undefined>;
3710
3867
  readonly composeProfiles: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>, undefined>;
3711
3868
  readonly envFiles: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
3712
3869
  readonly template: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
@@ -4111,7 +4268,7 @@ export declare const getWorkspaceContract: {
4111
4268
  }, undefined>, undefined>;
4112
4269
  readonly notifications: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
4113
4270
  readonly id: v.StringSchema<undefined>;
4114
- 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", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
4271
+ 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", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
4115
4272
  readonly status: v.PicklistSchema<["open", "acted", "dismissed"], undefined>;
4116
4273
  readonly severity: v.OptionalSchema<v.PicklistSchema<["normal", "urgent"], undefined>, undefined>;
4117
4274
  readonly blockId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -4150,6 +4307,7 @@ export declare const getWorkspaceContract: {
4150
4307
  readonly unmergedRepos: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
4151
4308
  readonly platformWindow: v.OptionalSchema<v.PicklistSchema<["1h", "24h", "7d"], undefined>, undefined>;
4152
4309
  readonly platformAlerts: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["failure_rate_high", "duration_p99_high", "backlog_high"], undefined>, undefined>, undefined>;
4310
+ readonly unreachableAreas: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["ephemeralEnvironments", "agentExecutor", "binaryStorage"], undefined>, undefined>, undefined>;
4153
4311
  readonly driftAffected: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
4154
4312
  readonly source: v.StringSchema<undefined>;
4155
4313
  readonly id: v.StringSchema<undefined>;
@@ -4253,9 +4411,35 @@ export declare const getWorkspaceContract: {
4253
4411
  readonly id: v.StringSchema<undefined>;
4254
4412
  readonly workspaceId: v.StringSchema<undefined>;
4255
4413
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
4256
- readonly cloneUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
4414
+ readonly cloneUrl: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
4257
4415
  readonly gitRef: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
4258
- readonly composeFiles: v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>, v.MinLengthAction<string[], 1, undefined>]>;
4416
+ readonly composeFiles: v.SchemaWithPipe<readonly [v.ArraySchema<v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, v.VariantSchema<"kind", [v.ObjectSchema<{
4417
+ readonly kind: v.LiteralSchema<"path", undefined>;
4418
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
4419
+ }, undefined>, v.ObjectSchema<{
4420
+ readonly kind: v.LiteralSchema<"inline", undefined>;
4421
+ readonly content: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 262144, undefined>]>;
4422
+ readonly path: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
4423
+ }, undefined>, v.ObjectSchema<{
4424
+ readonly kind: v.LiteralSchema<"repo", undefined>;
4425
+ readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
4426
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
4427
+ readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
4428
+ readonly provider: v.OptionalSchema<v.PicklistSchema<["github", "gitlab"], undefined>, undefined>;
4429
+ }, undefined>], undefined>], undefined>, undefined>, v.MinLengthAction<(string | {
4430
+ kind: "path";
4431
+ path: string;
4432
+ } | {
4433
+ kind: "inline";
4434
+ content: string;
4435
+ path?: string | undefined;
4436
+ } | {
4437
+ kind: "repo";
4438
+ repo: string;
4439
+ path: string;
4440
+ ref?: string | undefined;
4441
+ provider?: "github" | "gitlab" | undefined;
4442
+ })[], 1, undefined>]>;
4259
4443
  readonly composeProfiles: v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
4260
4444
  readonly envFiles: v.ArraySchema<v.ObjectSchema<{
4261
4445
  readonly template: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
@@ -4537,7 +4721,33 @@ export declare const getWorkspaceContract: {
4537
4721
  readonly localDevOnly: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
4538
4722
  readonly composeBuild: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
4539
4723
  readonly recipe: v.OptionalSchema<v.ObjectSchema<{
4540
- readonly composeFiles: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>, v.MinLengthAction<string[], 1, undefined>]>, undefined>;
4724
+ readonly composeFiles: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, v.VariantSchema<"kind", [v.ObjectSchema<{
4725
+ readonly kind: v.LiteralSchema<"path", undefined>;
4726
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
4727
+ }, undefined>, v.ObjectSchema<{
4728
+ readonly kind: v.LiteralSchema<"inline", undefined>;
4729
+ readonly content: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 262144, undefined>]>;
4730
+ readonly path: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
4731
+ }, undefined>, v.ObjectSchema<{
4732
+ readonly kind: v.LiteralSchema<"repo", undefined>;
4733
+ readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
4734
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
4735
+ readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
4736
+ readonly provider: v.OptionalSchema<v.PicklistSchema<["github", "gitlab"], undefined>, undefined>;
4737
+ }, undefined>], undefined>], undefined>, undefined>, v.MinLengthAction<(string | {
4738
+ kind: "path";
4739
+ path: string;
4740
+ } | {
4741
+ kind: "inline";
4742
+ content: string;
4743
+ path?: string | undefined;
4744
+ } | {
4745
+ kind: "repo";
4746
+ repo: string;
4747
+ path: string;
4748
+ ref?: string | undefined;
4749
+ provider?: "github" | "gitlab" | undefined;
4750
+ })[], 1, undefined>]>, undefined>;
4541
4751
  readonly composeProfiles: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>, undefined>;
4542
4752
  readonly envFiles: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
4543
4753
  readonly template: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
@@ -5138,9 +5348,9 @@ export declare const getWorkspaceContract: {
5138
5348
  readonly probe: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
5139
5349
  }, undefined>, undefined>, undefined>;
5140
5350
  readonly infraSetup: v.OptionalSchema<v.ObjectSchema<{
5141
- readonly ephemeralEnvironments: v.PicklistSchema<["not_defined", "configured", "not_applicable"], undefined>;
5142
- readonly agentExecutor: v.PicklistSchema<["not_defined", "configured", "not_applicable"], undefined>;
5143
- readonly binaryStorage: v.PicklistSchema<["not_defined", "configured", "not_applicable"], undefined>;
5351
+ readonly ephemeralEnvironments: v.PicklistSchema<["not_defined", "configured", "not_applicable", "unreachable"], undefined>;
5352
+ readonly agentExecutor: v.PicklistSchema<["not_defined", "configured", "not_applicable", "unreachable"], undefined>;
5353
+ readonly binaryStorage: v.PicklistSchema<["not_defined", "configured", "not_applicable", "unreachable"], undefined>;
5144
5354
  }, undefined>, undefined>;
5145
5355
  readonly skills: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
5146
5356
  readonly id: v.StringSchema<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;AAe5B;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;aAGlC,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAI7E,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;AAe5B;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;aAGlC,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAI7E,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"}
@@ -18,12 +18,48 @@ export declare const sharedStackSchema: v.ObjectSchema<{
18
18
  readonly id: v.StringSchema<undefined>;
19
19
  readonly workspaceId: v.StringSchema<undefined>;
20
20
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
21
- /** The git repo the stack is cloned from (its compose files + templates live here). */
22
- readonly cloneUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
21
+ /**
22
+ * The git repo the stack is cloned from (its `path` compose layers, env templates and seed
23
+ * dumps live here). NULL for a stack that owns no repo — one whose layers are all `inline`
24
+ * documents and/or `repo` references into other projects, the shape a deployment declares
25
+ * programmatically in code. A `path` layer, an `envFiles` entry or a `stdinFile` step REQUIRES
26
+ * a clone URL; the bring-up refuses without one rather than cloning nothing and failing at `up`.
27
+ */
28
+ readonly cloneUrl: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
23
29
  /** Branch / tag / sha to read at; absent ⇒ the repo's default branch. */
24
30
  readonly gitRef: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
25
- /** Ordered `-f` compose files (repo-relative). At least one. */
26
- readonly composeFiles: v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>, v.MinLengthAction<string[], 1, undefined>]>;
31
+ /**
32
+ * Ordered `-f` compose layers. At least one. Each entry is a bare path in the stack's own
33
+ * repo (the shorthand) or an explicit {@link composeSourceSchema} — an `inline` document, or a
34
+ * `path` in ANOTHER `owner/name` repo read checkout-free through the workspace's VCS connection.
35
+ */
36
+ readonly composeFiles: v.SchemaWithPipe<readonly [v.ArraySchema<v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, v.VariantSchema<"kind", [v.ObjectSchema<{
37
+ readonly kind: v.LiteralSchema<"path", undefined>;
38
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
39
+ }, undefined>, v.ObjectSchema<{
40
+ readonly kind: v.LiteralSchema<"inline", undefined>;
41
+ readonly content: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 262144, undefined>]>;
42
+ readonly path: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
43
+ }, undefined>, v.ObjectSchema<{
44
+ readonly kind: v.LiteralSchema<"repo", undefined>;
45
+ readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
46
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
47
+ readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
48
+ readonly provider: v.OptionalSchema<v.PicklistSchema<["github", "gitlab"], undefined>, undefined>;
49
+ }, undefined>], undefined>], undefined>, undefined>, v.MinLengthAction<(string | {
50
+ kind: "path";
51
+ path: string;
52
+ } | {
53
+ kind: "inline";
54
+ content: string;
55
+ path?: string | undefined;
56
+ } | {
57
+ kind: "repo";
58
+ repo: string;
59
+ path: string;
60
+ ref?: string | undefined;
61
+ provider?: "github" | "gitlab" | undefined;
62
+ })[], 1, undefined>]>;
27
63
  /** `COMPOSE_PROFILES` to enable for the stack. */
28
64
  readonly composeProfiles: v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
29
65
  /** Committed templates materialized into their gitignored targets before `up`. */
@@ -129,9 +165,36 @@ export type SharedStack = v.InferOutput<typeof sharedStackSchema>;
129
165
  /** Create a new shared stack in a workspace. */
130
166
  export declare const createSharedStackSchema: v.ObjectSchema<{
131
167
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
132
- readonly cloneUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
168
+ /** Absent a repo-less stack (every layer `inline` / from another repo). */
169
+ readonly cloneUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
133
170
  readonly gitRef: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
134
- readonly composeFiles: v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>, v.MinLengthAction<string[], 1, undefined>]>;
171
+ readonly composeFiles: v.SchemaWithPipe<readonly [v.ArraySchema<v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, v.VariantSchema<"kind", [v.ObjectSchema<{
172
+ readonly kind: v.LiteralSchema<"path", undefined>;
173
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
174
+ }, undefined>, v.ObjectSchema<{
175
+ readonly kind: v.LiteralSchema<"inline", undefined>;
176
+ readonly content: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 262144, undefined>]>;
177
+ readonly path: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
178
+ }, undefined>, v.ObjectSchema<{
179
+ readonly kind: v.LiteralSchema<"repo", undefined>;
180
+ readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
181
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
182
+ readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
183
+ readonly provider: v.OptionalSchema<v.PicklistSchema<["github", "gitlab"], undefined>, undefined>;
184
+ }, undefined>], undefined>], undefined>, undefined>, v.MinLengthAction<(string | {
185
+ kind: "path";
186
+ path: string;
187
+ } | {
188
+ kind: "inline";
189
+ content: string;
190
+ path?: string | undefined;
191
+ } | {
192
+ kind: "repo";
193
+ repo: string;
194
+ path: string;
195
+ ref?: string | undefined;
196
+ provider?: "github" | "gitlab" | undefined;
197
+ })[], 1, undefined>]>;
135
198
  readonly composeProfiles: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>, readonly []>;
136
199
  readonly envFiles: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
137
200
  readonly template: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
@@ -260,9 +323,35 @@ export type SharedStackRecommendation = v.InferOutput<typeof sharedStackRecommen
260
323
  /** Patch an existing shared stack (all fields optional). */
261
324
  export declare const updateSharedStackSchema: v.ObjectSchema<{
262
325
  readonly name: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
263
- readonly cloneUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
326
+ readonly cloneUrl: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>, undefined>;
264
327
  readonly gitRef: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>, undefined>;
265
- readonly composeFiles: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>, v.MinLengthAction<string[], 1, undefined>]>, undefined>;
328
+ readonly composeFiles: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, v.VariantSchema<"kind", [v.ObjectSchema<{
329
+ readonly kind: v.LiteralSchema<"path", undefined>;
330
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
331
+ }, undefined>, v.ObjectSchema<{
332
+ readonly kind: v.LiteralSchema<"inline", undefined>;
333
+ readonly content: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 262144, undefined>]>;
334
+ readonly path: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
335
+ }, undefined>, v.ObjectSchema<{
336
+ readonly kind: v.LiteralSchema<"repo", undefined>;
337
+ readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
338
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
339
+ readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
340
+ readonly provider: v.OptionalSchema<v.PicklistSchema<["github", "gitlab"], undefined>, undefined>;
341
+ }, undefined>], undefined>], undefined>, undefined>, v.MinLengthAction<(string | {
342
+ kind: "path";
343
+ path: string;
344
+ } | {
345
+ kind: "inline";
346
+ content: string;
347
+ path?: string | undefined;
348
+ } | {
349
+ kind: "repo";
350
+ repo: string;
351
+ path: string;
352
+ ref?: string | undefined;
353
+ provider?: "github" | "gitlab" | undefined;
354
+ })[], 1, undefined>]>, undefined>;
266
355
  readonly composeProfiles: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>, undefined>;
267
356
  readonly envFiles: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
268
357
  readonly template: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
@@ -1 +1 @@
1
- {"version":3,"file":"shared-stacks.d.ts","sourceRoot":"","sources":["../src/shared-stacks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAoC5B;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,2EAA2D,CAAA;AAC/F,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;IAI5B,uFAAuF;;IAEvF,yEAAyE;;IAEzE,gEAAgE;;IAEhE,kDAAkD;;IAElD,kFAAkF;;;;;IAElF,8FAA8F;;IAE9F,0FAA0F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAE1F;;;;;;;OAOG;;;;;;;;;;;;;;;;;;;IAEH,mFAAmF;;;;;;;;;;;;;;;;;IAEnF;;;OAGG;;;IAGH,0EAA0E;;;;aAI1E,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAIjE,gDAAgD;AAChD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAYlC,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAIlF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;IAClC,yEAAyE;;IAEzE,yEAAyE;;IAEzE,kGAAkG;;aAElG,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAElF;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B;;IAE1C,wFAAwF;;IAExF,0EAA0E;;IAE1E,kGAAkG;;IAElG,sFAAsF;;IAEtF,+FAA+F;;;;;;;;;;aAG/F,CAAA;AACF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAE7F,4DAA4D;AAC5D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAYlC,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA"}
1
+ {"version":3,"file":"shared-stacks.d.ts","sourceRoot":"","sources":["../src/shared-stacks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAqC5B;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,2EAA2D,CAAA;AAC/F,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;IAI5B;;;;;;OAMG;;IAEH,yEAAyE;;IAEzE;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH,kDAAkD;;IAElD,kFAAkF;;;;;IAElF,8FAA8F;;IAE9F,0FAA0F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAE1F;;;;;;;OAOG;;;;;;;;;;;;;;;;;;;IAEH,mFAAmF;;;;;;;;;;;;;;;;;IAEnF;;;OAGG;;;IAGH,0EAA0E;;;;aAI1E,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAIjE,gDAAgD;AAChD,eAAO,MAAM,uBAAuB;;IAElC,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAW7E,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAIlF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;IAClC,yEAAyE;;IAEzE,yEAAyE;;IAEzE,kGAAkG;;aAElG,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAElF;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B;;IAE1C,wFAAwF;;IAExF,0EAA0E;;IAE1E,kGAAkG;;IAElG,sFAAsF;;IAEtF,+FAA+F;;;;;;;;;;aAG/F,CAAA;AACF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAE7F,4DAA4D;AAC5D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAYlC,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import * as v from 'valibot';
2
+ import { composeFileRefSchema } from './compose-sources.js';
2
3
  import { provisioningDetectionNoteSchema } from './environments.js';
3
4
  import { preflightRefSchema } from './preflights.js';
4
5
  import { urlString } from './primitives.js';
@@ -47,12 +48,22 @@ export const sharedStackSchema = v.object({
47
48
  id: v.string(),
48
49
  workspaceId: v.string(),
49
50
  name: stackName,
50
- /** The git repo the stack is cloned from (its compose files + templates live here). */
51
- cloneUrl: urlString,
51
+ /**
52
+ * The git repo the stack is cloned from (its `path` compose layers, env templates and seed
53
+ * dumps live here). NULL for a stack that owns no repo — one whose layers are all `inline`
54
+ * documents and/or `repo` references into other projects, the shape a deployment declares
55
+ * programmatically in code. A `path` layer, an `envFiles` entry or a `stdinFile` step REQUIRES
56
+ * a clone URL; the bring-up refuses without one rather than cloning nothing and failing at `up`.
57
+ */
58
+ cloneUrl: v.nullable(urlString),
52
59
  /** Branch / tag / sha to read at; absent ⇒ the repo's default branch. */
53
60
  gitRef: v.nullable(stackRef),
54
- /** Ordered `-f` compose files (repo-relative). At least one. */
55
- composeFiles: v.pipe(v.array(stackPathString), v.minLength(1)),
61
+ /**
62
+ * Ordered `-f` compose layers. At least one. Each entry is a bare path in the stack's own
63
+ * repo (the shorthand) or an explicit {@link composeSourceSchema} — an `inline` document, or a
64
+ * `path` in ANOTHER `owner/name` repo read checkout-free through the workspace's VCS connection.
65
+ */
66
+ composeFiles: v.pipe(v.array(composeFileRefSchema), v.minLength(1)),
56
67
  /** `COMPOSE_PROFILES` to enable for the stack. */
57
68
  composeProfiles: v.array(stackName),
58
69
  /** Committed templates materialized into their gitignored targets before `up`. */
@@ -87,9 +98,10 @@ export const sharedStackSchema = v.object({
87
98
  /** Create a new shared stack in a workspace. */
88
99
  export const createSharedStackSchema = v.object({
89
100
  name: stackName,
90
- cloneUrl: urlString,
101
+ /** Absent ⇒ a repo-less stack (every layer `inline` / from another repo). */
102
+ cloneUrl: v.optional(urlString),
91
103
  gitRef: v.optional(stackRef),
92
- composeFiles: v.pipe(v.array(stackPathString), v.minLength(1)),
104
+ composeFiles: v.pipe(v.array(composeFileRefSchema), v.minLength(1)),
93
105
  composeProfiles: v.optional(v.array(stackName), []),
94
106
  envFiles: v.optional(v.array(recipeEnvFileSchema), []),
95
107
  managedNetworks: v.optional(v.array(stackName), []),
@@ -138,9 +150,9 @@ export const sharedStackRecommendationSchema = v.object({
138
150
  /** Patch an existing shared stack (all fields optional). */
139
151
  export const updateSharedStackSchema = v.object({
140
152
  name: v.optional(stackName),
141
- cloneUrl: v.optional(urlString),
153
+ cloneUrl: v.optional(v.nullable(urlString)),
142
154
  gitRef: v.optional(v.nullable(stackRef)),
143
- composeFiles: v.optional(v.pipe(v.array(stackPathString), v.minLength(1))),
155
+ composeFiles: v.optional(v.pipe(v.array(composeFileRefSchema), v.minLength(1))),
144
156
  composeProfiles: v.optional(v.array(stackName)),
145
157
  envFiles: v.optional(v.array(recipeEnvFileSchema)),
146
158
  managedNetworks: v.optional(v.array(stackName)),