@rubytech/create-maxy-code 0.1.384 → 0.1.386

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 (35) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +13 -2
  3. package/payload/platform/plugins/docs/references/admin-ui.md +12 -1
  4. package/payload/server/public/assets/{AdminLoginScreens-C_h8V0Xs.js → AdminLoginScreens-oxqHKL3C.js} +1 -1
  5. package/payload/server/public/assets/{AdminShell-Dqnxpn7U.js → AdminShell-DBD6ruS1.js} +1 -1
  6. package/payload/server/public/assets/{Checkbox-Bl1WRVGb.js → Checkbox-yr8-ftrE.js} +1 -1
  7. package/payload/server/public/assets/Transcript-FX_w6no6.js +2 -0
  8. package/payload/server/public/assets/{admin-ByoqNaSf.js → admin-CQfZnuFy.js} +1 -1
  9. package/payload/server/public/assets/{browser-BXY1sNxv.js → browser-DbdPeDK1.js} +1 -1
  10. package/payload/server/public/assets/{calendar-CObRTPpU.js → calendar-CFdOhe7Q.js} +1 -1
  11. package/payload/server/public/assets/chat-BunxcNDk.js +1 -0
  12. package/payload/server/public/assets/chevron-left-Cngmu0Py.js +1 -0
  13. package/payload/server/public/assets/data-IqZlMSwG.js +1 -0
  14. package/payload/server/public/assets/{graph-BCL0fVDH.js → graph-Bluocsf_.js} +1 -1
  15. package/payload/server/public/assets/{graph-labels-C0nn9nQi.js → graph-labels-BcLJmY-v.js} +1 -1
  16. package/payload/server/public/assets/{operator-B_1qYO7m.js → operator-DjK3MBSS.js} +1 -1
  17. package/payload/server/public/assets/{page-BQEl7aZO.js → page-DQNYTb2d.js} +1 -1
  18. package/payload/server/public/assets/page-zJQTRXB2.js +32 -0
  19. package/payload/server/public/assets/{public-BzvwPHM0.js → public-CHCniosp.js} +1 -1
  20. package/payload/server/public/assets/{rotate-ccw-CHep9vl5.js → rotate-ccw-JDfwjfIL.js} +1 -1
  21. package/payload/server/public/assets/{useSubAccountSwitcher-B1Kf32uG.js → useSubAccountSwitcher-BpQ3oKiJ.js} +1 -1
  22. package/payload/server/public/browser.html +3 -3
  23. package/payload/server/public/calendar.html +4 -4
  24. package/payload/server/public/chat.html +7 -7
  25. package/payload/server/public/data.html +7 -6
  26. package/payload/server/public/graph.html +7 -7
  27. package/payload/server/public/index.html +10 -9
  28. package/payload/server/public/operator.html +9 -9
  29. package/payload/server/public/public.html +7 -7
  30. package/payload/server/server.js +5 -2
  31. package/payload/server/public/assets/Transcript-C93Lifnb.js +0 -1
  32. package/payload/server/public/assets/chat-Dq-VHp7a.js +0 -1
  33. package/payload/server/public/assets/chevron-left-DjbK_wdQ.js +0 -1
  34. package/payload/server/public/assets/data-BXOoK8Ci.js +0 -1
  35. package/payload/server/public/assets/page-Dck23z9U.js +0 -32
@@ -5,10 +5,10 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Browser — Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/browser-BXY1sNxv.js"></script>
8
+ <script type="module" crossorigin src="/assets/browser-DbdPeDK1.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-CAM3fms7.js">
10
- <link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-B1Kf32uG.js">
11
- <link rel="modulepreload" crossorigin href="/assets/AdminShell-Dqnxpn7U.js">
10
+ <link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-BpQ3oKiJ.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/AdminShell-DBD6ruS1.js">
12
12
  <link rel="stylesheet" crossorigin href="/assets/useSubAccountSwitcher-CfI3J2IX.css">
13
13
  <link rel="stylesheet" href="/brand-defaults.css">
14
14
  </head>
@@ -5,11 +5,11 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Calendar — Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/calendar-CObRTPpU.js"></script>
8
+ <script type="module" crossorigin src="/assets/calendar-CFdOhe7Q.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-CAM3fms7.js">
10
- <link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-B1Kf32uG.js">
11
- <link rel="modulepreload" crossorigin href="/assets/AdminShell-Dqnxpn7U.js">
12
- <link rel="modulepreload" crossorigin href="/assets/chevron-left-DjbK_wdQ.js">
10
+ <link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-BpQ3oKiJ.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/AdminShell-DBD6ruS1.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/chevron-left-Cngmu0Py.js">
13
13
  <link rel="stylesheet" crossorigin href="/assets/useSubAccountSwitcher-CfI3J2IX.css">
14
14
  <link rel="stylesheet" href="/brand-defaults.css">
15
15
  </head>
@@ -5,16 +5,16 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Chat — Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/chat-Dq-VHp7a.js"></script>
8
+ <script type="module" crossorigin src="/assets/chat-BunxcNDk.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-CAM3fms7.js">
10
- <link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-B1Kf32uG.js">
11
- <link rel="modulepreload" crossorigin href="/assets/AdminShell-Dqnxpn7U.js">
10
+ <link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-BpQ3oKiJ.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/AdminShell-DBD6ruS1.js">
12
12
  <link rel="modulepreload" crossorigin href="/assets/admin-types-hioowVct.js">
13
13
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-C5gCWwwF.js">
14
- <link rel="modulepreload" crossorigin href="/assets/Transcript-C93Lifnb.js">
15
- <link rel="modulepreload" crossorigin href="/assets/chevron-left-DjbK_wdQ.js">
16
- <link rel="modulepreload" crossorigin href="/assets/rotate-ccw-CHep9vl5.js">
17
- <link rel="modulepreload" crossorigin href="/assets/page-Dck23z9U.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/Transcript-FX_w6no6.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/chevron-left-Cngmu0Py.js">
16
+ <link rel="modulepreload" crossorigin href="/assets/rotate-ccw-JDfwjfIL.js">
17
+ <link rel="modulepreload" crossorigin href="/assets/page-zJQTRXB2.js">
18
18
  <link rel="stylesheet" crossorigin href="/assets/useSubAccountSwitcher-CfI3J2IX.css">
19
19
  <link rel="stylesheet" href="/brand-defaults.css">
20
20
  </head>
@@ -5,13 +5,14 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Data — Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/data-BXOoK8Ci.js"></script>
8
+ <script type="module" crossorigin src="/assets/data-IqZlMSwG.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-CAM3fms7.js">
10
- <link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-B1Kf32uG.js">
11
- <link rel="modulepreload" crossorigin href="/assets/graph-labels-C0nn9nQi.js">
12
- <link rel="modulepreload" crossorigin href="/assets/Transcript-C93Lifnb.js">
13
- <link rel="modulepreload" crossorigin href="/assets/chevron-left-DjbK_wdQ.js">
14
- <link rel="modulepreload" crossorigin href="/assets/page-BQEl7aZO.js">
10
+ <link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-BpQ3oKiJ.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/graph-labels-BcLJmY-v.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/preload-helper-C5gCWwwF.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/Transcript-FX_w6no6.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/chevron-left-Cngmu0Py.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/page-DQNYTb2d.js">
15
16
  <link rel="stylesheet" crossorigin href="/assets/useSubAccountSwitcher-CfI3J2IX.css">
16
17
  <link rel="stylesheet" href="/brand-defaults.css">
17
18
  </head>
@@ -5,14 +5,14 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Graph — Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/graph-BCL0fVDH.js"></script>
8
+ <script type="module" crossorigin src="/assets/graph-Bluocsf_.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-CAM3fms7.js">
10
- <link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-B1Kf32uG.js">
11
- <link rel="modulepreload" crossorigin href="/assets/graph-labels-C0nn9nQi.js">
12
- <link rel="modulepreload" crossorigin href="/assets/AdminShell-Dqnxpn7U.js">
13
- <link rel="modulepreload" crossorigin href="/assets/Checkbox-Bl1WRVGb.js">
14
- <link rel="modulepreload" crossorigin href="/assets/chevron-left-DjbK_wdQ.js">
15
- <link rel="modulepreload" crossorigin href="/assets/rotate-ccw-CHep9vl5.js">
10
+ <link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-BpQ3oKiJ.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/graph-labels-BcLJmY-v.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/AdminShell-DBD6ruS1.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/Checkbox-yr8-ftrE.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/chevron-left-Cngmu0Py.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/rotate-ccw-JDfwjfIL.js">
16
16
  <link rel="stylesheet" crossorigin href="/assets/useSubAccountSwitcher-CfI3J2IX.css">
17
17
  <link rel="stylesheet" href="/brand-defaults.css">
18
18
  </head>
@@ -5,17 +5,18 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/admin-ByoqNaSf.js"></script>
8
+ <script type="module" crossorigin src="/assets/admin-CQfZnuFy.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-CAM3fms7.js">
10
- <link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-B1Kf32uG.js">
11
- <link rel="modulepreload" crossorigin href="/assets/graph-labels-C0nn9nQi.js">
12
- <link rel="modulepreload" crossorigin href="/assets/AdminShell-Dqnxpn7U.js">
10
+ <link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-BpQ3oKiJ.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/graph-labels-BcLJmY-v.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/AdminShell-DBD6ruS1.js">
13
13
  <link rel="modulepreload" crossorigin href="/assets/admin-types-hioowVct.js">
14
- <link rel="modulepreload" crossorigin href="/assets/Checkbox-Bl1WRVGb.js">
15
- <link rel="modulepreload" crossorigin href="/assets/AdminLoginScreens-C_h8V0Xs.js">
16
- <link rel="modulepreload" crossorigin href="/assets/Transcript-C93Lifnb.js">
17
- <link rel="modulepreload" crossorigin href="/assets/chevron-left-DjbK_wdQ.js">
18
- <link rel="modulepreload" crossorigin href="/assets/page-BQEl7aZO.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/Checkbox-yr8-ftrE.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/AdminLoginScreens-oxqHKL3C.js">
16
+ <link rel="modulepreload" crossorigin href="/assets/preload-helper-C5gCWwwF.js">
17
+ <link rel="modulepreload" crossorigin href="/assets/Transcript-FX_w6no6.js">
18
+ <link rel="modulepreload" crossorigin href="/assets/chevron-left-Cngmu0Py.js">
19
+ <link rel="modulepreload" crossorigin href="/assets/page-DQNYTb2d.js">
19
20
  <link rel="stylesheet" crossorigin href="/assets/useSubAccountSwitcher-CfI3J2IX.css">
20
21
  <link rel="stylesheet" crossorigin href="/assets/AdminLoginScreens-CWMpccrR.css">
21
22
  <link rel="stylesheet" href="/brand-defaults.css">
@@ -5,18 +5,18 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Operator — Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/operator-B_1qYO7m.js"></script>
8
+ <script type="module" crossorigin src="/assets/operator-DjK3MBSS.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-CAM3fms7.js">
10
- <link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-B1Kf32uG.js">
11
- <link rel="modulepreload" crossorigin href="/assets/AdminShell-Dqnxpn7U.js">
10
+ <link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-BpQ3oKiJ.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/AdminShell-DBD6ruS1.js">
12
12
  <link rel="modulepreload" crossorigin href="/assets/admin-types-hioowVct.js">
13
- <link rel="modulepreload" crossorigin href="/assets/Checkbox-Bl1WRVGb.js">
14
- <link rel="modulepreload" crossorigin href="/assets/AdminLoginScreens-C_h8V0Xs.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/Checkbox-yr8-ftrE.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/AdminLoginScreens-oxqHKL3C.js">
15
15
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-C5gCWwwF.js">
16
- <link rel="modulepreload" crossorigin href="/assets/Transcript-C93Lifnb.js">
17
- <link rel="modulepreload" crossorigin href="/assets/chevron-left-DjbK_wdQ.js">
18
- <link rel="modulepreload" crossorigin href="/assets/rotate-ccw-CHep9vl5.js">
19
- <link rel="modulepreload" crossorigin href="/assets/page-Dck23z9U.js">
16
+ <link rel="modulepreload" crossorigin href="/assets/Transcript-FX_w6no6.js">
17
+ <link rel="modulepreload" crossorigin href="/assets/chevron-left-Cngmu0Py.js">
18
+ <link rel="modulepreload" crossorigin href="/assets/rotate-ccw-JDfwjfIL.js">
19
+ <link rel="modulepreload" crossorigin href="/assets/page-zJQTRXB2.js">
20
20
  <link rel="stylesheet" crossorigin href="/assets/useSubAccountSwitcher-CfI3J2IX.css">
21
21
  <link rel="stylesheet" crossorigin href="/assets/AdminLoginScreens-CWMpccrR.css">
22
22
  <link rel="stylesheet" href="/brand-defaults.css">
@@ -5,16 +5,16 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/public-BzvwPHM0.js"></script>
8
+ <script type="module" crossorigin src="/assets/public-CHCniosp.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-CAM3fms7.js">
10
- <link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-B1Kf32uG.js">
11
- <link rel="modulepreload" crossorigin href="/assets/AdminShell-Dqnxpn7U.js">
10
+ <link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-BpQ3oKiJ.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/AdminShell-DBD6ruS1.js">
12
12
  <link rel="modulepreload" crossorigin href="/assets/admin-types-hioowVct.js">
13
13
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-C5gCWwwF.js">
14
- <link rel="modulepreload" crossorigin href="/assets/Transcript-C93Lifnb.js">
15
- <link rel="modulepreload" crossorigin href="/assets/chevron-left-DjbK_wdQ.js">
16
- <link rel="modulepreload" crossorigin href="/assets/rotate-ccw-CHep9vl5.js">
17
- <link rel="modulepreload" crossorigin href="/assets/page-Dck23z9U.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/Transcript-FX_w6no6.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/chevron-left-Cngmu0Py.js">
16
+ <link rel="modulepreload" crossorigin href="/assets/rotate-ccw-JDfwjfIL.js">
17
+ <link rel="modulepreload" crossorigin href="/assets/page-zJQTRXB2.js">
18
18
  <link rel="stylesheet" crossorigin href="/assets/useSubAccountSwitcher-CfI3J2IX.css">
19
19
  <link rel="stylesheet" href="/brand-defaults.css">
20
20
  </head>
@@ -11211,11 +11211,15 @@ function uploadsDirFor2(accountId, attachmentId) {
11211
11211
  app15.get("/:attachmentId", requireAdminSession, async (c) => {
11212
11212
  const attachmentId = c.req.param("attachmentId");
11213
11213
  const cacheKey = c.var.cacheKey;
11214
+ const shortId2 = attachmentId.slice(0, 8);
11215
+ const shortSession = (c.req.query("session_key") ?? "").slice(0, 8);
11214
11216
  const pinnedAccountId = getAccountIdForSession(cacheKey);
11215
11217
  if (!pinnedAccountId) {
11218
+ console.log(`[admin-attachment] op=miss attachmentId=${shortId2} session=${shortSession} status=401 reason=no-account`);
11216
11219
  return new Response("Unauthorized", { status: 401 });
11217
11220
  }
11218
11221
  if (!ATTACHMENT_ID_RE2.test(attachmentId)) {
11222
+ console.log(`[admin-attachment] op=miss attachmentId=${shortId2} session=${shortSession} status=404 reason=bad-id`);
11219
11223
  return new Response("Not found", { status: 404 });
11220
11224
  }
11221
11225
  let accountId = pinnedAccountId;
@@ -11233,10 +11237,9 @@ app15.get("/:attachmentId", requireAdminSession, async (c) => {
11233
11237
  }
11234
11238
  }
11235
11239
  }
11236
- const shortId2 = attachmentId.slice(0, 8);
11237
11240
  const shortPinned = pinnedAccountId.slice(0, 8);
11238
11241
  const crossAccountNote = found && accountId !== pinnedAccountId ? ` resolvedAccount=${accountId.slice(0, 8)}` : "";
11239
- console.log(`[admin-attachment] op=lookup attachmentId=${shortId2} pinnedAccount=${shortPinned} found=${found}${crossAccountNote}`);
11242
+ console.log(`[admin-attachment] op=lookup attachmentId=${shortId2} session=${shortSession} pinnedAccount=${shortPinned} found=${found}${crossAccountNote}`);
11240
11243
  if (!found) {
11241
11244
  return new Response("Not found", { status: 404 });
11242
11245
  }
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-CAM3fms7.js";import{D as t,L as n,M as r}from"./useSubAccountSwitcher-B1Kf32uG.js";var i=t(`paperclip`,[[`path`,{d:`m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551`,key:`1miecu`}]]),a=e(n(),1),o=r();function s({children:e,tail:t=null,repinSignals:n}){let r=(0,a.useRef)(null),i=(0,a.useRef)(null),s=(0,a.useRef)(!0),[c,l]=(0,a.useState)(!0),u=(0,a.useRef)(0),d=(0,a.useRef)(0),f=()=>{let e=r.current;if(!e)return;let t=e.clientHeight,n=e.scrollHeight,i=t!==u.current||n!==d.current;if(u.current=t,d.current=n,i){s.current&&(e.scrollTop=e.scrollHeight);return}let a=n-e.scrollTop-t<=32;s.current=a,l(e=>e===a?e:a)},p=()=>{let e=r.current;e&&(e.scrollTop=e.scrollHeight,d.current=e.scrollHeight,u.current=e.clientHeight,s.current=!0,l(!0))},m=t!=null;return(0,a.useLayoutEffect)(()=>{let e=r.current;e&&s.current&&(e.scrollTop=e.scrollHeight),e&&(d.current=e.scrollHeight,u.current=e.clientHeight)},[...n,m]),(0,a.useLayoutEffect)(()=>{if(typeof ResizeObserver>`u`)return;let e=new ResizeObserver(()=>f());return r.current&&e.observe(r.current),i.current&&e.observe(i.current),()=>e.disconnect()},[]),(0,o.jsxs)(`div`,{className:`wa-reader`,children:[(0,o.jsx)(`div`,{className:`wa-reader-thread`,ref:r,onScroll:f,children:(0,o.jsxs)(`div`,{className:`wa-thread-scroll`,ref:i,children:[e,t]})}),!c&&(0,o.jsx)(`button`,{type:`button`,className:`wa-jump`,onClick:p,"aria-label":`Jump to latest message`,title:`Jump to latest message`,children:`↓`})]})}var c={auth_expired:`Your session has expired. Please sign in again.`,claude_down:`Claude is currently experiencing an outage. Please try again in a few minutes.`,claude_overloaded:`Claude is overloaded right now. Please try again shortly.`,model_unavailable:`The selected model is currently unavailable. Switch to a different model from the model picker to continue.`,agent_error:`Something went wrong. Please try again.`},l={auth_expired:`I'm not available right now. Please try again later.`,claude_down:`I'm not available right now. Please try again later.`,claude_overloaded:`I'm not available right now. Please try again shortly.`,model_unavailable:`I'm not available right now. Please try again later.`,agent_error:`I'm not available right now. Please try again later.`};function u(e,t=`admin`){return t===`public`?l[e]:c[e]}function d(e){return e===`whatsapp`?` · via WhatsApp`:e===`webchat`?` · via web`:``}function f(e,t,n,r=`/api/whatsapp-reader/stream`,i=e,o=!0){let[s,c]=(0,a.useState)([]),[l,u]=(0,a.useState)(`open`),[d,f]=(0,a.useState)(null),m=(0,a.useRef)([]);return(0,a.useEffect)(()=>{m.current=s},[s]),(0,a.useEffect)(()=>{c([]),m.current=[],f(null)},[i,t,n,r]),(0,a.useEffect)(()=>{if(u(`open`),!o)return;let i=m.current.slice(),a=i.map(p),s=0,l=i.length>0,d=`${r}?sessionId=${encodeURIComponent(e)}&projectDir=${encodeURIComponent(t)}&session_key=${encodeURIComponent(n)}`,h=new EventSource(d);return h.onopen=()=>{console.info(`[admin-ui] wa-stream onopen sessionId=${e}`),u(`open`)},h.onmessage=e=>{let t;try{t=JSON.parse(e.data)}catch{return}if(l){if(s<a.length&&p(t)===a[s]){s+=1;return}l=!1}c(e=>[...e,t])},h.addEventListener(`activity`,e=>{try{f(JSON.parse(e.data))}catch{}}),h.addEventListener(`activity-clear`,()=>f(null)),h.onerror=()=>{h.readyState===2&&(console.error(`[admin-ui] wa-stream onerror readyState=${h.readyState}`),u(`error`))},()=>h.close()},[e,t,n,r,i,o]),{turns:s,status:l,subagentActivity:d}}function p(e){return JSON.stringify(e)}function m(e,t,n,r=!0){let[i,o]=(0,a.useState)([]),[s,c]=(0,a.useState)(`open`);return(0,a.useEffect)(()=>{if(o([]),c(`open`),!r||!e||!t)return;let i=`/api/whatsapp-reader/store-stream?accountId=${encodeURIComponent(e)}&remoteJid=${encodeURIComponent(t)}&session_key=${encodeURIComponent(n)}`,a=new EventSource(i);return a.onopen=()=>c(`open`),a.onmessage=e=>{let t;try{t=JSON.parse(e.data)}catch{return}o(e=>[...e,t])},a.onerror=()=>{a.readyState===2&&c(`error`)},()=>a.close()},[e,t,n,r]),{turns:i,status:s}}var h=e=>{if(!e)return 1/0;let t=new Date(e).getTime();return Number.isNaN(t)?1/0:t};function g(e,t){let n=[],r=0;return e.forEach((e,t)=>n.push({sort:h(e.ts),sub:1,ins:r++,item:{kind:`turn`,turn:e,idx:t}})),t.forEach(e=>n.push({sort:h(e.ts),sub:0,ins:r++,item:{kind:`directive`,entry:e}})),n.sort((e,t)=>e.sort===t.sort?e.sort===1/0?e.ins-t.ins:e.sub-t.sub||e.ins-t.ins:e.sort<t.sort?-1:1).map(e=>e.item)}function _(e,t,n=!0){let[r,i]=(0,a.useState)([]);return(0,a.useEffect)(()=>{if(!n||typeof fetch!=`function`)return;let r=!0,a=`/api/whatsapp-reader/directives?sessionId=${encodeURIComponent(e)}&session_key=${encodeURIComponent(t)}`;return fetch(a).then(e=>e.ok?e.json():{entries:[]}).then(e=>{r&&i(Array.isArray(e.entries)?e.entries:[])}).catch(()=>{r&&i([])}),()=>{r=!1}},[e,t,n]),r}var v=new Set([`operator-inbound`,`operator-typed`,`agent-reply`,`agent-reply-document`,`agent-file`,`agent-error`,`whatsapp-persisted`]);function y(e){if(!e)return``;let t=new Date(e);return Number.isNaN(t.getTime())?``:t.toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})}function b(e){let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}var x=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],S=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];function C(e){let t=String(e.getMonth()+1).padStart(2,`0`),n=String(e.getDate()).padStart(2,`0`);return`${e.getFullYear()}-${t}-${n}`}function w(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:C(t)}function T(e,t=new Date){if(!e)return``;let n=new Date(e);if(Number.isNaN(n.getTime()))return``;let r=C(n);if(r===C(t))return`Today`;let i=new Date(t);return i.setDate(i.getDate()-1),r===C(i)?`Yesterday`:`${x[n.getDay()]} ${n.getDate()} ${S[n.getMonth()]} ${n.getFullYear()}`}function E(e){return e.kind===`turn`?e.turn.ts:e.entry.ts}function D({ts:e}){return(0,o.jsx)(`div`,{className:`day-divider`,role:`separator`,children:(0,o.jsx)(`span`,{className:`day-divider-label`,children:T(e)})})}function O(){return(0,o.jsx)(`div`,{className:`session-divider`,role:`separator`,children:(0,o.jsx)(`span`,{className:`session-divider-label`,children:`Conversation continued`})})}function k({label:e,ts:t}){return(0,o.jsxs)(`div`,{className:`wa-turn-head`,children:[(0,o.jsx)(`span`,{className:`wa-who`,children:e}),(0,o.jsx)(`time`,{className:`wa-time`,children:y(t)})]})}function A({turn:e}){let[t,n]=(0,a.useState)(!1),r=e.kind===`tool-result`,i=r?`wa-turn wa-turn-result${e.isError?` is-error`:``}`:`wa-turn wa-turn-tool`,s=r?e.isError?`result (error)`:`result`:`↳ ${e.name}`,c=r?e.text:JSON.stringify(e.input,null,2);return(0,o.jsxs)(`div`,{className:i,children:[(0,o.jsxs)(`button`,{type:`button`,className:`wa-tool-toggle`,"aria-expanded":t,onClick:()=>n(e=>!e),children:[(0,o.jsx)(`span`,{className:`wa-chevron`,children:t?`▾`:`▸`}),(0,o.jsx)(`span`,{className:`wa-who`,children:s}),(0,o.jsx)(`time`,{className:`wa-time`,children:y(e.ts)})]}),t&&(0,o.jsx)(`pre`,{className:`wa-code`,children:c})]})}function j({entry:e,sessionId:t,sessionKey:n}){let[r,i]=(0,a.useState)(!1),[s,c]=(0,a.useState)(null),l=()=>{let a=!r;if(i(a),a&&s===null&&typeof fetch==`function`){let r=`/api/whatsapp-reader/directive?sessionId=${encodeURIComponent(t)}&name=${encodeURIComponent(e.name)}&session_key=${encodeURIComponent(n)}`;fetch(r).then(e=>e.ok?e.text():`(directive unavailable)`).then(c).catch(()=>c(`(directive unavailable)`))}};return(0,o.jsxs)(`div`,{className:`wa-turn wa-turn-directive`,children:[(0,o.jsxs)(`button`,{type:`button`,className:`wa-tool-toggle`,"aria-expanded":r,onClick:l,children:[(0,o.jsx)(`span`,{className:`wa-chevron`,children:r?`▾`:`▸`}),(0,o.jsxs)(`span`,{className:`wa-who`,children:[`⚙ directive injected (`,e.len,` B)`]}),(0,o.jsx)(`time`,{className:`wa-time`,children:y(e.ts)})]}),r&&(0,o.jsx)(`pre`,{className:`wa-code`,children:s??`Loading…`})]})}function M(e,t){switch(e.kind){case`operator-inbound`:return(0,o.jsxs)(`div`,{className:`wa-turn wa-turn-in`,children:[(0,o.jsx)(k,{label:`Operator${d(e.source)}`,ts:e.ts}),(0,o.jsx)(`p`,{className:`wa-body`,children:e.text})]},t);case`operator-typed`:return(0,o.jsxs)(`div`,{className:`wa-turn wa-turn-in wa-turn-typed`,children:[(0,o.jsx)(k,{label:`Operator (web)`,ts:e.ts}),(0,o.jsx)(`p`,{className:`wa-body`,children:e.text})]},t);case`agent-text`:return(0,o.jsxs)(`div`,{className:`wa-turn wa-turn-think`,children:[(0,o.jsx)(k,{label:`Agent`,ts:e.ts}),(0,o.jsx)(`p`,{className:`wa-body`,children:e.text})]},t);case`agent-reply`:return(0,o.jsxs)(`div`,{className:`wa-turn wa-turn-out`,children:[(0,o.jsx)(k,{label:`Agent`,ts:e.ts}),(0,o.jsx)(`p`,{className:`wa-body`,children:e.text})]},t);case`agent-reply-document`:return(0,o.jsxs)(`div`,{className:`wa-turn wa-turn-out`,children:[(0,o.jsx)(k,{label:`Agent`,ts:e.ts}),(0,o.jsxs)(`p`,{className:`wa-doc`,children:[(0,o.jsx)(i,{size:14,"aria-hidden":!0,style:{verticalAlign:`text-bottom`}}),` `,`sent document(s): `,e.files.map(b).join(`, `)]}),e.caption&&(0,o.jsx)(`p`,{className:`wa-body`,children:e.caption})]},t);case`agent-file`:return(0,o.jsxs)(`div`,{className:`wa-turn wa-turn-out`,children:[(0,o.jsx)(k,{label:`Agent`,ts:e.ts}),(0,o.jsxs)(`p`,{className:`wa-doc`,children:[(0,o.jsx)(i,{size:14,"aria-hidden":!0,style:{verticalAlign:`text-bottom`}}),` `,`sent file(s): `,e.files.map(b).join(`, `)]}),e.caption&&(0,o.jsx)(`p`,{className:`wa-body`,children:e.caption})]},t);case`whatsapp-persisted`:return(0,o.jsxs)(`div`,{className:`wa-turn ${e.fromMe?`wa-turn-out`:`wa-turn-in`}`,children:[(0,o.jsx)(k,{label:e.fromMe?`Sent`:e.senderName??`Contact`,ts:e.ts}),(0,o.jsx)(`p`,{className:`wa-body`,children:e.text})]},t);case`session-continued`:return(0,o.jsx)(O,{},t);case`tool-call`:case`tool-result`:return(0,o.jsx)(A,{turn:e},t);case`agent-error`:return(0,o.jsxs)(`div`,{className:`wa-turn wa-turn-error`,role:`alert`,children:[(0,o.jsx)(k,{label:`Agent`,ts:e.ts}),(0,o.jsx)(`p`,{className:`wa-body wa-error-body`,children:u(e.code,`admin`)}),e.code===`agent_error`&&e.raw&&(0,o.jsx)(`pre`,{className:`wa-code`,children:e.raw})]},t)}}function N(e,t,n){let r=[],i=null;return e.forEach((e,a)=>{let s=E(e),c=w(s);c!==null&&c!==i&&(r.push((0,o.jsx)(D,{ts:s},`day-${a}`)),i=c),r.push(e.kind===`turn`?M(e.turn,a):(0,o.jsx)(j,{entry:e.entry,sessionId:t,sessionKey:n},a))}),r}function P(e){return e.filter(e=>e.kind===`turn`&&v.has(e.turn.kind))}function F({sessionId:e,projectDir:t,sessionKey:n,renderItems:r=N,clean:i,onToggleClean:c,forceDeliveredOnly:l=!1,streamEndpoint:u=`/api/whatsapp-reader/stream`,suppressDirectives:d=!1,tail:p=null,resetKey:h,onTurnsChange:v,onActivityChange:y,store:b}){let x=!!b,S=f(e,t,n,u,h,!x),C=m(b?.accountId??``,b?.remoteJid??``,n,x),{turns:w,status:T}=x?{turns:C.turns,status:C.status}:{turns:S.turns,status:S.status},E=x?null:S.subagentActivity;(0,a.useEffect)(()=>{y?.(E)},[E,y]),(0,a.useEffect)(()=>{v?.(w.length)},[w.length,v]);let D=g(w,_(e,n,!d)),O=c==null?!1:!!i,k=l||O?P(D):D;return(0,o.jsxs)(s,{repinSignals:[w,O],tail:p,children:[T===`error`&&(0,o.jsx)(`div`,{className:`wa-reader-error`,children:`Stream disconnected.`}),w.length===0&&T===`open`&&(0,o.jsx)(`div`,{className:`wa-reader-placeholder`,children:`No messages in this conversation yet.`}),r(k,e,n)]})}export{b as a,E as c,i as d,F as i,d as l,j as n,w as o,O as r,y as s,D as t,u};
@@ -1 +0,0 @@
1
- import{F as e,M as t}from"./useSubAccountSwitcher-B1Kf32uG.js";import"./admin-types-hioowVct.js";import"./AdminShell-Dqnxpn7U.js";import{n}from"./page-Dck23z9U.js";import"./Transcript-C93Lifnb.js";var r=e(),i=t();(0,r.createRoot)(document.getElementById(`root`)).render((0,i.jsx)(n,{}));
@@ -1 +0,0 @@
1
- import{D as e}from"./useSubAccountSwitcher-B1Kf32uG.js";var t=e(`chevron-left`,[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]);export{t};
@@ -1 +0,0 @@
1
- import{F as e,M as t}from"./useSubAccountSwitcher-B1Kf32uG.js";import{t as n}from"./page-BQEl7aZO.js";import"./Transcript-C93Lifnb.js";import"./graph-labels-C0nn9nQi.js";var r=e(),i=t();(0,r.createRoot)(document.getElementById(`root`)).render((0,i.jsx)(n,{}));