botmancers 0.3.0 → 0.5.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 +107 -1
- package/README.md +178 -32
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +27 -1
- package/app/.next/build-manifest.json +3 -3
- package/app/.next/prerender-manifest.json +33 -5
- package/app/.next/required-server-files.json +2 -2
- package/app/.next/routes-manifest.json +198 -0
- 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/page_client-reference-manifest.js +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/agent-deck/decks/route.js +3 -3
- package/app/.next/server/app/api/agent-deck/decks/route.js.nft.json +1 -1
- package/app/.next/server/app/api/agent-deck/settings/route.js +3 -3
- package/app/.next/server/app/api/agent-deck/settings/route.js.nft.json +1 -1
- 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/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route.js +12 -0
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route.js.nft.json +1 -0
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js +9 -0
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/bots/[id]/sessions/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/bots/[id]/sessions/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/bots/[id]/sessions/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/bots/[id]/sessions/route.js +12 -0
- package/app/.next/server/app/api/bots/[id]/sessions/route.js.nft.json +1 -0
- package/app/.next/server/app/api/bots/[id]/sessions/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 +2 -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 +4 -4
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +6 -6
- 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/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/exchanges/[id]/cancel/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/exchanges/[id]/cancel/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/exchanges/[id]/cancel/route.js +11 -0
- package/app/.next/server/app/api/exchanges/[id]/cancel/route.js.nft.json +1 -0
- package/app/.next/server/app/api/exchanges/[id]/cancel/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/exchanges/[id]/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/exchanges/[id]/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/exchanges/[id]/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/exchanges/[id]/route.js +11 -0
- package/app/.next/server/app/api/exchanges/[id]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/exchanges/[id]/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/exchanges/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/exchanges/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/exchanges/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/exchanges/route.js +12 -0
- package/app/.next/server/app/api/exchanges/route.js.nft.json +1 -0
- package/app/.next/server/app/api/exchanges/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/files/[name]/route.js +3 -2
- 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 +3 -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/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/runtime-connections/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/runtime-connections/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/runtime-connections/route.js +9 -0
- package/app/.next/server/app/api/runtime-connections/route.js.nft.json +1 -0
- package/app/.next/server/app/api/runtime-connections/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/service-grants/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/service-grants/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/service-grants/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/service-grants/route.js +9 -0
- package/app/.next/server/app/api/service-grants/route.js.nft.json +1 -0
- package/app/.next/server/app/api/service-grants/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js +12 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js +12 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js +5 -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/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/pins/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/pins/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/pins/route.js +12 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/pins/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/pins/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/route.js +12 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js +12 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js +12 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/agents/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/agents/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/agents/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/agents/route.js +12 -0
- package/app/.next/server/app/api/v0/agents/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/agents/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/capabilities/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/capabilities/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/capabilities/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/capabilities/route.js +12 -0
- package/app/.next/server/app/api/v0/capabilities/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/capabilities/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/conversations/[id]/route.js +5 -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/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js +12 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/route.js +12 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/exchanges/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/exchanges/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/exchanges/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/exchanges/route.js +12 -0
- package/app/.next/server/app/api/v0/exchanges/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/exchanges/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/mcp/route.js +7 -4
- 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/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route.js +12 -0
- package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route.js +12 -0
- package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/pins/[pinRef]/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/pins/[pinRef]/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/pins/[pinRef]/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/pins/[pinRef]/route.js +12 -0
- package/app/.next/server/app/api/v0/pins/[pinRef]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/pins/[pinRef]/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/requests/[id]/route.js +5 -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/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/messages/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/messages/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js +12 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/messages/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/pins/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/pins/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/pins/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/pins/route.js +12 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/pins/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/pins/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js +5 -5
- 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 +5 -5
- 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 +5 -5
- 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/app-paths-manifest.json +3 -0
- package/app/.next/server/app/exchanges/page/build-manifest.json +20 -0
- package/app/.next/server/app/exchanges/page/next-font-manifest.json +11 -0
- package/app/.next/server/app/exchanges/page/react-loadable-manifest.json +1 -0
- package/app/.next/server/app/exchanges/page/server-reference-manifest.json +4 -0
- package/app/.next/server/app/exchanges/page.js +13 -0
- package/app/.next/server/app/exchanges/page.js.nft.json +1 -0
- package/app/.next/server/app/exchanges/page_client-reference-manifest.js +3 -0
- package/app/.next/server/app/exchanges.html +1 -0
- package/app/.next/server/app/exchanges.meta +34 -0
- package/app/.next/server/app/exchanges.rsc +22 -0
- package/app/.next/server/app/exchanges.segments/_full.segment.rsc +22 -0
- package/app/.next/server/app/exchanges.segments/_tree.segment.rsc +4 -0
- package/app/.next/server/app/exchanges.segments/exchanges/__PAGE__.segment.rsc +26 -0
- 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/app-paths-manifest.json +3 -0
- package/app/.next/server/app/threads/[id]/page/build-manifest.json +20 -0
- package/app/.next/server/app/threads/[id]/page/next-font-manifest.json +11 -0
- package/app/.next/server/app/threads/[id]/page/react-loadable-manifest.json +1 -0
- package/app/.next/server/app/threads/[id]/page/server-reference-manifest.json +4 -0
- package/app/.next/server/app/threads/[id]/page.js +13 -0
- package/app/.next/server/app/threads/[id]/page.js.nft.json +1 -0
- package/app/.next/server/app/threads/[id]/page_client-reference-manifest.js +3 -0
- package/app/.next/server/app-paths-manifest.json +27 -1
- package/app/.next/server/chunks/0ivl_api_v0_agents_[agentId]_conversations_[conversationId]_route_actions_0lvijtu.js +3 -0
- package/app/.next/server/chunks/1oeh_server_app_api_bots_[id]_sessions_[ref]_pins_route_actions_0e1st6o.js +3 -0
- package/app/.next/server/chunks/1oeh_server_app_api_v0_agents_[agentId]_conversations_route_actions_0ko3117.js +3 -0
- package/app/.next/server/chunks/1oeh_server_app_api_v0_agents_[agentId]_sessions_[ref]_route_actions_0o7q3vt.js +3 -0
- package/app/.next/server/chunks/{[externals]__18bqksw._.js → [externals]__06lqs5i._.js} +1 -1
- package/app/.next/server/chunks/{[root-of-the-server]__1vxmbdl._.js → [root-of-the-server]__0-45blq._.js} +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__02kssr-._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__06qkt0f._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__08qhrch._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__097ptn_._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__09m9-pe._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0b7w1z3._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0f5yqjs._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0g4um3-._.js +44 -0
- package/app/.next/server/chunks/[root-of-the-server]__0hro5ey._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0hwpgxq._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0izjfmr._.js +582 -55
- package/app/.next/server/chunks/{[root-of-the-server]__07l_rgn._.js → [root-of-the-server]__0j0i8xz._.js} +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__0lwsto-._.js +5 -0
- package/app/.next/server/chunks/[root-of-the-server]__0s1enbp._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0uq7sci._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0wg992i._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__13cd2fb._.js +44 -0
- package/app/.next/server/chunks/[root-of-the-server]__17mum5-._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1879cge._.js +3 -0
- package/app/.next/server/chunks/{[root-of-the-server]__17oz13o._.js → [root-of-the-server]__1_01-13._.js} +3 -3
- package/app/.next/server/chunks/[root-of-the-server]__1a2dh11._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1bhzfu_._.js +7 -0
- package/app/.next/server/chunks/{[root-of-the-server]__1khwkvb._.js → [root-of-the-server]__1c3e2ds._.js} +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__1co3sok._.js +44 -0
- package/app/.next/server/chunks/[root-of-the-server]__1eh30sp._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1fmsid0._.js +44 -0
- package/app/.next/server/chunks/[root-of-the-server]__1i388e2._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1kvvs4u._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1qbgs3m._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1s6h1sj._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1slu7d7._.js +7 -0
- package/app/.next/server/chunks/[root-of-the-server]__1tuqc5v._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1v609eq._.js +44 -0
- package/app/.next/server/chunks/[root-of-the-server]__1y_j43n._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1zdv-vb._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1zjs2tr._.js +3 -0
- package/app/.next/server/chunks/_0061c2q._.js +3 -0
- package/app/.next/server/chunks/_023se5j._.js +44 -0
- package/app/.next/server/chunks/_02pb_qv._.js +44 -0
- package/app/.next/server/chunks/_05ro-21._.js +44 -0
- package/app/.next/server/chunks/_07on0dc._.js +44 -0
- package/app/.next/server/chunks/_08208nz._.js +44 -0
- package/app/.next/server/chunks/_0a2do3x._.js +1 -1
- package/app/.next/server/chunks/_0fe5qz5._.js +44 -0
- package/app/.next/server/chunks/_0i8_xso._.js +3 -0
- package/app/.next/server/chunks/_0qoji5a._.js +44 -0
- package/app/.next/server/chunks/_0uv2pi5._.js +44 -0
- package/app/.next/server/chunks/_0wdl90-._.js +44 -0
- package/app/.next/server/chunks/_1-5mthb._.js +1 -1
- package/app/.next/server/chunks/_11-q8k1._.js +3 -0
- package/app/.next/server/chunks/_11ijk9k._.js +44 -0
- package/app/.next/server/chunks/_198sn69._.js +44 -0
- package/app/.next/server/chunks/_1ba_5hd._.js +44 -0
- package/app/.next/server/chunks/_1ess5if._.js +3 -0
- package/app/.next/server/chunks/_1i0zod4._.js +3 -0
- package/app/.next/server/chunks/_1m89jq5._.js +44 -0
- package/app/.next/server/chunks/_1n39wr_._.js +44 -0
- package/app/.next/server/chunks/_1ryxqo1._.js +44 -0
- package/app/.next/server/chunks/_1vemgly._.js +44 -0
- package/app/.next/server/chunks/_20azcus._.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_sessions_[ref]_route_actions_02gp9-5.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_sessions_route_actions_1s_wxg4.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_exchanges_[id]_cancel_route_actions_0lh0fl4.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_exchanges_[id]_route_actions_1w4jhin.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_exchanges_route_actions_028wchg.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_runtime-connections_route_actions_06rulng.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_service-grants_route_actions_1459xk1.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_[agentId]_pins_route_actions_08uftk9.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_[agentId]_route_actions_127sxvv.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_[agentId]_sessions_route_actions_0pm6tcu.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_route_actions_00azkhd.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_capabilities_route_actions_0d-eefd.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_exchanges_[id]_cancel_route_actions_1hb2q7i.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_exchanges_[id]_route_actions_098f50-.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_exchanges_route_actions_1ftmhhm.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_pins_[pinRef]_detach_route_actions_0nk3268.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_pins_[pinRef]_messages_route_actions_1wenu96.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_pins_[pinRef]_route_actions_0z7fu_c.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_sessions_[ref]_messages_route_actions_1-rgf_k.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_sessions_[ref]_pins_route_actions_0y3ere3.js +3 -0
- package/app/.next/server/chunks/lib_0kik6bx._.js +1 -1
- package/app/.next/server/chunks/lib_0lqoyb4._.js +217 -0
- package/app/.next/server/chunks/lib_0pe3tiv._.js +1 -1
- package/app/.next/server/chunks/lib_0riiofz._.js +44 -0
- package/app/.next/server/chunks/lib_16j2293._.js +217 -0
- package/app/.next/server/chunks/lib_1nb_61e._.js +217 -0
- package/app/.next/server/chunks/lib_service-api-http_ts_0xzqhny._.js +25 -0
- package/app/.next/server/chunks/lib_session-pins_ts_0lmxnwj._.js +20 -0
- package/app/.next/server/chunks/ssr/{[root-of-the-server]__0sq4frf._.js → [root-of-the-server]__03186rx._.js} +1 -1
- package/app/.next/server/chunks/ssr/[root-of-the-server]__03xw2d9._.js +3 -0
- package/app/.next/server/chunks/ssr/{[root-of-the-server]__1x7o-fe._.js → [root-of-the-server]__0zzcbqg._.js} +1 -1
- package/app/.next/server/chunks/ssr/{[root-of-the-server]__029oxo_._.js → [root-of-the-server]__1feicqq._.js} +1 -1
- package/app/.next/server/chunks/ssr/[root-of-the-server]__1t063pe._.js +3 -0
- package/app/.next/server/chunks/ssr/_0epgorw._.js +3 -0
- package/app/.next/server/chunks/ssr/_1cvuhjt._.js +3 -0
- package/app/.next/server/chunks/ssr/_1n5mvo5._.js +3 -0
- package/app/.next/server/chunks/ssr/_1o94bnv._.js +1 -1
- package/app/.next/server/chunks/ssr/_next-internal_server_app_exchanges_page_actions_0hcso2x.js +3 -0
- package/app/.next/server/chunks/ssr/_next-internal_server_app_threads_[id]_page_actions_1fte2n3.js +3 -0
- package/app/.next/server/chunks/ssr/app_bots_[id]_config_page_tsx_1e0uue9._.js +3 -0
- package/app/.next/server/chunks/ssr/app_components_AgentDeckRuntime_tsx_024janf._.js +3 -0
- package/app/.next/server/chunks/ssr/app_components_ExchangeCard_tsx_1shfcgn._.js +3 -0
- package/app/.next/server/chunks/ssr/app_exchanges_page_tsx_0j-n2a1._.js +3 -0
- package/app/.next/server/chunks/ssr/node_modules_1nkgb45._.js +23 -0
- package/app/.next/server/chunks/ssr/node_modules_next_0x3i8za._.js +131 -0
- package/app/.next/server/middleware-build-manifest.js +3 -3
- package/app/.next/server/middleware.js +1 -1
- package/app/.next/server/next-font-manifest.js +1 -1
- package/app/.next/server/next-font-manifest.json +8 -0
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +1 -1
- package/app/.next/server/prefetch-hints.json +14 -0
- 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/0bhd8eso48g27.js +1 -0
- package/app/.next/static/chunks/1ku9himlsx-hn.js +1 -0
- package/app/.next/static/chunks/21aqekm5z0j47.js +1 -0
- package/app/.next/static/chunks/2a8bomryx66oj.css +3 -0
- package/app/.next/static/chunks/3230ywnpii0s6.js +3 -0
- package/app/.next/static/chunks/35l2c95bd-jud.js +1 -0
- package/app/.next/static/chunks/3cijpn6vx3yzv.js +1 -0
- package/app/.next/static/chunks/3ue9194j59kem.js +1 -0
- package/app/.next/static/chunks/44ese2s4gzze_.js +1 -0
- package/app/BUILD_INFO.json +2 -2
- package/app/package.json +1 -1
- package/app/server.js +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +35 -7
- package/dist/clients.d.ts +86 -0
- package/dist/clients.js +639 -0
- package/dist/config.d.ts +2 -1
- package/dist/config.js +7 -6
- package/dist/contract.d.ts +7 -1
- package/dist/contract.js +33 -8
- package/dist/home.d.ts +1 -1
- package/dist/home.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -3
- package/dist/managed.js +7 -0
- package/dist/product.d.ts +2 -0
- package/dist/product.js +7 -1
- package/dist/server.js +5 -4
- package/dist/upstream.js +21 -7
- package/package.json +7 -6
- package/schemas/botmancers.mcp.v2.tools.json +4565 -0
- package/skills/botmancers-collaboration/SKILL.md +114 -0
- package/skills/botmancers-collaboration/references/workflows.md +281 -0
- package/app/.next/server/chunks/[root-of-the-server]__08i4wq6._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__09d-yrq._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__0ab4e_k._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__0qozubc._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__0za34e1._.js +0 -7
- package/app/.next/server/chunks/[root-of-the-server]__10m3szc._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__19hjzs0._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__1afl75n._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__1fjpie4._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__1kvvdpx._.js +0 -7
- package/app/.next/server/chunks/[root-of-the-server]__1qanlbg._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__1qoa704._.js +0 -7
- package/app/.next/server/chunks/[root-of-the-server]__20wve4_._.js +0 -3
- package/app/.next/server/chunks/_0ggf7vy._.js +0 -3
- package/app/.next/server/chunks/_0gtqbub._.js +0 -3
- package/app/.next/server/chunks/_0i7ga8c._.js +0 -3
- package/app/.next/server/chunks/_0orubev._.js +0 -3
- package/app/.next/server/chunks/_0sfpe9z._.js +0 -3
- package/app/.next/server/chunks/_0th2j4w._.js +0 -3
- package/app/.next/server/chunks/_1ee4ej2._.js +0 -3
- package/app/.next/server/chunks/_1esxu1s._.js +0 -3
- package/app/.next/server/chunks/_1gn7eh7._.js +0 -3
- package/app/.next/server/chunks/_1gw7qwf._.js +0 -3
- package/app/.next/server/chunks/_1inyx08._.js +0 -3
- package/app/.next/server/chunks/_1kjsnlr._.js +0 -3
- package/app/.next/server/chunks/_1p8rola._.js +0 -3
- package/app/.next/server/chunks/app_api_import-capabilities_route_ts_013w1kt._.js +0 -3
- package/app/.next/server/chunks/lib_051fv4x._.js +0 -111
- package/app/.next/server/chunks/lib_07adeq3._.js +0 -111
- package/app/.next/server/chunks/lib_draft_ts_1atoius._.js +0 -3
- package/app/.next/server/chunks/ssr/_0k_7i66._.js +0 -131
- package/app/.next/server/chunks/ssr/_1flnty7._.js +0 -23
- package/app/.next/server/chunks/ssr/app_components_0bhuhd-._.js +0 -3
- package/app/.next/server/chunks/ssr/app_components_0w2_b3t._.js +0 -3
- package/app/.next/static/chunks/0774d7ob6aze_.js +0 -1
- package/app/.next/static/chunks/0d3ein53nlgja.js +0 -1
- package/app/.next/static/chunks/0qbtymorcz-l9.js +0 -3
- package/app/.next/static/chunks/3wdlh25l1vww9.js +0 -1
- package/app/.next/static/chunks/3zqbpbm93yqzh.css +0 -3
- /package/app/.next/static/{u4r8RPgEfpxk-DGXeKV6g → gh3shm8hnVqXLr75rmvsL}/_buildManifest.js +0 -0
- /package/app/.next/static/{u4r8RPgEfpxk-DGXeKV6g → gh3shm8hnVqXLr75rmvsL}/_clientMiddlewareManifest.js +0 -0
- /package/app/.next/static/{u4r8RPgEfpxk-DGXeKV6g → gh3shm8hnVqXLr75rmvsL}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module.exports=[69936,9501,e=>{"use strict";var t=e.i(62294),n=e.i(43345),i=e.i(45383),r=e.i(54799),a=e.i(62349),s=e.i(18966),o=e.i(35613),d=e.i(90027),c=e.i(63020),l=e.i(35631),u=e.i(93399),g=e.i(50081),_=e.i(16789),p=e.i(674);let f={invalid_request:400,unsupported_field:400,authority_not_allowed:403,principal_not_allowed:403,grant_required:403,grants_unavailable:503,agent_not_found:404,session_not_found:404,conversation_not_found:404,exchange_not_found:404,session_ended:409,session_not_resumable:409,source_session_busy:409,agent_unavailable:409,destination_invalid:400,recursive_exchange:403,idempotency_conflict:409,exchange_terminal:409,conflict:409,payload_too_large:413,rate_limited:429,internal_error:500,pin_not_found:404,pin_detached:409,workspace_required:409,no_eligible_session:409,session_missing:410,action_unavailable:409,approval_required:403,provider_failed:502},h=["principal_not_allowed","grant_required","grants_unavailable","agent_not_found","session_not_found","conversation_not_found","exchange_not_found","rate_limited","pin_not_found"];class m extends Error{code;notGranted;fields;recovery;constructor(e,t,n={}){super(t),this.name="ServiceApiError",this.code=e,this.notGranted=!0===n.notGranted,this.fields=n.fields,this.recovery=(0,g.recoveryFor)(e)}get status(){return f[this.code]}get denied(){return h.includes(this.code)}}let y={pin:()=>new m("pin_not_found","No pin with that reference is visible to this principal."),agent:()=>new m("agent_not_found","No Agent with that id is visible to this principal."),session:()=>new m("session_not_found","No session with that reference is visible to this principal."),conversation:()=>new m("conversation_not_found","No conversation with that id is visible to this principal."),exchange:()=>new m("exchange_not_found","No exchange with that id is visible to this principal.")};function v(e){let t=y[e]();return new m(t.code,t.message,{notGranted:!0})}function w(e){switch(e.code){case"exchange_not_found":return y.exchange();case"session_not_found":return y.session();case"agent_not_found":return y.agent();case"conversation_not_found":return y.conversation();case"invalid_transition":return new m("conflict","The exchange changed concurrently; read it and retry.");default:return e.code in f?new m(e.code,e.message):new m("invalid_request",e.message)}}let E=new Map;function b(e){if("service"!==e.kind)throw new m("principal_not_allowed","The granted service API accepts only service principals.");let t=(0,l.loadServiceGrants)();if("invalid"===t.state)throw new m("grants_unavailable","The service grants are not available; the owner must fix the grants document.");return"absent"===t.state?{principal:e,mode:"narrow",agents:E}:{principal:e,mode:"granted",agents:t.grants.get(e.id)??E}}function S(e,n,i){return"string"==typeof n&&!!e.agents.get(n)?.has(i)&&!!t.bots.getById(n)}function A(e,n,i){let r=t.bots.getById(n);if(!r)throw y.agent();if(!S(e,n,i))throw v("agent");return r}let R=Object.freeze({default:20,max:100,messagesDefault:50,messagesMax:200});function I(e,t){return t.at-e.at||t.tie-e.tie||(e.id<t.id?-1:+(e.id>t.id))}function k(e,t){return Buffer.from(JSON.stringify({s:e,a:t.at,t:t.tie,i:t.id}),"utf8").toString("base64url")}function x(e,t){let n;if(null===t||""===t)return null;let i=new m("invalid_request","cursor is not a cursor of this list.");if(t.length>1024)throw i;try{n=JSON.parse(Buffer.from(t,"base64url").toString("utf8"))}catch{throw i}if(!n||n.s!==e||"number"!=typeof n.a||"number"!=typeof n.t||"string"!=typeof n.i)throw i;return{at:n.a,tie:n.t,id:n.i}}function C(e,t=R.default,n=R.max){if(null===e||""===e)return t;if(!/^\d+$/.test(e)||1>Number(e)||Number(e)>n)throw new m("invalid_request",`limit must be an integer from 1 to ${n}.`);return Number(e)}function T(e,t,n,i,r){let a=x(e,i),s=[...t].sort((e,t)=>I(n(e),n(t))),o=a?s.filter(e=>I(n(e),a)>0):s,d=o.slice(0,r),c=o.length>r?k(e,n(d[d.length-1])):null;return{items:d,next_cursor:c}}function q(e){let n=[...e.agents.entries()].filter(([e])=>!!t.bots.getById(e)).map(([e,t])=>({agent_id:e,capabilities:l.SERVICE_CAPABILITIES.filter(e=>t.has(e))})).sort((e,t)=>e.agent_id<t.agent_id?-1:+(e.agent_id>t.agent_id));return{principal:{kind:e.principal.kind,id:e.principal.id},mode:e.mode,vocabulary:l.SERVICE_CAPABILITIES,agents:n,limits:{page:R,content_chars:o.EXCHANGE_LIMITS.instructionChars,message_content_chars:D}}}function N(e,n){let i,r=(0,a.resolveAgent)(n),o=e.agents.get(n.id)??new Set;return{agent_id:n.id,name:n.name,title:n.title,runtime:r.agent,available:r.launchable,capabilities:l.SERVICE_CAPABILITIES.filter(e=>o.has(e)),messaging:{home_session_ref:n.home_session_id??null,new_sessions_allowed:(0,s.readStoredPolicy)(n)?.allow_new_sessions===!0,default_workspace_set:!!n.default_workspace},created_at:n.created_at,last_activity_at:(i=t.default.prepare(`
|
|
2
|
+
SELECT MAX(m.created_at) AS at FROM messages m
|
|
3
|
+
JOIN conversation_participants p ON p.conversation_id = m.conversation_id AND p.participant_kind = 'bot' AND p.participant_id = ?
|
|
4
|
+
`).get(n.id),Math.max(n.created_at,i.at??0))}}function O(e,n){let i=[...e.agents.keys()].filter(t=>S(e,t,"agents:read")).map(n=>N(e,t.bots.getById(n)));return T(`agents:${e.principal.id}`,i,e=>({at:e.last_activity_at,tie:e.created_at,id:e.agent_id}),n.cursor,n.limit)}function M(e,t){return N(e,A(e,t,"agents:read"))}function P(e){let t=e.origin.conversation;return{ref:e.ref,agent:{...e.agent},title:e.title,status:e.status,resumable:e.resumable,source:e.source,state:{...e.state},created_at:e.created_at,ended_at:e.ended_at,last_activity_at:e.last_activity_at,origin:{conversation:t?{id:t.id,kind:t.kind,label:t.label}:null,work_request:e.origin.work_request},usage:{input_tokens:{...e.usage.input_tokens},output_tokens:{...e.usage.output_tokens},cost_usd:{...e.usage.cost_usd}},home:e.home,actions:e.actions}}async function L(e,n){A(e,n,"sessions:read"),await (0,_.warmAgentProvider)(t.default,n,{onlyWithSessions:!0})}function K(e,n,i){A(e,n,"sessions:read");let r=i.status??"all";if(!(0,d.isSessionFilter)(r))throw new m("invalid_request","status must be active, ended, or all.");let a=(0,u.serviceRedactor)(),s=(0,p.sessionsWithActions)(n,(0,d.listAgentSessions)(t.default,n,r)).map(e=>a.deep(P(e)));return T(`sessions:${n}:${r}`,s,e=>({at:e.last_activity_at,tie:e.created_at,id:e.ref}),i.cursor,i.limit)}function F(e,n,i){A(e,n,"sessions:read");let r=(0,d.getAgentSession)(t.default,n,i);if(!r)throw y.session();return(0,u.serviceRedactor)().deep({...P((0,p.sessionsWithActions)(n,[r])[0]),attempts:r.attempts,usage_samples:r.usage_samples.map(e=>({...e}))})}let D=16e3,G=`
|
|
5
|
+
SELECT c.id, c.type, c.bot_id, c.group_id, c.origin_kind, c.origin_id, c.created_at,
|
|
6
|
+
COALESCE((SELECT MAX(m.created_at) FROM messages m WHERE m.conversation_id = c.id), c.created_at) AS last_activity_at,
|
|
7
|
+
(SELECT COUNT(*) FROM messages m WHERE m.conversation_id = c.id) AS message_count,
|
|
8
|
+
b.name AS bot_name, g.name AS group_name
|
|
9
|
+
FROM conversations c
|
|
10
|
+
JOIN conversation_participants p ON p.conversation_id = c.id AND p.participant_kind = 'bot' AND p.participant_id = ?
|
|
11
|
+
LEFT JOIN bots b ON b.id = c.bot_id
|
|
12
|
+
LEFT JOIN groups g ON g.id = c.group_id
|
|
13
|
+
`;function $(e){return t.default.prepare("SELECT participant_kind AS kind, participant_id AS id FROM conversation_participants WHERE conversation_id = ? ORDER BY joined_at ASC, rowid ASC").all(e)}function B(e,t){return t.every(t=>"bot"===t.kind?S(e,t.id,"conversations:read"):"service"!==t.kind||t.id===e.principal.id)}function W(e,t){let n="bot"===e.type?"direct":"group"===e.type?"group":"agent",i="direct"===n?`${e.bot_name??"Agent"} thread`:"group"===n?e.group_name?`Group ${e.group_name}`:"Group thread":"Agent API conversation";return{conversation_id:e.id,type:n,label:i,participants:t,message_count:e.message_count,created_at:e.created_at,last_activity_at:e.last_activity_at}}function H(e,n,i){A(e,n,"conversations:read");let r=t.default.prepare(G).all(n).flatMap(t=>{let n=$(t.id);return B(e,n)?[W(t,n)]:[]});return T(`conversations:${n}`,r,e=>({at:e.last_activity_at,tie:e.created_at,id:e.conversation_id}),i.cursor,i.limit)}function j(e,n,i,r){A(e,n,"conversations:read");let a=t.default.prepare(`${G} WHERE c.id = ?`).get(n,i);if(!a)throw y.conversation();let s=$(a.id);if(!B(e,s))throw v("conversation");let o=`messages:${a.id}`,d=x(o,r.cursor),c=t.default.prepare(`
|
|
14
|
+
SELECT * FROM (
|
|
15
|
+
SELECT m.id, m.sender_type, m.sender_id, m.sender_kind, m.request_id, m.content, m.created_at,
|
|
16
|
+
ROW_NUMBER() OVER (ORDER BY m.rowid ASC) AS seq
|
|
17
|
+
FROM messages m WHERE m.conversation_id = ?
|
|
18
|
+
) WHERE seq < ? ORDER BY seq DESC LIMIT ?
|
|
19
|
+
`).all(a.id,d?d.at:Number.MAX_SAFE_INTEGER,r.limit+1),l=c.slice(0,r.limit).reverse(),g=(0,u.serviceRedactor)();return{...W(a,s),messages:l.map(e=>{var t,n;let i,r=g.text(e.content);return{message_id:e.id,seq:e.seq,sender:(t=e,n=a,i=t.sender_kind??("bot"===t.sender_type?"bot":"person"),t.sender_id?{kind:i,id:t.sender_id}:"bot"!==i&&n.origin_kind===i&&n.origin_id?{kind:i,id:n.origin_id}:{kind:i,id:"unknown"}),content:r.length>D?r.slice(0,D):r,truncated:r.length>D,request_id:e.request_id,created_at:e.created_at}}),next_cursor:c.length>r.limit&&l.length>0?k(o,{at:l[0].seq,tie:0,id:l[0].id}):null}}let X=["deck","deck_id","deckId","deck_name","runtime","agent","adapter","transport","model","tool_profile","toolProfile","execution_kind","executionKind","permissions","provider_session_id","external_session_id","externalSessionId","session_id","sessionId","resume","resume_session","fresh_session","external_run_id","run_id","cwd","working_directory","workspace","grant","grants","capability","capabilities","principal","requester","owner"];function U(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function Y(e,t,n){for(let i of Object.keys(e))if(!t.includes(i)){if(X.includes(i))throw new m("authority_not_allowed",`${n}${i} is chosen by Botmancers from the session and the Agent's configuration; a caller cannot set it.`);throw new m("invalid_request",`${n}${i} is not a field of this request.`)}}function V(e,t,n){if("string"!=typeof e||0===e.trim().length)throw new m("invalid_request",`${t} is required.`);if(e.length>n)throw new m("invalid_request",`${t} exceeds ${n} characters.`);return e}function J(e,t){let n=e.idempotency_key;if(void 0!==n&&"string"!=typeof n)throw new m("invalid_request","idempotency_key must be a string.");if(null!==t&&void 0!==n&&t!==n)throw new m("invalid_request","Idempotency-Key header and body idempotency_key differ.");let i=n??t??"";if(0===i.trim().length||i.length>160)throw new m("invalid_request","An idempotency key (1-160 characters) is required.");return i}function z(e,n){return t.default.prepare("SELECT * FROM session_exchanges WHERE requester_kind = ? AND requester_id = ? AND idempotency_key = ?").get(e.kind,e.id,n)}function Q(e,n,i){let a=(0,r.randomUUID)();t.default.prepare("INSERT INTO conversations (id, type, origin_kind, origin_id, created_at) VALUES (?, ?, ?, ?, ?)").run(a,"agent",e.kind,e.id,i);let s=t.default.prepare("INSERT OR IGNORE INTO conversation_participants (conversation_id, participant_kind, participant_id, joined_at) VALUES (?, ?, ?, ?)");return s.run(a,e.kind,e.id,i),s.run(a,"bot",n,i),a}function Z(e){return t.default.prepare("SELECT * FROM session_bindings WHERE id = ?").get(e)}function ee(e,n){try{return t.default.transaction(()=>{let{input:t,afterCreate:r}=e(),a=i.exchanges.create(t);return a.created&&r&&r(a.exchange),n?.(a.exchange),a}).immediate()}catch(e){if(e instanceof c.ExchangeError)throw w(e);throw e}}function et(e,t){if(!U(e))throw new m("invalid_request","The body must be a JSON object.");Y(e,["content","idempotency_key"],"");let n=J(e,t);return{content:V(e.content,"content",o.EXCHANGE_LIMITS.instructionChars),idempotencyKey:n}}function en(e,n,a,s){let o=Z(n);if(!o){let i=t.default.prepare("SELECT agent_id FROM provider_sessions WHERE id = ? AND binding_id IS NULL").get(n);if(i&&S(e,i.agent_id,"sessions:message"))throw new m("session_not_resumable","This session is not reachable through session messages.");throw y.session()}if(!S(e,o.agent_id,"sessions:message"))throw v("session");let d=e.principal,c=`${l.MESSAGE_KEY_PREFIX}${a.idempotencyKey}`,{exchange:u,created:g}=ee(()=>{let e=Date.now(),n=z(d,c),i=t.default.prepare(`
|
|
20
|
+
SELECT origin_conversation_id FROM session_exchanges
|
|
21
|
+
WHERE requester_kind = ? AND requester_id = ? AND source_binding_id = ? AND mode = 'ask' AND idempotency_key LIKE 'message:%'
|
|
22
|
+
ORDER BY created_at ASC, id ASC LIMIT 1
|
|
23
|
+
`).get(d.kind,d.id,o.id),s=n?.origin_conversation_id??i?.origin_conversation_id??Q(d,o.agent_id,e);return{input:{requester:d,serviceGrant:!0,idempotencyKey:c,mode:"ask",originConversationId:s,sourceAgentId:o.agent_id,sessionRef:o.id,instruction:a.content,now:e},afterCreate:n=>{t.default.prepare("INSERT INTO messages (id, conversation_id, sender_type, sender_id, sender_kind, request_id, content, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)").run((0,r.randomUUID)(),n.origin_conversation_id,"user",d.id,d.kind,n.source_request_id,a.content,e)}}},s),_=(0,i.dispatchExchange)(u.id),p=u.source_request_id?t.default.prepare("SELECT state FROM work_requests WHERE id = ?").get(u.source_request_id):void 0,f=t.default.prepare("SELECT id FROM messages WHERE conversation_id = ? AND request_id = ? AND sender_kind = ? ORDER BY rowid ASC LIMIT 1").get(u.origin_conversation_id,u.source_request_id,d.kind);return{accepted:{session_ref:o.id,agent_id:o.agent_id,exchange_id:u.id,request_id:u.source_request_id,conversation_id:u.origin_conversation_id,message_id:f?.id??null,state:p?(0,i.apiStateOf)(p.state):"accepted",replayed:!g},dispatched:_}}function ei(e,t,n){return t.requester_kind===e.principal.kind&&t.requester_id===e.principal.id&&S(e,t.source_agent_id,n)&&(null===t.destination_agent_id||S(e,t.destination_agent_id,n))}function er(e,t,n){let r=i.exchanges.get(t);if(!r)throw y.exchange();if(!ei(e,r,n))throw v("exchange");return r}let ea=e=>e.idempotency_key.startsWith(l.MESSAGE_KEY_PREFIX)?"session_message":"exchange";function es(e,t){let n=t.idempotency_key.startsWith(l.MESSAGE_KEY_PREFIX)?t.idempotency_key.slice(l.MESSAGE_KEY_PREFIX.length):t.idempotency_key.startsWith(l.EXCHANGE_KEY_PREFIX)?t.idempotency_key.slice(l.EXCHANGE_KEY_PREFIX.length):t.idempotency_key;return(0,u.serviceRedactor)().deep({...e,kind:ea(t),idempotency_key:n})}function eo(e){return{id:e.id,kind:ea(e),mode:e.mode,state:e.state,source:{agent_id:e.source_agent_id,session_ref:e.source_binding_id},destination:e.destination_agent_id?{agent_id:e.destination_agent_id,session_ref:e.destination_binding_id}:null,failure:"failed"===e.state?{code:e.failure_code??"failed"}:null,created_at:e.created_at,updated_at:e.updated_at,terminal_at:e.terminal_at}}function ed(e,t){let n=i.exchanges.require(t);return ei(e,n,"exchanges:read")?es((0,i.getExchangeView)(t),n):eo(n)}function ec(e,n){let i=t.default.prepare("SELECT * FROM session_exchanges WHERE requester_kind = ? AND requester_id = ?").all(e.principal.kind,e.principal.id).filter(t=>ei(e,t,"exchanges:read")).map(eo);return T(`exchanges:${e.principal.id}`,i,e=>({at:e.updated_at,tie:e.created_at,id:e.id}),n.cursor,n.limit)}function el(e,t){let n=er(e,t,"exchanges:read");return es((0,i.getExchangeView)(n.id),n)}let eu=["exchange_id","parent_exchange_id"];function eg(e,t){if(!U(e))throw new m("invalid_request","The body must be a JSON object.");if(eu.some(t=>t in e))throw new m("recursive_exchange","An exchange cannot be started from another exchange.");if(Y(e,["mode","idempotency_key","origin_conversation_id","source","destination","instruction"],""),"ask"!==e.mode&&"continue"!==e.mode)throw new m("invalid_request",'mode must be "ask" or "continue".');if(!U(e.source))throw new m("invalid_request","source must be one object { session_ref, agent_id? }.");Y(e.source,["session_ref","agent_id"],"source.");let n=null;if(void 0!==e.destination&&null!==e.destination){if(!U(e.destination))throw new m("destination_invalid","destination must be one object { agent_id, conversation_id? }.");Y(e.destination,["agent_id","conversation_id"],"destination."),n=e.destination}let i=(e,t)=>null==e?null:V(e,t,200);return{mode:e.mode,idempotencyKey:J(e,t),originConversationId:i(e.origin_conversation_id,"origin_conversation_id"),sourceAgentId:i(e.source.agent_id,"source.agent_id"),sessionRef:V(e.source.session_ref,"source.session_ref",200),destinationAgentId:n?i(n.agent_id,"destination.agent_id"):null,destinationConversationId:n?i(n.conversation_id,"destination.conversation_id"):null,instruction:V(e.instruction,"instruction",o.EXCHANGE_LIMITS.instructionChars)}}function e_(e,n,r){let a=Z(n.sessionRef);if(!a||null!==n.sourceAgentId&&n.sourceAgentId!==a.agent_id)throw y.session();if(!S(e,a.agent_id,"exchanges:create"))throw v("session");if("ask"===n.mode&&(null!==n.destinationAgentId||null!==n.destinationConversationId))throw new m("destination_invalid","An Ask returns to the origin conversation and takes no destination.");if("continue"===n.mode){if(null===n.destinationAgentId)throw new m("destination_invalid","A Continue names destination.agent_id.");if(!t.bots.getById(n.destinationAgentId))throw y.agent();if(!S(e,n.destinationAgentId,"exchanges:create"))throw v("agent")}let s=e.principal,o=`${l.EXCHANGE_KEY_PREFIX}${n.idempotencyKey}`,{exchange:d,created:c}=ee(()=>{let e=Date.now(),t=z(s,o),i=n.originConversationId??t?.origin_conversation_id??Q(s,a.agent_id,e),r="continue"!==n.mode?null:n.destinationConversationId??t?.destination_conversation_id??Q(s,n.destinationAgentId,e);return{input:{requester:s,serviceGrant:!0,idempotencyKey:o,mode:n.mode,originConversationId:i,sourceAgentId:a.agent_id,sessionRef:a.id,destinationAgentId:n.destinationAgentId,destinationConversationId:r,instruction:n.instruction,now:e}}},r),u=(0,i.dispatchExchange)(d.id);return{exchange:ed(e,d.id),created:c,dispatched:u}}function ep(e){try{return(0,c.cancelReasonFromBody)(e)}catch(e){if(e instanceof c.ExchangeError)throw w(e);throw e}}async function ef(e,t,n,r){let a=er(e,t,"exchanges:create");try{let{replayed:t}=await (0,i.cancelExchangeCommand)(a.id,e.principal,n,r);return{exchange:ed(e,a.id),replayed:t}}catch(e){if(e instanceof c.ExchangeError)throw w(e);throw e}}let eh=e=>"resume"===e?"sessions:resume":"sessions:message";function em(e){if(e instanceof p.PinError){if("session_not_found"===e.code)throw y.session();if("agent_not_found"===e.code)throw y.agent();if("pin_not_found"===e.code)throw y.pin();if("conversation_not_found"===e.code)throw y.conversation();throw new m(e.code,e.message)}if(e instanceof c.ExchangeError)throw w(e);throw e}function ey(e,t){let n;try{n=(0,p.requirePin)(e.principal,t)}catch(e){em(e)}if(!S(e,n.agent_id,eh(n.action)))throw v("pin");return n}function ev(e){return(0,u.serviceRedactor)().deep((0,p.pinView)(e))}function ew(e,t){return et(e,t)}function eE(e,t){if(!U(e))throw new m("invalid_request","The body must be a JSON object.");if(Y(e,["action","approve_write","replace_pin_ref","idempotency_key"],""),"ask"!==e.action&&"resume"!==e.action)throw new m("invalid_request",'action must be "ask" or "resume".');if(void 0!==e.approve_write&&"boolean"!=typeof e.approve_write)throw new m("invalid_request","approve_write must be true or false.");return{action:e.action,approveWrite:!0===e.approve_write,replacePinRef:void 0===e.replace_pin_ref||null===e.replace_pin_ref?null:V(e.replace_pin_ref,"replace_pin_ref",200),idempotencyKey:J(e,t)}}async function eb(e,t,n,i){A(e,t,"sessions:message");try{let r=await (0,p.messageAgent)({requester:e.principal,agentId:t,content:n.content,idempotencyKey:n.idempotencyKey,mayStart:S(e,t,"sessions:start"),onResolved:e=>i.onTarget({agentId:e.agentId,sessionRef:e.sessionRef,capability:"started"===e.resolution?"sessions:start":"sessions:message",action:"started"===e.resolution?"agents.message.start":"agents.message"}),onCommit:()=>i.onCommit()});return{body:{pin:ev(r.pin),turn:(0,u.serviceRedactor)().deep(r.turn),resolution:r.resolution,replayed:r.replayed},settled:r.settled}}catch(e){em(e)}}async function eS(e,t,n,i){let r=(0,p.sessionOwner)(t);if(!r)throw y.session();let a=eh(n.action);if(i.onTarget({agentId:r,sessionRef:t,capability:a,action:"resume"===n.action?"pins.resume":"pins.ask"}),!S(e,r,a))throw v("session");n.replacePinRef&&ey(e,n.replacePinRef);try{let{pin:r,created:a,replaced:s}=await (0,p.createPin)({requester:e.principal,sessionRef:t,action:n.action,approveWrite:n.approveWrite,idempotencyKey:n.idempotencyKey,replacePinRef:n.replacePinRef,onCommit:()=>i.onCommit()});return{pin:ev(r),replaced_pin_ref:s?.id??null,replayed:!a}}catch(e){em(e)}}async function eA(e,t,n,i){let r=ey(e,t);i.onTarget({agentId:r.agent_id,sessionRef:r.session_ref,capability:eh(r.action),action:"pins.send"});try{let t=await (0,p.sendPinTurn)({requester:e.principal,pinRef:r.id,content:n.content,idempotencyKey:n.idempotencyKey,onCommit:()=>i.onCommit()});return{body:{pin:ev(t.pin),turn:(0,u.serviceRedactor)().deep(t.turn),replayed:t.replayed},settled:t.settled}}catch(e){em(e)}}async function eR(e,t,n){let i=ey(e,t);n.onTarget({agentId:i.agent_id,sessionRef:i.session_ref,capability:eh(i.action),action:"pins.read"});try{let{pin:t,turns:n}=await (0,p.readPin)(e.principal,i.id);return{pin:ev(t),turns:(0,u.serviceRedactor)().deep(n)}}catch(e){em(e)}}function eI(e,t,n){let i=ey(e,t);n.onTarget({agentId:i.agent_id,sessionRef:i.session_ref,capability:eh(i.action),action:"pins.detach"});try{let{pin:t,replayed:r}=(0,p.detachPin)(e.principal,i.id,{onCommit:()=>n.onCommit()});return{pin:ev(t),replayed:r}}catch(e){em(e)}}e.s(["AUTHORITY_FIELDS",0,X,"MESSAGE_CONTENT_LIMIT",0,D,"PAGE_LIMITS",0,R,"ServiceApiError",0,m,"cancelServiceExchange",0,ef,"capabilitiesView",0,q,"createServiceExchange",0,e_,"detachServicePin",0,eI,"getServiceAgent",0,M,"getServiceConversation",0,j,"getServiceExchange",0,el,"getServiceSession",0,F,"holds",0,S,"listServiceAgents",0,O,"listServiceConversations",0,H,"listServiceExchanges",0,ec,"listServiceSessions",0,K,"messageServiceAgent",0,eb,"parseAgentMessageBody",0,ew,"parseCancelBody",0,ep,"parseLimit",0,C,"parsePinBody",0,eE,"parseServiceExchangeBody",0,eg,"parseSessionMessageBody",0,et,"pinServiceSession",0,eS,"readServicePin",0,eR,"sendServicePinMessage",0,eA,"sendServiceSessionMessage",0,en,"serviceContext",0,b,"warmServiceAgent",0,L],9501);let ek="BOTMANCERS_SERVICE_API_CALLS_PER_MINUTE",ex=new Map;async function eC(e){let t=await eT(e);try{return JSON.parse(t)}catch{throw new m("invalid_request","The body must be a JSON object.")}}async function eT(e){let t=new m("payload_too_large","The request body is too large."),n=e.headers.get("content-length");if(null!==n&&!(/^\d+$/.test(n.trim())&&65536>=Number(n)))throw t;if(!e.body)return"";let i=e.body.getReader(),r=[],a=0;for(;;){let{done:e,value:n}=await i.read();if(e)break;if((a+=n.byteLength)>65536)throw await i.cancel().catch(()=>{}),t;r.push(n)}return Buffer.concat(r).toString("utf8")}function eq(e,t,n,i={}){return Response.json({error:{code:t,message:n}},{status:e,headers:i})}let eN=(e,t=200)=>({status:t,body:e});function eO(e,t,n,i={},r,a){return{status:e,body:{error:{code:t,message:n,...r?{fields:r}:{},...a?{recovery:a}:{}}},headers:i}}async function eM(e,n,i,r){let a,s,o={kind:n.targetKind,targetRef:n.targetRef??null,agentId:n.agentId??null},d=(i,r)=>t.serviceAudit.append({principal:e,operation:o.operation??n.operation,capability:o.capability??n.capability,targetKind:o.kind,targetRef:o.targetRef,agentId:o.agentId,outcome:i,code:r}),c=!1,l=null;try{if("service"!==e.kind)throw new m("principal_not_allowed","The granted service API accepts only service principals.");let t=function(e,t=Date.now()){let n=`${e.kind}:${e.id}`,i=(ex.get(n)??[]).filter(e=>e>t-6e4),r=function(){let e=process.env[ek];if(void 0===e||""===e.trim())return 120;let t=Number(e.trim());return Number.isInteger(t)&&t>0?t:(console.error(`${ek} must be a positive integer; using 120.`),120)}();return i.length>=r?(ex.set(n,i),Math.max(1,Math.ceil((i[i.length-r]+6e4-t)/1e3))):(i.push(t),ex.set(n,i),null)}(e);if(null!==t)l="rate_limited",s="denied",a=eO(429,"rate_limited","Too many calls; retry later.",{"Retry-After":String(t)});else{let t=b(e);r?.(t),a=await i(t,o,()=>{d("allowed",null),c=!0}),s="allowed"}}catch(e){e instanceof m?(s=e.denied?"denied":"rejected",l=e.notGranted?"not_granted":e.code,a=eO(e.status,e.code,e.message,{},e.fields,e.recovery)):(console.error("Service API error:",e instanceof Error?e.message:"unknown error"),s="error",l="internal_error",a=eO(500,"internal_error","The request could not be processed."))}if(c&&"allowed"===s)return a;try{d(s,l)}catch(e){return console.error("Service audit append failed:",e instanceof Error?e.message:"unknown error"),eO(500,"internal_error","The request could not be processed.")}return a}async function eP(e,t){let r;try{r=await (0,n.authenticate)(e)}catch(e){if(e instanceof i.AgentApiError)return eq(e.status,e.code,e.message);return console.error("Service API authentication error:",e instanceof Error?e.message:"unknown error"),eq(500,"internal_error","The request could not be processed.")}let a=await t(r);return Response.json(a.body,{status:a.status,headers:a.headers??{}})}function eL(e){let n=t.default.prepare("SELECT agent_id FROM session_bindings WHERE id = ?").get(e);return n?.agent_id??null}function eK(e,t){return{onTarget:t=>{e.kind=t.sessionRef?"session":"agent",e.targetRef=t.sessionRef??t.agentId,e.agentId=t.agentId,e.capability=t.capability,e.operation=t.action},onCommit:t}}function eF(e){if(e.length>200)return null;let n=t.default.prepare("SELECT source_agent_id FROM session_exchanges WHERE id = ?").get(e);return n?.source_agent_id??null}let eD={capabilities:(e,t)=>eM(e,{operation:"capabilities.read",capability:"discovery",targetKind:"grants"},e=>eN(q(e)),t),listAgents:(e,t,n)=>eM(e,{operation:"agents.list",capability:"agents:read",targetKind:"agent"},e=>eN(O(e,{cursor:t.cursor,limit:C(t.limit)})),n),getAgent:(e,t,n)=>eM(e,{operation:"agents.read",capability:"agents:read",targetKind:"agent",targetRef:t,agentId:t},e=>eN(M(e,t)),n),listSessions:(e,t,n,i)=>eM(e,{operation:"sessions.list",capability:"sessions:read",targetKind:"agent",targetRef:t,agentId:t},async e=>(await L(e,t),eN(K(e,t,{cursor:n.cursor,limit:C(n.limit),status:n.status}))),i),getSession:(e,t,n,i)=>eM(e,{operation:"sessions.read",capability:"sessions:read",targetKind:"session",targetRef:n,agentId:t},async e=>(await L(e,t),eN(F(e,t,n))),i),listConversations:(e,t,n,i)=>eM(e,{operation:"conversations.list",capability:"conversations:read",targetKind:"agent",targetRef:t,agentId:t},e=>eN(H(e,t,{cursor:n.cursor,limit:C(n.limit)})),i),getConversation:(e,t,n,i,r)=>eM(e,{operation:"conversations.read",capability:"conversations:read",targetKind:"conversation",targetRef:n,agentId:t},e=>eN(j(e,t,n,{cursor:i.cursor,limit:C(i.limit,R.messagesDefault,R.messagesMax)})),r),sendSessionMessage:(e,t,n,i,r)=>eM(e,{operation:"sessions.message",capability:"sessions:message",targetKind:"session",targetRef:t},async(e,r,a)=>{t.length<=200&&(r.agentId=eL(t));let{accepted:s}=en(e,t,et(await n(),i),e=>{r.agentId=e.source_agent_id,a()});return eN(s,s.replayed?200:202)},r),listExchanges:(e,t,n)=>eM(e,{operation:"exchanges.list",capability:"exchanges:read",targetKind:"exchange"},e=>eN(ec(e,{cursor:t.cursor,limit:C(t.limit)})),n),createExchange:(e,t,n,i)=>eM(e,{operation:"exchanges.create",capability:"exchanges:create",targetKind:"session"},async(e,i,r)=>{let a,s,o=await t();Object.assign(i,"string"!=typeof(s=(a=o&&"object"==typeof o?o.source:void 0)&&"object"==typeof a?a.session_ref:void 0)||0===s.length?{}:{targetRef:s,agentId:s.length<=200?eL(s):null});let{exchange:d,created:c}=e_(e,eg(o,n),e=>{i.kind="exchange",i.targetRef=e.id,i.agentId=e.source_agent_id,r()});return eN({exchange:d,replayed:!c},c?201:200)},i),getExchange:(e,t,n)=>eM(e,{operation:"exchanges.read",capability:"exchanges:read",targetKind:"exchange",targetRef:t},(e,n)=>{n.agentId=eF(t);let i=el(e,t);return n.agentId=i.source.agent_id,eN(i)},n),cancelExchange:(e,t,n,i)=>eM(e,{operation:"exchanges.cancel",capability:"exchanges:create",targetKind:"exchange",targetRef:t},async(e,i,r)=>{i.agentId=eF(t);let a=await n();return eN(await ef(e,t,a,e=>{i.agentId=e.source_agent_id,r()}))},i),messageAgent:(e,t,n,i,r)=>eM(e,{operation:"agents.message",capability:"sessions:message",targetKind:"agent",targetRef:t,agentId:t},async(e,r,a)=>{let s=ew(await n(),i),{body:o}=await eb(e,t,s,eK(r,a));return eN(o,o.replayed?200:202)},r),pinSession:(e,t,n,i,r)=>eM(e,{operation:"pins.create",capability:"sessions:message",targetKind:"session",targetRef:t},async(e,r,a)=>{let s=eE(await n(),i),o=await eS(e,t,s,eK(r,a));return eN(o,o.replayed?200:201)},r),readPin:(e,t,n)=>eM(e,{operation:"pins.read",capability:"sessions:message",targetKind:"session"},async(e,n)=>eN(await eR(e,t,eK(n,()=>{}))),n),sendToPin:(e,t,n,i,r)=>eM(e,{operation:"pins.send",capability:"sessions:message",targetKind:"session"},async(e,r,a)=>{let s=ew(await n(),i),{body:o}=await eA(e,t,s,eK(r,a));return eN(o,o.replayed?200:202)},r),detachPin:(e,t,n)=>eM(e,{operation:"pins.detach",capability:"sessions:message",targetKind:"session"},(e,n,i)=>eN(eI(e,t,eK(n,i))),n)};function eG(e){let t=new URL(e.url).searchParams;return{cursor:t.get("cursor"),limit:t.get("limit"),get:e=>t.get(e)}}e.s(["handleCancelExchange",0,function(e,t){return eP(e,n=>eD.cancelExchange(n,t,async()=>ep(await eT(e))))},"handleCreateExchange",0,function(e){return eP(e,t=>eD.createExchange(t,()=>eC(e),e.headers.get("idempotency-key")))},"handleDetachPin",0,function(e,t){return eP(e,e=>eD.detachPin(e,t))},"handleGetAgent",0,function(e,t){return eP(e,e=>eD.getAgent(e,t))},"handleGetCapabilities",0,function(e){return eP(e,e=>eD.capabilities(e))},"handleGetConversation",0,function(e,t,n){return eP(e,i=>eD.getConversation(i,t,n,eG(e)))},"handleGetExchange",0,function(e,t){return eP(e,e=>eD.getExchange(e,t))},"handleGetSession",0,function(e,t,n){return eP(e,e=>eD.getSession(e,t,n))},"handleListAgents",0,function(e){return eP(e,t=>eD.listAgents(t,eG(e)))},"handleListConversations",0,function(e,t){return eP(e,n=>eD.listConversations(n,t,eG(e)))},"handleListExchanges",0,function(e){return eP(e,t=>eD.listExchanges(t,eG(e)))},"handleListSessions",0,function(e,t){let n=eG(e);return eP(e,e=>eD.listSessions(e,t,{cursor:n.cursor,limit:n.limit,status:n.get("status")}))},"handleMessageAgent",0,function(e,t){return eP(e,n=>eD.messageAgent(n,t,()=>eC(e),e.headers.get("idempotency-key")))},"handlePinSession",0,function(e,t){return eP(e,n=>eD.pinSession(n,t,()=>eC(e),e.headers.get("idempotency-key")))},"handleReadPin",0,function(e,t){return eP(e,e=>eD.readPin(e,t))},"handleSendSessionMessage",0,function(e,t){return eP(e,n=>eD.sendSessionMessage(n,t,()=>eC(e),e.headers.get("idempotency-key")))},"handleSendToPin",0,function(e,t){return eP(e,n=>eD.sendToPin(n,t,()=>eC(e),e.headers.get("idempotency-key")))},"serviceOperations",0,eD],69936)}];
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=lib_service-api-http_ts_0xzqhny._.js.map
|
|
@@ -0,0 +1,20 @@
|
|
|
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 +1,3 @@
|
|
|
1
1
|
module.exports=[54799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},70406,(a,b,c)=>{b.exports=a.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(a,b,c)=>{b.exports=a.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))},14747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},14465,(a,b,c)=>{(()=>{"use strict";var a={86:a=>{a.exports=function(a,b){return"string"==typeof a?g(a):"number"==typeof a?f(a,b):null},a.exports.format=f,a.exports.parse=g;var b=/\B(?=(\d{3})+(?!\d))/g,c=/(?:\.0*|(\.[^0]+)0+)$/,d={b:1,kb:1024,mb:1048576,gb:0x40000000,tb:0x10000000000,pb:0x4000000000000},e=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function f(a,e){if(!Number.isFinite(a))return null;var f=Math.abs(a),g=e&&e.thousandsSeparator||"",h=e&&e.unitSeparator||"",i=e&&void 0!==e.decimalPlaces?e.decimalPlaces:2,j=!!(e&&e.fixedDecimals),k=e&&e.unit||"";k&&d[k.toLowerCase()]||(k=f>=d.pb?"PB":f>=d.tb?"TB":f>=d.gb?"GB":f>=d.mb?"MB":f>=d.kb?"KB":"B");var l=(a/d[k.toLowerCase()]).toFixed(i);return j||(l=l.replace(c,"$1")),g&&(l=l.split(".").map(function(a,c){return 0===c?a.replace(b,g):a}).join(".")),l+h+k}function g(a){if("number"==typeof a&&!isNaN(a))return a;if("string"!=typeof a)return null;var b,c=e.exec(a),f="b";return c?(b=parseFloat(c[1]),f=c[4].toLowerCase()):(b=parseInt(a,10),f="b"),Math.floor(d[f]*b)}}},c={};function d(b){var e=c[b];if(void 0!==e)return e.exports;var f=c[b]={exports:{}},g=!0;try{a[b](f,f.exports,d),g=!1}finally{g&&delete c[b]}return f.exports}d.ab="/ROOT/node_modules/next/dist/compiled/bytes/",b.exports=d(86)})()},24951,(a,b,c)=>{"use strict";b.exports=a.r(18622)},7997,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].ReactJsxRuntime},11857,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].ReactServerDOMTurbopackServer},717,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].React}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__03186rx._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},13199,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/exchanges/page.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/exchanges/page.tsx","default")},45310,a=>{"use strict";var b=a.i(13199);a.n(b)},38245,function(a){a.n(a.i(45310))},6675,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(70864)),f=(0,b.instrumentModuleGetter)(()=>a.r(43619)),g=(0,b.instrumentModuleGetter)(()=>a.r(13718)),h=(0,b.instrumentModuleGetter)(()=>a.r(18198)),i=(0,b.instrumentModuleGetter)(()=>a.r(62212)),j=["",{children:["exchanges",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(38245)),"[project]/app/exchanges/page.tsx"]},[]]},{metadata:{}},[]]},{layout:[e,"[project]/app/layout.tsx"],"not-found":[f,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[g,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[h,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[i,"[project]/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],k=a.r.bind(a),l=a.l.bind(a),m=(0,c.createAppPageEntrypoint)({tree:j,page:"/exchanges/page",pathname:"/exchanges",require:k,loadChunk:l,interopDefault:d.interopDefault}),n=m.__next_app__,o=m.routeModule,p=m.handler;a.s(["__next_app__",0,n,"handler",0,p,"routeModule",0,o],8469),a.i(8469);var q=a.i(22922);a.s(["ClientPageRoot",()=>q.ClientPageRoot,"ClientSegmentRoot",()=>q.ClientSegmentRoot,"Fragment",()=>q.Fragment,"HTTPAccessFallbackBoundary",()=>q.HTTPAccessFallbackBoundary,"InstantValidation",()=>q.InstantValidation,"LayoutRouter",()=>q.LayoutRouter,"LoadingBoundaryProvider",()=>q.LoadingBoundaryProvider,"Postpone",()=>q.Postpone,"RenderFromTemplateContext",()=>q.RenderFromTemplateContext,"RootLayoutBoundary",()=>q.RootLayoutBoundary,"SegmentViewNode",()=>q.SegmentViewNode,"SegmentViewStateNode",()=>q.SegmentViewStateNode,"__next_app__",0,n,"captureOwnerStack",()=>q.captureOwnerStack,"collectPrefetchHints",()=>q.collectPrefetchHints,"collectSegmentData",()=>q.collectSegmentData,"createElement",()=>q.createElement,"createMetadataComponents",()=>q.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>q.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>q.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>q.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>q.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>q.createTemporaryReferenceSet,"decodeAction",()=>q.decodeAction,"decodeFormState",()=>q.decodeFormState,"decodeReply",()=>q.decodeReply,"handler",0,p,"isEmptyHTMLPrelude",()=>q.isEmptyHTMLPrelude,"patchFetch",()=>q.patchFetch,"preconnect",()=>q.preconnect,"preloadFont",()=>q.preloadFont,"preloadStyle",()=>q.preloadStyle,"prerender",()=>q.prerender,"prerenderToNodeStream",()=>q.prerenderToNodeStream,"renderToPipeableStream",()=>q.renderToPipeableStream,"renderToReadableStream",()=>q.renderToReadableStream,"routeModule",0,o,"serverHooks",()=>q.serverHooks,"taintObjectReference",()=>q.taintObjectReference],6675)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__03xw2d9._.js.map
|
|
@@ -30,4 +30,4 @@ module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/ap
|
|
|
30
30
|
body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }
|
|
31
31
|
`.replace(/\n\s*/g,"");function i(){return(0,f.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:g.icon,children:(0,f.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("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)},40622,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return g}}),a.r(33354);let d=a.r(87924);a.r(72131);let e=a.r(51234),f=a.r(57068),g=function({error:a}){let b=a?.digest,c=!!b;return(0,e.handleISRError)({error:a}),(0,d.jsxs)("html",{id:"__next_error__",children:[(0,d.jsx)("head",{children:(0,d.jsx)("style",{dangerouslySetInnerHTML:{__html:f.errorThemeCss}})}),(0,d.jsxs)("body",{children:[(0,d.jsx)("div",{style:f.errorStyles.container,children:(0,d.jsxs)("div",{style:f.errorStyles.card,children:[(0,d.jsx)(f.WarningIcon,{}),(0,d.jsx)("h1",{style:f.errorStyles.title,children:"This page couldn’t load"}),(0,d.jsx)("p",{style:f.errorStyles.message,children:c?"A server error occurred. Reload to try again.":"Reload to try again, or go back."}),(0,d.jsxs)("div",{style:f.errorStyles.buttonGroup,children:[(0,d.jsx)("form",{style:f.errorStyles.form,children:(0,d.jsx)("button",{type:"submit",style:f.errorStyles.button,children:"Reload"})}),!c&&(0,d.jsx)("button",{type:"button",style:f.errorStyles.buttonSecondary,onClick:()=>{window.history.length>1?window.history.back():window.location.href="/"},children:"Back"})]})]})}),b&&(0,d.jsxs)("p",{style:f.errorStyles.digestFooter,children:["ERROR ",b]})]})]})};("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)},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)},42602,(a,b,c)=>{"use strict";b.exports=a.r(18622)},9270,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.AppRouterContext},36313,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.HooksClientContext},18341,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.ServerInsertedHtml},35112,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactDOM},87924,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactJsxRuntime},38783,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactServerDOMTurbopackClient},72131,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].React}];
|
|
32
32
|
|
|
33
|
-
//# sourceMappingURL=%5Broot-of-the-server%
|
|
33
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0zzcbqg._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(a,b,c)=>{b.exports=a.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},42602,(a,b,c)=>{"use strict";b.exports=a.r(18622)},9270,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.AppRouterContext},36313,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.HooksClientContext},18341,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.ServerInsertedHtml},35112,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactDOM},87924,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactJsxRuntime},38783,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactServerDOMTurbopackClient},72131,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].React}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__1feicqq._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},76684,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/threads/[id]/page.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/threads/[id]/page.tsx","default")},2102,a=>{"use strict";var b=a.i(76684);a.n(b)},34611,function(a){a.n(a.i(2102))},95091,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(70864)),f=(0,b.instrumentModuleGetter)(()=>a.r(43619)),g=(0,b.instrumentModuleGetter)(()=>a.r(13718)),h=(0,b.instrumentModuleGetter)(()=>a.r(18198)),i=(0,b.instrumentModuleGetter)(()=>a.r(62212)),j=["",{children:["threads",{children:["[id]",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(34611)),"[project]/app/threads/[id]/page.tsx"]},[]]},{metadata:{}},[]]},{metadata:{}},[]]},{layout:[e,"[project]/app/layout.tsx"],"not-found":[f,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[g,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[h,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[i,"[project]/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],k=a.r.bind(a),l=a.l.bind(a),m=(0,c.createAppPageEntrypoint)({tree:j,page:"/threads/[id]/page",pathname:"/threads/[id]",require:k,loadChunk:l,interopDefault:d.interopDefault}),n=m.__next_app__,o=m.routeModule,p=m.handler;a.s(["__next_app__",0,n,"handler",0,p,"routeModule",0,o],99638),a.i(99638);var q=a.i(22922);a.s(["ClientPageRoot",()=>q.ClientPageRoot,"ClientSegmentRoot",()=>q.ClientSegmentRoot,"Fragment",()=>q.Fragment,"HTTPAccessFallbackBoundary",()=>q.HTTPAccessFallbackBoundary,"InstantValidation",()=>q.InstantValidation,"LayoutRouter",()=>q.LayoutRouter,"LoadingBoundaryProvider",()=>q.LoadingBoundaryProvider,"Postpone",()=>q.Postpone,"RenderFromTemplateContext",()=>q.RenderFromTemplateContext,"RootLayoutBoundary",()=>q.RootLayoutBoundary,"SegmentViewNode",()=>q.SegmentViewNode,"SegmentViewStateNode",()=>q.SegmentViewStateNode,"__next_app__",0,n,"captureOwnerStack",()=>q.captureOwnerStack,"collectPrefetchHints",()=>q.collectPrefetchHints,"collectSegmentData",()=>q.collectSegmentData,"createElement",()=>q.createElement,"createMetadataComponents",()=>q.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>q.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>q.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>q.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>q.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>q.createTemporaryReferenceSet,"decodeAction",()=>q.decodeAction,"decodeFormState",()=>q.decodeFormState,"decodeReply",()=>q.decodeReply,"handler",0,p,"isEmptyHTMLPrelude",()=>q.isEmptyHTMLPrelude,"patchFetch",()=>q.patchFetch,"preconnect",()=>q.preconnect,"preloadFont",()=>q.preloadFont,"preloadStyle",()=>q.preloadStyle,"prerender",()=>q.prerender,"prerenderToNodeStream",()=>q.prerenderToNodeStream,"renderToPipeableStream",()=>q.renderToPipeableStream,"renderToReadableStream",()=>q.renderToReadableStream,"routeModule",0,o,"serverHooks",()=>q.serverHooks,"taintObjectReference",()=>q.taintObjectReference],95091)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__1t063pe._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[63718,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(38246),e=a.i(50944),f=a.i(27828);a.s(["default",0,function(){let a=String((0,e.useParams)().id??""),[g,h]=(0,c.useState)(null),[i,j]=(0,c.useState)([]),[k,l]=(0,c.useState)([]),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(0),q=(0,c.useRef)(null);(0,c.useEffect)(()=>{q.current=new URLSearchParams(window.location.search).get("exchange")},[]),(0,c.useEffect)(()=>{if(!a)return;let b=!1,c=async()=>{try{let[c,d,e]=await Promise.all([fetch(`/api/conversations/${encodeURIComponent(a)}`,{cache:"no-store"}),fetch(`/api/conversations/${encodeURIComponent(a)}/messages`,{cache:"no-store"}),fetch(`/api/exchanges?conversation=${encodeURIComponent(a)}`,{cache:"no-store"})]);if(b)return;if(!c.ok)return void n(404===c.status?"This thread no longer exists.":"Could not load this thread.");let f=await c.json(),g=await d.json().catch(()=>null),i=await e.json().catch(()=>null);if(b)return;let k=f?.details??null,m=Array.isArray(k?.members)?k.members.map(a=>a?.name).filter(Boolean):[];h({label:k?.name?`Group ${k.name}`:"Group thread",members:m}),d.ok&&Array.isArray(g)&&j(g),e.ok&&Array.isArray(i?.exchanges)&&l(i.exchanges),n("")}catch{b||n("Could not load this thread.")}};c();let d=setInterval(c,2e3);return()=>{b=!0,clearInterval(d)}},[a,o]),(0,c.useEffect)(()=>{let a=q.current;if(!a)return;let b=document.getElementById(`exchange-${a}`);b&&(q.current=null,b.scrollIntoView({block:"center"}),b.focus({preventScroll:!0}))},[k]);let r=new Set,s=a=>(0,b.jsx)("li",{className:"msg-status",children:(0,b.jsx)(f.default,{summary:a,onChanged:()=>p(a=>a+1)})},`exchange-${a.id}`),t=a=>{let b=k.filter(b=>!r.has(b.id)&&b.created_at<a).sort((a,b)=>a.created_at-b.created_at||(a.id<b.id?-1:1));return b.forEach(a=>r.add(a.id)),b.map(s)};return(0,b.jsxs)("div",{className:"ledger-page group-thread-page",children:[(0,b.jsxs)("header",{className:"ledger-head",children:[(0,b.jsxs)("nav",{className:"group-thread-nav","aria-label":"Thread navigation",children:[(0,b.jsx)(d.default,{href:"/",className:"cfg-link ledger-back",children:"← Back to chat"}),(0,b.jsx)(d.default,{href:"/exchanges",className:"cfg-link ledger-back",children:"Agent Exchanges"})]}),(0,b.jsx)("h1",{className:"ledger-title",children:g?.label??"Group thread"}),g&&g.members.length>0?(0,b.jsxs)("p",{className:"ledger-sub",children:["With ",g.members.join(", ")]}):null]}),(0,b.jsx)("main",{className:"group-thread-main","aria-label":"Thread",children:m?(0,b.jsxs)("div",{className:"ledger-state",role:"alert",children:[(0,b.jsx)("p",{className:"delete-error",children:m}),(0,b.jsx)("button",{type:"button",className:"pin-word",onClick:()=>p(a=>a+1),children:"Retry"})]}):g?(0,b.jsxs)("ol",{className:"group-thread-list","aria-label":"Messages and exchanges",children:[i.map(a=>(0,b.jsxs)(c.Fragment,{children:[t(a.created_at),(0,b.jsxs)("li",{className:"user"===a.sender_type?"msg-you":"msg-bot",children:[(0,b.jsx)("div",{className:"user"===a.sender_type?"msg-name msg-name-you":"msg-name",children:"user"===a.sender_type?"You":a.sender_name||"Agent"}),(0,b.jsx)("div",{className:"msg-body group-thread-body",children:a.content.replace(/^\s*\[Message from [^\]]+\]\s*(?:\r?\n)?/,"").replace(/^\s+/,"")})]})]},a.id)),t(1/0),0===i.length&&0===k.length?(0,b.jsx)("li",{className:"ledger-state",children:"No messages in this thread yet."}):null]}):(0,b.jsx)("p",{className:"ledger-state",role:"status",children:"Loading thread…"})})]})}])},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=_0epgorw._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[36391,5020,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d=[{id:"purple",label:"Purple",hex:"#7C3AED"},{id:"blue",label:"Blue",hex:"#2563EB"},{id:"teal",label:"Teal",hex:"#0D9488"},{id:"green",label:"Green",hex:"#16A34A"},{id:"amber",label:"Amber",hex:"#B45309"},{id:"orange",label:"Orange",hex:"#EA580C"},{id:"pink",label:"Pink",hex:"#DB2777"},{id:"slate",label:"Slate",hex:"#64748B"}],e=[{id:"dots",label:"Round dots"},{id:"sleepy",label:"Sleepy"},{id:"happy",label:"Happy arcs"},{id:"wide",label:"Wide ovals"}],f=[{id:"folded",label:"Folded arms"},{id:"reaching",label:"Reaching right"},{id:"waving",label:"Waving"}],g=[{id:"none",label:"None"},{id:"crown",label:"Crown"},{id:"glasses",label:"Glasses"},{id:"headset",label:"Headset"},{id:"hat",label:"Hat"},{id:"bow",label:"Bow"}],h={color:"purple",eyes:"dots",hands:"folded",accessory:"none"},i={...h,accessory:"crown"};function j(a,b){return"string"==typeof b&&a.some(a=>a.id===b)}function k(a){let b=j(d,a.avatar_color)?a.avatar_color:h.color,c=j(e,a.avatar_eyes)?a.avatar_eyes:h.eyes;return{color:b,eyes:c,hands:j(f,a.avatar_hands)?a.avatar_hands:h.hands,accessory:j(g,a.avatar_accessory)?a.avatar_accessory:"chief-of-staff"===String(a.name??"").trim().toLowerCase()?i.accessory:h.accessory}}let l=[{x:70,y:70.5,w:38,h:6},{x:70,y:82,w:38,h:6}];function m(a){return l.map(b=>`<rect x="${b.x}" y="${b.y}" width="${b.w}" height="${b.h}" rx="${b.h/2}" ${a}/>`).join("")}function n(a,b="static"){var c,e;let f,g,h=d.find(b=>b.id===a.color)?.hex??d[0].hex,i=String(b).replace(/[^A-Za-z0-9_-]/g,"")||"static",j=`avatar-knockout-${i}`,k=`fill="none" stroke="${h}" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"`,l=(c=a.hands,e=a.accessory,f=[],"reaching"===c&&f.push({x1:87.6,y1:69,x2:90.4,y2:86.5,w:8}),"waving"===c&&f.push({x1:35,y1:59,x2:28,y2:72,w:10}),"crown"===e&&f.push({x1:44,y1:30,x2:76,y2:30,w:9}),"hat"===e&&f.push({x1:38,y1:34,x2:82,y2:34,w:9}),"bow"===e&&f.push({x1:60,y1:28.5,x2:84,y2:28,w:10}),"headset"===e&&(f.push({x1:42,y1:24.5,x2:78,y2:24.5,w:10}),f.push({x1:33,y1:55,x2:37,y2:64,w:8}),f.push({x1:83,y1:55,x2:87,y2:64,w:8})),"glasses"===e&&(f.push({x1:29,y1:56,x2:34,y2:62,w:8}),f.push({x1:86,y1:62,x2:91,y2:56,w:8})),f).map(a=>`<line x1="${a.x1}" y1="${a.y1}" x2="${a.x2}" y2="${a.y2}" stroke="#000000" stroke-width="${a.w}" stroke-linecap="round"/>`).join(""),o=`avatar-arms-${i}`,p="reaching"===a.hands,q=p?`<mask id="${o}"><rect x="0" y="0" width="120" height="120" fill="#ffffff"/>${m('fill="#000000" stroke="#000000" stroke-width="7"')}</mask>`:"",r=function(a,b){let c=`fill="none" stroke="${b}" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"`;switch(a){case"sleepy":return`<g data-avatar-layer="eyes" data-avatar-eyes="sleepy"><path d="M42 61 Q48 64 54 61" ${c}/><path d="M66 61 Q72 64 78 61" ${c}/></g>`;case"happy":return`<g data-avatar-layer="eyes" data-avatar-eyes="happy"><path d="M42 63 Q48 54 54 63" ${c}/><path d="M66 63 Q72 54 78 63" ${c}/></g>`;case"wide":return`<g data-avatar-layer="eyes" data-avatar-eyes="wide"><ellipse cx="48" cy="60" rx="5.5" ry="8" ${c}/><ellipse cx="72" cy="60" rx="5.5" ry="8" ${c}/></g>`;default:return`<g data-avatar-layer="eyes" data-avatar-eyes="dots"><circle cx="48" cy="60" r="3.5" ${c}/><circle cx="72" cy="60" r="3.5" ${c}/></g>`}}(a.eyes,h),s=function(a,b){let c=`fill="none" stroke="${b}" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"`;switch(a){case"crown":return`<g data-avatar-layer="accessory" data-avatar-accessory="crown"><path d="M44 31 L46.5 14 L54 24 L60 10 L66 24 L73.5 14 L76 31 Z" ${c}/></g>`;case"glasses":return`<g data-avatar-layer="accessory" data-avatar-accessory="glasses"><circle cx="48" cy="60" r="9" ${c}/><circle cx="72" cy="60" r="9" ${c}/><path d="M57 60 Q60 57 63 60" ${c}/><path d="M39 59 L32 57" ${c}/><path d="M81 59 L88 57" ${c}/></g>`;case"headset":return`<g data-avatar-layer="accessory" data-avatar-accessory="headset"><path d="M36 62 Q34 24 60 24 Q86 24 84 62" ${c}/><rect x="79" y="54" width="10" height="17" rx="5" ${c}/><path d="M84 71 Q80 84 66 84" ${c}/></g>`;case"hat":return`<g data-avatar-layer="accessory" data-avatar-accessory="hat"><path d="M38 34 Q60 40 82 34" ${c}/><path d="M46 34 Q48 14 60 14 Q72 14 74 34" ${c}/></g>`;case"bow":return`<g data-avatar-layer="accessory" data-avatar-accessory="bow"><circle cx="79" cy="29" r="3.5" ${c}/><path d="M76 27 L62 18 Q60 26 66 32 Z" ${c}/><path d="M82 27 L95 19 Q97 27 91 32 Z" ${c}/></g>`;default:return'<g data-avatar-layer="accessory" data-avatar-accessory="none"></g>'}}(a.accessory,h);return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120" role="img" data-avatar-color="${a.color}" data-avatar-eyes="${a.eyes}" data-avatar-hands="${a.hands}" data-avatar-accessory="${a.accessory}"><mask id="${j}"><rect x="0" y="0" width="120" height="120" fill="#ffffff"/>${l}</mask>`+q+`<g data-avatar-layer="body" mask="url(#${j})">`+`<path d="M60 28 C75 28 84 39 85.5 56 L91 90 C92.5 98 87 102 79 102 L41 102 C33 102 27.5 98 29 90 L34.5 56 C36 39 45 28 60 28 Z" ${k}/>`+`<path d="M54 71 Q60 75.5 66 71" ${k}/>`+`<path data-avatar-brows="straight" d="${g="wide"===a.eyes?45:46,`M42 ${g} H54 M66 ${g} H78`}" fill="none" stroke="${h}" stroke-width="4.8" stroke-linecap="round"/>`+"</g>"+(p?`<g mask="url(#${o})">${r}</g>`:r)+function(a,b){let c=`fill="none" stroke="${b}" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"`;switch(a){case"reaching":return'<g data-avatar-layer="hands" data-avatar-hands="reaching">'+m(c)+"</g>";case"waving":return`<g data-avatar-layer="hands" data-avatar-hands="waving"><path d="M32 68 Q24 60 22 48" ${c}/><circle cx="21" cy="41" r="5" ${c}/><path d="M11 36 Q9 46 12 54" ${c}/></g>`;default:return`<g data-avatar-layer="hands" data-avatar-hands="folded"><rect x="44" y="79" width="32" height="9" rx="4.5" ${c}/><rect x="46" y="90" width="28" height="9" rx="4.5" ${c}/></g>`}}(a.hands,h)+(p?`<g mask="url(#${o})">${s}</g>`:s)+"</svg>"}a.s(["AVATAR_ACCESSORIES",0,g,"AVATAR_COLORS",0,d,"AVATAR_EYES",0,e,"AVATAR_HANDS",0,f,"renderAvatarSvg",0,n,"resolveAvatar",0,k],5020),a.s(["default",0,function({bot:a,config:d,size:e=28,className:f,title:g}){let h=(0,c.useId)().replace(/[^A-Za-z0-9_-]/g,"")||"avatar",i=n(d??a?.avatar_config??k(a??{}),h).replace("<svg ",`<svg width="${e}" height="${e}" `);return(0,b.jsx)("span",{className:f??"bot-avatar",style:{display:"inline-flex",width:e,height:e,flex:"none"},title:g,"aria-label":g??"Agent avatar",role:"img",dangerouslySetInnerHTML:{__html:i}})}],36391)},60193,35832,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d="Permanently removes each agent with its direct conversation, messages, queue rows, approvals, launch snapshots, memories, one-shots, routines, and pending questions. There is no undo.",e="Skill files, working directories, Hermes profiles, and imported source files stay on disk.";function f(a){return"chief"===a?"Chief of Staff cannot be deleted.":"Working now — stop it or let it finish before deleting."}function g(a){return 1===a?"Delete agent":`Delete ${a} agents`}a.s(["DELETE_KEEPS_COPY",0,e,"DELETE_REMOVES_COPY",0,d,"blockedReasonCopy",0,f,"deleteConfirmLabel",0,g,"deletedStatusLine",0,function(a){return 1===a?"Deleted 1 agent.":`Deleted ${a} agents.`}],35832),a.s(["default",0,function({ids:a,onCancel:h,onDeleted:i}){let j=(0,c.useId)(),[k,l]=(0,c.useState)(null),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(!1),s=(0,c.useRef)(null),t=(0,c.useRef)(null),u=a.join("\n");(0,c.useEffect)(()=>{let a=!1;return fetch("/api/bots/delete-preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:u.split("\n")})}).then(async b=>{let c=await b.json().catch(()=>null);if(!a){if(!b.ok)return void n("string"==typeof c?.error?c.error:"Could not load the deletion preview.");l(c)}}).catch(()=>{a||n("Could not load the deletion preview.")}),()=>{a=!0}},[u]),(0,c.useEffect)(()=>{s.current?.focus()},[]),(0,c.useEffect)(()=>{let a=a=>{"Escape"===a.key&&(a.stopPropagation(),q||h())};return document.addEventListener("keydown",a,!0),()=>document.removeEventListener("keydown",a,!0)},[q,h]);let v=a.length,w=!k||k.blocked.length>0||k.missing.length>0,x=async()=>{if(!q&&!w){r(!0),p("");try{let b=await fetch("/api/bots",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:a})}),c=await b.json().catch(()=>null);if(!b.ok){p("string"==typeof c?.error&&c.error?c.error:`Delete failed (${b.status}).`),r(!1),requestAnimationFrame(()=>s.current?.focus());return}i(Array.isArray(c?.deleted)?c.deleted:[])}catch{p("Delete failed: the server did not respond."),r(!1),requestAnimationFrame(()=>s.current?.focus())}}};return(0,b.jsx)("div",{className:"modal-scrim delete-scrim",onKeyDown:a=>{if("Tab"!==a.key||!t.current)return;let b=Array.from(t.current.querySelectorAll("button:not(:disabled)"));if(0===b.length)return;let c=b[0],d=b[b.length-1];a.shiftKey&&document.activeElement===c?(a.preventDefault(),d.focus()):a.shiftKey||document.activeElement!==d||(a.preventDefault(),c.focus())},children:(0,b.jsxs)("div",{ref:t,className:"delete-card",role:"alertdialog","aria-modal":"true","aria-labelledby":j,"data-testid":"delete-agents-dialog",children:[(0,b.jsx)("h2",{id:j,className:"delete-title",children:1===v?"Delete this agent permanently?":`Delete ${v} agents permanently?`}),m?(0,b.jsx)("p",{className:"delete-error",role:"alert",children:m}):null,k||m?null:(0,b.jsx)("p",{className:"delete-copy",children:"Checking what will be removed…"}),k?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("ul",{className:"delete-names","aria-label":"Agents to delete",children:[k.agents.map(a=>(0,b.jsx)("li",{children:a.name},a.id)),k.missing.map(a=>(0,b.jsxs)("li",{children:["Not found: ",a]},a))]}),k.blocked.length>0?(0,b.jsxs)("div",{className:"delete-blocked",role:"alert",children:[(0,b.jsx)("p",{children:"Nothing can be deleted until these are deselected:"}),(0,b.jsx)("ul",{children:k.blocked.map(a=>(0,b.jsxs)("li",{children:[a.name," — ",f(a.reason)]},a.id))})]}):null,(0,b.jsx)("p",{className:"delete-copy",children:d}),(0,b.jsx)("p",{className:"delete-copy delete-keeps",children:e})]}):null,o?(0,b.jsx)("p",{className:"delete-error",role:"alert",children:o}):null,(0,b.jsxs)("div",{className:"form-actions delete-actions",children:[(0,b.jsx)("button",{ref:s,type:"button",className:"cancel-btn",onClick:h,disabled:q,children:"Cancel"}),(0,b.jsx)("button",{type:"button",className:"delete-btn",onClick:()=>{x()},disabled:q||w,children:q?"Deleting…":g(v)})]})]})})}],60193)},1160,22855,79202,a=>{"use strict";var b=a.i(22151);let c="This computer",d={direct:"Direct",agent_deck:"Agent Deck"},e={read_only:"Read only",workspace_write:"Workspace write"},f={workspaces:"Selected workspaces",sessions:"Selected imported sessions",all_provider_sessions:"All sessions this runtime can see"};function g(a){return a.startsWith("/")||"~"===a||a.startsWith("~/")}function h(a){return a.length>1?a.replace(/\/+$/,""):a}b.AGENTS.join("|");var i=a.i(20851);let j="/api/runtime-connections",k={connection:"Runtime connection",scope:"Session scope",defaultWorkspace:"Default workspace (optional)",launchProfile:"Launch profile",policy:"Policy",homeSession:"Home session (optional)"},l={connection:"The runtime installation or account this Agent uses. Several Agents can share one.",workspaces:"One absolute path per line. An empty scope never means unrestricted.",sessions:"Only this Agent’s own Botmancers sessions can be selected.",noSessions:"This Agent has no sessions yet. Choose workspaces or all sessions for now.",allSessions:"Every session this runtime can see. Choose this only on purpose.",defaultWorkspace:"Where new sessions start. Convenience only — not a permission.",direct:"Launches the runtime directly. Agent Deck is not contacted.",agentDeck:"Launches through a verified Agent Deck from the configured server.",resumeEdits:"Needs Workspace write.",homeSession:"A stable session to return to. Must be one of this Agent’s sessions.",addConnection:"Stores a name and host only. Credentials stay with the runtime."},m="Loading runtime connections…",n="Couldn't load runtime connections — retry.";function o(){return{status:"loading",connections:[],error:""}}function p(a){return`${a.label} \xb7 ${b.AGENT_LABELS[a.provider]??a.provider}`}function q(a){if("object"!=typeof a||null===a)return null;let b=a.connections;if(!Array.isArray(b))return null;let c=[];for(let a of b){if("object"!=typeof a||null===a||"string"!=typeof a.id||"string"!=typeof a.provider||"string"!=typeof a.label)return null;c.push({id:a.id,provider:a.provider,label:a.label,host:"string"==typeof a.host?a.host:"",agent_count:"number"==typeof a.agent_count?a.agent_count:void 0})}return c}function r(a){let b=[];for(let c of a.split("\n")){let a=c.trim();a&&!b.includes(a)&&b.push(a)}return b}function s(a){return"workspaces"===a.scopeKind?{kind:"workspaces",workspaces:r(a.workspaces)}:"sessions"===a.scopeKind?{kind:"sessions",sessions:a.sessions}:{kind:a.scopeKind}}function t(a){return{mode:a.policyMode,allow_new_sessions:a.allowNewSessions,allow_resume_with_edits:a.allowResumeWithEdits}}a.s(["CONNECTIONS_ENDPOINT",0,j,"CONNECTIONS_ERROR_COPY",0,n,"CONNECTIONS_LOADING_COPY",0,m,"DEFAULT_REGISTRATION_FORM",0,{connectionId:"",scopeKind:"",workspaces:"",sessions:[],defaultWorkspace:"",launchProfile:"",deckId:"",workingDirectory:"",policyMode:"read_only",allowNewSessions:!0,allowResumeWithEdits:!1,homeSessionId:""},"HINTS",0,l,"LABELS",0,k,"connectionOptionLabel",0,p,"hasRegistrationErrors",0,function(a){return Object.keys(a.errors).length>0},"initialConnectionListState",0,o,"parseConnectionList",0,q,"registrationCreateBody",0,function(a,b){let c={name:String(a??"").trim(),runtime_connection_id:b.connectionId,launch_profile:b.launchProfile||null,session_scope:s(b),policy:t(b)},d=b.defaultWorkspace.trim();if(d&&(c.default_workspace=d),"agent_deck"===b.launchProfile){c.deck_id=b.deckId.trim();let a=b.workingDirectory.trim();a&&(c.working_directory=a)}return c},"registrationFormFromBot",0,function(a){let b=a.session_scope??null,c="direct"===a.launch_profile||"agent_deck"===a.launch_profile?a.launch_profile:"",d=!0===a.needs_deck_selection||1===a.needs_deck_selection,e=(a.working_directory??"").trim();return{connectionId:a.runtime_connection_id??"",scopeKind:b?.kind??"",workspaces:b?.kind==="workspaces"?b.workspaces.join("\n"):"",sessions:b?.kind==="sessions"?[...b.sessions]:[],defaultWorkspace:a.default_workspace??"",launchProfile:c,deckId:"agent_deck"!==c||d?"":(a.deck_id??"").trim(),workingDirectory:"agent_deck"===c&&e&&e!==(0,i.defaultWorkdirFor)(a.id??"")?e:"",policyMode:a.policy?.mode??"read_only",allowNewSessions:!a.policy||a.policy.allow_new_sessions,allowResumeWithEdits:!!a.policy&&a.policy.allow_resume_with_edits,homeSessionId:a.home_session_id??""}},"registrationFormView",0,function(a,b,c){let d={};a.connectionId||(d.connection="Pick a runtime connection.");let e=r(a.workspaces);a.scopeKind?"workspaces"===a.scopeKind?0===e.length?d.workspaces="Add at least one workspace.":e.every(g)||(d.workspaces="Workspaces must be absolute paths (or start with ~/)."):"sessions"===a.scopeKind&&0===a.sessions.length&&(d.sessions="Select at least one session."):d.scope="Choose a session scope.";let f=a.defaultWorkspace.trim();f&&(g(f)?"workspaces"!==a.scopeKind||d.workspaces||e.some(a=>{let b,c;return b=h(a),b===(c=h(f))||c.startsWith("/"===b?"/":`${b}/`)})||(d.defaultWorkspace="The default workspace must be inside one of the selected workspaces."):d.defaultWorkspace="The default workspace must be an absolute path (or start with ~/)."),a.launchProfile?"agent_deck"!==a.launchProfile||a.deckId.trim()||(d.deck="Select an Agent Deck for this agent."):d.launchProfile="Choose Direct or Agent Deck.",a.allowResumeWithEdits&&"workspace_write"!==a.policyMode&&(d.policy="Resume with edits needs the Workspace write policy.");let j="agent_deck"===a.launchProfile,k="",l=!1;return"ready"!==c.status?(l=!0,k="error"===c.status?n:""):j&&"connected"!==b.status&&(l=!0,k="loading"===b.status?"":i.DECK_SLOT_COPY[b.status]),{errors:d,showsAgentDeck:j,submitDisabled:l,blocker:k}},"registrationPatchBody",0,function(a,b){let c={id:a,runtime_connection_id:b.connectionId,launch_profile:b.launchProfile||null,session_scope:s(b),default_workspace:b.defaultWorkspace.trim(),policy:t(b),home_session_id:b.homeSessionId};if("agent_deck"===b.launchProfile){let d=b.workingDirectory.trim();c.deck_id=b.deckId.trim(),c.working_directory=d&&d!==(0,i.defaultWorkdirFor)(a)?d:""}return c},"registrationReadView",0,function(a,c,g){var h;let j,l=[{key:"connection",label:k.connection,value:(j=a.runtime_connection)?`${j.label} (${(0,b.agentLabel)(j.provider)} \xb7 ${j.host})`:"Not set"},{key:"scope",label:k.scope,value:function(a,b){if(!a)return"Not set — this Agent cannot launch until a scope is chosen.";if("all_provider_sessions"===a.kind)return f.all_provider_sessions;if("workspaces"===a.kind)return`${f.workspaces}: ${a.workspaces.join(", ")}`;let c=a.sessions.map(a=>b?.find(b=>b.ref===a)?.title??a);return`${f.sessions}: ${c.join(", ")}`}(a.session_scope,g)},{key:"defaultWorkspace",label:"Default workspace",value:a.default_workspace||"None"},{key:"launchProfile",label:k.launchProfile,value:"direct"===a.launch_profile?d.direct:"agent_deck"===a.launch_profile?d.agent_deck:"Not chosen"}],m=[];if("agent_deck"===a.launch_profile){let b=!0===a.needs_deck_selection||1===a.needs_deck_selection||!(a.deck_id??"").trim();l.push({key:"deck",label:"Agent Deck",value:b?"not selected":(0,i.deckLabel)(a.deck_id??"",c)});let d=(a.working_directory??"").trim();l.push({key:"workdir",label:"Working directory",value:d||(0,i.defaultWorkdirFor)(a.id??"{agentID}")}),!b&&(0,i.isDeckUnavailable)(a,c)&&m.push("This deck isn't on the configured server right now. Pick another deck, or fix the server in Settings.")}l.push({key:"policy",label:k.policy,value:(h=a.policy)?[e[h.mode],h.allow_new_sessions?"new sessions allowed":"no new sessions",h.allow_resume_with_edits?"resume with edits allowed":"no resume with edits"].join(" · "):"Not set"});let n=a.home_session_id?g?.find(b=>b.ref===a.home_session_id)?.title??a.home_session_id:"None";if(l.push({key:"homeSession",label:"Home session",value:n}),a.launch_profile)"direct_runtime"===a.launch_blocker&&m.push("Registered for direct launch. Direct sessions for this runtime arrive in a later Botmancers version.");else{let b=(a.deck_name??"").trim();m.push(`Choose Direct or Agent Deck before this Agent can run${b?` (was Agent Deck "${b}")`:""}.`)}return{rows:l,notices:m}}],1160);var u=a.i(87924),v=a.i(72131),w=a.i(39228);let x={modal:{fieldset:"agent-fieldset reg-fieldset",legend:"field-legend",label:"",picks:"runtime-picks",pick:"runtime-pick",stack:"reg-stack",control:"deck-control",input:"",hint:"runtime-hint",error:"form-error reg-error",button:"runtime-retry",note:"runtime-note"},config:{fieldset:"agent-fieldset reg-fieldset",legend:"block text-sm cfg-muted mt-3 mb-1 p-0",label:"block text-sm cfg-muted mt-3 mb-1",picks:"flex flex-wrap gap-x-4 gap-y-1 text-sm cfg-muted",pick:"text-sm cfg-muted",stack:"flex flex-col gap-1 text-sm cfg-muted",control:"cfg-input text-sm",input:"cfg-input text-sm",hint:"mt-1 text-xs cfg-faint",error:"mt-1 text-sm cfg-error",button:"cfg-link text-sm",note:"text-sm cfg-muted mt-1"}};function y({id:a,message:b,variant:c}){return b?(0,u.jsx)("p",{id:a,className:x[c].error,role:"alert",children:b}):null}function z({idPrefix:a,variant:b,onAdd:d}){let e=x[b],[f,g]=(0,v.useState)(!1),[h,j]=(0,v.useState)(i.AGENT_OPTIONS[0].value),[k,m]=(0,v.useState)(""),[n,o]=(0,v.useState)(""),[p,q]=(0,v.useState)(""),[r,s]=(0,v.useState)(!1),t=async()=>{if(r)return;s(!0),q("");let a=await d({provider:h,label:k,host:n.trim()||c});(s(!1),"string"==typeof a)?q(a):(g(!1),m(""),o(""))};return f?(0,u.jsxs)("div",{id:`${a}-add-connection`,className:"reg-add-connection",role:"group","aria-label":"Add connection",children:[(0,u.jsx)("label",{className:e.label,htmlFor:`${a}-add-provider`,children:"Provider"}),(0,u.jsx)("select",{id:`${a}-add-provider`,className:e.control,value:h,onChange:a=>j(a.target.value),children:i.AGENT_OPTIONS.map(a=>(0,u.jsx)("option",{value:a.value,children:a.label},a.value))}),(0,u.jsx)("label",{className:e.label,htmlFor:`${a}-add-label`,children:"Connection name"}),(0,u.jsx)("input",{id:`${a}-add-label`,type:"text",className:e.input||void 0,value:k,placeholder:"Codex on my laptop",onChange:a=>m(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),t())}}),(0,u.jsx)("label",{className:e.label,htmlFor:`${a}-add-host`,children:"Host"}),(0,u.jsx)("input",{id:`${a}-add-host`,type:"text",className:e.input||void 0,value:n,placeholder:c,"aria-describedby":`${a}-add-hint`,onChange:a=>o(a.target.value)}),(0,u.jsx)("p",{id:`${a}-add-hint`,className:e.hint,children:l.addConnection}),p?(0,u.jsx)("p",{className:e.error,role:"alert",children:p}):null,(0,u.jsxs)("div",{className:"reg-actions",children:[(0,u.jsx)("button",{type:"button",className:e.button,onClick:()=>void t(),disabled:r,children:r?"Adding…":"Add"}),(0,u.jsx)("button",{type:"button",className:e.button,"aria-expanded":"true",onClick:()=>g(!1),children:"Cancel"})]})]}):(0,u.jsx)("button",{type:"button",className:e.button,"aria-expanded":"false","aria-controls":`${a}-add-connection`,onClick:()=>g(!0),children:"Add connection…"})}a.s(["RegistrationFields",0,function({idPrefix:a,variant:b,form:c,onChange:g,view:h,showErrors:i,connections:j,onRetryConnections:o,onAddConnection:q,deckState:r,onRetryDecks:s,savedDeckId:t,workdirPlaceholder:v,workdirHint:A,sessions:B,includeHomeSession:C}){let D=x[b],E=a=>i?h.errors[a]:void 0,F=b=>`${a}-${b}-error`,G=(a,...b)=>[...b,E(a)?F(a):""].filter(Boolean).join(" ")||void 0,H=!!(B&&B.length>0);return(0,u.jsxs)("div",{className:"registration-fields","data-registration":b,children:[(0,u.jsxs)("fieldset",{className:D.fieldset,"data-field":"connection","aria-describedby":G("connection",`${a}-connection-hint`),children:[(0,u.jsx)("legend",{className:D.legend,id:`${a}-connection-legend`,children:k.connection}),"loading"===j.status?(0,u.jsx)("p",{className:D.note,role:"status",children:m}):"error"===j.status?(0,u.jsxs)("p",{className:D.note,role:"status",children:[n," ",(0,u.jsx)("button",{type:"button",className:D.button,onClick:o,children:"Retry"})]}):(0,u.jsxs)("select",{id:`${a}-connection`,className:D.control,"aria-labelledby":`${a}-connection-legend`,"aria-required":"true","aria-invalid":!!E("connection")||void 0,value:c.connectionId,onChange:a=>g({connectionId:a.target.value}),children:[(0,u.jsx)("option",{value:"",disabled:!0,children:"Select a connection…"}),j.connections.map(a=>(0,u.jsx)("option",{value:a.id,children:p(a)},a.id))]}),(0,u.jsx)("p",{id:`${a}-connection-hint`,className:D.hint,children:l.connection}),(0,u.jsx)(y,{id:F("connection"),message:E("connection"),variant:b}),"ready"===j.status?(0,u.jsx)(z,{idPrefix:a,variant:b,onAdd:async a=>{let b=await q(a);return"string"!=typeof b&&g({connectionId:b.id}),b}}):null]}),(0,u.jsxs)("fieldset",{className:D.fieldset,"data-field":"scope",children:[(0,u.jsx)("legend",{className:D.legend,id:`${a}-scope-legend`,children:k.scope}),(0,u.jsx)("div",{className:D.stack,role:"radiogroup","aria-labelledby":`${a}-scope-legend`,"aria-required":"true","aria-describedby":G("scope"),children:["workspaces","sessions","all_provider_sessions"].map(b=>(0,u.jsxs)("label",{className:D.pick,children:[(0,u.jsx)("input",{type:"radio",name:`${a}-scope`,value:b,checked:c.scopeKind===b,disabled:"sessions"===b&&!H,onChange:()=>g({scopeKind:b})})," "+f[b]]},b))}),H?null:(0,u.jsx)("p",{className:D.hint,children:l.noSessions}),(0,u.jsx)(y,{id:F("scope"),message:E("scope"),variant:b}),"workspaces"===c.scopeKind?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("label",{className:D.label,htmlFor:`${a}-workspaces`,children:"Workspaces"}),(0,u.jsx)("textarea",{id:`${a}-workspaces`,className:D.input||void 0,rows:2,value:c.workspaces,placeholder:"/Users/you/work/project","aria-required":"true","aria-invalid":!!E("workspaces")||void 0,"aria-describedby":G("workspaces",`${a}-workspaces-hint`),onChange:a=>g({workspaces:a.target.value})}),(0,u.jsx)("p",{id:`${a}-workspaces-hint`,className:D.hint,children:l.workspaces}),(0,u.jsx)(y,{id:F("workspaces"),message:E("workspaces"),variant:b})]}):null,"sessions"===c.scopeKind&&B?(0,u.jsxs)("div",{className:D.stack,role:"group","aria-label":"Sessions in scope","aria-describedby":G("sessions",`${a}-sessions-hint`),children:[B.map(a=>(0,u.jsxs)("label",{className:D.pick,children:[(0,u.jsx)("input",{type:"checkbox",checked:c.sessions.includes(a.ref),onChange:b=>g({sessions:b.target.checked?[...c.sessions,a.ref]:c.sessions.filter(b=>b!==a.ref)})}),` ${a.title} (${a.status})`]},a.ref)),(0,u.jsx)("p",{id:`${a}-sessions-hint`,className:D.hint,children:l.sessions}),(0,u.jsx)(y,{id:F("sessions"),message:E("sessions"),variant:b})]}):null,"all_provider_sessions"===c.scopeKind?(0,u.jsx)("p",{className:D.hint,children:l.allSessions}):null]}),(0,u.jsxs)("div",{"data-field":"default-workspace",children:[(0,u.jsx)("label",{className:D.label,htmlFor:`${a}-default-workspace`,children:k.defaultWorkspace}),(0,u.jsx)("input",{id:`${a}-default-workspace`,type:"text",className:D.input||void 0,value:c.defaultWorkspace,"aria-invalid":!!E("defaultWorkspace")||void 0,"aria-describedby":G("defaultWorkspace",`${a}-default-workspace-hint`),onChange:a=>g({defaultWorkspace:a.target.value})}),(0,u.jsx)("p",{id:`${a}-default-workspace-hint`,className:D.hint,children:l.defaultWorkspace}),(0,u.jsx)(y,{id:F("defaultWorkspace"),message:E("defaultWorkspace"),variant:b})]}),(0,u.jsxs)("fieldset",{className:D.fieldset,"data-field":"launch-profile",children:[(0,u.jsx)("legend",{className:D.legend,id:`${a}-profile-legend`,children:k.launchProfile}),(0,u.jsx)("div",{className:D.stack,role:"radiogroup","aria-labelledby":`${a}-profile-legend`,"aria-required":"true","aria-describedby":G("launchProfile"),children:["direct","agent_deck"].map(b=>(0,u.jsxs)("label",{className:D.pick,children:[(0,u.jsx)("input",{type:"radio",name:`${a}-profile`,value:b,checked:c.launchProfile===b,"aria-describedby":`${a}-profile-${b}-hint`,onChange:()=>g({launchProfile:b})})," "+d[b],(0,u.jsx)("span",{id:`${a}-profile-${b}-hint`,className:`reg-option-hint ${D.hint}`,children:"direct"===b?l.direct:l.agentDeck})]},b))}),(0,u.jsx)(y,{id:F("launchProfile"),message:E("launchProfile"),variant:b}),h.showsAgentDeck?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(w.AgentDeckFields,{idPrefix:a,variant:b,deckId:c.deckId,onDeckId:a=>g({deckId:a}),deckState:r,onRetry:s,savedDeckId:t,workingDirectory:c.workingDirectory,onWorkingDirectory:a=>g({workingDirectory:a}),workdirPlaceholder:v,workdirHint:A}),(0,u.jsx)(y,{id:F("deck"),message:E("deck"),variant:b})]}):null]}),(0,u.jsxs)("fieldset",{className:D.fieldset,"data-field":"policy",children:[(0,u.jsx)("legend",{className:D.legend,id:`${a}-policy-legend`,children:k.policy}),(0,u.jsx)("div",{className:D.picks,role:"radiogroup","aria-labelledby":`${a}-policy-legend`,children:["read_only","workspace_write"].map(b=>(0,u.jsxs)("label",{className:D.pick,children:[(0,u.jsx)("input",{type:"radio",name:`${a}-policy`,value:b,checked:c.policyMode===b,onChange:()=>g("read_only"===b?{policyMode:b,allowResumeWithEdits:!1}:{policyMode:b})})," "+e[b]]},b))}),(0,u.jsxs)("div",{className:D.stack,children:[(0,u.jsxs)("label",{className:D.pick,children:[(0,u.jsx)("input",{type:"checkbox",checked:c.allowNewSessions,onChange:a=>g({allowNewSessions:a.target.checked})})," Allow new sessions"]}),(0,u.jsxs)("label",{className:D.pick,children:[(0,u.jsx)("input",{type:"checkbox",checked:c.allowResumeWithEdits,disabled:"workspace_write"!==c.policyMode,"aria-describedby":`${a}-resume-hint`,onChange:a=>g({allowResumeWithEdits:a.target.checked})})," Allow resume with edits"]}),(0,u.jsx)("p",{id:`${a}-resume-hint`,className:D.hint,children:l.resumeEdits})]}),(0,u.jsx)(y,{id:F("policy"),message:E("policy"),variant:b})]}),C?(0,u.jsxs)("div",{"data-field":"home-session",children:[(0,u.jsx)("label",{className:D.label,htmlFor:`${a}-home-session`,children:k.homeSession}),(0,u.jsxs)("select",{id:`${a}-home-session`,className:D.control,value:c.homeSessionId,"aria-describedby":`${a}-home-session-hint`,onChange:a=>g({homeSessionId:a.target.value}),children:[(0,u.jsx)("option",{value:"",children:"None"}),(B??[]).map(a=>(0,u.jsx)("option",{value:a.ref,children:`${a.title} (${a.status})`},a.ref))]}),(0,u.jsx)("p",{id:`${a}-home-session-hint`,className:D.hint,children:l.homeSession})]}):null]})}],22855),a.s(["useRuntimeConnections",0,function(){let[a,b]=(0,v.useState)(()=>o()),[c,d]=(0,v.useState)(0);return(0,v.useEffect)(()=>{let a=!1;return fetch(j,{cache:"no-store"}).then(async c=>{let d=c.ok?q(await c.json().catch(()=>null)):null;a||b(d?{status:"ready",connections:d,error:""}:{status:"error",connections:[],error:`HTTP ${c.status}`})}).catch(c=>{a||b({status:"error",connections:[],error:c instanceof Error?c.message:String(c)})}),()=>{a=!0}},[c]),{state:a,retry:(0,v.useCallback)(()=>{b(o()),d(a=>a+1)},[]),add:(0,v.useCallback)(async a=>{let c=await fetch(j,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),d=await c.json().catch(()=>null);if(!c.ok)return"string"==typeof d?.error?d.error:"Failed to add the connection";let e=q({connections:[d]})?.[0];return e?(b(a=>({status:"ready",connections:[...a.connections,e],error:""})),e):"Failed to add the connection"},[])}}],79202)},80219,a=>{"use strict";let b="imported",c=/^[A-Za-z0-9_-]{1,128}$/;function d(a){let d=new URLSearchParams(a).get(b);if(null===d)return null;let e=d.trim();return c.test(e)?e:""}function e(a){return`/bots/${encodeURIComponent(a)}/config`}async function f(a,b,c){let f=d(a);if(null===f)return{kind:"none"};if(!f)return{kind:"missing"};if(f===b)return{kind:"stay"};try{return await c(f)?{kind:"open",path:e(f)}:{kind:"missing"}}catch{return{kind:"missing"}}}a.s(["HANDOFF_STATUS_PATH",0,"/api/marketplace-handoff/status","IMPORT_RETURN_QUERY",0,b,"handoffStartPath",0,function(a,b){return`/api/marketplace-handoff?return=${encodeURIComponent(a+b)}`},"importedBotId",0,d,"importedConfigPath",0,e,"marketImportView",0,function(a){switch(a){case"checking":return{busy:!0,tone:"muted",message:"Checking Grok Marketplace…"};case"redirecting":return{busy:!0,tone:"muted",message:"Opening Grok Marketplace…"};case"unavailable":return{busy:!1,tone:"error",message:"Grok Marketplace isn't configured. Set CLONE_MARKET_URL on the Botmancers server."};case"failed":return{busy:!1,tone:"error",message:"Couldn't reach Botmancers to start the import. Try again."};case"missing":return{busy:!1,tone:"error",message:"Imported agent not found. The import may not have completed."};default:return{busy:!1,tone:"muted",message:"Imports a new agent and opens its Config. This agent is not changed."}}},"resolveImportReturn",0,f])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_1cvuhjt._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[36391,5020,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d=[{id:"purple",label:"Purple",hex:"#7C3AED"},{id:"blue",label:"Blue",hex:"#2563EB"},{id:"teal",label:"Teal",hex:"#0D9488"},{id:"green",label:"Green",hex:"#16A34A"},{id:"amber",label:"Amber",hex:"#B45309"},{id:"orange",label:"Orange",hex:"#EA580C"},{id:"pink",label:"Pink",hex:"#DB2777"},{id:"slate",label:"Slate",hex:"#64748B"}],e=[{id:"dots",label:"Round dots"},{id:"sleepy",label:"Sleepy"},{id:"happy",label:"Happy arcs"},{id:"wide",label:"Wide ovals"}],f=[{id:"folded",label:"Folded arms"},{id:"reaching",label:"Reaching right"},{id:"waving",label:"Waving"}],g=[{id:"none",label:"None"},{id:"crown",label:"Crown"},{id:"glasses",label:"Glasses"},{id:"headset",label:"Headset"},{id:"hat",label:"Hat"},{id:"bow",label:"Bow"}],h={color:"purple",eyes:"dots",hands:"folded",accessory:"none"},i={...h,accessory:"crown"};function j(a,b){return"string"==typeof b&&a.some(a=>a.id===b)}function k(a){let b=j(d,a.avatar_color)?a.avatar_color:h.color,c=j(e,a.avatar_eyes)?a.avatar_eyes:h.eyes;return{color:b,eyes:c,hands:j(f,a.avatar_hands)?a.avatar_hands:h.hands,accessory:j(g,a.avatar_accessory)?a.avatar_accessory:"chief-of-staff"===String(a.name??"").trim().toLowerCase()?i.accessory:h.accessory}}let l=[{x:70,y:70.5,w:38,h:6},{x:70,y:82,w:38,h:6}];function m(a){return l.map(b=>`<rect x="${b.x}" y="${b.y}" width="${b.w}" height="${b.h}" rx="${b.h/2}" ${a}/>`).join("")}function n(a,b="static"){var c,e;let f,g,h=d.find(b=>b.id===a.color)?.hex??d[0].hex,i=String(b).replace(/[^A-Za-z0-9_-]/g,"")||"static",j=`avatar-knockout-${i}`,k=`fill="none" stroke="${h}" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"`,l=(c=a.hands,e=a.accessory,f=[],"reaching"===c&&f.push({x1:87.6,y1:69,x2:90.4,y2:86.5,w:8}),"waving"===c&&f.push({x1:35,y1:59,x2:28,y2:72,w:10}),"crown"===e&&f.push({x1:44,y1:30,x2:76,y2:30,w:9}),"hat"===e&&f.push({x1:38,y1:34,x2:82,y2:34,w:9}),"bow"===e&&f.push({x1:60,y1:28.5,x2:84,y2:28,w:10}),"headset"===e&&(f.push({x1:42,y1:24.5,x2:78,y2:24.5,w:10}),f.push({x1:33,y1:55,x2:37,y2:64,w:8}),f.push({x1:83,y1:55,x2:87,y2:64,w:8})),"glasses"===e&&(f.push({x1:29,y1:56,x2:34,y2:62,w:8}),f.push({x1:86,y1:62,x2:91,y2:56,w:8})),f).map(a=>`<line x1="${a.x1}" y1="${a.y1}" x2="${a.x2}" y2="${a.y2}" stroke="#000000" stroke-width="${a.w}" stroke-linecap="round"/>`).join(""),o=`avatar-arms-${i}`,p="reaching"===a.hands,q=p?`<mask id="${o}"><rect x="0" y="0" width="120" height="120" fill="#ffffff"/>${m('fill="#000000" stroke="#000000" stroke-width="7"')}</mask>`:"",r=function(a,b){let c=`fill="none" stroke="${b}" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"`;switch(a){case"sleepy":return`<g data-avatar-layer="eyes" data-avatar-eyes="sleepy"><path d="M42 61 Q48 64 54 61" ${c}/><path d="M66 61 Q72 64 78 61" ${c}/></g>`;case"happy":return`<g data-avatar-layer="eyes" data-avatar-eyes="happy"><path d="M42 63 Q48 54 54 63" ${c}/><path d="M66 63 Q72 54 78 63" ${c}/></g>`;case"wide":return`<g data-avatar-layer="eyes" data-avatar-eyes="wide"><ellipse cx="48" cy="60" rx="5.5" ry="8" ${c}/><ellipse cx="72" cy="60" rx="5.5" ry="8" ${c}/></g>`;default:return`<g data-avatar-layer="eyes" data-avatar-eyes="dots"><circle cx="48" cy="60" r="3.5" ${c}/><circle cx="72" cy="60" r="3.5" ${c}/></g>`}}(a.eyes,h),s=function(a,b){let c=`fill="none" stroke="${b}" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"`;switch(a){case"crown":return`<g data-avatar-layer="accessory" data-avatar-accessory="crown"><path d="M44 31 L46.5 14 L54 24 L60 10 L66 24 L73.5 14 L76 31 Z" ${c}/></g>`;case"glasses":return`<g data-avatar-layer="accessory" data-avatar-accessory="glasses"><circle cx="48" cy="60" r="9" ${c}/><circle cx="72" cy="60" r="9" ${c}/><path d="M57 60 Q60 57 63 60" ${c}/><path d="M39 59 L32 57" ${c}/><path d="M81 59 L88 57" ${c}/></g>`;case"headset":return`<g data-avatar-layer="accessory" data-avatar-accessory="headset"><path d="M36 62 Q34 24 60 24 Q86 24 84 62" ${c}/><rect x="79" y="54" width="10" height="17" rx="5" ${c}/><path d="M84 71 Q80 84 66 84" ${c}/></g>`;case"hat":return`<g data-avatar-layer="accessory" data-avatar-accessory="hat"><path d="M38 34 Q60 40 82 34" ${c}/><path d="M46 34 Q48 14 60 14 Q72 14 74 34" ${c}/></g>`;case"bow":return`<g data-avatar-layer="accessory" data-avatar-accessory="bow"><circle cx="79" cy="29" r="3.5" ${c}/><path d="M76 27 L62 18 Q60 26 66 32 Z" ${c}/><path d="M82 27 L95 19 Q97 27 91 32 Z" ${c}/></g>`;default:return'<g data-avatar-layer="accessory" data-avatar-accessory="none"></g>'}}(a.accessory,h);return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120" role="img" data-avatar-color="${a.color}" data-avatar-eyes="${a.eyes}" data-avatar-hands="${a.hands}" data-avatar-accessory="${a.accessory}"><mask id="${j}"><rect x="0" y="0" width="120" height="120" fill="#ffffff"/>${l}</mask>`+q+`<g data-avatar-layer="body" mask="url(#${j})">`+`<path d="M60 28 C75 28 84 39 85.5 56 L91 90 C92.5 98 87 102 79 102 L41 102 C33 102 27.5 98 29 90 L34.5 56 C36 39 45 28 60 28 Z" ${k}/>`+`<path d="M54 71 Q60 75.5 66 71" ${k}/>`+`<path data-avatar-brows="straight" d="${g="wide"===a.eyes?45:46,`M42 ${g} H54 M66 ${g} H78`}" fill="none" stroke="${h}" stroke-width="4.8" stroke-linecap="round"/>`+"</g>"+(p?`<g mask="url(#${o})">${r}</g>`:r)+function(a,b){let c=`fill="none" stroke="${b}" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"`;switch(a){case"reaching":return'<g data-avatar-layer="hands" data-avatar-hands="reaching">'+m(c)+"</g>";case"waving":return`<g data-avatar-layer="hands" data-avatar-hands="waving"><path d="M32 68 Q24 60 22 48" ${c}/><circle cx="21" cy="41" r="5" ${c}/><path d="M11 36 Q9 46 12 54" ${c}/></g>`;default:return`<g data-avatar-layer="hands" data-avatar-hands="folded"><rect x="44" y="79" width="32" height="9" rx="4.5" ${c}/><rect x="46" y="90" width="28" height="9" rx="4.5" ${c}/></g>`}}(a.hands,h)+(p?`<g mask="url(#${o})">${s}</g>`:s)+"</svg>"}a.s(["AVATAR_ACCESSORIES",0,g,"AVATAR_COLORS",0,d,"AVATAR_EYES",0,e,"AVATAR_HANDS",0,f,"renderAvatarSvg",0,n,"resolveAvatar",0,k],5020),a.s(["default",0,function({bot:a,config:d,size:e=28,className:f,title:g}){let h=(0,c.useId)().replace(/[^A-Za-z0-9_-]/g,"")||"avatar",i=n(d??a?.avatar_config??k(a??{}),h).replace("<svg ",`<svg width="${e}" height="${e}" `);return(0,b.jsx)("span",{className:f??"bot-avatar",style:{display:"inline-flex",width:e,height:e,flex:"none"},title:g,"aria-label":g??"Agent avatar",role:"img",dangerouslySetInnerHTML:{__html:i}})}],36391)},60193,35832,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d="Permanently removes each agent with its direct conversation, messages, queue rows, approvals, launch snapshots, memories, one-shots, routines, and pending questions. There is no undo.",e="Skill files, working directories, Hermes profiles, and imported source files stay on disk.";function f(a){return"chief"===a?"Chief of Staff cannot be deleted.":"Working now — stop it or let it finish before deleting."}function g(a){return 1===a?"Delete agent":`Delete ${a} agents`}a.s(["DELETE_KEEPS_COPY",0,e,"DELETE_REMOVES_COPY",0,d,"blockedReasonCopy",0,f,"deleteConfirmLabel",0,g,"deletedStatusLine",0,function(a){return 1===a?"Deleted 1 agent.":`Deleted ${a} agents.`}],35832),a.s(["default",0,function({ids:a,onCancel:h,onDeleted:i}){let j=(0,c.useId)(),[k,l]=(0,c.useState)(null),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(!1),s=(0,c.useRef)(null),t=(0,c.useRef)(null),u=a.join("\n");(0,c.useEffect)(()=>{let a=!1;return fetch("/api/bots/delete-preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:u.split("\n")})}).then(async b=>{let c=await b.json().catch(()=>null);if(!a){if(!b.ok)return void n("string"==typeof c?.error?c.error:"Could not load the deletion preview.");l(c)}}).catch(()=>{a||n("Could not load the deletion preview.")}),()=>{a=!0}},[u]),(0,c.useEffect)(()=>{s.current?.focus()},[]),(0,c.useEffect)(()=>{let a=a=>{"Escape"===a.key&&(a.stopPropagation(),q||h())};return document.addEventListener("keydown",a,!0),()=>document.removeEventListener("keydown",a,!0)},[q,h]);let v=a.length,w=!k||k.blocked.length>0||k.missing.length>0,x=async()=>{if(!q&&!w){r(!0),p("");try{let b=await fetch("/api/bots",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:a})}),c=await b.json().catch(()=>null);if(!b.ok){p("string"==typeof c?.error&&c.error?c.error:`Delete failed (${b.status}).`),r(!1),requestAnimationFrame(()=>s.current?.focus());return}i(Array.isArray(c?.deleted)?c.deleted:[])}catch{p("Delete failed: the server did not respond."),r(!1),requestAnimationFrame(()=>s.current?.focus())}}};return(0,b.jsx)("div",{className:"modal-scrim delete-scrim",onKeyDown:a=>{if("Tab"!==a.key||!t.current)return;let b=Array.from(t.current.querySelectorAll("button:not(:disabled)"));if(0===b.length)return;let c=b[0],d=b[b.length-1];a.shiftKey&&document.activeElement===c?(a.preventDefault(),d.focus()):a.shiftKey||document.activeElement!==d||(a.preventDefault(),c.focus())},children:(0,b.jsxs)("div",{ref:t,className:"delete-card",role:"alertdialog","aria-modal":"true","aria-labelledby":j,"data-testid":"delete-agents-dialog",children:[(0,b.jsx)("h2",{id:j,className:"delete-title",children:1===v?"Delete this agent permanently?":`Delete ${v} agents permanently?`}),m?(0,b.jsx)("p",{className:"delete-error",role:"alert",children:m}):null,k||m?null:(0,b.jsx)("p",{className:"delete-copy",children:"Checking what will be removed…"}),k?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("ul",{className:"delete-names","aria-label":"Agents to delete",children:[k.agents.map(a=>(0,b.jsx)("li",{children:a.name},a.id)),k.missing.map(a=>(0,b.jsxs)("li",{children:["Not found: ",a]},a))]}),k.blocked.length>0?(0,b.jsxs)("div",{className:"delete-blocked",role:"alert",children:[(0,b.jsx)("p",{children:"Nothing can be deleted until these are deselected:"}),(0,b.jsx)("ul",{children:k.blocked.map(a=>(0,b.jsxs)("li",{children:[a.name," — ",f(a.reason)]},a.id))})]}):null,(0,b.jsx)("p",{className:"delete-copy",children:d}),(0,b.jsx)("p",{className:"delete-copy delete-keeps",children:e})]}):null,o?(0,b.jsx)("p",{className:"delete-error",role:"alert",children:o}):null,(0,b.jsxs)("div",{className:"form-actions delete-actions",children:[(0,b.jsx)("button",{ref:s,type:"button",className:"cancel-btn",onClick:h,disabled:q,children:"Cancel"}),(0,b.jsx)("button",{type:"button",className:"delete-btn",onClick:()=>{x()},disabled:q||w,children:q?"Deleting…":g(v)})]})]})})}],60193)},1160,22855,79202,a=>{"use strict";var b=a.i(22151);let c="This computer",d={direct:"Direct",agent_deck:"Agent Deck"},e={read_only:"Read only",workspace_write:"Workspace write"},f={workspaces:"Selected workspaces",sessions:"Selected imported sessions",all_provider_sessions:"All sessions this runtime can see"};function g(a){return a.startsWith("/")||"~"===a||a.startsWith("~/")}function h(a){return a.length>1?a.replace(/\/+$/,""):a}b.AGENTS.join("|");var i=a.i(20851);let j="/api/runtime-connections",k={connection:"Runtime connection",scope:"Session scope",defaultWorkspace:"Default workspace (optional)",launchProfile:"Launch profile",policy:"Policy",homeSession:"Home session (optional)"},l={connection:"The runtime installation or account this Agent uses. Several Agents can share one.",workspaces:"One absolute path per line. An empty scope never means unrestricted.",sessions:"Only this Agent’s own Botmancers sessions can be selected.",noSessions:"This Agent has no sessions yet. Choose workspaces or all sessions for now.",allSessions:"Every session this runtime can see. Choose this only on purpose.",defaultWorkspace:"Where new sessions start. Convenience only — not a permission.",direct:"Launches the runtime directly. Agent Deck is not contacted.",agentDeck:"Launches through a verified Agent Deck from the configured server.",resumeEdits:"Needs Workspace write.",homeSession:"A stable session to return to. Must be one of this Agent’s sessions.",addConnection:"Stores a name and host only. Credentials stay with the runtime."},m="Loading runtime connections…",n="Couldn't load runtime connections — retry.";function o(){return{status:"loading",connections:[],error:""}}function p(a){return`${a.label} \xb7 ${b.AGENT_LABELS[a.provider]??a.provider}`}function q(a){if("object"!=typeof a||null===a)return null;let b=a.connections;if(!Array.isArray(b))return null;let c=[];for(let a of b){if("object"!=typeof a||null===a||"string"!=typeof a.id||"string"!=typeof a.provider||"string"!=typeof a.label)return null;c.push({id:a.id,provider:a.provider,label:a.label,host:"string"==typeof a.host?a.host:"",agent_count:"number"==typeof a.agent_count?a.agent_count:void 0})}return c}function r(a){let b=[];for(let c of a.split("\n")){let a=c.trim();a&&!b.includes(a)&&b.push(a)}return b}function s(a){return"workspaces"===a.scopeKind?{kind:"workspaces",workspaces:r(a.workspaces)}:"sessions"===a.scopeKind?{kind:"sessions",sessions:a.sessions}:{kind:a.scopeKind}}function t(a){return{mode:a.policyMode,allow_new_sessions:a.allowNewSessions,allow_resume_with_edits:a.allowResumeWithEdits}}a.s(["CONNECTIONS_ENDPOINT",0,j,"CONNECTIONS_ERROR_COPY",0,n,"CONNECTIONS_LOADING_COPY",0,m,"DEFAULT_REGISTRATION_FORM",0,{connectionId:"",scopeKind:"",workspaces:"",sessions:[],defaultWorkspace:"",launchProfile:"",deckId:"",workingDirectory:"",policyMode:"read_only",allowNewSessions:!0,allowResumeWithEdits:!1,homeSessionId:""},"HINTS",0,l,"LABELS",0,k,"connectionOptionLabel",0,p,"hasRegistrationErrors",0,function(a){return Object.keys(a.errors).length>0},"initialConnectionListState",0,o,"parseConnectionList",0,q,"registrationCreateBody",0,function(a,b){let c={name:String(a??"").trim(),runtime_connection_id:b.connectionId,launch_profile:b.launchProfile||null,session_scope:s(b),policy:t(b)},d=b.defaultWorkspace.trim();if(d&&(c.default_workspace=d),"agent_deck"===b.launchProfile){c.deck_id=b.deckId.trim();let a=b.workingDirectory.trim();a&&(c.working_directory=a)}return c},"registrationFormFromBot",0,function(a){let b=a.session_scope??null,c="direct"===a.launch_profile||"agent_deck"===a.launch_profile?a.launch_profile:"",d=!0===a.needs_deck_selection||1===a.needs_deck_selection,e=(a.working_directory??"").trim();return{connectionId:a.runtime_connection_id??"",scopeKind:b?.kind??"",workspaces:b?.kind==="workspaces"?b.workspaces.join("\n"):"",sessions:b?.kind==="sessions"?[...b.sessions]:[],defaultWorkspace:a.default_workspace??"",launchProfile:c,deckId:"agent_deck"!==c||d?"":(a.deck_id??"").trim(),workingDirectory:"agent_deck"===c&&e&&e!==(0,i.defaultWorkdirFor)(a.id??"")?e:"",policyMode:a.policy?.mode??"read_only",allowNewSessions:!a.policy||a.policy.allow_new_sessions,allowResumeWithEdits:!!a.policy&&a.policy.allow_resume_with_edits,homeSessionId:a.home_session_id??""}},"registrationFormView",0,function(a,b,c){let d={};a.connectionId||(d.connection="Pick a runtime connection.");let e=r(a.workspaces);a.scopeKind?"workspaces"===a.scopeKind?0===e.length?d.workspaces="Add at least one workspace.":e.every(g)||(d.workspaces="Workspaces must be absolute paths (or start with ~/)."):"sessions"===a.scopeKind&&0===a.sessions.length&&(d.sessions="Select at least one session."):d.scope="Choose a session scope.";let f=a.defaultWorkspace.trim();f&&(g(f)?"workspaces"!==a.scopeKind||d.workspaces||e.some(a=>{let b,c;return b=h(a),b===(c=h(f))||c.startsWith("/"===b?"/":`${b}/`)})||(d.defaultWorkspace="The default workspace must be inside one of the selected workspaces."):d.defaultWorkspace="The default workspace must be an absolute path (or start with ~/)."),a.launchProfile?"agent_deck"!==a.launchProfile||a.deckId.trim()||(d.deck="Select an Agent Deck for this agent."):d.launchProfile="Choose Direct or Agent Deck.",a.allowResumeWithEdits&&"workspace_write"!==a.policyMode&&(d.policy="Resume with edits needs the Workspace write policy.");let j="agent_deck"===a.launchProfile,k="",l=!1;return"ready"!==c.status?(l=!0,k="error"===c.status?n:""):j&&"connected"!==b.status&&(l=!0,k="loading"===b.status?"":i.DECK_SLOT_COPY[b.status]),{errors:d,showsAgentDeck:j,submitDisabled:l,blocker:k}},"registrationPatchBody",0,function(a,b){let c={id:a,runtime_connection_id:b.connectionId,launch_profile:b.launchProfile||null,session_scope:s(b),default_workspace:b.defaultWorkspace.trim(),policy:t(b),home_session_id:b.homeSessionId};if("agent_deck"===b.launchProfile){let d=b.workingDirectory.trim();c.deck_id=b.deckId.trim(),c.working_directory=d&&d!==(0,i.defaultWorkdirFor)(a)?d:""}return c},"registrationReadView",0,function(a,c,g){var h;let j,l=[{key:"connection",label:k.connection,value:(j=a.runtime_connection)?`${j.label} (${(0,b.agentLabel)(j.provider)} \xb7 ${j.host})`:"Not set"},{key:"scope",label:k.scope,value:function(a,b){if(!a)return"Not set — this Agent cannot launch until a scope is chosen.";if("all_provider_sessions"===a.kind)return f.all_provider_sessions;if("workspaces"===a.kind)return`${f.workspaces}: ${a.workspaces.join(", ")}`;let c=a.sessions.map(a=>b?.find(b=>b.ref===a)?.title??a);return`${f.sessions}: ${c.join(", ")}`}(a.session_scope,g)},{key:"defaultWorkspace",label:"Default workspace",value:a.default_workspace||"None"},{key:"launchProfile",label:k.launchProfile,value:"direct"===a.launch_profile?d.direct:"agent_deck"===a.launch_profile?d.agent_deck:"Not chosen"}],m=[];if("agent_deck"===a.launch_profile){let b=!0===a.needs_deck_selection||1===a.needs_deck_selection||!(a.deck_id??"").trim();l.push({key:"deck",label:"Agent Deck",value:b?"not selected":(0,i.deckLabel)(a.deck_id??"",c)});let d=(a.working_directory??"").trim();l.push({key:"workdir",label:"Working directory",value:d||(0,i.defaultWorkdirFor)(a.id??"{agentID}")}),!b&&(0,i.isDeckUnavailable)(a,c)&&m.push("This deck isn't on the configured server right now. Pick another deck, or fix the server in Settings.")}l.push({key:"policy",label:k.policy,value:(h=a.policy)?[e[h.mode],h.allow_new_sessions?"new sessions allowed":"no new sessions",h.allow_resume_with_edits?"resume with edits allowed":"no resume with edits"].join(" · "):"Not set"});let n=a.home_session_id?g?.find(b=>b.ref===a.home_session_id)?.title??a.home_session_id:"None";if(l.push({key:"homeSession",label:"Home session",value:n}),a.launch_profile)"direct_runtime"===a.launch_blocker&&m.push("Registered for direct launch. Direct sessions for this runtime arrive in a later Botmancers version.");else{let b=(a.deck_name??"").trim();m.push(`Choose Direct or Agent Deck before this Agent can run${b?` (was Agent Deck "${b}")`:""}.`)}return{rows:l,notices:m}}],1160);var u=a.i(87924),v=a.i(72131),w=a.i(39228);let x={modal:{fieldset:"agent-fieldset reg-fieldset",legend:"field-legend",label:"",picks:"runtime-picks",pick:"runtime-pick",stack:"reg-stack",control:"deck-control",input:"",hint:"runtime-hint",error:"form-error reg-error",button:"runtime-retry",note:"runtime-note"},config:{fieldset:"agent-fieldset reg-fieldset",legend:"block text-sm cfg-muted mt-3 mb-1 p-0",label:"block text-sm cfg-muted mt-3 mb-1",picks:"flex flex-wrap gap-x-4 gap-y-1 text-sm cfg-muted",pick:"text-sm cfg-muted",stack:"flex flex-col gap-1 text-sm cfg-muted",control:"cfg-input text-sm",input:"cfg-input text-sm",hint:"mt-1 text-xs cfg-faint",error:"mt-1 text-sm cfg-error",button:"cfg-link text-sm",note:"text-sm cfg-muted mt-1"}};function y({id:a,message:b,variant:c}){return b?(0,u.jsx)("p",{id:a,className:x[c].error,role:"alert",children:b}):null}function z({idPrefix:a,variant:b,onAdd:d}){let e=x[b],[f,g]=(0,v.useState)(!1),[h,j]=(0,v.useState)(i.AGENT_OPTIONS[0].value),[k,m]=(0,v.useState)(""),[n,o]=(0,v.useState)(""),[p,q]=(0,v.useState)(""),[r,s]=(0,v.useState)(!1),t=async()=>{if(r)return;s(!0),q("");let a=await d({provider:h,label:k,host:n.trim()||c});(s(!1),"string"==typeof a)?q(a):(g(!1),m(""),o(""))};return f?(0,u.jsxs)("div",{id:`${a}-add-connection`,className:"reg-add-connection",role:"group","aria-label":"Add connection",children:[(0,u.jsx)("label",{className:e.label,htmlFor:`${a}-add-provider`,children:"Provider"}),(0,u.jsx)("select",{id:`${a}-add-provider`,className:e.control,value:h,onChange:a=>j(a.target.value),children:i.AGENT_OPTIONS.map(a=>(0,u.jsx)("option",{value:a.value,children:a.label},a.value))}),(0,u.jsx)("label",{className:e.label,htmlFor:`${a}-add-label`,children:"Connection name"}),(0,u.jsx)("input",{id:`${a}-add-label`,type:"text",className:e.input||void 0,value:k,placeholder:"Codex on my laptop",onChange:a=>m(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),t())}}),(0,u.jsx)("label",{className:e.label,htmlFor:`${a}-add-host`,children:"Host"}),(0,u.jsx)("input",{id:`${a}-add-host`,type:"text",className:e.input||void 0,value:n,placeholder:c,"aria-describedby":`${a}-add-hint`,onChange:a=>o(a.target.value)}),(0,u.jsx)("p",{id:`${a}-add-hint`,className:e.hint,children:l.addConnection}),p?(0,u.jsx)("p",{className:e.error,role:"alert",children:p}):null,(0,u.jsxs)("div",{className:"reg-actions",children:[(0,u.jsx)("button",{type:"button",className:e.button,onClick:()=>void t(),disabled:r,children:r?"Adding…":"Add"}),(0,u.jsx)("button",{type:"button",className:e.button,"aria-expanded":"true",onClick:()=>g(!1),children:"Cancel"})]})]}):(0,u.jsx)("button",{type:"button",className:e.button,"aria-expanded":"false","aria-controls":`${a}-add-connection`,onClick:()=>g(!0),children:"Add connection…"})}a.s(["RegistrationFields",0,function({idPrefix:a,variant:b,form:c,onChange:g,view:h,showErrors:i,connections:j,onRetryConnections:o,onAddConnection:q,deckState:r,onRetryDecks:s,savedDeckId:t,workdirPlaceholder:v,workdirHint:A,sessions:B,includeHomeSession:C}){let D=x[b],E=a=>i?h.errors[a]:void 0,F=b=>`${a}-${b}-error`,G=(a,...b)=>[...b,E(a)?F(a):""].filter(Boolean).join(" ")||void 0,H=!!(B&&B.length>0);return(0,u.jsxs)("div",{className:"registration-fields","data-registration":b,children:[(0,u.jsxs)("fieldset",{className:D.fieldset,"data-field":"connection","aria-describedby":G("connection",`${a}-connection-hint`),children:[(0,u.jsx)("legend",{className:D.legend,id:`${a}-connection-legend`,children:k.connection}),"loading"===j.status?(0,u.jsx)("p",{className:D.note,role:"status",children:m}):"error"===j.status?(0,u.jsxs)("p",{className:D.note,role:"status",children:[n," ",(0,u.jsx)("button",{type:"button",className:D.button,onClick:o,children:"Retry"})]}):(0,u.jsxs)("select",{id:`${a}-connection`,className:D.control,"aria-labelledby":`${a}-connection-legend`,"aria-required":"true","aria-invalid":!!E("connection")||void 0,value:c.connectionId,onChange:a=>g({connectionId:a.target.value}),children:[(0,u.jsx)("option",{value:"",disabled:!0,children:"Select a connection…"}),j.connections.map(a=>(0,u.jsx)("option",{value:a.id,children:p(a)},a.id))]}),(0,u.jsx)("p",{id:`${a}-connection-hint`,className:D.hint,children:l.connection}),(0,u.jsx)(y,{id:F("connection"),message:E("connection"),variant:b}),"ready"===j.status?(0,u.jsx)(z,{idPrefix:a,variant:b,onAdd:async a=>{let b=await q(a);return"string"!=typeof b&&g({connectionId:b.id}),b}}):null]}),(0,u.jsxs)("fieldset",{className:D.fieldset,"data-field":"scope",children:[(0,u.jsx)("legend",{className:D.legend,id:`${a}-scope-legend`,children:k.scope}),(0,u.jsx)("div",{className:D.stack,role:"radiogroup","aria-labelledby":`${a}-scope-legend`,"aria-required":"true","aria-describedby":G("scope"),children:["workspaces","sessions","all_provider_sessions"].map(b=>(0,u.jsxs)("label",{className:D.pick,children:[(0,u.jsx)("input",{type:"radio",name:`${a}-scope`,value:b,checked:c.scopeKind===b,disabled:"sessions"===b&&!H,onChange:()=>g({scopeKind:b})})," "+f[b]]},b))}),H?null:(0,u.jsx)("p",{className:D.hint,children:l.noSessions}),(0,u.jsx)(y,{id:F("scope"),message:E("scope"),variant:b}),"workspaces"===c.scopeKind?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("label",{className:D.label,htmlFor:`${a}-workspaces`,children:"Workspaces"}),(0,u.jsx)("textarea",{id:`${a}-workspaces`,className:D.input||void 0,rows:2,value:c.workspaces,placeholder:"/Users/you/work/project","aria-required":"true","aria-invalid":!!E("workspaces")||void 0,"aria-describedby":G("workspaces",`${a}-workspaces-hint`),onChange:a=>g({workspaces:a.target.value})}),(0,u.jsx)("p",{id:`${a}-workspaces-hint`,className:D.hint,children:l.workspaces}),(0,u.jsx)(y,{id:F("workspaces"),message:E("workspaces"),variant:b})]}):null,"sessions"===c.scopeKind&&B?(0,u.jsxs)("div",{className:D.stack,role:"group","aria-label":"Sessions in scope","aria-describedby":G("sessions",`${a}-sessions-hint`),children:[B.map(a=>(0,u.jsxs)("label",{className:D.pick,children:[(0,u.jsx)("input",{type:"checkbox",checked:c.sessions.includes(a.ref),onChange:b=>g({sessions:b.target.checked?[...c.sessions,a.ref]:c.sessions.filter(b=>b!==a.ref)})}),` ${a.title} (${a.status})`]},a.ref)),(0,u.jsx)("p",{id:`${a}-sessions-hint`,className:D.hint,children:l.sessions}),(0,u.jsx)(y,{id:F("sessions"),message:E("sessions"),variant:b})]}):null,"all_provider_sessions"===c.scopeKind?(0,u.jsx)("p",{className:D.hint,children:l.allSessions}):null]}),(0,u.jsxs)("div",{"data-field":"default-workspace",children:[(0,u.jsx)("label",{className:D.label,htmlFor:`${a}-default-workspace`,children:k.defaultWorkspace}),(0,u.jsx)("input",{id:`${a}-default-workspace`,type:"text",className:D.input||void 0,value:c.defaultWorkspace,"aria-invalid":!!E("defaultWorkspace")||void 0,"aria-describedby":G("defaultWorkspace",`${a}-default-workspace-hint`),onChange:a=>g({defaultWorkspace:a.target.value})}),(0,u.jsx)("p",{id:`${a}-default-workspace-hint`,className:D.hint,children:l.defaultWorkspace}),(0,u.jsx)(y,{id:F("defaultWorkspace"),message:E("defaultWorkspace"),variant:b})]}),(0,u.jsxs)("fieldset",{className:D.fieldset,"data-field":"launch-profile",children:[(0,u.jsx)("legend",{className:D.legend,id:`${a}-profile-legend`,children:k.launchProfile}),(0,u.jsx)("div",{className:D.stack,role:"radiogroup","aria-labelledby":`${a}-profile-legend`,"aria-required":"true","aria-describedby":G("launchProfile"),children:["direct","agent_deck"].map(b=>(0,u.jsxs)("label",{className:D.pick,children:[(0,u.jsx)("input",{type:"radio",name:`${a}-profile`,value:b,checked:c.launchProfile===b,"aria-describedby":`${a}-profile-${b}-hint`,onChange:()=>g({launchProfile:b})})," "+d[b],(0,u.jsx)("span",{id:`${a}-profile-${b}-hint`,className:`reg-option-hint ${D.hint}`,children:"direct"===b?l.direct:l.agentDeck})]},b))}),(0,u.jsx)(y,{id:F("launchProfile"),message:E("launchProfile"),variant:b}),h.showsAgentDeck?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(w.AgentDeckFields,{idPrefix:a,variant:b,deckId:c.deckId,onDeckId:a=>g({deckId:a}),deckState:r,onRetry:s,savedDeckId:t,workingDirectory:c.workingDirectory,onWorkingDirectory:a=>g({workingDirectory:a}),workdirPlaceholder:v,workdirHint:A}),(0,u.jsx)(y,{id:F("deck"),message:E("deck"),variant:b})]}):null]}),(0,u.jsxs)("fieldset",{className:D.fieldset,"data-field":"policy",children:[(0,u.jsx)("legend",{className:D.legend,id:`${a}-policy-legend`,children:k.policy}),(0,u.jsx)("div",{className:D.picks,role:"radiogroup","aria-labelledby":`${a}-policy-legend`,children:["read_only","workspace_write"].map(b=>(0,u.jsxs)("label",{className:D.pick,children:[(0,u.jsx)("input",{type:"radio",name:`${a}-policy`,value:b,checked:c.policyMode===b,onChange:()=>g("read_only"===b?{policyMode:b,allowResumeWithEdits:!1}:{policyMode:b})})," "+e[b]]},b))}),(0,u.jsxs)("div",{className:D.stack,children:[(0,u.jsxs)("label",{className:D.pick,children:[(0,u.jsx)("input",{type:"checkbox",checked:c.allowNewSessions,onChange:a=>g({allowNewSessions:a.target.checked})})," Allow new sessions"]}),(0,u.jsxs)("label",{className:D.pick,children:[(0,u.jsx)("input",{type:"checkbox",checked:c.allowResumeWithEdits,disabled:"workspace_write"!==c.policyMode,"aria-describedby":`${a}-resume-hint`,onChange:a=>g({allowResumeWithEdits:a.target.checked})})," Allow resume with edits"]}),(0,u.jsx)("p",{id:`${a}-resume-hint`,className:D.hint,children:l.resumeEdits})]}),(0,u.jsx)(y,{id:F("policy"),message:E("policy"),variant:b})]}),C?(0,u.jsxs)("div",{"data-field":"home-session",children:[(0,u.jsx)("label",{className:D.label,htmlFor:`${a}-home-session`,children:k.homeSession}),(0,u.jsxs)("select",{id:`${a}-home-session`,className:D.control,value:c.homeSessionId,"aria-describedby":`${a}-home-session-hint`,onChange:a=>g({homeSessionId:a.target.value}),children:[(0,u.jsx)("option",{value:"",children:"None"}),(B??[]).map(a=>(0,u.jsx)("option",{value:a.ref,children:`${a.title} (${a.status})`},a.ref))]}),(0,u.jsx)("p",{id:`${a}-home-session-hint`,className:D.hint,children:l.homeSession})]}):null]})}],22855),a.s(["useRuntimeConnections",0,function(){let[a,b]=(0,v.useState)(()=>o()),[c,d]=(0,v.useState)(0);return(0,v.useEffect)(()=>{let a=!1;return fetch(j,{cache:"no-store"}).then(async c=>{let d=c.ok?q(await c.json().catch(()=>null)):null;a||b(d?{status:"ready",connections:d,error:""}:{status:"error",connections:[],error:`HTTP ${c.status}`})}).catch(c=>{a||b({status:"error",connections:[],error:c instanceof Error?c.message:String(c)})}),()=>{a=!0}},[c]),{state:a,retry:(0,v.useCallback)(()=>{b(o()),d(a=>a+1)},[]),add:(0,v.useCallback)(async a=>{let c=await fetch(j,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),d=await c.json().catch(()=>null);if(!c.ok)return"string"==typeof d?.error?d.error:"Failed to add the connection";let e=q({connections:[d]})?.[0];return e?(b(a=>({status:"ready",connections:[...a.connections,e],error:""})),e):"Failed to add the connection"},[])}}],79202)},80219,a=>{"use strict";let b="imported",c=/^[A-Za-z0-9_-]{1,128}$/;function d(a){let d=new URLSearchParams(a).get(b);if(null===d)return null;let e=d.trim();return c.test(e)?e:""}function e(a){return`/bots/${encodeURIComponent(a)}/config`}async function f(a,b,c){let f=d(a);if(null===f)return{kind:"none"};if(!f)return{kind:"missing"};if(f===b)return{kind:"stay"};try{return await c(f)?{kind:"open",path:e(f)}:{kind:"missing"}}catch{return{kind:"missing"}}}a.s(["HANDOFF_STATUS_PATH",0,"/api/marketplace-handoff/status","IMPORT_RETURN_QUERY",0,b,"handoffStartPath",0,function(a,b){return`/api/marketplace-handoff?return=${encodeURIComponent(a+b)}`},"importedBotId",0,d,"importedConfigPath",0,e,"marketImportView",0,function(a){switch(a){case"checking":return{busy:!0,tone:"muted",message:"Checking Grok Marketplace…"};case"redirecting":return{busy:!0,tone:"muted",message:"Opening Grok Marketplace…"};case"unavailable":return{busy:!1,tone:"error",message:"Grok Marketplace isn't configured. Set CLONE_MARKET_URL on the Botmancers server."};case"failed":return{busy:!1,tone:"error",message:"Couldn't reach Botmancers to start the import. Try again."};case"missing":return{busy:!1,tone:"error",message:"Imported agent not found. The import may not have completed."};default:return{busy:!1,tone:"muted",message:"Imports a new agent and opens its Config. This agent is not changed."}}},"resolveImportReturn",0,f])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_1n5mvo5._.js.map
|