reflex-agent 0.17.0 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +96 -96
  3. package/.next/app-path-routes-manifest.json +6 -6
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +3 -3
  6. package/.next/react-loadable-manifest.json +1 -1
  7. package/.next/server/app/_not-found/page.js +1 -1
  8. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/agents/[agentId]/page.js +2 -2
  10. package/.next/server/app/agents/[agentId]/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/agents/[agentId]/respond/route.js +1 -1
  12. package/.next/server/app/api/agents/[agentId]/respond/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/images/[rootId]/[file]/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/oauth/start/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/roots/[id]/attachments/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route.js +1 -1
  18. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route.js +1 -1
  20. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route.js +2 -2
  22. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/roots/[id]/dashboard/route.js +1 -1
  24. package/.next/server/app/api/roots/[id]/dashboard/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/roots/[id]/suggestions/route.js +1 -1
  26. package/.next/server/app/api/roots/[id]/suggestions/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/utilities/[scope]/[id]/bundle.js/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/utilities/[scope]/[id]/host/route.js +1 -1
  29. package/.next/server/app/api/utilities/[scope]/[id]/host/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/utilities/[scope]/[id]/host-api.mjs/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/utilities/[scope]/[id]/host-ui.mjs/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/utilities/[scope]/[id]/iframe/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/utilities/[scope]/[id]/style.css/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/utilities/install-archive/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/audit/page.js +1 -1
  36. package/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  37. package/.next/server/app/dispatcher/page.js +2 -2
  38. package/.next/server/app/dispatcher/page_client-reference-manifest.js +1 -1
  39. package/.next/server/app/onboarding/page.js +2 -2
  40. package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  41. package/.next/server/app/page.js +2 -2
  42. package/.next/server/app/page.js.nft.json +1 -1
  43. package/.next/server/app/page_client-reference-manifest.js +1 -1
  44. package/.next/server/app/roots/[id]/chat/[topicId]/page.js +2 -2
  45. package/.next/server/app/roots/[id]/chat/[topicId]/page.js.nft.json +1 -1
  46. package/.next/server/app/roots/[id]/chat/[topicId]/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/roots/[id]/kb/[...slug]/page.js +2 -2
  48. package/.next/server/app/roots/[id]/kb/[...slug]/page.js.nft.json +1 -1
  49. package/.next/server/app/roots/[id]/kb/[...slug]/page_client-reference-manifest.js +1 -1
  50. package/.next/server/app/roots/[id]/memory/page.js +1 -1
  51. package/.next/server/app/roots/[id]/memory/page_client-reference-manifest.js +1 -1
  52. package/.next/server/app/roots/[id]/page.js +4 -4
  53. package/.next/server/app/roots/[id]/page.js.nft.json +1 -1
  54. package/.next/server/app/roots/[id]/page_client-reference-manifest.js +1 -1
  55. package/.next/server/app/roots/[id]/workflows/[wfId]/page.js +2 -2
  56. package/.next/server/app/roots/[id]/workflows/[wfId]/page.js.nft.json +1 -1
  57. package/.next/server/app/roots/[id]/workflows/[wfId]/page_client-reference-manifest.js +1 -1
  58. package/.next/server/app/roots/[id]/workflows/page.js +2 -2
  59. package/.next/server/app/roots/[id]/workflows/page.js.nft.json +1 -1
  60. package/.next/server/app/roots/[id]/workflows/page_client-reference-manifest.js +1 -1
  61. package/.next/server/app/roots/new/page.js +3 -3
  62. package/.next/server/app/roots/new/page_client-reference-manifest.js +1 -1
  63. package/.next/server/app/settings/page.js +4 -4
  64. package/.next/server/app/settings/page.js.nft.json +1 -1
  65. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  66. package/.next/server/app/share/[id]/file/page.js +2 -2
  67. package/.next/server/app/share/[id]/file/page_client-reference-manifest.js +1 -1
  68. package/.next/server/app/share/[id]/page.js +2 -2
  69. package/.next/server/app/share/[id]/page_client-reference-manifest.js +1 -1
  70. package/.next/server/app/utilities/[scope]/[id]/page.js +2 -2
  71. package/.next/server/app/utilities/[scope]/[id]/page.js.nft.json +1 -1
  72. package/.next/server/app/utilities/[scope]/[id]/page_client-reference-manifest.js +1 -1
  73. package/.next/server/app/utilities/page.js +2 -2
  74. package/.next/server/app/utilities/page_client-reference-manifest.js +1 -1
  75. package/.next/server/app-paths-manifest.json +6 -6
  76. package/.next/server/chunks/1358.js +1 -1
  77. package/.next/server/chunks/2420.js +3 -0
  78. package/.next/server/chunks/285.js +6 -6
  79. package/.next/server/chunks/3332.js +1 -1
  80. package/.next/server/chunks/3943.js +1 -0
  81. package/.next/server/chunks/4333.js +4 -0
  82. package/.next/server/chunks/4578.js +1 -1
  83. package/.next/server/chunks/4812.js +1 -1
  84. package/.next/server/chunks/6370.js +1 -0
  85. package/.next/server/chunks/9098.js +1 -1
  86. package/.next/server/chunks/9809.js +1 -1
  87. package/.next/server/chunks/9840.js +1 -0
  88. package/.next/server/functions-config-manifest.json +5 -5
  89. package/.next/server/middleware-build-manifest.js +1 -1
  90. package/.next/server/middleware-manifest.json +5 -5
  91. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  92. package/.next/server/pages/500.html +1 -1
  93. package/.next/server/server-reference-manifest.js +1 -1
  94. package/.next/server/server-reference-manifest.json +1 -1
  95. package/.next/static/chunks/1140-64068d731caa9e74.js +1 -0
  96. package/.next/static/chunks/1449-6b7d830a92f3f938.js +1 -0
  97. package/.next/static/chunks/3281-8bd5b627634cdf42.js +1 -0
  98. package/.next/static/chunks/3680-c10f5bed1e72fdc2.js +1 -0
  99. package/.next/static/chunks/4108.19c3868f4af2c9f0.js +1 -0
  100. package/.next/static/chunks/9764-cdf07e52fe3e8237.js +1 -0
  101. package/.next/static/chunks/app/layout-a9e0a8f5993dd6d9.js +1 -0
  102. package/.next/static/chunks/app/onboarding/page-6fddd32281064f20.js +1 -0
  103. package/.next/static/chunks/app/page-04091ddd75f75dbe.js +1 -0
  104. package/.next/static/chunks/app/roots/[id]/chat/[topicId]/page-4ef3f3e86daba072.js +1 -0
  105. package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-e06fed2af2d53515.js +1 -0
  106. package/.next/static/chunks/app/roots/[id]/memory/{page-ba0c5cfb119f3d9f.js → page-8a6c36c8f8b18027.js} +1 -1
  107. package/.next/static/chunks/app/roots/[id]/page-dc75fd44657768c3.js +1 -0
  108. package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/page-4159003e68210618.js +1 -0
  109. package/.next/static/chunks/app/roots/[id]/workflows/page-45cf79c938c988e5.js +1 -0
  110. package/.next/static/chunks/app/roots/new/{page-6d42e9ea5d2274c0.js → page-c053590d2d0db45b.js} +1 -1
  111. package/.next/static/chunks/app/settings/page-5514c8538063c316.js +1 -0
  112. package/.next/static/chunks/app/share/[id]/page-f88950f6a8ad9e41.js +1 -0
  113. package/.next/static/chunks/app/utilities/[scope]/[id]/page-b15dcef01e478b72.js +1 -0
  114. package/.next/static/chunks/app/utilities/page-bb3e4a011e6bad5c.js +1 -0
  115. package/.next/static/chunks/{webpack-9a901eb0ce37db73.js → webpack-365da08c2f4d8fd4.js} +1 -1
  116. package/.next/trace +90 -90
  117. package/dist/lib/reflex/commands/start.js +23 -0
  118. package/dist/lib/reflex/commands/start.js.map +1 -1
  119. package/package.json +1 -1
  120. package/.next/server/chunks/174.js +0 -1
  121. package/.next/server/chunks/2884.js +0 -3
  122. package/.next/server/chunks/4602.js +0 -4
  123. package/.next/server/chunks/495.js +0 -1
  124. package/.next/server/chunks/6720.js +0 -1
  125. package/.next/static/chunks/3845-66f364dff106ba18.js +0 -1
  126. package/.next/static/chunks/4108.738ffa1f849a5485.js +0 -1
  127. package/.next/static/chunks/5494-59e2a85639ebb34b.js +0 -1
  128. package/.next/static/chunks/5968-21bac68b48bbccd3.js +0 -1
  129. package/.next/static/chunks/8151-e56a8e4752a0d552.js +0 -1
  130. package/.next/static/chunks/8283-59e528f04d14b616.js +0 -1
  131. package/.next/static/chunks/app/layout-186c97c612efcc2b.js +0 -1
  132. package/.next/static/chunks/app/onboarding/page-3917771d56a7020e.js +0 -1
  133. package/.next/static/chunks/app/page-298e012b6af8bfaa.js +0 -1
  134. package/.next/static/chunks/app/roots/[id]/chat/[topicId]/page-1048058013d15529.js +0 -1
  135. package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-cc4904953269d69c.js +0 -1
  136. package/.next/static/chunks/app/roots/[id]/page-dad905d102ac2cdd.js +0 -1
  137. package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/page-5248846e8f56270e.js +0 -1
  138. package/.next/static/chunks/app/roots/[id]/workflows/page-4ca8b986a2441bb6.js +0 -1
  139. package/.next/static/chunks/app/settings/page-7478ef9e4699d815.js +0 -1
  140. package/.next/static/chunks/app/share/[id]/page-f6c7d5ecdade71e6.js +0 -1
  141. package/.next/static/chunks/app/utilities/[scope]/[id]/page-4a0895c7ccc143ff.js +0 -1
  142. package/.next/static/chunks/app/utilities/page-35a987453b809462.js +0 -1
  143. /package/.next/static/{lsd-85A_MGaBztIdQYLgO → 6dGMfpiSfKb8VjYCBSJk6}/_buildManifest.js +0 -0
  144. /package/.next/static/{lsd-85A_MGaBztIdQYLgO → 6dGMfpiSfKb8VjYCBSJk6}/_ssgManifest.js +0 -0
@@ -24,6 +24,11 @@ export async function runStart(opts) {
24
24
  process.stdout.write(`Data dir: ${reflexHome()}\n`);
25
25
  if (opts.open)
26
26
  openBrowser(url);
27
+ // Self-ping so the root layout renders once on boot — that's what
28
+ // starts the background workers (scheduler + Telegram poller).
29
+ // Without it a Telegram-only user who never opens the web UI would
30
+ // get a server with no poller. Fire-and-forget, retried briefly.
31
+ void warmup(`http://127.0.0.1:${opts.port}/`);
27
32
  });
28
33
  const shutdown = (signal) => {
29
34
  process.stdout.write(`\n[reflex] ${signal} received, stopping…\n`);
@@ -34,6 +39,24 @@ export async function runStart(opts) {
34
39
  process.on("SIGTERM", shutdown);
35
40
  });
36
41
  }
42
+ /**
43
+ * Hit the home URL a few times until it answers, so the root layout
44
+ * renders and boots the background workers. Tolerant of the brief window
45
+ * before Next is fully ready.
46
+ */
47
+ async function warmup(url) {
48
+ for (let i = 0; i < 5; i++) {
49
+ try {
50
+ const res = await fetch(url, { signal: AbortSignal.timeout(10_000) });
51
+ if (res.ok)
52
+ return;
53
+ }
54
+ catch {
55
+ /* not ready yet */
56
+ }
57
+ await new Promise((r) => setTimeout(r, 1000));
58
+ }
59
+ }
37
60
  async function findPackageRoot() {
38
61
  // dist/lib/reflex/commands/start.js → repo root is 4 levels up.
39
62
  const here = path.dirname(fileURLToPath(import.meta.url));
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../lib/reflex/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAQxC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAkB;IAC/C,MAAM,OAAO,GAAG,MAAM,eAAe,EAAE,CAAC;IACxC,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3B,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAEjC,4DAA4D;IAC5D,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,CAQpC,CAAC;IACF,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1D,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IACpB,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC;IAExC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACvC,KAAK,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;YACvC,MAAM,GAAG,GAAG,UAAU,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;YACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,UAAU,EAAE,IAAI,CAAC,CAAC;YACpD,IAAI,IAAI,CAAC,IAAI;gBAAE,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,CAAC,MAAsB,EAAE,EAAE;YAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,MAAM,wBAAwB,CAAC,CAAC;YACnE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9B,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QAClD,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,eAAe;IAC5B,gEAAgE;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,OAAe;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,kCAAkC,OAAO,+DAA+D,CACzG,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,iBAAiB,CAAC,OAAe;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,4BAA4B,CAAC,CAAC;IACvE,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAG1B,CAAC;IACF,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IACE,IAAI,CAAC,MAAM,EAAE,qBAAqB;QAClC,IAAI,CAAC,MAAM,CAAC,qBAAqB,KAAK,OAAO,EAC7C,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,qBAAqB,GAAG,OAAO,CAAC;QAC5C,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,WAAW,CAAC;IAC5D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,GAAG,GACP,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;IAC7E,MAAM,IAAI,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACrE,IAAI,CAAC;QACH,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../lib/reflex/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAQxC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAkB;IAC/C,MAAM,OAAO,GAAG,MAAM,eAAe,EAAE,CAAC;IACxC,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3B,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAEjC,4DAA4D;IAC5D,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,CAQpC,CAAC;IACF,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1D,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IACpB,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC;IAExC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACvC,KAAK,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;YACvC,MAAM,GAAG,GAAG,UAAU,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;YACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,UAAU,EAAE,IAAI,CAAC,CAAC;YACpD,IAAI,IAAI,CAAC,IAAI;gBAAE,WAAW,CAAC,GAAG,CAAC,CAAC;YAChC,kEAAkE;YAClE,+DAA+D;YAC/D,mEAAmE;YACnE,iEAAiE;YACjE,KAAK,MAAM,CAAC,oBAAoB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,CAAC,MAAsB,EAAE,EAAE;YAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,MAAM,wBAAwB,CAAC,CAAC;YACnE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9B,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QAClD,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,MAAM,CAAC,GAAW;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtE,IAAI,GAAG,CAAC,EAAE;gBAAE,OAAO;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,mBAAmB;QACrB,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe;IAC5B,gEAAgE;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,OAAe;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,kCAAkC,OAAO,+DAA+D,CACzG,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,iBAAiB,CAAC,OAAe;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,4BAA4B,CAAC,CAAC;IACvE,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAG1B,CAAC;IACF,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IACE,IAAI,CAAC,MAAM,EAAE,qBAAqB;QAClC,IAAI,CAAC,MAAM,CAAC,qBAAqB,KAAK,OAAO,EAC7C,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,qBAAqB,GAAG,OAAO,CAAC;QAC5C,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,WAAW,CAAC;IAC5D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,GAAG,GACP,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;IAC7E,MAAM,IAAI,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACrE,IAAI,CAAC;QACH,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reflex-agent",
3
- "version": "0.17.0",
3
+ "version": "0.17.1",
4
4
  "private": false,
5
5
  "description": "Local-first knowledge base built by an agent over a chosen directory.",
6
6
  "license": "MIT",
@@ -1 +0,0 @@
1
- exports.id=174,exports.ids=[174],exports.modules={4953:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=c(24688).unstable_rethrow;("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},6993:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g});var d=c(63003),e=c(9310),f=c(24576);async function g({children:a,params:b}){let{id:c}=await b;return await (0,f.getRoot)(c)||(0,e.notFound)(),(0,d.jsx)("div",{className:"flex-1 flex flex-col min-h-0",children:a})}},7902:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{AY:()=>m,LH:()=>q,LK:()=>l,Ll:()=>r,XF:()=>s,Xz:()=>o,hb:()=>n,nf:()=>p});var e=c(73745);c(66493);var f=c(65326),g=c(53905),h=c(73928),i=c(55143),j=c(63781),k=a([i]);async function l(a){try{let b=await (0,g.getRoot)(a);if(!b)return{ok:!1,error:"Root not found"};let d=await (0,h.listWorkflows)(b.path),{collectExtensions:e}=await Promise.resolve().then(c.bind(c,35961)),f=await e({rootId:a}),i=new Set(d.map(a=>a.id)),j=[...d,...f.workflows.filter(a=>!i.has(a.id))];return{ok:!0,workflows:j}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function m(a,b){try{let c=await (0,g.getRoot)(a);if(!c)return{ok:!1,error:"Root not found"};let d=await (0,h.readWorkflow)(c.path,b);if(!d)return{ok:!1,error:"Not found"};return{ok:!0,workflow:d}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function n(a,b){try{let c=await (0,g.getRoot)(a);if(!c)return{ok:!1,error:"Root not found"};let d=await (0,h.readWorkflow)(c.path,b.id),e={...b,createdAt:d?.createdAt??b.createdAt??new Date().toISOString(),updatedAt:new Date().toISOString()},j=(0,i.n)(e);if(j)return{ok:!1,error:j};return await (0,h.r$)(c.path,e),(0,f.revalidatePath)(`/roots/${a}/workflows`),(0,f.revalidatePath)(`/roots/${a}/workflows/${b.id}`),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function o(a,b,c){try{let d=await (0,g.getRoot)(a);if(!d)return{ok:!1,error:"Root not found"};let e=await (0,h.readWorkflow)(d.path,b);if(!e)return{ok:!1,error:"Workflow lives in a utility manifest — uninstall or fork it to disable."};return await (0,h.r$)(d.path,{...e,enabled:c,updatedAt:new Date().toISOString()}),(0,f.revalidatePath)(`/roots/${a}/workflows`),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function p(a,b){try{let c=await (0,g.getRoot)(a);if(!c)return{ok:!1,error:"Root not found"};return await (0,h.L6)(c.path,b),(0,f.revalidatePath)(`/roots/${a}/workflows`),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function q(a,b,c){return(0,i.runWorkflow)(a,b,c)}async function r(a,b){try{let c=await (0,g.getRoot)(a);if(!c)return{ok:!1,error:"Root not found"};let d=await (0,h.v)(c.path,b);return{ok:!0,runs:d}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function s(a,b,c,d){try{let e=await (0,g.getRoot)(a);if(!e)return{ok:!1,error:"Root not found"};let i=await (0,h.readWorkflow)(e.path,b);if(!i)return{ok:!1,error:"Not found"};let j=i.steps.findIndex(a=>a.id===c);if(j<0)return{ok:!1,error:"Step not found"};let k="up"===d?j-1:j+1;if(k<0||k>=i.steps.length)return{ok:!0};let l=[...i.steps],m=l[j],n=l[k];return l[j]=n,l[k]=m,i.steps=l,i.updatedAt=new Date().toISOString(),await (0,h.r$)(e.path,i),(0,f.revalidatePath)(`/roots/${a}/workflows/${b}`),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}i=(k.then?(await k)():k)[0],(0,j.D)([l,m,n,o,p,q,r,s]),(0,e.A)(l,"40b3cda4c9539a0c9afb55ba0e23e4857021921a8f",null),(0,e.A)(m,"600a350bbcb29baf6067ed5ed28db42828211ed865",null),(0,e.A)(n,"605215c899a65c42f6b9cf44d9f33d3d5fd716dbf3",null),(0,e.A)(o,"709060bd593b1d2935b1e3ca6b13efd67bdcf4027b",null),(0,e.A)(p,"60b4b4b609281244e86474b0ef5b15ef68bba5578c",null),(0,e.A)(q,"70fdee1aa10284bc4ceb226c5f6f87128502f0cab1",null),(0,e.A)(r,"6061b44857747612c4b9334d688e37c04b55815d89",null),(0,e.A)(s,"7807fc8b06217dc674657b4a2406e646f9235036cb",null),d()}catch(a){d(a)}})},9310:(a,b,c)=>{"use strict";var d=c(74830);c.o(d,"notFound")&&c.d(b,{notFound:function(){return d.notFound}}),c.o(d,"redirect")&&c.d(b,{redirect:function(){return d.redirect}})},17596:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(19963).A)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},24688:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=c(88546),e=c(60703),f=c(61052),g=c(54144),h=c(44113),i=c(43909);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},26290:(a,b,c)=>{"use strict";c.d(b,{cn:()=>f});var d=c(83243),e=c(86103);function f(...a){return(0,e.QP)((0,d.$)(a))}},30717:(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unauthorized",{enumerable:!0,get:function(){return d}}),c(75826).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},36028:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"4033251606c8875658357816f479ba43747421fd79":()=>d.AZ,"409c0330a46dee897f4a967cafb72d64a5f2f00686":()=>d.rD,"409eba05bdd5955bcdc225be3b30f7a20a10d9f4a5":()=>d.summarizeYoutubeAction,"40db33405833cbbc626c5c5b8054aab139cf4ce889":()=>d.Gh,"40fb61174fdddc91fc3e818bc8029f20f961901be1":()=>d.O1});var d=c(18746)},36049:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{"00dfb266500c0eaed081327123e33e8e64405e0f8f":()=>g.i,"4053d45053f2c7bc3c29adf973764e1cc230de2e2c":()=>h.$z,"40612d8a985876661d52bf96513ec57b455a7eef24":()=>f.u7,"4067925ceefa3ab51f1e5cab20ea52f8116996ea2b":()=>h.MU,"4072cec53c65ee86dd91994ef736ff2278ba874f40":()=>f.DW,"40b0475980d1a0630816b3648256b590d039d3be98":()=>f.uX,"40b3cda4c9539a0c9afb55ba0e23e4857021921a8f":()=>i.LK,"40d1dbabfe053eef3897784dbc3dc3de5f5a6c7c34":()=>e.nY,"40dfb206faae551ea32611e3f30cb7fe3aaf721f3b":()=>f.zm,"40e58a239c4b1c949afc6cfe3c2c39be7f6c32a669":()=>e.Pd,"600a350bbcb29baf6067ed5ed28db42828211ed865":()=>i.AY,"604bbdcdb7e0e409d3a9fd95f1c96f76c951814d55":()=>e.L4,"605215c899a65c42f6b9cf44d9f33d3d5fd716dbf3":()=>i.hb,"605eca56e0a0dc186d2817b03a8956eac6b3462efc":()=>e.OQ,"6061b44857747612c4b9334d688e37c04b55815d89":()=>i.Ll,"60b4b4b609281244e86474b0ef5b15ef68bba5578c":()=>i.nf,"60e87be335d37edd8a2aceae6ea407ba659ba1735a":()=>h.Tc,"700c82bac42f7e6cd514456ecb3e60e1f53e63165b":()=>e.h$,"709060bd593b1d2935b1e3ca6b13efd67bdcf4027b":()=>i.Xz,"70fdee1aa10284bc4ceb226c5f6f87128502f0cab1":()=>i.LH,"7807fc8b06217dc674657b4a2406e646f9235036cb":()=>i.XF,"7851bce53795cb179f10327067c4fd3bbad05858fc":()=>e.g3});var e=c(13415),f=c(3890),g=c(50995),h=c(15754),i=c(7902),j=a([e,f,h,i]);[e,f,h,i]=j.then?(await j)():j,d()}catch(a){d(a)}})},42343:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"notFound",{enumerable:!0,get:function(){return e}});let d=""+c(75826).HTTP_ERROR_FALLBACK_ERROR_CODE+";404";function e(){let a=Object.defineProperty(Error(d),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw a.digest=d,a}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},42382:(a,b,c)=>{"use strict";c.d(b,{E:()=>i});var d=c(64173);c(17240);var e=c(20483),f=c(91520),g=c(91344);let h=(0,e.F)("inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline"}},defaultVariants:{variant:"default"}});function i({className:a,variant:b="default",asChild:c=!1,...e}){let i=c?f.bL:"span";return(0,d.jsx)(i,{"data-slot":"badge","data-variant":b,className:(0,g.cn)(h({variant:b}),a),...e})}},43490:(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"forbidden",{enumerable:!0,get:function(){return d}}),c(75826).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},47452:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(19963).A)("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]])},60524:(a,b,c)=>{"use strict";c.d(b,{Separator:()=>d});let d=(0,c(54491).registerClientReference)(function(){throw Error("Attempted to call Separator() from the server but Separator is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/reflex-agent/reflex-agent/components/ui/separator.tsx","Separator")},71495:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getRedirectError:function(){return g},getRedirectStatusCodeFromError:function(){return l},getRedirectTypeFromError:function(){return k},getURLFromRedirectError:function(){return j},permanentRedirect:function(){return i},redirect:function(){return h}});let d=c(20498),e=c(52512),f=c(19121).actionAsyncStorage;function g(a,b,c){void 0===c&&(c=d.RedirectStatusCode.TemporaryRedirect);let f=Object.defineProperty(Error(e.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return f.digest=e.REDIRECT_ERROR_CODE+";"+b+";"+a+";"+c+";",f}function h(a,b){var c;throw null!=b||(b=(null==f||null==(c=f.getStore())?void 0:c.isAction)?e.RedirectType.push:e.RedirectType.replace),g(a,b,d.RedirectStatusCode.TemporaryRedirect)}function i(a,b){throw void 0===b&&(b=e.RedirectType.replace),g(a,b,d.RedirectStatusCode.PermanentRedirect)}function j(a){return(0,e.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function k(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function l(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},74830:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{ReadonlyURLSearchParams:function(){return k},RedirectType:function(){return e.RedirectType},forbidden:function(){return g.forbidden},notFound:function(){return f.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return h.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return i.unstable_rethrow}});let d=c(71495),e=c(52512),f=c(42343),g=c(43490),h=c(30717),i=c(4953);class j extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class k extends URLSearchParams{append(){throw new j}delete(){throw new j}set(){throw new j}sort(){throw new j}}function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},80432:()=>{},84913:(a,b,c)=>{"use strict";c.d(b,{$:()=>i});var d=c(63003);c(34750);var e=c(86209),f=c(65715),g=c(26290);let h=(0,e.F)("inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function i({className:a,variant:b="default",size:c="default",asChild:e=!1,...i}){let j=e?f.bL:"button";return(0,d.jsx)(j,{"data-slot":"button","data-variant":b,"data-size":c,className:(0,g.cn)(h({variant:b,size:c,className:a})),...i})}},90160:()=>{}};
@@ -1,3 +0,0 @@
1
- "use strict";exports.id=2884,exports.ids=[2884],exports.modules={12650:(a,b,c)=>{c.d(b,{E:()=>f});var d=c(64173),e=c(91344);function f({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"skeleton",className:(0,e.cn)("animate-pulse rounded-md bg-accent",a),...b})}},14425:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(42557).A)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]])},15620:(a,b,c)=>{c.d(b,{CommandBar:()=>o});var d=c(64173),e=c(17240),f=c(87671),g=c(71813),h=c(73569),i=c(44052),j=c(56911),k=c(59650),l=c(8836),m=c(88724),n=c(65048);function o({rootId:a,focusFile:b}){let c=(0,g.c)("roots"),[,o]=(0,e.useTransition)(),p=(0,f.useRouter)();return(0,d.jsx)(l.E,{label:c("commandBar.label"),children:(0,d.jsx)(n.L,{rootId:a,placeholder:c("commandBar.placeholder"),submitLabel:c("commandBar.submit"),pendingLabel:c("commandBar.submitPending"),SubmitIcon:h.A,onSubmit:async({message:d,attachments:e})=>await new Promise(f=>{o(async()=>{let g=await (0,j.g)(a,d,e,b);if(!g.ok){i.oR.error(g.error??c("commandBar.startFailed")),f(!1);return}(0,m.$d)(m.Zi.topicsChanged(a)),d.trim()&&(0,k.h)(a,g.topicId,d).then(b=>{b.ok&&(0,m.$d)(m.Zi.topicsChanged(a))}),p.push(`/roots/${a}/chat/${g.topicId}`),f(!0)})})})})}},16551:(a,b,c)=>{c.d(b,{Xi:()=>k,av:()=>l,j7:()=>j,tU:()=>h});var d=c(64173);c(17240);var e=c(20483),f=c(61193),g=c(91344);function h({className:a,orientation:b="horizontal",...c}){return(0,d.jsx)(f.Root,{"data-slot":"tabs","data-orientation":b,orientation:b,className:(0,g.cn)("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",a),...c})}let i=(0,e.F)("group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-[orientation=horizontal]/tabs:h-9 group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col data-[variant=line]:rounded-none",{variants:{variant:{default:"bg-muted",line:"gap-1 bg-transparent"}},defaultVariants:{variant:"default"}});function j({className:a,variant:b="default",...c}){return(0,d.jsx)(f.List,{"data-slot":"tabs-list","data-variant":b,className:(0,g.cn)(i({variant:b}),a),...c})}function k({className:a,...b}){return(0,d.jsx)(f.Trigger,{"data-slot":"tabs-trigger",className:(0,g.cn)("relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none dark:text-muted-foreground dark:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent","data-[state=active]:bg-background data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground","after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100",a),...b})}function l({className:a,...b}){return(0,d.jsx)(f.Content,{"data-slot":"tabs-content",className:(0,g.cn)("flex-1 outline-none",a),...b})}},16805:(a,b,c)=>{c.d(b,{ShareButton:()=>d});let d=(0,c(54491).registerClientReference)(function(){throw Error("Attempted to call ShareButton() from the server but ShareButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/reflex-agent/reflex-agent/app/_components/share-button.tsx","ShareButton")},27129:(a,b,c)=>{c.d(b,{Cz:()=>k,IK:()=>l,hN:()=>j,uA:()=>i});var d=c(73745);c(66493);var e=c(56942),f=c(53905),g=c(84579),h=c(91388);async function i(a){try{let b,c=await (0,g.generateImage)({rootId:a.rootId,prompt:a.prompt,...a.provider?{provider:a.provider}:{},...a.aspectRatio?{aspectRatio:a.aspectRatio}:{},...a.alt?{alt:a.alt}:{}}),d=n(a.alt||a.prompt),e=`![${d}](${c.urlPath})`;return a.attachToKb&&(b=await m(a.rootId,{title:a.alt||a.prompt.slice(0,80),markdown:e,meta:{provider:c.provider,prompt:a.prompt,sha:c.sha,...a.aspectRatio?{aspectRatio:a.aspectRatio}:{}}})),{ok:!0,url:c.urlPath,sha:c.sha,markdown:e,...b?{kbRelPath:b}:{}}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function j(a){try{let b=await (0,g.searchImages)({query:a.query,...a.provider?{provider:a.provider}:{},...a.count?{count:a.count}:{}});return{ok:!0,results:b}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function k(a){try{let b,c=await (0,g.attachRemote)({rootId:a.rootId,sourceUrl:a.sourceUrl}),d=n(a.alt||"image"),e=a.attribution?`
2
-
3
- _Photo: [${a.attribution.name}](${a.attribution.link})_`:"",f=`![${d}](${c.urlPath})${e}`;return a.attachToKb&&(b=await m(a.rootId,{title:a.alt||"Found image",markdown:f,meta:{source:"web",sourceUrl:a.sourceUrl,sha:c.sha,...a.attribution?{author:a.attribution.name,authorUrl:a.attribution.link}:{}}})),{ok:!0,url:c.urlPath,sha:c.sha,markdown:f,...b?{kbRelPath:b}:{}}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function l(a){try{let b,c=Buffer.from(a.base64,"base64");if(0===c.byteLength)return{ok:!1,error:"Empty upload"};if(!a.mime.startsWith("image/"))return{ok:!1,error:`Unsupported mime: ${a.mime}`};let d=await (0,h.YN)(a.rootId,c,a.mime),e=n(a.alt||"image"),f=`![${e}](${d.urlPath})`;return a.attachToKb&&(b=await m(a.rootId,{title:a.alt||"Uploaded image",markdown:f,meta:{source:"upload",sha:d.sha,mime:a.mime}})),{ok:!0,url:d.urlPath,sha:d.sha,markdown:f,...b?{kbRelPath:b}:{}}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function m(a,b){let c=await (0,f.getRoot)(a);if(!c)throw Error(`unknown rootId: ${a}`);return(await (0,e.j)({rootPath:c.path,directive:{kind:"image",title:b.title,body:b.markdown,meta:b.meta}})).relPath}function n(a){return a.replace(/[\[\]\n]/g," ").slice(0,200)}(0,c(63781).D)([i,j,k,l]),(0,d.A)(i,"40c4d8d65e1a52598d722305ac46ed1094d7f17c9c",null),(0,d.A)(j,"407f482eddc078d068d4957fa6aef8984386de3b64",null),(0,d.A)(k,"404f06bfd3d509083f7e9a64bf1184962b24dce793",null),(0,d.A)(l,"40e88f0b0d582b4170fd17598cfaa8d3ed26984ebc",null)},29130:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(42557).A)("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]])},56911:(a,b,c)=>{c.d(b,{g:()=>e});var d=c(3265);let e=(0,d.createServerReference)("7851bce53795cb179f10327067c4fd3bbad05858fc",d.callServer,void 0,d.findSourceMapURL,"startTopicAction")},59650:(a,b,c)=>{c.d(b,{h:()=>e});var d=c(3265);let e=(0,d.createServerReference)("700c82bac42f7e6cd514456ecb3e60e1f53e63165b",d.callServer,void 0,d.findSourceMapURL,"generateTopicTitleAction")},71155:(a,b,c)=>{c.d(b,{bq:()=>l,eb:()=>n,gC:()=>m,l6:()=>j,yv:()=>k});var d=c(64173);c(17240);var e=c(58405),f=c(12619),g=c(78724),h=c(13976),i=c(91344);function j({...a}){return(0,d.jsx)(h.Root,{"data-slot":"select",...a})}function k({...a}){return(0,d.jsx)(h.Value,{"data-slot":"select-value",...a})}function l({className:a,size:b="default",children:c,...f}){return(0,d.jsxs)(h.Trigger,{"data-slot":"select-trigger","data-size":b,className:(0,i.cn)("flex w-fit items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",a),...f,children:[c,(0,d.jsx)(h.Icon,{asChild:!0,children:(0,d.jsx)(e.A,{className:"size-4 opacity-50"})})]})}function m({className:a,children:b,position:c="item-aligned",align:e="center",...f}){return(0,d.jsx)(h.Portal,{children:(0,d.jsxs)(h.Content,{"data-slot":"select-content",className:(0,i.cn)("relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95","popper"===c&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",a),position:c,align:e,...f,children:[(0,d.jsx)(o,{}),(0,d.jsx)(h.Viewport,{className:(0,i.cn)("p-1","popper"===c&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:b}),(0,d.jsx)(p,{})]})})}function n({className:a,children:b,...c}){return(0,d.jsxs)(h.Item,{"data-slot":"select-item",className:(0,i.cn)("relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",a),...c,children:[(0,d.jsx)("span",{"data-slot":"select-item-indicator",className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,d.jsx)(h.ItemIndicator,{children:(0,d.jsx)(f.A,{className:"size-4"})})}),(0,d.jsx)(h.ItemText,{children:b})]})}function o({className:a,...b}){return(0,d.jsx)(h.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",a),...b,children:(0,d.jsx)(g.A,{className:"size-4"})})}function p({className:a,...b}){return(0,d.jsx)(h.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",a),...b,children:(0,d.jsx)(e.A,{className:"size-4"})})}},77317:(a,b,c)=>{c.d(b,{ShareButton:()=>p});var d=c(64173),e=c(17240);let f=(0,c(42557).A)("Share2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]);var g=c(12619),h=c(28082),i=c(66979),j=c(42324),k=c(44052),l=c(71813),m=c(3265);let n=(0,m.createServerReference)("40b69b6ca3497fcbda91ca4d2c95bbe2cc44be6950",m.callServer,void 0,m.findSourceMapURL,"createShareAction");var o=c(13156);function p(a){let b=(0,l.c)("app"),[c,m]=(0,e.useState)(!1),[p,q]=(0,e.useState)(""),[r,s]=(0,e.useTransition)(),[t,u]=(0,e.useState)(null);return c?t?(0,d.jsxs)("div",{className:"rounded border bg-card p-2 text-xs space-y-1.5 w-full max-w-sm",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-emerald-700",children:[(0,d.jsx)(g.A,{className:"h-3.5 w-3.5"}),(0,d.jsx)("span",{className:"font-medium",children:b("share.button.createdTitle")})]}),(0,d.jsx)("a",{href:t.url,target:"_blank",rel:"noopener noreferrer",className:"block font-mono text-[11px] text-violet-700 hover:underline break-all",children:t.url}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>void navigator.clipboard.writeText(t.url).then(()=>k.oR.success(b("share.button.copied"))),className:"inline-flex items-center gap-1 rounded border px-2 py-0.5 hover:bg-accent",children:[(0,d.jsx)(h.A,{className:"h-3 w-3"}),b("share.button.copy")]}),(0,d.jsx)("button",{type:"button",onClick:()=>{u(null),m(!1),q("")},className:"text-muted-foreground hover:text-foreground",children:b("share.button.done")})]})]}):(0,d.jsxs)("div",{className:"rounded border bg-card p-2 text-xs space-y-1.5 w-full max-w-sm",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)(f,{className:"h-3.5 w-3.5 text-violet-600"}),(0,d.jsx)("span",{className:"font-medium",children:b("share.button.newLink")}),(0,d.jsx)("button",{type:"button",onClick:()=>m(!1),className:"ml-auto text-muted-foreground hover:text-foreground",children:(0,d.jsx)(i.A,{className:"h-3 w-3"})})]}),(0,d.jsx)("label",{className:"block text-[10px] text-muted-foreground",children:b("share.button.passwordLabel")}),(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)(j.A,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3 w-3 text-muted-foreground pointer-events-none"}),(0,d.jsx)("input",{type:"password",value:p,onChange:a=>q(a.target.value),autoFocus:!0,placeholder:b("share.button.passwordPlaceholder"),className:"w-full rounded border bg-background pl-6 pr-2 py-1 text-xs focus:outline-none focus:ring-1 focus:ring-violet-400"})]}),(0,d.jsx)("button",{type:"button",onClick:()=>{s(async()=>{let c=await (0,o.N)(),d=await n({kind:a.kind,...a.rootId?{rootId:a.rootId}:{},...a.utilityScope?{utilityScope:a.utilityScope}:{},...a.utilityId?{utilityId:a.utilityId}:{},...a.kbRelPath?{kbRelPath:a.kbRelPath}:{},...a.label?{label:a.label}:{},...p.trim()?{password:p.trim()}:{}});if(!d.ok)return void k.oR.error(d.error);let e=c.status.publicUrl??window.location.origin,f=new URL(`/share/${d.share.id}`,e).toString();u({share:d.share,url:f}),navigator.clipboard.writeText(f).catch(()=>null),k.oR.success(c.status.running?b("share.button.created"):b("share.button.createdNoTunnel"))})},disabled:r,className:"w-full rounded bg-violet-600 text-white px-2 py-1 hover:bg-violet-700 disabled:opacity-50 inline-flex items-center justify-center gap-1",children:r?b("share.button.creating"):b("share.button.create")}),(0,d.jsx)("p",{className:"text-[10px] text-muted-foreground",children:b("share.button.footer")})]}):(0,d.jsxs)("button",{type:"button",onClick:()=>m(!0),className:a.iconOnly?"p-1 rounded hover:bg-accent text-muted-foreground hover:text-violet-700":"inline-flex items-center gap-1 rounded border px-2 py-1 text-xs hover:bg-accent",title:b("share.button.title"),children:[(0,d.jsx)(f,{className:"h-3.5 w-3.5"}),!a.iconOnly&&b("share.button.label")]})}},78724:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(42557).A)("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]])},86416:(a,b,c)=>{c.d(b,{InsertImageButton:()=>C});var d=c(64173),e=c(17240),f=c(87671),g=c(29130),h=c(71813),i=c(20583),j=c(66979),k=c(69552),l=c(65943);let m=(0,c(42557).A)("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);var n=c(44052),o=c(47071),p=c(45477),q=c(80281),r=c(71155),s=c(16551),t=c(27456),u=c(12650),v=c(3265);let w=(0,v.createServerReference)("40c4d8d65e1a52598d722305ac46ed1094d7f17c9c",v.callServer,void 0,v.findSourceMapURL,"generateAction"),x=(0,v.createServerReference)("407f482eddc078d068d4957fa6aef8984386de3b64",v.callServer,void 0,v.findSourceMapURL,"searchAction"),y=(0,v.createServerReference)("404f06bfd3d509083f7e9a64bf1184962b24dce793",v.callServer,void 0,v.findSourceMapURL,"attachAction"),z=(0,v.createServerReference)("40e88f0b0d582b4170fd17598cfaa8d3ed26984ebc",v.callServer,void 0,v.findSourceMapURL,"uploadAction"),A=["1:1","16:9","9:16","4:3","3:4","21:9"];function B({rootId:a,open:b,onOpenChange:c,onInsert:f}){let v=(0,h.c)("app"),[B,C]=(0,e.useState)(""),[D,E]=(0,e.useState)("gemini"),[F,G]=(0,e.useState)("1:1"),[H,I]=(0,e.useState)(!0),[J,K]=(0,e.useState)(null),[L,M]=(0,e.useTransition)(),[N,O]=(0,e.useState)(""),[P,Q]=(0,e.useState)("unsplash"),[R,S]=(0,e.useState)([]),[T,U]=(0,e.useTransition)(),[V,W]=(0,e.useState)(null),[X,Y]=(0,e.useState)(!0),[Z,$]=(0,e.useState)(""),[_,aa]=(0,e.useState)(!0),[ab,ac]=(0,e.useTransition)();if(!b)return null;let ad=()=>{N.trim()&&(S([]),U(async()=>{let b=await x({rootId:a,query:N.trim(),provider:P,count:12});if(!b.ok)return void n.oR.error(b.error);S(b.results)}))};return(0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",onClick:a=>{a.target===a.currentTarget&&c(!1)},children:[(0,d.jsx)("div",{"aria-hidden":!0,className:"absolute inset-0 bg-background/80 backdrop-blur-sm",onClick:()=>c(!1)}),(0,d.jsxs)("div",{className:"relative bg-card border rounded-lg shadow-xl w-full max-w-3xl max-h-[85vh] flex flex-col",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3 border-b",children:[(0,d.jsx)(g.A,{className:"h-4 w-4 text-violet-600"}),(0,d.jsx)("h2",{className:"text-sm font-medium flex-1",children:v("images.titleHeader")}),(0,d.jsx)(i.$,{type:"button",size:"icon",variant:"ghost",className:"h-7 w-7",onClick:()=>c(!1),children:(0,d.jsx)(j.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)(s.tU,{defaultValue:"generate",className:"flex-1 min-h-0 flex flex-col",children:[(0,d.jsxs)(s.j7,{className:"mx-4 mt-3 self-start",children:[(0,d.jsxs)(s.Xi,{value:"generate",children:[(0,d.jsx)(k.A,{className:"mr-1 h-3.5 w-3.5"})," ",v("images.tabGenerate")]}),(0,d.jsxs)(s.Xi,{value:"search",children:[(0,d.jsx)(l.A,{className:"mr-1 h-3.5 w-3.5"})," ",v("images.tabSearch")]}),(0,d.jsxs)(s.Xi,{value:"upload",children:[(0,d.jsx)(m,{className:"mr-1 h-3.5 w-3.5"})," ",v("images.tabUpload")]})]}),(0,d.jsxs)(t.F,{className:"flex-1 min-h-0",children:[(0,d.jsxs)(s.av,{value:"generate",className:"px-4 py-4 space-y-3",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(q.J,{htmlFor:"img-prompt",children:v("images.promptLabel")}),(0,d.jsx)(p.T,{id:"img-prompt",value:B,onChange:a=>C(a.target.value),placeholder:v("images.promptPlaceholder"),rows:4})]}),(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(q.J,{children:v("images.providerLabel")}),(0,d.jsxs)(r.l6,{value:D,onValueChange:a=>E(a),children:[(0,d.jsx)(r.bq,{children:(0,d.jsx)(r.yv,{})}),(0,d.jsxs)(r.gC,{children:[(0,d.jsx)(r.eb,{value:"gemini",children:"Gemini Nano Banana"}),(0,d.jsx)(r.eb,{value:"codex",children:"Codex $imagegen"})]})]})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(q.J,{children:v("images.aspectLabel")}),(0,d.jsxs)(r.l6,{value:F,onValueChange:G,children:[(0,d.jsx)(r.bq,{children:(0,d.jsx)(r.yv,{})}),(0,d.jsx)(r.gC,{children:A.map(a=>(0,d.jsx)(r.eb,{value:a,children:a},a))})]})]})]}),(0,d.jsxs)("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:H,onChange:a=>I(a.target.checked)}),v("images.saveToKb")]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(i.$,{type:"button",size:"sm",onClick:()=>{B.trim()&&(K(null),M(async()=>{let b=await w({rootId:a,prompt:B.trim(),provider:D,aspectRatio:F,attachToKb:H});if(!b.ok)return void n.oR.error(b.error);K({url:b.url,markdown:b.markdown,...b.kbRelPath?{kbRelPath:b.kbRelPath}:{}})}))},disabled:L||!B.trim(),children:L?v("images.generating"):v("images.generate")}),L&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:v("images.takesAMinute")})]}),L?(0,d.jsx)(u.E,{className:"h-64 w-full"}):J?(0,d.jsxs)("div",{className:"space-y-2 border rounded p-3",children:[(0,d.jsx)("img",{src:J.url,alt:B,className:"max-h-80 mx-auto rounded"}),(0,d.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,d.jsx)(i.$,{type:"button",size:"sm",variant:"outline",onClick:()=>K(null),children:v("images.again")}),(0,d.jsx)(i.$,{type:"button",size:"sm",onClick:()=>{J&&(f?.(J),n.oR.success(J.kbRelPath?v("images.savedToKb",{path:J.kbRelPath}):v("images.ready")),c(!1))},children:v("images.insert")})]})]}):null]}),(0,d.jsxs)(s.av,{value:"search",className:"px-4 py-4 space-y-3",children:[(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(o.p,{value:N,onChange:a=>O(a.target.value),placeholder:v("images.searchPlaceholder"),onKeyDown:a=>{"Enter"===a.key&&ad()}}),(0,d.jsxs)(r.l6,{value:P,onValueChange:a=>Q(a),children:[(0,d.jsx)(r.bq,{className:"w-36",children:(0,d.jsx)(r.yv,{})}),(0,d.jsxs)(r.gC,{children:[(0,d.jsx)(r.eb,{value:"unsplash",children:"Unsplash"}),(0,d.jsx)(r.eb,{value:"pexels",children:"Pexels"}),(0,d.jsx)(r.eb,{value:"brave",children:v("images.braveWeb")})]})]}),(0,d.jsx)(i.$,{type:"button",size:"sm",onClick:ad,disabled:T||!N.trim(),children:v("images.find")})]}),(0,d.jsxs)("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:X,onChange:a=>Y(a.target.checked)}),v("images.saveToKb")]}),T&&0===R.length?(0,d.jsx)("div",{className:"grid grid-cols-3 gap-2",children:Array.from({length:6}).map((a,b)=>(0,d.jsx)(u.E,{className:"h-32 w-full"},b))}):R.length>0?(0,d.jsx)("div",{className:"grid grid-cols-3 gap-2",children:R.map(b=>(0,d.jsxs)("button",{type:"button",disabled:null!==V,onClick:()=>{W(b.url),U(async()=>{let d=await y({rootId:a,sourceUrl:b.url,alt:N.trim()||"image",attribution:b.attribution,attachToKb:X});if(W(null),!d.ok)return void n.oR.error(d.error);f?.({url:d.url,markdown:d.markdown,...d.kbRelPath?{kbRelPath:d.kbRelPath}:{}}),n.oR.success(d.kbRelPath?v("images.savedToKb",{path:d.kbRelPath}):v("images.savedToProject")),c(!1)})},className:"group relative overflow-hidden rounded border hover:border-violet-500 disabled:opacity-50",title:`${b.attribution.name} \xb7 ${b.provider}`,children:[(0,d.jsx)("img",{src:b.thumb,alt:"",className:"h-32 w-full object-cover"}),(0,d.jsx)("div",{className:"absolute bottom-0 inset-x-0 px-1.5 py-0.5 text-[10px] bg-black/60 text-white truncate",children:b.attribution.name}),V===b.url&&(0,d.jsx)("div",{className:"absolute inset-0 bg-black/40 flex items-center justify-center text-xs text-white",children:v("images.saving")})]},b.url))}):(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:v("images.noKeys")})]}),(0,d.jsxs)(s.av,{value:"upload",className:"px-4 py-4 space-y-3",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(q.J,{htmlFor:"img-alt",children:v("images.altLabel")}),(0,d.jsx)(o.p,{id:"img-alt",value:Z,onChange:a=>$(a.target.value),placeholder:v("images.altPlaceholder")})]}),(0,d.jsxs)("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:_,onChange:a=>aa(a.target.checked)}),v("images.saveToKb")]}),(0,d.jsx)(o.p,{type:"file",accept:"image/*",disabled:ab,onChange:b=>{let d=b.target.files?.[0];d&&ac(async()=>{let b=function(a){let b=new Uint8Array(a),c="";for(let a=0;a<b.length;a+=32768){let d=b.subarray(a,a+32768);c+=String.fromCharCode.apply(null,Array.from(d))}return btoa(c)}(await d.arrayBuffer()),e=await z({rootId:a,base64:b,mime:d.type,alt:Z||d.name.replace(/\.[^.]+$/,""),attachToKb:_});if(!e.ok)return void n.oR.error(e.error);f?.({url:e.url,markdown:e.markdown,...e.kbRelPath?{kbRelPath:e.kbRelPath}:{}}),n.oR.success(e.kbRelPath?v("images.savedToKb",{path:e.kbRelPath}):v("images.uploaded")),c(!1)})}}),ab&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:v("images.uploading")})]})]})]})]})]})}function C({rootId:a,redirectToKb:b=!0}){let[c,j]=(0,e.useState)(!1),k=(0,f.useRouter)(),l=(0,h.c)("app");return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(i.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>j(!0),children:[(0,d.jsx)(g.A,{className:"mr-1 h-4 w-4"})," ",l("images.button")]}),(0,d.jsx)(B,{rootId:a,open:c,onOpenChange:j,onInsert:({kbRelPath:c})=>{if(b&&c){let b=c.split("/").map(encodeURIComponent).join("/");k.push(`/roots/${a}/kb/${b}`)}}})]})}},86673:(a,b,c)=>{c.d(b,{InsertImageButton:()=>d});let d=(0,c(54491).registerClientReference)(function(){throw Error("Attempted to call InsertImageButton() from the server but InsertImageButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/reflex-agent/reflex-agent/app/_components/kb/insert-image-button.tsx","InsertImageButton")},88842:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(19963).A)("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]])}};
@@ -1,4 +0,0 @@
1
- "use strict";exports.id=4602,exports.ids=[4602],exports.modules={13156:(a,b,c)=>{c.d(b,{N:()=>e});var d=c(3265);let e=(0,d.createServerReference)("001c170e4ca66ddaeda847e8dfddc6dda962de8d48",d.callServer,void 0,d.findSourceMapURL,"getTunnelStatusAction")},16856:(a,b,c)=>{c.d(b,{Is:()=>g,L8:()=>h,ns:()=>i});var d=c(73745);c(66493);var e=c(65326),f=c(30878);async function g(a){try{if("utility"===a.kind&&(!a.utilityId||!a.utilityScope))return{ok:!1,error:"share kind=utility requires utilityId + utilityScope"};if("kb-file"===a.kind&&(!a.rootId||!a.kbRelPath))return{ok:!1,error:"share kind=kb-file requires rootId + kbRelPath"};if(("kb-tree"===a.kind||"project"===a.kind)&&!a.rootId)return{ok:!1,error:`share kind=${a.kind} requires rootId`};let b=await (0,f.cn)(a);return(0,e.revalidatePath)("/settings"),{ok:!0,share:b}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function h(){return{shares:await (0,f.Bg)()}}async function i(a){let b=await (0,f.Ru)(a);return(0,e.revalidatePath)("/settings"),{ok:b}}(0,c(63781).D)([g,h,i]),(0,d.A)(g,"40b69b6ca3497fcbda91ca4d2c95bbe2cc44be6950",null),(0,d.A)(h,"0071695044eff98e12d519fef79842c9d6665dde0d",null),(0,d.A)(i,"4013e9544a74bece120a57db471d0b3d5a86d30248",null)},30878:(a,b,c)=>{c.d(b,{BE:()=>o,Bg:()=>m,Ru:()=>q,cn:()=>p,er:()=>n});var d=c(73024),e=c(76760),f=c.n(e),g=c(77598),h=c.n(g),i=c(73652);let j=f().join((0,i._)(),"shares.json");async function k(){try{let a=await d.promises.readFile(j,"utf8"),b=JSON.parse(a);if(b&&Array.isArray(b.shares))return b}catch{}return{version:1,shares:[]}}async function l(a){await d.promises.mkdir(f().dirname(j),{recursive:!0}),await d.promises.writeFile(j,JSON.stringify(a,null,2)+"\n",{mode:384})}async function m(){return(await k()).shares}async function n(a){return(await k()).shares.find(b=>b.id===a)??null}function o(a,b){if(!a.passwordHash)return!0;if(!a.passwordSalt)return!1;let c=h().createHash("sha256").update(a.passwordSalt+":"+b).digest("hex");return h().timingSafeEqual(Buffer.from(c,"hex"),Buffer.from(a.passwordHash,"hex"))}async function p(a){let b=await k(),c={id:function(){let a="abcdefghjkmnpqrstuvwxyz23456789",b="";for(let c=0;c<12;c++)b+=a[h().randomInt(0,a.length)];return b}(),kind:a.kind,createdAt:new Date().toISOString(),...a.rootId?{rootId:a.rootId}:{},...a.utilityScope?{utilityScope:a.utilityScope}:{},...a.utilityId?{utilityId:a.utilityId}:{},...a.kbRelPath?{kbRelPath:a.kbRelPath}:{},...a.expiresAt?{expiresAt:a.expiresAt}:{},...a.label?{label:a.label}:{}};if(a.password){let{salt:b,hash:d}=function(a){let b=h().randomBytes(16).toString("hex"),c=h().createHash("sha256").update(b+":"+a).digest("hex");return{salt:b,hash:c}}(a.password);c.passwordSalt=b,c.passwordHash=d}return b.shares=[c,...b.shares],await l(b),c}async function q(a){let b=await k(),c=b.shares.length;return b.shares=b.shares.filter(b=>b.id!==a),b.shares.length!==c&&(await l(b),!0)}},42382:(a,b,c)=>{c.d(b,{E:()=>i});var d=c(64173);c(17240);var e=c(20483),f=c(91520),g=c(91344);let h=(0,e.F)("inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline"}},defaultVariants:{variant:"default"}});function i({className:a,variant:b="default",asChild:c=!1,...e}){let i=c?f.bL:"span";return(0,d.jsx)(i,{"data-slot":"badge","data-variant":b,className:(0,g.cn)(h({variant:b}),a),...e})}},47071:(a,b,c)=>{c.d(b,{p:()=>f});var d=c(64173);c(17240);var e=c(91344);function f({className:a,type:b,...c}){return(0,d.jsx)("input",{type:b,"data-slot":"input",className:(0,e.cn)("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",a),...c})}},60524:(a,b,c)=>{c.d(b,{Separator:()=>d});let d=(0,c(54491).registerClientReference)(function(){throw Error("Attempted to call Separator() from the server but Separator is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/reflex-agent/reflex-agent/components/ui/separator.tsx","Separator")},80281:(a,b,c)=>{c.d(b,{J:()=>g});var d=c(64173);c(17240);var e=c(90044),f=c(91344);function g({className:a,...b}){return(0,d.jsx)(e.Root,{"data-slot":"label",className:(0,f.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",a),...b})}},92814:(a,b,c)=>{c.d(b,{Ng:()=>s,bt:()=>v,Zl:()=>w,Nt:()=>t,Fm:()=>u});var d=c(73745);c(66493);var e=c(65326),f=c(36017),g=c(31421),h=c(73024),i=c(76760),j=c.n(i),k=c(73652);let l="__reflex_ngrok_tunnel__";function m(){return globalThis[l]}function n(a){globalThis[l]=a}async function o(a){let b;if(!a.authtoken)return{ok:!1,error:"ngrok authtoken is required"};let c=m();if(c&&null===c.child.exitCode)return{ok:!1,error:"Tunnel already running — stop it first."};let d=(0,k._)();await h.promises.mkdir(d,{recursive:!0});let e=j().join(d,"ngrok.yml");await h.promises.writeFile(e,`version: 3
2
- agent:
3
- authtoken: ${a.authtoken}
4
- `,{mode:384});let f=["http",String(a.port),"--config",e,"--log","stdout","--log-format","json"];a.domain&&f.push(`--domain=${a.domain}`);try{b=(0,g.spawn)("ngrok",f,{detached:!1,stdio:["ignore","pipe","pipe"]})}catch(a){return{ok:!1,error:"Failed to spawn ngrok — is the CLI installed and on PATH? "+(a instanceof Error?a.message:String(a))}}return b.on("error",a=>{console.error("[ngrok] spawn error:",a)}),b.on("exit",(a,c)=>{console.log(`[ngrok] tunnel exited code=${a} signal=${c??"-"}`);let d=m();d?.child===b&&n(void 0)}),b.stdout?.on("data",a=>{let b=a.toString().trim();b&&console.log("[ngrok]",b)}),b.stderr?.on("data",a=>{let b=a.toString().trim();b&&console.error("[ngrok!]",b)}),n({child:b,startedAt:new Date().toISOString(),port:a.port,...a.domain?{domain:a.domain}:{}}),{ok:!0}}async function p(){let a=Date.now()+6e3;for(;Date.now()<a;){try{let a=await fetch("http://127.0.0.1:4040/api/tunnels");if(a.ok){let b=await a.json(),c=b.tunnels.find(a=>"https"===a.proto),d=b.tunnels[0],e=c?.public_url??d?.public_url;if(e){let a=m();return a&&(a.publicUrl=e,n(a)),e}}}catch{}await new Promise(a=>setTimeout(a,400))}return null}async function q(){return new Promise(a=>{try{let b=(0,g.spawn)("ngrok",["version"],{stdio:["ignore","pipe","ignore"]}),c="";b.stdout?.on("data",a=>{c+=a.toString()}),b.on("close",()=>a(c.trim()||null)),b.on("error",()=>a(null))}catch{a(null)}})}async function r(a){if(!a)return{ok:!1,error:"ngrok API key not configured"};try{let b=await fetch("https://api.ngrok.com/reserved_domains",{headers:{Authorization:`Bearer ${a}`,"Ngrok-Version":"2"}});if(!b.ok)return{ok:!1,error:`ngrok API ${b.status}: ${(await b.text()).slice(0,200)}`};let c=await b.json();return{ok:!0,domains:(c.reserved_domains??[]).map(a=>({id:a.id,domain:a.domain,region:a.region}))}}catch(a){return{ok:!1,error:"ngrok API call failed: "+(a instanceof Error?a.message:String(a))}}}async function s(){let a=function(){let a=m();return a?null!==a.child.exitCode?(n(void 0),{running:!1}):{running:!0,...a.publicUrl?{publicUrl:a.publicUrl}:{},startedAt:a.startedAt,port:a.port,...a.domain?{domain:a.domain}:{}}:{running:!1}}();return{status:a,cliVersion:await q(),publicHost:process.env.REFLEX_NGROK_HOST??null}}async function t(){let a=await (0,f.loadSettings)();if(!a.ngrok.authtoken)return{ok:!1,error:"ngrok.authtoken is empty — fill it in the settings above."};let b=await o({port:a.ngrok.port,authtoken:a.ngrok.authtoken,...a.ngrok.domain?{domain:a.ngrok.domain}:{}});if(!b.ok)return b;let c=await p();if(c)try{let a=new URL(c);process.env.REFLEX_NGROK_HOST=a.host}catch{}return(0,e.revalidatePath)("/settings"),{ok:!0,publicUrl:c}}async function u(){let a=await new Promise(a=>{let b=m();if(!b)return void a(!1);let{child:c}=b,d=!1,e=b=>{d||(d=!0,n(void 0),a(b))};if(c.once("exit",()=>e(!0)),null!==c.exitCode)return void e(!0);try{c.kill("SIGTERM")}catch(a){console.error("[ngrok] SIGTERM failed:",a)}setTimeout(()=>{if(!d){try{c.kill("SIGKILL")}catch{}e(!0)}},2500)});return delete process.env.REFLEX_NGROK_HOST,(0,e.revalidatePath)("/settings"),{ok:a}}async function v(a){try{let b=await (0,f.loadSettings)(),c={...b,ngrok:{...b.ngrok,...a}};return await (0,f.saveSettings)(c),(0,e.revalidatePath)("/settings"),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function w(){return r((await (0,f.loadSettings)()).ngrok.apiKey)}(0,c(63781).D)([s,t,u,v,w]),(0,d.A)(s,"001c170e4ca66ddaeda847e8dfddc6dda962de8d48",null),(0,d.A)(t,"0097e876d40102af2294a466bf0493e98a349be64d",null),(0,d.A)(u,"001a9577d3213e1fc1ba98d25f5d35d1bb80b6f6b5",null),(0,d.A)(v,"40838a6409739d57784d10d3359ebff27afaed948f",null),(0,d.A)(w,"00bcd0834900b983b5391eef5b834e7ec93c8d7fac",null)}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=495,exports.ids=[495],exports.modules={879:(a,b,c)=>{c.d(b,{G:()=>k});var d=c(73024),e=c(76760),f=c.n(e),g=c(55136),h=c.n(g),i=c(54287);class j{constructor(a,b){this.root=a,this.layers=b}static async create(a){return new j(a,[]).enter(a)}async enter(a){let b,c=f().join(a,i.KZ);try{b=await d.promises.readFile(c,"utf8")}catch{return this}let e=h()().add(b);return new j(this.root,[...this.layers,{dir:a,ig:e}])}ignores(a){let b=f().basename(a);if(i.Lj.has(b))return!0;for(let{dir:b,ig:c}of this.layers){let d=f().relative(b,a);if(!(!d||d.startsWith(".."))&&c.ignores(d))return!0}return!1}}async function*k(a,b={}){let{maxDepth:c=1/0,followSymlinks:d=!1}=b,e=f().resolve(a),g=await j.create(e);yield{abs:e,rel:".",isDir:!0},yield*l(e,e,g,0,c,d)}async function*l(a,b,c,e,g,h){let i;if(!(e>=g)){try{i=await d.promises.readdir(b,{withFileTypes:!0})}catch{return}for(let d of(i.sort((a,b)=>a.name.localeCompare(b.name)),i)){var j,k;let i=f().join(b,d.name);if(c.ignores(i))continue;let n=d.isSymbolicLink();if(n&&!h)continue;let o=d.isDirectory()||n&&await m(i),p=(j=a,k=i,f().relative(j,k).split(f().sep).join("/"));if(yield{abs:i,rel:p,isDir:o},o){let b=await c.enter(i);yield*l(a,i,b,e+1,g,h)}}}}async function m(a){try{return(await d.promises.stat(a)).isDirectory()}catch{return!1}}},4168:(a,b,c)=>{c.d(b,{S:()=>j});var d=c(73745);c(66493);var e=c(76760),f=c.n(e),g=c(53905),h=c(54287),i=c(879);async function j(a,b){try{let d=await (0,g.getRoot)(a);if(!d)return{ok:!1,error:"Root not found"};let e=(b??"").toLowerCase().trim(),j=[];try{let{listUtilities:b}=await Promise.resolve().then(c.bind(c,8118));for(let c of(await b({rootId:a})))j.push({kind:"utility",relPath:`util:${c.scope}/${c.manifest.id}`,absPath:"",label:`${c.manifest.name} (${c.scope})`,parent:"utilities"})}catch{}for await(let a of(0,i.G)((0,h.FF)(d.path))){if(a.isDir||!a.rel.toLowerCase().endsWith(".md")||a.rel.startsWith("topics/")||a.rel.startsWith("attachments/"))continue;let b=`${h.fW}/${a.rel}`;j.push({kind:"kb",relPath:b,absPath:a.abs,label:a.rel,parent:"."===f().dirname(a.rel)?h.fW:`${h.fW}/${f().dirname(a.rel)}`})}for await(let a of(0,i.G)(d.path))a.isDir||j.push({kind:"file",relPath:a.rel,absPath:a.abs,label:a.rel,parent:"."===f().dirname(a.rel)?"":f().dirname(a.rel)});let k=e?j.filter(a=>{let b=a.relPath.toLowerCase();return f().basename(a.relPath).toLowerCase().includes(e)||b.includes(e)}):j,l={utility:0,kb:1,file:2};return k.sort((a,b)=>{if(a.kind!==b.kind)return l[a.kind]-l[b.kind];if(e){let c=f().basename(a.label).toLowerCase(),d=f().basename(b.label).toLowerCase(),g=+!c.startsWith(e),h=+!d.startsWith(e);if(g!==h)return g-h}return a.relPath.localeCompare(b.relPath)}),{ok:!0,items:k.slice(0,30)}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}(0,c(63781).D)([j]),(0,d.A)(j,"6034d09f9e8285e91b018762f33686948f191afe1b",null)},8836:(a,b,c)=>{c.d(b,{E:()=>g});var d=c(64173),e=c(71813),f=c(69552);function g({label:a,headerRight:b,children:c}){let g=(0,e.c)("roots"),h=a??g("commandBarFrame.label");return(0,d.jsx)("div",{className:"border-t bg-background",children:(0,d.jsx)("div",{className:"mx-auto max-w-3xl px-6 py-5",children:(0,d.jsx)("div",{className:"reflex-gradient rounded-2xl p-[2px] shadow-[0_8px_40px_-12px_oklch(0.55_0.2_290/0.45)]",children:(0,d.jsxs)("div",{className:"rounded-[14px] bg-background/85 backdrop-blur-xl px-5 py-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,d.jsx)("span",{className:"reflex-gradient inline-flex h-6 w-6 items-center justify-center rounded-full text-white shadow-sm",children:(0,d.jsx)(f.A,{className:"h-3.5 w-3.5"})}),(0,d.jsx)("span",{className:"text-[11px] uppercase tracking-[0.18em] text-muted-foreground",children:h}),b&&(0,d.jsx)("span",{className:"ml-auto flex items-center gap-1",children:b})]}),c]})})})})}},26290:(a,b,c)=>{c.d(b,{cn:()=>f});var d=c(83243),e=c(86103);function f(...a){return(0,e.QP)((0,d.$)(a))}},45477:(a,b,c)=>{c.d(b,{T:()=>f});var d=c(64173);c(17240);var e=c(91344);function f({className:a,...b}){return(0,d.jsx)("textarea",{"data-slot":"textarea",className:(0,e.cn)("flex field-sizing-content min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40",a),...b})}},63337:(a,b,c)=>{c.d(b,{x:()=>h});var d=c(73745);c(66493);var e=c(49410),f=c(8118),g=c(53905);async function h(a){try{let b=(a.query??"").trim().toLowerCase();switch(a.commandId){case"skill":{let c=a.rootId?await (0,g.getRoot)(a.rootId):null,d=(await (0,e.bG)(c?.path,a.rootId)).map(a=>({value:a.id,label:a.title,description:`${"project"===a.scope?"[project] ":"global"===a.scope?"[global] ":""}${a.description}`})).filter(a=>i(a,b));return{ok:!0,supported:!0,items:d}}case"util":{let c=(await (0,f.listUtilities)(a.rootId?{rootId:a.rootId}:{})).map(a=>({value:a.manifest.id,label:a.manifest.name,description:a.manifest.description}));return{ok:!0,supported:!0,items:c.filter(a=>i(a,b))}}default:return{ok:!0,supported:!1}}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}function i(a,b){return!b||a.value.toLowerCase().includes(b)||a.label.toLowerCase().includes(b)||(a.description?.toLowerCase().includes(b)??!1)}(0,c(63781).D)([h]),(0,d.A)(h,"40bdae167a0ac35d0620ac1cb32b2c44a064a3dce0",null)},65048:(a,b,c)=>{c.d(b,{L:()=>O});var d=c(64173),e=c(17240),f=c(71813),g=c(54249),h=c(75430),i=c(34719),j=c(56189),k=c(41856),l=c(33120),m=c(69552),n=c(97338),o=c(25299),p=c(63387),q=c(53834),r=c(97162),s=c(62261),t=c(77311),u=c(25436),v=c(24555),w=c(68669),x=c(79145),y=c(66979),z=c(87671),A=c(44052),B=c(20583),C=c(45477),D=c(91344),E=c(3265);let F=(0,E.createServerReference)("6034d09f9e8285e91b018762f33686948f191afe1b",E.callServer,void 0,E.findSourceMapURL,"searchMentionsAction"),G=[{id:"plan",trigger:"plan",label:"/plan",description:"Show the plan first — Reflex lays out the steps and waits for approval.",kind:"agent-mode",usage:"/plan <task>",icon:"ListChecks"},{id:"goal",trigger:"goal",label:"/goal",description:"Set a goal — Reflex will work toward it on its own, without reminders.",kind:"agent-mode",usage:"/goal <what to achieve>",icon:"Target"},{id:"research",trigger:"research",label:"/research",description:"Deep research on a topic — web search + summary with sources.",kind:"agent-mode",usage:"/research <topic>",icon:"Telescope"},{id:"widget",trigger:"widget",label:"/widget",description:"Create a card on the space dashboard.",kind:"agent-mode",usage:"/widget <what to show>",icon:"LayoutGrid"},{id:"workflow",trigger:"workflow",label:"/workflow",description:"Build a recipe — linear step-based automation for the task.",kind:"agent-mode",usage:"/workflow <what to automate>",icon:"Workflow"},{id:"new-utility",trigger:"new-utility",label:"/new-utility",description:"Build a Reflex mini-app (utility) — TypeScript, runs inside Reflex.",kind:"agent-mode",usage:"/new-utility <name — what it does>",icon:"PackagePlus"},{id:"distill",trigger:"distill",label:"/distill",description:"Pull a URL into the KB — extract key facts, action items, and links to related notes.",kind:"agent-mode",usage:"/distill <url> [focus]",icon:"BookOpenCheck"},{id:"practice",trigger:"practice",label:"/practice",description:"Roleplay a tough conversation — Reflex plays the counterpart and coaches you between turns.",kind:"agent-mode",usage:"/practice <scenario>",icon:"MessagesSquare"},{id:"reflect",trigger:"reflect",label:"/reflect",description:"Daily check-in — three questions adapted to your recent entries, saved as a journal note.",kind:"agent-mode",usage:"/reflect",allowEmpty:!0,icon:"Sunrise"},{id:"remember",trigger:"remember",label:"/remember",description:"Save a note — straight into memory, no AI involved.",kind:"direct",usage:"/remember <what to remember>",icon:"BookmarkPlus"},{id:"mcp",trigger:"mcp",label:"/mcp",description:"Connect an external service (setup wizard opens in chat).",kind:"agent-mode",usage:"/mcp <what you need>",icon:"PackagePlus"},{id:"skill",trigger:"skill",label:"/skill",description:"Attach a role — a ready-made instruction set for this conversation.",kind:"agent-mode",usage:"/skill <role-id> [prompt]",icon:"Sparkles"},{id:"delete-topic",trigger:"delete-topic",label:"/delete-topic",description:"Delete this conversation (with confirmation).",kind:"direct",usage:"/delete-topic",requiresConfirm:!0,allowEmpty:!0,icon:"Trash2"},{id:"clear-project",trigger:"clear-project",label:"/clear-project",description:"DANGER: clear the space — all conversations, cards, memory. Double confirmation.",kind:"direct",usage:"/clear-project",requiresConfirm:!0,allowEmpty:!0,icon:"AlertOctagon"},{id:"util",trigger:"util",label:"/util",description:"Open a mini-app (by partial name or from the list).",kind:"direct",usage:"/util <partial name or id>",allowEmpty:!0,icon:"Boxes"},{id:"help",trigger:"help",label:"/help",description:"List available commands.",kind:"direct",usage:"/help",allowEmpty:!0,icon:"HelpCircle"}],H=(0,E.createServerReference)("40bdae167a0ac35d0620ac1cb32b2c44a064a3dce0",E.callServer,void 0,E.findSourceMapURL,"listCommandArgsAction");E.callServer,E.findSourceMapURL;let I=(0,E.createServerReference)("60ba073544a348142fbe98ca3676c4210ea01f8c9a",E.callServer,void 0,E.findSourceMapURL,"rememberAction"),J=(0,E.createServerReference)("60549d4171cc3db1d00154086b9c78673919fe8130",E.callServer,void 0,E.findSourceMapURL,"deleteCurrentTopicCommand"),K=(0,E.createServerReference)("603781f5185ae13a64b2705476b3a23e25fa0baf45",E.callServer,void 0,E.findSourceMapURL,"openUtilityAction"),L=(0,E.createServerReference)("40304a69b712614e58f05efb074ce0eace287883ee",E.callServer,void 0,E.findSourceMapURL,"clearProjectAction");var M=c(88724);let N={ListChecks:g.A,Target:h.A,Telescope:i.A,LayoutGrid:j.A,BookmarkPlus:k.A,PackagePlus:l.A,Sparkles:m.A,Trash2:n.A,AlertOctagon:o.A,HelpCircle:p.A,Workflow:q.A,Boxes:r.A};function O({rootId:a,topicId:b,placeholder:c,submitLabel:g,pendingLabel:h,SubmitIcon:i,disabled:j,onSubmit:k,active:l,onStop:m,clarifyLabel:n,stopLabel:o}){let p=(0,f.c)("roots"),q=n??p("chatInputForm.clarifyLabel"),r=o??p("chatInputForm.stopLabel"),v=(0,z.useRouter)(),[w,x]=(0,e.useState)(""),[y,E]=(0,e.useState)([]),[I,J]=(0,e.useState)(!1),[K,L]=(0,e.useState)(!1),[M,N]=(0,e.useState)(!1),[O,U]=(0,e.useState)(G),V=(0,e.useRef)(null),W=(0,e.useRef)(null),[X,Y]=(0,e.useState)(null),[Z,$]=(0,e.useState)([]),[_,aa]=(0,e.useState)(0),[ab,ac]=(0,e.useState)(!1),ad=(0,e.useRef)(0),[ae,af]=(0,e.useState)(null),[ag,ah]=(0,e.useState)(null),ai=(0,e.useRef)(0);(0,e.useCallback)(()=>{let a=V.current;a&&(a.style.height="auto",a.style.height=Math.min(a.scrollHeight,240)+"px")},[]);let aj=(0,e.useCallback)((b,c)=>{let d=c;for(;d>0;){let a=b[d-1];if("@"===a){d-=1;break}if(/\s/.test(a)){d=-1;break}d-=1}if(d<0||"@"!==b[d]||d>0&&!/\s/.test(b[d-1])){Y(null),$([]);return}let e=b.slice(d+1,c);Y({start:d,end:c}),aa(0),ac(!0);let f=++ad.current;(async()=>{let b=await F(a,e);ad.current===f&&(ac(!1),$(b.ok?b.items:[]))})()},[a]),ak=(0,e.useCallback)(()=>{Y(null),$([]),ad.current++},[]),al=(0,e.useCallback)((b,c)=>{if(!b.startsWith("/")){af(null),ah(null);return}let d=b.indexOf(" ");if(d<0){ah(null);let a=b.slice(1).toLowerCase(),c=O.filter(b=>b.trigger.startsWith(a)||b.label.toLowerCase().includes(a)||b.description.toLowerCase().includes(a));af(c.length?{items:c,index:0}:null);return}af(null);let e=b.slice(1,d),f=O.find(a=>a.trigger===e);if(!f)return void ah(null);let g=d+1,h=c>=g?c:b.length;if(b.slice(h).indexOf(" ")>=0)return void ah(null);let i=b.slice(g,h),j=++ai.current;ah(a=>({cmd:f,items:a?.cmd.id===f.id?a.items:[],index:0,start:g,end:h,loading:!0})),(async()=>{let b=await H({commandId:f.id,query:i,rootId:a});if(ai.current===j){if(!b.ok||!b.supported||0===b.items.length)return ah(null);ah({cmd:f,items:b.items,index:0,start:g,end:h,loading:!1})}})()},[a,O]),am=(0,e.useCallback)(()=>{af(null),ah(null)},[]),an=(0,e.useCallback)(a=>{let b=V.current;ah(c=>{if(!c)return null;let d=w.slice(0,c.start),e=w.slice(c.end),f=`${a.value} `;x(d+f+e);let g=d.length+f.length;return requestAnimationFrame(()=>{b&&(b.focus(),b.setSelectionRange(g,g))}),null})},[w]),ao=(0,e.useCallback)(a=>{let b=V.current,c=`/${a.trigger}${a.allowEmpty&&"direct"===a.kind?"":" "}`;x(c),af(null),requestAnimationFrame(()=>{b&&(b.focus(),b.setSelectionRange(c.length,c.length))})},[]),ap=(0,e.useCallback)(a=>{let b=V.current;if(!b||!X)return;let c=w.slice(0,X.start),d=w.slice(X.end),e=`@${a.relPath} `;x(c+e+d),ak();let f=c.length+e.length;requestAnimationFrame(()=>{b.focus(),b.setSelectionRange(f,f)})},[w,X,ak]),aq=(0,e.useCallback)(async b=>{if(0!==b.length){J(!0);try{let c=new FormData;for(let a of b)c.append("files",a);let d=await fetch(`/api/roots/${a}/attachments`,{method:"POST",body:c});if(!d.ok){let a=await d.json().catch(()=>({}));A.oR.error(a.error??p("chatInputForm.uploadFailed",{status:d.status}));return}let e=await d.json();E(a=>[...a,...e.files])}catch(a){A.oR.error(a instanceof Error?a.message:String(a))}finally{J(!1)}}},[a]),ar=w.trim().length>0||y.length>0,as=l&&m?ar?"clarify":"stop":"send",at=(0,e.useCallback)(async()=>{if(K)return;if("stop"===as){if(!m)return;L(!0);try{await m()}finally{L(!1)}return}let c=w.trim();if(!c&&0===y.length||j&&"send"===as)return;let d=function(a,b=[]){let c=a.trim();if(!c.startsWith("/"))return null;let d=/^\/([a-z][a-z0-9-]*)(?:\s+([\s\S]*))?$/.exec(c);if(!d)return null;let e=d[1],f=G.find(a=>a.trigger===e)??null??b.find(a=>a.trigger===e);return f?{def:f,payload:(d[2]??"").trim()}:null}(c);if(d&&"direct"===d.def.kind){L(!0);try{await P({cmd:d.def,payload:d.payload,rootId:a,topicId:b,router:v,t:p}),x("")}finally{L(!1)}return}L(!0);try{"clarify"===as&&m&&await m(),await k({message:c,attachments:y})&&(x(""),E([]))}finally{L(!1)}},[w,y,K,j,as,m,k,a,b,v,p]),au=!K&&!I&&("stop"===as||ar&&(!j||"clarify"===as));return(0,d.jsxs)("form",{onSubmit:a=>{a.preventDefault(),at()},onDragEnter:a=>{Array.from(a.dataTransfer.types).includes("Files")&&(a.preventDefault(),N(!0))},onDragOver:a=>{Array.from(a.dataTransfer.types).includes("Files")&&(a.preventDefault(),N(!0))},onDragLeave:a=>{a.currentTarget.contains(a.relatedTarget)||N(!1)},onDrop:a=>{a.preventDefault(),N(!1);let b=Array.from(a.dataTransfer.files);b.length>0&&aq(b)},className:(0,D.cn)("space-y-2 rounded-md transition-colors",M&&"ring-2 ring-ring/60 bg-accent/40"),children:[y.length>0&&(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:y.map((a,b)=>(0,d.jsx)(S,{attachment:a,onRemove:()=>E(b=>b.filter(b=>b!==a))},a.absPath+b))}),(0,d.jsxs)("div",{className:"flex items-end gap-2",children:[(0,d.jsxs)("div",{className:"relative flex-1",children:[(0,d.jsx)(C.T,{ref:V,value:w,onChange:a=>{x(a.target.value),aj(a.target.value,a.target.selectionStart),al(a.target.value,a.target.selectionStart)},onKeyUp:a=>{let b=a.currentTarget;aj(b.value,b.selectionStart),al(b.value,b.selectionStart)},onClick:a=>{let b=a.currentTarget;aj(b.value,b.selectionStart),al(b.value,b.selectionStart)},onBlur:()=>{setTimeout(()=>{ak(),am()},150)},onKeyDown:a=>{if(ae){if("ArrowDown"===a.key){a.preventDefault(),af(a=>a?{...a,index:Math.min(a.items.length-1,a.index+1)}:null);return}if("ArrowUp"===a.key){a.preventDefault(),af(a=>a?{...a,index:Math.max(0,a.index-1)}:null);return}if("Tab"===a.key){a.preventDefault();let b=ae.items[ae.index];b&&ao(b);return}if("Escape"===a.key){a.preventDefault(),am();return}}if(ag&&ag.items.length>0){if("ArrowDown"===a.key){a.preventDefault(),ah(a=>a?{...a,index:Math.min(a.items.length-1,a.index+1)}:null);return}if("ArrowUp"===a.key){a.preventDefault(),ah(a=>a?{...a,index:Math.max(0,a.index-1)}:null);return}if("Tab"===a.key){a.preventDefault();let b=ag.items[ag.index];b&&an(b);return}if("Escape"===a.key){a.preventDefault(),ah(null);return}}if(X&&Z.length>0){if("ArrowDown"===a.key){a.preventDefault(),aa(a=>Math.min(Z.length-1,a+1));return}if("ArrowUp"===a.key){a.preventDefault(),aa(a=>Math.max(0,a-1));return}if("Enter"===a.key||"Tab"===a.key){a.preventDefault();let b=Z[_];b&&ap(b);return}if("Escape"===a.key){a.preventDefault(),ak();return}}"Enter"!==a.key||a.shiftKey||a.nativeEvent.isComposing||(a.preventDefault(),at())},onPaste:a=>{let b=Array.from(a.clipboardData.files);b.length>0&&(a.preventDefault(),aq(b))},placeholder:c,rows:1,disabled:j||K,className:"resize-none min-h-[44px] max-h-60 text-base bg-background/70 border-transparent focus-visible:border-ring py-2.5 w-full"}),X&&(0,d.jsx)(R,{items:Z,index:_,loading:ab,onPick:ap,onHover:a=>aa(a)}),ae&&!X&&(0,d.jsx)(Q,{items:ae.items,index:ae.index,onPick:ao,onHover:a=>af(b=>b?{...b,index:a}:null),topicAvailable:!!b}),ag&&!X&&!ae&&(0,d.jsx)(T,{cmd:ag.cmd,items:ag.items,index:ag.index,onPick:an,onHover:a=>ah(b=>b?{...b,index:a}:null)})]}),(0,d.jsx)("input",{ref:W,type:"file",multiple:!0,className:"hidden",onChange:a=>{let b=Array.from(a.target.files??[]);b.length>0&&aq(b),a.target.value=""}}),(0,d.jsx)(B.$,{type:"button",size:"icon",variant:"ghost",onClick:()=>W.current?.click(),disabled:I||K||j,title:p("chatInputForm.attachTitle"),className:"h-11 w-11 shrink-0",children:I?(0,d.jsx)(s.A,{className:"h-4 w-4 animate-spin"}):(0,d.jsx)(t.A,{className:"h-4 w-4"})}),(0,d.jsx)(B.$,{type:"submit",size:"lg",disabled:!au,variant:"stop"===as?"destructive":"default",className:"h-11 px-6 shadow-md shrink-0",children:K?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(s.A,{className:"mr-2 h-4 w-4 animate-spin"}),h]}):"stop"===as?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(u.A,{className:"mr-2 h-4 w-4",fill:"currentColor"}),r]}):"clarify"===as?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(i,{className:"mr-2 h-4 w-4"}),q]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(i,{className:"mr-2 h-4 w-4"}),g]})})]}),(0,d.jsx)("div",{className:"text-[10px] text-muted-foreground",children:p("chatInputForm.helperRow")})]})}async function P({cmd:a,payload:b,rootId:c,topicId:d,router:e,t:f}){if("help"===a.id){let a=G.map(a=>`• ${a.label} — ${a.description}`);A.oR.info(f("chatInputForm.availableCommands",{list:a.join("\n")}),{duration:12e3});return}if("remember"===a.id){if(!b)return void A.oR.error(f("chatInputForm.rememberEmpty"));let a=await I(c,b);return void(a.ok?(A.oR.success(a.message??f("chatInputForm.savedToKb")),(0,M.$d)(M.Zi.kbChanged(c))):A.oR.error(a.error))}if("delete-topic"===a.id){if(!d)return void A.oR.error(f("chatInputForm.topicOnlyCommand"));if(!confirm(f("chatInputForm.deleteTopicConfirm")))return;let a=await J(c,d);return void(a.ok?(A.oR.success(a.message??f("chatInputForm.deleted")),(0,M.$d)(M.Zi.topicsChanged(c)),a.redirectTo&&e.push(a.redirectTo)):A.oR.error(a.error))}if("util"===a.id){let a=await K(c,b);if(!a.ok)return void A.oR.error(a.error);if("redirect"===a.kind)return void e.push(a.url);let d=a.items.slice(0,8).map(a=>`• ${a.name} (${a.scope}/${a.id})`).join("\n");return void A.oR.message(f("chatInputForm.multipleMatches",{list:d}),{duration:12e3})}if("clear-project"===a.id){if(!confirm(f("chatInputForm.clearProjectConfirm")))return;let a=prompt(f("chatInputForm.clearProjectPrompt"));if(a?.trim().toLowerCase()!==f("chatInputForm.clearProjectPhrase"))return void A.oR.message(f("chatInputForm.confirmFailed"));let b=await L(c);return void(b.ok?(A.oR.success(b.message??f("chatInputForm.projectCleared")),(0,M.$d)(M.Zi.topicsChanged(c)),(0,M.$d)(M.Zi.kbChanged(c)),b.redirectTo&&e.push(b.redirectTo)):A.oR.error(b.error))}A.oR.error(f("chatInputForm.unknownCommand",{label:a.label}))}function Q({items:a,index:b,onPick:c,onHover:e,topicAvailable:g}){let h=(0,f.c)("roots");return(0,d.jsxs)("div",{className:"absolute bottom-full left-0 right-0 mb-2 z-50 max-h-80 overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-lg",children:[(0,d.jsx)("div",{className:"px-3 py-1.5 text-[10px] uppercase tracking-wider text-muted-foreground border-b",children:h("chatInputForm.commandsPaletteHeader")}),(0,d.jsx)("ul",{children:a.map((a,f)=>{let i=N[a.icon]??m.A,j="delete-topic"===a.id&&!g;return(0,d.jsx)("li",{children:(0,d.jsxs)("button",{type:"button",onMouseDown:b=>{b.preventDefault(),j||c(a)},onMouseEnter:()=>e(f),disabled:j,className:(0,D.cn)("w-full flex items-start gap-2 px-3 py-2 text-left",f===b?"bg-accent":"hover:bg-accent/60",j&&"opacity-40 cursor-not-allowed"),children:[(0,d.jsx)(i,{className:(0,D.cn)("h-3.5 w-3.5 mt-0.5 shrink-0","direct"===a.kind?"text-amber-600":"text-violet-600")}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-baseline gap-2 flex-wrap",children:[(0,d.jsx)("span",{className:"font-mono text-xs font-medium",children:a.label}),"direct"===a.kind&&(0,d.jsx)("span",{className:"text-[9px] uppercase tracking-wider text-amber-700",children:h("chatInputForm.directAction")}),a.requiresConfirm&&(0,d.jsx)("span",{className:"text-[9px] uppercase tracking-wider text-destructive",children:h("chatInputForm.withConfirm")})]}),(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground leading-snug mt-0.5",children:a.description}),(0,d.jsx)("p",{className:"text-[10px] text-muted-foreground/80 font-mono mt-0.5",children:a.usage})]})]})},a.id)})})]})}function R({items:a,index:b,loading:c,onPick:e,onHover:g}){let h=(0,f.c)("roots");return(0,d.jsx)("div",{className:"absolute bottom-full left-0 right-0 mb-2 z-50 max-h-72 overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-lg",children:c&&0===a.length?(0,d.jsxs)("div",{className:"px-3 py-2 text-xs text-muted-foreground flex items-center gap-2",children:[(0,d.jsx)(s.A,{className:"h-3 w-3 animate-spin"})," ",h("chatInputForm.mentionSearching")]}):0===a.length?(0,d.jsx)("div",{className:"px-3 py-2 text-xs text-muted-foreground italic",children:h("chatInputForm.mentionNothing")}):(0,d.jsx)("ul",{children:a.map((a,c)=>{let f="kb"===a.kind?v.A:w.A;return(0,d.jsx)("li",{children:(0,d.jsxs)("button",{type:"button",onMouseDown:b=>{b.preventDefault(),e(a)},onMouseEnter:()=>g(c),className:(0,D.cn)("w-full flex items-center gap-2 px-3 py-1.5 text-sm text-left",c===b?"bg-accent":"hover:bg-accent/60"),children:[(0,d.jsx)(f,{className:(0,D.cn)("h-3.5 w-3.5 shrink-0","kb"===a.kind?"text-primary":"text-muted-foreground")}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"truncate font-mono text-xs",children:a.relPath}),a.parent&&(0,d.jsx)("div",{className:"truncate text-[10px] text-muted-foreground",children:a.parent})]}),(0,d.jsx)("span",{className:(0,D.cn)("text-[10px] uppercase tracking-wider shrink-0","kb"===a.kind?"text-primary":"text-muted-foreground"),children:a.kind})]})},a.absPath)})})})}function S({attachment:a,onRemove:b}){var c;let e=a.mime.startsWith("image/")?x.A:w.A;return(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-muted px-2 py-1 text-[11px] max-w-[18rem]",children:[(0,d.jsx)(e,{className:"h-3 w-3 text-muted-foreground shrink-0"}),(0,d.jsx)("span",{className:"truncate",title:a.name,children:a.name}),(0,d.jsx)("span",{className:"text-muted-foreground",children:(c=a.size)<1024?`${c} B`:c<1048576?`${(c/1024).toFixed(1)} KB`:`${(c/1048576).toFixed(1)} MB`}),(0,d.jsx)("button",{type:"button",onClick:b,className:"ml-0.5 text-muted-foreground hover:text-foreground",children:(0,d.jsx)(y.A,{className:"h-3 w-3"})})]})}function T({cmd:a,items:b,index:c,onPick:e,onHover:f}){let g=N[a.icon]??m.A;return(0,d.jsxs)("div",{className:"absolute bottom-full left-0 right-0 mb-2 z-50 max-h-80 overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-lg",children:[(0,d.jsxs)("div",{className:"px-3 py-1.5 text-[10px] uppercase tracking-wider text-muted-foreground border-b flex items-center gap-2",children:[(0,d.jsx)(g,{className:"h-3 w-3"}),(0,d.jsxs)("span",{children:[a.label," \xb7 ",a.usage.replace(/^\/\S+\s*/,"")]})]}),(0,d.jsx)("ul",{children:b.map((a,b)=>(0,d.jsx)("li",{children:(0,d.jsxs)("button",{type:"button",onMouseDown:b=>{b.preventDefault(),e(a)},onMouseEnter:()=>f(b),className:(0,D.cn)("w-full flex items-start gap-2 px-3 py-2 text-left",b===c?"bg-accent":"hover:bg-accent/60"),children:[(0,d.jsx)(m.A,{className:"h-3.5 w-3.5 mt-0.5 shrink-0 text-violet-600"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-baseline gap-2 flex-wrap",children:[(0,d.jsx)("span",{className:"font-medium text-sm",children:a.label}),(0,d.jsx)("span",{className:"font-mono text-[10px] text-muted-foreground",children:a.value})]}),a.description&&(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground leading-snug mt-0.5 line-clamp-2",children:a.description})]})]})},a.value))})]})}},67248:(a,b,c)=>{c.d(b,{E:()=>i});var d=c(63003);c(34750);var e=c(86209),f=c(65715),g=c(26290);let h=(0,e.F)("inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline"}},defaultVariants:{variant:"default"}});function i({className:a,variant:b="default",asChild:c=!1,...e}){let i=c?f.bL:"span";return(0,d.jsx)(i,{"data-slot":"badge","data-variant":b,className:(0,g.cn)(h({variant:b}),a),...e})}},72901:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{LL:()=>v,Xt:()=>z,ZC:()=>A,b2:()=>u,qO:()=>t,wd:()=>y});var e=c(73745);c(66493);var f=c(73024),g=c(76760),h=c.n(g),i=c(65326),j=c(53905),k=c(54287),l=c(56942),m=c(5492),n=c(13415),o=c(93554),p=c(49410),q=c(96921),r=c(63781),s=a([n,o]);async function t(a,b){try{let c=b.trim();if(!c)return{ok:!1,error:"Empty — nothing to remember."};let d=await (0,j.getRoot)(a);if(!d)return{ok:!1,error:"Root not found"};let e=c.split(/\r?\n/,1)[0].trim(),f=e.length>80?e.slice(0,77).trimEnd()+"…":e,g=await (0,l.j)({rootPath:d.path,directive:{kind:"note",title:f,body:c}});return(0,i.revalidatePath)(`/roots/${a}`),{ok:!0,message:`Saved to ${g.relPath}`}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function u(a,b){let c=await (0,n.L4)(a,b);return c.ok?{ok:!0,redirectTo:`/roots/${a}`,message:"Topic deleted"}:{ok:!1,error:c.error??"Failed"}}async function v(a){try{let b=await (0,j.getRoot)(a);if(!b)return{ok:!1,error:"Root not found"};let c=(0,k.FF)(b.path);for(let a of(await (0,m.hk)(b.path)))await o.z.stopTopic(a.meta.id).catch(()=>void 0);return await w(h().join(c,"widgets")),await w(h().join(c,"dashboard-layout.json")),await w(h().join(c,"topics")),await x(c),(0,i.revalidatePath)(`/roots/${a}`),{ok:!0,redirectTo:`/roots/${a}`,message:"Project cleared. Starting fresh."}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function w(a){try{await f.promises.rm(a,{recursive:!0,force:!0})}catch{}}async function x(a){let b;try{b=await f.promises.readdir(a,{withFileTypes:!0})}catch{return}for(let c of b){let b=h().join(a,c.name);if(c.isDirectory()){await x(b);try{let a=await f.promises.readdir(b);0===a.length&&await f.promises.rmdir(b)}catch{}continue}c.name.toLowerCase().endsWith(".md")&&await f.promises.unlink(b).catch(()=>void 0)}}async function y(){let a=await (0,p.bG)();return{ok:!0,commands:q.Lo,skills:a}}async function z(a){let{collectExtensions:b}=await Promise.resolve().then(c.bind(c,35961)),d=(await b(a.rootId?{rootId:a.rootId}:{})).slashCommands.map(a=>({id:`${a.utility.utilityId}:${a.id}`,trigger:a.trigger,label:a.label,description:a.description,kind:a.kind,usage:a.usage,allowEmpty:a.allowEmpty,icon:a.icon})),e=new Set(q.Lo.map(a=>a.trigger)),f=[...q.Lo,...d.filter(a=>!e.has(a.trigger))];return{ok:!0,commands:f}}async function A(a,b){let{listUtilities:d}=await Promise.resolve().then(c.bind(c,8118)),e=await d({rootId:a}),f=b.trim().toLowerCase(),g=e.map(a=>({id:a.manifest.id,name:a.manifest.name,scope:a.scope,rootId:a.rootId})),h=a=>{let b=a.rootId?`?rootId=${encodeURIComponent(a.rootId)}`:"";return`/utilities/${a.scope}/${a.id}${b}`};if(!f)return 0===g.length?{ok:!1,error:"No mini-apps installed yet."}:{ok:!0,kind:"choices",items:g.map(a=>({url:h(a),id:a.id,name:a.name,scope:a.scope}))};let i=g.find(a=>a.id.toLowerCase()===f);if(i)return{ok:!0,kind:"redirect",url:h(i)};let j=g.filter(a=>a.id.toLowerCase().includes(f)||a.name.toLowerCase().includes(f));return 1===j.length?{ok:!0,kind:"redirect",url:h(j[0])}:0===j.length?{ok:!1,error:`Nothing found for "${b}". Installed: ${g.length}.`}:{ok:!0,kind:"choices",items:j.map(a=>({url:h(a),id:a.id,name:a.name,scope:a.scope}))}}[n,o]=s.then?(await s)():s,(0,r.D)([t,u,v,y,z,A]),(0,e.A)(t,"60ba073544a348142fbe98ca3676c4210ea01f8c9a",null),(0,e.A)(u,"60549d4171cc3db1d00154086b9c78673919fe8130",null),(0,e.A)(v,"40304a69b712614e58f05efb074ce0eace287883ee",null),(0,e.A)(y,"004c165933ff23ad01afea5ec45415ba9a70bbc303",null),(0,e.A)(z,"40b882d2506fd4e8a7ba34ad4db159f073db465d22",null),(0,e.A)(A,"603781f5185ae13a64b2705476b3a23e25fa0baf45",null),d()}catch(a){d(a)}})},84913:(a,b,c)=>{c.d(b,{$:()=>i});var d=c(63003);c(34750);var e=c(86209),f=c(65715),g=c(26290);let h=(0,e.F)("inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function i({className:a,variant:b="default",size:c="default",asChild:e=!1,...i}){let j=e?f.bL:"button";return(0,d.jsx)(j,{"data-slot":"button","data-variant":b,"data-size":c,className:(0,g.cn)(h({variant:b,size:c,className:a})),...i})}}};
@@ -1 +0,0 @@
1
- exports.id=6720,exports.ids=[6720],exports.modules={6993:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g});var d=c(63003),e=c(9310),f=c(24576);async function g({children:a,params:b}){let{id:c}=await b;return await (0,f.getRoot)(c)||(0,e.notFound)(),(0,d.jsx)("div",{className:"flex-1 flex flex-col min-h-0",children:a})}},28800:(a,b,c)=>{"use strict";c.d(b,{t:()=>e});var d=c(3265);let e=(0,d.createServerReference)("60793add22874475e0a9278aa4cda627ab9446a9b2",d.callServer,void 0,d.findSourceMapURL,"restoreWidgetAction")},30515:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},34639:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Aq:()=>o,J7:()=>w,KV:()=>u,Mh:()=>s,cl:()=>x,hL:()=>p,kv:()=>v,mm:()=>t,ru:()=>r,tT:()=>q});var e=c(73745);c(66493);var f=c(65326),g=c(53905),h=c(69509),i=c(1405),j=c(93554),k=c(51021),l=c(63781),m=a([j,k]);async function n(a,b){let c=await (0,h.listWidgets)(a),d=await (0,h.readLayout)(a),e=b(d),f=(0,h.reconcileLayout)(e,c.map(a=>a.id),i.SYSTEM_WIDGET_IDS);return await (0,h.writeLayout)(a,f),{ok:!0,layout:f}}async function o(a,b){try{let c=await (0,g.getRoot)(a);if(!c)return{ok:!1,error:"Root not found"};let d=await n(c.path,a=>({...a,order:b.filter(b=>!a.hidden.includes(b))}));return(0,f.revalidatePath)(`/roots/${a}`),d}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function p(a,b){try{let c=await (0,g.getRoot)(a);if(!c)return{ok:!1,error:"Root not found"};let d=await n(c.path,a=>({order:a.order.filter(a=>a!==b),hidden:[...new Set([b,...a.hidden])]}));return(0,f.revalidatePath)(`/roots/${a}`),d}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function q(a,b){try{let c=await (0,g.getRoot)(a);if(!c)return{ok:!1,error:"Root not found"};let d=await n(c.path,a=>({order:[b,...a.order.filter(a=>a!==b)],hidden:a.hidden.filter(a=>a!==b)}));return(0,f.revalidatePath)(`/roots/${a}`),d}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function r(a,b,c,d){try{let e=await (0,g.getRoot)(a);if(!e)return{ok:!1,error:"Root not found"};let i=await (0,h.readWidget)(e.path,b);if(!i)return{ok:!1,error:"Widget not found"};if(!c||"object"!=typeof c)return{ok:!1,error:"newData must be an object"};let j={...i,data:c,updatedAt:new Date().toISOString(),...void 0!==d?{memory:d}:{}};return await (0,h.writeWidget)(e.path,j),(0,f.revalidatePath)(`/roots/${a}`),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function s(a,b,c){try{let d=await (0,g.getRoot)(a);if(!d)return{ok:!1,error:"Root not found"};let e=await n(d.path,a=>({...a,sizes:{...a.sizes??{},[b]:c}}));return(0,f.revalidatePath)(`/roots/${a}`),e}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function t(a,b,c){try{let d=await (0,g.getRoot)(a);if(!d)return{ok:!1,error:"Root not found"};let e=await (0,h.readWidget)(d.path,b);if(!e)return{ok:!1,error:"Widget not found"};let i={...e,refresh:c};return await (0,h.writeWidget)(d.path,i),(0,f.revalidatePath)(`/roots/${a}`),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function u(a,b){try{let d=await (0,g.getRoot)(a);if(!d)return{ok:!1,error:"Root not found"};let e=await (0,h.readWidget)(d.path,b);if(!e)return{ok:!1,error:"Widget not found"};if(!e.sourceTopicId)return{ok:!1,error:"Widget has no source topic — update it from any chat first."};if(j.z.isActive(e.sourceTopicId))return{ok:!1,error:"The source topic is already occupied by an agent — wait for the current turn to finish."};let f={...e,lastRefreshAt:new Date().toISOString()};await (0,h.writeWidget)(d.path,f);let{buildRefreshPromptForWidget:i}=await c.e(4553).then(c.bind(c,94553)),l=await i(d.path,f),m=await (0,k.startOrchestratorTurn)({rootId:a,topicId:e.sourceTopicId,message:l,attachments:[]});if("error"in m)return{ok:!1,error:m.error};return{ok:!0,agentId:m.agentId}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function v(a,b){let{refreshUtilityCard:d}=await Promise.all([c.e(9861),c.e(4031),c.e(269)]).then(c.bind(c,30269)),e=await d(a,b);return e.ok?{ok:!0,...void 0!==e.inner?{inner:e.inner}:{},...e.noop?{noop:!0}:{}}:{ok:!1,...e.error?{error:e.error}:{}}}async function w(a,b){try{let{getUtility:d}=await Promise.resolve().then(c.bind(c,8118)),e=await d(b.utilityScope,b.utilityId,"project"===b.utilityScope?a:void 0);if(!e)return{ok:!1,error:"Utility not installed"};if(!e.manifest.permissions.workers?.enabled)return{ok:!1,error:"Utility lacks permissions.workers.enabled"};let g=e.manifest.serverActions.find(a=>a.name===b.actionName);if(!g)return{ok:!1,error:`Unknown server action: ${b.actionName}`};let{runServerAction:h}=await Promise.all([c.e(9861),c.e(4031)]).then(c.bind(c,49556));await h({utility:e,action:g,args:b.args??{}});let{refreshUtilityCard:i}=await Promise.all([c.e(9861),c.e(4031),c.e(269)]).then(c.bind(c,30269)),j=await i(a,b.widgetId);return a&&(0,f.revalidatePath)(`/roots/${a}`),{ok:!0,...void 0!==j.inner?{inner:j.inner}:{}}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function x(a,b){try{if(i.SYSTEM_WIDGET_IDS.includes(b))return{ok:!1,error:"System widget cannot be deleted — only hidden."};let c=await (0,g.getRoot)(a);if(!c)return{ok:!1,error:"Root not found"};await (0,h.uv)(c.path,b);let d=await n(c.path,a=>({order:a.order.filter(a=>a!==b),hidden:a.hidden.filter(a=>a!==b)}));return(0,f.revalidatePath)(`/roots/${a}`),d}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}[j,k]=m.then?(await m)():m,(0,l.D)([o,p,q,r,s,t,u,v,w,x]),(0,e.A)(o,"6085b5777811baaaeefbd4c72e7d317f156616595b",null),(0,e.A)(p,"60031ea4b226e788687c0f61acc53ee8c0d9938567",null),(0,e.A)(q,"60793add22874475e0a9278aa4cda627ab9446a9b2",null),(0,e.A)(r,"786b9ced72d76b24a4ecbaba79b91403d84f441336",null),(0,e.A)(s,"70d4a31f2f50e13c8b275641f47a9f198ce2705d47",null),(0,e.A)(t,"70e3f16ab60b2c62deed7a9f7b5cbdcc002ec88537",null),(0,e.A)(u,"60d48724765756147b1373cef1e591d005c9e9c835",null),(0,e.A)(v,"60d1e2df317627b80e21ec398a6e60c0c9c1b0a1bf",null),(0,e.A)(w,"60a87dbd230d4f4216cf9b8beea7701425dba08778",null),(0,e.A)(x,"605ec470fb858922aaa8748ae86df6a923ec9cbb44",null),d()}catch(a){d(a)}})},48272:(a,b,c)=>{"use strict";c.d(b,{w:()=>f});var d=c(73745);c(66493);var e=c(36017);async function f(){return{ok:!0,enabled:(await (0,e.loadSettings)()).mapServices.enabled}}(0,c(63781).D)([f]),(0,d.A)(f,"00cb429333c223408c7bb194e02f1c58c77957be38",null)},54874:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]])},62481:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]])},65062:(a,b,c)=>{"use strict";c.d(b,{A:()=>e});var d=c(3265);let e=(0,d.createServerReference)("4033251606c8875658357816f479ba43747421fd79",d.callServer,void 0,d.findSourceMapURL,"saveGeminiKeyAction")},80319:(a,b,c)=>{"use strict";c.d(b,{p:()=>x});var d=c(64173),e=c(17240),f=c(71813),g=c(90775),h=c(56992),i=c(39755),j=c(66979),k=c(14878),l=c(62261),m=c(69552),n=c(96705),o=c(13530),p=c(12619),q=c(73569),r=c(44052),s=c(20583),t=c(47071),u=c(3265);let v=(0,u.createServerReference)("409eba05bdd5955bcdc225be3b30f7a20a10d9f4a5",u.callServer,void 0,u.findSourceMapURL,"summarizeYoutubeAction");var w=c(65062);function x({source:a,onSendToChat:b,autoSummarizeYoutube:c}){let[f,j]=(0,e.useState)(null);return(0,d.jsxs)("div",{className:"prose prose-neutral dark:prose-invert max-w-none [&_pre]:bg-muted [&_pre]:rounded-md [&_pre]:p-4 [&_pre]:overflow-x-auto [&_pre]:text-sm [&_pre_code]:bg-transparent [&_pre_code]:p-0 [&_pre_code]:text-foreground [&_:not(pre)>code]:bg-muted [&_:not(pre)>code]:px-1.5 [&_:not(pre)>code]:py-0.5 [&_:not(pre)>code]:rounded [&_:not(pre)>code]:text-[0.9em] [&_code]:font-mono [&_table]:text-sm",children:[(0,d.jsx)(g.oz,{remarkPlugins:[h.A],rehypePlugins:[[i.A,{detect:!0,ignoreMissing:!0}]],components:{a:({href:a,children:e,...f})=>{let g=a?function(a){try{let b=new URL(a),c=b.hostname.replace(/^www\./,"");if("youtu.be"===c){let a=b.pathname.slice(1).split("/")[0];return a&&/^[A-Za-z0-9_-]{6,}$/.test(a)?a:null}if("youtube.com"===c||"m.youtube.com"===c||"youtube-nocookie.com"===c){if("/watch"===b.pathname){let a=b.searchParams.get("v");return a&&/^[A-Za-z0-9_-]{6,}$/.test(a)?a:null}let a=/^\/(shorts|embed|live|v)\/([^/?#]+)/.exec(b.pathname);if(a&&/^[A-Za-z0-9_-]{6,}$/.test(a[2]))return a[2]}}catch{}return null}(a):null;return g&&a?(0,d.jsx)(A,{url:a,videoId:g,autoSummarize:c??!1,...b?{onSendToChat:b}:{}}):(0,d.jsx)("a",{href:a,...f,children:e})},img:({src:a,alt:b,title:c})=>"string"!=typeof a||0===a.length?null:(0,d.jsx)(y,{src:a,alt:"string"==typeof b?b:"",title:"string"==typeof c?c:void 0,onZoom:a=>j(a)})},children:a}),f&&(0,d.jsx)(z,{src:f.src,alt:f.alt,onClose:()=>j(null)})]})}function y({src:a,alt:b,title:c,onZoom:e}){let g=(0,f.c)("roots");return(0,d.jsx)("img",{src:a,alt:b,title:c??b??g("markdown.openFullscreen"),onClick:()=>e({src:a,alt:b}),className:"cursor-zoom-in rounded-md border bg-muted/40 transition hover:opacity-90",loading:"lazy"})}function z({src:a,alt:b,onClose:c}){let g=(0,f.c)("roots");return(0,e.useCallback)(a=>{"Escape"===a.key&&c()},[c]),(0,d.jsxs)("div",{className:"fixed inset-0 z-[80] flex items-center justify-center p-6 bg-background/85 backdrop-blur-sm cursor-zoom-out",onClick:c,role:"dialog","aria-label":b||g("markdown.imagePreview"),children:[(0,d.jsx)(s.$,{type:"button",size:"icon",variant:"ghost",className:"absolute top-4 right-4 h-9 w-9 bg-card/80 hover:bg-card",onClick:a=>{a.stopPropagation(),c()},"aria-label":g("markdown.closeAria"),children:(0,d.jsx)(j.A,{className:"h-5 w-5"})}),(0,d.jsx)("img",{src:a,alt:b,className:"max-h-full max-w-full object-contain rounded-lg shadow-2xl",onClick:a=>a.stopPropagation()}),b&&(0,d.jsx)("div",{className:"absolute bottom-6 inset-x-0 mx-auto max-w-3xl px-6 text-center text-sm text-foreground/80 pointer-events-none",children:b})]})}function A({url:a,videoId:b,onSendToChat:c,autoSummarize:g}){let h=(0,f.c)("roots"),[i,u]=(0,e.useTransition)(),[x,y]=(0,e.useState)(null),[z,A]=(0,e.useState)(!1),[B,C]=(0,e.useState)(""),[D,E]=(0,e.useState)(!1);(0,e.useRef)(!1);let F=()=>{y(null),u(async()=>{let b=await v({url:a});if(b.ok){y(b.text),A(!1);return}if(b.needsKey)return void A(!0);r.oR.error(b.error)})},G=async()=>{if(!B.trim())return void r.oR.error(h("markdown.enterKey"));E(!0);try{let a=await (0,w.A)(B.trim());if(!a.ok)return void r.oR.error(a.error);r.oR.success(h("markdown.geminiKeySaved")),C(""),A(!1),F()}finally{E(!1)}};return(0,d.jsxs)("span",{className:"not-prose my-4 block rounded-lg border bg-card overflow-hidden",children:[(0,d.jsx)("span",{className:"relative block w-full",style:{paddingTop:"56.25%"},children:(0,d.jsx)("iframe",{src:`https://www.youtube-nocookie.com/embed/${b}`,className:"absolute inset-0 h-full w-full",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",referrerPolicy:"strict-origin-when-cross-origin",allowFullScreen:!0,title:"YouTube video"})}),(0,d.jsxs)("span",{className:"flex items-center gap-2 p-2 border-t bg-muted/30",children:[(0,d.jsx)(k.A,{className:"h-4 w-4 text-red-600 shrink-0"}),(0,d.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-muted-foreground hover:underline truncate flex-1 min-w-0",children:a}),(0,d.jsxs)(s.$,{type:"button",size:"sm",variant:"outline",onClick:F,disabled:i,className:"gap-1 shrink-0 h-7",children:[i?(0,d.jsx)(l.A,{className:"h-3 w-3 animate-spin"}):(0,d.jsx)(m.A,{className:"h-3 w-3"}),h("markdown.summarize")]})]}),z&&(0,d.jsxs)("span",{className:"block border-t bg-amber-50/60 p-3 space-y-2",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-xs text-amber-900",children:[(0,d.jsx)(n.A,{className:"h-3.5 w-3.5"}),(0,d.jsx)("span",{className:"font-medium",children:h("markdown.needsGeminiKey")})]}),(0,d.jsx)("span",{className:"block text-[11px] text-amber-900/80",children:h.rich("markdown.geminiKeyHelp",{link:()=>(0,d.jsx)("a",{href:"https://aistudio.google.com/apikey",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"aistudio.google.com/apikey"}),path:()=>(0,d.jsx)("code",{className:"font-mono",children:"~/.reflex/api-keys/gemini.json"}),modelsList:()=>(0,d.jsx)("code",{className:"font-mono",children:"models.list"})})}),(0,d.jsxs)("span",{className:"flex items-center gap-2",children:[(0,d.jsx)(t.p,{type:"password",value:B,onChange:a=>C(a.target.value),placeholder:"AIza…",className:"font-mono text-xs h-8 flex-1",disabled:D}),(0,d.jsxs)(s.$,{type:"button",size:"sm",onClick:()=>void G(),disabled:D||!B.trim(),className:"h-8 gap-1",children:[D?(0,d.jsx)(l.A,{className:"h-3 w-3 animate-spin"}):(0,d.jsx)(o.A,{className:"h-3 w-3"}),h("markdown.saveAndContinue")]}),(0,d.jsx)(s.$,{type:"button",size:"icon",variant:"ghost",onClick:()=>A(!1),className:"h-8 w-8",children:(0,d.jsx)(j.A,{className:"h-3.5 w-3.5"})})]})]}),x&&(0,d.jsxs)("span",{className:"block border-t p-3 space-y-2",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-[11px] uppercase tracking-wider text-muted-foreground",children:[(0,d.jsx)(p.A,{className:"h-3 w-3 text-emerald-600"}),"Gemini summary",(0,d.jsxs)(s.$,{type:"button",size:"sm",variant:"ghost",onClick:F,className:"ml-auto h-6 text-[10px] gap-1",disabled:i,children:[i?(0,d.jsx)(l.A,{className:"h-3 w-3 animate-spin"}):(0,d.jsx)(m.A,{className:"h-3 w-3"}),h("markdown.redo")]}),c&&(0,d.jsxs)(s.$,{type:"button",size:"sm",variant:"outline",onClick:()=>c(x,a),className:"h-6 text-[10px] gap-1",children:[(0,d.jsx)(q.A,{className:"h-3 w-3"}),h("markdown.toChat")]})]}),(0,d.jsx)("span",{className:"block",children:(0,d.jsx)("span",{className:"block text-sm whitespace-pre-wrap leading-relaxed",children:x})})]})]})}},80432:()=>{},85548:(a,b,c)=>{"use strict";function d(a){return`${a.lat},${a.lng}`}function e(a){return`${a.lng},${a.lat}`}c.d(b,{JY:()=>g,yp:()=>f});let f=[{id:"google",label:"Google Maps",description:"Global, navigation + street view. Works everywhere except where the RF blocks it.",brand:"#4285F4",glyph:"G",urlFor:(a,b)=>`https://www.google.com/maps/dir/?api=1&destination=${a},${b}`,routeUrlFor:a=>{if(a.length<2)return"";let b=d(a[0]),c=d(a[a.length-1]),e=a.slice(1,-1).map(d).join("|"),f=e?`&waypoints=${encodeURIComponent(e)}`:"";return`https://www.google.com/maps/dir/?api=1&origin=${b}&destination=${c}${f}`}},{id:"yandex",label:"Yandex Maps",description:"CIS region, best RF detail and real-time traffic.",brand:"#FFCC00",glyph:"Y",urlFor:(a,b)=>`https://yandex.ru/maps/?rtext=~${a},${b}&rtt=auto`,routeUrlFor:a=>`https://yandex.ru/maps/?rtext=${a.map(d).join("~")}&rtt=auto`},{id:"2gis",label:"2GIS",description:"CIS region, precise addresses and POI. Uniquely strong on RF cities.",brand:"#1BA049",glyph:"2",urlFor:(a,b)=>`https://2gis.ru/routeSearch/to/${b},${a}`,routeUrlFor:a=>{let b=e(a[0]),c=e(a[a.length-1]),d=a.slice(1,-1).map(a=>`/via/${e(a)}`).join("");return`https://2gis.ru/routeSearch/rsType/car/from/${b}${d}/to/${c}`}},{id:"apple",label:"Apple Maps",description:"Opens in the native app on iOS/macOS, otherwise on the website.",brand:"#1d1d1f",glyph:"A",urlFor:(a,b)=>`https://maps.apple.com/?daddr=${a},${b}`,routeUrlFor:a=>{let b=d(a[0]),c=a.slice(1).map(a=>`+to:${d(a)}`).join("");return`https://maps.apple.com/?saddr=${b}&daddr=${b}${c}`}},{id:"osm",label:"OpenStreetMap",description:"Open data, no account required. Basic navigation.",brand:"#7EB73F",glyph:"OSM",urlFor:(a,b)=>`https://www.openstreetmap.org/directions?to=${a},${b}`,routeUrlFor:a=>{let b=a.map(d).join(";");return`https://www.openstreetmap.org/directions?route=${encodeURIComponent(b)}`}},{id:"waze",label:"Waze",description:"Car navigation with crowd-sourced traffic and alerts.",brand:"#33CCFF",glyph:"W",urlFor:(a,b)=>`https://waze.com/ul?ll=${a},${b}&navigate=yes`,routeUrlFor:a=>{let b=a[a.length-1];return`https://waze.com/ul?ll=${b.lat},${b.lng}&navigate=yes`}},{id:"organic",label:"Organic Maps",description:"Offline maps with open data. Opens in the app.",brand:"#006C35",glyph:"OM",urlFor:(a,b)=>`om://map?ll=${a},${b}`,routeUrlFor:a=>{let b=a[0],c=a[a.length-1];return`om://route?sll=${b.lat},${b.lng}&saddr=&dll=${c.lat},${c.lng}&daddr=&type=vehicle`}}],g=["google","yandex","apple","osm"]},90160:()=>{},97787:(a,b,c)=>{"use strict";c.d(b,{v:()=>O});var d=c(64173),e=c(71813),f=c(80319),g=c(17240),h=c(42557);let i=(0,h.A)("Newspaper",[["path",{d:"M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-2 2Zm0 0a2 2 0 0 1-2-2v-9c0-1.1.9-2 2-2h2",key:"7pis2x"}],["path",{d:"M18 14h-8",key:"sponae"}],["path",{d:"M15 18h-5",key:"95g1m2"}],["path",{d:"M10 6h8v4h-8V6Z",key:"smlsk5"}]]);var j=c(65177),k=c(12619),l=c(66979);let m=(0,h.A)("Link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]);var n=c(97338);let o=(0,h.A)("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]),p=(0,h.A)("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);var q=c(62481),r=c(25436),s=c(30515),t=c(62261),u=c(20583),v=c(47071);let w=(0,h.A)("Quote",[["path",{d:"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"rib7q0"}],["path",{d:"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"1ymkrd"}]]);var x=c(1056),y=c.n(x),z=c(68669);let A=(0,h.A)("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);var B=c(65943);let C=(0,h.A)("Route",[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]]),D=(0,h.A)("MapPin",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]);var E=c(28082),F=c(44052),G=c(85548);function H({service:a,size:b=18,className:c}){return(0,d.jsx)("span",{className:"inline-flex items-center justify-center rounded-[5px] font-bold leading-none text-white shrink-0 "+(c??""),style:{background:a.brand,width:b,height:b,fontSize:Math.max(8,Math.floor(.55*b)),letterSpacing:a.glyph.length>1?"-0.05em":"0"},"aria-hidden":!0,children:a.glyph})}var I=c(3265);function J({point:a,services:b,interactive:c,onRemove:f}){let g=(0,e.c)("roots");return(0,d.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[b.slice(0,4).map(b=>(0,d.jsx)("a",{href:b.urlFor(a.lat,a.lng),target:"_blank",rel:"noopener noreferrer",className:"rounded p-0.5 hover:ring-1 hover:ring-offset-1 hover:ring-violet-300",title:g("mapWidget.navigationTitle",{service:b.label}),children:(0,d.jsx)(H,{service:b,size:18})},b.id)),(0,d.jsx)("button",{type:"button",onClick:()=>{navigator.clipboard.writeText(`${a.lat}, ${a.lng}`).then(()=>F.oR.success(g("mapWidget.coordsCopied"))).catch(()=>F.oR.error(g("mapWidget.clipboardUnavailable")))},className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-foreground",title:g("mapWidget.copyCoords"),children:(0,d.jsx)(E.A,{className:"h-3 w-3"})}),c&&(0,d.jsx)("button",{type:"button",onClick:f,className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-destructive",title:g("mapWidget.removePoint"),children:(0,d.jsx)(l.A,{className:"h-3 w-3"})})]})}function K({service:a,stops:b}){let c=(0,e.c)("roots"),f=a.routeUrlFor(b),g=b=>{b.preventDefault(),b.stopPropagation(),navigator.clipboard.writeText(f).then(()=>F.oR.success(c("mapWidget.linkCopied",{service:a.label}))).catch(()=>F.oR.error(c("mapWidget.clipboardUnavailable")))};return(0,d.jsxs)("a",{href:f,target:"_blank",rel:"noopener noreferrer",onContextMenu:g,className:"inline-flex items-center gap-1 rounded border px-1.5 py-0.5 text-[11px] hover:bg-accent",title:c("mapWidget.openTitle",{service:a.label}),children:[(0,d.jsx)(H,{service:a,size:16}),(0,d.jsx)("span",{className:"truncate max-w-[80px]",children:a.label}),(0,d.jsx)("button",{type:"button",onClick:g,className:"text-muted-foreground hover:text-foreground",title:c("mapWidget.copyLinkTitle"),children:(0,d.jsx)(E.A,{className:"h-2.5 w-2.5"})})]})}I.callServer,I.findSourceMapURL;let L=(0,I.createServerReference)("60a87dbd230d4f4216cf9b8beea7701425dba08778",I.callServer,void 0,I.findSourceMapURL,"invokeCardActionAction");var M=c(69552);I.callServer,I.findSourceMapURL;let N={markdown:function({data:a}){return(0,d.jsx)("div",{className:"text-sm",children:(0,d.jsx)(f.p,{source:a.body??""})})},"news-list":function({data:a,readonly:b,onPatch:c}){let f=(0,e.c)("roots"),h=a.items??[],[m,n]=(0,g.useState)(h),[o,p]=(0,g.useTransition)();(0,g.useRef)("");let q=a=>{n(a),c&&p(async()=>{try{await c({items:a})}catch{}})};return 0===m.length?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:f("newsListWidget.empty")}):(0,d.jsx)("ul",{className:"space-y-2",children:m.map((a,c)=>(0,d.jsxs)("li",{className:`group/row relative border-l-2 pl-2.5 py-0.5 transition ${a.read?"border-muted-foreground/30 opacity-60":"border-violet-200"}`,children:[(0,d.jsxs)("div",{className:"flex items-start gap-1.5",children:[(0,d.jsx)(i,{className:`h-3 w-3 mt-1 shrink-0 ${a.read?"text-muted-foreground":"text-violet-600"}`}),(0,d.jsxs)("div",{className:"min-w-0 flex-1 pr-12",children:[a.url?(0,d.jsxs)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"text-sm font-medium hover:underline inline-flex items-center gap-1",children:[a.title,(0,d.jsx)(j.A,{className:"h-3 w-3 opacity-50"})]}):(0,d.jsx)("span",{className:"text-sm font-medium",children:a.title}),a.summary&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 leading-relaxed",children:a.summary}),(a.source||a.date)&&(0,d.jsxs)("div",{className:"text-[10px] text-muted-foreground mt-0.5 flex gap-1.5",children:[a.source&&(0,d.jsx)("span",{children:a.source}),a.source&&a.date&&(0,d.jsx)("span",{children:"\xb7"}),a.date&&(0,d.jsx)("span",{className:"font-mono",children:a.date})]})]})]}),!b&&(0,d.jsxs)("div",{className:"absolute top-0 right-0 flex items-center gap-0.5 opacity-0 group-hover/row:opacity-100 transition-opacity",children:[(0,d.jsx)("button",{type:"button",onClick:()=>{!b&&q(m.map((a,b)=>b===c?{...a,read:!a.read}:a))},disabled:o,"aria-label":a.read?f("newsListWidget.markUnreadAria"):f("newsListWidget.markReadAria"),title:a.read?f("newsListWidget.markUnreadTitle"):f("newsListWidget.markReadTitle"),className:"p-1 rounded hover:bg-emerald-100 dark:hover:bg-emerald-950/40 text-muted-foreground hover:text-emerald-600 disabled:opacity-30",children:(0,d.jsx)(k.A,{className:"h-3 w-3"})}),(0,d.jsx)("button",{type:"button",onClick:()=>{!b&&q(m.filter((a,b)=>b!==c))},disabled:o,"aria-label":f("newsListWidget.dismissAria"),title:f("newsListWidget.dismissTitle"),className:"p-1 rounded hover:bg-destructive/15 text-muted-foreground hover:text-destructive disabled:opacity-30",children:(0,d.jsx)(l.A,{className:"h-3 w-3"})})]})]},c))})},"link-list":function({data:a,readonly:b,onPatch:c}){let f=(0,e.c)("roots"),h=a.items??[],[i,k]=(0,g.useState)(h),[l,o]=(0,g.useTransition)();return((0,g.useRef)(""),0===i.length)?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:f("linkListWidget.empty")}):(0,d.jsx)("ul",{className:"space-y-0.5",children:i.map((a,e)=>(0,d.jsxs)("li",{className:"group/row relative",children:[(0,d.jsxs)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"flex items-start gap-1.5 rounded-md px-2 py-1.5 hover:bg-accent/40 transition",children:[(0,d.jsx)(m,{className:"h-3 w-3 mt-1 shrink-0 text-sky-600"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"text-sm font-medium hover:underline inline-flex items-center gap-1",children:[a.title,(0,d.jsx)(j.A,{className:"h-3 w-3 opacity-50"})]}),a.hint&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 leading-relaxed",children:a.hint}),(0,d.jsx)("div",{className:"text-[10px] text-muted-foreground truncate font-mono mt-0.5",children:a.url})]})]}),!b&&(0,d.jsx)("button",{type:"button",onClick:()=>(a=>{if(!b){var d;k(d=i.filter((b,c)=>c!==a)),c&&o(async()=>{try{await c({items:d})}catch{}})}})(e),disabled:l,"aria-label":f("linkListWidget.removeAria"),className:"absolute top-1.5 right-1.5 opacity-0 group-hover/row:opacity-100 transition-opacity p-1 rounded hover:bg-destructive/15 text-muted-foreground hover:text-destructive disabled:opacity-30",children:(0,d.jsx)(n.A,{className:"h-3 w-3"})})]},e))})},kpi:function({data:a}){let b=(0,e.c)("roots"),c=a.items??[];if(0===c.length)return(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:b("kpiWidget.empty")});let f=Math.min(c.length,3);return(0,d.jsx)("div",{className:"grid gap-2",style:{gridTemplateColumns:`repeat(${f}, minmax(0,1fr))`},children:c.map((a,b)=>(0,d.jsxs)("div",{className:"rounded-md border bg-card px-3 py-2 flex flex-col gap-0.5",children:[(0,d.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground",children:a.label}),(0,d.jsxs)("div",{className:"flex items-baseline gap-1",children:[(0,d.jsx)("span",{className:"text-lg font-semibold tabular-nums",children:a.value}),"up"===a.delta&&(0,d.jsx)(o,{className:"h-3.5 w-3.5 text-emerald-600"}),"down"===a.delta&&(0,d.jsx)(p,{className:"h-3.5 w-3.5 text-rose-600"}),"flat"===a.delta&&(0,d.jsx)(q.A,{className:"h-3.5 w-3.5 text-muted-foreground"})]}),a.hint&&(0,d.jsx)("div",{className:"text-[10px] text-muted-foreground leading-snug",children:a.hint})]},b))})},checklist:function({data:a,readonly:b,onPatch:c}){let f=(0,e.c)("roots"),h=a.items??[],[i,j]=(0,g.useState)(h),[l,m]=(0,g.useTransition)(),[o,p]=(0,g.useState)("");(0,g.useRef)("");let q=a=>{j(a),c&&m(async()=>{try{await c({items:a})}catch{}})},w=a=>{b||q(i.map((b,c)=>c===a?{...b,done:!b.done}:b))};return 0===i.length&&b?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:f("checklistWidget.empty")}):(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)("ul",{className:"space-y-0.5",children:i.map((a,c)=>(0,d.jsxs)("li",{className:`group/row flex items-start gap-2 text-sm py-0.5 rounded hover:bg-accent/30 px-1 -mx-1 ${a.done?"text-muted-foreground":""}`,children:[(0,d.jsx)("button",{type:"button",onClick:()=>w(c),disabled:b||l,"aria-label":a.done?f("checklistWidget.uncheckAria"):f("checklistWidget.checkAria"),className:"shrink-0 mt-0.5 disabled:opacity-50",children:a.done?(0,d.jsx)(k.A,{className:"h-3.5 w-3.5 text-emerald-600"}):(0,d.jsx)(r.A,{className:"h-3.5 w-3.5 text-muted-foreground/60 hover:text-foreground"})}),(0,d.jsx)("span",{className:`flex-1 min-w-0 break-words ${a.done?"line-through":""}`,onClick:()=>w(c),style:b?{}:{cursor:"pointer"},children:a.text}),!b&&(0,d.jsx)("button",{type:"button",onClick:()=>{!b&&q(i.filter((a,b)=>b!==c))},disabled:l,"aria-label":f("checklistWidget.removeAria"),className:"opacity-0 group-hover/row:opacity-100 transition-opacity shrink-0 p-0.5 text-muted-foreground hover:text-destructive disabled:opacity-30",children:(0,d.jsx)(n.A,{className:"h-3 w-3"})})]},c))}),!b&&(0,d.jsxs)("form",{className:"flex items-center gap-1 pt-1",onSubmit:a=>{a.preventDefault(),(()=>{if(b)return;let a=o.trim();a&&(q([...i,{text:a,done:!1}]),p(""))})()},children:[(0,d.jsx)(s.A,{className:"h-3 w-3 text-muted-foreground shrink-0"}),(0,d.jsx)(v.p,{value:o,onChange:a=>p(a.target.value),placeholder:f("checklistWidget.newItemPlaceholder"),className:"h-7 text-xs flex-1 border-0 shadow-none focus-visible:ring-0 focus-visible:ring-offset-0 px-1",disabled:l}),o.trim()&&(0,d.jsx)(u.$,{type:"submit",size:"sm",variant:"ghost",className:"h-6 text-[10px] px-1.5",disabled:l,children:l?(0,d.jsx)(t.A,{className:"h-3 w-3 animate-spin"}):f("checklistWidget.add")})]})]})},quote:function({data:a}){let b=(0,e.c)("roots");return a?.text?(0,d.jsxs)("figure",{className:"relative pl-6",children:[(0,d.jsx)(w,{className:"h-5 w-5 absolute left-0 top-0 text-violet-300"}),(0,d.jsx)("blockquote",{className:"text-sm italic leading-relaxed",children:a.text}),a.attribution&&(0,d.jsxs)("figcaption",{className:"text-xs text-muted-foreground mt-1.5",children:["— ",a.attribution]})]}):(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:b("quoteWidget.empty")})},"kb-pinned":function({rootId:a,data:b,readonly:c,onPatch:f}){let h=(0,e.c)("roots"),i=b.items??[],[j,k]=(0,g.useState)(i),[m,n]=(0,g.useTransition)();return((0,g.useRef)(""),0===j.length)?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:h("kbPinnedWidget.empty")}):(0,d.jsx)("ul",{className:"space-y-1",children:j.map((b,e)=>{let g=b.rel.split("/").map(encodeURIComponent).join("/");return(0,d.jsxs)("li",{className:"group/row relative",children:[(0,d.jsxs)(y(),{href:`/roots/${a}/kb/${g}`,className:"flex items-start gap-2 rounded-md px-2 py-1.5 hover:bg-accent/40 transition pr-7",children:[(0,d.jsx)(z.A,{className:"h-3 w-3 mt-0.5 shrink-0 text-emerald-700"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"text-sm font-medium truncate",children:b.title??b.rel}),b.snippet&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2 leading-relaxed mt-0.5",children:b.snippet}),(0,d.jsx)("div",{className:"text-[10px] text-muted-foreground font-mono mt-0.5 truncate",children:b.rel})]})]}),!c&&(0,d.jsx)("button",{type:"button",onClick:()=>(a=>{if(!c){var b;k(b=j.filter((b,c)=>c!==a)),f&&n(async()=>{try{await f({items:b})}catch{}})}})(e),disabled:m,"aria-label":h("kbPinnedWidget.unpinAria"),title:h("kbPinnedWidget.unpinTitle"),className:"absolute top-1.5 right-1.5 opacity-0 group-hover/row:opacity-100 transition-opacity p-1 rounded hover:bg-destructive/15 text-muted-foreground hover:text-destructive disabled:opacity-30",children:(0,d.jsx)(l.A,{className:"h-3 w-3"})})]},e)})})},progress:function({data:a,readonly:b,onPatch:c}){let f=(0,e.c)("roots"),h=a.items??[],[i,j]=(0,g.useState)(h),[k,l]=(0,g.useTransition)();(0,g.useRef)("");let m=(a,d)=>{if(!b){var e;j(e=i.map((b,c)=>c===a?{...b,current:Math.max(0,b.current+d)}:b)),c&&l(async()=>{try{await c({items:e})}catch{}})}};return 0===i.length?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:f("progressWidget.empty")}):(0,d.jsx)("ul",{className:"space-y-2.5",children:i.map((a,c)=>{let e=a.target>0?Math.max(0,Math.min(100,a.current/a.target*100)):0;return(0,d.jsxs)("li",{className:"space-y-1 group/row",children:[(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2 text-sm",children:[(0,d.jsx)("span",{className:"truncate flex-1 min-w-0",children:a.label}),!b&&(0,d.jsxs)("div",{className:"flex items-center gap-0.5 opacity-0 group-hover/row:opacity-100 transition-opacity shrink-0",children:[(0,d.jsx)("button",{type:"button",onClick:()=>m(c,-1),disabled:k||a.current<=0,"aria-label":"−1",className:"p-0.5 rounded hover:bg-accent text-muted-foreground hover:text-foreground disabled:opacity-30",children:(0,d.jsx)(A,{className:"h-3 w-3"})}),(0,d.jsx)("button",{type:"button",onClick:()=>m(c,1),disabled:k,"aria-label":"+1",className:"p-0.5 rounded hover:bg-accent text-muted-foreground hover:text-foreground disabled:opacity-30",children:(0,d.jsx)(s.A,{className:"h-3 w-3"})})]}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground tabular-nums shrink-0",children:[a.current," / ",a.target,a.unit?` ${a.unit}`:""]})]}),(0,d.jsx)("div",{className:"h-1.5 rounded-full bg-muted overflow-hidden",children:(0,d.jsx)("div",{className:"h-full bg-violet-600 transition-all",style:{width:`${e}%`}})})]},c)})})},image:function({data:a}){let b=(0,e.c)("roots");return a?.url?(0,d.jsxs)("figure",{className:"space-y-1",children:[(0,d.jsx)("img",{src:a.url,alt:a.alt??"",className:"rounded-md w-full h-auto border",loading:"lazy"}),a.caption&&(0,d.jsx)("figcaption",{className:"text-xs text-muted-foreground text-center",children:a.caption})]}):(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:b("imageWidget.empty")})},"stat-table":function({data:a}){let b=(0,e.c)("roots"),c=a.rows??[];return 0===c.length?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:b("statTableWidget.empty")}):(0,d.jsx)("div",{className:"overflow-x-auto -mx-1",children:(0,d.jsxs)("table",{className:"w-full text-sm",children:[a.columns&&a.columns.length>0&&(0,d.jsx)("thead",{children:(0,d.jsx)("tr",{className:"border-b",children:a.columns.map((a,b)=>(0,d.jsx)("th",{className:"text-left text-[10px] uppercase tracking-wider text-muted-foreground font-medium px-1.5 py-1.5",children:a},b))})}),(0,d.jsx)("tbody",{children:c.map((a,b)=>(0,d.jsx)("tr",{className:"border-b border-dashed last:border-b-0 hover:bg-accent/30",children:a.map((a,b)=>(0,d.jsx)("td",{className:"px-1.5 py-1.5 align-top",children:a},b))},b))})]})})},map:function({data:a,readonly:b,onPatch:c}){let f=(0,e.c)("roots"),h=(0,g.useRef)(null),i=(0,g.useRef)(null),[j,k]=(0,g.useState)(!1),[m,o]=(0,g.useState)(G.JY),[p,q]=(0,g.useState)(""),[r,u]=(0,g.useState)(!1),[v,w]=(0,g.useState)([]),[x,y]=(0,g.useState)(!1),[z,A]=(0,g.useState)([]),E=a.points??[],H=a.route?.stops??[],I=x?z:H,L=(0,g.useMemo)(()=>I.map(a=>E[a]).filter(a=>!!a).map(a=>({lat:a.lat,lng:a.lng})),[I,E]),M=(0,g.useMemo)(()=>G.yp.filter(a=>m.includes(a.id)),[m]);(0,g.useEffect)(()=>{if(!j||!h.current)return;let b=window.L;if(!b||(i.current&&(i.current.remove(),i.current=null),0===E.length))return;let c=b.map(h.current,{scrollWheelZoom:!1,zoomControl:!0});i.current=c,b.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',maxZoom:19}).addTo(c);let d=E.map((a,d)=>{let e=I.includes(d),g=function(a,b,c){let d=a=>a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"),e=b.map(b=>{let c=b.urlFor(a.lat,a.lng);return`<a href="${d(c)}" target="_blank" rel="noopener noreferrer" title="${d(b.label)}" style="display:inline-flex;align-items:center;gap:4px;margin:2px 4px 2px 0;padding:2px 6px;border-radius:5px;border:1px solid #e5e7eb;text-decoration:none;font-size:11px;color:#111;background:#fff;"><span style="display:inline-block;width:14px;height:14px;border-radius:3px;background:${b.brand};color:#fff;font-size:9px;font-weight:700;line-height:14px;text-align:center;letter-spacing:${b.glyph.length>1?"-0.05em":"0"}">${d(b.glyph)}</span><span>${d(b.label)}</span></a>`}).join("");return['<div style="font-family:inherit;min-width:200px">',`<div style="font-weight:600;font-size:13px;margin-bottom:2px">${d(a.title)}</div>`,a.description?`<div style="font-size:12px;color:#666;margin-bottom:6px">${d(a.description)}</div>`:"",`<div style="font-family:monospace;font-size:10px;color:#888;margin-bottom:6px">${a.lat.toFixed(5)}, ${a.lng.toFixed(5)}</div>`,b.length>0?`<div style="font-size:10px;color:#888;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:2px">${d(c.openIn)}</div>${e}`:"",`<div style="margin-top:6px"><button type="button" data-reflex-copy="${a.lat}, ${a.lng}" style="font-size:11px;padding:2px 8px;border:1px solid #ddd;border-radius:4px;background:#fff;cursor:pointer">📋 ${d(c.copyCoords)}</button></div>`,"</div>"].filter(Boolean).join("")}(a,M,{openIn:f("mapWidget.openIn"),copyCoords:f("mapWidget.copyCoords")}),h=b.marker([a.lat,a.lng],{opacity:x&&!e?.55:1}).addTo(c);return h.bindPopup(g,{maxWidth:280}),h.on("click",()=>{x&&A(a=>a.includes(d)?a.filter(a=>a!==d):[...a,d])}),h});L.length>=2&&b.polyline(L.map(a=>[a.lat,a.lng]),{color:a.route?.color??"#7c3aed",weight:4,opacity:.85,dashArray:x?"6,6":void 0}).addTo(c);let e=a=>{let b=a.target.closest("[data-reflex-copy]");if(b){let c=b.getAttribute("data-reflex-copy");c&&navigator.clipboard.writeText(c).then(()=>F.oR.success(f("mapWidget.copied"))).catch(()=>F.oR.error(f("mapWidget.clipboardUnavailable"))),a.preventDefault()}};if(h.current.addEventListener("click",e),a.center&&"number"==typeof a.zoom)c.setView([a.center.lat,a.center.lng],a.zoom);else if(1===E.length)c.setView([E[0].lat,E[0].lng],a.zoom??12);else{let a=b.featureGroup(d);c.fitBounds(a.getBounds().pad(.2))}return()=>{h.current?.removeEventListener("click",e),c.remove(),i.current=null}},[j,a,m.join("|"),x,z.join(",")]);let N=!b&&!!c,O=async()=>{let a=p.trim();if(a){u(!0),w([]);try{let b=`https://nominatim.openstreetmap.org/search?q=${encodeURIComponent(a)}&format=json&limit=6`,c=await fetch(b,{headers:{Accept:"application/json"}});if(!c.ok)throw Error(`status ${c.status}`);let d=await c.json();w(d),0===d.length&&F.oR.message(f("mapWidget.nothingFound"))}catch(a){F.oR.error(f("mapWidget.searchFailed",{error:a instanceof Error?a.message:String(a)}))}finally{u(!1)}}},P=async b=>{if(!N)return;let d=Number(b.lat),e=Number(b.lon);if(!Number.isFinite(d)||!Number.isFinite(e))return void F.oR.error(f("mapWidget.invalidCoordinates"));let g=b.display_name.split(",")[0]?.trim()||b.display_name.slice(0,60),h={...a,points:[...E,{lat:d,lng:e,title:g,description:b.display_name}]};w([]),q(""),await c?.(h)},Q=async b=>{if(!N)return;let d=E.filter((a,c)=>c!==b),e=a.route;if(a.route?.stops?.length){let c=a.route.stops.filter(a=>a!==b).map(a=>a>b?a-1:a);e=c.length>=2?{...a.route,stops:c}:void 0}let f={...a,points:d,...e?{route:e}:{route:void 0}};await c?.(f)},R=async()=>{if(!N)return;let b={...a,route:void 0};await c?.(b),y(!1),A([])},S=async()=>{if(!N)return;if(z.length<2)return void F.oR.error(f("mapWidget.routeNeedsTwo"));let b={...a,route:{...a.route??{},stops:z}};await c?.(b),y(!1)};return 0!==E.length||N?(0,d.jsxs)("div",{className:"space-y-2",children:[N&&(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsxs)("div",{className:"relative flex-1",children:[(0,d.jsx)(B.A,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3 w-3 text-muted-foreground pointer-events-none"}),(0,d.jsx)("input",{type:"search",value:p,onChange:a=>q(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),O())},placeholder:f("mapWidget.searchPlaceholder"),className:"w-full rounded border bg-background pl-7 pr-2 py-1 text-xs focus:outline-none focus:ring-1 focus:ring-violet-400"})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>void O(),disabled:r||!p.trim(),className:"rounded border px-2 py-1 text-xs hover:bg-accent disabled:opacity-50 inline-flex items-center gap-1",children:[r?(0,d.jsx)(t.A,{className:"h-3 w-3 animate-spin"}):(0,d.jsx)(B.A,{className:"h-3 w-3"}),f("mapWidget.search")]}),x?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("button",{type:"button",onClick:()=>void S(),className:"rounded px-2 py-1 text-xs bg-violet-600 text-white hover:bg-violet-700 inline-flex items-center gap-1",title:f("mapWidget.saveRouteTitle"),children:[(0,d.jsx)(C,{className:"h-3 w-3"})," ",f("mapWidget.save")]}),(0,d.jsx)("button",{type:"button",onClick:()=>{y(!1),A([])},className:"rounded border px-2 py-1 text-xs hover:bg-accent inline-flex items-center gap-1",title:f("mapWidget.cancelTitle"),children:(0,d.jsx)(l.A,{className:"h-3 w-3"})})]}):(0,d.jsxs)("button",{type:"button",onClick:()=>{A(H),y(!0)},disabled:E.length<2,className:"rounded border px-2 py-1 text-xs hover:bg-accent disabled:opacity-50 inline-flex items-center gap-1",title:f("mapWidget.routeButtonTitle"),children:[(0,d.jsx)(C,{className:"h-3 w-3"}),f("mapWidget.route")]})]}),v.length>0&&(0,d.jsx)("ul",{className:"rounded border bg-card divide-y text-xs max-h-44 overflow-y-auto",children:v.map((a,b)=>(0,d.jsx)("li",{children:(0,d.jsxs)("button",{type:"button",onClick:()=>void P(a),className:"w-full text-left flex items-start gap-2 px-2 py-1.5 hover:bg-accent",children:[(0,d.jsx)(s.A,{className:"h-3 w-3 mt-0.5 text-emerald-700 shrink-0"}),(0,d.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,d.jsx)("span",{className:"block font-medium truncate",children:a.display_name.split(",")[0]}),(0,d.jsx)("span",{className:"block text-[10px] text-muted-foreground truncate",children:a.display_name})]})]})},b))}),x&&(0,d.jsx)("div",{className:"rounded border border-violet-200 bg-violet-50 dark:bg-violet-950/30 dark:border-violet-900/50 px-2 py-1.5 text-[11px] text-violet-900 dark:text-violet-200",children:f.rich("mapWidget.routeModeHint",{count:z.length,strong:a=>(0,d.jsx)("strong",{children:a})})})]}),(0,d.jsx)("div",{ref:h,className:"rounded-md border overflow-hidden bg-muted/30",style:{height:280}}),!x&&L.length>=2&&M.length>0&&(0,d.jsx)("div",{className:"rounded border bg-card px-2 py-1.5",children:(0,d.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 text-[11px] font-medium",children:[(0,d.jsx)(C,{className:"h-3 w-3 text-violet-600"}),f("mapWidget.routeLabel",{count:L.length})]}),M.map(a=>(0,d.jsx)(K,{service:a,stops:L},a.id)),N&&(0,d.jsxs)("button",{type:"button",onClick:()=>void R(),className:"ml-auto text-[10px] text-muted-foreground hover:text-destructive inline-flex items-center gap-0.5",title:f("mapWidget.deleteRouteTitle"),children:[(0,d.jsx)(n.A,{className:"h-3 w-3"}),f("mapWidget.delete")]})]})}),(0,d.jsx)("ul",{className:"space-y-1",children:E.map((a,b)=>{let c=I.indexOf(b);return(0,d.jsxs)("li",{className:"flex items-start gap-2 rounded-md border bg-card px-2 py-1.5 text-xs "+(x&&c>=0?"ring-1 ring-violet-400 border-violet-300":""),children:[x?(0,d.jsx)("button",{type:"button",onClick:()=>A(a=>a.includes(b)?a.filter(a=>a!==b):[...a,b]),className:"h-5 w-5 mt-0.5 shrink-0 rounded-full border text-[10px] font-mono inline-flex items-center justify-center "+(c>=0?"bg-violet-600 text-white border-violet-600":"bg-card text-muted-foreground"),title:c>=0?f("mapWidget.removeFromRoute"):f("mapWidget.addToRoute"),children:c>=0?c+1:"+"}):(0,d.jsx)(D,{className:"h-3 w-3 mt-1 shrink-0 "+(H.includes(b)?"text-violet-600":"text-emerald-700")}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"font-medium truncate",children:a.title}),a.description&&(0,d.jsx)("p",{className:"text-muted-foreground leading-snug mt-0.5 line-clamp-2",children:a.description}),(0,d.jsxs)("div",{className:"text-[10px] text-muted-foreground/80 font-mono mt-0.5",children:[a.lat.toFixed(5),", ",a.lng.toFixed(5)]})]}),(0,d.jsx)(J,{point:a,services:M,interactive:N,onRemove:()=>void Q(b)})]},b)})})]}):(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:f("mapWidget.noPointsReadonly")})},"action-list":function({rootId:a,data:b,readonly:c,widgetId:e,utility:f}){let[h,i]=(0,g.useState)(b.groups??[]),[j,k]=(0,g.useState)(null),l=!c&&!!f&&!!e,m=async(b,c)=>{if(f&&e&&(!c.confirm||confirm(c.confirm))){k(b);try{let d=await L(a,{utilityId:f.id,utilityScope:f.scope,widgetId:e,actionName:c.actionName,args:{id:b,...c.args??{}}});if(!d.ok)return void F.oR.error(d.error??"Action failed");if(d.inner&&"action-list"===d.inner.kind){let a=d.inner.data;a?.groups&&i(a.groups)}}catch(a){F.oR.error(a instanceof Error?a.message:String(a))}finally{k(null)}}};return 0===h.length?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Nothing here yet."}):(0,d.jsx)("div",{className:"space-y-3",children:h.map((a,b)=>(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsxs)("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground",children:[a.label,a.items.length>0&&(0,d.jsx)("span",{className:"ml-1 text-muted-foreground/70",children:a.items.length})]}),0===a.items.length?(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground/80 italic",children:a.emptyText??"empty"}):(0,d.jsx)("ul",{className:"space-y-1",children:a.items.map(a=>(0,d.jsxs)("li",{className:"flex items-center gap-2 rounded-md border bg-card px-2 py-1.5",children:[a.badge&&(0,d.jsx)("span",{className:"shrink-0 text-[10px] uppercase tracking-wide rounded bg-muted px-1.5 py-0.5 text-muted-foreground",children:a.badge}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"truncate text-xs font-medium",children:a.title}),a.subtitle&&(0,d.jsx)("div",{className:"truncate text-[10px] text-muted-foreground",children:a.subtitle})]}),a.action&&l&&(0,d.jsx)(u.$,{size:"sm",variant:"secondary",className:"h-7 shrink-0 text-[11px]",disabled:null!==j,onClick:()=>void m(a.id,a.action),children:j===a.id?(0,d.jsx)(t.A,{className:"h-3 w-3 animate-spin"}):a.action.label})]},a.id))})]},b))})},"utility-card":function({rootId:a,data:b,widgetId:c,readonly:f}){let h=(0,e.c)("roots"),[i,k]=(0,g.useState)(b.inner),[l,m]=(0,g.useState)(!1);(0,g.useRef)(!1);let n="project"===b.utilityScope?`/utilities/project/${b.utilityId}?rootId=${encodeURIComponent(a)}`:`/utilities/global/${b.utilityId}`;return(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px] uppercase tracking-wider text-muted-foreground",children:[(0,d.jsx)(M.A,{className:"h-3 w-3 text-violet-600"}),(0,d.jsx)("span",{children:h("utilityCardWidget.miniAppLabel")}),(0,d.jsx)("span",{className:"font-mono normal-case tracking-normal text-muted-foreground/80",children:b.utilityId}),l&&(0,d.jsx)(t.A,{className:"h-2.5 w-2.5 animate-spin text-muted-foreground"}),(0,d.jsxs)(y(),{href:n,className:"ml-auto inline-flex items-center gap-0.5 text-[10px] text-violet-700 hover:underline normal-case tracking-normal",title:h("utilityCardWidget.openFullTitle"),children:[h("utilityCardWidget.openLabel"),(0,d.jsx)(j.A,{className:"h-2.5 w-2.5"})]})]}),i.title&&(0,d.jsx)("h4",{className:"text-sm font-medium",children:i.title}),i.description&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground -mt-1",children:i.description}),(0,d.jsx)("div",{children:O(a,i.kind,i.data,{readonly:"action-list"!==i.kind||!!f,...c?{widgetId:c}:{},utility:{id:b.utilityId,scope:b.utilityScope}})})]})}};function O(a,b,c,e){let f=N[b];return f?(0,d.jsx)(f,{rootId:a,data:c,readonly:e?.readonly??!1,onPatch:e?.onPatch,widgetId:e?.widgetId,utility:e?.utility}):(0,d.jsx)(P,{kind:b})}function P({kind:a}){let b=(0,e.c)("roots");return(0,d.jsx)("p",{className:"text-xs text-destructive",children:b.rich("widgetsCommon.unknownKind",{kind:a,code:a=>(0,d.jsx)("code",{className:"font-mono",children:a})})})}}};
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3845],{3239:(e,t,r)=>{r.d(t,{A:()=>a});let a=(0,r(45804).A)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},8096:(e,t,r)=>{r.d(t,{A:()=>a});let a=(0,r(45804).A)("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]])},13506:(e,t,r)=>{r.d(t,{cn:()=>i});var a=r(47989),s=r(55701);function i(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,s.QP)((0,a.$)(t))}},13561:(e,t,r)=>{r.d(t,{A:()=>a});let a=(0,r(45804).A)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},60621:(e,t,r)=>{r.d(t,{F:()=>n});var a=r(47989);let s=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,i=a.$,n=(e,t)=>r=>{var a;if((null==t?void 0:t.variants)==null)return i(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:n,defaultVariants:l}=t,o=Object.keys(n).map(e=>{let t=null==r?void 0:r[e],a=null==l?void 0:l[e];if(null===t)return null;let i=s(t)||s(a);return n[e][i]}),d=r&&Object.entries(r).reduce((e,t)=>{let[r,a]=t;return void 0===a||(e[r]=a),e},{});return i(e,o,null==t||null==(a=t.compoundVariants)?void 0:a.reduce((e,t)=>{let{class:r,className:a,...s}=t;return Object.entries(s).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...l,...d}[t]):({...l,...d})[t]===r})?[...e,r,a]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}},71651:(e,t,r)=>{r.d(t,{T:()=>i});var a=r(4624);r(99356);var s=r(13506);function i(e){let{className:t,...r}=e;return(0,a.jsx)("textarea",{"data-slot":"textarea",className:(0,s.cn)("flex field-sizing-content min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40",t),...r})}},85253:(e,t,r)=>{r.d(t,{$:()=>o});var a=r(4624);r(99356);var s=r(60621),i=r(50362),n=r(13506);let l=(0,s.F)("inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function o(e){let{className:t,variant:r="default",size:s="default",asChild:o=!1,...d}=e,c=o?i.bL:"button";return(0,a.jsx)(c,{"data-slot":"button","data-variant":r,"data-size":s,className:(0,n.cn)(l({variant:r,size:s,className:t})),...d})}},93845:(e,t,r)=>{r.d(t,{UtilityIframe:()=>f});var a=r(4624),s=r(99356),i=r(8096),n=r(13561),l=r(3239),o=r(95265),d=r(56221),c=r(49411),u=r(85253),p=r(71651),v=r(7911);let h=(0,v.createServerReference)("40e58a239c4b1c949afc6cfe3c2c39be7f6c32a669",v.callServer,void 0,v.findSourceMapURL,"startUtilityHelperChatAction");function m(e){let{utilityId:t,utilityName:r,rootId:v,requestSnapshot:m}=e,f=(0,c.c)("app"),[g,x]=(0,s.useState)(!1),[b,y]=(0,s.useState)(""),[k,w]=(0,s.useTransition)(),j=(0,s.useRef)(null);(0,s.useEffect)(()=>{var e;g&&(null==(e=j.current)||e.focus())},[g]);let N=!v,z=()=>{let e=b.trim();e&&v&&!k&&w(async()=>{let a;try{let e=await Promise.race([m(),new Promise(e=>setTimeout(()=>e(void 0),600))]);void 0!==e&&(a="string"==typeof e?e:JSON.stringify(e,null,2))}catch(e){}let s=await h({rootId:v,utilityId:t,utilityName:null!=r?r:t,question:e,...a?{context:a}:{}});if(!s.ok)return void d.oR.error(s.error);window.open("/roots/".concat(v,"/chat/").concat(s.topicId),"_blank"),y(""),x(!1)})};return g?(0,a.jsx)("div",{className:"absolute right-3 bottom-3 z-10 w-[min(28rem,calc(100%-1.5rem))]",children:(0,a.jsxs)("div",{className:"rounded-xl border bg-card shadow-xl",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border-b",children:[(0,a.jsx)(i.A,{className:"h-3.5 w-3.5 text-violet-600 shrink-0"}),(0,a.jsx)("span",{className:"text-sm font-medium truncate",children:f("utilities.ask.title",{name:null!=r?r:t})}),(0,a.jsx)("button",{type:"button",onClick:()=>x(!1),className:"ml-auto p-1 rounded hover:bg-accent text-muted-foreground hover:text-foreground shrink-0",title:f("utilities.ask.close"),"aria-label":f("utilities.ask.close"),children:(0,a.jsx)(n.A,{className:"h-3.5 w-3.5"})})]}),(0,a.jsxs)("div",{className:"p-2",children:[N?(0,a.jsx)("p",{className:"px-2 py-3 text-xs text-muted-foreground",children:f("utilities.helper.projectOnly")}):(0,a.jsxs)("div",{className:"flex items-end gap-2",children:[(0,a.jsx)(p.T,{ref:j,value:b,onChange:e=>y(e.target.value),onKeyDown:e=>{if("Escape"===e.key){e.preventDefault(),x(!1);return}"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),z())},placeholder:f("utilities.ask.placeholder"),rows:1,disabled:k,className:"resize-none min-h-[44px] max-h-40 text-sm bg-background/70 py-2.5 flex-1"}),(0,a.jsx)(u.$,{type:"button",size:"lg",onClick:z,disabled:k||!b.trim(),className:"h-11 px-5 shadow-md shrink-0",children:k?(0,a.jsx)(l.A,{className:"h-4 w-4 animate-spin"}):(0,a.jsx)(o.A,{className:"h-4 w-4"})})]}),(0,a.jsx)("p",{className:"px-1 pt-1.5 text-[10px] text-muted-foreground",children:f("utilities.ask.hint")})]})]})}):(0,a.jsx)("button",{type:"button",onClick:()=>x(!0),className:"absolute right-3 bottom-3 z-10 inline-flex h-10 w-10 items-center justify-center rounded-full reflex-gradient text-white shadow-lg hover:opacity-90",title:f("utilities.iframe.openHelper"),"aria-label":f("utilities.iframe.openHelper"),children:(0,a.jsx)(i.A,{className:"h-4 w-4"})})}function f(e){let{scope:t,id:r,rootId:i,className:n,title:l,agentChat:o,utilityName:d}=e,c=(0,s.useRef)(null),u=(0,s.useRef)(null),p=i?"?rootId=".concat(encodeURIComponent(i)):"",v="/api/utilities/".concat(t,"/").concat(r,"/iframe").concat(p),h="/api/utilities/".concat(t,"/").concat(r,"/host").concat(p);(0,s.useEffect)(()=>{let e=async e=>{var t,r,a,s,i,n;let l=e.data;if(!l||e.source!==(null==(t=c.current)?void 0:t.contentWindow))return;if("snapshot-payload"===l.type){let e=u.current;e&&(clearTimeout(e.timer),u.current=null,e.resolve(l.snapshot));return}if("host-rpc"!==l.type)return;let o=l.id;try{let e=await fetch(h,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({method:l.method,args:l.args})}),t=await e.json();null==(a=c.current)||null==(r=a.contentWindow)||r.postMessage(t.ok?{type:"host-rpc-result",id:o,ok:!0,result:t.result}:{type:"host-rpc-result",id:o,ok:!1,error:null!=(s=t.error)?s:"HTTP ".concat(e.status)},"*")}catch(e){null==(n=c.current)||null==(i=n.contentWindow)||i.postMessage({type:"host-rpc-result",id:o,ok:!1,error:e instanceof Error?e.message:String(e)},"*")}};return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[h]);let f=(0,a.jsx)("iframe",{ref:c,src:v,sandbox:"allow-scripts allow-forms allow-same-origin",className:null!=n?n:"h-full w-full border-0 bg-white",title:null!=l?l:"utility-".concat(r)});return o?(0,a.jsxs)("div",{className:"relative h-full w-full",children:[f,(0,a.jsx)(m,{utilityId:r,...d?{utilityName:d}:{},...i?{rootId:i}:{},requestSnapshot:()=>{var e;let t=null==(e=c.current)?void 0:e.contentWindow;return t?(u.current&&(clearTimeout(u.current.timer),u.current.resolve(void 0),u.current=null),new Promise(e=>{let r=setTimeout(()=>{var t;(null==(t=u.current)?void 0:t.resolve)===e&&(u.current=null,e(void 0))},500);u.current={resolve:e,timer:r};try{t.postMessage({type:"request-snapshot"},"*")}catch(t){clearTimeout(r),u.current=null,e(void 0)}})):Promise.resolve(void 0)}})]}):f}},95265:(e,t,r)=>{r.d(t,{A:()=>a});let a=(0,r(45804).A)("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]])}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4108],{6301:(e,c,t)=>{t.d(c,{T:()=>a});var r=t(7911);let a=(0,r.createServerReference)("60f2c1fe4529a405e4dc9c8f0b8789453a594df12e",r.callServer,void 0,r.findSourceMapURL,"beginOAuthAction")},18474:(e,c,t)=>{t.d(c,{o:()=>a});var r=t(7911);let a=(0,r.createServerReference)("00fc1729a4ff83c849c2612bcaa8b2ecba1e75dd22",r.callServer,void 0,r.findSourceMapURL,"listOAuthStatusesAction")},60915:(e,c,t)=>{t.d(c,{J:()=>a});var r=t(7911);let a=(0,r.createServerReference)("40a167b495f96de52a1fa9d5308390c35cf3de077f",r.callServer,void 0,r.findSourceMapURL,"getOAuthClientAction")},83016:(e,c,t)=>{t.d(c,{S:()=>a});var r=t(7911);let a=(0,r.createServerReference)("40c2dd3ce84b9fb4926b8702d8cf5c5ee0df892e05",r.callServer,void 0,r.findSourceMapURL,"saveOAuthClientAction")},94108:(e,c,t)=>{t.d(c,{beginOAuthAction:()=>d.T,getOAuthClientAction:()=>a.J,listOAuthStatusesAction:()=>r.o,saveOAuthClientAction:()=>i.S});var r=t(18474),a=t(60915),i=t(83016),d=t(6301)}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5494],{55989:(e,t,r)=>{r.d(t,{t:()=>n});var a=r(7911);let n=(0,a.createServerReference)("60793add22874475e0a9278aa4cda627ab9446a9b2",a.callServer,void 0,a.findSourceMapURL,"restoreWidgetAction")},68682:(e,t,r)=>{function a(e){return"".concat(e.lat,",").concat(e.lng)}function n(e){return"".concat(e.lng,",").concat(e.lat)}r.d(t,{JY:()=>i,yp:()=>s});let s=[{id:"google",label:"Google Maps",description:"Global, navigation + street view. Works everywhere except where the RF blocks it.",brand:"#4285F4",glyph:"G",urlFor:(e,t)=>"https://www.google.com/maps/dir/?api=1&destination=".concat(e,",").concat(t),routeUrlFor:e=>{if(e.length<2)return"";let t=a(e[0]),r=a(e[e.length-1]),n=e.slice(1,-1).map(a).join("|"),s=n?"&waypoints=".concat(encodeURIComponent(n)):"";return"https://www.google.com/maps/dir/?api=1&origin=".concat(t,"&destination=").concat(r).concat(s)}},{id:"yandex",label:"Yandex Maps",description:"CIS region, best RF detail and real-time traffic.",brand:"#FFCC00",glyph:"Y",urlFor:(e,t)=>"https://yandex.ru/maps/?rtext=~".concat(e,",").concat(t,"&rtt=auto"),routeUrlFor:e=>"https://yandex.ru/maps/?rtext=".concat(e.map(a).join("~"),"&rtt=auto")},{id:"2gis",label:"2GIS",description:"CIS region, precise addresses and POI. Uniquely strong on RF cities.",brand:"#1BA049",glyph:"2",urlFor:(e,t)=>"https://2gis.ru/routeSearch/to/".concat(t,",").concat(e),routeUrlFor:e=>{let t=n(e[0]),r=n(e[e.length-1]),a=e.slice(1,-1).map(e=>"/via/".concat(n(e))).join("");return"https://2gis.ru/routeSearch/rsType/car/from/".concat(t).concat(a,"/to/").concat(r)}},{id:"apple",label:"Apple Maps",description:"Opens in the native app on iOS/macOS, otherwise on the website.",brand:"#1d1d1f",glyph:"A",urlFor:(e,t)=>"https://maps.apple.com/?daddr=".concat(e,",").concat(t),routeUrlFor:e=>{let t=a(e[0]),r=e.slice(1).map(e=>"+to:".concat(a(e))).join("");return"https://maps.apple.com/?saddr=".concat(t,"&daddr=").concat(t).concat(r)}},{id:"osm",label:"OpenStreetMap",description:"Open data, no account required. Basic navigation.",brand:"#7EB73F",glyph:"OSM",urlFor:(e,t)=>"https://www.openstreetmap.org/directions?to=".concat(e,",").concat(t),routeUrlFor:e=>{let t=e.map(a).join(";");return"https://www.openstreetmap.org/directions?route=".concat(encodeURIComponent(t))}},{id:"waze",label:"Waze",description:"Car navigation with crowd-sourced traffic and alerts.",brand:"#33CCFF",glyph:"W",urlFor:(e,t)=>"https://waze.com/ul?ll=".concat(e,",").concat(t,"&navigate=yes"),routeUrlFor:e=>{let t=e[e.length-1];return"https://waze.com/ul?ll=".concat(t.lat,",").concat(t.lng,"&navigate=yes")}},{id:"organic",label:"Organic Maps",description:"Offline maps with open data. Opens in the app.",brand:"#006C35",glyph:"OM",urlFor:(e,t)=>"om://map?ll=".concat(e,",").concat(t),routeUrlFor:e=>{let t=e[0],r=e[e.length-1];return"om://route?sll=".concat(t.lat,",").concat(t.lng,"&saddr=&dll=").concat(r.lat,",").concat(r.lng,"&daddr=&type=vehicle")}}],i=["google","yandex","apple","osm"]},85126:(e,t,r)=>{r.d(t,{v:()=>D});var a=r(4624),n=r(49411),s=r(22054),i=r(99356),l=r(87738),o=r(39783),c=r(43153),d=r(13561),u=r(41695),p=r(46972),m=r(84630),x=r(96447),h=r(54207),g=r(84860),f=r(41379),v=r(3239),b=r(85253),y=r(15523),j=r(64681),N=r(54400),w=r.n(N),k=r(49623),W=r(85785),A=r(43863),C=r(57308),S=r(35285),R=r(9598),F=r(56221),T=r(68682);function L(e){let{service:t,size:r=18,className:n}=e;return(0,a.jsx)("span",{className:"inline-flex items-center justify-center rounded-[5px] font-bold leading-none text-white shrink-0 "+(null!=n?n:""),style:{background:t.brand,width:r,height:r,fontSize:Math.max(8,Math.floor(.55*r)),letterSpacing:t.glyph.length>1?"-0.05em":"0"},"aria-hidden":!0,children:t.glyph})}var E=r(7911);let U=(0,E.createServerReference)("00cb429333c223408c7bb194e02f1c58c77957be38",E.callServer,void 0,E.findSourceMapURL,"getEnabledMapServicesAction"),M="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css",z="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js";function I(e){let{point:t,services:r,interactive:s,onRemove:i}=e,l=(0,n.c)("roots");return(0,a.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[r.slice(0,4).map(e=>(0,a.jsx)("a",{href:e.urlFor(t.lat,t.lng),target:"_blank",rel:"noopener noreferrer",className:"rounded p-0.5 hover:ring-1 hover:ring-offset-1 hover:ring-violet-300",title:l("mapWidget.navigationTitle",{service:e.label}),children:(0,a.jsx)(L,{service:e,size:18})},e.id)),(0,a.jsx)("button",{type:"button",onClick:()=>{navigator.clipboard.writeText("".concat(t.lat,", ").concat(t.lng)).then(()=>F.oR.success(l("mapWidget.coordsCopied"))).catch(()=>F.oR.error(l("mapWidget.clipboardUnavailable")))},className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-foreground",title:l("mapWidget.copyCoords"),children:(0,a.jsx)(R.A,{className:"h-3 w-3"})}),s&&(0,a.jsx)("button",{type:"button",onClick:i,className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-destructive",title:l("mapWidget.removePoint"),children:(0,a.jsx)(d.A,{className:"h-3 w-3"})})]})}function O(e){let{service:t,stops:r}=e,s=(0,n.c)("roots"),i=t.routeUrlFor(r),l=e=>{e.preventDefault(),e.stopPropagation(),navigator.clipboard.writeText(i).then(()=>F.oR.success(s("mapWidget.linkCopied",{service:t.label}))).catch(()=>F.oR.error(s("mapWidget.clipboardUnavailable")))};return(0,a.jsxs)("a",{href:i,target:"_blank",rel:"noopener noreferrer",onContextMenu:l,className:"inline-flex items-center gap-1 rounded border px-1.5 py-0.5 text-[11px] hover:bg-accent",title:s("mapWidget.openTitle",{service:t.label}),children:[(0,a.jsx)(L,{service:t,size:16}),(0,a.jsx)("span",{className:"truncate max-w-[80px]",children:t.label}),(0,a.jsx)("button",{type:"button",onClick:l,className:"text-muted-foreground hover:text-foreground",title:s("mapWidget.copyLinkTitle"),children:(0,a.jsx)(R.A,{className:"h-2.5 w-2.5"})})]})}let _=(0,E.createServerReference)("60a87dbd230d4f4216cf9b8beea7701425dba08778",E.callServer,void 0,E.findSourceMapURL,"invokeCardActionAction");var P=r(8096);let q=(0,E.createServerReference)("60d1e2df317627b80e21ec398a6e60c0c9c1b0a1bf",E.callServer,void 0,E.findSourceMapURL,"refreshUtilityCardAction"),B={markdown:function(e){var t;let{data:r}=e;return(0,a.jsx)("div",{className:"text-sm",children:(0,a.jsx)(s.p,{source:null!=(t=r.body)?t:""})})},"news-list":function(e){var t;let{data:r,readonly:s,onPatch:u}=e,p=(0,n.c)("roots"),m=null!=(t=r.items)?t:[],[x,h]=(0,i.useState)(m),[g,f]=(0,i.useTransition)(),v=(0,i.useRef)("");(0,i.useEffect)(()=>{let e=JSON.stringify(m);e!==v.current&&(v.current=e,h(m))},[r]);let b=e=>{h(e),u&&f(async()=>{try{await u({items:e})}catch(e){}})};return 0===x.length?(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:p("newsListWidget.empty")}):(0,a.jsx)("ul",{className:"space-y-2",children:x.map((e,t)=>(0,a.jsxs)("li",{className:"group/row relative border-l-2 pl-2.5 py-0.5 transition ".concat(e.read?"border-muted-foreground/30 opacity-60":"border-violet-200"),children:[(0,a.jsxs)("div",{className:"flex items-start gap-1.5",children:[(0,a.jsx)(l.A,{className:"h-3 w-3 mt-1 shrink-0 ".concat(e.read?"text-muted-foreground":"text-violet-600")}),(0,a.jsxs)("div",{className:"min-w-0 flex-1 pr-12",children:[e.url?(0,a.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"text-sm font-medium hover:underline inline-flex items-center gap-1",children:[e.title,(0,a.jsx)(o.A,{className:"h-3 w-3 opacity-50"})]}):(0,a.jsx)("span",{className:"text-sm font-medium",children:e.title}),e.summary&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 leading-relaxed",children:e.summary}),(e.source||e.date)&&(0,a.jsxs)("div",{className:"text-[10px] text-muted-foreground mt-0.5 flex gap-1.5",children:[e.source&&(0,a.jsx)("span",{children:e.source}),e.source&&e.date&&(0,a.jsx)("span",{children:"\xb7"}),e.date&&(0,a.jsx)("span",{className:"font-mono",children:e.date})]})]})]}),!s&&(0,a.jsxs)("div",{className:"absolute top-0 right-0 flex items-center gap-0.5 opacity-0 group-hover/row:opacity-100 transition-opacity",children:[(0,a.jsx)("button",{type:"button",onClick:()=>{!s&&b(x.map((e,r)=>r===t?{...e,read:!e.read}:e))},disabled:g,"aria-label":e.read?p("newsListWidget.markUnreadAria"):p("newsListWidget.markReadAria"),title:e.read?p("newsListWidget.markUnreadTitle"):p("newsListWidget.markReadTitle"),className:"p-1 rounded hover:bg-emerald-100 dark:hover:bg-emerald-950/40 text-muted-foreground hover:text-emerald-600 disabled:opacity-30",children:(0,a.jsx)(c.A,{className:"h-3 w-3"})}),(0,a.jsx)("button",{type:"button",onClick:()=>{!s&&b(x.filter((e,r)=>r!==t))},disabled:g,"aria-label":p("newsListWidget.dismissAria"),title:p("newsListWidget.dismissTitle"),className:"p-1 rounded hover:bg-destructive/15 text-muted-foreground hover:text-destructive disabled:opacity-30",children:(0,a.jsx)(d.A,{className:"h-3 w-3"})})]})]},t))})},"link-list":function(e){var t;let{data:r,readonly:s,onPatch:l}=e,c=(0,n.c)("roots"),d=null!=(t=r.items)?t:[],[m,x]=(0,i.useState)(d),[h,g]=(0,i.useTransition)(),f=(0,i.useRef)("");return((0,i.useEffect)(()=>{let e=JSON.stringify(d);e!==f.current&&(f.current=e,x(d))},[r]),0===m.length)?(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:c("linkListWidget.empty")}):(0,a.jsx)("ul",{className:"space-y-0.5",children:m.map((e,t)=>(0,a.jsxs)("li",{className:"group/row relative",children:[(0,a.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"flex items-start gap-1.5 rounded-md px-2 py-1.5 hover:bg-accent/40 transition",children:[(0,a.jsx)(u.A,{className:"h-3 w-3 mt-1 shrink-0 text-sky-600"}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"text-sm font-medium hover:underline inline-flex items-center gap-1",children:[e.title,(0,a.jsx)(o.A,{className:"h-3 w-3 opacity-50"})]}),e.hint&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 leading-relaxed",children:e.hint}),(0,a.jsx)("div",{className:"text-[10px] text-muted-foreground truncate font-mono mt-0.5",children:e.url})]})]}),!s&&(0,a.jsx)("button",{type:"button",onClick:()=>(e=>{if(!s){var t;x(t=m.filter((t,r)=>r!==e)),l&&g(async()=>{try{await l({items:t})}catch(e){}})}})(t),disabled:h,"aria-label":c("linkListWidget.removeAria"),className:"absolute top-1.5 right-1.5 opacity-0 group-hover/row:opacity-100 transition-opacity p-1 rounded hover:bg-destructive/15 text-muted-foreground hover:text-destructive disabled:opacity-30",children:(0,a.jsx)(p.A,{className:"h-3 w-3"})})]},t))})},kpi:function(e){var t;let{data:r}=e,s=(0,n.c)("roots"),i=null!=(t=r.items)?t:[];if(0===i.length)return(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:s("kpiWidget.empty")});let l=Math.min(i.length,3);return(0,a.jsx)("div",{className:"grid gap-2",style:{gridTemplateColumns:"repeat(".concat(l,", minmax(0,1fr))")},children:i.map((e,t)=>(0,a.jsxs)("div",{className:"rounded-md border bg-card px-3 py-2 flex flex-col gap-0.5",children:[(0,a.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground",children:e.label}),(0,a.jsxs)("div",{className:"flex items-baseline gap-1",children:[(0,a.jsx)("span",{className:"text-lg font-semibold tabular-nums",children:e.value}),"up"===e.delta&&(0,a.jsx)(m.A,{className:"h-3.5 w-3.5 text-emerald-600"}),"down"===e.delta&&(0,a.jsx)(x.A,{className:"h-3.5 w-3.5 text-rose-600"}),"flat"===e.delta&&(0,a.jsx)(h.A,{className:"h-3.5 w-3.5 text-muted-foreground"})]}),e.hint&&(0,a.jsx)("div",{className:"text-[10px] text-muted-foreground leading-snug",children:e.hint})]},t))})},checklist:function(e){var t;let{data:r,readonly:s,onPatch:l}=e,o=(0,n.c)("roots"),d=null!=(t=r.items)?t:[],[u,m]=(0,i.useState)(d),[x,h]=(0,i.useTransition)(),[j,N]=(0,i.useState)(""),w=(0,i.useRef)("");(0,i.useEffect)(()=>{let e=JSON.stringify(d);e!==w.current&&(w.current=e,m(d))},[r]);let k=e=>{m(e),l&&h(async()=>{try{await l({items:e})}catch(e){}})},W=e=>{s||k(u.map((t,r)=>r===e?{...t,done:!t.done}:t))};return 0===u.length&&s?(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:o("checklistWidget.empty")}):(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)("ul",{className:"space-y-0.5",children:u.map((e,t)=>(0,a.jsxs)("li",{className:"group/row flex items-start gap-2 text-sm py-0.5 rounded hover:bg-accent/30 px-1 -mx-1 ".concat(e.done?"text-muted-foreground":""),children:[(0,a.jsx)("button",{type:"button",onClick:()=>W(t),disabled:s||x,"aria-label":e.done?o("checklistWidget.uncheckAria"):o("checklistWidget.checkAria"),className:"shrink-0 mt-0.5 disabled:opacity-50",children:e.done?(0,a.jsx)(c.A,{className:"h-3.5 w-3.5 text-emerald-600"}):(0,a.jsx)(g.A,{className:"h-3.5 w-3.5 text-muted-foreground/60 hover:text-foreground"})}),(0,a.jsx)("span",{className:"flex-1 min-w-0 break-words ".concat(e.done?"line-through":""),onClick:()=>W(t),style:s?{}:{cursor:"pointer"},children:e.text}),!s&&(0,a.jsx)("button",{type:"button",onClick:()=>{!s&&k(u.filter((e,r)=>r!==t))},disabled:x,"aria-label":o("checklistWidget.removeAria"),className:"opacity-0 group-hover/row:opacity-100 transition-opacity shrink-0 p-0.5 text-muted-foreground hover:text-destructive disabled:opacity-30",children:(0,a.jsx)(p.A,{className:"h-3 w-3"})})]},t))}),!s&&(0,a.jsxs)("form",{className:"flex items-center gap-1 pt-1",onSubmit:e=>{e.preventDefault(),(()=>{if(s)return;let e=j.trim();e&&(k([...u,{text:e,done:!1}]),N(""))})()},children:[(0,a.jsx)(f.A,{className:"h-3 w-3 text-muted-foreground shrink-0"}),(0,a.jsx)(y.p,{value:j,onChange:e=>N(e.target.value),placeholder:o("checklistWidget.newItemPlaceholder"),className:"h-7 text-xs flex-1 border-0 shadow-none focus-visible:ring-0 focus-visible:ring-offset-0 px-1",disabled:x}),j.trim()&&(0,a.jsx)(b.$,{type:"submit",size:"sm",variant:"ghost",className:"h-6 text-[10px] px-1.5",disabled:x,children:x?(0,a.jsx)(v.A,{className:"h-3 w-3 animate-spin"}):o("checklistWidget.add")})]})]})},quote:function(e){let{data:t}=e,r=(0,n.c)("roots");return(null==t?void 0:t.text)?(0,a.jsxs)("figure",{className:"relative pl-6",children:[(0,a.jsx)(j.A,{className:"h-5 w-5 absolute left-0 top-0 text-violet-300"}),(0,a.jsx)("blockquote",{className:"text-sm italic leading-relaxed",children:t.text}),t.attribution&&(0,a.jsxs)("figcaption",{className:"text-xs text-muted-foreground mt-1.5",children:["— ",t.attribution]})]}):(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:r("quoteWidget.empty")})},"kb-pinned":function(e){var t;let{rootId:r,data:s,readonly:l,onPatch:o}=e,c=(0,n.c)("roots"),u=null!=(t=s.items)?t:[],[p,m]=(0,i.useState)(u),[x,h]=(0,i.useTransition)(),g=(0,i.useRef)("");return((0,i.useEffect)(()=>{let e=JSON.stringify(u);e!==g.current&&(g.current=e,m(u))},[s]),0===p.length)?(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:c("kbPinnedWidget.empty")}):(0,a.jsx)("ul",{className:"space-y-1",children:p.map((e,t)=>{var n;let s=e.rel.split("/").map(encodeURIComponent).join("/");return(0,a.jsxs)("li",{className:"group/row relative",children:[(0,a.jsxs)(w(),{href:"/roots/".concat(r,"/kb/").concat(s),className:"flex items-start gap-2 rounded-md px-2 py-1.5 hover:bg-accent/40 transition pr-7",children:[(0,a.jsx)(k.A,{className:"h-3 w-3 mt-0.5 shrink-0 text-emerald-700"}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("div",{className:"text-sm font-medium truncate",children:null!=(n=e.title)?n:e.rel}),e.snippet&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2 leading-relaxed mt-0.5",children:e.snippet}),(0,a.jsx)("div",{className:"text-[10px] text-muted-foreground font-mono mt-0.5 truncate",children:e.rel})]})]}),!l&&(0,a.jsx)("button",{type:"button",onClick:()=>(e=>{if(!l){var t;m(t=p.filter((t,r)=>r!==e)),o&&h(async()=>{try{await o({items:t})}catch(e){}})}})(t),disabled:x,"aria-label":c("kbPinnedWidget.unpinAria"),title:c("kbPinnedWidget.unpinTitle"),className:"absolute top-1.5 right-1.5 opacity-0 group-hover/row:opacity-100 transition-opacity p-1 rounded hover:bg-destructive/15 text-muted-foreground hover:text-destructive disabled:opacity-30",children:(0,a.jsx)(d.A,{className:"h-3 w-3"})})]},t)})})},progress:function(e){var t;let{data:r,readonly:s,onPatch:l}=e,o=(0,n.c)("roots"),c=null!=(t=r.items)?t:[],[d,u]=(0,i.useState)(c),[p,m]=(0,i.useTransition)(),x=(0,i.useRef)("");(0,i.useEffect)(()=>{let e=JSON.stringify(c);e!==x.current&&(x.current=e,u(c))},[r]);let h=(e,t)=>{if(!s){var r;u(r=d.map((r,a)=>a===e?{...r,current:Math.max(0,r.current+t)}:r)),l&&m(async()=>{try{await l({items:r})}catch(e){}})}};return 0===d.length?(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:o("progressWidget.empty")}):(0,a.jsx)("ul",{className:"space-y-2.5",children:d.map((e,t)=>{let r=e.target>0?Math.max(0,Math.min(100,e.current/e.target*100)):0;return(0,a.jsxs)("li",{className:"space-y-1 group/row",children:[(0,a.jsxs)("div",{className:"flex items-baseline justify-between gap-2 text-sm",children:[(0,a.jsx)("span",{className:"truncate flex-1 min-w-0",children:e.label}),!s&&(0,a.jsxs)("div",{className:"flex items-center gap-0.5 opacity-0 group-hover/row:opacity-100 transition-opacity shrink-0",children:[(0,a.jsx)("button",{type:"button",onClick:()=>h(t,-1),disabled:p||e.current<=0,"aria-label":"−1",className:"p-0.5 rounded hover:bg-accent text-muted-foreground hover:text-foreground disabled:opacity-30",children:(0,a.jsx)(W.A,{className:"h-3 w-3"})}),(0,a.jsx)("button",{type:"button",onClick:()=>h(t,1),disabled:p,"aria-label":"+1",className:"p-0.5 rounded hover:bg-accent text-muted-foreground hover:text-foreground disabled:opacity-30",children:(0,a.jsx)(f.A,{className:"h-3 w-3"})})]}),(0,a.jsxs)("span",{className:"text-xs text-muted-foreground tabular-nums shrink-0",children:[e.current," / ",e.target,e.unit?" ".concat(e.unit):""]})]}),(0,a.jsx)("div",{className:"h-1.5 rounded-full bg-muted overflow-hidden",children:(0,a.jsx)("div",{className:"h-full bg-violet-600 transition-all",style:{width:"".concat(r,"%")}})})]},t)})})},image:function(e){var t;let{data:r}=e,s=(0,n.c)("roots");return(null==r?void 0:r.url)?(0,a.jsxs)("figure",{className:"space-y-1",children:[(0,a.jsx)("img",{src:r.url,alt:null!=(t=r.alt)?t:"",className:"rounded-md w-full h-auto border",loading:"lazy"}),r.caption&&(0,a.jsx)("figcaption",{className:"text-xs text-muted-foreground text-center",children:r.caption})]}):(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:s("imageWidget.empty")})},"stat-table":function(e){var t;let{data:r}=e,s=(0,n.c)("roots"),i=null!=(t=r.rows)?t:[];return 0===i.length?(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:s("statTableWidget.empty")}):(0,a.jsx)("div",{className:"overflow-x-auto -mx-1",children:(0,a.jsxs)("table",{className:"w-full text-sm",children:[r.columns&&r.columns.length>0&&(0,a.jsx)("thead",{children:(0,a.jsx)("tr",{className:"border-b",children:r.columns.map((e,t)=>(0,a.jsx)("th",{className:"text-left text-[10px] uppercase tracking-wider text-muted-foreground font-medium px-1.5 py-1.5",children:e},t))})}),(0,a.jsx)("tbody",{children:i.map((e,t)=>(0,a.jsx)("tr",{className:"border-b border-dashed last:border-b-0 hover:bg-accent/30",children:e.map((e,t)=>(0,a.jsx)("td",{className:"px-1.5 py-1.5 align-top",children:e},t))},t))})]})})},map:function(e){var t,r,s;let{data:l,readonly:o,onPatch:c}=e,u=(0,n.c)("roots"),m=(0,i.useRef)(null),x=(0,i.useRef)(null),[h,g]=(0,i.useState)(!1),[b,y]=(0,i.useState)(T.JY),[j,N]=(0,i.useState)(""),[w,k]=(0,i.useState)(!1),[W,R]=(0,i.useState)([]),[L,E]=(0,i.useState)(!1),[_,P]=(0,i.useState)([]),q=null!=(r=l.points)?r:[],B=null!=(s=null==(t=l.route)?void 0:t.stops)?s:[],D=L?_:B,J=(0,i.useMemo)(()=>D.map(e=>q[e]).filter(e=>!!e).map(e=>({lat:e.lat,lng:e.lng})),[D,q]),G=(0,i.useMemo)(()=>T.yp.filter(e=>b.includes(e.id)),[b]);(0,i.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await U();!e&&t.ok&&y(t.enabled)}catch(e){}})(),()=>{e=!0}},[]),(0,i.useEffect)(()=>{if(window.L)return void g(!0);if(!document.querySelector('link[href="'.concat(M,'"]'))){let e=document.createElement("link");e.rel="stylesheet",e.href=M,document.head.appendChild(e)}let e=document.querySelector('script[src="'.concat(z,'"]'));if(e){e.addEventListener("load",()=>g(!0)),window.L&&g(!0);return}let t=document.createElement("script");t.src=z,t.async=!0,t.onload=()=>g(!0),t.onerror=()=>F.oR.error(u("mapWidget.leafletLoadFailed")),document.head.appendChild(t)},[]),(0,i.useEffect)(()=>{var e,t,r;if(!h||!m.current)return;let a=window.L;if(!a||(x.current&&(x.current.remove(),x.current=null),0===q.length))return;let n=a.map(m.current,{scrollWheelZoom:!1,zoomControl:!0});x.current=n,a.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',maxZoom:19}).addTo(n);let s=q.map((e,t)=>{let r=D.includes(t),s=function(e,t,r){let a=e=>e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"),n=t.map(t=>{let r=t.urlFor(e.lat,e.lng);return'<a href="'.concat(a(r),'" target="_blank" rel="noopener noreferrer" ')+'title="'.concat(a(t.label),'" ')+'style="display:inline-flex;align-items:center;gap:4px;margin:2px 4px 2px 0;padding:2px 6px;border-radius:5px;border:1px solid #e5e7eb;text-decoration:none;font-size:11px;color:#111;background:#fff;">'+'<span style="display:inline-block;width:14px;height:14px;border-radius:3px;background:'.concat(t.brand,";")+"color:#fff;font-size:9px;font-weight:700;line-height:14px;text-align:center;"+"letter-spacing:".concat(t.glyph.length>1?"-0.05em":"0",'">').concat(a(t.glyph),"</span>")+"<span>".concat(a(t.label),"</span>")+"</a>"}).join("");return['<div style="font-family:inherit;min-width:200px">','<div style="font-weight:600;font-size:13px;margin-bottom:2px">'.concat(a(e.title),"</div>"),e.description?'<div style="font-size:12px;color:#666;margin-bottom:6px">'.concat(a(e.description),"</div>"):"",'<div style="font-family:monospace;font-size:10px;color:#888;margin-bottom:6px">'.concat(e.lat.toFixed(5),", ").concat(e.lng.toFixed(5),"</div>"),t.length>0?'<div style="font-size:10px;color:#888;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:2px">'.concat(a(r.openIn),"</div>").concat(n):"",'<div style="margin-top:6px"><button type="button" data-reflex-copy="'.concat(e.lat,", ").concat(e.lng,'" style="font-size:11px;padding:2px 8px;border:1px solid #ddd;border-radius:4px;background:#fff;cursor:pointer">\uD83D\uDCCB ').concat(a(r.copyCoords),"</button></div>"),"</div>"].filter(Boolean).join("")}(e,G,{openIn:u("mapWidget.openIn"),copyCoords:u("mapWidget.copyCoords")}),i=a.marker([e.lat,e.lng],{opacity:L&&!r?.55:1}).addTo(n);return i.bindPopup(s,{maxWidth:280}),i.on("click",()=>{L&&P(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t])}),i});J.length>=2&&a.polyline(J.map(e=>[e.lat,e.lng]),{color:null!=(t=null==(e=l.route)?void 0:e.color)?t:"#7c3aed",weight:4,opacity:.85,dashArray:L?"6,6":void 0}).addTo(n);let i=e=>{let t=e.target.closest("[data-reflex-copy]");if(t){let r=t.getAttribute("data-reflex-copy");r&&navigator.clipboard.writeText(r).then(()=>F.oR.success(u("mapWidget.copied"))).catch(()=>F.oR.error(u("mapWidget.clipboardUnavailable"))),e.preventDefault()}};if(m.current.addEventListener("click",i),l.center&&"number"==typeof l.zoom)n.setView([l.center.lat,l.center.lng],l.zoom);else if(1===q.length)n.setView([q[0].lat,q[0].lng],null!=(r=l.zoom)?r:12);else{let e=a.featureGroup(s);n.fitBounds(e.getBounds().pad(.2))}return()=>{var e;null==(e=m.current)||e.removeEventListener("click",i),n.remove(),x.current=null}},[h,l,b.join("|"),L,_.join(",")]);let Y=!o&&!!c,K=async()=>{let e=j.trim();if(e){k(!0),R([]);try{let t="".concat("https://nominatim.openstreetmap.org/search","?q=").concat(encodeURIComponent(e),"&format=json&limit=6"),r=await fetch(t,{headers:{Accept:"application/json"}});if(!r.ok)throw Error("status ".concat(r.status));let a=await r.json();R(a),0===a.length&&F.oR.message(u("mapWidget.nothingFound"))}catch(e){F.oR.error(u("mapWidget.searchFailed",{error:e instanceof Error?e.message:String(e)}))}finally{k(!1)}}},V=async e=>{var t;if(!Y)return;let r=Number(e.lat),a=Number(e.lon);if(!Number.isFinite(r)||!Number.isFinite(a))return void F.oR.error(u("mapWidget.invalidCoordinates"));let n=(null==(t=e.display_name.split(",")[0])?void 0:t.trim())||e.display_name.slice(0,60),s={...l,points:[...q,{lat:r,lng:a,title:n,description:e.display_name}]};R([]),N(""),await (null==c?void 0:c(s))},Z=async e=>{var t,r;if(!Y)return;let a=q.filter((t,r)=>r!==e),n=l.route;if(null==(r=l.route)||null==(t=r.stops)?void 0:t.length){let t=l.route.stops.filter(t=>t!==e).map(t=>t>e?t-1:t);n=t.length>=2?{...l.route,stops:t}:void 0}let s={...l,points:a,...n?{route:n}:{route:void 0}};await (null==c?void 0:c(s))},$=async()=>{if(!Y)return;let e={...l,route:void 0};await (null==c?void 0:c(e)),E(!1),P([])},H=async()=>{var e;if(!Y)return;if(_.length<2)return void F.oR.error(u("mapWidget.routeNeedsTwo"));let t={...l,route:{...null!=(e=l.route)?e:{},stops:_}};await (null==c?void 0:c(t)),E(!1)};return 0!==q.length||Y?(0,a.jsxs)("div",{className:"space-y-2",children:[Y&&(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsxs)("div",{className:"relative flex-1",children:[(0,a.jsx)(A.A,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3 w-3 text-muted-foreground pointer-events-none"}),(0,a.jsx)("input",{type:"search",value:j,onChange:e=>N(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),K())},placeholder:u("mapWidget.searchPlaceholder"),className:"w-full rounded border bg-background pl-7 pr-2 py-1 text-xs focus:outline-none focus:ring-1 focus:ring-violet-400"})]}),(0,a.jsxs)("button",{type:"button",onClick:()=>void K(),disabled:w||!j.trim(),className:"rounded border px-2 py-1 text-xs hover:bg-accent disabled:opacity-50 inline-flex items-center gap-1",children:[w?(0,a.jsx)(v.A,{className:"h-3 w-3 animate-spin"}):(0,a.jsx)(A.A,{className:"h-3 w-3"}),u("mapWidget.search")]}),L?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("button",{type:"button",onClick:()=>void H(),className:"rounded px-2 py-1 text-xs bg-violet-600 text-white hover:bg-violet-700 inline-flex items-center gap-1",title:u("mapWidget.saveRouteTitle"),children:[(0,a.jsx)(C.A,{className:"h-3 w-3"})," ",u("mapWidget.save")]}),(0,a.jsx)("button",{type:"button",onClick:()=>{E(!1),P([])},className:"rounded border px-2 py-1 text-xs hover:bg-accent inline-flex items-center gap-1",title:u("mapWidget.cancelTitle"),children:(0,a.jsx)(d.A,{className:"h-3 w-3"})})]}):(0,a.jsxs)("button",{type:"button",onClick:()=>{P(B),E(!0)},disabled:q.length<2,className:"rounded border px-2 py-1 text-xs hover:bg-accent disabled:opacity-50 inline-flex items-center gap-1",title:u("mapWidget.routeButtonTitle"),children:[(0,a.jsx)(C.A,{className:"h-3 w-3"}),u("mapWidget.route")]})]}),W.length>0&&(0,a.jsx)("ul",{className:"rounded border bg-card divide-y text-xs max-h-44 overflow-y-auto",children:W.map((e,t)=>(0,a.jsx)("li",{children:(0,a.jsxs)("button",{type:"button",onClick:()=>void V(e),className:"w-full text-left flex items-start gap-2 px-2 py-1.5 hover:bg-accent",children:[(0,a.jsx)(f.A,{className:"h-3 w-3 mt-0.5 text-emerald-700 shrink-0"}),(0,a.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,a.jsx)("span",{className:"block font-medium truncate",children:e.display_name.split(",")[0]}),(0,a.jsx)("span",{className:"block text-[10px] text-muted-foreground truncate",children:e.display_name})]})]})},t))}),L&&(0,a.jsx)("div",{className:"rounded border border-violet-200 bg-violet-50 dark:bg-violet-950/30 dark:border-violet-900/50 px-2 py-1.5 text-[11px] text-violet-900 dark:text-violet-200",children:u.rich("mapWidget.routeModeHint",{count:_.length,strong:e=>(0,a.jsx)("strong",{children:e})})})]}),(0,a.jsx)("div",{ref:m,className:"rounded-md border overflow-hidden bg-muted/30",style:{height:280}}),!L&&J.length>=2&&G.length>0&&(0,a.jsx)("div",{className:"rounded border bg-card px-2 py-1.5",children:(0,a.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,a.jsxs)("span",{className:"inline-flex items-center gap-1 text-[11px] font-medium",children:[(0,a.jsx)(C.A,{className:"h-3 w-3 text-violet-600"}),u("mapWidget.routeLabel",{count:J.length})]}),G.map(e=>(0,a.jsx)(O,{service:e,stops:J},e.id)),Y&&(0,a.jsxs)("button",{type:"button",onClick:()=>void $(),className:"ml-auto text-[10px] text-muted-foreground hover:text-destructive inline-flex items-center gap-0.5",title:u("mapWidget.deleteRouteTitle"),children:[(0,a.jsx)(p.A,{className:"h-3 w-3"}),u("mapWidget.delete")]})]})}),(0,a.jsx)("ul",{className:"space-y-1",children:q.map((e,t)=>{let r=D.indexOf(t);return(0,a.jsxs)("li",{className:"flex items-start gap-2 rounded-md border bg-card px-2 py-1.5 text-xs "+(L&&r>=0?"ring-1 ring-violet-400 border-violet-300":""),children:[L?(0,a.jsx)("button",{type:"button",onClick:()=>P(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t]),className:"h-5 w-5 mt-0.5 shrink-0 rounded-full border text-[10px] font-mono inline-flex items-center justify-center "+(r>=0?"bg-violet-600 text-white border-violet-600":"bg-card text-muted-foreground"),title:r>=0?u("mapWidget.removeFromRoute"):u("mapWidget.addToRoute"),children:r>=0?r+1:"+"}):(0,a.jsx)(S.A,{className:"h-3 w-3 mt-1 shrink-0 "+(B.includes(t)?"text-violet-600":"text-emerald-700")}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("div",{className:"font-medium truncate",children:e.title}),e.description&&(0,a.jsx)("p",{className:"text-muted-foreground leading-snug mt-0.5 line-clamp-2",children:e.description}),(0,a.jsxs)("div",{className:"text-[10px] text-muted-foreground/80 font-mono mt-0.5",children:[e.lat.toFixed(5),", ",e.lng.toFixed(5)]})]}),(0,a.jsx)(I,{point:e,services:G,interactive:Y,onRemove:()=>void Z(t)})]},t)})})]}):(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:u("mapWidget.noPointsReadonly")})},"action-list":function(e){var t;let{rootId:r,data:n,readonly:s,widgetId:l,utility:o}=e,[c,d]=(0,i.useState)(null!=(t=n.groups)?t:[]),[u,p]=(0,i.useState)(null);(0,i.useEffect)(()=>{var e;d(null!=(e=n.groups)?e:[])},[n.groups]);let m=!s&&!!o&&!!l,x=async(e,t)=>{if(o&&l&&(!t.confirm||confirm(t.confirm))){p(e);try{var a,n;let s=await _(r,{utilityId:o.id,utilityScope:o.scope,widgetId:l,actionName:t.actionName,args:{id:e,...null!=(a=t.args)?a:{}}});if(!s.ok)return void F.oR.error(null!=(n=s.error)?n:"Action failed");if(s.inner&&"action-list"===s.inner.kind){let e=s.inner.data;(null==e?void 0:e.groups)&&d(e.groups)}}catch(e){F.oR.error(e instanceof Error?e.message:String(e))}finally{p(null)}}};return 0===c.length?(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Nothing here yet."}):(0,a.jsx)("div",{className:"space-y-3",children:c.map((e,t)=>{var r;return(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsxs)("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground",children:[e.label,e.items.length>0&&(0,a.jsx)("span",{className:"ml-1 text-muted-foreground/70",children:e.items.length})]}),0===e.items.length?(0,a.jsx)("p",{className:"text-[11px] text-muted-foreground/80 italic",children:null!=(r=e.emptyText)?r:"empty"}):(0,a.jsx)("ul",{className:"space-y-1",children:e.items.map(e=>(0,a.jsxs)("li",{className:"flex items-center gap-2 rounded-md border bg-card px-2 py-1.5",children:[e.badge&&(0,a.jsx)("span",{className:"shrink-0 text-[10px] uppercase tracking-wide rounded bg-muted px-1.5 py-0.5 text-muted-foreground",children:e.badge}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("div",{className:"truncate text-xs font-medium",children:e.title}),e.subtitle&&(0,a.jsx)("div",{className:"truncate text-[10px] text-muted-foreground",children:e.subtitle})]}),e.action&&m&&(0,a.jsx)(b.$,{size:"sm",variant:"secondary",className:"h-7 shrink-0 text-[11px]",disabled:null!==u,onClick:()=>void x(e.id,e.action),children:u===e.id?(0,a.jsx)(v.A,{className:"h-3 w-3 animate-spin"}):e.action.label})]},e.id))})]},t)})})},"utility-card":function(e){let{rootId:t,data:r,widgetId:s,readonly:l}=e,c=(0,n.c)("roots"),[d,u]=(0,i.useState)(r.inner),[p,m]=(0,i.useState)(!1),x=(0,i.useRef)(!1);(0,i.useEffect)(()=>{if(l||!s||x.current)return;x.current=!0;let e=!0;return m(!0),(async()=>{try{let r=await q(t,s);e&&r.ok&&r.inner&&u(r.inner)}finally{e&&m(!1)}})(),()=>{e=!1}},[t,s,l]),(0,i.useEffect)(()=>{u(r.inner)},[r.inner]);let h="project"===r.utilityScope?"/utilities/project/".concat(r.utilityId,"?rootId=").concat(encodeURIComponent(t)):"/utilities/global/".concat(r.utilityId);return(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px] uppercase tracking-wider text-muted-foreground",children:[(0,a.jsx)(P.A,{className:"h-3 w-3 text-violet-600"}),(0,a.jsx)("span",{children:c("utilityCardWidget.miniAppLabel")}),(0,a.jsx)("span",{className:"font-mono normal-case tracking-normal text-muted-foreground/80",children:r.utilityId}),p&&(0,a.jsx)(v.A,{className:"h-2.5 w-2.5 animate-spin text-muted-foreground"}),(0,a.jsxs)(w(),{href:h,className:"ml-auto inline-flex items-center gap-0.5 text-[10px] text-violet-700 hover:underline normal-case tracking-normal",title:c("utilityCardWidget.openFullTitle"),children:[c("utilityCardWidget.openLabel"),(0,a.jsx)(o.A,{className:"h-2.5 w-2.5"})]})]}),d.title&&(0,a.jsx)("h4",{className:"text-sm font-medium",children:d.title}),d.description&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground -mt-1",children:d.description}),(0,a.jsx)("div",{children:D(t,d.kind,d.data,{readonly:"action-list"!==d.kind||!!l,...s?{widgetId:s}:{},utility:{id:r.utilityId,scope:r.utilityScope}})})]})}};function D(e,t,r,n){var s;let i=B[t];return i?(0,a.jsx)(i,{rootId:e,data:r,readonly:null!=(s=null==n?void 0:n.readonly)&&s,onPatch:null==n?void 0:n.onPatch,widgetId:null==n?void 0:n.widgetId,utility:null==n?void 0:n.utility}):(0,a.jsx)(J,{kind:t})}function J(e){let{kind:t}=e,r=(0,n.c)("roots");return(0,a.jsx)("p",{className:"text-xs text-destructive",children:r.rich("widgetsCommon.unknownKind",{kind:t,code:e=>(0,a.jsx)("code",{className:"font-mono",children:e})})})}}}]);