@unoverse-platform/studio 0.1.103 → 0.1.105

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 (86) hide show
  1. package/local/sample-app/chat/manifest.yaml +2 -2
  2. package/local/sample-component/text-chat/components/suggestions.yaml +1 -1
  3. package/local/sample-component/text-chat/layouts/chat-welcome.yaml +1 -1
  4. package/local/sample-component/text-chat/text-chat.yaml +3 -0
  5. package/local/scaffold.d.mts +5 -2
  6. package/local/scaffold.mjs +68 -1
  7. package/package.json +4 -2
  8. package/screens/AtomsView.tsx +2 -1
  9. package/screens/ComponentsView.tsx +2 -1
  10. package/screens/NativeAppHost.tsx +1 -2
  11. package/screens/TemplatesLibraryView.tsx +14 -1
  12. package/screens/TemplatesView.tsx +2 -1
  13. package/screens/index.ts +4 -0
  14. package/screens/react/unoverse.tsx +281 -0
  15. package/vendor/base/src/agent-mcp/index.ts +1 -1
  16. package/vendor/base/src/agent-mcp/invoke.ts +6 -2
  17. package/vendor/base/src/agent-mcp/tools.ts +14 -5
  18. package/vendor/base/src/agent-mcp/types.ts +6 -0
  19. package/vendor/base/src/auth/auth.ts +90 -23
  20. package/vendor/base/src/definitions/load/compile/sections.ts +79 -0
  21. package/vendor/base/src/definitions/load/compile/template.ts +23 -2
  22. package/vendor/base/src/definitions/model.ts +9 -0
  23. package/vendor/base/src/definitions/registry/catalog.ts +6 -7
  24. package/vendor/base/src/executor.ts +25 -1
  25. package/vendor/base/src/lint/design/index.mjs +9 -0
  26. package/vendor/base/src/manifests/executor/toolBridge.ts +25 -19
  27. package/vendor/base/src/manifests/runtime/channels/final.ts +4 -1
  28. package/vendor/base/src/manifests/runtime/duplex/session.ts +3 -9
  29. package/vendor/base/src/manifests/runtime/tools/toolloop.ts +28 -25
  30. package/vendor/base/src/platform/serviceCalls.ts +13 -0
  31. package/vendor/sdk/appEngine.ts +363 -0
  32. package/vendor/sdk/lib/actions.ts +36 -0
  33. package/vendor/sdk/lib/citations.ts +48 -0
  34. package/vendor/sdk/lib/core/apps.ts +18 -0
  35. package/vendor/sdk/lib/core/client.ts +3 -3
  36. package/vendor/sdk/lib/core/store.ts +6 -0
  37. package/vendor/sdk/lib/dom/app.ts +546 -0
  38. package/vendor/sdk/lib/dom/chrome.ts +125 -0
  39. package/vendor/sdk/lib/dom/component.ts +333 -0
  40. package/vendor/sdk/lib/dom/connection.ts +309 -0
  41. package/vendor/sdk/lib/dom/element.ts +69 -0
  42. package/vendor/sdk/lib/dom/isolate.ts +37 -0
  43. package/vendor/sdk/lib/dom/markdown.ts +388 -0
  44. package/vendor/sdk/lib/dom/markdownParse.ts +440 -0
  45. package/vendor/sdk/lib/dom/mounted.ts +29 -0
  46. package/vendor/sdk/lib/dom/primitives.ts +689 -0
  47. package/vendor/sdk/lib/dom/region.ts +195 -0
  48. package/vendor/sdk/lib/dom/render.ts +177 -0
  49. package/vendor/sdk/lib/dom/theme.ts +38 -0
  50. package/vendor/sdk/lib/dom/types.ts +36 -0
  51. package/vendor/sdk/lib/index.ts +26 -17
  52. package/vendor/sdk/lib/orb/canvas.ts +139 -0
  53. package/vendor/sdk/lib/orb/index.ts +8 -18
  54. package/vendor/sdk/lib/orb/presets.ts +1 -1
  55. package/vendor/sdk/lib/orb/{types.ts → states.ts} +0 -24
  56. package/vendor/sdk/lib/realtime/capture.ts +152 -0
  57. package/vendor/sdk/lib/realtime/playback.ts +129 -0
  58. package/vendor/sdk/lib/realtime/socket.ts +117 -0
  59. package/vendor/sdk/lib/style.ts +45 -37
  60. package/vendor/sdk/lib/voiceService.ts +344 -0
  61. package/vendor/sdk/main.ts +107 -0
  62. package/vendor/sdk/mcpAppBridge.ts +125 -102
  63. package/vendor/sdk/pageInterfaces.ts +452 -0
  64. package/vendor/sdk/responseView.ts +193 -0
  65. package/vite.config.ts +3 -3
  66. package/vendor/sdk/appEngine.tsx +0 -395
  67. package/vendor/sdk/lib/UnoverseComponent.tsx +0 -325
  68. package/vendor/sdk/lib/app.tsx +0 -730
  69. package/vendor/sdk/lib/connection.tsx +0 -433
  70. package/vendor/sdk/lib/isolate.tsx +0 -70
  71. package/vendor/sdk/lib/orb/ThinkingOrb.tsx +0 -131
  72. package/vendor/sdk/lib/orb/theme.ts +0 -83
  73. package/vendor/sdk/lib/primitives.tsx +0 -943
  74. package/vendor/sdk/lib/realtime/useAudioCapture.ts +0 -237
  75. package/vendor/sdk/lib/realtime/useAudioPlayback.ts +0 -157
  76. package/vendor/sdk/lib/realtime/useRealtimeWebSocket.ts +0 -164
  77. package/vendor/sdk/lib/render.tsx +0 -244
  78. package/vendor/sdk/lib/streamed.tsx +0 -30
  79. package/vendor/sdk/lib/theme.ts +0 -55
  80. package/vendor/sdk/lib/transition/MountArrangement.tsx +0 -71
  81. package/vendor/sdk/lib/transition/index.ts +0 -9
  82. package/vendor/sdk/lib/transition/viewTransition.ts +0 -29
  83. package/vendor/sdk/lib/voice.tsx +0 -422
  84. package/vendor/sdk/main.tsx +0 -125
  85. package/vendor/sdk/pageInterfaces.tsx +0 -388
  86. package/vendor/sdk/responseView.tsx +0 -82
@@ -1,83 +0,0 @@
1
- // Theme resolution: explicit prop → ancestor data-theme/.dark|.light
2
- // class (watched live) → prefers-color-scheme (subscribed live).
3
- // SSR-safe: everything runs in effects; the pre-mount fallback is dark.
4
-
5
- import type { RefObject } from 'react';
6
- import { useEffect, useState } from 'react';
7
- import type { OrbTheme } from './types';
8
-
9
- function ancestorTheme(el: Element | null): boolean | null {
10
- let node: Element | null = el;
11
- while (node) {
12
- const attr = node.getAttribute('data-theme');
13
- if (attr === 'dark') return true;
14
- if (attr === 'light') return false;
15
- if (node.classList.contains('dark')) return true;
16
- if (node.classList.contains('light')) return false;
17
- node = node.parentElement;
18
- }
19
- return null;
20
- }
21
-
22
- function systemDark(): boolean {
23
- return typeof matchMedia === 'undefined' || matchMedia('(prefers-color-scheme: dark)').matches;
24
- }
25
-
26
- /** Resolve the effective dark/light substrate for a mounted element. */
27
- export function useResolvedDark(theme: OrbTheme, hostRef: RefObject<Element | null>): boolean {
28
- const [dark, setDark] = useState(true);
29
-
30
- useEffect(() => {
31
- if (theme === 'dark') {
32
- setDark(true);
33
- return;
34
- }
35
- if (theme === 'light') {
36
- setDark(false);
37
- return;
38
- }
39
-
40
- const resolve = () => {
41
- const fromTree = ancestorTheme(hostRef.current);
42
- setDark(fromTree ?? systemDark());
43
- };
44
- resolve();
45
-
46
- // live OS/browser theme switches
47
- const mq = typeof matchMedia !== 'undefined' ? matchMedia('(prefers-color-scheme: dark)') : null;
48
- const onMq = () => resolve();
49
- mq?.addEventListener('change', onMq);
50
-
51
- // live app-level toggles: watch class/data-theme flips on ancestors
52
- let mo: MutationObserver | null = null;
53
- if (typeof MutationObserver !== 'undefined' && hostRef.current) {
54
- mo = new MutationObserver(resolve);
55
- mo.observe(document.documentElement, {
56
- attributes: true,
57
- attributeFilter: ['class', 'data-theme'],
58
- subtree: true
59
- });
60
- }
61
-
62
- return () => {
63
- mq?.removeEventListener('change', onMq);
64
- mo?.disconnect();
65
- };
66
- }, [theme, hostRef]);
67
-
68
- return dark;
69
- }
70
-
71
- /** Live `prefers-reduced-motion` — reduced users get a static frame. */
72
- export function useReducedMotion(): boolean {
73
- const [reduced, setReduced] = useState(false);
74
- useEffect(() => {
75
- if (typeof matchMedia === 'undefined') return;
76
- const mq = matchMedia('(prefers-reduced-motion: reduce)');
77
- setReduced(mq.matches);
78
- const on = (e: MediaQueryListEvent) => setReduced(e.matches);
79
- mq.addEventListener('change', on);
80
- return () => mq.removeEventListener('change', on);
81
- }, []);
82
- return reduced;
83
- }