nodal-agents 0.9.2 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.js +629 -426
- package/docs-index.json +21 -14
- package/migrations/0123_chat_messages_stopped.sql +10 -0
- package/migrations/0124_chat_messages_cut_reason.sql +12 -0
- package/migrations/0125_shell_checklist.sql +31 -0
- package/migrations/0126_run_budget.sql +57 -0
- package/migrations/0127_agent_budget.sql +86 -0
- package/migrations/0128_shell_policy_retired_kinds.sql +52 -0
- package/migrations/meta/_journal.json +42 -0
- package/package.json +1 -1
- package/runner.js +4373 -2761
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/app-path-routes-manifest.json +6 -2
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +5 -5
- package/web/.next/routes-manifest.json +28 -0
- package/web/.next/server/app/(dashboard)/agents/[id]/channels/page.js +1 -1
- package/web/.next/server/app/(dashboard)/agents/[id]/channels/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/agents/[id]/edit/page.js +4 -4
- package/web/.next/server/app/(dashboard)/agents/[id]/edit/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page.js +1 -1
- package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/agents/page.js +1 -1
- package/web/.next/server/app/(dashboard)/agents/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/approvals/page.js +1 -1
- package/web/.next/server/app/(dashboard)/approvals/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/automations/[id]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/automations/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/automations/page.js +1 -1
- package/web/.next/server/app/(dashboard)/automations/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/[id]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/runs/[id]/page.js +1 -0
- package/web/.next/server/app/(dashboard)/chat/runs/[id]/page_client-reference-manifest.js +1 -0
- package/web/.next/server/app/(dashboard)/code/[id]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/code/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/code/page.js +1 -1
- package/web/.next/server/app/(dashboard)/code/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/connectors/page.js +1 -1
- package/web/.next/server/app/(dashboard)/connectors/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/credentials/page.js +1 -1
- package/web/.next/server/app/(dashboard)/credentials/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/dashboard/page.js +1 -1
- package/web/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/jobs/[id]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/jobs/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/jobs/page.js +1 -1
- package/web/.next/server/app/(dashboard)/jobs/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/learned-skills/page.js +1 -1
- package/web/.next/server/app/(dashboard)/learned-skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/llm-providers/page.js +1 -1
- package/web/.next/server/app/(dashboard)/llm-providers/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/logs/page.js +1 -1
- package/web/.next/server/app/(dashboard)/logs/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/mcp/page.js +1 -1
- package/web/.next/server/app/(dashboard)/mcp/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/memories/page.js +1 -1
- package/web/.next/server/app/(dashboard)/memories/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page.js +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/scheduled/[id]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/scheduled/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/scheduled/page.js +1 -1
- package/web/.next/server/app/(dashboard)/scheduled/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/settings/page.js +1 -1
- package/web/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/settings/root-context/page.js +1 -1
- package/web/.next/server/app/(dashboard)/settings/root-context/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/skills/[id]/edit/page.js +1 -1
- package/web/.next/server/app/(dashboard)/skills/[id]/edit/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/skills/new/page.js +1 -1
- package/web/.next/server/app/(dashboard)/skills/new/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/skills/page.js +1 -1
- package/web/.next/server/app/(dashboard)/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/spaces/[id]/files/page.js +1 -1
- package/web/.next/server/app/(dashboard)/spaces/[id]/files/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/spaces/[id]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/spaces/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/spaces/page.js +1 -1
- package/web/.next/server/app/(dashboard)/spaces/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error/page.js +2 -2
- package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +1 -1
- package/web/.next/server/app/_global-error.rsc +2 -2
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
- package/web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +2 -2
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page.js +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_not-found.html +1 -1
- package/web/.next/server/app/_not-found.rsc +3 -3
- package/web/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/web/.next/server/app/api/auth/[...all]/route.js +1 -1
- package/web/.next/server/app/api/chat/live/route.js +4 -0
- package/web/.next/server/app/api/chat/live/route_client-reference-manifest.js +1 -0
- package/web/.next/server/app/api/chat/stop/route.js +1 -0
- package/web/.next/server/app/api/chat/stop/route_client-reference-manifest.js +1 -0
- package/web/.next/server/app/api/chat/stream/route.js +3 -3
- package/web/.next/server/app/api/health/route.js +1 -1
- package/web/.next/server/app/api/oauth/[provider]/callback/route.js +1 -1
- package/web/.next/server/app/api/oauth/[provider]/start/route.js +1 -1
- package/web/.next/server/app/api/runs/[jobId]/media/route.js +1 -0
- package/web/.next/server/app/api/runs/[jobId]/media/route_client-reference-manifest.js +1 -0
- package/web/.next/server/app/auth/callback/route.js +1 -1
- package/web/.next/server/app/login/page.js +1 -1
- package/web/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/onboarding/page.js +2 -2
- package/web/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app-paths-manifest.json +6 -2
- package/web/.next/server/chunks/1326.js +136 -0
- package/web/.next/server/chunks/1406.js +1773 -0
- package/web/.next/server/chunks/1615.js +1 -0
- package/web/.next/server/chunks/1873.js +1 -0
- package/web/.next/server/chunks/2443.js +3 -0
- package/web/.next/server/chunks/3483.js +1 -0
- package/web/.next/server/chunks/3675.js +1 -1
- package/web/.next/server/chunks/3920.js +1 -0
- package/web/.next/server/chunks/42.js +3 -3
- package/web/.next/server/chunks/4546.js +1 -0
- package/web/.next/server/chunks/494.js +1 -1
- package/web/.next/server/chunks/5648.js +1 -0
- package/web/.next/server/chunks/5804.js +1 -1
- package/web/.next/server/chunks/592.js +1 -1
- package/web/.next/server/chunks/5976.js +1 -0
- package/web/.next/server/chunks/6915.js +1 -0
- package/web/.next/server/chunks/692.js +15 -15
- package/web/.next/server/chunks/7465.js +1 -0
- package/web/.next/server/chunks/7651.js +812 -0
- package/web/.next/server/chunks/7663.js +22 -22
- package/web/.next/server/chunks/7876.js +1 -0
- package/web/.next/server/chunks/7915.js +1 -1
- package/web/.next/server/chunks/796.js +1 -1
- package/web/.next/server/chunks/8030.js +1 -0
- package/web/.next/server/chunks/8104.js +1 -0
- package/web/.next/server/chunks/8697.js +1 -1
- package/web/.next/server/chunks/8794.js +1 -0
- package/web/.next/server/chunks/8830.js +1 -0
- package/web/.next/server/chunks/9009.js +1 -0
- package/web/.next/server/chunks/{2096.js → 9066.js} +1 -1
- package/web/.next/server/chunks/965.js +1 -1
- package/web/.next/server/chunks/{6213.js → 9844.js} +2 -2
- package/web/.next/server/chunks/9882.js +36 -0
- package/web/.next/server/middleware-build-manifest.js +1 -1
- package/web/.next/server/middleware.js +27 -27
- package/web/.next/server/pages/404.html +1 -1
- package/web/.next/server/pages/500.html +1 -1
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +1 -1
- package/web/.next/static/chunks/{1091-6d0af9f18ddf99f6.js → 1091-9485133bd943918f.js} +1 -1
- package/web/.next/static/chunks/{1332-c8bed6b750598652.js → 1409-fe80b5952e1f40cb.js} +1 -1
- package/web/.next/static/chunks/1789-2566ac18a25fb387.js +1 -0
- package/web/.next/static/chunks/3844-36a00411beee6253.js +1 -0
- package/web/.next/static/chunks/4020-ec67a80b0e0b651e.js +1 -0
- package/web/.next/static/chunks/4666-5fd532303d09a950.js +1 -0
- package/web/.next/static/chunks/4771-47261da3c38b4746.js +1 -0
- package/web/.next/static/chunks/494-a34a6a0b36862877.js +1 -0
- package/web/.next/static/chunks/5034-9aff8cbeb288ac20.js +1 -0
- package/web/.next/static/chunks/5216-528f63f54d56b47a.js +1 -0
- package/web/.next/static/chunks/5575-444e6f49e2d2a328.js +1 -0
- package/web/.next/static/chunks/560-59e02268ee5fe11e.js +1 -0
- package/web/.next/static/chunks/5954-7c92f3e7812dce11.js +1 -0
- package/web/.next/static/chunks/{5925-76337eacde3c3bc8.js → 6724-8a6d2dc777961105.js} +11 -11
- package/web/.next/static/chunks/6861-5edebd867f40e3a6.js +3 -0
- package/web/.next/static/chunks/764-a883257e15345ae8.js +1 -0
- package/web/.next/static/chunks/825-c876657b507df9d8.js +1 -0
- package/web/.next/static/chunks/9052-33a3c725444cb518.js +1 -0
- package/web/.next/static/chunks/9287-41590f18e747f14c.js +1 -0
- package/web/.next/static/chunks/9484-f972307c1c78a8e8.js +1 -0
- package/web/.next/static/chunks/9643-03e18abc622d33f5.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/agents/[id]/channels/page-7b6e8b91210cb2ee.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/agents/[id]/edit/page-16e26ece80055943.js +6 -0
- package/web/.next/static/chunks/app/(dashboard)/agents/[id]/telegram/page-7b6e8b91210cb2ee.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/agents/page-ca54871a8009f0aa.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/approvals/page-a5d31137ad6c86c0.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/automations/[id]/{page-9ef1d76121b6030d.js → page-2ea773c99f54f674.js} +1 -1
- package/web/.next/static/chunks/app/(dashboard)/automations/page-095be3edd6287d73.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/chat/[id]/page-00acae0653281839.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/chat/page-056975f6c9d5625b.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/chat/runs/[id]/page-899772b15670d3de.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/code/[id]/page-83535784a61e8e36.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/code/page-7b6e8b91210cb2ee.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/connectors/page-af5150e89038a92b.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/dashboard/{page-7473d1190864cbd4.js → page-241109c80363cab1.js} +1 -1
- package/web/.next/static/chunks/app/(dashboard)/jobs/[id]/page-899772b15670d3de.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/jobs/page-7b6e8b91210cb2ee.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/layout-2b492fe5d87e7a8c.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/learned-skills/page-d3d0521187a02e31.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/llm-providers/page-1b5aef6848173842.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/logs/page-fd939bac9a74004e.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/mcp/page-11decdc1d91b079d.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/memories/{page-593161bc7c2a25d7.js → page-2dda98de596fe53c.js} +1 -1
- package/web/.next/static/chunks/app/(dashboard)/page-40b43271735f5935.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/scheduled/[id]/page-899772b15670d3de.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/scheduled/page-7b6e8b91210cb2ee.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/settings/page-420c62b3fbec2901.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/settings/root-context/page-7840e0f90ad51fd3.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/skills/page-497d3e268b76b0eb.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/spaces/[id]/files/page-d13f877dfd34c6c0.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/spaces/[id]/page-bf466093877ab1c5.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/spaces/page-1d264307964cfdfe.js +1 -0
- package/web/.next/static/chunks/app/_global-error/page-7b6e8b91210cb2ee.js +1 -0
- package/web/.next/static/chunks/app/_not-found/page-7b6e8b91210cb2ee.js +1 -0
- package/web/.next/static/chunks/app/api/auth/[...all]/route-7b6e8b91210cb2ee.js +1 -0
- package/web/.next/static/chunks/app/api/chat/live/route-7b6e8b91210cb2ee.js +1 -0
- package/web/.next/static/chunks/app/api/chat/stop/route-7b6e8b91210cb2ee.js +1 -0
- package/web/.next/static/chunks/app/api/chat/stream/route-7b6e8b91210cb2ee.js +1 -0
- package/web/.next/static/chunks/app/api/health/route-7b6e8b91210cb2ee.js +1 -0
- package/web/.next/static/chunks/app/api/oauth/[provider]/callback/route-7b6e8b91210cb2ee.js +1 -0
- package/web/.next/static/chunks/app/api/oauth/[provider]/start/route-7b6e8b91210cb2ee.js +1 -0
- package/web/.next/static/chunks/app/api/runs/[jobId]/media/route-7b6e8b91210cb2ee.js +1 -0
- package/web/.next/static/chunks/app/auth/callback/route-7b6e8b91210cb2ee.js +1 -0
- package/web/.next/static/chunks/app/login/{page-5357f030e5018563.js → page-d260a3be0b6857ef.js} +1 -1
- package/web/.next/static/chunks/app/onboarding/{page-9b6955cdd3033584.js → page-07908ee9b2b6d6b5.js} +2 -2
- package/web/.next/static/chunks/next/dist/client/components/builtin/app-error-7b6e8b91210cb2ee.js +1 -0
- package/web/.next/static/chunks/next/dist/client/components/builtin/forbidden-7b6e8b91210cb2ee.js +1 -0
- package/web/.next/static/chunks/next/dist/client/components/builtin/unauthorized-7b6e8b91210cb2ee.js +1 -0
- package/web/.next/static/css/55c009e1dd52d5a7.css +1 -0
- package/web/.next/static/uWxfL1NbU-xFtwNtkF4Wb/_buildManifest.js +1 -0
- package/web/.next/server/chunks/1960.js +0 -1
- package/web/.next/server/chunks/292.js +0 -1
- package/web/.next/server/chunks/3592.js +0 -1
- package/web/.next/server/chunks/409.js +0 -1
- package/web/.next/server/chunks/4357.js +0 -1
- package/web/.next/server/chunks/5547.js +0 -1
- package/web/.next/server/chunks/570.js +0 -1
- package/web/.next/server/chunks/5974.js +0 -1
- package/web/.next/server/chunks/6106.js +0 -1
- package/web/.next/server/chunks/7134.js +0 -947
- package/web/.next/server/chunks/7431.js +0 -1
- package/web/.next/server/chunks/7533.js +0 -1
- package/web/.next/server/chunks/7709.js +0 -1
- package/web/.next/server/chunks/8022.js +0 -1
- package/web/.next/server/chunks/8536.js +0 -3
- package/web/.next/server/chunks/8974.js +0 -1808
- package/web/.next/server/chunks/9200.js +0 -1
- package/web/.next/static/chunks/1054-08930540869affcc.js +0 -1
- package/web/.next/static/chunks/1577-09f4d5183fb172de.js +0 -1
- package/web/.next/static/chunks/1789-b436bca079b82fcc.js +0 -1
- package/web/.next/static/chunks/296-1b50dd61ac3198f4.js +0 -1
- package/web/.next/static/chunks/3159-f25525771781f5aa.js +0 -1
- package/web/.next/static/chunks/3775-3a5a749d63c785a1.js +0 -3
- package/web/.next/static/chunks/390-d6132d3a117487df.js +0 -1
- package/web/.next/static/chunks/4020-9778230f3cc2164a.js +0 -1
- package/web/.next/static/chunks/4771-a0aadf337f224b72.js +0 -1
- package/web/.next/static/chunks/494-ed02d105fa0ac132.js +0 -1
- package/web/.next/static/chunks/5034-fc9997ff33a114aa.js +0 -1
- package/web/.next/static/chunks/7879-67ac5a52d74c20d2.js +0 -1
- package/web/.next/static/chunks/7920-40dc6aa63e653d6b.js +0 -1
- package/web/.next/static/chunks/870-b7151716d04a13c3.js +0 -1
- package/web/.next/static/chunks/8794-2a616d1f9c210117.js +0 -1
- package/web/.next/static/chunks/8861-a108ed6178a56b21.js +0 -1
- package/web/.next/static/chunks/9643-e9c8a744dd98813d.js +0 -1
- package/web/.next/static/chunks/9952-992cabfb077d287c.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/agents/[id]/channels/page-523c5d229e8520bf.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/agents/[id]/edit/page-5ca9c1eef4d0f837.js +0 -6
- package/web/.next/static/chunks/app/(dashboard)/agents/[id]/telegram/page-523c5d229e8520bf.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/agents/page-5ffa4a2468c1f95a.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/approvals/page-cd46d5e439a20d3e.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/automations/page-46eeaa40df9e58f8.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/chat/[id]/page-25e095bf0cdd1c40.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/chat/page-e2df1a328e18da7a.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/code/[id]/page-f5f7624cfbb32ee2.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/code/page-523c5d229e8520bf.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/connectors/page-2ecbfc5836577888.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/jobs/[id]/page-47e177ab46926fd7.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/jobs/page-523c5d229e8520bf.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/layout-0b429859260736b2.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/learned-skills/page-596d973a31e774db.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/llm-providers/page-ba1968c9430c4dd4.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/logs/page-f74da6f66116c7e7.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/mcp/page-07bdc6780b13cfca.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/page-889d6e89a8f679f8.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/scheduled/[id]/page-47e177ab46926fd7.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/scheduled/page-523c5d229e8520bf.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/settings/page-1b40e127c38affda.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/settings/root-context/page-6b7e1cffcad40a6a.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/skills/page-3ad87d1a3fbb4f05.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/spaces/[id]/files/page-4e2d27f80456a1ba.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/spaces/[id]/page-c81023eaa26c2c7a.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/spaces/page-9dbb35822503481b.js +0 -1
- package/web/.next/static/chunks/app/_global-error/page-523c5d229e8520bf.js +0 -1
- package/web/.next/static/chunks/app/_not-found/page-523c5d229e8520bf.js +0 -1
- package/web/.next/static/chunks/app/api/auth/[...all]/route-523c5d229e8520bf.js +0 -1
- package/web/.next/static/chunks/app/api/chat/stream/route-523c5d229e8520bf.js +0 -1
- package/web/.next/static/chunks/app/api/health/route-523c5d229e8520bf.js +0 -1
- package/web/.next/static/chunks/app/api/oauth/[provider]/callback/route-523c5d229e8520bf.js +0 -1
- package/web/.next/static/chunks/app/api/oauth/[provider]/start/route-523c5d229e8520bf.js +0 -1
- package/web/.next/static/chunks/app/auth/callback/route-523c5d229e8520bf.js +0 -1
- package/web/.next/static/chunks/next/dist/client/components/builtin/app-error-523c5d229e8520bf.js +0 -1
- package/web/.next/static/chunks/next/dist/client/components/builtin/forbidden-523c5d229e8520bf.js +0 -1
- package/web/.next/static/chunks/next/dist/client/components/builtin/unauthorized-523c5d229e8520bf.js +0 -1
- package/web/.next/static/css/099c0b54fc41e5b0.css +0 -1
- package/web/.next/static/x5fvzE6AeZGASlemQTLwd/_buildManifest.js +0 -1
- /package/web/.next/static/{x5fvzE6AeZGASlemQTLwd → uWxfL1NbU-xFtwNtkF4Wb}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4771],{16062:(e,s,n)=>{n.d(s,{default:()=>h});var t=n(48503),a=n(80351),r=n(23138),i=n(18781),o=n(66666),l=n(75551),c=n(1678);function d(e,s){return s<=0?"0 %":`${Math.round(e/s*100)} %`}function h({cost:e,proofVerdict:s,proofSequences:n,pendingDeliveries:r,live:i}){let[o,l]=(0,a.useState)(!1),m=e.totals,p=m.inputTokens+m.outputTokens,k=m.inputTokens>0?d(m.cachedTokens,m.inputTokens):null,j=[...new Set(e.byAgent.flatMap(e=>e.models))].join(", "),g=function(e){let{resumes:s,costUsd:n,unpricedResumes:t}=e.cacheLost;return 0===s||null===n||n<=0?null:`of which ${(0,c.BD)(n)} lost to cache expiry (${s} ${1===s?"resume":"resumes"})${t>0?" \xb7 partial":""}`}(e);return(0,t.jsxs)(t.Fragment,{children:[o&&(0,t.jsx)(u,{cost:e,onClose:()=>l(!1)}),(0,t.jsxs)("div",{className:"sticky bottom-0 z-10 flex h-7 shrink-0 items-center gap-1 border-t border-rule-2 bg-sidebar px-5 text-mono-11 text-ink-3",children:[(0,t.jsx)(x,{children:0===n?(0,t.jsx)("span",{children:"no proof"}):"green"===s?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-ok",children:"✓"})," proof green"]}):"red"===s?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-warn",children:"✕"})," proof red"]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-warn",children:"!"})," proof ",s]})}),""!==j&&(0,t.jsx)(x,{children:j}),i&&(0,t.jsx)(x,{children:"running…"}),(0,t.jsxs)("span",{className:"ml-auto flex items-center",children:[0===m.calls?(0,t.jsx)(x,{title:"No LLM call recorded for this thread",children:"no usage recorded"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(x,{onClick:()=>l(e=>!e),active:o,children:[(0,c._y)(p)," tokens",null!==k?` \xb7 ${k} cached`:""]}),(0,t.jsxs)(x,{onClick:()=>l(e=>!e),active:o,strong:!0,children:[(0,c.BD)(m.costUsd),m.unpricedCalls>0?" \xb7 partial":""]}),null!==g&&(0,t.jsx)(x,{title:"Input tokens re-billed at full price because the provider's cache expired while a delegate was working",children:g})]}),m.calls>0&&(0,t.jsxs)(x,{title:"Time the models spent answering",children:[(0,c._V)(m.llmDurationMs)," thinking"]}),r>0&&(0,t.jsxs)(x,{children:[(0,t.jsx)("span",{className:"text-warn",children:"●"})," ",r," ",1===r?"delivery pending":"deliveries pending"]})]})]})]})}function x({children:e,onClick:s,active:n=!1,strong:a=!1,title:r}){let i=`inline-flex h-5 items-center gap-1.5 rounded-[6px] px-2.5 ${n?"bg-ink text-canvas":a?"text-ink":""} ${s?"cursor-pointer hover:bg-hover":""}`;return s?(0,t.jsx)(o.A,{onClick:s,className:i,"aria-expanded":n,"aria-controls":"space-cost-panel",children:e}):(0,t.jsx)("span",{className:i,...void 0!==r?{title:r}:{},children:e})}function u({cost:e,onClose:s}){let n=e.totals,a=Math.max(0,n.inputTokens-n.cachedTokens-n.cacheCreationTokens),o=e.cacheLost;return(0,t.jsxs)("div",{id:"space-cost-panel",className:"mx-auto mt-8 max-w-[840px]",children:[(0,t.jsxs)("div",{className:"mb-3 flex items-baseline gap-3",children:[(0,t.jsx)("h2",{className:"text-medium-15 text-ink",children:"What this work cost"}),(0,t.jsx)("span",{className:"text-mono-11 text-ink-4",children:"updated every turn \xb7 nothing is final"}),(0,t.jsx)(l.A,{onClick:s,className:"ml-auto",children:"Back to the conversation"})]}),(function(e){var s;let n,t,a=e.totals,r=[],i=a.inputTokens+a.outputTokens;if(0===i)return["No model call recorded for this work yet."];a.cachedTokens>0?r.push(`Of the ${(0,c._y)(i)} tokens this work used, ${d(a.cachedTokens,a.inputTokens)} of the input was read back from the provider's cache, billed at the cached rate.`):r.push(`This work used ${(0,c._y)(i)} tokens; none came back from a cache.`),null!==a.costUsd?r.push(`It cost ${(0,c.BD)(a.costUsd)}${a.unpricedCalls>0?`, not counting ${a.unpricedCalls} ${1===a.unpricedCalls?"call":"calls"} on a model with no known price`:""}.`):r.push("Its cost is unknown: no call was on a model with a known price."),e.runBudget&&r.push((n=(s=e.runBudget).maxRunCostUsd>0?`once it has cost ${(0,c.BD)(s.maxRunCostUsd)}`:null,t=s.maxRunHours>0?`after ${s.maxRunHours} h of work`:null,n||t?`The workspace stops a run ${[n,t].filter(Boolean).join(" or ")} (Settings, Safety).`:"The workspace sets no run budget (Settings, Safety).")),a.humanWaitMs>0&&r.push(`${(0,c._V)(a.humanWaitMs)} of it was spent waiting for you to approve something, not working.`),a.proofMs>0&&r.push(`${(0,c._V)(a.proofMs)} went to running the proof.`);let o=e.cacheLost;if(o.resumes>0){let e=null!==o.costUsd&&o.costUsd>0?`${(0,c._y)(o.tokens)} input tokens, ${(0,c.BD)(o.costUsd)}`:`${(0,c._y)(o.tokens)} input tokens`;r.push(`${e} went back to full price on ${o.resumes} ${1===o.resumes?"resume":"resumes"}: the provider's cache expired while a delegate was working.${o.unpricedResumes>0?` ${o.unpricedResumes} of them ran on a model whose cache price we do not know, so the amount is partial.`:""}`)}return r})(e).map((e,s)=>(0,t.jsx)("p",{className:"mb-3 max-w-[66ch] text-body-14 text-ink-2",children:e},s)),(0,t.jsx)("div",{className:"mt-4 overflow-hidden rounded-xl border border-rule-2 bg-paper",children:(0,t.jsxs)(i.Ay,{frame:!1,children:[(0,t.jsxs)(i.D1,{children:[(0,t.jsx)(i.Th,{children:"Agent"}),(0,t.jsx)(i.Th,{children:"Model"}),(0,t.jsx)(i.Th,{align:"right",children:"Calls"}),(0,t.jsx)(i.Th,{align:"right",children:"Tokens"}),(0,t.jsx)(i.Th,{align:"right",children:"Cached"}),(0,t.jsx)(i.Th,{align:"right",children:"Cost"})]}),(0,t.jsx)("tbody",{children:e.byAgent.map(e=>(0,t.jsxs)(i.Tr,{children:[(0,t.jsx)(i.Td,{className:"text-body-13 text-ink",children:e.agentName}),(0,t.jsx)(i.Td,{className:"text-mono-11 text-ink-3",children:e.models.join(", ")}),(0,t.jsx)(i.Td,{align:"right",className:"text-mono-12 text-ink-2",children:e.calls}),(0,t.jsx)(i.Td,{align:"right",className:"text-mono-12 text-ink-2",children:(0,c._y)(e.inputTokens+e.outputTokens)}),(0,t.jsx)(i.Td,{align:"right",className:"text-mono-12 text-ink-2",children:d(e.cachedTokens,e.inputTokens)}),(0,t.jsxs)(i.Td,{align:"right",className:"text-mono-12 text-ink-2",children:[(0,c.BD)(e.costUsd),e.unpricedCalls>0&&(0,t.jsxs)(t.Fragment,{children:[" ",(0,t.jsx)(r.s,{tone:"warn",children:"partial"})]})]})]},e.agentId??e.agentName))})]})}),(0,t.jsxs)("dl",{className:"mt-4 grid grid-cols-[190px_1fr] gap-x-4 gap-y-1.5 rounded-xl border border-rule-2 bg-paper px-4 py-3 text-mono-11",children:[(0,t.jsx)("dt",{className:"text-ink-4",children:"cache read"}),(0,t.jsxs)("dd",{className:"text-ok",children:[(0,c._y)(n.cachedTokens)," \xb7 ",d(n.cachedTokens,n.inputTokens)," of input"]}),(0,t.jsx)("dt",{className:"text-ink-4",children:"cache written"}),(0,t.jsxs)("dd",{className:"text-ink-2",children:[(0,c._y)(n.cacheCreationTokens)," \xb7 ",d(n.cacheCreationTokens,n.inputTokens)]}),o.resumes>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("dt",{className:"text-ink-4",children:"cache lost on resume"}),(0,t.jsxs)("dd",{className:"text-warn",children:[(0,c._y)(o.tokens)," \xb7 ",(0,c.BD)(o.costUsd)," \xb7 ",o.resumes," ",1===o.resumes?"resume":"resumes"]})]}),(0,t.jsx)("dt",{className:"text-ink-4",children:"fresh input"}),(0,t.jsxs)("dd",{className:"text-ink-2",children:[(0,c._y)(a)," \xb7 ",d(a,n.inputTokens)]}),(0,t.jsx)("dt",{className:"text-ink-4",children:"output"}),(0,t.jsx)("dd",{className:"text-ink-2",children:(0,c._y)(n.outputTokens)}),(0,t.jsx)("dt",{className:"text-ink-4",children:"waiting on you"}),(0,t.jsx)("dd",{className:"text-ink-2",children:n.humanWaitMs>0?`${(0,c._V)(n.humanWaitMs)} of ${(0,c._V)(n.durationMs)}`:"none"}),(0,t.jsx)("dt",{className:"text-ink-4",children:"proof time"}),(0,t.jsx)("dd",{className:"text-ink-2",children:n.proofMs>0?(0,c._V)(n.proofMs):"no proof ran"})]})]})}},65768:(e,s,n)=>{n.d(s,{default:()=>i});var t=n(48503),a=n(80351),r=n(66666);function i({children:e,plain:s,className:n=""}){let[o,l]=(0,a.useState)(!1),c=s.split("\n").length>6||s.length>600;return(0,t.jsxs)("div",{className:n,children:[(0,t.jsx)("div",{className:!o&&c?"line-clamp-6":"",children:e}),c&&(0,t.jsx)(r.A,{onClick:()=>l(e=>!e),"aria-expanded":o,className:"mt-1 text-body-12 text-ink-3 hover:text-ink",children:o?"Show less":"Show more"})]})}},66666:(e,s,n)=>{n.d(s,{A:()=>a});var t=n(48503);function a({className:e="",type:s="button",...n}){return(0,t.jsx)("button",{type:s,className:`transition-colors ${e}`,...n})}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[494],{9618:(e,a,t)=>{t.d(a,{K:()=>c});var l=t(80351),n=t(3674),r=t(37306);let m=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:r.A}));m.displayName="CaretRightIcon";let c=m},10975:(e,a,t)=>{Object.defineProperty(a,"__esModule",{value:!0});var l={default:function(){return Z},getImageProps:function(){return d}};for(var n in l)Object.defineProperty(a,n,{enumerable:!0,get:l[n]});let r=t(57546),m=t(30065),c=t(76937),h=r._(t(5491));function d(e){let{props:a}=(0,m.getImgProps)(e,{defaultLoader:h.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,t]of Object.entries(a))void 0===t&&delete a[e];return{props:a}}let Z=c.Image},16763:(e,a,t)=>{t.d(a,{A:()=>n});var l=t(80351);let n=l.forwardRef((e,a)=>{let{alt:t,color:n="currentColor",size:r="1em",weight:m="regular",mirrored:c=!1,children:h,weights:d,...Z}=e;return l.createElement("svg",{ref:a,xmlns:"http://www.w3.org/2000/svg",width:r,height:r,fill:n,viewBox:"0 0 256 256",transform:c?"scale(-1, 1)":void 0,...Z},!!t&&l.createElement("title",null,t),h,d.get(m))});n.displayName="SSRBase"},19176:(e,a,t)=>{t.d(a,{default:()=>n.a});var l=t(10975),n=t.n(l)},37306:(e,a,t)=>{t.d(a,{A:()=>n});var l=t(80351);let n=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M184.49,136.49l-80,80a12,12,0,0,1-17-17L159,128,87.51,56.49a12,12,0,1,1,17-17l80,80A12,12,0,0,1,184.49,136.49Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M176,128,96,208V48Z",opacity:"0.2"}),l.createElement("path",{d:"M181.66,122.34l-80-80A8,8,0,0,0,88,48V208a8,8,0,0,0,13.66,5.66l80-80A8,8,0,0,0,181.66,122.34ZM104,188.69V67.31L164.69,128Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M181.66,133.66l-80,80A8,8,0,0,1,88,208V48a8,8,0,0,1,13.66-5.66l80,80A8,8,0,0,1,181.66,133.66Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M180.24,132.24l-80,80a6,6,0,0,1-8.48-8.48L167.51,128,91.76,52.24a6,6,0,0,1,8.48-8.48l80,80A6,6,0,0,1,180.24,132.24Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M181.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L164.69,128,90.34,53.66a8,8,0,0,1,11.32-11.32l80,80A8,8,0,0,1,181.66,133.66Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M178.83,130.83l-80,80a4,4,0,0,1-5.66-5.66L170.34,128,93.17,50.83a4,4,0,0,1,5.66-5.66l80,80A4,4,0,0,1,178.83,130.83Z"}))]])},38178:(e,a,t)=>{t.d(a,{K:()=>c});var l=t(80351),n=t(16763),r=t(37306);let m=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:r.A}));m.displayName="CaretRightIcon";let c=m},48572:(e,a,t)=>{t.d(a,{L:()=>c});var l=t(80351),n=t(16763);let r=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M224.49,184.49l-48,48a12,12,0,0,1-17-17L187,188H72a12,12,0,0,1-12-12V32a12,12,0,0,1,24,0V164H187l-27.52-27.51a12,12,0,1,1,17-17l48,48A12,12,0,0,1,224.49,184.49Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,176l-48,48V128Z",opacity:"0.2"}),l.createElement("path",{d:"M221.66,170.34l-48-48A8,8,0,0,0,160,128v40H80V32a8,8,0,0,0-16,0V176a8,8,0,0,0,8,8h88v40a8,8,0,0,0,13.66,5.66l48-48A8,8,0,0,0,221.66,170.34ZM176,204.69V147.31L204.69,176Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M221.66,181.66l-48,48A8,8,0,0,1,160,224V184H72a8,8,0,0,1-8-8V32a8,8,0,0,1,16,0V168h80V128a8,8,0,0,1,13.66-5.66l48,48A8,8,0,0,1,221.66,181.66Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M220.24,180.24l-48,48a6,6,0,0,1-8.48-8.48L201.51,182H72a6,6,0,0,1-6-6V32a6,6,0,0,1,12,0V170H201.51l-37.75-37.76a6,6,0,1,1,8.48-8.48l48,48A6,6,0,0,1,220.24,180.24Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M221.66,181.66l-48,48a8,8,0,0,1-11.32-11.32L196.69,184H72a8,8,0,0,1-8-8V32a8,8,0,0,1,16,0V168H196.69l-34.35-34.34a8,8,0,0,1,11.32-11.32l48,48A8,8,0,0,1,221.66,181.66Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M218.83,178.83l-48,48a4,4,0,0,1-5.66-5.66L206.34,180H72a4,4,0,0,1-4-4V32a4,4,0,0,1,8,0V172H206.34l-41.17-41.17a4,4,0,1,1,5.66-5.66l48,48A4,4,0,0,1,218.83,178.83Z"}))]]),m=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:r}));m.displayName="ArrowElbowDownRightIcon";let c=m},50571:(e,a,t)=>{t.d(a,{A:()=>n});var l=t(80351);let n=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M199,125.31l-49.88-18.39L130.69,57a19.92,19.92,0,0,0-37.38,0L74.92,106.92,25,125.31a19.92,19.92,0,0,0,0,37.38l49.88,18.39L93.31,231a19.92,19.92,0,0,0,37.38,0l18.39-49.88L199,162.69a19.92,19.92,0,0,0,0-37.38Zm-63.38,35.16a12,12,0,0,0-7.11,7.11L112,212.28l-16.47-44.7a12,12,0,0,0-7.11-7.11L43.72,144l44.7-16.47a12,12,0,0,0,7.11-7.11L112,75.72l16.47,44.7a12,12,0,0,0,7.11,7.11L180.28,144ZM140,40a12,12,0,0,1,12-12h12V16a12,12,0,0,1,24,0V28h12a12,12,0,0,1,0,24H188V64a12,12,0,0,1-24,0V52H152A12,12,0,0,1,140,40ZM252,88a12,12,0,0,1-12,12h-4v4a12,12,0,0,1-24,0v-4h-4a12,12,0,0,1,0-24h4V72a12,12,0,0,1,24,0v4h4A12,12,0,0,1,252,88Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M194.82,151.43l-55.09,20.3-20.3,55.09a7.92,7.92,0,0,1-14.86,0l-20.3-55.09-55.09-20.3a7.92,7.92,0,0,1,0-14.86l55.09-20.3,20.3-55.09a7.92,7.92,0,0,1,14.86,0l20.3,55.09,55.09,20.3A7.92,7.92,0,0,1,194.82,151.43Z",opacity:"0.2"}),l.createElement("path",{d:"M197.58,129.06,146,110l-19-51.62a15.92,15.92,0,0,0-29.88,0L78,110l-51.62,19a15.92,15.92,0,0,0,0,29.88L78,178l19,51.62a15.92,15.92,0,0,0,29.88,0L146,178l51.62-19a15.92,15.92,0,0,0,0-29.88ZM137,164.22a8,8,0,0,0-4.74,4.74L112,223.85,91.78,169A8,8,0,0,0,87,164.22L32.15,144,87,123.78A8,8,0,0,0,91.78,119L112,64.15,132.22,119a8,8,0,0,0,4.74,4.74L191.85,144ZM144,40a8,8,0,0,1,8-8h16V16a8,8,0,0,1,16,0V32h16a8,8,0,0,1,0,16H184V64a8,8,0,0,1-16,0V48H152A8,8,0,0,1,144,40ZM248,88a8,8,0,0,1-8,8h-8v8a8,8,0,0,1-16,0V96h-8a8,8,0,0,1,0-16h8V72a8,8,0,0,1,16,0v8h8A8,8,0,0,1,248,88Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M208,144a15.78,15.78,0,0,1-10.42,14.94L146,178l-19,51.62a15.92,15.92,0,0,1-29.88,0L78,178l-51.62-19a15.92,15.92,0,0,1,0-29.88L78,110l19-51.62a15.92,15.92,0,0,1,29.88,0L146,110l51.62,19A15.78,15.78,0,0,1,208,144ZM152,48h16V64a8,8,0,0,0,16,0V48h16a8,8,0,0,0,0-16H184V16a8,8,0,0,0-16,0V32H152a8,8,0,0,0,0,16Zm88,32h-8V72a8,8,0,0,0-16,0v8h-8a8,8,0,0,0,0,16h8v8a8,8,0,0,0,16,0V96h8a8,8,0,0,0,0-16Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M196.89,130.94,144.4,111.6,125.06,59.11a13.92,13.92,0,0,0-26.12,0L79.6,111.6,27.11,130.94a13.92,13.92,0,0,0,0,26.12L79.6,176.4l19.34,52.49a13.92,13.92,0,0,0,26.12,0L144.4,176.4l52.49-19.34a13.92,13.92,0,0,0,0-26.12Zm-4.15,14.86-55.08,20.3a6,6,0,0,0-3.56,3.56l-20.3,55.08a1.92,1.92,0,0,1-3.6,0L89.9,169.66a6,6,0,0,0-3.56-3.56L31.26,145.8a1.92,1.92,0,0,1,0-3.6l55.08-20.3a6,6,0,0,0,3.56-3.56l20.3-55.08a1.92,1.92,0,0,1,3.6,0l20.3,55.08a6,6,0,0,0,3.56,3.56l55.08,20.3a1.92,1.92,0,0,1,0,3.6ZM146,40a6,6,0,0,1,6-6h18V16a6,6,0,0,1,12,0V34h18a6,6,0,0,1,0,12H182V64a6,6,0,0,1-12,0V46H152A6,6,0,0,1,146,40ZM246,88a6,6,0,0,1-6,6H230v10a6,6,0,0,1-12,0V94H208a6,6,0,0,1,0-12h10V72a6,6,0,0,1,12,0V82h10A6,6,0,0,1,246,88Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M197.58,129.06,146,110l-19-51.62a15.92,15.92,0,0,0-29.88,0L78,110l-51.62,19a15.92,15.92,0,0,0,0,29.88L78,178l19,51.62a15.92,15.92,0,0,0,29.88,0L146,178l51.62-19a15.92,15.92,0,0,0,0-29.88ZM137,164.22a8,8,0,0,0-4.74,4.74L112,223.85,91.78,169A8,8,0,0,0,87,164.22L32.15,144,87,123.78A8,8,0,0,0,91.78,119L112,64.15,132.22,119a8,8,0,0,0,4.74,4.74L191.85,144ZM144,40a8,8,0,0,1,8-8h16V16a8,8,0,0,1,16,0V32h16a8,8,0,0,1,0,16H184V64a8,8,0,0,1-16,0V48H152A8,8,0,0,1,144,40ZM248,88a8,8,0,0,1-8,8h-8v8a8,8,0,0,1-16,0V96h-8a8,8,0,0,1,0-16h8V72a8,8,0,0,1,16,0v8h8A8,8,0,0,1,248,88Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M196.2,132.81l-53.36-19.65L123.19,59.8a11.93,11.93,0,0,0-22.38,0L81.16,113.16,27.8,132.81a11.93,11.93,0,0,0,0,22.38l53.36,19.65,19.65,53.36a11.93,11.93,0,0,0,22.38,0l19.65-53.36,53.36-19.65a11.93,11.93,0,0,0,0-22.38Zm-2.77,14.87L138.35,168a4,4,0,0,0-2.37,2.37l-20.3,55.08a3.92,3.92,0,0,1-7.36,0L88,170.35A4,4,0,0,0,85.65,168l-55.08-20.3a3.92,3.92,0,0,1,0-7.36L85.65,120A4,4,0,0,0,88,117.65l20.3-55.08a3.92,3.92,0,0,1,7.36,0L136,117.65a4,4,0,0,0,2.37,2.37l55.08,20.3a3.92,3.92,0,0,1,0,7.36ZM148,40a4,4,0,0,1,4-4h20V16a4,4,0,0,1,8,0V36h20a4,4,0,0,1,0,8H180V64a4,4,0,0,1-8,0V44H152A4,4,0,0,1,148,40Zm96,48a4,4,0,0,1-4,4H228v12a4,4,0,0,1-8,0V92H208a4,4,0,0,1,0-8h12V72a4,4,0,0,1,8,0V84h12A4,4,0,0,1,244,88Z"}))]])},60525:(e,a,t)=>{t.d(a,{A:()=>n});var l=t(80351);let n=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M176.49,95.51a12,12,0,0,1,0,17l-56,56a12,12,0,0,1-17,0l-24-24a12,12,0,1,1,17-17L112,143l47.51-47.52A12,12,0,0,1,176.49,95.51ZM236,128A108,108,0,1,1,128,20,108.12,108.12,0,0,1,236,128Zm-24,0a84,84,0,1,0-84,84A84.09,84.09,0,0,0,212,128Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),l.createElement("path",{d:"M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm45.66,85.66-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35a8,8,0,0,1,11.32,11.32Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M172.24,99.76a6,6,0,0,1,0,8.48l-56,56a6,6,0,0,1-8.48,0l-24-24a6,6,0,0,1,8.48-8.48L112,151.51l51.76-51.75A6,6,0,0,1,172.24,99.76ZM230,128A102,102,0,1,1,128,26,102.12,102.12,0,0,1,230,128Zm-12,0a90,90,0,1,0-90,90A90.1,90.1,0,0,0,218,128Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M170.83,101.17a4,4,0,0,1,0,5.66l-56,56a4,4,0,0,1-5.66,0l-24-24a4,4,0,0,1,5.66-5.66L112,154.34l53.17-53.17A4,4,0,0,1,170.83,101.17ZM228,128A100,100,0,1,1,128,28,100.11,100.11,0,0,1,228,128Zm-8,0a92,92,0,1,0-92,92A92.1,92.1,0,0,0,220,128Z"}))]])},60709:(e,a,t)=>{t.d(a,{A:()=>n});var l=t(80351);let n=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M240.26,186.1,152.81,34.23h0a28.74,28.74,0,0,0-49.62,0L15.74,186.1a27.45,27.45,0,0,0,0,27.71A28.31,28.31,0,0,0,40.55,228h174.9a28.31,28.31,0,0,0,24.79-14.19A27.45,27.45,0,0,0,240.26,186.1Zm-20.8,15.7a4.46,4.46,0,0,1-4,2.2H40.55a4.46,4.46,0,0,1-4-2.2,3.56,3.56,0,0,1,0-3.73L124,46.2a4.77,4.77,0,0,1,8,0l87.44,151.87A3.56,3.56,0,0,1,219.46,201.8ZM116,136V104a12,12,0,0,1,24,0v32a12,12,0,0,1-24,0Zm28,40a16,16,0,1,1-16-16A16,16,0,0,1,144,176Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M215.46,216H40.54C27.92,216,20,202.79,26.13,192.09L113.59,40.22c6.3-11,22.52-11,28.82,0l87.46,151.87C236,202.79,228.08,216,215.46,216Z",opacity:"0.2"}),l.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM120,104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm8,88a12,12,0,1,1,12-12A12,12,0,0,1,128,192Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M235.07,189.09,147.61,37.22h0a22.75,22.75,0,0,0-39.22,0L20.93,189.09a21.53,21.53,0,0,0,0,21.72A22.35,22.35,0,0,0,40.55,222h174.9a22.35,22.35,0,0,0,19.6-11.19A21.53,21.53,0,0,0,235.07,189.09ZM224.66,204.8a10.46,10.46,0,0,1-9.21,5.2H40.55a10.46,10.46,0,0,1-9.21-5.2,9.51,9.51,0,0,1,0-9.72L118.79,43.21a10.75,10.75,0,0,1,18.42,0l87.46,151.87A9.51,9.51,0,0,1,224.66,204.8ZM122,144V104a6,6,0,0,1,12,0v40a6,6,0,0,1-12,0Zm16,36a10,10,0,1,1-10-10A10,10,0,0,1,138,180Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M233.34,190.09,145.88,38.22h0a20.75,20.75,0,0,0-35.76,0L22.66,190.09a19.52,19.52,0,0,0,0,19.71A20.36,20.36,0,0,0,40.54,220H215.46a20.36,20.36,0,0,0,17.86-10.2A19.52,19.52,0,0,0,233.34,190.09ZM226.4,205.8a12.47,12.47,0,0,1-10.94,6.2H40.54a12.47,12.47,0,0,1-10.94-6.2,11.45,11.45,0,0,1,0-11.72L117.05,42.21a12.76,12.76,0,0,1,21.9,0L226.4,194.08A11.45,11.45,0,0,1,226.4,205.8ZM124,144V104a4,4,0,0,1,8,0v40a4,4,0,0,1-8,0Zm12,36a8,8,0,1,1-8-8A8,8,0,0,1,136,180Z"}))]])},63428:(e,a,t)=>{t.d(a,{a:()=>c});var l=t(80351),n=t(16763),r=t(91692);let m=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:r.A}));m.displayName="CaretDownIcon";let c=m},64178:(e,a,t)=>{t.d(a,{r:()=>c});var l=t(80351),n=t(16763),r=t(60525);let m=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:r.A}));m.displayName="CheckCircleIcon";let c=m},68007:(e,a,t)=>{t.d(a,{F:()=>c});var l=t(80351),n=t(3674);let r=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M228,128a12,12,0,0,1-12,12H140v76a12,12,0,0,1-24,0V140H40a12,12,0,0,1,0-24h76V40a12,12,0,0,1,24,0v76h76A12,12,0,0,1,228,128Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,56V200a16,16,0,0,1-16,16H56a16,16,0,0,1-16-16V56A16,16,0,0,1,56,40H200A16,16,0,0,1,216,56Z",opacity:"0.2"}),l.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM184,136H136v48a8,8,0,0,1-16,0V136H72a8,8,0,0,1,0-16h48V72a8,8,0,0,1,16,0v48h48a8,8,0,0,1,0,16Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M222,128a6,6,0,0,1-6,6H134v82a6,6,0,0,1-12,0V134H40a6,6,0,0,1,0-12h82V40a6,6,0,0,1,12,0v82h82A6,6,0,0,1,222,128Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M220,128a4,4,0,0,1-4,4H132v84a4,4,0,0,1-8,0V132H40a4,4,0,0,1,0-8h84V40a4,4,0,0,1,8,0v84h84A4,4,0,0,1,220,128Z"}))]]),m=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:r}));m.displayName="PlusIcon";let c=m},68269:(e,a,t)=>{t.d(a,{N:()=>c});var l=t(80351),n=t(16763),r=t(60709);let m=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:r.A}));m.displayName="WarningIcon";let c=m},78936:(e,a,t)=>{t.d(a,{e:()=>c});var l=t(80351),n=t(3674);let r=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M232.49,215.51,185,168a92.12,92.12,0,1,0-17,17l47.53,47.54a12,12,0,0,0,17-17ZM44,112a68,68,0,1,1,68,68A68.07,68.07,0,0,1,44,112Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M192,112a80,80,0,1,1-80-80A80,80,0,0,1,192,112Z",opacity:"0.2"}),l.createElement("path",{d:"M229.66,218.34,179.6,168.28a88.21,88.21,0,1,0-11.32,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M168,112a56,56,0,1,1-56-56A56,56,0,0,1,168,112Zm61.66,117.66a8,8,0,0,1-11.32,0l-50.06-50.07a88,88,0,1,1,11.32-11.31l50.06,50.06A8,8,0,0,1,229.66,229.66ZM112,184a72,72,0,1,0-72-72A72.08,72.08,0,0,0,112,184Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M228.24,219.76l-51.38-51.38a86.15,86.15,0,1,0-8.48,8.48l51.38,51.38a6,6,0,0,0,8.48-8.48ZM38,112a74,74,0,1,1,74,74A74.09,74.09,0,0,1,38,112Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M229.66,218.34l-50.07-50.06a88.11,88.11,0,1,0-11.31,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M226.83,221.17l-52.7-52.7a84.1,84.1,0,1,0-5.66,5.66l52.7,52.7a4,4,0,0,0,5.66-5.66ZM36,112a76,76,0,1,1,76,76A76.08,76.08,0,0,1,36,112Z"}))]]),m=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:r}));m.displayName="MagnifyingGlassIcon";let c=m},80767:(e,a,t)=>{t.d(a,{A:()=>n});var l=t(80351);let n=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M228,128a12,12,0,0,1-12,12H40a12,12,0,0,1,0-24H216A12,12,0,0,1,228,128ZM40,76H216a12,12,0,0,0,0-24H40a12,12,0,0,0,0,24ZM216,180H40a12,12,0,0,0,0,24H216a12,12,0,0,0,0-24Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,64V192H40V64Z",opacity:"0.2"}),l.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM40,72H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16ZM216,184H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM192,184H64a8,8,0,0,1,0-16H192a8,8,0,0,1,0,16Zm0-48H64a8,8,0,0,1,0-16H192a8,8,0,0,1,0,16Zm0-48H64a8,8,0,0,1,0-16H192a8,8,0,0,1,0,16Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M222,128a6,6,0,0,1-6,6H40a6,6,0,0,1,0-12H216A6,6,0,0,1,222,128ZM40,70H216a6,6,0,0,0,0-12H40a6,6,0,0,0,0,12ZM216,186H40a6,6,0,0,0,0,12H216a6,6,0,0,0,0-12Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM40,72H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16ZM216,184H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M220,128a4,4,0,0,1-4,4H40a4,4,0,0,1,0-8H216A4,4,0,0,1,220,128ZM40,68H216a4,4,0,0,0,0-8H40a4,4,0,0,0,0,8ZM216,188H40a4,4,0,0,0,0,8H216a4,4,0,0,0,0-8Z"}))]])},85319:(e,a,t)=>{t.d(a,{B:()=>c});var l=t(80351),n=t(16763),r=t(80767);let m=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:r.A}));m.displayName="ListIcon";let c=m},85347:(e,a,t)=>{t.d(a,{R:()=>c});var l=t(80351),n=t(16763),r=t(50571);let m=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:r.A}));m.displayName="SparkleIcon";let c=m},89466:(e,a,t)=>{t.d(a,{Q:()=>c});var l=t(80351),n=t(3674);let r=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,28H88A12,12,0,0,0,76,40V76H40A12,12,0,0,0,28,88V216a12,12,0,0,0,12,12H168a12,12,0,0,0,12-12V180h36a12,12,0,0,0,12-12V40A12,12,0,0,0,216,28ZM156,204H52V100H156Zm48-48H180V88a12,12,0,0,0-12-12H100V52H204Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,40V168H168V88H88V40Z",opacity:"0.2"}),l.createElement("path",{d:"M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32Zm-8,128H176V88a8,8,0,0,0-8-8H96V48H208Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,34H88a6,6,0,0,0-6,6V82H40a6,6,0,0,0-6,6V216a6,6,0,0,0,6,6H168a6,6,0,0,0,6-6V174h42a6,6,0,0,0,6-6V40A6,6,0,0,0,216,34ZM162,210H46V94H162Zm48-48H174V88a6,6,0,0,0-6-6H94V46H210Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,36H88a4,4,0,0,0-4,4V84H40a4,4,0,0,0-4,4V216a4,4,0,0,0,4,4H168a4,4,0,0,0,4-4V172h44a4,4,0,0,0,4-4V40A4,4,0,0,0,216,36ZM164,212H44V92H164Zm48-48H172V88a4,4,0,0,0-4-4H92V44H212Z"}))]]),m=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:r}));m.displayName="CopyIcon";let c=m},91692:(e,a,t)=>{t.d(a,{A:()=>n});var l=t(80351);let n=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216.49,104.49l-80,80a12,12,0,0,1-17,0l-80-80a12,12,0,0,1,17-17L128,159l71.51-71.52a12,12,0,0,1,17,17Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M208,96l-80,80L48,96Z",opacity:"0.2"}),l.createElement("path",{d:"M215.39,92.94A8,8,0,0,0,208,88H48a8,8,0,0,0-5.66,13.66l80,80a8,8,0,0,0,11.32,0l80-80A8,8,0,0,0,215.39,92.94ZM128,164.69,67.31,104H188.69Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,48,88H208a8,8,0,0,1,5.66,13.66Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M212.24,100.24l-80,80a6,6,0,0,1-8.48,0l-80-80a6,6,0,0,1,8.48-8.48L128,167.51l75.76-75.75a6,6,0,0,1,8.48,8.48Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M210.83,98.83l-80,80a4,4,0,0,1-5.66,0l-80-80a4,4,0,0,1,5.66-5.66L128,170.34l77.17-77.17a4,4,0,1,1,5.66,5.66Z"}))]])}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5034],{2193:(e,t,r)=>{r.d(t,{default:()=>g});var n=r(48503),a=r(80351),i=r(86045),l=r(22208),o=r.n(l),s=r(61151),d=r(97872),c=r(68926),u=r(42106),h=r(88088),p=r(75551),x=r(18377),m=r(41512),f=r(4978);function v({item:e,onApproved:t}){let[r,i]=(0,a.useTransition)();return(0,n.jsx)("span",{onClick:e=>e.stopPropagation(),children:(0,n.jsx)(p.A,{onClick:function(){i(async()=>{let r=await (0,u.C)({approvalRequestId:e.id,decision:"approve"});r.ok?(c.oR.success("Approved"),await t()):c.oR.error(r.message)})},disabled:r,className:"!border-ok/30 !bg-ok font-semibold !text-canvas hover:!bg-ok hover:brightness-[0.92]",children:r?"…":"Approve"})})}function b({items:e,updates:t,onClose:r,onApproved:l}){let d=(0,a.useRef)(null);return(0,a.useEffect)(()=>{function e(e){d.current&&!d.current.contains(e.target)&&r()}return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[r]),(0,i.Z4)(!0,r),(0,n.jsxs)("div",{ref:d,className:"absolute right-0 top-full z-50 mt-1.5 w-[340px] rounded-xl border border-rule-2 bg-paper shadow-lg",role:"dialog","aria-label":"Pending approvals",children:[(0,n.jsx)("div",{className:"border-b border-rule-2 px-4 py-3",children:(0,n.jsxs)("p",{className:"text-legacy-14 font-semibold text-ink",children:["Pending approvals (",e.length,")"]})}),0===e.length?(0,n.jsx)("p",{className:"px-4 py-5 text-center text-body-13 text-ink-3",children:"No pending approvals."}):(0,n.jsx)("ul",{className:"max-h-[340px] divide-y divide-rule-2 overflow-y-auto",children:e.map(e=>(0,n.jsx)("li",{children:(0,n.jsxs)(o(),{href:`/jobs/${e.jobId}`,onClick:r,className:"flex items-start gap-3 px-4 py-3 transition-colors hover:bg-hover",children:[(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsxs)("p",{className:"truncate text-medium-13 text-ink",children:[e.agentName??"Agent",(0,n.jsx)("span",{className:"mx-1 text-ink-4",children:"\xb7"}),(0,n.jsx)("code",{className:"rounded bg-canvas px-1 py-0.5 text-mono-12 text-ink-2",children:e.toolName})]}),(0,n.jsx)("p",{className:"mt-0.5 truncate text-body-12 text-ink-3",children:function(e){if(!e)return"—";if("string"==typeof e.purpose&&e.purpose.trim()){let t=e.purpose.trim();return t.length>80?t.slice(0,77)+"…":t}if("string"==typeof e.command){let t=e.command;return t.length>60?t.slice(0,57)+"…":t}let t=JSON.stringify(e);return t.length>60?t.slice(0,57)+"…":t}(e.toolInput)}),(0,n.jsx)("p",{className:"mt-0.5 text-legacy-11 text-ink-4",children:(0,f.KW)(e.requestedAt)})]}),(0,n.jsx)(v,{item:e,onApproved:l})]})},e.id))}),t.length>0&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"border-t border-b border-rule-2 px-4 py-3",children:(0,n.jsxs)("p",{className:"text-legacy-14 font-semibold text-ink",children:["Updates (",t.length,")"]})}),(0,n.jsx)("ul",{className:"max-h-[220px] divide-y divide-rule-2 overflow-y-auto",children:t.map(e=>(0,n.jsx)("li",{children:(0,n.jsxs)(o(),{href:"/skills",onClick:r,className:"flex items-center gap-2.5 px-4 py-3 transition-colors hover:bg-hover",children:[(0,n.jsx)(s.S,{size:14,className:"shrink-0 text-warn"}),(0,n.jsxs)("span",{className:"min-w-0 flex-1 truncate text-medium-13 text-ink",children:[e.name," has an update"]})]})},e.slug))})]}),(0,n.jsx)("div",{className:"border-t border-rule-2 px-4 py-2.5",children:(0,n.jsx)(o(),{href:"/approvals",onClick:r,className:"text-medium-13 text-ink-2 transition-colors hover:text-ink",children:"See all approvals →"})})]})}function g(){let{pending:e,refresh:t}=(0,x.e)(),{updates:r}=(0,m.z)(),[i,l]=(0,a.useState)(!1),o=(0,a.useRef)(null),s=e.length+r.length,c=(0,a.useCallback)(()=>l(!1),[]),u=(0,a.useCallback)(()=>l(e=>!e),[]),p=(0,a.useCallback)(async()=>{await t()},[t]);return(0,n.jsxs)("div",{ref:o,className:"relative",children:[(0,n.jsx)(h.A,{"aria-label":s>0?`Notifications (${s} pending)`:"Notifications",title:"Notifications",onClick:u,badge:s>0,children:(0,n.jsx)(d.I,{size:15})}),i&&(0,n.jsx)(b,{items:e,updates:r,onClose:c,onApproved:p})]})}},3816:(e,t,r)=>{r.d(t,{S:()=>a,n:()=>i});var n=r(80351);let a=15e3;function i(e,t,r=!1){(0,n.useEffect)(()=>{r&&e();let n=setInterval(()=>{document.hidden||e()},t);function a(){document.hidden||e()}return document.addEventListener("visibilitychange",a),()=>{clearInterval(n),document.removeEventListener("visibilitychange",a)}},[e,t,r])}},4978:(e,t,r)=>{function n(e){return"string"==typeof e?new Date(e):e}function a(e){if(!e)return"—";let t=n(e),r=Math.floor((Date.now()-t.getTime())/1e3);if(r<60)return"just now";let a=Math.floor(r/60);if(a<60)return`${a}m ago`;let i=Math.floor(a/60);if(i<24)return`${i}h ago`;let l=Math.floor(i/24);return 1===l?"yesterday":l<7?`${l}d ago`:t.toLocaleDateString(void 0,{month:"short",day:"numeric"})}function i(e){return e?n(e).toLocaleString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"—"}function l(e){return e?n(e).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1}):"—"}function o(e,t){return e.length>t?e.slice(0,t)+"…":e}function s(e){if(!e)return"—";let t=Math.round((n(e).getTime()-Date.now())/1e3),r=Math.abs(t),a=r<60?`${r}s`:r<3600?`${Math.round(r/60)} min`:r<86400?`${Math.round(r/3600)} h`:`${Math.round(r/86400)} d`;return t>=0?`expires in ${a}`:`expired ${a} ago`}function d(e){return!!e&&n(e).getTime()<Date.now()}r.d(t,{B8:()=>s,KW:()=>a,Yq:()=>i,_d:()=>d,ei:()=>l,xv:()=>o})},5899:(e,t,r)=>{r.d(t,{B:()=>a});var n=r(2439);let a=(0,n.createServerReference)("409920b904ea96ef3324c4a371bc08060c3fa9cb65",n.callServer,void 0,n.findSourceMapURL,"listApprovalsAction")},18377:(e,t,r)=>{r.d(t,{ApprovalsProvider:()=>s,e:()=>c});var n=r(48503),a=r(80351),i=r(5899),l=r(3816);let o=(0,a.createContext)(null);function s({initial:e,children:t}){let[r,d]=(0,a.useState)(e),c=(0,a.useCallback)(async()=>{try{let e=await (0,i.B)({status:"pending"});if(!e.ok)return;d(e.data.map(e=>({id:e.id,jobId:e.jobId,toolName:e.toolName,agentName:e.agentName,toolInput:e.toolInput,requestedAt:e.requestedAt,jobChannel:e.jobChannel,conversationChannel:e.conversationChannel})))}catch(e){console.error("[ApprovalsProvider] reading the pending approvals failed",e)}},[]);(0,l.n)(c,15e3);let u=(0,a.useCallback)(async()=>{await c()},[c]),h=(0,a.useMemo)(()=>({pending:r,refresh:u}),[r,u]);return(0,n.jsx)(o.Provider,{value:h,children:t})}let d={pending:[],refresh:async()=>{}};function c(){let e=(0,a.useContext)(o);return e||(console.warn("[useApprovals] called outside <ApprovalsProvider> — returning empty state."),d)}},41512:(e,t,r)=>{r.d(t,{SkillUpdatesProvider:()=>d,z:()=>u});var n=r(48503),a=r(80351),i=r(2439);let l=(0,i.createServerReference)("00b356019ee7323f2a3887659fc921adc0c9414166",i.callServer,void 0,i.findSourceMapURL,"listSkillUpdatesAction");var o=r(3816);let s=(0,a.createContext)(null);function d({initial:e,children:t}){let[r,i]=(0,a.useState)(e),c=(0,a.useCallback)(async()=>{let e=await l();e.ok&&i(e.data)},[]);(0,o.n)(c,15e3);let u=(0,a.useCallback)(()=>{c()},[c]);return(0,n.jsx)(s.Provider,{value:{updates:r,refresh:u},children:t})}let c={updates:[],refresh:()=>{}};function u(){let e=(0,a.useContext)(s);return e||(console.warn("[useSkillUpdates] called outside <SkillUpdatesProvider> — returning empty state."),c)}},42106:(e,t,r)=>{r.d(t,{C:()=>a});var n=r(2439);let a=(0,n.createServerReference)("402368f1a14ccd92667eff71538a8523c3788333ef",n.callServer,void 0,n.findSourceMapURL,"resolveApprovalAction")},75551:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(48503),a=r(22208),i=r.n(a);let l={default:"border-rule-2 text-ink-2 hover:bg-hover hover:text-ink",danger:"border-err/30 text-err hover:border-err hover:bg-warn-bg",success:"border-ok/30 text-ok hover:border-ok hover:bg-ok-bg"},o={default:"border-rule-2 text-ink-2 hover:bg-hover hover:text-ink",danger:"border-err/20 text-err/70 hover:border-err hover:bg-warn-bg hover:text-err",success:"border-ok/20 text-ok/70 hover:border-ok hover:bg-ok-bg hover:text-ok"};function s(e){let{tone:t="default",disabled:r,className:a=""}=e;if(e.square){let{icon:l,title:s}=e,d=`inline-flex h-[30px] w-[30px] shrink-0 items-center justify-center rounded-md border bg-paper transition-colors disabled:opacity-40 ${o[t]} ${a}`;return"href"in e&&e.href?e.download?(0,n.jsx)("a",{href:e.href,download:!0,title:s,"aria-label":s,"aria-disabled":r||void 0,className:d,children:l}):(0,n.jsx)(i(),{href:e.href,title:s,"aria-label":s,"aria-disabled":r||void 0,className:d,children:l}):(0,n.jsx)("button",{type:e.type??"button",onClick:e.onClick,disabled:r,title:s,"aria-label":s,className:d,children:l})}let{icon:s,children:d,title:c,responsive:u=!1}=e,h=`inline-flex h-[30px] items-center gap-1.5 rounded-md border bg-paper px-3 text-medium-12 leading-none! transition-colors disabled:opacity-40 ${l[t]} ${a}`,p=s?(0,n.jsx)("span",{className:u?"sm:hidden":"inline-flex shrink-0",children:s}):null,x=(0,n.jsx)("span",{className:u?"hidden sm:inline":"",children:d});return"href"in e&&e.href?e.download?(0,n.jsxs)("a",{href:e.href,download:!0,title:c,"aria-label":c,"aria-disabled":r||void 0,className:h,children:[p,x]}):(0,n.jsxs)(i(),{href:e.href,title:c,"aria-label":c,"aria-disabled":r||void 0,className:h,children:[p,x]}):(0,n.jsxs)("button",{type:e.type??"button",onClick:e.onClick,disabled:r,title:c,"aria-label":c,className:h,children:[p,x]})}},81098:(e,t,r)=>{r.d(t,{default:()=>s});var n=r(48503),a=r(80351),i=r(18900),l=r(87092),o=r(88088);function s(){let[e,t]=(0,a.useState)("light"),[r,s]=(0,a.useState)(!1);(0,a.useEffect)(()=>{t("u"<typeof document?"light":"dark"===document.documentElement.getAttribute("data-theme")?"dark":"light"),s(!0)},[]);let d="dark"===e?i.b:l.A,c="dark"===e?"Switch to light theme":"Switch to dark theme";return(0,n.jsx)(o.A,{onClick:()=>{let r="dark"===e?"light":"dark";document.documentElement.setAttribute("data-theme",r);try{localStorage.setItem("nodal.theme",r)}catch{}t(r)},"aria-label":c,title:c,suppressHydrationWarning:!0,children:r?(0,n.jsx)(d,{size:15}):(0,n.jsx)(l.A,{size:15})})}},86045:(e,t,r)=>{r.d(t,{C5:()=>s,Z4:()=>o});var n=r(80351);let a=[],i=!1;function l(e){if("Escape"!==e.key||e.defaultPrevented)return;let t=a[a.length-1];t&&(e.preventDefault(),t.onEscape())}function o(e,t){let r=(0,n.useRef)(t);(0,n.useEffect)(()=>{r.current=t}),(0,n.useEffect)(()=>{if(!e)return;let t={onEscape:()=>r.current()};return a.push(t),i||(window.addEventListener("keydown",l),i=!0),()=>{let e;-1!==(e=a.indexOf(t))&&a.splice(e,1),0===a.length&&i&&(window.removeEventListener("keydown",l),i=!1)}},[e])}let s=()=>{}},88088:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(48503);let a={xs:"h-7 w-7",sm:"h-[30px] w-[30px]",md:"h-[34px] w-[34px]"},i={chrome:"border border-rule-2 bg-paper text-ink-2 hover:text-ink",subtle:"bg-hover-2 text-ink-2 hover:bg-hover",ink:"bg-ink text-canvas hover:brightness-[0.92]"};function l({children:e,badge:t,size:r="md",shape:o="square",fill:s="chrome",ghost:d=!1,className:c="",type:u="button",ref:h,...p}){let x=d?"text-ink-2 hover:text-ink":`${a[r]} ${"round"===o?"rounded-full":"md"===r?"rounded-md":"rounded-[7px]"} ${i[s]}`;return(0,n.jsxs)("button",{ref:h,type:u,className:`relative flex shrink-0 items-center justify-center transition-colors disabled:opacity-40 ${x} ${c}`,...p,children:[e,t&&(0,n.jsx)("span",{className:"absolute top-[6px] right-[7px] h-1.5 w-1.5 rounded-full bg-skill-vivid"})]})}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5216],{14570:(e,a,t)=>{t.d(a,{z:()=>Z});var l=t(80351),n=t(3674);let m=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M228,144v64a12,12,0,0,1-12,12H40a12,12,0,0,1-12-12V144a12,12,0,0,1,24,0v52H204V144a12,12,0,0,1,24,0Zm-108.49,8.49a12,12,0,0,0,17,0l40-40a12,12,0,0,0-17-17L140,115V32a12,12,0,0,0-24,0v83L96.49,95.51a12,12,0,0,0-17,17Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,48V208H40V48A16,16,0,0,1,56,32H200A16,16,0,0,1,216,48Z",opacity:"0.2"}),l.createElement("path",{d:"M224,144v64a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V144a8,8,0,0,1,16,0v56H208V144a8,8,0,0,1,16,0Zm-101.66,5.66a8,8,0,0,0,11.32,0l40-40a8,8,0,0,0-11.32-11.32L136,124.69V32a8,8,0,0,0-16,0v92.69L93.66,98.34a8,8,0,0,0-11.32,11.32Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M224,144v64a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V144a8,8,0,0,1,16,0v56H208V144a8,8,0,0,1,16,0Zm-101.66,5.66a8,8,0,0,0,11.32,0l40-40A8,8,0,0,0,168,96H136V32a8,8,0,0,0-16,0V96H88a8,8,0,0,0-5.66,13.66Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M222,144v64a6,6,0,0,1-6,6H40a6,6,0,0,1-6-6V144a6,6,0,0,1,12,0v58H210V144a6,6,0,0,1,12,0Zm-98.24,4.24a6,6,0,0,0,8.48,0l40-40a6,6,0,0,0-8.48-8.48L134,129.51V32a6,6,0,0,0-12,0v97.51L92.24,99.76a6,6,0,0,0-8.48,8.48Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M224,144v64a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V144a8,8,0,0,1,16,0v56H208V144a8,8,0,0,1,16,0Zm-101.66,5.66a8,8,0,0,0,11.32,0l40-40a8,8,0,0,0-11.32-11.32L136,124.69V32a8,8,0,0,0-16,0v92.69L93.66,98.34a8,8,0,0,0-11.32,11.32Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M220,144v64a4,4,0,0,1-4,4H40a4,4,0,0,1-4-4V144a4,4,0,0,1,8,0v60H212V144a4,4,0,0,1,8,0Zm-94.83,2.83a4,4,0,0,0,5.66,0l40-40a4,4,0,1,0-5.66-5.66L132,134.34V32a4,4,0,0,0-8,0V134.34L90.83,101.17a4,4,0,0,0-5.66,5.66Z"}))]]),r=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:m}));r.displayName="DownloadSimpleIcon";let Z=r},16763:(e,a,t)=>{t.d(a,{A:()=>n});var l=t(80351);let n=l.forwardRef((e,a)=>{let{alt:t,color:n="currentColor",size:m="1em",weight:r="regular",mirrored:Z=!1,children:H,weights:A,...c}=e;return l.createElement("svg",{ref:a,xmlns:"http://www.w3.org/2000/svg",width:m,height:m,fill:n,viewBox:"0 0 256 256",transform:Z?"scale(-1, 1)":void 0,...c},!!t&&l.createElement("title",null,t),H,A.get(r))});n.displayName="SSRBase"},18243:(e,a,t)=>{t.d(a,{_:()=>Z});var l=t(80351),n=t(3674);let m=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M144,96a16,16,0,1,1,16,16A16,16,0,0,1,144,96Zm92-40V200a20,20,0,0,1-20,20H40a20,20,0,0,1-20-20V56A20,20,0,0,1,40,36H216A20,20,0,0,1,236,56ZM44,60v79.72l33.86-33.86a20,20,0,0,1,28.28,0L147.31,147l17.18-17.17a20,20,0,0,1,28.28,0L212,149.09V60Zm0,136H162.34L92,125.66l-48,48Zm168,0V183l-33.37-33.37L164.28,164l32,32Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M224,56V178.06l-39.72-39.72a8,8,0,0,0-11.31,0L147.31,164,97.66,114.34a8,8,0,0,0-11.32,0L32,168.69V56a8,8,0,0,1,8-8H216A8,8,0,0,1,224,56Z",opacity:"0.2"}),l.createElement("path",{d:"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm0,16V158.75l-26.07-26.06a16,16,0,0,0-22.63,0l-20,20-44-44a16,16,0,0,0-22.62,0L40,149.37V56ZM40,172l52-52,80,80H40Zm176,28H194.63l-36-36,20-20L216,181.38V200ZM144,100a12,12,0,1,1,12,12A12,12,0,0,1,144,100Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM156,88a12,12,0,1,1-12,12A12,12,0,0,1,156,88Zm60,112H40V160.69l46.34-46.35a8,8,0,0,1,11.32,0h0L165,181.66a8,8,0,0,0,11.32-11.32l-17.66-17.65L173,138.34a8,8,0,0,1,11.31,0L216,170.07V200Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,42H40A14,14,0,0,0,26,56V200a14,14,0,0,0,14,14H216a14,14,0,0,0,14-14V56A14,14,0,0,0,216,42ZM40,54H216a2,2,0,0,1,2,2V163.57L188.53,134.1a14,14,0,0,0-19.8,0l-21.42,21.42L101.9,110.1a14,14,0,0,0-19.8,0L38,154.2V56A2,2,0,0,1,40,54ZM38,200V171.17l52.58-52.58a2,2,0,0,1,2.84,0L176.83,202H40A2,2,0,0,1,38,200Zm178,2H193.8l-38-38,21.41-21.42a2,2,0,0,1,2.83,0l38,38V200A2,2,0,0,1,216,202ZM146,100a10,10,0,1,1,10,10A10,10,0,0,1,146,100Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm0,16V158.75l-26.07-26.06a16,16,0,0,0-22.63,0l-20,20-44-44a16,16,0,0,0-22.62,0L40,149.37V56ZM40,172l52-52,80,80H40Zm176,28H194.63l-36-36,20-20L216,181.38V200ZM144,100a12,12,0,1,1,12,12A12,12,0,0,1,144,100Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,44H40A12,12,0,0,0,28,56V200a12,12,0,0,0,12,12H216a12,12,0,0,0,12-12V56A12,12,0,0,0,216,44ZM40,52H216a4,4,0,0,1,4,4V168.4l-32.89-32.89a12,12,0,0,0-17,0l-22.83,22.83-46.82-46.83a12,12,0,0,0-17,0L36,159V56A4,4,0,0,1,40,52ZM36,200V170.34l53.17-53.17a4,4,0,0,1,5.66,0L181.66,204H40A4,4,0,0,1,36,200Zm180,4H193l-40-40,22.83-22.83a4,4,0,0,1,5.66,0L220,179.71V200A4,4,0,0,1,216,204ZM148,100a8,8,0,1,1,8,8A8,8,0,0,1,148,100Z"}))]]),r=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:m}));r.displayName="ImageIcon";let Z=r},37306:(e,a,t)=>{t.d(a,{A:()=>n});var l=t(80351);let n=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M184.49,136.49l-80,80a12,12,0,0,1-17-17L159,128,87.51,56.49a12,12,0,1,1,17-17l80,80A12,12,0,0,1,184.49,136.49Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M176,128,96,208V48Z",opacity:"0.2"}),l.createElement("path",{d:"M181.66,122.34l-80-80A8,8,0,0,0,88,48V208a8,8,0,0,0,13.66,5.66l80-80A8,8,0,0,0,181.66,122.34ZM104,188.69V67.31L164.69,128Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M181.66,133.66l-80,80A8,8,0,0,1,88,208V48a8,8,0,0,1,13.66-5.66l80,80A8,8,0,0,1,181.66,133.66Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M180.24,132.24l-80,80a6,6,0,0,1-8.48-8.48L167.51,128,91.76,52.24a6,6,0,0,1,8.48-8.48l80,80A6,6,0,0,1,180.24,132.24Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M181.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L164.69,128,90.34,53.66a8,8,0,0,1,11.32-11.32l80,80A8,8,0,0,1,181.66,133.66Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M178.83,130.83l-80,80a4,4,0,0,1-5.66-5.66L170.34,128,93.17,50.83a4,4,0,0,1,5.66-5.66l80,80A4,4,0,0,1,178.83,130.83Z"}))]])},38178:(e,a,t)=>{t.d(a,{K:()=>Z});var l=t(80351),n=t(16763),m=t(37306);let r=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:m.A}));r.displayName="CaretRightIcon";let Z=r},44180:(e,a,t)=>{t.d(a,{v:()=>Z});var l=t(80351),n=t(3674);let m=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,36H40A20,20,0,0,0,20,56V200a20,20,0,0,0,20,20H216a20,20,0,0,0,20-20V56A20,20,0,0,0,216,36ZM44,100h72v56H44Zm96-24V60h24V76Zm-24,0H92V60h24Zm0,104v16H92V180Zm24,0h24v16H140Zm0-24V100h72v56Zm72-80H188V60h24ZM68,60V76H44V60ZM44,180H68v16H44Zm144,16V180h24v16Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M32,176H224v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8ZM216,48H40a8,8,0,0,0-8,8V80H224V56A8,8,0,0,0,216,48Z",opacity:"0.2"}),l.createElement("path",{d:"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM40,88h80v80H40Zm96-16V56h32V72Zm-16,0H88V56h32Zm0,112v16H88V184Zm16,0h32v16H136Zm0-16V88h80v80Zm80-96H184V56h32ZM72,56V72H40V56ZM40,184H72v16H40Zm176,16H184V184h32v16Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM184,56h32V72H184ZM72,200H40V184H72ZM72,72H40V56H72Zm48,128H88V184h32Zm0-128H88V56h32Zm48,128H136V184h32Zm0-128H136V56h32Zm48,128H184V184h32v16Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,42H40A14,14,0,0,0,26,56V200a14,14,0,0,0,14,14H216a14,14,0,0,0,14-14V56A14,14,0,0,0,216,42ZM38,86h84v84H38Zm96-12V54h36V74Zm-12,0H86V54h36Zm0,108v20H86V182Zm12,0h36v20H134Zm0-12V86h84v84ZM218,56V74H182V54h34A2,2,0,0,1,218,56ZM40,54H74V74H38V56A2,2,0,0,1,40,54ZM38,200V182H74v20H40A2,2,0,0,1,38,200Zm178,2H182V182h36v18A2,2,0,0,1,216,202Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM40,88h80v80H40Zm96-16V56h32V72Zm-16,0H88V56h32Zm0,112v16H88V184Zm16,0h32v16H136Zm0-16V88h80v80Zm80-96H184V56h32ZM72,56V72H40V56ZM40,184H72v16H40Zm176,16H184V184h32v16Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,44H40A12,12,0,0,0,28,56V200a12,12,0,0,0,12,12H216a12,12,0,0,0,12-12V56A12,12,0,0,0,216,44ZM36,84h88v88H36Zm96-8V52h40V76Zm-8,0H84V52h40Zm0,104v24H84V180Zm8,0h40v24H132Zm0-8V84h88v88ZM220,56V76H180V52h36A4,4,0,0,1,220,56ZM40,52H76V76H36V56A4,4,0,0,1,40,52ZM36,200V180H76v24H40A4,4,0,0,1,36,200Zm180,4H180V180h40v20A4,4,0,0,1,216,204Z"}))]]),r=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:m}));r.displayName="FilmStripIcon";let Z=r},48032:(e,a,t)=>{t.d(a,{o:()=>Z});var l=t(80351),n=t(3674);let m=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M157.27,21.22a12,12,0,0,0-12.64,1.31L75.88,76H32A20,20,0,0,0,12,96v64a20,20,0,0,0,20,20H75.88l68.75,53.47A12,12,0,0,0,164,224V32A12,12,0,0,0,157.27,21.22ZM36,100H68v56H36Zm104,99.46L92,162.13V93.87l48-37.33ZM212,128a44,44,0,0,1-11,29.11,12,12,0,1,1-18-15.88,20,20,0,0,0,0-26.43,12,12,0,0,1,18-15.86A43.94,43.94,0,0,1,212,128Zm40,0a83.87,83.87,0,0,1-21.39,56,12,12,0,0,1-17.89-16,60,60,0,0,0,0-80,12,12,0,1,1,17.88-16A83.87,83.87,0,0,1,252,128Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M80,88v80H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8Z",opacity:"0.2"}),l.createElement("path",{d:"M155.51,24.81a8,8,0,0,0-8.42.88L77.25,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H77.25l69.84,54.31A8,8,0,0,0,160,224V32A8,8,0,0,0,155.51,24.81ZM32,96H72v64H32ZM144,207.64,88,164.09V91.91l56-43.55Zm54-106.08a40,40,0,0,1,0,52.88,8,8,0,0,1-12-10.58,24,24,0,0,0,0-31.72,8,8,0,0,1,12-10.58ZM248,128a79.9,79.9,0,0,1-20.37,53.34,8,8,0,0,1-11.92-10.67,64,64,0,0,0,0-85.33,8,8,0,1,1,11.92-10.67A79.83,79.83,0,0,1,248,128Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M160,32.25V223.69a8.29,8.29,0,0,1-3.91,7.18,8,8,0,0,1-9-.56l-65.57-51A4,4,0,0,1,80,176.16V79.84a4,4,0,0,1,1.55-3.15l65.57-51a8,8,0,0,1,10,.16A8.27,8.27,0,0,1,160,32.25ZM60,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H60a4,4,0,0,0,4-4V84A4,4,0,0,0,60,80Zm126.77,20.84a8,8,0,0,0-.72,11.3,24,24,0,0,1,0,31.72,8,8,0,1,0,12,10.58,40,40,0,0,0,0-52.88A8,8,0,0,0,186.74,100.84Zm40.89-26.17a8,8,0,1,0-11.92,10.66,64,64,0,0,1,0,85.34,8,8,0,1,0,11.92,10.66,80,80,0,0,0,0-106.66Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M154.64,26.61a6,6,0,0,0-6.32.65L77.94,82H32A14,14,0,0,0,18,96v64a14,14,0,0,0,14,14H77.94l70.38,54.74A6,6,0,0,0,158,224V32A6,6,0,0,0,154.64,26.61ZM30,160V96a2,2,0,0,1,2-2H74v68H32A2,2,0,0,1,30,160Zm116,51.73L86,165.07V90.93l60-46.66Zm50.53-108.85a38,38,0,0,1,0,50.24,6,6,0,1,1-9-7.94,26,26,0,0,0,0-34.37,6,6,0,0,1,9-7.93ZM246,128a77.86,77.86,0,0,1-19.86,52,6,6,0,1,1-8.94-8,66,66,0,0,0,0-88,6,6,0,1,1,8.94-8A77.86,77.86,0,0,1,246,128Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M155.51,24.81a8,8,0,0,0-8.42.88L77.25,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H77.25l69.84,54.31A8,8,0,0,0,160,224V32A8,8,0,0,0,155.51,24.81ZM32,96H72v64H32ZM144,207.64,88,164.09V91.91l56-43.55Zm54-106.08a40,40,0,0,1,0,52.88,8,8,0,0,1-12-10.58,24,24,0,0,0,0-31.72,8,8,0,0,1,12-10.58ZM248,128a79.9,79.9,0,0,1-20.37,53.34,8,8,0,0,1-11.92-10.67,64,64,0,0,0,0-85.33,8,8,0,1,1,11.92-10.67A79.83,79.83,0,0,1,248,128Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M153.76,28.41a4,4,0,0,0-4.22.43L78.63,84H32A12,12,0,0,0,20,96v64a12,12,0,0,0,12,12H78.63l70.91,55.16A4.07,4.07,0,0,0,152,228a3.92,3.92,0,0,0,1.76-.41A4,4,0,0,0,156,224V32A4,4,0,0,0,153.76,28.41ZM28,160V96a4,4,0,0,1,4-4H76v72H32A4,4,0,0,1,28,160Zm120,55.82L84,166V90l64-49.78Zm47-111.61a36,36,0,0,1,0,47.59,4,4,0,1,1-6-5.3,28,28,0,0,0,0-37,4,4,0,0,1,6-5.28ZM244,128a75.88,75.88,0,0,1-19.35,50.67,4,4,0,0,1-6-5.34,68,68,0,0,0,0-90.66,4,4,0,0,1,6-5.34A75.88,75.88,0,0,1,244,128Z"}))]]),r=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:m}));r.displayName="SpeakerHighIcon";let Z=r},60525:(e,a,t)=>{t.d(a,{A:()=>n});var l=t(80351);let n=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M176.49,95.51a12,12,0,0,1,0,17l-56,56a12,12,0,0,1-17,0l-24-24a12,12,0,1,1,17-17L112,143l47.51-47.52A12,12,0,0,1,176.49,95.51ZM236,128A108,108,0,1,1,128,20,108.12,108.12,0,0,1,236,128Zm-24,0a84,84,0,1,0-84,84A84.09,84.09,0,0,0,212,128Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),l.createElement("path",{d:"M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm45.66,85.66-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35a8,8,0,0,1,11.32,11.32Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M172.24,99.76a6,6,0,0,1,0,8.48l-56,56a6,6,0,0,1-8.48,0l-24-24a6,6,0,0,1,8.48-8.48L112,151.51l51.76-51.75A6,6,0,0,1,172.24,99.76ZM230,128A102,102,0,1,1,128,26,102.12,102.12,0,0,1,230,128Zm-12,0a90,90,0,1,0-90,90A90.1,90.1,0,0,0,218,128Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M170.83,101.17a4,4,0,0,1,0,5.66l-56,56a4,4,0,0,1-5.66,0l-24-24a4,4,0,0,1,5.66-5.66L112,154.34l53.17-53.17A4,4,0,0,1,170.83,101.17ZM228,128A100,100,0,1,1,128,28,100.11,100.11,0,0,1,228,128Zm-8,0a92,92,0,1,0-92,92A92.1,92.1,0,0,0,220,128Z"}))]])},60709:(e,a,t)=>{t.d(a,{A:()=>n});var l=t(80351);let n=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M240.26,186.1,152.81,34.23h0a28.74,28.74,0,0,0-49.62,0L15.74,186.1a27.45,27.45,0,0,0,0,27.71A28.31,28.31,0,0,0,40.55,228h174.9a28.31,28.31,0,0,0,24.79-14.19A27.45,27.45,0,0,0,240.26,186.1Zm-20.8,15.7a4.46,4.46,0,0,1-4,2.2H40.55a4.46,4.46,0,0,1-4-2.2,3.56,3.56,0,0,1,0-3.73L124,46.2a4.77,4.77,0,0,1,8,0l87.44,151.87A3.56,3.56,0,0,1,219.46,201.8ZM116,136V104a12,12,0,0,1,24,0v32a12,12,0,0,1-24,0Zm28,40a16,16,0,1,1-16-16A16,16,0,0,1,144,176Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M215.46,216H40.54C27.92,216,20,202.79,26.13,192.09L113.59,40.22c6.3-11,22.52-11,28.82,0l87.46,151.87C236,202.79,228.08,216,215.46,216Z",opacity:"0.2"}),l.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM120,104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm8,88a12,12,0,1,1,12-12A12,12,0,0,1,128,192Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M235.07,189.09,147.61,37.22h0a22.75,22.75,0,0,0-39.22,0L20.93,189.09a21.53,21.53,0,0,0,0,21.72A22.35,22.35,0,0,0,40.55,222h174.9a22.35,22.35,0,0,0,19.6-11.19A21.53,21.53,0,0,0,235.07,189.09ZM224.66,204.8a10.46,10.46,0,0,1-9.21,5.2H40.55a10.46,10.46,0,0,1-9.21-5.2,9.51,9.51,0,0,1,0-9.72L118.79,43.21a10.75,10.75,0,0,1,18.42,0l87.46,151.87A9.51,9.51,0,0,1,224.66,204.8ZM122,144V104a6,6,0,0,1,12,0v40a6,6,0,0,1-12,0Zm16,36a10,10,0,1,1-10-10A10,10,0,0,1,138,180Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M233.34,190.09,145.88,38.22h0a20.75,20.75,0,0,0-35.76,0L22.66,190.09a19.52,19.52,0,0,0,0,19.71A20.36,20.36,0,0,0,40.54,220H215.46a20.36,20.36,0,0,0,17.86-10.2A19.52,19.52,0,0,0,233.34,190.09ZM226.4,205.8a12.47,12.47,0,0,1-10.94,6.2H40.54a12.47,12.47,0,0,1-10.94-6.2,11.45,11.45,0,0,1,0-11.72L117.05,42.21a12.76,12.76,0,0,1,21.9,0L226.4,194.08A11.45,11.45,0,0,1,226.4,205.8ZM124,144V104a4,4,0,0,1,8,0v40a4,4,0,0,1-8,0Zm12,36a8,8,0,1,1-8-8A8,8,0,0,1,136,180Z"}))]])},63428:(e,a,t)=>{t.d(a,{a:()=>Z});var l=t(80351),n=t(16763),m=t(91692);let r=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:m.A}));r.displayName="CaretDownIcon";let Z=r},64178:(e,a,t)=>{t.d(a,{r:()=>Z});var l=t(80351),n=t(16763),m=t(60525);let r=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:m.A}));r.displayName="CheckCircleIcon";let Z=r},68269:(e,a,t)=>{t.d(a,{N:()=>Z});var l=t(80351),n=t(16763),m=t(60709);let r=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:m.A}));r.displayName="WarningIcon";let Z=r},80767:(e,a,t)=>{t.d(a,{A:()=>n});var l=t(80351);let n=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M228,128a12,12,0,0,1-12,12H40a12,12,0,0,1,0-24H216A12,12,0,0,1,228,128ZM40,76H216a12,12,0,0,0,0-24H40a12,12,0,0,0,0,24ZM216,180H40a12,12,0,0,0,0,24H216a12,12,0,0,0,0-24Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216,64V192H40V64Z",opacity:"0.2"}),l.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM40,72H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16ZM216,184H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM192,184H64a8,8,0,0,1,0-16H192a8,8,0,0,1,0,16Zm0-48H64a8,8,0,0,1,0-16H192a8,8,0,0,1,0,16Zm0-48H64a8,8,0,0,1,0-16H192a8,8,0,0,1,0,16Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M222,128a6,6,0,0,1-6,6H40a6,6,0,0,1,0-12H216A6,6,0,0,1,222,128ZM40,70H216a6,6,0,0,0,0-12H40a6,6,0,0,0,0,12ZM216,186H40a6,6,0,0,0,0,12H216a6,6,0,0,0,0-12Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM40,72H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16ZM216,184H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M220,128a4,4,0,0,1-4,4H40a4,4,0,0,1,0-8H216A4,4,0,0,1,220,128ZM40,68H216a4,4,0,0,0,0-8H40a4,4,0,0,0,0,8ZM216,188H40a4,4,0,0,0,0,8H216a4,4,0,0,0,0-8Z"}))]])},85319:(e,a,t)=>{t.d(a,{B:()=>Z});var l=t(80351),n=t(16763),m=t(80767);let r=l.forwardRef((e,a)=>l.createElement(n.A,{ref:a,...e,weights:m.A}));r.displayName="ListIcon";let Z=r},91692:(e,a,t)=>{t.d(a,{A:()=>n});var l=t(80351);let n=new Map([["bold",l.createElement(l.Fragment,null,l.createElement("path",{d:"M216.49,104.49l-80,80a12,12,0,0,1-17,0l-80-80a12,12,0,0,1,17-17L128,159l71.51-71.52a12,12,0,0,1,17,17Z"}))],["duotone",l.createElement(l.Fragment,null,l.createElement("path",{d:"M208,96l-80,80L48,96Z",opacity:"0.2"}),l.createElement("path",{d:"M215.39,92.94A8,8,0,0,0,208,88H48a8,8,0,0,0-5.66,13.66l80,80a8,8,0,0,0,11.32,0l80-80A8,8,0,0,0,215.39,92.94ZM128,164.69,67.31,104H188.69Z"}))],["fill",l.createElement(l.Fragment,null,l.createElement("path",{d:"M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,48,88H208a8,8,0,0,1,5.66,13.66Z"}))],["light",l.createElement(l.Fragment,null,l.createElement("path",{d:"M212.24,100.24l-80,80a6,6,0,0,1-8.48,0l-80-80a6,6,0,0,1,8.48-8.48L128,167.51l75.76-75.75a6,6,0,0,1,8.48,8.48Z"}))],["regular",l.createElement(l.Fragment,null,l.createElement("path",{d:"M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z"}))],["thin",l.createElement(l.Fragment,null,l.createElement("path",{d:"M210.83,98.83l-80,80a4,4,0,0,1-5.66,0l-80-80a4,4,0,0,1,5.66-5.66L128,170.34l77.17-77.17a4,4,0,1,1,5.66,5.66Z"}))]])}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5575],{13748:(e,t,a)=>{a.d(t,{default:()=>i});var s=a(48503),n=a(80351),l=a(85347),r=a(71552);function i({steps:e}){let[t,a]=(0,n.useState)(!1);if(0===e.length)return null;let d=`${e.length} ${1===e.length?"step":"steps"}`;return(0,s.jsxs)("div",{className:"overflow-hidden rounded-xl border border-rule-2 bg-paper",children:[(0,s.jsxs)(r.A,{open:t,onClick:()=>a(e=>!e),chevron:"end",inset:"tight",className:"h-[36px] gap-2.5",children:[(0,s.jsx)(l.R,{size:14,className:"shrink-0 text-ink-4","aria-hidden":!0}),(0,s.jsx)("span",{className:"shrink-0 text-body-13 text-feed-reasoning",children:"Reasoning"}),(0,s.jsx)("span",{className:"ml-auto truncate text-mono-11 text-feed-metric",children:d})]}),t&&(0,s.jsx)("ul",{className:"border-t border-rule-2 py-1",children:e.map((e,t)=>(0,s.jsx)("li",{className:"px-4 py-2 text-body-12 text-feed-reasoning whitespace-pre-wrap break-words",children:e},t))})]})}},31288:(e,t,a)=>{a.d(t,{default:()=>r});var s=a(48503),n=a(80351),l=a(71552);function r({label:e,avatar:t,title:a,ok:i,aside:d,children:o}){let[c,h]=(0,n.useState)(!1);return(0,s.jsxs)("div",{"data-delegation":"",children:[(0,s.jsx)("p",{className:"mb-1.5 text-mono-11-caps text-ok",children:e}),(0,s.jsxs)("div",{className:"overflow-hidden rounded-xl border border-ok/25 bg-paper",children:[(0,s.jsxs)(l.A,{open:c,onClick:()=>h(e=>!e),inset:"tight",className:"h-[40px]",children:[t,(0,s.jsx)("span",{className:"min-w-0 flex-1 truncate text-left text-body-13 text-ink",children:a}),(0,s.jsx)("span",{"data-outcome":i?"ok":"failed",className:`h-1.5 w-1.5 shrink-0 rounded-full ${i?"bg-ok":"bg-err"}`}),void 0!==d&&""!==d&&(0,s.jsx)("span",{className:"shrink-0 text-mono-11 text-ink-4",children:d})]}),c&&(0,s.jsx)("div",{className:"border-t border-rule-2",children:o})]})]})}},41022:(e,t,a)=>{a.d(t,{default:()=>r});var s=a(48503),n=a(80351),l=a(71552);function r({head:e,body:t}){let[a,i]=(0,n.useState)(!1);return(0,s.jsxs)("div",{"data-delegation":"",className:"overflow-hidden rounded-xl border border-rule-2 bg-paper",children:[(0,s.jsx)(l.A,{open:a,onClick:()=>i(e=>!e),inset:"tight",className:"h-[46px] gap-2.5",children:e}),a&&(0,s.jsx)("div",{className:"border-t border-rule-2",children:t})]})}},48543:(e,t,a)=>{a.d(t,{default:()=>c});var s=a(48503),n=a(80351),l=a(73573),r=a(68926),i=a(42106),d=a(12871),o=a(18377);function c({prompt:e,options:t,question:a}){let[h,x]=(0,n.useTransition)(),m=(0,l.useRouter)(),{refresh:u}=(0,o.e)(),p=a?.status??null,f=a?.answer??null,k="pending"===p&&null!==a;return(0,s.jsxs)("div",{className:"rounded-xl border border-run bg-canvas px-4 py-3.5",children:[(0,s.jsxs)("div",{className:"flex items-start gap-3",children:[(0,s.jsx)("div",{className:"min-w-0 flex-1 text-medium-14 text-ink",children:e}),k&&(0,s.jsxs)("span",{className:"flex shrink-0 items-center gap-1.5",children:[(0,s.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-run"}),(0,s.jsx)("span",{className:"text-mono-11-caps text-run",children:"Waiting"})]}),null!==f&&(0,s.jsx)("span",{className:"shrink-0 text-mono-11-caps text-ok",children:"Answered"})]}),k?(0,s.jsx)("div",{className:"mt-3.5 flex flex-wrap gap-2",children:t.map(e=>(0,s.jsx)(d.A,{variant:"neutral",size:"sm",onClick:()=>{a&&x(async()=>{let t=await (0,i.C)({approvalRequestId:a.approvalRequestId,decision:"approve",answer:e});t.ok?(r.oR.success(`Answered: ${e}`),m.refresh(),await u()):r.oR.error(t.message)})},disabled:h,children:e},e))}):(0,s.jsx)("div",{className:"mt-3.5 flex flex-wrap items-center gap-2",children:t.map(e=>e===f?(0,s.jsxs)("span",{className:"inline-flex h-[30px] items-center rounded-lg bg-ok-bg px-3.5 text-medium-13 text-ok",children:["✓ ",e]},e):(0,s.jsx)("span",{className:"text-body-12 text-ink-4",children:e},e))}),"rejected"===p&&(0,s.jsxs)("p",{className:"mt-3 text-body-12 text-ink-3",children:["Declined",a?.notes?` \xb7 ${a.notes}`:""]}),null===a&&(0,s.jsx)("p",{className:"mt-3 text-body-12 text-ink-4",children:"Answer it from the Approvals page."})]})}},50571:(e,t,a)=>{a.d(t,{A:()=>n});var s=a(80351);let n=new Map([["bold",s.createElement(s.Fragment,null,s.createElement("path",{d:"M199,125.31l-49.88-18.39L130.69,57a19.92,19.92,0,0,0-37.38,0L74.92,106.92,25,125.31a19.92,19.92,0,0,0,0,37.38l49.88,18.39L93.31,231a19.92,19.92,0,0,0,37.38,0l18.39-49.88L199,162.69a19.92,19.92,0,0,0,0-37.38Zm-63.38,35.16a12,12,0,0,0-7.11,7.11L112,212.28l-16.47-44.7a12,12,0,0,0-7.11-7.11L43.72,144l44.7-16.47a12,12,0,0,0,7.11-7.11L112,75.72l16.47,44.7a12,12,0,0,0,7.11,7.11L180.28,144ZM140,40a12,12,0,0,1,12-12h12V16a12,12,0,0,1,24,0V28h12a12,12,0,0,1,0,24H188V64a12,12,0,0,1-24,0V52H152A12,12,0,0,1,140,40ZM252,88a12,12,0,0,1-12,12h-4v4a12,12,0,0,1-24,0v-4h-4a12,12,0,0,1,0-24h4V72a12,12,0,0,1,24,0v4h4A12,12,0,0,1,252,88Z"}))],["duotone",s.createElement(s.Fragment,null,s.createElement("path",{d:"M194.82,151.43l-55.09,20.3-20.3,55.09a7.92,7.92,0,0,1-14.86,0l-20.3-55.09-55.09-20.3a7.92,7.92,0,0,1,0-14.86l55.09-20.3,20.3-55.09a7.92,7.92,0,0,1,14.86,0l20.3,55.09,55.09,20.3A7.92,7.92,0,0,1,194.82,151.43Z",opacity:"0.2"}),s.createElement("path",{d:"M197.58,129.06,146,110l-19-51.62a15.92,15.92,0,0,0-29.88,0L78,110l-51.62,19a15.92,15.92,0,0,0,0,29.88L78,178l19,51.62a15.92,15.92,0,0,0,29.88,0L146,178l51.62-19a15.92,15.92,0,0,0,0-29.88ZM137,164.22a8,8,0,0,0-4.74,4.74L112,223.85,91.78,169A8,8,0,0,0,87,164.22L32.15,144,87,123.78A8,8,0,0,0,91.78,119L112,64.15,132.22,119a8,8,0,0,0,4.74,4.74L191.85,144ZM144,40a8,8,0,0,1,8-8h16V16a8,8,0,0,1,16,0V32h16a8,8,0,0,1,0,16H184V64a8,8,0,0,1-16,0V48H152A8,8,0,0,1,144,40ZM248,88a8,8,0,0,1-8,8h-8v8a8,8,0,0,1-16,0V96h-8a8,8,0,0,1,0-16h8V72a8,8,0,0,1,16,0v8h8A8,8,0,0,1,248,88Z"}))],["fill",s.createElement(s.Fragment,null,s.createElement("path",{d:"M208,144a15.78,15.78,0,0,1-10.42,14.94L146,178l-19,51.62a15.92,15.92,0,0,1-29.88,0L78,178l-51.62-19a15.92,15.92,0,0,1,0-29.88L78,110l19-51.62a15.92,15.92,0,0,1,29.88,0L146,110l51.62,19A15.78,15.78,0,0,1,208,144ZM152,48h16V64a8,8,0,0,0,16,0V48h16a8,8,0,0,0,0-16H184V16a8,8,0,0,0-16,0V32H152a8,8,0,0,0,0,16Zm88,32h-8V72a8,8,0,0,0-16,0v8h-8a8,8,0,0,0,0,16h8v8a8,8,0,0,0,16,0V96h8a8,8,0,0,0,0-16Z"}))],["light",s.createElement(s.Fragment,null,s.createElement("path",{d:"M196.89,130.94,144.4,111.6,125.06,59.11a13.92,13.92,0,0,0-26.12,0L79.6,111.6,27.11,130.94a13.92,13.92,0,0,0,0,26.12L79.6,176.4l19.34,52.49a13.92,13.92,0,0,0,26.12,0L144.4,176.4l52.49-19.34a13.92,13.92,0,0,0,0-26.12Zm-4.15,14.86-55.08,20.3a6,6,0,0,0-3.56,3.56l-20.3,55.08a1.92,1.92,0,0,1-3.6,0L89.9,169.66a6,6,0,0,0-3.56-3.56L31.26,145.8a1.92,1.92,0,0,1,0-3.6l55.08-20.3a6,6,0,0,0,3.56-3.56l20.3-55.08a1.92,1.92,0,0,1,3.6,0l20.3,55.08a6,6,0,0,0,3.56,3.56l55.08,20.3a1.92,1.92,0,0,1,0,3.6ZM146,40a6,6,0,0,1,6-6h18V16a6,6,0,0,1,12,0V34h18a6,6,0,0,1,0,12H182V64a6,6,0,0,1-12,0V46H152A6,6,0,0,1,146,40ZM246,88a6,6,0,0,1-6,6H230v10a6,6,0,0,1-12,0V94H208a6,6,0,0,1,0-12h10V72a6,6,0,0,1,12,0V82h10A6,6,0,0,1,246,88Z"}))],["regular",s.createElement(s.Fragment,null,s.createElement("path",{d:"M197.58,129.06,146,110l-19-51.62a15.92,15.92,0,0,0-29.88,0L78,110l-51.62,19a15.92,15.92,0,0,0,0,29.88L78,178l19,51.62a15.92,15.92,0,0,0,29.88,0L146,178l51.62-19a15.92,15.92,0,0,0,0-29.88ZM137,164.22a8,8,0,0,0-4.74,4.74L112,223.85,91.78,169A8,8,0,0,0,87,164.22L32.15,144,87,123.78A8,8,0,0,0,91.78,119L112,64.15,132.22,119a8,8,0,0,0,4.74,4.74L191.85,144ZM144,40a8,8,0,0,1,8-8h16V16a8,8,0,0,1,16,0V32h16a8,8,0,0,1,0,16H184V64a8,8,0,0,1-16,0V48H152A8,8,0,0,1,144,40ZM248,88a8,8,0,0,1-8,8h-8v8a8,8,0,0,1-16,0V96h-8a8,8,0,0,1,0-16h8V72a8,8,0,0,1,16,0v8h8A8,8,0,0,1,248,88Z"}))],["thin",s.createElement(s.Fragment,null,s.createElement("path",{d:"M196.2,132.81l-53.36-19.65L123.19,59.8a11.93,11.93,0,0,0-22.38,0L81.16,113.16,27.8,132.81a11.93,11.93,0,0,0,0,22.38l53.36,19.65,19.65,53.36a11.93,11.93,0,0,0,22.38,0l19.65-53.36,53.36-19.65a11.93,11.93,0,0,0,0-22.38Zm-2.77,14.87L138.35,168a4,4,0,0,0-2.37,2.37l-20.3,55.08a3.92,3.92,0,0,1-7.36,0L88,170.35A4,4,0,0,0,85.65,168l-55.08-20.3a3.92,3.92,0,0,1,0-7.36L85.65,120A4,4,0,0,0,88,117.65l20.3-55.08a3.92,3.92,0,0,1,7.36,0L136,117.65a4,4,0,0,0,2.37,2.37l55.08,20.3a3.92,3.92,0,0,1,0,7.36ZM148,40a4,4,0,0,1,4-4h20V16a4,4,0,0,1,8,0V36h20a4,4,0,0,1,0,8H180V64a4,4,0,0,1-8,0V44H152A4,4,0,0,1,148,40Zm96,48a4,4,0,0,1-4,4H228v12a4,4,0,0,1-8,0V92H208a4,4,0,0,1,0-8h12V72a4,4,0,0,1,8,0V84h12A4,4,0,0,1,244,88Z"}))]])},63416:(e,t,a)=>{a.d(t,{default:()=>r});var s=a(48503),n=a(80351),l=a(71552);function r({exchanges:e}){let[t,a]=(0,n.useState)(!1);return(0,s.jsxs)("div",{className:"mt-2 max-w-[720px] overflow-hidden rounded-[10px] border border-dashed border-rule-2 bg-canvas",children:[(0,s.jsxs)(l.A,{open:t,onClick:()=>a(e=>!e),inset:"tight",insetY:"tight",children:[(0,s.jsx)("span",{className:"text-medium-13 text-ink-3",children:"Earlier in this conversation"}),(0,s.jsxs)("span",{className:"ml-auto text-mono-11 text-ink-4",children:[e.length," ",1===e.length?"message":"messages"]})]}),t&&(0,s.jsx)("ul",{className:"border-t border-rule-2 py-2",children:e.map((e,t)=>(0,s.jsxs)("li",{className:"flex items-start gap-3 px-4 py-1.5 text-body-12 text-ink-3",children:[(0,s.jsx)("span",{className:"w-[52px] shrink-0 text-mono-11 text-ink-4",children:"user"===e.role?"you":"agent"}),(0,s.jsx)("span",{className:"min-w-0 flex-1 whitespace-pre-wrap break-words",children:e.text})]},t))})]})}},76353:(e,t,a)=>{a.d(t,{default:()=>r});var s=a(48503),n=a(80351),l=a(71552);function r({text:e}){let[t,a]=(0,n.useState)(!1);return""===e.trim()?null:(0,s.jsxs)("div",{className:"mt-3",children:[(0,s.jsxs)(l.A,{open:t,onClick:()=>a(e=>!e),inset:"none",insetY:"default",className:"h-auto",children:[(0,s.jsx)("span",{className:"shrink-0 text-mono-11 text-ink-4",children:"Handed to the work"}),!t&&(0,s.jsxs)("span",{className:"min-w-0 flex-1 truncate text-left text-mono-11 text-ink-4",children:["\xb7 ",e]})]}),t&&(0,s.jsx)("p",{className:"mt-1.5 pl-[22px] text-mono-11 whitespace-pre-wrap break-words text-ink-3",children:e})]})}},78854:(e,t,a)=>{a.d(t,{FileName:()=>f,LineDelta:()=>h,default:()=>k});var s=a(48503),n=a(80351),l=a(71552),r=a(13316),i=a(2439);let d=(0,i.createServerReference)("40b59edfff01a23ec32a83e0fe0559f3c6446581ca",i.callServer,void 0,i.findSourceMapURL,"getFileDiffAction");var o=a(35816);let c={no_checkpoint:"written before snapshots were kept",path_unresolved:"file could not be located",workspace_unreachable:"folder no longer reachable",checkpoint_store_unreadable:"snapshot history could not be read",not_in_snapshot:"file is ignored by the folder's .gitignore"};function h({counts:e}){return null===e||0===e.added&&0===e.removed?null:(0,s.jsxs)("span",{className:"shrink-0 text-mono-11",children:[e.removed>0&&(0,s.jsxs)("span",{className:"text-err",children:["−",e.removed]}),e.removed>0&&e.added>0&&" ",e.added>0&&(0,s.jsxs)("span",{className:"text-ok",children:["+",e.added]})]})}let x={"+":"text-ok","-":"text-err"," ":"text-ink-3","@":"text-ink-4"};function m({lines:e,truncated:t,truncatedNote:a="… truncated"}){return(0,s.jsxs)("div",{className:"border-t border-rule-2 bg-sidebar px-4 py-2",children:[(0,s.jsx)("pre",{className:"max-h-80 overflow-auto text-mono-11 whitespace-pre-wrap break-words",children:e.map((e,t)=>(0,s.jsx)("div",{className:x[e.kind],"data-diff":e.kind,children:"@"===e.kind?e.text:`${e.kind}${e.text}`},t))}),t&&(0,s.jsx)("p",{className:"pt-1 text-mono-11 text-ink-4",children:a})]})}function u({children:e}){return(0,s.jsx)("p",{className:"border-t border-rule-2 bg-sidebar px-4 py-2 text-mono-11 text-ink-4",children:e})}function p({view:e}){switch(e.kind){case"diff":return(0,s.jsx)(m,{lines:function(e){let t=[];for(let a of e.split("\n"))if(!(a.startsWith("diff --git")||a.startsWith("index ")||a.startsWith("--- ")||a.startsWith("+++ ")||a.startsWith("new file mode")||a.startsWith("deleted file mode")||a.startsWith("similarity index")||a.startsWith("rename "))){if(a.startsWith("@@")){t.push({kind:"@",text:a});continue}if(""!==a||0!==t.length)if(a.startsWith("+"))t.push({kind:"+",text:a.slice(1)});else if(a.startsWith("-"))t.push({kind:"-",text:a.slice(1)});else{if(a.startsWith("\\"))continue;t.push({kind:" ",text:a.startsWith(" ")?a.slice(1):a})}}return t}(e.text),truncated:e.truncated});case"fragment":{let t=(0,r.CNy)(e.oldString,e.newString);return(0,s.jsx)(m,{lines:t.lines,truncated:t.truncated,truncatedNote:"diff simplified: too long to compare line by line"})}case"unchanged":return(0,s.jsx)(u,{children:"No change"});case"binary":return(0,s.jsx)(u,{children:"Binary file"});case"unavailable":return(0,s.jsxs)(u,{children:["No diff: ",c[e.reason]??e.reason]})}}function f({path:e}){let t=e.lastIndexOf("/"),a=-1===t?e:e.slice(t+1),n=-1===t?"":e.slice(0,t+1);return(0,s.jsxs)("span",{className:"flex min-w-0 flex-1 items-baseline gap-1.5 text-left",title:e,children:[(0,s.jsx)("span",{className:"shrink-0 text-mono-12 text-ink",children:a}),""!==n&&(0,s.jsx)("span",{className:"min-w-0 truncate text-mono-11 text-ink-4",dir:"rtl",children:(0,s.jsx)("bdi",{dir:"ltr",children:n})})]})}function k({jobId:e,toolCallId:t,path:a,action:r,lineCounts:i=null,bytes:c,detail:x,preview:m}){let[j,g]=(0,n.useState)(!1),[b,N]=(0,n.useState)(null),[v,w]=(0,n.useState)(null),[L,V]=(0,n.useState)(!1);return(0,s.jsxs)("li",{className:"border-t border-rule-2 first:border-t-0",children:[(0,s.jsxs)(l.A,{open:j,onClick:()=>{let s=!j;g(s),s&&null===b&&!L&&(V(!0),w(null),d({jobId:e,toolCallId:t,path:a}).then(e=>{e.ok?N(e.data):w(e.code)}).catch(()=>w("unreachable")).finally(()=>V(!1)))},inset:"tight",className:"h-[42px]",children:[(0,s.jsx)("span",{className:`h-1.5 w-1.5 shrink-0 rounded-full ${o.v[r]??"bg-ink-4"}`}),(0,s.jsx)(f,{path:a}),(0,s.jsx)(h,{counts:i}),void 0!==c&&(0,s.jsx)("span",{className:"shrink-0 text-mono-11 text-ink-4",children:c}),void 0!==x&&(0,s.jsx)("span",{className:"max-w-[40%] shrink-0 truncate text-mono-11 text-ink-4",children:x})]}),m,j&&L&&(0,s.jsx)(u,{children:"Loading the diff…"}),j&&!L&&null!==v&&(0,s.jsxs)(u,{children:["No diff: ",v]}),j&&!L&&null!==b&&(0,s.jsx)(p,{view:b})]})}},81348:(e,t,a)=>{a.d(t,{default:()=>d});var s=a(48503),n=a(80351),l=a(71552),r=a(1678);function i(e,t,a){return`${e} ${1===e?t:a}`}function d({jobId:e,summary:t,defaultOpen:a=!1,children:o}){let c,[h,x]=(0,n.useState)(a),m=(c=[],t.tools>0&&c.push(i(t.tools,"tool","tools")),t.delegations>0&&c.push(i(t.delegations,"delegation","delegations")),t.modelCalls>0&&c.push(i(t.modelCalls,"model call","model calls")),null!==t.durationMs&&t.durationMs>0&&c.push((0,r._V)(t.durationMs)),null!==t.costUsd&&t.costUsd>0&&c.push((0,r.BD)(t.costUsd)),c);return(0,s.jsxs)("div",{className:"mt-3",children:[(0,s.jsx)("div",{className:"overflow-hidden rounded-md border border-rule-2 bg-canvas",children:(0,s.jsxs)(l.A,{open:h,onClick:()=>x(e=>!e),testId:`run-summary-${e}`,inset:"tight",className:"h-8 gap-2",children:[m.length>0&&(0,s.jsx)("span",{className:"min-w-0 flex-1 truncate text-mono-12 text-feed-metric",children:m.join(" \xb7 ")}),(0,s.jsx)("span",{className:"ml-auto shrink-0 text-micro-10 text-ink-4",children:h?"Hide the work":"Show the work"})]})}),h&&o]})}},85347:(e,t,a)=>{a.d(t,{R:()=>i});var s=a(80351),n=a(16763),l=a(50571);let r=s.forwardRef((e,t)=>s.createElement(n.A,{ref:t,...e,weights:l.A}));r.displayName="SparkleIcon";let i=r}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[560],{5079:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(48503),l=r(80351),a=r(63428),s=r(5829);let o=(0,l.forwardRef)(function({label:e,error:t,id:r,className:o="",containerClassName:i="",children:c,...d},u){let x=(0,l.useId)(),p=r??x,h=(0,l.useRef)(null);return(0,l.useImperativeHandle)(u,()=>h.current,[]),(0,l.useEffect)(()=>{h.current&&function(e){if(CSS.supports("appearance","base-select"))for(let t of e.querySelectorAll("optgroup")){let e=t.getAttribute("label")??"",r=t.querySelector(":scope > legend");if(!r){if(e){let r=document.createElement("legend");r.textContent=e,t.prepend(r)}continue}r.textContent!==e&&(r.textContent=e),t.firstElementChild!==r&&t.prepend(r)}}(h.current)}),(0,n.jsxs)("div",{className:i,children:[e&&(0,n.jsx)(s.A,{htmlFor:p,children:e}),(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)("select",{id:p,ref:h,"aria-invalid":!!t||void 0,className:`peer h-8.5 w-full rounded-md border bg-hover py-1.5 pr-8 pl-3 text-body-14 leading-5! text-ink transition-colors required:invalid:text-ink-4 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 ${t?"border-err focus:border-err":"border-rule focus:border-ink-3"} ${o}`,...d,children:c}),(0,n.jsx)(a.a,{size:16,"aria-hidden":!0,className:"pointer-events-none absolute top-4.25 right-2 -translate-y-1/2 text-ink-3 peer-disabled:opacity-50"})]}),t&&(0,n.jsx)("p",{className:"mt-1 text-xs text-err",children:t})]})})},21166:(e,t,r)=>{r.d(t,{A:()=>x});var n=r(48503),l=r(80351),a=r(86045),s=r(88142);let o=Array.from({length:42},(e,t)=>{let r=String(t+1).padStart(2,"0");return{id:`avatar-${r}`,url:`/avatars/avatar-${r}.png`}});var i=r(45070),c=r(12871),d=r(31093);function u({selected:e,onClick:t,label:r,children:l,className:a=""}){return(0,n.jsx)("button",{type:"button",onClick:t,title:r,"aria-label":r,"aria-pressed":e,className:`flex aspect-square items-center justify-center rounded-lg p-1 transition-all ${e?"bg-ink/10 ring-2 ring-emerald-400":"bg-hover ring-1 ring-transparent hover:bg-hover hover:ring-neutral-700"} ${a}`,children:l})}function x({value:e,onChange:t,label:r="Avatar"}){let[u,m]=(0,l.useState)(!1),[b,f]=(0,l.useState)(!1);return(0,l.useEffect)(()=>{f(!0)},[]),(0,a.Z4)(u,()=>m(!1)),(0,n.jsxs)("div",{children:[r&&(0,n.jsx)("label",{className:"block text-xs text-ink-3 mb-1",children:r}),(0,n.jsx)(d.A,{onClick:()=>m(!0),className:"group max-w-xs gap-3 rounded-md border border-rule bg-hover px-3 py-2 hover:border-rule",icon:(0,n.jsx)(p,{url:e,size:36}),title:e?e.split("/").pop()?.replace(".png",""):"No avatar",titleClassName:"text-sm text-ink",subtitle:`Click to ${e?"change":"pick"}`,subtitleClassName:"text-body-12 text-ink-3"}),b&&u&&(0,s.createPortal)((0,n.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":"Pick an avatar",onClick:()=>m(!1),className:"fixed inset-0 z-50 bg-black/70 backdrop-blur-sm flex items-center justify-center p-4",children:(0,n.jsxs)("div",{onClick:e=>e.stopPropagation(),className:"bg-paper border border-rule-2 rounded-2xl max-w-2xl w-full max-h-[80vh] overflow-y-auto",children:[(0,n.jsxs)("div",{className:"p-5 pb-4",children:[(0,n.jsx)("h3",{className:"text-sm font-semibold text-ink mb-4",children:"Pick an avatar"}),(0,n.jsxs)("div",{className:"grid grid-cols-6 gap-3",children:[(0,n.jsx)(h,{selected:null===e,onClick:()=>void(t(null),m(!1)),label:"None",url:null}),o.map(r=>(0,n.jsx)(h,{selected:e===r.url,onClick:()=>{t(r.url),m(!1)},label:r.id,url:r.url},r.id))]})]}),(0,n.jsx)(i.j,{className:"rounded-b-2xl",children:(0,n.jsx)(c.A,{variant:"neutral",onClick:()=>m(!1),children:"Close"})})]})}),document.body)]})}function p({url:e,size:t=32}){return e?(0,n.jsx)("img",{src:e,alt:"",width:t,height:t,style:{width:t,height:t},className:"rounded-full object-cover border border-rule shrink-0"}):(0,n.jsx)("div",{style:{width:t,height:t},className:"rounded-full bg-hover border border-dashed border-rule text-ink-3 text-xs flex items-center justify-center shrink-0",children:"?"})}function h({selected:e,onClick:t,label:r,url:l}){return(0,n.jsx)(u,{selected:e,onClick:t,label:r,children:(0,n.jsx)(p,{url:l,size:56})})}},25297:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(48503),l=r(19176);let a={sm:{box:"h-6 w-6",text:"text-label-11",px:24},md:{box:"h-[30px] w-[30px]",text:"text-label-11",px:30},lg:{box:"h-[42px] w-[42px]",text:"text-title-15",px:42}};function s({name:e,imageUrl:t,size:r="md",shape:o="round",className:i=""}){let c=a[r],d=`inline-flex shrink-0 items-center justify-center overflow-hidden bg-hover font-mono font-semibold tracking-[0.04em] text-ink-2 ${c.box} ${c.text} ${"round"===o?"rounded-full":"rounded-[8px]"} ${i}`;return t?(0,n.jsx)("span",{className:d,children:(0,n.jsx)(l.default,{src:t,alt:e,width:c.px,height:c.px,className:"h-full w-full object-cover"})}):(0,n.jsx)("span",{className:d,children:function(e){let t=e.trim();if(!t)return"?";let r=t.split(/\s+/);return r.length>=2?((r[0][0]??"")+(r[1][0]??"")).toUpperCase():t.slice(0,2).toUpperCase()}(e)})}},31093:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(48503);function l({icon:e,title:t,subtitle:r,titleClassName:a="text-medium-12 leading-tight! text-ink",subtitleClassName:s="font-mono text-legacy-10 leading-tight! text-ink-3",className:o="",type:i="button",...c}){return(0,n.jsxs)("button",{type:i,className:`flex w-full items-center text-left transition-colors ${o}`,...c,children:[(0,n.jsx)("span",{className:"shrink-0",children:e}),(0,n.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,n.jsx)("span",{className:`block truncate ${a}`,children:t}),r&&(0,n.jsx)("span",{className:`block truncate ${s}`,children:r})]})]})}},35848:(e,t,r)=>{r.d(t,{A:()=>o,m:()=>i});var n=r(48503);let l={yes:"bg-ok-bg text-ok",no:"bg-warn-bg text-warn",unknown:"bg-hover text-ink-4"},a={yes:"Tools",no:"No tools",unknown:"Tools ?"},s={yes:"This model can call tools.",no:"This model can't call tools and can't power an agent.",unknown:"Tool support is unknown for this model (not in the curated catalog)."};function o({support:e,className:t=""}){return(0,n.jsx)("span",{title:s[e],className:`inline-flex h-[22px] items-center rounded-[5px] px-2.5 text-medium-12 leading-none! ${l[e]} ${t}`,children:a[e]})}function i({className:e=""}){return(0,n.jsxs)("p",{className:`text-body-12 leading-[1.5]! text-ink-4 ${e}`,children:["Models marked ",(0,n.jsx)("span",{className:"font-medium text-warn",children:"(no tools)"})," can't power an agent."]})}},39382:(e,t,r)=>{r.d(t,{W:()=>l});var n=r(2439);let l=(0,n.createServerReference)("405821e658de13743362db364876ea9dfebb497d8e",n.callServer,void 0,n.findSourceMapURL,"listKeyModelsAction")},64119:(e,t,r)=>{r.d(t,{R:()=>n});function n(e){switch(e){case"openai-compatible":return"Local LLM";case"anthropic":return"Anthropic";case"openai":return"OpenAI";case"ollama":return"Ollama";case"openrouter":return"OpenRouter";case"google":return"Google";case"mistral":return"Mistral";case"groq":return"Groq";case"deepseek":return"DeepSeek";case"minimax":return"MiniMax";case"moonshot":return"Moonshot (Kimi)";default:return e}}},68247:(e,t,r)=>{r.d(t,{f:()=>l});var n=r(2439);let l=(0,n.createServerReference)("40bd44813cc734b76a18cde792ea7fd726b86f8af7",n.callServer,void 0,n.findSourceMapURL,"updateAgentAction")},83047:(e,t,r)=>{r.d(t,{GP:()=>d,In:()=>i,Os:()=>s,W6:()=>l,Xx:()=>o,Z1:()=>n,ah:()=>c,gD:()=>a});let n=["claude-code","codex"];function l(e){return n.includes(e)}let a={"claude-code":"Claude Code",codex:"Codex"},s={"claude-code":"Claude Code — your subscription",codex:"Codex — your subscription"};function o(e){return l(e)?`${a[e]} (subscription)`:null}function i(e){let t=a[e],r=d[e]?"workspace, budget, approvals":"workspace, approvals";return`This agent is driven by the ${t} harness on this machine. Nodal relays its messages and enforces the perimeter (${r}) but does not drive its loop. Runs use your subscription.`}let c={"claude-code":"claude",codex:"codex"},d={"claude-code":!0,codex:!1}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5954],{5079:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(48503),a=n(80351),i=n(63428),s=n(5829);let l=(0,a.forwardRef)(function({label:e,error:t,id:n,className:l="",containerClassName:o="",children:c,...d},u){let m=(0,a.useId)(),h=n??m,x=(0,a.useRef)(null);return(0,a.useImperativeHandle)(u,()=>x.current,[]),(0,a.useEffect)(()=>{x.current&&function(e){if(CSS.supports("appearance","base-select"))for(let t of e.querySelectorAll("optgroup")){let e=t.getAttribute("label")??"",n=t.querySelector(":scope > legend");if(!n){if(e){let n=document.createElement("legend");n.textContent=e,t.prepend(n)}continue}n.textContent!==e&&(n.textContent=e),t.firstElementChild!==n&&t.prepend(n)}}(x.current)}),(0,r.jsxs)("div",{className:o,children:[e&&(0,r.jsx)(s.A,{htmlFor:h,children:e}),(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)("select",{id:h,ref:x,"aria-invalid":!!t||void 0,className:`peer h-8.5 w-full rounded-md border bg-hover py-1.5 pr-8 pl-3 text-body-14 leading-5! text-ink transition-colors required:invalid:text-ink-4 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 ${t?"border-err focus:border-err":"border-rule focus:border-ink-3"} ${l}`,...d,children:c}),(0,r.jsx)(i.a,{size:16,"aria-hidden":!0,className:"pointer-events-none absolute top-4.25 right-2 -translate-y-1/2 text-ink-3 peer-disabled:opacity-50"})]}),t&&(0,r.jsx)("p",{className:"mt-1 text-xs text-err",children:t})]})})},5829:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(48503);function a({children:e,className:t="",...n}){return(0,r.jsx)("label",{className:`block text-xs text-ink-3 mb-1 ${t}`,...n,children:e})}},7576:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(48503),a=n(80351);let i={ink:"accent-ink",agent:"accent-agent-vivid",skill:"accent-skill-vivid",connector:"accent-conn-vivid"};function s({label:e,tone:t="ink",id:n,className:l="",containerClassName:o="",...c}){let d=(0,a.useId)(),u=n??d,m=(0,r.jsx)("input",{id:u,type:"checkbox",className:`h-4 w-4 shrink-0 cursor-pointer rounded border-rule disabled:cursor-not-allowed disabled:opacity-50 ${i[t]} ${l}`,...c});return e?(0,r.jsxs)("label",{htmlFor:u,className:`flex cursor-pointer items-center gap-2 text-sm text-ink ${o}`,children:[m,e]}):(0,r.jsx)("div",{className:o,children:m})}},10664:(e,t,n)=>{"use strict";n.d(t,{O:()=>i});var r=n(48503),a=n(68926);function i({subtitle:e,url:t}){async function n(){try{navigator.clipboard?.writeText?await navigator.clipboard.writeText(t):s(t),a.oR.success("Copied")}catch{try{s(t),a.oR.success("Copied")}catch{a.oR.error("Could not copy")}}}function s(e){let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select();let n=document.execCommand("copy");if(t.remove(),!n)throw Error("copy_failed")}return(0,r.jsxs)("div",{className:"flex items-center gap-3 bg-canvas/40 border border-rule-2 rounded-[9px] px-4 py-3.5 mt-2",children:[(0,r.jsxs)("span",{className:"flex-1 min-w-0",children:[(0,r.jsx)("span",{className:"block text-xs leading-[1.4] text-ink-4",children:e}),(0,r.jsx)("span",{className:"block font-mono text-legacy-14 leading-[1.4]! text-ink tracking-[0.02em] mt-1.5 break-all",children:t})]}),(0,r.jsxs)("button",{type:"button",onClick:n,className:"flex-shrink-0 flex items-center gap-1.5 px-2.5 py-1.5 border border-rule text-ink-3 rounded-[7px] text-xs font-medium hover:border-rule-2 hover:text-ink transition-colors",children:[(0,r.jsxs)("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",className:"w-3.5 h-3.5",children:[(0,r.jsx)("rect",{x:"3",y:"3",width:"8",height:"8",rx:"1"}),(0,r.jsx)("rect",{x:"5",y:"5",width:"8",height:"8",rx:"1"})]}),"Copy"]})]})}},12871:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(48503),a=n(22208),i=n.n(a),s=n(80351);let l={ink:"bg-ink text-canvas border-0 hover:brightness-[0.92]",agent:"bg-agent-vivid text-[#1a2200] border-0 hover:brightness-[0.96]",coral:"bg-skill-vivid text-white border-0 hover:brightness-[0.94]",blue:"bg-conn-vivid text-white border-0 hover:brightness-[0.94]",neutral:"border border-rule-2 bg-paper text-ink hover:bg-hover",danger:"border border-err/30 bg-paper text-err hover:border-err hover:bg-warn-bg"},o=(0,s.forwardRef)(function(e,t){let{children:n,variant:a="ink",size:s="md",className:o=""}=e,c=`inline-flex cursor-pointer items-center justify-center gap-1.5 rounded-md leading-none! transition-[filter,background-color] disabled:pointer-events-none disabled:opacity-40 ${"md"===s?"h-[34px] px-3.5 text-medium-14":"h-[30px] px-3 text-medium-13"} ${l[a]} ${o}`;if("href"in e&&e.href){let{href:a,variant:s,size:l,className:o,children:d,...u}=e;return(0,r.jsx)(i(),{href:a,className:c,ref:t,...u,children:n})}let{variant:d,size:u,className:m,children:h,...x}=e;return(0,r.jsx)("button",{type:"button",className:c,ref:t,...x,children:n})})},17991:(e,t,n)=>{"use strict";n.d(t,{E:()=>c,A:()=>d});var r=n(48503),a=n(80351),i=n(2439);let s=(0,i.createServerReference)("40674cc1e2fe3c23c9110af6336e19eca401c01878",i.callServer,void 0,i.findSourceMapURL,"listAgentNotifyChannelsAction");var l=n(5079),o=n(7576);let c={telegram:"Telegram",discord:"Discord",slack:"Slack"};function d({idPrefix:e,agentId:t,agentName:n,notifyOnSuccess:i,onNotifyOnSuccessChange:u,notifyChannel:m,onNotifyChannelChange:h}){let[x,b]=(0,a.useState)(null);(0,a.useEffect)(()=>{if(!t)return;let e=!1;return s(t).then(n=>{e||b({agentId:t,options:n.ok?n.data:[]})}),()=>{e=!0}},[t]);let f=""!==t&&x?.agentId!==t,v=x?.agentId===t?x.options:[],p=i&&""!==t&&!f&&0===v.length;return(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("label",{className:"flex items-start gap-2.5 rounded-md border border-rule bg-canvas px-3 py-2.5 text-sm",children:[(0,r.jsx)(o.A,{name:"notifyOnSuccess",checked:i,onChange:e=>u(e.target.checked),className:"mt-0.5"}),(0,r.jsxs)("span",{children:[(0,r.jsx)("span",{className:"font-medium text-ink",children:"Notify me when it succeeds"}),(0,r.jsx)("span",{className:"mt-0.5 block text-xs text-ink-3",children:"The agent sends you a short confirmation each time this automation finishes. Requires a connected channel on the agent (message it once so it knows where to reach you)."})]})]}),i&&(p?(0,r.jsxs)("p",{className:"rounded-md border border-warn/30 bg-warn-bg px-3 py-2 text-xs text-warn",children:["⚠️ ",(0,r.jsx)("span",{className:"font-medium",children:n})," has no channel connected, so it can't send you this confirmation. Connect Telegram, Discord, or Slack to this agent first."]}):(0,r.jsxs)(l.A,{id:`${e}-notify-channel`,label:"Notify via",value:m,onChange:e=>h(e.target.value),disabled:f,children:[(0,r.jsx)("option",{value:"",children:"Auto"}),v.map(e=>(0,r.jsx)("option",{value:e,children:c[e]??e},e))]}))]})}},21799:(e,t,n)=>{"use strict";n.d(t,{A:()=>v});var r=n(48503),a=n(80351),i=n(68926),s=n(76089),l=n(94126),o=n(13472),c=n(90368),d=n(2439);let u=(0,d.createServerReference)("60c5a11dbe0ae345299f46dbc72ff4c6002433c064",d.callServer,void 0,d.findSourceMapURL,"toggleWebhookTriggerAction"),m=(0,d.createServerReference)("40077e08787e3e91af3e6c4b6675551bdfa709a668",d.callServer,void 0,d.findSourceMapURL,"rotateWebhookSecretAction");var h=n(42078),x=n(45678),b=n(75551),f=n(12871);function v({webhook:e,onRevealed:t,layout:n="row"}){let[d,p]=(0,a.useTransition)(),[g,k]=(0,a.useState)(!1),[y,j]=(0,a.useState)(!1);function w(){p(async()=>{let t=await u(e.id,!e.active);t.ok?i.oR.success(t.data.active?"Webhook enabled":"Webhook disabled"):i.oR.error(t.message)})}let N=(0,r.jsx)(x.A,{open:g,title:"Rotate webhook secret?",message:"A new URL is generated immediately and the current one stops working. Update the external service before it fires again.",confirmLabel:"Rotate",destructive:!1,onConfirm:function(){k(!1),p(async()=>{let n=await m(e.id);n.ok?(t(e.id,{secret:n.data.secret,path:n.data.path}),i.oR.success("Secret rotated. The old URL no longer works.")):i.oR.error(n.message)})},onCancel:()=>k(!1)});return"page"===n?(0,r.jsxs)("div",{className:"flex items-center gap-2","data-testid":"automation-actions",children:[(0,r.jsx)(f.A,{variant:"ink",onClick:w,disabled:d,children:e.active?"Pause":"Enable"}),(0,r.jsx)(f.A,{variant:"neutral",onClick:()=>k(!0),disabled:d,children:"Rotate secret"}),N]}):(0,r.jsxs)("div",{className:"flex items-center gap-1.5","data-testid":"automation-actions",children:[(0,r.jsx)(b.A,{square:!0,icon:e.active?(0,r.jsx)(s.v,{size:16,weight:"fill"}):(0,r.jsx)(l.j,{size:16,weight:"fill"}),title:e.active?"Pause":"Enable",onClick:w,disabled:d}),(0,r.jsx)(b.A,{square:!0,icon:(0,r.jsx)(o.P,{size:16}),title:"Rotate secret",onClick:()=>k(!0),disabled:d}),(0,r.jsx)(b.A,{square:!0,icon:(0,r.jsx)(c.l,{size:16}),title:"Delete",tone:"danger",onClick:()=>j(!0),disabled:d}),N,(0,r.jsx)(x.A,{open:y,title:"Delete webhook?",message:"This webhook trigger is removed. Any service still posting to its URL will get a 404.",confirmLabel:"Delete",onConfirm:function(){j(!1),p(async()=>{let t=await (0,h.t)(e.id);t.ok?i.oR.success("Webhook deleted"):i.oR.error(t.message)})},onCancel:()=>j(!1)})]})}},28451:(e,t,n)=>{"use strict";n.d(t,{default:()=>y});var r=n(48503),a=n(80351),i=n(68926),s=n(94126),l=n(76089),o=n(24581),c=n(78750),d=n(89466),u=n(90368),m=n(2439);let h=(0,m.createServerReference)("402e215ffe4c1bb27712d811a41e3678275cb8d4e9",m.callServer,void 0,m.findSourceMapURL,"toggleScheduleAction");var x=n(29209);let b=(0,m.createServerReference)("400db61c1f20b646e4757f9f23ff8e503a66a30dd8",m.callServer,void 0,m.findSourceMapURL,"runScheduleNowAction"),f=(0,m.createServerReference)("40ada2e832d9dfce48783bc2039796e4fbb668452e",m.callServer,void 0,m.findSourceMapURL,"duplicateScheduleAction");var v=n(45678),p=n(75551),g=n(12871),k=n(70511);function y({schedule:e,agents:t,layout:n="row"}){let[m,j]=(0,a.useTransition)(),[w,N]=(0,a.useState)(!1),[S,$]=(0,a.useState)(!1);function A(){j(async()=>{let t=await h(e.id);t.ok?i.oR.success(t.data.active?"Schedule enabled":"Schedule disabled"):i.oR.error(t.message)})}function C(){j(async()=>{let t=await b(e.id);t.ok?i.oR.success(`Running "${e.name}" now`):i.oR.error(t.message)})}let R=S?(0,r.jsx)(k.A,{mode:"edit",agents:t,initial:e,onDone:()=>$(!1)}):null,E=(0,r.jsx)(v.A,{open:w,title:"Delete schedule?",message:"This cron schedule will be removed. Past runs are kept for audit.",confirmLabel:"Delete",onConfirm:function(){N(!1),j(async()=>{let t=await (0,x.X)(e.id);t.ok?i.oR.success("Schedule deleted"):i.oR.error(t.message)})},onCancel:()=>N(!1)});return"page"===n?(0,r.jsxs)("div",{className:"flex items-center gap-2","data-testid":"automation-actions",children:[(0,r.jsx)(g.A,{variant:"ink",onClick:C,disabled:m||!e.task,title:e.task?void 0:"No task to run",children:"Run now"}),(0,r.jsx)(g.A,{variant:"neutral",onClick:A,disabled:m,children:e.active?"Pause":"Enable"}),(0,r.jsx)(g.A,{variant:"neutral",onClick:()=>$(!0),disabled:m,children:"Edit"}),R]}):(0,r.jsxs)("div",{className:"flex items-center gap-1.5","data-testid":"automation-actions",children:[(0,r.jsx)(p.A,{square:!0,icon:(0,r.jsx)(s.j,{size:16,weight:"fill"}),title:e.task?"Run now":"No task to run",onClick:C,disabled:m||!e.task}),(0,r.jsx)(p.A,{square:!0,icon:e.active?(0,r.jsx)(l.v,{size:16,weight:"fill"}):(0,r.jsx)(o.N,{size:16,weight:"fill"}),title:e.active?"Pause":"Enable",onClick:A,disabled:m}),(0,r.jsx)(p.A,{square:!0,icon:(0,r.jsx)(c.I,{size:16}),title:"Edit",onClick:()=>$(!0),disabled:m}),(0,r.jsx)(p.A,{square:!0,icon:(0,r.jsx)(d.Q,{size:16}),title:"Duplicate",onClick:function(){j(async()=>{let t=await f(e.id);t.ok?i.oR.success(`Duplicated "${e.name}", paused. Enable it when ready.`):i.oR.error(t.message)})},disabled:m}),(0,r.jsx)(p.A,{square:!0,icon:(0,r.jsx)(u.l,{size:16}),title:"Delete",tone:"danger",onClick:()=>N(!0),disabled:m}),E,R]})}},29209:(e,t,n)=>{"use strict";n.d(t,{X:()=>a});var r=n(2439);let a=(0,r.createServerReference)("402f0aec866b8fcbc614f2ece0e41834a031867e24",r.callServer,void 0,r.findSourceMapURL,"deleteScheduleAction")},42078:(e,t,n)=>{"use strict";n.d(t,{t:()=>a});var r=n(2439);let a=(0,r.createServerReference)("40ba0f5cc7cb94702b4d87594aa509e41c1ce43624",r.callServer,void 0,r.findSourceMapURL,"deleteWebhookTriggerAction")},58823:(e,t,n)=>{"use strict";function r(e){return`${window.location.protocol}//${window.location.hostname}:3001${e}`}n.d(t,{n:()=>r})},60128:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(48503),a=n(64178),i=n(68269),s=n(90566);let l={done:"Done",warn:"Attention",run:"Running",idle:"Idle","lvl-info":"INFO","lvl-ok":"OK","lvl-warn":"WARN","lvl-err":"ERR"},o={done:"bg-ok-bg text-ok",warn:"bg-warn-bg text-warn",run:"bg-run-bg text-run",idle:"bg-black/5 text-ink-3 dark:bg-white/5","lvl-info":"bg-black/5 text-ink-3 dark:bg-white/5","lvl-ok":"bg-ok-bg text-ok","lvl-warn":"bg-warn-bg text-warn","lvl-err":"bg-warn-bg text-err"};function c({variant:e,label:t,icon:n,className:d=""}){let u=t??l[e],m=null;return void 0!==n?m=n:"done"===e?m=(0,r.jsx)(a.r,{size:11,weight:"regular"}):"warn"===e?m=(0,r.jsx)(i.N,{size:11,weight:"regular"}):"run"===e&&(m=(0,r.jsx)(s.A,{variant:"blue",size:"sm"})),(0,r.jsxs)("span",{className:`inline-flex h-[22px] items-center gap-1.5 rounded-[5px] px-2.5 text-medium-12 leading-none! ${o[e]} ${d}`,children:[m,u]})}},70511:(e,t,n)=>{"use strict";n.d(t,{A:()=>y});var r=n(48503),a=n(80351),i=n(68926),s=n(2439);let l=(0,s.createServerReference)("40c7c9b4db2048e53c2dd6e669d2a872094797afda",s.callServer,void 0,s.findSourceMapURL,"updateScheduleAction"),o=(0,s.createServerReference)("408a3151e4f9f7222f33c727da43a707489c73d7bf",s.callServer,void 0,s.findSourceMapURL,"createScheduleAction");var c=n(91983),d=n(5079),u=n(9594);function m({active:e,onClick:t,children:n,className:a=""}){return(0,r.jsx)("button",{type:"button",onClick:t,className:`rounded border px-2.5 py-1 text-xs font-medium ${e?"border-run/30 bg-run-bg text-run":"border-rule-2 text-ink-3 hover:border-rule hover:text-ink"} ${a}`,children:n})}let h=[{n:1,label:"Mon"},{n:2,label:"Tue"},{n:3,label:"Wed"},{n:4,label:"Thu"},{n:5,label:"Fri"},{n:6,label:"Sat"},{n:0,label:"Sun"}],x=[1,5,10,15,30];function b({name:e="cronExpr",initial:t}){let n=(0,a.useMemo)(()=>t?(0,c.X3)(t):{mode:"daily",values:{mode:"daily",time:"09:00"}},[t]),[i,s]=(0,a.useState)(n.mode),[l,o]=(0,a.useState)(n.values.everyMinutes??5),[v,p]=(0,a.useState)(n.values.time??"09:00"),[g,k]=(0,a.useState)(n.values.weekdays??[1,2,3,4,5]),[y,j]=(0,a.useState)(n.values.dayOfMonth??1),[w,N]=(0,a.useState)(n.values.custom??t??"0 9 * * *"),S=(0,a.useMemo)(()=>(0,c.Ff)({mode:i,everyMinutes:l,time:v,weekdays:g,dayOfMonth:y,custom:w}),[i,l,v,g,y,w]),$=(0,a.useMemo)(()=>(0,c.E$)(S),[S]);return(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)("input",{type:"hidden",name:e,value:S}),(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"cron-mode",className:"block text-xs text-ink-3 mb-1",children:"Frequency"}),(0,r.jsxs)(d.A,{id:"cron-mode",value:i,onChange:e=>s(e.target.value),className:"bg-hover",children:[(0,r.jsx)("option",{value:"minutes",children:"Every N minutes"}),(0,r.jsx)("option",{value:"hourly",children:"Hourly"}),(0,r.jsx)("option",{value:"daily",children:"Daily"}),(0,r.jsx)("option",{value:"weekly",children:"Weekly"}),(0,r.jsx)("option",{value:"monthly",children:"Monthly"}),(0,r.jsx)("option",{value:"custom",children:"Custom (cron)"})]})]}),"minutes"===i&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"cron-every",className:"block text-xs text-ink-3 mb-1",children:"Every"}),(0,r.jsx)(d.A,{id:"cron-every",value:l,onChange:e=>o(parseInt(e.target.value,10)),className:"bg-hover",children:x.map(e=>(0,r.jsxs)("option",{value:e,children:[e," ",1===e?"minute":"minutes"]},e))})]}),"hourly"===i&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"cron-min-of-hour",className:"block text-xs text-ink-3 mb-1",children:"At minute"}),(0,r.jsx)(u.A,{id:"cron-min-of-hour",type:"number",min:0,max:59,value:parseInt(v.split(":")[1]??"0",10),onChange:e=>{let t=Math.max(0,Math.min(59,parseInt(e.target.value||"0",10)));p(`00:${String(t).padStart(2,"0")}`)},className:"bg-hover"})]}),("daily"===i||"weekly"===i||"monthly"===i)&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"cron-time",className:"block text-xs text-ink-3 mb-1",children:"Time"}),(0,r.jsx)(u.A,{id:"cron-time",type:"time",value:v,onChange:e=>p(e.target.value),className:"bg-hover"})]})]}),"weekly"===i&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block text-xs text-ink-3 mb-1",children:"Days"}),(0,r.jsx)("div",{className:"flex flex-wrap gap-1.5",children:h.map(e=>(0,r.jsx)(m,{active:g.includes(e.n),onClick:()=>{var t;return t=e.n,void k(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t].sort())},children:e.label},e.n))})]}),"monthly"===i&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"cron-dom",className:"block text-xs text-ink-3 mb-1",children:"Day of month"}),(0,r.jsx)(u.A,{id:"cron-dom",type:"number",min:1,max:31,value:y,onChange:e=>j(Math.max(1,Math.min(31,parseInt(e.target.value||"1",10)))),className:"w-32 bg-hover"})]}),"custom"===i&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:"cron-custom",className:"block text-xs text-ink-3 mb-1",children:"Cron expression"}),(0,r.jsx)(u.A,{id:"cron-custom",type:"text",value:w,onChange:e=>N(e.target.value),placeholder:"0 9 * * *",className:"bg-hover font-mono"}),(0,r.jsx)("p",{className:"text-legacy-11 text-ink-4 mt-1",children:"Format: minute hour day-of-month month day-of-week"})]}),(0,r.jsx)(f,{expr:S,preview:$})]})}function f({expr:e,preview:t}){return t.ok?(0,r.jsxs)("div",{className:"bg-canvas border border-rule-2 rounded-md px-3 py-2 space-y-1",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,r.jsx)("span",{className:"text-ink-3",children:"Schedule:"}),(0,r.jsx)("span",{className:"text-ink",children:t.humanLabel}),(0,r.jsx)("code",{className:"ml-auto text-mono-11 text-run",children:e})]}),(0,r.jsxs)("div",{className:"text-legacy-11 text-ink-4",suppressHydrationWarning:!0,children:["Next runs: ",t.nextRuns.map(e=>e.toLocaleString([],{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})).join(" \xb7 ")]})]}):(0,r.jsxs)("div",{className:"bg-warn-bg border border-err/30 rounded-md px-3 py-2 text-xs text-err",children:[(0,r.jsx)("span",{className:"font-semibold",children:"Invalid:"})," ",t.error]})}var v=n(12871),p=n(76381),g=n(45070),k=n(17991);function y(e){let t="edit"===e.mode,n=!t&&void 0!==e.open,[s,c]=(0,a.useState)(t),m=n?e.open??!1:s,h=t=>{n?e.onOpenChange?.(t):c(t)},x=()=>{t?e.onDone?.():h(!1)},[f,y]=(0,a.useTransition)(),[j,w]=(0,a.useState)(t?e.initial.agentId:""),[N,S]=(0,a.useState)(!!t&&!0===e.initial.notifyOnSuccess),[$,A]=(0,a.useState)(t?e.initial.notifyChannel??"":"");if(!t&&!m)return n?null:(0,r.jsx)(v.A,{variant:"ink",onClick:()=>h(!0),disabled:0===e.agents.length,title:0===e.agents.length?"Create an agent first":"",children:"+ New schedule"});let C=t?e.initial.name:"",R=t?e.initial.task??"":"",E=t?e.initial.cronExpr:"0 9 * * *",M=t?e.initial.dailyBudgetUsd:5,D=e.agents.find(e=>e.id===j);return(0,r.jsx)(g.A,{open:!0,onClose:x,dismissable:!1,className:"max-w-xl",title:t?"Edit schedule":"New schedule",footer:(0,r.jsxs)(g.j,{children:[(0,r.jsx)(v.A,{variant:"neutral",onClick:x,children:"Cancel"}),(0,r.jsx)(v.A,{variant:"ink",type:"submit",form:"schedule-form",disabled:f,children:f?t?"Saving…":"Creating…":t?"Save changes":"Create schedule"})]}),children:(0,r.jsxs)("form",{id:"schedule-form",onSubmit:function(n){n.preventDefault();let r=n.currentTarget,a=new FormData(r);y(async()=>{let n=Number(a.get("dailyBudgetUsd"));if(t){let t=await l({id:e.initial.id,agentId:j,name:a.get("name"),cronExpr:a.get("cronExpr"),task:a.get("task"),notifyOnSuccess:N,notifyChannel:$||null,dailyBudgetUsd:n});t.ok?(i.oR.success("Schedule updated"),e.onDone?.()):i.oR.error(t.message)}else{let t=await o({agentId:j,name:a.get("name"),cronExpr:a.get("cronExpr"),task:a.get("task"),notifyOnSuccess:N,notifyChannel:$||null,dailyBudgetUsd:n});t.ok?(i.oR.success("Schedule created"),r.reset(),w(""),S(!1),A(""),h(!1),e.onDone?.()):i.oR.error(t.message)}})},className:"space-y-3",children:[(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,r.jsxs)(d.A,{id:"schedule-agent",label:"Agent",name:"agentId",required:!0,value:j,onChange:e=>w(e.target.value),children:[(0,r.jsx)("option",{value:"",children:"Select…"}),e.agents.map(e=>(0,r.jsx)("option",{value:e.id,children:e.name},e.id))]}),(0,r.jsx)(u.A,{id:"schedule-name",label:"Name",name:"name",required:!0,defaultValue:C,placeholder:"Daily standup"})]}),(0,r.jsx)(b,{name:"cronExpr",initial:E}),(0,r.jsx)(p.A,{id:"schedule-task",label:"Task instructions",name:"task",required:!0,rows:4,defaultValue:R,placeholder:"What should the agent do each time this fires?"}),(0,r.jsx)(k.A,{idPrefix:"schedule",agentId:j,agentName:D?.name,notifyOnSuccess:N,onNotifyOnSuccessChange:S,notifyChannel:$,onNotifyChannelChange:A}),(0,r.jsxs)("div",{children:[(0,r.jsx)(u.A,{id:"schedule-daily-budget",label:"Daily budget ($)",name:"dailyBudgetUsd",type:"number",required:!0,min:.5,max:100,step:.5,defaultValue:M,className:"w-32"}),(0,r.jsx)("p",{className:"mt-1 text-xs text-ink-3",children:"Runs pause automatically once this schedule spends this much in a day, resuming the next."})]})]})})}},76381:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(48503),a=n(80351),i=n(5829);let s=(0,a.forwardRef)(function({label:e,error:t,showCount:n,id:s,className:l="",containerClassName:o="",maxLength:c,value:d,bare:u=!1,...m},h){let x=(0,a.useId)(),b=s??x;return(0,r.jsxs)("div",{className:o,children:[e&&(0,r.jsx)(i.A,{htmlFor:b,children:e}),(0,r.jsx)("textarea",{id:b,ref:h,maxLength:c,value:d,"aria-invalid":!!t||void 0,className:u?`w-full text-ink placeholder:text-ink-4 transition-colors focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 ${l}`:`w-full resize-y rounded-md border bg-hover px-2 py-1.5 text-body-14 leading-[1.5]! text-ink placeholder:text-ink-4 transition-colors focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 ${t?"border-err focus:border-err":"border-rule focus:border-ink-3"} ${l}`,...m}),n&&void 0!==c&&"string"==typeof d&&(0,r.jsxs)("div",{className:"mt-1 text-right text-legacy-11 text-ink-4",children:[d.length," / ",c]}),t&&(0,r.jsx)("p",{className:"mt-1 text-xs text-err",children:t})]})})},81444:()=>{},90566:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(48503);let a={ok:"bg-ok",lime:"bg-agent-vivid",coral:"bg-skill-vivid",blue:"bg-conn-vivid",warn:"bg-warn"},i={ok:"animate-[blip_1.4s_ease-out_infinite]",lime:"animate-[blip-lime_1.5s_ease-out_infinite]",coral:"animate-[blip-coral_1.4s_ease-out_infinite]",blue:"animate-[blip-blue_1.4s_ease-out_infinite]",warn:"animate-[blip-coral_1.4s_ease-out_infinite]"};function s({variant:e="ok",size:t="sm",animate:n=!0,className:l=""}){return(0,r.jsx)("span",{className:`inline-block shrink-0 rounded-full ${"sm"===t?"h-[7px] w-[7px]":"h-2 w-2"} ${a[e]} ${n?i[e]:""} ${l}`})}},91983:(e,t,n)=>{"use strict";n.d(t,{E$:()=>a,Ff:()=>o,X3:()=>c,_6:()=>s});var r=n(63868);function a(e,t=new Date){if(!e||"string"!=typeof e)return{ok:!1,error:"Empty expression"};try{let n=r.CronExpressionParser.parse(e.trim(),{currentDate:t}),a=[];for(let e=0;e<3;e++)a.push(n.next().toDate());return{ok:!0,nextRuns:a,humanLabel:s(e)}}catch(e){return{ok:!1,error:e instanceof Error?e.message:"Invalid cron expression"}}}let i=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function s(e){let t=e.trim().split(/\s+/);if(5!==t.length)return e;let[n,r,a,s,o]=t;if("*"===n&&"*"===r&&"*"===a&&"*"===s&&"*"===o)return"Every minute";let c=n?.match(/^\*\/(\d+)$/);if(c&&"*"===r&&"*"===a&&"*"===s&&"*"===o)return`Every ${c[1]} minutes`;if("*"===r&&"*"===a&&"*"===s&&"*"===o&&/^\d+$/.test(n??""))return"0"===n?"Every hour (top of hour)":`Every hour at :${(n??"").padStart(2,"0")}`;if("*"===a&&"*"===s&&"*"===o&&/^\d+$/.test(n??"")&&/^\d+$/.test(r??""))return`Every day at ${l(r)}:${l(n)}`;if("*"===a&&"*"===s&&/^\d+$/.test(n??"")&&/^\d+$/.test(r??"")){let e=function(e){if("*"===e)return"day";if("1-5"===e)return"weekday";if("0,6"===e||"6,0"===e)return"weekend";if(/^\d$/.test(e)){let t=parseInt(e,10);if(t>=0&&t<=6)return i[t]??null}return/^[0-6](,[0-6])+$/.test(e)?e.split(",").map(e=>i[parseInt(e,10)]).filter(Boolean).join(", "):null}(o??"");if(e)return`Every ${e} at ${l(r)}:${l(n)}`}return"*"===s&&"*"===o&&/^\d+$/.test(n??"")&&/^\d+$/.test(r??"")&&/^\d+$/.test(a??"")?`Day ${a} of every month at ${l(r)}:${l(n)}`:e}function l(e){return(e??"").padStart(2,"0")}function o(e){let t=function(e){if(!e)return{hour:9,minute:0};let t=e.match(/^(\d{1,2}):(\d{2})$/);return t?{hour:Math.max(0,Math.min(23,parseInt(t[1]??"0",10))),minute:Math.max(0,Math.min(59,parseInt(t[2]??"0",10)))}:{hour:9,minute:0}}(e.time);switch(e.mode){case"minutes":{let t=e.everyMinutes&&e.everyMinutes>0?e.everyMinutes:5;return`*/${t} * * * *`}case"hourly":return`${t.minute} * * * *`;case"daily":return`${t.minute} ${t.hour} * * *`;case"weekly":{let n=e.weekdays&&e.weekdays.length>0?e.weekdays.slice().sort().join(","):"1";return`${t.minute} ${t.hour} * * ${n}`}case"monthly":{let n=e.dayOfMonth&&e.dayOfMonth>0?e.dayOfMonth:1;return`${t.minute} ${t.hour} ${n} * *`}case"custom":return(e.custom??"").trim()}}function c(e){let t=e.trim().split(/\s+/);if(5!==t.length)return{mode:"custom",values:{mode:"custom",custom:e}};let[n,r,a,i,s]=t,o=n?.match(/^\*\/(\d+)$/);if(o&&"*"===r&&"*"===a&&"*"===i&&"*"===s)return{mode:"minutes",values:{mode:"minutes",everyMinutes:parseInt(o[1]??"5",10)}};if("*"===r&&"*"===a&&"*"===i&&"*"===s&&/^\d+$/.test(n??""))return{mode:"hourly",values:{mode:"hourly",time:`00:${l(n)}`}};if("*"===a&&"*"===i&&"*"===s&&/^\d+$/.test(n??"")&&/^\d+$/.test(r??""))return{mode:"daily",values:{mode:"daily",time:`${l(r)}:${l(n)}`}};if("*"===a&&"*"===i&&/^\d+$/.test(n??"")&&/^\d+$/.test(r??"")){let e=function(e){if("*"===e)return[0,1,2,3,4,5,6];if("1-5"===e)return[1,2,3,4,5];if("0,6"===e||"6,0"===e)return[0,6];if(/^\d$/.test(e)){let t=parseInt(e,10);if(t>=0&&t<=6)return[t]}return/^[0-6](,[0-6])+$/.test(e)?e.split(",").map(e=>parseInt(e,10)):null}(s??"");if(e)return{mode:"weekly",values:{mode:"weekly",time:`${l(r)}:${l(n)}`,weekdays:e}}}return"*"===i&&"*"===s&&/^\d+$/.test(n??"")&&/^\d+$/.test(r??"")&&/^\d+$/.test(a??"")?{mode:"monthly",values:{mode:"monthly",time:`${l(r)}:${l(n)}`,dayOfMonth:parseInt(a??"1",10)}}:{mode:"custom",values:{mode:"custom",custom:e}}}},96333:()=>{}}]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6724],{7576:(e,t,a)=>{a.d(t,{A:()=>i});var n=a(48503),o=a(80351);let s={ink:"accent-ink",agent:"accent-agent-vivid",skill:"accent-skill-vivid",connector:"accent-conn-vivid"};function i({label:e,tone:t="ink",id:a,className:r="",containerClassName:l="",...d}){let c=(0,o.useId)(),h=a??c,u=(0,n.jsx)("input",{id:h,type:"checkbox",className:`h-4 w-4 shrink-0 cursor-pointer rounded border-rule disabled:cursor-not-allowed disabled:opacity-50 ${s[t]} ${r}`,...d});return e?(0,n.jsxs)("label",{htmlFor:h,className:`flex cursor-pointer items-center gap-2 text-sm text-ink ${l}`,children:[u,e]}):(0,n.jsx)("div",{className:l,children:u})}},60128:(e,t,a)=>{a.d(t,{A:()=>d});var n=a(48503),o=a(64178),s=a(68269),i=a(90566);let r={done:"Done",warn:"Attention",run:"Running",idle:"Idle","lvl-info":"INFO","lvl-ok":"OK","lvl-warn":"WARN","lvl-err":"ERR"},l={done:"bg-ok-bg text-ok",warn:"bg-warn-bg text-warn",run:"bg-run-bg text-run",idle:"bg-black/5 text-ink-3 dark:bg-white/5","lvl-info":"bg-black/5 text-ink-3 dark:bg-white/5","lvl-ok":"bg-ok-bg text-ok","lvl-warn":"bg-warn-bg text-warn","lvl-err":"bg-warn-bg text-err"};function d({variant:e,label:t,icon:a,className:c=""}){let h=t??r[e],u=null;return void 0!==a?u=a:"done"===e?u=(0,n.jsx)(o.r,{size:11,weight:"regular"}):"warn"===e?u=(0,n.jsx)(s.N,{size:11,weight:"regular"}):"run"===e&&(u=(0,n.jsx)(i.A,{variant:"blue",size:"sm"})),(0,n.jsxs)("span",{className:`inline-flex h-[22px] items-center gap-1.5 rounded-[5px] px-2.5 text-medium-12 leading-none! ${l[e]} ${c}`,children:[u,h]})}},76381:(e,t,a)=>{a.d(t,{A:()=>i});var n=a(48503),o=a(80351),s=a(5829);let i=(0,o.forwardRef)(function({label:e,error:t,showCount:a,id:i,className:r="",containerClassName:l="",maxLength:d,value:c,bare:h=!1,...u},p){let g=(0,o.useId)(),m=i??g;return(0,n.jsxs)("div",{className:l,children:[e&&(0,n.jsx)(s.A,{htmlFor:m,children:e}),(0,n.jsx)("textarea",{id:m,ref:p,maxLength:d,value:c,"aria-invalid":!!t||void 0,className:h?`w-full text-ink placeholder:text-ink-4 transition-colors focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 ${r}`:`w-full resize-y rounded-md border bg-hover px-2 py-1.5 text-body-14 leading-[1.5]! text-ink placeholder:text-ink-4 transition-colors focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 ${t?"border-err focus:border-err":"border-rule focus:border-ink-3"} ${r}`,...u}),a&&void 0!==d&&"string"==typeof c&&(0,n.jsxs)("div",{className:"mt-1 text-right text-legacy-11 text-ink-4",children:[c.length," / ",d]}),t&&(0,n.jsx)("p",{className:"mt-1 text-xs text-err",children:t})]})})},90566:(e,t,a)=>{a.d(t,{A:()=>i});var n=a(48503);let o={ok:"bg-ok",lime:"bg-agent-vivid",coral:"bg-skill-vivid",blue:"bg-conn-vivid",warn:"bg-warn"},s={ok:"animate-[blip_1.4s_ease-out_infinite]",lime:"animate-[blip-lime_1.5s_ease-out_infinite]",coral:"animate-[blip-coral_1.4s_ease-out_infinite]",blue:"animate-[blip-blue_1.4s_ease-out_infinite]",warn:"animate-[blip-coral_1.4s_ease-out_infinite]"};function i({variant:e="ok",size:t="sm",animate:a=!0,className:r=""}){return(0,n.jsx)("span",{className:`inline-block shrink-0 rounded-full ${"sm"===t?"h-[7px] w-[7px]":"h-2 w-2"} ${o[e]} ${a?s[e]:""} ${r}`})}},94700:(e,t,a)=>{a.d(t,{jz:()=>W,yE:()=>L,Ww:()=>M,t:()=>B});let n={slug:"obsidian",name:"Obsidian",description:"Read, search, create, and edit notes in the Obsidian vault.",requiredBuiltins:[],content:`Skill for working on an Obsidian vault via the filesystem: read, list, search, create, edit notes, with full mastery of the Obsidian Flavored Markdown syntax.
|
|
2
2
|
|
|
3
3
|
### Setup
|
|
4
4
|
|
|
@@ -1333,7 +1333,7 @@ When someone asks how to do something on this platform, the answer is a PLACE an
|
|
|
1333
1333
|
|
|
1334
1334
|
### What the documentation does not cover
|
|
1335
1335
|
|
|
1336
|
-
If \`nodal_docs\` comes back with nothing, say so plainly: you looked and the documentation does not answer it. That is a real answer, and it is different from "this does not exist". Never fill the gap with what seems likely about a product whose manual you just read and did not find it in.`},
|
|
1336
|
+
If \`nodal_docs\` comes back with nothing, say so plainly: you looked and the documentation does not answer it. That is a real answer, and it is different from "this does not exist". Never fill the gap with what seems likely about a product whose manual you just read and did not find it in.`},g='### Path conventions\n\nAll Office tools take a **workspace-relative path**. For agents with a single workspace the label is optional (e.g. `report.xlsx`). For agents with multiple workspaces, prefix with the workspace label and a slash (e.g. `docs/report.xlsx` for the workspace labelled "docs"). Never use absolute paths.';function m(e,t){return`### Read → modify → save discipline
|
|
1337
1337
|
|
|
1338
1338
|
1. **Always read before writing.** Call \`${e}\` first to confirm the file exists and understand its current state.
|
|
1339
1339
|
2. **One operation at a time.** Prefer targeted mutations (${t.map(e=>`\`${e}\``).join(", ")}) over full rewrites when only part of the content changes.
|
|
@@ -1341,9 +1341,9 @@ If \`nodal_docs\` comes back with nothing, say so plainly: you looked and the do
|
|
|
1341
1341
|
|
|
1342
1342
|
This skill unlocks the \`xlsx_*\` tools for working with Excel workbooks stored in the agent's workspace.
|
|
1343
1343
|
|
|
1344
|
-
${
|
|
1344
|
+
${g}
|
|
1345
1345
|
|
|
1346
|
-
${
|
|
1346
|
+
${m("xlsx_read",["xlsx_set_cell","xlsx_set_range"])}
|
|
1347
1347
|
|
|
1348
1348
|
Use \`xlsx_find_cells\` to locate data before mutating it. \`xlsx_delete_rows\` and \`xlsx_delete_columns\` are irreversible — confirm the range with \`xlsx_read\` first and present what will be deleted before proceeding.
|
|
1349
1349
|
|
|
@@ -1365,9 +1365,9 @@ ${f}
|
|
|
1365
1365
|
|
|
1366
1366
|
This skill unlocks the \`docx_*\` tools for working with Word documents stored in the agent's workspace.
|
|
1367
1367
|
|
|
1368
|
-
${
|
|
1368
|
+
${g}
|
|
1369
1369
|
|
|
1370
|
-
${
|
|
1370
|
+
${m("docx_read",["docx_replace_text","docx_append_paragraphs"])}
|
|
1371
1371
|
|
|
1372
1372
|
### Capabilities
|
|
1373
1373
|
|
|
@@ -1385,9 +1385,9 @@ ${f}
|
|
|
1385
1385
|
|
|
1386
1386
|
This skill unlocks the \`pptx_*\` tools for working with PowerPoint decks stored in the agent's workspace.
|
|
1387
1387
|
|
|
1388
|
-
${
|
|
1388
|
+
${g}
|
|
1389
1389
|
|
|
1390
|
-
${
|
|
1390
|
+
${m("pptx_read",["pptx_replace_text","pptx_append_slides"])}
|
|
1391
1391
|
|
|
1392
1392
|
### Capabilities
|
|
1393
1393
|
|
|
@@ -1538,7 +1538,7 @@ NEVER invent an id, and don't pass an id where a name is expected. A UUID copied
|
|
|
1538
1538
|
- ❌ attach/delegate before create → ✅ create first, then attach using the returned id.
|
|
1539
1539
|
- ❌ inventing or reusing a stale id → ✅ use the id \`create_agent\` returns.
|
|
1540
1540
|
- ❌ reusing a slug already in the workspace → choose a unique one.
|
|
1541
|
-
`},
|
|
1541
|
+
`},N={slug:"tool-update-agent",name:"Using update_agent",description:"How to edit an existing agent (model, personality, name) + picking a valid model.",requiredBuiltins:[],kind:"agent-internal",content:`## Using update_agent
|
|
1542
1542
|
|
|
1543
1543
|
Edit an EXISTING agent. Use it to change an agent's model, personality, or display name — you do NOT need to recreate it.
|
|
1544
1544
|
|
|
@@ -1568,7 +1568,7 @@ Passing an id that isn't valid for the agent's provider (e.g. \`deepseek-chat\`
|
|
|
1568
1568
|
- ❌ guessing a model string from memory → ✅ call list_models, copy the exact id.
|
|
1569
1569
|
- ❌ trying to "recreate" the agent to change its model → ✅ update_agent edits it in place.
|
|
1570
1570
|
- ❌ wrong slug → the agent must exist (check the slug).
|
|
1571
|
-
`},
|
|
1571
|
+
`},C={slug:"tool-attach-mcp",name:"Using attach_mcp",description:"How to make an MCP server usable by an agent (the link create_mcp does not make).",requiredBuiltins:[],kind:"agent-internal",content:`## Using attach_mcp
|
|
1572
1572
|
|
|
1573
1573
|
Creating an MCP server is NOT enough — its tools reach an agent only once the MCP is **attached** to that agent. \`attach_mcp\` creates that link.
|
|
1574
1574
|
|
|
@@ -1659,4 +1659,4 @@ block in your prompt tells you the current local time. There is no UTC conversio
|
|
|
1659
1659
|
- \`notifyOnSuccess\` defaults false → runs silently. Set true if the user should get a confirmation each run.
|
|
1660
1660
|
- The agent referenced by agentSlug must exist (create it first).
|
|
1661
1661
|
- Need an exotic pattern (e.g. "1st of every month")? That's a dashboard-only setup — tell the user.
|
|
1662
|
-
`},E={slug:"code-reviewer",name:"Code reviewer",summary:"Reads code and returns a verdict. Never writes. We suggest using multiple reviewers with different LLMs.",purpose:"Give it finished work and it reviews it against what was asked, then answers approve or request changes with concrete findings. It is locked to reading: every tool that could change a file or run a command is blocked, so a review can never turn into an edit. Run it on a different model from the developer — two instances of the same model share the same blind spots.",role:"worker",skills:["code-review"],presets:["read-only"],connectors:[{kind:"mcp",slug:"mcp-playwright"}],needs:["workspace"],kit:["read-only","returns a verdict"]},O={slug:"developer",name:"Developer",summary:"Writes and changes code in a folder you hand it.",purpose:"Give it a task and a folder and it works there: reads before writing, makes targeted edits rather than rewrites, follows the conventions already in the project, and verifies before claiming done. When the work is finished it hands it to a reviewer in a way that makes the review useful — what changed, what it should do, what was already checked.",role:"worker",skills:["dev","request-review"],needs:["workspace","code-runtime"],kit:["needs a folder","writes code","hands off for review"]},q={slug:"team-lead",name:"Team lead",summary:"Takes a request, breaks it down, hands the pieces to other agents.",purpose:"It receives what you ask for, states a plan before acting, and delegates each piece to the agents attached to it — a developer, a reviewer. It does not write code itself. It needs a model that can call tools, because delegating IS a tool call: on a model without that, it would simply look unhelpful.",role:"router",skills:["task-planning"],modelRequirements:["tools"],kit:["delegates","model with tools"]},P={slug:"dev-team",name:"Development",shape:"Team lead → Developer + Code reviewer",rationale:"The lead takes the request and hands it out. The developer writes. The reviewer checks, on a different model — two instances of the same model share the same blind spots.",recipes:[q.slug,O.slug,E.slug]},W=[q,O,E],L=[P];function M(e){return e.recipes.map(e=>W.find(t=>t.slug===e)).filter(e=>void 0!==e)}let U=[n,o,s,i,r,l,{slug:"markdown-output",name:"Markdown output",description:"Formats longer responses with clean, readable markdown: headings, lists, tables, fenced code blocks. Knows when plain prose is better.",requiredBuiltins:[],kind:"channel",content:"## Markdown output\n\nUse markdown to make responses scannable and useful. Apply structure where it genuinely helps; do not apply it reflexively.\n\n### When to use structure\n\n- **Headings (`##`, `###`):** Use for responses with two or more distinct sections. Do not use for answers that are one cohesive thought.\n- **Bullet lists:** Use for enumerations of 3+ parallel items where order does not matter. Do not use for flowing prose or narrative reasoning.\n- **Numbered lists:** Use for ordered steps, sequences, or ranked items.\n- **Tables:** Use to compare multiple items across multiple attributes. Do not use for a single attribute or for two items — a sentence is clearer.\n- **Bold (`**text**`):** Use to highlight key terms, important caveats, or decision points. Limit to 2–4 instances per section; overuse renders it meaningless.\n- **Italics (`*text*`):** Use sparingly for emphasis or introducing a defined term.\n\n### Code fences — always add a language tag\n\n```typescript\n// Always specify the language after the opening backticks:\n// ```typescript, ```python, ```sql, ```bash, ```json, ```yaml …\n```\n\nEven for short snippets, add the language tag. It enables syntax highlighting and signals intent.\n\nFor terminal commands, use ```bash`. For generic output or logs with no language, use ```text`.\n\n### When NOT to use markdown\n\n- Short answers (1–3 sentences): plain prose. A bullet list for two items is noisier than a sentence.\n- Conversational exchanges: direct acknowledgment of a question needs no heading.\n- Inline code references: use backticks (`variableName`), not a full fenced block.\n- Telegram or SMS delivery channels: prefer plain text with minimal formatting (the Telegram skill overrides this if both are active).\n\n### Anti-patterns\n\n- ❌ A heading for every paragraph — turns a response into a bureaucratic document.\n- ❌ Nesting bullets 3+ levels deep — restructure into sections instead.\n- ❌ Bold nearly everything — destroys the contrast that makes bold useful.\n- ❌ A table to show a single column of values — use a list.\n- ❌ Markdown in file content that will be rendered literally (e.g. a plain-text config) — emit raw text.\n"},d,c,h,u,p,{slug:"workspace-hygiene",name:"Workspace hygiene",description:"Reuse before recreating. One canonical folder per artifact kind. Parametrize scripts. Never write artifacts into a skill bundle.",requiredBuiltins:[],kind:"baseline",surfaces:["job"],content:'## Workspace hygiene\n\nThis is how you keep the SHARED workspace usable. It is a durable, common asset — not a scratch pad — and everything below applies to what you put THERE.\n\nYou have one when your `## Workspaces` block lists a folder labelled `shared` — that block is what your tools can actually reach, so it is the only thing to check. When a `## Shared workspace` block is also present, it lists what is already in there; its absence means the listing was not built for this turn, never that the folder is missing. If no `shared` folder is listed at all, work in the folder your `## Workspaces` block names and ignore this skill\'s folder layout.\n\n### Reuse before recreating\n\nBefore building a workflow, script, or document, check the inventory: if a file already covers the need, load it and adapt it (`file_read`, then edit or pass different arguments). Recreating an existing artifact under a new name is a failure mode, not a fresh start.\n\n### One folder per kind — inside the shared workspace\n\nThese are the canonical folders **of the shared workspace**. When you save there, use them and never invent parallel ones (no `outputs_v2/`, `my_workflows/`, files dumped at the root):\n- `workflows/` — workflow definitions (JSON)\n- `outputs/` — generated artifacts (images, exports)\n- `scripts/` — reusable scripts\n- `documents/` — reports, notes, deliverables\n\nThis layout applies to the shared workspace ONLY. If your `## Workspace` block names a folder of your own, that folder is where your work goes — do not invent a `shared/` path inside it, and do not reach for the folders above.\n\n### One workflow = one graph\n\nA saved workflow file is a reusable GRAPH (models, samplers, node wiring) — not a snapshot of one run. FORBIDDEN: saving a workflow file whose only difference from an existing one is the prompt, seed, or other run values — that is clutter, never value. Pass those as execution arguments instead (e.g. `run_workflow.py --args {"prompt": …, "seed": …}`) against the EXISTING file. The only reason to save a new workflow file is a change to the graph itself (different model, different node chain) — and it is named after the graph, not the scene.\n\n### Scripts must be reusable\n\nA script you write takes its variable values (ids, paths, prompts) as ARGUMENTS — never hardcoded in the file. If you find yourself editing a script only to change a value, parametrize it instead. Before writing a helper, check whether an installed skill already ships one (`skill_view`, then `run_skill_script`).\n\n### Skill bundles are code, not storage\n\nNever write generated artifacts into an installed skill\'s folder. Point a skill script\'s output argument at a real workspace instead — your own if you have one, otherwise the shared workspace, whose absolute path is in the `NODAL_SHARED_WORKSPACE` environment variable of every script/command you run. If a `warning` reports bundle writes, move those files out before finishing.\n\n### Leave it clean\n\nTemporary diagnostic files (probe scripts, dumps, logs) are deleted before you finish the task — or not written to the workspace at all when `stdout` suffices.'},_,y,b,x,{slug:"command-execution",name:"Command execution",description:'Run shell commands in the agent workspace (install deps, run scripts, build steps, CLIs). Every command requires your approval by default; an optional per-agent "Yolo" mode auto-runs them.',requiredBuiltins:["run_command"],content:'## Command execution\n\nThis skill unlocks the `run_command` tool, which runs a shell command in the agent\'s workspace and returns its **stdout**, **stderr** and **exit code**. Use it for anything that needs the shell: installing dependencies (`npm install`, `pip install`), running scripts (`node build.js`, `python gen.py`), build steps, or CLI tools.\n\n### How it runs\n\n- The command runs via **cmd.exe** on Windows and **/bin/sh** on Unix, so shell features like `&&`, `|` and quoting work.\n- The working directory defaults to the **workspace root**. Pass `cwd` (a workspace-relative path, e.g. `"scripts/canvas"`) to run somewhere else inside the workspace.\n- Default timeout is **300 seconds**; pass `timeout_seconds` to change it (e.g. a long native build). On timeout the command and its child processes are killed.\n\n### Discipline\n\n1. **Run, then finish.** As soon as a command gives you the output you need, STOP — write the result as your answer (or publish it with `dashboard_publish`), signal with `return_result`, and end your turn. The signal carries no content: an empty answer delivers nothing. A successful command (exit 0) is DONE; re-running it, or running another just to "double-check", only re-prompts the user for approval and goes nowhere. Run another command ONLY if the task genuinely requires a different one.\n2. **Batch multi-step work into ONE call.** A compound command (`npm install && node download_font.js && node draw_text.js`) runs as a single `run_command` — and, in approval mode, is **one approval** instead of three. Prefer this over three separate calls.\n3. **A non-zero exit code is data, not a crash.** It is returned to you with stderr — read it, fix the cause, and retry a corrected command. Do not silently repeat the same failing command.\n4. **Stay in the workspace.** Read/write files with the `file_*` tools and target the workspace; `cwd` cannot point outside it.\n5. **Non-interactive only.** Commands that wait for input (a `y/n` prompt, a password) will hang until the timeout. Use non-interactive flags (e.g. `npm install --yes`, `--no-input`).\n6. **Output is capped** (~100k characters per stream). If you need full output of a verbose command, redirect it to a file in the workspace and read it back with `file_read`.\n7. **Never install heavyweight software or reinstall a service on your own initiative.** A multi-gigabyte install (a fresh app, large model downloads, a full toolchain — e.g. `comfy install`, `apt install` of a big package) is a heavy, easily-duplicated action. If a local service or CLI you need is NOT responding — a server on a port, a daemon — that is **not** a licence to install it: it may simply be down, on a different port, or misconfigured. Report that it is unreachable and **ask the user** before installing anything large. This matters most under Yolo / auto-approve, where such a command would otherwise run with no human in the loop. A transient connection failure means "tell the user it\'s unreachable", never "install a fresh copy".\n\n### Approval vs Yolo\n\nBy default **every command pauses for human approval**. The user does NOT decide on a raw command first — they decide on the **`purpose`** you provide: a short plain-language sentence, **IN THEIR LANGUAGE**, of what the command does and why. ALWAYS fill `purpose` (it is required). When the command has a real downside — deletes/overwrites files, installs software, downloads from the network, spends money, long-running, hard to undo — also fill **`impact`** (shown to the user as a ⚠️ warning); omit it only when the command is genuinely harmless / read-only. A clear `purpose` gets approved fast; an unexplained wall of shell gets rejected or ignored. If **Yolo mode** is enabled for this agent, commands run immediately without asking — still fill `purpose`/`impact` for the record.\n'},{slug:"code-task",name:"Coding CLI (Claude Code / Codex)",description:"Delegate complete dev tasks (analyse, review, debug, implement) to the coding CLI installed on this machine — Claude Code or Codex — running under the owner's subscription. Read-only by default; every run requires approval unless Yolo is enabled.",requiredBuiltins:["code_task"],toolGroup:!0,content:'## Coding CLI (code_task)\n\nThis skill unlocks the `code_task` tool: it hands a complete dev task to the **coding CLI installed and logged in by the owner** on this machine — `provider: "claude"` (Claude Code) or `provider: "codex"` (OpenAI Codex). The CLI is itself a full autonomous coding agent: it explores the working directory, reasons, and returns a final answer. Its usage counts against the **owner\'s subscription**.\n\n### What it is for\n\n- Analysing a codebase: architecture summary, "where is X handled", dependency questions.\n- Finding bugs, reviewing changes, explaining errors.\n- In `mode: "write"`: implementing a change, fixing a bug, writing tests — inside the workspace.\n\n### How to write a good task\n\n1. **Self-contained.** The CLI sees ONLY your `task` text plus the files in the working directory — none of this conversation. Include every fact it needs (file names, error messages, acceptance criteria).\n2. **One task, one call.** A run takes minutes. Give one complete task and wait for the result. NEVER re-call `code_task` for the same goal because you are unsure — re-running costs the owner real subscription usage.\n3. **Pick the mode honestly.** Default `mode: "read"` — the CLI cannot modify files or run shell commands. Use `mode: "write"` ONLY when the task requires changing files; say so in `purpose` and fill `impact`.\n4. **Pick the directory.** `cwd` is workspace-relative (e.g. `"repos/myapp"`). The run is confined to the workspace.\n4b. **Model and effort.** The owner sets per-provider defaults in the agent settings; omit `model`/`effort` to use them. Override per task only when the task warrants it (e.g. `model: "opus", effort: "high"` for a deep review; a cheaper model for a mechanical rename) — and say why in `purpose`.\n5. **Read the result as data.** `resultText` is the CLI\'s final answer. `isError: true` means the run failed — read `errorDetail`, fix the cause (or report it), do NOT blindly retry. `errorDetail` starting with `subscription_limit_reached` means the owner\'s plan window is exhausted: report it and stop — retrying cannot help until the window resets.\n6. **Report costs honestly.** `costUsd` is the notional cost the CLI reports (informative under subscription). Each agent has a daily cap; when it is hit the tool refuses to start and tells you why.\n\n### Review-required (write-mode work)\n\nCode you changed is NOT done until it has been reviewed. This is a hard rule, learned from harnesses that let coders self-certify.\n\n1. **Never conclude "done" directly after a successful write-mode `code_task` (or hand-written code changes).** The work\'s state is "review-required".\n2. **If you can delegate** (you have an `assign_*` tool whose description names a code reviewer), delegate the review yourself: pass WHAT was asked, WHAT changed (files + one-line each), and how to verify. The reviewer answers with a structured verdict (`approve` / `request_changes` + findings). If you hold the "Request a review" skill, follow it — the reviewer starts blind, and what you put in that request decides whether the review is worth its cost.\n3. **If you cannot delegate** (you are a worker), end your written ANSWER with a prominent `REVIEW-REQUIRED` marker plus the list of changed files and how to verify — that text is what your orchestrator receives, and it dispatches the review from it. `return_result` carries none of it. Never present write-mode work as finished without it.\n4. **On `request_changes`**: fix the findings (one more write-mode run), then request the review ONCE more. Maximum 2 review rounds total.\n5. **After 2 failed rounds, escalate — do not loop.** Tell the owner on their channel what was attempted and what still fails (the remaining findings), write the same thing as your answer, and finish with `return_result` status "blocked". Retrying past 2 rounds only burns budget and anti-loop caps.\n6. **If no reviewer exists anywhere**, say so explicitly in your final result: the work is delivered UNREVIEWED and the owner should review it or attach a reviewer agent.\n\n### Approval vs Yolo\n\nBy default **every run pauses for the owner\'s approval**. They decide on your `purpose` — one plain sentence, IN THEIR LANGUAGE, of what the task does and why. With a real downside (write mode: modifies files, installs deps), also fill `impact`. If **Yolo mode** is enabled for this agent, runs start immediately — still fill `purpose`/`impact` for the record.\n'},T,I,S,{slug:"tool-create-mcp",name:"Using create_mcp",description:"How to format a create_mcp call correctly — http/stdio, where the API key goes, examples.",requiredBuiltins:[],kind:"agent-internal",content:'## Using create_mcp\n\nProvision an MCP server so its tools become available in this workspace. The call is VERIFIED by actually connecting before anything is saved, so a wrong format fails loudly — get it right the first time.\n\n### Fields\n- **name**: human-readable label.\n- **slug**: lowercase-with-hyphens, unique in the workspace. It prefixes the server\'s tool names.\n- **transport**: `"http"` (remote server) or `"stdio"` (local subprocess).\n\n**transport "http":**\n- **url**: the endpoint, WITHOUT the key in it.\n- **apiKey**: the key/token — it goes HERE, never inside the url.\n- **authScheme**: how the key is sent — `"header"` (default), `"query"`, or `"bearer"`.\n- **authParamName**: the header name or query-param name that carries the key (omit only for bearer).\n\n**transport "stdio":** command, args, env.\n\n### #1 mistake: the key inside the URL\nIf you are given a URL like `https://host/api/mcp?api_key=cog_ABC`, do NOT pass that whole string as `url`. **Split it**:\n- url → `https://host/api/mcp`\n- apiKey → `cog_ABC`\n- authScheme → `query`\n- authParamName → `api_key`\n\nThe tool re-attaches the key correctly. Passing the key inside `url` (with `apiKey` empty) fails with: `transport "http" requires an apiKey`.\n\n### Worked example — key as a query param\n```json\n{\n "name": "Cogni Cortex",\n "slug": "cogni-cortex",\n "transport": "http",\n "url": "https://cogni-web-psi.vercel.app/api/mcp",\n "apiKey": "cog_ABC123",\n "authScheme": "query",\n "authParamName": "api_key"\n}\n```\n\n### Worked example — Bearer token\n```json\n{ "name": "Acme", "slug": "acme", "transport": "http", "url": "https://api.acme.com/mcp", "apiKey": "sk-live-...", "authScheme": "bearer" }\n```\n\n### Making it usable: attach it to an agent\nCreating the server does NOT make any agent able to use it. To give its tools to an agent, pass **`attachToAgentSlug`** in the same call — e.g. add `"attachToAgentSlug": "my-agent"`. (Or attach later with `attach_mcp`.) If you skip this, no agent can call the MCP\'s tools.\n\n### Common mistakes\n- ❌ creating the MCP then delegating, without attaching → the agent reports "I don\'t have that tool". Pass `attachToAgentSlug` or call `attach_mcp`.\n- ❌ key inside `url` → ✅ key in `apiKey` + the matching `authScheme`/`authParamName`.\n- ❌ omitting `authParamName` for header/query schemes → it is required (only `bearer` omits it).\n- ❌ reusing a slug already in the workspace → choose a unique one.\n'},A,C,N,D,R];U.map(e=>e.slug);let j=e=>U.filter(t=>(t.kind??"capability")===e).map(e=>e.slug);j("baseline"),j("channel"),j("capability"),j("agent-internal");let B=U.filter(e=>!0===e.toolGroup).map(e=>e.slug)},76381:(e,t,a)=>{a.d(t,{A:()=>i});var n=a(48503),o=a(80351),s=a(5829);let i=(0,o.forwardRef)(function({label:e,error:t,showCount:a,id:i,className:r="",containerClassName:l="",maxLength:d,value:c,bare:h=!1,...u},p){let m=(0,o.useId)(),g=i??m;return(0,n.jsxs)("div",{className:l,children:[e&&(0,n.jsx)(s.A,{htmlFor:g,children:e}),(0,n.jsx)("textarea",{id:g,ref:p,maxLength:d,value:c,"aria-invalid":!!t||void 0,className:h?`w-full text-ink placeholder:text-ink-4 transition-colors focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 ${r}`:`w-full resize-y rounded-md border bg-hover px-2 py-1.5 text-body-14 leading-[1.5]! text-ink placeholder:text-ink-4 transition-colors focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 ${t?"border-err focus:border-err":"border-rule focus:border-ink-3"} ${r}`,...u}),a&&void 0!==d&&"string"==typeof c&&(0,n.jsxs)("div",{className:"mt-1 text-right text-legacy-11 text-ink-4",children:[c.length," / ",d]}),t&&(0,n.jsx)("p",{className:"mt-1 text-xs text-err",children:t})]})})},90566:(e,t,a)=>{a.d(t,{A:()=>i});var n=a(48503);let o={ok:"bg-ok",lime:"bg-agent-vivid",coral:"bg-skill-vivid",blue:"bg-conn-vivid",warn:"bg-warn"},s={ok:"animate-[blip_1.4s_ease-out_infinite]",lime:"animate-[blip-lime_1.5s_ease-out_infinite]",coral:"animate-[blip-coral_1.4s_ease-out_infinite]",blue:"animate-[blip-blue_1.4s_ease-out_infinite]",warn:"animate-[blip-coral_1.4s_ease-out_infinite]"};function i({variant:e="ok",size:t="sm",animate:a=!0,className:r=""}){return(0,n.jsx)("span",{className:`inline-block shrink-0 rounded-full ${"sm"===t?"h-[7px] w-[7px]":"h-2 w-2"} ${o[e]} ${a?s[e]:""} ${r}`})}}}]);
|
|
1662
|
+
`},E={slug:"code-reviewer",name:"Code reviewer",summary:"Reads code and returns a verdict. Never writes. We suggest using multiple reviewers with different LLMs.",purpose:"Give it finished work and it reviews it against what was asked, then answers approve or request changes with concrete findings. It is locked to reading: every tool that could change a file or run a command is blocked, so a review can never turn into an edit. Run it on a different model from the developer — two instances of the same model share the same blind spots.",role:"worker",skills:["code-review"],presets:["read-only"],connectors:[{kind:"mcp",slug:"mcp-playwright"}],needs:["workspace"],kit:["read-only","returns a verdict"]},O={slug:"developer",name:"Developer",summary:"Writes and changes code in a folder you hand it.",purpose:"Give it a task and a folder and it works there: reads before writing, makes targeted edits rather than rewrites, follows the conventions already in the project, and verifies before claiming done. When the work is finished it hands it to a reviewer in a way that makes the review useful — what changed, what it should do, what was already checked.",role:"worker",skills:["dev","request-review"],needs:["workspace","code-runtime"],kit:["needs a folder","writes code","hands off for review"]},q={slug:"team-lead",name:"Team lead",summary:"Takes a request, breaks it down, hands the pieces to other agents.",purpose:"It receives what you ask for, states a plan before acting, and delegates each piece to the agents attached to it — a developer, a reviewer. It does not write code itself. It needs a model that can call tools, because delegating IS a tool call: on a model without that, it would simply look unhelpful.",role:"router",skills:["task-planning"],modelRequirements:["tools"],kit:["delegates","model with tools"]},P={slug:"dev-team",name:"Development",shape:"Team lead → Developer + Code reviewer",rationale:"The lead takes the request and hands it out. The developer writes. The reviewer checks, on a different model — two instances of the same model share the same blind spots.",recipes:[q.slug,O.slug,E.slug]},W=[q,O,E],L=[P];function M(e){return e.recipes.map(e=>W.find(t=>t.slug===e)).filter(e=>void 0!==e)}let U=[n,o,s,i,r,l,{slug:"markdown-output",name:"Markdown output",description:"Formats longer responses with clean, readable markdown: headings, lists, tables, fenced code blocks. Knows when plain prose is better.",requiredBuiltins:[],kind:"channel",content:"## Markdown output\n\nUse markdown to make responses scannable and useful. Apply structure where it genuinely helps; do not apply it reflexively.\n\n### When to use structure\n\n- **Headings (`##`, `###`):** Use for responses with two or more distinct sections. Do not use for answers that are one cohesive thought.\n- **Bullet lists:** Use for enumerations of 3+ parallel items where order does not matter. Do not use for flowing prose or narrative reasoning.\n- **Numbered lists:** Use for ordered steps, sequences, or ranked items.\n- **Tables:** Use to compare multiple items across multiple attributes. Do not use for a single attribute or for two items — a sentence is clearer.\n- **Bold (`**text**`):** Use to highlight key terms, important caveats, or decision points. Limit to 2–4 instances per section; overuse renders it meaningless.\n- **Italics (`*text*`):** Use sparingly for emphasis or introducing a defined term.\n\n### Code fences — always add a language tag\n\n```typescript\n// Always specify the language after the opening backticks:\n// ```typescript, ```python, ```sql, ```bash, ```json, ```yaml …\n```\n\nEven for short snippets, add the language tag. It enables syntax highlighting and signals intent.\n\nFor terminal commands, use ```bash`. For generic output or logs with no language, use ```text`.\n\n### When NOT to use markdown\n\n- Short answers (1–3 sentences): plain prose. A bullet list for two items is noisier than a sentence.\n- Conversational exchanges: direct acknowledgment of a question needs no heading.\n- Inline code references: use backticks (`variableName`), not a full fenced block.\n- Telegram or SMS delivery channels: prefer plain text with minimal formatting (the Telegram skill overrides this if both are active).\n\n### Anti-patterns\n\n- ❌ A heading for every paragraph — turns a response into a bureaucratic document.\n- ❌ Nesting bullets 3+ levels deep — restructure into sections instead.\n- ❌ Bold nearly everything — destroys the contrast that makes bold useful.\n- ❌ A table to show a single column of values — use a list.\n- ❌ Markdown in file content that will be rendered literally (e.g. a plain-text config) — emit raw text.\n"},d,c,h,u,p,{slug:"workspace-hygiene",name:"Workspace hygiene",description:"Reuse before recreating. One canonical folder per artifact kind. Parametrize scripts. Never write artifacts into a skill bundle.",requiredBuiltins:[],kind:"baseline",surfaces:["job"],content:'## Workspace hygiene\n\nThis is how you keep the SHARED workspace usable. It is a durable, common asset — not a scratch pad — and everything below applies to what you put THERE.\n\nYou have one when your `## Workspaces` block lists a folder labelled `shared` — that block is what your tools can actually reach, so it is the only thing to check. When a `## Shared workspace` block is also present, it lists what is already in there; its absence means the listing was not built for this turn, never that the folder is missing. If no `shared` folder is listed at all, work in the folder your `## Workspaces` block names and ignore this skill\'s folder layout.\n\n### Reuse before recreating\n\nBefore building a workflow, script, or document, check the inventory: if a file already covers the need, load it and adapt it (`file_read`, then edit or pass different arguments). Recreating an existing artifact under a new name is a failure mode, not a fresh start.\n\n### One folder per kind — inside the shared workspace\n\nThese are the canonical folders **of the shared workspace**. When you save there, use them and never invent parallel ones (no `outputs_v2/`, `my_workflows/`, files dumped at the root):\n- `workflows/` — workflow definitions (JSON)\n- `outputs/` — generated artifacts (images, exports)\n- `scripts/` — reusable scripts\n- `documents/` — reports, notes, deliverables\n\nThis layout applies to the shared workspace ONLY. If your `## Workspace` block names a folder of your own, that folder is where your work goes — do not invent a `shared/` path inside it, and do not reach for the folders above.\n\n### One workflow = one graph\n\nA saved workflow file is a reusable GRAPH (models, samplers, node wiring) — not a snapshot of one run. FORBIDDEN: saving a workflow file whose only difference from an existing one is the prompt, seed, or other run values — that is clutter, never value. Pass those as execution arguments instead (e.g. `run_workflow.py --args {"prompt": …, "seed": …}`) against the EXISTING file. The only reason to save a new workflow file is a change to the graph itself (different model, different node chain) — and it is named after the graph, not the scene.\n\n### Scripts must be reusable\n\nA script you write takes its variable values (ids, paths, prompts) as ARGUMENTS — never hardcoded in the file. If you find yourself editing a script only to change a value, parametrize it instead. Before writing a helper, check whether an installed skill already ships one (`skill_view`, then `run_skill_script`).\n\n### Skill bundles are code, not storage\n\nNever write generated artifacts into an installed skill\'s folder. Point a skill script\'s output argument at a real workspace instead — your own if you have one, otherwise the shared workspace, whose absolute path is in the `NODAL_SHARED_WORKSPACE` environment variable of every script/command you run. If a `warning` reports bundle writes, move those files out before finishing.\n\n### Leave it clean\n\nTemporary diagnostic files (probe scripts, dumps, logs) are deleted before you finish the task — or not written to the workspace at all when `stdout` suffices.'},_,y,b,x,{slug:"command-execution",name:"Command execution",description:'Run shell commands in the agent workspace (install deps, run scripts, build steps, CLIs). Every command requires your approval by default; an optional per-agent "Yolo" mode auto-runs them.',requiredBuiltins:["run_command"],content:'## Command execution\n\nThis skill unlocks the `run_command` tool, which runs a shell command in the agent\'s workspace and returns its **stdout**, **stderr** and **exit code**. Use it for anything that needs the shell: installing dependencies (`npm install`, `pip install`), running scripts (`node build.js`, `python gen.py`), build steps, or CLI tools.\n\n### How it runs\n\n- The command runs via **cmd.exe** on Windows and **/bin/sh** on Unix, so shell features like `&&`, `|` and quoting work.\n- The working directory defaults to the **workspace root**. Pass `cwd` (a workspace-relative path, e.g. `"scripts/canvas"`) to run somewhere else inside the workspace.\n- Default timeout is **300 seconds**; pass `timeout_seconds` to change it (e.g. a long native build). On timeout the command and its child processes are killed.\n\n### Discipline\n\n1. **Run, then finish.** As soon as a command gives you the output you need, STOP — write the result as your answer (or publish it with `dashboard_publish`), signal with `return_result`, and end your turn. The signal carries no content: an empty answer delivers nothing. A successful command (exit 0) is DONE; re-running it, or running another just to "double-check", only re-prompts the user for approval and goes nowhere. Run another command ONLY if the task genuinely requires a different one.\n2. **Batch multi-step work into ONE call.** A compound command (`npm install && node download_font.js && node draw_text.js`) runs as a single `run_command` — and, in approval mode, is **one approval** instead of three. Prefer this over three separate calls.\n3. **A non-zero exit code is data, not a crash.** It is returned to you with stderr — read it, fix the cause, and retry a corrected command. Do not silently repeat the same failing command.\n4. **Stay in the workspace.** Read/write files with the `file_*` tools and target the workspace; `cwd` cannot point outside it.\n5. **Non-interactive only.** Commands that wait for input (a `y/n` prompt, a password) will hang until the timeout. Use non-interactive flags (e.g. `npm install --yes`, `--no-input`).\n6. **Output is capped** (~100k characters per stream). If you need full output of a verbose command, redirect it to a file in the workspace and read it back with `file_read`.\n7. **Never install heavyweight software or reinstall a service on your own initiative.** A multi-gigabyte install (a fresh app, large model downloads, a full toolchain — e.g. `comfy install`, `apt install` of a big package) is a heavy, easily-duplicated action. If a local service or CLI you need is NOT responding — a server on a port, a daemon — that is **not** a licence to install it: it may simply be down, on a different port, or misconfigured. Report that it is unreachable and **ask the user** before installing anything large. This matters most under Yolo / auto-approve, where such a command would otherwise run with no human in the loop. A transient connection failure means "tell the user it\'s unreachable", never "install a fresh copy".\n\n### Approval vs Yolo\n\nBy default **every command pauses for human approval**. The user does NOT decide on a raw command first — they decide on the **`purpose`** you provide: a short plain-language sentence, **IN THEIR LANGUAGE**, of what the command does and why. ALWAYS fill `purpose` (it is required). When the command has a real downside — deletes/overwrites files, installs software, downloads from the network, spends money, long-running, hard to undo — also fill **`impact`** (shown to the user as a ⚠️ warning); omit it only when the command is genuinely harmless / read-only. A clear `purpose` gets approved fast; an unexplained wall of shell gets rejected or ignored. If **Yolo mode** is enabled for this agent, commands run immediately without asking — still fill `purpose`/`impact` for the record.\n'},{slug:"speech-generation",name:"Speech generation",description:"Turn text into WAV audio files in the agent folders, through OpenRouter (Gemini 3.8 Flash TTS or Flash Lite TTS). Uses the workspace OpenRouter key.",requiredBuiltins:["generate_speech"],toolGroup:!0,content:'## Speech generation\n\nThis tool group gives you `generate_speech`: it turns text into a **WAV audio file** written in one of your folders, and returns its path. (WAV, not mp3: the models answer raw audio.)\n\n### How to call it\n\n- `text`: the exact words to speak, at most 5,000 characters. **Everything in it is read aloud**: no stage directions, no "(pause)", no "[cheerful]".\n- `style`: the tone, in a few words ("warm and friendly", "calm and slow", "whispering"). It is not read aloud.\n- `path`: where to write the file, ending in `.wav` (e.g. `audio/intro.wav`). Missing folders are created.\n- `model`: `google/gemini-3.8-flash-tts` (default, the expressive tier) or `google/gemini-3.8-flash-lite-tts` (faster and cheaper, plain reading).\n- `voice`: the voice name as Google names it; `Kore` is the default.\n\n### Discipline\n\n1. **Longer than 5,000 characters: split** at paragraph boundaries into several files (`part-1.wav`, `part-2.wav`…) and say so in your answer.\n2. **Give the path back** in your answer: the owner finds the file there.\n3. **A failure is said, not retried blindly.** No OpenRouter key, an unknown voice, a provider error: report the reason the tool returned.\n'},{slug:"code-task",name:"Coding CLI (Claude Code / Codex)",description:"Delegate complete dev tasks (analyse, review, debug, implement) to the coding CLI installed on this machine — Claude Code or Codex — running under the owner's subscription. Read-only by default; every run requires approval unless Yolo is enabled.",requiredBuiltins:["code_task"],toolGroup:!0,content:'## Coding CLI (code_task)\n\nThis skill unlocks the `code_task` tool: it hands a complete dev task to the **coding CLI installed and logged in by the owner** on this machine — `provider: "claude"` (Claude Code) or `provider: "codex"` (OpenAI Codex). The CLI is itself a full autonomous coding agent: it explores the working directory, reasons, and returns a final answer. Its usage counts against the **owner\'s subscription**.\n\n### What it is for\n\n- Analysing a codebase: architecture summary, "where is X handled", dependency questions.\n- Finding bugs, reviewing changes, explaining errors.\n- In `mode: "write"`: implementing a change, fixing a bug, writing tests — inside the workspace.\n\n### How to write a good task\n\n1. **Self-contained.** The CLI sees ONLY your `task` text plus the files in the working directory — none of this conversation. Include every fact it needs (file names, error messages, acceptance criteria).\n2. **One task, one call.** A run takes minutes. Give one complete task and wait for the result. NEVER re-call `code_task` for the same goal because you are unsure — re-running costs the owner real subscription usage.\n3. **Pick the mode honestly.** Default `mode: "read"` — the CLI cannot modify files or run shell commands. Use `mode: "write"` ONLY when the task requires changing files; say so in `purpose` and fill `impact`.\n4. **Pick the directory.** `cwd` is workspace-relative (e.g. `"repos/myapp"`). The run is confined to the workspace.\n4b. **Model and effort.** The owner sets per-provider defaults in the agent settings; omit `model`/`effort` to use them. Override per task only when the task warrants it (e.g. `model: "opus", effort: "high"` for a deep review; a cheaper model for a mechanical rename) — and say why in `purpose`.\n5. **Read the result as data.** `resultText` is the CLI\'s final answer. `isError: true` means the run failed — read `errorDetail`, fix the cause (or report it), do NOT blindly retry. `errorDetail` starting with `subscription_limit_reached` means the owner\'s plan window is exhausted: report it and stop — retrying cannot help until the window resets.\n6. **Report costs honestly.** `costUsd` is the notional cost the CLI reports (informative under subscription). Each agent has a daily cap; when it is hit the tool refuses to start and tells you why.\n\n### Review-required (write-mode work)\n\nCode you changed is NOT done until it has been reviewed. This is a hard rule, learned from harnesses that let coders self-certify.\n\n1. **Never conclude "done" directly after a successful write-mode `code_task` (or hand-written code changes).** The work\'s state is "review-required".\n2. **If you can delegate** (you have an `assign_*` tool whose description names a code reviewer), delegate the review yourself: pass WHAT was asked, WHAT changed (files + one-line each), and how to verify. The reviewer answers with a structured verdict (`approve` / `request_changes` + findings). If you hold the "Request a review" skill, follow it — the reviewer starts blind, and what you put in that request decides whether the review is worth its cost.\n3. **If you cannot delegate** (you are a worker), end your written ANSWER with a prominent `REVIEW-REQUIRED` marker plus the list of changed files and how to verify — that text is what your orchestrator receives, and it dispatches the review from it. `return_result` carries none of it. Never present write-mode work as finished without it.\n4. **On `request_changes`**: fix the findings (one more write-mode run), then request the review ONCE more. Maximum 2 review rounds total.\n5. **After 2 failed rounds, escalate — do not loop.** Tell the owner on their channel what was attempted and what still fails (the remaining findings), write the same thing as your answer, and finish with `return_result` status "blocked". Retrying past 2 rounds only burns budget and anti-loop caps.\n6. **If no reviewer exists anywhere**, say so explicitly in your final result: the work is delivered UNREVIEWED and the owner should review it or attach a reviewer agent.\n\n### Approval vs Yolo\n\nBy default **every run pauses for the owner\'s approval**. They decide on your `purpose` — one plain sentence, IN THEIR LANGUAGE, of what the task does and why. With a real downside (write mode: modifies files, installs deps), also fill `impact`. If **Yolo mode** is enabled for this agent, runs start immediately — still fill `purpose`/`impact` for the record.\n'},T,I,S,{slug:"tool-create-mcp",name:"Using create_mcp",description:"How to format a create_mcp call correctly — http/stdio, where the API key goes, examples.",requiredBuiltins:[],kind:"agent-internal",content:'## Using create_mcp\n\nProvision an MCP server so its tools become available in this workspace. The call is VERIFIED by actually connecting before anything is saved, so a wrong format fails loudly — get it right the first time.\n\n### Fields\n- **name**: human-readable label.\n- **slug**: lowercase-with-hyphens, unique in the workspace. It prefixes the server\'s tool names.\n- **transport**: `"http"` (remote server) or `"stdio"` (local subprocess).\n\n**transport "http":**\n- **url**: the endpoint, WITHOUT the key in it.\n- **apiKey**: the key/token — it goes HERE, never inside the url.\n- **authScheme**: how the key is sent — `"header"` (default), `"query"`, or `"bearer"`.\n- **authParamName**: the header name or query-param name that carries the key (omit only for bearer).\n\n**transport "stdio":** command, args, env.\n\n### #1 mistake: the key inside the URL\nIf you are given a URL like `https://host/api/mcp?api_key=cog_ABC`, do NOT pass that whole string as `url`. **Split it**:\n- url → `https://host/api/mcp`\n- apiKey → `cog_ABC`\n- authScheme → `query`\n- authParamName → `api_key`\n\nThe tool re-attaches the key correctly. Passing the key inside `url` (with `apiKey` empty) fails with: `transport "http" requires an apiKey`.\n\n### Worked example — key as a query param\n```json\n{\n "name": "Cogni Cortex",\n "slug": "cogni-cortex",\n "transport": "http",\n "url": "https://cogni-web-psi.vercel.app/api/mcp",\n "apiKey": "cog_ABC123",\n "authScheme": "query",\n "authParamName": "api_key"\n}\n```\n\n### Worked example — Bearer token\n```json\n{ "name": "Acme", "slug": "acme", "transport": "http", "url": "https://api.acme.com/mcp", "apiKey": "sk-live-...", "authScheme": "bearer" }\n```\n\n### Making it usable: attach it to an agent\nCreating the server does NOT make any agent able to use it. To give its tools to an agent, pass **`attachToAgentSlug`** in the same call — e.g. add `"attachToAgentSlug": "my-agent"`. (Or attach later with `attach_mcp`.) If you skip this, no agent can call the MCP\'s tools.\n\n### Common mistakes\n- ❌ creating the MCP then delegating, without attaching → the agent reports "I don\'t have that tool". Pass `attachToAgentSlug` or call `attach_mcp`.\n- ❌ key inside `url` → ✅ key in `apiKey` + the matching `authScheme`/`authParamName`.\n- ❌ omitting `authParamName` for header/query schemes → it is required (only `bearer` omits it).\n- ❌ reusing a slug already in the workspace → choose a unique one.\n'},A,N,C,D,R];U.map(e=>e.slug);let j=e=>U.filter(t=>(t.kind??"capability")===e).map(e=>e.slug);j("baseline"),j("channel"),j("capability"),j("agent-internal");let B=U.filter(e=>!0===e.toolGroup).map(e=>e.slug)}}]);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6861],{10065:(e,t,n)=>{n.d(t,{XR:()=>i,gJ:()=>o,WG:()=>s});var l=n(55374);async function*r(e){let t=e.getReader(),n=new TextDecoder,l="";try{for(;;){let{done:e,value:r}=await t.read();if(e)break;let a=(l+=n.decode(r,{stream:!0})).search(/\r?\n\r?\n/);for(;-1!==a;){let e=l.slice(0,a);l=l.slice(a+(/\r\n\r\n/.test(l.slice(a,a+4))?4:2));let t=function(e){let t="message",n=[];for(let l of e.split(/\r?\n/))l.startsWith("event:")?t=l.slice(6).trim():l.startsWith("data:")&&n.push(l.slice(5).replace(/^ /,""));return 0===n.length?null:{event:t,data:n.join("\n")}}(e);t&&(yield t),a=l.search(/\r?\n\r?\n/)}}}finally{t.releaseLock()}}async function a(e){let t;try{t=await (0,l.W)({conversationId:e.conversationId,message:e.message})}catch(e){return{ok:!1,message:e instanceof Error?e.message:"Could not send the message"}}return t.ok?{ok:!0,reply:t.data?.reply??"",streamed:!1}:{ok:!1,message:t.message}}async function o(e){let t;try{t=await fetch("/api/chat/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({conversationId:e.conversationId,message:e.message})})}catch{return a(e)}if(!t.ok||null===t.body)return a(e);let n="";try{for await(let a of r(t.body)){if("delta"===a.event){let t=JSON.parse(a.data).text;if("string"!=typeof t)continue;n+=t,e.onText(n);continue}if("done"===a.event){let t=JSON.parse(a.data),n="string"==typeof t.reply?t.reply:"";return e.onText(n),{ok:!0,reply:n,streamed:!0===t.streamed}}if("error"===a.event){var l;let e=JSON.parse(a.data).error;return{ok:!1,message:(l="string"==typeof e?e:"","agent_no_llm_configured"===l?"This agent has no model configured":"agent_inactive"===l?"This conversation’s agent is disabled.":"conversation_not_found"===l?"Conversation not found":"The agent did not reply")}}}}catch{}return{ok:!1,message:"The reply was interrupted"}}async function s(e){try{let t=await fetch("/api/chat/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({conversationId:e})}),n=await t.json().catch(()=>null);return{ok:t.ok,stopped:t.ok&&n?.stopped===!0}}catch{return{ok:!1,stopped:!1}}}async function i(e){let t;try{t=await fetch("/api/chat/live",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({conversationId:e.conversationId}),signal:e.signal})}catch{return"lost"}if(204===t.status)return"none";if(!t.ok||null===t.body)return"lost";let n="";try{for await(let l of r(t.body)){let t=JSON.parse(l.data);if("start"===l.event){e.onStart("number"==typeof t.startedAt?t.startedAt:null);continue}if("delta"===l.event&&"string"==typeof t.text){n+=t.text,e.onText(n);continue}if("end"===l.event)return"ended"}}catch{}return"lost"}},10975:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var l={default:function(){return u},getImageProps:function(){return d}};for(var r in l)Object.defineProperty(t,r,{enumerable:!0,get:l[r]});let a=n(57546),o=n(30065),s=n(76937),i=a._(n(5491));function d(e){let{props:t}=(0,o.getImgProps)(e,{defaultLoader:i.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,n]of Object.entries(t))void 0===n&&delete t[e];return{props:t}}let u=s.Image},19176:(e,t,n)=>{n.d(t,{default:()=>r.a});var l=n(10975),r=n.n(l)},39382:(e,t,n)=>{n.d(t,{W:()=>r});var l=n(2439);let r=(0,l.createServerReference)("405821e658de13743362db364876ea9dfebb497d8e",l.callServer,void 0,l.findSourceMapURL,"listKeyModelsAction")},40022:(e,t,n)=>{n.d(t,{default:()=>k});var l=n(48503),r=n(80351),a=n(73573),o=n(68926),s=n(12871),i=n(76381),d=n(86045),u=n(41716);function c({name:e,label:t,tone:n="text-ink",open:a,title:o,disabled:s=!1,rows:i,value:d,onToggle:m,onPick:p,onClose:h}){let g=(0,r.useRef)(null),x=()=>g.current?.focus();return(0,l.jsxs)("span",{className:"relative flex min-w-0 items-center",children:[(0,l.jsxs)("button",{ref:g,type:"button","aria-haspopup":"listbox","aria-expanded":a,title:o,"data-testid":`inline-select-${e}`,disabled:s,onClick:m,className:`flex min-w-0 cursor-pointer items-center gap-1 text-mono-12 ${n} disabled:cursor-not-allowed disabled:opacity-50`,children:[(0,l.jsx)("span",{className:"truncate",children:t}),(0,l.jsx)(u.a,{size:12,"aria-hidden":!0,className:"shrink-0 text-ink-4"})]}),a&&(0,l.jsx)(f,{name:e,rows:i,value:d,onPick:e=>{p(e),x()},onClose:()=>{h(),x()}})]})}function f({name:e,rows:t,value:n,onPick:a,onClose:o}){let s=t.filter(e=>"option"===e.kind),i=s.findIndex(e=>e.value===n),[d,u]=(0,r.useState)(i>=0?i:0),c=(0,r.useRef)(null);function m(e){0===s.length||s.every(e=>e.disabled)||u(t=>{let n=t;do n=(n+e+s.length)%s.length;while(s[n]?.disabled);return n})}function p(e){e.disabled||a(e.value)}return(0,r.useEffect)(()=>{c.current?.focus()},[]),(0,l.jsx)("div",{ref:c,role:"listbox",tabIndex:-1,"aria-label":e,"data-testid":`inline-select-${e}-list`,onKeyDown:e=>{if("ArrowDown"===e.key)e.preventDefault(),m(1);else if("ArrowUp"===e.key)e.preventDefault(),m(-1);else if("Enter"===e.key){e.preventDefault();let t=s[d];t&&p(t)}else"Escape"===e.key&&(e.preventDefault(),o())},className:"absolute bottom-full left-0 z-20 mb-1.5 max-h-[300px] min-w-[180px] overflow-y-auto rounded-xl border border-rule-2 bg-paper p-1 shadow focus:outline-none",children:t.map((e,t)=>"heading"===e.kind?(0,l.jsx)("p",{className:"px-2 pt-2 pb-1 text-mono-12 text-ink-4",children:e.label},`h-${t}`):(0,l.jsxs)("button",{type:"button",role:"option","aria-selected":e.value===n,"aria-disabled":!0===e.disabled||void 0,disabled:!0===e.disabled,title:e.hint,"data-value":e.value,onClick:()=>p(e),onMouseEnter:()=>{e.disabled||u(s.indexOf(e))},className:`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-mono-12 disabled:cursor-not-allowed disabled:opacity-40 ${s[d]===e?"bg-hover":""} ${e.value===n?"text-ink":"text-ink-2"}`,children:[(0,l.jsx)("span",{"aria-hidden":"true",className:"w-2 shrink-0 text-ink-3",children:e.value===n?"•":""}),(0,l.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.label})]},`o-${e.value}`))})}var m=n(39382),p=n(2439);let h=(0,p.createServerReference)("40c4a5e3512db90acb59c32c5a626295126d66bcfb",p.callServer,void 0,p.findSourceMapURL,"setAgentModelAndEffortAction");var g=n(63133);function x({agentId:e,llmKeyId:t,model:n,reasoningEffort:a,llmKeys:s,requireTools:i}){let[u,f]=(0,r.useState)({llmKeyId:t,model:n,effort:a??""}),[p,b]=(0,r.useState)(null),[y,w]=(0,r.useTransition)(),[k,j]=(0,r.useState)({}),S=(0,r.useRef)(null);if((0,r.useEffect)(()=>{let e=u.llmKeyId;if(null===e||void 0!==k[e])return;let t=!0;return(0,m.W)(e).then(n=>{t&&j(t=>({...t,[e]:n.ok?n.data:[]}))}),()=>{t=!1}},[u.llmKeyId,k]),(0,d.Z4)(null!==p,()=>b(null)),(0,r.useEffect)(()=>{if(null!==p)return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)};function e(e){S.current&&!S.current.contains(e.target)&&b(null)}},[p]),0===s.length||null===u.llmKeyId)return null;let N=u.llmKeyId,R=s.find(e=>e.id===N)??null,I=R?.provider??"",C=(0,g.jd)(I,k[N]??[]),T=(0,g.oF)(I,u.model);function A(t){b(null),(t.llmKeyId!==u.llmKeyId||t.model!==u.model||t.effort!==u.effort)&&w(async()=>{let n=await h({agentId:e,llmKeyId:t.llmKeyId,model:t.model,reasoningEffort:""===t.effort?null:t.effort});n.ok?f(t):o.oR.error(n.message)})}function $(e,t){return""===u.effort?"":(0,g.oF)(e,t).includes(u.effort)?u.effort:""}let E=s.map(e=>({kind:"option",value:e.id,label:(0,g.ZR)(e)})),M=[];for(let e of(""===u.model||(0,g.Fq)(C,u.model)||M.push({kind:"option",value:u.model,label:u.model}),C))for(let t of(null!==e.group&&M.push({kind:"heading",label:e.group}),e.models)){let e=(0,g.dl)(t,i);M.push(null===e?{kind:"option",value:t.modelId,label:t.label}:{kind:"option",value:t.modelId,label:t.label,disabled:!0,hint:e})}let P=[{kind:"option",value:"",label:"auto"},...T.map(e=>({kind:"option",value:e,label:(g.Ti[e]??e).toLowerCase()}))];return(0,l.jsxs)("div",{ref:S,title:"Sets the agent's setting for every channel",className:"flex h-[30px] items-center gap-1.5 rounded-md border border-rule-2 py-1.5 pr-2 pl-2.5",children:[(0,l.jsx)(c,{name:"provider",label:null===R?"—":(0,g.ZR)(R),tone:"text-feed-metric",open:"provider"===p,disabled:y,rows:E,value:N,onToggle:()=>b("provider"===p?null:"provider"),onPick:function(e){let t=s.find(t=>t.id===e)?.provider??"",n=(0,g.bG)(t);A({llmKeyId:e,model:n,effort:$(t,n)})},onClose:()=>b(null)}),(0,l.jsx)(v,{}),(0,l.jsx)(c,{name:"model",label:""===u.model?"—":u.model,tone:"text-feed-model",open:"model"===p,disabled:y,rows:M,value:u.model,onToggle:()=>b("model"===p?null:"model"),onPick:e=>A({llmKeyId:N,model:e,effort:$(I,e)}),onClose:()=>b(null)}),(0,l.jsx)(v,{}),(0,l.jsx)(c,{name:"effort",label:`effort ${""===u.effort?"auto":(g.Ti[u.effort]??u.effort).toLowerCase()}`,tone:"text-feed-metric",open:"effort"===p,title:0===T.length?"This model offers no reasoning setting":void 0,disabled:y||0===T.length,rows:P,value:u.effort,onToggle:()=>b("effort"===p?null:"effort"),onPick:e=>A({llmKeyId:N,model:u.model,effort:e}),onClose:()=>b(null)})]})}function v(){return(0,l.jsx)("span",{"aria-hidden":"true",className:"text-mono-12 text-ink-4",children:"\xb7"})}var b=n(40284),y=n(10065);function w(e){e.style.height="auto";let t=Math.max(e.scrollHeight,40);e.style.height=`${Math.min(t,200)}px`}function k({conversationId:e,agentName:t,placeholder:n,onBeforeSend:d,onSent:u,onSendFailed:c,agentId:f,llmKeyId:m,model:p,reasoningEffort:h,llmKeys:g,requireTools:v=!1}){let j=(0,a.useRouter)(),[S,N]=(0,r.useState)(""),R=(0,r.useRef)(null),I=(0,r.useRef)(null),C=(0,r.useRef)(Promise.resolve()),T=(0,r.useRef)(null),[A,$]=(0,r.useState)(null),[E,M]=(0,r.useState)(null),P=""!==S.trim(),K=(0,b.i6)(),O=A??(null!==K.live?`live:${K.live.seq}`:null),L=null!==O&&E===O;function _(){let t=S.trim();if(""===t)return;let n=K.begin(t);N(""),R.current&&(R.current.value="",w(R.current)),C.current=C.current.then(async()=>{let l=()=>{K.end(n),N(e=>""===e.trim()?t:`${t}
|
|
2
|
+
|
|
3
|
+
${e}`)},r=e;if(d)try{I.current??=d(),r=await I.current}catch(e){I.current=null,o.oR.error(e instanceof Error?e.message:"Could not open the conversation"),l();return}if(""===r){o.oR.error("No conversation to write to"),l();return}T.current=r,$(r);let a=await (0,y.gJ)({conversationId:r,message:t,onText:e=>K.stream(n,e)});if(T.current=null,$(null),M(null),!a.ok){o.oR.error(a.message),d&&c&&(I.current=null,c(r)),l();return}K.settle(n),u?u(r):j.refresh(),await Promise.race([K.rendered(n),new Promise(e=>setTimeout(e,15e3))])})}let q=null!==O&&!P;return(0,l.jsxs)("div",{className:"mx-auto flex w-full max-w-[760px] flex-col gap-2 rounded-xl border border-rule bg-feed-composer px-4 pt-3 pb-2.5",children:[(0,l.jsx)(i.A,{ref:R,bare:!0,rows:2,value:S,onChange:e=>{N(e.target.value),w(e.target)},onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),_())},placeholder:void 0!==n?n:null!=t&&""!==t?`Reply to ${t}…`:"Reply…",containerClassName:"min-w-0",className:"block max-h-[200px] min-h-[40px] w-full resize-none overflow-y-auto bg-transparent px-0 py-0 text-body-14 placeholder:text-ink-2/70"}),(0,l.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[null!=f&&""!==f&&(0,l.jsx)(x,{agentId:f,llmKeyId:m??null,model:p??"",reasoningEffort:h??null,llmKeys:g??[],requireTools:v},`${m??""}:${p??""}:${h??""}`),q?(0,l.jsxs)(s.A,{variant:"ink",size:"sm",onClick:function(){let t=T.current??(null!==K.live?e:null);null===t||null===O||L||(M(O),(0,y.WG)(t).then(e=>{!e.stopped&&(M(null),e.ok||o.oR.error("Could not stop the answer"))}))},disabled:L,"aria-label":"Stop the answer","data-testid":"composer-stop",children:[(0,l.jsx)("span",{"aria-hidden":"true",className:"block size-2.5 rounded-[2px] bg-canvas"}),"Stop"]}):(0,l.jsx)(s.A,{variant:P?"ink":"neutral",size:"sm",onClick:_,disabled:!P,"data-testid":"composer-send",children:"Send"})]})]})}},40284:(e,t,n)=>{n.d(t,{PendingTurnProvider:()=>m,default:()=>x,i6:()=>p});var l=n(48503),r=n(80351),a=n(73573),o=n(25297),s=n(45413),i=n(65768),d=n(1678),u=n(10065);let c=(0,r.createContext)({pending:[],inFlight:!1,awaitingReply:!1,streamingReply:"",live:null,begin:()=>0,stream:()=>{},settle:()=>{},end:()=>{},rendered:()=>Promise.resolve()});function f(e,t){let n=0;for(let l of e)l===t&&n++;return n}function m({requests:e,awaitingReply:t,conversationId:n,children:o}){let[s,i]=(0,r.useState)([]),d=(0,r.useRef)(0),p=(0,a.useRouter)(),h=s.some(e=>!e.settled),g=void 0!==n&&t&&!h,[x,v]=(0,r.useState)(null),b=(0,r.useRef)(0),[y,w]=(0,r.useTransition)(),k=(0,r.useRef)(null),j=e.length;(0,r.useEffect)(()=>{if(!g||void 0===n)return;let e=new AbortController;return(0,u.XR)({conversationId:n,signal:e.signal,onStart:e=>v({reply:"",startedAt:e,seq:++b.current}),onText:e=>v(t=>({reply:e,startedAt:t?.startedAt??null,seq:t?.seq??++b.current}))}).then(t=>{if(!e.signal.aborted){if("ended"===t){k.current=b.current,w(()=>p.refresh());return}"none"===t&&p.refresh(),v(null)}}),()=>e.abort()},[g,n,j,p]),(0,r.useEffect)(()=>{let e=k.current;y||null===e||(k.current=null,v(t=>null!==t&&t.seq<=e?null:t))},[y]);let S=s.filter(t=>f(e,t.text)<=t.baseline),N=e=>{let t=s.find(t=>t.id===e);return void 0===t||t.settled&&!S.includes(t)},R=(0,r.useRef)(new Map);(0,r.useEffect)(()=>{for(let[e,t]of R.current)N(e)&&(R.current.delete(e),t())});let I={pending:S,inFlight:h,awaitingReply:t,streamingReply:s.find(e=>!e.settled)?.reply??"",live:g?x:null,begin:t=>{let n=++d.current,l=f(e,t)+f(S.map(e=>e.text),t);return i(r=>[...r.filter(t=>!t.settled||f(e,t.text)<=t.baseline),{id:n,text:t,baseline:l,settled:!1,reply:""}]),n},stream:(e,t)=>i(n=>n.map(n=>n.id===e?{...n,reply:t}:n)),settle:e=>i(t=>t.map(t=>t.id===e?{...t,settled:!0}:t)),end:e=>i(t=>t.filter(t=>t.id!==e)),rendered:e=>new Promise(t=>{R.current.set(e,t)})};return(0,l.jsx)(c.Provider,{value:I,children:o})}function p(){return(0,r.useContext)(c)}function h({since:e}){let t,[n,a]=(0,r.useState)(()=>Date.now());return(0,r.useEffect)(()=>{let e=setInterval(()=>a(Date.now()),1e3);return()=>clearInterval(e)},[]),(0,l.jsx)("span",{"data-testid":"pending-elapsed",children:(t=Math.max(0,Math.floor((n-e)/1e3)))<60?`${String(t)}s`:`${String(Math.floor(t/60))}m ${String(t%60).padStart(2,"0")}s`})}function g({agentName:e,agentAvatarUrl:t,reply:n="",startedAt:r=null}){return(0,l.jsxs)("div",{className:"min-w-0 pt-6","data-testid":"pending-thinking",children:[(0,l.jsxs)("div",{className:"mb-1.5 flex items-center gap-2.5",children:[(0,l.jsx)(o.A,{name:e,imageUrl:t,size:"sm",shape:"square"}),(0,l.jsx)("span",{className:"text-title-15 text-ink",children:e})]}),""===n?(0,l.jsxs)("div",{className:"flex items-center gap-2 text-mono-11 text-feed-reasoning",children:[(0,l.jsxs)("span",{className:"flex items-center gap-1","aria-hidden":"true",children:[(0,l.jsx)("span",{className:"h-1.5 w-1.5 animate-bounce rounded-full bg-feed-reasoning"}),(0,l.jsx)("span",{className:"h-1.5 w-1.5 animate-bounce rounded-full bg-feed-reasoning [animation-delay:150ms]"}),(0,l.jsx)("span",{className:"h-1.5 w-1.5 animate-bounce rounded-full bg-feed-reasoning [animation-delay:300ms]"})]}),(0,l.jsx)("span",{children:"thinking"}),null!==r&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{"aria-hidden":"true",children:"\xb7"}),(0,l.jsx)(h,{since:r})]})]}):(0,l.jsx)("div",{"data-testid":"pending-reply",children:(0,l.jsx)(s.Ay,{text:n})})]})}function x({agentName:e,agentAvatarUrl:t=null}){let{pending:n,inFlight:r,awaitingReply:a,streamingReply:o,live:u}=p(),c=a&&(r||null!==u);return 0!==n.length||c?(0,l.jsxs)("div",{className:"mx-auto max-w-[760px]","data-testid":"pending-turn","aria-live":"polite",children:[c&&(0,l.jsx)(g,{agentName:e,agentAvatarUrl:t,reply:r?o:u?.reply??"",startedAt:r?null:u?.startedAt??null}),n.map((n,r)=>(0,l.jsxs)("div",{children:[(0,l.jsx)("div",{className:"flex justify-end pt-6","data-testid":"pending-message",children:(0,l.jsxs)("div",{className:"max-w-[80%] min-w-0",children:[(0,l.jsx)("p",{className:"mb-1.5 text-right text-mono-11 text-ink-4",children:(0,d.fG)({channel:"dashboard",scheduleName:null,chatId:null})}),(0,l.jsx)("div",{className:"rounded-xl bg-hover px-4 py-3","data-testid":"pending-text",children:(0,l.jsx)(i.default,{plain:n.text,children:(0,l.jsx)(s.Ay,{text:n.text,tone:"user"})})})]})}),!c&&0===r&&(0,l.jsx)(g,{agentName:e,agentAvatarUrl:t,reply:n.reply})]},n.id))]}):null}},41716:(e,t,n)=>{n.d(t,{a:()=>s});var l=n(80351),r=n(3674),a=n(91692);let o=l.forwardRef((e,t)=>l.createElement(r.A,{ref:t,...e,weights:a.A}));o.displayName="CaretDownIcon";let s=o},55374:(e,t,n)=>{n.d(t,{W:()=>r});var l=n(2439);let r=(0,l.createServerReference)("40b253f4c6b667404d2ef2e86278f92385b991fc49",l.callServer,void 0,l.findSourceMapURL,"sendChatMessageAction")},63133:(e,t,n)=>{n.d(t,{$8:()=>c,Fq:()=>d,Ti:()=>s,ZR:()=>f,bG:()=>u,dl:()=>m,jd:()=>i,oF:()=>o});var l=n(13316),r=n(64119);let a=["low","medium","high","max"];function o(e,t){let n=(0,l.mVm)(e,t)?.capabilities.reasoningControl;if(!n)return[];let r="onoff"===n.kind?[]:"budget"===n.kind?a.filter(e=>n.budgets?.[e]):n.levels??[];return n.mandatory?[...r]:[...r,"off"]}let s={off:"Off",low:"Low",medium:"Medium",high:"High",max:"Max"};function i(e,t){let n=l.SVi[e]??[],r=(0,l.eSe)(n).map(({group:e,models:t})=>({group:e,models:t.map(e=>({modelId:e.modelId,label:(0,l.HgT)(e),entry:e}))})),a=new Set(n.map(e=>e.modelId)),o=t.filter(e=>!a.has(e));return o.length>0&&r.push({group:"Live from provider",models:o.map(e=>({modelId:e,label:e}))}),r}function d(e,t){return e.some(e=>e.models.some(e=>e.modelId===t))}function u(e){return l.SVi[e]?.[0]?.modelId??""}function c(e){let t=(0,r.R)(e.provider);return`${e.nickname??t} (${t})`}function f(e){let t=e.nickname?.trim();return void 0!==t&&""!==t?t:(0,r.R)(e.provider)}function m(e,t){return!t||void 0===e.entry||e.entry.capabilities.tools?null:"Can't use tools (required for a router/planner)"}},64119:(e,t,n)=>{n.d(t,{R:()=>l});function l(e){switch(e){case"openai-compatible":return"Local LLM";case"anthropic":return"Anthropic";case"openai":return"OpenAI";case"ollama":return"Ollama";case"openrouter":return"OpenRouter";case"google":return"Google";case"mistral":return"Mistral";case"groq":return"Groq";case"deepseek":return"DeepSeek";case"minimax":return"MiniMax";case"moonshot":return"Moonshot (Kimi)";default:return e}}}}]);
|