@rubytech/taskmaster 1.13.3 → 1.14.2

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 (41) hide show
  1. package/dist/agents/workspace-migrations.js +128 -0
  2. package/dist/build-info.json +3 -3
  3. package/dist/cli/gateway-cli/run.js +36 -16
  4. package/dist/control-ui/assets/{index-BWqMMgRV.js → index-B3nkSwMP.js} +23 -21
  5. package/dist/control-ui/assets/index-B3nkSwMP.js.map +1 -0
  6. package/dist/control-ui/assets/{index-B8I8lMfz.css → index-l54GcTyj.css} +1 -1
  7. package/dist/control-ui/index.html +2 -2
  8. package/dist/daemon/service-port.js +109 -0
  9. package/dist/gateway/server-methods/config.js +44 -0
  10. package/dist/infra/update-global.js +4 -1
  11. package/dist/infra/update-runner.js +8 -4
  12. package/dist/macos/gateway-daemon.js +26 -8
  13. package/dist/memory/manager.js +14 -3
  14. package/package.json +1 -1
  15. package/skills/sales-closer/SKILL.md +29 -0
  16. package/skills/sales-closer/references/close-tracking.md +86 -0
  17. package/skills/sales-closer/references/closing-framework.md +112 -0
  18. package/skills/sales-closer/references/objection-handling.md +101 -0
  19. package/taskmaster-docs/USER-GUIDE.md +2 -1
  20. package/templates/beagle-taxi/memory/public/knowledge-base.md +11 -11
  21. package/templates/beagle-taxi/skills/beagle-taxi/SKILL.md +1 -1
  22. package/templates/beagle-zanzibar/agents/admin/AGENTS.md +116 -0
  23. package/templates/beagle-zanzibar/agents/admin/BOOTSTRAP.md +145 -0
  24. package/templates/{zanzi-taxi → beagle-zanzibar}/agents/admin/HEARTBEAT.md +1 -0
  25. package/templates/{zanzi-taxi → beagle-zanzibar}/agents/public/AGENTS.md +15 -2
  26. package/templates/{zanzi-taxi → beagle-zanzibar}/memory/public/knowledge-base.md +13 -0
  27. package/templates/beagle-zanzibar/memory/public/terms.md +81 -0
  28. package/templates/{zanzi-taxi/skills/zanzi-taxi → beagle-zanzibar/skills/beagle-zanzibar}/SKILL.md +7 -3
  29. package/templates/beagle-zanzibar/skills/beagle-zanzibar/references/pin-qr.md +52 -0
  30. package/templates/{zanzi-taxi/skills/zanzi-taxi → beagle-zanzibar/skills/beagle-zanzibar}/references/post-ride.md +13 -0
  31. package/templates/{zanzi-taxi/skills/zanzi-taxi → beagle-zanzibar/skills/beagle-zanzibar}/references/ride-matching.md +25 -17
  32. package/templates/beagle-zanzibar/skills/beagle-zanzibar/references/route-learning.md +61 -0
  33. package/templates/beagle-zanzibar/skills/stripe/SKILL.md +28 -0
  34. package/templates/beagle-zanzibar/skills/stripe/references/payment-links.md +71 -0
  35. package/dist/control-ui/assets/index-BWqMMgRV.js.map +0 -1
  36. package/templates/zanzi-taxi/agents/admin/AGENTS.md +0 -60
  37. /package/templates/{zanzi-taxi → beagle-zanzibar}/agents/admin/IDENTITY.md +0 -0
  38. /package/templates/{zanzi-taxi → beagle-zanzibar}/agents/admin/SOUL.md +0 -0
  39. /package/templates/{zanzi-taxi → beagle-zanzibar}/agents/public/IDENTITY.md +0 -0
  40. /package/templates/{zanzi-taxi → beagle-zanzibar}/agents/public/SOUL.md +0 -0
  41. /package/templates/{zanzi-taxi/skills/zanzi-taxi → beagle-zanzibar/skills/beagle-zanzibar}/references/local-knowledge.md +0 -0
@@ -162,10 +162,138 @@ async function patchPublicSecurity(agentsPath, content) {
162
162
  return null;
163
163
  return insertSection(content, PUBLIC_SECURITY_SECTION, findPostEverySessionInsertPoint);
164
164
  }
165
+ // ---------------------------------------------------------------------------
166
+ // Migration: Beagle Taxi — Contact tools (v1.14)
167
+ // ---------------------------------------------------------------------------
168
+ /** Detect a Beagle Taxi admin agent by its booking-record path pattern. */
169
+ function isBeagleTaxiAdmin(content) {
170
+ return !isPublicAgent(content) && content.includes("bookings/{job-id}");
171
+ }
172
+ const CONTACT_TOOLS_ROWS = `| \`contact_create\` | Register a new driver in the contact roster |
173
+ | \`contact_lookup\` | Find drivers or look up a specific driver's profile |
174
+ | \`contact_update\` | Update a driver's static profile (vehicle type, plate, AC) |
175
+ | \`contact_delete\` | Remove a driver from the roster |`;
176
+ async function patchBeagleContactTools(agentsPath, content) {
177
+ if (!isBeagleTaxiAdmin(content))
178
+ return null;
179
+ if (content.includes("`contact_create`"))
180
+ return null;
181
+ const sessionListRow = "| `sessions_list`";
182
+ const idx = content.indexOf(sessionListRow);
183
+ if (idx === -1)
184
+ return null;
185
+ return content.slice(0, idx) + CONTACT_TOOLS_ROWS + "\n" + content.slice(idx);
186
+ }
187
+ // ---------------------------------------------------------------------------
188
+ // Migration: Beagle Taxi — Driver Data Model section (v1.14)
189
+ // ---------------------------------------------------------------------------
190
+ const DRIVER_DATA_MODEL_SECTION = `## Driver Data Model
191
+
192
+ Driver data lives in two stores:
193
+
194
+ | Store | Fields | Who writes |
195
+ |-------|--------|------------|
196
+ | Contact record | \`name\`, \`phone\`, \`vehicle_type\`, \`vehicle_plate\`, \`ac\`, \`driver: true\` | Admin only |
197
+ | Memory (\`drivers/{name}.md\`) | \`status\`, \`current_booking\`, ratings, \`trips_completed\`, \`response_rate\`, \`substitutions\` | Public agent during operations |
198
+
199
+ When adding a new driver, create both: a contact record via \`contact_create\` and an initial memory profile via \`memory_write\` at \`drivers/{firstname-lastname}.md\`:
200
+
201
+ \`\`\`
202
+ # Driver: [Name]
203
+ status: idle
204
+ current_booking: null
205
+ last_active: [timestamp]
206
+
207
+ ## Ratings
208
+ rating_cleanliness: -
209
+ rating_politeness: -
210
+ rating_safety: -
211
+ rating_knowledge: -
212
+ rating_punctuality: -
213
+ trips_completed: 0
214
+ response_rate: 0
215
+
216
+ ## Route History
217
+ (builds from booking data)
218
+
219
+ ## Substitution Record
220
+ (none)
221
+ \`\`\``;
222
+ async function patchBeagleDriverDataModel(agentsPath, content) {
223
+ if (!isBeagleTaxiAdmin(content))
224
+ return null;
225
+ if (content.includes("## Driver Data Model"))
226
+ return null;
227
+ const insertBefore = "## Operational Focus Areas";
228
+ const idx = content.indexOf(insertBefore);
229
+ if (idx === -1)
230
+ return content.trimEnd() + "\n\n---\n\n" + DRIVER_DATA_MODEL_SECTION + "\n";
231
+ return content.slice(0, idx) + DRIVER_DATA_MODEL_SECTION + "\n\n---\n\n" + content.slice(idx);
232
+ }
233
+ // ---------------------------------------------------------------------------
234
+ // Migration: Beagle Taxi — Driver Substitution Follow-up (v1.14)
235
+ // ---------------------------------------------------------------------------
236
+ const DRIVER_SUBSTITUTION_SECTION = `### Driver Substitution Follow-up
237
+
238
+ When a substitution is flagged in a booking record:
239
+ 1. Identify the booked driver from the booking record
240
+ 2. Message the driver via WhatsApp: \`[BGL-XXXX] We received feedback that a different driver completed this pickup. Can you explain what happened? Unannounced substitutions affect your standing with Beagle.\`
241
+ 3. Record the driver's response (or non-response after 24 hours) in their memory profile under \`Substitution Record\`
242
+ 4. A single incident with a reasonable explanation (illness, emergency) is noted but not penalised
243
+ 5. No response, or a pattern of two or more incidents, escalates to the operator for a decision on deprioritisation`;
244
+ async function patchBeagleDriverSubstitution(agentsPath, content) {
245
+ if (!isBeagleTaxiAdmin(content))
246
+ return null;
247
+ if (content.includes("### Driver Substitution Follow-up"))
248
+ return null;
249
+ const insertBefore = "### Knowledge Base";
250
+ const idx = content.indexOf(insertBefore);
251
+ if (idx === -1)
252
+ return null;
253
+ return content.slice(0, idx) + DRIVER_SUBSTITUTION_SECTION + "\n\n" + content.slice(idx);
254
+ }
255
+ // ---------------------------------------------------------------------------
256
+ // Migration: Beagle Zanzibar — Public agent tools section (v1.14)
257
+ // ---------------------------------------------------------------------------
258
+ /** Detect a Beagle Zanzibar public agent by its booking-record path pattern. */
259
+ function isBeaglePublicAgent(content) {
260
+ return isPublicAgent(content) && content.includes("bookings/{job-id}");
261
+ }
262
+ const BEAGLE_PUBLIC_TOOLS_SECTION = `## Tools
263
+
264
+ | Tool | Use |
265
+ |------|-----|
266
+ | \`contact_lookup\` | Look up the driver roster (filter \`driver: true\`) and individual driver profiles |
267
+ | \`memory_search\` | Find bookings, knowledge base content, driver operational state |
268
+ | \`memory_get\` | Read specific files (driver state, bookings, knowledge base) |
269
+ | \`memory_write\` | Record bookings, update driver operational state, store tourist preferences |
270
+ | \`current_time\` | Timestamps for booking records and reminder scheduling |`;
271
+ async function patchBeaglePublicTools(agentsPath, content) {
272
+ if (!isBeaglePublicAgent(content))
273
+ return null;
274
+ if (content.includes("## Tools"))
275
+ return null;
276
+ return insertSection(content, BEAGLE_PUBLIC_TOOLS_SECTION, findPostEverySessionInsertPoint);
277
+ }
278
+ // ---------------------------------------------------------------------------
279
+ // Migration: Beagle Zanzibar — rename zanzi-taxi skill reference (v1.14)
280
+ // ---------------------------------------------------------------------------
281
+ async function patchBeagleSkillRename(agentsPath, content) {
282
+ if (!isBeaglePublicAgent(content))
283
+ return null;
284
+ if (!content.includes("zanzi-taxi"))
285
+ return null;
286
+ return content.replaceAll("zanzi-taxi", "beagle-zanzibar");
287
+ }
165
288
  const MIGRATIONS = [
166
289
  { name: "skill-recommendations", apply: patchSkillRecommendations },
167
290
  { name: "owner-learning", apply: patchOwnerLearning },
168
291
  { name: "public-security", apply: patchPublicSecurity },
292
+ { name: "beagle-contact-tools", apply: patchBeagleContactTools },
293
+ { name: "beagle-driver-data-model", apply: patchBeagleDriverDataModel },
294
+ { name: "beagle-driver-substitution", apply: patchBeagleDriverSubstitution },
295
+ { name: "beagle-public-tools", apply: patchBeaglePublicTools },
296
+ { name: "beagle-skill-rename", apply: patchBeagleSkillRename },
169
297
  ];
170
298
  /**
171
299
  * Run all workspace migrations for every configured agent.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.13.3",
3
- "commit": "75bd5b9c88a61e9af0298b0c7a3299cc047a6a37",
4
- "builtAt": "2026-03-03T17:22:53.401Z"
2
+ "version": "1.14.2",
3
+ "commit": "f271b744c2d7ecc57dd62feadb9187cbc128b875",
4
+ "builtAt": "2026-03-04T07:40:11.872Z"
5
5
  }
@@ -265,22 +265,42 @@ async function runGatewayCommand(opts) {
265
265
  try {
266
266
  await runGatewayLoop({
267
267
  runtime: defaultRuntime,
268
- start: async () => await startGatewayServer(port, {
269
- bind,
270
- auth: authMode || passwordRaw || tokenRaw || authModeRaw || autoGeneratedToken
271
- ? {
272
- mode: autoGeneratedToken ? "token" : (authMode ?? undefined),
273
- token: autoGeneratedToken ?? tokenRaw,
274
- password: passwordRaw,
275
- }
276
- : undefined,
277
- tailscale: tailscaleMode || opts.tailscaleResetOnExit
278
- ? {
279
- mode: tailscaleMode ?? undefined,
280
- resetOnExit: Boolean(opts.tailscaleResetOnExit),
281
- }
282
- : undefined,
283
- }),
268
+ start: async () => {
269
+ // Re-read port on each (re)start so UI port changes take effect in-process.
270
+ // If --port was given explicitly, always use it.
271
+ // Otherwise prefer config.gateway.port directly — this bypasses the
272
+ // TASKMASTER_GATEWAY_PORT env var, which is set at daemon-install time and
273
+ // does not change when the user edits the port via the UI. When the config
274
+ // key is absent, fall back to resolveGatewayPort() (env var / default).
275
+ let startPort;
276
+ if (portOverride !== null) {
277
+ startPort = portOverride;
278
+ }
279
+ else {
280
+ const cfg = loadConfig();
281
+ const cfgPort = cfg.gateway?.port;
282
+ startPort =
283
+ typeof cfgPort === "number" && Number.isFinite(cfgPort) && cfgPort > 0
284
+ ? cfgPort
285
+ : resolveGatewayPort(cfg);
286
+ }
287
+ return await startGatewayServer(startPort, {
288
+ bind,
289
+ auth: authMode || passwordRaw || tokenRaw || authModeRaw || autoGeneratedToken
290
+ ? {
291
+ mode: autoGeneratedToken ? "token" : (authMode ?? undefined),
292
+ token: autoGeneratedToken ?? tokenRaw,
293
+ password: passwordRaw,
294
+ }
295
+ : undefined,
296
+ tailscale: tailscaleMode || opts.tailscaleResetOnExit
297
+ ? {
298
+ mode: tailscaleMode ?? undefined,
299
+ resetOnExit: Boolean(opts.tailscaleResetOnExit),
300
+ }
301
+ : undefined,
302
+ });
303
+ },
284
304
  });
285
305
  }
286
306
  catch (err) {
@@ -1833,25 +1833,27 @@ ${o}`)}return e.chatStream="","working"}else if(t.state==="block"){const s=Mn(t.
1833
1833
  <!-- Port -->
1834
1834
  <div class="branding-row">
1835
1835
  <label class="branding-label">Port</label>
1836
- <input
1837
- type="number"
1838
- min="1024"
1839
- max="65535"
1840
- .value=${e.networkPortInput}
1841
- ?disabled=${t}
1842
- @input=${o=>e.onNetworkPortChange(o.target.value)}
1843
- style="
1844
- width: 100px;
1845
- padding: 6px 10px;
1846
- background: rgba(255,255,255,0.06);
1847
- border: 1px solid rgba(255,255,255,0.15);
1848
- border-radius: 4px;
1849
- color: inherit;
1850
- font-size: 13px;
1851
- outline: none;
1852
- -moz-appearance: textfield;
1853
- "
1854
- />
1836
+ <div style="display: flex; align-items: center; flex: 1;">
1837
+ <input
1838
+ type="number"
1839
+ min="1024"
1840
+ max="65535"
1841
+ .value=${e.networkPortInput}
1842
+ ?disabled=${t}
1843
+ @input=${o=>e.onNetworkPortChange(o.target.value)}
1844
+ style="
1845
+ width: 110px;
1846
+ padding: 6px 10px;
1847
+ background: rgba(255,255,255,0.06);
1848
+ border: 1px solid rgba(255,255,255,0.15);
1849
+ border-radius: 4px;
1850
+ color: inherit;
1851
+ font-size: 13px;
1852
+ outline: none;
1853
+ -moz-appearance: textfield;
1854
+ "
1855
+ />
1856
+ </div>
1855
1857
  </div>
1856
1858
 
1857
1859
  ${e.networkError?u`<p style="margin: 8px 0 0; font-size: 13px; color: #ef4444;">${e.networkError}</p>`:w}
@@ -4613,7 +4615,7 @@ ${a.text}`:r.join(", "):a.text;t.push({kind:"message",key:`queue:${a.id}`,messag
4613
4615
  </div>
4614
4616
  ${d?u`
4615
4617
  <p class="public-auth__hint">
4616
- Verifying your identity lets you continue your conversation across devices.
4618
+ Authenticating lets you continue your conversation across devices.
4617
4619
  </p>
4618
4620
  `:w}
4619
4621
  </div>
@@ -4674,4 +4676,4 @@ ${a.text}`:r.join(", "):a.text;t.push({kind:"message",key:`queue:${a.id}`,messag
4674
4676
  `}const r0={trace:!0,debug:!0,info:!0,warn:!0,error:!0,fatal:!0},l0={name:"",description:"",agentId:"",enabled:!0,scheduleKind:"every",scheduleAt:"",everyAmount:"30",everyUnit:"minutes",cronExpr:"0 7 * * *",cronTz:"",sessionTarget:"main",wakeMode:"next-heartbeat",payloadKind:"systemEvent",payloadText:"",deliver:!1,channel:"last",recipients:[],toAdmins:!1,timeoutSeconds:"",postToMainPrefix:""};function c0(e){e.basePath=Bf();const t=Ye();Gl(t.accentColor),Vl(t.backgroundColor);const n=document.querySelector('link[rel="icon"]');if(n&&(n.href=t.iconUrl),window.scrollTo(0,0),_f(e),e.publicChat){const i=window.__TASKMASTER_PUBLIC_CHAT_CONFIG__,s=(i==null?void 0:i.accountId)??"",o=s?s.charAt(0).toUpperCase()+s.slice(1):"Assistant";document.title=`Chat with ${o}`,De(e);return}if(e.setup){document.title=`${t.name} Setup`,De(e);return}if(e.filesPage){document.title=`${t.name} Files`,Pf(e),De(e);return}if(e.browserPage){document.title=`${t.name} Browser`,De(e);return}if(e.adminsPage){document.title=`${t.name} Admins`,De(e);return}if(e.contactsPage){document.title=`${t.name} Contacts`,De(e);return}if(e.chatPage){document.title=`${t.name} Chat`,De(e);return}if(e.advancedPage){document.title=`${t.name} Advanced`,De(e);return}Uf(e,!0),Nf(e),Of(e),window.addEventListener("popstate",e.popStateHandler),Lf(e),De(e),Ef(e),e.tab==="logs"&&(e.logsSubTab==="session"?ha(e):ua(e)),e.tab==="debug"&&ga(e)}function d0(e){dh(e)}function u0(e){var t;window.removeEventListener("popstate",e.popStateHandler),Tf(e),pa(e),fa(e),ma(e),Mf(e),If(e),Ff(e),(t=e.topbarObserver)==null||t.disconnect(),e.topbarObserver=null}function p0(e,t){if(!e.publicChat){if(e.filesPage&&e.connected&&t.has("connected")&&t.get("connected")===!1&&e.handleFilesLoad&&e.handleFilesLoad(),e.adminsPage&&e.connected&&t.has("connected")&&t.get("connected")===!1&&e.handleAdminsLoad&&e.handleAdminsLoad(),e.contactsPage&&e.connected&&t.has("connected")&&t.get("connected")===!1&&e.handleContactsLoad&&e.handleContactsLoad(),e.chatPage&&e.connected&&t.has("connected")&&t.get("connected")===!1&&e.handleChatLoad&&e.handleChatLoad(),e.advancedPage&&e.connected&&t.has("connected")&&t.get("connected")===!1&&e.handleAdvancedLoad&&e.handleAdvancedLoad(),e.setup&&e.connected){const n=t.has("connected")&&t.get("connected")===!1;n&&e.handleLicenseStatusCheck&&e.licenseValid===null&&!e.licenseBusy&&e.handleLicenseStatusCheck(),n&&e.handleUpdateCheck&&e.handleUpdateCheck();const i=t.has("setupStep")&&e.setupStep==="auth";(n||i)&&e.setupStep==="auth"&&e.handleAuthStatusCheck&&e.authConnected===null&&!e.authBusy&&e.handleAuthStatusCheck(),e.setupStep==="whatsapp"&&t.has("setupStep")&&e.client&&!e.channelsLoading&&(e.channelsLoading=!0,e.client.request("channels.status",{probe:!0,timeoutMs:8e3}).then(o=>{e.channelsSnapshot=o,e.channelsLoading=!1}).catch(()=>{e.channelsLoading=!1})),t.has("whatsappLoginConnected")&&e.whatsappLoginConnected===!0&&e.client&&!e.channelsLoading&&(e.channelsLoading=!0,e.client.request("channels.status",{probe:!0,timeoutMs:8e3}).then(s=>{e.channelsSnapshot=s,e.channelsLoading=!1}).catch(()=>{e.channelsLoading=!1}))}if(e.tab==="chat"&&!e.advancedPage&&(t.has("chatMessages")||t.has("chatToolMessages")||t.has("chatStream")||t.has("chatLoading")||t.has("tab"))){const n=t.has("tab"),i=t.has("chatLoading")&&t.get("chatLoading")===!0&&e.chatLoading===!1;nn(e,n||i||!e.chatHasAutoScrolled)}e.tab==="logs"&&!e.advancedPage&&(t.has("logsEntries")||t.has("logsAutoFollow")||t.has("tab"))&&e.logsAutoFollow&&e.logsAtBottom&&rc(e,t.has("tab")||t.has("logsAutoFollow"))}}function h0(e){const t={name:(e==null?void 0:e.name)??"",displayName:(e==null?void 0:e.displayName)??"",about:(e==null?void 0:e.about)??"",picture:(e==null?void 0:e.picture)??"",banner:(e==null?void 0:e.banner)??"",website:(e==null?void 0:e.website)??"",nip05:(e==null?void 0:e.nip05)??"",lud16:(e==null?void 0:e.lud16)??""};return{values:t,original:{...t},saving:!1,importing:!1,error:null,success:null,fieldErrors:{},showAdvanced:!!(e!=null&&e.banner||e!=null&&e.website||e!=null&&e.nip05||e!=null&&e.lud16)}}async function f0(e,t,n){await ea(e,t,n),await ee(e,!0)}async function g0(e,t){await pc(e,t),await ee(e,!0)}async function m0(e,t){await hc(e,t),await ee(e,!0)}async function y0(e,t){await fc(e,t)}async function v0(e,t){await gc(e,t)}async function b0(e){await hh(e),await Ue(e),await ee(e,!0)}async function w0(e){await Ue(e),await ee(e,!0)}function k0(e){if(!Array.isArray(e))return{};const t={};for(const n of e){if(typeof n!="string")continue;const[i,...s]=n.split(":");if(!i||s.length===0)continue;const o=i.trim(),a=s.join(":").trim();o&&a&&(t[o]=a)}return t}function Iu(e){var n,i,s;return((s=(((i=(n=e.channelsSnapshot)==null?void 0:n.channelAccounts)==null?void 0:i.nostr)??[])[0])==null?void 0:s.accountId)??e.nostrProfileAccountId??"default"}function Lu(e,t=""){return`/api/channels/nostr/${encodeURIComponent(e)}/profile${t}`}function x0(e,t,n){e.nostrProfileAccountId=t,e.nostrProfileFormState=h0(n??void 0)}function $0(e){e.nostrProfileFormState=null,e.nostrProfileAccountId=null}function S0(e,t,n){const i=e.nostrProfileFormState;i&&(e.nostrProfileFormState={...i,values:{...i.values,[t]:n},fieldErrors:{...i.fieldErrors,[t]:""}})}function A0(e){const t=e.nostrProfileFormState;t&&(e.nostrProfileFormState={...t,showAdvanced:!t.showAdvanced})}async function C0(e){const t=e.nostrProfileFormState;if(!t||t.saving)return;const n=Iu(e);e.nostrProfileFormState={...t,saving:!0,error:null,success:null,fieldErrors:{}};try{const i=await fetch(Lu(n),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t.values)}),s=await i.json().catch(()=>null);if(!i.ok||(s==null?void 0:s.ok)===!1||!s){const o=(s==null?void 0:s.error)??`Profile update failed (${i.status})`;e.nostrProfileFormState={...t,saving:!1,error:o,success:null,fieldErrors:k0(s==null?void 0:s.details)};return}if(!s.persisted){e.nostrProfileFormState={...t,saving:!1,error:"Profile publish failed on all relays.",success:null};return}e.nostrProfileFormState={...t,saving:!1,error:null,success:"Profile published to relays.",fieldErrors:{},original:{...t.values}},await ee(e,!0)}catch(i){e.nostrProfileFormState={...t,saving:!1,error:`Profile update failed: ${String(i)}`,success:null}}}async function E0(e){const t=e.nostrProfileFormState;if(!t||t.importing)return;const n=Iu(e);e.nostrProfileFormState={...t,importing:!0,error:null,success:null};try{const i=await fetch(Lu(n,"/import"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({autoMerge:!0})}),s=await i.json().catch(()=>null);if(!i.ok||(s==null?void 0:s.ok)===!1||!s){const c=(s==null?void 0:s.error)??`Profile import failed (${i.status})`;e.nostrProfileFormState={...t,importing:!1,error:c,success:null};return}const o=s.merged??s.imported??null,a=o?{...t.values,...o}:t.values,r=!!(a.banner||a.website||a.nip05||a.lud16);e.nostrProfileFormState={...t,importing:!1,values:a,error:null,success:s.saved?"Profile imported from relays. Review and publish.":"Profile imported. Review and publish.",showAdvanced:r},s.saved&&await ee(e,!0)}catch(i){e.nostrProfileFormState={...t,importing:!1,error:`Profile import failed: ${String(i)}`,success:null}}}async function T0(e){if(e.client){e.authBusy=!0,e.authMessage=null;try{const t=await e.client.request("auth.status",{});e.authConnected=t.connected,e.authExpiresIn=t.expiresIn??null,e.authMessage=t.message??null,t.connected&&(e.setupStep="whatsapp")}catch(t){e.authConnected=!1,e.authMessage=t instanceof Error?t.message:"Failed to check auth status"}finally{e.authBusy=!1}}}async function _0(e){if(e.client){e.authBusy=!0,e.authMessage=null,e.authUrl=null,e.authConnected=null;try{const t=await e.client.request("auth.oauth.start",{provider:"anthropic"});e.authUrl=t.authUrl,e.authMessage=t.message??"Sign in with your Claude Pro account"}catch(t){e.authConnected=!1,e.authMessage=t instanceof Error?t.message:"Failed to start auth flow"}finally{e.authBusy=!1}}}async function M0(e,t){if(e.client){e.authBusy=!0,e.authMessage="Verifying code...";try{await e.client.request("auth.oauth.code",{code:t});const n=await e.client.request("auth.oauth.wait",{timeoutMs:3e4});n.connected?(e.authConnected=!0,e.authMessage=n.message??"Connected to Claude!",e.authUrl=null,e.authCodeInput=""):e.authMessage=n.message??"Still waiting for authorization..."}catch(n){e.authConnected=!1,e.authMessage=n instanceof Error?n.message:"Verification failed"}finally{e.authBusy=!1}}}function P0(e,t){e.authCodeInput=t}function I0(e){e.setupStep="whatsapp"}async function L0(e){if(e.client){e.licenseBusy=!0,e.licenseMessage=null;try{const t=await e.client.request("license.status",{});e.licenseDeviceId=t.deviceId??null,e.licenseStoredKey=t.key??null,t.licensed?(e.licenseValid=!0,e.licenseTier=t.tier??null,e.setupStep="auth"):(e.licenseValid=null,e.setupStep="license")}catch(t){const n=t instanceof Error?t.message:String(t);n.includes("unknown method")?(e.licenseValid=!0,e.setupStep="auth"):(e.licenseValid=null,e.licenseMessage=n,e.setupStep="license")}finally{e.licenseBusy=!1}}}async function R0(e){if(e.client&&e.licenseKey.trim()){e.licenseBusy=!0,e.licenseMessage=null,e.licenseValid=null;try{const t=await e.client.request("license.activate",{key:e.licenseKey.trim()});t.valid?(e.licenseValid=!0,e.licenseMessage=t.message??"License activated",e.licenseTier=t.tier??null,setTimeout(()=>{e.setupStep="auth"},1500)):(e.licenseValid=!1,e.licenseMessage=t.message??"Invalid license key")}catch(t){e.licenseValid=!1,e.licenseMessage=t instanceof Error?t.message:"Activation failed"}finally{e.licenseBusy=!1}}}async function D0(e){if(e.client){e.licenseBusy=!0;try{await e.client.request("license.remove",{}),e.licenseValid=null,e.licenseKey="",e.licenseTier=null,e.licenseMessage=null,e.setupStep="license"}catch(t){e.licenseMessage=t instanceof Error?t.message:"Failed to remove license"}finally{e.licenseBusy=!1}}}function B0(e,t){e.licenseKey=t}async function N0(e){var t,n;if(!(!e.client||!e.connected)&&!e.gatewayHealthLoading){e.gatewayHealthLoading=!0,(t=e.requestUpdate)==null||t.call(e);try{const i=await e.client.request("health",{probe:!0});e.gatewayHealthy=i.ok===!0,e.gatewayHealthMessage=i.ok?`Healthy${i.durationMs?` (${i.durationMs}ms)`:""}`:"Unhealthy"}catch(i){e.gatewayHealthy=!1,e.gatewayHealthMessage=`Error: ${String(i)}`}finally{e.gatewayHealthLoading=!1,(n=e.requestUpdate)==null||n.call(e)}}}async function O0(e){var t,n,i;if(!(!e.client||e.gatewayRestartBusy)){e.gatewayRestartBusy=!0,e.gatewayHealthMessage="Restarting...",(t=e.requestUpdate)==null||t.call(e);try{const s=await e.client.request("gateway.restart",{reason:"Manual restart from setup page",delayMs:1e3});if(s.ok&&((n=s.restart)!=null&&n.ok))e.gatewayHealthMessage="Restarting...",setTimeout(()=>{window.location.reload()},3e3);else throw new Error("Restart not scheduled")}catch(s){e.gatewayHealthMessage=`Restart failed: ${String(s)}`,e.gatewayRestartBusy=!1,(i=e.requestUpdate)==null||i.call(e)}}}var F0=Object.defineProperty,U0=Object.getOwnPropertyDescriptor,y=(e,t,n,i)=>{for(var s=i>1?void 0:i?U0(t,n):t,o=e.length-1,a;o>=0;o--)(a=e[o])&&(s=(i?a(t,n,s):a(s))||s);return i&&s&&F0(t,n,s),s};const mo=vp();function W0(){if(!window.location.search)return!1;const t=new URLSearchParams(window.location.search).get("onboarding");if(!t)return!1;const n=t.trim().toLowerCase();return n==="1"||n==="true"||n==="yes"||n==="on"}function K0(){const e=window.location.pathname;if(e==="/setup"||e.endsWith("/setup"))return!0;if(!window.location.search)return!1;const n=new URLSearchParams(window.location.search).get("setup");if(!n)return!1;const i=n.trim().toLowerCase();return i==="1"||i==="true"||i==="yes"||i==="on"}function z0(){const e=window.location.pathname;return e==="/files"||e.endsWith("/files")}function H0(){const e=window.location.pathname;return e==="/browser"||e.endsWith("/browser")}function q0(){const e=window.location.pathname;return e==="/admins"||e.endsWith("/admins")}function j0(){const e=window.location.pathname;return e==="/contacts"||e.endsWith("/contacts")}function G0(){const e=window.location.pathname;return e==="/chat"||e.endsWith("/chat")}function V0(){const e=window.location.pathname;return e==="/advanced"||e.endsWith("/advanced")}let m=class extends Gt{constructor(){super(...arguments),this.settings=Ls(),this.password="",this.tab="chat",this.onboarding=W0(),this.setup=K0(),this.filesPage=z0(),this.browserPage=H0(),this.adminsPage=q0(),this.contactsPage=j0(),this.chatPage=G0(),this.advancedPage=V0(),this.advancedTab="cron",this.publicChat=!!window.__TASKMASTER_PUBLIC_CHAT__,this.publicChatConfig=window.__TASKMASTER_PUBLIC_CHAT_CONFIG__??{},this.publicChatSessionKey=null,this.publicChatAuthenticated=!1,this.publicChatAuthStep="idle",this.connected=!1,this.accessState=ku,this.theme=this.settings.theme??"system",this.themeResolved="dark",this.hello=null,this.lastError=null,this.eventLog=[],this.eventLogBuffer=[],this.toolStreamSyncTimer=null,this.sidebarCloseTimer=null,this.assistantName=mo.name,this.assistantAvatar=mo.avatar,this.assistantAgentId=mo.agentId??null,this.sessionKey=this.settings.sessionKey,this.chatLoading=!1,this.chatSending=!1,this.chatMessage="",this.chatMessages=[],this.chatHistoryTotal=0,this.chatHistoryHasMore=!1,this.chatLoadingOlder=!1,this.chatToolMessages=[],this.chatStream=null,this.chatInterimText=null,this.chatSuggestions=[],this.chatStreamStartedAt=null,this.chatRunId=null,this.compactionStatus=null,this.chatAvatarUrl=null,this.chatThinkingLevel=null,this.chatModelProvider=null,this.chatModel=null,this.chatModelCatalog=[],this.chatVerboseLevel=null,this.chatFillerEnabled=null,this.chatQueue=[],this.chatAttachments=[],this.sidebarOpen=!1,this.sidebarContent=null,this.sidebarError=null,this.splitRatio=this.settings.splitRatio,this.nodesLoading=!1,this.nodes=[],this.devicesLoading=!1,this.devicesError=null,this.devicesList=null,this.execApprovalsLoading=!1,this.execApprovalsSaving=!1,this.execApprovalsDirty=!1,this.execApprovalsSnapshot=null,this.execApprovalsForm=null,this.execApprovalsSelectedAgent=null,this.execApprovalsTarget="gateway",this.execApprovalsTargetNodeId=null,this.execApprovalQueue=[],this.execApprovalBusy=!1,this.execApprovalError=null,this.configLoading=!1,this.configRaw=`{
4675
4677
  }
4676
4678
  `,this.configRawOriginal="",this.configValid=null,this.configIssues=[],this.configSaving=!1,this.configApplying=!1,this.updateRunning=!1,this.applySessionKey=this.settings.lastActiveSessionKey,this.configSnapshot=null,this.configSchema=null,this.configSchemaVersion=null,this.configSchemaLoading=!1,this.configUiHints={},this.configForm=null,this.configFormOriginal=null,this.configFormDirty=!1,this.configFormMode="form",this.configSearchQuery="",this.configActiveSection=null,this.configActiveSubsection=null,this.channelsLoading=!1,this.channelsSnapshot=null,this.channelsError=null,this.channelsLastSuccess=null,this.whatsappLoginMessage=null,this.whatsappLoginQrDataUrl=null,this.whatsappLoginConnected=null,this.whatsappBusy=!1,this.whatsappActiveQrAccountId=null,this.whatsappPairedPhone=null,this.addingWhatsAppAccount=!1,this.newWhatsAppAccountName="",this.whatsappAccountError=null,this.whatsappAccountSaving=!1,this.whatsappSettingsOpen=!1,this.publicChatToggleBusy=!1,this.publicChatGreetingBusy=!1,this.publicChatEmailBusy=!1,this.publicChatSettingsOpen=!1,this.publicChatWidgetModalOpen=!1,this.brandingBusy=!1,this.brandingExpanded=!1,this.tailscaleStatus=null,this.tailscaleBusy=!1,this.tailscaleAuthUrl=null,this.tailscaleError=null,this.tailscaleServeEnableUrl=null,this.tailscaleFunnelEnableUrl=null,this.tailscaleDisableConfirm=!1,this.tailscaleConnectProgress=0,this.tailscaleConnectMessage="",this.tailscaleConnectSuccess=!1,this.wifiStatus=null,this.wifiNetworks=[],this.wifiBusy=!1,this.wifiError=null,this.wifiPassword="",this.wifiSelectedSsid=null,this.networkPort=null,this.networkHostname="",this.networkPortInput="",this.networkHostnameInput="",this.networkModalOpen=!1,this.networkBusy=!1,this.networkError=null,this.networkSuccess=null,this.wifiModalOpen=!1,this.licenseKey="",this.licenseBusy=!1,this.licenseValid=null,this.licenseMessage=null,this.licenseTier=null,this.licenseDeviceId=null,this.licenseStoredKey=null,this.licenseRemoveConfirm=!1,this.authConnected=null,this.authBusy=!1,this.authMessage=null,this.authUrl=null,this.authCodeInput="",this.authExpiresIn=null,this.setupStep="license",this.gatewayHealthy=null,this.gatewayHealthLoading=!1,this.gatewayHealthMessage=null,this.gatewayRestartBusy=!1,this.updateAvailable=null,this.currentVersion=null,this.latestVersion=null,this.updateChecking=!1,this.updateMessage=null,this.updateProgressSteps=[],this.updateLastResult=null,this.uninstallConfirm=!1,this.uninstallBusy=!1,this.uninstallDone=!1,this.uninstallError=null,this.uninstallConfirmText="",this.nostrProfileFormState=null,this.nostrProfileAccountId=null,this.presenceLoading=!1,this.presenceEntries=[],this.presenceError=null,this.presenceStatus=null,this.agentsLoading=!1,this.agentsList=null,this.agentsError=null,this.sessionsLoading=!1,this.sessionsResult=null,this.sessionsError=null,this.cronLoading=!1,this.cronJobs=[],this.cronStatus=null,this.cronError=null,this.cronForm={...l0},this.cronRunsJobId=null,this.cronRuns=[],this.cronBusy=!1,this.cronNewEventModal=!1,this.cronDetailJobId=null,this.cronEditJobId=null,this.cronPendingDeleteId=null,this.cronRunModalJobId=null,this.cronRunModalJobName="",this.cronRunResult=null,this.openingHoursLoading=!1,this.openingHoursError=null,this.openingHoursBusy=!1,this.openingHoursForm=Wa(),this.browserScreencastActive=!1,this.browserScreencastFrame=null,this.browserScreencastMetadata=null,this.browserHandoffPending=!1,this.browserHandoffReason=null,this.browserHandoffId=null,this.browserInputMode=!1,this.browserFullscreen=!1,this.browserLoading=!1,this.browserError=null,this.filesLoading=!1,this.filesTree=[],this.filesRoot="",this.filesError=null,this.filesSelectedPath=null,this.filesSelectedPaths=new Set,this.filesPreviewContent=null,this.filesPreviewLoading=!1,this.filesPreviewBinary=!1,this.filesPreviewSize=null,this.filesExpandedDirs=new Set,this.filesCurrentDir=".",this.filesPendingDeletePath=null,this.filesMessage=null,this.filesUploadBusy=!1,this.filesReindexBusy=!1,this.filesMemoryStatus=null,this.embeddingDownloading=!1,this.embeddingPollTimer=null,this.filesSearchQuery="",this.filesSearchResults=null,this.filesSearchLoading=!1,this.filesSearchAgentId=null,this.filesResolvedAgentId=void 0,this.auditEntries=[],this.auditLoading=!1,this.auditModalOpen=!1,this.skillsLoading=!1,this.skillsReport=null,this.skillsError=null,this.skillsFilter="",this.skillsTypeFilter="all",this.skillEdits={},this.skillsBusyKey=null,this.skillMessages={},this.skillDetail=null,this.skillDetailTab="",this.skillAddModal=!1,this.skillAddForm={name:"",skillContent:"",references:[]},this.skillAddFormSource="draft",this.skillEditTab="SKILL.md",this.skillDrafts=[],this.adminsLoading=!1,this.adminPhones=[],this.adminsError=null,this.adminsSaving=!1,this.adminsNewPhone="",this.contactsLoading=!1,this.contactsSaving=!1,this.contactsRecords=[],this.contactsError=null,this.contactsSearchQuery="",this.contactsEditingId=null,this.contactsShowAddForm=!1,this.contactsNewPhone="",this.contactsNewName="",this.contactsDeleteConfirmId=null,this.contactsAddFieldForId=null,this.contactsAddFieldKey="",this.contactsAddFieldValue="",this.imessageEnableConfirm=!1,this.imessageEnabling=!1,this.infoModalOpen=null,this.remoteAccessQrDataUrl=null,this.publicChatQrDataUrl=null,this.workspaces=[],this.workspacesLoading=!1,this.workspacesError=null,this.selectedWorkspace=null,this.addingWorkspace=!1,this.newWorkspaceName="",this.newWorkspacePath="",this.newWorkspacePin="",this.accountPinModalOpen=!1,this.accountPinBusy=!1,this.accountPinError=null,this.accountPinSuccess=null,this.apiKeyProviders=[],this.apiKeyModalOpen=!1,this.apiKeyBusy=!1,this.apiKeyError=null,this.apiKeySuccess=null,this.apiKeySavingProvider=null,this.authApiKeyMode=!1,this.authApiKeyInput="",this.authApiKeyBusy=!1,this.authApiKeyError=null,this.pinChanging=null,this.pinChangeBusy=!1,this.pinChangeError=null,this.loginChangePinMode=!1,this.changePinBusy=!1,this.changePinError=null,this.changePinSuccess=null,this.workspaceSaving=!1,this.workspaceRemoveConfirm=null,this.renamingWorkspace=!1,this.renameWorkspaceName="",this.debugLoading=!1,this.debugStatus=null,this.debugHealth=null,this.debugModels=[],this.debugHeartbeat=null,this.debugCallMethod="",this.debugCallParams="{}",this.debugCallResult=null,this.debugCallError=null,this.logsLoading=!1,this.logsError=null,this.logsFile=null,this.logsEntries=[],this.logsFilterText="",this.logsLevelFilters={...r0},this.logsAutoFollow=!0,this.logsTruncated=!1,this.logsCursor=null,this.logsLastFetchAt=null,this.logsLimit=500,this.logsMaxBytes=25e4,this.logsAtBottom=!0,this.logsSubTab="session",this.logsChipsExpanded=!1,this.sessionLogsLoading=!1,this.sessionLogsError=null,this.sessionLogsEntries=[],this.sessionLogsFilterText="",this.sessionLogsTypeFilters={user:!0,assistant:!0,tool:!0,tool_call:!0,tool_result:!0,thinking:!0,error:!0,system:!0},this.sessionLogsAgentFilters={},this.sessionLogsAgents=[],this.sessionLogsAutoFollow=!0,this.sessionLogsChipsExpanded=!1,this.sessionLogsExpandedIds=new Set,this.sessionLogsCursors={},this.sessionLogsLastFetchAt=null,this.sessionLogsAtBottom=!0,this.client=null,this.chatScrollFrame=null,this.chatScrollTimeout=null,this.chatHasAutoScrolled=!1,this.chatUserNearBottom=!0,this.onLoadOlder=()=>this.handleLoadOlderChat(),this.nodesPollInterval=null,this.logsPollInterval=null,this.sessionLogsPollInterval=null,this.debugPollInterval=null,this.auditPollInterval=null,this.logsScrollFrame=null,this.toolStreamById=new Map,this.toolStreamOrder=[],this.basePath="",this.popStateHandler=()=>Wf(this),this.themeMedia=null,this.themeMediaHandler=null,this.topbarObserver=null,this._beforeUnloadHandler=()=>{var t;bo();const e=this.selectedWorkspace??((t=this.publicChatConfig)==null?void 0:t.accountId)??"";e&&Wn(e,this.sessionKey,this.chatMessage)}}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),c0(this),window.addEventListener("beforeunload",this._beforeUnloadHandler)}firstUpdated(){d0(this)}disconnectedCallback(){window.removeEventListener("beforeunload",this._beforeUnloadHandler),this.stopEmbeddingPoll(),u0(this),super.disconnectedCallback()}startEmbeddingPoll(){if(this.embeddingPollTimer!=null)return;const e=async()=>{if(!(!this.client||!this.connected)){try{const t=await this.client.request("memory.status",{});if((t==null?void 0:t.embeddingState)==="downloading")this.embeddingDownloading=!0;else{this.embeddingDownloading&&(this.embeddingDownloading=!1),this.stopEmbeddingPoll();return}}catch{this.embeddingDownloading=!1,this.stopEmbeddingPoll();return}this.embeddingPollTimer=window.setTimeout(e,3e3)}};e()}stopEmbeddingPoll(){this.embeddingPollTimer!=null&&(window.clearTimeout(this.embeddingPollTimer),this.embeddingPollTimer=null)}updated(e){p0(this,e)}connect(){De(this)}handleChatScroll(e){ih(this,e)}handleLogsScroll(e){oh(this,e)}handleSessionLogsScroll(e){ah(this,e)}exportLogs(e,t){lh(e,t)}exportSessionLogs(e,t){ch(e,t)}resetToolStream(){Zo(this)}resetChatScroll(){rh(this)}async loadAssistantIdentity(){await Ho(this)}applySettings(e){rt(this,e)}setTab(e){Rf(this,e)}setTheme(e,t){Df(this,e,t)}async loadOverview(){await rd(this)}async loadCron(){var t;const e=this.getSelectedWorkspaceInfo();this.workspaceAgentIds=((t=e==null?void 0:e.agents)==null?void 0:t.map(n=>n.id))??void 0,this.accountId=(e==null?void 0:e.whatsappAccountId)??void 0,this.cronForm={...this.cronForm,accountId:(e==null?void 0:e.whatsappAccountId)??void 0},await ya(this)}async handleAbortChat(){await cd(this)}removeQueuedMessage(e){qf(this,e)}async handleSendChat(e,t){await jf(this,e,t)}async handleWhatsAppStart(e,t){await f0(this,e,t)}async handleWhatsAppWait(e){await g0(this,e)}async handleWhatsAppLogout(e){await m0(this,e)}async handleAddWhatsAppAccount(e){await y0(this,e)}async handleRemoveWhatsAppAccount(e){await v0(this,e)}async handleAccessCheck(){await Rl(this)}async handlePinSubmit(e,t){await Uk(this,e,t),this.accessState.authenticated&&this.accessState.workspace&&this.handleWorkspaceSelect(this.accessState.workspace)}async handleSetMasterPin(e){await Wk(this,e)}async handleLogout(){await zk(this)}toggleChangePinMode(){this.loginChangePinMode=!this.loginChangePinMode,this.changePinError=null,this.changePinSuccess=null}async handleChangePin(e,t,n){if(this.client){this.changePinBusy=!0,this.changePinError=null,this.changePinSuccess=null;try{const i=await this.client.request("access.verify",{account:e,pin:t});if(!i.ok){this.changePinError=i.message??"Incorrect current PIN",this.changePinBusy=!1;return}e==="__master__"?await this.client.request("access.setMasterPin",{pin:n}):await this.client.request("access.setAccountPin",{workspace:e,pin:n}),this.changePinSuccess="PIN changed successfully",this.changePinBusy=!1,setTimeout(()=>{this.loginChangePinMode=!1,this.changePinSuccess=null},2e3)}catch{this.changePinError="Failed to change PIN",this.changePinBusy=!1}}}async handleAccountPinSave(e,t,n){if(this.client){this.accountPinBusy=!0,this.accountPinError=null,this.accountPinSuccess=null;try{if(t!==null){const i=await this.client.request("access.verify",{account:e,pin:t});if(!i.ok){this.accountPinError=i.message??"Incorrect current PIN",this.accountPinBusy=!1;return}}await this.client.request("access.setAccountPin",{workspace:e,pin:n}),this.accountPinSuccess="PIN saved",this.accountPinBusy=!1,await Rl(this),setTimeout(()=>{this.accountPinModalOpen=!1,this.accountPinSuccess=null,this.accountPinError=null},1500)}catch{this.accountPinError="Failed to save PIN",this.accountPinBusy=!1}}}async handleLicenseStatusCheck(){await L0(this)}async handleLicenseActivate(){await R0(this)}async handleLicenseRemove(){await D0(this)}handleLicenseKeyChange(e){B0(this,e)}async handleAuthStatusCheck(){await T0(this)}async handleAuthStart(){await _0(this)}async handleAuthSubmitCode(e){await M0(this,e)}handleAuthCodeChange(e){P0(this,e)}handleSkipToWhatsApp(){I0(this)}async handleGatewayHealthCheck(){await N0(this)}async handleGatewayRestart(){await O0(this)}async handleUpdateCheck(){await vu(this)}async handleUpdateRun(){await kk(this)}handleUpdateDismissResult(){Sk(this)}handleUninstallConfirm(){this.uninstallConfirm=!0,this.uninstallConfirmText=""}handleUninstallCancel(){this.uninstallConfirm=!1,this.uninstallConfirmText="",this.uninstallError=null}handleUninstallConfirmTextChange(e){this.uninstallConfirmText=e}async handleUninstallRun(){const{runUninstall:e}=await ae(async()=>{const{runUninstall:t}=await Promise.resolve().then(()=>Lr);return{runUninstall:t}},void 0,import.meta.url);await e(this)}handleUninstallDismiss(){ae(async()=>{const{clearUninstallDone:e}=await Promise.resolve().then(()=>Lr);return{clearUninstallDone:e}},void 0,import.meta.url).then(({clearUninstallDone:e})=>{e()}),this.uninstallDone=!1,this.uninstallConfirm=!1,this.uninstallConfirmText=""}async loadAuditEntries(){await td(this)}async clearAudit(){await ff(this),this.auditModalOpen=!1}handleFilesLoad(){var n;const e=this.getSelectedWorkspaceInfo();this.workspaceAgentIds=((n=e==null?void 0:e.agents)==null?void 0:n.map(i=>i.id))??void 0;const t=this.resolveFilesAgentId();this.filesResolvedAgentId=t,an(this,t),cs(this,t)}handleAdminsLoad(){const e=this.resolveAdminAgentId();ae(async()=>{const{loadAdmins:t}=await Promise.resolve().then(()=>jk);return{loadAdmins:t}},void 0,import.meta.url).then(({loadAdmins:t})=>{t(this,e)})}resolveAdminAgentId(){const e=this.getSelectedWorkspaceInfo();if(!e)return;const t=e.agents.find(n=>n.id.endsWith("-admin")||n.id==="admin");return t==null?void 0:t.id}resolveFilesAgentId(){var n;const e=this.getSelectedWorkspaceInfo();if(!e)return;const t=e.agents.find(i=>i.id.endsWith("-admin")||i.id==="admin");return(t==null?void 0:t.id)??((n=e.agents[0])==null?void 0:n.id)}handleChatLoad(){const e=this.resolveAdminAgentId();if(e){const t=`agent:${e}:main`;t!==this.sessionKey&&(this.sessionKey=t,this.chatMessages=[],this.chatStream=null,this.chatInterimText=null,this.chatRunId=null,this.chatSuggestions=[],this.resetChatScroll(),this.applySettings({...this.settings,sessionKey:t,lastActiveSessionKey:t}),this.loadAssistantIdentity())}ae(async()=>{const{loadChatHistory:t}=await Promise.resolve().then(()=>Oi);return{loadChatHistory:t}},void 0,import.meta.url).then(({loadChatHistory:t})=>{t(this).then(()=>{nn(this,!0)})})}async handleLoadOlderChat(){if(this.chatLoadingOlder||!this.chatHistoryHasMore)return;const e=sh(this),{loadOlderChatHistory:t}=await ae(async()=>{const{loadOlderChatHistory:i}=await Promise.resolve().then(()=>Oi);return{loadOlderChatHistory:i}},void 0,import.meta.url);await t(this)&&e&&(await this.updateComplete,e())}handleAdvancedLoad(){var t;const e=this.getSelectedWorkspaceInfo();this.workspaceAgentIds=((t=e==null?void 0:e.agents)==null?void 0:t.map(n=>n.id))??void 0,this.sessionLogsEntries=[],this.sessionLogsCursors={},this.sessionLogsAgents=[],this.advancedTab==="cron"&&this.loadCron(),this.advancedTab==="opening-hours"&&ae(async()=>{const{loadOpeningHours:n}=await Promise.resolve().then(()=>Hk);return{loadOpeningHours:n}},void 0,import.meta.url).then(({loadOpeningHours:n})=>{n(this)}),this.advancedTab==="logs"&&(this.logsSubTab==="session"?ae(async()=>{const{loadSessionLogs:n}=await Promise.resolve().then(()=>ed);return{loadSessionLogs:n}},void 0,import.meta.url).then(({loadSessionLogs:n})=>{n(this,{reset:!0})}):ae(async()=>{const{loadLogs:n}=await Promise.resolve().then(()=>Ch);return{loadLogs:n}},void 0,import.meta.url).then(({loadLogs:n})=>{n(this,{reset:!0})})),this.advancedTab==="skills"&&ae(async()=>{const{loadSkills:n}=await Promise.resolve().then(()=>rf);return{loadSkills:n}},void 0,import.meta.url).then(({loadSkills:n})=>{n(this,{clearMessages:!0})})}async handleChannelConfigSave(){await b0(this)}async handleChannelConfigReload(){await w0(this)}handleNostrProfileEdit(e,t){x0(this,e,t)}handleNostrProfileCancel(){$0(this)}handleNostrProfileFieldChange(e,t){S0(this,e,t)}async handleNostrProfileSave(){await C0(this)}async handleNostrProfileImport(){await E0(this)}handleNostrProfileToggleAdvanced(){A0(this)}async handleExecApprovalDecision(e){const t=this.execApprovalQueue[0];if(!(!t||!this.client||this.execApprovalBusy)){this.execApprovalBusy=!0,this.execApprovalError=null;try{await this.client.request("exec.approval.resolve",{id:t.id,decision:e}),this.execApprovalQueue=this.execApprovalQueue.filter(n=>n.id!==t.id)}catch(n){this.execApprovalError=`Exec approval failed: ${String(n)}`}finally{this.execApprovalBusy=!1}}}handleOpenSidebar(e){this.sidebarCloseTimer!=null&&(window.clearTimeout(this.sidebarCloseTimer),this.sidebarCloseTimer=null),this.sidebarContent=e,this.sidebarError=null,this.sidebarOpen=!0}handleCloseSidebar(){this.sidebarOpen=!1,this.sidebarCloseTimer!=null&&window.clearTimeout(this.sidebarCloseTimer),this.sidebarCloseTimer=window.setTimeout(()=>{this.sidebarOpen||(this.sidebarContent=null,this.sidebarError=null,this.sidebarCloseTimer=null)},200)}handleSplitRatioChange(e){const t=Math.max(.4,Math.min(.7,e));this.splitRatio=t,this.applySettings({...this.settings,splitRatio:t})}handleAdminsNewPhoneChange(e){this.adminsNewPhone=e,this.adminsError&&(this.adminsError=null)}handleContactsLoad(){const e=this.selectedWorkspace??void 0;ae(async()=>{const{loadContacts:t}=await Promise.resolve().then(()=>Gk);return{loadContacts:t}},void 0,import.meta.url).then(({loadContacts:t})=>{t(this,e)})}handleContactsNewPhoneChange(e){this.contactsNewPhone=e,this.contactsError&&(this.contactsError=null)}handleContactsNewNameChange(e){this.contactsNewName=e,this.contactsError&&(this.contactsError=null)}async handleWorkspacesLoad(){const{loadWorkspaces:e}=await ae(async()=>{const{loadWorkspaces:t}=await Promise.resolve().then(()=>xi);return{loadWorkspaces:t}},void 0,import.meta.url);await e(this)}async handleWorkspaceCreate(e,t){const{createWorkspace:n}=await ae(async()=>{const{createWorkspace:s}=await Promise.resolve().then(()=>xi);return{createWorkspace:s}},void 0,import.meta.url),{loadChannels:i}=await ae(async()=>{const{loadChannels:s}=await Promise.resolve().then(()=>kh);return{loadChannels:s}},void 0,import.meta.url);await n(this,{name:e,workspacePath:t,onCreated:s=>{if(!s.whatsappAccountId)return;const o=s.whatsappAccountId;this.handleWorkspaceSelect(e),setTimeout(async()=>{try{await i(this,!0),await this.handleWhatsAppStart(!0,o),this.whatsappLoginQrDataUrl&&(await this.handleWhatsAppWait(o),await i(this,!0),await this.handleWorkspacesLoad())}catch{}this.requestUpdate()},3e3)}})}async handleWorkspaceRemove(e){const{removeWorkspace:t}=await ae(async()=>{const{removeWorkspace:n}=await Promise.resolve().then(()=>xi);return{removeWorkspace:n}},void 0,import.meta.url);await t(this,e)}handleWorkspaceRenameStart(){const e=this.getSelectedWorkspaceInfo();this.renameWorkspaceName=(e==null?void 0:e.displayName)??(e==null?void 0:e.name)??"",this.renamingWorkspace=!0}handleWorkspaceRenameCancel(){this.renamingWorkspace=!1,this.renameWorkspaceName=""}async handleWorkspaceRename(e,t){const{renameWorkspace:n}=await ae(async()=>{const{renameWorkspace:i}=await Promise.resolve().then(()=>xi);return{renameWorkspace:i}},void 0,import.meta.url);await n(this,e,t),this.renamingWorkspace=!1,this.renameWorkspaceName=""}handleWorkspaceSelect(e){bo(),this.selectedWorkspace&&Wn(this.selectedWorkspace,this.sessionKey,this.chatMessage),this.selectedWorkspace=e,this.publicChatQrDataUrl=null,localStorage.setItem("taskmaster-selected-workspace",e),Tn(e),br(e),this.settings=Ls(),this.chatMessage=Kn(e,this.settings.sessionKey),this.chatAttachments=[],this.chatStream=null,this.chatInterimText=null,this.chatSuggestions=[],this.chatStreamStartedAt=null,this.chatRunId=null,this.chatQueue=[],this.lastError=null,this.reloadCurrentPageData()}getSelectedWorkspaceInfo(){return this.selectedWorkspace?this.workspaces.find(e=>e.name===this.selectedWorkspace)??null:null}reloadCurrentPageData(){this.loadAuditEntries(),this.adminsPage?this.handleAdminsLoad():this.contactsPage?this.handleContactsLoad():this.filesPage?this.handleFilesLoad():this.chatPage?this.handleChatLoad():this.advancedPage&&this.handleAdvancedLoad()}initWorkspaceSelection(){if(this.workspaces.length===0){this.reloadCurrentPageData();return}const e=localStorage.getItem("taskmaster-selected-workspace"),t=e?this.workspaces.find(n=>n.name===e):null;if(t)this.selectedWorkspace=t.name;else{const n=this.workspaces.find(i=>i.isDefault)??this.workspaces[0];this.selectedWorkspace=n.name,localStorage.setItem("taskmaster-selected-workspace",n.name)}Tn(this.selectedWorkspace),br(this.selectedWorkspace),this.settings=Ls(),this.chatMessage=Kn(this.selectedWorkspace,this.settings.sessionKey),this.reloadCurrentPageData()}render(){return u`${s0(this)}${this.auditModalOpen?a0(this.auditEntries,()=>this.clearAudit(),()=>{this.auditModalOpen=!1}):w}`}};y([v()],m.prototype,"settings",2);y([v()],m.prototype,"password",2);y([v()],m.prototype,"tab",2);y([v()],m.prototype,"onboarding",2);y([v()],m.prototype,"setup",2);y([v()],m.prototype,"filesPage",2);y([v()],m.prototype,"browserPage",2);y([v()],m.prototype,"adminsPage",2);y([v()],m.prototype,"contactsPage",2);y([v()],m.prototype,"chatPage",2);y([v()],m.prototype,"advancedPage",2);y([v()],m.prototype,"advancedTab",2);y([v()],m.prototype,"publicChat",2);y([v()],m.prototype,"publicChatConfig",2);y([v()],m.prototype,"publicChatSessionKey",2);y([v()],m.prototype,"publicChatAuthenticated",2);y([v()],m.prototype,"publicChatAuthStep",2);y([v()],m.prototype,"connected",2);y([v()],m.prototype,"accessState",2);y([v()],m.prototype,"theme",2);y([v()],m.prototype,"themeResolved",2);y([v()],m.prototype,"hello",2);y([v()],m.prototype,"lastError",2);y([v()],m.prototype,"eventLog",2);y([v()],m.prototype,"assistantName",2);y([v()],m.prototype,"assistantAvatar",2);y([v()],m.prototype,"assistantAgentId",2);y([v()],m.prototype,"sessionKey",2);y([v()],m.prototype,"chatLoading",2);y([v()],m.prototype,"chatSending",2);y([v()],m.prototype,"chatMessage",2);y([v()],m.prototype,"chatMessages",2);y([v()],m.prototype,"chatHistoryTotal",2);y([v()],m.prototype,"chatHistoryHasMore",2);y([v()],m.prototype,"chatLoadingOlder",2);y([v()],m.prototype,"chatToolMessages",2);y([v()],m.prototype,"chatStream",2);y([v()],m.prototype,"chatInterimText",2);y([v()],m.prototype,"chatSuggestions",2);y([v()],m.prototype,"chatStreamStartedAt",2);y([v()],m.prototype,"chatRunId",2);y([v()],m.prototype,"compactionStatus",2);y([v()],m.prototype,"chatAvatarUrl",2);y([v()],m.prototype,"chatThinkingLevel",2);y([v()],m.prototype,"chatModelProvider",2);y([v()],m.prototype,"chatModel",2);y([v()],m.prototype,"chatModelCatalog",2);y([v()],m.prototype,"chatVerboseLevel",2);y([v()],m.prototype,"chatFillerEnabled",2);y([v()],m.prototype,"chatQueue",2);y([v()],m.prototype,"chatAttachments",2);y([v()],m.prototype,"sidebarOpen",2);y([v()],m.prototype,"sidebarContent",2);y([v()],m.prototype,"sidebarError",2);y([v()],m.prototype,"splitRatio",2);y([v()],m.prototype,"nodesLoading",2);y([v()],m.prototype,"nodes",2);y([v()],m.prototype,"devicesLoading",2);y([v()],m.prototype,"devicesError",2);y([v()],m.prototype,"devicesList",2);y([v()],m.prototype,"execApprovalsLoading",2);y([v()],m.prototype,"execApprovalsSaving",2);y([v()],m.prototype,"execApprovalsDirty",2);y([v()],m.prototype,"execApprovalsSnapshot",2);y([v()],m.prototype,"execApprovalsForm",2);y([v()],m.prototype,"execApprovalsSelectedAgent",2);y([v()],m.prototype,"execApprovalsTarget",2);y([v()],m.prototype,"execApprovalsTargetNodeId",2);y([v()],m.prototype,"execApprovalQueue",2);y([v()],m.prototype,"execApprovalBusy",2);y([v()],m.prototype,"execApprovalError",2);y([v()],m.prototype,"configLoading",2);y([v()],m.prototype,"configRaw",2);y([v()],m.prototype,"configRawOriginal",2);y([v()],m.prototype,"configValid",2);y([v()],m.prototype,"configIssues",2);y([v()],m.prototype,"configSaving",2);y([v()],m.prototype,"configApplying",2);y([v()],m.prototype,"updateRunning",2);y([v()],m.prototype,"applySessionKey",2);y([v()],m.prototype,"configSnapshot",2);y([v()],m.prototype,"configSchema",2);y([v()],m.prototype,"configSchemaVersion",2);y([v()],m.prototype,"configSchemaLoading",2);y([v()],m.prototype,"configUiHints",2);y([v()],m.prototype,"configForm",2);y([v()],m.prototype,"configFormOriginal",2);y([v()],m.prototype,"configFormDirty",2);y([v()],m.prototype,"configFormMode",2);y([v()],m.prototype,"configSearchQuery",2);y([v()],m.prototype,"configActiveSection",2);y([v()],m.prototype,"configActiveSubsection",2);y([v()],m.prototype,"channelsLoading",2);y([v()],m.prototype,"channelsSnapshot",2);y([v()],m.prototype,"channelsError",2);y([v()],m.prototype,"channelsLastSuccess",2);y([v()],m.prototype,"whatsappLoginMessage",2);y([v()],m.prototype,"whatsappLoginQrDataUrl",2);y([v()],m.prototype,"whatsappLoginConnected",2);y([v()],m.prototype,"whatsappBusy",2);y([v()],m.prototype,"whatsappActiveQrAccountId",2);y([v()],m.prototype,"whatsappPairedPhone",2);y([v()],m.prototype,"addingWhatsAppAccount",2);y([v()],m.prototype,"newWhatsAppAccountName",2);y([v()],m.prototype,"whatsappAccountError",2);y([v()],m.prototype,"whatsappAccountSaving",2);y([v()],m.prototype,"whatsappSettingsOpen",2);y([v()],m.prototype,"publicChatToggleBusy",2);y([v()],m.prototype,"publicChatGreetingBusy",2);y([v()],m.prototype,"publicChatEmailBusy",2);y([v()],m.prototype,"publicChatSettingsOpen",2);y([v()],m.prototype,"publicChatWidgetModalOpen",2);y([v()],m.prototype,"brandingBusy",2);y([v()],m.prototype,"brandingExpanded",2);y([v()],m.prototype,"tailscaleStatus",2);y([v()],m.prototype,"tailscaleBusy",2);y([v()],m.prototype,"tailscaleAuthUrl",2);y([v()],m.prototype,"tailscaleError",2);y([v()],m.prototype,"tailscaleServeEnableUrl",2);y([v()],m.prototype,"tailscaleFunnelEnableUrl",2);y([v()],m.prototype,"tailscaleDisableConfirm",2);y([v()],m.prototype,"tailscaleConnectProgress",2);y([v()],m.prototype,"tailscaleConnectMessage",2);y([v()],m.prototype,"tailscaleConnectSuccess",2);y([v()],m.prototype,"wifiStatus",2);y([v()],m.prototype,"wifiNetworks",2);y([v()],m.prototype,"wifiBusy",2);y([v()],m.prototype,"wifiError",2);y([v()],m.prototype,"wifiPassword",2);y([v()],m.prototype,"wifiSelectedSsid",2);y([v()],m.prototype,"networkPort",2);y([v()],m.prototype,"networkHostname",2);y([v()],m.prototype,"networkPortInput",2);y([v()],m.prototype,"networkHostnameInput",2);y([v()],m.prototype,"networkModalOpen",2);y([v()],m.prototype,"networkBusy",2);y([v()],m.prototype,"networkError",2);y([v()],m.prototype,"networkSuccess",2);y([v()],m.prototype,"wifiModalOpen",2);y([v()],m.prototype,"licenseKey",2);y([v()],m.prototype,"licenseBusy",2);y([v()],m.prototype,"licenseValid",2);y([v()],m.prototype,"licenseMessage",2);y([v()],m.prototype,"licenseTier",2);y([v()],m.prototype,"licenseDeviceId",2);y([v()],m.prototype,"licenseStoredKey",2);y([v()],m.prototype,"licenseRemoveConfirm",2);y([v()],m.prototype,"authConnected",2);y([v()],m.prototype,"authBusy",2);y([v()],m.prototype,"authMessage",2);y([v()],m.prototype,"authUrl",2);y([v()],m.prototype,"authCodeInput",2);y([v()],m.prototype,"authExpiresIn",2);y([v()],m.prototype,"setupStep",2);y([v()],m.prototype,"gatewayHealthy",2);y([v()],m.prototype,"gatewayHealthLoading",2);y([v()],m.prototype,"gatewayHealthMessage",2);y([v()],m.prototype,"gatewayRestartBusy",2);y([v()],m.prototype,"updateAvailable",2);y([v()],m.prototype,"currentVersion",2);y([v()],m.prototype,"latestVersion",2);y([v()],m.prototype,"updateChecking",2);y([v()],m.prototype,"updateMessage",2);y([v()],m.prototype,"updateProgressSteps",2);y([v()],m.prototype,"updateLastResult",2);y([v()],m.prototype,"uninstallConfirm",2);y([v()],m.prototype,"uninstallBusy",2);y([v()],m.prototype,"uninstallDone",2);y([v()],m.prototype,"uninstallError",2);y([v()],m.prototype,"uninstallConfirmText",2);y([v()],m.prototype,"nostrProfileFormState",2);y([v()],m.prototype,"nostrProfileAccountId",2);y([v()],m.prototype,"presenceLoading",2);y([v()],m.prototype,"presenceEntries",2);y([v()],m.prototype,"presenceError",2);y([v()],m.prototype,"presenceStatus",2);y([v()],m.prototype,"agentsLoading",2);y([v()],m.prototype,"agentsList",2);y([v()],m.prototype,"agentsError",2);y([v()],m.prototype,"sessionsLoading",2);y([v()],m.prototype,"sessionsResult",2);y([v()],m.prototype,"sessionsError",2);y([v()],m.prototype,"cronLoading",2);y([v()],m.prototype,"cronJobs",2);y([v()],m.prototype,"cronStatus",2);y([v()],m.prototype,"cronError",2);y([v()],m.prototype,"cronForm",2);y([v()],m.prototype,"cronRunsJobId",2);y([v()],m.prototype,"cronRuns",2);y([v()],m.prototype,"cronBusy",2);y([v()],m.prototype,"cronNewEventModal",2);y([v()],m.prototype,"cronDetailJobId",2);y([v()],m.prototype,"cronEditJobId",2);y([v()],m.prototype,"cronPendingDeleteId",2);y([v()],m.prototype,"cronRunModalJobId",2);y([v()],m.prototype,"cronRunModalJobName",2);y([v()],m.prototype,"cronRunResult",2);y([v()],m.prototype,"openingHoursLoading",2);y([v()],m.prototype,"openingHoursError",2);y([v()],m.prototype,"openingHoursBusy",2);y([v()],m.prototype,"openingHoursForm",2);y([v()],m.prototype,"browserScreencastActive",2);y([v()],m.prototype,"browserScreencastFrame",2);y([v()],m.prototype,"browserScreencastMetadata",2);y([v()],m.prototype,"browserHandoffPending",2);y([v()],m.prototype,"browserHandoffReason",2);y([v()],m.prototype,"browserHandoffId",2);y([v()],m.prototype,"browserInputMode",2);y([v()],m.prototype,"browserFullscreen",2);y([v()],m.prototype,"browserLoading",2);y([v()],m.prototype,"browserError",2);y([v()],m.prototype,"filesLoading",2);y([v()],m.prototype,"filesTree",2);y([v()],m.prototype,"filesRoot",2);y([v()],m.prototype,"filesError",2);y([v()],m.prototype,"filesSelectedPath",2);y([v()],m.prototype,"filesSelectedPaths",2);y([v()],m.prototype,"filesPreviewContent",2);y([v()],m.prototype,"filesPreviewLoading",2);y([v()],m.prototype,"filesPreviewBinary",2);y([v()],m.prototype,"filesPreviewSize",2);y([v()],m.prototype,"filesExpandedDirs",2);y([v()],m.prototype,"filesCurrentDir",2);y([v()],m.prototype,"filesPendingDeletePath",2);y([v()],m.prototype,"filesMessage",2);y([v()],m.prototype,"filesUploadBusy",2);y([v()],m.prototype,"filesReindexBusy",2);y([v()],m.prototype,"filesMemoryStatus",2);y([v()],m.prototype,"embeddingDownloading",2);y([v()],m.prototype,"filesSearchQuery",2);y([v()],m.prototype,"filesSearchResults",2);y([v()],m.prototype,"filesSearchLoading",2);y([v()],m.prototype,"filesSearchAgentId",2);y([v()],m.prototype,"auditEntries",2);y([v()],m.prototype,"auditLoading",2);y([v()],m.prototype,"auditModalOpen",2);y([v()],m.prototype,"skillsLoading",2);y([v()],m.prototype,"skillsReport",2);y([v()],m.prototype,"skillsError",2);y([v()],m.prototype,"skillsFilter",2);y([v()],m.prototype,"skillsTypeFilter",2);y([v()],m.prototype,"skillEdits",2);y([v()],m.prototype,"skillsBusyKey",2);y([v()],m.prototype,"skillMessages",2);y([v()],m.prototype,"skillDetail",2);y([v()],m.prototype,"skillDetailTab",2);y([v()],m.prototype,"skillAddModal",2);y([v()],m.prototype,"skillAddForm",2);y([v()],m.prototype,"skillAddFormSource",2);y([v()],m.prototype,"skillEditTab",2);y([v()],m.prototype,"skillDrafts",2);y([v()],m.prototype,"adminsLoading",2);y([v()],m.prototype,"adminPhones",2);y([v()],m.prototype,"adminsError",2);y([v()],m.prototype,"adminsSaving",2);y([v()],m.prototype,"adminsNewPhone",2);y([v()],m.prototype,"contactsLoading",2);y([v()],m.prototype,"contactsSaving",2);y([v()],m.prototype,"contactsRecords",2);y([v()],m.prototype,"contactsError",2);y([v()],m.prototype,"contactsSearchQuery",2);y([v()],m.prototype,"contactsEditingId",2);y([v()],m.prototype,"contactsShowAddForm",2);y([v()],m.prototype,"contactsNewPhone",2);y([v()],m.prototype,"contactsNewName",2);y([v()],m.prototype,"contactsDeleteConfirmId",2);y([v()],m.prototype,"contactsAddFieldForId",2);y([v()],m.prototype,"contactsAddFieldKey",2);y([v()],m.prototype,"contactsAddFieldValue",2);y([v()],m.prototype,"imessageEnableConfirm",2);y([v()],m.prototype,"imessageEnabling",2);y([v()],m.prototype,"infoModalOpen",2);y([v()],m.prototype,"remoteAccessQrDataUrl",2);y([v()],m.prototype,"publicChatQrDataUrl",2);y([v()],m.prototype,"workspaces",2);y([v()],m.prototype,"workspacesLoading",2);y([v()],m.prototype,"workspacesError",2);y([v()],m.prototype,"selectedWorkspace",2);y([v()],m.prototype,"addingWorkspace",2);y([v()],m.prototype,"newWorkspaceName",2);y([v()],m.prototype,"newWorkspacePath",2);y([v()],m.prototype,"newWorkspacePin",2);y([v()],m.prototype,"accountPinModalOpen",2);y([v()],m.prototype,"accountPinBusy",2);y([v()],m.prototype,"accountPinError",2);y([v()],m.prototype,"accountPinSuccess",2);y([v()],m.prototype,"apiKeyProviders",2);y([v()],m.prototype,"apiKeyModalOpen",2);y([v()],m.prototype,"apiKeyBusy",2);y([v()],m.prototype,"apiKeyError",2);y([v()],m.prototype,"apiKeySuccess",2);y([v()],m.prototype,"apiKeySavingProvider",2);y([v()],m.prototype,"authApiKeyMode",2);y([v()],m.prototype,"authApiKeyInput",2);y([v()],m.prototype,"authApiKeyBusy",2);y([v()],m.prototype,"authApiKeyError",2);y([v()],m.prototype,"pinChanging",2);y([v()],m.prototype,"pinChangeBusy",2);y([v()],m.prototype,"pinChangeError",2);y([v()],m.prototype,"loginChangePinMode",2);y([v()],m.prototype,"changePinBusy",2);y([v()],m.prototype,"changePinError",2);y([v()],m.prototype,"changePinSuccess",2);y([v()],m.prototype,"workspaceSaving",2);y([v()],m.prototype,"workspaceRemoveConfirm",2);y([v()],m.prototype,"renamingWorkspace",2);y([v()],m.prototype,"renameWorkspaceName",2);y([v()],m.prototype,"debugLoading",2);y([v()],m.prototype,"debugStatus",2);y([v()],m.prototype,"debugHealth",2);y([v()],m.prototype,"debugModels",2);y([v()],m.prototype,"debugHeartbeat",2);y([v()],m.prototype,"debugCallMethod",2);y([v()],m.prototype,"debugCallParams",2);y([v()],m.prototype,"debugCallResult",2);y([v()],m.prototype,"debugCallError",2);y([v()],m.prototype,"logsLoading",2);y([v()],m.prototype,"logsError",2);y([v()],m.prototype,"logsFile",2);y([v()],m.prototype,"logsEntries",2);y([v()],m.prototype,"logsFilterText",2);y([v()],m.prototype,"logsLevelFilters",2);y([v()],m.prototype,"logsAutoFollow",2);y([v()],m.prototype,"logsTruncated",2);y([v()],m.prototype,"logsCursor",2);y([v()],m.prototype,"logsLastFetchAt",2);y([v()],m.prototype,"logsLimit",2);y([v()],m.prototype,"logsMaxBytes",2);y([v()],m.prototype,"logsAtBottom",2);y([v()],m.prototype,"logsSubTab",2);y([v()],m.prototype,"logsChipsExpanded",2);y([v()],m.prototype,"sessionLogsLoading",2);y([v()],m.prototype,"sessionLogsError",2);y([v()],m.prototype,"sessionLogsEntries",2);y([v()],m.prototype,"sessionLogsFilterText",2);y([v()],m.prototype,"sessionLogsTypeFilters",2);y([v()],m.prototype,"sessionLogsAgentFilters",2);y([v()],m.prototype,"sessionLogsAgents",2);y([v()],m.prototype,"sessionLogsAutoFollow",2);y([v()],m.prototype,"sessionLogsChipsExpanded",2);y([v()],m.prototype,"sessionLogsCursors",2);y([v()],m.prototype,"sessionLogsLastFetchAt",2);y([v()],m.prototype,"sessionLogsAtBottom",2);y([v()],m.prototype,"chatUserNearBottom",2);m=y([ql("taskmaster-app")],m);
4677
- //# sourceMappingURL=index-BWqMMgRV.js.map
4679
+ //# sourceMappingURL=index-B3nkSwMP.js.map