@kbve/droid 0.0.6 → 0.1.1

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 (108) hide show
  1. package/comlink.js +1 -7
  2. package/droid.mjs +191 -61
  3. package/index.d.ts +29 -0
  4. package/index.js +9054 -2763
  5. package/lib/gateway/SupabaseGateway.d.ts +38 -0
  6. package/lib/gateway/SupabaseGateway.d.ts.map +1 -0
  7. package/lib/gateway/WorkerCommunication.d.ts +39 -0
  8. package/lib/gateway/WorkerCommunication.d.ts.map +1 -0
  9. package/lib/gateway/WorkerPool.d.ts +55 -0
  10. package/lib/gateway/WorkerPool.d.ts.map +1 -0
  11. package/lib/gateway/capabilities.d.ts +23 -0
  12. package/lib/gateway/capabilities.d.ts.map +1 -0
  13. package/lib/gateway/index.d.ts +9 -0
  14. package/lib/gateway/index.d.ts.map +1 -0
  15. package/lib/gateway/strategies/DirectStrategy.d.ts +52 -0
  16. package/lib/gateway/strategies/DirectStrategy.d.ts.map +1 -0
  17. package/lib/gateway/strategies/SharedWorkerStrategy.d.ts +46 -0
  18. package/lib/gateway/strategies/SharedWorkerStrategy.d.ts.map +1 -0
  19. package/lib/gateway/strategies/WebWorkerStrategy.d.ts +45 -0
  20. package/lib/gateway/strategies/WebWorkerStrategy.d.ts.map +1 -0
  21. package/lib/gateway/types.d.ts +81 -0
  22. package/lib/gateway/types.d.ts.map +1 -0
  23. package/lib/workers/canvas-ui-renderer.d.ts +25 -0
  24. package/lib/workers/canvas-ui-renderer.d.ts.map +1 -0
  25. package/lib/workers/canvas-worker.d.ts +14 -0
  26. package/lib/workers/canvas-worker.d.ts.map +1 -0
  27. package/lib/workers/canvas-worker.js +291 -145
  28. package/lib/workers/data.d.ts +40 -0
  29. package/lib/workers/data.d.ts.map +1 -0
  30. package/lib/workers/db-worker.d.ts +69 -0
  31. package/lib/workers/db-worker.d.ts.map +1 -0
  32. package/lib/workers/db-worker.js +2680 -2147
  33. package/lib/workers/events.d.ts +11 -0
  34. package/lib/workers/events.d.ts.map +1 -0
  35. package/lib/workers/flexbuilder.d.ts +4 -0
  36. package/lib/workers/flexbuilder.d.ts.map +1 -0
  37. package/lib/workers/init.d.ts +11 -0
  38. package/lib/workers/init.d.ts.map +1 -0
  39. package/lib/workers/main.d.ts +107 -0
  40. package/lib/workers/main.d.ts.map +1 -0
  41. package/lib/workers/supabase-db-worker.d.ts +2 -0
  42. package/lib/workers/supabase-db-worker.d.ts.map +1 -0
  43. package/lib/workers/supabase-db-worker.js +9337 -0
  44. package/lib/workers/supabase-shared-worker.d.ts +2 -0
  45. package/lib/workers/supabase-shared-worker.d.ts.map +1 -0
  46. package/lib/workers/supabase-shared-worker.js +12635 -0
  47. package/lib/workers/tools.d.ts +4 -0
  48. package/lib/workers/tools.d.ts.map +1 -0
  49. package/lib/workers/validate.d.ts +15 -0
  50. package/lib/workers/validate.d.ts.map +1 -0
  51. package/lib/workers/ws-worker.d.ts +11 -0
  52. package/lib/workers/ws-worker.d.ts.map +1 -0
  53. package/lib/workers/ws-worker.js +174 -115
  54. package/main.js +4875 -0
  55. package/package.json +17 -6
  56. package/reference.js +688 -228
  57. package/src/index.ts +38 -13
  58. package/src/lib/droid.spec.ts +14 -19
  59. package/src/lib/droid.ts +48 -4
  60. package/src/lib/gateway/SupabaseGateway.ts +183 -0
  61. package/src/lib/gateway/WorkerCommunication.ts +132 -0
  62. package/src/lib/gateway/WorkerPool.ts +304 -0
  63. package/src/lib/gateway/capabilities.ts +80 -0
  64. package/src/lib/gateway/index.ts +15 -0
  65. package/src/lib/gateway/strategies/DirectStrategy.ts +443 -0
  66. package/src/lib/gateway/strategies/SharedWorkerStrategy.ts +278 -0
  67. package/src/lib/gateway/strategies/WebWorkerStrategy.ts +278 -0
  68. package/src/lib/gateway/types.ts +112 -0
  69. package/src/lib/mod/mod-manager.ts +13 -8
  70. package/src/lib/mod/module/bento/mod-bento.worker.ts +1 -1
  71. package/src/lib/mod/module/supabase/mod-supabase.spec.ts +21 -25
  72. package/src/lib/mod/module/supabase/mod-supabase.ts +68 -0
  73. package/src/lib/mod/module/supabase/mod-supabase.worker.ts +1 -56
  74. package/src/lib/state/auth.spec.ts +58 -0
  75. package/src/lib/state/auth.ts +30 -0
  76. package/src/lib/state/index.ts +34 -0
  77. package/src/lib/state/overlay-manager.ts +125 -0
  78. package/src/lib/state/router.ts +24 -0
  79. package/src/lib/state/theme-sync.ts +75 -0
  80. package/src/lib/state/toasts.spec.ts +106 -0
  81. package/src/lib/state/toasts.ts +34 -0
  82. package/src/lib/state/ui.spec.ts +148 -0
  83. package/src/lib/state/ui.ts +45 -0
  84. package/src/lib/state/welcome-toast.ts +76 -0
  85. package/src/lib/types/bento.spec.ts +116 -0
  86. package/src/lib/types/bento.ts +94 -55
  87. package/src/lib/types/event-types.spec.ts +93 -0
  88. package/src/lib/types/event-types.ts +39 -3
  89. package/src/lib/types/modules.ts +12 -5
  90. package/src/lib/types/ui-event-types.ts +66 -0
  91. package/src/lib/workers/canvas-ui-renderer.ts +266 -0
  92. package/src/lib/workers/canvas-worker.ts +94 -9
  93. package/src/lib/workers/data.ts +59 -36
  94. package/src/lib/workers/db-worker.ts +79 -32
  95. package/src/lib/workers/events.spec.ts +208 -0
  96. package/src/lib/workers/events.ts +27 -14
  97. package/src/lib/workers/flexbuilder.ts +2 -2
  98. package/src/lib/workers/init.ts +25 -17
  99. package/src/lib/workers/main.ts +510 -316
  100. package/src/lib/workers/supabase-db-worker.ts +221 -0
  101. package/src/lib/workers/supabase-shared-worker.ts +572 -0
  102. package/src/lib/workers/validate.ts +64 -0
  103. package/src/lib/workers/ws-worker.ts +156 -25
  104. package/src/setup-vitest.ts +4 -2
  105. package/src/types.ts +30 -0
  106. package/src/vite-env.d.ts +1 -0
  107. package/workers/main.js +10 -1123
  108. package/src/types.d.ts +0 -31
@@ -0,0 +1,11 @@
1
+ import { DroidEventMap, EventKey, EventHandler } from '../types/event-types';
2
+ declare class DroidEventBus {
3
+ private listeners;
4
+ on<K extends EventKey>(event: K, handler: EventHandler<K>): void;
5
+ off<K extends EventKey>(event: K, handler: EventHandler<K>): void;
6
+ emit<K extends EventKey>(event: K, payload: DroidEventMap[K]): void;
7
+ wait<K extends EventKey>(event: K): Promise<DroidEventMap[K]>;
8
+ }
9
+ export declare const DroidEvents: DroidEventBus;
10
+ export {};
11
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../../../packages/npm/droid/src/lib/workers/events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,MAAM,sBAAsB,CAAC;AAE9B,cAAM,aAAa;IAClB,OAAO,CAAC,SAAS,CAAwD;IAEzE,EAAE,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IASzD,GAAG,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IAM1D,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IA4B5D,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;CAS7D;AAED,eAAO,MAAM,WAAW,eAAsB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Builder as FlexBuilder } from 'flatbuffers/js/flexbuffers/builder';
2
+ export { toReference } from 'flatbuffers/js/flexbuffers/reference';
3
+ export declare function builder(): FlexBuilder;
4
+ //# sourceMappingURL=flexbuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flexbuilder.d.ts","sourceRoot":"","sources":["../../../../../../packages/npm/droid/src/lib/workers/flexbuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAEnE,wBAAgB,OAAO,IAAI,WAAW,CAErC"}
@@ -0,0 +1,11 @@
1
+ import { Remote } from 'comlink';
2
+ import { LocalStorageAPI } from './db-worker';
3
+ export interface InitWorkerOptions {
4
+ version: string;
5
+ i18nPath?: string;
6
+ dataPath?: string;
7
+ locale?: string;
8
+ defaults?: Record<string, string>;
9
+ }
10
+ export declare function initializeWorkerDatabase(worker: Remote<LocalStorageAPI>, { version, i18nPath, dataPath, locale, defaults, }: InitWorkerOptions): Promise<void>;
11
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../../packages/npm/droid/src/lib/workers/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,wBAAsB,wBAAwB,CAC7C,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,EAC/B,EACC,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAa,EACb,QAEC,GACD,EAAE,iBAAiB,iBA0BpB"}
@@ -0,0 +1,107 @@
1
+ import { Remote } from 'comlink';
2
+ import { LocalStorageAPI } from './db-worker';
3
+ import { WSInstance } from './ws-worker';
4
+ import { VirtualNode } from '../types/modules';
5
+ import { PanelPayload, PanelId } from '../types/panel-types';
6
+ import { GatewayConfig } from '../gateway/types';
7
+ /** Messages emitted from workers to the main thread for UI side-effects. */
8
+ type WorkerUIMessage = {
9
+ type: 'injectVNode';
10
+ vnode: VirtualNode;
11
+ } | {
12
+ type: 'toast';
13
+ payload: unknown;
14
+ } | {
15
+ type: 'toast-remove';
16
+ payload: {
17
+ id: string;
18
+ };
19
+ } | {
20
+ type: 'tooltip-open';
21
+ payload: unknown;
22
+ } | {
23
+ type: 'tooltip-close';
24
+ payload?: {
25
+ id: string;
26
+ };
27
+ } | {
28
+ type: 'modal-open';
29
+ payload: unknown;
30
+ } | {
31
+ type: 'modal-close';
32
+ payload?: {
33
+ id: string;
34
+ };
35
+ } | {
36
+ type: string;
37
+ [key: string]: unknown;
38
+ };
39
+ export type DroidScaleLevel = 'full' | 'minimal';
40
+ /**
41
+ * Returns the current droid scale level.
42
+ */
43
+ export declare function getScaleLevel(): DroidScaleLevel;
44
+ /**
45
+ * Downscale droid to minimal mode: terminates canvas worker, mod workers,
46
+ * gateway worker pool, and overlay manager. Keeps DB SharedWorker + WS
47
+ * SharedWorker alive for session/auth persistence.
48
+ *
49
+ * Call this before loading heavy WASM/pthread workloads.
50
+ */
51
+ export declare function downscale(): Promise<void>;
52
+ /**
53
+ * Upscale droid back to full mode: re-initializes canvas worker, mod manager,
54
+ * overlay manager, and gateway.
55
+ *
56
+ * Call this when the heavy workload is done and you want full droid features.
57
+ */
58
+ export declare function upscale(): Promise<void>;
59
+ export declare function resolveWorkerURL(name: string, fallback?: string): string;
60
+ export declare const uiux: {
61
+ state: import('nanostores').MapStore<{
62
+ panelManager: Record<PanelId, {
63
+ open: boolean;
64
+ payload?: PanelPayload;
65
+ }>;
66
+ themeManager: {
67
+ theme: "light" | "dark" | "auto";
68
+ };
69
+ toastManager: Record<string, unknown>;
70
+ scrollY: number;
71
+ }>;
72
+ openPanel(id: PanelId, payload?: PanelPayload): void;
73
+ closePanel(id: PanelId): void;
74
+ togglePanel(id: PanelId, payload?: PanelPayload): void;
75
+ setTheme(theme: "light" | "dark" | "auto"): void;
76
+ /** @deprecated Use addToast() from '@kbve/droid' state exports instead. */
77
+ addToast(id: string, data: unknown): void;
78
+ /** @deprecated Use removeToast() from '@kbve/droid' state exports instead. */
79
+ removeToast(id: string): void;
80
+ dispatchCanvasRequest(panelId: PanelId, canvasEl: HTMLCanvasElement, mode?: "static" | "animated" | "dynamic"): Promise<void>;
81
+ closeAllPanels(): void;
82
+ emitFromWorker(msg: WorkerUIMessage): void;
83
+ };
84
+ export declare const i18n: {
85
+ store: import('nanostores').MapStore<Record<string, string>>;
86
+ api: Remote<LocalStorageAPI> | null;
87
+ ready: Promise<void>;
88
+ get(key: string): string;
89
+ getAsync(key: string): Promise<string>;
90
+ set(key: string, value: string): void;
91
+ hydrate(api: Remote<LocalStorageAPI>, keys: string[]): Promise<void>;
92
+ hydrateLocale(locale?: string): Promise<void>;
93
+ };
94
+ export declare function bridgeWsToDb(ws: Remote<WSInstance>, db: Remote<LocalStorageAPI>): void;
95
+ export declare function main(opts?: {
96
+ workerURLs?: Record<string, string>;
97
+ workerRefs?: {
98
+ canvasWorker?: Worker;
99
+ dbWorker?: SharedWorker;
100
+ wsWorker?: SharedWorker;
101
+ };
102
+ gateway?: GatewayConfig;
103
+ i18nPath?: string;
104
+ dataPath?: string;
105
+ }): Promise<void>;
106
+ export {};
107
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../../packages/npm/droid/src/lib/workers/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=supabase-db-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supabase-db-worker.d.ts","sourceRoot":"","sources":["../../../../../../packages/npm/droid/src/lib/workers/supabase-db-worker.ts"],"names":[],"mappings":""}