botmancers 0.5.0 → 0.7.0
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/CHANGELOG.md +81 -0
- package/README.md +17 -12
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +9 -2
- package/app/.next/build-manifest.json +3 -3
- package/app/.next/node_modules/@slack/socket-mode-77e8cba3b9ba4738/index.js +1 -0
- package/app/.next/node_modules/@slack/socket-mode-77e8cba3b9ba4738/package.json +1 -0
- package/app/.next/node_modules/@slack/web-api-d6dbe405b6902642/index.js +1 -0
- package/app/.next/node_modules/@slack/web-api-d6dbe405b6902642/package.json +1 -0
- package/app/.next/prerender-manifest.json +4 -4
- package/app/.next/required-server-files.json +8 -3
- package/app/.next/routes-manifest.json +67 -12
- package/app/.next/server/app/_global-error/page.js +1 -1
- package/app/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next/server/app/_global-error.html +1 -1
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page.js +1 -1
- package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_not-found.html +1 -1
- package/app/.next/server/app/_not-found.rsc +2 -2
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/api/bots/[id]/config/route.js +3 -3
- package/app/.next/server/app/api/bots/[id]/config/route.js.nft.json +1 -1
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route.js +5 -6
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route.js.nft.json +1 -1
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js +3 -3
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route.js +11 -0
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route.js.nft.json +1 -0
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/bots/[id]/sessions/route.js +5 -6
- package/app/.next/server/app/api/bots/[id]/sessions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/bots/[id]/share-policy/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/bots/[id]/share-policy/route.js +11 -0
- package/app/.next/server/app/api/bots/[id]/share-policy/route.js.nft.json +1 -0
- package/app/.next/server/app/api/bots/[id]/share-policy/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/bots/[id]/skill/route.js +3 -3
- package/app/.next/server/app/api/bots/[id]/skill/route.js.nft.json +1 -1
- package/app/.next/server/app/api/bots/availability/route.js +3 -2
- package/app/.next/server/app/api/bots/availability/route.js.nft.json +1 -1
- package/app/.next/server/app/api/bots/delete-preview/route.js +3 -3
- package/app/.next/server/app/api/bots/delete-preview/route.js.nft.json +1 -1
- package/app/.next/server/app/api/bots/import/route.js +3 -3
- package/app/.next/server/app/api/bots/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/bots/manage/route.js +3 -3
- package/app/.next/server/app/api/bots/manage/route.js.nft.json +1 -1
- package/app/.next/server/app/api/bots/name-migrations/route.js +3 -3
- package/app/.next/server/app/api/bots/name-migrations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/bots/route.js +7 -7
- package/app/.next/server/app/api/bots/route.js.nft.json +1 -1
- package/app/.next/server/app/api/conversations/[id]/approve/route.js +4 -4
- package/app/.next/server/app/api/conversations/[id]/approve/route.js.nft.json +1 -1
- package/app/.next/server/app/api/conversations/[id]/deny/route.js +4 -4
- package/app/.next/server/app/api/conversations/[id]/deny/route.js.nft.json +1 -1
- package/app/.next/server/app/api/conversations/[id]/draft/route.js +4 -4
- package/app/.next/server/app/api/conversations/[id]/draft/route.js.nft.json +1 -1
- package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js +3 -3
- package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js.nft.json +1 -1
- package/app/.next/server/app/api/conversations/[id]/messages/route.js +7 -7
- package/app/.next/server/app/api/conversations/[id]/messages/route.js.nft.json +1 -1
- package/app/.next/server/app/api/conversations/[id]/route.js +3 -3
- package/app/.next/server/app/api/conversations/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/conversations/[id]/stop/route.js +4 -4
- package/app/.next/server/app/api/conversations/[id]/stop/route.js.nft.json +1 -1
- package/app/.next/server/app/api/conversations/route.js +3 -3
- package/app/.next/server/app/api/conversations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/exchanges/[id]/cancel/route.js +4 -4
- package/app/.next/server/app/api/exchanges/[id]/cancel/route.js.nft.json +1 -1
- package/app/.next/server/app/api/exchanges/[id]/route.js +5 -5
- package/app/.next/server/app/api/exchanges/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/exchanges/route.js +6 -6
- package/app/.next/server/app/api/exchanges/route.js.nft.json +1 -1
- package/app/.next/server/app/api/files/[name]/route.js +1 -1
- package/app/.next/server/app/api/files/[name]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/groups/route.js +3 -3
- package/app/.next/server/app/api/groups/route.js.nft.json +1 -1
- package/app/.next/server/app/api/health/route.js +5 -2
- package/app/.next/server/app/api/health/route.js.nft.json +1 -1
- package/app/.next/server/app/api/import-capabilities/route.js +1 -1
- package/app/.next/server/app/api/import-capabilities/route.js.nft.json +1 -1
- package/app/.next/server/app/api/marketplace-handoff/route.js +1 -1
- package/app/.next/server/app/api/marketplace-handoff/route.js.nft.json +1 -1
- package/app/.next/server/app/api/marketplace-handoff/status/route.js +1 -1
- package/app/.next/server/app/api/marketplace-handoff/status/route.js.nft.json +1 -1
- package/app/.next/server/app/api/mcp/route.js +3 -3
- package/app/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/app/.next/server/app/api/messages/[id]/between/route.js +3 -3
- package/app/.next/server/app/api/messages/[id]/between/route.js.nft.json +1 -1
- package/app/.next/server/app/api/runtime-connections/route.js +3 -3
- package/app/.next/server/app/api/runtime-connections/route.js.nft.json +1 -1
- package/app/.next/server/app/api/service-grants/route.js +3 -3
- package/app/.next/server/app/api/service-grants/route.js.nft.json +1 -1
- package/app/.next/server/app/api/shares/[shareRef]/revoke/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/shares/[shareRef]/revoke/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/shares/[shareRef]/revoke/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/shares/[shareRef]/revoke/route.js +11 -0
- package/app/.next/server/app/api/shares/[shareRef]/revoke/route.js.nft.json +1 -0
- package/app/.next/server/app/api/shares/[shareRef]/revoke/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/shares/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/shares/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/shares/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/shares/route.js +11 -0
- package/app/.next/server/app/api/shares/route.js.nft.json +1 -0
- package/app/.next/server/app/api/shares/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js +5 -6
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js +5 -6
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js +4 -4
- package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/agents/[agentId]/pins/route.js +5 -6
- package/app/.next/server/app/api/v0/agents/[agentId]/pins/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/agents/[agentId]/route.js +5 -6
- package/app/.next/server/app/api/v0/agents/[agentId]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js +5 -6
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js +5 -6
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/agents/route.js +5 -6
- package/app/.next/server/app/api/v0/agents/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/capabilities/route.js +5 -6
- package/app/.next/server/app/api/v0/capabilities/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/conversations/[id]/route.js +4 -4
- package/app/.next/server/app/api/v0/conversations/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js +5 -6
- package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/exchanges/[id]/route.js +5 -6
- package/app/.next/server/app/api/v0/exchanges/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/exchanges/route.js +5 -6
- package/app/.next/server/app/api/v0/exchanges/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/mcp/route.js +6 -7
- package/app/.next/server/app/api/v0/mcp/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route.js +5 -6
- package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route.js +5 -6
- package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/pins/[pinRef]/route.js +5 -6
- package/app/.next/server/app/api/v0/pins/[pinRef]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/requests/[id]/route.js +4 -4
- package/app/.next/server/app/api/v0/requests/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js +5 -6
- package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/sessions/[ref]/pins/route.js +5 -6
- package/app/.next/server/app/api/v0/sessions/[ref]/pins/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/sessions/[ref]/shares/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/shares/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/shares/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/shares/route.js +11 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/shares/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/shares/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route.js +11 -0
- package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/shares/[shareRef]/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/shares/[shareRef]/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/shares/[shareRef]/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/shares/[shareRef]/route.js +11 -0
- package/app/.next/server/app/api/v0/shares/[shareRef]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/shares/[shareRef]/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/shares/current/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/shares/current/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/shares/current/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/shares/current/route.js +11 -0
- package/app/.next/server/app/api/v0/shares/current/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/shares/current/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/shares/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/shares/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/shares/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/shares/route.js +11 -0
- package/app/.next/server/app/api/v0/shares/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/shares/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js +4 -4
- package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js.nft.json +1 -1
- package/app/.next/server/app/api/wakes/[id]/decision/route.js +4 -4
- package/app/.next/server/app/api/wakes/[id]/decision/route.js.nft.json +1 -1
- package/app/.next/server/app/api/wakes/[id]/retry/route.js +4 -4
- package/app/.next/server/app/api/wakes/[id]/retry/route.js.nft.json +1 -1
- package/app/.next/server/app/bots/[id]/config/page.js +1 -1
- package/app/.next/server/app/bots/[id]/config/page.js.nft.json +1 -1
- package/app/.next/server/app/bots/[id]/config/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/exchanges/page.js +1 -1
- package/app/.next/server/app/exchanges/page.js.nft.json +1 -1
- package/app/.next/server/app/exchanges/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/exchanges.html +1 -1
- package/app/.next/server/app/exchanges.rsc +3 -3
- package/app/.next/server/app/exchanges.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/exchanges.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/exchanges.segments/exchanges/__PAGE__.segment.rsc +3 -3
- package/app/.next/server/app/index.html +1 -1
- package/app/.next/server/app/index.rsc +3 -3
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/page.js +1 -1
- package/app/.next/server/app/page.js.nft.json +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/settings/page.js +1 -1
- package/app/.next/server/app/settings/page.js.nft.json +1 -1
- package/app/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/settings.html +1 -1
- package/app/.next/server/app/settings.rsc +3 -3
- package/app/.next/server/app/settings.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +3 -3
- package/app/.next/server/app/threads/[id]/page.js +1 -1
- package/app/.next/server/app/threads/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/threads/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +9 -2
- package/app/.next/server/chunks/1oeh_server_app_api_bots_[id]_sessions_[ref]_shares_route_actions_1jr6f0v.js +3 -0
- package/app/.next/server/chunks/[externals]_@slack_0owayck._.js +3 -0
- package/app/.next/server/chunks/[externals]__17bolvp._.js +3 -0
- package/app/.next/server/chunks/{[externals]__06lqs5i._.js → [externals]__1eaoma8._.js} +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__0-vcyi-._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0-w_t2y._.js +3 -0
- package/app/.next/server/chunks/{[root-of-the-server]__1_01-13._.js → [root-of-the-server]__029-_9t._.js} +2 -2
- package/app/.next/server/chunks/[root-of-the-server]__02vrtib._.js +4 -0
- package/app/.next/server/chunks/[root-of-the-server]__04b3ml2._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__06w5xhe._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0792yb1._.js +44 -0
- package/app/.next/server/chunks/[root-of-the-server]__07q5mnr._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0888o0_._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0aincj4._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0d3fjix._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__0e_agq4._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0ey3_2x._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0fku-bw._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0iqh5ta._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0ivjcgs._.js +4 -0
- package/app/.next/server/chunks/[root-of-the-server]__0kgnysc._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0mp8bap._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0o9ijih._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0qaiqut._.js +44 -0
- package/app/.next/server/chunks/[root-of-the-server]__0zrx1iz._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__10b5-i-._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__17mum5-._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__17xl_55._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1dxr858._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1eps2a4._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1ggmit0._.js +4 -0
- package/app/.next/server/chunks/{[root-of-the-server]__1y_j43n._.js → [root-of-the-server]__1hwy3jx._.js} +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__1i8glt4._.js +4 -0
- package/app/.next/server/chunks/{[root-of-the-server]__0j0i8xz._.js → [root-of-the-server]__1igzl05._.js} +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__1j8fg_n._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1kczttr._.js +3 -0
- package/app/.next/server/chunks/{[root-of-the-server]__1c3e2ds._.js → [root-of-the-server]__1kik2zt._.js} +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__1v3ikuo._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1x8phwp._.js +44 -0
- package/app/.next/server/chunks/{[root-of-the-server]__0-45blq._.js → [root-of-the-server]__1z5l5cg._.js} +2 -2
- package/app/.next/server/chunks/[root-of-the-server]__200ep0k._.js +3 -0
- package/app/.next/server/chunks/_0061c2q._.js +48 -1
- package/app/.next/server/chunks/_04e2bgj._.js +3 -0
- package/app/.next/server/chunks/_057h7zr._.js +3 -0
- package/app/.next/server/chunks/_05po7b4._.js +3 -0
- package/app/.next/server/chunks/_06sxx0e._.js +3 -0
- package/app/.next/server/chunks/_0a2do3x._.js +1 -1
- package/app/.next/server/chunks/_0ar2ooe._.js +3 -0
- package/app/.next/server/chunks/_0fmotaz._.js +3 -0
- package/app/.next/server/chunks/_0kpfto_._.js +3 -0
- package/app/.next/server/chunks/_0lm6uis._.js +3 -0
- package/app/.next/server/chunks/_0mpu5tl._.js +3 -0
- package/app/.next/server/chunks/_0qv-4by._.js +3 -0
- package/app/.next/server/chunks/_0u9cfq9._.js +3 -0
- package/app/.next/server/chunks/_0ul8k7g._.js +3 -0
- package/app/.next/server/chunks/_1-5mthb._.js +1 -1
- package/app/.next/server/chunks/_1-60d3o._.js +3 -0
- package/app/.next/server/chunks/_133y3b0._.js +3 -0
- package/app/.next/server/chunks/_167960a._.js +3 -0
- package/app/.next/server/chunks/_17vgjlt._.js +3 -0
- package/app/.next/server/chunks/_1amx9_4._.js +3 -0
- package/app/.next/server/chunks/_1b01v-_._.js +3 -0
- package/app/.next/server/chunks/_1c-g4gq._.js +3 -0
- package/app/.next/server/chunks/_1ey6l4p._.js +3 -0
- package/app/.next/server/chunks/_1nlg4x_._.js +3 -0
- package/app/.next/server/chunks/_1x4dqzv._.js +3 -0
- package/app/.next/server/chunks/_1z0qbzc._.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_share-policy_route_actions_0x-p250.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_shares_[shareRef]_revoke_route_actions_1cu5kah.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_shares_route_actions_0wk7x1r.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_sessions_[ref]_shares_route_actions_11fh--7.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_shares_[shareRef]_revoke_route_actions_00rzyj9.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_shares_[shareRef]_route_actions_0i1t5qb.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_shares_current_route_actions_1w_bpas.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_shares_route_actions_1b38was.js +3 -0
- package/app/.next/server/chunks/lib_0-opbv7._.js +316 -0
- package/app/.next/server/chunks/lib_0aejojj._.js +316 -0
- package/app/.next/server/chunks/lib_0il0ml1._.js +316 -0
- package/app/.next/server/chunks/lib_0iujsdg._.js +316 -0
- package/app/.next/server/chunks/lib_0kik6bx._.js +20 -20
- package/app/.next/server/chunks/lib_0pe3tiv._.js +20 -20
- package/app/.next/server/chunks/lib_15adnlz._.js +2172 -0
- package/app/.next/server/chunks/lib_1dehbst._.js +316 -0
- package/app/.next/server/chunks/lib_1z4vnh4._.js +316 -0
- package/app/.next/server/chunks/lib_1zc7-gl._.js +2172 -0
- package/app/.next/server/chunks/lib_agent-api_ts_0iv52-o._.js +3 -0
- package/app/.next/server/chunks/{[root-of-the-server]__0izjfmr._.js → lib_db_ts_1ttuckb._.js} +59 -57
- package/app/.next/server/chunks/lib_service-api-http_ts_0xzqhny._.js +5 -5
- package/app/.next/server/chunks/lib_slack-runtime_ts_0fgsejy._.js +63 -0
- package/app/.next/server/chunks/ssr/{[root-of-the-server]__03186rx._.js → [root-of-the-server]__1smmfpx._.js} +1 -1
- package/app/.next/server/chunks/ssr/_0_fa0na._.js +3 -0
- package/app/.next/server/chunks/ssr/_0a6r_bx._.js +3 -0
- package/app/.next/server/chunks/ssr/_14d-lxn._.js +3 -0
- package/app/.next/server/chunks/ssr/_1cvuhjt._.js +1 -1
- package/app/.next/server/chunks/ssr/_1is_iwu._.js +3 -0
- package/app/.next/server/chunks/ssr/_1n5mvo5._.js +1 -1
- package/app/.next/server/chunks/ssr/_1o94bnv._.js +1 -1
- package/app/.next/server/chunks/ssr/app_bots_[id]_config_page_tsx_1e0uue9._.js +1 -1
- package/app/.next/server/instrumentation.js +4 -0
- package/app/.next/server/middleware-build-manifest.js +3 -3
- package/app/.next/server/middleware.js +1 -1
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +1 -1
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/chunks/1ouuczm-gmvxs.js +1 -0
- package/app/.next/static/chunks/1w72fds3-utrx.js +1 -0
- package/app/.next/static/chunks/2095-o17ji0fs.css +3 -0
- package/app/.next/static/chunks/2q-tgwkalrnms.js +1 -0
- package/app/.next/static/chunks/34bv9o9bjkwk0.js +3 -0
- package/app/.next/static/chunks/3rwwunh5sdjzg.js +1 -0
- package/app/.next/static/chunks/3whw2-l4a2sli.js +1 -0
- package/app/.next/static/chunks/3z3mn526_3fwd.js +1 -0
- package/app/BUILD_INFO.json +2 -2
- package/app/node_modules/@slack/logger/dist/index.js +94 -0
- package/app/node_modules/@slack/logger/package.json +43 -0
- package/app/node_modules/@slack/socket-mode/dist/package.json +67 -0
- package/app/node_modules/@slack/socket-mode/dist/src/SlackWebSocket.js +242 -0
- package/app/node_modules/@slack/socket-mode/dist/src/SocketModeClient.js +363 -0
- package/app/node_modules/@slack/socket-mode/dist/src/UnrecoverableSocketModeStartError.js +14 -0
- package/app/node_modules/@slack/socket-mode/dist/src/errors.js +68 -0
- package/app/node_modules/@slack/socket-mode/dist/src/index.js +13 -0
- package/app/node_modules/@slack/socket-mode/dist/src/logger.js +26 -0
- package/app/node_modules/@slack/socket-mode/package.json +67 -0
- package/app/node_modules/@slack/types/dist/block-kit/block-elements.js +4 -0
- package/app/node_modules/@slack/types/dist/block-kit/blocks.js +3 -0
- package/app/node_modules/@slack/types/dist/block-kit/composition-objects.js +4 -0
- package/app/node_modules/@slack/types/dist/block-kit/extensions.js +3 -0
- package/app/node_modules/@slack/types/dist/calls.js +6 -0
- package/app/node_modules/@slack/types/dist/chunk.js +3 -0
- package/app/node_modules/@slack/types/dist/dialog.js +3 -0
- package/app/node_modules/@slack/types/dist/events/app.js +3 -0
- package/app/node_modules/@slack/types/dist/events/assistant.js +3 -0
- package/app/node_modules/@slack/types/dist/events/call.js +3 -0
- package/app/node_modules/@slack/types/dist/events/channel.js +3 -0
- package/app/node_modules/@slack/types/dist/events/dnd.js +3 -0
- package/app/node_modules/@slack/types/dist/events/email.js +3 -0
- package/app/node_modules/@slack/types/dist/events/emoji.js +3 -0
- package/app/node_modules/@slack/types/dist/events/file.js +4 -0
- package/app/node_modules/@slack/types/dist/events/function.js +3 -0
- package/app/node_modules/@slack/types/dist/events/grid-migration.js +3 -0
- package/app/node_modules/@slack/types/dist/events/group.js +3 -0
- package/app/node_modules/@slack/types/dist/events/im.js +3 -0
- package/app/node_modules/@slack/types/dist/events/index.js +43 -0
- package/app/node_modules/@slack/types/dist/events/invite.js +3 -0
- package/app/node_modules/@slack/types/dist/events/link-shared.js +3 -0
- package/app/node_modules/@slack/types/dist/events/member.js +3 -0
- package/app/node_modules/@slack/types/dist/events/message-metadata.js +3 -0
- package/app/node_modules/@slack/types/dist/events/message.js +3 -0
- package/app/node_modules/@slack/types/dist/events/pin.js +3 -0
- package/app/node_modules/@slack/types/dist/events/reaction.js +3 -0
- package/app/node_modules/@slack/types/dist/events/shared-channel.js +3 -0
- package/app/node_modules/@slack/types/dist/events/star.js +3 -0
- package/app/node_modules/@slack/types/dist/events/steps-from-apps.js +3 -0
- package/app/node_modules/@slack/types/dist/events/subteam.js +3 -0
- package/app/node_modules/@slack/types/dist/events/team.js +3 -0
- package/app/node_modules/@slack/types/dist/events/token.js +3 -0
- package/app/node_modules/@slack/types/dist/events/user.js +3 -0
- package/app/node_modules/@slack/types/dist/index.js +28 -0
- package/app/node_modules/@slack/types/dist/message-attachments.js +3 -0
- package/app/node_modules/@slack/types/dist/message-metadata.js +27 -0
- package/app/node_modules/@slack/types/dist/views.js +3 -0
- package/app/node_modules/@slack/types/package.json +47 -0
- package/app/node_modules/@slack/web-api/dist/WebClient.js +818 -0
- package/app/node_modules/@slack/web-api/dist/chat-stream.js +178 -0
- package/app/node_modules/@slack/web-api/dist/errors.js +80 -0
- package/app/node_modules/@slack/web-api/dist/file-upload.js +360 -0
- package/app/node_modules/@slack/web-api/dist/helpers.js +14 -0
- package/app/node_modules/@slack/web-api/dist/index.js +39 -0
- package/app/node_modules/@slack/web-api/dist/instrument.js +87 -0
- package/app/node_modules/@slack/web-api/dist/logger.js +29 -0
- package/app/node_modules/@slack/web-api/dist/methods.js +1647 -0
- package/app/node_modules/@slack/web-api/dist/retry-policies.js +34 -0
- package/app/node_modules/@slack/web-api/dist/types/helpers.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/admin/analytics.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/admin/apps.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/admin/auth.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/admin/barriers.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/admin/conversations.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/admin/emoji.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/admin/functions.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/admin/inviteRequests.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/admin/roles.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/admin/teams.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/admin/usergroups.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/admin/users.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/admin/workflows.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/api.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/apps.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/assistant.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/auth.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/bookmarks.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/bots.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/calls.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/canvas.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/chat.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/common.js +4 -0
- package/app/node_modules/@slack/web-api/dist/types/request/conversations.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/dialog.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/dnd.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/emoji.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/entity.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/files.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/functions.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/index.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/manifest.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/migration.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/oauth.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/openid.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/pins.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/reactions.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/reminders.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/rtm.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/search.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/slackLists.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/stars.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/team.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/tooling.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/usergroups.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/users.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/views.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/request/workflows.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminAnalyticsGetFileResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsActivitiesListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsApproveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsApprovedListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsClearResolutionResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsConfigLookupResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsConfigSetResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsRequestsCancelResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsRequestsListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsRestrictResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsRestrictedListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminAppsUninstallResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminAuthPolicyAssignEntitiesResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminAuthPolicyGetEntitiesResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminAuthPolicyRemoveEntitiesResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminBarriersCreateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminBarriersDeleteResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminBarriersListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminBarriersUpdateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsArchiveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsBulkArchiveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsBulkDeleteResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsBulkMoveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsConvertToPrivateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsConvertToPublicResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsCreateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsDeleteResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsDisconnectSharedResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsEkmListOriginalConnectedChannelInfoResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsGetConversationPrefsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsGetCustomRetentionResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsGetTeamsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsInviteResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsLookupResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsRemoveCustomRetentionResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsRenameResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsRestrictAccessAddGroupResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsRestrictAccessListGroupsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsRestrictAccessRemoveGroupResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsSearchResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsSetConversationPrefsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsSetCustomRetentionResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsSetTeamsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsUnarchiveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsWhitelistAddResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsWhitelistListGroupsLinkedToChannelResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminConversationsWhitelistRemoveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminEmojiAddAliasResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminEmojiAddResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminEmojiListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminEmojiRemoveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminEmojiRenameResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminFunctionsListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminFunctionsPermissionsLookupResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminFunctionsPermissionsSetResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminInviteRequestsApproveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminInviteRequestsApprovedListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminInviteRequestsDeniedListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminInviteRequestsDenyResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminInviteRequestsListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminRolesAddAssignmentsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminRolesListAssignmentsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminRolesRemoveAssignmentsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsAdminsListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsCreateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsOwnersListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsSettingsInfoResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsSettingsSetDefaultChannelsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsSettingsSetDescriptionResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsSettingsSetDiscoverabilityResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsSettingsSetIconResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminTeamsSettingsSetNameResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsergroupsAddChannelsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsergroupsAddTeamsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsergroupsListChannelsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsergroupsRemoveChannelsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersAssignResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersInviteResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersRemoveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionClearSettingsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionGetSettingsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionInvalidateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionResetBulkResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionResetResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSessionSetSettingsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSetAdminResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSetExpirationResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSetOwnerResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersSetRegularResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminUsersUnsupportedVersionsExportResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminWorkflowsCollaboratorsAddResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminWorkflowsCollaboratorsRemoveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminWorkflowsPermissionsLookupResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminWorkflowsSearchResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AdminWorkflowsUnpublishResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ApiTestResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AppsConnectionsOpenResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AppsEventAuthorizationsListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AppsManifestCreateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AppsManifestDeleteResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AppsManifestExportResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AppsManifestUpdateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AppsManifestValidateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AppsPermissionsInfoResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AppsPermissionsRequestResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AppsPermissionsResourcesListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AppsPermissionsScopesListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AppsPermissionsUsersListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AppsPermissionsUsersRequestResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AppsUninstallResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AppsUserConnectionUpdateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AssistantThreadsSetStatusResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AssistantThreadsSetSuggestedPromptsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AssistantThreadsSetTitleResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AuthRevokeResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AuthTeamsListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/AuthTestResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/BookmarksAddResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/BookmarksEditResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/BookmarksListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/BookmarksRemoveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/BotsInfoResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/CallsAddResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/CallsEndResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/CallsInfoResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/CallsParticipantsAddResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/CallsParticipantsRemoveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/CallsUpdateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/CanvasesAccessDeleteResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/CanvasesAccessSetResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/CanvasesCreateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/CanvasesDeleteResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/CanvasesEditResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/CanvasesSectionsLookupResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChannelsArchiveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChannelsCreateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChannelsHistoryResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChannelsInfoResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChannelsInviteResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChannelsJoinResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChannelsKickResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChannelsLeaveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChannelsListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChannelsMarkResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChannelsRenameResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChannelsRepliesResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChannelsSetPurposeResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChannelsSetTopicResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChannelsUnarchiveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChatAppendStreamResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChatDeleteResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChatDeleteScheduledMessageResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChatGetPermalinkResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChatMeMessageResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChatPostEphemeralResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChatPostMessageResponse.js +67 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChatScheduleMessageResponse.js +48 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChatScheduledMessagesListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChatStartStreamResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChatStopStreamResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChatUnfurlResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ChatUpdateResponse.js +48 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsAcceptSharedInviteResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsApproveSharedInviteResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsArchiveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsCanvasesCreateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsCloseResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsCreateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsDeclineSharedInviteResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsExternalInvitePermissionsSetResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsHistoryResponse.js +67 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsInfoResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsInviteResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsInviteSharedResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsJoinResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsKickResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsLeaveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsListConnectInvitesResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsMarkResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsMembersResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsOpenResponse.js +48 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsRenameResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsRepliesResponse.js +67 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsRequestSharedInviteApproveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsRequestSharedInviteDenyResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsRequestSharedInviteListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsSetPurposeResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsSetTopicResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ConversationsUnarchiveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/DialogOpenResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/DndEndDndResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/DndEndSnoozeResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/DndInfoResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/DndSetSnoozeResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/DndTeamInfoResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/EmojiListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/EntityPresentDetailsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/FilesCommentsAddResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/FilesCommentsDeleteResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/FilesCommentsEditResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/FilesCompleteUploadExternalResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/FilesDeleteResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/FilesGetUploadURLExternalResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/FilesInfoResponse.js +37 -0
- package/app/node_modules/@slack/web-api/dist/types/response/FilesListResponse.js +37 -0
- package/app/node_modules/@slack/web-api/dist/types/response/FilesRemoteAddResponse.js +37 -0
- package/app/node_modules/@slack/web-api/dist/types/response/FilesRemoteInfoResponse.js +37 -0
- package/app/node_modules/@slack/web-api/dist/types/response/FilesRemoteListResponse.js +37 -0
- package/app/node_modules/@slack/web-api/dist/types/response/FilesRemoteRemoveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/FilesRemoteShareResponse.js +37 -0
- package/app/node_modules/@slack/web-api/dist/types/response/FilesRemoteUpdateResponse.js +37 -0
- package/app/node_modules/@slack/web-api/dist/types/response/FilesRevokePublicURLResponse.js +37 -0
- package/app/node_modules/@slack/web-api/dist/types/response/FilesSharedPublicURLResponse.js +37 -0
- package/app/node_modules/@slack/web-api/dist/types/response/FilesUploadResponse.js +37 -0
- package/app/node_modules/@slack/web-api/dist/types/response/FunctionsCompleteErrorResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/FunctionsCompleteSuccessResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/GroupsArchiveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/GroupsCloseResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/GroupsCreateChildResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/GroupsCreateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/GroupsHistoryResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/GroupsInfoResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/GroupsInviteResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/GroupsKickResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/GroupsLeaveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/GroupsListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/GroupsMarkResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/GroupsOpenResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/GroupsRenameResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/GroupsRepliesResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/GroupsSetPurposeResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/GroupsSetTopicResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/GroupsUnarchiveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ImCloseResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ImHistoryResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ImListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ImMarkResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ImOpenResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ImRepliesResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/MigrationExchangeResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/MpimCloseResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/MpimHistoryResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/MpimListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/MpimMarkResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/MpimOpenResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/MpimRepliesResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/OauthAccessResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/OauthTokenResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/OauthV2AccessResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/OauthV2ExchangeResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/OpenIDConnectTokenResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/OpenIDConnectUserInfoResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/PinsAddResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/PinsListResponse.js +37 -0
- package/app/node_modules/@slack/web-api/dist/types/response/PinsRemoveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ReactionsAddResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ReactionsGetResponse.js +48 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ReactionsListResponse.js +67 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ReactionsRemoveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/RemindersAddResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/RemindersCompleteResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/RemindersDeleteResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/RemindersInfoResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/RemindersListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/RtmConnectResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/RtmStartResponse.js +77 -0
- package/app/node_modules/@slack/web-api/dist/types/response/SearchAllResponse.js +82 -0
- package/app/node_modules/@slack/web-api/dist/types/response/SearchFilesResponse.js +63 -0
- package/app/node_modules/@slack/web-api/dist/types/response/SearchMessagesResponse.js +67 -0
- package/app/node_modules/@slack/web-api/dist/types/response/SlackListsAccessDeleteResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/SlackListsAccessSetResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/SlackListsCreateResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/SlackListsDownloadGetResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/SlackListsDownloadStartResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/SlackListsItemsCreateResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/SlackListsItemsDeleteMultipleResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/SlackListsItemsDeleteResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/SlackListsItemsInfoResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/SlackListsItemsListResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/SlackListsItemsUpdateResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/SlackListsUpdateResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/StarsAddResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/StarsListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/StarsRemoveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/TeamAccessLogsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/TeamBillableInfoResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/TeamBillingInfoResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/TeamExternalTeamsDisconnectResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/TeamExternalTeamsListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/TeamInfoResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/TeamIntegrationLogsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/TeamPreferencesListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/TeamProfileGetResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ToolingTokensRotateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsCreateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsDisableResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsEnableResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsUpdateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsUsersListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsergroupsUsersUpdateResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsersConversationsResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsersDeletePhotoResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsersDiscoverableContactsLookupResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsersGetPresenceResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsersIdentityResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsersInfoResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsersListResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsersLookupByEmailResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsersProfileGetResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsersProfileSetResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsersSetActiveResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsersSetPhotoResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/UsersSetPresenceResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ViewsOpenResponse.js +31 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ViewsPublishResponse.js +31 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ViewsPushResponse.js +31 -0
- package/app/node_modules/@slack/web-api/dist/types/response/ViewsUpdateResponse.js +31 -0
- package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsFeaturedAddResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsFeaturedListResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsFeaturedRemoveResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsFeaturedSetResponse.js +3 -0
- package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsStepCompletedResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsStepFailedResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/WorkflowsUpdateStepResponse.js +11 -0
- package/app/node_modules/@slack/web-api/dist/types/response/index.js +3 -0
- package/app/node_modules/@slack/web-api/package.json +75 -0
- package/app/node_modules/agent-base/dist/src/index.js +203 -0
- package/app/node_modules/agent-base/dist/src/promisify.js +18 -0
- package/app/node_modules/agent-base/package.json +64 -0
- package/app/node_modules/asynckit/index.js +6 -0
- package/app/node_modules/asynckit/lib/abort.js +29 -0
- package/app/node_modules/asynckit/lib/async.js +34 -0
- package/app/node_modules/asynckit/lib/defer.js +26 -0
- package/app/node_modules/asynckit/lib/iterate.js +75 -0
- package/app/node_modules/asynckit/lib/state.js +37 -0
- package/app/node_modules/asynckit/lib/terminator.js +29 -0
- package/app/node_modules/asynckit/package.json +63 -0
- package/app/node_modules/asynckit/parallel.js +43 -0
- package/app/node_modules/asynckit/serial.js +17 -0
- package/app/node_modules/asynckit/serialOrdered.js +75 -0
- package/app/node_modules/axios/dist/node/axios.cjs +6808 -0
- package/app/node_modules/axios/package.json +203 -0
- package/app/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
- package/app/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
- package/app/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
- package/app/node_modules/call-bind-apply-helpers/index.js +15 -0
- package/app/node_modules/call-bind-apply-helpers/package.json +85 -0
- package/app/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
- package/app/node_modules/combined-stream/lib/combined_stream.js +208 -0
- package/app/node_modules/combined-stream/package.json +25 -0
- package/app/node_modules/debug/package.json +64 -0
- package/app/node_modules/debug/src/browser.js +272 -0
- package/app/node_modules/debug/src/common.js +292 -0
- package/app/node_modules/debug/src/index.js +10 -0
- package/app/node_modules/debug/src/node.js +263 -0
- package/app/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
- package/app/node_modules/delayed-stream/package.json +27 -0
- package/app/node_modules/dunder-proto/get.js +30 -0
- package/app/node_modules/dunder-proto/package.json +76 -0
- package/app/node_modules/es-define-property/index.js +14 -0
- package/app/node_modules/es-define-property/package.json +81 -0
- package/app/node_modules/es-errors/eval.js +4 -0
- package/app/node_modules/es-errors/index.js +4 -0
- package/app/node_modules/es-errors/package.json +80 -0
- package/app/node_modules/es-errors/range.js +4 -0
- package/app/node_modules/es-errors/ref.js +4 -0
- package/app/node_modules/es-errors/syntax.js +4 -0
- package/app/node_modules/es-errors/type.js +4 -0
- package/app/node_modules/es-errors/uri.js +4 -0
- package/app/node_modules/es-object-atoms/index.js +4 -0
- package/app/node_modules/es-object-atoms/package.json +79 -0
- package/app/node_modules/es-set-tostringtag/index.js +35 -0
- package/app/node_modules/es-set-tostringtag/package.json +78 -0
- package/app/node_modules/eventemitter3/index.js +336 -0
- package/app/node_modules/eventemitter3/package.json +62 -0
- package/app/node_modules/follow-redirects/debug.js +15 -0
- package/app/node_modules/follow-redirects/index.js +709 -0
- package/app/node_modules/follow-redirects/package.json +58 -0
- package/app/node_modules/form-data/lib/browser.js +4 -0
- package/app/node_modules/form-data/lib/form_data.js +506 -0
- package/app/node_modules/form-data/lib/populate.js +10 -0
- package/app/node_modules/form-data/package.json +82 -0
- package/app/node_modules/function-bind/implementation.js +84 -0
- package/app/node_modules/function-bind/index.js +5 -0
- package/app/node_modules/function-bind/package.json +87 -0
- package/app/node_modules/get-intrinsic/index.js +378 -0
- package/app/node_modules/get-intrinsic/package.json +97 -0
- package/app/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
- package/app/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
- package/app/node_modules/get-proto/index.js +27 -0
- package/app/node_modules/get-proto/package.json +81 -0
- package/app/node_modules/gopd/gOPD.js +4 -0
- package/app/node_modules/gopd/index.js +15 -0
- package/app/node_modules/gopd/package.json +77 -0
- package/app/node_modules/has-flag/index.js +8 -0
- package/app/node_modules/has-flag/package.json +46 -0
- package/app/node_modules/has-symbols/index.js +14 -0
- package/app/node_modules/has-symbols/package.json +111 -0
- package/app/node_modules/has-symbols/shams.js +45 -0
- package/app/node_modules/has-tostringtag/package.json +108 -0
- package/app/node_modules/has-tostringtag/shams.js +8 -0
- package/app/node_modules/hasown/index.js +8 -0
- package/app/node_modules/hasown/package.json +91 -0
- package/app/node_modules/https-proxy-agent/dist/agent.js +177 -0
- package/app/node_modules/https-proxy-agent/dist/index.js +14 -0
- package/app/node_modules/https-proxy-agent/dist/parse-proxy-response.js +66 -0
- package/app/node_modules/https-proxy-agent/package.json +56 -0
- package/app/node_modules/is-electron/index.js +21 -0
- package/app/node_modules/is-electron/package.json +34 -0
- package/app/node_modules/is-stream/index.js +28 -0
- package/app/node_modules/is-stream/package.json +42 -0
- package/app/node_modules/math-intrinsics/abs.js +4 -0
- package/app/node_modules/math-intrinsics/floor.js +4 -0
- package/app/node_modules/math-intrinsics/isNaN.js +6 -0
- package/app/node_modules/math-intrinsics/max.js +4 -0
- package/app/node_modules/math-intrinsics/min.js +4 -0
- package/app/node_modules/math-intrinsics/package.json +86 -0
- package/app/node_modules/math-intrinsics/pow.js +4 -0
- package/app/node_modules/math-intrinsics/round.js +4 -0
- package/app/node_modules/math-intrinsics/sign.js +11 -0
- package/app/node_modules/mime-db/db.json +8519 -0
- package/app/node_modules/mime-db/index.js +12 -0
- package/app/node_modules/mime-db/package.json +60 -0
- package/app/node_modules/mime-types/index.js +188 -0
- package/app/node_modules/mime-types/package.json +44 -0
- package/app/node_modules/ms/index.js +162 -0
- package/app/node_modules/ms/package.json +38 -0
- package/app/node_modules/p-finally/index.js +15 -0
- package/app/node_modules/p-finally/package.json +42 -0
- package/app/node_modules/p-queue/dist/index.js +279 -0
- package/app/node_modules/p-queue/dist/lower-bound.js +21 -0
- package/app/node_modules/p-queue/dist/priority-queue.js +32 -0
- package/app/node_modules/p-queue/node_modules/eventemitter3/index.js +336 -0
- package/app/node_modules/p-queue/node_modules/eventemitter3/package.json +56 -0
- package/app/node_modules/p-queue/package.json +92 -0
- package/app/node_modules/p-retry/index.js +85 -0
- package/app/node_modules/p-retry/package.json +51 -0
- package/app/node_modules/p-timeout/index.js +57 -0
- package/app/node_modules/p-timeout/package.json +45 -0
- package/app/node_modules/retry/index.js +1 -0
- package/app/node_modules/retry/lib/retry.js +100 -0
- package/app/node_modules/retry/lib/retry_operation.js +162 -0
- package/app/node_modules/retry/package.json +36 -0
- package/app/node_modules/supports-color/index.js +135 -0
- package/app/node_modules/supports-color/package.json +53 -0
- package/app/node_modules/ws/index.js +22 -0
- package/app/node_modules/ws/lib/buffer-util.js +131 -0
- package/app/node_modules/ws/lib/constants.js +19 -0
- package/app/node_modules/ws/lib/event-target.js +292 -0
- package/app/node_modules/ws/lib/extension.js +203 -0
- package/app/node_modules/ws/lib/limiter.js +55 -0
- package/app/node_modules/ws/lib/permessage-deflate.js +530 -0
- package/app/node_modules/ws/lib/receiver.js +743 -0
- package/app/node_modules/ws/lib/sender.js +607 -0
- package/app/node_modules/ws/lib/stream.js +161 -0
- package/app/node_modules/ws/lib/subprotocol.js +62 -0
- package/app/node_modules/ws/lib/validation.js +152 -0
- package/app/node_modules/ws/lib/websocket-server.js +562 -0
- package/app/node_modules/ws/lib/websocket.js +1421 -0
- package/app/node_modules/ws/package.json +74 -0
- package/app/package.json +1 -1
- package/app/server.js +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +7 -4
- package/dist/product.d.ts +8 -1
- package/dist/product.js +79 -23
- package/dist/setup.js +9 -9
- package/package.json +2 -3
- package/schemas/botmancers.mcp.v2.tools.json +770 -5
- package/skills/botmancers-collaboration/SKILL.md +5 -1
- package/skills/botmancers-collaboration/references/workflows.md +21 -0
- package/app/.next/server/app/api/agent-deck/decks/route/app-paths-manifest.json +0 -3
- package/app/.next/server/app/api/agent-deck/decks/route.js +0 -9
- package/app/.next/server/app/api/agent-deck/decks/route.js.nft.json +0 -1
- package/app/.next/server/app/api/agent-deck/decks/route_client-reference-manifest.js +0 -3
- package/app/.next/server/app/api/agent-deck/settings/route/app-paths-manifest.json +0 -3
- package/app/.next/server/app/api/agent-deck/settings/route.js +0 -9
- package/app/.next/server/app/api/agent-deck/settings/route.js.nft.json +0 -1
- package/app/.next/server/app/api/agent-deck/settings/route_client-reference-manifest.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__06qkt0f._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__08qhrch._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__097ptn_._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__09m9-pe._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__0b7w1z3._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__0f5yqjs._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__0g4um3-._.js +0 -44
- package/app/.next/server/chunks/[root-of-the-server]__0hro5ey._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__0hwpgxq._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__0uq7sci._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__13cd2fb._.js +0 -44
- package/app/.next/server/chunks/[root-of-the-server]__1879cge._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__1a2dh11._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__1bhzfu_._.js +0 -7
- package/app/.next/server/chunks/[root-of-the-server]__1co3sok._.js +0 -44
- package/app/.next/server/chunks/[root-of-the-server]__1eh30sp._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__1fmsid0._.js +0 -44
- package/app/.next/server/chunks/[root-of-the-server]__1kvvs4u._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__1qbgs3m._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__1s6h1sj._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__1slu7d7._.js +0 -7
- package/app/.next/server/chunks/[root-of-the-server]__1tuqc5v._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__1v609eq._.js +0 -44
- package/app/.next/server/chunks/[root-of-the-server]__1zdv-vb._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__1zjs2tr._.js +0 -3
- package/app/.next/server/chunks/_023se5j._.js +0 -44
- package/app/.next/server/chunks/_02pb_qv._.js +0 -44
- package/app/.next/server/chunks/_05ro-21._.js +0 -44
- package/app/.next/server/chunks/_07on0dc._.js +0 -44
- package/app/.next/server/chunks/_08208nz._.js +0 -44
- package/app/.next/server/chunks/_0fe5qz5._.js +0 -44
- package/app/.next/server/chunks/_0qoji5a._.js +0 -44
- package/app/.next/server/chunks/_0uv2pi5._.js +0 -44
- package/app/.next/server/chunks/_0wdl90-._.js +0 -44
- package/app/.next/server/chunks/_11ijk9k._.js +0 -44
- package/app/.next/server/chunks/_198sn69._.js +0 -44
- package/app/.next/server/chunks/_1ba_5hd._.js +0 -44
- package/app/.next/server/chunks/_1m89jq5._.js +0 -44
- package/app/.next/server/chunks/_1n39wr_._.js +0 -44
- package/app/.next/server/chunks/_1ryxqo1._.js +0 -44
- package/app/.next/server/chunks/_1vemgly._.js +0 -44
- package/app/.next/server/chunks/_next-internal_server_app_api_agent-deck_decks_route_actions_0yguyfv.js +0 -3
- package/app/.next/server/chunks/_next-internal_server_app_api_agent-deck_settings_route_actions_0z_nbkb.js +0 -3
- package/app/.next/server/chunks/lib_0lqoyb4._.js +0 -217
- package/app/.next/server/chunks/lib_0riiofz._.js +0 -44
- package/app/.next/server/chunks/lib_16j2293._.js +0 -217
- package/app/.next/server/chunks/lib_1nb_61e._.js +0 -217
- package/app/.next/server/chunks/lib_session-pins_ts_0lmxnwj._.js +0 -20
- package/app/.next/server/chunks/ssr/app_components_AgentDeckRuntime_tsx_024janf._.js +0 -3
- package/app/.next/server/chunks/ssr/app_components_ExchangeCard_tsx_1shfcgn._.js +0 -3
- package/app/.next/server/chunks/ssr/app_settings_page_tsx_1t-rdz-._.js +0 -3
- package/app/.next/server/chunks/ssr/node_modules_@swc_helpers_cjs__interop_require_default_cjs_1ztp13a._.js +0 -3
- package/app/.next/server/chunks/ssr/node_modules_next_dist_client_components_server-async-storage_0t1dato.js +0 -3
- package/app/.next/static/chunks/0bhd8eso48g27.js +0 -1
- package/app/.next/static/chunks/1ku9himlsx-hn.js +0 -1
- package/app/.next/static/chunks/21aqekm5z0j47.js +0 -1
- package/app/.next/static/chunks/2a8bomryx66oj.css +0 -3
- package/app/.next/static/chunks/3230ywnpii0s6.js +0 -3
- package/app/.next/static/chunks/35l2c95bd-jud.js +0 -1
- package/app/.next/static/chunks/3cijpn6vx3yzv.js +0 -1
- package/app/.next/static/chunks/3ue9194j59kem.js +0 -1
- package/app/.next/static/chunks/44ese2s4gzze_.js +0 -1
- /package/app/.next/server/app/api/{agent-deck/decks → bots/[id]/sessions/[ref]/shares}/route/build-manifest.json +0 -0
- /package/app/.next/server/app/api/{agent-deck/decks → bots/[id]/sessions/[ref]/shares}/route/server-reference-manifest.json +0 -0
- /package/app/.next/server/app/api/{agent-deck/settings → bots/[id]/share-policy}/route/build-manifest.json +0 -0
- /package/app/.next/server/app/api/{agent-deck/settings → bots/[id]/share-policy}/route/server-reference-manifest.json +0 -0
- /package/app/.next/static/{gh3shm8hnVqXLr75rmvsL → A9sQnaf9i6YzjHNoPgRfU}/_buildManifest.js +0 -0
- /package/app/.next/static/{gh3shm8hnVqXLr75rmvsL → A9sQnaf9i6YzjHNoPgRfU}/_clientMiddlewareManifest.js +0 -0
- /package/app/.next/static/{gh3shm8hnVqXLr75rmvsL → A9sQnaf9i6YzjHNoPgRfU}/_ssgManifest.js +0 -0
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
module.exports=[674,50081,e=>{"use strict";var n=e.i(46786),t=e.i(54799),s=e.i(62294),r=e.i(18966),i=e.i(35613),o=e.i(90027),a=e.i(16789),d=e.i(63020),u=e.i(45383);let l={ask:"Ask from this context",resume:"Resume work here",handoff:"Hand off to…"},c={session_missing:"choose_session",session_ended:"choose_session",session_not_resumable:"choose_session",source_session_busy:"retry_later",action_unavailable:"choose_action",authority_not_allowed:"ask_owner"},_={...c,workspace_required:"ask_owner",no_eligible_session:"ask_owner",grant_required:"ask_owner",agent_unavailable:"ask_owner",approval_required:"approve_write",pin_not_found:"pin_again",pin_detached:"pin_again",provider_failed:"retry_later",rate_limited:"retry_later"};function f(e){return Object.prototype.hasOwnProperty.call(_,e)?_[e]:null}function h(e,n,t){return{available:!1,code:n,reason:`${l[e]} is unavailable: ${t}`,recovery:c[n]}}function p(e,n,t){if(null===t)return h(e,"session_not_resumable",`nothing can reach this session under ${n.agent.name}’s current runtime. Its history stays here.`);if("provider"===t){if("missing"===n.state.availability)return h(e,"session_missing","the runtime no longer has this session. Its history stays here; choose another session.");if(!1===n.state.resumable)return h(e,"session_not_resumable","the runtime says this session can’t be resumed. Choose another session.")}else{if("ended"===n.status)return h(e,"session_ended","this session has ended. Its history stays here.");if(!n.resumable)return h(e,"session_not_resumable",`Botmancers can’t resume this session under ${n.agent.name}’s current runtime.`)}return n.state.busy?h(e,"source_session_busy","a turn is running in this session. Try again when it finishes."):{available:!0}}function w(e,n){let t=p("ask",e,n.route),s=p("resume",e,n.route);return s.available&&("provider"!==n.route?s=h("resume","action_unavailable","this runtime can’t resume a session with edits. Ask from this context, or hand off to another Agent."):n.provider?.authorities.includes("workspace_write")?n.policy&&"workspace_write"===n.policy.mode?n.policy.allow_resume_with_edits||(s=h("resume","authority_not_allowed",`${e.agent.name}’s policy doesn’t allow resuming with edits. The owner can allow it in Config.`)):s=h("resume","authority_not_allowed",`${e.agent.name}’s policy is read only. The owner can allow workspace write in Config.`):s=h("resume","action_unavailable","this runtime can’t enforce edit access in a resumed session. Ask from this context instead.")),{ask:t,resume:s,handoff:"botmancers"!==e.source?h("handoff","action_unavailable","hand off starts from a Botmancers-launched session. Ask from this context or resume this one instead."):p("handoff",e,"engine")}}e.s(["recoveryFor",0,f,"sessionActions",0,w],50081);let g={invalid_request:400,agent_not_found:404,session_not_found:404,conversation_not_found:404,pin_not_found:404,pin_detached:409,workspace_required:409,no_eligible_session:409,session_missing:410,session_ended:409,session_not_resumable:409,source_session_busy:409,action_unavailable:409,approval_required:403,authority_not_allowed:403,agent_unavailable:409,grant_required:403,provider_failed:502,idempotency_conflict:409};class m extends Error{code;recovery;constructor(e,n){super(n),this.name="PinError",this.code=e,this.recovery=f(e)}get status(){return g[this.code]}}function y(e){return(0,t.createHash)("sha256").update(JSON.stringify(e)).digest("hex")}function v(e){return"string"==typeof e&&e.trim().length>0}function E(e){if(!v(e)||e.length>200)throw new m("invalid_request","An idempotency key (1-200 characters) is required.");return e}function k(e){if(!v(e))throw new m("invalid_request","content is required.");if(e.length>i.EXCHANGE_LIMITS.instructionChars)throw new m("invalid_request",`content exceeds ${i.EXCHANGE_LIMITS.instructionChars} characters.`);return e}function b(e){if(e instanceof m)throw e;if(e instanceof a.ProviderSessionError)throw function(e){switch(e.code){case"agent_not_found":return new m("agent_not_found","No such Agent.");case"session_not_found":return new m("session_not_found","No session with that reference.");case"session_missing":return new m("session_missing","The runtime no longer has this session. The pin stays on it; detach it or switch to another session.");case"not_resumable":return new m("session_not_resumable","The runtime cannot resume this session now. The pin stays on it; detach it or switch to another session.");case"out_of_scope":return new m("session_not_resumable","The session is outside the Agent’s session scope.");case"busy":return new m("source_session_busy","A turn is already running in this session; wait for it, then send again.");case"authority_not_allowed":return new m("authority_not_allowed",`The Agent’s policy or runtime refused this authority: ${e.message}`);case"new_sessions_not_allowed":return new m("no_eligible_session","The Agent’s policy does not allow new sessions.");case"unsupported":return new m("action_unavailable","The Agent’s runtime does not support this action.");case"scope_missing":return new m("agent_unavailable","The Agent has no session scope; the owner must choose one.");case"provider_unavailable":return new m("agent_unavailable","The Agent’s runtime connection is not available.");case"idempotency_conflict":return new m("idempotency_conflict","That idempotency key was used for a different turn.");case"invalid_input":return new m("invalid_request",e.message);default:return new m("provider_failed","The runtime failed this turn. The pin stays on the same session; retry later.")}}(e);if(e instanceof d.ExchangeError)throw function(e){switch(e.code){case"session_not_found":return new m("session_not_found","No session with that reference.");case"agent_not_found":return new m("agent_not_found","No such Agent.");case"conversation_not_found":return new m("conversation_not_found","No conversation with that id is visible.");case"session_ended":return new m("session_ended","This session has ended. The pin stays on it; detach it or switch to another session.");case"session_not_resumable":return new m("session_not_resumable","Botmancers cannot resume this session under the Agent’s current runtime.");case"source_session_busy":return new m("source_session_busy","This session already has a turn in progress; wait for it, then send again.");case"agent_unavailable":return new m("agent_unavailable",e.message);case"idempotency_conflict":return new m("idempotency_conflict","That idempotency key was used for a different turn.");default:return new m("invalid_request",e.message)}}(e);throw e}function q(e,n,r,i){s.default.prepare(`
|
|
2
|
-
INSERT INTO session_pin_events (id, pin_id, sequence, type, data, created_at)
|
|
3
|
-
SELECT ?, ?, COALESCE(MAX(sequence), 0) + 1, ?, ?, ? FROM session_pin_events WHERE pin_id = ?
|
|
4
|
-
`).run((0,t.randomUUID)(),e,n,JSON.stringify(r),i,e)}function I(e){return s.default.prepare("SELECT * FROM session_pins WHERE id = ?").get(e)}function T(e,n){return s.default.prepare("SELECT * FROM session_pins WHERE requester_kind = ? AND requester_id = ? AND idempotency_key = ?").get(e.kind,e.id,n)}function R(e,n){return s.default.prepare("SELECT * FROM session_pin_turns WHERE requester_kind = ? AND requester_id = ? AND idempotency_key = ?").get(e.kind,e.id,n)}function A(e,n){let t="string"==typeof n&&n.length<=200?I(n):void 0;if(!t||t.requester_kind!==e.kind||t.requester_id!==e.id)throw new m("pin_not_found","No pin with that reference is visible to this requester.");return t}function S(e){if("string"!=typeof e||0===e.length||e.length>200)return null;let n=s.default.prepare("SELECT agent_id FROM session_bindings WHERE id = ?").get(e);if(n)return n.agent_id;let t=s.default.prepare("SELECT agent_id FROM provider_sessions WHERE id = ?").get(e);return t?.agent_id??null}function N(e){return e?"~"===e?n.default.homedir():e.startsWith("~/")?`${n.default.homedir()}/${e.slice(2)}`:e.startsWith("/")?e:null:null}function C(e){let n=s.bots.getById(e);if(!n)throw new m("agent_not_found","No such Agent.");return{bot:n,provider:(0,a.agentProviderCapabilities)(s.default,e),connectionId:n.runtime_connection_id??null,policy:(0,r.readStoredPolicy)(n)}}function O(e,n){if(e.provider?.resume){let t=(0,a.getProviderSessionRow)(s.default,e.bot.id,n.ref);if(t&&t.runtime_connection_id===e.connectionId)return"provider"}return"botmancers"===n.source?"engine":null}function P(e,n){return{route:O(e,n),provider:e.provider?{resume:e.provider.resume,authorities:[...e.provider.authorities]}:null,policy:e.policy?{mode:e.policy.mode,allow_resume_with_edits:e.policy.allow_resume_with_edits}:null}}async function L(e,n){let t=(0,o.getAgentSession)(s.default,e.bot.id,n);if(!t||"provider"!==O(e,t))return t;try{await (0,a.refreshProviderSession)(s.default,e.bot.id,n)}catch(e){b(e)}return(0,o.getAgentSession)(s.default,e.bot.id,n)}function D(e,n,r){let i=(0,t.randomUUID)();s.default.prepare("INSERT INTO conversations (id, type, origin_kind, origin_id, created_at) VALUES (?, ?, ?, ?, ?)").run(i,"agent",e.kind,e.id,r);let o=s.default.prepare("INSERT OR IGNORE INTO conversation_participants (conversation_id, participant_kind, participant_id, joined_at) VALUES (?, ?, ?, ?)");return o.run(i,e.kind,e.id,r),o.run(i,"bot",n,r),i}function U(e,n){if(!s.default.prepare(`
|
|
5
|
-
SELECT 1 FROM conversations c JOIN conversation_participants p ON p.conversation_id = c.id
|
|
6
|
-
WHERE c.id = ? AND p.participant_kind = ? AND p.participant_id = ?
|
|
7
|
-
`).get(n,e.kind,e.id))throw new m("conversation_not_found","No conversation with that id is visible to this requester.")}function W(e,n,r,i){let o=(0,t.randomUUID)();return s.default.prepare("INSERT INTO messages (id, conversation_id, sender_type, sender_id, sender_kind, request_id, content, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)").run(o,e,n.type,n.id,n.kind,null,r,i),o}function x(e){if(e.provider_turn_ref){let n=I(e.pin_id),t=(0,a.getProviderTurn)(s.default,n.agent_id,e.provider_turn_ref);return t?{state:t.state,answer:"completed"===t.state?t.output:null,failure:"failed"===t.state||"cancelled"===t.state?{code:t.failure_code??t.state}:null,finished_at:t.finished_at}:{state:"failed",answer:null,failure:{code:"turn_missing"},finished_at:null}}let n=u.exchanges.get(e.exchange_id);if(!n)return{state:"failed",answer:null,failure:{code:"turn_missing"},finished_at:null};let t="completed"===n.state?"completed":"failed"===n.state?"failed":"cancelled"===n.state?"cancelled":"running",r=n.answer_message_id?s.default.prepare("SELECT content FROM messages WHERE id = ?").get(n.answer_message_id)?.content??null:null;return{state:t,answer:"completed"===t?r:null,failure:"failed"===t?{code:n.failure_code??"failed"}:"cancelled"===t?{code:"cancelled"}:null,finished_at:n.terminal_at}}function H(e,n){let t=x(n);return{turn_ref:n.id,seq:n.seq,state:t.state,authority:e.authority,content:n.content,answer:t.answer,failure:t.failure,exchange_id:n.exchange_id,created_at:n.created_at,finished_at:t.finished_at}}function M(e){let n=(0,t.randomUUID)();return s.default.prepare(`
|
|
8
|
-
INSERT INTO session_pins (
|
|
9
|
-
id, requester_kind, requester_id, idempotency_key, request_hash, agent_id, session_ref, action, authority, resolution, route,
|
|
10
|
-
conversation_id, approved_at, state, created_at, updated_at
|
|
11
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'attached', ?, ?)
|
|
12
|
-
`).run(n,e.requester.kind,e.requester.id,e.key,e.hash,e.agentId,e.sessionRef,e.action,"ask"===e.action?"read_only":"workspace_write",e.resolution,e.route,e.conversationId,e.approved?e.now:null,e.now,e.now),q(n,"created",{agent_id:e.agentId,session_ref:e.sessionRef,action:e.action,resolution:e.resolution,route:e.route,authority:"ask"===e.action?"read_only":"workspace_write",approved:e.approved},e.now),I(n)}function $(e,n,t,r){s.default.prepare("UPDATE session_pins SET state = 'detached', detach_reason = ?, replaced_by = ?, detached_at = ?, updated_at = ? WHERE id = ? AND state = 'attached'").run(n,t,r,r,e.id),q(e.id,n,t?{replaced_by:t}:{},r)}async function F(e){let n=`pin:${E(e.idempotencyKey)}`;if("ask"!==e.action&&"resume"!==e.action)throw new m("invalid_request",'action must be "ask" or "resume".');let t=y(["pin",e.sessionRef,e.agentId??null,e.action,!0===e.approveWrite,e.conversationId??null,e.replacePinRef??null]),r=T(e.requester,n);if(r){if(r.request_hash!==t)throw new m("idempotency_conflict","That idempotency key was used for a different pin.");return{pin:r,created:!1,replaced:null}}let i=S(e.sessionRef);if(!i||e.agentId&&e.agentId!==i)throw new m("session_not_found","No session with that reference.");await (0,a.warmAgentProvider)(s.default,i,{onlyWithSessions:!0});let o=C(i),d=await L(o,e.sessionRef);if(!d)throw new m("session_not_found","No session with that reference.");let u=function(e,n,t){let s=P(e,n),r=w(n,s)[t];if(!r.available&&"source_session_busy"!==r.code)throw new m(r.code,r.reason);return s.route}(o,d,e.action);if("resume"===e.action&&!0!==e.approveWrite)throw new m("approval_required","Resume work here runs with workspace-write authority. Ask the person you act for to approve edits, then pin again with approve_write: true.");let l=e.replacePinRef?A(e.requester,e.replacePinRef):null;if(l&&"attached"!==l.state)throw new m("pin_detached","The pin to replace is already detached.");if(e.conversationId)U(e.requester,e.conversationId);else if("service"!==e.requester.kind)throw new m("invalid_request","conversation_id is required: the thread that holds this conversation.");return s.default.transaction(()=>{let s=T(e.requester,n);if(s)return{pin:s,created:!1,replaced:null};let r=e.now??Date.now(),o=M({requester:e.requester,key:n,hash:t,agentId:i,sessionRef:d.ref,action:e.action,resolution:"exact",route:u,conversationId:e.conversationId??D(e.requester,i,r),approved:"resume"===e.action,now:r});return l&&$(l,"switched",o.id,r),e.onCommit?.(o),{pin:o,created:!0,replaced:l?I(l.id):null}}).immediate()}function B(e,n,t){let r=n;try{b(n)}catch(e){r=e}if(r instanceof m){let n=r.code;s.default.transaction(()=>q(e.id,"turn_refused",{code:n,session_ref:e.session_ref},t)).immediate()}throw r}function V(e,n){return`pin-${(0,t.createHash)("sha256").update(`${e}
|
|
13
|
-
${n}`).digest("hex").slice(0,40)}`}function K(e,n,r,i,o,a,d){var u;let l=(0,t.randomUUID)(),c=a.exchangeId?null:W(e.conversation_id,{type:"user",id:n.id,kind:n.kind},o,d);return s.default.prepare(`
|
|
14
|
-
INSERT INTO session_pin_turns (
|
|
15
|
-
id, pin_id, seq, requester_kind, requester_id, idempotency_key, request_hash, content, exchange_id, provider_turn_ref,
|
|
16
|
-
question_message_id, answer_message_id, created_at
|
|
17
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NULL, ?)
|
|
18
|
-
`).run(l,e.id,(u=e.id,(s.default.prepare("SELECT MAX(seq) AS n FROM session_pin_turns WHERE pin_id = ?").get(u).n??0)+1),n.kind,n.id,r,i,o,a.exchangeId??null,a.providerTurnRef??null,c,d),s.default.prepare("UPDATE session_pins SET updated_at = ? WHERE id = ?").run(d,e.id),q(e.id,"turn_sent",{turn_ref:l,session_ref:e.session_ref,authority:e.authority,route:e.route},d),s.default.prepare("SELECT * FROM session_pin_turns WHERE id = ?").get(l)}function G(e){s.default.transaction(()=>{let n=s.default.prepare("SELECT * FROM session_pin_turns WHERE id = ?").get(e);if(!n||!n.provider_turn_ref||n.answer_message_id)return;let t=I(n.pin_id),r=(0,a.getProviderTurn)(s.default,t.agent_id,n.provider_turn_ref);if(r&&"running"!==r.state&&"completed"===r.state&&null!==r.output){let e=Date.now(),i=W(t.conversation_id,{type:"bot",id:t.agent_id,kind:"bot"},r.output,e);s.default.prepare("UPDATE session_pin_turns SET answer_message_id = ? WHERE id = ? AND answer_message_id IS NULL").run(i,n.id),q(t.id,"turn_answered",{turn_ref:n.id},e)}}).immediate()}async function X(e,n,t){if(n.provider_turn_ref)try{let r=await (0,a.observeProviderTurn)(s.default,e.agent_id,n.provider_turn_ref,null===t?{}:{deadlineAt:Date.now()+t});"running"!==r.state&&G(n.id)}catch(e){console.error("Pin turn observe failed:",e instanceof Error?e.message:"unknown error")}}async function J(e,n,r,i,o,d,l){let c;if("provider"===e.route){let t;try{t=await (0,a.sendProviderTurn)(s.default,e.agent_id,e.session_ref,{prompt:o,authority:e.authority,idempotencyKey:V(e.id,r),requester:n})}catch(n){B(e,n,d)}let u=s.default.transaction(()=>{let s=R(n,r);if(s)return s;let a=K(e,n,r,i,o,{providerTurnRef:t.turn.turn_ref},d);return l?.(e,a),a}).immediate();return{pin:I(e.id),turn:H(e,u),replayed:!1,settled:X(e,u,null)}}try{c=s.default.transaction(()=>{let a=R(n,r);if(a)return a;let{exchange:c}=u.exchanges.create({requester:n,serviceGrant:"service"===n.kind,idempotencyKey:V(e.id,r),mode:"ask",originConversationId:e.conversation_id,sourceAgentId:e.agent_id,sessionRef:e.session_ref,instruction:o,now:d});s.default.prepare("INSERT INTO messages (id, conversation_id, sender_type, sender_id, sender_kind, request_id, content, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)").run((0,t.randomUUID)(),e.conversation_id,"user",n.id,n.kind,c.source_request_id,o,d);let _=K(e,n,r,i,o,{exchangeId:c.id},d);return l?.(e,_),_}).immediate()}catch(n){B(e,n,d)}return{pin:I(e.id),turn:H(e,c),replayed:!1,settled:(0,u.dispatchExchange)(c.exchange_id)}}async function j(e){let n=`turn:${E(e.idempotencyKey)}`,t=k(e.content),s=A(e.requester,e.pinRef),r=y(["turn",s.id,t]),i=R(e.requester,n);if(i){if(i.request_hash!==r)throw new m("idempotency_conflict","That idempotency key was used for a different turn.");return{pin:s,turn:H(s,i),replayed:!0,settled:Promise.resolve()}}if("attached"!==s.state)throw new m("pin_detached",`This pin was ${"switched"===s.detach_reason?"switched to another pin":"detached"}; it no longer sends. Pin a session again.`);return J(s,e.requester,n,r,t,e.now??Date.now(),e.onCommit)}async function Y(e,n){let t=e.bot.id,i=!1,a=async n=>{let t=await L(e,n);if(!t)return null;let s=P(e,t),r=w(t,s).ask;return r.available?{summary:t,route:s.route}:"source_session_busy"===r.code?"busy":null},d=e.bot.home_session_id;if(d&&(0,o.getAgentSession)(s.default,t,d)){let e=await a(d);if("busy"===e)throw new m("source_session_busy","The Agent’s home session has a turn in progress; send again when it finishes.");if(e)return{kind:"session",...e,resolution:"home"}}for(let n of(0,o.listAgentSessions)(s.default,t,"all").filter(e=>e.ref!==d).filter(n=>{let t=P(e,n),s=w(n,t).ask;return s.available||"source_session_busy"===s.code||"provider"===t.route&&null===n.state.resumable}).slice(0,10)){let e=await a(n.ref);if("busy"===e)i=!0;else if(e)return{kind:"session",...e,resolution:"newest"}}if(i)throw new m("source_session_busy","Every eligible session of this Agent has a turn in progress; send again when one finishes.");if(!e.policy?.allow_new_sessions)throw new m("no_eligible_session","This Agent has no session that can take a message, and its policy does not allow new sessions. Pin one of its sessions, or ask the owner to allow new sessions.");if(!e.provider?.start)throw new m("no_eligible_session","This Agent has no session that can take a message, and its runtime cannot start a new one from here.");let u=(0,r.readStoredScope)(e.bot);if(!u)throw new m("agent_unavailable","The Agent has no session scope; the owner must choose one.");if("sessions"===u.kind)throw new m("no_eligible_session","This Agent is limited to selected sessions and none can take a message now; it cannot start a new one.");let l=N(e.bot.default_workspace)??("workspaces"===u.kind&&1===u.workspaces.length?N(u.workspaces[0]):null);if(!l)throw new m("workspace_required","This Agent has no session that can take a message, and no default workspace for a new one. Ask the owner to set a default workspace, or pin one of its sessions.");if(!n)throw new m("grant_required","Starting a new session for this Agent needs the sessions:start grant, which only the Botmancers owner can give. Pin one of its sessions instead.");return{kind:"start",workspace:l}}async function z(e){let n,t=E(e.idempotencyKey),r=`agent:${t}`,i=`agent:${t}`,o=k(e.content),d=y(["agent",e.agentId,o,e.conversationId??null]),u=T(e.requester,r);if(u){if(u.request_hash!==d)throw new m("idempotency_conflict","That idempotency key was used for a different message.");e.onResolved?.({agentId:u.agent_id,sessionRef:u.session_ref,resolution:u.resolution});let n=R(e.requester,i);if(n)return{pin:u,turn:H(u,n),replayed:!0,resolution:u.resolution,settled:Promise.resolve()};if("attached"!==u.state)throw new m("pin_detached","This pin was detached before its first turn ran. Message the Agent again with a new key.");return{...await J(u,e.requester,i,y(["turn",u.id,o]),o,e.now??Date.now()),resolution:u.resolution}}if(e.conversationId)U(e.requester,e.conversationId);else if("service"!==e.requester.kind)throw new m("invalid_request","conversation_id is required: the thread that holds this conversation.");s.bots.getById(e.agentId)&&await (0,a.warmAgentProvider)(s.default,e.agentId);let l=C(e.agentId),c=await Y(l,e.mayStart),_=e.now??Date.now();if("session"===c.kind){e.onResolved?.({agentId:e.agentId,sessionRef:c.summary.ref,resolution:c.resolution});let n=s.default.transaction(()=>{let n=T(e.requester,r);if(n)return n;let t=M({requester:e.requester,key:r,hash:d,agentId:e.agentId,sessionRef:c.summary.ref,action:"ask",resolution:c.resolution,route:c.route,conversationId:e.conversationId??D(e.requester,e.agentId,_),approved:!1,now:_});return e.onCommit?.(t),t}).immediate();return{...await J(n,e.requester,i,y(["turn",n.id,o]),o,_),resolution:c.resolution}}e.onResolved?.({agentId:e.agentId,sessionRef:null,resolution:"started"});try{n=await (0,a.startProviderSession)(s.default,e.agentId,{workspace:c.workspace,prompt:o,authority:"read_only",idempotencyKey:V(e.agentId,i),requester:e.requester})}catch(e){b(e)}e.onResolved?.({agentId:e.agentId,sessionRef:n.turn.session_ref,resolution:"started"});let{pin:f,turn:h}=s.default.transaction(()=>{let t=T(e.requester,r);if(t)return{pin:t,turn:R(e.requester,i)};let s=M({requester:e.requester,key:r,hash:d,agentId:e.agentId,sessionRef:n.turn.session_ref,action:"ask",resolution:"started",route:"provider",conversationId:e.conversationId??D(e.requester,e.agentId,_),approved:!1,now:_}),a=K(s,e.requester,i,y(["turn",s.id,o]),o,{providerTurnRef:n.turn.turn_ref},_);return e.onCommit?.(s),{pin:s,turn:a}}).immediate();return{pin:f,turn:H(f,h),replayed:!1,resolution:"started",settled:X(f,h,null)}}async function Q(e,n){let t=A(e,n),r=s.default.prepare("SELECT * FROM session_pin_turns WHERE pin_id = ? ORDER BY seq DESC LIMIT ?").all(t.id,20).reverse();for(let e of r)e.provider_turn_ref&&!e.answer_message_id&&("running"===x(e).state?await X(t,e,25):G(e.id));return{pin:t,turns:r.map(e=>H(t,s.default.prepare("SELECT * FROM session_pin_turns WHERE id = ?").get(e.id)))}}e.s(["PinError",0,m,"createPin",0,F,"detachPin",0,function(e,n,t={}){return s.default.transaction(()=>{let s=A(e,n);if("detached"===s.state)return t.onCommit?.(s),{pin:s,replayed:!0};$(s,"detached",null,t.now??Date.now());let r=I(s.id);return t.onCommit?.(r),{pin:r,replayed:!1}}).immediate()},"messageAgent",0,z,"pinErrorBody",0,function(e){return{error:{code:e.code,message:e.message,...e.recovery?{recovery:e.recovery}:{}}}},"pinView",0,function(e){let n=(0,o.getAgentSession)(s.default,e.agent_id,e.session_ref),t=s.default.prepare("SELECT COUNT(*) AS n FROM session_pin_turns WHERE pin_id = ?").get(e.id).n;return{pin_ref:e.id,agent:{id:e.agent_id,name:s.bots.getById(e.agent_id)?.name??null},session:{ref:e.session_ref,title:n?.title??null},action:e.action,authority:e.authority,resolution:e.resolution,state:e.state,conversation_id:e.conversation_id,approved:null!==e.approved_at,replaced_by:e.replaced_by,turn_count:t,created_at:e.created_at,updated_at:e.updated_at,detached_at:e.detached_at}},"readPin",0,Q,"requirePin",0,A,"sendPinTurn",0,j,"sessionOwner",0,S,"sessionsWithActions",0,function(e,n){let t=C(e);return n.map(e=>{let n=P(t,e);return{...e,route:n.route,home:t.bot.home_session_id===e.ref,actions:w(e,n)}})}],674)}];
|
|
19
|
-
|
|
20
|
-
//# sourceMappingURL=lib_session-pins_ts_0lmxnwj._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[39228,22151,20851,2296,a=>{"use strict";var b=a.i(87924);let c=["hermes","cursor","claude","codex","muse"],d={hermes:"Hermes",cursor:"Cursor",claude:"Claude",codex:"Codex",muse:"Muse Code"},e="hermes";function f(a){return c.includes(String(a))?d[a]:String(a??"")}c.join("|"),a.s(["AGENTS",0,c,"AGENT_LABELS",0,d,"DEFAULT_AGENT",0,e,"agentLabel",0,f],22151);let g=c.map(a=>({value:a,label:d[a]})),h="/settings",i="Select an Agent Deck…",j="Runs use the configured Agent Deck server. Remote execution is unconfirmed — see Settings for the configured server.",k="Runs use the server above. Remote execution is unconfirmed.",l="Configure the Agent Deck server in Settings",m="Saved Agent Deck not on this server — saving keeps it unless you pick another.",n={loading:"Loading decks…",empty:"No decks on this server — add one there, then retry.",malformed:"The deck list came back unreadable. Retry — or fix the server, then retry.",unreachable:"Can't reach the Agent Deck server — fix it in Settings, then retry.",unconfigured:"No Agent Deck server set — add it in Settings."};function o(a=null){return{status:"loading",decks:[],cachedDecks:a,serverUrl:"",checkedAt:0,error:""}}function p(a){return String(a).padStart(2,"0")}function q(a){let b=new Date(a);return`${p(b.getHours())}:${p(b.getMinutes())}:${p(b.getSeconds())}`}function r(a){switch(a.status){case"loading":return"Status: ○ Checking the Agent Deck server…";case"connected":return`Status: ● Connected \xb7 ${a.decks.length} ${1===a.decks.length?"deck":"decks"} \xb7 checked ${q(a.checkedAt)}`;case"empty":return"Status: ○ Connected — no decks on this server.";case"malformed":return"Status: ○ The server returned decks this app can't read.";case"unreachable":return"Status: ○ Can't reach the Agent Deck server.";case"unconfigured":return"Status: ○ No Agent Deck server set."}}function s(a){return"connected"===a.status?null:n[a.status]}function t(a){return"empty"===a.status||"malformed"===a.status||"unreachable"===a.status}async function u(a,b,c=Date.now){let d,e;try{d=await a("/api/agent-deck/decks",{cache:"no-store"})}catch(a){return{status:"unreachable",decks:[],cachedDecks:b.cachedDecks,serverUrl:b.serverUrl,checkedAt:c(),error:a instanceof Error?a.message:String(a)}}try{e=await d.json()}catch{e=void 0}return function(a,b,c){let d="object"==typeof a.body&&null!==a.body?a.body:{},e="string"==typeof d.server_url?d.server_url:b.serverUrl,f={cachedDecks:b.cachedDecks,serverUrl:e,checkedAt:c};if("string"==typeof d.server_url&&!d.server_url.trim())return{...f,status:"unconfigured",decks:[],error:""};if(a.ok){let b=function(a){if("object"!=typeof a||null===a)return null;let b=a.decks;if(!Array.isArray(b))return null;let c=[];for(let a of b){if("object"!=typeof a||null===a)return null;let b=a.id,d=a.name;if("string"!=typeof b||!b.trim()||"string"!=typeof d||!d.trim())return null;c.push({id:b,name:d})}return c}(a.body);return b?{...f,cachedDecks:b,status:b.length>0?"connected":"empty",decks:b,error:""}:{...f,status:"malformed",decks:[],error:"Unexpected deck list shape."}}let g="string"==typeof d.error?d.error:`HTTP ${a.status}`,h="invalid-payload"===d.code||/unexpected deck payload/i.test(g);return{...f,status:h?"malformed":"unreachable",decks:[],error:g}}({ok:d.ok,status:d.status,body:e},b,c())}function v(a,b){let c=String(a??"").trim(),d=b?b.decks.length>0?b.decks:b.cachedDecks??[]:[];return d.find(a=>a.id===c)?.name??c}function w(a){return f((a.agent??"").trim()||e)}function x(a){return!y(a)&&(function(a){let b=a.needs_deck_selection;if(!0===b||1===b)return!0;if("string"==typeof b){let a=b.trim().toLowerCase();return"1"===a||"true"===a}return!1}(a)||!(a.deck_id??"").trim())}function y(a){return"direct"===a.launch_profile}function z(a,b){if(x(a)||y(a))return!1;let c=b?"connected"===b.status||"empty"===b.status?b.decks.map(a=>a.id):"unconfigured"===b.status?null:b.cachedDecks?b.cachedDecks.map(a=>a.id):null:null;return!!c&&!c.includes((a.deck_id??"").trim())}function A(a){return`Agent: ${w(a)} \xb7 Agent Deck: `}function B(a,b){let c,d=(c=y(a)?`Agent: ${w(a)} \xb7 Launch: Direct`:x(a)?`${A(a)}not selected`:A(a)+v(a.deck_id??"",b),x(a)?`${c} — select in Config`:z(a,b)?c+" (deck unavailable — see Config)":c);if(x(a)||y(a))return{prefix:d,deck:"",suffix:""};let e=A(a),f=v(a.deck_id??"",b);return{prefix:e,deck:f,suffix:d.slice(e.length+f.length)}}function C(a){return`~/.botmancers/${a}`}let D=[{prefix:"[Deck handoff]",kind:"handoff",label:"Agent Deck launch"},{prefix:"[Deck run]",kind:"run",label:"Agent Deck run"},{prefix:"[Deck review]",kind:"review",label:"Agent Deck review"},{prefix:"[Deck resume]",kind:"resume",label:"Agent Deck resume"},{prefix:"[Deck result]",kind:"result",label:"Agent Deck result"},{prefix:"[Deck failed]",kind:"failed",label:"Agent Deck failed"},{prefix:"[Deck needs selection]",kind:"reselection",label:"Agent Deck needs a deck"},{prefix:"[Deck needs reselection]",kind:"reselection",label:"Agent Deck needs a deck"}];a.s(["AGENT_OPTIONS",0,g,"DECK_PLACEHOLDER",0,i,"DECK_SLOT_COPY",0,n,"NEW_BOT_WORKDIR_HINT",0,"Default: ~/.botmancers/{agentID} — {agentID} is this agent's ID, assigned at creation.","NON_LOCAL_NOTE",0,j,"SAVED_DECK_MISSING_NOTE",0,m,"SETTINGS_ENDPOINT",0,"/api/agent-deck/settings","SETTINGS_LINK_COPY",0,l,"SETTINGS_NON_LOCAL_NOTE",0,k,"SETTINGS_PATH",0,h,"botAgentLabel",0,w,"configWorkdirHint",0,function(a){return`Default: ${C(a)} — leave blank to use it.`},"deckEventDisplay",0,function(a){let b=String(a??"").trimStart(),c=D.find(a=>b.startsWith(a.prefix));return c?{label:c.label,detail:b.slice(c.prefix.length).trim()}:null},"deckLabel",0,v,"deckSlotCopy",0,s,"deckStateShowsRetry",0,t,"defaultWorkdirFor",0,C,"fetchDeckList",0,u,"formatClock",0,q,"initialDeckListState",0,o,"isDeckUnavailable",0,z,"isMigratedPending",0,x,"rosterRuntimeParts",0,B,"settingsStatusLine",0,r],20851);let E={modal:{label:"",legend:"field-legend",picks:"runtime-picks",pick:"runtime-pick",note:"runtime-note",control:"deck-control",hint:"runtime-hint",link:"runtime-link",retry:"runtime-retry"},config:{label:"block text-sm cfg-muted mt-3 mb-1",legend:"block text-sm cfg-muted mt-3 mb-1 p-0",picks:"flex flex-wrap gap-x-4 gap-y-1 text-sm cfg-muted",pick:"text-sm cfg-muted",note:"text-sm cfg-muted mt-1",control:"cfg-input text-sm",hint:"mt-1 text-xs cfg-faint",link:"cfg-link text-sm",retry:"cfg-link text-sm"}};function F({id:a,labelId:c,state:d,value:e,onChange:f,onRetry:g,savedDeckId:h,variant:j}){let k=E[j],l=s(d),n=(h??"").trim();if(null===l){let c=!!n&&!d.decks.some(a=>a.id===n);return(0,b.jsxs)("div",{"data-field":"deck","data-state":d.status,children:[(0,b.jsxs)("select",{id:a,className:k.control,"aria-required":"true","aria-describedby":c&&e===n?`${a}-saved-note`:void 0,value:e,title:e||void 0,onChange:a=>f(a.target.value),children:[(0,b.jsx)("option",{value:"",disabled:!0,children:i}),c?(0,b.jsxs)("option",{value:n,title:n,children:[n," (saved)"]}):null,d.decks.map(a=>(0,b.jsx)("option",{value:a.id,title:a.id,children:a.name},a.id))]}),c&&e===n?(0,b.jsx)("p",{id:`${a}-saved-note`,className:k.note,children:m}):null]})}return(0,b.jsxs)("div",{"data-field":"deck","data-state":d.status,role:"group","aria-labelledby":c,children:[n?(0,b.jsxs)("p",{className:k.note,children:["Saved Agent Deck: ",(0,b.jsx)("span",{title:n,children:n})]}):null,(0,b.jsxs)("p",{id:a,className:`${k.note} deck-slot`,role:"status",children:[(0,b.jsx)("span",{id:`${a}-copy`,children:l}),t(d)?(0,b.jsxs)(b.Fragment,{children:[" ",(0,b.jsx)("button",{type:"button",className:k.retry,onClick:g,children:"Retry"})]}):null]})]})}a.s(["AgentDeckFields",0,function({idPrefix:a,variant:c,deckId:d,onDeckId:e,deckState:f,onRetry:g,savedDeckId:i,workingDirectory:k,onWorkingDirectory:m,workdirPlaceholder:n,workdirHint:o}){let p=E[c],q=null===s(f);return(0,b.jsxs)("div",{className:"agent-deck-fields",children:[(0,b.jsx)("label",{className:p.label,id:`${a}-deck-label`,htmlFor:q?`${a}-deck`:void 0,children:"Agent Deck"}),(0,b.jsx)(F,{id:`${a}-deck`,labelId:`${a}-deck-label`,state:f,value:d,onChange:e,onRetry:g,savedDeckId:i,variant:c}),(0,b.jsx)("a",{href:h,className:p.link,children:l}),(0,b.jsx)("label",{className:p.label,htmlFor:`${a}-workdir`,children:"Working directory (optional)"}),(0,b.jsx)("input",{id:`${a}-workdir`,type:"text",className:"config"===c?p.control:void 0,"data-field":"workdir","aria-describedby":`${a}-workdir-hint ${a}-workdir-note`,value:k,placeholder:n,onChange:a=>m(a.target.value)}),(0,b.jsx)("p",{id:`${a}-workdir-hint`,className:p.hint,children:o}),(0,b.jsx)("p",{id:`${a}-workdir-note`,className:p.hint,children:j})]})},"RosterRuntimeLine",0,function({bot:a,state:c}){let{prefix:d,deck:e,suffix:f}=B(a,c);return(0,b.jsxs)("div",{className:"bot-runtime",title:d+e+f,children:[d,e?(0,b.jsx)("span",{className:"bot-runtime-deck",children:e}):null,f]})},"SettingsStatus",0,function({state:a,onRetry:c}){return(0,b.jsxs)("div",{"data-field":"status","data-state":a.status,children:[(0,b.jsx)("p",{className:"connected"===a.status?"text-sm cfg-ok":"text-sm cfg-muted",role:"status",children:r(a)}),t(a)?(0,b.jsx)("button",{type:"button",onClick:c,className:"mt-2 cfg-btn-ghost text-sm w-full sm:w-auto",children:"Retry"}):null,"connected"===a.status?(0,b.jsx)("p",{className:"mt-1 text-xs cfg-faint break-words",children:a.decks.map(a=>a.name).join(" · ")}):null,(0,b.jsx)("p",{className:"mt-2 text-xs cfg-faint",children:k})]})}],39228);var G=a.i(72131);let H="botmancers.agentDeck.lastDecks";function I(a){return"object"==typeof a&&null!==a&&"string"==typeof a.id&&"string"==typeof a.name}let J=(a,b)=>{let c=new AbortController,d=setTimeout(()=>c.abort(),1e4);return fetch(a,{cache:"no-store",signal:c.signal,...b}).finally(()=>clearTimeout(d))};a.s(["useDeckList",0,function(a=!0){let[b,c]=(0,G.useState)(()=>o()),[d,e]=(0,G.useState)(0),f=(0,G.useRef)(null);return(0,G.useEffect)(()=>{if(!a)return;let b=!1;return u(J,o(f.current??function(){try{let a=window.localStorage.getItem(H);if(!a)return null;let b=JSON.parse(a);return Array.isArray(b)&&b.every(I)?b:null}catch{return null}}())).then(a=>{if(!b){f.current=a.cachedDecks;var d=a.cachedDecks;if(d)try{window.localStorage.setItem(H,JSON.stringify(d))}catch{}c(a)}}),()=>{b=!0}},[d,a]),{state:b,retry:(0,G.useCallback)(()=>{c(a=>({...a,status:"loading",decks:[],error:""})),e(a=>a+1)},[])}}],2296)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=app_components_AgentDeckRuntime_tsx_024janf._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[27828,65221,35099,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(38246);function e(a){return`${new Date(a).toISOString().slice(0,16).replace("T"," ")} UTC`}let f="Not reported";function g(a){return a.toFixed(1).replace(/\.0$/,"")}function h(a){return a.toLocaleString("en-US")}function i(a){return 0===a?"$0.00":a>=.01?`$${a.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}`:a<1e-4?"<$0.0001":`$${a.toFixed(4)}`}let j={input_tokens:"Input tokens",output_tokens:"Output tokens",cost_usd:"Cost"};function k(a,b,c){return"cost_usd"===a?i(b):c?h(b):b<1e3?String(b):b<999950?`${g(b/1e3)}k`:b<99995e4?`${g(b/1e6)}M`:`${g(b/1e9)}B`}function l(a){return`${a} ${1===a?"run":"runs"}`}function m(a,b,c=!1){let d=j[a];if(!b||"unavailable"===b.quality||null===b.sum)return{name:d,text:f,quality:"unavailable",coverage:b&&b.total>0?`0 of ${l(b.total)} reported`:"No runs recorded",label:`${d}: not reported`};let e=k(a,b.sum,c),g=k(a,b.sum,!0);return"partial"===b.quality?{name:d,text:e,quality:"partial",coverage:`Partial: ${b.known} of ${l(b.total)} reported`,label:`${d}: at least ${g}, partial, reported by ${b.known} of ${l(b.total)}`}:{name:d,text:e,quality:"complete",coverage:`All ${l(b.total)} reported`,label:`${d}: ${g}, reported by all ${l(b.total)}`}}a.s(["SESSION_FILTER_OPTIONS",0,[{value:"all",label:"All"},{value:"active",label:"Active"},{value:"ended",label:"Ended"}],"attemptLabel",0,function(a){let b="source"===a.role?"Started the session":"Resumed the session";return`${b} \xb7 ${a.outcome??"running"}`},"emptySessionsCopy",0,function(a,b){return"active"===a?`${b} has no active sessions.`:"ended"===a?`${b} has no ended sessions.`:`${b} has no sessions yet. One appears after a coding run keeps its runtime context.`},"formatSessionDate",0,e,"runtimeLabel",0,function(a){return a.agent.transport?`${a.agent.adapter} \xb7 ${a.agent.transport}`:a.agent.adapter},"sessionStateTags",0,function(a){let b=[];return(a.home&&b.push("Home"),a.state?.availability==="missing")?[...b,"Missing"]:(a.state?.lifecycle==="archived"&&b.push("Archived"),a.state?.busy&&b.push("Busy"),(a.resumable||a.state?.resumable===!0)&&b.push("Resumable"),b)},"sessionUsageLine",0,function(a){let b=m("input_tokens",a?.input_tokens),c=m("output_tokens",a?.output_tokens),d=m("cost_usd",a?.cost_usd),e=[b,c,d];if(e.every(a=>"unavailable"===a.quality))return{text:f,label:"Usage: not reported",quality:"unavailable",partial:!1};let g=["unavailable"===b.quality?"input not reported":`${b.text} in`,"unavailable"===c.quality?"output not reported":`${c.text} out`,"unavailable"===d.quality?"cost not reported":d.text].join(" · "),h=e.some(a=>"partial"===a.quality),i=h||e.some(a=>"unavailable"===a.quality)?"partial":"complete";return{text:g,label:`Reported usage: ${e.map(a=>a.label).join("; ")}`,quality:i,partial:h}},"statusLabel",0,function(a){return"active"===a.status?"Active":"Ended"},"usageMetricView",0,m,"usageSampleLabel",0,function(a,b){let c="turn"===a.kind?"start"===a.turn_kind?"provider turn, started":"provider turn":"resume"===a.turn_kind?"resumed":"started";return`Run ${b+1} \xb7 ${c}`},"usageSampleValues",0,function(a){return{input:null===a.input_tokens?f:h(a.input_tokens),output:null===a.output_tokens?f:h(a.output_tokens),cost:null===a.cost_usd?f:i(a.cost_usd)}},"workRequestLabel",0,function(a){var b;let c=a.origin.work_request;return c?`${(b=c.execution_kind)?b[0].toUpperCase()+b.slice(1):b} \xb7 ${c.state}`:null}],65221);let n={ask:"Ask from this context",resume:"Resume work here",handoff:"Hand off to…"},o=["queued","extracting","delivering","completed","failed","cancelled"],p=["completed","failed","cancelled"];function q(a){return"ask"===a?"Ask":"Continue"}function r(a,b){switch(b){case"queued":return"Queued";case"extracting":return"ask"===a?"Asking the session":"Extracting handoff";case"delivering":return"Delivering handoff";case"completed":return"ask"===a?"Answered":"Handed off";case"failed":return"Failed";case"cancelled":return"Cancelled"}}function s(a){var b;return a.cancel_requested&&(b=a.state,!p.includes(b))?"Cancelling…":r(a.mode,a.state)}function t(a){return"completed"===a?"done":"failed"===a||"cancelled"===a?"stopped":"active"}function u(a,b=140){let c=String(a??"").split("\n").map(a=>a.trim()).filter(a=>a.length>0).join(" ");return c.length>b?`${c.slice(0,b-1).trimEnd()}…`:c}function v(a){return e(a)}function w(a){return`${a.source.agent_name}'s session “${a.source.session_title}”`}function x(a){return"ask"===a.mode?`You → ${a.source.agent_name}`:`${a.source.agent_name} → ${a.destination?.agent_name??"another Agent"}`}function y(a){return"ask"===a?"Question":"Objective"}function z(a){if("completed"===a.state){if("ask"===a.mode){let b=a.origin?.label??"the origin thread";return a.outcome.answer?`Answer in ${b}: ${u(a.outcome.answer,200)}`:`Answered in ${b}.`}let b=a.destination?.agent_name??"The destination Agent";return a.outcome.reply?`${b} picked it up in a new session: ${u(a.outcome.reply,200)}`:`${b} picked it up in a new session.`}return"failed"===a.state?a.failure?.message||"The exchange failed.":"cancelled"===a.state?"Cancelled before it finished. Nothing more will run.":null}function A(a){if("failed"!==a.state)return null;switch(a.failure?.code){case"packet_invalid":case"packet_missing":return"The source session did not return a usable handoff. Start a new Continue with a clearer objective.";case"destination_session_invalid":return"The destination did not start a fresh session. Check its runtime, then start a new Continue.";case"destination_turn_failed":return"Check the destination Agent’s runtime, then start a new Continue from the source session.";case"source_turn_failed":return"Check the source Agent’s runtime, then start a new exchange from its Sessions.";default:return"Start a new exchange from the session to try again."}}function B(a){return`/exchanges?id=${encodeURIComponent(a)}`}function C(a,b){return b.updated_at-a.updated_at||b.created_at-a.created_at||(a.id<b.id?-1:+(a.id>b.id))}a.s(["DEFAULT_LEDGER_FILTER",0,{mode:"all",state:"all",agentId:""},"INSTRUCTION_LIMIT",0,4e3,"MODE_FILTER_OPTIONS",0,[{value:"all",label:"All"},{value:"ask",label:"Ask"},{value:"continue",label:"Continue"}],"STATE_FILTER_OPTIONS",0,[{value:"all",label:"Any status"},{value:"active",label:"In progress"},{value:"queued",label:"Queued"},{value:"extracting",label:"Asking / extracting"},{value:"delivering",label:"Delivering"},{value:"completed",label:"Completed"},{value:"failed",label:"Failed"},{value:"cancelled",label:"Cancelled"}],"detailsHref",0,B,"eventLabel",0,function(a,b){let c=a.data??{},d=b.source.agent_name,e=b.destination?.agent_name??"the destination Agent",f="string"==typeof c.hop?c.hop:null;switch(a.type){case"created":return"ask"===b.mode?`You asked ${d}'s session a question`:`You handed ${d}'s session to ${e}`;case"hop_queued":if("deliver"===f)return`Handoff queued for ${e}'s new session`;return"extract"===f?`Handoff extraction queued in ${d}'s session`:`Question queued for ${d}'s session`;case"hop_started":if("deliver"===f)return`${e} started a new session`;return"extract"===f?`${d}'s session started extracting the handoff`:`${d}'s session started answering`;case"state_changed":{let a="string"==typeof c.to&&o.includes(c.to)?c.to:null;return a?`Now ${r(b.mode,a).toLowerCase()}`:"State changed"}case"answer_returned":return`Answer returned to ${b.origin?.label??"the origin thread"}${c.truncated?" (shortened)":""}`;case"packet_extracted":return"Handoff packet extracted";case"packet_rejected":return`Handoff packet refused${"string"==typeof c.reason?`: ${c.reason}`:""}`;case"destination_replied":return`${e} replied in ${b.destination?.conversation?.label??"its thread"}`;case"destination_session_rejected":return`${e}'s session was not new; the handoff stopped`;case"cancel_requested":return"You asked to cancel";case"hop_result_discarded":return"A late result was discarded";default:return a.type.replace(/_/g," ")}},"excerpt",0,u,"exchangeRequestBody",0,function(a,b,c){let d={mode:a.mode,idempotency_key:c,origin_conversation_id:a.originConversationId,source:{agent_id:b.agentId,session_ref:b.sessionRef},instruction:a.instruction.trim()};return"continue"===a.mode&&(d.destination={agent_id:a.destinationAgentId}),d},"failureAdvice",0,A,"formatExchangeTime",0,v,"instructionHeading",0,y,"ledgerAgents",0,function(a){let b=new Map;for(let c of a)b.set(c.source.agent_id,c.source.agent_name),c.destination&&b.set(c.destination.agent_id,c.destination.agent_name);return[...b.entries()].map(([a,b])=>({id:a,name:b})).sort((a,b)=>a.name.localeCompare(b.name)||a.id.localeCompare(b.id))},"ledgerRows",0,function(a,b){return a.filter(a=>("all"===b.mode||a.mode===b.mode)&&("active"!==b.state||!a.terminal)&&("all"===b.state||"active"===b.state||a.state===b.state)&&(!b.agentId||a.source.agent_id===b.agentId||a.destination?.agent_id===b.agentId)).sort(C)},"ledgerView",0,function(a,b,c){return null===a?b?"error":"loading":0===a.length?"empty":0===c.length?"filtered-out":"rows"},"linkRoleLabel",0,function(a){let b={origin:"Started here",source:"Source session",destination:"Destination"};return a.map(a=>b[a]).join(" · ")},"liveStateLabel",0,s,"modeLabel",0,q,"outcomeLine",0,z,"participantsLabel",0,x,"pinRequestBody",0,function(a,b,c,d,e){return{action:a,content:b.trim(),conversation_id:c,idempotency_key:e,..."resume"===a?{approve_write:d}:{}}},"sessionDialogMode",0,function(a){return"handoff"===a?"continue":a},"sessionDialogTitle",0,function(a){return n["continue"===a?"handoff":a]},"sessionDialogUsesPin",0,function(a,b){return"resume"===a||"ask"===a&&"provider"===b},"sessionLabel",0,w,"sessionRowActions",0,function(a){let b;if(a.actions)b=a.actions;else{let c="ended"===a.status?{available:!1,reason:"Ask from this context and Hand off to… are unavailable: this session has ended. Its history stays here."}:a.resumable?{available:!0}:{available:!1,reason:`Ask from this context and Hand off to… are unavailable: Botmancers can’t resume this session under ${a.agent.name}’s current runtime.`},d=c.available?{available:!0}:{available:!1,code:"ended"===a.status?"session_ended":"session_not_resumable",reason:c.reason,recovery:"choose_session"};b={ask:d,resume:{available:!1,code:"action_unavailable",reason:`${n.resume} is unavailable: this runtime can’t resume a session with edits.`,recovery:"choose_action"},handoff:d}}return["ask","resume","handoff"].map(a=>({action:a,label:n[a],availability:b[a]}))},"stateTone",0,t,"submitErrorMessage",0,function(a,b){switch(a){case"session_ended":return"This session has ended and can’t be resumed.";case"session_not_resumable":return"Botmancers can’t resume this session under the Agent’s current runtime.";case"source_session_busy":return"This session already has an exchange in progress. Wait for it or cancel it from its card.";case"agent_unavailable":return b||"That Agent has no Agent Deck selected.";case"idempotency_conflict":return"This request changed while it was being sent. Send again.";case"session_missing":return"The runtime no longer has this session. Its history stays here; choose another session.";case"approval_required":return"Resume work here needs your approval of edits. Tick the approval, then send again.";case"authority_not_allowed":return b||"This Agent’s policy doesn’t allow edits in a resumed session. Change it in Config.";case"action_unavailable":return b||"This runtime can’t do that in this session. Choose another action.";case"provider_failed":return"The runtime failed this turn. Nothing moved to another session; try again later.";default:return b||"The exchange could not be started. Your draft is kept; try again."}},"threadHref",0,function(a,b){let c=new URLSearchParams;if(a.thread_agent_id)return c.set("agent",a.thread_agent_id),b&&c.set("exchange",b),`/?${c.toString()}`;if("group"!==a.kind)return null;b&&c.set("exchange",b);let d=c.toString();return`/threads/${encodeURIComponent(a.id)}${d?`?${d}`:""}`},"validateDraft",0,function(a){let b={},c=a.instruction.trim(),d="ask"===a.mode?"a question":"an objective";return c?a.instruction.length>4e3&&(b.instruction="Keep it under 4000 characters."):b.instruction=`Enter ${d}.`,a.originConversationId||(b.origin="Choose the thread that follows this exchange."),"continue"!==a.mode||a.destinationAgentId||(b.destination="Choose the Agent who continues the work."),b},"validateResumeDraft",0,function(a,b){let c={};return a.trim()?a.length>4e3&&(c.instruction="Keep it under 4000 characters."):c.instruction="Enter what to work on.",b||(c.approval="Approve edits in this session to resume work here."),c}],35099),a.s(["default",0,function({summary:a,onChanged:e}){let[f,g]=(0,c.useState)(!1),[h,i]=(0,c.useState)(""),j=t(a.state),k=z(a),l=A(a),m=`exchange-${a.id}-title`,n=async()=>{if(!f){g(!0),i("");try{let b=await fetch(`/api/exchanges/${encodeURIComponent(a.id)}/cancel`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"});if(!b.ok){let a=await b.json().catch(()=>null);i("string"==typeof a?.error?.message?a.error.message:"Could not cancel. Try again.")}}catch{i("Could not cancel. Try again.")}finally{g(!1),e?.()}}};return(0,b.jsxs)("article",{id:`exchange-${a.id}`,className:`exchange-card is-${j} is-${a.state}`,"data-exchange-id":a.id,"data-exchange-state":a.state,"aria-labelledby":m,tabIndex:-1,children:[(0,b.jsxs)("p",{className:"exchange-card-line",children:[(0,b.jsx)("span",{className:"exchange-card-mode",children:q(a.mode)}),(0,b.jsx)("span",{id:m,className:"exchange-card-title",children:x(a)}),(0,b.jsx)("span",{className:"exchange-card-state",role:"status",children:s(a)})]}),(0,b.jsx)("p",{className:"exchange-card-session",children:w(a)}),(0,b.jsxs)("p",{className:"exchange-card-instruction",children:[(0,b.jsx)("span",{className:"exchange-card-key",children:y(a.mode)})," ",u(a.instruction,220)]}),k?(0,b.jsx)("p",{className:"failed"===a.state?"exchange-card-outcome is-failure":"exchange-card-outcome",children:k}):null,l?(0,b.jsx)("p",{className:"exchange-card-advice",children:l}):null,h?(0,b.jsx)("p",{className:"exchange-card-error",role:"alert",children:h}):null,(0,b.jsxs)("p",{className:"exchange-card-foot",children:[(0,b.jsxs)("span",{className:"exchange-card-time",children:["Updated ",v(a.updated_at)]}),(0,b.jsx)(d.default,{className:"exchange-card-link",href:B(a.id),"aria-label":`Details: ${q(a.mode)} ${x(a)}`,children:"Details"}),a.can_cancel?(0,b.jsx)("button",{type:"button",className:"exchange-card-cancel",disabled:f,onClick:()=>{n()},children:f?"Cancelling…":"Cancel"}):null]})]})}],27828)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=app_components_ExchangeCard_tsx_1shfcgn._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[45343,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(38246),e=a.i(39228),f=a.i(2296),g=a.i(20851);async function h(a){try{let b=await a.json();if(b.error)return b.error}catch{}return"request failed"}a.s(["default",0,function(){let{state:a,retry:i}=(0,f.useDeckList)(),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(""),[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(0),[r,s]=(0,c.useState)("clean"),[t,u]=(0,c.useState)(""),[v,w]=(0,c.useState)(0);(0,c.useEffect)(()=>{let a=!1;return fetch(g.SETTINGS_ENDPOINT,{cache:"no-store"}).then(async b=>{if(!b.ok)throw Error(await h(b));let c=await b.json();if(a)return;let d="string"==typeof c.server_url?c.server_url:"";k(d),m(d),o(!1)}).catch(()=>{a||o(!0)}),()=>{a=!0}},[p]);let x=null!==j&&l!==j;async function y(){s("saving"),u("");try{let a=await fetch(g.SETTINGS_ENDPOINT,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({server_url:l})});if(!a.ok)throw Error(await h(a));let b=await a.json();k(b.server_url),m(b.server_url),s("confirmed"),w(Date.now()),setTimeout(()=>{s(a=>"confirmed"===a?"clean":a)},5e3),i()}catch(a){s("error"),u(a instanceof Error?a.message:"request failed")}}(0,c.useEffect)(()=>{if(!x)return;let a=a=>{a.preventDefault()};return window.addEventListener("beforeunload",a),()=>window.removeEventListener("beforeunload",a)},[x]);let z="saving"===r?(0,b.jsx)("span",{className:"text-sm cfg-faint",children:"Saving…"}):x||"error"===r?(0,b.jsxs)("span",{className:"text-sm cfg-dirty",children:[(0,b.jsx)("span",{className:"inline-block w-2 h-2 rounded-full cfg-dot-amber mr-1"}),"Unsaved changes"]}):"confirmed"===r?(0,b.jsxs)("span",{className:"text-sm cfg-faint",children:["Saved ",(0,g.formatClock)(v)]}):(0,b.jsx)("span",{className:"text-sm cfg-faint",children:"Saved"});return(0,b.jsx)("div",{className:"cfg-page",children:(0,b.jsxs)("div",{className:"max-w-3xl mx-auto",children:[(0,b.jsx)(d.default,{href:"/",onClick:function(a){x&&!window.confirm("You have unsaved changes. Leave without saving?")&&a.preventDefault()},className:"cfg-link cfg-back text-sm",children:"← Back to chat"}),(0,b.jsxs)("header",{className:"mt-3 mb-6",children:[(0,b.jsx)("h1",{className:"text-xl font-bold",children:"Settings"}),(0,b.jsx)("p",{className:"text-sm cfg-faint",children:"Workspace settings for every agent in this Botmancers."})]}),(0,b.jsxs)("section",{className:"cfg-card",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsx)("h2",{className:"cfg-title",children:"Agent Deck server"}),null!==j?z:null]}),n&&null===j?(0,b.jsxs)("p",{className:"text-sm cfg-muted",children:["Couldn't load this section."," ",(0,b.jsx)("button",{onClick:()=>q(a=>a+1),className:"cfg-link",children:"Retry"})]}):null===j?(0,b.jsx)("div",{className:"h-10 rounded-lg animate-pulse cfg-skel"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("label",{className:"block text-sm cfg-muted mb-1",htmlFor:"settings-server-url",children:"Server URL"}),(0,b.jsxs)("div",{className:"flex flex-col sm:flex-row gap-2",children:[(0,b.jsx)("input",{id:"settings-server-url",type:"url",value:l,onChange:a=>{m(a.target.value),"error"===r&&s("clean")},onKeyDown:a=>{"Enter"===a.key&&x&&(a.preventDefault(),y())},placeholder:"http://127.0.0.1:1111",className:"cfg-input text-sm sm:flex-1"}),(0,b.jsx)("button",{onClick:()=>{y()},disabled:!x||"saving"===r,className:"cfg-btn-primary text-sm",children:"saving"===r?"Saving…":"Save"}),x?(0,b.jsx)("button",{onClick:function(){m(j??""),s("clean"),u("")},disabled:"saving"===r,className:"cfg-btn-ghost text-sm",children:"Discard"}):null]}),"error"===r&&(0,b.jsxs)("p",{className:"mt-2 text-sm cfg-error",children:["Couldn't save: ",t," ",(0,b.jsx)("button",{onClick:()=>{y()},className:"underline hover:no-underline",children:"Retry"})]}),(0,b.jsx)("p",{className:"mt-2 text-xs cfg-faint",children:"The only Agent Deck server for this workspace. Bots pick their deck from this server."})]}),(0,b.jsx)("div",{className:"mt-4 pt-4 border-t cfg-line",children:(0,b.jsx)(e.SettingsStatus,{state:a,onRetry:i})})]})]})})}])}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=app_settings_page_tsx_1t-rdz-._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[69789,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={actionAsyncStorage:function(){return f.actionAsyncStorage},workAsyncStorage:function(){return g.workAsyncStorage},workUnitAsyncStorage:function(){return h.workUnitAsyncStorage}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20635),g=a.r(56704),h=a.r(32319);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=node_modules_next_dist_client_components_server-async-storage_0t1dato.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,10331,3136,74904,4335,e=>{"use strict";var t=e.i(43476);let n=["hermes","cursor","claude","codex","muse"],r={hermes:"Hermes",cursor:"Cursor",claude:"Claude",codex:"Codex",muse:"Muse Code"},a="hermes";function s(e){return n.includes(String(e))?r[e]:String(e??"")}n.join("|"),e.s(["AGENTS",0,n,"AGENT_LABELS",0,r,"DEFAULT_AGENT",0,a,"agentLabel",0,s],3136);let i=n.map(e=>({value:e,label:r[e]})),o="/settings",l="Select an Agent Deck…",u="Runs use the configured Agent Deck server. Remote execution is unconfirmed — see Settings for the configured server.",c="Runs use the server above. Remote execution is unconfirmed.",d="Configure the Agent Deck server in Settings",f="Saved Agent Deck not on this server — saving keeps it unless you pick another.",h={loading:"Loading decks…",empty:"No decks on this server — add one there, then retry.",malformed:"The deck list came back unreadable. Retry — or fix the server, then retry.",unreachable:"Can't reach the Agent Deck server — fix it in Settings, then retry.",unconfigured:"No Agent Deck server set — add it in Settings."};function p(e=null){return{status:"loading",decks:[],cachedDecks:e,serverUrl:"",checkedAt:0,error:""}}function g(e){return String(e).padStart(2,"0")}function m(e){let t=new Date(e);return`${g(t.getHours())}:${g(t.getMinutes())}:${g(t.getSeconds())}`}function k(e){switch(e.status){case"loading":return"Status: ○ Checking the Agent Deck server…";case"connected":return`Status: ● Connected \xb7 ${e.decks.length} ${1===e.decks.length?"deck":"decks"} \xb7 checked ${m(e.checkedAt)}`;case"empty":return"Status: ○ Connected — no decks on this server.";case"malformed":return"Status: ○ The server returned decks this app can't read.";case"unreachable":return"Status: ○ Can't reach the Agent Deck server.";case"unconfigured":return"Status: ○ No Agent Deck server set."}}function b(e){return"connected"===e.status?null:h[e.status]}function v(e){return"empty"===e.status||"malformed"===e.status||"unreachable"===e.status}async function y(e,t,n=Date.now){let r,a;try{r=await e("/api/agent-deck/decks",{cache:"no-store"})}catch(e){return{status:"unreachable",decks:[],cachedDecks:t.cachedDecks,serverUrl:t.serverUrl,checkedAt:n(),error:e instanceof Error?e.message:String(e)}}try{a=await r.json()}catch{a=void 0}return function(e,t,n){let r="object"==typeof e.body&&null!==e.body?e.body:{},a="string"==typeof r.server_url?r.server_url:t.serverUrl,s={cachedDecks:t.cachedDecks,serverUrl:a,checkedAt:n};if("string"==typeof r.server_url&&!r.server_url.trim())return{...s,status:"unconfigured",decks:[],error:""};if(e.ok){let t=function(e){if("object"!=typeof e||null===e)return null;let t=e.decks;if(!Array.isArray(t))return null;let n=[];for(let e of t){if("object"!=typeof e||null===e)return null;let t=e.id,r=e.name;if("string"!=typeof t||!t.trim()||"string"!=typeof r||!r.trim())return null;n.push({id:t,name:r})}return n}(e.body);return t?{...s,cachedDecks:t,status:t.length>0?"connected":"empty",decks:t,error:""}:{...s,status:"malformed",decks:[],error:"Unexpected deck list shape."}}let i="string"==typeof r.error?r.error:`HTTP ${e.status}`,o="invalid-payload"===r.code||/unexpected deck payload/i.test(i);return{...s,status:o?"malformed":"unreachable",decks:[],error:i}}({ok:r.ok,status:r.status,body:a},t,n())}function x(e,t){let n=String(e??"").trim(),r=t?t.decks.length>0?t.decks:t.cachedDecks??[]:[];return r.find(e=>e.id===n)?.name??n}function _(e){return s((e.agent??"").trim()||a)}function $(e){return!S(e)&&(function(e){let t=e.needs_deck_selection;if(!0===t||1===t)return!0;if("string"==typeof t){let e=t.trim().toLowerCase();return"1"===e||"true"===e}return!1}(e)||!(e.deck_id??"").trim())}function S(e){return"direct"===e.launch_profile}function w(e,t){if($(e)||S(e))return!1;let n=t?"connected"===t.status||"empty"===t.status?t.decks.map(e=>e.id):"unconfigured"===t.status?null:t.cachedDecks?t.cachedDecks.map(e=>e.id):null:null;return!!n&&!n.includes((e.deck_id??"").trim())}function A(e){return`Agent: ${_(e)} \xb7 Agent Deck: `}function C(e,t){let n,r=(n=S(e)?`Agent: ${_(e)} \xb7 Launch: Direct`:$(e)?`${A(e)}not selected`:A(e)+x(e.deck_id??"",t),$(e)?`${n} — select in Config`:w(e,t)?n+" (deck unavailable — see Config)":n);if($(e)||S(e))return{prefix:r,deck:"",suffix:""};let a=A(e),s=x(e.deck_id??"",t);return{prefix:a,deck:s,suffix:r.slice(a.length+s.length)}}function T(e){return`~/.botmancers/${e}`}let N=[{prefix:"[Deck handoff]",kind:"handoff",label:"Agent Deck launch"},{prefix:"[Deck run]",kind:"run",label:"Agent Deck run"},{prefix:"[Deck review]",kind:"review",label:"Agent Deck review"},{prefix:"[Deck resume]",kind:"resume",label:"Agent Deck resume"},{prefix:"[Deck result]",kind:"result",label:"Agent Deck result"},{prefix:"[Deck failed]",kind:"failed",label:"Agent Deck failed"},{prefix:"[Deck needs selection]",kind:"reselection",label:"Agent Deck needs a deck"},{prefix:"[Deck needs reselection]",kind:"reselection",label:"Agent Deck needs a deck"}];e.s(["AGENT_OPTIONS",0,i,"DECK_PLACEHOLDER",0,l,"DECK_SLOT_COPY",0,h,"NEW_BOT_WORKDIR_HINT",0,"Default: ~/.botmancers/{agentID} — {agentID} is this agent's ID, assigned at creation.","NON_LOCAL_NOTE",0,u,"SAVED_DECK_MISSING_NOTE",0,f,"SETTINGS_ENDPOINT",0,"/api/agent-deck/settings","SETTINGS_LINK_COPY",0,d,"SETTINGS_NON_LOCAL_NOTE",0,c,"SETTINGS_PATH",0,o,"botAgentLabel",0,_,"configWorkdirHint",0,function(e){return`Default: ${T(e)} — leave blank to use it.`},"deckEventDisplay",0,function(e){let t=String(e??"").trimStart(),n=N.find(e=>t.startsWith(e.prefix));return n?{label:n.label,detail:t.slice(n.prefix.length).trim()}:null},"deckLabel",0,x,"deckSlotCopy",0,b,"deckStateShowsRetry",0,v,"defaultWorkdirFor",0,T,"fetchDeckList",0,y,"formatClock",0,m,"initialDeckListState",0,p,"isDeckUnavailable",0,w,"isMigratedPending",0,$,"rosterRuntimeParts",0,C,"settingsStatusLine",0,k],74904);let D={modal:{label:"",legend:"field-legend",picks:"runtime-picks",pick:"runtime-pick",note:"runtime-note",control:"deck-control",hint:"runtime-hint",link:"runtime-link",retry:"runtime-retry"},config:{label:"block text-sm cfg-muted mt-3 mb-1",legend:"block text-sm cfg-muted mt-3 mb-1 p-0",picks:"flex flex-wrap gap-x-4 gap-y-1 text-sm cfg-muted",pick:"text-sm cfg-muted",note:"text-sm cfg-muted mt-1",control:"cfg-input text-sm",hint:"mt-1 text-xs cfg-faint",link:"cfg-link text-sm",retry:"cfg-link text-sm"}};function j({id:e,labelId:n,state:r,value:a,onChange:s,onRetry:i,savedDeckId:o,variant:u}){let c=D[u],d=b(r),h=(o??"").trim();if(null===d){let n=!!h&&!r.decks.some(e=>e.id===h);return(0,t.jsxs)("div",{"data-field":"deck","data-state":r.status,children:[(0,t.jsxs)("select",{id:e,className:c.control,"aria-required":"true","aria-describedby":n&&a===h?`${e}-saved-note`:void 0,value:a,title:a||void 0,onChange:e=>s(e.target.value),children:[(0,t.jsx)("option",{value:"",disabled:!0,children:l}),n?(0,t.jsxs)("option",{value:h,title:h,children:[h," (saved)"]}):null,r.decks.map(e=>(0,t.jsx)("option",{value:e.id,title:e.id,children:e.name},e.id))]}),n&&a===h?(0,t.jsx)("p",{id:`${e}-saved-note`,className:c.note,children:f}):null]})}return(0,t.jsxs)("div",{"data-field":"deck","data-state":r.status,role:"group","aria-labelledby":n,children:[h?(0,t.jsxs)("p",{className:c.note,children:["Saved Agent Deck: ",(0,t.jsx)("span",{title:h,children:h})]}):null,(0,t.jsxs)("p",{id:e,className:`${c.note} deck-slot`,role:"status",children:[(0,t.jsx)("span",{id:`${e}-copy`,children:d}),v(r)?(0,t.jsxs)(t.Fragment,{children:[" ",(0,t.jsx)("button",{type:"button",className:c.retry,onClick:i,children:"Retry"})]}):null]})]})}e.s(["AgentDeckFields",0,function({idPrefix:e,variant:n,deckId:r,onDeckId:a,deckState:s,onRetry:i,savedDeckId:l,workingDirectory:c,onWorkingDirectory:f,workdirPlaceholder:h,workdirHint:p}){let g=D[n],m=null===b(s);return(0,t.jsxs)("div",{className:"agent-deck-fields",children:[(0,t.jsx)("label",{className:g.label,id:`${e}-deck-label`,htmlFor:m?`${e}-deck`:void 0,children:"Agent Deck"}),(0,t.jsx)(j,{id:`${e}-deck`,labelId:`${e}-deck-label`,state:s,value:r,onChange:a,onRetry:i,savedDeckId:l,variant:n}),(0,t.jsx)("a",{href:o,className:g.link,children:d}),(0,t.jsx)("label",{className:g.label,htmlFor:`${e}-workdir`,children:"Working directory (optional)"}),(0,t.jsx)("input",{id:`${e}-workdir`,type:"text",className:"config"===n?g.control:void 0,"data-field":"workdir","aria-describedby":`${e}-workdir-hint ${e}-workdir-note`,value:c,placeholder:h,onChange:e=>f(e.target.value)}),(0,t.jsx)("p",{id:`${e}-workdir-hint`,className:g.hint,children:p}),(0,t.jsx)("p",{id:`${e}-workdir-note`,className:g.hint,children:u})]})},"RosterRuntimeLine",0,function({bot:e,state:n}){let{prefix:r,deck:a,suffix:s}=C(e,n);return(0,t.jsxs)("div",{className:"bot-runtime",title:r+a+s,children:[r,a?(0,t.jsx)("span",{className:"bot-runtime-deck",children:a}):null,s]})},"SettingsStatus",0,function({state:e,onRetry:n}){return(0,t.jsxs)("div",{"data-field":"status","data-state":e.status,children:[(0,t.jsx)("p",{className:"connected"===e.status?"text-sm cfg-ok":"text-sm cfg-muted",role:"status",children:k(e)}),v(e)?(0,t.jsx)("button",{type:"button",onClick:n,className:"mt-2 cfg-btn-ghost text-sm w-full sm:w-auto",children:"Retry"}):null,"connected"===e.status?(0,t.jsx)("p",{className:"mt-1 text-xs cfg-faint break-words",children:e.decks.map(e=>e.name).join(" · ")}):null,(0,t.jsx)("p",{className:"mt-2 text-xs cfg-faint",children:c})]})}],10331);var E=e.i(71645);let L="botmancers.agentDeck.lastDecks";function O(e){return"object"==typeof e&&null!==e&&"string"==typeof e.id&&"string"==typeof e.name}let R=(e,t)=>{let n=new AbortController,r=setTimeout(()=>n.abort(),1e4);return fetch(e,{cache:"no-store",signal:n.signal,...t}).finally(()=>clearTimeout(r))};e.s(["useDeckList",0,function(e=!0){let[t,n]=(0,E.useState)(()=>p()),[r,a]=(0,E.useState)(0),s=(0,E.useRef)(null);return(0,E.useEffect)(()=>{if(!e)return;let t=!1;return y(R,p(s.current??function(){try{let e=window.localStorage.getItem(L);if(!e)return null;let t=JSON.parse(e);return Array.isArray(t)&&t.every(O)?t:null}catch{return null}}())).then(e=>{if(!t){s.current=e.cachedDecks;var r=e.cachedDecks;if(r)try{window.localStorage.setItem(L,JSON.stringify(r))}catch{}n(e)}}),()=>{t=!0}},[r,e]),{state:t,retry:(0,E.useCallback)(()=>{n(e=>({...e,status:"loading",decks:[],error:""})),a(e=>e+1)},[])}}],4335)},13255,63352,50814,e=>{"use strict";var t=e.i(43476),n=e.i(71645),r=e.i(22016);function a(e){return`${new Date(e).toISOString().slice(0,16).replace("T"," ")} UTC`}let s="Not reported";function i(e){return e.toFixed(1).replace(/\.0$/,"")}function o(e){return e.toLocaleString("en-US")}function l(e){return 0===e?"$0.00":e>=.01?`$${e.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}`:e<1e-4?"<$0.0001":`$${e.toFixed(4)}`}let u={input_tokens:"Input tokens",output_tokens:"Output tokens",cost_usd:"Cost"};function c(e,t,n){return"cost_usd"===e?l(t):n?o(t):t<1e3?String(t):t<999950?`${i(t/1e3)}k`:t<99995e4?`${i(t/1e6)}M`:`${i(t/1e9)}B`}function d(e){return`${e} ${1===e?"run":"runs"}`}function f(e,t,n=!1){let r=u[e];if(!t||"unavailable"===t.quality||null===t.sum)return{name:r,text:s,quality:"unavailable",coverage:t&&t.total>0?`0 of ${d(t.total)} reported`:"No runs recorded",label:`${r}: not reported`};let a=c(e,t.sum,n),i=c(e,t.sum,!0);return"partial"===t.quality?{name:r,text:a,quality:"partial",coverage:`Partial: ${t.known} of ${d(t.total)} reported`,label:`${r}: at least ${i}, partial, reported by ${t.known} of ${d(t.total)}`}:{name:r,text:a,quality:"complete",coverage:`All ${d(t.total)} reported`,label:`${r}: ${i}, reported by all ${d(t.total)}`}}e.s(["SESSION_FILTER_OPTIONS",0,[{value:"all",label:"All"},{value:"active",label:"Active"},{value:"ended",label:"Ended"}],"attemptLabel",0,function(e){let t="source"===e.role?"Started the session":"Resumed the session";return`${t} \xb7 ${e.outcome??"running"}`},"emptySessionsCopy",0,function(e,t){return"active"===e?`${t} has no active sessions.`:"ended"===e?`${t} has no ended sessions.`:`${t} has no sessions yet. One appears after a coding run keeps its runtime context.`},"formatSessionDate",0,a,"runtimeLabel",0,function(e){return e.agent.transport?`${e.agent.adapter} \xb7 ${e.agent.transport}`:e.agent.adapter},"sessionStateTags",0,function(e){let t=[];return(e.home&&t.push("Home"),e.state?.availability==="missing")?[...t,"Missing"]:(e.state?.lifecycle==="archived"&&t.push("Archived"),e.state?.busy&&t.push("Busy"),(e.resumable||e.state?.resumable===!0)&&t.push("Resumable"),t)},"sessionUsageLine",0,function(e){let t=f("input_tokens",e?.input_tokens),n=f("output_tokens",e?.output_tokens),r=f("cost_usd",e?.cost_usd),a=[t,n,r];if(a.every(e=>"unavailable"===e.quality))return{text:s,label:"Usage: not reported",quality:"unavailable",partial:!1};let i=["unavailable"===t.quality?"input not reported":`${t.text} in`,"unavailable"===n.quality?"output not reported":`${n.text} out`,"unavailable"===r.quality?"cost not reported":r.text].join(" · "),o=a.some(e=>"partial"===e.quality),l=o||a.some(e=>"unavailable"===e.quality)?"partial":"complete";return{text:i,label:`Reported usage: ${a.map(e=>e.label).join("; ")}`,quality:l,partial:o}},"statusLabel",0,function(e){return"active"===e.status?"Active":"Ended"},"usageMetricView",0,f,"usageSampleLabel",0,function(e,t){let n="turn"===e.kind?"start"===e.turn_kind?"provider turn, started":"provider turn":"resume"===e.turn_kind?"resumed":"started";return`Run ${t+1} \xb7 ${n}`},"usageSampleValues",0,function(e){return{input:null===e.input_tokens?s:o(e.input_tokens),output:null===e.output_tokens?s:o(e.output_tokens),cost:null===e.cost_usd?s:l(e.cost_usd)}},"workRequestLabel",0,function(e){var t;let n=e.origin.work_request;return n?`${(t=n.execution_kind)?t[0].toUpperCase()+t.slice(1):t} \xb7 ${n.state}`:null}],63352);let h={ask:"Ask from this context",resume:"Resume work here",handoff:"Hand off to…"},p=["queued","extracting","delivering","completed","failed","cancelled"],g=["completed","failed","cancelled"];function m(e){return"ask"===e?"Ask":"Continue"}function k(e,t){switch(t){case"queued":return"Queued";case"extracting":return"ask"===e?"Asking the session":"Extracting handoff";case"delivering":return"Delivering handoff";case"completed":return"ask"===e?"Answered":"Handed off";case"failed":return"Failed";case"cancelled":return"Cancelled"}}function b(e){var t;return e.cancel_requested&&(t=e.state,!g.includes(t))?"Cancelling…":k(e.mode,e.state)}function v(e){return"completed"===e?"done":"failed"===e||"cancelled"===e?"stopped":"active"}function y(e,t=140){let n=String(e??"").split("\n").map(e=>e.trim()).filter(e=>e.length>0).join(" ");return n.length>t?`${n.slice(0,t-1).trimEnd()}…`:n}function x(e){return a(e)}function _(e){return`${e.source.agent_name}'s session “${e.source.session_title}”`}function $(e){return"ask"===e.mode?`You → ${e.source.agent_name}`:`${e.source.agent_name} → ${e.destination?.agent_name??"another Agent"}`}function S(e){return"ask"===e?"Question":"Objective"}function w(e){if("completed"===e.state){if("ask"===e.mode){let t=e.origin?.label??"the origin thread";return e.outcome.answer?`Answer in ${t}: ${y(e.outcome.answer,200)}`:`Answered in ${t}.`}let t=e.destination?.agent_name??"The destination Agent";return e.outcome.reply?`${t} picked it up in a new session: ${y(e.outcome.reply,200)}`:`${t} picked it up in a new session.`}return"failed"===e.state?e.failure?.message||"The exchange failed.":"cancelled"===e.state?"Cancelled before it finished. Nothing more will run.":null}function A(e){if("failed"!==e.state)return null;switch(e.failure?.code){case"packet_invalid":case"packet_missing":return"The source session did not return a usable handoff. Start a new Continue with a clearer objective.";case"destination_session_invalid":return"The destination did not start a fresh session. Check its runtime, then start a new Continue.";case"destination_turn_failed":return"Check the destination Agent’s runtime, then start a new Continue from the source session.";case"source_turn_failed":return"Check the source Agent’s runtime, then start a new exchange from its Sessions.";default:return"Start a new exchange from the session to try again."}}function C(e){return`/exchanges?id=${encodeURIComponent(e)}`}function T(e,t){return t.updated_at-e.updated_at||t.created_at-e.created_at||(e.id<t.id?-1:+(e.id>t.id))}e.s(["DEFAULT_LEDGER_FILTER",0,{mode:"all",state:"all",agentId:""},"INSTRUCTION_LIMIT",0,4e3,"MODE_FILTER_OPTIONS",0,[{value:"all",label:"All"},{value:"ask",label:"Ask"},{value:"continue",label:"Continue"}],"STATE_FILTER_OPTIONS",0,[{value:"all",label:"Any status"},{value:"active",label:"In progress"},{value:"queued",label:"Queued"},{value:"extracting",label:"Asking / extracting"},{value:"delivering",label:"Delivering"},{value:"completed",label:"Completed"},{value:"failed",label:"Failed"},{value:"cancelled",label:"Cancelled"}],"detailsHref",0,C,"eventLabel",0,function(e,t){let n=e.data??{},r=t.source.agent_name,a=t.destination?.agent_name??"the destination Agent",s="string"==typeof n.hop?n.hop:null;switch(e.type){case"created":return"ask"===t.mode?`You asked ${r}'s session a question`:`You handed ${r}'s session to ${a}`;case"hop_queued":if("deliver"===s)return`Handoff queued for ${a}'s new session`;return"extract"===s?`Handoff extraction queued in ${r}'s session`:`Question queued for ${r}'s session`;case"hop_started":if("deliver"===s)return`${a} started a new session`;return"extract"===s?`${r}'s session started extracting the handoff`:`${r}'s session started answering`;case"state_changed":{let e="string"==typeof n.to&&p.includes(n.to)?n.to:null;return e?`Now ${k(t.mode,e).toLowerCase()}`:"State changed"}case"answer_returned":return`Answer returned to ${t.origin?.label??"the origin thread"}${n.truncated?" (shortened)":""}`;case"packet_extracted":return"Handoff packet extracted";case"packet_rejected":return`Handoff packet refused${"string"==typeof n.reason?`: ${n.reason}`:""}`;case"destination_replied":return`${a} replied in ${t.destination?.conversation?.label??"its thread"}`;case"destination_session_rejected":return`${a}'s session was not new; the handoff stopped`;case"cancel_requested":return"You asked to cancel";case"hop_result_discarded":return"A late result was discarded";default:return e.type.replace(/_/g," ")}},"excerpt",0,y,"exchangeRequestBody",0,function(e,t,n){let r={mode:e.mode,idempotency_key:n,origin_conversation_id:e.originConversationId,source:{agent_id:t.agentId,session_ref:t.sessionRef},instruction:e.instruction.trim()};return"continue"===e.mode&&(r.destination={agent_id:e.destinationAgentId}),r},"failureAdvice",0,A,"formatExchangeTime",0,x,"instructionHeading",0,S,"ledgerAgents",0,function(e){let t=new Map;for(let n of e)t.set(n.source.agent_id,n.source.agent_name),n.destination&&t.set(n.destination.agent_id,n.destination.agent_name);return[...t.entries()].map(([e,t])=>({id:e,name:t})).sort((e,t)=>e.name.localeCompare(t.name)||e.id.localeCompare(t.id))},"ledgerRows",0,function(e,t){return e.filter(e=>("all"===t.mode||e.mode===t.mode)&&("active"!==t.state||!e.terminal)&&("all"===t.state||"active"===t.state||e.state===t.state)&&(!t.agentId||e.source.agent_id===t.agentId||e.destination?.agent_id===t.agentId)).sort(T)},"ledgerView",0,function(e,t,n){return null===e?t?"error":"loading":0===e.length?"empty":0===n.length?"filtered-out":"rows"},"linkRoleLabel",0,function(e){let t={origin:"Started here",source:"Source session",destination:"Destination"};return e.map(e=>t[e]).join(" · ")},"liveStateLabel",0,b,"modeLabel",0,m,"outcomeLine",0,w,"participantsLabel",0,$,"pinRequestBody",0,function(e,t,n,r,a){return{action:e,content:t.trim(),conversation_id:n,idempotency_key:a,..."resume"===e?{approve_write:r}:{}}},"sessionDialogMode",0,function(e){return"handoff"===e?"continue":e},"sessionDialogTitle",0,function(e){return h["continue"===e?"handoff":e]},"sessionDialogUsesPin",0,function(e,t){return"resume"===e||"ask"===e&&"provider"===t},"sessionLabel",0,_,"sessionRowActions",0,function(e){let t;if(e.actions)t=e.actions;else{let n="ended"===e.status?{available:!1,reason:"Ask from this context and Hand off to… are unavailable: this session has ended. Its history stays here."}:e.resumable?{available:!0}:{available:!1,reason:`Ask from this context and Hand off to… are unavailable: Botmancers can’t resume this session under ${e.agent.name}’s current runtime.`},r=n.available?{available:!0}:{available:!1,code:"ended"===e.status?"session_ended":"session_not_resumable",reason:n.reason,recovery:"choose_session"};t={ask:r,resume:{available:!1,code:"action_unavailable",reason:`${h.resume} is unavailable: this runtime can’t resume a session with edits.`,recovery:"choose_action"},handoff:r}}return["ask","resume","handoff"].map(e=>({action:e,label:h[e],availability:t[e]}))},"stateTone",0,v,"submitErrorMessage",0,function(e,t){switch(e){case"session_ended":return"This session has ended and can’t be resumed.";case"session_not_resumable":return"Botmancers can’t resume this session under the Agent’s current runtime.";case"source_session_busy":return"This session already has an exchange in progress. Wait for it or cancel it from its card.";case"agent_unavailable":return t||"That Agent has no Agent Deck selected.";case"idempotency_conflict":return"This request changed while it was being sent. Send again.";case"session_missing":return"The runtime no longer has this session. Its history stays here; choose another session.";case"approval_required":return"Resume work here needs your approval of edits. Tick the approval, then send again.";case"authority_not_allowed":return t||"This Agent’s policy doesn’t allow edits in a resumed session. Change it in Config.";case"action_unavailable":return t||"This runtime can’t do that in this session. Choose another action.";case"provider_failed":return"The runtime failed this turn. Nothing moved to another session; try again later.";default:return t||"The exchange could not be started. Your draft is kept; try again."}},"threadHref",0,function(e,t){let n=new URLSearchParams;if(e.thread_agent_id)return n.set("agent",e.thread_agent_id),t&&n.set("exchange",t),`/?${n.toString()}`;if("group"!==e.kind)return null;t&&n.set("exchange",t);let r=n.toString();return`/threads/${encodeURIComponent(e.id)}${r?`?${r}`:""}`},"validateDraft",0,function(e){let t={},n=e.instruction.trim(),r="ask"===e.mode?"a question":"an objective";return n?e.instruction.length>4e3&&(t.instruction="Keep it under 4000 characters."):t.instruction=`Enter ${r}.`,e.originConversationId||(t.origin="Choose the thread that follows this exchange."),"continue"!==e.mode||e.destinationAgentId||(t.destination="Choose the Agent who continues the work."),t},"validateResumeDraft",0,function(e,t){let n={};return e.trim()?e.length>4e3&&(n.instruction="Keep it under 4000 characters."):n.instruction="Enter what to work on.",t||(n.approval="Approve edits in this session to resume work here."),n}],50814),e.s(["default",0,function({summary:e,onChanged:a}){let[s,i]=(0,n.useState)(!1),[o,l]=(0,n.useState)(""),u=v(e.state),c=w(e),d=A(e),f=`exchange-${e.id}-title`,h=async()=>{if(!s){i(!0),l("");try{let t=await fetch(`/api/exchanges/${encodeURIComponent(e.id)}/cancel`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"});if(!t.ok){let e=await t.json().catch(()=>null);l("string"==typeof e?.error?.message?e.error.message:"Could not cancel. Try again.")}}catch{l("Could not cancel. Try again.")}finally{i(!1),a?.()}}};return(0,t.jsxs)("article",{id:`exchange-${e.id}`,className:`exchange-card is-${u} is-${e.state}`,"data-exchange-id":e.id,"data-exchange-state":e.state,"aria-labelledby":f,tabIndex:-1,children:[(0,t.jsxs)("p",{className:"exchange-card-line",children:[(0,t.jsx)("span",{className:"exchange-card-mode",children:m(e.mode)}),(0,t.jsx)("span",{id:f,className:"exchange-card-title",children:$(e)}),(0,t.jsx)("span",{className:"exchange-card-state",role:"status",children:b(e)})]}),(0,t.jsx)("p",{className:"exchange-card-session",children:_(e)}),(0,t.jsxs)("p",{className:"exchange-card-instruction",children:[(0,t.jsx)("span",{className:"exchange-card-key",children:S(e.mode)})," ",y(e.instruction,220)]}),c?(0,t.jsx)("p",{className:"failed"===e.state?"exchange-card-outcome is-failure":"exchange-card-outcome",children:c}):null,d?(0,t.jsx)("p",{className:"exchange-card-advice",children:d}):null,o?(0,t.jsx)("p",{className:"exchange-card-error",role:"alert",children:o}):null,(0,t.jsxs)("p",{className:"exchange-card-foot",children:[(0,t.jsxs)("span",{className:"exchange-card-time",children:["Updated ",x(e.updated_at)]}),(0,t.jsx)(r.default,{className:"exchange-card-link",href:C(e.id),"aria-label":`Details: ${m(e.mode)} ${$(e)}`,children:"Details"}),e.can_cancel?(0,t.jsx)("button",{type:"button",className:"exchange-card-cancel",disabled:s,onClick:()=>{h()},children:s?"Cancelling…":"Cancel"}):null]})]})}],13255)},22016,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var r={default:function(){return k},useLinkStatus:function(){return v}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let s=e.r(90809),i=e.r(43476),o=s._(e.r(71645)),l=e.r(95057),u=e.r(8372),c=e.r(18581),d=e.r(18967),f=e.r(5550),h=e.r(88540),p=e.r(91949),g=e.r(73668),m=e.r(9396);function k(t){var n;let r,a,s,[k,v]=(0,o.useOptimistic)(p.IDLE_LINK_STATUS),y=(0,o.useRef)(null),{href:x,as:_,children:$,prefetch:S=null,passHref:w,replace:A,shallow:C,scroll:T,onClick:N,onMouseEnter:D,onTouchStart:j,legacyBehavior:E=!1,onNavigate:L,transitionTypes:O,ref:R,unstable_dynamicOnHover:I,...P}=t;r=$,E&&("string"==typeof r||"number"==typeof r)&&(r=(0,i.jsx)("a",{children:r}));let U=o.default.useContext(u.AppRouterContext),q=!1!==S,M=!1===S?"none":!0===S?"full":"auto",F="none"!==M?"auto"===M?m.FetchStrategy.PPR:m.FetchStrategy.Full:m.FetchStrategy.PPR,B="string"==typeof(n=_||x)?n:(0,l.formatUrl)(n);if(E){if(r?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});a=o.default.Children.only(r)}let H=E?a&&"object"==typeof a&&a.ref:R,K,G=o.default.useCallback(e=>(null!==U&&(y.current=(0,p.mountLinkInstance)(e,B,U,F,q,v,K)),()=>{y.current&&((0,p.unmountLinkForCurrentNavigation)(y.current),y.current=null),(0,p.unmountPrefetchableInstance)(e)}),[q,B,U,F,v,K]),W={ref:(0,c.useMergedRef)(G,H),onClick(t){E||"function"!=typeof N||N(t),E&&a.props&&"function"==typeof a.props.onClick&&a.props.onClick(t),!U||t.defaultPrevented||function(t,n,r,a,s,i,l,u="none"){if("u">typeof window){let c,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,g.isLocalURL)(n)){a&&(t.preventDefault(),location.replace(n));return}if(t.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(99781);o.default.startTransition(()=>{f(n,a?"replace":"push",!1===s?h.ScrollBehavior.NoScroll:h.ScrollBehavior.Default,r.current,l,u)})}}(t,B,y,A,T,L,O,M)},onMouseEnter(e){E||"function"!=typeof D||D(e),E&&a.props&&"function"==typeof a.props.onMouseEnter&&a.props.onMouseEnter(e),U&&q&&(0,p.onNavigationIntent)(e.currentTarget,!0===I)},onTouchStart:function(e){E||"function"!=typeof j||j(e),E&&a.props&&"function"==typeof a.props.onTouchStart&&a.props.onTouchStart(e),U&&q&&(0,p.onNavigationIntent)(e.currentTarget,!0===I)}};return(0,d.isAbsoluteUrl)(B)?W.href=B:E&&!w&&("a"!==a.type||"href"in a.props)||(W.href=(0,f.addBasePath)(B)),s=E?o.default.cloneElement(a,W):(0,i.jsx)("a",{...P,...W,children:r}),(0,i.jsx)(b.Provider,{value:k,children:s})}let b=(0,o.createContext)(p.IDLE_LINK_STATUS),v=()=>(0,o.useContext)(b);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},18581,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"useMergedRef",{enumerable:!0,get:function(){return a}});let r=e.r(71645);function a(e,t){let n=(0,r.useRef)(null),a=(0,r.useRef)(null);return(0,r.useCallback)(r=>{if(null===r){let e=n.current;e&&(n.current=null,e());let t=a.current;t&&(a.current=null,t())}else e&&(n.current=s(e,r)),t&&(a.current=s(t,r))},[e,t])}function s(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let n=e(t);return"function"==typeof n?n:()=>e(null)}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},73668,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isLocalURL",{enumerable:!0,get:function(){return s}});let r=e.r(18967),a=e.r(52817);function s(e){if(!(0,r.isAbsoluteUrl)(e))return!0;try{let t=(0,r.getLocationOrigin)(),n=new URL(e,t);return n.origin===t&&(0,a.hasBasePath)(n.pathname)}catch(e){return!1}}},98183,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={assign:function(){return l},searchParamsToUrlQuery:function(){return s},urlQueryToSearchParams:function(){return o}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});function s(e){let t={};for(let[n,r]of e.entries()){let e=t[n];void 0===e?t[n]=r:Array.isArray(e)?e.push(r):t[n]=[e,r]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function o(e){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.append(n,i(e));else t.set(n,i(r));return t}function l(e,...t){for(let n of t){for(let t of n.keys())e.delete(t);for(let[t,r]of n.entries())e.append(t,r)}return e}},95057,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var r={formatUrl:function(){return o},formatWithValidation:function(){return u},urlObjectKeys:function(){return l}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let s=e.r(90809)._(e.r(98183)),i=/https?|ftp|gopher|file/;function o(e){let{auth:t,hostname:n}=e,r=e.protocol||"",a=e.pathname||"",o=e.hash||"",l=e.query||"",u=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?u=t+e.host:n&&(u=t+(~n.indexOf(":")?`[${n}]`:n),e.port&&(u+=":"+e.port)),l&&"object"==typeof l&&(l=String(s.urlQueryToSearchParams(l)));let c=e.search||l&&`?${l}`||"";return r&&!r.endsWith(":")&&(r+=":"),e.slashes||(!r||i.test(r))&&!1!==u?(u="//"+(u||""),a&&"/"!==a[0]&&(a="/"+a)):u||(u=""),o&&"#"!==o[0]&&(o="#"+o),c&&"?"!==c[0]&&(c="?"+c),a=a.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${r}${u}${a}${c}${o}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return o(e)}},18967,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var r={DecodeError:function(){return k},MiddlewareNotFoundError:function(){return x},MissingStaticPage:function(){return y},NormalizeError:function(){return b},PageNotFoundError:function(){return v},SP:function(){return g},ST:function(){return m},WEB_VITALS:function(){return s},execOnce:function(){return i},getDisplayName:function(){return d},getLocationOrigin:function(){return u},getURL:function(){return c},isAbsoluteUrl:function(){return l},isResSent:function(){return f},loadGetInitialProps:function(){return p},normalizeRepeatedSlashes:function(){return h},stringifyError:function(){return _}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let s=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,n=!1;return(...r)=>(n||(n=!0,t=e(...r)),t)}let o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&o.test(e)};function u(){let{protocol:e,hostname:t,port:n}=window.location;return`${e}//${t}${n?":"+n:""}`}function c(){let{href:e}=window.location,t=u();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function h(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function p(e,t){let n=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await p(t.Component,t.ctx)}:{};let r=await e.getInitialProps(t);if(n&&f(n))return r;if(!r)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${r}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return r}let g="u">typeof performance,m=g&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class k extends Error{}class b extends Error{}class v extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class y extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class x extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function _(e){return JSON.stringify({message:e.message,stack:e.stack})}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,32545,e=>{"use strict";var t=e.i(43476),s=e.i(71645),r=e.i(22016),a=e.i(10331),n=e.i(4335),l=e.i(74904);async function c(e){try{let t=await e.json();if(t.error)return t.error}catch{}return"request failed"}e.s(["default",0,function(){let{state:e,retry:i}=(0,n.useDeckList)(),[o,d]=(0,s.useState)(null),[u,f]=(0,s.useState)(""),[m,h]=(0,s.useState)(!1),[x,g]=(0,s.useState)(0),[v,j]=(0,s.useState)("clean"),[N,p]=(0,s.useState)(""),[b,k]=(0,s.useState)(0);(0,s.useEffect)(()=>{let e=!1;return fetch(l.SETTINGS_ENDPOINT,{cache:"no-store"}).then(async t=>{if(!t.ok)throw Error(await c(t));let s=await t.json();if(e)return;let r="string"==typeof s.server_url?s.server_url:"";d(r),f(r),h(!1)}).catch(()=>{e||h(!0)}),()=>{e=!0}},[x]);let w=null!==o&&u!==o;async function y(){j("saving"),p("");try{let e=await fetch(l.SETTINGS_ENDPOINT,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({server_url:u})});if(!e.ok)throw Error(await c(e));let t=await e.json();d(t.server_url),f(t.server_url),j("confirmed"),k(Date.now()),setTimeout(()=>{j(e=>"confirmed"===e?"clean":e)},5e3),i()}catch(e){j("error"),p(e instanceof Error?e.message:"request failed")}}(0,s.useEffect)(()=>{if(!w)return;let e=e=>{e.preventDefault()};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[w]);let S="saving"===v?(0,t.jsx)("span",{className:"text-sm cfg-faint",children:"Saving…"}):w||"error"===v?(0,t.jsxs)("span",{className:"text-sm cfg-dirty",children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full cfg-dot-amber mr-1"}),"Unsaved changes"]}):"confirmed"===v?(0,t.jsxs)("span",{className:"text-sm cfg-faint",children:["Saved ",(0,l.formatClock)(b)]}):(0,t.jsx)("span",{className:"text-sm cfg-faint",children:"Saved"});return(0,t.jsx)("div",{className:"cfg-page",children:(0,t.jsxs)("div",{className:"max-w-3xl mx-auto",children:[(0,t.jsx)(r.default,{href:"/",onClick:function(e){w&&!window.confirm("You have unsaved changes. Leave without saving?")&&e.preventDefault()},className:"cfg-link cfg-back text-sm",children:"← Back to chat"}),(0,t.jsxs)("header",{className:"mt-3 mb-6",children:[(0,t.jsx)("h1",{className:"text-xl font-bold",children:"Settings"}),(0,t.jsx)("p",{className:"text-sm cfg-faint",children:"Workspace settings for every agent in this Botmancers."})]}),(0,t.jsxs)("section",{className:"cfg-card",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsx)("h2",{className:"cfg-title",children:"Agent Deck server"}),null!==o?S:null]}),m&&null===o?(0,t.jsxs)("p",{className:"text-sm cfg-muted",children:["Couldn't load this section."," ",(0,t.jsx)("button",{onClick:()=>g(e=>e+1),className:"cfg-link",children:"Retry"})]}):null===o?(0,t.jsx)("div",{className:"h-10 rounded-lg animate-pulse cfg-skel"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("label",{className:"block text-sm cfg-muted mb-1",htmlFor:"settings-server-url",children:"Server URL"}),(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row gap-2",children:[(0,t.jsx)("input",{id:"settings-server-url",type:"url",value:u,onChange:e=>{f(e.target.value),"error"===v&&j("clean")},onKeyDown:e=>{"Enter"===e.key&&w&&(e.preventDefault(),y())},placeholder:"http://127.0.0.1:1111",className:"cfg-input text-sm sm:flex-1"}),(0,t.jsx)("button",{onClick:()=>{y()},disabled:!w||"saving"===v,className:"cfg-btn-primary text-sm",children:"saving"===v?"Saving…":"Save"}),w?(0,t.jsx)("button",{onClick:function(){f(o??""),j("clean"),p("")},disabled:"saving"===v,className:"cfg-btn-ghost text-sm",children:"Discard"}):null]}),"error"===v&&(0,t.jsxs)("p",{className:"mt-2 text-sm cfg-error",children:["Couldn't save: ",N," ",(0,t.jsx)("button",{onClick:()=>{y()},className:"underline hover:no-underline",children:"Retry"})]}),(0,t.jsx)("p",{className:"mt-2 text-xs cfg-faint",children:"The only Agent Deck server for this workspace. Bots pick their deck from this server."})]}),(0,t.jsx)("div",{className:"mt-4 pt-4 border-t cfg-line",children:(0,t.jsx)(a.SettingsStatus,{state:e,onRetry:i})})]})]})})}])}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,10331,3136,74904,4335,e=>{"use strict";var t=e.i(43476);let r=["hermes","cursor","claude","codex","muse"],n={hermes:"Hermes",cursor:"Cursor",claude:"Claude",codex:"Codex",muse:"Muse Code"},i="hermes";function o(e){return r.includes(String(e))?n[e]:String(e??"")}r.join("|"),e.s(["AGENTS",0,r,"AGENT_LABELS",0,n,"DEFAULT_AGENT",0,i,"agentLabel",0,o],3136);let s=r.map(e=>({value:e,label:n[e]})),a="/settings",c="Select an Agent Deck…",l="Runs use the configured Agent Deck server. Remote execution is unconfirmed — see Settings for the configured server.",u="Runs use the server above. Remote execution is unconfirmed.",d="Configure the Agent Deck server in Settings",f="Saved Agent Deck not on this server — saving keeps it unless you pick another.",p={loading:"Loading decks…",empty:"No decks on this server — add one there, then retry.",malformed:"The deck list came back unreadable. Retry — or fix the server, then retry.",unreachable:"Can't reach the Agent Deck server — fix it in Settings, then retry.",unconfigured:"No Agent Deck server set — add it in Settings."};function h(e=null){return{status:"loading",decks:[],cachedDecks:e,serverUrl:"",checkedAt:0,error:""}}function g(e){return String(e).padStart(2,"0")}function m(e){let t=new Date(e);return`${g(t.getHours())}:${g(t.getMinutes())}:${g(t.getSeconds())}`}function k(e){switch(e.status){case"loading":return"Status: ○ Checking the Agent Deck server…";case"connected":return`Status: ● Connected \xb7 ${e.decks.length} ${1===e.decks.length?"deck":"decks"} \xb7 checked ${m(e.checkedAt)}`;case"empty":return"Status: ○ Connected — no decks on this server.";case"malformed":return"Status: ○ The server returned decks this app can't read.";case"unreachable":return"Status: ○ Can't reach the Agent Deck server.";case"unconfigured":return"Status: ○ No Agent Deck server set."}}function y(e){return"connected"===e.status?null:p[e.status]}function b(e){return"empty"===e.status||"malformed"===e.status||"unreachable"===e.status}async function v(e,t,r=Date.now){let n,i;try{n=await e("/api/agent-deck/decks",{cache:"no-store"})}catch(e){return{status:"unreachable",decks:[],cachedDecks:t.cachedDecks,serverUrl:t.serverUrl,checkedAt:r(),error:e instanceof Error?e.message:String(e)}}try{i=await n.json()}catch{i=void 0}return function(e,t,r){let n="object"==typeof e.body&&null!==e.body?e.body:{},i="string"==typeof n.server_url?n.server_url:t.serverUrl,o={cachedDecks:t.cachedDecks,serverUrl:i,checkedAt:r};if("string"==typeof n.server_url&&!n.server_url.trim())return{...o,status:"unconfigured",decks:[],error:""};if(e.ok){let t=function(e){if("object"!=typeof e||null===e)return null;let t=e.decks;if(!Array.isArray(t))return null;let r=[];for(let e of t){if("object"!=typeof e||null===e)return null;let t=e.id,n=e.name;if("string"!=typeof t||!t.trim()||"string"!=typeof n||!n.trim())return null;r.push({id:t,name:n})}return r}(e.body);return t?{...o,cachedDecks:t,status:t.length>0?"connected":"empty",decks:t,error:""}:{...o,status:"malformed",decks:[],error:"Unexpected deck list shape."}}let s="string"==typeof n.error?n.error:`HTTP ${e.status}`,a="invalid-payload"===n.code||/unexpected deck payload/i.test(s);return{...o,status:a?"malformed":"unreachable",decks:[],error:s}}({ok:n.ok,status:n.status,body:i},t,r())}function x(e,t){let r=String(e??"").trim(),n=t?t.decks.length>0?t.decks:t.cachedDecks??[]:[];return n.find(e=>e.id===r)?.name??r}function S(e){return o((e.agent??"").trim()||i)}function D(e){return!_(e)&&(function(e){let t=e.needs_deck_selection;if(!0===t||1===t)return!0;if("string"==typeof t){let e=t.trim().toLowerCase();return"1"===e||"true"===e}return!1}(e)||!(e.deck_id??"").trim())}function _(e){return"direct"===e.launch_profile}function N(e,t){if(D(e)||_(e))return!1;let r=t?"connected"===t.status||"empty"===t.status?t.decks.map(e=>e.id):"unconfigured"===t.status?null:t.cachedDecks?t.cachedDecks.map(e=>e.id):null:null;return!!r&&!r.includes((e.deck_id??"").trim())}function j(e){return`Agent: ${S(e)} \xb7 Agent Deck: `}function A(e,t){let r,n=(r=_(e)?`Agent: ${S(e)} \xb7 Launch: Direct`:D(e)?`${j(e)}not selected`:j(e)+x(e.deck_id??"",t),D(e)?`${r} — select in Config`:N(e,t)?r+" (deck unavailable — see Config)":r);if(D(e)||_(e))return{prefix:n,deck:"",suffix:""};let i=j(e),o=x(e.deck_id??"",t);return{prefix:i,deck:o,suffix:n.slice(i.length+o.length)}}function E(e){return`~/.botmancers/${e}`}let C=[{prefix:"[Deck handoff]",kind:"handoff",label:"Agent Deck launch"},{prefix:"[Deck run]",kind:"run",label:"Agent Deck run"},{prefix:"[Deck review]",kind:"review",label:"Agent Deck review"},{prefix:"[Deck resume]",kind:"resume",label:"Agent Deck resume"},{prefix:"[Deck result]",kind:"result",label:"Agent Deck result"},{prefix:"[Deck failed]",kind:"failed",label:"Agent Deck failed"},{prefix:"[Deck needs selection]",kind:"reselection",label:"Agent Deck needs a deck"},{prefix:"[Deck needs reselection]",kind:"reselection",label:"Agent Deck needs a deck"}];e.s(["AGENT_OPTIONS",0,s,"DECK_PLACEHOLDER",0,c,"DECK_SLOT_COPY",0,p,"NEW_BOT_WORKDIR_HINT",0,"Default: ~/.botmancers/{agentID} — {agentID} is this agent's ID, assigned at creation.","NON_LOCAL_NOTE",0,l,"SAVED_DECK_MISSING_NOTE",0,f,"SETTINGS_ENDPOINT",0,"/api/agent-deck/settings","SETTINGS_LINK_COPY",0,d,"SETTINGS_NON_LOCAL_NOTE",0,u,"SETTINGS_PATH",0,a,"botAgentLabel",0,S,"configWorkdirHint",0,function(e){return`Default: ${E(e)} — leave blank to use it.`},"deckEventDisplay",0,function(e){let t=String(e??"").trimStart(),r=C.find(e=>t.startsWith(e.prefix));return r?{label:r.label,detail:t.slice(r.prefix.length).trim()}:null},"deckLabel",0,x,"deckSlotCopy",0,y,"deckStateShowsRetry",0,b,"defaultWorkdirFor",0,E,"fetchDeckList",0,v,"formatClock",0,m,"initialDeckListState",0,h,"isDeckUnavailable",0,N,"isMigratedPending",0,D,"rosterRuntimeParts",0,A,"settingsStatusLine",0,k],74904);let T={modal:{label:"",legend:"field-legend",picks:"runtime-picks",pick:"runtime-pick",note:"runtime-note",control:"deck-control",hint:"runtime-hint",link:"runtime-link",retry:"runtime-retry"},config:{label:"block text-sm cfg-muted mt-3 mb-1",legend:"block text-sm cfg-muted mt-3 mb-1 p-0",picks:"flex flex-wrap gap-x-4 gap-y-1 text-sm cfg-muted",pick:"text-sm cfg-muted",note:"text-sm cfg-muted mt-1",control:"cfg-input text-sm",hint:"mt-1 text-xs cfg-faint",link:"cfg-link text-sm",retry:"cfg-link text-sm"}};function O({id:e,labelId:r,state:n,value:i,onChange:o,onRetry:s,savedDeckId:a,variant:l}){let u=T[l],d=y(n),p=(a??"").trim();if(null===d){let r=!!p&&!n.decks.some(e=>e.id===p);return(0,t.jsxs)("div",{"data-field":"deck","data-state":n.status,children:[(0,t.jsxs)("select",{id:e,className:u.control,"aria-required":"true","aria-describedby":r&&i===p?`${e}-saved-note`:void 0,value:i,title:i||void 0,onChange:e=>o(e.target.value),children:[(0,t.jsx)("option",{value:"",disabled:!0,children:c}),r?(0,t.jsxs)("option",{value:p,title:p,children:[p," (saved)"]}):null,n.decks.map(e=>(0,t.jsx)("option",{value:e.id,title:e.id,children:e.name},e.id))]}),r&&i===p?(0,t.jsx)("p",{id:`${e}-saved-note`,className:u.note,children:f}):null]})}return(0,t.jsxs)("div",{"data-field":"deck","data-state":n.status,role:"group","aria-labelledby":r,children:[p?(0,t.jsxs)("p",{className:u.note,children:["Saved Agent Deck: ",(0,t.jsx)("span",{title:p,children:p})]}):null,(0,t.jsxs)("p",{id:e,className:`${u.note} deck-slot`,role:"status",children:[(0,t.jsx)("span",{id:`${e}-copy`,children:d}),b(n)?(0,t.jsxs)(t.Fragment,{children:[" ",(0,t.jsx)("button",{type:"button",className:u.retry,onClick:s,children:"Retry"})]}):null]})]})}e.s(["AgentDeckFields",0,function({idPrefix:e,variant:r,deckId:n,onDeckId:i,deckState:o,onRetry:s,savedDeckId:c,workingDirectory:u,onWorkingDirectory:f,workdirPlaceholder:p,workdirHint:h}){let g=T[r],m=null===y(o);return(0,t.jsxs)("div",{className:"agent-deck-fields",children:[(0,t.jsx)("label",{className:g.label,id:`${e}-deck-label`,htmlFor:m?`${e}-deck`:void 0,children:"Agent Deck"}),(0,t.jsx)(O,{id:`${e}-deck`,labelId:`${e}-deck-label`,state:o,value:n,onChange:i,onRetry:s,savedDeckId:c,variant:r}),(0,t.jsx)("a",{href:a,className:g.link,children:d}),(0,t.jsx)("label",{className:g.label,htmlFor:`${e}-workdir`,children:"Working directory (optional)"}),(0,t.jsx)("input",{id:`${e}-workdir`,type:"text",className:"config"===r?g.control:void 0,"data-field":"workdir","aria-describedby":`${e}-workdir-hint ${e}-workdir-note`,value:u,placeholder:p,onChange:e=>f(e.target.value)}),(0,t.jsx)("p",{id:`${e}-workdir-hint`,className:g.hint,children:h}),(0,t.jsx)("p",{id:`${e}-workdir-note`,className:g.hint,children:l})]})},"RosterRuntimeLine",0,function({bot:e,state:r}){let{prefix:n,deck:i,suffix:o}=A(e,r);return(0,t.jsxs)("div",{className:"bot-runtime",title:n+i+o,children:[n,i?(0,t.jsx)("span",{className:"bot-runtime-deck",children:i}):null,o]})},"SettingsStatus",0,function({state:e,onRetry:r}){return(0,t.jsxs)("div",{"data-field":"status","data-state":e.status,children:[(0,t.jsx)("p",{className:"connected"===e.status?"text-sm cfg-ok":"text-sm cfg-muted",role:"status",children:k(e)}),b(e)?(0,t.jsx)("button",{type:"button",onClick:r,className:"mt-2 cfg-btn-ghost text-sm w-full sm:w-auto",children:"Retry"}):null,"connected"===e.status?(0,t.jsx)("p",{className:"mt-1 text-xs cfg-faint break-words",children:e.decks.map(e=>e.name).join(" · ")}):null,(0,t.jsx)("p",{className:"mt-2 text-xs cfg-faint",children:u})]})}],10331);var P=e.i(71645);let w="botmancers.agentDeck.lastDecks";function $(e){return"object"==typeof e&&null!==e&&"string"==typeof e.id&&"string"==typeof e.name}let L=(e,t)=>{let r=new AbortController,n=setTimeout(()=>r.abort(),1e4);return fetch(e,{cache:"no-store",signal:r.signal,...t}).finally(()=>clearTimeout(n))};e.s(["useDeckList",0,function(e=!0){let[t,r]=(0,P.useState)(()=>h()),[n,i]=(0,P.useState)(0),o=(0,P.useRef)(null);return(0,P.useEffect)(()=>{if(!e)return;let t=!1;return v(L,h(o.current??function(){try{let e=window.localStorage.getItem(w);if(!e)return null;let t=JSON.parse(e);return Array.isArray(t)&&t.every($)?t:null}catch{return null}}())).then(e=>{if(!t){o.current=e.cachedDecks;var n=e.cachedDecks;if(n)try{window.localStorage.setItem(w,JSON.stringify(n))}catch{}r(e)}}),()=>{t=!0}},[n,e]),{state:t,retry:(0,P.useCallback)(()=>{r(e=>({...e,status:"loading",decks:[],error:""})),i(e=>e+1)},[])}}],4335)},22016,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return k},useLinkStatus:function(){return b}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(90809),s=e.r(43476),a=o._(e.r(71645)),c=e.r(95057),l=e.r(8372),u=e.r(18581),d=e.r(18967),f=e.r(5550),p=e.r(88540),h=e.r(91949),g=e.r(73668),m=e.r(9396);function k(t){var r;let n,i,o,[k,b]=(0,a.useOptimistic)(h.IDLE_LINK_STATUS),v=(0,a.useRef)(null),{href:x,as:S,children:D,prefetch:_=null,passHref:N,replace:j,shallow:A,scroll:E,onClick:C,onMouseEnter:T,onTouchStart:O,legacyBehavior:P=!1,onNavigate:w,transitionTypes:$,ref:L,unstable_dynamicOnHover:R,...I}=t;n=D,P&&("string"==typeof n||"number"==typeof n)&&(n=(0,s.jsx)("a",{children:n}));let U=a.default.useContext(l.AppRouterContext),M=!1!==_,F=!1===_?"none":!0===_?"full":"auto",B="none"!==F?"auto"===F?m.FetchStrategy.PPR:m.FetchStrategy.Full:m.FetchStrategy.PPR,K="string"==typeof(r=S||x)?r:(0,c.formatUrl)(r);if(P){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});i=a.default.Children.only(n)}let G=P?i&&"object"==typeof i&&i.ref:L,W,H=a.default.useCallback(e=>(null!==U&&(v.current=(0,h.mountLinkInstance)(e,K,U,B,M,b,W)),()=>{v.current&&((0,h.unmountLinkForCurrentNavigation)(v.current),v.current=null),(0,h.unmountPrefetchableInstance)(e)}),[M,K,U,B,b,W]),z={ref:(0,u.useMergedRef)(H,G),onClick(t){P||"function"!=typeof C||C(t),P&&i.props&&"function"==typeof i.props.onClick&&i.props.onClick(t),!U||t.defaultPrevented||function(t,r,n,i,o,s,c,l="none"){if("u">typeof window){let u,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((u=t.currentTarget.getAttribute("target"))&&"_self"!==u||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,g.isLocalURL)(r)){i&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),s){let e=!1;if(s({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(99781);a.default.startTransition(()=>{f(r,i?"replace":"push",!1===o?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,n.current,c,l)})}}(t,K,v,j,E,w,$,F)},onMouseEnter(e){P||"function"!=typeof T||T(e),P&&i.props&&"function"==typeof i.props.onMouseEnter&&i.props.onMouseEnter(e),U&&M&&(0,h.onNavigationIntent)(e.currentTarget,!0===R)},onTouchStart:function(e){P||"function"!=typeof O||O(e),P&&i.props&&"function"==typeof i.props.onTouchStart&&i.props.onTouchStart(e),U&&M&&(0,h.onNavigationIntent)(e.currentTarget,!0===R)}};return(0,d.isAbsoluteUrl)(K)?z.href=K:P&&!N&&("a"!==i.type||"href"in i.props)||(z.href=(0,f.addBasePath)(K)),o=P?a.default.cloneElement(i,z):(0,s.jsx)("a",{...I,...z,children:n}),(0,s.jsx)(y.Provider,{value:k,children:o})}let y=(0,a.createContext)(h.IDLE_LINK_STATUS),b=()=>(0,a.useContext)(y);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return i}});let n=e.r(71645);function i(e,t){let r=(0,n.useRef)(null),i=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=i.current;t&&(i.current=null,t())}else e&&(r.current=o(e,n)),t&&(i.current=o(t,n))},[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return o}});let n=e.r(18967),i=e.r(52817);function o(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,i.hasBasePath)(r.pathname)}catch(e){return!1}}},98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return c},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return a}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});function o(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function s(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function a(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,s(e));else t.set(r,s(n));return t}function c(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},95057,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return a},formatWithValidation:function(){return l},urlObjectKeys:function(){return c}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(90809)._(e.r(98183)),s=/https?|ftp|gopher|file/;function a(e){let{auth:t,hostname:r}=e,n=e.protocol||"",i=e.pathname||"",a=e.hash||"",c=e.query||"",l=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?l=t+e.host:r&&(l=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(l+=":"+e.port)),c&&"object"==typeof c&&(c=String(o.urlQueryToSearchParams(c)));let u=e.search||c&&`?${c}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||s.test(n))&&!1!==l?(l="//"+(l||""),i&&"/"!==i[0]&&(i="/"+i)):l||(l=""),a&&"#"!==a[0]&&(a="#"+a),u&&"?"!==u[0]&&(u="?"+u),i=i.replace(/[?#]/g,encodeURIComponent),u=u.replace("#","%23"),`${n}${l}${i}${u}${a}`}let c=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function l(e){return a(e)}},18967,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return k},MiddlewareNotFoundError:function(){return x},MissingStaticPage:function(){return v},NormalizeError:function(){return y},PageNotFoundError:function(){return b},SP:function(){return g},ST:function(){return m},WEB_VITALS:function(){return o},execOnce:function(){return s},getDisplayName:function(){return d},getLocationOrigin:function(){return l},getURL:function(){return u},isAbsoluteUrl:function(){return c},isResSent:function(){return f},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return S}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function s(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let a=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,c=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&a.test(e)};function l(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function u(){let{href:e}=window.location,t=l();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let g="u">typeof performance,m=g&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class k extends Error{}class y extends Error{}class b extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class v extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class x extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function S(e){return JSON.stringify({message:e.message,stack:e.stack})}}]);
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
|
|
2
|
-
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
|
|
3
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--container-3xl:48rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-medium:500;--font-weight-bold:700;--radius-lg:.5rem;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.start-1{inset-inline-start:calc(var(--spacing) * 1)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-1{margin:var(--spacing)}.m-2{margin:calc(var(--spacing) * 2)}.m-3{margin:calc(var(--spacing) * 3)}.m-4{margin:calc(var(--spacing) * 4)}.m-5{margin:calc(var(--spacing) * 5)}.m-9{margin:calc(var(--spacing) * 9)}.mx-auto{margin-inline:auto}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mr-1{margin-right:var(--spacing)}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1{height:var(--spacing)}.h-2{height:calc(var(--spacing) * 2)}.h-6{height:calc(var(--spacing) * 6)}.h-10{height:calc(var(--spacing) * 10)}.h-20{height:calc(var(--spacing) * 20)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-80{height:calc(var(--spacing) * 80)}.h-full{height:100%}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-64{max-height:calc(var(--spacing) * 64)}.min-h-full{min-height:100%}.w-2{width:calc(var(--spacing) * 2)}.w-32{width:calc(var(--spacing) * 32)}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-6xl{max-width:var(--container-6xl)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink{flex-shrink:1}.animate-pulse{animation:var(--animate-pulse)}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-1{row-gap:var(--spacing)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.px-1{padding-inline:var(--spacing)}.py-1{padding-block:var(--spacing)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-right{text-align:right}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-pre-wrap{white-space:pre-wrap}.lowercase{text-transform:lowercase}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.\[fail\:auth\]{fail:auth}.\[person\:owner\]{person:owner}.\[stream\:\<name\>\]{stream:<name>}.\[usage\:cost\]{usage:cost}.\[usage\:malformed\]{usage:malformed}.\[usage\:missing\]{usage:missing}.\[usage\:none\]{usage:none}.\[usage\:partial\]{usage:partial}.\[usage\:repeated\]{usage:repeated}@media (hover:hover){.hover\:no-underline:hover{text-decoration-line:none}}@media (min-width:40rem){.sm\:w-auto{width:auto}.sm\:flex-1{flex:1}.sm\:flex-none{flex:none}.sm\:flex-row{flex-direction:row}.sm\:justify-between{justify-content:space-between}.sm\:text-right{text-align:right}}@media (min-width:64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}}:root{--field:#0e120c;--card:#1a2118;--hairline:#3a4436;--ink:#d5d0c3;--ink-muted:#9d9c90;--ink-faint:#8e8e82;--accent:#8b9a4a;--ink-on-accent:#0e120c;--composer:#141a12;--danger:#e85d75;--chrome:"Avenir Next", Avenir, "Helvetica Neue", system-ui;--mono:Monaco, "SF Mono", Menlo, Consolas, monospace}html,body{background:var(--field);min-height:100%;color:var(--ink);font-family:var(--chrome);margin:0}button,input,textarea{font:inherit;color:inherit}.field{background:var(--field);min-height:100vh;color:var(--ink);flex-direction:column;display:flex}.rail{flex-direction:column;flex:none;display:flex}.pane{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}@media (max-width:799px){.field{height:100dvh;overflow:hidden}.rail{flex:none;max-height:38vh;overflow:auto}.pane{overflow:hidden}.thread{height:100%;min-height:0}}@media (min-width:800px){.field{flex-direction:row;align-items:stretch;height:100vh;min-height:0;overflow:hidden}.rail{border-right:1px solid var(--hairline);width:max-content;max-width:280px;height:100vh;overflow:auto}.pane{height:100vh;min-height:0}}.bar{justify-content:space-between;align-items:center;padding:16px;display:flex}.brand{flex-direction:row;align-items:center;gap:10px;padding:20px 16px 4px;display:flex}.logo-shape{flex:none;width:40px;height:40px;line-height:0}.logo-shape img{width:40px;height:40px;display:block}.logo-shape.is-settling{animation:.4s ease-out both logo-drop}@keyframes logo-drop{0%{transform:translateY(-6px)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.logo-shape.is-settling{animation:none}}.logo-word{font-family:var(--chrome);letter-spacing:.02em;white-space:nowrap;color:#d5d0c3;margin:0;font-size:16px;font-weight:600;line-height:1.2}@media (max-width:799px){.brand{gap:8px;padding:12px 16px 0}.logo-shape,.logo-shape img{width:32px;height:32px}.logo-word{font-size:15px}}.welcome{text-align:center;flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:24px;min-height:0;padding:32px 16px;display:flex}.welcome-mark{width:144px;height:144px;display:block}@media (max-width:799px){.welcome{gap:16px;padding:24px 16px}.welcome-mark{width:128px;height:128px}}.wordmark{font-family:var(--chrome);color:var(--ink);margin:0;font-size:20px;font-weight:500;line-height:1.2}.chrome-btn{font-family:var(--chrome);cursor:pointer;background:0 0;border:0;padding:0;font-size:14px;line-height:1}.add-btn,.send-btn,.create-btn{font-family:var(--chrome);color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:14px}.cancel-btn,.back-btn{font-family:var(--chrome);color:var(--ink);cursor:pointer;background:0 0;border:0;padding:0}.back-btn{font-size:16px}.empty-line{font-family:var(--chrome);color:var(--ink);margin:0;padding:0 16px;font-size:16px}.roster{flex-direction:column;gap:12px;padding:0 16px 16px;display:flex}.card{box-sizing:border-box;text-align:left;background:var(--card);border:1px solid var(--hairline);width:fit-content;max-width:100%;color:var(--ink);cursor:pointer;border-radius:16px;align-self:flex-start;padding:16px;display:block;position:relative}.row-head{align-items:center;gap:8px;display:flex}.bot-row{color:#d5d0c3;cursor:pointer;background:0 0;border:0;border-radius:0;align-items:center;gap:10px;width:100%;max-width:240px;margin:0;padding:0;display:flex;position:relative}.bot-lead{cursor:pointer;background:0 0;border:0;border-radius:0;width:fit-content;max-width:100%;margin:0;padding:0;display:block;position:relative}.bot-lead .bot-name{font-size:26px}.bot-row.is-open,.bot-lead.is-open{background:#d5d0c314;border-radius:8px;margin-left:-8px;margin-right:-8px;padding:6px 8px}.bot-copy{flex:auto;min-width:0}.bot-name{color:#d5d0c3;background:0 0;border:0;outline:none;margin:0;padding:0;font-family:system-ui,sans-serif;font-size:15px;font-weight:400;line-height:1.25}.bot-preview{max-width:100%;color:var(--ink-faint);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font-family:system-ui,sans-serif;font-size:12px;line-height:1.3;overflow:hidden}.bot-runtime{max-width:100%;color:var(--ink-faint);-webkit-line-clamp:3;line-clamp:3;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin:2px 0 0;font-family:system-ui,sans-serif;font-size:12px;line-height:1.3;display:-webkit-box;overflow:hidden}.bot-runtime-deck{white-space:nowrap;text-overflow:ellipsis;vertical-align:bottom;max-width:100%;display:inline-block;overflow:hidden}.mark{flex:0 0 28px;width:28px;height:34px;position:relative}.mark-tri{border-bottom:28px solid;border-left:14px solid #0000;border-right:14px solid #0000;width:0;height:0;position:absolute;top:3px;left:0}.mark-dot{background:#2ebd4e;border-radius:50%;width:8px;height:8px;animation:1.1s ease-in-out infinite mark-pulse;position:absolute;top:0;right:-2px;box-shadow:0 0 0 2px #0e120c}@keyframes mark-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.55)}}.card-preview{max-width:220px;font-family:var(--mono);color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:12px;line-height:1.3;overflow:hidden}.row-tip{z-index:3;background:var(--card);border:1px solid var(--hairline);border-radius:10px;min-width:148px;padding:8px 10px;display:none;position:absolute;top:calc(100% - 6px);left:12px}.card:hover .row-tip,.card:focus-within .row-tip,.bot-row:hover .row-tip,.bot-row:focus-within .row-tip,.bot-lead:hover .row-tip,.bot-lead:focus-within .row-tip{display:block}.roster.menu-open .row-tip{display:none}.row-tip{pointer-events:none}.row-open{text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;max-width:100%;display:block;overflow:hidden}.row-open:after{content:"";z-index:1;border-radius:8px;position:absolute;inset:0}.bot-row .row-open:after{inset:-4px -8px}.bot-row.is-open .row-open:after{inset:0}.card .row-open:after{border-radius:16px}.row-open:focus-visible:after{outline:2px solid var(--accent);outline-offset:2px}.row-actions{z-index:2;min-width:24px;min-height:24px;font-family:var(--mono);color:var(--ink-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;align-self:center;margin-left:auto;padding:0 4px;font-size:16px;line-height:1;position:relative}.row-actions:hover,.row-actions[aria-expanded=true]{color:var(--ink)}.row-actions:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card-lead{padding:28px 22px}.card-lead .card-name{font-size:26px}.card-pic{object-fit:cover;border-radius:8px;width:28px;height:28px;margin-bottom:8px;display:block}.card-lead .card-pic{width:36px;height:36px}.card-lead .card-role{font-size:15px}.row-name{width:8em;font-family:var(--mono);background:0 0;border:0;outline:none;margin:0;padding:0;font-size:16px;line-height:1.3;display:block}.pin-word{font-family:var(--mono);color:var(--ink);cursor:pointer;background:0 0;border:0;margin-top:8px;padding:0;font-size:12px;display:block}.row-menu{z-index:20;background:var(--card);border:1px solid var(--hairline);border-radius:10px;min-width:168px;padding:8px 10px;position:fixed}.row-menu [role=menuitem]{text-align:left;width:100%;font-family:var(--mono);color:var(--ink);cursor:pointer;background:0 0;border:0;margin-top:8px;padding:0;font-size:12px;text-decoration:none;display:block}.row-menu [role=menuitem]:first-child{margin-top:0}.confirm-card{background:var(--card);border:1px solid var(--hairline);border-radius:16px;width:280px;margin:48px;padding:16px}.confirm-card p{font-family:var(--mono);margin:0 0 16px;font-size:14px}.card-name,.thread-name{font-family:var(--mono);color:var(--ink);font-size:16px;line-height:1.3}button.thread-name{cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.avatar-pic{border:1px solid var(--hairline);background:var(--card);cursor:pointer;border-radius:12px;width:48px;height:48px;margin-top:8px;padding:0;display:block;overflow:hidden}.avatar-pic img{object-fit:cover;width:100%;height:100%;display:block}.avatar-step{flex-wrap:wrap;align-items:center;gap:16px;padding:0 16px 12px;display:flex}.avatar-phone{display:none}@media (max-width:799px){.avatar-desk{display:none}.avatar-phone{display:flex}}.avatar-step input{opacity:0;width:1px;height:1px;position:absolute}.card-role,.thread-role{font-family:var(--mono);color:var(--ink-muted);margin-top:4px;font-size:12px;line-height:1.3}.thread{flex-direction:column;flex:1;min-height:0;display:flex}@media (min-width:800px){.thread{height:100%;min-height:0}}.thread-bar{align-items:flex-start;gap:16px;padding:16px;display:flex}.messages{flex-direction:column;flex:auto;gap:12px;min-height:0;padding:0 16px 16px;display:flex;overflow-y:auto}.thread-empty{flex-direction:column;flex:1 0 auto;justify-content:flex-end;gap:4px;padding-bottom:8px;display:flex}.thread-empty-title,.thread-empty-hint,.thread-note{font-family:var(--chrome);margin:0}.thread-empty-title{color:var(--ink);font-size:16px}.thread-empty-hint,.thread-note{color:var(--ink-muted);font-size:14px}.thread-note-error{color:var(--ink)}.msg-you{text-align:right;max-width:80%;color:var(--ink);background:0 0;border:0;border-radius:0;align-self:flex-end;padding:0}.msg-bot{box-sizing:border-box;background:var(--card);border:1px solid var(--hairline);width:100%;color:var(--ink);border-radius:16px;align-self:flex-start;padding:16px}.msg-name{font-family:var(--mono);color:var(--ink);margin-bottom:6px;font-size:14px}.msg-name-you{color:var(--accent)}.msg-body{font-family:var(--mono);color:var(--ink);white-space:pre-wrap;font-size:14px;line-height:1.45}.msg-status{align-self:stretch;width:100%}.runtime-failure{box-sizing:border-box;border:1px solid var(--hairline);border-left:4px solid var(--danger);background:var(--field);color:var(--ink);font-family:var(--chrome);border-radius:8px;padding:12px 16px;font-size:14px;line-height:1.45}.runtime-failure-title,.runtime-failure-recovery{margin:0}.runtime-failure-title{flex-wrap:wrap;align-items:baseline;gap:8px;font-weight:600;display:flex}.runtime-failure-severity{text-transform:uppercase;letter-spacing:.04em;color:var(--danger);font-size:12px;font-weight:600}.runtime-failure-recovery{color:var(--ink-muted);margin-top:4px}.runtime-failure-details{margin-top:8px}.runtime-failure-details summary{cursor:pointer;color:var(--ink-muted)}.runtime-failure-detail{font-family:var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0;font-size:13px;display:block}.runtime-failure-copy{border:1px solid var(--hairline);background:var(--card);cursor:pointer;border-radius:6px;padding:4px 10px}.wake-notice{box-sizing:border-box;border:1px solid var(--hairline);border-left:4px solid var(--ink-muted);background:var(--field);color:var(--ink);font-family:var(--chrome);overflow-wrap:anywhere;border-radius:8px;padding:12px 16px;font-size:14px;line-height:1.45}.wake-notice-blocked,.wake-notice-allowed{border-left-color:var(--accent)}.wake-notice-rejected,.wake-notice-denied,.wake-notice-stopped{border-left-color:var(--danger)}.wake-notice-line{flex-wrap:wrap;align-items:baseline;gap:8px;margin:0;display:flex}.wake-notice-label{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);font-size:12px;font-weight:600}.wake-notice-blocked .wake-notice-label,.wake-notice-allowed .wake-notice-label{color:var(--accent)}.wake-notice-rejected .wake-notice-label,.wake-notice-denied .wake-notice-label,.wake-notice-stopped .wake-notice-label{color:var(--danger)}.wake-notice-error{color:var(--danger);margin:8px 0 0}.deck-event{font-family:var(--mono);color:var(--ink);overflow-wrap:anywhere;font-size:14px;line-height:1.45}.composer{align-items:flex-end;gap:16px;padding:16px;display:flex;position:relative}.composer-box{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.attach-names{font-family:var(--mono);color:var(--ink);flex-wrap:wrap;gap:8px;font-size:12px;display:flex}.attach-error{font-family:var(--mono);color:var(--ink);margin:0;font-size:14px}.attach-word{font-family:var(--chrome);color:var(--ink);cursor:pointer;background:0 0;border:0;padding:0;font-size:14px}.attach-input{opacity:0;width:1px;height:1px;position:absolute}.composer textarea{resize:none;background:var(--composer);border:1px solid var(--hairline);min-width:0;font-family:var(--mono);color:var(--ink);border-radius:12px;outline:none;flex:1;padding:10px 12px;font-size:14px}.composer textarea::placeholder{color:var(--ink-faint);opacity:1}.mention-list{background:var(--composer);border:1px solid var(--hairline);border-radius:12px;min-width:180px;max-height:220px;padding:6px;position:absolute;bottom:100%;left:16px;overflow:auto}.mention-list button{text-align:left;width:100%;color:var(--ink);font-family:var(--mono);background:0 0;border:0;padding:6px 8px;font-size:14px;display:block}.modal-scrim{z-index:10;background:#0a0a07b8;justify-content:flex-start;align-items:flex-start;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.new-agent-scrim{padding:0;display:block;overflow:hidden}.form-card.new-agent-dialog{flex-direction:column;width:min(358px,100vw - 32px);max-width:none;max-height:calc(100dvh - 32px);display:flex;position:fixed;top:16px;left:16px}.new-agent-dialog .kind-row{flex:none}.new-agent-dialog .bot-form{flex-direction:column;flex:auto;min-height:0;display:flex}.new-agent-body{flex:auto;min-height:0;margin:0 -4px;padding:0 4px;overflow-y:auto}.new-agent-dialog .form-actions{flex:none;padding-top:4px}.kind-row{gap:16px;margin-bottom:12px;display:flex}.kind-word{font-family:var(--chrome);color:var(--ink);cursor:pointer;background:0 0;border:0;padding:0;font-size:14px}.new-agent-title{font-weight:inherit;cursor:default;margin:0}.form-error{font-family:var(--mono);color:var(--ink);margin:0 0 12px;font-size:14px}.header-settings{margin:0 16px 12px}.form-card{box-sizing:border-box;background:var(--card);border:1px solid var(--hairline);border-radius:16px;width:100%;max-width:358px;padding:16px}.form-card label{font-family:var(--chrome);color:var(--ink);margin:0 0 6px;font-size:14px;display:block}.form-card input,.form-card textarea{box-sizing:border-box;background:var(--composer);border:1px solid var(--hairline);width:100%;font-family:var(--mono);color:var(--ink);border-radius:12px;outline:none;margin:0 0 12px;padding:10px 12px;font-size:14px}.runtime-note{font-family:var(--mono);color:var(--ink);margin:0 0 12px;font-size:14px}.runtime-picks{flex-wrap:wrap;gap:12px;margin:0 0 12px;display:flex}.runtime-pick{font-family:var(--mono);color:var(--ink);font-size:14px}.form-card input[type=radio]{vertical-align:middle;width:auto;accent-color:var(--accent);margin:0 4px 0 0;padding:0}.form-card .deck-control{box-sizing:border-box;background:var(--composer);border:1px solid var(--hairline);width:100%;font-family:var(--mono);color:var(--ink);text-overflow:ellipsis;border-radius:12px;outline:none;margin:0 0 8px;padding:10px 12px;font-size:14px}.runtime-hint{font-family:var(--chrome);color:var(--ink-faint);overflow-wrap:anywhere;margin:-6px 0 12px;font-size:12px;line-height:1.3}.runtime-link{font-family:var(--chrome);color:var(--accent);margin:0 0 12px;font-size:12px;text-decoration:none;display:inline-block}.bot-form .create-btn:disabled{opacity:.4;cursor:default}.cfg-page input[type=radio]{accent-color:var(--accent)}.agent-fieldset{border:0;min-width:0;margin:0;padding:0}.reg-fieldset{margin:0 0 4px}.reg-stack{flex-direction:column;gap:6px;margin:0 0 12px;display:flex}.form-card input[type=checkbox]{vertical-align:middle;width:auto;accent-color:var(--accent);margin:0 4px 0 0;padding:0}.reg-option-hint{margin:2px 0 0 20px;display:block}.form-card .reg-option-hint.runtime-hint{margin:2px 0 0 20px}.reg-error{margin:-6px 0 12px;font-size:12px}.reg-add-connection{border-top:1px solid var(--hairline);margin:0 0 12px;padding:12px 0 0}.reg-actions{gap:16px;display:flex}.form-card .deck-control[aria-invalid=true],.form-card input[aria-invalid=true],.form-card textarea[aria-invalid=true]{border-color:var(--accent)}.form-card input[type=checkbox]:focus-visible,.cfg-page input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cfg-page input[type=checkbox]{accent-color:var(--accent)}.form-card .field-legend{font-family:var(--chrome);color:var(--ink);margin:0 0 6px;padding:0;font-size:14px;display:block}.form-card input:focus-visible,.form-card textarea:focus-visible,.form-card .deck-control:focus-visible,.form-card button:focus-visible,.form-card a:focus-visible,.cfg-page input[type=radio]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.runtime-retry{font-family:var(--chrome);color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:14px}.settings-link{align-self:flex-start;text-decoration:none}.deck-event-label{color:var(--accent)}@media (max-width:799px){.bot-form .runtime-picks{flex-direction:column;gap:6px}.bot-form .form-actions{flex-direction:column-reverse;align-items:stretch;gap:12px}}.form-actions{justify-content:space-between;align-items:center;display:flex}.agent-turn{width:100%}.agent-from{font-family:var(--chrome);color:var(--ink);justify-content:center;align-items:center;gap:8px;margin:0 0 8px;font-size:14px;display:flex}.agent-mark{object-fit:cover;border-radius:50%;flex:none;width:16px;height:16px}.agent-bar{box-sizing:border-box;color:#fff;text-align:left;width:100%;font-family:var(--mono);white-space:pre-wrap;background:#2a2a2a;border:0;border-radius:16px;padding:16px;font-size:14px;line-height:1.45}.approve-control{background:var(--accent);color:var(--ink-on-accent);cursor:pointer;border:0;border-radius:8px;margin-top:10px;padding:6px 12px;display:inline-block}.file-control{background:var(--field);color:var(--ink);border:1px solid var(--hairline);font-family:var(--mono);border-radius:8px;margin-top:10px;padding:6px 12px;text-decoration:none;display:inline-block}.draft-card{font-family:var(--chrome);color:var(--ink);font-size:14px}.draft-title{font-family:var(--chrome);color:var(--ink);margin:0 0 12px;font-size:14px}.draft-card input,.draft-card textarea{box-sizing:border-box;background:var(--composer);border:1px solid var(--hairline);width:100%;font-family:var(--chrome);color:var(--ink);border-radius:12px;outline:none;margin:0 0 12px;padding:10px 12px;font-size:14px}.draft-mark{font-family:var(--chrome);color:var(--ink);margin-top:10px;margin-right:8px;font-size:14px;display:inline-block}.messages-wrap{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative}.computer-float{z-index:3;pointer-events:none;border-radius:16px;flex-direction:column;display:flex;position:absolute;inset:8px 16px;overflow:hidden;box-shadow:0 16px 48px #00000073}.computer-top{color:#fff;pointer-events:none;background:#121212;flex:none;justify-content:space-between;align-items:center;height:46px;padding:0 14px 0 16px;display:flex}.computer-lights{pointer-events:none;align-items:center;gap:8px;display:flex}.computer-light{pointer-events:none;border-radius:50%;width:12px;height:12px;display:block}.computer-light-red{background:#ff5f57}.computer-light-yellow{background:#febc2e}.computer-light-green{background:#28c840}.computer-teach{pointer-events:none;align-items:center;gap:10px;display:flex}.computer-teach-pill{color:#fff;pointer-events:none;border:1px solid #ffffffb8;border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 7px;font-family:system-ui,sans-serif;font-size:13px;font-weight:500;line-height:1.2;display:inline-flex}.computer-teach-mark{box-sizing:border-box;border:1.5px solid #fff;border-radius:50%;width:13px;height:13px;display:block}.computer-expand{color:#fff;pointer-events:none;display:flex}.computer-band{pointer-events:none;flex:none;height:48px}.computer-band-note{flex-direction:column;justify-content:center;height:auto;min-height:48px;padding:8px 16px;display:flex}.computer-band-note .thread-empty{flex:none;padding-bottom:0}.computer-desk{pointer-events:none;background:#d9d9d9 url(/computer/wallpaper.png) 50%/cover no-repeat;flex-direction:column;flex:auto;min-height:0;display:flex}.computer-page{pointer-events:none;background:0 0;border:0;flex:auto;width:100%;min-height:0}.computer-dock{pointer-events:none;flex:none;justify-content:center;align-items:center;gap:18px;padding:8px 0 16px;display:flex}.computer-dock img{pointer-events:none;-webkit-user-select:none;user-select:none;width:auto;display:block}.computer-dock img:first-child{height:40px}.computer-dock img:nth-child(2){height:20px}.computer-dock img:nth-child(3){height:32px}.cfg-page{background:var(--field);min-height:100vh;color:var(--ink);font-family:var(--chrome);padding:16px}@media (min-width:640px){.cfg-page{padding:24px}}.cfg-card{background:var(--card);border:1px solid var(--hairline);border-radius:16px;padding:24px}.cfg-title{font-family:var(--chrome);color:var(--ink);font-weight:600}.cfg-muted{color:var(--ink-muted)}.cfg-faint{color:var(--ink-faint)}.cfg-link{font-family:var(--chrome);color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none}a.cfg-link:hover,button.cfg-link:hover{text-decoration:underline}.cfg-back{margin-bottom:4px;display:inline-block}.cfg-code{font-family:var(--mono);color:var(--ink)}.cfg-pre{background:var(--composer);border:1px solid var(--hairline);font-family:var(--mono);color:var(--ink);white-space:pre-wrap;border-radius:12px;padding:12px}.cfg-input{box-sizing:border-box;background:var(--composer);border:1px solid var(--hairline);width:100%;font-family:var(--mono);color:var(--ink);border-radius:12px;outline:none;padding:10px 12px}.cfg-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.cfg-input-sans{font-family:var(--chrome)}.cfg-btn-primary{font-family:var(--chrome);background:var(--accent);color:var(--ink-on-accent);cursor:pointer;border:0;border-radius:8px;padding:8px 16px}.cfg-btn-primary:hover:not(:disabled){filter:brightness(1.1)}.cfg-btn-primary:disabled{background:var(--composer);color:var(--ink);opacity:.55;cursor:default;filter:none}.cfg-btn-ghost{font-family:var(--chrome);background:var(--field);color:var(--ink);border:1px solid var(--hairline);cursor:pointer;border-radius:8px;padding:8px 16px;text-decoration:none}.cfg-btn-ghost:hover:not(:disabled){background:var(--composer)}.cfg-btn-ghost:disabled{opacity:.5;cursor:default}.cfg-row{border:1px solid var(--hairline);border-radius:12px;padding:12px}.cfg-line{border-color:var(--hairline)}.cfg-dirty{color:#e0a83e}.cfg-dot-amber{background:#f59e0b}.cfg-error{color:#f08080}.cfg-ok{color:#2ebd4e}.cfg-skel{background:var(--card);border:1px solid var(--hairline)}.cfg-avatar{object-fit:cover;border-radius:9999px}.cfg-chevron{color:var(--ink-faint);cursor:pointer;background:0 0;border:0}.cfg-chevron:hover{color:var(--ink)}.bot-avatar svg{width:100%;height:100%;display:block}.mark-avatar{flex:0 0 44px;width:44px;height:44px;position:relative}.mark-avatar-sm{flex-basis:36px;width:36px;height:36px}.mark-avatar .mark-dot{top:-2px;right:-2px}span.agent-mark{vertical-align:-3px;background:0 0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}button.avatar-pic{justify-content:center;align-items:center;display:flex}.avatar-group-label{color:var(--ink);margin:0 0 8px;font-size:13px;font-weight:600}.avatar-opt-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px;display:grid}.avatar-opt{border:1px solid var(--hairline);cursor:pointer;color:var(--ink);background:0 0;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;font-size:11px;line-height:1.2;display:flex;position:relative}.avatar-opt-input{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.avatar-opt-art{display:flex}.avatar-opt:has(.avatar-opt-input:checked){border-color:currentColor;box-shadow:0 0 0 1px}.avatar-opt:has(.avatar-opt-input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.roster-status{font-family:var(--mono);color:var(--accent);margin:0;padding:0 16px;font-size:12px}.roster-status:empty{display:none}.roster-status:not(:empty){padding-bottom:12px}.delete-scrim{z-index:30;justify-content:center}.manage-scrim{z-index:25;justify-content:center}.delete-card,.manage-card{box-sizing:border-box;background:var(--card);border:1px solid var(--hairline);width:100%;color:var(--ink);border-radius:16px;margin-top:32px;padding:16px}.delete-card{max-width:440px}.manage-card{flex-direction:column;max-width:720px;max-height:calc(100vh - 64px);display:flex}.delete-title{font-family:var(--chrome);margin:0 0 12px;font-size:18px;font-weight:600}.delete-copy,.delete-error,.delete-blocked p{font-family:var(--mono);margin:0 0 12px;font-size:12px;line-height:1.5}.delete-keeps{color:var(--ink-muted)}.delete-error,.delete-blocked{color:var(--danger)}.delete-names,.delete-blocked ul{font-family:var(--mono);margin:0 0 12px;padding:0 0 0 18px;font-size:12px;line-height:1.5}.delete-names{max-height:160px;overflow-y:auto}.delete-btn{font-family:var(--chrome);color:var(--field);background:var(--danger);cursor:pointer;border:0;border-radius:8px;padding:6px 12px;font-size:14px}.delete-btn:disabled{opacity:.4;cursor:not-allowed}.delete-card button:focus-visible,.manage-card button:focus-visible,.manage-card input:focus-visible,.row-menu [role=menuitem]:focus-visible,.cfg-danger button:focus-visible,.bar button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.manage-head{justify-content:space-between;align-items:center;display:flex}.manage-search-label{font-family:var(--chrome);margin:0 0 6px;font-size:14px}.manage-search{box-sizing:border-box;background:var(--composer);border:1px solid var(--hairline);width:100%;font-family:var(--mono);color:var(--ink);border-radius:12px;outline:none;padding:10px 12px;font-size:14px}.manage-tools{flex-wrap:wrap;align-items:baseline;gap:16px;margin:4px 0 8px;display:flex}.manage-tools .pin-word:disabled{opacity:.4;cursor:default}.manage-count{font-family:var(--mono);color:var(--ink-muted);margin-left:auto;font-size:12px}.manage-list{border-top:1px solid var(--hairline);flex:auto;min-height:0;margin:0 0 12px;padding:0;list-style:none;overflow-y:auto}.manage-row{border-bottom:1px solid var(--hairline);align-items:flex-start;gap:12px;padding:10px 0;display:flex}.manage-row input[type=checkbox]{accent-color:var(--danger);margin-top:3px}.manage-row.is-blocked .manage-name,.manage-row.is-blocked .manage-meta{color:var(--ink-faint)}.manage-copy{flex:auto;min-width:0}.manage-name{font-family:var(--mono);cursor:pointer;overflow-wrap:anywhere;font-size:14px;display:block}.manage-tag{border:1px solid var(--hairline);color:var(--ink-muted);border-radius:6px;margin-left:8px;padding:0 4px;font-size:11px}.manage-meta{font-family:var(--mono);flex-wrap:wrap;gap:2px 16px;margin:4px 0 0;font-size:11px;display:flex}.manage-meta div{gap:4px;min-width:0;display:flex}.manage-meta dt{color:var(--ink-faint)}.manage-meta dd{overflow-wrap:anywhere;margin:0}.manage-reason{font-family:var(--mono);color:var(--danger);margin:4px 0 0;font-size:12px}.cfg-danger{border-color:var(--danger)}.sessions-scrim{z-index:25;justify-content:flex-end;padding:0;overflow:hidden}.sessions-drawer{box-sizing:border-box;background:var(--card);border-left:1px solid var(--hairline);width:100%;max-width:520px;height:100%;color:var(--ink);flex-direction:column;padding:16px;display:flex}.sessions-title{margin:0}.sessions-sub{font-family:var(--mono);color:var(--ink-muted);overflow-wrap:anywhere;margin:4px 0 0;font-size:12px}.sessions-filter{flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0 8px;display:flex}.sessions-filter-btn{font-family:var(--mono);color:var(--ink);border:1px solid var(--hairline);cursor:pointer;background:0 0;border-radius:8px;padding:4px 10px;font-size:12px}.sessions-filter-btn[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--ink-on-accent)}.sessions-state{padding:12px 0}.sessions-list{margin-bottom:0}.session-head{flex-wrap:wrap;align-items:baseline;gap:4px 0;display:flex}.session-title{font-family:var(--mono);overflow-wrap:anywhere;margin-right:4px;font-size:14px}.session-status.is-active{color:var(--accent);border-color:var(--accent)}.session-row.is-ended .session-title{color:var(--ink-muted)}.session-link{font-family:var(--mono);color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-size:11px;text-decoration:underline}.session-toggle{margin-top:6px}.session-detail{font-family:var(--mono);margin-top:8px;font-size:11px}.session-attempts{margin:0 0 8px;padding:0 0 0 18px;line-height:1.5}.session-sr{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.session-usage.is-unavailable,.session-usage-values .is-unavailable,.session-usage-coverage{color:var(--ink-faint)}.session-usage-tag{margin-left:6px}.session-usage-detail{margin:0 0 8px}.session-usage-head{color:var(--ink-muted);margin:0 0 4px;font-size:11px;font-weight:600}.session-usage-totals{gap:2px;margin:0 0 6px;display:grid}.session-usage-totals div{flex-wrap:wrap;gap:2px 8px;min-width:0;display:flex}.session-usage-totals dt{min-width:7.5rem;color:var(--ink-faint)}.session-usage-totals dd{overflow-wrap:anywhere;flex-wrap:wrap;gap:2px 8px;margin:0;display:flex}.session-usage-none{color:var(--ink-faint);margin:0}.session-usage-runs{margin:0;padding:0 0 0 18px;line-height:1.5}.session-usage-runs li{flex-wrap:wrap;gap:0 12px;display:flex}.session-usage-values{flex-wrap:wrap;gap:0 10px;display:flex}.session-debug summary{cursor:pointer;color:var(--ink-muted)}.session-debug-note{color:var(--ink-faint);margin:4px 0}.session-debug-value{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.session-debug-value code{overflow-wrap:anywhere;color:var(--ink)}.session-debug-value .pin-word{margin-top:0}.sessions-drawer button:focus-visible,.sessions-drawer summary:focus-visible,.thread-bar .attach-word:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rail-nav{padding:0 16px 12px}.rail-nav-link{text-decoration:none}.rail-nav-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.session-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.session-action{font-family:var(--mono);color:var(--ink);border:1px solid var(--accent);cursor:pointer;background:0 0;border-radius:8px;padding:4px 10px;font-size:12px}.session-unavailable{font-family:var(--mono);color:var(--ink-muted);gap:4px;margin:8px 0 0;padding:0;font-size:11px;line-height:1.5;list-style:none;display:grid}.exchange-approval{font-family:var(--mono);color:var(--ink);cursor:pointer;align-items:flex-start;gap:8px;font-size:12px;line-height:1.5;display:flex}.exchange-approval input{accent-color:var(--accent);margin:2px 0 0}.exchange-approval input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.exchange-started:not(:empty){font-family:var(--mono);color:var(--accent);margin:0 0 8px;font-size:12px;line-height:1.5}.exchange-scrim{z-index:35;justify-content:center}.form-card.exchange-dialog{max-width:480px;color:var(--ink);margin-top:32px}.exchange-source{border:1px solid var(--hairline);border-left:4px solid var(--accent);background:var(--field);border-radius:8px;margin:0 0 16px;padding:8px 12px}.exchange-source p{overflow-wrap:anywhere;margin:0}.exchange-source-agent{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);font-size:12px;font-weight:600}.exchange-source-title{font-family:var(--mono);margin-top:2px;font-size:14px}.exchange-source-meta{font-family:var(--mono);color:var(--ink-muted);margin-top:4px;font-size:11px}.exchange-select{box-sizing:border-box;background:var(--composer);border:1px solid var(--hairline);width:100%;font-family:var(--chrome);color:var(--ink);border-radius:12px;margin:0 0 12px;padding:8px 10px;font-size:14px}.form-card.exchange-dialog textarea{margin-bottom:8px}.form-card.exchange-dialog [aria-invalid=true],.exchange-select[aria-invalid=true]{border-color:var(--danger)}.exchange-field-error,.exchange-server-error{font-family:var(--mono);color:var(--danger);margin:0 0 8px;font-size:12px;line-height:1.5}.exchange-hint{color:var(--ink-muted);margin:0 0 12px;font-size:13px;line-height:1.5}.exchange-sending{font-family:var(--mono);color:var(--ink-muted);margin:0;font-size:12px}.exchange-sending:not(:empty){margin-bottom:8px}.exchange-dialog .create-btn:disabled{opacity:.5;cursor:progress}.exchange-dialog select:focus-visible,.session-action:focus-visible,.exchange-card a:focus-visible,.exchange-card button:focus-visible,.ledger-page a:focus-visible,.ledger-page button:focus-visible,.ledger-page select:focus-visible,.ledger-detail-title:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.exchange-card{box-sizing:border-box;border:1px solid var(--hairline);border-left:4px solid var(--accent);background:var(--field);color:var(--ink);font-family:var(--chrome);overflow-wrap:anywhere;border-radius:8px;padding:12px 16px;font-size:14px;line-height:1.45}.exchange-card:focus{outline:2px solid var(--accent);outline-offset:2px}.exchange-card.is-stopped{border-left-color:var(--danger)}.exchange-card.is-done{border-left-color:var(--ink-muted)}.exchange-card p{margin:0}.exchange-card p+p{margin-top:4px}.exchange-card-line{flex-wrap:wrap;align-items:baseline;gap:4px 8px;display:flex}.exchange-card-mode{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);font-size:12px;font-weight:600}.exchange-card-title{font-weight:600}.exchange-card-state{font-family:var(--mono);border:1px solid var(--hairline);color:var(--ink);border-radius:6px;padding:0 6px;font-size:12px}.exchange-card.is-active .exchange-card-state{border-color:var(--accent);color:var(--accent)}.exchange-card.is-stopped .exchange-card-state{border-color:var(--danger);color:var(--danger)}.exchange-card-session,.exchange-card-time{font-family:var(--mono);color:var(--ink-muted);font-size:12px}.exchange-card-key{color:var(--ink-muted)}.exchange-card-outcome.is-failure,.exchange-card-error{color:var(--danger)}.exchange-card-advice{color:var(--ink-muted)}.exchange-card-foot{flex-wrap:wrap;align-items:baseline;gap:4px 16px;display:flex}.exchange-card-link{color:var(--accent)}.exchange-card-cancel{font-family:var(--chrome);color:var(--danger);cursor:pointer;background:0 0;border:0;padding:0;font-size:14px;text-decoration:underline}.exchange-card-cancel:disabled{cursor:progress;opacity:.6}.ledger-page{box-sizing:border-box;background:var(--field);min-height:100dvh;color:var(--ink);font-family:var(--chrome);flex-direction:column;padding:16px;display:flex}.ledger-head{flex:none;margin-bottom:16px}.ledger-title{margin:12px 0 4px;font-size:20px;font-weight:700}.ledger-sub{color:var(--ink-muted);margin:0;font-size:13px}.ledger-main{flex-direction:column;flex:auto;gap:16px;min-height:0;display:flex}.ledger-pane-title{margin:0 0 8px;font-size:16px;font-weight:600}.ledger-filters{flex-direction:column;gap:8px;margin-bottom:8px;display:flex}.ledger-mode{margin:0}.ledger-selects{flex-wrap:wrap;gap:8px 12px;display:flex}.ledger-select-label{min-width:0;color:var(--ink-muted);flex-direction:column;flex:140px;gap:4px;font-size:13px;display:flex}.ledger-select-label .exchange-select,.ledger-count{margin:0}.ledger-state{font-family:var(--mono);color:var(--ink-muted);margin:0;padding:12px 0;font-size:12px;line-height:1.5}.ledger-state p{margin:0}.ledger-list{border-top:1px solid var(--hairline);margin:0;padding:0;list-style:none}.ledger-row-item{border-bottom:1px solid var(--hairline)}.ledger-row{box-sizing:border-box;text-align:left;width:100%;color:var(--ink);cursor:pointer;overflow-wrap:anywhere;background:0 0;border:0;border-left:3px solid #0000;flex-direction:column;gap:2px;padding:10px 8px;display:flex}.ledger-row[aria-current=true]{background:var(--card);border-left-color:var(--accent)}.ledger-row-line{flex-wrap:wrap;align-items:baseline;gap:4px 8px;display:flex}.ledger-row-who{font-size:14px;font-weight:600}.ledger-row-state{font-family:var(--mono);color:var(--accent);font-size:12px}.ledger-row.is-stopped .ledger-row-state{color:var(--danger)}.ledger-row.is-done .ledger-row-state{color:var(--ink-muted)}.ledger-row-session{font-family:var(--mono);font-size:13px}.ledger-row-meta{font-family:var(--mono);color:var(--ink-muted);font-size:11px}.ledger-detail{flex-direction:column;gap:12px;min-width:0;display:flex}.ledger-detail-back{align-self:flex-start;margin-top:0}.ledger-detail-title{overflow-wrap:anywhere;margin:0;font-size:18px;font-weight:600}.ledger-section{border-top:1px solid var(--hairline);padding-top:8px}.ledger-section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);margin:0 0 6px;font-size:12px;font-weight:600}.ledger-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:14px;line-height:1.5}.ledger-packet-list{margin-top:8px}.ledger-packet-title{margin:0;font-size:13px;font-weight:600}.ledger-packet-list ul,.ledger-links{overflow-wrap:anywhere;margin:4px 0 0;padding:0 0 0 18px;font-size:13px;line-height:1.5}.ledger-links{padding:0;list-style:none}.ledger-thread-link{font-size:13px}.ledger-link-role{font-family:var(--mono);color:var(--ink-muted);font-size:11px}.ledger-timeline{margin:0;padding:0 0 0 18px;font-size:13px;line-height:1.5}.ledger-timeline li{overflow-wrap:anywhere;margin-bottom:4px}.ledger-timeline-time{font-family:var(--mono);color:var(--ink-muted);font-size:11px;display:block}.ledger-foot{font-family:var(--mono);color:var(--ink-faint);overflow-wrap:anywhere;margin:0;font-size:11px}@media (max-width:799px){.ledger-page.has-detail .ledger-list-pane,.ledger-page:not(.has-detail) .ledger-detail-pane{display:none}}@media (min-width:800px){.ledger-page{height:100vh;padding:24px}.ledger-main{flex-direction:row;gap:24px}.ledger-list-pane{flex:0 0 22rem;min-height:0;padding-right:4px;overflow-y:auto}.ledger-detail-pane{border-left:1px solid var(--hairline);flex:auto;min-width:0;max-width:56rem;min-height:0;padding-left:24px;overflow-y:auto}.ledger-detail-back{display:none}}.group-thread-nav{flex-wrap:wrap;gap:4px 16px;display:flex}.group-thread-main{flex:auto;min-width:0;max-width:56rem}.group-thread-list{margin:0;padding:0;list-style:none}.group-thread-body{white-space:pre-wrap;overflow-wrap:anywhere}@media (min-width:800px){.group-thread-page{height:auto}}@media (max-width:799px){.session-actions{flex-direction:column}.session-action{text-align:left;min-height:40px}}@media (prefers-reduced-motion:reduce){.exchange-card,.ledger-row,.session-action{scroll-behavior:auto;transition:none;animation:none}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}
|