@dxos/shell 0.5.1-main.ef0d69d → 0.5.1-main.f81ddc4

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 +1 @@
1
- {"version":3,"file":"run-shell.d.ts","sourceRoot":"","sources":["../../../../../src/composites/Shell/run-shell.tsx"],"names":[],"mappings":"AASA,OAAO,EAKL,MAAM,EAEP,MAAM,oBAAoB,CAAC;AAS5B,eAAO,MAAM,QAAQ,YAAkB,MAAM,kBAqB5C,CAAC"}
1
+ {"version":3,"file":"run-shell.d.ts","sourceRoot":"","sources":["../../../../../src/composites/Shell/run-shell.tsx"],"names":[],"mappings":"AASA,OAAO,EAKL,MAAM,EAGP,MAAM,oBAAoB,CAAC;AAS5B,eAAO,MAAM,QAAQ,YAAkB,MAAM,kBAmC5C,CAAC"}
@@ -39,17 +39,36 @@ const Shell_1 = require("./Shell");
39
39
  const components_1 = require("../../components");
40
40
  const translations_1 = require("../../translations");
41
41
  const runShell = async (config = new react_client_1.Config()) => {
42
- const services = new react_client_1.ClientServicesProxy((0, rpc_tunnel_1.createIFramePort)({ channel: client_protocol_1.DEFAULT_CLIENT_CHANNEL }));
43
- const client = new react_client_1.Client({ config, services });
42
+ // If runtime fails to open then the shell will not be openable.
44
43
  const runtime = new client_services_1.ShellRuntimeImpl((0, rpc_tunnel_1.createIFramePort)({ channel: client_protocol_1.DEFAULT_SHELL_CHANNEL }));
45
- await Promise.all([runtime.open(), client.initialize()]);
46
- (0, client_1.createRoot)(document.getElementById('root')).render(react_1.default.createElement(react_1.StrictMode, null,
47
- react_1.default.createElement(react_ui_1.ThemeProvider, { tx: react_ui_theme_1.defaultTx, resourceExtensions: [translations_1.osTranslations] },
48
- react_1.default.createElement(react_client_1.ClientContext.Provider, { value: { client, status: react_client_1.SystemStatus.ACTIVE } },
49
- react_1.default.createElement(components_1.ClipboardProvider, null,
50
- react_1.default.createElement(react_ui_1.Tooltip.Provider, null,
51
- react_1.default.createElement(react_client_1.AgentHostingProvider, null,
52
- react_1.default.createElement(Shell_1.Shell, { runtime: runtime, origin: location.origin }))))))));
44
+ await runtime.open();
45
+ try {
46
+ const services = new react_client_1.ClientServicesProxy((0, rpc_tunnel_1.createIFramePort)({ channel: client_protocol_1.DEFAULT_CLIENT_CHANNEL }));
47
+ const client = new react_client_1.Client({ config, services });
48
+ await client.initialize();
49
+ (0, client_1.createRoot)(document.getElementById('root')).render(react_1.default.createElement(react_1.StrictMode, null,
50
+ react_1.default.createElement(react_ui_1.ThemeProvider, { tx: react_ui_theme_1.defaultTx, resourceExtensions: [translations_1.osTranslations] },
51
+ react_1.default.createElement(react_client_1.ClientContext.Provider, { value: { client, status: react_client_1.SystemStatus.ACTIVE } },
52
+ react_1.default.createElement(components_1.ClipboardProvider, null,
53
+ react_1.default.createElement(react_ui_1.Tooltip.Provider, null,
54
+ react_1.default.createElement(react_client_1.AgentHostingProvider, null,
55
+ react_1.default.createElement(Shell_1.Shell, { runtime: runtime, origin: location.origin }))))))));
56
+ }
57
+ catch (_a) {
58
+ // If shell's client fails to initialize, ensure that the shell is still closeable.
59
+ (0, client_1.createRoot)(document.getElementById('root')).render(react_1.default.createElement(react_1.StrictMode, null,
60
+ react_1.default.createElement(react_ui_1.ThemeProvider, { tx: react_ui_theme_1.defaultTx, resourceExtensions: [translations_1.osTranslations] },
61
+ react_1.default.createElement(Fallback, { onClose: () => runtime.setAppContext({ display: react_client_1.ShellDisplay.NONE }) }))));
62
+ }
53
63
  };
54
64
  exports.runShell = runShell;
65
+ const Fallback = ({ onClose }) => {
66
+ const { t } = (0, react_ui_1.useTranslation)('os');
67
+ return (react_1.default.createElement(react_ui_1.Dialog.Root, { modal: true, open: true, onOpenChange: () => onClose === null || onClose === void 0 ? void 0 : onClose() },
68
+ react_1.default.createElement(react_ui_1.Dialog.Overlay, null,
69
+ react_1.default.createElement(react_ui_1.Dialog.Content, null,
70
+ react_1.default.createElement(react_ui_1.Dialog.Title, null, t('shell fallback title')),
71
+ react_1.default.createElement(react_ui_1.Dialog.Close, { asChild: true, onClick: () => onClose === null || onClose === void 0 ? void 0 : onClose() },
72
+ react_1.default.createElement(react_ui_1.Button, { variant: 'primary' }, t('close label')))))));
73
+ };
55
74
  //# sourceMappingURL=run-shell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-shell.js","sourceRoot":"","sources":["../../../../../src/composites/Shell/run-shell.tsx"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,+CAA0C;AAC1C,6CAA8C;AAE9C,2DAAsF;AACtF,2DAAyD;AACzD,qDAO4B;AAC5B,6CAAwD;AACxD,yDAAiD;AACjD,iDAAoD;AAEpD,mCAAgC;AAChC,iDAAqD;AACrD,qDAAoD;AAE7C,MAAM,QAAQ,GAAG,KAAK,EAAE,SAAiB,IAAI,qBAAM,EAAE,EAAE,EAAE;IAC9D,MAAM,QAAQ,GAAG,IAAI,kCAAmB,CAAC,IAAA,6BAAgB,EAAC,EAAE,OAAO,EAAE,wCAAsB,EAAE,CAAC,CAAC,CAAC;IAChG,MAAM,MAAM,GAAG,IAAI,qBAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,kCAAgB,CAAC,IAAA,6BAAgB,EAAC,EAAE,OAAO,EAAE,uCAAqB,EAAE,CAAC,CAAC,CAAC;IAC3F,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAEzD,IAAA,mBAAU,EAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAE,CAAC,CAAC,MAAM,CACjD,8BAAC,kBAAU;QACT,8BAAC,wBAAa,IAAC,EAAE,EAAE,0BAAS,EAAE,kBAAkB,EAAE,CAAC,6BAAc,CAAC;YAChE,8BAAC,4BAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,2BAAY,CAAC,MAAM,EAAE;gBACpE,8BAAC,8BAAiB;oBAChB,8BAAC,kBAAO,CAAC,QAAQ;wBACf,8BAAC,mCAAoB;4BACnB,8BAAC,aAAK,IAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAI,CAC/B,CACN,CACD,CACG,CACX,CACL,CACd,CAAC;AACJ,CAAC,CAAC;AArBW,QAAA,QAAQ,YAqBnB"}
1
+ {"version":3,"file":"run-shell.js","sourceRoot":"","sources":["../../../../../src/composites/Shell/run-shell.tsx"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,+CAA0C;AAC1C,6CAA8C;AAE9C,2DAAsF;AACtF,2DAAyD;AACzD,qDAQ4B;AAC5B,6CAAwF;AACxF,yDAAiD;AACjD,iDAAoD;AAEpD,mCAAgC;AAChC,iDAAqD;AACrD,qDAAoD;AAE7C,MAAM,QAAQ,GAAG,KAAK,EAAE,SAAiB,IAAI,qBAAM,EAAE,EAAE,EAAE;IAC9D,gEAAgE;IAChE,MAAM,OAAO,GAAG,IAAI,kCAAgB,CAAC,IAAA,6BAAgB,EAAC,EAAE,OAAO,EAAE,uCAAqB,EAAE,CAAC,CAAC,CAAC;IAC3F,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IAErB,IAAI;QACF,MAAM,QAAQ,GAAG,IAAI,kCAAmB,CAAC,IAAA,6BAAgB,EAAC,EAAE,OAAO,EAAE,wCAAsB,EAAE,CAAC,CAAC,CAAC;QAChG,MAAM,MAAM,GAAG,IAAI,qBAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;QAE1B,IAAA,mBAAU,EAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAE,CAAC,CAAC,MAAM,CACjD,8BAAC,kBAAU;YACT,8BAAC,wBAAa,IAAC,EAAE,EAAE,0BAAS,EAAE,kBAAkB,EAAE,CAAC,6BAAc,CAAC;gBAChE,8BAAC,4BAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,2BAAY,CAAC,MAAM,EAAE;oBACpE,8BAAC,8BAAiB;wBAChB,8BAAC,kBAAO,CAAC,QAAQ;4BACf,8BAAC,mCAAoB;gCACnB,8BAAC,aAAK,IAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAI,CAC/B,CACN,CACD,CACG,CACX,CACL,CACd,CAAC;KACH;IAAC,WAAM;QACN,mFAAmF;QACnF,IAAA,mBAAU,EAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAE,CAAC,CAAC,MAAM,CACjD,8BAAC,kBAAU;YACT,8BAAC,wBAAa,IAAC,EAAE,EAAE,0BAAS,EAAE,kBAAkB,EAAE,CAAC,6BAAc,CAAC;gBAChE,8BAAC,QAAQ,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,2BAAY,CAAC,IAAI,EAAE,CAAC,GAAI,CACpE,CACL,CACd,CAAC;KACH;AACH,CAAC,CAAC;AAnCW,QAAA,QAAQ,YAmCnB;AAEF,MAAM,QAAQ,GAAG,CAAC,EAAE,OAAO,EAA4B,EAAE,EAAE;IACzD,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,yBAAc,EAAC,IAAI,CAAC,CAAC;IAEnC,OAAO,CACL,8BAAC,iBAAM,CAAC,IAAI,IAAC,KAAK,QAAC,IAAI,QAAC,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,EAAI;QACrD,8BAAC,iBAAM,CAAC,OAAO;YACb,8BAAC,iBAAM,CAAC,OAAO;gBACb,8BAAC,iBAAM,CAAC,KAAK,QAAE,CAAC,CAAC,sBAAsB,CAAC,CAAgB;gBACxD,8BAAC,iBAAM,CAAC,KAAK,IAAC,OAAO,QAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,EAAI;oBAC9C,8BAAC,iBAAM,IAAC,OAAO,EAAC,SAAS,IAAE,CAAC,CAAC,aAAa,CAAC,CAAU,CACxC,CACA,CACF,CACL,CACf,CAAC;AACJ,CAAC,CAAC"}
@@ -135,5 +135,6 @@ export declare const os: {
135
135
  'create agent label': string;
136
136
  'destroy agent label': string;
137
137
  'agent device label': string;
138
+ 'shell fallback title': string;
138
139
  };
139
140
  //# sourceMappingURL=en-US.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"en-US.d.ts","sourceRoot":"","sources":["../../../../../src/translations/locales/en-US.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Id,CAAC"}
1
+ {"version":3,"file":"en-US.d.ts","sourceRoot":"","sources":["../../../../../src/translations/locales/en-US.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6Id,CAAC"}
@@ -141,5 +141,6 @@ exports.os = {
141
141
  'create agent label': 'Start an agent',
142
142
  'destroy agent label': 'Shut down agent',
143
143
  'agent device label': 'Your agent',
144
+ 'shell fallback title': 'Shell failed to connect',
144
145
  };
145
146
  //# sourceMappingURL=en-US.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"en-US.js","sourceRoot":"","sources":["../../../../../src/translations/locales/en-US.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"en-US.js","sourceRoot":"","sources":["../../../../../src/translations/locales/en-US.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/shell",
3
- "version": "0.5.1-main.ef0d69d",
3
+ "version": "0.5.1-main.f81ddc4",
4
4
  "description": "DXOS’s OS experiences",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -42,18 +42,18 @@
42
42
  "react-qr-rounded": "^1.0.0",
43
43
  "url-join": "^5.0.0",
44
44
  "xstate": "^4.37.0",
45
- "@dxos/async": "0.5.1-main.ef0d69d",
46
- "@dxos/client-protocol": "0.5.1-main.ef0d69d",
47
- "@dxos/client-services": "0.5.1-main.ef0d69d",
48
- "@dxos/debug": "0.5.1-main.ef0d69d",
49
- "@dxos/display-name": "0.5.1-main.ef0d69d",
50
- "@dxos/invariant": "0.5.1-main.ef0d69d",
51
- "@dxos/react-ui": "0.5.1-main.ef0d69d",
52
- "@dxos/log": "0.5.1-main.ef0d69d",
53
- "@dxos/react-ui-types": "0.5.1-main.ef0d69d",
54
- "@dxos/react-ui-theme": "0.5.1-main.ef0d69d",
55
- "@dxos/rpc-tunnel": "0.5.1-main.ef0d69d",
56
- "@dxos/util": "0.5.1-main.ef0d69d"
45
+ "@dxos/async": "0.5.1-main.f81ddc4",
46
+ "@dxos/client-protocol": "0.5.1-main.f81ddc4",
47
+ "@dxos/client-services": "0.5.1-main.f81ddc4",
48
+ "@dxos/display-name": "0.5.1-main.f81ddc4",
49
+ "@dxos/debug": "0.5.1-main.f81ddc4",
50
+ "@dxos/log": "0.5.1-main.f81ddc4",
51
+ "@dxos/invariant": "0.5.1-main.f81ddc4",
52
+ "@dxos/react-ui": "0.5.1-main.f81ddc4",
53
+ "@dxos/react-ui-theme": "0.5.1-main.f81ddc4",
54
+ "@dxos/react-ui-types": "0.5.1-main.f81ddc4",
55
+ "@dxos/util": "0.5.1-main.f81ddc4",
56
+ "@dxos/rpc-tunnel": "0.5.1-main.f81ddc4"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@phosphor-icons/react": "^2.1.5",
@@ -64,19 +64,19 @@
64
64
  "react-dom": "^18.2.0",
65
65
  "vite": "^5.2.9",
66
66
  "vite-plugin-turbosnap": "^1.0.2",
67
- "@dxos/config": "0.5.1-main.ef0d69d",
68
- "@dxos/protocols": "0.5.1-main.ef0d69d",
69
- "@dxos/random": "0.5.1-main.ef0d69d",
70
- "@dxos/react-async": "0.5.1-main.ef0d69d",
71
- "@dxos/react-client": "0.5.1-main.ef0d69d",
72
- "@dxos/react-ui-theme": "0.5.1-main.ef0d69d",
73
- "@dxos/storybook-utils": "0.5.1-main.ef0d69d"
67
+ "@dxos/random": "0.5.1-main.f81ddc4",
68
+ "@dxos/react-async": "0.5.1-main.f81ddc4",
69
+ "@dxos/react-client": "0.5.1-main.f81ddc4",
70
+ "@dxos/react-ui-theme": "0.5.1-main.f81ddc4",
71
+ "@dxos/protocols": "0.5.1-main.f81ddc4",
72
+ "@dxos/storybook-utils": "0.5.1-main.f81ddc4",
73
+ "@dxos/config": "0.5.1-main.f81ddc4"
74
74
  },
75
75
  "peerDependencies": {
76
76
  "@phosphor-icons/react": "^2.0.5",
77
77
  "react": "^18.2.0",
78
78
  "react-dom": "^18.2.0",
79
- "@dxos/react-client": "0.5.1-main.ef0d69d"
79
+ "@dxos/react-client": "0.5.1-main.f81ddc4"
80
80
  },
81
81
  "publishConfig": {
82
82
  "access": "public"
@@ -13,9 +13,10 @@ import {
13
13
  ClientContext,
14
14
  ClientServicesProxy,
15
15
  Config,
16
+ ShellDisplay,
16
17
  SystemStatus,
17
18
  } from '@dxos/react-client';
18
- import { ThemeProvider, Tooltip } from '@dxos/react-ui';
19
+ import { Button, Dialog, ThemeProvider, Tooltip, useTranslation } from '@dxos/react-ui';
19
20
  import { defaultTx } from '@dxos/react-ui-theme';
20
21
  import { createIFramePort } from '@dxos/rpc-tunnel';
21
22
 
@@ -24,24 +25,55 @@ import { ClipboardProvider } from '../../components';
24
25
  import { osTranslations } from '../../translations';
25
26
 
26
27
  export const runShell = async (config: Config = new Config()) => {
27
- const services = new ClientServicesProxy(createIFramePort({ channel: DEFAULT_CLIENT_CHANNEL }));
28
- const client = new Client({ config, services });
28
+ // If runtime fails to open then the shell will not be openable.
29
29
  const runtime = new ShellRuntimeImpl(createIFramePort({ channel: DEFAULT_SHELL_CHANNEL }));
30
- await Promise.all([runtime.open(), client.initialize()]);
31
-
32
- createRoot(document.getElementById('root')!).render(
33
- <StrictMode>
34
- <ThemeProvider tx={defaultTx} resourceExtensions={[osTranslations]}>
35
- <ClientContext.Provider value={{ client, status: SystemStatus.ACTIVE }}>
36
- <ClipboardProvider>
37
- <Tooltip.Provider>
38
- <AgentHostingProvider>
39
- <Shell runtime={runtime} origin={location.origin} />
40
- </AgentHostingProvider>
41
- </Tooltip.Provider>
42
- </ClipboardProvider>
43
- </ClientContext.Provider>
44
- </ThemeProvider>
45
- </StrictMode>,
30
+ await runtime.open();
31
+
32
+ try {
33
+ const services = new ClientServicesProxy(createIFramePort({ channel: DEFAULT_CLIENT_CHANNEL }));
34
+ const client = new Client({ config, services });
35
+ await client.initialize();
36
+
37
+ createRoot(document.getElementById('root')!).render(
38
+ <StrictMode>
39
+ <ThemeProvider tx={defaultTx} resourceExtensions={[osTranslations]}>
40
+ <ClientContext.Provider value={{ client, status: SystemStatus.ACTIVE }}>
41
+ <ClipboardProvider>
42
+ <Tooltip.Provider>
43
+ <AgentHostingProvider>
44
+ <Shell runtime={runtime} origin={location.origin} />
45
+ </AgentHostingProvider>
46
+ </Tooltip.Provider>
47
+ </ClipboardProvider>
48
+ </ClientContext.Provider>
49
+ </ThemeProvider>
50
+ </StrictMode>,
51
+ );
52
+ } catch {
53
+ // If shell's client fails to initialize, ensure that the shell is still closeable.
54
+ createRoot(document.getElementById('root')!).render(
55
+ <StrictMode>
56
+ <ThemeProvider tx={defaultTx} resourceExtensions={[osTranslations]}>
57
+ <Fallback onClose={() => runtime.setAppContext({ display: ShellDisplay.NONE })} />
58
+ </ThemeProvider>
59
+ </StrictMode>,
60
+ );
61
+ }
62
+ };
63
+
64
+ const Fallback = ({ onClose }: { onClose?: () => void }) => {
65
+ const { t } = useTranslation('os');
66
+
67
+ return (
68
+ <Dialog.Root modal open onOpenChange={() => onClose?.()}>
69
+ <Dialog.Overlay>
70
+ <Dialog.Content>
71
+ <Dialog.Title>{t('shell fallback title')}</Dialog.Title>
72
+ <Dialog.Close asChild onClick={() => onClose?.()}>
73
+ <Button variant='primary'>{t('close label')}</Button>
74
+ </Dialog.Close>
75
+ </Dialog.Content>
76
+ </Dialog.Overlay>
77
+ </Dialog.Root>
46
78
  );
47
79
  };
@@ -142,4 +142,5 @@ export const os = {
142
142
  'create agent label': 'Start an agent',
143
143
  'destroy agent label': 'Shut down agent',
144
144
  'agent device label': 'Your agent',
145
+ 'shell fallback title': 'Shell failed to connect',
145
146
  };