@pstdio/workbench 0.11.4 → 0.35.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.
@@ -1,1875 +0,0 @@
1
- import { jsx as f } from "react/jsx-runtime";
2
- import { c as G } from "react/compiler-runtime";
3
- import { Icon as Wt, Stack as nt } from "@chakra-ui/react";
4
- import { TagSettingsPanel as Ft } from "@pstdio/ui";
5
- import { useState as ot, useEffect as Gt } from "react";
6
- import * as Zt from "lucide-react";
7
- import { useStore as Jt } from "zustand";
8
- import { z as t } from "zod";
9
- const Qt = (n) => n.split(/[^a-zA-Z0-9]+/).filter(Boolean).map((e) => `${e.charAt(0).toUpperCase()}${e.slice(1)}`).join(""), Xt = (n) => {
10
- const e = Qt(n), i = [n, e, `${e}Icon`];
11
- for (const a of i) {
12
- const s = Zt[a];
13
- if (s && (typeof s == "function" || typeof s == "object"))
14
- return s;
15
- }
16
- }, Yt = (n) => {
17
- const e = G(10);
18
- let i, a, s;
19
- e[0] !== n ? ({
20
- name: i,
21
- size: s,
22
- ...a
23
- } = n, e[0] = n, e[1] = i, e[2] = a, e[3] = s) : (i = e[1], a = e[2], s = e[3]);
24
- const p = s === void 0 ? 14 : s;
25
- if (!i)
26
- return null;
27
- let c;
28
- e[4] !== i ? (c = Xt(i), e[4] = i, e[5] = c) : c = e[5];
29
- const d = c;
30
- if (!d)
31
- return null;
32
- const g = typeof p == "number" ? `${p}px` : p;
33
- let u;
34
- return e[6] !== d || e[7] !== a || e[8] !== g ? (u = /* @__PURE__ */ f(Wt, { as: d, boxSize: g, "aria-hidden": "true", ...a }), e[6] = d, e[7] = a, e[8] = g, e[9] = u) : u = e[9], u;
35
- }, te = (n, e) => Jt(n, e), ee = (n) => ({
36
- id: n.id,
37
- name: n.label,
38
- color: n.color,
39
- icon: n.icon,
40
- sortOrder: n.sortOrder,
41
- isDefault: n.isDefault,
42
- actions: [...n.actions ?? []]
43
- }), ne = (n, e) => [...n ?? []].sort().join("|") === [...e ?? []].sort().join("|"), oe = (n, e) => n.label !== e.name || n.color !== e.color || n.icon !== e.icon || n.isDefault !== e.isDefault || !ne(n.actions, e.actions), ie = (n) => ({
44
- id: n.id,
45
- label: n.name,
46
- color: n.color,
47
- icon: n.icon,
48
- sortOrder: n.sortOrder,
49
- isDefault: n.isDefault,
50
- actions: [...n.actions ?? []]
51
- }), ae = (n) => {
52
- const e = G(23), {
53
- statusSet: i,
54
- workbench: a
55
- } = n;
56
- let s;
57
- e[0] !== i.id || e[1] !== a.statuses ? (s = () => {
58
- const y = a.statuses.getStatuses(i.id);
59
- return y ? [...y] : void 0;
60
- }, e[0] = i.id, e[1] = a.statuses, e[2] = s) : s = e[2];
61
- const [p, c] = ot(s), [d, g] = ot();
62
- let u;
63
- e[3] !== i.id || e[4] !== a.statuses ? (u = () => {
64
- let y = !0;
65
- const O = a.statuses.getStatuses(i.id);
66
- return c(O ? [...O] : void 0), g(void 0), a.statuses.load(i.id).then((M) => {
67
- y && c([...M]);
68
- }, (M) => {
69
- y && g(M);
70
- }), () => {
71
- y = !1;
72
- };
73
- }, e[3] = i.id, e[4] = a.statuses, e[5] = u) : u = e[5];
74
- let h;
75
- e[6] !== i.id || e[7] !== a ? (h = [i.id, a], e[6] = i.id, e[7] = a, e[8] = h) : h = e[8], Gt(u, h);
76
- let P;
77
- e[9] !== i.id || e[10] !== a.statuses ? (P = async (y) => {
78
- const O = y.drafts.map(ie);
79
- c([...await a.statuses.save(i.id, O)]);
80
- }, e[9] = i.id, e[10] = a.statuses, e[11] = P) : P = e[11];
81
- const D = P, N = !i.save, z = i.save ? void 0 : "This status set is read-only.";
82
- let x;
83
- e[12] !== i.actions ? (x = i.actions?.map(re), e[12] = i.actions, e[13] = x) : x = e[13];
84
- const K = `Unable to update ${i.title}`;
85
- let T;
86
- return e[14] !== d || e[15] !== D || e[16] !== i.title || e[17] !== p || e[18] !== N || e[19] !== z || e[20] !== x || e[21] !== K ? (T = /* @__PURE__ */ f(Ft, { values: p, loadError: d, onSave: D, toEditorValue: ee, valueNeedsUpdate: oe, readOnly: N, title: i.title, description: z, actionOptions: x, actionsLabel: "Commands", framed: !0, showColumnHeaders: !0, valueColumnLabel: "State", showDefault: !0, errorTitle: K, addLabel: "Add state", addName: "New status", resetLabel: "Reset", saveLabel: "Save", deleteHeadline: "Delete status?", deleteNotificationText: se, deleteButtonText: "Delete status" }), e[14] = d, e[15] = D, e[16] = i.title, e[17] = p, e[18] = N, e[19] = z, e[20] = x, e[21] = K, e[22] = T) : T = e[22], T;
87
- }, ti = (n) => {
88
- const e = G(12), {
89
- workbench: i
90
- } = n;
91
- te(i.statuses.store, le);
92
- let a, s, p, c, d;
93
- if (e[0] !== i) {
94
- const u = i.statuses.listStatusSets();
95
- a = nt, s = "none", p = "full", c = "bg", d = u.map((h) => /* @__PURE__ */ f(nt, { "data-testid": `workflow-status-set-${h.id}`, gap: "none", children: /* @__PURE__ */ f(ae, { workbench: i, statusSet: h }) }, h.id)), e[0] = i, e[1] = a, e[2] = s, e[3] = p, e[4] = c, e[5] = d;
96
- } else
97
- a = e[1], s = e[2], p = e[3], c = e[4], d = e[5];
98
- let g;
99
- return e[6] !== a || e[7] !== s || e[8] !== p || e[9] !== c || e[10] !== d ? (g = /* @__PURE__ */ f(a, { gap: s, minH: p, bg: c, children: d }), e[6] = a, e[7] = s, e[8] = p, e[9] = c, e[10] = d, e[11] = g) : g = e[11], g;
100
- };
101
- function re(n) {
102
- return {
103
- value: n.id,
104
- label: n.label,
105
- icon: n.icon ? /* @__PURE__ */ f(Yt, { name: n.icon, size: 13 }) : void 0
106
- };
107
- }
108
- function se(n) {
109
- return `This will delete the "${n.name}" status.`;
110
- }
111
- function le(n) {
112
- return n.statusSets;
113
- }
114
- const ut = t.string(), ce = t.enum(["user", "agent", "system"]), de = t.enum(["ui", "api", "hook", "system", "agent"]), pe = t.object({
115
- id: t.string(),
116
- project_id: t.string(),
117
- resource_type: ut,
118
- resource_id: t.string(),
119
- source_extension_id: t.string().nullable(),
120
- event_type: t.string(),
121
- actor_type: ce,
122
- actor_id: t.string().nullable(),
123
- source: de,
124
- summary: t.string(),
125
- payload_json: t.record(t.string(), t.unknown()),
126
- created_at: t.string()
127
- }), me = t.object({
128
- event_type: t.string().optional(),
129
- from: t.string().optional(),
130
- to: t.string().optional(),
131
- cursor: t.string().optional(),
132
- limit: t.coerce.number().int().optional()
133
- });
134
- me.extend({
135
- resource_type: ut.optional()
136
- });
137
- t.object({
138
- events: t.array(pe),
139
- next_cursor: t.string().nullable()
140
- });
141
- const ge = t.enum(["INSTALLED", "NOT_FOUND"]), ue = t.object({
142
- dir: t.string(),
143
- global_dir: t.string()
144
- }), it = t.union([t.string(), t.object({
145
- $l10n: t.string(),
146
- default: t.string().optional()
147
- })]), bt = t.object({
148
- label: it.optional(),
149
- description: it.optional(),
150
- required: t.boolean().optional(),
151
- metadata: t.record(t.string(), t.unknown()).optional()
152
- }), be = t.object({
153
- label: t.string(),
154
- value: t.string(),
155
- icon: t.string().optional()
156
- }), he = bt.extend({
157
- type: t.literal("select"),
158
- defaultValue: t.string().optional(),
159
- options: t.array(be)
160
- }), ye = bt.extend({
161
- type: t.literal("boolean"),
162
- defaultValue: t.boolean().optional()
163
- }), ht = t.union([he, ye]), je = t.record(t.string(), ht);
164
- t.object({
165
- id: t.string(),
166
- name: t.string(),
167
- availability: t.object({
168
- type: ge
169
- }),
170
- /** Present when the harness declares skill directories. */
171
- skills: ue.optional(),
172
- /** Present when the harness declares discrete run params. */
173
- params: je.optional()
174
- });
175
- t.object({
176
- id: t.string(),
177
- label: t.string().optional(),
178
- description: t.string().optional(),
179
- isDefault: t.boolean().optional(),
180
- paramOverrides: t.record(t.string(), ht.nullable()).optional()
181
- });
182
- const r = t.record(t.string(), t.unknown()), yt = t.record(t.string(), t.json()).meta({
183
- type: "object",
184
- additionalProperties: !0
185
- }), Se = t.object({
186
- $l10n: t.string(),
187
- default: t.string().optional()
188
- }), o = t.union([t.string(), Se]), xe = t.enum(["global", "project"]), fe = t.enum(["boolean", "number", "string", "array", "object"]), ke = t.enum(["stored", "default"]), ve = t.enum(["info", "warning", "error"]), jt = t.object({
189
- code: t.string(),
190
- severity: ve,
191
- message: t.string(),
192
- extensionId: t.string().optional(),
193
- commandId: t.string().optional(),
194
- sourcePath: t.string().optional(),
195
- metadata: r.optional()
196
- }), we = t.object({
197
- id: t.string(),
198
- name: t.string(),
199
- displayName: t.string(),
200
- extensionInstanceId: t.string().optional(),
201
- installedExtensionId: t.string().optional(),
202
- installName: t.string().optional(),
203
- version: t.string().optional(),
204
- description: t.string().optional(),
205
- sourcePath: t.string()
206
- }), H = t.object({
207
- kind: t.literal("package-asset"),
208
- path: t.string(),
209
- baseUrl: t.string()
210
- }), St = t.enum(["first", "default", "last"]), Ie = t.enum(["menu", "panel", "settings", "renderer", "kanbanRenderer", "dataTableRenderer"]), Z = t.enum(["cli", "dashboard", "api", "schedule", "event", "automation", "command-panel"]), J = t.object({
211
- mode: t.union([t.string(), t.array(t.string())]).optional(),
212
- source: t.array(Z).optional(),
213
- viewId: t.union([t.string(), t.array(t.string())]).optional(),
214
- resourceType: t.array(t.string()).optional(),
215
- metadata: r.optional()
216
- }), xt = t.object({
217
- entry: H,
218
- title: o.optional(),
219
- /** Host capabilities the webview is allowed to invoke through the bridge. */
220
- capabilities: t.array(t.string()).optional()
221
- }), ft = xt.extend({
222
- /** API-served URL of the bridge runtime HTML the dashboard mounts in the iframe. */
223
- runtimeUrl: t.string(),
224
- /** API-served URL of the bundled extension module the bridge runtime dynamically imports. */
225
- moduleUrl: t.string(),
226
- /** API-served URLs of CSS files the bridge runtime should inject before mounting the module. */
227
- styles: t.array(t.string()).optional()
228
- }), kt = t.object({
229
- id: t.string(),
230
- extensionId: t.string(),
231
- title: o,
232
- description: o.optional(),
233
- format: t.literal("vscode-color-theme"),
234
- mode: t.enum(["light", "dark"]),
235
- source: H,
236
- tokens: t.record(t.string(), t.string()),
237
- monacoTheme: t.object({
238
- base: t.enum(["vs", "vs-dark"]),
239
- inherit: t.literal(!0),
240
- rules: t.array(t.record(t.string(), t.unknown())),
241
- colors: t.record(t.string(), t.string())
242
- })
243
- }), vt = t.object({
244
- id: t.string(),
245
- extensionId: t.string(),
246
- title: o,
247
- description: o.optional(),
248
- format: t.literal("vscode-file-icon-theme"),
249
- source: H,
250
- definitions: r,
251
- fileExtensions: t.record(t.string(), t.string()),
252
- fileNames: t.record(t.string(), t.string()),
253
- defaults: t.object({
254
- file: t.string().optional(),
255
- folder: t.string().optional()
256
- }).default({}),
257
- fonts: t.array(t.object({
258
- fontFamily: t.string(),
259
- src: t.array(t.object({
260
- url: t.string(),
261
- format: t.string().optional()
262
- })),
263
- weight: t.string().optional(),
264
- style: t.string().optional()
265
- })).default([])
266
- }), wt = t.object({
267
- extensionId: t.string(),
268
- defaultLocale: t.string(),
269
- bundles: t.record(t.string(), t.record(t.string(), t.string()))
270
- }), _e = t.object({
271
- id: t.string(),
272
- extensionId: t.string(),
273
- relativePath: t.string(),
274
- fullPath: t.string(),
275
- label: o
276
- }), Re = ["workbench.nav.actions", "workbench.nav.overflow"], Pe = ["workbench.left.tree", "workbench.main.left.tree", "workbench.main.right.tree"], Te = ["nav", "activity", "sidenav", "main-header", "main", "secondary-header", "secondary", "side-header", "side", "status", "overlay"], Oe = ["workbench.main", "workbench.main.left", "workbench.main.right", "workbench.secondary"], Ae = ["workbench.settings"], Ee = ["project", "global"], Ce = ["workbench.left", "workbench.main.left", "workbench.main", "workbench.main.right", "workbench.secondary"], It = t.enum(Re), Ve = t.enum(Pe);
277
- t.enum(Te);
278
- const He = t.enum(Oe), _t = t.enum(Ae);
279
- t.enum(Ce);
280
- const De = t.union([It, Ve, He, _t]), Rt = t.enum(Ee), Ne = t.object({
281
- id: t.string(),
282
- extensionId: t.string(),
283
- title: o,
284
- description: o.optional(),
285
- cliPath: t.string().optional(),
286
- cliAliases: t.array(t.string()).optional(),
287
- examples: t.array(t.string()).optional(),
288
- automation: t.boolean().optional(),
289
- mutating: t.boolean().optional(),
290
- params: t.record(t.string(), t.object({
291
- type: t.string()
292
- }).catchall(t.unknown())).optional()
293
- }), ze = t.record(t.string(), t.object({
294
- type: t.string()
295
- }).catchall(t.unknown())), Ke = t.object({
296
- id: t.string(),
297
- extensionId: t.string(),
298
- commandId: t.string()
299
- }), Me = t.object({
300
- id: t.string(),
301
- extensionId: t.string(),
302
- eventId: t.string()
303
- }), $e = t.object({
304
- id: t.string(),
305
- extensionId: t.string(),
306
- cron: t.string(),
307
- commandId: t.string()
308
- }), Be = t.object({
309
- id: t.string(),
310
- localId: t.string(),
311
- extensionId: t.string(),
312
- extensionInstanceId: t.string().optional(),
313
- title: o,
314
- cron: t.string(),
315
- commandId: t.string(),
316
- enabled: t.boolean()
317
- }), Ue = t.object({
318
- id: t.string(),
319
- extensionId: t.string(),
320
- commandId: t.string(),
321
- slotId: t.string(),
322
- target: It.optional(),
323
- label: o,
324
- group: t.string().optional(),
325
- placement: St.optional(),
326
- icon: t.string().optional(),
327
- presentation: t.enum(["menu-item", "button", "icon-button"]).optional(),
328
- params: r.optional(),
329
- when: J.optional()
330
- }), Le = t.object({
331
- id: t.string(),
332
- extensionId: t.string(),
333
- commandId: t.string(),
334
- label: o,
335
- group: t.string().optional(),
336
- placement: St.optional(),
337
- icon: t.string().optional(),
338
- params: r.optional(),
339
- when: J.optional()
340
- }), qe = t.object({
341
- version: t.number().int().positive(),
342
- since: t.string().optional()
343
- }), We = t.object({
344
- host: t.literal("dashboard"),
345
- hostVersion: t.string(),
346
- capabilities: t.record(t.string(), qe)
347
- }), Fe = t.object({
348
- status: t.enum(["verified", "unverified"]),
349
- host: We.optional(),
350
- diagnostics: t.array(jt)
351
- }), Ge = ["sidenav", "main", "secondary", "side"], q = ["main", "secondary", "side"], Ze = t.object({
352
- id: t.string(),
353
- localId: t.string(),
354
- extensionId: t.string(),
355
- label: o,
356
- authType: t.enum(["bearer", "header"]),
357
- supportsCheck: t.boolean()
358
- }), Je = t.object({
359
- id: t.string(),
360
- extensionId: t.string(),
361
- connectionId: t.string(),
362
- baseUrl: t.string(),
363
- authType: t.enum(["bearer", "header"]),
364
- configured: t.boolean(),
365
- lastCheck: t.object({
366
- ok: t.boolean(),
367
- status: t.number().int().nullable(),
368
- error: t.string().nullable(),
369
- checkedAt: t.string()
370
- }).nullable(),
371
- updatedAt: t.string()
372
- });
373
- t.object({
374
- baseUrl: t.url(),
375
- secret: t.string().optional()
376
- });
377
- t.object({
378
- connections: t.array(Je)
379
- });
380
- const b = t.object({
381
- shorthand: t.string().optional(),
382
- type: t.string(),
383
- id: t.string(),
384
- projectId: t.string().optional(),
385
- label: t.string().optional(),
386
- icon: t.string().optional(),
387
- extensionId: t.string().optional(),
388
- metadata: yt.optional()
389
- }), Pt = t.object({
390
- projectId: t.string(),
391
- repoId: t.string(),
392
- path: t.string(),
393
- remote: t.string().nullable().optional(),
394
- role: t.enum(["default", "selected", "workspace"]).optional()
395
- }), Tt = t.object({
396
- id: t.string(),
397
- kind: Ie,
398
- context: r
399
- }), Ot = t.object({
400
- target: De,
401
- mode: t.string().optional(),
402
- projectId: t.string().optional(),
403
- resource: b.optional()
404
- });
405
- t.object({
406
- rendererId: t.string(),
407
- projectId: t.string().optional(),
408
- modeId: t.string().optional(),
409
- resource: b.optional(),
410
- invocation: t.object({
411
- placement: t.enum(["visible", "background"])
412
- }).optional()
413
- });
414
- t.object({
415
- projectId: t.string().min(1),
416
- workspaceId: t.string().optional(),
417
- params: r.optional(),
418
- resource: b.optional(),
419
- attachment: Ot.optional(),
420
- slot: Tt.optional(),
421
- repo: Pt.optional(),
422
- source: Z.optional(),
423
- metadata: r.optional()
424
- });
425
- t.object({
426
- workspaceId: t.string().optional(),
427
- params: r.optional(),
428
- resource: b.optional(),
429
- attachment: Ot.optional(),
430
- slot: Tt.optional(),
431
- repo: Pt.optional(),
432
- source: Z.optional(),
433
- metadata: r.optional()
434
- });
435
- t.object({
436
- eventId: t.string().min(1),
437
- payload: r
438
- }).strict();
439
- const Qe = t.object({
440
- name: t.string().optional(),
441
- message: t.string(),
442
- stack: t.string().optional()
443
- }), Xe = t.object({
444
- type: t.enum(["info", "success", "warning", "error"]),
445
- title: t.string().optional(),
446
- message: t.string(),
447
- metadata: r.optional()
448
- }), Ye = t.object({
449
- code: t.string(),
450
- message: t.string(),
451
- severity: t.enum(["info", "warning", "error"]),
452
- extensionId: t.string().optional(),
453
- commandId: t.string().optional(),
454
- metadata: r.optional()
455
- }), tn = t.object({
456
- ok: t.boolean(),
457
- status: t.enum(["success", "rejected", "error"]),
458
- value: t.unknown().optional(),
459
- code: t.string().optional(),
460
- reason: t.string().optional(),
461
- data: r.optional(),
462
- error: Qe.optional(),
463
- notices: t.array(Xe).optional(),
464
- diagnostics: t.array(Ye).optional()
465
- });
466
- t.object({
467
- commandId: t.string(),
468
- extensionId: t.string(),
469
- eventIds: t.array(t.string()).optional(),
470
- outcome: tn
471
- });
472
- const m = {
473
- id: t.string(),
474
- name: t.string(),
475
- description: t.string().optional(),
476
- readOnly: t.boolean().optional()
477
- }, $ = {
478
- min: t.number().optional(),
479
- max: t.number().optional(),
480
- step: t.number().optional()
481
- }, At = t.strictObject({
482
- x: t.number(),
483
- y: t.number()
484
- }), Et = t.tuple([t.number(), t.number()]), at = t.union([t.string(), t.array(t.string())]), rt = t.strictObject({
485
- id: t.string(),
486
- name: t.string(),
487
- icon: t.string().optional(),
488
- color: t.string().optional(),
489
- description: t.string().optional(),
490
- disabled: t.boolean().optional()
491
- }), st = {
492
- placeholder: t.string().optional(),
493
- searchable: t.boolean().optional(),
494
- searchPlaceholder: t.string().optional(),
495
- emptyText: t.string().optional(),
496
- disabled: t.boolean().optional()
497
- }, lt = t.strictObject({
498
- src: t.string(),
499
- alt: t.string()
500
- }), W = t.union([t.string(), t.number(), t.boolean(), t.null()]), en = t.union([W, t.array(W), lt.extend({
501
- type: t.literal("image")
502
- }), t.strictObject({
503
- type: t.literal("image-gallery"),
504
- images: t.array(lt)
505
- })]), nn = t.union([W, t.array(t.string()), Et, At]), Ct = t.record(t.string(), nn), Vt = t.discriminatedUnion("type", [t.strictObject({
506
- ...m,
507
- ...$,
508
- type: t.literal("number"),
509
- defaultValue: t.number()
510
- }), t.strictObject({
511
- ...m,
512
- type: t.literal("boolean"),
513
- defaultValue: t.boolean()
514
- }), t.strictObject({
515
- ...m,
516
- type: t.literal("text"),
517
- defaultValue: t.string(),
518
- singleLine: t.boolean().optional()
519
- }), t.strictObject({
520
- ...m,
521
- type: t.literal("markdown"),
522
- defaultValue: t.string(),
523
- placeholder: t.string().optional()
524
- }), t.strictObject({
525
- ...m,
526
- ...st,
527
- type: t.literal("selection"),
528
- defaultValue: at,
529
- options: t.array(rt),
530
- multiSelect: t.boolean().optional(),
531
- clearable: t.boolean().optional(),
532
- group: t.strictObject({
533
- id: t.string(),
534
- name: t.string(),
535
- defaultValue: t.string(),
536
- options: t.array(rt),
537
- ...st
538
- }).optional()
539
- }), t.strictObject({
540
- ...m,
541
- type: t.literal("date"),
542
- defaultValue: t.string(),
543
- min: t.string().optional(),
544
- max: t.string().optional()
545
- }), t.strictObject({
546
- ...m,
547
- type: t.literal("color"),
548
- defaultValue: t.string()
549
- }), t.strictObject({
550
- ...m,
551
- type: t.literal("readOnly"),
552
- value: en
553
- }), t.strictObject({
554
- ...m,
555
- type: t.literal("resource"),
556
- defaultValue: at,
557
- options: t.array(t.strictObject({
558
- id: t.string(),
559
- name: t.string(),
560
- icon: t.string().optional(),
561
- color: t.string().optional(),
562
- description: t.string().optional(),
563
- href: t.string().optional(),
564
- ref: b.optional(),
565
- copyText: t.string().optional()
566
- })),
567
- multiSelect: t.boolean().optional(),
568
- editable: t.boolean().optional(),
569
- placeholder: t.string().optional(),
570
- emptyText: t.string().optional()
571
- }), t.strictObject({
572
- ...m,
573
- ...$,
574
- type: t.literal("range"),
575
- defaultValue: Et,
576
- min: t.number(),
577
- max: t.number(),
578
- unit: t.string().optional(),
579
- markerCount: t.number().optional()
580
- }), t.strictObject({
581
- ...m,
582
- type: t.literal("segmented"),
583
- defaultValue: t.string(),
584
- variant: t.enum(["default", "dots"]).optional(),
585
- options: t.array(t.strictObject({
586
- id: t.string(),
587
- name: t.string(),
588
- icon: t.string().optional(),
589
- indicatorColor: t.string().optional()
590
- }))
591
- }), t.strictObject({
592
- ...m,
593
- type: t.literal("actions"),
594
- defaultValue: t.string().optional(),
595
- options: t.array(t.strictObject({
596
- id: t.string(),
597
- name: t.string(),
598
- icon: t.string().optional(),
599
- disabled: t.boolean().optional()
600
- }))
601
- }), t.strictObject({
602
- ...m,
603
- type: t.literal("anchorGrid"),
604
- defaultValue: t.enum(["top-left", "top", "top-right", "left", "center", "right", "bottom-left", "bottom", "bottom-right"])
605
- }), t.strictObject({
606
- ...m,
607
- ...$,
608
- type: t.literal("vector"),
609
- defaultValue: At,
610
- coordinateMode: t.enum(["cartesian", "screen"]).optional(),
611
- xLabel: t.string().optional(),
612
- yLabel: t.string().optional()
613
- })]), on = t.strictObject({
614
- id: t.string(),
615
- title: t.string(),
616
- description: t.string().optional(),
617
- params: t.array(Vt),
618
- collapsible: t.boolean().optional(),
619
- defaultCollapsed: t.boolean().optional()
620
- }), ei = t.strictObject({
621
- params: t.array(Vt).optional(),
622
- groups: t.array(on).optional(),
623
- values: Ct.optional(),
624
- readOnly: t.boolean().optional()
625
- }), _ = t.object({
626
- id: t.string(),
627
- extensionId: t.string(),
628
- title: o,
629
- icon: t.string().optional(),
630
- resourceKind: t.string().optional(),
631
- refreshEventIds: t.array(t.string().min(1)).optional(),
632
- emptyTitle: o.optional(),
633
- emptyDescription: o.optional()
634
- }), an = _.extend({
635
- searchable: t.boolean().optional(),
636
- searchPlaceholder: o.optional(),
637
- headerHandlerId: t.string().optional(),
638
- bodyHandlerId: t.string(),
639
- childrenHandlerId: t.string().optional(),
640
- footerHandlerId: t.string().optional(),
641
- defaultExpandedSectionIds: t.array(t.string()).optional(),
642
- defaultExpandedNodeIds: t.array(t.string()).optional()
643
- }), rn = _.extend({
644
- loadHandlerId: t.string(),
645
- saveHandlerId: t.string().optional()
646
- }), sn = _.extend({
647
- queryHandlerId: t.string(),
648
- valueChangeHandlerId: t.string().optional(),
649
- applyHandlerId: t.string().optional(),
650
- resetHandlerId: t.string().optional(),
651
- defaultValues: Ct.optional()
652
- }), ct = t.object({
653
- light: t.string(),
654
- dark: t.string(),
655
- foreground: t.object({
656
- light: t.string(),
657
- dark: t.string()
658
- }).optional()
659
- }), ln = t.discriminatedUnion("type", [t.object({
660
- type: t.literal("unique")
661
- }), t.object({
662
- type: t.literal("histogram"),
663
- bins: t.number().int().positive().optional()
664
- }), t.object({
665
- type: t.literal("top-values"),
666
- limit: t.number().int().positive().optional()
667
- })]), cn = t.discriminatedUnion("type", [t.object({
668
- type: t.literal("json")
669
- }), t.object({
670
- type: t.literal("color-scale"),
671
- stops: t.array(t.object({
672
- value: t.number(),
673
- color: ct
674
- }))
675
- }), t.object({
676
- type: t.literal("categorical-color"),
677
- categories: t.array(t.object({
678
- value: t.union([t.string(), t.number(), t.boolean(), t.null()]),
679
- color: ct
680
- }))
681
- })]), dn = t.object({
682
- id: t.string(),
683
- label: o.optional(),
684
- description: o.optional(),
685
- icon: t.string().optional(),
686
- hidden: t.boolean().optional(),
687
- stat: ln.optional(),
688
- renderer: cn.optional()
689
- }), pn = t.object({
690
- id: t.string(),
691
- label: o,
692
- icon: t.string().optional(),
693
- destructive: t.boolean().optional(),
694
- commandId: t.string()
695
- }), mn = t.object({
696
- id: t.string(),
697
- label: o,
698
- icon: t.string().optional(),
699
- destructive: t.boolean().optional(),
700
- commandId: t.string()
701
- }), gn = _.extend({
702
- columns: t.array(dn).optional(),
703
- queryHandlerId: t.string(),
704
- selectionMode: t.enum(["none", "multiple"]).optional(),
705
- selectionActions: t.array(mn).optional(),
706
- rowActions: t.array(pn).optional(),
707
- rowActivationHandlerId: t.string().optional(),
708
- initialPageSize: t.number().int().positive().optional(),
709
- pageSizeOptions: t.array(t.number().int().positive()).optional()
710
- }), dt = t.object({
711
- value: t.string(),
712
- label: o,
713
- color: t.string().optional(),
714
- icon: t.string().nullable().optional()
715
- }), un = t.discriminatedUnion("kind", [t.object({
716
- kind: t.literal("enum"),
717
- options: t.array(dt)
718
- }), t.object({
719
- kind: t.literal("enum-multi"),
720
- options: t.array(dt)
721
- }), t.object({
722
- kind: t.literal("status"),
723
- statuses: t.object({
724
- extensionId: t.string().optional(),
725
- kind: t.literal("status"),
726
- id: t.string()
727
- })
728
- }), t.object({
729
- kind: t.literal("string")
730
- }), t.object({
731
- kind: t.literal("date")
732
- }), t.object({
733
- kind: t.literal("number")
734
- }), t.object({
735
- kind: t.literal("user")
736
- })]), bn = t.union([t.object({
737
- kind: t.literal("badge-list"),
738
- itemsAttributeId: t.string()
739
- }), t.object({
740
- kind: t.string()
741
- }).passthrough().refine((n) => n.kind !== "badge-list")]), hn = t.object({
742
- id: t.string(),
743
- label: o,
744
- type: un,
745
- filterable: t.boolean().optional(),
746
- groupable: t.boolean().optional(),
747
- sortable: t.boolean().optional(),
748
- displayable: t.boolean().optional(),
749
- editable: t.boolean().optional(),
750
- display: bn.optional()
751
- }), Ht = t.object({
752
- viewMode: t.enum(["board", "list"]),
753
- columnGrouping: t.string(),
754
- rowGrouping: t.string(),
755
- ordering: t.object({
756
- attributeId: t.string(),
757
- direction: t.enum(["asc", "desc"])
758
- }),
759
- displayProperties: t.array(t.string())
760
- }), yn = t.object({
761
- id: t.string(),
762
- title: o,
763
- settings: Ht,
764
- filters: t.record(t.string(), t.array(t.string())),
765
- isDefault: t.boolean().optional()
766
- }), jn = t.object({
767
- commandId: t.string(),
768
- title: o.optional(),
769
- submitLabel: o.optional(),
770
- columnParam: t.string().optional(),
771
- params: ze.optional(),
772
- attributesParam: t.string().optional(),
773
- attachments: t.object({
774
- commandId: t.string(),
775
- resourceParam: t.string(),
776
- fileParam: t.string()
777
- }).optional(),
778
- labels: t.object({
779
- cancel: o.optional(),
780
- properties: o.optional(),
781
- submitError: o.optional(),
782
- removeFile: o.optional()
783
- }).optional()
784
- }), Sn = t.object({
785
- id: t.string(),
786
- label: o,
787
- icon: t.string().optional(),
788
- commandId: t.string(),
789
- destructive: t.boolean().optional()
790
- }), xn = _.extend({
791
- extensionInstanceId: t.string().optional(),
792
- attributes: t.array(hn).optional(),
793
- queryHandlerId: t.string(),
794
- attributeChangeHandlerId: t.string().optional(),
795
- reorderHandlerId: t.string().optional(),
796
- columnActionHandlerId: t.string().optional(),
797
- createRow: jn.optional(),
798
- rowActions: t.array(Sn).optional(),
799
- rowActivationHandlerId: t.string().optional(),
800
- defaultSettings: Ht.partial().optional(),
801
- defaultFilters: t.record(t.string(), t.array(t.string())).optional(),
802
- defaultViews: t.array(yn).optional(),
803
- defaultActiveViewId: t.string().optional(),
804
- hideToolbar: t.boolean().optional()
805
- }), fn = t.object({
806
- id: t.string(),
807
- extensionId: t.string(),
808
- title: o,
809
- resourceKind: t.string().optional(),
810
- queryHandlerId: t.string(),
811
- refreshEventIds: t.array(t.string().min(1)).optional()
812
- }), I = (n) => t.object({
813
- extensionId: t.string(),
814
- kind: t.literal(n),
815
- id: t.string()
816
- }), Q = I("page"), kn = I("placement"), vn = I("mode"), A = I("view"), wn = I("resource-kind"), In = t.object({
817
- kind: t.literal("page-slot"),
818
- page: Q,
819
- id: t.string()
820
- }), _n = t.union([kn, In]), Rn = t.object({
821
- command: I("command"),
822
- params: yt.optional()
823
- }), Pn = t.object({
824
- anchors: t.array(t.object({
825
- id: t.string(),
826
- heading: t.string(),
827
- occurrence: t.number().int().nonnegative().optional()
828
- }))
829
- }), Dt = t.lazy(() => t.object({
830
- kind: t.literal("page"),
831
- page: Q,
832
- resource: b.optional(),
833
- open: t.enum(["preview", "pin"]).optional(),
834
- section: Pn.optional(),
835
- parent: Dt.optional()
836
- })).meta({
837
- id: "WorkbenchMetadataPageTarget"
838
- }), pt = t.union([Dt, t.object({
839
- kind: t.literal("panel"),
840
- panel: _n,
841
- resource: b.optional(),
842
- open: t.enum(["preview", "pin"]).optional()
843
- })]), X = t.union([pt, t.object({
844
- kind: t.literal("command"),
845
- target: Rn
846
- }), t.object({
847
- kind: t.literal("href"),
848
- href: t.string()
849
- }), t.object({
850
- kind: t.literal("compound"),
851
- targets: t.array(pt).min(1)
852
- })]), Tn = t.object({
853
- key: t.string(),
854
- ctrl: t.boolean(),
855
- shift: t.boolean(),
856
- alt: t.boolean(),
857
- meta: t.boolean(),
858
- modifiers: t.array(t.string())
859
- }), On = t.object({
860
- id: t.string(),
861
- extensionId: t.string(),
862
- action: X,
863
- /** Original chord string as authored, e.g. "mod+shift+p". */
864
- key: t.string(),
865
- /**
866
- * Platform-independent canonical chord string produced by TanStack's
867
- * `normalizeHotkey(input, "mac")`. Inputs like `cmd+P` and `mod+P`
868
- * collapse to the same value so they can be deduped at extension-check
869
- * time, matching what would happen at dispatch on macOS.
870
- */
871
- canonicalChord: t.string(),
872
- /** Result of TanStack's `parseHotkey(key, "mac")`. */
873
- parsed: Tn,
874
- platformOverrides: t.object({
875
- mac: t.string().optional(),
876
- linux: t.string().optional(),
877
- win: t.string().optional()
878
- }).optional(),
879
- when: J.optional()
880
- }), Y = t.object({
881
- mountStrategy: t.enum(["active", "keep-mounted"]).optional(),
882
- hiddenByDefault: t.boolean().optional(),
883
- headerBorderBottom: t.boolean().optional(),
884
- tab: t.object({
885
- queryHandlerId: t.string(),
886
- refreshEventIds: t.array(t.string()).optional()
887
- }).optional()
888
- }), An = t.enum(["fixed", "open", "closed"]), En = t.object({
889
- defaultPx: t.number().optional(),
890
- minPx: t.number().optional(),
891
- maxPx: t.number().optional()
892
- }), Cn = t.object({
893
- showHeader: t.boolean().optional(),
894
- size: En.optional(),
895
- collapsible: t.boolean().optional(),
896
- alwaysShowTabs: t.boolean().optional()
897
- }), Nt = t.object({
898
- kinds: t.array(wn).min(1)
899
- }).strict(), Vn = Nt.extend({
900
- view: A,
901
- cardinality: t.enum(["one", "many"]),
902
- add: X.optional()
903
- }), zt = t.discriminatedUnion("kind", [t.object({
904
- kind: t.literal("view"),
905
- view: A,
906
- presence: An
907
- }).strict(), t.object({
908
- kind: t.literal("binding"),
909
- binding: Vn
910
- }).strict()]), Hn = t.discriminatedUnion("kind", [Y.extend({
911
- kind: t.literal("view"),
912
- view: A,
913
- cardinality: t.enum(["one", "many"])
914
- }).strict(), t.object({
915
- kind: t.literal("panels"),
916
- empty: A
917
- }).strict()]), Dn = Y.extend({
918
- id: t.string(),
919
- region: t.enum(["main", "secondary", "side"]),
920
- order: t.number().optional(),
921
- item: zt,
922
- openOn: t.literal("page-resource").optional()
923
- }).strict(), Nn = t.object({
924
- id: t.string(),
925
- localId: t.string(),
926
- extensionId: t.string(),
927
- title: o,
928
- icon: t.string().optional(),
929
- path: t.string(),
930
- mode: vn,
931
- parent: Q.optional(),
932
- resource: Nt.optional(),
933
- main: Hn,
934
- slots: t.array(Dn)
935
- }), zn = t.object({
936
- id: t.string(),
937
- extensionId: t.string(),
938
- extensionInstanceId: t.string().optional(),
939
- installedExtensionId: t.string().optional(),
940
- installName: t.string().optional(),
941
- slotId: t.string(),
942
- target: _t.optional(),
943
- scope: Rt.optional(),
944
- title: o,
945
- icon: t.string().optional(),
946
- section: t.string().optional(),
947
- webview: xt
948
- }), Kt = t.object({
949
- key: t.string(),
950
- extensionId: t.string(),
951
- type: fe,
952
- scope: xe,
953
- default: t.unknown().optional(),
954
- enum: t.array(t.unknown()).optional(),
955
- title: o.optional(),
956
- description: o.optional()
957
- }), Kn = Kt.extend({
958
- value: t.unknown().optional(),
959
- source: ke
960
- });
961
- t.object({
962
- settings: t.array(Kn)
963
- });
964
- t.object({
965
- value: t.unknown()
966
- });
967
- zn.extend({
968
- webview: ft
969
- });
970
- const Mn = t.object({
971
- id: t.string(),
972
- extensionId: t.string(),
973
- title: o,
974
- scope: Rt.optional(),
975
- order: t.number().optional()
976
- }), S = (n) => t.object({
977
- extensionId: t.string(),
978
- kind: t.literal(n),
979
- id: t.string()
980
- }), E = S("command"), k = S("mode"), Mt = S("page"), $t = S("resource-kind"), $n = S("settings-section");
981
- S("status");
982
- const j = S("view"), Bt = t.object({
983
- mode: t.union([k, t.array(k)]).optional(),
984
- source: t.array(t.enum(["cli", "dashboard", "api", "schedule", "event", "automation", "command-panel"])).optional(),
985
- view: t.union([j, t.array(j)]).optional(),
986
- resourceType: t.array($t).optional(),
987
- metadata: r.optional()
988
- }), R = {
989
- id: !0,
990
- extensionId: !0,
991
- title: !0,
992
- icon: !0,
993
- resourceKind: !0
994
- }, F = t.object({
995
- id: t.string(),
996
- label: o,
997
- icon: t.string().optional(),
998
- destructive: t.boolean().optional(),
999
- command: E
1000
- }), Bn = t.object({
1001
- command: E,
1002
- title: o.optional(),
1003
- submitLabel: o.optional(),
1004
- columnParam: t.string().optional(),
1005
- params: t.record(t.string(), t.unknown()).optional(),
1006
- attributesParam: t.string().optional(),
1007
- attachments: t.object({
1008
- command: E,
1009
- resourceParam: t.string(),
1010
- fileParam: t.string()
1011
- }).optional(),
1012
- labels: t.object({
1013
- cancel: o.optional(),
1014
- properties: o.optional(),
1015
- submitError: o.optional(),
1016
- removeFile: o.optional()
1017
- }).optional()
1018
- }), Un = t.object({
1019
- kind: t.literal("webview"),
1020
- webview: ft
1021
- }), Ln = an.omit(R).extend({
1022
- kind: t.literal("tree")
1023
- }), qn = rn.omit(R).extend({
1024
- kind: t.literal("file")
1025
- }), Wn = sn.omit(R).extend({
1026
- kind: t.literal("controls")
1027
- }), Fn = xn.omit({
1028
- ...R,
1029
- createRow: !0,
1030
- rowActions: !0
1031
- }).extend({
1032
- kind: t.literal("kanban"),
1033
- createRow: Bn.optional(),
1034
- rowActions: t.array(F).optional()
1035
- }), Gn = gn.omit({
1036
- ...R,
1037
- selectionActions: !0,
1038
- rowActions: !0
1039
- }).extend({
1040
- kind: t.literal("dataTable"),
1041
- selectionActions: t.array(F).optional(),
1042
- rowActions: t.array(F).optional()
1043
- }), Zn = t.discriminatedUnion("kind", [Un, Ln, qn, Wn, Fn, Gn]), Jn = t.object({
1044
- id: t.string(),
1045
- localId: t.string(),
1046
- extensionId: t.string(),
1047
- title: o,
1048
- icon: t.string().optional(),
1049
- body: Zn
1050
- }), Qn = t.object({
1051
- id: t.string(),
1052
- localId: t.string(),
1053
- extensionId: t.string(),
1054
- label: o,
1055
- icon: t.string().optional(),
1056
- regions: t.array(t.enum(q)),
1057
- floatingPanels: t.enum(["visible", "hidden"]).optional(),
1058
- regionSettings: t.partialRecord(t.enum(Ge), Cn).optional(),
1059
- defaultTheme: S("theme").optional(),
1060
- chrome: t.partialRecord(t.enum(["nav", "sidenav", "activity", "status"]), t.union([j, t.literal(!1)])).optional()
1061
- }), Xn = Y.extend({
1062
- id: t.string(),
1063
- localId: t.string(),
1064
- extensionId: t.string(),
1065
- mode: k,
1066
- item: zt,
1067
- region: t.enum(q),
1068
- order: t.number().optional(),
1069
- movableTo: t.array(t.enum(q)).optional()
1070
- }), Yn = t.object({
1071
- id: t.string(),
1072
- extensionId: t.string(),
1073
- owner: j,
1074
- view: j,
1075
- side: t.enum(["left", "right"]),
1076
- group: t.string().optional(),
1077
- placement: t.enum(["first", "default", "last"]).optional(),
1078
- hostTreeHeader: t.enum(["default", "none"]).optional(),
1079
- hostTreeFooter: t.enum(["default", "none"]).optional()
1080
- }), to = t.object({
1081
- id: t.string(),
1082
- extensionId: t.string(),
1083
- owner: t.union([k, Mt]),
1084
- slot: t.enum(["header", "content", "footer"]),
1085
- label: o,
1086
- icon: t.string().optional(),
1087
- group: t.string().optional(),
1088
- when: Bt.optional(),
1089
- action: X
1090
- }), eo = t.object({
1091
- id: t.string(),
1092
- extensionId: t.string(),
1093
- owner: t.union([k, Mt]),
1094
- slot: t.enum(["header", "content", "footer"]),
1095
- view: j
1096
- }), no = t.object({
1097
- id: t.string(),
1098
- localId: t.string(),
1099
- extensionId: t.string(),
1100
- label: o.optional(),
1101
- icon: t.string().optional(),
1102
- menuSlots: t.array(t.object({
1103
- id: t.string(),
1104
- placement: t.enum(["header-primary", "header-overflow", "context-menu"]),
1105
- label: o.optional(),
1106
- access: t.enum(["owner", "public"]),
1107
- order: t.number().optional()
1108
- })).optional()
1109
- }), oo = t.object({
1110
- id: t.string(),
1111
- extensionId: t.string(),
1112
- view: j,
1113
- slot: t.object({
1114
- id: t.string()
1115
- }),
1116
- section: $n.optional()
1117
- }), io = t.object({
1118
- id: t.string(),
1119
- extensionId: t.string(),
1120
- view: j,
1121
- slot: t.object({
1122
- id: t.string()
1123
- }),
1124
- order: t.number().optional(),
1125
- when: Bt.optional()
1126
- }), ao = t.object({
1127
- id: t.string(),
1128
- localId: t.string(),
1129
- extensionId: t.string(),
1130
- title: o,
1131
- actions: t.array(t.object({
1132
- id: t.string(),
1133
- label: o,
1134
- icon: t.string().optional()
1135
- })).optional(),
1136
- queryHandlerId: t.string(),
1137
- saveHandlerId: t.string().optional()
1138
- }), C = t.object({
1139
- extensions: t.array(we),
1140
- commands: t.array(Ne),
1141
- menuContributions: t.array(Ue),
1142
- commandPaletteContributions: t.array(Le).optional(),
1143
- modes: t.array(Qn),
1144
- pages: t.array(Nn),
1145
- views: t.array(Jn),
1146
- viewMenus: t.array(Yn),
1147
- placements: t.array(Xn),
1148
- resourceKinds: t.array(no),
1149
- resourceHierarchyProviders: t.array(t.object({
1150
- id: t.string(),
1151
- extensionId: t.string(),
1152
- resourceKind: $t
1153
- })).optional(),
1154
- navigationItems: t.array(to),
1155
- navigationTrees: t.array(eo),
1156
- statusBarItems: t.array(io),
1157
- statuses: t.array(ao),
1158
- activityItems: t.array(t.object({
1159
- id: t.string(),
1160
- extensionId: t.string(),
1161
- title: o,
1162
- icon: t.string(),
1163
- modes: t.array(k),
1164
- placement: t.enum(["first", "default", "last"]).optional(),
1165
- command: E,
1166
- params: r.optional()
1167
- })).optional(),
1168
- settingsSections: t.array(Mn).optional(),
1169
- settingsPanels: t.array(oo),
1170
- commandPaletteResources: t.array(fn).optional(),
1171
- keybindings: t.array(On).optional(),
1172
- settingsDefinitions: t.array(Kt).optional(),
1173
- automations: t.array(Be).optional(),
1174
- connections: t.array(Ze).optional(),
1175
- harnesses: t.array(t.object({
1176
- id: t.string(),
1177
- localId: t.string(),
1178
- extensionId: t.string(),
1179
- label: o.optional()
1180
- })).optional(),
1181
- skills: t.array(t.object({
1182
- id: t.string(),
1183
- localId: t.string(),
1184
- extensionId: t.string(),
1185
- title: o.optional()
1186
- })).optional(),
1187
- templates: t.array(t.object({
1188
- id: t.string(),
1189
- localId: t.string(),
1190
- extensionId: t.string(),
1191
- title: o.optional()
1192
- })).optional(),
1193
- templateTypes: t.array(t.object({
1194
- id: t.string(),
1195
- localId: t.string(),
1196
- extensionId: t.string(),
1197
- label: o,
1198
- description: o.optional(),
1199
- order: t.number().optional(),
1200
- commands: t.object({
1201
- list: t.string(),
1202
- read: t.string(),
1203
- save: t.string(),
1204
- delete: t.string()
1205
- }).optional()
1206
- })).optional(),
1207
- themes: t.array(t.object({
1208
- id: t.string(),
1209
- localId: t.string(),
1210
- extensionId: t.string(),
1211
- title: o.optional()
1212
- })).optional(),
1213
- diagnostics: t.array(jt)
1214
- }), mt = t.object({
1215
- id: t.string(),
1216
- extensionId: t.string()
1217
- }), ro = C.pick({
1218
- extensions: !0,
1219
- commands: !0,
1220
- menuContributions: !0,
1221
- commandPaletteContributions: !0,
1222
- modes: !0,
1223
- pages: !0,
1224
- views: !0,
1225
- viewMenus: !0,
1226
- placements: !0,
1227
- resourceKinds: !0,
1228
- resourceHierarchyProviders: !0,
1229
- navigationItems: !0,
1230
- navigationTrees: !0,
1231
- statusBarItems: !0,
1232
- statuses: !0,
1233
- activityItems: !0,
1234
- settingsSections: !0,
1235
- settingsPanels: !0,
1236
- commandPaletteResources: !0,
1237
- keybindings: !0,
1238
- settingsDefinitions: !0,
1239
- diagnostics: !0
1240
- });
1241
- ro.extend({
1242
- extensionsRoot: t.string(),
1243
- extensionsRootExists: t.boolean(),
1244
- errorCount: t.number().int().nonnegative(),
1245
- warningCount: t.number().int().nonnegative(),
1246
- middlewares: t.array(Ke),
1247
- hooks: t.array(Me),
1248
- schedules: t.array($e),
1249
- artifactMounts: t.array(_e),
1250
- themes: t.array(kt),
1251
- fileIconThemes: t.array(vt),
1252
- templates: t.array(mt),
1253
- skills: t.array(mt),
1254
- hostCompatibility: Fe
1255
- });
1256
- t.object({
1257
- commands: C.shape.commands,
1258
- translations: t.array(wt).optional(),
1259
- diagnostics: C.shape.diagnostics
1260
- });
1261
- t.object({
1262
- themes: t.array(kt),
1263
- fileIconThemes: t.array(vt),
1264
- translations: t.array(wt),
1265
- diagnostics: C.shape.diagnostics
1266
- });
1267
- t.object({
1268
- displayName: t.string(),
1269
- extensionId: t.string(),
1270
- manifest: r,
1271
- name: t.string(),
1272
- sourceHash: t.string().nullable().optional(),
1273
- sourceKind: t.enum(["local_path", "git", "registry"]),
1274
- sourcePath: t.string(),
1275
- sourceRef: t.string().nullable().optional(),
1276
- version: t.string().nullable().optional()
1277
- });
1278
- t.object({
1279
- enabled: t.literal(!0),
1280
- installName: t.string(),
1281
- installedExtensionId: t.string(),
1282
- instanceId: t.string(),
1283
- name: t.string(),
1284
- projectId: t.string()
1285
- });
1286
- const tt = t.object({
1287
- id: t.string(),
1288
- projectId: t.string(),
1289
- extensionId: t.string(),
1290
- installedExtensionId: t.string(),
1291
- installName: t.string(),
1292
- name: t.string(),
1293
- displayName: t.string(),
1294
- version: t.string().nullable().optional(),
1295
- description: t.string().optional(),
1296
- sourcePath: t.string(),
1297
- scope: t.enum(["repo", "global"]),
1298
- status: t.enum(["pending", "loaded", "error", "missing", "disabled"]),
1299
- lastLoadedAt: t.string().nullable().optional(),
1300
- lastError: r.nullable().optional(),
1301
- enabled: t.boolean(),
1302
- config: t.record(t.string(), t.unknown()),
1303
- /** A newer pinned release is available for this extension's source. */
1304
- canUpgrade: t.boolean(),
1305
- /** New source is waiting in the extensions root. The project keeps running the adopted version until a person takes it. */
1306
- updateAvailable: t.boolean()
1307
- }), so = t.object({
1308
- installName: t.string(),
1309
- displayName: t.string(),
1310
- description: t.string(),
1311
- installed: t.boolean(),
1312
- origin: t.object({
1313
- kind: t.literal("git"),
1314
- url: t.string(),
1315
- path: t.string(),
1316
- ref: t.string()
1317
- }),
1318
- publisher: t.string().optional()
1319
- });
1320
- t.object({
1321
- extensions: t.array(tt),
1322
- marketplace: t.array(so)
1323
- });
1324
- t.object({
1325
- enabled: t.boolean()
1326
- });
1327
- t.object({
1328
- enabled: t.boolean()
1329
- });
1330
- t.object({
1331
- sessionId: t.string(),
1332
- title: t.string()
1333
- });
1334
- t.object({
1335
- changed: t.boolean(),
1336
- extension: tt
1337
- });
1338
- t.object({
1339
- extension: tt
1340
- });
1341
- t.object({
1342
- extensionId: t.string(),
1343
- name: t.string(),
1344
- installName: t.string(),
1345
- installedSkills: t.array(t.object({
1346
- id: t.string(),
1347
- extensionId: t.string(),
1348
- skillKey: t.string(),
1349
- installedAgents: t.array(t.string())
1350
- }))
1351
- });
1352
- const lo = t.enum(["queued", "running", "succeeded", "failed", "cancelled", "rejected"]);
1353
- t.object({
1354
- name: t.string().trim().min(1).max(120),
1355
- projectId: t.string().min(1),
1356
- principalId: t.string().uuid().optional(),
1357
- commandScopes: t.array(t.string().min(1)).min(1),
1358
- expiresInSeconds: t.number().int().positive().max(365 * 24 * 60 * 60)
1359
- }).strict();
1360
- const Ut = t.object({
1361
- id: t.string(),
1362
- principalId: t.string(),
1363
- name: t.string(),
1364
- tokenPrefix: t.string(),
1365
- projectId: t.string(),
1366
- commandScopes: t.array(t.string()),
1367
- expiresAt: t.string(),
1368
- lastUsedAt: t.string().nullable(),
1369
- revokedAt: t.string().nullable(),
1370
- createdAt: t.string()
1371
- });
1372
- Ut.extend({
1373
- token: t.string()
1374
- });
1375
- t.object({
1376
- tokens: t.array(Ut)
1377
- });
1378
- t.object({
1379
- commandId: t.string().min(1),
1380
- input: t.object({
1381
- workspaceId: t.string().optional(),
1382
- params: r.optional(),
1383
- resource: b.optional(),
1384
- metadata: r.optional()
1385
- }).strict()
1386
- }).strict();
1387
- const co = t.object({
1388
- code: t.string(),
1389
- message: t.string(),
1390
- retryable: t.boolean()
1391
- });
1392
- t.object({
1393
- id: t.string(),
1394
- projectId: t.string(),
1395
- commandId: t.string(),
1396
- status: lo,
1397
- createdAt: t.string(),
1398
- startedAt: t.string().nullable(),
1399
- finishedAt: t.string().nullable(),
1400
- result: t.unknown().nullable(),
1401
- error: co.nullable()
1402
- });
1403
- const po = t.object({
1404
- cursor: t.number().int().nonnegative(),
1405
- runId: t.string(),
1406
- type: t.string(),
1407
- payload: r,
1408
- createdAt: t.string()
1409
- });
1410
- t.object({
1411
- events: t.array(po)
1412
- });
1413
- const mo = (n, e) => ({
1414
- extensionId: "pstdio",
1415
- kind: n,
1416
- id: e
1417
- }), B = (n, e, i) => ({
1418
- id: n,
1419
- ref: mo("resource-kind", n),
1420
- label: e,
1421
- menuSlots: i
1422
- }), U = [{
1423
- id: "headerPrimary",
1424
- placement: "header-primary",
1425
- access: "public"
1426
- }, {
1427
- id: "headerOverflow",
1428
- placement: "header-overflow",
1429
- access: "public"
1430
- }], L = {
1431
- project: B("project", "Extension", U),
1432
- session: B("session", "Session", U),
1433
- workspace: B("workspace", "Workspace", U)
1434
- }, v = {
1435
- project: L.project.ref,
1436
- session: L.session.ref,
1437
- workspace: L.workspace.ref
1438
- }, gt = (n) => ({
1439
- ...n,
1440
- kind: "command"
1441
- });
1442
- Object.assign(gt, {
1443
- forExtension: (n) => (e) => gt({
1444
- extensionId: `${n.publisher}.${n.name}`,
1445
- id: e
1446
- })
1447
- });
1448
- const go = (n) => ({
1449
- ...n,
1450
- kind: "event"
1451
- }), V = (n, e) => ({
1452
- id: n,
1453
- kind: e.kind,
1454
- label: e.label,
1455
- description: e.description,
1456
- metadata: e.metadata
1457
- }), l = (n) => go({
1458
- extensionId: "pstdio",
1459
- id: n
1460
- }), w = (n, e) => V(`${n.id}.${e}`, {
1461
- kind: "menu"
1462
- });
1463
- V("project.sidenav", {
1464
- kind: "panel"
1465
- }), w(v.project, "headerPrimary"), w(v.project, "headerOverflow"), V("project.settingsPanels", {
1466
- kind: "settings"
1467
- });
1468
- w(v.session, "headerPrimary"), w(v.session, "headerOverflow");
1469
- w(v.workspace, "headerPrimary"), w(v.workspace, "headerOverflow"), V("workspace.sidenav", {
1470
- kind: "panel"
1471
- });
1472
- l("project.opened");
1473
- l("session.started"), l("session.resumed"), l("session.awaitingInput"), l("session.succeeded"), l("session.failed"), l("session.completed");
1474
- l("workspace.created"), l("workspace.provision"), l("workspace.ready"), l("workspace.archived"), l("workspace.deleted");
1475
- l("worktree.removed");
1476
- l("git.committed"), l("git.rebased"), l("git.merged"), l("git.conflicted");
1477
- t.object({
1478
- id: t.string(),
1479
- project_id: t.string(),
1480
- file_name: t.string(),
1481
- file_kind: t.string(),
1482
- storage_path: t.string(),
1483
- mime_type: t.string().nullable(),
1484
- size_bytes: t.number(),
1485
- hash: t.string().nullable(),
1486
- created_at: t.string(),
1487
- updated_at: t.string()
1488
- });
1489
- const uo = t.object({
1490
- code: t.literal("extension_setup_failed"),
1491
- extension: t.string(),
1492
- message: t.string()
1493
- });
1494
- t.object({
1495
- id: t.string(),
1496
- name: t.string(),
1497
- shorthand: t.string(),
1498
- default_agent_id: t.string().nullable(),
1499
- default_agent_model: t.string().nullable(),
1500
- startup_script: t.string().nullable(),
1501
- created_at: t.string(),
1502
- updated_at: t.string(),
1503
- deleted_at: t.string().nullable(),
1504
- extension_warnings: t.array(uo).optional()
1505
- });
1506
- t.object({
1507
- name: t.string().min(1).refine((n) => /[a-zA-Z]/.test(n), {
1508
- message: "Project name must contain at least one letter"
1509
- }),
1510
- agents: t.array(t.string().min(1)).min(1).optional()
1511
- });
1512
- t.object({
1513
- default_agent_id: t.string().min(1).nullable().optional(),
1514
- default_agent_model: t.string().min(1).nullable().optional()
1515
- }).refine((n) => Object.keys(n).length > 0, {
1516
- message: "At least one field must be provided"
1517
- });
1518
- t.object({
1519
- id: t.string(),
1520
- name: t.string(),
1521
- path: t.string(),
1522
- display_name: t.string().nullable(),
1523
- created_at: t.string(),
1524
- updated_at: t.string()
1525
- });
1526
- t.object({
1527
- name: t.string().min(1),
1528
- path: t.string().min(1)
1529
- });
1530
- const bo = {
1531
- c: "text/plain",
1532
- cc: "text/plain",
1533
- cpp: "text/plain",
1534
- cs: "text/plain",
1535
- css: "text/css",
1536
- csv: "text/csv",
1537
- cxx: "text/plain",
1538
- go: "text/plain",
1539
- h: "text/plain",
1540
- hpp: "text/plain",
1541
- html: "text/html",
1542
- java: "text/plain",
1543
- js: "application/javascript",
1544
- jsx: "text/plain",
1545
- json: "application/json",
1546
- jsonc: "application/json",
1547
- kt: "text/plain",
1548
- kts: "text/plain",
1549
- lua: "text/plain",
1550
- markdown: "text/markdown",
1551
- md: "text/markdown",
1552
- mjs: "application/javascript",
1553
- pdf: "application/pdf",
1554
- php: "text/plain",
1555
- png: "image/png",
1556
- py: "text/plain",
1557
- rb: "text/plain",
1558
- rs: "text/plain",
1559
- sh: "text/plain",
1560
- sql: "text/plain",
1561
- svg: "image/svg+xml",
1562
- swift: "text/plain",
1563
- toml: "text/plain",
1564
- ts: "text/plain",
1565
- tsx: "text/plain",
1566
- txt: "text/plain",
1567
- vue: "text/plain",
1568
- xml: "text/xml",
1569
- xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
1570
- yaml: "text/plain",
1571
- yml: "text/plain"
1572
- }, ho = Object.keys(bo);
1573
- ho.map((n) => `.${n}`).join(",");
1574
- const yo = t.object({
1575
- type: t.literal("text"),
1576
- text: t.string()
1577
- }), jo = t.object({
1578
- type: t.literal("reasoning"),
1579
- text: t.string()
1580
- }), So = t.enum(["read", "write", "execute", "network", "other"]), xo = t.enum(["pending", "running", "completed", "failed", "denied"]), fo = t.object({
1581
- type: t.literal("tool"),
1582
- tool: t.string(),
1583
- callId: t.string().optional(),
1584
- actionType: So.optional(),
1585
- status: xo.optional(),
1586
- state: t.object({
1587
- status: t.string().optional(),
1588
- input: t.unknown().optional(),
1589
- output: t.unknown().optional(),
1590
- errorText: t.string().optional(),
1591
- metadata: t.unknown().optional()
1592
- }).optional()
1593
- }), ko = t.object({
1594
- type: t.literal("step-start"),
1595
- snapshot: t.string().optional()
1596
- }), vo = t.object({
1597
- type: t.literal("step-finish"),
1598
- reason: t.string().optional(),
1599
- snapshot: t.string().optional(),
1600
- cost: t.number().optional(),
1601
- tokens: t.unknown().optional()
1602
- }), wo = t.object({
1603
- type: t.literal("patch"),
1604
- hash: t.string().optional(),
1605
- files: t.unknown().optional()
1606
- }), Io = t.object({
1607
- type: t.literal("file"),
1608
- fileId: t.string().optional(),
1609
- mediaType: t.string().optional(),
1610
- filename: t.string().optional(),
1611
- size: t.number().optional(),
1612
- url: t.string()
1613
- }), _o = t.object({
1614
- type: t.literal("loading")
1615
- }), Ro = t.object({
1616
- type: t.literal("error"),
1617
- errorType: t.enum(["timeout", "crash", "permission", "other"]),
1618
- message: t.string().optional()
1619
- }), Po = t.object({
1620
- type: t.literal("token_usage"),
1621
- inputTokens: t.number(),
1622
- outputTokens: t.number(),
1623
- cacheReadTokens: t.number().optional(),
1624
- cacheWriteTokens: t.number().optional()
1625
- }), To = t.union([yo, jo, fo, ko, vo, wo, Io, _o, Ro, Po]), Oo = t.enum(["user", "assistant", "tool", "system", "developer"]);
1626
- t.object({
1627
- id: t.string(),
1628
- role: Oo,
1629
- parts: t.array(To),
1630
- index: t.number().optional(),
1631
- createdAt: t.number().optional(),
1632
- modelId: t.string().optional(),
1633
- providerId: t.string().optional(),
1634
- tokens: t.object({
1635
- input: t.number().optional(),
1636
- output: t.number().optional(),
1637
- reasoning: t.number().optional(),
1638
- cache: t.object({
1639
- read: t.number().optional(),
1640
- write: t.number().optional()
1641
- }).optional()
1642
- }).optional()
1643
- });
1644
- const Ao = t.enum(["in_progress", "awaiting_input", "queued", "completed", "failed", "cancelled", "disconnected"]), Eo = t.union([t.string(), t.boolean()]), et = t.record(t.string(), Eo), Lt = t.object({
1645
- id: t.string(),
1646
- project_id: t.string().nullable(),
1647
- title: t.string(),
1648
- status: Ao,
1649
- archived: t.boolean(),
1650
- last_request_started: t.string().nullable(),
1651
- last_request_ended: t.string().nullable(),
1652
- agent: t.string().nullable(),
1653
- last_selected_model: t.string().nullable(),
1654
- agent_session_id: t.string().nullable(),
1655
- session_file_id: t.string().nullable(),
1656
- original_session_id: t.string().nullable(),
1657
- cwd: t.string().nullable(),
1658
- params_json: et.nullable(),
1659
- anchors_json: t.array(b),
1660
- created_at: t.string(),
1661
- updated_at: t.string()
1662
- }), qt = t.object({
1663
- file_id: t.string().min(1)
1664
- });
1665
- t.object({
1666
- file_id: t.string(),
1667
- name: t.string(),
1668
- mime_type: t.string().nullable(),
1669
- size_bytes: t.number(),
1670
- hash: t.string().nullable(),
1671
- url: t.string(),
1672
- created_at: t.string(),
1673
- updated_at: t.string()
1674
- });
1675
- t.object({
1676
- project_id: t.string().min(1),
1677
- title: t.string().min(1),
1678
- prompt: t.string().min(1).optional(),
1679
- agent: t.string().min(1).optional(),
1680
- workspace_id: t.string().optional(),
1681
- anchors: t.array(b).optional(),
1682
- attachments: t.array(qt).optional(),
1683
- model: t.string().optional(),
1684
- params: et.optional(),
1685
- original_session_id: t.string().optional()
1686
- });
1687
- const Co = t.object({
1688
- answers: t.array(t.array(t.string()))
1689
- });
1690
- t.object({
1691
- prompt: t.string().min(1).optional(),
1692
- agent: t.string().optional(),
1693
- model: t.string().optional(),
1694
- question_response: Co.optional(),
1695
- params: et.optional(),
1696
- summary_from_session_id: t.string().optional(),
1697
- summary_format: t.enum(["brief", "detailed"]).default("brief").optional(),
1698
- summary_role: t.enum(["assistant", "all"]).default("assistant").optional(),
1699
- attachments: t.array(qt).optional()
1700
- });
1701
- t.object({
1702
- id: t.string().min(1),
1703
- decision: t.enum(["approve", "deny"])
1704
- });
1705
- const Vo = t.union([t.object({
1706
- status: t.literal("dispatched")
1707
- }), t.object({
1708
- status: t.literal("queued"),
1709
- queue_position: t.number().int()
1710
- })]);
1711
- Lt.extend({
1712
- follow_up: Vo
1713
- });
1714
- t.object({
1715
- session: Lt,
1716
- messages: t.array(t.unknown())
1717
- });
1718
- t.object({
1719
- agent: t.string(),
1720
- agent_session_id: t.string(),
1721
- cwd: t.string().optional()
1722
- });
1723
- t.object({
1724
- session_id: t.string().nullable()
1725
- });
1726
- t.object({
1727
- notifications_enabled: t.boolean(),
1728
- max_concurrent_sessions: t.number().int().min(1).nullable()
1729
- });
1730
- t.object({
1731
- notifications_enabled: t.boolean().optional(),
1732
- max_concurrent_sessions: t.number().int().min(1).nullable().optional()
1733
- }).strict().refine((n) => Object.keys(n).length > 0, {
1734
- message: "Expected at least one setting"
1735
- });
1736
- const Ho = t.object({
1737
- path: t.string(),
1738
- content: t.string(),
1739
- encoding: t.literal("utf8")
1740
- }), Do = t.enum(["project", "extension"]), No = t.object({
1741
- agent_id: t.string(),
1742
- agent_name: t.string(),
1743
- installed_version: t.string().nullable(),
1744
- outdated: t.boolean()
1745
- }), zo = t.object({
1746
- id: t.string(),
1747
- project_id: t.string(),
1748
- name: t.string(),
1749
- title: t.string(),
1750
- description: t.string(),
1751
- source_kind: Do,
1752
- files: t.array(Ho),
1753
- editable: t.boolean(),
1754
- extension_instance_id: t.string().optional(),
1755
- extension_id: t.string().optional(),
1756
- installed_extension_id: t.string().optional(),
1757
- install_name: t.string().optional(),
1758
- key: t.string().optional(),
1759
- source: H.optional(),
1760
- enabled: t.boolean().optional(),
1761
- created_at: t.string(),
1762
- updated_at: t.string(),
1763
- deleted_at: t.string().nullable()
1764
- });
1765
- zo.extend({
1766
- installed_agents: t.array(t.string()),
1767
- outdated_agents: t.array(t.string()),
1768
- agent_installations: t.array(No)
1769
- });
1770
- t.object({
1771
- enabled: t.boolean().optional(),
1772
- title: t.string().min(1).optional(),
1773
- description: t.string().optional()
1774
- });
1775
- const Ko = {
1776
- version: t.number().int().positive(),
1777
- data: r
1778
- }, Mo = t.object(Ko), $o = ["provisioning", "ready", "failed", "cancelled", "archiving", "archived", "deleting", "provider_missing"], Bo = t.enum($o), Uo = t.enum(["local", "remote"]), Lo = t.object({
1779
- files: t.enum(["none", "read", "write"]),
1780
- diff: t.boolean(),
1781
- merge: t.boolean(),
1782
- rebase: t.boolean(),
1783
- archive: t.boolean(),
1784
- delete: t.boolean()
1785
- }), qo = t.object({
1786
- code: t.string(),
1787
- message: t.string(),
1788
- retryable: t.boolean(),
1789
- occurred_at: t.string()
1790
- });
1791
- t.object({
1792
- id: t.string(),
1793
- project_id: t.string(),
1794
- name: t.string(),
1795
- branch: t.string().nullable(),
1796
- worktree_path: t.string().nullable(),
1797
- provider_id: t.string(),
1798
- provider_params_json: r,
1799
- provider_ref_json: Mo.nullable(),
1800
- provider_state: Bo,
1801
- execution_kind: Uo,
1802
- provider_operation_id: t.string().nullable(),
1803
- provider_operation_kind: t.enum(["create", "cancel", "archive", "delete"]).nullable(),
1804
- provider_error_json: qo.nullable(),
1805
- provider_capabilities_json: Lo,
1806
- display_path: t.string().nullable(),
1807
- is_default: t.boolean(),
1808
- archived: t.boolean(),
1809
- workspace_shorthand: t.string(),
1810
- startup_log_file_id: t.string().nullable(),
1811
- anchors_json: t.array(b),
1812
- created_at: t.string(),
1813
- updated_at: t.string(),
1814
- deleted_at: t.string().nullable()
1815
- });
1816
- t.object({
1817
- project_id: t.string().min(1),
1818
- /** Workspace provider. Defaults to pstdio.worktree. */
1819
- provider_id: t.string().optional(),
1820
- /** Provider parameters. Built-in worktree accepts repo_id and base. */
1821
- params: r.optional(),
1822
- /** Repository to branch from. Defaults to the project's first repository. */
1823
- repo_id: t.string().optional(),
1824
- /** Base branch/ref for the new worktree. Defaults to HEAD. */
1825
- base: t.string().optional()
1826
- });
1827
- t.object({
1828
- name: t.string().trim().min(1, "Workspace name is required").max(120, "Workspace name must be 120 characters or less")
1829
- });
1830
- t.object({
1831
- removed: t.boolean()
1832
- });
1833
- const Wo = t.object({
1834
- path: t.string(),
1835
- name: t.string(),
1836
- type: t.enum(["file", "directory"]),
1837
- size: t.number().int().nonnegative().optional(),
1838
- modified_at: t.string().optional()
1839
- });
1840
- t.object({
1841
- workspace_id: t.string(),
1842
- path: t.string(),
1843
- entries: t.array(Wo),
1844
- truncated: t.boolean()
1845
- });
1846
- t.object({
1847
- workspace_id: t.string(),
1848
- path: t.string(),
1849
- file_name: t.string(),
1850
- mime_type: t.string().optional(),
1851
- size: t.number().int().nonnegative(),
1852
- encoding: t.enum(["utf8", "base64"]),
1853
- content: t.string().optional(),
1854
- data_url: t.string().optional(),
1855
- editable: t.boolean()
1856
- });
1857
- t.object({
1858
- content: t.string()
1859
- });
1860
- t.object({
1861
- destination_path: t.string().min(1)
1862
- });
1863
- t.object({
1864
- path: t.string().optional(),
1865
- query: t.string().optional(),
1866
- limit: t.number().int().positive().max(500).optional()
1867
- });
1868
- export {
1869
- Yt as W,
1870
- ti as a,
1871
- ei as b,
1872
- nn as c,
1873
- te as u
1874
- };
1875
- //# sourceMappingURL=workspaces-B9HZHIbz.js.map