@cat-factory/contracts 0.334.0 → 0.336.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 (99) hide show
  1. package/dist/binary-generators.d.ts +4 -4
  2. package/dist/cache-policy.d.ts +22 -0
  3. package/dist/cache-policy.d.ts.map +1 -0
  4. package/dist/cache-policy.js +111 -0
  5. package/dist/cache-policy.js.map +1 -0
  6. package/dist/debug-api.d.ts +1 -1
  7. package/dist/entities.d.ts +14 -0
  8. package/dist/entities.d.ts.map +1 -1
  9. package/dist/entities.js +8 -0
  10. package/dist/entities.js.map +1 -1
  11. package/dist/environment-investigation.d.ts +212 -0
  12. package/dist/environment-investigation.d.ts.map +1 -0
  13. package/dist/environment-investigation.js +258 -0
  14. package/dist/environment-investigation.js.map +1 -0
  15. package/dist/environments.d.ts +6 -0
  16. package/dist/environments.d.ts.map +1 -1
  17. package/dist/environments.js +6 -0
  18. package/dist/environments.js.map +1 -1
  19. package/dist/errors.d.ts +24 -2
  20. package/dist/errors.d.ts.map +1 -1
  21. package/dist/errors.js +27 -1
  22. package/dist/errors.js.map +1 -1
  23. package/dist/execution.d.ts +37 -0
  24. package/dist/execution.d.ts.map +1 -1
  25. package/dist/execution.js +15 -0
  26. package/dist/execution.js.map +1 -1
  27. package/dist/foundational-services.d.ts +16 -9
  28. package/dist/foundational-services.d.ts.map +1 -1
  29. package/dist/foundational-services.js +20 -1
  30. package/dist/foundational-services.js.map +1 -1
  31. package/dist/index.d.ts +3 -0
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +3 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/observability.d.ts +57 -0
  36. package/dist/observability.d.ts.map +1 -1
  37. package/dist/observability.js +19 -0
  38. package/dist/observability.js.map +1 -1
  39. package/dist/openrouter.d.ts +111 -4
  40. package/dist/openrouter.d.ts.map +1 -1
  41. package/dist/openrouter.js +39 -1
  42. package/dist/openrouter.js.map +1 -1
  43. package/dist/provisioning-logs.d.ts +12 -5
  44. package/dist/provisioning-logs.d.ts.map +1 -1
  45. package/dist/provisioning-logs.js +10 -2
  46. package/dist/provisioning-logs.js.map +1 -1
  47. package/dist/requests.d.ts +2 -0
  48. package/dist/requests.d.ts.map +1 -1
  49. package/dist/reserved-env-keys.d.ts.map +1 -1
  50. package/dist/reserved-env-keys.js +6 -0
  51. package/dist/reserved-env-keys.js.map +1 -1
  52. package/dist/routes/agent-runs.d.ts +6 -0
  53. package/dist/routes/agent-runs.d.ts.map +1 -1
  54. package/dist/routes/bug-hunt.d.ts +6 -0
  55. package/dist/routes/bug-hunt.d.ts.map +1 -1
  56. package/dist/routes/debug-api.d.ts +1 -1
  57. package/dist/routes/environments.d.ts +5 -0
  58. package/dist/routes/environments.d.ts.map +1 -1
  59. package/dist/routes/execution.d.ts +34 -0
  60. package/dist/routes/execution.d.ts.map +1 -1
  61. package/dist/routes/foundational-services.d.ts +8 -8
  62. package/dist/routes/human-review.d.ts +3 -0
  63. package/dist/routes/human-review.d.ts.map +1 -1
  64. package/dist/routes/human-test.d.ts +15 -0
  65. package/dist/routes/human-test.d.ts.map +1 -1
  66. package/dist/routes/index.d.ts +1 -0
  67. package/dist/routes/index.d.ts.map +1 -1
  68. package/dist/routes/index.js +1 -0
  69. package/dist/routes/index.js.map +1 -1
  70. package/dist/routes/openrouter.d.ts +16 -0
  71. package/dist/routes/openrouter.d.ts.map +1 -1
  72. package/dist/routes/pipelines.d.ts +8 -0
  73. package/dist/routes/pipelines.d.ts.map +1 -1
  74. package/dist/routes/provisioning-logs.d.ts +1 -1
  75. package/dist/routes/public-evidence.d.ts +1 -0
  76. package/dist/routes/public-evidence.d.ts.map +1 -1
  77. package/dist/routes/service-catalog.d.ts +298 -0
  78. package/dist/routes/service-catalog.d.ts.map +1 -0
  79. package/dist/routes/service-catalog.js +77 -0
  80. package/dist/routes/service-catalog.js.map +1 -0
  81. package/dist/routes/visual-confirm.d.ts +9 -0
  82. package/dist/routes/visual-confirm.d.ts.map +1 -1
  83. package/dist/routes/workspaces.d.ts +8 -0
  84. package/dist/routes/workspaces.d.ts.map +1 -1
  85. package/dist/run-evidence.d.ts +8 -0
  86. package/dist/run-evidence.d.ts.map +1 -1
  87. package/dist/run-evidence.js +5 -1
  88. package/dist/run-evidence.js.map +1 -1
  89. package/dist/run-outcome.d.ts +58 -3
  90. package/dist/run-outcome.d.ts.map +1 -1
  91. package/dist/run-outcome.js +40 -3
  92. package/dist/run-outcome.js.map +1 -1
  93. package/dist/service-catalog.d.ts +223 -0
  94. package/dist/service-catalog.d.ts.map +1 -0
  95. package/dist/service-catalog.js +234 -0
  96. package/dist/service-catalog.js.map +1 -0
  97. package/dist/snapshot.d.ts +4 -0
  98. package/dist/snapshot.d.ts.map +1 -1
  99. package/package.json +1 -1
@@ -0,0 +1,298 @@
1
+ import { ContractNoBody } from '@toad-contracts/valibot';
2
+ import * as v from 'valibot';
3
+ /**
4
+ * The connection, or null when the workspace has none.
5
+ *
6
+ * Null rather than a 404, because the SPA renders the connect FORM off this read: a 404 there
7
+ * would make "not connected yet" indistinguishable from "wrong workspace id" at exactly the
8
+ * moment the panel has to decide which of the two to show.
9
+ */
10
+ export declare const getServiceCatalogContract: {
11
+ readonly method: "get";
12
+ readonly pathResolver: () => string;
13
+ readonly responsesByStatusCode: {
14
+ readonly '4xx': v.ObjectSchema<{
15
+ readonly error: v.ObjectSchema<{
16
+ readonly code: v.StringSchema<undefined>;
17
+ readonly message: v.StringSchema<undefined>;
18
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
19
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
20
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
21
+ readonly message: v.StringSchema<undefined>;
22
+ }, undefined>, undefined>, undefined>;
23
+ }, undefined>;
24
+ }, undefined>;
25
+ readonly '5xx': v.ObjectSchema<{
26
+ readonly error: v.ObjectSchema<{
27
+ readonly code: v.StringSchema<undefined>;
28
+ readonly message: v.StringSchema<undefined>;
29
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
30
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
31
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
32
+ readonly message: v.StringSchema<undefined>;
33
+ }, undefined>, undefined>, undefined>;
34
+ }, undefined>;
35
+ }, undefined>;
36
+ readonly 200: v.NullableSchema<v.ObjectSchema<{
37
+ readonly provider: v.PicklistSchema<["backstage"], undefined>;
38
+ readonly baseUrl: v.StringSchema<undefined>;
39
+ readonly authMode: v.PicklistSchema<["none", "static-token", "legacy-shared-secret", "oauth2-client-credentials", "basic", "headers"], undefined>;
40
+ readonly entityFilter: v.ArraySchema<v.StringSchema<undefined>, undefined>;
41
+ readonly includeApis: v.BooleanSchema<undefined>;
42
+ readonly maxServices: v.NumberSchema<undefined>;
43
+ readonly lastSyncedAt: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
44
+ readonly lastSyncStatus: v.NullableSchema<v.PicklistSchema<["ok", "partial", "failed"], undefined>, undefined>;
45
+ readonly lastSyncMessage: v.NullableSchema<v.StringSchema<undefined>, undefined>;
46
+ readonly connectedAt: v.NumberSchema<undefined>;
47
+ }, undefined>, undefined>;
48
+ };
49
+ };
50
+ /**
51
+ * Connect or REPLACE the workspace's catalog connection.
52
+ *
53
+ * `PUT` rather than `POST`, because a credential has no meaningful partial edit and a second
54
+ * connection has no meaning: the workspace either points at a portal or it does not. Replacing
55
+ * deliberately does NOT drop what a prior connection imported: the next import reconciles
56
+ * against it, so re-entering a rotated token costs no catalog.
57
+ */
58
+ export declare const connectServiceCatalogContract: {
59
+ readonly method: "put";
60
+ readonly pathResolver: () => string;
61
+ readonly requestBodySchema: v.ObjectSchema<{
62
+ readonly provider: v.OptionalSchema<v.PicklistSchema<["backstage"], undefined>, undefined>;
63
+ readonly baseUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
64
+ readonly auth: v.VariantSchema<"mode", [v.ObjectSchema<{
65
+ readonly mode: v.LiteralSchema<"none", undefined>;
66
+ }, undefined>, v.ObjectSchema<{
67
+ readonly mode: v.LiteralSchema<"static-token", undefined>;
68
+ readonly token: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>]>;
69
+ }, undefined>, v.ObjectSchema<{
70
+ readonly mode: v.LiteralSchema<"legacy-shared-secret", undefined>;
71
+ readonly sharedSecret: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>]>;
72
+ }, undefined>, v.ObjectSchema<{
73
+ readonly mode: v.LiteralSchema<"oauth2-client-credentials", undefined>;
74
+ readonly tokenUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
75
+ readonly clientId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
76
+ readonly clientSecret: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>]>;
77
+ readonly scope: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
78
+ readonly audience: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
79
+ }, undefined>, v.ObjectSchema<{
80
+ readonly mode: v.LiteralSchema<"basic", undefined>;
81
+ readonly username: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
82
+ readonly password: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>]>;
83
+ }, undefined>, v.ObjectSchema<{
84
+ readonly mode: v.LiteralSchema<"headers", undefined>;
85
+ readonly headers: v.SchemaWithPipe<readonly [v.ArraySchema<v.ObjectSchema<{
86
+ readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 100, undefined>, v.RegexAction<string, "must be a valid HTTP header name">]>;
87
+ readonly value: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>, v.RegexAction<string, "must not contain a line break">]>;
88
+ }, undefined>, undefined>, v.MinLengthAction<{
89
+ name: string;
90
+ value: string;
91
+ }[], 1, undefined>, v.MaxLengthAction<{
92
+ name: string;
93
+ value: string;
94
+ }[], 5, undefined>]>;
95
+ }, undefined>], undefined>;
96
+ readonly entityFilter: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 3, undefined>, v.MaxLengthAction<string, 200, undefined>, v.RegexAction<string, "must be a single `key=value` term (letters, digits and `_.-:/@`)">]>, undefined>, v.MaxLengthAction<string[], 10, undefined>]>, undefined>;
97
+ readonly includeApis: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
98
+ readonly maxServices: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>;
99
+ }, undefined>;
100
+ readonly responsesByStatusCode: {
101
+ readonly '4xx': v.ObjectSchema<{
102
+ readonly error: v.ObjectSchema<{
103
+ readonly code: v.StringSchema<undefined>;
104
+ readonly message: v.StringSchema<undefined>;
105
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
106
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
107
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
108
+ readonly message: v.StringSchema<undefined>;
109
+ }, undefined>, undefined>, undefined>;
110
+ }, undefined>;
111
+ }, undefined>;
112
+ readonly '5xx': v.ObjectSchema<{
113
+ readonly error: v.ObjectSchema<{
114
+ readonly code: v.StringSchema<undefined>;
115
+ readonly message: v.StringSchema<undefined>;
116
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
117
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
118
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
119
+ readonly message: v.StringSchema<undefined>;
120
+ }, undefined>, undefined>, undefined>;
121
+ }, undefined>;
122
+ }, undefined>;
123
+ readonly 200: v.ObjectSchema<{
124
+ readonly provider: v.PicklistSchema<["backstage"], undefined>;
125
+ readonly baseUrl: v.StringSchema<undefined>;
126
+ readonly authMode: v.PicklistSchema<["none", "static-token", "legacy-shared-secret", "oauth2-client-credentials", "basic", "headers"], undefined>;
127
+ readonly entityFilter: v.ArraySchema<v.StringSchema<undefined>, undefined>;
128
+ readonly includeApis: v.BooleanSchema<undefined>;
129
+ readonly maxServices: v.NumberSchema<undefined>;
130
+ readonly lastSyncedAt: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
131
+ readonly lastSyncStatus: v.NullableSchema<v.PicklistSchema<["ok", "partial", "failed"], undefined>, undefined>;
132
+ readonly lastSyncMessage: v.NullableSchema<v.StringSchema<undefined>, undefined>;
133
+ readonly connectedAt: v.NumberSchema<undefined>;
134
+ }, undefined>;
135
+ };
136
+ };
137
+ /**
138
+ * Disconnect: forget the credential AND tombstone every foundational service the connection
139
+ * produced.
140
+ *
141
+ * Tombstoning is the point rather than a side effect. Leaving the imported services behind
142
+ * would keep handing agents an estate nothing refreshes and nothing can explain the provenance
143
+ * of, which is worse than an empty catalog because it still reads as current.
144
+ */
145
+ export declare const disconnectServiceCatalogContract: {
146
+ readonly method: "delete";
147
+ readonly pathResolver: () => string;
148
+ readonly responsesByStatusCode: {
149
+ readonly '4xx': v.ObjectSchema<{
150
+ readonly error: v.ObjectSchema<{
151
+ readonly code: v.StringSchema<undefined>;
152
+ readonly message: v.StringSchema<undefined>;
153
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
154
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
155
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
156
+ readonly message: v.StringSchema<undefined>;
157
+ }, undefined>, undefined>, undefined>;
158
+ }, undefined>;
159
+ }, undefined>;
160
+ readonly '5xx': v.ObjectSchema<{
161
+ readonly error: v.ObjectSchema<{
162
+ readonly code: v.StringSchema<undefined>;
163
+ readonly message: v.StringSchema<undefined>;
164
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
165
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
166
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
167
+ readonly message: v.StringSchema<undefined>;
168
+ }, undefined>, undefined>, undefined>;
169
+ }, undefined>;
170
+ }, undefined>;
171
+ readonly 204: typeof ContractNoBody;
172
+ };
173
+ };
174
+ /**
175
+ * Probe the portal with the SUBMITTED credentials, before they are stored.
176
+ *
177
+ * Takes a body rather than reading the stored row, so the operator finds out that a token is
178
+ * wrong while they still have it on screen. It answers a result rather than throwing for the
179
+ * same reason every other connection test does: a refused connection is the answer.
180
+ */
181
+ export declare const probeServiceCatalogContract: {
182
+ readonly method: "post";
183
+ readonly pathResolver: () => string;
184
+ readonly requestBodySchema: v.ObjectSchema<{
185
+ readonly provider: v.OptionalSchema<v.PicklistSchema<["backstage"], undefined>, undefined>;
186
+ readonly baseUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
187
+ readonly auth: v.VariantSchema<"mode", [v.ObjectSchema<{
188
+ readonly mode: v.LiteralSchema<"none", undefined>;
189
+ }, undefined>, v.ObjectSchema<{
190
+ readonly mode: v.LiteralSchema<"static-token", undefined>;
191
+ readonly token: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>]>;
192
+ }, undefined>, v.ObjectSchema<{
193
+ readonly mode: v.LiteralSchema<"legacy-shared-secret", undefined>;
194
+ readonly sharedSecret: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>]>;
195
+ }, undefined>, v.ObjectSchema<{
196
+ readonly mode: v.LiteralSchema<"oauth2-client-credentials", undefined>;
197
+ readonly tokenUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
198
+ readonly clientId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
199
+ readonly clientSecret: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>]>;
200
+ readonly scope: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
201
+ readonly audience: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
202
+ }, undefined>, v.ObjectSchema<{
203
+ readonly mode: v.LiteralSchema<"basic", undefined>;
204
+ readonly username: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
205
+ readonly password: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>]>;
206
+ }, undefined>, v.ObjectSchema<{
207
+ readonly mode: v.LiteralSchema<"headers", undefined>;
208
+ readonly headers: v.SchemaWithPipe<readonly [v.ArraySchema<v.ObjectSchema<{
209
+ readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 100, undefined>, v.RegexAction<string, "must be a valid HTTP header name">]>;
210
+ readonly value: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>, v.RegexAction<string, "must not contain a line break">]>;
211
+ }, undefined>, undefined>, v.MinLengthAction<{
212
+ name: string;
213
+ value: string;
214
+ }[], 1, undefined>, v.MaxLengthAction<{
215
+ name: string;
216
+ value: string;
217
+ }[], 5, undefined>]>;
218
+ }, undefined>], undefined>;
219
+ readonly entityFilter: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 3, undefined>, v.MaxLengthAction<string, 200, undefined>, v.RegexAction<string, "must be a single `key=value` term (letters, digits and `_.-:/@`)">]>, undefined>, v.MaxLengthAction<string[], 10, undefined>]>, undefined>;
220
+ readonly includeApis: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
221
+ readonly maxServices: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>;
222
+ }, undefined>;
223
+ readonly responsesByStatusCode: {
224
+ readonly '4xx': v.ObjectSchema<{
225
+ readonly error: v.ObjectSchema<{
226
+ readonly code: v.StringSchema<undefined>;
227
+ readonly message: v.StringSchema<undefined>;
228
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
229
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
230
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
231
+ readonly message: v.StringSchema<undefined>;
232
+ }, undefined>, undefined>, undefined>;
233
+ }, undefined>;
234
+ }, undefined>;
235
+ readonly '5xx': v.ObjectSchema<{
236
+ readonly error: v.ObjectSchema<{
237
+ readonly code: v.StringSchema<undefined>;
238
+ readonly message: v.StringSchema<undefined>;
239
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
240
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
241
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
242
+ readonly message: v.StringSchema<undefined>;
243
+ }, undefined>, undefined>, undefined>;
244
+ }, undefined>;
245
+ }, undefined>;
246
+ readonly 200: v.ObjectSchema<{
247
+ readonly ok: v.BooleanSchema<undefined>;
248
+ readonly message: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
249
+ readonly failureCause: v.OptionalSchema<v.PicklistSchema<["refused", "dns", "timeout", "aborted", "unreachable", "reset", "tls-untrusted", "tls-expired", "tls-hostname", "tls-protocol", "invalid-header", "unknown"], undefined>, undefined>;
250
+ readonly warnings: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
251
+ readonly code: v.PicklistSchema<["runner_manifest_no_release", "runner_manifest_no_status_path", "github_pat_classic_account_wide", "github_pat_scopes_beyond_need", "github_pat_scope_unreadable", "github_pat_no_scopes"], undefined>;
252
+ readonly message: v.StringSchema<undefined>;
253
+ }, undefined>, undefined>, undefined>;
254
+ }, undefined>;
255
+ };
256
+ };
257
+ /** Import now, rather than waiting out the autorefresh sweep's staleness window. */
258
+ export declare const syncServiceCatalogContract: {
259
+ readonly method: "post";
260
+ readonly pathResolver: () => string;
261
+ readonly requestBodySchema: typeof ContractNoBody;
262
+ readonly responsesByStatusCode: {
263
+ readonly '4xx': v.ObjectSchema<{
264
+ readonly error: v.ObjectSchema<{
265
+ readonly code: v.StringSchema<undefined>;
266
+ readonly message: v.StringSchema<undefined>;
267
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
268
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
269
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
270
+ readonly message: v.StringSchema<undefined>;
271
+ }, undefined>, undefined>, undefined>;
272
+ }, undefined>;
273
+ }, undefined>;
274
+ readonly '5xx': v.ObjectSchema<{
275
+ readonly error: v.ObjectSchema<{
276
+ readonly code: v.StringSchema<undefined>;
277
+ readonly message: v.StringSchema<undefined>;
278
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
279
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
280
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
281
+ readonly message: v.StringSchema<undefined>;
282
+ }, undefined>, undefined>, undefined>;
283
+ }, undefined>;
284
+ }, undefined>;
285
+ readonly 200: v.ObjectSchema<{
286
+ readonly upserted: v.NumberSchema<undefined>;
287
+ readonly tombstoned: v.NumberSchema<undefined>;
288
+ readonly unchanged: v.NumberSchema<undefined>;
289
+ readonly contracts: v.NumberSchema<undefined>;
290
+ readonly coverage: v.PicklistSchema<["complete", "truncated", "empty"], undefined>;
291
+ readonly skippedServices: v.NumberSchema<undefined>;
292
+ readonly skippedConflicts: v.NumberSchema<undefined>;
293
+ readonly skippedApis: v.NumberSchema<undefined>;
294
+ readonly status: v.PicklistSchema<["ok", "partial", "failed"], undefined>;
295
+ }, undefined>;
296
+ };
297
+ };
298
+ //# sourceMappingURL=service-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-catalog.d.ts","sourceRoot":"","sources":["../../src/routes/service-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAmB5B;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOpC,CAAA;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKxC,CAAA;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI3C,CAAA;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKtC,CAAA;AAEF,oFAAoF;AACpF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA"}
@@ -0,0 +1,77 @@
1
+ import { ContractNoBody, defineApiContract } from '@toad-contracts/valibot';
2
+ import * as v from 'valibot';
3
+ import { connectionTestResultSchema } from '../provider-config.js';
4
+ import { connectServiceCatalogSchema, serviceCatalogConnectionSchema, serviceCatalogSyncResultSchema, } from '../service-catalog.js';
5
+ import { errorResponses } from './_shared.js';
6
+ // ---------------------------------------------------------------------------
7
+ // Service-catalog route contracts. See ServiceCatalogController in
8
+ // @cat-factory/server. Mounted under `/workspaces/:workspaceId` only, so these literals
9
+ // are relative to that prefix and the workspace id is read by the handler.
10
+ //
11
+ // One connection per workspace, so the resource is a SINGLETON: `PUT` replaces it, `GET`
12
+ // reads it, `DELETE` disconnects. There is no id in any path, which is what keeps the
13
+ // import's provenance a fact about the workspace rather than a row a caller has to track.
14
+ // ---------------------------------------------------------------------------
15
+ /**
16
+ * The connection, or null when the workspace has none.
17
+ *
18
+ * Null rather than a 404, because the SPA renders the connect FORM off this read: a 404 there
19
+ * would make "not connected yet" indistinguishable from "wrong workspace id" at exactly the
20
+ * moment the panel has to decide which of the two to show.
21
+ */
22
+ export const getServiceCatalogContract = defineApiContract({
23
+ method: 'get',
24
+ pathResolver: () => '/service-catalog',
25
+ responsesByStatusCode: {
26
+ 200: v.nullable(serviceCatalogConnectionSchema),
27
+ ...errorResponses,
28
+ },
29
+ });
30
+ /**
31
+ * Connect or REPLACE the workspace's catalog connection.
32
+ *
33
+ * `PUT` rather than `POST`, because a credential has no meaningful partial edit and a second
34
+ * connection has no meaning: the workspace either points at a portal or it does not. Replacing
35
+ * deliberately does NOT drop what a prior connection imported: the next import reconciles
36
+ * against it, so re-entering a rotated token costs no catalog.
37
+ */
38
+ export const connectServiceCatalogContract = defineApiContract({
39
+ method: 'put',
40
+ pathResolver: () => '/service-catalog',
41
+ requestBodySchema: connectServiceCatalogSchema,
42
+ responsesByStatusCode: { 200: serviceCatalogConnectionSchema, ...errorResponses },
43
+ });
44
+ /**
45
+ * Disconnect: forget the credential AND tombstone every foundational service the connection
46
+ * produced.
47
+ *
48
+ * Tombstoning is the point rather than a side effect. Leaving the imported services behind
49
+ * would keep handing agents an estate nothing refreshes and nothing can explain the provenance
50
+ * of, which is worse than an empty catalog because it still reads as current.
51
+ */
52
+ export const disconnectServiceCatalogContract = defineApiContract({
53
+ method: 'delete',
54
+ pathResolver: () => '/service-catalog',
55
+ responsesByStatusCode: { 204: ContractNoBody, ...errorResponses },
56
+ });
57
+ /**
58
+ * Probe the portal with the SUBMITTED credentials, before they are stored.
59
+ *
60
+ * Takes a body rather than reading the stored row, so the operator finds out that a token is
61
+ * wrong while they still have it on screen. It answers a result rather than throwing for the
62
+ * same reason every other connection test does: a refused connection is the answer.
63
+ */
64
+ export const probeServiceCatalogContract = defineApiContract({
65
+ method: 'post',
66
+ pathResolver: () => '/service-catalog/probe',
67
+ requestBodySchema: connectServiceCatalogSchema,
68
+ responsesByStatusCode: { 200: connectionTestResultSchema, ...errorResponses },
69
+ });
70
+ /** Import now, rather than waiting out the autorefresh sweep's staleness window. */
71
+ export const syncServiceCatalogContract = defineApiContract({
72
+ method: 'post',
73
+ pathResolver: () => '/service-catalog/sync',
74
+ requestBodySchema: ContractNoBody,
75
+ responsesByStatusCode: { 200: serviceCatalogSyncResultSchema, ...errorResponses },
76
+ });
77
+ //# sourceMappingURL=service-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-catalog.js","sourceRoot":"","sources":["../../src/routes/service-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,8EAA8E;AAC9E,mEAAmE;AACnE,wFAAwF;AACxF,2EAA2E;AAC3E,EAAE;AACF,yFAAyF;AACzF,sFAAsF;AACtF,0FAA0F;AAC1F,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;IACzD,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,GAAG,EAAE,CAAC,kBAAkB;IACtC,qBAAqB,EAAE;QACrB,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAC/C,GAAG,cAAc;KAClB;CACF,CAAC,CAAA;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,iBAAiB,CAAC;IAC7D,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,GAAG,EAAE,CAAC,kBAAkB;IACtC,iBAAiB,EAAE,2BAA2B;IAC9C,qBAAqB,EAAE,EAAE,GAAG,EAAE,8BAA8B,EAAE,GAAG,cAAc,EAAE;CAClF,CAAC,CAAA;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,iBAAiB,CAAC;IAChE,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,GAAG,EAAE,CAAC,kBAAkB;IACtC,qBAAqB,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE;CAClE,CAAC,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;IAC3D,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,GAAG,EAAE,CAAC,wBAAwB;IAC5C,iBAAiB,EAAE,2BAA2B;IAC9C,qBAAqB,EAAE,EAAE,GAAG,EAAE,0BAA0B,EAAE,GAAG,cAAc,EAAE;CAC9E,CAAC,CAAA;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;IAC1D,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,GAAG,EAAE,CAAC,uBAAuB;IAC3C,iBAAiB,EAAE,cAAc;IACjC,qBAAqB,EAAE,EAAE,GAAG,EAAE,8BAA8B,EAAE,GAAG,cAAc,EAAE;CAClF,CAAC,CAAA"}
@@ -329,6 +329,7 @@ export declare const approveVisualConfirmContract: {
329
329
  readonly status: v.PicklistSchema<["provisioning", "ready", "failed", "expired", "tearing_down", "torn_down"], undefined>;
330
330
  readonly expiresAt: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
331
331
  readonly lastError: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
332
+ readonly statusNote: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
332
333
  readonly provisionType: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["kubernetes", "docker-compose", "cloudflare", "custom", "infraless"], undefined>, undefined>, undefined>;
333
334
  readonly engine: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["local-docker", "local-k3s", "remote-kubernetes", "cloudflare", "remote-custom", "none"], undefined>, undefined>, undefined>;
334
335
  }, undefined>, undefined>, undefined>;
@@ -710,6 +711,7 @@ export declare const approveVisualConfirmContract: {
710
711
  readonly enabled: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
711
712
  readonly maxAttempts: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 5, undefined>]>, undefined>;
712
713
  }, undefined>, undefined>;
714
+ readonly environmentInvestigation: v.OptionalSchema<v.GenericSchema<unknown, import("../environment-investigation.js").EnvironmentInvestigationConfig>, undefined>;
713
715
  readonly gateConfig: v.OptionalSchema<v.ObjectSchema<{
714
716
  readonly approvers: v.OptionalSchema<v.ObjectSchema<{
715
717
  readonly roles: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["admin", "member", "viewer"], undefined>, undefined>, undefined>;
@@ -1126,6 +1128,7 @@ export declare const approveVisualConfirmContract: {
1126
1128
  readonly summary: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
1127
1129
  }, undefined>, undefined>, undefined>, undefined>;
1128
1130
  }, undefined>, undefined>;
1131
+ readonly environmentInvestigation: v.OptionalSchema<v.GenericSchema<unknown, import("../environment-investigation.js").EnvironmentInvestigationState>, undefined>;
1129
1132
  readonly disposeEnvs: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
1130
1133
  readonly status: v.PicklistSchema<["reclaimed", "failed", "none"], undefined>;
1131
1134
  readonly environmentId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
@@ -1561,6 +1564,7 @@ export declare const requestVisualConfirmFixContract: {
1561
1564
  readonly status: v.PicklistSchema<["provisioning", "ready", "failed", "expired", "tearing_down", "torn_down"], undefined>;
1562
1565
  readonly expiresAt: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
1563
1566
  readonly lastError: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
1567
+ readonly statusNote: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
1564
1568
  readonly provisionType: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["kubernetes", "docker-compose", "cloudflare", "custom", "infraless"], undefined>, undefined>, undefined>;
1565
1569
  readonly engine: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["local-docker", "local-k3s", "remote-kubernetes", "cloudflare", "remote-custom", "none"], undefined>, undefined>, undefined>;
1566
1570
  }, undefined>, undefined>, undefined>;
@@ -1942,6 +1946,7 @@ export declare const requestVisualConfirmFixContract: {
1942
1946
  readonly enabled: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1943
1947
  readonly maxAttempts: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 5, undefined>]>, undefined>;
1944
1948
  }, undefined>, undefined>;
1949
+ readonly environmentInvestigation: v.OptionalSchema<v.GenericSchema<unknown, import("../environment-investigation.js").EnvironmentInvestigationConfig>, undefined>;
1945
1950
  readonly gateConfig: v.OptionalSchema<v.ObjectSchema<{
1946
1951
  readonly approvers: v.OptionalSchema<v.ObjectSchema<{
1947
1952
  readonly roles: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["admin", "member", "viewer"], undefined>, undefined>, undefined>;
@@ -2358,6 +2363,7 @@ export declare const requestVisualConfirmFixContract: {
2358
2363
  readonly summary: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
2359
2364
  }, undefined>, undefined>, undefined>, undefined>;
2360
2365
  }, undefined>, undefined>;
2366
+ readonly environmentInvestigation: v.OptionalSchema<v.GenericSchema<unknown, import("../environment-investigation.js").EnvironmentInvestigationState>, undefined>;
2361
2367
  readonly disposeEnvs: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
2362
2368
  readonly status: v.PicklistSchema<["reclaimed", "failed", "none"], undefined>;
2363
2369
  readonly environmentId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
@@ -2791,6 +2797,7 @@ export declare const recaptureVisualConfirmContract: {
2791
2797
  readonly status: v.PicklistSchema<["provisioning", "ready", "failed", "expired", "tearing_down", "torn_down"], undefined>;
2792
2798
  readonly expiresAt: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
2793
2799
  readonly lastError: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
2800
+ readonly statusNote: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
2794
2801
  readonly provisionType: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["kubernetes", "docker-compose", "cloudflare", "custom", "infraless"], undefined>, undefined>, undefined>;
2795
2802
  readonly engine: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["local-docker", "local-k3s", "remote-kubernetes", "cloudflare", "remote-custom", "none"], undefined>, undefined>, undefined>;
2796
2803
  }, undefined>, undefined>, undefined>;
@@ -3172,6 +3179,7 @@ export declare const recaptureVisualConfirmContract: {
3172
3179
  readonly enabled: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
3173
3180
  readonly maxAttempts: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 5, undefined>]>, undefined>;
3174
3181
  }, undefined>, undefined>;
3182
+ readonly environmentInvestigation: v.OptionalSchema<v.GenericSchema<unknown, import("../environment-investigation.js").EnvironmentInvestigationConfig>, undefined>;
3175
3183
  readonly gateConfig: v.OptionalSchema<v.ObjectSchema<{
3176
3184
  readonly approvers: v.OptionalSchema<v.ObjectSchema<{
3177
3185
  readonly roles: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["admin", "member", "viewer"], undefined>, undefined>, undefined>;
@@ -3588,6 +3596,7 @@ export declare const recaptureVisualConfirmContract: {
3588
3596
  readonly summary: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
3589
3597
  }, undefined>, undefined>, undefined>, undefined>;
3590
3598
  }, undefined>, undefined>;
3599
+ readonly environmentInvestigation: v.OptionalSchema<v.GenericSchema<unknown, import("../environment-investigation.js").EnvironmentInvestigationState>, undefined>;
3591
3600
  readonly disposeEnvs: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
3592
3601
  readonly status: v.PicklistSchema<["reclaimed", "failed", "none"], undefined>;
3593
3602
  readonly environmentId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
@@ -1 +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"}
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"}
@@ -547,6 +547,7 @@ export declare const createWorkspaceContract: {
547
547
  readonly enabled: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
548
548
  readonly maxAttempts: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 5, undefined>]>, undefined>;
549
549
  }, undefined>, undefined>;
550
+ readonly environmentInvestigation: v.OptionalSchema<v.GenericSchema<unknown, import("../environment-investigation.js").EnvironmentInvestigationConfig>, undefined>;
550
551
  readonly gateConfig: v.OptionalSchema<v.ObjectSchema<{
551
552
  readonly approvers: v.OptionalSchema<v.ObjectSchema<{
552
553
  readonly roles: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["admin", "member", "viewer"], undefined>, undefined>, undefined>;
@@ -867,6 +868,7 @@ export declare const createWorkspaceContract: {
867
868
  readonly status: v.PicklistSchema<["provisioning", "ready", "failed", "expired", "tearing_down", "torn_down"], undefined>;
868
869
  readonly expiresAt: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
869
870
  readonly lastError: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
871
+ readonly statusNote: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
870
872
  readonly provisionType: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["kubernetes", "docker-compose", "cloudflare", "custom", "infraless"], undefined>, undefined>, undefined>;
871
873
  readonly engine: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["local-docker", "local-k3s", "remote-kubernetes", "cloudflare", "remote-custom", "none"], undefined>, undefined>, undefined>;
872
874
  }, undefined>, undefined>, undefined>;
@@ -1248,6 +1250,7 @@ export declare const createWorkspaceContract: {
1248
1250
  readonly enabled: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1249
1251
  readonly maxAttempts: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 5, undefined>]>, undefined>;
1250
1252
  }, undefined>, undefined>;
1253
+ readonly environmentInvestigation: v.OptionalSchema<v.GenericSchema<unknown, import("../environment-investigation.js").EnvironmentInvestigationConfig>, undefined>;
1251
1254
  readonly gateConfig: v.OptionalSchema<v.ObjectSchema<{
1252
1255
  readonly approvers: v.OptionalSchema<v.ObjectSchema<{
1253
1256
  readonly roles: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["admin", "member", "viewer"], undefined>, undefined>, undefined>;
@@ -1664,6 +1667,7 @@ export declare const createWorkspaceContract: {
1664
1667
  readonly summary: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
1665
1668
  }, undefined>, undefined>, undefined>, undefined>;
1666
1669
  }, undefined>, undefined>;
1670
+ readonly environmentInvestigation: v.OptionalSchema<v.GenericSchema<unknown, import("../environment-investigation.js").EnvironmentInvestigationState>, undefined>;
1667
1671
  readonly disposeEnvs: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
1668
1672
  readonly status: v.PicklistSchema<["reclaimed", "failed", "none"], undefined>;
1669
1673
  readonly environmentId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
@@ -4158,6 +4162,7 @@ export declare const getWorkspaceContract: {
4158
4162
  readonly enabled: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
4159
4163
  readonly maxAttempts: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 5, undefined>]>, undefined>;
4160
4164
  }, undefined>, undefined>;
4165
+ readonly environmentInvestigation: v.OptionalSchema<v.GenericSchema<unknown, import("../environment-investigation.js").EnvironmentInvestigationConfig>, undefined>;
4161
4166
  readonly gateConfig: v.OptionalSchema<v.ObjectSchema<{
4162
4167
  readonly approvers: v.OptionalSchema<v.ObjectSchema<{
4163
4168
  readonly roles: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["admin", "member", "viewer"], undefined>, undefined>, undefined>;
@@ -4478,6 +4483,7 @@ export declare const getWorkspaceContract: {
4478
4483
  readonly status: v.PicklistSchema<["provisioning", "ready", "failed", "expired", "tearing_down", "torn_down"], undefined>;
4479
4484
  readonly expiresAt: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
4480
4485
  readonly lastError: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
4486
+ readonly statusNote: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
4481
4487
  readonly provisionType: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["kubernetes", "docker-compose", "cloudflare", "custom", "infraless"], undefined>, undefined>, undefined>;
4482
4488
  readonly engine: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["local-docker", "local-k3s", "remote-kubernetes", "cloudflare", "remote-custom", "none"], undefined>, undefined>, undefined>;
4483
4489
  }, undefined>, undefined>, undefined>;
@@ -4859,6 +4865,7 @@ export declare const getWorkspaceContract: {
4859
4865
  readonly enabled: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
4860
4866
  readonly maxAttempts: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 5, undefined>]>, undefined>;
4861
4867
  }, undefined>, undefined>;
4868
+ readonly environmentInvestigation: v.OptionalSchema<v.GenericSchema<unknown, import("../environment-investigation.js").EnvironmentInvestigationConfig>, undefined>;
4862
4869
  readonly gateConfig: v.OptionalSchema<v.ObjectSchema<{
4863
4870
  readonly approvers: v.OptionalSchema<v.ObjectSchema<{
4864
4871
  readonly roles: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["admin", "member", "viewer"], undefined>, undefined>, undefined>;
@@ -5275,6 +5282,7 @@ export declare const getWorkspaceContract: {
5275
5282
  readonly summary: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
5276
5283
  }, undefined>, undefined>, undefined>, undefined>;
5277
5284
  }, undefined>, undefined>;
5285
+ readonly environmentInvestigation: v.OptionalSchema<v.GenericSchema<unknown, import("../environment-investigation.js").EnvironmentInvestigationState>, undefined>;
5278
5286
  readonly disposeEnvs: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
5279
5287
  readonly status: v.PicklistSchema<["reclaimed", "failed", "none"], undefined>;
5280
5288
  readonly environmentId: v.OptionalSchema<v.NullableSchema<v.StringSchema<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;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"}
@@ -253,6 +253,14 @@ export interface RunEnvironmentObservation {
253
253
  expiresAt: number | null;
254
254
  /** The provider's own cause, where the observing producer recorded one. */
255
255
  lastError: string | null;
256
+ /**
257
+ * The provider's own account of a state it has not left yet, where the observing producer
258
+ * recorded one. Carried beside `lastError` rather than folded into it because the live
259
+ * environment a run is still standing up is precisely the one with no cause to state: without
260
+ * this, the row on the card that is about a spin-up in progress has nothing to say for exactly
261
+ * as long as the spin-up takes.
262
+ */
263
+ statusNote: string | null;
256
264
  source: 'projection' | 'human_test';
257
265
  /**
258
266
  * True when a LATER deploy of the same service frame replaced this environment.