fluxy-bot 0.1.13 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.html CHANGED
@@ -5,8 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <meta name="theme-color" content="#212121" />
7
7
  <title>Fluxy</title>
8
- <script type="module" crossorigin src="/assets/index-SHHf1KTu.js"></script>
9
- <link rel="stylesheet" crossorigin href="/assets/index-CQ58CZb9.css">
8
+ <script type="module" crossorigin src="/assets/index-twWUCFQs.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/assets/index-CqHWWApk.css">
10
10
  <link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head>
11
11
  <body class="bg-background text-foreground">
12
12
  <div id="root"></div>
package/dist/sw.js CHANGED
@@ -1 +1 @@
1
- if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,r)=>{const t=e||("document"in self?document.currentScript.src:"")||location.href;if(s[t])return;let o={};const l=e=>i(e,t),c={module:{uri:t},exports:o,require:l};s[t]=Promise.all(n.map(e=>c[e]||l(e))).then(e=>(r(...e),o))}}define(["./workbox-8c29f6e4"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"index.html",revision:"9cb4f3dcb03050e9ca2604e72825a22c"},{url:"assets/index-SHHf1KTu.js",revision:null},{url:"assets/index-CQ58CZb9.css",revision:null},{url:"manifest.webmanifest",revision:"f73683d89ca6b3b7b63451130e165f71"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))});
1
+ if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,t)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(s[r])return;let o={};const l=e=>i(e,r),u={module:{uri:r},exports:o,require:l};s[r]=Promise.all(n.map(e=>u[e]||l(e))).then(e=>(t(...e),o))}}define(["./workbox-8c29f6e4"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"index.html",revision:"76e62830c0f4960681577229baa9ab42"},{url:"assets/index-twWUCFQs.js",revision:null},{url:"assets/index-CqHWWApk.css",revision:null},{url:"manifest.webmanifest",revision:"f73683d89ca6b3b7b63451130e165f71"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fluxy-bot",
3
- "version": "0.1.13",
3
+ "version": "0.1.14",
4
4
  "description": "Self-hosted AI bot — run your own AI assistant from anywhere",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/worker/index.ts CHANGED
@@ -191,6 +191,33 @@ app.post('/api/handle/change', async (req, res) => {
191
191
 
192
192
  // ── Onboarding ──
193
193
 
194
+ app.get('/api/onboard/status', (_, res) => {
195
+ const settings = getAllSettings();
196
+ const cfg = loadConfig();
197
+ res.json({
198
+ userName: settings.user_name || '',
199
+ agentName: settings.agent_name || '',
200
+ portalUser: settings.portal_user || '',
201
+ portalConfigured: !!settings.portal_pass,
202
+ whisperEnabled: settings.whisper_enabled === 'true',
203
+ whisperKey: settings.whisper_key || '',
204
+ provider: cfg.ai?.provider || '',
205
+ model: cfg.ai?.model || '',
206
+ handle: cfg.relay?.token ? {
207
+ username: cfg.username,
208
+ tier: cfg.relay.tier,
209
+ url: cfg.relay.url,
210
+ } : null,
211
+ });
212
+ });
213
+
214
+ app.post('/api/portal/verify-password', (req, res) => {
215
+ const { password } = req.body;
216
+ const stored = getSetting('portal_pass');
217
+ if (!stored) { res.json({ valid: false, error: 'No password set' }); return; }
218
+ res.json({ valid: verifyPassword(password, stored) });
219
+ });
220
+
194
221
  app.post('/api/onboard', (req, res) => {
195
222
  const { userName, agentName, provider, model, apiKey, baseUrl, portalUser, portalPass, whisperEnabled, whisperKey } = req.body;
196
223
  setSetting('user_name', userName || '');