Experiment to rebuild Diffuse using web applets.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

refactor: orchestrator/storage → storage/output/memory

+37 -16
+8 -6
src/applets/orchestrator/queue/applet.astro
··· 19 19 queue: await applet<QueueEngine.State>("../../engine/queue", { context: self.parent }), 20 20 }; 21 21 22 - const orchestrator = { 23 - storage: await applet<Output>("../../orchestrator/storage", { context: self.parent }), 22 + const storage = { 23 + output: { 24 + memory: await applet<Output>("../../storage/output/memory", { context: self.parent }), 25 + }, 24 26 }; 25 27 26 28 //////////////////////////////////////////// ··· 33 35 // into a usable audio URL. 34 36 engine.queue.sendAction( 35 37 "add", 36 - orchestrator.storage.data.tracks.map((track: Track) => { 38 + storage.output.memory.data.tracks.map((track: Track) => { 37 39 return { 38 40 expiresAt: Infinity, 39 41 id: track.id, ··· 97 99 ); 98 100 99 101 //////////////////////////////////////////// 100 - // 📦 [Connections → Storages] 101 - // 🧠 MEMORY 102 + // ⚙️ [Connections → Engines] 103 + // 📦 Storage 102 104 //////////////////////////////////////////// 103 105 reactive( 104 - orchestrator.storage, 106 + storage.output.memory, 105 107 (data) => comparable(data.tracks), 106 108 () => fill(), 107 109 );
+2 -2
src/applets/orchestrator/storage/applet.astro src/applets/storage/output/memory/applet.astro
··· 1 1 <script> 2 2 import { applets } from "@web-applets/sdk"; 3 3 4 - import type { Output, Track } from "../../core/types.d.ts"; 5 - import { applet, reactive } from "../../../scripts/theme"; 4 + import type { Output, Track } from "../../../core/types.d.ts"; 5 + import { applet, reactive } from "../../../../scripts/theme"; 6 6 7 7 //////////////////////////////////////////// 8 8 // SETUP
src/applets/orchestrator/storage/manifest.json src/applets/storage/output/memory/manifest.json
+13 -4
src/pages/index.astro
··· 9 9 { url: "engine/queue/", title: "Queue" }, 10 10 ]; 11 11 12 - const orchestrators = [ 13 - { url: "orchestrator/queue/", title: "Queue" }, 14 - { url: "orchestrator/storage/", title: "Storage" }, 15 - ]; 12 + const orchestrators = [{ url: "orchestrator/queue/", title: "Queue" }]; 13 + 14 + const storages = [{ url: "storage/output/memory/", title: "Output / Memory" }]; 16 15 17 16 const themes = [{ url: "themes/pilot/", title: "Pilot" }]; 18 17 --- ··· 100 99 output is derived data such as a music playlist.</em 101 100 > 102 101 </p> 102 + 103 + <ul> 104 + { 105 + storages.map((item: any) => ( 106 + <li> 107 + <a href={item.url}>{item.title}</a> 108 + </li> 109 + )) 110 + } 111 + </ul> 103 112 104 113 <h3>Processors</h3> 105 114
+14 -4
src/scripts/themes/pilot/index.ts
··· 22 22 23 23 const orchestrator = { 24 24 queue: await applet("../../orchestrator/queue"), 25 - storage: await applet<Output>("../../orchestrator/storage"), 25 + }; 26 + 27 + const storage = { 28 + output: { 29 + memory: await applet<Output>("../../storage/output/memory"), 30 + }, 26 31 }; 27 32 28 33 const ui = { ··· 59 64 ); 60 65 61 66 //////////////////////////////////////////// 62 - // 📦 [Connections → Storages] 63 - // 🧠 MEMORY 67 + // 📦 [Connections → Storages/Output] 68 + // 🧠 Memory 64 69 //////////////////////////////////////////// 65 70 66 71 // Track changes to in-memory user data, ··· 69 74 // Move to orchestrator? 70 75 71 76 reactive( 72 - orchestrator.storage, 77 + storage.output.memory, 73 78 (data) => comparable(data), 74 79 (data) => { 75 80 // TODO: Store locally ··· 84 89 ); 85 90 86 91 // NOTE: How do we sync new remote data with our local/in-memory data? 92 + // 93 + // orchestrator.storage.data = { 94 + // sources: [], 95 + // tracks: [] 96 + // } 87 97 88 98 //////////////////////////////////////////// 89 99 // 🌅 [Connections → UI]