@celljs/ta-web 4.6.1 → 4.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/README.en.md +90 -0
- package/README.md +13 -7
- package/esm/browser/chat/chat-protocol.d.ts +4 -0
- package/esm/browser/chat/chat-view.js +4 -1
- package/esm/browser/chat/chat-view.js.map +1 -1
- package/esm/browser/chat/chat.d.ts +8 -1
- package/esm/browser/chat/chat.js +34 -15
- package/esm/browser/chat/chat.js.map +1 -1
- package/esm/browser/chat/draft-model.d.ts +15 -0
- package/esm/browser/chat/draft-model.js +53 -0
- package/esm/browser/chat/draft-model.js.map +1 -0
- package/esm/browser/components/account-menu.d.ts +3 -2
- package/esm/browser/components/account-menu.js +21 -16
- package/esm/browser/components/account-menu.js.map +1 -1
- package/esm/browser/components/app-view.js +13 -4
- package/esm/browser/components/app-view.js.map +1 -1
- package/esm/browser/components/chat-list.d.ts +3 -1
- package/esm/browser/components/chat-list.js +6 -1
- package/esm/browser/components/chat-list.js.map +1 -1
- package/esm/browser/components/composer-box.d.ts +6 -0
- package/esm/browser/components/composer-box.js +50 -13
- package/esm/browser/components/composer-box.js.map +1 -1
- package/esm/browser/components/composer.js +1 -1
- package/esm/browser/components/composer.js.map +1 -1
- package/esm/browser/components/dialog-view.d.ts +4 -1
- package/esm/browser/components/dialog-view.js +11 -7
- package/esm/browser/components/dialog-view.js.map +1 -1
- package/esm/browser/components/folder-picker.d.ts +37 -6
- package/esm/browser/components/folder-picker.js +155 -33
- package/esm/browser/components/folder-picker.js.map +1 -1
- package/esm/browser/components/notice-center.js +3 -1
- package/esm/browser/components/notice-center.js.map +1 -1
- package/esm/browser/components/remote-hosts.d.ts +7 -0
- package/esm/browser/components/remote-hosts.js +94 -0
- package/esm/browser/components/remote-hosts.js.map +1 -0
- package/esm/browser/components/remote-prompts.d.ts +7 -0
- package/esm/browser/components/remote-prompts.js +72 -0
- package/esm/browser/components/remote-prompts.js.map +1 -0
- package/esm/browser/components/session-view.js +48 -4
- package/esm/browser/components/session-view.js.map +1 -1
- package/esm/browser/components/settings-view.js +8 -1
- package/esm/browser/components/settings-view.js.map +1 -1
- package/esm/browser/components/terminal-art.d.ts +7 -0
- package/esm/browser/components/terminal-art.js +12 -0
- package/esm/browser/components/terminal-art.js.map +1 -0
- package/esm/browser/components/tool-view.js +1 -1
- package/esm/browser/components/tool-view.js.map +1 -1
- package/esm/browser/components/web-composer.d.ts +4 -1
- package/esm/browser/components/web-composer.js +2 -2
- package/esm/browser/components/web-composer.js.map +1 -1
- package/esm/browser/components/working-directory.js +1 -1
- package/esm/browser/components/working-directory.js.map +1 -1
- package/esm/browser/extension/icons.js +6 -1
- package/esm/browser/extension/icons.js.map +1 -1
- package/esm/browser/extension/web-extension-api.d.ts +120 -2
- package/esm/browser/extension/web-extensions.d.ts +3 -0
- package/esm/browser/extension/web-extensions.js +33 -1
- package/esm/browser/extension/web-extensions.js.map +1 -1
- package/esm/browser/i18n/locales.d.ts +44 -1
- package/esm/browser/i18n/messages.d.ts +43 -0
- package/esm/browser/i18n/messages.js +99 -13
- package/esm/browser/i18n/messages.js.map +1 -1
- package/esm/browser/notices/notices-protocol.d.ts +3 -0
- package/esm/browser/notices/notices.d.ts +3 -0
- package/esm/browser/notices/notices.js +15 -0
- package/esm/browser/notices/notices.js.map +1 -1
- package/esm/browser/style/base.d.ts +1 -1
- package/esm/browser/style/base.js +6 -1
- package/esm/browser/style/base.js.map +1 -1
- package/esm/browser/style/conversation.d.ts +1 -1
- package/esm/browser/style/conversation.js +16 -1
- package/esm/browser/style/conversation.js.map +1 -1
- package/esm/browser/style/layout.d.ts +1 -1
- package/esm/browser/style/layout.js +53 -15
- package/esm/browser/style/layout.js.map +1 -1
- package/esm/browser/style/shell.d.ts +1 -1
- package/esm/browser/style/shell.js +1 -0
- package/esm/browser/style/shell.js.map +1 -1
- package/esm/browser/terminal/canvas-font.d.ts +10 -0
- package/esm/browser/terminal/canvas-font.js +34 -0
- package/esm/browser/terminal/canvas-font.js.map +1 -0
- package/esm/browser/terminal/terminal-links.d.ts +18 -0
- package/esm/browser/terminal/terminal-links.js +72 -0
- package/esm/browser/terminal/terminal-links.js.map +1 -0
- package/esm/browser/terminal/terminal-theme.d.ts +8 -0
- package/esm/browser/terminal/terminal-theme.js +65 -0
- package/esm/browser/terminal/terminal-theme.js.map +1 -0
- package/esm/browser/terminal/web-terminal.d.ts +74 -0
- package/esm/browser/terminal/web-terminal.js +300 -0
- package/esm/browser/terminal/web-terminal.js.map +1 -0
- package/esm/browser/terminal/xterm.d.ts +5 -0
- package/esm/browser/terminal/xterm.js +9 -0
- package/esm/browser/terminal/xterm.js.map +1 -0
- package/esm/browser/util/desktop.d.ts +43 -0
- package/esm/browser/util/desktop.js +55 -0
- package/esm/browser/util/desktop.js.map +1 -0
- package/esm/browser/util/file-drag.d.ts +26 -0
- package/esm/browser/util/file-drag.js +73 -0
- package/esm/browser/util/file-drag.js.map +1 -0
- package/esm/browser/util/message.d.ts +1 -0
- package/esm/browser/util/message.js +7 -5
- package/esm/browser/util/message.js.map +1 -1
- package/esm/browser/util/terminal-text.d.ts +33 -0
- package/esm/browser/util/terminal-text.js +209 -0
- package/esm/browser/util/terminal-text.js.map +1 -0
- package/esm/browser/util/tool.js +16 -0
- package/esm/browser/util/tool.js.map +1 -1
- package/esm/browser/workbench-protocol.d.ts +7 -1
- package/esm/browser/workbench-protocol.js.map +1 -1
- package/esm/browser/workbench.d.ts +7 -1
- package/esm/browser/workbench.js +23 -0
- package/esm/browser/workbench.js.map +1 -1
- package/lib/browser/chat/chat-protocol.d.ts +4 -0
- package/lib/browser/chat/chat-protocol.d.ts.map +1 -1
- package/lib/browser/chat/chat-view.d.ts.map +1 -1
- package/lib/browser/chat/chat-view.js +4 -1
- package/lib/browser/chat/chat-view.js.map +1 -1
- package/lib/browser/chat/chat.d.ts +8 -1
- package/lib/browser/chat/chat.d.ts.map +1 -1
- package/lib/browser/chat/chat.js +34 -15
- package/lib/browser/chat/chat.js.map +1 -1
- package/lib/browser/chat/chat.spec.js +30 -0
- package/lib/browser/chat/chat.spec.js.map +1 -1
- package/lib/browser/chat/draft-model.d.ts +16 -0
- package/lib/browser/chat/draft-model.d.ts.map +1 -0
- package/lib/browser/chat/draft-model.js +90 -0
- package/lib/browser/chat/draft-model.js.map +1 -0
- package/lib/browser/chat/draft-model.spec.d.ts +2 -0
- package/lib/browser/chat/draft-model.spec.d.ts.map +1 -0
- package/lib/browser/chat/draft-model.spec.js +31 -0
- package/lib/browser/chat/draft-model.spec.js.map +1 -0
- package/lib/browser/components/account-menu.d.ts +3 -2
- package/lib/browser/components/account-menu.d.ts.map +1 -1
- package/lib/browser/components/account-menu.js +21 -16
- package/lib/browser/components/account-menu.js.map +1 -1
- package/lib/browser/components/app-view.d.ts.map +1 -1
- package/lib/browser/components/app-view.js +13 -4
- package/lib/browser/components/app-view.js.map +1 -1
- package/lib/browser/components/chat-list.d.ts +3 -1
- package/lib/browser/components/chat-list.d.ts.map +1 -1
- package/lib/browser/components/chat-list.js +6 -1
- package/lib/browser/components/chat-list.js.map +1 -1
- package/lib/browser/components/composer-box.d.ts +6 -0
- package/lib/browser/components/composer-box.d.ts.map +1 -1
- package/lib/browser/components/composer-box.js +51 -14
- package/lib/browser/components/composer-box.js.map +1 -1
- package/lib/browser/components/composer.d.ts.map +1 -1
- package/lib/browser/components/composer.js +1 -1
- package/lib/browser/components/composer.js.map +1 -1
- package/lib/browser/components/dialog-view.d.ts +4 -1
- package/lib/browser/components/dialog-view.d.ts.map +1 -1
- package/lib/browser/components/dialog-view.js +11 -7
- package/lib/browser/components/dialog-view.js.map +1 -1
- package/lib/browser/components/folder-picker.d.ts +37 -6
- package/lib/browser/components/folder-picker.d.ts.map +1 -1
- package/lib/browser/components/folder-picker.js +156 -33
- package/lib/browser/components/folder-picker.js.map +1 -1
- package/lib/browser/components/folder-picker.spec.js +15 -0
- package/lib/browser/components/folder-picker.spec.js.map +1 -1
- package/lib/browser/components/notice-center.d.ts.map +1 -1
- package/lib/browser/components/notice-center.js +3 -1
- package/lib/browser/components/notice-center.js.map +1 -1
- package/lib/browser/components/plus-menu.spec.d.ts +2 -0
- package/lib/browser/components/plus-menu.spec.d.ts.map +1 -0
- package/lib/browser/components/plus-menu.spec.js +18 -0
- package/lib/browser/components/plus-menu.spec.js.map +1 -0
- package/lib/browser/components/remote-hosts.d.ts +8 -0
- package/lib/browser/components/remote-hosts.d.ts.map +1 -0
- package/lib/browser/components/remote-hosts.js +130 -0
- package/lib/browser/components/remote-hosts.js.map +1 -0
- package/lib/browser/components/remote-prompts.d.ts +8 -0
- package/lib/browser/components/remote-prompts.d.ts.map +1 -0
- package/lib/browser/components/remote-prompts.js +108 -0
- package/lib/browser/components/remote-prompts.js.map +1 -0
- package/lib/browser/components/session-view.d.ts.map +1 -1
- package/lib/browser/components/session-view.js +48 -4
- package/lib/browser/components/session-view.js.map +1 -1
- package/lib/browser/components/settings-view.d.ts.map +1 -1
- package/lib/browser/components/settings-view.js +7 -0
- package/lib/browser/components/settings-view.js.map +1 -1
- package/lib/browser/components/terminal-art.d.ts +8 -0
- package/lib/browser/components/terminal-art.d.ts.map +1 -0
- package/lib/browser/components/terminal-art.js +48 -0
- package/lib/browser/components/terminal-art.js.map +1 -0
- package/lib/browser/components/tool-view.js +1 -1
- package/lib/browser/components/tool-view.js.map +1 -1
- package/lib/browser/components/web-composer.d.ts +4 -1
- package/lib/browser/components/web-composer.d.ts.map +1 -1
- package/lib/browser/components/web-composer.js +2 -2
- package/lib/browser/components/web-composer.js.map +1 -1
- package/lib/browser/components/working-directory.js +1 -1
- package/lib/browser/components/working-directory.js.map +1 -1
- package/lib/browser/extension/icons.d.ts.map +1 -1
- package/lib/browser/extension/icons.js +5 -0
- package/lib/browser/extension/icons.js.map +1 -1
- package/lib/browser/extension/web-extension-api.d.ts +120 -2
- package/lib/browser/extension/web-extension-api.d.ts.map +1 -1
- package/lib/browser/extension/web-extensions.d.ts +3 -0
- package/lib/browser/extension/web-extensions.d.ts.map +1 -1
- package/lib/browser/extension/web-extensions.js +33 -1
- package/lib/browser/extension/web-extensions.js.map +1 -1
- package/lib/browser/i18n/locales.d.ts +44 -1
- package/lib/browser/i18n/locales.d.ts.map +1 -1
- package/lib/browser/i18n/messages.d.ts +43 -0
- package/lib/browser/i18n/messages.d.ts.map +1 -1
- package/lib/browser/i18n/messages.js +99 -13
- package/lib/browser/i18n/messages.js.map +1 -1
- package/lib/browser/notices/notices-protocol.d.ts +3 -0
- package/lib/browser/notices/notices-protocol.d.ts.map +1 -1
- package/lib/browser/notices/notices.d.ts +3 -0
- package/lib/browser/notices/notices.d.ts.map +1 -1
- package/lib/browser/notices/notices.js +15 -0
- package/lib/browser/notices/notices.js.map +1 -1
- package/lib/browser/notices/notices.spec.js +8 -3
- package/lib/browser/notices/notices.spec.js.map +1 -1
- package/lib/browser/style/base.d.ts +1 -1
- package/lib/browser/style/base.d.ts.map +1 -1
- package/lib/browser/style/base.js +6 -1
- package/lib/browser/style/base.js.map +1 -1
- package/lib/browser/style/conversation.d.ts +1 -1
- package/lib/browser/style/conversation.d.ts.map +1 -1
- package/lib/browser/style/conversation.js +16 -1
- package/lib/browser/style/conversation.js.map +1 -1
- package/lib/browser/style/layout.d.ts +1 -1
- package/lib/browser/style/layout.d.ts.map +1 -1
- package/lib/browser/style/layout.js +53 -15
- package/lib/browser/style/layout.js.map +1 -1
- package/lib/browser/style/shell.d.ts +1 -1
- package/lib/browser/style/shell.d.ts.map +1 -1
- package/lib/browser/style/shell.js +1 -0
- package/lib/browser/style/shell.js.map +1 -1
- package/lib/browser/terminal/canvas-font.d.ts +11 -0
- package/lib/browser/terminal/canvas-font.d.ts.map +1 -0
- package/lib/browser/terminal/canvas-font.js +37 -0
- package/lib/browser/terminal/canvas-font.js.map +1 -0
- package/lib/browser/terminal/canvas-font.spec.d.ts +2 -0
- package/lib/browser/terminal/canvas-font.spec.d.ts.map +1 -0
- package/lib/browser/terminal/canvas-font.spec.js +32 -0
- package/lib/browser/terminal/canvas-font.spec.js.map +1 -0
- package/lib/browser/terminal/terminal-links.d.ts +19 -0
- package/lib/browser/terminal/terminal-links.d.ts.map +1 -0
- package/lib/browser/terminal/terminal-links.js +75 -0
- package/lib/browser/terminal/terminal-links.js.map +1 -0
- package/lib/browser/terminal/terminal-links.spec.d.ts +2 -0
- package/lib/browser/terminal/terminal-links.spec.d.ts.map +1 -0
- package/lib/browser/terminal/terminal-links.spec.js +30 -0
- package/lib/browser/terminal/terminal-links.spec.js.map +1 -0
- package/lib/browser/terminal/terminal-theme.d.ts +9 -0
- package/lib/browser/terminal/terminal-theme.d.ts.map +1 -0
- package/lib/browser/terminal/terminal-theme.js +68 -0
- package/lib/browser/terminal/terminal-theme.js.map +1 -0
- package/lib/browser/terminal/terminal-theme.spec.d.ts +2 -0
- package/lib/browser/terminal/terminal-theme.spec.d.ts.map +1 -0
- package/lib/browser/terminal/terminal-theme.spec.js +24 -0
- package/lib/browser/terminal/terminal-theme.spec.js.map +1 -0
- package/lib/browser/terminal/web-terminal.d.ts +75 -0
- package/lib/browser/terminal/web-terminal.d.ts.map +1 -0
- package/lib/browser/terminal/web-terminal.js +304 -0
- package/lib/browser/terminal/web-terminal.js.map +1 -0
- package/lib/browser/terminal/xterm.d.ts +6 -0
- package/lib/browser/terminal/xterm.d.ts.map +1 -0
- package/lib/browser/terminal/xterm.js +16 -0
- package/lib/browser/terminal/xterm.js.map +1 -0
- package/lib/browser/util/desktop.d.ts +44 -0
- package/lib/browser/util/desktop.d.ts.map +1 -0
- package/lib/browser/util/desktop.js +58 -0
- package/lib/browser/util/desktop.js.map +1 -0
- package/lib/browser/util/desktop.spec.d.ts +2 -0
- package/lib/browser/util/desktop.spec.d.ts.map +1 -0
- package/lib/browser/util/desktop.spec.js +67 -0
- package/lib/browser/util/desktop.spec.js.map +1 -0
- package/lib/browser/util/file-drag.d.ts +27 -0
- package/lib/browser/util/file-drag.d.ts.map +1 -0
- package/lib/browser/util/file-drag.js +76 -0
- package/lib/browser/util/file-drag.js.map +1 -0
- package/lib/browser/util/file-drag.spec.d.ts +2 -0
- package/lib/browser/util/file-drag.spec.d.ts.map +1 -0
- package/lib/browser/util/file-drag.spec.js +46 -0
- package/lib/browser/util/file-drag.spec.js.map +1 -0
- package/lib/browser/util/message.d.ts +1 -0
- package/lib/browser/util/message.d.ts.map +1 -1
- package/lib/browser/util/message.js +7 -5
- package/lib/browser/util/message.js.map +1 -1
- package/lib/browser/util/message.spec.js +2 -0
- package/lib/browser/util/message.spec.js.map +1 -1
- package/lib/browser/util/terminal-text.d.ts +34 -0
- package/lib/browser/util/terminal-text.d.ts.map +1 -0
- package/lib/browser/util/terminal-text.js +212 -0
- package/lib/browser/util/terminal-text.js.map +1 -0
- package/lib/browser/util/terminal-text.spec.d.ts +2 -0
- package/lib/browser/util/terminal-text.spec.d.ts.map +1 -0
- package/lib/browser/util/terminal-text.spec.js +54 -0
- package/lib/browser/util/terminal-text.spec.js.map +1 -0
- package/lib/browser/util/tool.d.ts.map +1 -1
- package/lib/browser/util/tool.js +16 -0
- package/lib/browser/util/tool.js.map +1 -1
- package/lib/browser/util/tool.spec.js +12 -0
- package/lib/browser/util/tool.spec.js.map +1 -1
- package/lib/browser/workbench-protocol.d.ts +7 -1
- package/lib/browser/workbench-protocol.d.ts.map +1 -1
- package/lib/browser/workbench-protocol.js.map +1 -1
- package/lib/browser/workbench.d.ts +7 -1
- package/lib/browser/workbench.d.ts.map +1 -1
- package/lib/browser/workbench.js +23 -0
- package/lib/browser/workbench.js.map +1 -1
- package/package.json +11 -7
- package/src/browser/chat/chat-protocol.ts +4 -0
- package/src/browser/chat/chat-view.tsx +5 -1
- package/src/browser/chat/chat.spec.ts +31 -0
- package/src/browser/chat/chat.ts +36 -14
- package/src/browser/chat/draft-model.spec.tsx +31 -0
- package/src/browser/chat/draft-model.tsx +63 -0
- package/src/browser/components/account-menu.tsx +23 -20
- package/src/browser/components/app-view.tsx +12 -3
- package/src/browser/components/chat-list.tsx +9 -2
- package/src/browser/components/composer-box.tsx +52 -6
- package/src/browser/components/composer.tsx +1 -0
- package/src/browser/components/dialog-view.tsx +16 -7
- package/src/browser/components/folder-picker.spec.ts +17 -0
- package/src/browser/components/folder-picker.tsx +221 -39
- package/src/browser/components/notice-center.tsx +7 -1
- package/src/browser/components/plus-menu.spec.ts +16 -0
- package/src/browser/components/remote-hosts.tsx +149 -0
- package/src/browser/components/remote-prompts.tsx +111 -0
- package/src/browser/components/session-view.tsx +65 -4
- package/src/browser/components/settings-view.tsx +8 -0
- package/src/browser/components/terminal-art.tsx +21 -0
- package/src/browser/components/tool-view.tsx +1 -1
- package/src/browser/components/web-composer.tsx +18 -3
- package/src/browser/components/working-directory.tsx +1 -1
- package/src/browser/extension/icons.ts +10 -0
- package/src/browser/extension/web-extension-api.ts +134 -2
- package/src/browser/extension/web-extensions.ts +47 -2
- package/src/browser/i18n/messages.ts +99 -13
- package/src/browser/notices/notices-protocol.ts +3 -0
- package/src/browser/notices/notices.spec.ts +9 -3
- package/src/browser/notices/notices.ts +17 -1
- package/src/browser/style/base.ts +6 -1
- package/src/browser/style/conversation.ts +16 -1
- package/src/browser/style/layout.ts +53 -15
- package/src/browser/style/shell.ts +1 -0
- package/src/browser/terminal/canvas-font.spec.ts +29 -0
- package/src/browser/terminal/canvas-font.ts +32 -0
- package/src/browser/terminal/terminal-links.spec.ts +32 -0
- package/src/browser/terminal/terminal-links.ts +75 -0
- package/src/browser/terminal/terminal-theme.spec.ts +23 -0
- package/src/browser/terminal/terminal-theme.ts +66 -0
- package/src/browser/terminal/web-terminal.ts +330 -0
- package/src/browser/terminal/xterm.ts +10 -0
- package/src/browser/util/desktop.spec.ts +68 -0
- package/src/browser/util/desktop.ts +96 -0
- package/src/browser/util/file-drag.spec.ts +48 -0
- package/src/browser/util/file-drag.ts +78 -0
- package/src/browser/util/message.spec.ts +2 -0
- package/src/browser/util/message.ts +7 -4
- package/src/browser/util/terminal-text.spec.ts +60 -0
- package/src/browser/util/terminal-text.ts +223 -0
- package/src/browser/util/tool.spec.ts +12 -0
- package/src/browser/util/tool.ts +17 -0
- package/src/browser/workbench-protocol.ts +8 -0
- package/src/browser/workbench.ts +29 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/** What Ta Desktop can do for the page beyond a tab of a browser. */
|
|
2
|
+
export type DesktopFeature = 'webview' | 'debugWebview' | 'showItemInFolder' | 'browserData';
|
|
3
|
+
/** The file manager of the system, from Ta Desktop: {@link WebDesktop} of the extension API. */
|
|
4
|
+
export interface DesktopFileManager {
|
|
5
|
+
/** Node's `process.platform` of the machine: what the file manager is called there. */
|
|
6
|
+
readonly platform: string;
|
|
7
|
+
showItemInFolder(path: string): Promise<void>;
|
|
8
|
+
readonly browserData?: DesktopBrowserData;
|
|
9
|
+
}
|
|
10
|
+
/** A profile of the user's Chrome, Edge…, whose sign-ins Ta Desktop can take. */
|
|
11
|
+
export interface DesktopBrowserProfile {
|
|
12
|
+
id: string;
|
|
13
|
+
browser: string;
|
|
14
|
+
name: string;
|
|
15
|
+
}
|
|
16
|
+
/** What an import took; `appBound`: cookies only Chrome itself can read (Windows). */
|
|
17
|
+
export interface DesktopBrowserImport {
|
|
18
|
+
imported: number;
|
|
19
|
+
skipped: number;
|
|
20
|
+
appBound: number;
|
|
21
|
+
}
|
|
22
|
+
/** The sign-ins of the user's browsers in the browser of Ta: {@link WebBrowserData} of the extension API. */
|
|
23
|
+
export interface DesktopBrowserData {
|
|
24
|
+
profiles(): Promise<DesktopBrowserProfile[]>;
|
|
25
|
+
/** After the user said yes in a dialog of the app; `undefined` when they said no. */
|
|
26
|
+
import(profileId: string): Promise<DesktopBrowserImport | undefined>;
|
|
27
|
+
clear(): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
/** A command of the DevTools protocol to the page of a `<webview>` of this page, by its getWebContentsId(). */
|
|
30
|
+
export type DebugWebview = (webContentsId: number, method: string, params?: Record<string, unknown>) => Promise<unknown>;
|
|
31
|
+
/**
|
|
32
|
+
* Ta Desktop gives its window's page `taDesktop` (its preload, apps/ta-desktop): the features it adds to
|
|
33
|
+
* what a browser can do. A browser, an installed web app and the mobile app have none.
|
|
34
|
+
*/
|
|
35
|
+
export declare namespace DesktopUtil {
|
|
36
|
+
function has(feature: DesktopFeature, scope?: object): boolean;
|
|
37
|
+
/** The file manager of the system, when the page is in Ta Desktop. */
|
|
38
|
+
function fileManager(scope?: object): DesktopFileManager | undefined;
|
|
39
|
+
/** The sign-ins of the user's browsers, where Ta Desktop can read them (macOS, Windows). */
|
|
40
|
+
function browserData(scope?: object): DesktopBrowserData | undefined;
|
|
41
|
+
/** `debugWebview` of Ta Desktop; `undefined` elsewhere. */
|
|
42
|
+
function debugWebview(scope?: object): DebugWebview | undefined;
|
|
43
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ta Desktop gives its window's page `taDesktop` (its preload, apps/ta-desktop): the features it adds to
|
|
3
|
+
* what a browser can do. A browser, an installed web app and the mobile app have none.
|
|
4
|
+
*/
|
|
5
|
+
export var DesktopUtil;
|
|
6
|
+
(function (DesktopUtil) {
|
|
7
|
+
function has(feature, scope = globalThis) {
|
|
8
|
+
var _a;
|
|
9
|
+
const features = (_a = scope.taDesktop) === null || _a === void 0 ? void 0 : _a.features;
|
|
10
|
+
return Array.isArray(features) && features.includes(feature);
|
|
11
|
+
}
|
|
12
|
+
DesktopUtil.has = has;
|
|
13
|
+
/** The file manager of the system, when the page is in Ta Desktop. */
|
|
14
|
+
function fileManager(scope = globalThis) {
|
|
15
|
+
const desktop = scope.taDesktop;
|
|
16
|
+
const show = desktop === null || desktop === void 0 ? void 0 : desktop.showItemInFolder;
|
|
17
|
+
if (!has('showItemInFolder', scope) || typeof show !== 'function') {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
return Object.freeze({
|
|
21
|
+
platform: typeof (desktop === null || desktop === void 0 ? void 0 : desktop.platform) === 'string' ? desktop.platform : 'unknown',
|
|
22
|
+
showItemInFolder: (path) => Promise.resolve(show(path)).then(() => undefined),
|
|
23
|
+
browserData: browserData(scope),
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
DesktopUtil.fileManager = fileManager;
|
|
27
|
+
/** The sign-ins of the user's browsers, where Ta Desktop can read them (macOS, Windows). */
|
|
28
|
+
function browserData(scope = globalThis) {
|
|
29
|
+
var _a;
|
|
30
|
+
const data = (_a = scope.taDesktop) === null || _a === void 0 ? void 0 : _a.browserData;
|
|
31
|
+
const { profiles, import: take, clear } = data !== null && data !== void 0 ? data : {};
|
|
32
|
+
if (!has('browserData', scope) || typeof profiles !== 'function' || typeof take !== 'function' || typeof clear !== 'function') {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
return Object.freeze({
|
|
36
|
+
profiles: async () => { var _a; return (_a = (await profiles())) !== null && _a !== void 0 ? _a : []; },
|
|
37
|
+
import: async (profileId) => {
|
|
38
|
+
const report = (await take(profileId));
|
|
39
|
+
return 'cancelled' in report ? undefined : report;
|
|
40
|
+
},
|
|
41
|
+
clear: async () => {
|
|
42
|
+
await clear();
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
DesktopUtil.browserData = browserData;
|
|
47
|
+
/** `debugWebview` of Ta Desktop; `undefined` elsewhere. */
|
|
48
|
+
function debugWebview(scope = globalThis) {
|
|
49
|
+
const desktop = scope.taDesktop;
|
|
50
|
+
const debug = desktop === null || desktop === void 0 ? void 0 : desktop.debugWebview;
|
|
51
|
+
return has('debugWebview', scope) && typeof debug === 'function' ? (webContentsId, method, params) => debug(webContentsId, method, params) : undefined;
|
|
52
|
+
}
|
|
53
|
+
DesktopUtil.debugWebview = debugWebview;
|
|
54
|
+
})(DesktopUtil || (DesktopUtil = {}));
|
|
55
|
+
//# sourceMappingURL=desktop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"desktop.js","sourceRoot":"","sources":["../../../src/browser/util/desktop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** Files of a directory dragged from a view (the explorer): {@link WebFileDrag} of the extension API. */
|
|
2
|
+
export interface DraggedFiles {
|
|
3
|
+
/** The directory they are of: a path of the machine of ta serve, or `ssh://` (TaLocation). */
|
|
4
|
+
cwd: string;
|
|
5
|
+
/** Relative to `cwd`, with `/`; '' for `cwd` itself. */
|
|
6
|
+
paths: string[];
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Files on a drag between the views of the page: their own type, read on a drop; and their paths as text,
|
|
10
|
+
* for what is not of the page (a native field, another app).
|
|
11
|
+
*/
|
|
12
|
+
export declare namespace FileDragUtil {
|
|
13
|
+
const TYPE = "application/x-ta-files";
|
|
14
|
+
function set(dataTransfer: DataTransfer, files: DraggedFiles): void;
|
|
15
|
+
/** Whether a drag holds files: all that `dragover` can tell. */
|
|
16
|
+
function has(dataTransfer: Pick<DataTransfer, 'types'>): boolean;
|
|
17
|
+
/** The files of a drop; undefined when it holds none. */
|
|
18
|
+
function get(dataTransfer: Pick<DataTransfer, 'getData'>): DraggedFiles | undefined;
|
|
19
|
+
/** The paths inside their machine, as a terminal there takes them. */
|
|
20
|
+
function paths(files: DraggedFiles): string[];
|
|
21
|
+
/**
|
|
22
|
+
* The files as `@` references of a conversation in `cwd`: relative to it when they are inside it, on the
|
|
23
|
+
* same machine; else their paths there.
|
|
24
|
+
*/
|
|
25
|
+
function references(files: DraggedFiles, cwd: string | undefined): string;
|
|
26
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { TaLocation } from '@celljs/ta-protocol';
|
|
2
|
+
import { ComposerUtil } from './composer.js';
|
|
3
|
+
/**
|
|
4
|
+
* Files on a drag between the views of the page: their own type, read on a drop; and their paths as text,
|
|
5
|
+
* for what is not of the page (a native field, another app).
|
|
6
|
+
*/
|
|
7
|
+
export var FileDragUtil;
|
|
8
|
+
(function (FileDragUtil) {
|
|
9
|
+
FileDragUtil.TYPE = 'application/x-ta-files';
|
|
10
|
+
function set(dataTransfer, files) {
|
|
11
|
+
const dragged = { cwd: files.cwd, paths: [...files.paths] };
|
|
12
|
+
dataTransfer.setData(FileDragUtil.TYPE, JSON.stringify(dragged));
|
|
13
|
+
dataTransfer.setData('text/plain', paths(dragged).join('\n'));
|
|
14
|
+
}
|
|
15
|
+
FileDragUtil.set = set;
|
|
16
|
+
/** Whether a drag holds files: all that `dragover` can tell. */
|
|
17
|
+
function has(dataTransfer) {
|
|
18
|
+
var _a;
|
|
19
|
+
return Array.from((_a = dataTransfer.types) !== null && _a !== void 0 ? _a : []).includes(FileDragUtil.TYPE);
|
|
20
|
+
}
|
|
21
|
+
FileDragUtil.has = has;
|
|
22
|
+
/** The files of a drop; undefined when it holds none. */
|
|
23
|
+
function get(dataTransfer) {
|
|
24
|
+
try {
|
|
25
|
+
const value = JSON.parse(dataTransfer.getData(FileDragUtil.TYPE) || 'null');
|
|
26
|
+
if (!value || typeof value.cwd !== 'string' || !Array.isArray(value.paths)) {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
const list = value.paths.filter((path) => typeof path === 'string');
|
|
30
|
+
return list.length ? { cwd: value.cwd, paths: list } : undefined;
|
|
31
|
+
}
|
|
32
|
+
catch (_a) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
FileDragUtil.get = get;
|
|
37
|
+
/** The paths inside their machine, as a terminal there takes them. */
|
|
38
|
+
function paths(files) {
|
|
39
|
+
const base = TaLocation.path(files.cwd);
|
|
40
|
+
const windows = /^[a-zA-Z]:[\\/]|^\\\\/.test(base) && !base.includes('/');
|
|
41
|
+
const trimmed = base.replace(/[\\/]+$/, '');
|
|
42
|
+
return files.paths.map(path => {
|
|
43
|
+
if (!path) {
|
|
44
|
+
return base;
|
|
45
|
+
}
|
|
46
|
+
return windows ? `${trimmed}\\${path.replace(/\//g, '\\')}` : `${trimmed}/${path}`;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
FileDragUtil.paths = paths;
|
|
50
|
+
/**
|
|
51
|
+
* The files as `@` references of a conversation in `cwd`: relative to it when they are inside it, on the
|
|
52
|
+
* same machine; else their paths there.
|
|
53
|
+
*/
|
|
54
|
+
function references(files, cwd) {
|
|
55
|
+
const absolute = paths(files);
|
|
56
|
+
const sameMachine = cwd !== undefined && TaLocation.host(cwd) === TaLocation.host(files.cwd);
|
|
57
|
+
const root = cwd === undefined ? '' : TaLocation.path(cwd).replace(/[\\/]+$/, '');
|
|
58
|
+
return absolute
|
|
59
|
+
.map((path, index) => {
|
|
60
|
+
if (files.cwd === cwd) {
|
|
61
|
+
return files.paths[index] || '.';
|
|
62
|
+
}
|
|
63
|
+
if (sameMachine && root && path.startsWith(`${root}/`)) {
|
|
64
|
+
return path.slice(root.length + 1);
|
|
65
|
+
}
|
|
66
|
+
return path;
|
|
67
|
+
})
|
|
68
|
+
.map(ComposerUtil.reference)
|
|
69
|
+
.join(' ');
|
|
70
|
+
}
|
|
71
|
+
FileDragUtil.references = references;
|
|
72
|
+
})(FileDragUtil || (FileDragUtil = {}));
|
|
73
|
+
//# sourceMappingURL=file-drag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-drag.js","sourceRoot":"","sources":["../../../src/browser/util/file-drag.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,6 +69,7 @@ export declare namespace MessageUtil {
|
|
|
69
69
|
};
|
|
70
70
|
/** The last two parts of a path: enough to recognize a project. */
|
|
71
71
|
function shortPath(path: string): string;
|
|
72
|
+
/** The last name of a path, or of an `ssh://` location (TaLocation). */
|
|
72
73
|
function basename(path: string): string;
|
|
73
74
|
}
|
|
74
75
|
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TaLocation } from '@celljs/ta-protocol';
|
|
1
2
|
const SCRIPT_HEADER = /^Script (completed|failed)\nWall time [\d.]+ seconds\nOutput:\n/;
|
|
2
3
|
export var MessageUtil;
|
|
3
4
|
(function (MessageUtil) {
|
|
@@ -129,14 +130,15 @@ export var MessageUtil;
|
|
|
129
130
|
MessageUtil.tail = tail;
|
|
130
131
|
/** The last two parts of a path: enough to recognize a project. */
|
|
131
132
|
function shortPath(path) {
|
|
132
|
-
const
|
|
133
|
-
|
|
133
|
+
const remote = TaLocation.parse(path);
|
|
134
|
+
const parts = (remote ? remote.path : path).split(/[\\/]/).filter(Boolean);
|
|
135
|
+
const short = parts.length > 2 ? `…/${parts.slice(-2).join('/')}` : remote ? remote.path || '~' : path;
|
|
136
|
+
return remote ? `${remote.host}:${short}` : short;
|
|
134
137
|
}
|
|
135
138
|
MessageUtil.shortPath = shortPath;
|
|
139
|
+
/** The last name of a path, or of an `ssh://` location (TaLocation). */
|
|
136
140
|
function basename(path) {
|
|
137
|
-
|
|
138
|
-
const parts = path.split(/[\\/]/).filter(Boolean);
|
|
139
|
-
return (_a = parts[parts.length - 1]) !== null && _a !== void 0 ? _a : path;
|
|
141
|
+
return TaLocation.basename(path);
|
|
140
142
|
}
|
|
141
143
|
MessageUtil.basename = basename;
|
|
142
144
|
})(MessageUtil || (MessageUtil = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/browser/util/message.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/browser/util/message.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** The tone of a status, from the sign a terminal extension puts before it. */
|
|
2
|
+
export type StatusTone = 'running' | 'done' | 'error' | 'waiting';
|
|
3
|
+
export interface StatusSegment {
|
|
4
|
+
text: string;
|
|
5
|
+
tone?: StatusTone;
|
|
6
|
+
}
|
|
7
|
+
/** A status of an extension (`setStatus`), in its parts: `[WeChat] ✅ connected | abc` is a label and two segments. */
|
|
8
|
+
export interface StatusParts {
|
|
9
|
+
label?: string;
|
|
10
|
+
segments: StatusSegment[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Text that pi extensions write for a terminal (pi's TUI), shown in a page: without the escapes of the
|
|
14
|
+
* terminal, with the pictures they draw with characters (a QR code to sign in) drawn, and the signs of their
|
|
15
|
+
* status line as tones.
|
|
16
|
+
*/
|
|
17
|
+
export declare namespace TerminalText {
|
|
18
|
+
/** The text without the escapes of a terminal (colours, styles, links, titles): a page draws its own. */
|
|
19
|
+
function plain(text: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* The text without the picture in it, and without escapes; and the picture as rows of cells, dark ones true.
|
|
22
|
+
* A picture is the longest run of lines of half blocks, or of spaces on black and white: how a terminal
|
|
23
|
+
* extension draws a QR code. Its light is what a dark terminal shows light.
|
|
24
|
+
*/
|
|
25
|
+
function art(text: string): {
|
|
26
|
+
text: string;
|
|
27
|
+
art?: boolean[][];
|
|
28
|
+
};
|
|
29
|
+
/** The picture as an SVG path of its dark cells, one unit each. */
|
|
30
|
+
function path(art: boolean[][]): string;
|
|
31
|
+
/** A status line in its parts: a leading `[label]`, segments split by ` | `, and a sign at the start of one as its tone. */
|
|
32
|
+
function status(text: string): StatusParts;
|
|
33
|
+
}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text that pi extensions write for a terminal (pi's TUI), shown in a page: without the escapes of the
|
|
3
|
+
* terminal, with the pictures they draw with characters (a QR code to sign in) drawn, and the signs of their
|
|
4
|
+
* status line as tones.
|
|
5
|
+
*/
|
|
6
|
+
export var TerminalText;
|
|
7
|
+
(function (TerminalText) {
|
|
8
|
+
/** Half blocks, as qrcode-terminal's small mode: the character is the light of two cells, one above the other. */
|
|
9
|
+
const CELLS = { '█': [true, true], '▀': [true, false], '▄': [false, true], ' ': [false, false] };
|
|
10
|
+
const HALF_BLOCKS = /^[█▀▄ ]+$/;
|
|
11
|
+
// biome-ignore lint/suspicious/noControlCharactersInRegex: the escapes of a terminal are what is matched
|
|
12
|
+
const ESCAPES = /\x1b\[[0-?]*[ -/]*[@-~]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)|\x1b[@-Z\\-_]/g;
|
|
13
|
+
// biome-ignore lint/suspicious/noControlCharactersInRegex: the colours of a terminal
|
|
14
|
+
const SGR = /\x1b\[([0-9;]*)m/g;
|
|
15
|
+
/** Fewer lines than this are not a picture (a bar, a rule). */
|
|
16
|
+
const MIN_ART_LINES = 8;
|
|
17
|
+
const TONES = [
|
|
18
|
+
[/^(?:⏳|⌛|🔄)\uFE0F?\s*/u, 'running'],
|
|
19
|
+
[/^(?:✅|✔|☑)\uFE0F?\s*/u, 'done'],
|
|
20
|
+
[/^(?:❌|✖|⛔|🚫)\uFE0F?\s*/u, 'error'],
|
|
21
|
+
[/^(?:⚠)\uFE0F?\s*/u, 'waiting'],
|
|
22
|
+
];
|
|
23
|
+
/** The text without the escapes of a terminal (colours, styles, links, titles): a page draws its own. */
|
|
24
|
+
function plain(text) {
|
|
25
|
+
return text.replace(ESCAPES, '');
|
|
26
|
+
}
|
|
27
|
+
TerminalText.plain = plain;
|
|
28
|
+
/** A line of half blocks as its two rows of cells, dark ones true. */
|
|
29
|
+
function halfBlocks(line) {
|
|
30
|
+
const text = plain(line);
|
|
31
|
+
if (!HALF_BLOCKS.test(text) || !/[█▀▄]/.test(text)) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
const top = [];
|
|
35
|
+
const bottom = [];
|
|
36
|
+
for (const char of text) {
|
|
37
|
+
const [upper, lower] = CELLS[char];
|
|
38
|
+
top.push(!upper);
|
|
39
|
+
bottom.push(!lower);
|
|
40
|
+
}
|
|
41
|
+
return [top, bottom];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* A line of spaces on black and white backgrounds, as qrcode-terminal's large mode, as its row of cells:
|
|
45
|
+
* dark ones true, a cell for each character.
|
|
46
|
+
*/
|
|
47
|
+
function backgrounds(line) {
|
|
48
|
+
if (!line.includes('\x1b[') || plain(line).trim()) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
const row = [];
|
|
52
|
+
let dark;
|
|
53
|
+
let at = 0;
|
|
54
|
+
const take = (until) => {
|
|
55
|
+
for (let i = at; i < until; i++) {
|
|
56
|
+
if (dark === undefined) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
row.push(dark);
|
|
60
|
+
}
|
|
61
|
+
return true;
|
|
62
|
+
};
|
|
63
|
+
for (const match of line.matchAll(SGR)) {
|
|
64
|
+
if (!take(match.index)) {
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
at = match.index + match[0].length;
|
|
68
|
+
for (const code of (match[1] || '0').split(';').map(Number)) {
|
|
69
|
+
if (code === 40 || code === 100) {
|
|
70
|
+
dark = true;
|
|
71
|
+
}
|
|
72
|
+
else if (code === 47 || code === 107) {
|
|
73
|
+
dark = false;
|
|
74
|
+
}
|
|
75
|
+
else if (code === 0 || code === 49) {
|
|
76
|
+
dark = undefined;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (!take(line.length) || !row.length) {
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
return [row];
|
|
84
|
+
}
|
|
85
|
+
/** The longest run of lines that `cells` reads, as rows of cells, and where it is. */
|
|
86
|
+
function longest(lines, cells) {
|
|
87
|
+
let best;
|
|
88
|
+
let run;
|
|
89
|
+
lines.forEach((line, index) => {
|
|
90
|
+
const read = cells(line);
|
|
91
|
+
if (!read) {
|
|
92
|
+
run = undefined;
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
run = run ? { ...run, end: index, rows: [...run.rows, ...read] } : { start: index, end: index, rows: read };
|
|
96
|
+
if (!best || run.end - run.start > best.end - best.start) {
|
|
97
|
+
best = run;
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
return best && best.end - best.start + 1 >= MIN_ART_LINES ? best : undefined;
|
|
101
|
+
}
|
|
102
|
+
/** Two characters make a square cell on a terminal: rows whose characters all go in pairs are halved. */
|
|
103
|
+
function squared(rows) {
|
|
104
|
+
const paired = rows.every(row => row.length % 2 === 0 && row.every((cell, x) => x % 2 === 0 || cell === row[x - 1]));
|
|
105
|
+
return paired ? rows.map(row => row.filter((_, x) => x % 2 === 0)) : rows;
|
|
106
|
+
}
|
|
107
|
+
/** Rows of one width: a shorter one is light at its end, as the background of a terminal. */
|
|
108
|
+
function even(rows) {
|
|
109
|
+
const width = Math.max(...rows.map(row => row.length));
|
|
110
|
+
return rows.map(row => [...row, ...new Array(width - row.length).fill(false)]);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Without the rows and columns at its edges that are dark all along: the background of the terminal around
|
|
114
|
+
* the light margin a QR code draws, not part of the picture.
|
|
115
|
+
*/
|
|
116
|
+
function trimmed(rows) {
|
|
117
|
+
var _a;
|
|
118
|
+
var _b;
|
|
119
|
+
let top = 0;
|
|
120
|
+
let bottom = rows.length;
|
|
121
|
+
while (top < bottom && rows[top].every(Boolean)) {
|
|
122
|
+
top++;
|
|
123
|
+
}
|
|
124
|
+
while (bottom > top && rows[bottom - 1].every(Boolean)) {
|
|
125
|
+
bottom--;
|
|
126
|
+
}
|
|
127
|
+
const kept = rows.slice(top, bottom);
|
|
128
|
+
const width = (_b = (_a = kept[0]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
|
|
129
|
+
const dark = (x) => kept.every(row => row[x]);
|
|
130
|
+
let left = 0;
|
|
131
|
+
let right = width;
|
|
132
|
+
while (left < right && dark(left)) {
|
|
133
|
+
left++;
|
|
134
|
+
}
|
|
135
|
+
while (right > left && dark(right - 1)) {
|
|
136
|
+
right--;
|
|
137
|
+
}
|
|
138
|
+
return kept.map(row => row.slice(left, right));
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* The text without the picture in it, and without escapes; and the picture as rows of cells, dark ones true.
|
|
142
|
+
* A picture is the longest run of lines of half blocks, or of spaces on black and white: how a terminal
|
|
143
|
+
* extension draws a QR code. Its light is what a dark terminal shows light.
|
|
144
|
+
*/
|
|
145
|
+
function art(text) {
|
|
146
|
+
const lines = text.split('\n');
|
|
147
|
+
const blocks = longest(lines, halfBlocks);
|
|
148
|
+
const colours = longest(lines, backgrounds);
|
|
149
|
+
const found = blocks && (!colours || blocks.end - blocks.start >= colours.end - colours.start) ? blocks : colours;
|
|
150
|
+
if (!found) {
|
|
151
|
+
return { text: plain(text) };
|
|
152
|
+
}
|
|
153
|
+
const rest = plain([...lines.slice(0, found.start), ...lines.slice(found.end + 1)].join('\n')).trim();
|
|
154
|
+
const art = trimmed(even(found === colours ? squared(found.rows) : found.rows));
|
|
155
|
+
return art.length ? { text: rest, art } : { text: plain(text) };
|
|
156
|
+
}
|
|
157
|
+
TerminalText.art = art;
|
|
158
|
+
/** The picture as an SVG path of its dark cells, one unit each. */
|
|
159
|
+
function path(art) {
|
|
160
|
+
let d = '';
|
|
161
|
+
art.forEach((row, y) => {
|
|
162
|
+
let x = 0;
|
|
163
|
+
while (x < row.length) {
|
|
164
|
+
if (!row[x]) {
|
|
165
|
+
x++;
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
const from = x;
|
|
169
|
+
while (x < row.length && row[x]) {
|
|
170
|
+
x++;
|
|
171
|
+
}
|
|
172
|
+
d += `M${from} ${y}h${x - from}v1h-${x - from}z`;
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
return d;
|
|
176
|
+
}
|
|
177
|
+
TerminalText.path = path;
|
|
178
|
+
/** A status line in its parts: a leading `[label]`, segments split by ` | `, and a sign at the start of one as its tone. */
|
|
179
|
+
function status(text) {
|
|
180
|
+
let rest = plain(text).trim();
|
|
181
|
+
const labelled = /^\[([^\]]+)\]\s*/.exec(rest);
|
|
182
|
+
const label = labelled === null || labelled === void 0 ? void 0 : labelled[1].trim();
|
|
183
|
+
if (labelled) {
|
|
184
|
+
rest = rest.slice(labelled[0].length);
|
|
185
|
+
}
|
|
186
|
+
const segments = rest
|
|
187
|
+
.split(/\s+\|\s+/)
|
|
188
|
+
.map(part => part.trim())
|
|
189
|
+
.filter(Boolean)
|
|
190
|
+
.map(part => {
|
|
191
|
+
for (const [sign, tone] of TONES) {
|
|
192
|
+
if (sign.test(part)) {
|
|
193
|
+
return { text: part.replace(sign, ''), tone };
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
// Or after it, as `main ✔`; a sign alone stays, as it is all there is to read.
|
|
197
|
+
const signed = /\s+(\S+)$/u.exec(part);
|
|
198
|
+
for (const [sign, tone] of signed ? TONES : []) {
|
|
199
|
+
if (signed && sign.test(signed[1])) {
|
|
200
|
+
return { text: part.slice(0, signed.index), tone };
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
return { text: part };
|
|
204
|
+
});
|
|
205
|
+
return label ? { label, segments } : { segments };
|
|
206
|
+
}
|
|
207
|
+
TerminalText.status = status;
|
|
208
|
+
})(TerminalText || (TerminalText = {}));
|
|
209
|
+
//# sourceMappingURL=terminal-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal-text.js","sourceRoot":"","sources":["../../../src/browser/util/terminal-text.ts"],"names":[],"mappings":"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"}
|
package/esm/browser/util/tool.js
CHANGED
|
@@ -14,6 +14,15 @@ const VERBS = {
|
|
|
14
14
|
message_task: 'ta.tool.verb.messageTask',
|
|
15
15
|
stop_task: 'ta.tool.verb.stopTask',
|
|
16
16
|
};
|
|
17
|
+
/** The verbs of the kinds of calls ACP agents make (`agent_tool` of @celljs/ta-agents). */
|
|
18
|
+
const AGENT_VERBS = {
|
|
19
|
+
execute: 'ta.tool.verb.bash',
|
|
20
|
+
read: 'ta.tool.verb.read',
|
|
21
|
+
edit: 'ta.tool.verb.edit',
|
|
22
|
+
delete: 'ta.tool.verb.edit',
|
|
23
|
+
move: 'ta.tool.verb.edit',
|
|
24
|
+
search: 'ta.tool.verb.grep',
|
|
25
|
+
};
|
|
17
26
|
const TARGET_CHARS = 160;
|
|
18
27
|
function str(value) {
|
|
19
28
|
return typeof value === 'string' ? value : '';
|
|
@@ -57,6 +66,13 @@ export var ToolUtil;
|
|
|
57
66
|
return { verb, name, target: scriptTitle(str(args.code)), code: false };
|
|
58
67
|
case 'start_task':
|
|
59
68
|
return { verb, name, target: str(args.title), code: false };
|
|
69
|
+
case 'agent_tool': {
|
|
70
|
+
// A call another agent made with its own tool: its kind, and what it was on.
|
|
71
|
+
const kind = str(args.kind);
|
|
72
|
+
const tool = str(args.tool) || str(args.title) || name;
|
|
73
|
+
const target = line(str(args.target) || str(args.title));
|
|
74
|
+
return { verb: AGENT_VERBS[kind], name: tool, target: target === tool ? '' : target, code: kind === 'execute' || kind === 'search' };
|
|
75
|
+
}
|
|
60
76
|
case 'get_task':
|
|
61
77
|
case 'stop_task':
|
|
62
78
|
case 'message_task':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/browser/util/tool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,WAAW,EAAmB,MAAM,WAAW,CAAC;AA6C5E,MAAM,KAAK,GAA8B;IACrC,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,mBAAmB;IACzB,KAAK,EAAE,oBAAoB;IAC3B,EAAE,EAAE,iBAAiB;IACrB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,mBAAmB;IACzB,QAAQ,EAAE,uBAAuB;IACjC,UAAU,EAAE,wBAAwB;IACpC,UAAU,EAAE,wBAAwB;IACpC,QAAQ,EAAE,sBAAsB;IAChC,YAAY,EAAE,0BAA0B;IACxC,SAAS,EAAE,uBAAuB;CACrC,CAAC;AAEF,MAAM,YAAY,GAAG,GAAG,CAAC;AAEzB,SAAS,GAAG,CAAC,KAAc;IACvB,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,IAAI,CAAC,IAAY;;IACtB,MAAM,KAAK,SAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC;IAC/C,OAAO,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AACxF,CAAC;AAED,SAAS,KAAK,CAAC,IAAwB;IACnC,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClD,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,CAAC;eAAO,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AAED,0HAA0H;AAC1H,MAAM,KAAW,QAAQ,
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/browser/util/tool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,WAAW,EAAmB,MAAM,WAAW,CAAC;AA6C5E,MAAM,KAAK,GAA8B;IACrC,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,mBAAmB;IACzB,KAAK,EAAE,oBAAoB;IAC3B,EAAE,EAAE,iBAAiB;IACrB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,mBAAmB;IACzB,QAAQ,EAAE,uBAAuB;IACjC,UAAU,EAAE,wBAAwB;IACpC,UAAU,EAAE,wBAAwB;IACpC,QAAQ,EAAE,sBAAsB;IAChC,YAAY,EAAE,0BAA0B;IACxC,SAAS,EAAE,uBAAuB;CACrC,CAAC;AAEF,2FAA2F;AAC3F,MAAM,WAAW,GAA8B;IAC3C,OAAO,EAAE,mBAAmB;IAC5B,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,mBAAmB;IACzB,MAAM,EAAE,mBAAmB;IAC3B,IAAI,EAAE,mBAAmB;IACzB,MAAM,EAAE,mBAAmB;CAC9B,CAAC;AAEF,MAAM,YAAY,GAAG,GAAG,CAAC;AAEzB,SAAS,GAAG,CAAC,KAAc;IACvB,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,IAAI,CAAC,IAAY;;IACtB,MAAM,KAAK,SAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC;IAC/C,OAAO,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AACxF,CAAC;AAED,SAAS,KAAK,CAAC,IAAwB;IACnC,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClD,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,CAAC;eAAO,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AAED,0HAA0H;AAC1H,MAAM,KAAW,QAAQ,CAgHxB;AAhHD,WAAiB,QAAQ;IACrB,SAAgB,OAAO,CAAC,IAAY,EAAE,IAA6B;QAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,MAAM;gBACP,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACvE,KAAK,MAAM,EAAE,CAAC;gBACV,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzE,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;gBACtE,MAAM,KAAK,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7G,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAC5E,CAAC;YACD,KAAK,MAAM,CAAC;YACZ,KAAK,OAAO,CAAC;YACb,KAAK,IAAI;gBACL,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YACtE,KAAK,MAAM,CAAC;YACZ,KAAK,MAAM;gBACP,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC9G,KAAK,UAAU;gBACX,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAC5E,KAAK,YAAY;gBACb,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAChE,KAAK,YAAY,EAAE,CAAC;gBAChB,6EAA6E;gBAC7E,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;gBACvD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzD,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzI,CAAC;YACD,KAAK,UAAU,CAAC;YAChB,KAAK,WAAW,CAAC;YACjB,KAAK,cAAc;gBACf,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YACxF,SAAS,CAAC;gBACN,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YACjE,CAAC;QACL,CAAC;IACL,CAAC;IAtCe,SAAA,OAAO,UAsCtB,CAAA;IAED,0EAA0E;IAC1E,SAAgB,WAAW,CAAC,IAAY;;QACpC,MAAM,KAAK,GAAG,IAAI;aACb,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aACxB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAC,KAAK,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IAPe,SAAA,WAAW,cAO1B,CAAA;IAED;;;OAGG;IACH,SAAgB,WAAW,CAAC,EAAU,EAAE,MAA8B,EAAE,IAA6B;;;QACjG,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAC;QACnF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAwB,CAAC;QAC7C,MAAM,MAAM,SAAG,MAAC,MAAmE,aAAnE,MAAM,uBAAN,MAAM,CAA+D,WAAW,0CAAE,KAAK,mCAAI,EAAE,CAAC;QAC9G,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,0CAAE,KAAK,CAAC,CAAC,CAAC,CAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,0CAAE,KAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;QACxG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;;;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBACvE,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,KAAK,CAAC,0CAAG,CAAC,CAAC,CAAC;gBACnD,MAAM,IAAI,qBAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAA4C,mCAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,mCAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC;gBAC9I,MAAM,MAAM,GAAe,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;gBACvE,OAAO,EAAE,GAAG,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,GAAG,EAAE,IAAI,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;YAClI,CAAC,CAAC,CAAC;QACP,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,kBAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,QAAG,GAAG,CAAC,IAAgC,mCAAI,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAA,CAAC,CAAC;QAC/I,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,kBAAC,CAAC;YACvB,GAAG,EAAE,IAAI,CAAC,EAAE;YACZ,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,QAAE,IAAI,CAAC,SAAS,mCAAI,EAAE;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;YACvF,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC,GAAA,CAAC,CAAC;IACR,CAAC;IA5Be,SAAA,WAAW,cA4B1B,CAAA;IAED,uGAAuG;IACvG,SAAgB,KAAK,CAAC,KAAqB,EAAE,OAAgC,EAAE,IAA6B;;QACxG,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,EAAE,SAAG,IAAI,CAAC,EAAE,mCAAI,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChB,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC;gBACvB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;gBAC3E,oFAAoF;gBACpF,MAAM,IAAI,YAAY,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACJ,KAAK,EAAE,CAAC;gBACR,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IAnBe,SAAA,KAAK,QAmBpB,CAAA;IAED,wGAAwG;IACxG,SAAgB,OAAO,CAAC,IAA6B;QACjD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QAC5E,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAHe,SAAA,OAAO,UAGtB,CAAA;AACL,CAAC,EAhHgB,QAAQ,KAAR,QAAQ,QAgHxB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SessionStore, SessionStoreOptions } from '@celljs/ta-client';
|
|
2
|
-
import type { TaAuthEvent, TaAuthServer, TaPackageServer, TaRelayServer, TaServer, TaServerInfo, TaSessionInfo, TaSettingsServer, TaTerminalServer, TaWorkspaceServer } from '@celljs/ta-protocol';
|
|
2
|
+
import type { TaAuthEvent, TaAuthServer, TaPackageServer, TaRelayServer, TaRemoteEvent, TaRemoteServer, TaServer, TaServerInfo, TaSessionInfo, TaSettingsServer, TaTerminalServer, TaWorkspaceServer } from '@celljs/ta-protocol';
|
|
3
3
|
export declare const TaWorkbench: unique symbol;
|
|
4
4
|
/**
|
|
5
5
|
* `signed-out`: no token, or the server refused it. `offline`: the connection dropped and is coming back,
|
|
@@ -26,6 +26,7 @@ export interface TaWorkbench {
|
|
|
26
26
|
readonly packages: TaPackageServer;
|
|
27
27
|
readonly auth: TaAuthServer;
|
|
28
28
|
readonly relay: TaRelayServer;
|
|
29
|
+
readonly remote: TaRemoteServer;
|
|
29
30
|
subscribe(listener: (state: WorkbenchState) => void): () => void;
|
|
30
31
|
/** Signs in with the token of the URL fragment (`ta serve --web`) or the one this page used before. */
|
|
31
32
|
start(): Promise<void>;
|
|
@@ -47,4 +48,9 @@ export interface TaWorkbench {
|
|
|
47
48
|
onExtensionData(listener: (name: string, keys: string[], cwd?: string) => void): () => void;
|
|
48
49
|
/** What happens during the sign-ins of this page (TaAuthServer.login); the listener stays across reconnections. */
|
|
49
50
|
onAuthEvent(listener: (loginId: string, event: TaAuthEvent) => void): () => void;
|
|
51
|
+
/**
|
|
52
|
+
* What happens with the remote machines (TaRemoteServer.watch, which the page calls on each connection):
|
|
53
|
+
* the prompts that wait come again as `prompt` events after a reconnection. The listener stays.
|
|
54
|
+
*/
|
|
55
|
+
onRemoteEvent(listener: (event: TaRemoteEvent) => void): () => void;
|
|
50
56
|
}
|