@immediately-run/sandbox-protocol 0.7.6 → 0.8.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.
package/dist/sandbox.d.ts CHANGED
@@ -140,7 +140,9 @@ export declare const SUCCESS = "success";
140
140
  /** `theme` — push · host->app. polled with `request-theme`. */
141
141
  export declare const THEME = "theme";
142
142
  export interface ThemePayload {
143
+ modeId: string;
143
144
  theme: "dark" | "light";
145
+ themeKey: string;
144
146
  }
145
147
  /** `vcs-state` — push · host->app. polled with `request-vcs-state`. */
146
148
  export declare const VCS_STATE = "vcs-state";
package/dist/sandbox.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // GENERATED by scripts/generate.mjs — DO NOT EDIT.
3
3
  // Source of truth: src/descriptors.protocol.mjs (@immediately-run/sandbox-protocol)
4
- // descriptorsHash: 5931b7d64869b9a2
4
+ // descriptorsHash: d443b5ffbec18020
5
5
  //
6
6
  // The sandbox↔SDK wire vocabulary (PLATFORM_LAYERING_SPEC §2 / S1). Import the
7
7
  // constants instead of writing the string: a rename then has ONE edit site and
package/dist/sdk.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /** Every wire name this side speaks, as a union. */
2
- export type WireName = 'api-catalog' | 'auth-state' | 'chrome-state' | 'compile' | 'debug-enabled' | 'debug-log' | 'debug-query' | 'debug-query-result' | 'diagnostics' | 'dnd-cancel' | 'dropped-item' | 'editor-context' | 'form-factor' | 'fs-change' | 'host-attention' | 'invitations' | 'launch-dismiss' | 'launch-ended' | 'llm-provider' | 'metadata-update' | 'mount-add' | 'mount-remove' | 'protocol-analytics' | 'protocol-contribute' | 'protocol-dnd' | 'protocol-editor' | 'protocol-feed' | 'protocol-fetch' | 'protocol-ipc' | 'protocol-launch' | 'protocol-llm' | 'protocol-recents' | 'protocol-secrets' | 'protocol-settings' | 'protocol-spaces' | 'protocol-task' | 'protocol-theme' | 'protocol-vcs' | 'region-message' | 'request-api-catalog' | 'request-auth-state' | 'request-chrome-state' | 'request-debug-enabled' | 'request-diagnostics' | 'request-editor-context' | 'request-form-factor' | 'request-handshake' | 'request-host-attention' | 'request-invitations' | 'request-llm-provider' | 'request-mounts' | 'request-secrets-metadata' | 'request-session-mounts' | 'request-theme' | 'request-vcs-state' | 'sdk-handshake' | 'secrets-metadata' | 'session-mounts' | 'task-cancel' | 'task-complete' | 'task-input' | 'theme' | 'urlchange' | 'vcs-state';
2
+ export type WireName = 'api-catalog' | 'auth-state' | 'chrome-state' | 'compile' | 'debug-enabled' | 'debug-log' | 'debug-query' | 'debug-query-result' | 'diagnostics' | 'dnd-cancel' | 'dropped-item' | 'editor-context' | 'form-factor' | 'fs-change' | 'host-attention' | 'invitations' | 'launch-dismiss' | 'launch-ended' | 'llm-provider' | 'metadata-update' | 'mount-add' | 'mount-remove' | 'protocol-analytics' | 'protocol-contribute' | 'protocol-dnd' | 'protocol-editor' | 'protocol-feed' | 'protocol-fetch' | 'protocol-ipc' | 'protocol-launch' | 'protocol-llm' | 'protocol-recents' | 'protocol-secrets' | 'protocol-settings' | 'protocol-spaces' | 'protocol-task' | 'protocol-theme' | 'protocol-vcs' | 'region-message' | 'request-api-catalog' | 'request-auth-state' | 'request-chrome-state' | 'request-debug-enabled' | 'request-diagnostics' | 'request-editor-context' | 'request-form-factor' | 'request-handshake' | 'request-host-attention' | 'request-invitations' | 'request-llm-provider' | 'request-mounts' | 'request-secrets-metadata' | 'request-session-mounts' | 'request-theme' | 'request-theme-catalog' | 'request-vcs-state' | 'request-workspace' | 'sdk-handshake' | 'secrets-metadata' | 'session-mounts' | 'task-cancel' | 'task-complete' | 'task-input' | 'theme' | 'theme-catalog' | 'urlchange' | 'vcs-state' | 'workspace';
3
3
  /** `api-catalog` — push · host->app. polled with `request-api-catalog`. */
4
4
  export declare const API_CATALOG = "api-catalog";
5
5
  /** Read off this message today: `methods`. */
@@ -275,7 +275,8 @@ export interface ProtocolTaskInvokeParams {
275
275
  export declare const PROTOCOL_THEME = "protocol-theme";
276
276
  /** Params of `protocol-theme` method `set`. */
277
277
  export interface ProtocolThemeSetParams {
278
- theme: "dark" | "light";
278
+ mode?: string | undefined;
279
+ theme: string;
279
280
  }
280
281
  /** `protocol-vcs` — request · app->host. */
281
282
  export declare const PROTOCOL_VCS = "protocol-vcs";
@@ -315,8 +316,12 @@ export declare const REQUEST_SECRETS_METADATA = "request-secrets-metadata";
315
316
  export declare const REQUEST_SESSION_MOUNTS = "request-session-mounts";
316
317
  /** `request-theme` — poll · app->host. */
317
318
  export declare const REQUEST_THEME = "request-theme";
319
+ /** `request-theme-catalog` — poll · app->host. */
320
+ export declare const REQUEST_THEME_CATALOG = "request-theme-catalog";
318
321
  /** `request-vcs-state` — poll · app->host. */
319
322
  export declare const REQUEST_VCS_STATE = "request-vcs-state";
323
+ /** `request-workspace` — poll · app->host. */
324
+ export declare const REQUEST_WORKSPACE = "request-workspace";
320
325
  /** `sdk-handshake` — message · app->host. */
321
326
  export declare const SDK_HANDSHAKE = "sdk-handshake";
322
327
  export interface SdkHandshakePayload {
@@ -345,12 +350,18 @@ export interface TaskInputPayload {
345
350
  }
346
351
  /** `theme` — push · host->app. polled with `request-theme`. */
347
352
  export declare const THEME = "theme";
348
- /** Read off this message today: `theme`. */
353
+ /** Read off this message today: `modeId`, `theme`, `themeKey`. */
354
+ /** `theme-catalog` — push · host->app. polled with `request-theme-catalog`. */
355
+ export declare const THEME_CATALOG = "theme-catalog";
356
+ /** Read off this message today: `themes`. */
349
357
  /** `urlchange` — message · both. */
350
358
  export declare const URLCHANGE = "urlchange";
351
359
  /** `vcs-state` — push · host->app. polled with `request-vcs-state`. */
352
360
  export declare const VCS_STATE = "vcs-state";
353
361
  /** Read off this message today: `branch`, `changes`, `diffLoading`, `prs`. */
362
+ /** `workspace` — push · host->app. polled with `request-workspace`. */
363
+ export declare const WORKSPACE = "workspace";
364
+ /** Read off this message today: `workspace`. */
354
365
  /** Every wire name this side speaks, keyed by its constant. */
355
366
  export declare const WIRE_NAMES: {
356
367
  readonly API_CATALOG: "api-catalog";
@@ -407,7 +418,9 @@ export declare const WIRE_NAMES: {
407
418
  readonly REQUEST_SECRETS_METADATA: "request-secrets-metadata";
408
419
  readonly REQUEST_SESSION_MOUNTS: "request-session-mounts";
409
420
  readonly REQUEST_THEME: "request-theme";
421
+ readonly REQUEST_THEME_CATALOG: "request-theme-catalog";
410
422
  readonly REQUEST_VCS_STATE: "request-vcs-state";
423
+ readonly REQUEST_WORKSPACE: "request-workspace";
411
424
  readonly SDK_HANDSHAKE: "sdk-handshake";
412
425
  readonly SECRETS_METADATA: "secrets-metadata";
413
426
  readonly SESSION_MOUNTS: "session-mounts";
@@ -415,6 +428,8 @@ export declare const WIRE_NAMES: {
415
428
  readonly TASK_COMPLETE: "task-complete";
416
429
  readonly TASK_INPUT: "task-input";
417
430
  readonly THEME: "theme";
431
+ readonly THEME_CATALOG: "theme-catalog";
418
432
  readonly URLCHANGE: "urlchange";
419
433
  readonly VCS_STATE: "vcs-state";
434
+ readonly WORKSPACE: "workspace";
420
435
  };
package/dist/sdk.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // GENERATED by scripts/generate.mjs — DO NOT EDIT.
3
3
  // Source of truth: src/descriptors.protocol.mjs (@immediately-run/sandbox-protocol)
4
- // descriptorsHash: 5931b7d64869b9a2
4
+ // descriptorsHash: d443b5ffbec18020
5
5
  //
6
6
  // The sandbox↔SDK wire vocabulary (PLATFORM_LAYERING_SPEC §2 / S1). Import the
7
7
  // constants instead of writing the string: a rename then has ONE edit site and
@@ -10,7 +10,7 @@
10
10
  // list in the doc comment instead (R3-274e is where those grow real types).
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.REQUEST_LLM_PROVIDER = exports.REQUEST_INVITATIONS = exports.REQUEST_HOST_ATTENTION = exports.REQUEST_HANDSHAKE = exports.REQUEST_FORM_FACTOR = exports.REQUEST_EDITOR_CONTEXT = exports.REQUEST_DIAGNOSTICS = exports.REQUEST_DEBUG_ENABLED = exports.REQUEST_CHROME_STATE = exports.REQUEST_AUTH_STATE = exports.REQUEST_API_CATALOG = exports.REGION_MESSAGE = exports.PROTOCOL_VCS = exports.PROTOCOL_THEME = exports.PROTOCOL_TASK = exports.PROTOCOL_SPACES = exports.PROTOCOL_SETTINGS = exports.PROTOCOL_SECRETS = exports.PROTOCOL_RECENTS = exports.PROTOCOL_LLM = exports.PROTOCOL_LAUNCH = exports.PROTOCOL_IPC = exports.PROTOCOL_FETCH = exports.PROTOCOL_FEED = exports.PROTOCOL_EDITOR = exports.PROTOCOL_DND = exports.PROTOCOL_CONTRIBUTE = exports.PROTOCOL_ANALYTICS = exports.MOUNT_REMOVE = exports.MOUNT_ADD = exports.METADATA_UPDATE = exports.LLM_PROVIDER = exports.LAUNCH_ENDED = exports.LAUNCH_DISMISS = exports.INVITATIONS = exports.HOST_ATTENTION = exports.FS_CHANGE = exports.FORM_FACTOR = exports.EDITOR_CONTEXT = exports.DROPPED_ITEM = exports.DND_CANCEL = exports.DIAGNOSTICS = exports.DEBUG_QUERY_RESULT = exports.DEBUG_QUERY = exports.DEBUG_LOG = exports.DEBUG_ENABLED = exports.COMPILE = exports.CHROME_STATE = exports.AUTH_STATE = exports.API_CATALOG = void 0;
13
- exports.WIRE_NAMES = exports.VCS_STATE = exports.URLCHANGE = exports.THEME = exports.TASK_INPUT = exports.TASK_COMPLETE = exports.TASK_CANCEL = exports.SESSION_MOUNTS = exports.SECRETS_METADATA = exports.SDK_HANDSHAKE = exports.REQUEST_VCS_STATE = exports.REQUEST_THEME = exports.REQUEST_SESSION_MOUNTS = exports.REQUEST_SECRETS_METADATA = exports.REQUEST_MOUNTS = void 0;
13
+ exports.WIRE_NAMES = exports.WORKSPACE = exports.VCS_STATE = exports.URLCHANGE = exports.THEME_CATALOG = exports.THEME = exports.TASK_INPUT = exports.TASK_COMPLETE = exports.TASK_CANCEL = exports.SESSION_MOUNTS = exports.SECRETS_METADATA = exports.SDK_HANDSHAKE = exports.REQUEST_WORKSPACE = exports.REQUEST_VCS_STATE = exports.REQUEST_THEME_CATALOG = exports.REQUEST_THEME = exports.REQUEST_SESSION_MOUNTS = exports.REQUEST_SECRETS_METADATA = exports.REQUEST_MOUNTS = void 0;
14
14
  /** `api-catalog` — push · host->app. polled with `request-api-catalog`. */
15
15
  exports.API_CATALOG = 'api-catalog';
16
16
  /** Read off this message today: `methods`. */
@@ -132,8 +132,12 @@ exports.REQUEST_SECRETS_METADATA = 'request-secrets-metadata';
132
132
  exports.REQUEST_SESSION_MOUNTS = 'request-session-mounts';
133
133
  /** `request-theme` — poll · app->host. */
134
134
  exports.REQUEST_THEME = 'request-theme';
135
+ /** `request-theme-catalog` — poll · app->host. */
136
+ exports.REQUEST_THEME_CATALOG = 'request-theme-catalog';
135
137
  /** `request-vcs-state` — poll · app->host. */
136
138
  exports.REQUEST_VCS_STATE = 'request-vcs-state';
139
+ /** `request-workspace` — poll · app->host. */
140
+ exports.REQUEST_WORKSPACE = 'request-workspace';
137
141
  /** `sdk-handshake` — message · app->host. */
138
142
  exports.SDK_HANDSHAKE = 'sdk-handshake';
139
143
  /** `secrets-metadata` — push · host->app. polled with `request-secrets-metadata`. */
@@ -150,12 +154,18 @@ exports.TASK_COMPLETE = 'task-complete';
150
154
  exports.TASK_INPUT = 'task-input';
151
155
  /** `theme` — push · host->app. polled with `request-theme`. */
152
156
  exports.THEME = 'theme';
153
- /** Read off this message today: `theme`. */
157
+ /** Read off this message today: `modeId`, `theme`, `themeKey`. */
158
+ /** `theme-catalog` — push · host->app. polled with `request-theme-catalog`. */
159
+ exports.THEME_CATALOG = 'theme-catalog';
160
+ /** Read off this message today: `themes`. */
154
161
  /** `urlchange` — message · both. */
155
162
  exports.URLCHANGE = 'urlchange';
156
163
  /** `vcs-state` — push · host->app. polled with `request-vcs-state`. */
157
164
  exports.VCS_STATE = 'vcs-state';
158
165
  /** Read off this message today: `branch`, `changes`, `diffLoading`, `prs`. */
166
+ /** `workspace` — push · host->app. polled with `request-workspace`. */
167
+ exports.WORKSPACE = 'workspace';
168
+ /** Read off this message today: `workspace`. */
159
169
  /** Every wire name this side speaks, keyed by its constant. */
160
170
  exports.WIRE_NAMES = {
161
171
  API_CATALOG: exports.API_CATALOG,
@@ -212,7 +222,9 @@ exports.WIRE_NAMES = {
212
222
  REQUEST_SECRETS_METADATA: exports.REQUEST_SECRETS_METADATA,
213
223
  REQUEST_SESSION_MOUNTS: exports.REQUEST_SESSION_MOUNTS,
214
224
  REQUEST_THEME: exports.REQUEST_THEME,
225
+ REQUEST_THEME_CATALOG: exports.REQUEST_THEME_CATALOG,
215
226
  REQUEST_VCS_STATE: exports.REQUEST_VCS_STATE,
227
+ REQUEST_WORKSPACE: exports.REQUEST_WORKSPACE,
216
228
  SDK_HANDSHAKE: exports.SDK_HANDSHAKE,
217
229
  SECRETS_METADATA: exports.SECRETS_METADATA,
218
230
  SESSION_MOUNTS: exports.SESSION_MOUNTS,
@@ -220,6 +232,8 @@ exports.WIRE_NAMES = {
220
232
  TASK_COMPLETE: exports.TASK_COMPLETE,
221
233
  TASK_INPUT: exports.TASK_INPUT,
222
234
  THEME: exports.THEME,
235
+ THEME_CATALOG: exports.THEME_CATALOG,
223
236
  URLCHANGE: exports.URLCHANGE,
224
237
  VCS_STATE: exports.VCS_STATE,
238
+ WORKSPACE: exports.WORKSPACE,
225
239
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@immediately-run/sandbox-protocol",
3
- "version": "0.7.6",
3
+ "version": "0.8.0",
4
4
  "description": "The sandbox<->SDK wire protocol: ONE descriptor set, projected into the wire-name constants, the payload types, and the per-side snapshots both repos gate against (PLATFORM_LAYERING_SPEC S1). Consumed by sandbox and immediately-run-sdk so a wire change is a version bump, not a hand-copied file.",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {
@@ -667,6 +667,11 @@
667
667
  "poll": "request-theme",
668
668
  "payload": {
669
669
  "fields": [
670
+ {
671
+ "name": "modeId",
672
+ "optional": false,
673
+ "type": "string"
674
+ },
670
675
  {
671
676
  "name": "theme",
672
677
  "optional": false,
@@ -678,10 +683,17 @@
678
683
  "type": "\"light\""
679
684
  }
680
685
  ]
686
+ },
687
+ {
688
+ "name": "themeKey",
689
+ "optional": false,
690
+ "type": "string"
681
691
  }
682
692
  ],
683
693
  "reads": [
684
- "theme"
694
+ "modeId",
695
+ "theme",
696
+ "themeKey"
685
697
  ]
686
698
  },
687
699
  "sites": [
@@ -1713,20 +1713,91 @@
1713
1713
  "set": {
1714
1714
  "payload": {
1715
1715
  "fields": [
1716
+ {
1717
+ "name": "mode",
1718
+ "optional": true,
1719
+ "union": [
1720
+ {
1721
+ "type": "string"
1722
+ },
1723
+ {
1724
+ "type": "undefined"
1725
+ }
1726
+ ]
1727
+ },
1716
1728
  {
1717
1729
  "name": "theme",
1718
1730
  "optional": false,
1731
+ "type": "string"
1732
+ }
1733
+ ]
1734
+ }
1735
+ },
1736
+ "add-source": {
1737
+ "payload": {
1738
+ "fields": [
1739
+ {
1740
+ "name": "location",
1741
+ "optional": false,
1719
1742
  "union": [
1720
1743
  {
1721
- "type": "\"dark\""
1744
+ "fields": [
1745
+ {
1746
+ "name": "kind",
1747
+ "optional": false,
1748
+ "type": "\"repo\""
1749
+ },
1750
+ {
1751
+ "name": "path",
1752
+ "optional": false,
1753
+ "type": "string"
1754
+ },
1755
+ {
1756
+ "name": "ref",
1757
+ "optional": true,
1758
+ "type": "string | undefined"
1759
+ },
1760
+ {
1761
+ "name": "repo",
1762
+ "optional": false,
1763
+ "type": "string"
1764
+ }
1765
+ ]
1722
1766
  },
1723
1767
  {
1724
- "type": "\"light\""
1768
+ "fields": [
1769
+ {
1770
+ "name": "kind",
1771
+ "optional": false,
1772
+ "type": "\"space\""
1773
+ },
1774
+ {
1775
+ "name": "path",
1776
+ "optional": false,
1777
+ "type": "string"
1778
+ },
1779
+ {
1780
+ "name": "spaceId",
1781
+ "optional": false,
1782
+ "type": "string"
1783
+ }
1784
+ ]
1725
1785
  }
1726
1786
  ]
1727
1787
  }
1728
1788
  ]
1729
1789
  }
1790
+ },
1791
+ "remove-source": {
1792
+ "payload": {
1793
+ "fields": [
1794
+ {
1795
+ "name": "themeKey",
1796
+ "optional": false,
1797
+ "type": "string"
1798
+ }
1799
+ ]
1800
+ }
1730
1801
  }
1731
1802
  },
1732
1803
  "sites": [
@@ -1922,6 +1993,16 @@
1922
1993
  "src/theme.ts"
1923
1994
  ]
1924
1995
  },
1996
+ "request-theme-catalog": {
1997
+ "kind": "poll",
1998
+ "direction": "app->host",
1999
+ "payload": {
2000
+ "fields": []
2001
+ },
2002
+ "sites": [
2003
+ "src/theme.ts"
2004
+ ]
2005
+ },
1925
2006
  "request-vcs-state": {
1926
2007
  "kind": "poll",
1927
2008
  "direction": "app->host",
@@ -1932,6 +2013,16 @@
1932
2013
  "src/vcs.ts"
1933
2014
  ]
1934
2015
  },
2016
+ "request-workspace": {
2017
+ "kind": "poll",
2018
+ "direction": "app->host",
2019
+ "payload": {
2020
+ "fields": []
2021
+ },
2022
+ "sites": [
2023
+ "src/workspace.ts"
2024
+ ]
2025
+ },
1935
2026
  "sdk-handshake": {
1936
2027
  "kind": "message",
1937
2028
  "direction": "app->host",
@@ -2148,19 +2239,98 @@
2148
2239
  "poll": "request-theme",
2149
2240
  "payload": {
2150
2241
  "reads": [
2151
- "theme"
2242
+ "modeId",
2243
+ "theme",
2244
+ "themeKey"
2152
2245
  ]
2153
2246
  },
2154
2247
  "value": {
2155
- "union": [
2248
+ "fields": [
2249
+ {
2250
+ "name": "modeId",
2251
+ "optional": false,
2252
+ "type": "string"
2253
+ },
2156
2254
  {
2157
- "type": "\"dark\""
2255
+ "name": "theme",
2256
+ "optional": false,
2257
+ "union": [
2258
+ {
2259
+ "type": "\"dark\""
2260
+ },
2261
+ {
2262
+ "type": "\"light\""
2263
+ }
2264
+ ]
2158
2265
  },
2159
2266
  {
2160
- "type": "\"light\""
2267
+ "name": "themeKey",
2268
+ "optional": false,
2269
+ "type": "string"
2270
+ }
2271
+ ],
2272
+ "type": "HostThemeSelection"
2273
+ },
2274
+ "sites": [
2275
+ "src/theme.ts"
2276
+ ]
2277
+ },
2278
+ "theme-catalog": {
2279
+ "kind": "push",
2280
+ "direction": "host->app",
2281
+ "poll": "request-theme-catalog",
2282
+ "payload": {
2283
+ "reads": [
2284
+ "themes"
2285
+ ]
2286
+ },
2287
+ "value": {
2288
+ "fields": [
2289
+ {
2290
+ "name": "themes",
2291
+ "optional": false,
2292
+ "array": {
2293
+ "fields": [
2294
+ {
2295
+ "name": "label",
2296
+ "optional": false,
2297
+ "type": "string"
2298
+ },
2299
+ {
2300
+ "name": "modes",
2301
+ "optional": false,
2302
+ "array": {
2303
+ "fields": [
2304
+ {
2305
+ "name": "id",
2306
+ "optional": false,
2307
+ "type": "string"
2308
+ },
2309
+ {
2310
+ "name": "polarity",
2311
+ "optional": false,
2312
+ "union": [
2313
+ {
2314
+ "type": "\"dark\""
2315
+ },
2316
+ {
2317
+ "type": "\"light\""
2318
+ }
2319
+ ]
2320
+ }
2321
+ ]
2322
+ }
2323
+ },
2324
+ {
2325
+ "name": "themeKey",
2326
+ "optional": false,
2327
+ "type": "string"
2328
+ }
2329
+ ]
2330
+ }
2161
2331
  }
2162
2332
  ],
2163
- "type": "HostTheme"
2333
+ "type": "ThemeCatalog"
2164
2334
  },
2165
2335
  "sites": [
2166
2336
  "src/theme.ts"
@@ -2228,6 +2398,56 @@
2228
2398
  "sites": [
2229
2399
  "src/vcs.ts"
2230
2400
  ]
2401
+ },
2402
+ "workspace": {
2403
+ "kind": "push",
2404
+ "direction": "host->app",
2405
+ "poll": "request-workspace",
2406
+ "payload": {
2407
+ "reads": [
2408
+ "workspace"
2409
+ ]
2410
+ },
2411
+ "value": {
2412
+ "union": [
2413
+ {
2414
+ "fields": [
2415
+ {
2416
+ "name": "label",
2417
+ "optional": false,
2418
+ "type": "string"
2419
+ },
2420
+ {
2421
+ "name": "namespace",
2422
+ "optional": false,
2423
+ "type": "string"
2424
+ },
2425
+ {
2426
+ "name": "provider",
2427
+ "optional": false,
2428
+ "type": "string"
2429
+ },
2430
+ {
2431
+ "name": "ref",
2432
+ "optional": false,
2433
+ "type": "string"
2434
+ },
2435
+ {
2436
+ "name": "repository",
2437
+ "optional": false,
2438
+ "type": "string"
2439
+ }
2440
+ ]
2441
+ },
2442
+ {
2443
+ "type": "null"
2444
+ }
2445
+ ],
2446
+ "type": "Workspace | null"
2447
+ },
2448
+ "sites": [
2449
+ "src/workspace.ts"
2450
+ ]
2231
2451
  }
2232
2452
  },
2233
2453
  "dynamicFamilies": {