@celljs/ta-web 0.0.0-stage → 4.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1077) hide show
  1. package/README.md +83 -2
  2. package/esm/browser/assistant/assistant-export.d.ts +13 -0
  3. package/esm/browser/assistant/assistant-export.js +33 -0
  4. package/esm/browser/assistant/assistant-export.js.map +1 -0
  5. package/esm/browser/assistant/assistant-extension.d.ts +20 -0
  6. package/esm/browser/assistant/assistant-extension.js +153 -0
  7. package/esm/browser/assistant/assistant-extension.js.map +1 -0
  8. package/esm/browser/assistant/assistant-hooks.d.ts +8 -0
  9. package/esm/browser/assistant/assistant-hooks.js +55 -0
  10. package/esm/browser/assistant/assistant-hooks.js.map +1 -0
  11. package/esm/browser/assistant/assistant-protocol.d.ts +51 -0
  12. package/esm/browser/assistant/assistant-protocol.js +2 -0
  13. package/esm/browser/assistant/assistant-protocol.js.map +1 -0
  14. package/esm/browser/assistant/assistant-tasks.d.ts +48 -0
  15. package/esm/browser/assistant/assistant-tasks.js +115 -0
  16. package/esm/browser/assistant/assistant-tasks.js.map +1 -0
  17. package/esm/browser/assistant/assistant-view.d.ts +21 -0
  18. package/esm/browser/assistant/assistant-view.js +324 -0
  19. package/esm/browser/assistant/assistant-view.js.map +1 -0
  20. package/esm/browser/assistant/assistant.d.ts +51 -0
  21. package/esm/browser/assistant/assistant.js +302 -0
  22. package/esm/browser/assistant/assistant.js.map +1 -0
  23. package/esm/browser/assistant/voice.d.ts +14 -0
  24. package/esm/browser/assistant/voice.js +72 -0
  25. package/esm/browser/assistant/voice.js.map +1 -0
  26. package/esm/browser/avatar/dino-avatar.d.ts +139 -0
  27. package/esm/browser/avatar/dino-avatar.js +420 -0
  28. package/esm/browser/avatar/dino-avatar.js.map +1 -0
  29. package/esm/browser/avatar/dino-motion.d.ts +24 -0
  30. package/esm/browser/avatar/dino-motion.js +295 -0
  31. package/esm/browser/avatar/dino-motion.js.map +1 -0
  32. package/esm/browser/chat/chat-protocol.d.ts +46 -0
  33. package/esm/browser/chat/chat-protocol.js +2 -0
  34. package/esm/browser/chat/chat-protocol.js.map +1 -0
  35. package/esm/browser/chat/chat-view.d.ts +15 -0
  36. package/esm/browser/chat/chat-view.js +87 -0
  37. package/esm/browser/chat/chat-view.js.map +1 -0
  38. package/esm/browser/chat/chat.d.ts +69 -0
  39. package/esm/browser/chat/chat.js +343 -0
  40. package/esm/browser/chat/chat.js.map +1 -0
  41. package/esm/browser/components/account-menu.d.ts +8 -0
  42. package/esm/browser/components/account-menu.js +82 -0
  43. package/esm/browser/components/account-menu.js.map +1 -0
  44. package/esm/browser/components/agent-settings-view.d.ts +23 -0
  45. package/esm/browser/components/agent-settings-view.js +105 -0
  46. package/esm/browser/components/agent-settings-view.js.map +1 -0
  47. package/esm/browser/components/app-view.d.ts +9 -0
  48. package/esm/browser/components/app-view.js +405 -0
  49. package/esm/browser/components/app-view.js.map +1 -0
  50. package/esm/browser/components/auth-pictures.d.ts +6 -0
  51. package/esm/browser/components/auth-pictures.js +37 -0
  52. package/esm/browser/components/auth-pictures.js.map +1 -0
  53. package/esm/browser/components/auth-view.d.ts +54 -0
  54. package/esm/browser/components/auth-view.js +300 -0
  55. package/esm/browser/components/auth-view.js.map +1 -0
  56. package/esm/browser/components/callout.d.ts +18 -0
  57. package/esm/browser/components/callout.js +17 -0
  58. package/esm/browser/components/callout.js.map +1 -0
  59. package/esm/browser/components/chat-list.d.ts +52 -0
  60. package/esm/browser/components/chat-list.js +189 -0
  61. package/esm/browser/components/chat-list.js.map +1 -0
  62. package/esm/browser/components/code-editor.d.ts +7 -0
  63. package/esm/browser/components/code-editor.js +85 -0
  64. package/esm/browser/components/code-editor.js.map +1 -0
  65. package/esm/browser/components/composer-box.d.ts +73 -0
  66. package/esm/browser/components/composer-box.js +297 -0
  67. package/esm/browser/components/composer-box.js.map +1 -0
  68. package/esm/browser/components/composer-menu.d.ts +17 -0
  69. package/esm/browser/components/composer-menu.js +18 -0
  70. package/esm/browser/components/composer-menu.js.map +1 -0
  71. package/esm/browser/components/composer.d.ts +37 -0
  72. package/esm/browser/components/composer.js +99 -0
  73. package/esm/browser/components/composer.js.map +1 -0
  74. package/esm/browser/components/connection-bar.d.ts +6 -0
  75. package/esm/browser/components/connection-bar.js +73 -0
  76. package/esm/browser/components/connection-bar.js.map +1 -0
  77. package/esm/browser/components/context-menu.d.ts +12 -0
  78. package/esm/browser/components/context-menu.js +68 -0
  79. package/esm/browser/components/context-menu.js.map +1 -0
  80. package/esm/browser/components/conversation-scroll.d.ts +13 -0
  81. package/esm/browser/components/conversation-scroll.js +121 -0
  82. package/esm/browser/components/conversation-scroll.js.map +1 -0
  83. package/esm/browser/components/dialog-view.d.ts +9 -0
  84. package/esm/browser/components/dialog-view.js +41 -0
  85. package/esm/browser/components/dialog-view.js.map +1 -0
  86. package/esm/browser/components/diff-editor.d.ts +10 -0
  87. package/esm/browser/components/diff-editor.js +101 -0
  88. package/esm/browser/components/diff-editor.js.map +1 -0
  89. package/esm/browser/components/diff-view.d.ts +4 -0
  90. package/esm/browser/components/diff-view.js +11 -0
  91. package/esm/browser/components/diff-view.js.map +1 -0
  92. package/esm/browser/components/dino.d.ts +8 -0
  93. package/esm/browser/components/dino.js +14 -0
  94. package/esm/browser/components/dino.js.map +1 -0
  95. package/esm/browser/components/editor-area.d.ts +28 -0
  96. package/esm/browser/components/editor-area.js +134 -0
  97. package/esm/browser/components/editor-area.js.map +1 -0
  98. package/esm/browser/components/folder-picker.d.ts +28 -0
  99. package/esm/browser/components/folder-picker.js +106 -0
  100. package/esm/browser/components/folder-picker.js.map +1 -0
  101. package/esm/browser/components/fork-view.d.ts +14 -0
  102. package/esm/browser/components/fork-view.js +43 -0
  103. package/esm/browser/components/fork-view.js.map +1 -0
  104. package/esm/browser/components/hero-cards.d.ts +20 -0
  105. package/esm/browser/components/hero-cards.js +109 -0
  106. package/esm/browser/components/hero-cards.js.map +1 -0
  107. package/esm/browser/components/icon.d.ts +29 -0
  108. package/esm/browser/components/icon.js +23 -0
  109. package/esm/browser/components/icon.js.map +1 -0
  110. package/esm/browser/components/link-dialog.d.ts +3 -0
  111. package/esm/browser/components/link-dialog.js +45 -0
  112. package/esm/browser/components/link-dialog.js.map +1 -0
  113. package/esm/browser/components/link.d.ts +19 -0
  114. package/esm/browser/components/link.js +56 -0
  115. package/esm/browser/components/link.js.map +1 -0
  116. package/esm/browser/components/manage-menu.d.ts +13 -0
  117. package/esm/browser/components/manage-menu.js +96 -0
  118. package/esm/browser/components/manage-menu.js.map +1 -0
  119. package/esm/browser/components/markdown.d.ts +9 -0
  120. package/esm/browser/components/markdown.js +98 -0
  121. package/esm/browser/components/markdown.js.map +1 -0
  122. package/esm/browser/components/math.d.ts +10 -0
  123. package/esm/browser/components/math.js +21 -0
  124. package/esm/browser/components/math.js.map +1 -0
  125. package/esm/browser/components/media.d.ts +11 -0
  126. package/esm/browser/components/media.js +76 -0
  127. package/esm/browser/components/media.js.map +1 -0
  128. package/esm/browser/components/mermaid-view.d.ts +10 -0
  129. package/esm/browser/components/mermaid-view.js +84 -0
  130. package/esm/browser/components/mermaid-view.js.map +1 -0
  131. package/esm/browser/components/message-actions.d.ts +12 -0
  132. package/esm/browser/components/message-actions.js +78 -0
  133. package/esm/browser/components/message-actions.js.map +1 -0
  134. package/esm/browser/components/message-footer.d.ts +29 -0
  135. package/esm/browser/components/message-footer.js +86 -0
  136. package/esm/browser/components/message-footer.js.map +1 -0
  137. package/esm/browser/components/message-list.d.ts +37 -0
  138. package/esm/browser/components/message-list.js +216 -0
  139. package/esm/browser/components/message-list.js.map +1 -0
  140. package/esm/browser/components/notice-center.d.ts +3 -0
  141. package/esm/browser/components/notice-center.js +114 -0
  142. package/esm/browser/components/notice-center.js.map +1 -0
  143. package/esm/browser/components/relay-view.d.ts +5 -0
  144. package/esm/browser/components/relay-view.js +114 -0
  145. package/esm/browser/components/relay-view.js.map +1 -0
  146. package/esm/browser/components/run-status.d.ts +9 -0
  147. package/esm/browser/components/run-status.js +54 -0
  148. package/esm/browser/components/run-status.js.map +1 -0
  149. package/esm/browser/components/session-settings.d.ts +37 -0
  150. package/esm/browser/components/session-settings.js +84 -0
  151. package/esm/browser/components/session-settings.js.map +1 -0
  152. package/esm/browser/components/session-view.d.ts +24 -0
  153. package/esm/browser/components/session-view.js +84 -0
  154. package/esm/browser/components/session-view.js.map +1 -0
  155. package/esm/browser/components/settings-controls.d.ts +40 -0
  156. package/esm/browser/components/settings-controls.js +28 -0
  157. package/esm/browser/components/settings-controls.js.map +1 -0
  158. package/esm/browser/components/settings-view.d.ts +22 -0
  159. package/esm/browser/components/settings-view.js +357 -0
  160. package/esm/browser/components/settings-view.js.map +1 -0
  161. package/esm/browser/components/split-pane.d.ts +24 -0
  162. package/esm/browser/components/split-pane.js +75 -0
  163. package/esm/browser/components/split-pane.js.map +1 -0
  164. package/esm/browser/components/ta-avatar.d.ts +13 -0
  165. package/esm/browser/components/ta-avatar.js +185 -0
  166. package/esm/browser/components/ta-avatar.js.map +1 -0
  167. package/esm/browser/components/tool-view.d.ts +18 -0
  168. package/esm/browser/components/tool-view.js +110 -0
  169. package/esm/browser/components/tool-view.js.map +1 -0
  170. package/esm/browser/components/trusted-domains.d.ts +3 -0
  171. package/esm/browser/components/trusted-domains.js +39 -0
  172. package/esm/browser/components/trusted-domains.js.map +1 -0
  173. package/esm/browser/components/web-composer.d.ts +14 -0
  174. package/esm/browser/components/web-composer.js +22 -0
  175. package/esm/browser/components/web-composer.js.map +1 -0
  176. package/esm/browser/components/web-dialog.d.ts +4 -0
  177. package/esm/browser/components/web-dialog.js +22 -0
  178. package/esm/browser/components/web-dialog.js.map +1 -0
  179. package/esm/browser/components/workbench-toggle.d.ts +12 -0
  180. package/esm/browser/components/workbench-toggle.js +17 -0
  181. package/esm/browser/components/workbench-toggle.js.map +1 -0
  182. package/esm/browser/components/workbench-view.d.ts +8 -0
  183. package/esm/browser/components/workbench-view.js +62 -0
  184. package/esm/browser/components/workbench-view.js.map +1 -0
  185. package/esm/browser/components/working-directory.d.ts +5 -0
  186. package/esm/browser/components/working-directory.js +25 -0
  187. package/esm/browser/components/working-directory.js.map +1 -0
  188. package/esm/browser/editor/monaco-loader.d.ts +60 -0
  189. package/esm/browser/editor/monaco-loader.js +135 -0
  190. package/esm/browser/editor/monaco-loader.js.map +1 -0
  191. package/esm/browser/editor/monaco.d.ts +45 -0
  192. package/esm/browser/editor/monaco.js +54 -0
  193. package/esm/browser/editor/monaco.js.map +1 -0
  194. package/esm/browser/extension/extension-view.d.ts +35 -0
  195. package/esm/browser/extension/extension-view.js +53 -0
  196. package/esm/browser/extension/extension-view.js.map +1 -0
  197. package/esm/browser/extension/icons.d.ts +3 -0
  198. package/esm/browser/extension/icons.js +82 -0
  199. package/esm/browser/extension/icons.js.map +1 -0
  200. package/esm/browser/extension/web-extension-api.d.ts +362 -0
  201. package/esm/browser/extension/web-extension-api.js +2 -0
  202. package/esm/browser/extension/web-extension-api.js.map +1 -0
  203. package/esm/browser/extension/web-extension-protocol.d.ts +132 -0
  204. package/esm/browser/extension/web-extension-protocol.js +10 -0
  205. package/esm/browser/extension/web-extension-protocol.js.map +1 -0
  206. package/esm/browser/extension/web-extensions.d.ts +118 -0
  207. package/esm/browser/extension/web-extensions.js +654 -0
  208. package/esm/browser/extension/web-extensions.js.map +1 -0
  209. package/esm/browser/hooks.d.ts +21 -0
  210. package/esm/browser/hooks.js +65 -0
  211. package/esm/browser/hooks.js.map +1 -0
  212. package/esm/browser/i18n/locales.d.ts +435 -0
  213. package/esm/browser/i18n/locales.js +35 -0
  214. package/esm/browser/i18n/locales.js.map +1 -0
  215. package/esm/browser/i18n/messages.d.ts +427 -0
  216. package/esm/browser/i18n/messages.js +858 -0
  217. package/esm/browser/i18n/messages.js.map +1 -0
  218. package/esm/browser/i18n/use-t.d.ts +7 -0
  219. package/esm/browser/i18n/use-t.js +18 -0
  220. package/esm/browser/i18n/use-t.js.map +1 -0
  221. package/esm/browser/index.d.ts +52 -0
  222. package/esm/browser/index.js +53 -0
  223. package/esm/browser/index.js.map +1 -0
  224. package/esm/browser/links/links-protocol.d.ts +35 -0
  225. package/esm/browser/links/links-protocol.js +2 -0
  226. package/esm/browser/links/links-protocol.js.map +1 -0
  227. package/esm/browser/links/links.d.ts +32 -0
  228. package/esm/browser/links/links.js +141 -0
  229. package/esm/browser/links/links.js.map +1 -0
  230. package/esm/browser/markdown/hooks.d.ts +6 -0
  231. package/esm/browser/markdown/hooks.js +21 -0
  232. package/esm/browser/markdown/hooks.js.map +1 -0
  233. package/esm/browser/markdown/lazy.d.ts +21 -0
  234. package/esm/browser/markdown/lazy.js +39 -0
  235. package/esm/browser/markdown/lazy.js.map +1 -0
  236. package/esm/browser/markdown/math.d.ts +18 -0
  237. package/esm/browser/markdown/math.js +30 -0
  238. package/esm/browser/markdown/math.js.map +1 -0
  239. package/esm/browser/markdown/mermaid.d.ts +20 -0
  240. package/esm/browser/markdown/mermaid.js +84 -0
  241. package/esm/browser/markdown/mermaid.js.map +1 -0
  242. package/esm/browser/module.d.ts +4 -0
  243. package/esm/browser/module.js +6 -0
  244. package/esm/browser/module.js.map +1 -0
  245. package/esm/browser/notices/notices-protocol.d.ts +82 -0
  246. package/esm/browser/notices/notices-protocol.js +2 -0
  247. package/esm/browser/notices/notices-protocol.js.map +1 -0
  248. package/esm/browser/notices/notices.d.ts +47 -0
  249. package/esm/browser/notices/notices.js +162 -0
  250. package/esm/browser/notices/notices.js.map +1 -0
  251. package/esm/browser/pwa/pwa-protocol.d.ts +20 -0
  252. package/esm/browser/pwa/pwa-protocol.js +2 -0
  253. package/esm/browser/pwa/pwa-protocol.js.map +1 -0
  254. package/esm/browser/pwa/pwa.d.ts +39 -0
  255. package/esm/browser/pwa/pwa.js +120 -0
  256. package/esm/browser/pwa/pwa.js.map +1 -0
  257. package/esm/browser/settings/agent-settings.d.ts +33 -0
  258. package/esm/browser/settings/agent-settings.js +85 -0
  259. package/esm/browser/settings/agent-settings.js.map +1 -0
  260. package/esm/browser/settings/settings-protocol.d.ts +44 -0
  261. package/esm/browser/settings/settings-protocol.js +35 -0
  262. package/esm/browser/settings/settings-protocol.js.map +1 -0
  263. package/esm/browser/settings/settings.d.ts +31 -0
  264. package/esm/browser/settings/settings.js +102 -0
  265. package/esm/browser/settings/settings.js.map +1 -0
  266. package/esm/browser/state/state-protocol.d.ts +48 -0
  267. package/esm/browser/state/state-protocol.js +32 -0
  268. package/esm/browser/state/state-protocol.js.map +1 -0
  269. package/esm/browser/state/state.d.ts +39 -0
  270. package/esm/browser/state/state.js +210 -0
  271. package/esm/browser/state/state.js.map +1 -0
  272. package/esm/browser/style/base.d.ts +2 -0
  273. package/esm/browser/style/base.js +140 -0
  274. package/esm/browser/style/base.js.map +1 -0
  275. package/esm/browser/style/conversation.d.ts +2 -0
  276. package/esm/browser/style/conversation.js +201 -0
  277. package/esm/browser/style/conversation.js.map +1 -0
  278. package/esm/browser/style/layout.d.ts +2 -0
  279. package/esm/browser/style/layout.js +371 -0
  280. package/esm/browser/style/layout.js.map +1 -0
  281. package/esm/browser/style/pages.d.ts +2 -0
  282. package/esm/browser/style/pages.js +75 -0
  283. package/esm/browser/style/pages.js.map +1 -0
  284. package/esm/browser/style/shell.d.ts +2 -0
  285. package/esm/browser/style/shell.js +236 -0
  286. package/esm/browser/style/shell.js.map +1 -0
  287. package/esm/browser/style.d.ts +5 -0
  288. package/esm/browser/style.js +11 -0
  289. package/esm/browser/style.js.map +1 -0
  290. package/esm/browser/util/composer.d.ts +85 -0
  291. package/esm/browser/util/composer.js +121 -0
  292. package/esm/browser/util/composer.js.map +1 -0
  293. package/esm/browser/util/diff.d.ts +17 -0
  294. package/esm/browser/util/diff.js +29 -0
  295. package/esm/browser/util/diff.js.map +1 -0
  296. package/esm/browser/util/frame.d.ts +32 -0
  297. package/esm/browser/util/frame.js +47 -0
  298. package/esm/browser/util/frame.js.map +1 -0
  299. package/esm/browser/util/layout.d.ts +26 -0
  300. package/esm/browser/util/layout.js +54 -0
  301. package/esm/browser/util/layout.js.map +1 -0
  302. package/esm/browser/util/link.d.ts +53 -0
  303. package/esm/browser/util/link.js +229 -0
  304. package/esm/browser/util/link.js.map +1 -0
  305. package/esm/browser/util/markdown.d.ts +86 -0
  306. package/esm/browser/util/markdown.js +330 -0
  307. package/esm/browser/util/markdown.js.map +1 -0
  308. package/esm/browser/util/message.d.ts +74 -0
  309. package/esm/browser/util/message.js +143 -0
  310. package/esm/browser/util/message.js.map +1 -0
  311. package/esm/browser/util/process.d.ts +73 -0
  312. package/esm/browser/util/process.js +135 -0
  313. package/esm/browser/util/process.js.map +1 -0
  314. package/esm/browser/util/progress.d.ts +50 -0
  315. package/esm/browser/util/progress.js +143 -0
  316. package/esm/browser/util/progress.js.map +1 -0
  317. package/esm/browser/util/qr-code.d.ts +37 -0
  318. package/esm/browser/util/qr-code.js +349 -0
  319. package/esm/browser/util/qr-code.js.map +1 -0
  320. package/esm/browser/util/tool.d.ts +41 -0
  321. package/esm/browser/util/tool.js +151 -0
  322. package/esm/browser/util/tool.js.map +1 -0
  323. package/esm/browser/view.d.ts +3 -0
  324. package/esm/browser/view.js +16 -0
  325. package/esm/browser/view.js.map +1 -0
  326. package/esm/browser/workbench-protocol.d.ts +50 -0
  327. package/esm/browser/workbench-protocol.js +2 -0
  328. package/esm/browser/workbench-protocol.js.map +1 -0
  329. package/esm/browser/workbench.d.ts +63 -0
  330. package/esm/browser/workbench.js +278 -0
  331. package/esm/browser/workbench.js.map +1 -0
  332. package/esm/package.json +3 -0
  333. package/lib/browser/assistant/assistant-export.d.ts +14 -0
  334. package/lib/browser/assistant/assistant-export.d.ts.map +1 -0
  335. package/lib/browser/assistant/assistant-export.js +36 -0
  336. package/lib/browser/assistant/assistant-export.js.map +1 -0
  337. package/lib/browser/assistant/assistant-export.spec.d.ts +2 -0
  338. package/lib/browser/assistant/assistant-export.spec.d.ts.map +1 -0
  339. package/lib/browser/assistant/assistant-export.spec.js +27 -0
  340. package/lib/browser/assistant/assistant-export.spec.js.map +1 -0
  341. package/lib/browser/assistant/assistant-extension.d.ts +21 -0
  342. package/lib/browser/assistant/assistant-extension.d.ts.map +1 -0
  343. package/lib/browser/assistant/assistant-extension.js +189 -0
  344. package/lib/browser/assistant/assistant-extension.js.map +1 -0
  345. package/lib/browser/assistant/assistant-extension.spec.d.ts +2 -0
  346. package/lib/browser/assistant/assistant-extension.spec.d.ts.map +1 -0
  347. package/lib/browser/assistant/assistant-extension.spec.js +121 -0
  348. package/lib/browser/assistant/assistant-extension.spec.js.map +1 -0
  349. package/lib/browser/assistant/assistant-hooks.d.ts +9 -0
  350. package/lib/browser/assistant/assistant-hooks.d.ts.map +1 -0
  351. package/lib/browser/assistant/assistant-hooks.js +94 -0
  352. package/lib/browser/assistant/assistant-hooks.js.map +1 -0
  353. package/lib/browser/assistant/assistant-protocol.d.ts +52 -0
  354. package/lib/browser/assistant/assistant-protocol.d.ts.map +1 -0
  355. package/lib/browser/assistant/assistant-protocol.js +5 -0
  356. package/lib/browser/assistant/assistant-protocol.js.map +1 -0
  357. package/lib/browser/assistant/assistant-tasks.d.ts +49 -0
  358. package/lib/browser/assistant/assistant-tasks.d.ts.map +1 -0
  359. package/lib/browser/assistant/assistant-tasks.js +158 -0
  360. package/lib/browser/assistant/assistant-tasks.js.map +1 -0
  361. package/lib/browser/assistant/assistant-view.d.ts +22 -0
  362. package/lib/browser/assistant/assistant-view.d.ts.map +1 -0
  363. package/lib/browser/assistant/assistant-view.js +365 -0
  364. package/lib/browser/assistant/assistant-view.js.map +1 -0
  365. package/lib/browser/assistant/assistant.d.ts +52 -0
  366. package/lib/browser/assistant/assistant.d.ts.map +1 -0
  367. package/lib/browser/assistant/assistant.js +305 -0
  368. package/lib/browser/assistant/assistant.js.map +1 -0
  369. package/lib/browser/assistant/assistant.spec.d.ts +2 -0
  370. package/lib/browser/assistant/assistant.spec.d.ts.map +1 -0
  371. package/lib/browser/assistant/assistant.spec.js +80 -0
  372. package/lib/browser/assistant/assistant.spec.js.map +1 -0
  373. package/lib/browser/assistant/voice.d.ts +15 -0
  374. package/lib/browser/assistant/voice.d.ts.map +1 -0
  375. package/lib/browser/assistant/voice.js +75 -0
  376. package/lib/browser/assistant/voice.js.map +1 -0
  377. package/lib/browser/assistant/voice.spec.d.ts +2 -0
  378. package/lib/browser/assistant/voice.spec.d.ts.map +1 -0
  379. package/lib/browser/assistant/voice.spec.js +10 -0
  380. package/lib/browser/assistant/voice.spec.js.map +1 -0
  381. package/lib/browser/avatar/dino-avatar.d.ts +140 -0
  382. package/lib/browser/avatar/dino-avatar.d.ts.map +1 -0
  383. package/lib/browser/avatar/dino-avatar.js +429 -0
  384. package/lib/browser/avatar/dino-avatar.js.map +1 -0
  385. package/lib/browser/avatar/dino-avatar.spec.d.ts +2 -0
  386. package/lib/browser/avatar/dino-avatar.spec.d.ts.map +1 -0
  387. package/lib/browser/avatar/dino-avatar.spec.js +143 -0
  388. package/lib/browser/avatar/dino-avatar.spec.js.map +1 -0
  389. package/lib/browser/avatar/dino-motion.d.ts +25 -0
  390. package/lib/browser/avatar/dino-motion.d.ts.map +1 -0
  391. package/lib/browser/avatar/dino-motion.js +298 -0
  392. package/lib/browser/avatar/dino-motion.js.map +1 -0
  393. package/lib/browser/chat/chat-protocol.d.ts +47 -0
  394. package/lib/browser/chat/chat-protocol.d.ts.map +1 -0
  395. package/lib/browser/chat/chat-protocol.js +5 -0
  396. package/lib/browser/chat/chat-protocol.js.map +1 -0
  397. package/lib/browser/chat/chat-view.d.ts +16 -0
  398. package/lib/browser/chat/chat-view.d.ts.map +1 -0
  399. package/lib/browser/chat/chat-view.js +125 -0
  400. package/lib/browser/chat/chat-view.js.map +1 -0
  401. package/lib/browser/chat/chat.d.ts +70 -0
  402. package/lib/browser/chat/chat.d.ts.map +1 -0
  403. package/lib/browser/chat/chat.js +346 -0
  404. package/lib/browser/chat/chat.js.map +1 -0
  405. package/lib/browser/chat/chat.spec.d.ts +2 -0
  406. package/lib/browser/chat/chat.spec.d.ts.map +1 -0
  407. package/lib/browser/chat/chat.spec.js +185 -0
  408. package/lib/browser/chat/chat.spec.js.map +1 -0
  409. package/lib/browser/components/account-menu.d.ts +9 -0
  410. package/lib/browser/components/account-menu.d.ts.map +1 -0
  411. package/lib/browser/components/account-menu.js +119 -0
  412. package/lib/browser/components/account-menu.js.map +1 -0
  413. package/lib/browser/components/agent-settings-view.d.ts +24 -0
  414. package/lib/browser/components/agent-settings-view.d.ts.map +1 -0
  415. package/lib/browser/components/agent-settings-view.js +143 -0
  416. package/lib/browser/components/agent-settings-view.js.map +1 -0
  417. package/lib/browser/components/app-view.d.ts +10 -0
  418. package/lib/browser/components/app-view.d.ts.map +1 -0
  419. package/lib/browser/components/app-view.js +441 -0
  420. package/lib/browser/components/app-view.js.map +1 -0
  421. package/lib/browser/components/auth-pictures.d.ts +7 -0
  422. package/lib/browser/components/auth-pictures.d.ts.map +1 -0
  423. package/lib/browser/components/auth-pictures.js +73 -0
  424. package/lib/browser/components/auth-pictures.js.map +1 -0
  425. package/lib/browser/components/auth-view.d.ts +55 -0
  426. package/lib/browser/components/auth-view.d.ts.map +1 -0
  427. package/lib/browser/components/auth-view.js +340 -0
  428. package/lib/browser/components/auth-view.js.map +1 -0
  429. package/lib/browser/components/callout.d.ts +19 -0
  430. package/lib/browser/components/callout.d.ts.map +1 -0
  431. package/lib/browser/components/callout.js +54 -0
  432. package/lib/browser/components/callout.js.map +1 -0
  433. package/lib/browser/components/chat-list.d.ts +53 -0
  434. package/lib/browser/components/chat-list.d.ts.map +1 -0
  435. package/lib/browser/components/chat-list.js +226 -0
  436. package/lib/browser/components/chat-list.js.map +1 -0
  437. package/lib/browser/components/chat-list.spec.d.ts +2 -0
  438. package/lib/browser/components/chat-list.spec.d.ts.map +1 -0
  439. package/lib/browser/components/chat-list.spec.js +61 -0
  440. package/lib/browser/components/chat-list.spec.js.map +1 -0
  441. package/lib/browser/components/code-editor.d.ts +8 -0
  442. package/lib/browser/components/code-editor.d.ts.map +1 -0
  443. package/lib/browser/components/code-editor.js +121 -0
  444. package/lib/browser/components/code-editor.js.map +1 -0
  445. package/lib/browser/components/composer-box.d.ts +74 -0
  446. package/lib/browser/components/composer-box.d.ts.map +1 -0
  447. package/lib/browser/components/composer-box.js +334 -0
  448. package/lib/browser/components/composer-box.js.map +1 -0
  449. package/lib/browser/components/composer-menu.d.ts +18 -0
  450. package/lib/browser/components/composer-menu.d.ts.map +1 -0
  451. package/lib/browser/components/composer-menu.js +54 -0
  452. package/lib/browser/components/composer-menu.js.map +1 -0
  453. package/lib/browser/components/composer.d.ts +38 -0
  454. package/lib/browser/components/composer.d.ts.map +1 -0
  455. package/lib/browser/components/composer.js +135 -0
  456. package/lib/browser/components/composer.js.map +1 -0
  457. package/lib/browser/components/composer.spec.d.ts +2 -0
  458. package/lib/browser/components/composer.spec.d.ts.map +1 -0
  459. package/lib/browser/components/composer.spec.js +129 -0
  460. package/lib/browser/components/composer.spec.js.map +1 -0
  461. package/lib/browser/components/connection-bar.d.ts +7 -0
  462. package/lib/browser/components/connection-bar.d.ts.map +1 -0
  463. package/lib/browser/components/connection-bar.js +109 -0
  464. package/lib/browser/components/connection-bar.js.map +1 -0
  465. package/lib/browser/components/context-menu.d.ts +13 -0
  466. package/lib/browser/components/context-menu.d.ts.map +1 -0
  467. package/lib/browser/components/context-menu.js +104 -0
  468. package/lib/browser/components/context-menu.js.map +1 -0
  469. package/lib/browser/components/conversation-scroll.d.ts +14 -0
  470. package/lib/browser/components/conversation-scroll.d.ts.map +1 -0
  471. package/lib/browser/components/conversation-scroll.js +158 -0
  472. package/lib/browser/components/conversation-scroll.js.map +1 -0
  473. package/lib/browser/components/dialog-view.d.ts +10 -0
  474. package/lib/browser/components/dialog-view.d.ts.map +1 -0
  475. package/lib/browser/components/dialog-view.js +77 -0
  476. package/lib/browser/components/dialog-view.js.map +1 -0
  477. package/lib/browser/components/diff-editor.d.ts +11 -0
  478. package/lib/browser/components/diff-editor.d.ts.map +1 -0
  479. package/lib/browser/components/diff-editor.js +137 -0
  480. package/lib/browser/components/diff-editor.js.map +1 -0
  481. package/lib/browser/components/diff-view.d.ts +5 -0
  482. package/lib/browser/components/diff-view.d.ts.map +1 -0
  483. package/lib/browser/components/diff-view.js +47 -0
  484. package/lib/browser/components/diff-view.js.map +1 -0
  485. package/lib/browser/components/dino.d.ts +9 -0
  486. package/lib/browser/components/dino.d.ts.map +1 -0
  487. package/lib/browser/components/dino.js +52 -0
  488. package/lib/browser/components/dino.js.map +1 -0
  489. package/lib/browser/components/editor-area.d.ts +29 -0
  490. package/lib/browser/components/editor-area.d.ts.map +1 -0
  491. package/lib/browser/components/editor-area.js +171 -0
  492. package/lib/browser/components/editor-area.js.map +1 -0
  493. package/lib/browser/components/folder-picker.d.ts +29 -0
  494. package/lib/browser/components/folder-picker.d.ts.map +1 -0
  495. package/lib/browser/components/folder-picker.js +144 -0
  496. package/lib/browser/components/folder-picker.js.map +1 -0
  497. package/lib/browser/components/folder-picker.spec.d.ts +2 -0
  498. package/lib/browser/components/folder-picker.spec.d.ts.map +1 -0
  499. package/lib/browser/components/folder-picker.spec.js +28 -0
  500. package/lib/browser/components/folder-picker.spec.js.map +1 -0
  501. package/lib/browser/components/fork-view.d.ts +15 -0
  502. package/lib/browser/components/fork-view.d.ts.map +1 -0
  503. package/lib/browser/components/fork-view.js +79 -0
  504. package/lib/browser/components/fork-view.js.map +1 -0
  505. package/lib/browser/components/hero-cards.d.ts +21 -0
  506. package/lib/browser/components/hero-cards.d.ts.map +1 -0
  507. package/lib/browser/components/hero-cards.js +146 -0
  508. package/lib/browser/components/hero-cards.js.map +1 -0
  509. package/lib/browser/components/icon.d.ts +30 -0
  510. package/lib/browser/components/icon.d.ts.map +1 -0
  511. package/lib/browser/components/icon.js +61 -0
  512. package/lib/browser/components/icon.js.map +1 -0
  513. package/lib/browser/components/link-dialog.d.ts +4 -0
  514. package/lib/browser/components/link-dialog.d.ts.map +1 -0
  515. package/lib/browser/components/link-dialog.js +81 -0
  516. package/lib/browser/components/link-dialog.js.map +1 -0
  517. package/lib/browser/components/link.d.ts +20 -0
  518. package/lib/browser/components/link.d.ts.map +1 -0
  519. package/lib/browser/components/link.js +94 -0
  520. package/lib/browser/components/link.js.map +1 -0
  521. package/lib/browser/components/manage-menu.d.ts +14 -0
  522. package/lib/browser/components/manage-menu.d.ts.map +1 -0
  523. package/lib/browser/components/manage-menu.js +132 -0
  524. package/lib/browser/components/manage-menu.js.map +1 -0
  525. package/lib/browser/components/markdown.d.ts +10 -0
  526. package/lib/browser/components/markdown.d.ts.map +1 -0
  527. package/lib/browser/components/markdown.js +135 -0
  528. package/lib/browser/components/markdown.js.map +1 -0
  529. package/lib/browser/components/markdown.spec.d.ts +2 -0
  530. package/lib/browser/components/markdown.spec.d.ts.map +1 -0
  531. package/lib/browser/components/markdown.spec.js +72 -0
  532. package/lib/browser/components/markdown.spec.js.map +1 -0
  533. package/lib/browser/components/math.d.ts +11 -0
  534. package/lib/browser/components/math.d.ts.map +1 -0
  535. package/lib/browser/components/math.js +57 -0
  536. package/lib/browser/components/math.js.map +1 -0
  537. package/lib/browser/components/media.d.ts +12 -0
  538. package/lib/browser/components/media.d.ts.map +1 -0
  539. package/lib/browser/components/media.js +113 -0
  540. package/lib/browser/components/media.js.map +1 -0
  541. package/lib/browser/components/mermaid-view.d.ts +11 -0
  542. package/lib/browser/components/mermaid-view.d.ts.map +1 -0
  543. package/lib/browser/components/mermaid-view.js +120 -0
  544. package/lib/browser/components/mermaid-view.js.map +1 -0
  545. package/lib/browser/components/message-actions.d.ts +13 -0
  546. package/lib/browser/components/message-actions.d.ts.map +1 -0
  547. package/lib/browser/components/message-actions.js +114 -0
  548. package/lib/browser/components/message-actions.js.map +1 -0
  549. package/lib/browser/components/message-footer.d.ts +30 -0
  550. package/lib/browser/components/message-footer.d.ts.map +1 -0
  551. package/lib/browser/components/message-footer.js +124 -0
  552. package/lib/browser/components/message-footer.js.map +1 -0
  553. package/lib/browser/components/message-list.d.ts +38 -0
  554. package/lib/browser/components/message-list.d.ts.map +1 -0
  555. package/lib/browser/components/message-list.js +257 -0
  556. package/lib/browser/components/message-list.js.map +1 -0
  557. package/lib/browser/components/message-list.spec.d.ts +2 -0
  558. package/lib/browser/components/message-list.spec.d.ts.map +1 -0
  559. package/lib/browser/components/message-list.spec.js +269 -0
  560. package/lib/browser/components/message-list.spec.js.map +1 -0
  561. package/lib/browser/components/notice-center.d.ts +4 -0
  562. package/lib/browser/components/notice-center.d.ts.map +1 -0
  563. package/lib/browser/components/notice-center.js +150 -0
  564. package/lib/browser/components/notice-center.js.map +1 -0
  565. package/lib/browser/components/relay-view.d.ts +6 -0
  566. package/lib/browser/components/relay-view.d.ts.map +1 -0
  567. package/lib/browser/components/relay-view.js +150 -0
  568. package/lib/browser/components/relay-view.js.map +1 -0
  569. package/lib/browser/components/run-status.d.ts +10 -0
  570. package/lib/browser/components/run-status.d.ts.map +1 -0
  571. package/lib/browser/components/run-status.js +90 -0
  572. package/lib/browser/components/run-status.js.map +1 -0
  573. package/lib/browser/components/session-settings.d.ts +38 -0
  574. package/lib/browser/components/session-settings.d.ts.map +1 -0
  575. package/lib/browser/components/session-settings.js +121 -0
  576. package/lib/browser/components/session-settings.js.map +1 -0
  577. package/lib/browser/components/session-settings.spec.d.ts +2 -0
  578. package/lib/browser/components/session-settings.spec.d.ts.map +1 -0
  579. package/lib/browser/components/session-settings.spec.js +47 -0
  580. package/lib/browser/components/session-settings.spec.js.map +1 -0
  581. package/lib/browser/components/session-view.d.ts +25 -0
  582. package/lib/browser/components/session-view.d.ts.map +1 -0
  583. package/lib/browser/components/session-view.js +120 -0
  584. package/lib/browser/components/session-view.js.map +1 -0
  585. package/lib/browser/components/settings-controls.d.ts +41 -0
  586. package/lib/browser/components/settings-controls.d.ts.map +1 -0
  587. package/lib/browser/components/settings-controls.js +68 -0
  588. package/lib/browser/components/settings-controls.js.map +1 -0
  589. package/lib/browser/components/settings-view.d.ts +23 -0
  590. package/lib/browser/components/settings-view.d.ts.map +1 -0
  591. package/lib/browser/components/settings-view.js +394 -0
  592. package/lib/browser/components/settings-view.js.map +1 -0
  593. package/lib/browser/components/split-pane.d.ts +25 -0
  594. package/lib/browser/components/split-pane.d.ts.map +1 -0
  595. package/lib/browser/components/split-pane.js +113 -0
  596. package/lib/browser/components/split-pane.js.map +1 -0
  597. package/lib/browser/components/ta-avatar.d.ts +14 -0
  598. package/lib/browser/components/ta-avatar.d.ts.map +1 -0
  599. package/lib/browser/components/ta-avatar.js +221 -0
  600. package/lib/browser/components/ta-avatar.js.map +1 -0
  601. package/lib/browser/components/ta-avatar.spec.d.ts +2 -0
  602. package/lib/browser/components/ta-avatar.spec.d.ts.map +1 -0
  603. package/lib/browser/components/ta-avatar.spec.js +60 -0
  604. package/lib/browser/components/ta-avatar.spec.js.map +1 -0
  605. package/lib/browser/components/tool-view.d.ts +19 -0
  606. package/lib/browser/components/tool-view.d.ts.map +1 -0
  607. package/lib/browser/components/tool-view.js +146 -0
  608. package/lib/browser/components/tool-view.js.map +1 -0
  609. package/lib/browser/components/trusted-domains.d.ts +4 -0
  610. package/lib/browser/components/trusted-domains.d.ts.map +1 -0
  611. package/lib/browser/components/trusted-domains.js +75 -0
  612. package/lib/browser/components/trusted-domains.js.map +1 -0
  613. package/lib/browser/components/web-composer.d.ts +15 -0
  614. package/lib/browser/components/web-composer.d.ts.map +1 -0
  615. package/lib/browser/components/web-composer.js +58 -0
  616. package/lib/browser/components/web-composer.js.map +1 -0
  617. package/lib/browser/components/web-dialog.d.ts +5 -0
  618. package/lib/browser/components/web-dialog.d.ts.map +1 -0
  619. package/lib/browser/components/web-dialog.js +58 -0
  620. package/lib/browser/components/web-dialog.js.map +1 -0
  621. package/lib/browser/components/workbench-toggle.d.ts +13 -0
  622. package/lib/browser/components/workbench-toggle.d.ts.map +1 -0
  623. package/lib/browser/components/workbench-toggle.js +54 -0
  624. package/lib/browser/components/workbench-toggle.js.map +1 -0
  625. package/lib/browser/components/workbench-toggle.spec.d.ts +2 -0
  626. package/lib/browser/components/workbench-toggle.spec.d.ts.map +1 -0
  627. package/lib/browser/components/workbench-toggle.spec.js +64 -0
  628. package/lib/browser/components/workbench-toggle.spec.js.map +1 -0
  629. package/lib/browser/components/workbench-view.d.ts +9 -0
  630. package/lib/browser/components/workbench-view.d.ts.map +1 -0
  631. package/lib/browser/components/workbench-view.js +99 -0
  632. package/lib/browser/components/workbench-view.js.map +1 -0
  633. package/lib/browser/components/working-directory.d.ts +6 -0
  634. package/lib/browser/components/working-directory.d.ts.map +1 -0
  635. package/lib/browser/components/working-directory.js +61 -0
  636. package/lib/browser/components/working-directory.js.map +1 -0
  637. package/lib/browser/editor/monaco-loader.d.ts +61 -0
  638. package/lib/browser/editor/monaco-loader.d.ts.map +1 -0
  639. package/lib/browser/editor/monaco-loader.js +138 -0
  640. package/lib/browser/editor/monaco-loader.js.map +1 -0
  641. package/lib/browser/editor/monaco-loader.spec.d.ts +2 -0
  642. package/lib/browser/editor/monaco-loader.spec.d.ts.map +1 -0
  643. package/lib/browser/editor/monaco-loader.spec.js +39 -0
  644. package/lib/browser/editor/monaco-loader.spec.js.map +1 -0
  645. package/lib/browser/editor/monaco.d.ts +46 -0
  646. package/lib/browser/editor/monaco.d.ts.map +1 -0
  647. package/lib/browser/editor/monaco.js +93 -0
  648. package/lib/browser/editor/monaco.js.map +1 -0
  649. package/lib/browser/extension/extension-view.d.ts +36 -0
  650. package/lib/browser/extension/extension-view.d.ts.map +1 -0
  651. package/lib/browser/extension/extension-view.js +91 -0
  652. package/lib/browser/extension/extension-view.js.map +1 -0
  653. package/lib/browser/extension/icons.d.ts +4 -0
  654. package/lib/browser/extension/icons.d.ts.map +1 -0
  655. package/lib/browser/extension/icons.js +85 -0
  656. package/lib/browser/extension/icons.js.map +1 -0
  657. package/lib/browser/extension/web-extension-api.d.ts +363 -0
  658. package/lib/browser/extension/web-extension-api.d.ts.map +1 -0
  659. package/lib/browser/extension/web-extension-api.js +3 -0
  660. package/lib/browser/extension/web-extension-api.js.map +1 -0
  661. package/lib/browser/extension/web-extension-protocol.d.ts +133 -0
  662. package/lib/browser/extension/web-extension-protocol.d.ts.map +1 -0
  663. package/lib/browser/extension/web-extension-protocol.js +13 -0
  664. package/lib/browser/extension/web-extension-protocol.js.map +1 -0
  665. package/lib/browser/extension/web-extensions.d.ts +119 -0
  666. package/lib/browser/extension/web-extensions.d.ts.map +1 -0
  667. package/lib/browser/extension/web-extensions.js +690 -0
  668. package/lib/browser/extension/web-extensions.js.map +1 -0
  669. package/lib/browser/extension/web-extensions.spec.d.ts +2 -0
  670. package/lib/browser/extension/web-extensions.spec.d.ts.map +1 -0
  671. package/lib/browser/extension/web-extensions.spec.js +617 -0
  672. package/lib/browser/extension/web-extensions.spec.js.map +1 -0
  673. package/lib/browser/hooks.d.ts +22 -0
  674. package/lib/browser/hooks.d.ts.map +1 -0
  675. package/lib/browser/hooks.js +109 -0
  676. package/lib/browser/hooks.js.map +1 -0
  677. package/lib/browser/i18n/locales.d.ts +436 -0
  678. package/lib/browser/i18n/locales.d.ts.map +1 -0
  679. package/lib/browser/i18n/locales.js +38 -0
  680. package/lib/browser/i18n/locales.js.map +1 -0
  681. package/lib/browser/i18n/messages.d.ts +428 -0
  682. package/lib/browser/i18n/messages.d.ts.map +1 -0
  683. package/lib/browser/i18n/messages.js +862 -0
  684. package/lib/browser/i18n/messages.js.map +1 -0
  685. package/lib/browser/i18n/use-t.d.ts +8 -0
  686. package/lib/browser/i18n/use-t.d.ts.map +1 -0
  687. package/lib/browser/i18n/use-t.js +54 -0
  688. package/lib/browser/i18n/use-t.js.map +1 -0
  689. package/lib/browser/index.d.ts +53 -0
  690. package/lib/browser/index.d.ts.map +1 -0
  691. package/lib/browser/index.js +69 -0
  692. package/lib/browser/index.js.map +1 -0
  693. package/lib/browser/links/links-protocol.d.ts +36 -0
  694. package/lib/browser/links/links-protocol.d.ts.map +1 -0
  695. package/lib/browser/links/links-protocol.js +5 -0
  696. package/lib/browser/links/links-protocol.js.map +1 -0
  697. package/lib/browser/links/links.d.ts +33 -0
  698. package/lib/browser/links/links.d.ts.map +1 -0
  699. package/lib/browser/links/links.js +144 -0
  700. package/lib/browser/links/links.js.map +1 -0
  701. package/lib/browser/links/links.spec.d.ts +2 -0
  702. package/lib/browser/links/links.spec.d.ts.map +1 -0
  703. package/lib/browser/links/links.spec.js +123 -0
  704. package/lib/browser/links/links.spec.js.map +1 -0
  705. package/lib/browser/markdown/hooks.d.ts +7 -0
  706. package/lib/browser/markdown/hooks.d.ts.map +1 -0
  707. package/lib/browser/markdown/hooks.js +58 -0
  708. package/lib/browser/markdown/hooks.js.map +1 -0
  709. package/lib/browser/markdown/lazy.d.ts +22 -0
  710. package/lib/browser/markdown/lazy.d.ts.map +1 -0
  711. package/lib/browser/markdown/lazy.js +44 -0
  712. package/lib/browser/markdown/lazy.js.map +1 -0
  713. package/lib/browser/markdown/lazy.spec.d.ts +2 -0
  714. package/lib/browser/markdown/lazy.spec.d.ts.map +1 -0
  715. package/lib/browser/markdown/lazy.spec.js +35 -0
  716. package/lib/browser/markdown/lazy.spec.js.map +1 -0
  717. package/lib/browser/markdown/math.d.ts +19 -0
  718. package/lib/browser/markdown/math.d.ts.map +1 -0
  719. package/lib/browser/markdown/math.js +33 -0
  720. package/lib/browser/markdown/math.js.map +1 -0
  721. package/lib/browser/markdown/math.spec.d.ts +2 -0
  722. package/lib/browser/markdown/math.spec.d.ts.map +1 -0
  723. package/lib/browser/markdown/math.spec.js +24 -0
  724. package/lib/browser/markdown/math.spec.js.map +1 -0
  725. package/lib/browser/markdown/mermaid.d.ts +21 -0
  726. package/lib/browser/markdown/mermaid.d.ts.map +1 -0
  727. package/lib/browser/markdown/mermaid.js +87 -0
  728. package/lib/browser/markdown/mermaid.js.map +1 -0
  729. package/lib/browser/markdown/mermaid.spec.d.ts +2 -0
  730. package/lib/browser/markdown/mermaid.spec.d.ts.map +1 -0
  731. package/lib/browser/markdown/mermaid.spec.js +21 -0
  732. package/lib/browser/markdown/mermaid.spec.js.map +1 -0
  733. package/lib/browser/module.d.ts +5 -0
  734. package/lib/browser/module.d.ts.map +1 -0
  735. package/lib/browser/module.js +8 -0
  736. package/lib/browser/module.js.map +1 -0
  737. package/lib/browser/notices/notices-protocol.d.ts +83 -0
  738. package/lib/browser/notices/notices-protocol.d.ts.map +1 -0
  739. package/lib/browser/notices/notices-protocol.js +5 -0
  740. package/lib/browser/notices/notices-protocol.js.map +1 -0
  741. package/lib/browser/notices/notices.d.ts +48 -0
  742. package/lib/browser/notices/notices.d.ts.map +1 -0
  743. package/lib/browser/notices/notices.js +165 -0
  744. package/lib/browser/notices/notices.js.map +1 -0
  745. package/lib/browser/notices/notices.spec.d.ts +2 -0
  746. package/lib/browser/notices/notices.spec.d.ts.map +1 -0
  747. package/lib/browser/notices/notices.spec.js +96 -0
  748. package/lib/browser/notices/notices.spec.js.map +1 -0
  749. package/lib/browser/pwa/pwa-protocol.d.ts +21 -0
  750. package/lib/browser/pwa/pwa-protocol.d.ts.map +1 -0
  751. package/lib/browser/pwa/pwa-protocol.js +5 -0
  752. package/lib/browser/pwa/pwa-protocol.js.map +1 -0
  753. package/lib/browser/pwa/pwa.d.ts +40 -0
  754. package/lib/browser/pwa/pwa.d.ts.map +1 -0
  755. package/lib/browser/pwa/pwa.js +123 -0
  756. package/lib/browser/pwa/pwa.js.map +1 -0
  757. package/lib/browser/pwa/pwa.spec.d.ts +2 -0
  758. package/lib/browser/pwa/pwa.spec.d.ts.map +1 -0
  759. package/lib/browser/pwa/pwa.spec.js +134 -0
  760. package/lib/browser/pwa/pwa.spec.js.map +1 -0
  761. package/lib/browser/settings/agent-settings.d.ts +34 -0
  762. package/lib/browser/settings/agent-settings.d.ts.map +1 -0
  763. package/lib/browser/settings/agent-settings.js +88 -0
  764. package/lib/browser/settings/agent-settings.js.map +1 -0
  765. package/lib/browser/settings/agent-settings.spec.d.ts +2 -0
  766. package/lib/browser/settings/agent-settings.spec.d.ts.map +1 -0
  767. package/lib/browser/settings/agent-settings.spec.js +53 -0
  768. package/lib/browser/settings/agent-settings.spec.js.map +1 -0
  769. package/lib/browser/settings/settings-protocol.d.ts +45 -0
  770. package/lib/browser/settings/settings-protocol.d.ts.map +1 -0
  771. package/lib/browser/settings/settings-protocol.js +38 -0
  772. package/lib/browser/settings/settings-protocol.js.map +1 -0
  773. package/lib/browser/settings/settings.d.ts +32 -0
  774. package/lib/browser/settings/settings.d.ts.map +1 -0
  775. package/lib/browser/settings/settings.js +105 -0
  776. package/lib/browser/settings/settings.js.map +1 -0
  777. package/lib/browser/settings/settings.spec.d.ts +2 -0
  778. package/lib/browser/settings/settings.spec.d.ts.map +1 -0
  779. package/lib/browser/settings/settings.spec.js +32 -0
  780. package/lib/browser/settings/settings.spec.js.map +1 -0
  781. package/lib/browser/state/state-protocol.d.ts +49 -0
  782. package/lib/browser/state/state-protocol.d.ts.map +1 -0
  783. package/lib/browser/state/state-protocol.js +35 -0
  784. package/lib/browser/state/state-protocol.js.map +1 -0
  785. package/lib/browser/state/state.d.ts +40 -0
  786. package/lib/browser/state/state.d.ts.map +1 -0
  787. package/lib/browser/state/state.js +213 -0
  788. package/lib/browser/state/state.js.map +1 -0
  789. package/lib/browser/state/state.spec.d.ts +2 -0
  790. package/lib/browser/state/state.spec.d.ts.map +1 -0
  791. package/lib/browser/state/state.spec.js +201 -0
  792. package/lib/browser/state/state.spec.js.map +1 -0
  793. package/lib/browser/style/base.d.ts +3 -0
  794. package/lib/browser/style/base.d.ts.map +1 -0
  795. package/lib/browser/style/base.js +143 -0
  796. package/lib/browser/style/base.js.map +1 -0
  797. package/lib/browser/style/conversation.d.ts +3 -0
  798. package/lib/browser/style/conversation.d.ts.map +1 -0
  799. package/lib/browser/style/conversation.js +204 -0
  800. package/lib/browser/style/conversation.js.map +1 -0
  801. package/lib/browser/style/layout.d.ts +3 -0
  802. package/lib/browser/style/layout.d.ts.map +1 -0
  803. package/lib/browser/style/layout.js +374 -0
  804. package/lib/browser/style/layout.js.map +1 -0
  805. package/lib/browser/style/pages.d.ts +3 -0
  806. package/lib/browser/style/pages.d.ts.map +1 -0
  807. package/lib/browser/style/pages.js +78 -0
  808. package/lib/browser/style/pages.js.map +1 -0
  809. package/lib/browser/style/shell.d.ts +3 -0
  810. package/lib/browser/style/shell.d.ts.map +1 -0
  811. package/lib/browser/style/shell.js +239 -0
  812. package/lib/browser/style/shell.js.map +1 -0
  813. package/lib/browser/style.d.ts +6 -0
  814. package/lib/browser/style.d.ts.map +1 -0
  815. package/lib/browser/style.js +14 -0
  816. package/lib/browser/style.js.map +1 -0
  817. package/lib/browser/util/composer.d.ts +86 -0
  818. package/lib/browser/util/composer.d.ts.map +1 -0
  819. package/lib/browser/util/composer.js +124 -0
  820. package/lib/browser/util/composer.js.map +1 -0
  821. package/lib/browser/util/composer.spec.d.ts +2 -0
  822. package/lib/browser/util/composer.spec.d.ts.map +1 -0
  823. package/lib/browser/util/composer.spec.js +66 -0
  824. package/lib/browser/util/composer.spec.js.map +1 -0
  825. package/lib/browser/util/diff.d.ts +18 -0
  826. package/lib/browser/util/diff.d.ts.map +1 -0
  827. package/lib/browser/util/diff.js +32 -0
  828. package/lib/browser/util/diff.js.map +1 -0
  829. package/lib/browser/util/diff.spec.d.ts +2 -0
  830. package/lib/browser/util/diff.spec.d.ts.map +1 -0
  831. package/lib/browser/util/diff.spec.js +21 -0
  832. package/lib/browser/util/diff.spec.js.map +1 -0
  833. package/lib/browser/util/frame.d.ts +33 -0
  834. package/lib/browser/util/frame.d.ts.map +1 -0
  835. package/lib/browser/util/frame.js +50 -0
  836. package/lib/browser/util/frame.js.map +1 -0
  837. package/lib/browser/util/frame.spec.d.ts +2 -0
  838. package/lib/browser/util/frame.spec.d.ts.map +1 -0
  839. package/lib/browser/util/frame.spec.js +60 -0
  840. package/lib/browser/util/frame.spec.js.map +1 -0
  841. package/lib/browser/util/layout.d.ts +27 -0
  842. package/lib/browser/util/layout.d.ts.map +1 -0
  843. package/lib/browser/util/layout.js +57 -0
  844. package/lib/browser/util/layout.js.map +1 -0
  845. package/lib/browser/util/layout.spec.d.ts +2 -0
  846. package/lib/browser/util/layout.spec.d.ts.map +1 -0
  847. package/lib/browser/util/layout.spec.js +35 -0
  848. package/lib/browser/util/layout.spec.js.map +1 -0
  849. package/lib/browser/util/link.d.ts +54 -0
  850. package/lib/browser/util/link.d.ts.map +1 -0
  851. package/lib/browser/util/link.js +232 -0
  852. package/lib/browser/util/link.js.map +1 -0
  853. package/lib/browser/util/link.spec.d.ts +2 -0
  854. package/lib/browser/util/link.spec.d.ts.map +1 -0
  855. package/lib/browser/util/link.spec.js +101 -0
  856. package/lib/browser/util/link.spec.js.map +1 -0
  857. package/lib/browser/util/markdown.d.ts +87 -0
  858. package/lib/browser/util/markdown.d.ts.map +1 -0
  859. package/lib/browser/util/markdown.js +333 -0
  860. package/lib/browser/util/markdown.js.map +1 -0
  861. package/lib/browser/util/markdown.spec.d.ts +2 -0
  862. package/lib/browser/util/markdown.spec.d.ts.map +1 -0
  863. package/lib/browser/util/markdown.spec.js +124 -0
  864. package/lib/browser/util/markdown.spec.js.map +1 -0
  865. package/lib/browser/util/message.d.ts +75 -0
  866. package/lib/browser/util/message.d.ts.map +1 -0
  867. package/lib/browser/util/message.js +146 -0
  868. package/lib/browser/util/message.js.map +1 -0
  869. package/lib/browser/util/message.spec.d.ts +2 -0
  870. package/lib/browser/util/message.spec.d.ts.map +1 -0
  871. package/lib/browser/util/message.spec.js +59 -0
  872. package/lib/browser/util/message.spec.js.map +1 -0
  873. package/lib/browser/util/process.d.ts +74 -0
  874. package/lib/browser/util/process.d.ts.map +1 -0
  875. package/lib/browser/util/process.js +138 -0
  876. package/lib/browser/util/process.js.map +1 -0
  877. package/lib/browser/util/process.spec.d.ts +2 -0
  878. package/lib/browser/util/process.spec.d.ts.map +1 -0
  879. package/lib/browser/util/process.spec.js +106 -0
  880. package/lib/browser/util/process.spec.js.map +1 -0
  881. package/lib/browser/util/progress.d.ts +51 -0
  882. package/lib/browser/util/progress.d.ts.map +1 -0
  883. package/lib/browser/util/progress.js +146 -0
  884. package/lib/browser/util/progress.js.map +1 -0
  885. package/lib/browser/util/progress.spec.d.ts +2 -0
  886. package/lib/browser/util/progress.spec.d.ts.map +1 -0
  887. package/lib/browser/util/progress.spec.js +77 -0
  888. package/lib/browser/util/progress.spec.js.map +1 -0
  889. package/lib/browser/util/qr-code.d.ts +38 -0
  890. package/lib/browser/util/qr-code.d.ts.map +1 -0
  891. package/lib/browser/util/qr-code.js +353 -0
  892. package/lib/browser/util/qr-code.js.map +1 -0
  893. package/lib/browser/util/qr-code.spec.d.ts +2 -0
  894. package/lib/browser/util/qr-code.spec.d.ts.map +1 -0
  895. package/lib/browser/util/qr-code.spec.js +48 -0
  896. package/lib/browser/util/qr-code.spec.js.map +1 -0
  897. package/lib/browser/util/tool.d.ts +42 -0
  898. package/lib/browser/util/tool.d.ts.map +1 -0
  899. package/lib/browser/util/tool.js +154 -0
  900. package/lib/browser/util/tool.js.map +1 -0
  901. package/lib/browser/util/tool.spec.d.ts +2 -0
  902. package/lib/browser/util/tool.spec.d.ts.map +1 -0
  903. package/lib/browser/util/tool.spec.js +73 -0
  904. package/lib/browser/util/tool.spec.js.map +1 -0
  905. package/lib/browser/view.d.ts +4 -0
  906. package/lib/browser/view.d.ts.map +1 -0
  907. package/lib/browser/view.js +19 -0
  908. package/lib/browser/view.js.map +1 -0
  909. package/lib/browser/workbench-protocol.d.ts +51 -0
  910. package/lib/browser/workbench-protocol.d.ts.map +1 -0
  911. package/lib/browser/workbench-protocol.js +5 -0
  912. package/lib/browser/workbench-protocol.js.map +1 -0
  913. package/lib/browser/workbench.d.ts +64 -0
  914. package/lib/browser/workbench.d.ts.map +1 -0
  915. package/lib/browser/workbench.js +281 -0
  916. package/lib/browser/workbench.js.map +1 -0
  917. package/lib/browser/workbench.spec.d.ts +2 -0
  918. package/lib/browser/workbench.spec.d.ts.map +1 -0
  919. package/lib/browser/workbench.spec.js +34 -0
  920. package/lib/browser/workbench.spec.js.map +1 -0
  921. package/package.json +81 -4
  922. package/src/browser/assistant/assistant-export.spec.ts +30 -0
  923. package/src/browser/assistant/assistant-export.ts +41 -0
  924. package/src/browser/assistant/assistant-extension.spec.ts +122 -0
  925. package/src/browser/assistant/assistant-extension.ts +137 -0
  926. package/src/browser/assistant/assistant-hooks.ts +63 -0
  927. package/src/browser/assistant/assistant-protocol.ts +55 -0
  928. package/src/browser/assistant/assistant-tasks.tsx +194 -0
  929. package/src/browser/assistant/assistant-view.tsx +453 -0
  930. package/src/browser/assistant/assistant.spec.ts +80 -0
  931. package/src/browser/assistant/assistant.ts +315 -0
  932. package/src/browser/assistant/voice.spec.ts +8 -0
  933. package/src/browser/assistant/voice.ts +87 -0
  934. package/src/browser/avatar/dino-avatar.spec.ts +151 -0
  935. package/src/browser/avatar/dino-avatar.ts +541 -0
  936. package/src/browser/avatar/dino-motion.ts +313 -0
  937. package/src/browser/chat/chat-protocol.ts +47 -0
  938. package/src/browser/chat/chat-view.tsx +155 -0
  939. package/src/browser/chat/chat.spec.ts +194 -0
  940. package/src/browser/chat/chat.ts +335 -0
  941. package/src/browser/components/account-menu.tsx +114 -0
  942. package/src/browser/components/agent-settings-view.tsx +196 -0
  943. package/src/browser/components/app-view.tsx +553 -0
  944. package/src/browser/components/auth-pictures.tsx +55 -0
  945. package/src/browser/components/auth-view.tsx +421 -0
  946. package/src/browser/components/callout.tsx +33 -0
  947. package/src/browser/components/chat-list.spec.ts +66 -0
  948. package/src/browser/components/chat-list.tsx +276 -0
  949. package/src/browser/components/code-editor.tsx +114 -0
  950. package/src/browser/components/composer-box.tsx +475 -0
  951. package/src/browser/components/composer-menu.tsx +49 -0
  952. package/src/browser/components/composer.spec.tsx +130 -0
  953. package/src/browser/components/composer.tsx +170 -0
  954. package/src/browser/components/connection-bar.tsx +85 -0
  955. package/src/browser/components/context-menu.tsx +100 -0
  956. package/src/browser/components/conversation-scroll.ts +126 -0
  957. package/src/browser/components/dialog-view.tsx +82 -0
  958. package/src/browser/components/diff-editor.tsx +131 -0
  959. package/src/browser/components/diff-view.tsx +19 -0
  960. package/src/browser/components/dino.tsx +19 -0
  961. package/src/browser/components/editor-area.tsx +234 -0
  962. package/src/browser/components/folder-picker.spec.ts +30 -0
  963. package/src/browser/components/folder-picker.tsx +177 -0
  964. package/src/browser/components/fork-view.tsx +65 -0
  965. package/src/browser/components/hero-cards.tsx +189 -0
  966. package/src/browser/components/icon.tsx +62 -0
  967. package/src/browser/components/link-dialog.tsx +66 -0
  968. package/src/browser/components/link.tsx +77 -0
  969. package/src/browser/components/manage-menu.tsx +165 -0
  970. package/src/browser/components/markdown.spec.tsx +46 -0
  971. package/src/browser/components/markdown.tsx +155 -0
  972. package/src/browser/components/math.tsx +21 -0
  973. package/src/browser/components/media.tsx +91 -0
  974. package/src/browser/components/mermaid-view.tsx +105 -0
  975. package/src/browser/components/message-actions.tsx +89 -0
  976. package/src/browser/components/message-footer.tsx +128 -0
  977. package/src/browser/components/message-list.spec.tsx +321 -0
  978. package/src/browser/components/message-list.tsx +328 -0
  979. package/src/browser/components/notice-center.tsx +187 -0
  980. package/src/browser/components/relay-view.tsx +146 -0
  981. package/src/browser/components/run-status.tsx +70 -0
  982. package/src/browser/components/session-settings.spec.tsx +49 -0
  983. package/src/browser/components/session-settings.tsx +119 -0
  984. package/src/browser/components/session-view.tsx +153 -0
  985. package/src/browser/components/settings-controls.tsx +94 -0
  986. package/src/browser/components/settings-view.tsx +573 -0
  987. package/src/browser/components/split-pane.tsx +108 -0
  988. package/src/browser/components/ta-avatar.spec.tsx +27 -0
  989. package/src/browser/components/ta-avatar.tsx +251 -0
  990. package/src/browser/components/tool-view.tsx +186 -0
  991. package/src/browser/components/trusted-domains.tsx +60 -0
  992. package/src/browser/components/web-composer.tsx +47 -0
  993. package/src/browser/components/web-dialog.tsx +29 -0
  994. package/src/browser/components/workbench-toggle.spec.tsx +35 -0
  995. package/src/browser/components/workbench-toggle.tsx +24 -0
  996. package/src/browser/components/workbench-view.tsx +77 -0
  997. package/src/browser/components/working-directory.tsx +22 -0
  998. package/src/browser/editor/monaco-loader.spec.ts +39 -0
  999. package/src/browser/editor/monaco-loader.ts +139 -0
  1000. package/src/browser/editor/monaco.ts +55 -0
  1001. package/src/browser/editor/worker-modules.d.ts +5 -0
  1002. package/src/browser/extension/extension-view.tsx +78 -0
  1003. package/src/browser/extension/icons.ts +161 -0
  1004. package/src/browser/extension/web-extension-api.ts +346 -0
  1005. package/src/browser/extension/web-extension-protocol.ts +154 -0
  1006. package/src/browser/extension/web-extensions.spec.ts +597 -0
  1007. package/src/browser/extension/web-extensions.ts +717 -0
  1008. package/src/browser/hooks.ts +102 -0
  1009. package/src/browser/i18n/locales.ts +20 -0
  1010. package/src/browser/i18n/messages.ts +864 -0
  1011. package/src/browser/i18n/use-t.ts +21 -0
  1012. package/src/browser/index.ts +52 -0
  1013. package/src/browser/links/links-protocol.ts +41 -0
  1014. package/src/browser/links/links.spec.ts +132 -0
  1015. package/src/browser/links/links.ts +127 -0
  1016. package/src/browser/markdown/hooks.ts +32 -0
  1017. package/src/browser/markdown/lazy.spec.ts +34 -0
  1018. package/src/browser/markdown/lazy.ts +46 -0
  1019. package/src/browser/markdown/math.spec.ts +20 -0
  1020. package/src/browser/markdown/math.ts +33 -0
  1021. package/src/browser/markdown/mermaid.spec.ts +21 -0
  1022. package/src/browser/markdown/mermaid.ts +89 -0
  1023. package/src/browser/markdown/style-modules.d.ts +2 -0
  1024. package/src/browser/module.ts +6 -0
  1025. package/src/browser/notices/notices-protocol.ts +92 -0
  1026. package/src/browser/notices/notices.spec.ts +99 -0
  1027. package/src/browser/notices/notices.ts +173 -0
  1028. package/src/browser/public/icons/apple-touch-icon.png +0 -0
  1029. package/src/browser/public/icons/icon-192.png +0 -0
  1030. package/src/browser/public/icons/icon-512.png +0 -0
  1031. package/src/browser/public/icons/icon.svg +1 -0
  1032. package/src/browser/public/icons/maskable-512.png +0 -0
  1033. package/src/browser/public/manifest.webmanifest +40 -0
  1034. package/src/browser/public/sw.js +78 -0
  1035. package/src/browser/pwa/pwa-protocol.ts +22 -0
  1036. package/src/browser/pwa/pwa.spec.ts +143 -0
  1037. package/src/browser/pwa/pwa.ts +123 -0
  1038. package/src/browser/settings/agent-settings.spec.ts +56 -0
  1039. package/src/browser/settings/agent-settings.ts +96 -0
  1040. package/src/browser/settings/settings-protocol.ts +75 -0
  1041. package/src/browser/settings/settings.spec.ts +31 -0
  1042. package/src/browser/settings/settings.ts +89 -0
  1043. package/src/browser/state/state-protocol.ts +71 -0
  1044. package/src/browser/state/state.spec.ts +214 -0
  1045. package/src/browser/state/state.ts +217 -0
  1046. package/src/browser/style/base.ts +139 -0
  1047. package/src/browser/style/conversation.ts +200 -0
  1048. package/src/browser/style/layout.ts +370 -0
  1049. package/src/browser/style/pages.ts +74 -0
  1050. package/src/browser/style/shell.ts +235 -0
  1051. package/src/browser/style.ts +11 -0
  1052. package/src/browser/util/composer.spec.ts +71 -0
  1053. package/src/browser/util/composer.ts +157 -0
  1054. package/src/browser/util/diff.spec.ts +20 -0
  1055. package/src/browser/util/diff.ts +33 -0
  1056. package/src/browser/util/frame.spec.ts +62 -0
  1057. package/src/browser/util/frame.ts +54 -0
  1058. package/src/browser/util/layout.spec.ts +37 -0
  1059. package/src/browser/util/layout.ts +71 -0
  1060. package/src/browser/util/link.spec.ts +104 -0
  1061. package/src/browser/util/link.ts +237 -0
  1062. package/src/browser/util/markdown.spec.ts +133 -0
  1063. package/src/browser/util/markdown.ts +347 -0
  1064. package/src/browser/util/message.spec.ts +63 -0
  1065. package/src/browser/util/message.ts +188 -0
  1066. package/src/browser/util/process.spec.ts +133 -0
  1067. package/src/browser/util/process.ts +166 -0
  1068. package/src/browser/util/progress.spec.ts +86 -0
  1069. package/src/browser/util/progress.ts +170 -0
  1070. package/src/browser/util/qr-code.spec.ts +49 -0
  1071. package/src/browser/util/qr-code.ts +371 -0
  1072. package/src/browser/util/tool.spec.ts +78 -0
  1073. package/src/browser/util/tool.ts +190 -0
  1074. package/src/browser/view.ts +6 -0
  1075. package/src/browser/workbench-protocol.ts +66 -0
  1076. package/src/browser/workbench.spec.ts +37 -0
  1077. package/src/browser/workbench.ts +297 -0
@@ -0,0 +1,541 @@
1
+ /** What ta is doing, as its face and pose show it. */
2
+ export type Mood = 'idle' | 'listening' | 'thinking' | 'working' | 'speaking' | 'attention' | 'done' | 'sleeping';
3
+
4
+ export const MOODS: Mood[] = ['idle', 'listening', 'thinking', 'working', 'speaking', 'attention', 'done', 'sleeping'];
5
+
6
+ /** The viewBox of assets/logo.svg with a little room around it for the marks. */
7
+ export const AVATAR_VIEWBOX = '-8 -8 272 272';
8
+
9
+ /** The outline of assets/logo.svg; dino-avatar.spec.ts keeps the two the same. */
10
+ export const LOGO_PATH =
11
+ 'M87.56 246.56C78.45 245.88 69.68 241.69 63.62 235.12C55.27 226.06 53.05 217.63 57.25 210.87C58.80 208.36 60.00 207.04 65.18 202.17C69.26 198.32 70.20 196.55 70.21 192.69C70.21 189.81 70.10 189.60 68.07 188.59C58.99 184.06 48.53 175.16 41.10 165.64C20.03 138.61 16.32 99.87 32.24 73.21C35.05 68.50 38.42 64.26 40.25 63.11C42.91 61.44 46.64 61.89 48.71 64.14C51.04 66.67 51.48 69.39 50.27 73.65C48.09 81.27 47.41 86.83 47.99 92.32C49.53 106.98 58.42 118.20 70.83 121.15C73.08 121.68 78.88 121.72 81.15 121.22C88.97 119.48 94.86 113.39 96.69 105.18C97.35 102.17 97.35 102.36 97.36 79.55C97.37 56.55 97.35 57.24 98.04 53.23C102.05 29.98 119.81 12.19 141.49 9.73C143.46 9.51 150.65 9.43 152.36 9.61C160.37 10.46 167.56 12.82 174.51 16.89C177.43 18.59 176.54 18.47 186.86 18.57C196.67 18.66 196.99 18.68 200.87 19.58C210.24 21.74 219.17 27.62 224.57 35.17C229.72 42.38 232.50 49.80 233.36 58.67C233.68 61.91 233.71 76.53 233.41 78.22C232.01 86.00 227.35 91.05 220.23 92.50C218.50 92.85 180.16 92.91 177.10 92.57C165.61 91.28 155.17 86.13 150.52 79.47C148.44 76.48 145.54 75.90 143.40 78.04C141.49 79.95 141.76 81.92 144.74 87.63C150.17 98.03 159.04 105.16 169.50 107.52C172.11 108.11 172.69 107.96 173.25 106.55C173.81 105.12 174.70 103.52 175.57 102.37C178.23 98.86 180.68 100.09 183.51 106.36C184.55 108.67 183.79 108.47 191.23 108.44C198.27 108.42 197.86 108.50 198.43 107.20C200.89 101.63 202.81 99.79 204.99 100.89C206.11 101.47 207.63 103.65 208.74 106.31C209.67 108.51 209.55 108.45 213.05 108.41C216.35 108.36 217.08 108.45 218.31 109.05C225.39 112.51 217.61 125.59 205.66 130.33C199.65 132.71 198.20 132.85 180.39 132.87C164.51 132.89 165.38 132.84 164.14 133.78C162.82 134.78 162.30 136.08 162.30 138.40C162.30 139.80 161.98 143.39 161.42 148.29C159.70 163.39 153.05 175.87 141.81 185.08C138.73 187.60 134.92 189.85 129.84 192.14C125.19 194.25 115.57 196.33 110.54 196.34C109.17 196.34 108.60 196.57 108.23 197.27C108.10 197.53 107.64 198.49 107.20 199.42C103.90 206.45 98.19 211.37 88.72 215.35C85.89 216.54 85.91 216.52 85.98 219.64C86.04 222.32 86.33 222.69 90.00 224.75C92.29 226.04 94.81 227.75 95.82 228.71C100.98 233.57 100.86 241.48 95.60 244.93C93.34 246.41 91.24 246.84 87.56 246.56ZM134.07 240.25C128.56 238.82 125.22 235.56 123.96 230.38C123.70 229.30 123.68 228.71 123.59 220.23C123.53 214.63 123.44 210.89 123.34 210.35C123.00 208.36 122.74 207.31 122.25 205.86C121.48 203.62 121.59 203.31 123.26 202.93C129.90 201.41 136.34 198.97 140.57 196.35C147.00 192.39 151.46 188.55 155.60 183.42C157.24 181.39 157.77 181.54 158.23 184.19C159.89 193.79 157.66 202.21 151.13 210.89C149.39 213.20 149.36 213.30 149.36 215.69C149.35 218.41 149.61 218.72 151.96 218.75C157.60 218.82 162.31 219.95 165.26 221.92C173.20 227.23 172.45 238.39 164.03 240.43C162.18 240.88 135.88 240.72 134.07 240.25ZM185.67 173.17C183.79 172.66 182.15 171.55 180.81 169.86C178.08 166.41 174.71 164.68 169.71 164.16C166.89 163.87 166.86 163.80 167.90 160.34C168.86 157.13 169.71 152.32 170.10 147.82C170.40 144.42 170.40 144.42 170.65 144.15C172.11 142.53 184.08 147.33 189.10 151.54C193.73 155.43 196.56 162.25 195.41 166.75C194.22 171.40 189.83 174.29 185.67 173.17ZM144.28 53.97C148.98 52.79 151.98 47.68 150.77 42.91C148.71 34.78 137.83 33.29 134.20 40.65C130.66 47.83 136.74 55.88 144.28 53.97Z';
12
+
13
+ /** The eye of the logo (its last sub-path, a hole), in viewBox units. */
14
+ const EYE = { x: 141.3, y: 44.6, r: 10.9 };
15
+ const GREEN = '#10B981';
16
+ const DARK = '#06281d';
17
+ const RIDGE = '#047857';
18
+ /** The front of the head or the chest as it turns toward you, and the far leg. */
19
+ const LIT = '#34D399';
20
+ const SHADE = '#0EA372';
21
+ const WHITE = '#fff';
22
+
23
+ /**
24
+ * How the dinosaur stands, in degrees and viewBox units; REST is the logo. Positive angles turn
25
+ * clockwise: they open the jaw, lower the head, and swing a leg back.
26
+ */
27
+ export interface Pose {
28
+ /** Where it stands, from where the logo has it, and how it leans (forward is positive) and squashes on its feet. */
29
+ x: number;
30
+ y: number;
31
+ lean: number;
32
+ sx: number;
33
+ sy: number;
34
+ /** Which way it faces: 1 as the logo (right), -1 the other way; how wide it is seen from the side in between. */
35
+ face: number;
36
+ head: number;
37
+ /**
38
+ * 0 in profile, 1 with its head turned to look at you. The head turns as a solid: its snout comes
39
+ * toward you, the side you saw slides back, and its front and far eye come into view.
40
+ */
41
+ turn: number;
42
+ /** 0 in profile, 1 with its body turned three quarters toward you, its chest in view (turning round). */
43
+ spin: number;
44
+
45
+ jaw: number;
46
+ /** The tail at its root, and its tip bending on from there. */
47
+ tail: number;
48
+ tip: number;
49
+ /** The legs, how high each foot is lifted, and the arm. */
50
+ back: number;
51
+ backLift: number;
52
+ front: number;
53
+ frontLift: number;
54
+ arm: number;
55
+ }
56
+
57
+ export const REST: Pose = {
58
+ x: 0,
59
+ y: 0,
60
+ lean: 0,
61
+ sx: 1,
62
+ sy: 1,
63
+ face: 1,
64
+ head: 0,
65
+ turn: 0,
66
+ spin: 0,
67
+ jaw: 0,
68
+ tail: 0,
69
+ tip: 0,
70
+ back: 0,
71
+ backLift: 0,
72
+ front: 0,
73
+ frontLift: 0,
74
+ arm: 0,
75
+ };
76
+
77
+ /** Where the bones turn, in the coordinates of the logo. */
78
+ export const JOINTS = {
79
+ feet: { x: 128, y: 244 },
80
+ neck: { x: 122, y: 124 },
81
+ jaw: { x: 150, y: 94 },
82
+ tail: { x: 54, y: 160 },
83
+ tip: { x: 40, y: 112 },
84
+ hip: { x: 86, y: 188 },
85
+ frontHip: { x: 146, y: 192 },
86
+ shoulder: { x: 171, y: 149 },
87
+ };
88
+
89
+ /** A 2D affine transform [a, b, c, d, e, f], as in SVG's matrix(). */
90
+ export type Matrix = [number, number, number, number, number, number];
91
+
92
+ function multiply(m: Matrix, n: Matrix): Matrix {
93
+ return [
94
+ m[0] * n[0] + m[2] * n[1],
95
+ m[1] * n[0] + m[3] * n[1],
96
+ m[0] * n[2] + m[2] * n[3],
97
+ m[1] * n[2] + m[3] * n[3],
98
+ m[0] * n[4] + m[2] * n[5] + m[4],
99
+ m[1] * n[4] + m[3] * n[5] + m[5],
100
+ ];
101
+ }
102
+
103
+ /** Turn by `degrees` around `at`, scaling by `sx`, `sy` there. */
104
+ function around(at: { x: number; y: number }, degrees: number, sx = 1, sy = 1): Matrix {
105
+ const a = (degrees * Math.PI) / 180;
106
+ const cos = Math.cos(a);
107
+ const sin = Math.sin(a);
108
+ const m: Matrix = [cos * sx, sin * sx, -sin * sy, cos * sy, 0, 0];
109
+ m[4] = at.x - m[0] * at.x - m[2] * at.y;
110
+ m[5] = at.y - m[1] * at.x - m[3] * at.y;
111
+ return m;
112
+ }
113
+
114
+ const move = (x: number, y: number): Matrix => [1, 0, 0, 1, x, y];
115
+
116
+ function smooth(edge0: number, edge1: number, x: number): number {
117
+ const t = Math.min(1, Math.max(0, (x - edge0) / (edge1 - edge0)));
118
+ return t * t * (3 - 2 * t);
119
+ }
120
+
121
+ /** The outline of the body (the dinosaur and the hole of its eye) as numbers, and the letters that join them. */
122
+ const SKIN = (() => {
123
+ const ops: { cmd: string; count: number }[] = [];
124
+ const points: number[] = [];
125
+ let index = -1;
126
+ for (const token of LOGO_PATH.match(/[MCZ]|-?\d*\.?\d+/g) ?? []) {
127
+ if (token === 'M') {
128
+ index++;
129
+ }
130
+ if (index !== 0 && index !== 3) {
131
+ continue;
132
+ }
133
+ if (token === 'M' || token === 'C' || token === 'Z') {
134
+ ops.push({ cmd: token, count: 0 });
135
+ } else {
136
+ points.push(Number(token));
137
+ ops[ops.length - 1].count++;
138
+ }
139
+ }
140
+ const eye = ops.findIndex((op, i) => i > 0 && op.cmd === 'M');
141
+ // How many numbers the outline of the body has before the hole of the eye.
142
+ const body = ops.slice(0, eye).reduce((sum, op) => sum + op.count, 0);
143
+ return { ops, points, eye, body };
144
+ })();
145
+
146
+ const [, FRONT_LEG, ARM] = LOGO_PATH.split(/(?<=Z)(?=M)/);
147
+
148
+ type Bone = 'body' | 'head' | 'jaw' | 'tail' | 'tip' | 'back';
149
+
150
+ /**
151
+ * How much each bone moves a point of the outline. The weights fade over a band at each joint, so
152
+ * the outline bends there like skin instead of breaking.
153
+ */
154
+ export function weights(x: number, y: number): Record<Bone, number> {
155
+ // The neck: a band across it, from the back of the neck down to the throat.
156
+ const across = ((x - 92) * 42 - (y - 106) * 76) / 86.8;
157
+ const head = smooth(-4, 24, across) * smooth(78, 96, x);
158
+ // The jaw: below the line of the mouth, fading at the corner of the mouth and down the throat.
159
+ const mouth = x >= 177 ? 96.5 : 80 + ((x - 143) * 16.5) / 34;
160
+ const jaw = head * smooth(mouth - 3, mouth + 4, y) * smooth(140, 152, x) * (1 - smooth(132, 146, y));
161
+ // The tail from where it leaves the back, and again toward its tip.
162
+ const tail = smooth(178, 128, y) * (1 - smooth(52, 92, x));
163
+ const tip = smooth(128, 86, y) * (1 - smooth(48, 70, x));
164
+ const back = smooth(186, 204, y) * (1 - smooth(108, 124, x));
165
+ return { head: head - jaw, jaw, tail: tail - tip, tip, back, body: Math.max(0, 1 - head - tail - back) };
166
+ }
167
+
168
+ const SKIN_WEIGHTS = Array.from({ length: SKIN.points.length / 2 }, (_, i) =>
169
+ (Object.entries(weights(SKIN.points[i * 2], SKIN.points[i * 2 + 1])) as [Bone, number][]).filter(([, w]) => w > 0.001),
170
+ );
171
+
172
+ /** Mirror and narrow by `face` (1 as drawn, -1 mirrored) across the line the dinosaur stands on. */
173
+ function facing(face: number): Matrix {
174
+ return [face, 0, 0, 1, JOINTS.feet.x * (1 - face), 0];
175
+ }
176
+
177
+ /** The upright axis the head turns about, in the coordinates of the logo. */
178
+ const HEAD_AXIS = { x: 132, y: 60 };
179
+ /**
180
+ * How many pieces the rounded side of the head and body is made of, from the far side to the near one.
181
+ * Between two pieces the outline is swept, not stacked, so the side is smooth at every angle.
182
+ */
183
+ export const DEPTH = 4;
184
+ /** How many straight pieces each curve of the outline is swept as. */
185
+ const FLAT = 3;
186
+
187
+ /** Where the head and the body are thickest: their slices round off toward these as they near the sides. */
188
+ const HEAD_CENTER = { x: 160, y: 60 };
189
+ const BODY_CENTER = { x: 112, y: 160 };
190
+ /** How much the outermost slices draw in, turned fully toward you, so the solids look round rather than boxed. */
191
+ const ROUND_HEAD = 0.1;
192
+ const ROUND_BODY = 0.07;
193
+ /** How far the turned head turns at most, in degrees. */
194
+ const YAW = 58;
195
+ /** Half the thickness of the head and of the body, in units of the logo. */
196
+ const HEAD_DEPTH = 22;
197
+ const BODY_DEPTH = 26;
198
+
199
+ /** The bones of a pose, and which way (in the drawing) the near side of the head and of the body lies from their middle. */
200
+ interface Rig {
201
+ bones: Record<Bone | 'front' | 'arm', Matrix>;
202
+ eye: Matrix;
203
+ /** How far the near side of a point of the head, and of the body, lies from its middle (the far side lies as far the other way). */
204
+ head: [number, number];
205
+ body: [number, number];
206
+ /** How far the head and the body are turned toward you (0 to 1), to round off their slices. */
207
+ turn: number;
208
+ spin: number;
209
+ }
210
+
211
+ /** Turn `m` by its linear part only. */
212
+ const vector = (m: Matrix, x: number, y: number): [number, number] => [m[0] * x + m[2] * y, m[1] * x + m[3] * y];
213
+
214
+ /**
215
+ * The transforms of a pose. Turning toward you is a turn about an upright axis: the side seen in
216
+ * profile narrows by the cosine and slides back by the sine of the angle times its depth, and the far
217
+ * side slides forward as far, so what lies between (its front) shows.
218
+ */
219
+ export function rig(pose: Pose): Rig {
220
+ const { feet, neck, jaw, tail, tip, hip, frontHip, shoulder } = JOINTS;
221
+ const place = multiply(move(pose.x, pose.y), multiply(facing(pose.face), around(feet, pose.lean, pose.sx, pose.sy)));
222
+ const within = (m: Matrix) => multiply(place, m);
223
+ const yaw = (pose.turn * YAW * Math.PI) / 180;
224
+ const sin = Math.sin(yaw);
225
+ const turned = around(neck, pose.head);
226
+ const head = multiply(turned, around(HEAD_AXIS, 0, Math.cos(yaw), 1));
227
+ const tailBone = around(tail, pose.tail);
228
+ const headSide = vector(within(turned), -HEAD_DEPTH * sin, 0);
229
+ const bodySide = vector(place, -BODY_DEPTH * pose.spin, 0);
230
+ // The eye sits on the near side of the head, moving with it; seen at a slant it narrows less than the head does.
231
+ const eye = multiply(move(bodySide[0], bodySide[1]), within(multiply(head, around(EYE, 0, (1 - 0.3 * sin) / Math.cos(yaw), 1))));
232
+ return {
233
+ bones: {
234
+ body: place,
235
+ head: within(head),
236
+ jaw: within(multiply(head, around(jaw, pose.jaw))),
237
+ tail: within(tailBone),
238
+ tip: within(multiply(tailBone, around(tip, pose.tip))),
239
+ back: within(multiply(move(0, -pose.backLift), around(hip, pose.back))),
240
+ // The front leg is the far one, the arm the near one: they move with their sides.
241
+ front: multiply(move(-bodySide[0], -bodySide[1]), within(multiply(move(0, -pose.frontLift), around(frontHip, pose.front)))),
242
+ arm: multiply(move(bodySide[0], bodySide[1]), within(around(shoulder, pose.arm))),
243
+ },
244
+ eye: multiply(move(headSide[0], headSide[1]), eye),
245
+ head: headSide,
246
+ body: bodySide,
247
+ turn: sin,
248
+ spin: pose.spin,
249
+ };
250
+ }
251
+
252
+ const r1 = (n: number) => Math.round(n * 10) / 10;
253
+ const round = (n: number) => Math.round(n * 100) / 100;
254
+
255
+ /** How much of each point of the outline belongs to the head (and turns with it toward you). */
256
+ const HEAD_WEIGHTS = SKIN_WEIGHTS.map(ws => ws.reduce((sum, [bone, w]) => sum + (bone === 'head' || bone === 'jaw' ? w : 0), 0));
257
+
258
+ /**
259
+ * The points of the outline in a pose, each moved by its bones blended by its weights: `side` 1 for
260
+ * the side you see, -1 for the far side, and in between for the inside of the solid; `eye` with the
261
+ * points of the hole of the eye.
262
+ */
263
+ function outline(r: Rig, side: number, eye: boolean): number[] {
264
+ const end = eye ? SKIN.points.length : SKIN.body;
265
+ const out: number[] = new Array(end);
266
+ // Toward its sides a solid draws in, round: the outline is made smaller about the thickest part.
267
+ const edge = 1 - Math.sqrt(Math.max(0, 1 - side * side));
268
+ for (let p = 0; p < end; p += 2) {
269
+ const h = HEAD_WEIGHTS[p / 2];
270
+ const inset = edge * (h * ROUND_HEAD * r.turn + (1 - h) * ROUND_BODY * r.spin);
271
+ const cx = h * HEAD_CENTER.x + (1 - h) * BODY_CENTER.x;
272
+ const cy = h * HEAD_CENTER.y + (1 - h) * BODY_CENTER.y;
273
+ const x = SKIN.points[p] + (cx - SKIN.points[p]) * inset;
274
+ const y = SKIN.points[p + 1] + (cy - SKIN.points[p + 1]) * inset;
275
+ let tx = h * side * r.head[0] + side * r.body[0];
276
+ let ty = h * side * r.head[1] + side * r.body[1];
277
+ for (const [bone, w] of SKIN_WEIGHTS[p / 2]) {
278
+ const m = r.bones[bone];
279
+ tx += w * (m[0] * x + m[2] * y + m[4]);
280
+ ty += w * (m[1] * x + m[3] * y + m[5]);
281
+ }
282
+ out[p] = tx;
283
+ out[p + 1] = ty;
284
+ }
285
+ return out;
286
+ }
287
+
288
+ /** The points as a path, joined as the logo joins them. */
289
+ function path(points: number[]): string {
290
+ let d = '';
291
+ let p = 0;
292
+ for (const { cmd, count } of SKIN.ops) {
293
+ if (p >= points.length && cmd !== 'Z') {
294
+ break;
295
+ }
296
+ d += cmd;
297
+ for (let k = 0; k < count; k += 2, p += 2) {
298
+ d += `${k ? ' ' : ''}${r1(points[p])} ${r1(points[p + 1])}`;
299
+ }
300
+ }
301
+ return d;
302
+ }
303
+
304
+ /** The outline of the body as a polygon: each curve as `flat` straight pieces. */
305
+ function polygon(points: number[], flat: number): number[] {
306
+ const out: number[] = [points[0], points[1]];
307
+ for (let p = 2; p + 5 < points.length; p += 6) {
308
+ const x0 = out[out.length - 2];
309
+ const y0 = out[out.length - 1];
310
+ for (let k = 1; k <= flat; k++) {
311
+ const t = k / flat;
312
+ const u = 1 - t;
313
+ const a = u * u * u;
314
+ const b = 3 * u * u * t;
315
+ const c = 3 * u * t * t;
316
+ const e = t * t * t;
317
+ out.push(a * x0 + b * points[p] + c * points[p + 2] + e * points[p + 4], a * y0 + b * points[p + 1] + c * points[p + 3] + e * points[p + 5]);
318
+ }
319
+ }
320
+ return out;
321
+ }
322
+
323
+ /**
324
+ * The side of the solid: every edge of the outline swept from one piece of the depth to the next, as
325
+ * a quadrilateral. All of them wind the same way, so together they fill the side without seams.
326
+ */
327
+ function wall(pieces: number[][], flat: number): string {
328
+ const polygons = pieces.map(points => polygon(points, flat));
329
+ let d = '';
330
+ for (let k = 0; k + 1 < polygons.length; k++) {
331
+ const a = polygons[k];
332
+ const b = polygons[k + 1];
333
+ for (let i = 0; i < a.length; i += 2) {
334
+ const j = (i + 2) % a.length;
335
+ const quad = [a[i], a[i + 1], a[j], a[j + 1], b[j], b[j + 1], b[i], b[i + 1]];
336
+ let area = 0;
337
+ for (let q = 0; q < 8; q += 2) {
338
+ area += quad[q] * quad[(q + 3) % 8] - quad[(q + 2) % 8] * quad[q + 1];
339
+ }
340
+ // A sliver (an edge running along the sweep) covers nothing, and rounding could turn it the wrong way.
341
+ if (Math.abs(area) < 1) {
342
+ continue;
343
+ }
344
+ const order = area > 0 ? [0, 2, 4, 6] : [6, 4, 2, 0];
345
+ d += `M${order.map(q => `${r1(quad[q])} ${r1(quad[q + 1])}`).join('L')}Z`;
346
+ }
347
+ }
348
+ return d;
349
+ }
350
+
351
+ /** The outline of the body as you see it in a pose. */
352
+ export function skin(r: Rig): string {
353
+ return path(outline(r, 1, true));
354
+ }
355
+
356
+ /** Where the middle of the head is in a pose, in the coordinates of the drawing; the eyes follow what is around it from there. */
357
+ export function headAt(pose: Pose): { x: number; y: number } {
358
+ const m = rig(pose).bones.head;
359
+ return { x: m[0] * HEAD_CENTER.x + m[2] * HEAD_CENTER.y + m[4], y: m[1] * HEAD_CENTER.x + m[3] * HEAD_CENTER.y + m[5] };
360
+ }
361
+
362
+ export function matrix(m: Matrix): string {
363
+ return `matrix(${m.map(n => Math.round(n * 1000) / 1000).join(' ')})`;
364
+ }
365
+
366
+ type Eyes = 'open' | 'wide' | 'up' | 'down' | 'happy' | 'closed';
367
+
368
+ const EYES: Record<Mood, Eyes> = {
369
+ idle: 'open',
370
+ listening: 'wide',
371
+ thinking: 'up',
372
+ working: 'down',
373
+ speaking: 'open',
374
+ attention: 'wide',
375
+ done: 'happy',
376
+ sleeping: 'closed',
377
+ };
378
+
379
+ /** Where the slit of the pupil looks, and how low the brow comes down over the eye (its back, its front over the snout). */
380
+ const GAZE: Record<'open' | 'wide' | 'up' | 'down', { dx: number; dy: number; brow: [number, number] }> = {
381
+ open: { dx: 2.4, dy: 0.8, brow: [34, 43] },
382
+ wide: { dx: 1.2, dy: 0, brow: [32, 39] },
383
+ up: { dx: -0.4, dy: -2.4, brow: [33, 41] },
384
+ down: { dx: 3.4, dy: 2.6, brow: [35.5, 45] },
385
+ };
386
+
387
+ const IRIS =
388
+ '<stop offset="0" stop-color="#FEF08A"/><stop offset="0.35" stop-color="#FACC15"/><stop offset="0.75" stop-color="#F97316"/><stop offset="1" stop-color="#B91C1C"/>';
389
+
390
+ function eye(kind: Eyes, id: string): string {
391
+ const { x, y, r } = EYE;
392
+ if (kind === 'closed') {
393
+ // Asleep, the eye is a heavy line cut out of the green, still frowning.
394
+ return `<circle cx="${x}" cy="${y}" r="${r + 0.6}" fill="${GREEN}"/><path d="M${x - 9} ${y - 3} Q${x} ${y + 3} ${x + 9} ${y + 2}" fill="none" stroke="${DARK}" stroke-width="3.6" stroke-linecap="round"/>`;
395
+ }
396
+ const defs =
397
+ `<radialGradient id="${id}-iris" cx="0.4" cy="0.6" r="0.62">${IRIS}</radialGradient>` +
398
+ `<clipPath id="${id}-eye"><circle cx="${x}" cy="${y}" r="${r + 0.8}"/></clipPath>`;
399
+ const ball = `<circle cx="${x}" cy="${y}" r="${r + 1}" fill="url(#${id}-iris)"/>`;
400
+ if (kind === 'happy') {
401
+ // Pleased with itself: a smug, narrowed eye, the lower lid pushed up under the brow.
402
+ return (
403
+ defs +
404
+ `<g clip-path="url(#${id}-eye)">${ball}<ellipse cx="${x + 2.4}" cy="${y}" rx="1.4" ry="6" fill="${DARK}"/>` +
405
+ `<path d="M${x - r - 1} ${y - r - 1} H${x + r + 1} V${y - 1} L${x - r - 1} ${y - 6}Z" fill="${GREEN}"/>` +
406
+ `<path d="M${x - r - 1} ${y + r + 1} V${y + 3} Q${x} ${y - 2} ${x + r + 1} ${y + 3} V${y + r + 1}Z" fill="${GREEN}"/></g>` +
407
+ brow(x - r - 4, y - 7, x + r + 5, y - 2)
408
+ );
409
+ }
410
+ const gaze = GAZE[kind];
411
+ const px = x + gaze.dx;
412
+ const py = y + gaze.dy;
413
+ const [back, front] = gaze.brow;
414
+ return (
415
+ defs +
416
+ `<g clip-path="url(#${id}-eye)">${ball}` +
417
+ `<g class="ta-dino-pupil"><path d="M${px} ${py - 8.6} Q${px + 2.6} ${py} ${px} ${py + 8.6} Q${px - 2.6} ${py} ${px} ${py - 8.6}Z" fill="${DARK}"/><circle cx="${px - 3.4}" cy="${py - 3}" r="1.2" fill="${WHITE}" opacity="0.9"/></g>` +
418
+ // The upper lid comes down to the brow, lowest over the snout, so it glares; the lower lid narrows it from below.
419
+ `<path d="M${x - r - 1} ${y - r - 2} H${x + r + 1} V${front} L${x - r - 1} ${back}Z" fill="${GREEN}"/>` +
420
+ `<path d="M${x - r - 1} ${y + r + 1} V${y + 6} Q${x} ${y + 9.5} ${x + r + 1} ${y + 8} V${y + r + 1}Z" fill="${GREEN}"/>` +
421
+ `<rect class="ta-dino-lid" x="${x - r - 1}" y="${y - r - 1}" width="${r * 2 + 2}" height="${r * 2 + 2}" fill="${GREEN}"/></g>` +
422
+ brow(x - r - 4, back - 1.6, x + r + 5, front + 0.4)
423
+ );
424
+ }
425
+
426
+ /** The ridge of the brow over the lid: a wedge, thin at the back, thick and low over the snout. */
427
+ function brow(x1: number, y1: number, x2: number, y2: number): string {
428
+ const p = (x: number, y: number) => `${round(x)} ${round(y)}`;
429
+ return `<path class="ta-dino-brow" d="M${p(x1, y1 - 1)} Q${p((x1 + x2) / 2, (y1 + y2) / 2 - 4.4)} ${p(x2 + 1, y2 - 3.6)} Q${p(x2 + 3, y2 + 1.4)} ${p(x2 - 1, y2 + 2.2)} L${p(x1 + 1, y1 + 1.4)} Q${p(x1 - 1.4, y1 + 0.6)} ${p(x1, y1 - 1)}Z" fill="${RIDGE}"/>`;
430
+ }
431
+
432
+ /** A round mark above the tail, ringed in the color of the page so it stands off the dinosaur. */
433
+ function badge(color: string, inner: string): string {
434
+ return `<g transform="translate(54 34) scale(1.3)"><g class="ta-dino-badge"><circle r="23" fill="${color}" stroke="var(--ta-main, #fff)" stroke-width="5"/>${inner}</g></g>`;
435
+ }
436
+
437
+ function mark(mood: Mood): string {
438
+ switch (mood) {
439
+ case 'attention':
440
+ return badge(
441
+ '#F59E0B',
442
+ `<path d="M0 -11 L0 2.5" stroke="${WHITE}" stroke-width="5.4" stroke-linecap="round"/><circle cy="10" r="3.2" fill="${WHITE}"/>`,
443
+ );
444
+ case 'working':
445
+ return badge('#3B82F6', [-9, 0, 9].map(x => `<circle class="ta-dino-dot" cx="${x}" r="3.4" fill="${WHITE}"/>`).join(''));
446
+ case 'listening':
447
+ return badge(
448
+ '#8B5CF6',
449
+ `<rect x="-5" y="-12" width="10" height="16" rx="5" fill="${WHITE}"/><path d="M-9.5 -1 Q-9.5 9 0 9 Q9.5 9 9.5 -1 M0 9 L0 13" fill="none" stroke="${WHITE}" stroke-width="3.2" stroke-linecap="round"/>`,
450
+ );
451
+ case 'thinking':
452
+ return [
453
+ [102, 24, 6],
454
+ [78, 10, 8.5],
455
+ [48, 4, 12],
456
+ ]
457
+ .map(([x, y, r]) => `<circle class="ta-dino-bubble" cx="${x}" cy="${y}" r="${r}" fill="var(--ta-muted, #8e8e93)"/>`)
458
+ .join('');
459
+ case 'sleeping':
460
+ return [
461
+ [86, 34, 0.9],
462
+ [54, 12, 1.35],
463
+ ]
464
+ .map(
465
+ ([x, y, s]) =>
466
+ `<path class="ta-dino-z" transform="translate(${x} ${y}) scale(${s})" d="M-8 -8 L8 -8 L-8 8 L8 8" fill="none" stroke="var(--ta-muted, #8e8e93)" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>`,
467
+ )
468
+ .join('');
469
+ case 'speaking':
470
+ // Waves from the snout.
471
+ return [12, 22]
472
+ .map(
473
+ r =>
474
+ `<path class="ta-dino-wave" d="M${238 + r * 0.3} ${94 - r} Q${238 + r} 94 ${238 + r * 0.3} ${94 + r}" fill="none" stroke="${GREEN}" stroke-width="4.5" stroke-linecap="round"/>`,
475
+ )
476
+ .join('');
477
+ default:
478
+ return '';
479
+ }
480
+ }
481
+
482
+ /** The transforms and the outline a pose draws, ready for the attributes of the drawing. */
483
+ export interface Frame {
484
+ skin: string;
485
+ /** The far side of the solid, and its side between the far side and the near one; in profile only the outline, and no side. */
486
+ far: string;
487
+ wall: string;
488
+ eye: string;
489
+ front: string;
490
+ arm: string;
491
+ }
492
+
493
+ /**
494
+ * What a pose draws. `fine` for a large drawing; a small one (a few dozen pixels) is swept in fewer
495
+ * pieces, which nobody can tell apart at that size and which take a fraction of the time.
496
+ */
497
+ export function frame(pose: Pose, fine = true): Frame {
498
+ const r = rig(pose);
499
+ const near = skin(r);
500
+ const solid = r.turn > 0.001 || r.spin > 0.001;
501
+ const depth = fine ? DEPTH : 2;
502
+ const pieces = solid ? Array.from({ length: depth + 1 }, (_, i) => outline(r, -1 + (2 * i) / depth, false)) : [outline(r, 0, false)];
503
+ return {
504
+ skin: near,
505
+ far: path(pieces[0]),
506
+ wall: solid ? wall(pieces, fine ? FLAT : 1) : '',
507
+ eye: matrix(r.eye),
508
+ front: matrix(r.bones.front),
509
+ arm: matrix(r.bones.arm),
510
+ };
511
+ }
512
+
513
+ /**
514
+ * ta is Cell's dinosaur, drawn from the outline of assets/logo.svg; at REST it is the logo. A pose
515
+ * bends that outline on its bones like skin (dino-motion.ts makes the poses, ta-avatar.tsx plays
516
+ * them). Plain SVG markup; `id` keeps the gradients and clip paths of several drawings on one page apart.
517
+ */
518
+ export namespace DinoAvatar {
519
+ /** The small mark that tells agents apart: its first two characters, as the user sees them; '' for none. */
520
+ export function markText(text: string | undefined): string {
521
+ return Array.from((text ?? '').trim())
522
+ .slice(0, 2)
523
+ .join('');
524
+ }
525
+
526
+ export function render(mood: Mood, id = 'ta', pose: Pose = REST): string {
527
+ const f = frame(pose);
528
+ return (
529
+ '<g class="ta-dino-body">' +
530
+ `<path class="ta-dino-front" d="${FRONT_LEG}" fill="${SHADE}" transform="${f.front}"/>` +
531
+ // Turned toward you, the head and body are solids: their far side and the side swept from it to
532
+ // the near one show their front (the face, the chest), lit.
533
+ `<path class="ta-dino-far" d="${f.far}" fill="${LIT}"/>` +
534
+ `<path class="ta-dino-wall" d="${f.wall}" fill="${LIT}"/>` +
535
+ `<path class="ta-dino-skin" d="${f.skin}" fill="${GREEN}" fill-rule="evenodd"/>` +
536
+ `<path class="ta-dino-arm" d="${ARM}" fill="${GREEN}" transform="${f.arm}"/>` +
537
+ `<g class="ta-dino-eye" transform="${f.eye}">${eye(EYES[mood], id)}</g>` +
538
+ `</g>${mark(mood)}`
539
+ );
540
+ }
541
+ }