botmancers 0.1.0 → 0.3.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 +71 -0
- package/README.md +214 -19
- package/app/.next/BUILD_ID +1 -0
- package/app/.next/app-path-routes-manifest.json +40 -0
- package/app/.next/build-manifest.json +24 -0
- package/app/.next/node_modules/better-sqlite3-90e2652d1716b047/index.js +1 -0
- package/app/.next/node_modules/better-sqlite3-90e2652d1716b047/package.json +1 -0
- package/app/.next/package.json +1 -0
- package/app/.next/prerender-manifest.json +125 -0
- package/app/.next/required-server-files.json +365 -0
- package/app/.next/routes-manifest.json +317 -0
- package/app/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
- package/app/.next/server/app/_global-error/page/build-manifest.json +20 -0
- package/app/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
- package/app/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
- package/app/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
- package/app/.next/server/app/_global-error/page.js +9 -0
- package/app/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
- package/app/.next/server/app/_global-error.html +1 -0
- package/app/.next/server/app/_global-error.meta +30 -0
- package/app/.next/server/app/_global-error.rsc +14 -0
- package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +19 -0
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/app/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
- package/app/.next/server/app/_not-found/page/build-manifest.json +20 -0
- package/app/.next/server/app/_not-found/page/next-font-manifest.json +11 -0
- package/app/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
- package/app/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
- package/app/.next/server/app/_not-found/page.js +12 -0
- package/app/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
- package/app/.next/server/app/_not-found.html +1 -0
- package/app/.next/server/app/_not-found.meta +35 -0
- package/app/.next/server/app/_not-found.rsc +16 -0
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +16 -0
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +22 -0
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -0
- package/app/.next/server/app/api/agent-deck/decks/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/agent-deck/decks/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/agent-deck/decks/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/agent-deck/decks/route.js +9 -0
- package/app/.next/server/app/api/agent-deck/decks/route.js.nft.json +1 -0
- package/app/.next/server/app/api/agent-deck/decks/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/agent-deck/settings/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/agent-deck/settings/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/agent-deck/settings/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/agent-deck/settings/route.js +9 -0
- package/app/.next/server/app/api/agent-deck/settings/route.js.nft.json +1 -0
- package/app/.next/server/app/api/agent-deck/settings/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/bots/[id]/config/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/bots/[id]/config/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/bots/[id]/config/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/bots/[id]/config/route.js +9 -0
- package/app/.next/server/app/api/bots/[id]/config/route.js.nft.json +1 -0
- package/app/.next/server/app/api/bots/[id]/config/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/bots/[id]/skill/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/bots/[id]/skill/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/bots/[id]/skill/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/bots/[id]/skill/route.js +9 -0
- package/app/.next/server/app/api/bots/[id]/skill/route.js.nft.json +1 -0
- package/app/.next/server/app/api/bots/[id]/skill/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/bots/availability/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/bots/availability/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/bots/availability/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/bots/availability/route.js +8 -0
- package/app/.next/server/app/api/bots/availability/route.js.nft.json +1 -0
- package/app/.next/server/app/api/bots/availability/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/bots/delete-preview/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/bots/delete-preview/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/bots/delete-preview/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/bots/delete-preview/route.js +9 -0
- package/app/.next/server/app/api/bots/delete-preview/route.js.nft.json +1 -0
- package/app/.next/server/app/api/bots/delete-preview/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/bots/import/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/bots/import/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/bots/import/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/bots/import/route.js +10 -0
- package/app/.next/server/app/api/bots/import/route.js.nft.json +1 -0
- package/app/.next/server/app/api/bots/import/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/bots/manage/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/bots/manage/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/bots/manage/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/bots/manage/route.js +9 -0
- package/app/.next/server/app/api/bots/manage/route.js.nft.json +1 -0
- package/app/.next/server/app/api/bots/manage/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/bots/name-migrations/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/bots/name-migrations/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/bots/name-migrations/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/bots/name-migrations/route.js +9 -0
- package/app/.next/server/app/api/bots/name-migrations/route.js.nft.json +1 -0
- package/app/.next/server/app/api/bots/name-migrations/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/bots/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/bots/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/bots/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/bots/route.js +15 -0
- package/app/.next/server/app/api/bots/route.js.nft.json +1 -0
- package/app/.next/server/app/api/bots/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/conversations/[id]/approve/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/conversations/[id]/approve/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/conversations/[id]/approve/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/conversations/[id]/approve/route.js +10 -0
- package/app/.next/server/app/api/conversations/[id]/approve/route.js.nft.json +1 -0
- package/app/.next/server/app/api/conversations/[id]/approve/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/conversations/[id]/deny/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/conversations/[id]/deny/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/conversations/[id]/deny/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/conversations/[id]/deny/route.js +10 -0
- package/app/.next/server/app/api/conversations/[id]/deny/route.js.nft.json +1 -0
- package/app/.next/server/app/api/conversations/[id]/deny/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/conversations/[id]/draft/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/conversations/[id]/draft/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/conversations/[id]/draft/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/conversations/[id]/draft/route.js +10 -0
- package/app/.next/server/app/api/conversations/[id]/draft/route.js.nft.json +1 -0
- package/app/.next/server/app/api/conversations/[id]/draft/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js +10 -0
- package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js.nft.json +1 -0
- package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/conversations/[id]/messages/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/conversations/[id]/messages/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/conversations/[id]/messages/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/conversations/[id]/messages/route.js +14 -0
- package/app/.next/server/app/api/conversations/[id]/messages/route.js.nft.json +1 -0
- package/app/.next/server/app/api/conversations/[id]/messages/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/conversations/[id]/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/conversations/[id]/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/conversations/[id]/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/conversations/[id]/route.js +9 -0
- package/app/.next/server/app/api/conversations/[id]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/conversations/[id]/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/conversations/[id]/stop/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/conversations/[id]/stop/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/conversations/[id]/stop/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/conversations/[id]/stop/route.js +14 -0
- package/app/.next/server/app/api/conversations/[id]/stop/route.js.nft.json +1 -0
- package/app/.next/server/app/api/conversations/[id]/stop/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/conversations/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/conversations/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/conversations/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/conversations/route.js +9 -0
- package/app/.next/server/app/api/conversations/route.js.nft.json +1 -0
- package/app/.next/server/app/api/conversations/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/files/[name]/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/files/[name]/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/files/[name]/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/files/[name]/route.js +7 -0
- package/app/.next/server/app/api/files/[name]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/files/[name]/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/groups/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/groups/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/groups/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/groups/route.js +9 -0
- package/app/.next/server/app/api/groups/route.js.nft.json +1 -0
- package/app/.next/server/app/api/groups/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/health/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/health/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/health/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/health/route.js +7 -0
- package/app/.next/server/app/api/health/route.js.nft.json +1 -0
- package/app/.next/server/app/api/health/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/import-capabilities/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/import-capabilities/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/import-capabilities/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/import-capabilities/route.js +7 -0
- package/app/.next/server/app/api/import-capabilities/route.js.nft.json +1 -0
- package/app/.next/server/app/api/import-capabilities/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/marketplace-handoff/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/marketplace-handoff/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/marketplace-handoff/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/marketplace-handoff/route.js +7 -0
- package/app/.next/server/app/api/marketplace-handoff/route.js.nft.json +1 -0
- package/app/.next/server/app/api/marketplace-handoff/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/marketplace-handoff/status/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/marketplace-handoff/status/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/marketplace-handoff/status/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/marketplace-handoff/status/route.js +7 -0
- package/app/.next/server/app/api/marketplace-handoff/status/route.js.nft.json +1 -0
- package/app/.next/server/app/api/marketplace-handoff/status/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/mcp/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/mcp/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/mcp/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/mcp/route.js +9 -0
- package/app/.next/server/app/api/mcp/route.js.nft.json +1 -0
- package/app/.next/server/app/api/mcp/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/messages/[id]/between/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/messages/[id]/between/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/messages/[id]/between/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/messages/[id]/between/route.js +9 -0
- package/app/.next/server/app/api/messages/[id]/between/route.js.nft.json +1 -0
- package/app/.next/server/app/api/messages/[id]/between/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/messages/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/messages/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/messages/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js +9 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/messages/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/conversations/[id]/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/conversations/[id]/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/conversations/[id]/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/conversations/[id]/route.js +9 -0
- package/app/.next/server/app/api/v0/conversations/[id]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/conversations/[id]/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/mcp/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/mcp/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/mcp/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/mcp/route.js +10 -0
- package/app/.next/server/app/api/v0/mcp/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/mcp/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/requests/[id]/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/requests/[id]/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/requests/[id]/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/requests/[id]/route.js +9 -0
- package/app/.next/server/app/api/v0/requests/[id]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/requests/[id]/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/wake-grants/[id]/revoke/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/wake-grants/[id]/revoke/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/wake-grants/[id]/revoke/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js +11 -0
- package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js.nft.json +1 -0
- package/app/.next/server/app/api/wake-grants/[id]/revoke/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/wakes/[id]/decision/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/wakes/[id]/decision/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/wakes/[id]/decision/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/wakes/[id]/decision/route.js +11 -0
- package/app/.next/server/app/api/wakes/[id]/decision/route.js.nft.json +1 -0
- package/app/.next/server/app/api/wakes/[id]/decision/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/wakes/[id]/retry/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/wakes/[id]/retry/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/wakes/[id]/retry/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/wakes/[id]/retry/route.js +11 -0
- package/app/.next/server/app/api/wakes/[id]/retry/route.js.nft.json +1 -0
- package/app/.next/server/app/api/wakes/[id]/retry/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/bots/[id]/config/page/app-paths-manifest.json +3 -0
- package/app/.next/server/app/bots/[id]/config/page/build-manifest.json +20 -0
- package/app/.next/server/app/bots/[id]/config/page/next-font-manifest.json +11 -0
- package/app/.next/server/app/bots/[id]/config/page/react-loadable-manifest.json +1 -0
- package/app/.next/server/app/bots/[id]/config/page/server-reference-manifest.json +4 -0
- package/app/.next/server/app/bots/[id]/config/page.js +13 -0
- package/app/.next/server/app/bots/[id]/config/page.js.nft.json +1 -0
- package/app/.next/server/app/bots/[id]/config/page_client-reference-manifest.js +3 -0
- package/app/.next/server/app/index.html +1 -0
- package/app/.next/server/app/index.meta +29 -0
- package/app/.next/server/app/index.rsc +20 -0
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +23 -0
- package/app/.next/server/app/index.segments/_full.segment.rsc +20 -0
- package/app/.next/server/app/index.segments/_tree.segment.rsc +4 -0
- package/app/.next/server/app/page/app-paths-manifest.json +3 -0
- package/app/.next/server/app/page/build-manifest.json +20 -0
- package/app/.next/server/app/page/next-font-manifest.json +11 -0
- package/app/.next/server/app/page/react-loadable-manifest.json +1 -0
- package/app/.next/server/app/page/server-reference-manifest.json +4 -0
- package/app/.next/server/app/page.js +13 -0
- package/app/.next/server/app/page.js.nft.json +1 -0
- package/app/.next/server/app/page_client-reference-manifest.js +3 -0
- package/app/.next/server/app/settings/page/app-paths-manifest.json +3 -0
- package/app/.next/server/app/settings/page/build-manifest.json +20 -0
- package/app/.next/server/app/settings/page/next-font-manifest.json +11 -0
- package/app/.next/server/app/settings/page/react-loadable-manifest.json +1 -0
- package/app/.next/server/app/settings/page/server-reference-manifest.json +4 -0
- package/app/.next/server/app/settings/page.js +13 -0
- package/app/.next/server/app/settings/page.js.nft.json +1 -0
- package/app/.next/server/app/settings/page_client-reference-manifest.js +3 -0
- package/app/.next/server/app/settings.html +1 -0
- package/app/.next/server/app/settings.meta +34 -0
- package/app/.next/server/app/settings.rsc +22 -0
- package/app/.next/server/app/settings.segments/_full.segment.rsc +22 -0
- package/app/.next/server/app/settings.segments/_tree.segment.rsc +4 -0
- package/app/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +26 -0
- package/app/.next/server/app-paths-manifest.json +40 -0
- package/app/.next/server/chunks/1jng_app_api_conversations_[id]_messages_[messageId]_stop_route_actions_1qahzxv.js +3 -0
- package/app/.next/server/chunks/[externals]__18bqksw._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__00ntari._.js +165 -0
- package/app/.next/server/chunks/[root-of-the-server]__07l_rgn._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__08i4wq6._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__09d-yrq._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0ab4e_k._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0d3fjix._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0izjfmr._.js +1424 -0
- package/app/.next/server/chunks/[root-of-the-server]__0qozubc._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__0za34e1._.js +7 -0
- package/app/.next/server/chunks/[root-of-the-server]__10m3szc._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__15bjnu5._.js +5 -0
- package/app/.next/server/chunks/[root-of-the-server]__17oz13o._.js +5 -0
- package/app/.next/server/chunks/[root-of-the-server]__19hjzs0._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1afl75n._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1fjpie4._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1khwkvb._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1kvvdpx._.js +7 -0
- package/app/.next/server/chunks/[root-of-the-server]__1qanlbg._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__1qoa704._.js +7 -0
- package/app/.next/server/chunks/[root-of-the-server]__1vxmbdl._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__20wve4_._.js +3 -0
- package/app/.next/server/chunks/[turbopack]_runtime.js +807 -0
- package/app/.next/server/chunks/_001yhxu._.js +3 -0
- package/app/.next/server/chunks/_09vfvrb._.js +4 -0
- package/app/.next/server/chunks/_0a2do3x._.js +3 -0
- package/app/.next/server/chunks/_0dc333_._.js +3 -0
- package/app/.next/server/chunks/_0ggf7vy._.js +3 -0
- package/app/.next/server/chunks/_0gtqbub._.js +3 -0
- package/app/.next/server/chunks/_0i7ga8c._.js +3 -0
- package/app/.next/server/chunks/_0orubev._.js +3 -0
- package/app/.next/server/chunks/_0sfpe9z._.js +3 -0
- package/app/.next/server/chunks/_0th2j4w._.js +3 -0
- package/app/.next/server/chunks/_0unhh2a._.js +3 -0
- package/app/.next/server/chunks/_1-5mthb._.js +3 -0
- package/app/.next/server/chunks/_199jbje._.js +3 -0
- package/app/.next/server/chunks/_1ee4ej2._.js +3 -0
- package/app/.next/server/chunks/_1esxu1s._.js +3 -0
- package/app/.next/server/chunks/_1gn7eh7._.js +3 -0
- package/app/.next/server/chunks/_1gw7qwf._.js +3 -0
- package/app/.next/server/chunks/_1ho6alp._.js +3 -0
- package/app/.next/server/chunks/_1inyx08._.js +3 -0
- package/app/.next/server/chunks/_1kjsnlr._.js +3 -0
- package/app/.next/server/chunks/_1p8rola._.js +3 -0
- package/app/.next/server/chunks/_1t5yl-5._.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_agent-deck_decks_route_actions_0yguyfv.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_agent-deck_settings_route_actions_0z_nbkb.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_config_route_actions_0ze4d5o.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_skill_route_actions_0g0-9mf.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_bots_availability_route_actions_1i4p_al.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_bots_delete-preview_route_actions_1_i3b_g.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_bots_import_route_actions_1rvqr5o.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_bots_manage_route_actions_1w4bk3a.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_bots_name-migrations_route_actions_1pbn_xd.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_bots_route_actions_0nc-7_e.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_conversations_[id]_approve_route_actions_0bn9gyy.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_conversations_[id]_deny_route_actions_0028jzm.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_conversations_[id]_draft_route_actions_0-i84n9.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_conversations_[id]_messages_route_actions_18znalg.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_conversations_[id]_route_actions_1d9cstb.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_conversations_[id]_stop_route_actions_01th9do.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_conversations_route_actions_1-pu7gs.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_files_[name]_route_actions_0_4hwjw.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_groups_route_actions_1g3bvao.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_health_route_actions_1ryftkb.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_import-capabilities_route_actions_0ojiaoa.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_marketplace-handoff_route_actions_06sqt8e.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_marketplace-handoff_status_route_actions_1wspmjr.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_mcp_route_actions_1thtluk.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_messages_[id]_between_route_actions_1fh_y5e.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_[agentId]_messages_route_actions_04p39zy.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_conversations_[id]_route_actions_1p4d001.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_mcp_route_actions_0rqg06l.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_requests_[id]_route_actions_0goo151.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_wake-grants_[id]_revoke_route_actions_0esbzxd.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_wakes_[id]_decision_route_actions_0torew3.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_wakes_[id]_retry_route_actions_0hrpzfl.js +3 -0
- package/app/.next/server/chunks/app_api_import-capabilities_route_ts_013w1kt._.js +3 -0
- package/app/.next/server/chunks/lib_051fv4x._.js +111 -0
- package/app/.next/server/chunks/lib_07adeq3._.js +111 -0
- package/app/.next/server/chunks/lib_0kik6bx._.js +59 -0
- package/app/.next/server/chunks/lib_0pe3tiv._.js +59 -0
- package/app/.next/server/chunks/lib_0v6lblw._.js +5 -0
- package/app/.next/server/chunks/lib_bot-deletion_ts_0zx9yv7._.js +3 -0
- package/app/.next/server/chunks/lib_draft_ts_1atoius._.js +3 -0
- package/app/.next/server/chunks/node_modules_next_1zc5q0a._.js +158 -0
- package/app/.next/server/chunks/ssr/[root-of-the-server]__029oxo_._.js +3 -0
- package/app/.next/server/chunks/ssr/[root-of-the-server]__07-2zug._.js +3 -0
- package/app/.next/server/chunks/ssr/[root-of-the-server]__0_wvthf._.js +3 -0
- package/app/.next/server/chunks/ssr/[root-of-the-server]__0gz0l81._.js +14 -0
- package/app/.next/server/chunks/ssr/[root-of-the-server]__0sq4frf._.js +3 -0
- package/app/.next/server/chunks/ssr/[root-of-the-server]__194qvx8._.js +3 -0
- package/app/.next/server/chunks/ssr/[root-of-the-server]__1aesokn._.js +3 -0
- package/app/.next/server/chunks/ssr/[root-of-the-server]__1io3bae._.js +33 -0
- package/app/.next/server/chunks/ssr/[root-of-the-server]__1x7o-fe._.js +33 -0
- package/app/.next/server/chunks/ssr/[root-of-the-server]__1ypl2q0._.js +3 -0
- package/app/.next/server/chunks/ssr/[turbopack]_runtime.js +807 -0
- package/app/.next/server/chunks/ssr/_0k_7i66._.js +131 -0
- package/app/.next/server/chunks/ssr/_1flnty7._.js +23 -0
- package/app/.next/server/chunks/ssr/_1o94bnv._.js +5 -0
- package/app/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js +3 -0
- package/app/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js +3 -0
- package/app/.next/server/chunks/ssr/_next-internal_server_app_bots_[id]_config_page_actions_0lfijvr.js +3 -0
- package/app/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1j.js +3 -0
- package/app/.next/server/chunks/ssr/_next-internal_server_app_settings_page_actions_11x4dq5.js +3 -0
- package/app/.next/server/chunks/ssr/app_components_0bhuhd-._.js +3 -0
- package/app/.next/server/chunks/ssr/app_components_0w2_b3t._.js +3 -0
- package/app/.next/server/chunks/ssr/app_settings_page_tsx_1t-rdz-._.js +3 -0
- package/app/.next/server/chunks/ssr/node_modules_1wax83z._.js +33 -0
- package/app/.next/server/chunks/ssr/node_modules_@swc_helpers_cjs__interop_require_default_cjs_1ztp13a._.js +3 -0
- package/app/.next/server/chunks/ssr/node_modules_next_dist_0nkkbfv._.js +6 -0
- package/app/.next/server/chunks/ssr/node_modules_next_dist_1v8aef8._.js +3 -0
- package/app/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js +3 -0
- package/app/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js +3 -0
- package/app/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892.js +3 -0
- package/app/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js +3 -0
- package/app/.next/server/chunks/ssr/node_modules_next_dist_client_components_server-async-storage_0t1dato.js +3 -0
- package/app/.next/server/functions-config-manifest.json +14 -0
- package/app/.next/server/middleware-build-manifest.js +24 -0
- package/app/.next/server/middleware-manifest.json +6 -0
- package/app/.next/server/middleware.js +5 -0
- package/app/.next/server/next-font-manifest.js +1 -0
- package/app/.next/server/next-font-manifest.json +23 -0
- package/app/.next/server/pages/404.html +1 -0
- package/app/.next/server/pages/500.html +1 -0
- package/app/.next/server/pages-manifest.json +4 -0
- package/app/.next/server/prefetch-hints.json +48 -0
- package/app/.next/server/server-reference-manifest.js +1 -0
- package/app/.next/server/server-reference-manifest.json +5 -0
- package/app/.next/static/chunks/0774d7ob6aze_.js +1 -0
- package/app/.next/static/chunks/0cz1d0mv5g_q7.js +1 -0
- package/app/.next/static/chunks/0d3ein53nlgja.js +1 -0
- package/app/.next/static/chunks/0qbtymorcz-l9.js +3 -0
- package/app/.next/static/chunks/19mx3mg6lkumu.js +1 -0
- package/app/.next/static/chunks/2z-e6jheq0ftu.js +22 -0
- package/app/.next/static/chunks/3fntmmi971322.js +1 -0
- package/app/.next/static/chunks/3g4px251sg85e.js +1 -0
- package/app/.next/static/chunks/3s6nzrbk-8mnv.js +31 -0
- package/app/.next/static/chunks/3wdlh25l1vww9.js +1 -0
- package/app/.next/static/chunks/3zqbpbm93yqzh.css +3 -0
- package/app/.next/static/chunks/turbopack-03rfayxv7ep_b.js +1 -0
- package/app/.next/static/media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2 +0 -0
- package/app/.next/static/media/53b9e256198e5412-s.390ncx5urfkfu.woff2 +0 -0
- package/app/.next/static/media/5ce348bf30bf5439-s.31988l_ccedte.woff2 +0 -0
- package/app/.next/static/media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2 +0 -0
- package/app/.next/static/media/7178b3e590c64307-s.21jp631_3pja2.woff2 +0 -0
- package/app/.next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2 +0 -0
- package/app/.next/static/media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2 +0 -0
- package/app/.next/static/media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2 +0 -0
- package/app/.next/static/media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2 +0 -0
- package/app/.next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2 +0 -0
- package/app/.next/static/media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2 +0 -0
- package/app/.next/static/u4r8RPgEfpxk-DGXeKV6g/_buildManifest.js +16 -0
- package/app/.next/static/u4r8RPgEfpxk-DGXeKV6g/_clientMiddlewareManifest.js +6 -0
- package/app/.next/static/u4r8RPgEfpxk-DGXeKV6g/_ssgManifest.js +1 -0
- package/app/BUILD_INFO.json +7 -0
- package/app/node_modules/@next/env/dist/index.js +1 -0
- package/app/node_modules/@next/env/package.json +36 -0
- package/app/node_modules/@swc/helpers/cjs/_interop_require_default.cjs +6 -0
- package/app/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs +38 -0
- package/app/node_modules/@swc/helpers/esm/_interop_require_default.js +4 -0
- package/app/node_modules/@swc/helpers/esm/_interop_require_wildcard.js +36 -0
- package/app/node_modules/@swc/helpers/package.json +705 -0
- package/app/node_modules/better-sqlite3/LICENSE +21 -0
- package/app/node_modules/better-sqlite3/lib/binding.js +62 -0
- package/app/node_modules/better-sqlite3/lib/darwin-arm64.js +3 -0
- package/app/node_modules/better-sqlite3/lib/darwin-x64.js +3 -0
- package/app/node_modules/better-sqlite3/lib/database.js +109 -0
- package/app/node_modules/better-sqlite3/lib/index.js +3 -0
- package/app/node_modules/better-sqlite3/lib/linux-arm64.js +3 -0
- package/app/node_modules/better-sqlite3/lib/linux-x64.js +3 -0
- package/app/node_modules/better-sqlite3/lib/linuxmusl-arm64.js +4 -0
- package/app/node_modules/better-sqlite3/lib/linuxmusl-x64.js +4 -0
- package/app/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
- package/app/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
- package/app/node_modules/better-sqlite3/lib/methods/explain.js +9 -0
- package/app/node_modules/better-sqlite3/lib/methods/function.js +31 -0
- package/app/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
- package/app/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
- package/app/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
- package/app/node_modules/better-sqlite3/lib/methods/table.js +195 -0
- package/app/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
- package/app/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
- package/app/node_modules/better-sqlite3/lib/sqlite-error.js +25 -0
- package/app/node_modules/better-sqlite3/lib/util.js +12 -0
- package/app/node_modules/better-sqlite3/lib/win32-arm64.js +3 -0
- package/app/node_modules/better-sqlite3/lib/win32-x64.js +3 -0
- package/app/node_modules/better-sqlite3/package.json +67 -0
- package/app/node_modules/better-sqlite3/prebuilds/darwin-arm64.node +0 -0
- package/app/node_modules/better-sqlite3/prebuilds/darwin-x64.node +0 -0
- package/app/node_modules/better-sqlite3/prebuilds/linux-arm64.node +0 -0
- package/app/node_modules/better-sqlite3/prebuilds/linux-x64.node +0 -0
- package/app/node_modules/better-sqlite3/prebuilds/linuxmusl-arm64.node +0 -0
- package/app/node_modules/better-sqlite3/prebuilds/linuxmusl-x64.node +0 -0
- package/app/node_modules/better-sqlite3/prebuilds/win32-arm64.node +0 -0
- package/app/node_modules/better-sqlite3/prebuilds/win32-x64.node +0 -0
- package/app/node_modules/client-only/index.js +0 -0
- package/app/node_modules/client-only/package.json +19 -0
- package/app/node_modules/next/dist/build/adapter/setup-node-env.external.js +15 -0
- package/app/node_modules/next/dist/build/define-env.js +263 -0
- package/app/node_modules/next/dist/build/duration-to-string.js +98 -0
- package/app/node_modules/next/dist/build/get-supported-browsers.js +38 -0
- package/app/node_modules/next/dist/build/next-config-ts/require-hook.js +85 -0
- package/app/node_modules/next/dist/build/next-config-ts/transpile-config.js +140 -0
- package/app/node_modules/next/dist/build/output/format.js +84 -0
- package/app/node_modules/next/dist/build/output/log.js +135 -0
- package/app/node_modules/next/dist/build/segment-config/app/app-segment-config.js +178 -0
- package/app/node_modules/next/dist/build/segment-config/app/app-segments.js +147 -0
- package/app/node_modules/next/dist/build/segment-config/app/collect-root-param-keys.js +52 -0
- package/app/node_modules/next/dist/build/static-paths/app/extract-pathname-route-param-segments-from-loader-tree.js +137 -0
- package/app/node_modules/next/dist/build/static-paths/app.js +783 -0
- package/app/node_modules/next/dist/build/static-paths/pages.js +169 -0
- package/app/node_modules/next/dist/build/static-paths/utils.js +119 -0
- package/app/node_modules/next/dist/build/swc/helpers.js +15 -0
- package/app/node_modules/next/dist/build/swc/index.js +1409 -0
- package/app/node_modules/next/dist/build/swc/install-bindings.js +30 -0
- package/app/node_modules/next/dist/build/swc/jest-transformer.js +77 -0
- package/app/node_modules/next/dist/build/swc/loaderWorkerPool.js +40 -0
- package/app/node_modules/next/dist/build/swc/options.js +411 -0
- package/app/node_modules/next/dist/build/swc/types.js +6 -0
- package/app/node_modules/next/dist/build/utils.js +1258 -0
- package/app/node_modules/next/dist/cli/next-test.js +171 -0
- package/app/node_modules/next/dist/client/add-base-path.js +24 -0
- package/app/node_modules/next/dist/client/app-call-server.js +34 -0
- package/app/node_modules/next/dist/client/app-find-source-map-url.js +39 -0
- package/app/node_modules/next/dist/client/assign-location.js +29 -0
- package/app/node_modules/next/dist/client/components/app-router-announcer.js +78 -0
- package/app/node_modules/next/dist/client/components/app-router-headers.js +128 -0
- package/app/node_modules/next/dist/client/components/app-router-instance.js +407 -0
- package/app/node_modules/next/dist/client/components/app-router-utils.js +62 -0
- package/app/node_modules/next/dist/client/components/app-router.js +522 -0
- package/app/node_modules/next/dist/client/components/builtin/default.js +35 -0
- package/app/node_modules/next/dist/client/components/builtin/error-styles.js +165 -0
- package/app/node_modules/next/dist/client/components/builtin/global-error.js +100 -0
- package/app/node_modules/next/dist/client/components/dev-root-http-access-fallback-boundary.js +52 -0
- package/app/node_modules/next/dist/client/components/error-boundary.js +148 -0
- package/app/node_modules/next/dist/client/components/errors/graceful-degrade-boundary.js +86 -0
- package/app/node_modules/next/dist/client/components/errors/root-error-boundary.js +41 -0
- package/app/node_modules/next/dist/client/components/forbidden.js +48 -0
- package/app/node_modules/next/dist/client/components/handle-isr-error.js +30 -0
- package/app/node_modules/next/dist/client/components/hooks-server-context.js +42 -0
- package/app/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js +125 -0
- package/app/node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js +72 -0
- package/app/node_modules/next/dist/client/components/instant-samples.js +134 -0
- package/app/node_modules/next/dist/client/components/is-next-router-error.js +23 -0
- package/app/node_modules/next/dist/client/components/links.js +316 -0
- package/app/node_modules/next/dist/client/components/match-segments.js +32 -0
- package/app/node_modules/next/dist/client/components/nav-failure-handler.js +61 -0
- package/app/node_modules/next/dist/client/components/navigation-devtools.js +126 -0
- package/app/node_modules/next/dist/client/components/navigation-dynamic-rendering.js +38 -0
- package/app/node_modules/next/dist/client/components/navigation-untracked.js +69 -0
- package/app/node_modules/next/dist/client/components/navigation.js +246 -0
- package/app/node_modules/next/dist/client/components/navigation.react-server.js +75 -0
- package/app/node_modules/next/dist/client/components/not-found.js +42 -0
- package/app/node_modules/next/dist/client/components/offline.js +172 -0
- package/app/node_modules/next/dist/client/components/readonly-url-search-params.js +46 -0
- package/app/node_modules/next/dist/client/components/redirect-boundary.js +107 -0
- package/app/node_modules/next/dist/client/components/redirect-error.js +43 -0
- package/app/node_modules/next/dist/client/components/redirect-status-code.js +24 -0
- package/app/node_modules/next/dist/client/components/redirect.js +91 -0
- package/app/node_modules/next/dist/client/components/router-reducer/compute-changed-path.js +205 -0
- package/app/node_modules/next/dist/client/components/router-reducer/create-href-from-url.js +21 -0
- package/app/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js +161 -0
- package/app/node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js +32 -0
- package/app/node_modules/next/dist/client/components/router-reducer/fetch-server-response.js +603 -0
- package/app/node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js +70 -0
- package/app/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js +1474 -0
- package/app/node_modules/next/dist/client/components/router-reducer/reducers/committed-state.js +49 -0
- package/app/node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js +63 -0
- package/app/node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js +38 -0
- package/app/node_modules/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js +29 -0
- package/app/node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js +56 -0
- package/app/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js +90 -0
- package/app/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js +75 -0
- package/app/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js +349 -0
- package/app/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js +67 -0
- package/app/node_modules/next/dist/client/components/router-reducer/router-reducer-types.js +70 -0
- package/app/node_modules/next/dist/client/components/router-reducer/router-reducer.js +74 -0
- package/app/node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js +66 -0
- package/app/node_modules/next/dist/client/components/router-transition.js +135 -0
- package/app/node_modules/next/dist/client/components/segment-cache/bfcache.js +130 -0
- package/app/node_modules/next/dist/client/components/segment-cache/cache-key.js +56 -0
- package/app/node_modules/next/dist/client/components/segment-cache/cache-map.js +326 -0
- package/app/node_modules/next/dist/client/components/segment-cache/cache.js +2684 -0
- package/app/node_modules/next/dist/client/components/segment-cache/fetch.js +37 -0
- package/app/node_modules/next/dist/client/components/segment-cache/lru.js +152 -0
- package/app/node_modules/next/dist/client/components/segment-cache/navigation-testing-lock.js +415 -0
- package/app/node_modules/next/dist/client/components/segment-cache/navigation.js +773 -0
- package/app/node_modules/next/dist/client/components/segment-cache/optimistic-routes.js +648 -0
- package/app/node_modules/next/dist/client/components/segment-cache/prefetch.js +32 -0
- package/app/node_modules/next/dist/client/components/segment-cache/scheduler.js +1770 -0
- package/app/node_modules/next/dist/client/components/segment-cache/types.js +84 -0
- package/app/node_modules/next/dist/client/components/segment-cache/vary-path.js +326 -0
- package/app/node_modules/next/dist/client/components/server-async-storage.js +43 -0
- package/app/node_modules/next/dist/client/components/static-generation-bailout.js +42 -0
- package/app/node_modules/next/dist/client/components/unauthorized.js +49 -0
- package/app/node_modules/next/dist/client/components/unrecognized-action-error.js +39 -0
- package/app/node_modules/next/dist/client/components/unresolved-thenable.js +23 -0
- package/app/node_modules/next/dist/client/components/unstable-rethrow.js +32 -0
- package/app/node_modules/next/dist/client/components/use-action-queue.js +148 -0
- package/app/node_modules/next/dist/client/components/use-offline.js +68 -0
- package/app/node_modules/next/dist/client/dev/debug-channel.js +428 -0
- package/app/node_modules/next/dist/client/flight-data-helpers.js +235 -0
- package/app/node_modules/next/dist/client/has-base-path.js +23 -0
- package/app/node_modules/next/dist/client/lib/console.js +177 -0
- package/app/node_modules/next/dist/client/lib/javascript-url.js +32 -0
- package/app/node_modules/next/dist/client/navigation-build-id.js +53 -0
- package/app/node_modules/next/dist/client/normalize-trailing-slash.js +37 -0
- package/app/node_modules/next/dist/client/remove-base-path.js +32 -0
- package/app/node_modules/next/dist/client/route-params.js +249 -0
- package/app/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js +339 -0
- package/app/node_modules/next/dist/compiled/@edge-runtime/cookies/package.json +1 -0
- package/app/node_modules/next/dist/compiled/@edge-runtime/ponyfill/index.js +46 -0
- package/app/node_modules/next/dist/compiled/@edge-runtime/ponyfill/package.json +1 -0
- package/app/node_modules/next/dist/compiled/@edge-runtime/primitives/abort-controller.js.text.js +1 -0
- package/app/node_modules/next/dist/compiled/@edge-runtime/primitives/console.js.text.js +1 -0
- package/app/node_modules/next/dist/compiled/@edge-runtime/primitives/events.js.text.js +1 -0
- package/app/node_modules/next/dist/compiled/@edge-runtime/primitives/index.js +5 -0
- package/app/node_modules/next/dist/compiled/@edge-runtime/primitives/load.js +18713 -0
- package/app/node_modules/next/dist/compiled/@edge-runtime/primitives/package.json +1 -0
- package/app/node_modules/next/dist/compiled/@edge-runtime/primitives/stream.js +44 -0
- package/app/node_modules/next/dist/compiled/@edge-runtime/primitives/timers.js.text.js +1 -0
- package/app/node_modules/next/dist/compiled/@edge-runtime/primitives/url.js.text.js +1 -0
- package/app/node_modules/next/dist/compiled/@hapi/accept/index.js +1 -0
- package/app/node_modules/next/dist/compiled/@hapi/accept/package.json +1 -0
- package/app/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/index.js +1 -0
- package/app/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/package.json +1 -0
- package/app/node_modules/next/dist/compiled/@napi-rs/triples/index.js +1 -0
- package/app/node_modules/next/dist/compiled/@napi-rs/triples/package.json +1 -0
- package/app/node_modules/next/dist/compiled/@opentelemetry/api/index.js +1 -0
- package/app/node_modules/next/dist/compiled/@opentelemetry/api/package.json +1 -0
- package/app/node_modules/next/dist/compiled/@vercel/detect-agent/index.js +1 -0
- package/app/node_modules/next/dist/compiled/@vercel/detect-agent/package.json +1 -0
- package/app/node_modules/next/dist/compiled/async-retry/index.js +1 -0
- package/app/node_modules/next/dist/compiled/async-retry/package.json +1 -0
- package/app/node_modules/next/dist/compiled/async-sema/index.js +1 -0
- package/app/node_modules/next/dist/compiled/async-sema/package.json +1 -0
- package/app/node_modules/next/dist/compiled/busboy/index.js +1 -0
- package/app/node_modules/next/dist/compiled/busboy/package.json +1 -0
- package/app/node_modules/next/dist/compiled/bytes/index.js +8 -0
- package/app/node_modules/next/dist/compiled/bytes/package.json +1 -0
- package/app/node_modules/next/dist/compiled/ci-info/index.js +1 -0
- package/app/node_modules/next/dist/compiled/ci-info/package.json +1 -0
- package/app/node_modules/next/dist/compiled/commander/index.js +1 -0
- package/app/node_modules/next/dist/compiled/commander/package.json +1 -0
- package/app/node_modules/next/dist/compiled/comment-json/index.js +7 -0
- package/app/node_modules/next/dist/compiled/comment-json/package.json +1 -0
- package/app/node_modules/next/dist/compiled/compression/index.js +58 -0
- package/app/node_modules/next/dist/compiled/compression/package.json +1 -0
- package/app/node_modules/next/dist/compiled/conf/index.js +3 -0
- package/app/node_modules/next/dist/compiled/conf/package.json +1 -0
- package/app/node_modules/next/dist/compiled/content-disposition/index.js +6 -0
- package/app/node_modules/next/dist/compiled/content-disposition/package.json +1 -0
- package/app/node_modules/next/dist/compiled/cookie/index.js +7 -0
- package/app/node_modules/next/dist/compiled/cookie/package.json +1 -0
- package/app/node_modules/next/dist/compiled/cross-spawn/index.js +1 -0
- package/app/node_modules/next/dist/compiled/cross-spawn/package.json +1 -0
- package/app/node_modules/next/dist/compiled/debug/index.js +1 -0
- package/app/node_modules/next/dist/compiled/debug/package.json +1 -0
- package/app/node_modules/next/dist/compiled/edge-runtime/index.js +1 -0
- package/app/node_modules/next/dist/compiled/edge-runtime/package.json +1 -0
- package/app/node_modules/next/dist/compiled/find-up/index.js +1 -0
- package/app/node_modules/next/dist/compiled/find-up/package.json +1 -0
- package/app/node_modules/next/dist/compiled/fresh/index.js +8 -0
- package/app/node_modules/next/dist/compiled/fresh/package.json +1 -0
- package/app/node_modules/next/dist/compiled/hash.js/sha256/256.js +1 -0
- package/app/node_modules/next/dist/compiled/hash.js/sha256/package.json +1 -0
- package/app/node_modules/next/dist/compiled/httpxy/index.js +1 -0
- package/app/node_modules/next/dist/compiled/httpxy/package.json +1 -0
- package/app/node_modules/next/dist/compiled/image-detector/detector.js +1 -0
- package/app/node_modules/next/dist/compiled/image-size/index.js +1 -0
- package/app/node_modules/next/dist/compiled/image-size/package.json +1 -0
- package/app/node_modules/next/dist/compiled/ipaddr.js/ipaddr.js +1 -0
- package/app/node_modules/next/dist/compiled/ipaddr.js/package.json +1 -0
- package/app/node_modules/next/dist/compiled/is-animated/index.js +1 -0
- package/app/node_modules/next/dist/compiled/is-animated/package.json +1 -0
- package/app/node_modules/next/dist/compiled/is-docker/index.js +1 -0
- package/app/node_modules/next/dist/compiled/is-docker/package.json +1 -0
- package/app/node_modules/next/dist/compiled/is-wsl/index.js +1 -0
- package/app/node_modules/next/dist/compiled/is-wsl/package.json +1 -0
- package/app/node_modules/next/dist/compiled/jsonwebtoken/index.js +11 -0
- package/app/node_modules/next/dist/compiled/jsonwebtoken/package.json +1 -0
- package/app/node_modules/next/dist/compiled/nanoid/index.cjs +1 -0
- package/app/node_modules/next/dist/compiled/nanoid/package.json +1 -0
- package/app/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +183 -0
- package/app/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +183 -0
- package/app/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +6 -0
- package/app/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +20 -0
- package/app/node_modules/next/dist/compiled/p-limit/index.js +1 -0
- package/app/node_modules/next/dist/compiled/p-limit/package.json +1 -0
- package/app/node_modules/next/dist/compiled/p-queue/index.js +1 -0
- package/app/node_modules/next/dist/compiled/p-queue/package.json +1 -0
- package/app/node_modules/next/dist/compiled/path-browserify/index.js +1 -0
- package/app/node_modules/next/dist/compiled/path-browserify/package.json +1 -0
- package/app/node_modules/next/dist/compiled/path-to-regexp/index.js +1 -0
- package/app/node_modules/next/dist/compiled/path-to-regexp/package.json +1 -0
- package/app/node_modules/next/dist/compiled/picomatch/index.js +1 -0
- package/app/node_modules/next/dist/compiled/picomatch/package.json +1 -0
- package/app/node_modules/next/dist/compiled/react-is/cjs/react-is.development.js +133 -0
- package/app/node_modules/next/dist/compiled/react-is/cjs/react-is.production.js +130 -0
- package/app/node_modules/next/dist/compiled/react-is/index.js +7 -0
- package/app/node_modules/next/dist/compiled/react-is/package.json +26 -0
- package/app/node_modules/next/dist/compiled/regenerator-runtime/package.json +19 -0
- package/app/node_modules/next/dist/compiled/regenerator-runtime/runtime.js +729 -0
- package/app/node_modules/next/dist/compiled/semver/index.js +1 -0
- package/app/node_modules/next/dist/compiled/semver/package.json +1 -0
- package/app/node_modules/next/dist/compiled/send/index.js +70 -0
- package/app/node_modules/next/dist/compiled/send/package.json +1 -0
- package/app/node_modules/next/dist/compiled/source-map/package.json +1 -0
- package/app/node_modules/next/dist/compiled/source-map/source-map.js +1 -0
- package/app/node_modules/next/dist/compiled/stacktrace-parser/package.json +1 -0
- package/app/node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js +1 -0
- package/app/node_modules/next/dist/compiled/string-hash/index.js +1 -0
- package/app/node_modules/next/dist/compiled/string-hash/package.json +1 -0
- package/app/node_modules/next/dist/compiled/strip-ansi/index.js +1 -0
- package/app/node_modules/next/dist/compiled/strip-ansi/package.json +1 -0
- package/app/node_modules/next/dist/compiled/superstruct/index.cjs +1 -0
- package/app/node_modules/next/dist/compiled/superstruct/package.json +1 -0
- package/app/node_modules/next/dist/compiled/tar/index.min.js +1 -0
- package/app/node_modules/next/dist/compiled/tar/package.json +1 -0
- package/app/node_modules/next/dist/compiled/text-table/index.js +1 -0
- package/app/node_modules/next/dist/compiled/text-table/package.json +1 -0
- package/app/node_modules/next/dist/compiled/watchpack/package.json +1 -0
- package/app/node_modules/next/dist/compiled/watchpack/watchpack.js +1 -0
- package/app/node_modules/next/dist/compiled/write-file-atomic/index.js +1 -0
- package/app/node_modules/next/dist/compiled/write-file-atomic/package.json +1 -0
- package/app/node_modules/next/dist/compiled/ws/index.js +1 -0
- package/app/node_modules/next/dist/compiled/ws/package.json +1 -0
- package/app/node_modules/next/dist/compiled/zod/index.cjs +1 -0
- package/app/node_modules/next/dist/compiled/zod/package.json +1 -0
- package/app/node_modules/next/dist/compiled/zod-validation-error/index.js +1 -0
- package/app/node_modules/next/dist/compiled/zod-validation-error/package.json +1 -0
- package/app/node_modules/next/dist/experimental/testmode/context.js +57 -0
- package/app/node_modules/next/dist/experimental/testmode/fetch.js +158 -0
- package/app/node_modules/next/dist/experimental/testmode/httpget.js +33 -0
- package/app/node_modules/next/dist/experimental/testmode/server-edge.js +32 -0
- package/app/node_modules/next/dist/experimental/testmode/server.js +73 -0
- package/app/node_modules/next/dist/export/helpers/create-incremental-cache.js +61 -0
- package/app/node_modules/next/dist/lib/batcher.js +65 -0
- package/app/node_modules/next/dist/lib/build-custom-route.js +46 -0
- package/app/node_modules/next/dist/lib/bundler.js +168 -0
- package/app/node_modules/next/dist/lib/client-and-server-references.js +54 -0
- package/app/node_modules/next/dist/lib/coalesced-function.js +39 -0
- package/app/node_modules/next/dist/lib/compile-error.js +14 -0
- package/app/node_modules/next/dist/lib/constants.js +420 -0
- package/app/node_modules/next/dist/lib/create-client-router-filter.js +83 -0
- package/app/node_modules/next/dist/lib/default-transpiled-packages.json +1 -0
- package/app/node_modules/next/dist/lib/detached-promise.js +32 -0
- package/app/node_modules/next/dist/lib/detect-typo.js +51 -0
- package/app/node_modules/next/dist/lib/download-swc.js +183 -0
- package/app/node_modules/next/dist/lib/error-telemetry-utils.js +42 -0
- package/app/node_modules/next/dist/lib/fallback.js +100 -0
- package/app/node_modules/next/dist/lib/file-exists.js +53 -0
- package/app/node_modules/next/dist/lib/find-config.js +102 -0
- package/app/node_modules/next/dist/lib/find-pages-dir.js +65 -0
- package/app/node_modules/next/dist/lib/find-root.js +280 -0
- package/app/node_modules/next/dist/lib/format-cli-help-output.js +84 -0
- package/app/node_modules/next/dist/lib/format-dynamic-import-path.js +43 -0
- package/app/node_modules/next/dist/lib/format-server-error.js +75 -0
- package/app/node_modules/next/dist/lib/framework/boundary-components.js +62 -0
- package/app/node_modules/next/dist/lib/framework/boundary-constants.js +36 -0
- package/app/node_modules/next/dist/lib/fs/rename.js +87 -0
- package/app/node_modules/next/dist/lib/fs/write-atomic.js +28 -0
- package/app/node_modules/next/dist/lib/generate-interception-routes-rewrites.js +52 -0
- package/app/node_modules/next/dist/lib/get-files-in-dir.js +33 -0
- package/app/node_modules/next/dist/lib/get-network-host.js +44 -0
- package/app/node_modules/next/dist/lib/get-package-version.js +118 -0
- package/app/node_modules/next/dist/lib/get-project-dir.js +51 -0
- package/app/node_modules/next/dist/lib/git-worktree.js +74 -0
- package/app/node_modules/next/dist/lib/has-necessary-dependencies.js +49 -0
- package/app/node_modules/next/dist/lib/helpers/get-cache-directory.js +66 -0
- package/app/node_modules/next/dist/lib/helpers/get-npx-command.js +29 -0
- package/app/node_modules/next/dist/lib/helpers/get-online.js +50 -0
- package/app/node_modules/next/dist/lib/helpers/get-pkg-manager.js +65 -0
- package/app/node_modules/next/dist/lib/helpers/get-registry.js +45 -0
- package/app/node_modules/next/dist/lib/helpers/get-reserved-port.js +116 -0
- package/app/node_modules/next/dist/lib/helpers/git.js +59 -0
- package/app/node_modules/next/dist/lib/helpers/install.js +83 -0
- package/app/node_modules/next/dist/lib/import-next-warning.js +50 -0
- package/app/node_modules/next/dist/lib/inline-static-env.js +112 -0
- package/app/node_modules/next/dist/lib/install-dependencies.js +40 -0
- package/app/node_modules/next/dist/lib/interop-default.js +16 -0
- package/app/node_modules/next/dist/lib/is-api-route.js +15 -0
- package/app/node_modules/next/dist/lib/is-app-page-route.js +15 -0
- package/app/node_modules/next/dist/lib/is-app-route-route.js +15 -0
- package/app/node_modules/next/dist/lib/is-edge-runtime.js +16 -0
- package/app/node_modules/next/dist/lib/is-error.js +78 -0
- package/app/node_modules/next/dist/lib/is-interception-route-rewrite.js +18 -0
- package/app/node_modules/next/dist/lib/is-internal-component.js +36 -0
- package/app/node_modules/next/dist/lib/is-serializable-props.js +111 -0
- package/app/node_modules/next/dist/lib/known-edge-safe-packages.json +1 -0
- package/app/node_modules/next/dist/lib/load-custom-routes.js +594 -0
- package/app/node_modules/next/dist/lib/memory/gc-observer.js +53 -0
- package/app/node_modules/next/dist/lib/memory/shutdown.js +29 -0
- package/app/node_modules/next/dist/lib/memory/startup.js +47 -0
- package/app/node_modules/next/dist/lib/memory/trace.js +109 -0
- package/app/node_modules/next/dist/lib/metadata/constants.js +40 -0
- package/app/node_modules/next/dist/lib/metadata/default-metadata.js +82 -0
- package/app/node_modules/next/dist/lib/metadata/generate/icon-mark.js +22 -0
- package/app/node_modules/next/dist/lib/metadata/generate/utils.js +52 -0
- package/app/node_modules/next/dist/lib/metadata/get-metadata-route.js +162 -0
- package/app/node_modules/next/dist/lib/metadata/is-metadata-route.js +221 -0
- package/app/node_modules/next/dist/lib/metadata/metadata-context.js +18 -0
- package/app/node_modules/next/dist/lib/metadata/metadata.js +1660 -0
- package/app/node_modules/next/dist/lib/metadata/resolve-metadata.js +884 -0
- package/app/node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js +232 -0
- package/app/node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js +56 -0
- package/app/node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js +199 -0
- package/app/node_modules/next/dist/lib/metadata/resolvers/resolve-title.js +40 -0
- package/app/node_modules/next/dist/lib/metadata/resolvers/resolve-url.js +135 -0
- package/app/node_modules/next/dist/lib/metadata/types/alternative-urls-types.js +7 -0
- package/app/node_modules/next/dist/lib/metadata/types/extra-types.js +9 -0
- package/app/node_modules/next/dist/lib/metadata/types/icons.js +6 -0
- package/app/node_modules/next/dist/lib/metadata/types/manifest-types.js +6 -0
- package/app/node_modules/next/dist/lib/metadata/types/metadata-interface.js +18 -0
- package/app/node_modules/next/dist/lib/metadata/types/metadata-types.js +10 -0
- package/app/node_modules/next/dist/lib/metadata/types/opengraph-types.js +6 -0
- package/app/node_modules/next/dist/lib/metadata/types/resolvers.js +6 -0
- package/app/node_modules/next/dist/lib/metadata/types/twitter-types.js +7 -0
- package/app/node_modules/next/dist/lib/mime-type.js +20 -0
- package/app/node_modules/next/dist/lib/mkcert.js +204 -0
- package/app/node_modules/next/dist/lib/multi-file-writer.js +75 -0
- package/app/node_modules/next/dist/lib/needs-experimental-react.js +16 -0
- package/app/node_modules/next/dist/lib/non-nullable.js +15 -0
- package/app/node_modules/next/dist/lib/normalize-path.js +21 -0
- package/app/node_modules/next/dist/lib/oxford-comma-list.js +15 -0
- package/app/node_modules/next/dist/lib/page-types.js +18 -0
- package/app/node_modules/next/dist/lib/patch-incorrect-lockfile.js +185 -0
- package/app/node_modules/next/dist/lib/pick.js +19 -0
- package/app/node_modules/next/dist/lib/picocolors.js +177 -0
- package/app/node_modules/next/dist/lib/pretty-bytes.js +74 -0
- package/app/node_modules/next/dist/lib/profiles-dir.js +45 -0
- package/app/node_modules/next/dist/lib/realpath.js +20 -0
- package/app/node_modules/next/dist/lib/recursive-copy.js +76 -0
- package/app/node_modules/next/dist/lib/recursive-delete.js +137 -0
- package/app/node_modules/next/dist/lib/recursive-readdir.js +124 -0
- package/app/node_modules/next/dist/lib/redirect-status.js +46 -0
- package/app/node_modules/next/dist/lib/require-instrumentation-client.js +32 -0
- package/app/node_modules/next/dist/lib/resolve-build-paths.js +182 -0
- package/app/node_modules/next/dist/lib/resolve-from.js +65 -0
- package/app/node_modules/next/dist/lib/route-pattern-normalizer.js +107 -0
- package/app/node_modules/next/dist/lib/scheduler.js +64 -0
- package/app/node_modules/next/dist/lib/semver-noop.js +18 -0
- package/app/node_modules/next/dist/lib/server-external-packages.jsonc +103 -0
- package/app/node_modules/next/dist/lib/setup-exception-listeners.js +11 -0
- package/app/node_modules/next/dist/lib/static-env.js +92 -0
- package/app/node_modules/next/dist/lib/try-to-parse-path.js +67 -0
- package/app/node_modules/next/dist/lib/turbopack-cache-seed.js +171 -0
- package/app/node_modules/next/dist/lib/turbopack-warning.js +185 -0
- package/app/node_modules/next/dist/lib/typescript/diagnosticFormatter.js +243 -0
- package/app/node_modules/next/dist/lib/typescript/getTypeScriptConfiguration.js +73 -0
- package/app/node_modules/next/dist/lib/typescript/getTypeScriptIntent.js +52 -0
- package/app/node_modules/next/dist/lib/typescript/loadTsConfig.js +181 -0
- package/app/node_modules/next/dist/lib/typescript/missingDependencyError.js +26 -0
- package/app/node_modules/next/dist/lib/typescript/runTypeCheck.js +149 -0
- package/app/node_modules/next/dist/lib/typescript/runTypeCheckCli.js +53 -0
- package/app/node_modules/next/dist/lib/typescript/runTypeScriptCli.js +256 -0
- package/app/node_modules/next/dist/lib/typescript/type-paths.js +51 -0
- package/app/node_modules/next/dist/lib/typescript/writeAppTypeDeclarations.js +77 -0
- package/app/node_modules/next/dist/lib/typescript/writeConfigurationDefaults.js +395 -0
- package/app/node_modules/next/dist/lib/url.js +75 -0
- package/app/node_modules/next/dist/lib/verify-partytown-setup.js +104 -0
- package/app/node_modules/next/dist/lib/verify-root-layout.js +165 -0
- package/app/node_modules/next/dist/lib/verify-typescript-setup.js +271 -0
- package/app/node_modules/next/dist/lib/wait.js +19 -0
- package/app/node_modules/next/dist/lib/with-promise-cache.js +24 -0
- package/app/node_modules/next/dist/lib/worker.js +234 -0
- package/app/node_modules/next/dist/server/ReactDOMServerPages.js +16 -0
- package/app/node_modules/next/dist/server/accept-header.js +132 -0
- package/app/node_modules/next/dist/server/after/after-context.js +178 -0
- package/app/node_modules/next/dist/server/after/after.js +28 -0
- package/app/node_modules/next/dist/server/after/awaiter.js +74 -0
- package/app/node_modules/next/dist/server/after/builtin-request-context.js +38 -0
- package/app/node_modules/next/dist/server/after/index.js +21 -0
- package/app/node_modules/next/dist/server/after/run-with-after.js +35 -0
- package/app/node_modules/next/dist/server/api-utils/get-cookie-parser.js +22 -0
- package/app/node_modules/next/dist/server/api-utils/index.js +217 -0
- package/app/node_modules/next/dist/server/api-utils/node/api-resolver.js +395 -0
- package/app/node_modules/next/dist/server/api-utils/node/parse-body.js +79 -0
- package/app/node_modules/next/dist/server/api-utils/node/try-get-preview-data.js +89 -0
- package/app/node_modules/next/dist/server/api-utils/web.js +17 -0
- package/app/node_modules/next/dist/server/app-render/action-async-storage-instance.js +14 -0
- package/app/node_modules/next/dist/server/app-render/action-async-storage.external.js +13 -0
- package/app/node_modules/next/dist/server/app-render/action-handler.js +1125 -0
- package/app/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js +14 -0
- package/app/node_modules/next/dist/server/app-render/after-task-async-storage.external.js +13 -0
- package/app/node_modules/next/dist/server/app-render/app-render-prerender-utils.js +332 -0
- package/app/node_modules/next/dist/server/app-render/app-render-render-utils.js +76 -0
- package/app/node_modules/next/dist/server/app-render/app-render-scheduling.js +188 -0
- package/app/node_modules/next/dist/server/app-render/app-render.js +6496 -0
- package/app/node_modules/next/dist/server/app-render/async-local-storage.js +76 -0
- package/app/node_modules/next/dist/server/app-render/blocking-route-messages.js +181 -0
- package/app/node_modules/next/dist/server/app-render/cache-signal.js +181 -0
- package/app/node_modules/next/dist/server/app-render/collect-segment-data.js +937 -0
- package/app/node_modules/next/dist/server/app-render/console-async-storage-instance.js +14 -0
- package/app/node_modules/next/dist/server/app-render/console-async-storage.external.js +13 -0
- package/app/node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js +39 -0
- package/app/node_modules/next/dist/server/app-render/create-component-tree.js +806 -0
- package/app/node_modules/next/dist/server/app-render/create-error-handler.js +190 -0
- package/app/node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js +154 -0
- package/app/node_modules/next/dist/server/app-render/csrf-protection.js +86 -0
- package/app/node_modules/next/dist/server/app-render/debug-channel-server.js +47 -0
- package/app/node_modules/next/dist/server/app-render/debug-channel-server.node.js +60 -0
- package/app/node_modules/next/dist/server/app-render/debug-channel-server.web.js +60 -0
- package/app/node_modules/next/dist/server/app-render/dev-validation-error-delivery.js +37 -0
- package/app/node_modules/next/dist/server/app-render/dev-validation-events.js +26 -0
- package/app/node_modules/next/dist/server/app-render/dev-validation-scheduler.js +87 -0
- package/app/node_modules/next/dist/server/app-render/dev-validation-worker-globals.js +41 -0
- package/app/node_modules/next/dist/server/app-render/dev-validation-worker-snapshot.js +79 -0
- package/app/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js +14 -0
- package/app/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js +13 -0
- package/app/node_modules/next/dist/server/app-render/dynamic-rendering.js +1201 -0
- package/app/node_modules/next/dist/server/app-render/encryption-utils-server.js +114 -0
- package/app/node_modules/next/dist/server/app-render/encryption-utils.js +93 -0
- package/app/node_modules/next/dist/server/app-render/encryption.js +261 -0
- package/app/node_modules/next/dist/server/app-render/entry-base.js +265 -0
- package/app/node_modules/next/dist/server/app-render/flight-render-result.js +28 -0
- package/app/node_modules/next/dist/server/app-render/get-asset-query-string.js +29 -0
- package/app/node_modules/next/dist/server/app-render/get-css-inlined-link-tags.js +45 -0
- package/app/node_modules/next/dist/server/app-render/get-layer-assets.js +69 -0
- package/app/node_modules/next/dist/server/app-render/get-preloadable-fonts.js +39 -0
- package/app/node_modules/next/dist/server/app-render/get-script-nonce-from-header.js +32 -0
- package/app/node_modules/next/dist/server/app-render/get-short-dynamic-param-type.js +25 -0
- package/app/node_modules/next/dist/server/app-render/has-loading-component-in-tree.js +19 -0
- package/app/node_modules/next/dist/server/app-render/instant-test-bootstrap.js +20 -0
- package/app/node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js +31 -0
- package/app/node_modules/next/dist/server/app-render/instant-validation/boundary-impl.js +127 -0
- package/app/node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js +38 -0
- package/app/node_modules/next/dist/server/app-render/instant-validation/instant-config.js +241 -0
- package/app/node_modules/next/dist/server/app-render/instant-validation/instant-samples.js +432 -0
- package/app/node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.js +33 -0
- package/app/node_modules/next/dist/server/app-render/instant-validation/instant-validation.js +934 -0
- package/app/node_modules/next/dist/server/app-render/instant-validation/stream-utils.js +96 -0
- package/app/node_modules/next/dist/server/app-render/interop-default.js +17 -0
- package/app/node_modules/next/dist/server/app-render/make-get-server-inserted-html.js +91 -0
- package/app/node_modules/next/dist/server/app-render/manifests-singleton.js +327 -0
- package/app/node_modules/next/dist/server/app-render/metadata-insertion/create-server-inserted-metadata.js +29 -0
- package/app/node_modules/next/dist/server/app-render/module-loading/instrument-module-getter.js +32 -0
- package/app/node_modules/next/dist/server/app-render/module-loading/track-dynamic-import.js +57 -0
- package/app/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js +32 -0
- package/app/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js +62 -0
- package/app/node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js +49 -0
- package/app/node_modules/next/dist/server/app-render/postponed-state.js +230 -0
- package/app/node_modules/next/dist/server/app-render/prospective-render-utils.js +74 -0
- package/app/node_modules/next/dist/server/app-render/react-large-shell-error.js +17 -0
- package/app/node_modules/next/dist/server/app-render/react-server.node.js +39 -0
- package/app/node_modules/next/dist/server/app-render/render-css-resource.js +57 -0
- package/app/node_modules/next/dist/server/app-render/required-scripts.js +76 -0
- package/app/node_modules/next/dist/server/app-render/rsc/postpone.js +18 -0
- package/app/node_modules/next/dist/server/app-render/rsc/preloads.js +74 -0
- package/app/node_modules/next/dist/server/app-render/rsc/taint.js +79 -0
- package/app/node_modules/next/dist/server/app-render/segment-explorer-path.js +128 -0
- package/app/node_modules/next/dist/server/app-render/server-inserted-html.js +77 -0
- package/app/node_modules/next/dist/server/app-render/staged-rendering.js +324 -0
- package/app/node_modules/next/dist/server/app-render/stale-time.js +101 -0
- package/app/node_modules/next/dist/server/app-render/stream-ops.js +155 -0
- package/app/node_modules/next/dist/server/app-render/stream-ops.node.js +842 -0
- package/app/node_modules/next/dist/server/app-render/stream-ops.web.js +249 -0
- package/app/node_modules/next/dist/server/app-render/strip-flight-headers.js +18 -0
- package/app/node_modules/next/dist/server/app-render/sync-io-messages.js +67 -0
- package/app/node_modules/next/dist/server/app-render/types.js +65 -0
- package/app/node_modules/next/dist/server/app-render/use-flight-response.js +217 -0
- package/app/node_modules/next/dist/server/app-render/vary-params.js +261 -0
- package/app/node_modules/next/dist/server/app-render/wait-for-response.js +36 -0
- package/app/node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js +237 -0
- package/app/node_modules/next/dist/server/app-render/work-async-storage-instance.js +14 -0
- package/app/node_modules/next/dist/server/app-render/work-async-storage.external.js +13 -0
- package/app/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js +14 -0
- package/app/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js +250 -0
- package/app/node_modules/next/dist/server/async-storage/draft-mode-provider.js +62 -0
- package/app/node_modules/next/dist/server/async-storage/request-store.js +201 -0
- package/app/node_modules/next/dist/server/async-storage/with-store.js +6 -0
- package/app/node_modules/next/dist/server/async-storage/work-store.js +98 -0
- package/app/node_modules/next/dist/server/base-http/helpers.js +36 -0
- package/app/node_modules/next/dist/server/base-http/index.js +54 -0
- package/app/node_modules/next/dist/server/base-http/node.js +147 -0
- package/app/node_modules/next/dist/server/base-http/web.js +124 -0
- package/app/node_modules/next/dist/server/base-server.js +1956 -0
- package/app/node_modules/next/dist/server/body-streams.js +122 -0
- package/app/node_modules/next/dist/server/cache-dir.js +26 -0
- package/app/node_modules/next/dist/server/capsize-font-metrics.json +181516 -0
- package/app/node_modules/next/dist/server/ci-info.js +41 -0
- package/app/node_modules/next/dist/server/client-component-renderer-logger.js +70 -0
- package/app/node_modules/next/dist/server/config-schema.js +800 -0
- package/app/node_modules/next/dist/server/config-shared.js +395 -0
- package/app/node_modules/next/dist/server/config-utils.js +185 -0
- package/app/node_modules/next/dist/server/config.js +1836 -0
- package/app/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js +96 -0
- package/app/node_modules/next/dist/server/crypto-utils.js +70 -0
- package/app/node_modules/next/dist/server/dev/browser-logs/file-logger.js +186 -0
- package/app/node_modules/next/dist/server/dev/browser-logs/receive-logs.js +610 -0
- package/app/node_modules/next/dist/server/dev/browser-logs/source-map.js +222 -0
- package/app/node_modules/next/dist/server/dev/debug-channel.js +112 -0
- package/app/node_modules/next/dist/server/dev/dev-indicator-server-state.js +15 -0
- package/app/node_modules/next/dist/server/dev/dev-validation-worker-pool.js +232 -0
- package/app/node_modules/next/dist/server/dev/dev-validation-worker.js +308 -0
- package/app/node_modules/next/dist/server/dev/get-source-map-from-file.js +100 -0
- package/app/node_modules/next/dist/server/dev/hot-middleware.js +276 -0
- package/app/node_modules/next/dist/server/dev/hot-reloader-rspack.js +171 -0
- package/app/node_modules/next/dist/server/dev/hot-reloader-shared-utils.js +56 -0
- package/app/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +1756 -0
- package/app/node_modules/next/dist/server/dev/hot-reloader-types.js +60 -0
- package/app/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1380 -0
- package/app/node_modules/next/dist/server/dev/log-requests.js +152 -0
- package/app/node_modules/next/dist/server/dev/messages.js +74 -0
- package/app/node_modules/next/dist/server/dev/middleware-turbopack.js +422 -0
- package/app/node_modules/next/dist/server/dev/middleware-webpack.js +495 -0
- package/app/node_modules/next/dist/server/dev/node-stack-frames.js +81 -0
- package/app/node_modules/next/dist/server/dev/on-demand-entry-handler.js +773 -0
- package/app/node_modules/next/dist/server/dev/parse-version-info.js +108 -0
- package/app/node_modules/next/dist/server/dev/require-cache.js +109 -0
- package/app/node_modules/next/dist/server/dev/serialized-errors.js +67 -0
- package/app/node_modules/next/dist/server/dev/server-action-logger.js +37 -0
- package/app/node_modules/next/dist/server/dev/static-paths-worker.js +106 -0
- package/app/node_modules/next/dist/server/dev/turbopack-utils.js +727 -0
- package/app/node_modules/next/dist/server/dev/use-cache-probe-pool.js +177 -0
- package/app/node_modules/next/dist/server/dev/use-cache-probe-worker.js +180 -0
- package/app/node_modules/next/dist/server/dynamic-rendering-utils.js +285 -0
- package/app/node_modules/next/dist/server/font-utils.js +43 -0
- package/app/node_modules/next/dist/server/get-app-route-from-entrypoint.js +30 -0
- package/app/node_modules/next/dist/server/get-page-files.js +40 -0
- package/app/node_modules/next/dist/server/get-route-from-entrypoint.js +35 -0
- package/app/node_modules/next/dist/server/image-optimizer.js +1474 -0
- package/app/node_modules/next/dist/server/instrumentation/types.js +6 -0
- package/app/node_modules/next/dist/server/instrumentation/utils.js +21 -0
- package/app/node_modules/next/dist/server/internal-utils.js +39 -0
- package/app/node_modules/next/dist/server/is-private-ip.js +36 -0
- package/app/node_modules/next/dist/server/lib/app-dir-module.js +59 -0
- package/app/node_modules/next/dist/server/lib/app-info-log.js +135 -0
- package/app/node_modules/next/dist/server/lib/async-callback-set.js +29 -0
- package/app/node_modules/next/dist/server/lib/cache-control.js +22 -0
- package/app/node_modules/next/dist/server/lib/cache-handlers/default.external.js +18 -0
- package/app/node_modules/next/dist/server/lib/cache-handlers/default.js +196 -0
- package/app/node_modules/next/dist/server/lib/cache-handlers/types.js +8 -0
- package/app/node_modules/next/dist/server/lib/chrome-devtools-workspace.js +116 -0
- package/app/node_modules/next/dist/server/lib/clone-response.js +77 -0
- package/app/node_modules/next/dist/server/lib/cpu-profile.js +56 -0
- package/app/node_modules/next/dist/server/lib/decode-query-path-parameter.js +26 -0
- package/app/node_modules/next/dist/server/lib/dedupe-fetch.js +163 -0
- package/app/node_modules/next/dist/server/lib/dev-bundler-service.js +110 -0
- package/app/node_modules/next/dist/server/lib/disk-lru-cache.external.js +63 -0
- package/app/node_modules/next/dist/server/lib/encode-header-safe.js +44 -0
- package/app/node_modules/next/dist/server/lib/etag.js +56 -0
- package/app/node_modules/next/dist/server/lib/experimental/create-env-definitions.js +48 -0
- package/app/node_modules/next/dist/server/lib/experimental/ppr.js +47 -0
- package/app/node_modules/next/dist/server/lib/find-page-file.js +147 -0
- package/app/node_modules/next/dist/server/lib/fix-mojibake.js +25 -0
- package/app/node_modules/next/dist/server/lib/format-hostname.js +16 -0
- package/app/node_modules/next/dist/server/lib/generate-agent-files.js +180 -0
- package/app/node_modules/next/dist/server/lib/i18n-provider.js +129 -0
- package/app/node_modules/next/dist/server/lib/implicit-tags.js +87 -0
- package/app/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +506 -0
- package/app/node_modules/next/dist/server/lib/incremental-cache/index.js +566 -0
- package/app/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js +59 -0
- package/app/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js +81 -0
- package/app/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js +55 -0
- package/app/node_modules/next/dist/server/lib/install-code-frame.js +22 -0
- package/app/node_modules/next/dist/server/lib/is-ipv6.js +41 -0
- package/app/node_modules/next/dist/server/lib/is-non-html-sec-fetch-dest.js +38 -0
- package/app/node_modules/next/dist/server/lib/is-rsc-request.js +18 -0
- package/app/node_modules/next/dist/server/lib/lazy-module.js +80 -0
- package/app/node_modules/next/dist/server/lib/lazy-result.js +46 -0
- package/app/node_modules/next/dist/server/lib/lru-cache.js +191 -0
- package/app/node_modules/next/dist/server/lib/match-next-data-pathname.js +20 -0
- package/app/node_modules/next/dist/server/lib/mock-request.js +441 -0
- package/app/node_modules/next/dist/server/lib/module-loader/module-loader.js +8 -0
- package/app/node_modules/next/dist/server/lib/module-loader/node-module-loader.js +25 -0
- package/app/node_modules/next/dist/server/lib/module-loader/route-module-loader.js +26 -0
- package/app/node_modules/next/dist/server/lib/node-fs-methods.js +42 -0
- package/app/node_modules/next/dist/server/lib/params-utils.js +70 -0
- package/app/node_modules/next/dist/server/lib/parse-stack.js +46 -0
- package/app/node_modules/next/dist/server/lib/patch-fetch.js +1027 -0
- package/app/node_modules/next/dist/server/lib/patch-set-header.js +45 -0
- package/app/node_modules/next/dist/server/lib/postponed-request-body.js +64 -0
- package/app/node_modules/next/dist/server/lib/release-compression-stream.js +24 -0
- package/app/node_modules/next/dist/server/lib/render-server.js +157 -0
- package/app/node_modules/next/dist/server/lib/route-cache-key.js +77 -0
- package/app/node_modules/next/dist/server/lib/router-server.js +756 -0
- package/app/node_modules/next/dist/server/lib/router-utils/block-cross-site-dev.js +108 -0
- package/app/node_modules/next/dist/server/lib/router-utils/build-data-route.js +48 -0
- package/app/node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.js +50 -0
- package/app/node_modules/next/dist/server/lib/router-utils/cache-life-type-utils.js +212 -0
- package/app/node_modules/next/dist/server/lib/router-utils/decode-path-params.js +42 -0
- package/app/node_modules/next/dist/server/lib/router-utils/filesystem.js +612 -0
- package/app/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js +89 -0
- package/app/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js +114 -0
- package/app/node_modules/next/dist/server/lib/router-utils/is-postpone.js +16 -0
- package/app/node_modules/next/dist/server/lib/router-utils/proxy-request.js +128 -0
- package/app/node_modules/next/dist/server/lib/router-utils/resolve-routes.js +646 -0
- package/app/node_modules/next/dist/server/lib/router-utils/root-params-type-utils.js +61 -0
- package/app/node_modules/next/dist/server/lib/router-utils/route-types-utils.js +326 -0
- package/app/node_modules/next/dist/server/lib/router-utils/router-server-context.js +26 -0
- package/app/node_modules/next/dist/server/lib/router-utils/typegen.js +892 -0
- package/app/node_modules/next/dist/server/lib/router-utils/types.js +6 -0
- package/app/node_modules/next/dist/server/lib/server-action-request-meta.js +53 -0
- package/app/node_modules/next/dist/server/lib/server-ipc/utils.js +83 -0
- package/app/node_modules/next/dist/server/lib/source-maps.js +241 -0
- package/app/node_modules/next/dist/server/lib/start-server.js +540 -0
- package/app/node_modules/next/dist/server/lib/streaming-metadata.js +27 -0
- package/app/node_modules/next/dist/server/lib/to-route.js +37 -0
- package/app/node_modules/next/dist/server/lib/trace/constants.js +208 -0
- package/app/node_modules/next/dist/server/lib/trace/local-span-recorder.js +385 -0
- package/app/node_modules/next/dist/server/lib/trace/request-insights-identity.js +39 -0
- package/app/node_modules/next/dist/server/lib/trace/request-insights.js +308 -0
- package/app/node_modules/next/dist/server/lib/trace/span-store.js +69 -0
- package/app/node_modules/next/dist/server/lib/trace/tracer.js +392 -0
- package/app/node_modules/next/dist/server/lib/trace/utils.js +16 -0
- package/app/node_modules/next/dist/server/lib/types.js +6 -0
- package/app/node_modules/next/dist/server/lib/utils.js +292 -0
- package/app/node_modules/next/dist/server/lib/worker-utils.js +36 -0
- package/app/node_modules/next/dist/server/load-components.js +185 -0
- package/app/node_modules/next/dist/server/load-default-error-components.js +41 -0
- package/app/node_modules/next/dist/server/load-manifest.external.js +117 -0
- package/app/node_modules/next/dist/server/match-bundle.js +25 -0
- package/app/node_modules/next/dist/server/mcp/get-mcp-middleware.js +51 -0
- package/app/node_modules/next/dist/server/mcp/get-or-create-mcp-server.js +51 -0
- package/app/node_modules/next/dist/server/mcp/mcp-telemetry-tracker.js +82 -0
- package/app/node_modules/next/dist/server/mcp/tools/compile-route.js +86 -0
- package/app/node_modules/next/dist/server/mcp/tools/get-compilation-issues.js +68 -0
- package/app/node_modules/next/dist/server/mcp/tools/get-errors.js +114 -0
- package/app/node_modules/next/dist/server/mcp/tools/get-logs.js +67 -0
- package/app/node_modules/next/dist/server/mcp/tools/get-page-metadata.js +188 -0
- package/app/node_modules/next/dist/server/mcp/tools/get-project-metadata.js +59 -0
- package/app/node_modules/next/dist/server/mcp/tools/get-request-insights.js +57 -0
- package/app/node_modules/next/dist/server/mcp/tools/get-routes.js +136 -0
- package/app/node_modules/next/dist/server/mcp/tools/get-server-action-by-id.js +121 -0
- package/app/node_modules/next/dist/server/mcp/tools/next-instance-error-state.js +31 -0
- package/app/node_modules/next/dist/server/mcp/tools/utils/browser-communication.js +90 -0
- package/app/node_modules/next/dist/server/mcp/tools/utils/format-compilation-issues.js +72 -0
- package/app/node_modules/next/dist/server/mcp/tools/utils/format-errors.js +137 -0
- package/app/node_modules/next/dist/server/mcp/tools/utils/resolve-path-to-route.js +49 -0
- package/app/node_modules/next/dist/server/next-server.js +1447 -0
- package/app/node_modules/next/dist/server/next-typescript.js +13 -0
- package/app/node_modules/next/dist/server/next.js +485 -0
- package/app/node_modules/next/dist/server/node-environment-baseline.js +25 -0
- package/app/node_modules/next/dist/server/node-environment-extensions/console-dim.external.js +301 -0
- package/app/node_modules/next/dist/server/node-environment-extensions/console-exit.js +49 -0
- package/app/node_modules/next/dist/server/node-environment-extensions/console-file.js +56 -0
- package/app/node_modules/next/dist/server/node-environment-extensions/date.js +52 -0
- package/app/node_modules/next/dist/server/node-environment-extensions/error-inspect.js +8 -0
- package/app/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js +577 -0
- package/app/node_modules/next/dist/server/node-environment-extensions/global-behaviors.js +33 -0
- package/app/node_modules/next/dist/server/node-environment-extensions/io-utils.js +102 -0
- package/app/node_modules/next/dist/server/node-environment-extensions/node-crypto.js +103 -0
- package/app/node_modules/next/dist/server/node-environment-extensions/process-error-handlers.js +170 -0
- package/app/node_modules/next/dist/server/node-environment-extensions/random.js +28 -0
- package/app/node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js +518 -0
- package/app/node_modules/next/dist/server/node-environment-extensions/web-crypto.js +45 -0
- package/app/node_modules/next/dist/server/node-environment.js +19 -0
- package/app/node_modules/next/dist/server/node-polyfill-crypto.js +21 -0
- package/app/node_modules/next/dist/server/normalizers/absolute-filename-normalizer.js +33 -0
- package/app/node_modules/next/dist/server/normalizers/built/app/app-bundle-path-normalizer.js +54 -0
- package/app/node_modules/next/dist/server/normalizers/built/app/app-filename-normalizer.js +22 -0
- package/app/node_modules/next/dist/server/normalizers/built/app/app-page-normalizer.js +40 -0
- package/app/node_modules/next/dist/server/normalizers/built/app/app-pathname-normalizer.js +55 -0
- package/app/node_modules/next/dist/server/normalizers/built/app/index.js +42 -0
- package/app/node_modules/next/dist/server/normalizers/built/pages/index.js +44 -0
- package/app/node_modules/next/dist/server/normalizers/built/pages/pages-bundle-path-normalizer.js +55 -0
- package/app/node_modules/next/dist/server/normalizers/built/pages/pages-filename-normalizer.js +22 -0
- package/app/node_modules/next/dist/server/normalizers/built/pages/pages-page-normalizer.js +19 -0
- package/app/node_modules/next/dist/server/normalizers/built/pages/pages-pathname-normalizer.js +19 -0
- package/app/node_modules/next/dist/server/normalizers/locale-route-normalizer.js +26 -0
- package/app/node_modules/next/dist/server/normalizers/normalizer.js +6 -0
- package/app/node_modules/next/dist/server/normalizers/normalizers.js +23 -0
- package/app/node_modules/next/dist/server/normalizers/prefixing-normalizer.js +26 -0
- package/app/node_modules/next/dist/server/normalizers/request/base-path.js +25 -0
- package/app/node_modules/next/dist/server/normalizers/request/next-data.js +38 -0
- package/app/node_modules/next/dist/server/normalizers/request/pathname-normalizer.js +6 -0
- package/app/node_modules/next/dist/server/normalizers/request/prefix.js +39 -0
- package/app/node_modules/next/dist/server/normalizers/request/rsc.js +19 -0
- package/app/node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.js +33 -0
- package/app/node_modules/next/dist/server/normalizers/request/suffix.js +27 -0
- package/app/node_modules/next/dist/server/normalizers/underscore-normalizer.js +17 -0
- package/app/node_modules/next/dist/server/normalizers/wrap-normalizer-fn.js +17 -0
- package/app/node_modules/next/dist/server/og/cache-image-response.js +341 -0
- package/app/node_modules/next/dist/server/og/image-response.js +72 -0
- package/app/node_modules/next/dist/server/patch-error-inspect.js +507 -0
- package/app/node_modules/next/dist/server/pipe-readable.js +212 -0
- package/app/node_modules/next/dist/server/post-process.js +39 -0
- package/app/node_modules/next/dist/server/render-result.js +246 -0
- package/app/node_modules/next/dist/server/render.js +1150 -0
- package/app/node_modules/next/dist/server/request/connection.js +135 -0
- package/app/node_modules/next/dist/server/request/cookies.js +239 -0
- package/app/node_modules/next/dist/server/request/draft-mode.js +238 -0
- package/app/node_modules/next/dist/server/request/fallback-params.js +95 -0
- package/app/node_modules/next/dist/server/request/headers.js +235 -0
- package/app/node_modules/next/dist/server/request/io.js +96 -0
- package/app/node_modules/next/dist/server/request/params.js +634 -0
- package/app/node_modules/next/dist/server/request/pathname.js +141 -0
- package/app/node_modules/next/dist/server/request/root-params.js +202 -0
- package/app/node_modules/next/dist/server/request/search-params.js +582 -0
- package/app/node_modules/next/dist/server/request/utils.js +84 -0
- package/app/node_modules/next/dist/server/request-meta.js +55 -0
- package/app/node_modules/next/dist/server/require-hook.js +82 -0
- package/app/node_modules/next/dist/server/require.js +109 -0
- package/app/node_modules/next/dist/server/response-cache/index.js +339 -0
- package/app/node_modules/next/dist/server/response-cache/types.js +41 -0
- package/app/node_modules/next/dist/server/response-cache/utils.js +104 -0
- package/app/node_modules/next/dist/server/response-cache/web.js +101 -0
- package/app/node_modules/next/dist/server/resume-data-cache/cache-store.js +101 -0
- package/app/node_modules/next/dist/server/resume-data-cache/resume-data-cache.js +142 -0
- package/app/node_modules/next/dist/server/revalidation-utils.js +156 -0
- package/app/node_modules/next/dist/server/route-definitions/app-page-route-definition.js +16 -0
- package/app/node_modules/next/dist/server/route-definitions/app-route-route-definition.js +6 -0
- package/app/node_modules/next/dist/server/route-definitions/locale-route-definition.js +6 -0
- package/app/node_modules/next/dist/server/route-definitions/pages-api-route-definition.js +6 -0
- package/app/node_modules/next/dist/server/route-definitions/pages-route-definition.js +6 -0
- package/app/node_modules/next/dist/server/route-definitions/route-definition.js +6 -0
- package/app/node_modules/next/dist/server/route-kind.js +32 -0
- package/app/node_modules/next/dist/server/route-matcher-managers/default-route-matcher-manager.js +239 -0
- package/app/node_modules/next/dist/server/route-matcher-managers/dev-route-matcher-manager.js +120 -0
- package/app/node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.js +6 -0
- package/app/node_modules/next/dist/server/route-matcher-providers/app-page-route-matcher-provider.js +55 -0
- package/app/node_modules/next/dist/server/route-matcher-providers/app-route-route-matcher-provider.js +43 -0
- package/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-page-route-matcher-provider.js +91 -0
- package/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-route-route-matcher-provider.js +112 -0
- package/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-api-route-matcher-provider.js +77 -0
- package/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-route-matcher-provider.js +77 -0
- package/app/node_modules/next/dist/server/route-matcher-providers/dev/file-cache-route-matcher-provider.js +28 -0
- package/app/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/batched-file-reader.js +106 -0
- package/app/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/default-file-reader.js +42 -0
- package/app/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/file-reader.js +6 -0
- package/app/node_modules/next/dist/server/route-matcher-providers/helpers/cached-route-matcher-provider.js +30 -0
- package/app/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/manifest-loader.js +6 -0
- package/app/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/node-manifest-loader.js +34 -0
- package/app/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js +20 -0
- package/app/node_modules/next/dist/server/route-matcher-providers/manifest-route-matcher-provider.js +21 -0
- package/app/node_modules/next/dist/server/route-matcher-providers/pages-api-route-matcher-provider.js +55 -0
- package/app/node_modules/next/dist/server/route-matcher-providers/pages-route-matcher-provider.js +64 -0
- package/app/node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.js +6 -0
- package/app/node_modules/next/dist/server/route-matchers/app-page-route-matcher.js +18 -0
- package/app/node_modules/next/dist/server/route-matchers/app-route-route-matcher.js +15 -0
- package/app/node_modules/next/dist/server/route-matchers/locale-route-matcher.js +68 -0
- package/app/node_modules/next/dist/server/route-matchers/pages-api-route-matcher.js +30 -0
- package/app/node_modules/next/dist/server/route-matchers/pages-route-matcher.js +30 -0
- package/app/node_modules/next/dist/server/route-matchers/route-matcher.js +54 -0
- package/app/node_modules/next/dist/server/route-matches/app-page-route-match.js +6 -0
- package/app/node_modules/next/dist/server/route-matches/app-route-route-match.js +6 -0
- package/app/node_modules/next/dist/server/route-matches/locale-route-match.js +6 -0
- package/app/node_modules/next/dist/server/route-matches/pages-api-route-match.js +16 -0
- package/app/node_modules/next/dist/server/route-matches/pages-route-match.js +6 -0
- package/app/node_modules/next/dist/server/route-matches/route-match.js +6 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.js +51 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/module.compiled.js +36 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/module.js +176 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/module.render.js +24 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/normalize-request-url.js +62 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.js +87 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/head-manager-context.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.js +140 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-compiler-runtime.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-server.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-static.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.js +125 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-compiler-runtime.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom-server.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/app-route/helpers/auto-implement-methods.js +85 -0
- package/app/node_modules/next/dist/server/route-modules/app-route/helpers/clean-url.js +24 -0
- package/app/node_modules/next/dist/server/route-modules/app-route/helpers/get-pathname-from-absolute-path.js +29 -0
- package/app/node_modules/next/dist/server/route-modules/app-route/helpers/is-static-gen-enabled.js +15 -0
- package/app/node_modules/next/dist/server/route-modules/app-route/helpers/parsed-url-query-to-params.js +20 -0
- package/app/node_modules/next/dist/server/route-modules/app-route/module.compiled.js +36 -0
- package/app/node_modules/next/dist/server/route-modules/app-route/module.js +948 -0
- package/app/node_modules/next/dist/server/route-modules/app-route/shared-modules.js +56 -0
- package/app/node_modules/next/dist/server/route-modules/checks.js +45 -0
- package/app/node_modules/next/dist/server/route-modules/pages/builtin/_error.js +100 -0
- package/app/node_modules/next/dist/server/route-modules/pages/module.compiled.js +20 -0
- package/app/node_modules/next/dist/server/route-modules/pages/module.js +92 -0
- package/app/node_modules/next/dist/server/route-modules/pages/module.render.js +24 -0
- package/app/node_modules/next/dist/server/route-modules/pages/pages-handler.js +572 -0
- package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/app-router-context.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.js +102 -0
- package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/hooks-client-context.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/image-config-context.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable-context.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/router-context.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/server-inserted-html.js +4 -0
- package/app/node_modules/next/dist/server/route-modules/pages-api/module.compiled.js +20 -0
- package/app/node_modules/next/dist/server/route-modules/pages-api/module.js +58 -0
- package/app/node_modules/next/dist/server/route-modules/route-module.js +704 -0
- package/app/node_modules/next/dist/server/runtime-reacts.external.js +46 -0
- package/app/node_modules/next/dist/server/send-payload.js +88 -0
- package/app/node_modules/next/dist/server/send-response.js +70 -0
- package/app/node_modules/next/dist/server/serve-static.js +66 -0
- package/app/node_modules/next/dist/server/server-route-utils.js +30 -0
- package/app/node_modules/next/dist/server/server-utils.js +340 -0
- package/app/node_modules/next/dist/server/setup-http-agent-env.js +31 -0
- package/app/node_modules/next/dist/server/stream-utils/encoded-tags.js +122 -0
- package/app/node_modules/next/dist/server/stream-utils/node-buffered-transform-stream.js +51 -0
- package/app/node_modules/next/dist/server/stream-utils/node-web-streams-helper.js +939 -0
- package/app/node_modules/next/dist/server/stream-utils/uint8array-helpers.js +74 -0
- package/app/node_modules/next/dist/server/typescript/constant.js +98 -0
- package/app/node_modules/next/dist/server/typescript/index.js +199 -0
- package/app/node_modules/next/dist/server/typescript/rules/client-boundary.js +100 -0
- package/app/node_modules/next/dist/server/typescript/rules/config.js +534 -0
- package/app/node_modules/next/dist/server/typescript/rules/entry.js +149 -0
- package/app/node_modules/next/dist/server/typescript/rules/error.js +38 -0
- package/app/node_modules/next/dist/server/typescript/rules/metadata.js +234 -0
- package/app/node_modules/next/dist/server/typescript/rules/server-boundary.js +115 -0
- package/app/node_modules/next/dist/server/typescript/rules/server.js +79 -0
- package/app/node_modules/next/dist/server/typescript/utils.js +212 -0
- package/app/node_modules/next/dist/server/use-cache/cache-life-profile.js +84 -0
- package/app/node_modules/next/dist/server/use-cache/cache-life.js +102 -0
- package/app/node_modules/next/dist/server/use-cache/cache-tag.js +52 -0
- package/app/node_modules/next/dist/server/use-cache/clone-cache-entry.js +28 -0
- package/app/node_modules/next/dist/server/use-cache/constants.js +44 -0
- package/app/node_modules/next/dist/server/use-cache/handlers.js +274 -0
- package/app/node_modules/next/dist/server/use-cache/tiered-cache-handler.js +145 -0
- package/app/node_modules/next/dist/server/use-cache/use-cache-errors.js +59 -0
- package/app/node_modules/next/dist/server/use-cache/use-cache-probe-globals.js +39 -0
- package/app/node_modules/next/dist/server/use-cache/use-cache-probe-scheduler.js +117 -0
- package/app/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +2611 -0
- package/app/node_modules/next/dist/server/utils.js +73 -0
- package/app/node_modules/next/dist/server/web/adapter.js +428 -0
- package/app/node_modules/next/dist/server/web/edge-route-module-wrapper.js +136 -0
- package/app/node_modules/next/dist/server/web/error.js +69 -0
- package/app/node_modules/next/dist/server/web/exports/index.js +56 -0
- package/app/node_modules/next/dist/server/web/get-edge-preview-props.js +23 -0
- package/app/node_modules/next/dist/server/web/globals.js +128 -0
- package/app/node_modules/next/dist/server/web/http.js +39 -0
- package/app/node_modules/next/dist/server/web/internal-edge-wait-until.js +64 -0
- package/app/node_modules/next/dist/server/web/next-url.js +199 -0
- package/app/node_modules/next/dist/server/web/sandbox/context.js +468 -0
- package/app/node_modules/next/dist/server/web/sandbox/fetch-inline-assets.js +35 -0
- package/app/node_modules/next/dist/server/web/sandbox/index.js +28 -0
- package/app/node_modules/next/dist/server/web/sandbox/resource-managers.js +123 -0
- package/app/node_modules/next/dist/server/web/sandbox/sandbox.js +137 -0
- package/app/node_modules/next/dist/server/web/spec-extension/adapters/headers.js +293 -0
- package/app/node_modules/next/dist/server/web/spec-extension/adapters/next-request.js +142 -0
- package/app/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js +30 -0
- package/app/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js +226 -0
- package/app/node_modules/next/dist/server/web/spec-extension/cookies.js +29 -0
- package/app/node_modules/next/dist/server/web/spec-extension/fetch-event.js +98 -0
- package/app/node_modules/next/dist/server/web/spec-extension/image-response.js +22 -0
- package/app/node_modules/next/dist/server/web/spec-extension/request.js +99 -0
- package/app/node_modules/next/dist/server/web/spec-extension/response.js +136 -0
- package/app/node_modules/next/dist/server/web/spec-extension/revalidate.js +226 -0
- package/app/node_modules/next/dist/server/web/spec-extension/unstable-cache.js +307 -0
- package/app/node_modules/next/dist/server/web/spec-extension/unstable-no-store.js +51 -0
- package/app/node_modules/next/dist/server/web/spec-extension/url-pattern.js +13 -0
- package/app/node_modules/next/dist/server/web/spec-extension/user-agent.js +46 -0
- package/app/node_modules/next/dist/server/web/types.js +6 -0
- package/app/node_modules/next/dist/server/web/utils.js +151 -0
- package/app/node_modules/next/dist/server/web/web-on-close.js +87 -0
- package/app/node_modules/next/dist/shared/lib/action-revalidation-kind.js +31 -0
- package/app/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js +50 -0
- package/app/node_modules/next/dist/shared/lib/app-router-types.js +159 -0
- package/app/node_modules/next/dist/shared/lib/constants.js +453 -0
- package/app/node_modules/next/dist/shared/lib/deep-freeze.js +30 -0
- package/app/node_modules/next/dist/shared/lib/deployment-id.js +63 -0
- package/app/node_modules/next/dist/shared/lib/dset.js +34 -0
- package/app/node_modules/next/dist/shared/lib/encode-uri-path.js +15 -0
- package/app/node_modules/next/dist/shared/lib/entry-constants.js +36 -0
- package/app/node_modules/next/dist/shared/lib/error-source.js +36 -0
- package/app/node_modules/next/dist/shared/lib/errors/code-frame.js +20 -0
- package/app/node_modules/next/dist/shared/lib/errors/constants.js +19 -0
- package/app/node_modules/next/dist/shared/lib/errors/empty-generate-static-params-error.js +31 -0
- package/app/node_modules/next/dist/shared/lib/errors/hard-deprecated-config-error.js +25 -0
- package/app/node_modules/next/dist/shared/lib/escape-regexp.js +22 -0
- package/app/node_modules/next/dist/shared/lib/get-hostname.js +23 -0
- package/app/node_modules/next/dist/shared/lib/hash.js +42 -0
- package/app/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js +18 -0
- package/app/node_modules/next/dist/shared/lib/head.js +164 -0
- package/app/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js +60 -0
- package/app/node_modules/next/dist/shared/lib/html-context.shared-runtime.js +40 -0
- package/app/node_modules/next/dist/shared/lib/htmlescape.js +52 -0
- package/app/node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js +25 -0
- package/app/node_modules/next/dist/shared/lib/i18n/get-locale-redirect.js +59 -0
- package/app/node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js +54 -0
- package/app/node_modules/next/dist/shared/lib/image-blur-svg.js +22 -0
- package/app/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js +19 -0
- package/app/node_modules/next/dist/shared/lib/image-config.js +77 -0
- package/app/node_modules/next/dist/shared/lib/instant-messages.js +43 -0
- package/app/node_modules/next/dist/shared/lib/invariant-error.js +23 -0
- package/app/node_modules/next/dist/shared/lib/is-plain-object.js +42 -0
- package/app/node_modules/next/dist/shared/lib/is-thenable.js +20 -0
- package/app/node_modules/next/dist/shared/lib/isomorphic/path.js +14 -0
- package/app/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js +37 -0
- package/app/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js +19 -0
- package/app/node_modules/next/dist/shared/lib/loadable.shared-runtime.js +246 -0
- package/app/node_modules/next/dist/shared/lib/match-local-pattern.js +46 -0
- package/app/node_modules/next/dist/shared/lib/match-remote-pattern.js +63 -0
- package/app/node_modules/next/dist/shared/lib/modern-browserslist-target.js +15 -0
- package/app/node_modules/next/dist/shared/lib/no-fallback-error.external.js +18 -0
- package/app/node_modules/next/dist/shared/lib/normalized-asset-prefix.js +28 -0
- package/app/node_modules/next/dist/shared/lib/page-path/absolute-path-to-page.js +26 -0
- package/app/node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js +18 -0
- package/app/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js +18 -0
- package/app/node_modules/next/dist/shared/lib/page-path/get-page-paths.js +40 -0
- package/app/node_modules/next/dist/shared/lib/page-path/normalize-data-path.js +23 -0
- package/app/node_modules/next/dist/shared/lib/page-path/normalize-page-path.js +26 -0
- package/app/node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js +19 -0
- package/app/node_modules/next/dist/shared/lib/page-path/remove-page-path-tail.js +20 -0
- package/app/node_modules/next/dist/shared/lib/promise-with-resolvers.js +26 -0
- package/app/node_modules/next/dist/shared/lib/request-insights.js +30 -0
- package/app/node_modules/next/dist/shared/lib/router/adapters.js +139 -0
- package/app/node_modules/next/dist/shared/lib/router/routes/app.js +158 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/add-locale.js +28 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js +20 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js +20 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/app-paths.js +79 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js +17 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js +70 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js +16 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js +27 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/format-url.js +111 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js +174 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js +52 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/get-route-from-asset-path.js +25 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/get-segment-param.js +90 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/html-bots.js +17 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/index.js +30 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/interception-prefix-from-param-type.js +33 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/interception-routes.js +108 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/is-bot.js +57 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/is-dynamic.js +26 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.js +31 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/parse-loader-tree.js +30 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/parse-path.js +33 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js +43 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/parse-url.js +38 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js +20 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/path-match.js +49 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/prepare-destination.js +293 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/querystring.js +79 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/relativize-url.js +40 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js +39 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js +22 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/resolve-param-value.js +116 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/route-match-utils.js +113 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/route-matcher.js +45 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/route-regex.js +256 -0
- package/app/node_modules/next/dist/shared/lib/router/utils/sorted-routes.js +244 -0
- package/app/node_modules/next/dist/shared/lib/router-context.shared-runtime.js +18 -0
- package/app/node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js +99 -0
- package/app/node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.js +66 -0
- package/app/node_modules/next/dist/shared/lib/segment.js +102 -0
- package/app/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js +35 -0
- package/app/node_modules/next/dist/shared/lib/server-reference-info.js +68 -0
- package/app/node_modules/next/dist/shared/lib/side-effect.js +63 -0
- package/app/node_modules/next/dist/shared/lib/size-limit.js +40 -0
- package/app/node_modules/next/dist/shared/lib/turbopack/internal-error.js +53 -0
- package/app/node_modules/next/dist/shared/lib/utils/reflect-utils.js +69 -0
- package/app/node_modules/next/dist/shared/lib/utils/warn-once.js +22 -0
- package/app/node_modules/next/dist/shared/lib/utils.js +216 -0
- package/app/node_modules/next/dist/shared/lib/zod.js +101 -0
- package/app/node_modules/next/dist/telemetry/agent-name.js +20 -0
- package/app/node_modules/next/dist/telemetry/anonymous-meta.js +91 -0
- package/app/node_modules/next/dist/telemetry/detached-flush.js +56 -0
- package/app/node_modules/next/dist/telemetry/events/build.js +187 -0
- package/app/node_modules/next/dist/telemetry/events/index.js +41 -0
- package/app/node_modules/next/dist/telemetry/events/plugins.js +51 -0
- package/app/node_modules/next/dist/telemetry/events/swc-load-failure.js +55 -0
- package/app/node_modules/next/dist/telemetry/events/version.js +68 -0
- package/app/node_modules/next/dist/telemetry/flush-telemetry.js +19 -0
- package/app/node_modules/next/dist/telemetry/post-telemetry-payload.js +48 -0
- package/app/node_modules/next/dist/telemetry/project-id.js +48 -0
- package/app/node_modules/next/dist/telemetry/storage.js +305 -0
- package/app/node_modules/next/dist/trace/index.js +58 -0
- package/app/node_modules/next/dist/trace/report/index.js +37 -0
- package/app/node_modules/next/dist/trace/report/to-json-build.js +40 -0
- package/app/node_modules/next/dist/trace/report/to-json.js +171 -0
- package/app/node_modules/next/dist/trace/report/to-telemetry.js +36 -0
- package/app/node_modules/next/dist/trace/shared.js +39 -0
- package/app/node_modules/next/dist/trace/trace.js +211 -0
- package/app/node_modules/next/package.json +139 -0
- package/app/node_modules/react/cjs/react-compiler-runtime.production.js +16 -0
- package/app/node_modules/react/cjs/react-jsx-dev-runtime.production.js +14 -0
- package/app/node_modules/react/cjs/react-jsx-runtime.production.js +34 -0
- package/app/node_modules/react/cjs/react.development.js +1284 -0
- package/app/node_modules/react/cjs/react.production.js +542 -0
- package/app/node_modules/react/compiler-runtime.js +14 -0
- package/app/node_modules/react/index.js +7 -0
- package/app/node_modules/react/jsx-dev-runtime.js +7 -0
- package/app/node_modules/react/jsx-runtime.js +7 -0
- package/app/node_modules/react/package.json +51 -0
- package/app/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +6603 -0
- package/app/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +6692 -0
- package/app/node_modules/react-dom/cjs/react-dom-server.browser.production.js +7410 -0
- package/app/node_modules/react-dom/cjs/react-dom-server.edge.production.js +7512 -0
- package/app/node_modules/react-dom/cjs/react-dom-server.node.production.js +7707 -0
- package/app/node_modules/react-dom/cjs/react-dom.production.js +210 -0
- package/app/node_modules/react-dom/index.js +38 -0
- package/app/node_modules/react-dom/package.json +117 -0
- package/app/node_modules/react-dom/server.browser.js +16 -0
- package/app/node_modules/react-dom/server.edge.js +17 -0
- package/app/node_modules/react-dom/server.node.js +18 -0
- package/app/node_modules/react-dom/static.node.js +14 -0
- package/app/node_modules/semver/package.json +38 -0
- package/app/node_modules/styled-jsx/dist/index/index.js +499 -0
- package/app/node_modules/styled-jsx/index.js +1 -0
- package/app/node_modules/styled-jsx/package.json +132 -0
- package/app/node_modules/styled-jsx/style.js +1 -0
- package/app/package.json +6 -0
- package/app/public/brand/botmancers-logo-filled-1024.png +0 -0
- package/app/public/brand/botmancers-logo-filled-256.png +0 -0
- package/app/public/brand/botmancers-logo-filled-512.png +0 -0
- package/app/public/brand/botmancers-logo-filled-64.png +0 -0
- package/app/public/brand/botmancers-logo-outline-1024.png +0 -0
- package/app/public/brand/botmancers-logo-outline-256.png +0 -0
- package/app/public/brand/botmancers-logo-outline-512.png +0 -0
- package/app/public/brand/botmancers-logo-outline-64.png +0 -0
- package/app/public/computer/dock-chrome.png +0 -0
- package/app/public/computer/dock-gray.png +0 -0
- package/app/public/computer/dock-terminal.png +0 -0
- package/app/public/computer/wallpaper.png +0 -0
- package/app/public/dock-chrome_c5c1.png +0 -0
- package/app/public/dock-gray_6226.png +0 -0
- package/app/public/dock-terminal_166d.png +0 -0
- package/app/public/file.svg +1 -0
- package/app/public/globe.svg +1 -0
- package/app/public/next.svg +1 -0
- package/app/public/vercel.svg +1 -0
- package/app/public/wallpaper_1c49.png +0 -0
- package/app/public/window.svg +1 -0
- package/app/server.js +38 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.js +110 -2
- package/dist/config.js +4 -0
- package/dist/home.d.ts +39 -0
- package/dist/home.js +131 -0
- package/dist/managed.d.ts +145 -0
- package/dist/managed.js +749 -0
- package/dist/product.d.ts +113 -0
- package/dist/product.js +1015 -0
- package/dist/setup.d.ts +20 -0
- package/dist/setup.js +136 -0
- package/dist/upgrade.d.ts +15 -0
- package/dist/upgrade.js +275 -0
- package/package.json +11 -5
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
module.exports=[91084,17834,e=>{"use strict";var t=e.i(54799),n=e.i(62294),r=e.i(27510),a=e.i(53059),i=e.i(35613);e.i(57281);var o=e.i(54226),s=e.i(64974),d=e.i(76459),l=e.i(62349),u=e.i(51749);let c=new Set(["version","target","executionKind","objective","contextWorkRequests","resumeWorkRequest","limits"]),_=new Set(["maxAttempts","deadlineSeconds"]),p=new Set(["conversation","implementation","review","revision"]);function f(e,t){return"string"==typeof e&&e.trim().length>0&&e.length<=t}function g(e,t,n){return Number.isInteger(e)&&e>=t&&e<=n}function m(e){if(!e||"object"!=typeof e||Array.isArray(e))return{ok:!1,reason:"envelope must be a JSON object"};let t=Object.keys(e).filter(e=>!c.has(e));if(t.length>0)return{ok:!1,reason:`unknown field ${t.join(", ")}`};if(1!==e.version)return{ok:!1,reason:"version must be 1"};if(!f(e.target,120))return{ok:!1,reason:"target must be a non-empty Agent name (max 120 characters)"};if("string"!=typeof e.executionKind||!p.has(e.executionKind))return{ok:!1,reason:"unknown executionKind"};if(!f(e.objective,2e4))return{ok:!1,reason:"objective must be non-empty (max 20000 characters)"};let n={version:1,target:e.target.trim(),executionKind:e.executionKind,objective:e.objective.trim()};if(void 0!==e.contextWorkRequests){let t=e.contextWorkRequests;if(!Array.isArray(t)||t.length>8||t.some(e=>!f(e,160)))return{ok:!1,reason:"contextWorkRequests must be at most 8 Work Request references"};if(new Set(t).size!==t.length)return{ok:!1,reason:"contextWorkRequests must be unique"};n.contextWorkRequests=[...t]}let r=Object.prototype.hasOwnProperty.call(e,"resumeWorkRequest");if("revision"===n.executionKind){if(!r||!f(e.resumeWorkRequest,160))return{ok:!1,reason:"revision requires resumeWorkRequest"};n.resumeWorkRequest=e.resumeWorkRequest}else if(r)return{ok:!1,reason:"resumeWorkRequest is revision-only"};if(void 0!==e.limits){let t=e.limits;if(!t||"object"!=typeof t||Array.isArray(t))return{ok:!1,reason:"limits must be an object"};if(Object.keys(t).some(e=>!_.has(e)))return{ok:!1,reason:"unknown limits field"};if(void 0!==t.maxAttempts&&!g(t.maxAttempts,1,10))return{ok:!1,reason:"limits.maxAttempts must be 1-10"};if(void 0!==t.deadlineSeconds&&!g(t.deadlineSeconds,1,86400))return{ok:!1,reason:"limits.deadlineSeconds must be 1-86400"};n.limits={},void 0!==t.maxAttempts&&(n.limits.maxAttempts=t.maxAttempts),void 0!==t.deadlineSeconds&&(n.limits.deadlineSeconds=t.deadlineSeconds)}return{ok:!0,envelope:n}}let h=/```botmancers-wake[^\S\r\n]*\r?\n([\s\S]*?)```/g,k=/WAKE\s+([A-Za-z0-9_-]+)\s*:/gi;function w(e){return JSON.stringify(function e(t){return Array.isArray(t)?t.map(e):t&&"object"==typeof t?Object.fromEntries(Object.keys(t).sort().map(n=>[n,e(t[n])])):t}(e.validation.ok?{syntax:e.syntax,envelope:e.validation.envelope}:{syntax:e.syntax,raw:e.raw}))}var y=e.i(142);(0,y.wakeSafetyLimits)().maxWakeDepth,(0,y.wakeSafetyLimits)().rootBudget;class E extends Error{code;constructor(e,t){super(t),this.name="WakeRouterError",this.code=e}}let v=n.default.prepare("SELECT * FROM wakes WHERE id = ?"),I=n.default.prepare("SELECT * FROM wakes WHERE idempotency_key = ?"),R=n.default.prepare("SELECT * FROM wakes WHERE source_event_id = ? AND position = ?");function q(e){return v.get(e)}function b(e,t){return{wake:e,request:e.work_request_id?n.engine.getWorkRequest(e.work_request_id)??null:null,created:t}}function A(e){return"accepted"===e.status||"blocked"===e.status}function S(e){return n.default.prepare("SELECT COUNT(*) AS n FROM work_requests WHERE root_request_id = ? AND wake_event_id IS NOT NULL").get(e).n}function x(e){let{rootBudget:t}=(0,y.wakeSafetyLimits)(),n=S(e);return n<t?null:{status:"rejected",code:"root_budget_exhausted",limit:t,observed:n,reason:`This work already used ${n} Wakes (limit ${t}).`}}function T(e,t,r){let a=(0,n.resolveWakeTarget)(e.target);if(!a.ok){var i;return"ambiguous"===a.reason?{status:"unavailable",code:"target_ambiguous",reason:`More than one Agent is named ${e.target}; rename one to restore routing.`}:(i=e.target,n.default.prepare("SELECT 1 FROM groups WHERE lower(trim(name)) = lower(trim(?))").get(i))?{status:"rejected",code:"target_is_group",reason:`${e.target} is a Group; wake one Agent by name.`}:{status:"unavailable",code:"target_not_found",reason:`No Agent is named ${e.target}.`}}return D(e,t,{id:a.agentId,name:a.displayName},r)}function D(e,t,r,a){let i=a.parent?.root_request_id??null,o=(0,s.selectExecutionPolicy)({entryPoint:"wake",executionKind:e.executionKind,wakeSyntax:t,resumesWorkRequest:!!e.resumeWorkRequest});if(!o.ok)return{status:"rejected",code:"unsupported_policy",reason:o.reason,target:r};let d=o.policy;if(e.resumeWorkRequest){let t=n.engine.getWorkRequest(e.resumeWorkRequest);if(!t||t.target_agent_id!==r.id||!["implementation","revision"].includes(t.execution_kind))return{status:"rejected",code:"invalid_reference",reason:"A revision resumes an implementation Work Request of the same Agent.",target:r}}if("review"===e.executionKind&&((e.contextWorkRequests??[]).some(e=>{let t=n.engine.getWorkRequest(e);return t&&["implementation","revision"].includes(t.execution_kind)&&t.target_agent_id===r.id})||null!==i&&n.default.prepare("SELECT 1 FROM work_requests WHERE root_request_id = ? AND target_agent_id = ? AND execution_kind IN ('implementation', 'revision') LIMIT 1").get(i,r.id)))return{status:"rejected",code:"reviewer_not_independent",reason:`${r.name} did the work under review; wake a different reviewer or ask the person.`,target:r};let c=function(e,t,r){if(!(0,y.needsEditGrant)(e.executionKind))return{rule:"readonly_default",id:null};if(function(e,t,r){let a=r.parent;if("implementation"!==e.executionKind||t.id!==r.agentId||!a||null!==a.wake_event_id||0!==a.wake_depth||null!==a.parent_request_id||a.target_agent_id!==r.agentId||!(0,y.isOwnerPrincipal)({kind:a.root_principal_kind??"",id:a.root_principal_id??""}))return!1;let i=n.engine.listSafetyDecisions(a.id)[0];return i?.principal_type==="human_owner"}(e,t,r))return{rule:"owner_direct_self_wake",id:null};let a=(0,y.activeEditGrant)(r.agentId,t.id);return a?{rule:"edit_grant",id:a.id}:null}(e,r,a);return c?function(e,t,r){var a;let i=n.bots.getById(e.id),o=(0,l.resolveAgent)(i);if(!o.launchable)return{status:"blocked",code:"target_unconfigured",reason:o.needs_deck_selection?`${e.name} has no Agent Deck selected.`:`${e.name} has an unsupported Agent type.`,target:e,policy:t,grant:r};let s=(a=i,"hermes-gateway"===(0,l.agentTransport)((0,l.resolveAgent)(a).agent)?(0,u.loadHermesConfig)()?{available:!0}:{available:!1,reason:"The Hermes gateway is not configured (HERMES_API_SERVER_KEY is unset)."}:{available:!0});return s.available?{status:"accepted",code:null,reason:null,target:e,policy:t,grant:r}:{status:"blocked",code:"target_unavailable",reason:s.reason,target:e,policy:t,grant:r}}(r,d,c):{status:"blocked",code:"grant_required",reason:`${r.name} needs your approval for edit work.`,target:r,policy:d,grant:null}}function N(e){let t=(0,y.wakeSafetyLimits)(),n=e.rootRequestId?S(e.rootRequestId):0;return{safety_version:y.WAKE_SAFETY_VERSION,root_principal:e.rootPrincipal,wake_depth:e.wakeDepth,grant_rule:e.grant?.rule??null,grant_id:e.grant?.id??null,root_budget:{used:n+ +!!e.counting,limit:t.rootBudget},safety_limits:{max_wake_depth:t.maxWakeDepth,root_budget:t.rootBudget}}}function C(e,t,n,r,a){return{principalType:"agent_principal",principal:{kind:"bot",id:n},decision:"accepted"===e.status?"allowed":"blocked",reasonCode:e.code,grantRule:e.grant?.rule??null,grantId:e.grant?.id??null,wakeId:t,snapshot:r,now:a}}function O(e,t,r,a){let i=e.parent_request_id?n.engine.getWorkRequest(e.parent_request_id)??null:null;if(!i)throw new E("invalid_input","A Wake creates work only in a tracked lineage.");let o=N({rootPrincipal:{kind:i.root_principal_kind??"unknown",id:i.root_principal_id??"unknown"},wakeDepth:i.wake_depth+1,grant:r.grant,rootRequestId:i.root_request_id,counting:!0}),{request:s}=n.engine.createOrGetWorkRequest({sourceConversationId:e.source_conversation_id,sourceEventId:e.source_event_id,requester:{kind:"bot",id:e.requester_agent_id},targetAgentId:r.target.id,intent:t.objective,executionKind:r.policy.execution_kind,toolProfile:r.policy.tool_profile,idempotencyKey:e.idempotency_key,parentRequestId:e.parent_request_id,wakeEventId:e.id,policy:{source:"wake",wake_version:1,wake_syntax:e.syntax,root_wake_id:e.root_wake_id,requested_target:t.target,target_name_snapshot:r.target.name,context_work_requests:t.contextWorkRequests??[],resume_work_request:t.resumeWorkRequest??null,limits:t.limits??{},return_to:{agent_id:e.requester_agent_id,conversation_id:e.source_conversation_id}},executionPolicy:r.policy,initialState:"blocked"===r.status?"blocked":"queued",stateReason:"blocked"===r.status?`${r.code}: ${r.reason}`:null,safetySnapshot:o,safety:C(r,e.id,e.requester_agent_id,o,a),now:a});return"grant_required"===r.code&&W(s,e.id,a),s}function W(e,t,r){n.engine.appendEvent(e.id,{type:"grant_requested",data:{wake_id:t,caller_agent_id:e.requester_id,target_agent_id:e.target_agent_id,authority:"edit",execution_kind:e.execution_kind},now:r})}function L(e){if("string"!=typeof e.sourceEventId||!e.sourceEventId.trim())throw new E("invalid_input","sourceEventId is required.");return n.default.transaction(()=>{let r=n.default.prepare("SELECT * FROM messages WHERE id = ?").get(e.sourceEventId);if(!r)throw new E("source_not_found",`No conversation event ${e.sourceEventId}.`);if("bot"!==r.sender_type||!r.sender_id||!n.bots.getById(r.sender_id))throw new E("invalid_input","Wakes are routed only from an Agent message.");let a=null;if(e.parentRequestId){if(!(a=n.engine.getWorkRequest(e.parentRequestId)??null))throw new E("not_found",`No parent Work Request ${e.parentRequestId}.`);if(a.target_agent_id!==r.sender_id||a.source_conversation_id!==r.conversation_id)throw new E("parent_mismatch","The parent Work Request was not run by this Agent in this conversation.")}let i=e.now??Date.now();return(function(e){let t=[],n=0,r=(n,r)=>{var a;let i;for(let o of(a=e.slice(n,r),(i=[...a.matchAll(k)]).map((e,t)=>{let r=t+1<i.length?i[t+1].index:a.length,o=a.slice(e.index,r);return{at:n+e.index,raw:o.trim(),target:e[1],message:o.slice(e[0].length).trim()}}))){let e="GROUP"===o.target.toUpperCase()?{ok:!1,reason:"group wakes are not supported; wake one Agent by name"}:0===o.message.length?{ok:!1,reason:"objective must be non-empty (max 20000 characters)"}:m({version:1,target:o.target,executionKind:"conversation",objective:o.message});t.push({at:o.at,syntax:"legacy",raw:o.raw,validation:e})}};for(let a of e.matchAll(h)){let e,i=a.index;r(n,i);try{e=m(JSON.parse(a[1]))}catch{e={ok:!1,reason:"block is not valid JSON"}}t.push({at:i,syntax:"structured",raw:a[0],validation:e}),n=i+a[0].length}return r(n,e.length),t.sort((e,t)=>e.at-t.at).map((e,t)=>({position:t,syntax:e.syntax,raw:e.raw,validation:e.validation}))})(r.content).map(e=>(function(e,r,a,i,o){var s;let d,l,u=(s=r.id,l=(0,t.createHash)("sha256").update(w(e)).digest("hex").slice(0,32),`wake:v1:${s}:${e.position}:${l}`),c=I.get(u);if(c)return b(c,!1);if(R.get(r.id,e.position))throw new E("idempotency_conflict",`Wake ${e.position} of event ${r.id} was already recorded with a different payload.`);let _=(0,t.randomUUID)(),p=i?.wake_event_id?q(i.wake_event_id):void 0,f={id:_,idempotency_key:u,source_conversation_id:r.conversation_id,source_event_id:r.id,requester_agent_id:a,parent_request_id:i?.id??null,root_wake_id:p?.root_wake_id??_,syntax:e.syntax},g=null;if(e.validation.ok)if(i){let t=function(e,t,r){for(let a of[...e.contextWorkRequests??[],...e.resumeWorkRequest?[e.resumeWorkRequest]:[]]){let e=n.engine.getWorkRequest(a);if(!(e&&(r?e.root_request_id===r.root_request_id:e.source_conversation_id===t)))return`Work Request ${a} is not in this conversation lineage.`}return null}(g=e.validation.envelope,r.conversation_id,i);d=t?{status:"rejected",code:"invalid_reference",reason:t}:function(e){let{maxWakeDepth:t}=(0,y.wakeSafetyLimits)(),n=e.wake_depth+1;return n>t?{status:"rejected",code:"depth_exceeded",limit:t,observed:n,reason:`This work is already ${e.wake_depth} Wakes deep (limit ${t}).`}:x(e.root_request_id)}(i)??T(g,e.syntax,{agentId:a,parent:i})}else g=e.validation.envelope,d={status:"rejected",code:"untracked_lineage",reason:"Its source turn is not tracked work, so the Wake cannot start a lineage."};else d={status:"rejected",code:"invalid_envelope",reason:e.validation.reason};let m=g&&A(d)?O(f,g,d,o):null;return n.default.prepare(`
|
|
2
|
+
INSERT INTO wakes (
|
|
3
|
+
id, idempotency_key, source_conversation_id, source_event_id, position, syntax, payload,
|
|
4
|
+
requester_agent_id, requested_target, target_agent_id, target_name_snapshot, execution_kind,
|
|
5
|
+
parent_request_id, root_request_id, root_wake_id, depth, status, reason_code, reason,
|
|
6
|
+
work_request_id, limit_value, observed_value, created_at, updated_at
|
|
7
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
8
|
+
`).run(_,u,r.conversation_id,r.id,e.position,e.syntax,w(e),a,g?.target??null,d.target?.id??null,d.target?.name??null,g?.executionKind??null,i?.id??null,m?.root_request_id??i?.root_request_id??null,f.root_wake_id,m?.wake_depth??(i?i.wake_depth+1:0),d.status,d.code,d.reason,m?.id??null,A(d)?null:d.limit??null,A(d)?null:d.observed??null,o,o),b(q(_),!0)})(e,r,r.sender_id,a,i))}).immediate()}function M(e,t=Date.now()){return n.default.transaction(()=>{let r=q(e);if(!r)throw new E("not_found",`No Wake ${e}.`);if("unavailable"!==r.status&&"blocked"!==r.status||"grant_denied"===r.reason_code)return b(r,!1);let a=JSON.parse(r.payload).envelope,i=n.default.prepare(`
|
|
9
|
+
UPDATE wakes SET status = ?, reason_code = ?, reason = ?, target_agent_id = ?, target_name_snapshot = ?,
|
|
10
|
+
work_request_id = ?, root_request_id = ?, limit_value = ?, observed_value = ?, updated_at = ?
|
|
11
|
+
WHERE id = ?
|
|
12
|
+
`),o=r.parent_request_id?n.engine.getWorkRequest(r.parent_request_id)??null:null,s={agentId:r.requester_agent_id,parent:o};if("unavailable"===r.status){let e=o?x(o.root_request_id)??T(a,r.syntax,s):{status:"rejected",code:"untracked_lineage",reason:"Its source turn is not tracked work, so the Wake cannot start a lineage."};if(!A(e))return(e.status!==r.status||e.code!==r.reason_code||e.reason!==r.reason)&&i.run(e.status,e.code,e.reason,null,null,null,r.root_request_id,e.limit??null,e.observed??null,t,r.id),b(q(r.id),!1);let n=O(r,a,e,t);return i.run(e.status,e.code,e.reason,e.target.id,e.target.name,n.id,n.root_request_id,null,null,t,r.id),b(q(r.id),!0)}let d=n.engine.getWorkRequest(r.work_request_id),l=n.bots.getById(d.target_agent_id);if(!l||"blocked"!==d.state)return b(r,!1);let u=D(a,r.syntax,{id:l.id,name:l.name},s);return $(r,d,u,"target_available",t)}).immediate()}function $(e,t,r,a,i){let o=n.default.prepare("UPDATE wakes SET status = ?, reason_code = ?, reason = ?, updated_at = ? WHERE id = ?");if("blocked"===r.status){var s,d;if(r.code===e.reason_code&&r.reason===e.reason)return b(e,!1);o.run("blocked",r.code,r.reason,i,e.id);let a=N({rootPrincipal:{kind:t.root_principal_kind??"unknown",id:t.root_principal_id??"unknown"},wakeDepth:t.wake_depth,grant:r.grant,rootRequestId:null,counting:!1});return n.engine.recordSafetyDecision(t.id,C(r,e.id,e.requester_agent_id,a,i)),"grant_required"===r.code&&W(t,e.id,i),s=r.code,d=r.reason,n.engine.reblockWorkRequest(t.id,{reason:`${s}: ${d}`,type:"wake_reblocked",data:{reason_code:s,reason:d},now:i}),b(q(e.id),!1)}if("accepted"!==r.status)return b(e,!1);let l=N({rootPrincipal:{kind:t.root_principal_kind??"unknown",id:t.root_principal_id??"unknown"},wakeDepth:t.wake_depth,grant:r.grant,rootRequestId:null,counting:!1});return n.engine.recordSafetyDecision(t.id,C(r,e.id,e.requester_agent_id,l,i)),n.engine.transitionWorkRequest(t.id,{from:"blocked",to:"queued",reason:a,data:{grant_rule:r.grant?.rule??null,grant_id:r.grant?.id??null},now:i}),o.run("accepted",null,null,i,e.id),b(q(e.id),!0)}function F(e){if((0,y.assertOwner)(e.caller.category),"allow"!==e.decision&&"deny"!==e.decision)throw new E("invalid_input","decision must be allow or deny.");let t=e.now??Date.now();return n.default.transaction(()=>{let r=q(e.wakeId);if(!r)throw new y.WakeSafetyError("not_found",`No Wake ${e.wakeId}.`);let a=r.work_request_id?n.engine.getWorkRequest(r.work_request_id):void 0,i=(t,n)=>({...t,decision:e.decision,grant:n,runnable:t.request?.state==="queued",ended:t.request?.terminal_at!==null&&t.request?.terminal_at!==void 0});if("blocked"!==r.status||"grant_required"!==r.reason_code||!a||"blocked"!==a.state){let t=a?(0,y.activeEditGrant)(r.requester_agent_id,a.target_agent_id)??null:null;if("deny"===e.decision&&"grant_denied"===r.reason_code)return{...i(b(r,!1),null),runnable:!1};if("allow"===e.decision&&t&&"grant_denied"!==r.reason_code)return{...i(b(r,!1),t),runnable:!1};throw new y.WakeSafetyError("not_pending","This Wake is not waiting for an owner grant decision.")}let o={kind:e.caller.principal.kind,id:e.caller.principal.id};if("deny"===e.decision)return n.default.prepare("UPDATE wakes SET reason_code = 'grant_denied', reason = ?, updated_at = ? WHERE id = ?").run("The owner denied this edit Wake.",t,r.id),n.engine.appendEvent(a.id,{type:"grant_denied",data:{wake_id:r.id,caller_agent_id:r.requester_agent_id,target_agent_id:a.target_agent_id,authority:"edit",decided_by:o},now:t}),n.engine.recordSafetyDecision(a.id,{principalType:"human_owner",principal:o,decision:"denied",reasonCode:"grant_denied",wakeId:r.id,snapshot:{safety_version:y.WAKE_SAFETY_VERSION,decision:"deny",decided_by:o},now:t}),n.engine.transitionWorkRequest(a.id,{from:"blocked",to:"cancelled",reason:"grant_denied",expectedVersion:a.version,errorCode:"grant_denied",errorMessage:"The owner denied this edit Wake; no work ran.",now:t}),i(b(q(r.id),!1),null);let{grant:s}=(0,y.ensureEditGrant)({callerAgentId:r.requester_agent_id,targetAgentId:a.target_agent_id,grantedBy:o,sourceWakeId:r.id,now:t});n.engine.appendEvent(a.id,{type:"grant_approved",data:{wake_id:r.id,grant_id:s.id,caller_agent_id:s.caller_agent_id,target_agent_id:s.target_agent_id,authority:"edit",decided_by:o},now:t});let d=JSON.parse(r.payload).envelope,l=n.bots.getById(a.target_agent_id),u=r.parent_request_id?n.engine.getWorkRequest(r.parent_request_id)??null:null,c=D(d,r.syntax,{id:l.id,name:l.name},{agentId:r.requester_agent_id,parent:u});return i($(r,a,c,"grant_approved",t),s)}).immediate()}e.s(["WakeRouterError",0,E,"decideWakeGrant",0,F,"retryWake",0,M,"routeAgentWakes",0,L],17834);var H=e.i(9346);let U=new Set(["version","decision","implementationAttemptId","reviewAttemptId","commitMessage"]);function P(e){return"string"==typeof e&&e.trim().length>0&&e.length<=160}let z=/```botmancers-finalize[^\S\r\n]*\r?\n([\s\S]*?)```/g;function j(e){return(0,t.createHash)("sha256").update(e).digest("hex")}function B(e){try{let t=JSON.parse(e.policy_snapshot);return t&&"object"==typeof t&&!Array.isArray(t)?t:{}}catch{return{}}}let K=["implementation","revision"];function G(e){return n.default.prepare("SELECT * FROM work_attempts WHERE request_id = ? ORDER BY attempt_number DESC LIMIT 1").get(e)}function J(e){return n.default.prepare("SELECT * FROM candidate_manifests WHERE attempt_id = ?").get(e)}function V(e){return n.default.prepare("SELECT * FROM finalizations WHERE id = ?").get(e)}function Y(e){return JSON.parse(e.files)}function X(e,t,r=Date.now()){let a=n.engine.getAttempt(e);if(!a?.external_run_id)return!1;let i=n.default.prepare("SELECT baseline_ref, baseline_digest FROM attempt_finalization_baselines WHERE attempt_id = ?").get(e);return i?i.baseline_ref===t.baselineRef&&i.baseline_digest===t.baselineDigest:(n.default.prepare(`
|
|
13
|
+
INSERT OR IGNORE INTO attempt_finalization_baselines (attempt_id, request_id, external_run_id, baseline_ref, baseline_digest, created_at)
|
|
14
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
15
|
+
`).run(e,a.request_id,a.external_run_id,t.baselineRef,t.baselineDigest,r),!0)}function Z(e,r,a,i=Date.now()){let o=a.finalization;if(!o||!r.external_run_id||!K.includes(e.execution_kind)||"edit"!==e.tool_profile)return;if(o.baselineRef&&o.baselineDigest&&!X(r.id,{baselineRef:o.baselineRef,baselineDigest:o.baselineDigest},i))return void n.engine.appendEvent(e.id,{type:"candidate_manifest_unavailable",attemptId:r.id,data:{external_run_id:r.external_run_id,reason_code:"BASELINE_MISMATCH",reason:"The terminal baseline did not match the baseline captured at launch."},now:i});let s=o.candidate;if(!s)return;if(!s.ok)return void n.engine.appendEvent(e.id,{type:"candidate_manifest_unavailable",attemptId:r.id,data:{external_run_id:r.external_run_id,reason_code:s.code,reason:s.message.slice(0,300)},now:i});let d=s.manifest;if(J(r.id))return;let l=(0,t.randomUUID)();n.default.prepare(`
|
|
16
|
+
INSERT INTO candidate_manifests (
|
|
17
|
+
id, attempt_id, request_id, conversation_id, external_run_id, baseline_ref, baseline_digest,
|
|
18
|
+
base_commit, manifest_digest, files, file_count, created_at
|
|
19
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
20
|
+
`).run(l,r.id,e.id,e.source_conversation_id,r.external_run_id,d.baselineRef,d.baselineDigest,d.baseCommit,d.manifestDigest,JSON.stringify(d.files),d.files.length,i),n.engine.appendEvent(e.id,{type:"candidate_manifest_recorded",attemptId:r.id,data:{manifest_id:l,external_run_id:r.external_run_id,baseline_ref:d.baselineRef,baseline_digest:d.baselineDigest,base_commit:d.baseCommit,manifest_digest:d.manifestDigest,file_count:d.files.length},now:i})}function Q(e,t,n,r){return`botmancers-finalize-v1-${j([e,t,n,r].join(":")).slice(0,48)}`}function ee(e,t){return{finalization_id:e.id,decision_event_id:e.decision_event_id,coordinator_agent_id:e.coordinator_agent_id,implementation_request_id:e.implementation_request_id,implementation_attempt_id:e.implementation_attempt_id,review_request_id:e.review_request_id,review_attempt_id:e.review_attempt_id,external_run_id:e.external_run_id,manifest_id:e.manifest_id,manifest_digest:t?.manifest_digest??null,baseline_digest:t?.baseline_digest??null,base_commit:t?.base_commit??null,file_count:t?.file_count??null}}let et=new Set(["BASE_MISMATCH","INDEX_DIRTY","BASELINE_MISMATCH","PATH_INVALID","PATH_UNEXPECTED","DIGEST_MISMATCH","IDEMPOTENCY_CONFLICT","GIT_LOCK_CONFLICT","REF_RACE","FINALIZATION_NOT_PREPARED","RUN_NOT_TERMINAL","FINALIZATION_INVALID","RUN_NOT_FOUND"]);function en(e,t,r,a){return n.engine.transaction(()=>{let i=n.default.prepare(`
|
|
21
|
+
UPDATE finalizations SET state = ?, reason_code = ?, reason = ?, commit_id = ?, tree_id = ?, parent_commit = ?,
|
|
22
|
+
result_manifest_digest = ?, file_count = ?, updated_at = ?, finished_at = ?
|
|
23
|
+
WHERE id = ? AND finished_at IS NULL
|
|
24
|
+
`).run(t,r.reasonCode??null,r.reason?.slice(0,300)??null,r.commit??null,r.tree??null,r.parent??null,r.manifestDigest??null,r.fileCount??null,a,a,e.id),o=V(e.id);if(1!==i.changes)return o;let s=n.default.prepare("SELECT * FROM candidate_manifests WHERE id = ?").get(e.manifest_id);return n.engine.appendEvent(e.implementation_request_id,{type:`finalization_${t}`,attemptId:e.implementation_attempt_id,data:{...ee(o,s),reason_code:o.reason_code,reason:o.reason,commit:o.commit_id,tree:o.tree_id,parent:o.parent_commit,result_manifest_digest:o.result_manifest_digest},now:a}),o})}function er(e,t=!1){if(!(e instanceof H.AgentDeckApiError))return{state:t?null:"failed",reasonCode:"finalization_failed",reason:"The finalization outcome is unknown; retrying with the same idempotency key is safe."};if("agent_deck_unreachable"===e.code||t&&"agent_deck_invalid_response"===e.code)return{state:null,reasonCode:e.code,reason:e.message};if("agent_deck_rejected"!==e.code)return{state:"failed",reasonCode:e.code,reason:e.message};let n=e.deckCode??"";return"FINALIZATION_CANCELED"===n?{state:"canceled",reasonCode:n.toLowerCase(),reason:e.message}:et.has(n)?{state:"blocked",reasonCode:n.toLowerCase(),reason:e.message}:t&&(!n||null!==e.status&&e.status>=500)?{state:null,reasonCode:n?n.toLowerCase():"finalization_failed",reason:"The finalization outcome is unknown; retrying with the same idempotency key is safe."}:{state:"failed",reasonCode:n?n.toLowerCase():"finalization_failed",reason:e.message}}function ea(e,t,r,a){return n.engine.appendEvent(e.implementation_request_id,{type:"finalization_retry_pending",attemptId:e.implementation_attempt_id,data:{finalization_id:e.id,external_run_id:e.external_run_id,reason_code:t,reason:r},now:a}),V(e.id)}async function ei(e){let t=V(e);if(!t||"preparing"!==t.state)return t;if(!(0,H.hasAgentDeckRunToken)())return en(t,"failed",{reasonCode:"agent_deck_token_missing",reason:H.AGENT_DECK_API_MESSAGES.agent_deck_token_missing},Date.now());let r=JSON.parse(t.request_body),a=n.default.prepare("SELECT * FROM candidate_manifests WHERE id = ?").get(t.manifest_id);if(null===t.submitted_at){try{var i,o;let e=await (0,H.getAgentDeckRunChanges)(t.external_run_id);if(e.manifestDigest!==a.manifest_digest||e.baselineDigest!==a.baseline_digest||e.baseCommit!==a.base_commit||(i=e.files,o=r.files,JSON.stringify(i)!==JSON.stringify(o)))return en(t,"blocked",{reasonCode:"manifest_changed",reason:`The workspace changed after review (candidate manifest ${e.manifestDigest}, reviewed ${a.manifest_digest}); nothing was committed.`},Date.now())}catch(n){let e=er(n);if(!e.state)return ea(t,e.reasonCode,e.reason,Date.now());return en(t,e.state,{reasonCode:e.reasonCode,reason:e.reason},Date.now())}n.default.prepare("UPDATE finalizations SET submitted_at = ?, updated_at = ? WHERE id = ? AND submitted_at IS NULL AND finished_at IS NULL").run(Date.now(),Date.now(),t.id),t=V(e)}try{let e=await (0,H.finalizeAgentDeckRun)(t.external_run_id,r,t.idempotency_key);if(e.manifestDigest!==a.manifest_digest||void 0!==e.fileCount&&e.fileCount!==a.file_count||void 0!==e.reviewId&&e.reviewId!==t.review_request_id||void 0!==e.parent&&e.parent!==a.base_commit)return en(t,"failed",{reasonCode:"agent_deck_invalid_response",reason:"Agent Deck returned commit evidence that does not match the persisted finalization request."},Date.now());return en(t,"committed",{commit:e.commit,tree:e.tree,parent:e.parent??a.base_commit,manifestDigest:e.manifestDigest,fileCount:e.fileCount??a.file_count},Date.now())}catch(n){let e=er(n,!0);if(!e.state)return ea(t,e.reasonCode,e.reason,Date.now());return en(t,e.state,{reasonCode:e.reasonCode,reason:e.reason},Date.now())}}function eo(){return n.default.prepare("SELECT id FROM finalizations WHERE state = 'preparing' ORDER BY created_at ASC, id ASC").all().map(e=>e.id)}(0,y.wakeSafetyLimits)().maxContinuations;let es={kind:"service",id:"botmancers-engine"},ed="Botmancers";function el(e){try{let t=JSON.parse(e.policy_snapshot);return t&&"object"==typeof t&&!Array.isArray(t)?t:{}}catch{return{}}}function eu(e){return n.bots.getById(e)?.name??`agent:${e}`}function ec(e){let t;if("completed"!==e.state||!e.result)return null;try{t=JSON.parse(e.result).reply_message_id}catch{return null}if("string"!=typeof t)return null;let r=n.default.prepare("SELECT * FROM messages WHERE id = ?").get(t);return r&&"bot"===r.sender_type&&r.sender_id===e.target_agent_id?r:null}function e_(e,t=!1){let r=n.engine.listAttempts(e.id),a=r.length>0?r[r.length-1]:null,i=[`Work Request: ${e.id}`,...a?[`Attempt: ${a.id}`]:[],`Agent: ${eu(e.target_agent_id)}`,`Execution kind: ${e.execution_kind}`,`State: ${e.state}`],o=ec(e);if(o){var s;i.push(t?`Result: the ${eu(e.target_agent_id)} reply above.`:`Result:
|
|
25
|
+
${(s=o.content).length>8e3?`${s.slice(0,8e3)}
|
|
26
|
+
[truncated]`:s}`)}else"failed"===e.state||"cancelled"===e.state?i.push(`Failure: ${e.error_code??e.state}${e.error_message?` - ${e.error_message}`:""}`):null===e.terminal_at&&i.push("Result: not finished yet.");let d=function(e){if(!K.includes(e.execution_kind))return null;let t=G(e.id);if(!t)return null;let r=J(t.id);if(r){let e=Y(r),t=e.slice(0,50).map(e=>`- ${e.path} ${e.sha256?`sha256=${e.sha256} mode=${e.mode}`:"deleted"}`);return e.length>50&&t.push(`- ... ${e.length-50} more`),[`Candidate manifest: ${r.manifest_digest} (${e.length} ${1===e.length?"file":"files"}, base commit ${r.base_commit}, baseline ${r.baseline_digest})`,...t].join("\n")}let a=n.default.prepare("SELECT data FROM engine_events WHERE request_id = ? AND attempt_id = ? AND type = 'candidate_manifest_unavailable' ORDER BY sequence DESC LIMIT 1").get(e.id,t.id);if(a){let e=JSON.parse(a.data);return`Candidate manifest: unavailable (${e.reason_code??"unknown"}); this work cannot be finalized.`}return null}(e);return d&&i.push(d),i.join("\n")}let ep='You coordinate this work. Decide the next step yourself: reply to the person, ask a question, or emit a botmancers-wake block (one per Agent). Reference earlier work with "contextWorkRequests"; a revision names the implementation it resumes in "resumeWorkRequest". Never report a review that did not run.',ef=n.default.prepare("SELECT * FROM work_requests WHERE requester_kind = ? AND requester_id = ? AND idempotency_key = ?");function eg(e){let t=ef.get(es.kind,es.id,e.key);if(t)return t;if(!n.bots.getById(e.coordinatorId)||!n.default.prepare("SELECT 1 FROM conversations WHERE id = ?").get(e.conversationId))return null;let r=n.default.prepare("SELECT COUNT(*) AS n FROM work_requests WHERE root_request_id = ? AND requester_kind = ? AND requester_id = ?").get(e.parent.root_request_id,es.kind,es.id),a=(0,y.wakeSafetyLimits)().maxContinuations;if(r.n>=a)return n.default.prepare("SELECT 1 FROM engine_events WHERE request_id = ? AND type = 'lineage_stopped'").get(e.parent.id)||n.engine.appendEvent(e.parent.id,{type:"lineage_stopped",data:{reason:"continuation_budget_exhausted",limit:a,observed:r.n,continues:e.continues,coordinator_agent_id:e.coordinatorId},now:e.now}),null;let i=(0,s.selectExecutionPolicy)({entryPoint:"continuation",executionKind:"conversation"});if(!i.ok)return null;let o="result"===e.continues?Math.max(e.parent.wake_depth-1,0):e.parent.wake_depth,d={safety_version:y.WAKE_SAFETY_VERSION,root_principal:{kind:e.parent.root_principal_kind??"unknown",id:e.parent.root_principal_id??"unknown"},wake_depth:o,grant_rule:"readonly_default",grant_id:null,continuations:{used:r.n+1,limit:a}};return n.engine.createOrGetWorkRequest({sourceConversationId:e.conversationId,sourceEventId:e.sourceEventId,requester:es,targetAgentId:e.coordinatorId,intent:e.intent,executionKind:i.policy.execution_kind,toolProfile:i.policy.tool_profile,idempotencyKey:e.key,parentRequestId:e.parent.id,policy:{source:"coordinator_continuation",continues:e.continues,work_requests:e.subjects},executionPolicy:i.policy,wakeDepth:o,safetySnapshot:d,safety:{principalType:"engine",principal:es,decision:"allowed",grantRule:"readonly_default",snapshot:d,now:e.now},now:e.now}).request}let em=n.default.prepare("SELECT 1 FROM terminal_followups WHERE request_id = ? AND done_at IS NULL"),eh=n.default.prepare("UPDATE terminal_followups SET done_at = ? WHERE request_id = ? AND done_at IS NULL");function ek(e,r=Date.now()){return n.engine.transaction(()=>{var a;if(!em.get(e))return[];let i=n.engine.getWorkRequest(e);if(!i||null===i.terminal_at||null!==i.legacy_agent_request_id)return[];eh.run(r,e);let o=[],s=e=>{e&&"queued"===e.state&&o.push(e.id)},d=ec(i);if(d){let e,a,o=[],l=null;try{o=L({sourceEventId:d.id,parentRequestId:i.id,now:r})}catch(e){if(!(e instanceof E))throw e;console.error(`Wakes of ${d.id} could not be routed:`,e.message),l=e}for(let e of o)s(e.request);let u=(function(e,r,a=Date.now()){let i=[...e.content.matchAll(z)].map((e,t)=>{let n;try{n=function(e){if(!e||"object"!=typeof e||Array.isArray(e))return{ok:!1,reason:"decision must be a JSON object"};let t=Object.keys(e).filter(e=>!U.has(e));if(t.length>0)return{ok:!1,reason:`unknown field ${t.join(", ")} (the manifest is never supplied in a decision)`};if(1!==e.version)return{ok:!1,reason:"version must be 1"};if("accept"!==e.decision&&"reject"!==e.decision)return{ok:!1,reason:'decision must be "accept" or "reject"'};if(!P(e.implementationAttemptId))return{ok:!1,reason:"implementationAttemptId must name an Attempt"};if(!P(e.reviewAttemptId))return{ok:!1,reason:"reviewAttemptId must name an Attempt"};let n={version:1,decision:e.decision,implementationAttemptId:e.implementationAttemptId.trim(),reviewAttemptId:e.reviewAttemptId.trim()};if(void 0!==e.commitMessage){if("string"!=typeof e.commitMessage||0===e.commitMessage.trim().length||e.commitMessage.length>2e3||e.commitMessage.includes("\0"))return{ok:!1,reason:"commitMessage must be non-empty text (max 2000 characters)"};n.commitMessage=e.commitMessage.trim()}return{ok:!0,decision:n}}(JSON.parse(e[1]))}catch{n={ok:!1,reason:"block is not valid JSON"}}return{position:t,validation:n}});return 0===i.length?[]:n.engine.transaction(()=>i.map(i=>{let o={position:i.position,finalizationId:null,reasonCode:null,reason:null,implementationRequestId:null,reviewRequestId:null},s=(t,s)=>(n.engine.appendEvent(r.id,{type:"finalization_rejected",data:{decision_event_id:e.id,position:i.position,reason_code:t,reason:s,implementation_request_id:o.implementationRequestId,review_request_id:o.reviewRequestId},now:a}),{...o,reasonCode:t,reason:s});if(!i.validation.ok)return s("invalid_decision",i.validation.reason);let d=i.validation.decision,l=n.engine.getAttempt(d.implementationAttemptId),u=n.engine.getAttempt(d.reviewAttemptId);if(o.implementationRequestId=l?.request_id??null,o.reviewRequestId=u?.request_id??null,"reject"===d.decision)return s("review_rejected","The coordinator rejected the review; nothing was finalized.");let c=function(e,t,r){let a=t.target_agent_id,i=(e,t)=>({ok:!1,code:e,reason:t}),o=n.engine.getAttempt(e.implementationAttemptId),s=o?n.engine.getWorkRequest(o.request_id):void 0;if(!s||!K.includes(s.execution_kind))return i("invalid_implementation",`Attempt ${e.implementationAttemptId} is not an implementation or revision Attempt.`);let d=n.engine.getAttempt(e.reviewAttemptId),l=d?n.engine.getWorkRequest(d.request_id):void 0;if(!l||"review"!==l.execution_kind||"readonly"!==l.tool_profile)return i("invalid_review",`Attempt ${e.reviewAttemptId} is not a readonly review Attempt.`);if(s.source_conversation_id!==r||l.source_conversation_id!==r)return i("cross_conversation","The implementation and review must belong to this conversation.");for(let e of[s,l])if(e.root_request_id!==t.root_request_id||function(e){if(!e.wake_event_id)return null;let t=B(e).return_to;return t&&"string"==typeof t.agent_id?t.agent_id:null}(e)!==a)return i("lineage_mismatch",`Work Request ${e.id} was not woken by this coordinator in this lineage.`);if("completed"!==s.state)return i("implementation_not_completed",`Implementation ${s.id} is ${s.state}, not completed.`);let u=G(s.id);if(!u||u.id!==o?.id||"succeeded"!==u.outcome)return i("implementation_not_completed",`Implementation ${s.id} has no successful Attempt.`);let c=J(u.id);if(!c)return i("not_finalizable",`Implementation ${s.id} has no candidate manifest to finalize.`);let _=B(l).context_work_requests;if(!Array.isArray(_)||!_.includes(s.id))return i("review_not_linked",`Review ${l.id} does not reference implementation ${s.id}.`);if(l.target_agent_id===s.target_agent_id)return i("reviewer_not_independent","The reviewer did the work under review.");let p=G(l.id);if("completed"!==l.state||!p||p.id!==d?.id||"succeeded"!==p.outcome)return i("review_not_completed",`Review ${l.id} did not complete.`);if(l.created_at<=c.created_at)return i("stale_manifest",`Review ${l.id} was requested before the candidate manifest was recorded.`);let f=n.default.prepare(`
|
|
27
|
+
SELECT candidate.id FROM work_requests candidate
|
|
28
|
+
WHERE root_request_id = ? AND target_agent_id = ? AND execution_kind IN ('implementation', 'revision')
|
|
29
|
+
AND id <> ? AND (
|
|
30
|
+
created_at > ? OR (created_at = ? AND candidate.rowid > (SELECT rowid FROM work_requests WHERE id = ?))
|
|
31
|
+
) LIMIT 1
|
|
32
|
+
`).get(s.root_request_id,s.target_agent_id,s.id,s.created_at,s.created_at,s.id);if(f)return i("stale_manifest",`A later edit (${f.id}) replaced the manifest of ${s.id}.`);let g=n.default.prepare("SELECT id FROM finalizations WHERE implementation_attempt_id = ? AND state IN ('preparing', 'committed') LIMIT 1").get(u.id);return{ok:!0,chain:{implementation:s,implementationAttempt:u,review:l,reviewAttempt:p,manifest:c},existing:g?.id??null}}(d,r,e.conversation_id);if(!c.ok)return s(c.code,c.reason);let _=Q(e.id,c.chain.implementationAttempt.id,c.chain.reviewAttempt.id,c.chain.manifest.manifest_digest),p=n.default.prepare("SELECT id FROM finalizations WHERE idempotency_key = ?").get(_);if(c.existing&&!p)return s("already_finalized",`Implementation ${c.chain.implementation.id} already has a finalization (${c.existing}).`);let{row:f}=function(e,r,a,i,o){var s,d;let l,u,c=Q(i.id,e.implementationAttempt.id,e.reviewAttempt.id,e.manifest.manifest_digest),_=n.default.prepare("SELECT * FROM finalizations WHERE idempotency_key = ?").get(c);if(_)return{row:_,created:!1};let p=JSON.stringify({baselineDigest:e.manifest.baseline_digest,expectedBaseCommit:e.manifest.base_commit,reviewId:e.review.id,commitMessage:(s=e.implementation,d=e.review,l=r.commitMessage??`Botmancers: ${(s.intent.split("\n").find(e=>e.trim())??"reviewed change").trim().slice(0,60)}`,u=`
|
|
33
|
+
|
|
34
|
+
Botmancers-Work-Request: ${s.id}
|
|
35
|
+
Botmancers-Review: ${d.id}`,`${l.slice(0,4e3-u.length)}${u}`),files:Y(e.manifest)}),f=(0,t.randomUUID)();n.default.prepare(`
|
|
36
|
+
INSERT INTO finalizations (
|
|
37
|
+
id, idempotency_key, conversation_id, decision_event_id, decision_request_id, coordinator_agent_id,
|
|
38
|
+
implementation_request_id, implementation_attempt_id, review_request_id, review_attempt_id,
|
|
39
|
+
manifest_id, external_run_id, request_body, request_hash, state, created_at, updated_at
|
|
40
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'preparing', ?, ?)
|
|
41
|
+
`).run(f,c,i.conversation_id,i.id,a.id,a.target_agent_id,e.implementation.id,e.implementationAttempt.id,e.review.id,e.reviewAttempt.id,e.manifest.id,e.manifest.external_run_id,p,j(p),o,o);let g=V(f);return n.engine.appendEvent(e.implementation.id,{type:"finalization_preparing",attemptId:e.implementationAttempt.id,data:ee(g,e.manifest),now:o}),{row:g,created:!0}}(c.chain,d,r,e,a);return{...o,finalizationId:f.id}}))})(d,i,r).filter(e=>null!==e.reasonCode&&"review_rejected"!==e.reasonCode);u.length>0&&s(eg({key:`continuation:v1:finalize-decision:${d.id}`,coordinatorId:i.target_agent_id,conversationId:d.conversation_id,sourceEventId:d.id,parent:i,intent:(e=u.map(e=>`- Decision ${e.position+1}: ${e.reasonCode} - ${e.reason}`),[`[Finalization not started] ${1===u.length?"One finalization decision":`${u.length} finalization decisions`} from your last message committed nothing:`,e.join("\n"),ep].join("\n\n")),continues:"finalize_decision",subjects:u.flatMap(e=>e.implementationRequestId?[e.implementationRequestId]:[]),now:r}));let c=o.filter(e=>"rejected"===e.wake.status||"unavailable"===e.wake.status);(l||c.length>0)&&s(eg({key:`continuation:v1:wakes:${d.id}`,coordinatorId:i.target_agent_id,conversationId:d.conversation_id,sourceEventId:d.id,parent:i,intent:l?["[Wake not started] The Wakes in your last message could not be routed, so no work started:",l.message,ep].join("\n\n"):(a=c.map(({wake:e})=>{let t=e.target_name_snapshot??e.requested_target??"an unnamed target",n=e.execution_kind??"unknown",r="blocked"===e.status?"is waiting (blocked)":`was ${e.status}`;return`- Wake ${e.position+1} (${n}) to ${t} ${r}: ${e.reason??e.reason_code??"no reason recorded"}`+(e.work_request_id?` Work Request: ${e.work_request_id}.`:" No Work Request was created.")}),[`[Wake not started] ${1===c.length?"One Wake":`${c.length} Wakes`} from your last message did not start any work:`,a.join("\n"),ep].join("\n\n")),continues:"wake_outcome",subjects:c.flatMap(e=>e.wake.work_request_id?[e.wake.work_request_id]:[]),now:r}))}let l=function(e){if(!e.wake_event_id)return null;let t=el(e).return_to;return t&&"string"==typeof t.agent_id&&"string"==typeof t.conversation_id?{agentId:t.agent_id,conversationId:t.conversation_id}:null}(i);return l&&s(eg({key:`continuation:v1:result:${i.id}`,coordinatorId:l.agentId,conversationId:l.conversationId,sourceEventId:d?.id??i.source_event_id,parent:i,intent:(a=d?.conversation_id===l.conversationId,[`[Work Request result] ${eu(i.target_agent_id)} finished the ${i.execution_kind} you requested.`,e_(i,a),..."review"===i.execution_kind&&"completed"===i.state?['If this review satisfies you and the implementation has a candidate manifest, you may commit it by emitting a botmancers-finalize block: {"version": 1, "decision": "accept", "implementationAttemptId": "<id>", "reviewAttemptId": "<id>", "commitMessage": "<optional>"}, or "decision": "reject". Botmancers commits exactly the reviewed manifest; never list files or digests.']:[],ep].join("\n\n")),continues:"result",subjects:[i.id],now:r})),o})}let ew=["person","bot","service"],ey={authentication_unavailable:503,unauthenticated:401,principal_mismatch:403,invalid_request:400,agent_not_found:404,conversation_not_found:404,conversation_not_writable:409,request_not_found:404,idempotency_conflict:409,internal_error:500};class eE extends Error{code;constructor(e,t){super(t),this.name="AgentApiError",this.code=e}get status(){return ey[this.code]}}function ev(e){return"string"==typeof e&&ew.includes(e)}function eI(e){return"string"==typeof e&&e.trim().length>0}function eR(e,t){return!!n.default.prepare("SELECT 1 FROM conversation_participants WHERE conversation_id = ? AND participant_kind = ? AND participant_id = ?").get(e,t.kind,t.id)}function eq(e){switch(e){case"running":case"waiting":return"dispatched";case"completed":return"completed";case"failed":case"cancelled":return"failed";default:return"accepted"}}function eb(e){if(!ev(e.kind)||!eI(e.id)||"bot"===e.kind&&!n.bots.getById(e.id))throw new eE("unauthenticated","Authentication failed.")}let eA={invalid_request:"invalid_request",conversation_not_found:"conversation_not_found",conversation_not_writable:"conversation_not_writable",target_not_found:"agent_not_found",idempotency_conflict:"idempotency_conflict",unknown_principal:"unauthenticated",intake_failed:"internal_error"};function eS(e){return Promise.all(e.requestIds.map(eJ)).then(()=>void 0)}function ex(e,t,r,a){n.engine.transaction(()=>{t&&n.engine.finishAttempt(t,{outcome:"failed",errorCategory:r,errorMessage:a});let i=n.engine.getWorkRequest(e);i&&("queued"===i.state||"running"===i.state)&&n.engine.transitionWorkRequest(e,{from:i.state,to:"failed",errorCode:r,errorMessage:a})})}let eT=(0,o.createDispatcher)(n.default,n.engine);class eD extends Error{reason;constructor(e){super(`Commit deferred: ${e}`),this.reason=e}}async function eN(e){let t=await eW(e);eC(e,t||n.engine.getWorkRequest(e)?.state!=="queued")}function eC(e,t){for(let t of ek(e))eJ(t);for(let e of eo())eV.has(e)||eY(e);t&&eO()}function eO(){for(let e of eT.deferredRequestIds())eG.has(e)||eJ(e)}async function eW(e){let t,d,l=n.engine.getWorkRequest(e);if(!l||"queued"!==l.state||null!==l.next_eligible_at&&eT.now()<l.next_eligible_at)return!1;let u=n.bots.getById(l.target_agent_id);if(!u)return ex(e,null,"agent_unavailable","The agent is no longer registered."),!1;let c=(0,s.authorizeWorkRequest)(l);if(!c.ok){try{n.engine.transitionWorkRequest(e,{from:"queued",to:"failed",expectedVersion:l.version,reason:"policy_rejected",errorCode:c.code,errorMessage:c.reason})}catch(e){if(!(e instanceof i.EngineStoreError&&"stale_state"===e.code))throw e}return!1}let _=c.policy,p=(0,r.agentForDispatch)(u),f=function(e,t){if("revision"!==e.execution_kind)return{ok:!0,binding:null};let r=el(e).resume_work_request,a="string"==typeof r?n.engine.getWorkRequest(r):void 0;if(!a||a.root_request_id!==e.root_request_id||a.target_agent_id!==e.target_agent_id||!["implementation","revision"].includes(a.execution_kind))return{ok:!1,reason:"The revision does not reference an implementation of this Agent in this lineage."};let i=n.engine.getActiveSessionBinding({agentId:e.target_agent_id,adapter:t,conversationId:a.source_conversation_id,requestId:a.id});return i?{ok:!0,binding:i}:{ok:!1,reason:"The session of the referenced implementation is not available to resume."}}(l,p);if(!f.ok){try{n.engine.transitionWorkRequest(e,{from:"queued",to:"failed",expectedVersion:l.version,reason:"session_unavailable",errorCode:"session_unavailable",errorMessage:f.reason})}catch(e){if(!(e instanceof i.EngineStoreError&&"stale_state"===e.code))throw e}return!1}let g=null,m=null;try{g=(0,r.prepareDispatch)({bot:u,history:[...n.default.prepare(`SELECT * FROM messages WHERE conversation_id = ?
|
|
42
|
+
AND rowid <= (SELECT rowid FROM messages WHERE id = ?)
|
|
43
|
+
ORDER BY rowid ASC`).all(l.source_conversation_id,l.source_event_id).map(e=>({speakerLabel:function(e){if("bot"===e.sender_kind&&e.sender_id){let t=n.bots.getById(e.sender_id);return t?t.name:`bot:${e.sender_id}`}return`${e.sender_kind??"person"}:${e.sender_id??"unknown"}`}(e),fromAgent:"bot"===e.sender_kind&&e.sender_id===u.id,content:e.content})),...function(e){if(e.requester_kind===es.kind&&e.requester_id===es.id&&"coordinator_continuation"===el(e).source)return[{speakerLabel:ed,fromAgent:!1,content:e.intent}];if(!e.wake_event_id)return[];let t=el(e),r=Array.isArray(t.context_work_requests)?t.context_work_requests.filter(e=>"string"==typeof e):[],a=[`[${e.execution_kind} Wake from ${eu(e.requester_id)}] Work Request: ${e.id}`,`Objective:
|
|
44
|
+
${e.intent}`];for(let i of("string"==typeof t.resume_work_request&&a.push(`This revision continues your session from Work Request ${t.resume_work_request}.`),r)){let t=n.engine.getWorkRequest(i);t&&t.root_request_id===e.root_request_id&&a.push(`Context:
|
|
45
|
+
${e_(t)}`)}return[{speakerLabel:ed,fromAgent:!1,content:a.join("\n\n")}]}(l)],toolProfile:_.tool_profile,sessionBinding:f.binding?{bindingId:f.binding.id,externalSessionId:f.binding.external_session_id}:null,prepareFinalization:"implementation"===_.execution_kind||"revision"===_.execution_kind})}catch(e){m=e instanceof r.DispatchFailure?e:new r.DispatchFailure("runtime_failed","The agent runtime did not complete the turn.")}let h={agent:p,agent_id:u.id,execution_kind:_.execution_kind,tool_profile:_.tool_profile,policy_rule:_.rule},k=new AbortController;try{t=n.engine.transaction(()=>{let t=eT.claim(e,{expectedVersion:l.version,data:{agent:p}});if(!t.ok)return d=t.blockedBy,null;if(g){let r=eT.now(),i=eT.control.attemptDeadlineFor(t.request,r),o={...g.input,deadlineAt:i,signal:k.signal},s=(0,a.beginAttempt)(n.engine,e,{agent:p,adapter:g.adapter,input:o,snapshot:h,now:r});return eT.recordLaunchIntent(t.lease,s.attempt.id,g.adapter.name,g.adapter.launchIntent?.(s.input)??null),{lease:t.lease,attempt:s}}return{lease:t.lease,attempt:n.engine.createAttempt(e,{kind:"launch",adapter:p,toolProfile:_.tool_profile,launchSnapshot:h}).id}})}catch(e){if(e instanceof i.EngineStoreError&&"stale_state"===e.code)return!1;throw e}if(!t)return d&&eJ(d),!1;let{lease:w}=t;if(!g||"string"==typeof t.attempt){let a=m??new r.DispatchFailure("runtime_failed","The agent runtime did not complete the turn."),i="string"==typeof t.attempt?t.attempt:t.attempt.attempt.id;return n.engine.transaction(()=>{eT.assertHeld(w),ex(e,i,a.code,a.message),eT.release(w,"failed")}),!0}let y=t.attempt.attempt.id;return eL.set(e,{attemptId:y,controller:k}),await eU(w,async()=>{(0,o.dispatchFault)("before_launch",e);try{let r=await (0,a.runAttempt)(n.engine,t.attempt,g.adapter,{fence:()=>eT.holds(w),onEvent:t=>{"started"===t.type&&(0,o.dispatchFault)("after_run_id_persisted",e),eH(w,y,t)},project:(e,t)=>ez(w,l,t,e)});r.abandoned&&await eF(r.abandoned,{localSignalled:!0,launched:!0}),r.projected?.retryAt!=null&&eM(e,r.projected.retryAt)}catch(e){eP(w,y,e)}},k),eL.get(e)?.attemptId===y&&eL.delete(e),!0}let eL=new Map;function eM(e,t){let n=setTimeout(()=>{eJ(e)},Math.max(0,t-eT.now()));n.unref&&n.unref()}async function e$(e){let t=eL.get(e.requestId);if(t&&t.attemptId===e.attemptId){t.controller.abort();let n=eG.get(e.requestId);if(n){let t=`abandoned:${e.attemptId}`;eG.delete(e.requestId),eG.set(t,n),n.finally(()=>{eG.get(t)===n&&eG.delete(t)})}}await eF(e,{localSignalled:!!t&&t.attemptId===e.attemptId,launched:e.launched})}async function eF(e,t){let a,i=e.transport?(0,r.adapterForTransport)(e.transport)?.reconciler??null:null;a="failed"===e.externalCancel?"failed":e.externalRunId?i?.cancel?await i.cancel(e.externalRunId):"unsupported":t.launched?"unsupported":"not_launched",n.engine.appendEvent(e.requestId,{type:"external_cancel",attemptId:e.attemptId,data:{status:a,reason:e.reason,external_run_id:e.externalRunId,transport:e.transport,local_signalled:t.localSignalled},now:eT.now()})}function eH(e,t,r){if("progress"===r.type&&"finalization_prepared"===r.detail.phase&&"string"==typeof r.detail.baseline_ref&&"string"==typeof r.detail.baseline_digest){let a={baselineRef:r.detail.baseline_ref,baselineDigest:r.detail.baseline_digest};n.engine.transaction(()=>{eT.holds(e)&&X(t,a,r.at)})}}async function eU(e,t,r){let a=setInterval(()=>{try{eT.heartbeat(e);let t=n.engine.getWorkRequest(e.requestId);r&&t&&(null!==t.cancel_requested_at||i.TERMINAL_STATES.includes(t.state))&&r.abort()}catch(e){console.error("Dispatch heartbeat failed:",e)}},eT.config.heartbeatMs);a.unref&&a.unref();try{return await t()}finally{clearInterval(a)}}function eP(e,t,n){if(!(n instanceof o.LeaseLostError)){if(n instanceof eD){try{eT.defer(e,n.reason,t)}catch(e){if(!(e instanceof o.LeaseLostError))throw e}return}throw n}}function ez(e,i,s,d){if((0,o.dispatchFault)("before_terminal_commit",i.id),eT.assertHeld(e),"failed"===d.status&&d.failure?.code==="agent_deck_unreachable"&&s.external_run_id)throw new eD("unreachable");if("failed"===d.status&&d.launchUnconfirmed&&!s.external_run_id)throw new eD("launch_unconfirmed");let l=i.id,u=eT.now();Z(i,s,d,u);let c=n.engine.getWorkRequest(l)??i,_=null!==c.cancel_requested_at;if(_||null!==c.deadline_at&&u>=c.deadline_at)return _?n.engine.transitionWorkRequest(l,{from:"running",to:"cancelled",reason:"cancel_requested",errorCode:"cancelled",errorMessage:c.cancel_reason??"The request was cancelled.",data:{attempt_outcome:s.outcome},now:u}):n.engine.transitionWorkRequest(l,{from:"running",to:"failed",reason:"timed_out",errorCode:"timed_out",errorMessage:"The request passed its deadline.",data:{deadline_at:c.deadline_at,attempt_outcome:s.outcome},now:u}),"completed"===d.status&&(0,a.recordLateResult)(n.engine,s,d,u),eT.release(e,_?"cancelled":"timed_out"),{retryAt:null};if("completed"!==d.status||null===d.output){let t=(0,r.dispatchFailureFor)(d),n=eT.control.settleFailure(l,{category:"completed"===d.status?"result_contract":d.failure?.category??"runtime_failed",code:d.failure?.code??null,errorCode:t.code,errorMessage:t.message,..."failed"===d.externalCancel?{attention:"external_cancel_failed"}:{}},u);return eT.release(e,n.outcome),{retryAt:"retry"===n.decision.action?n.decision.nextEligibleAt:null}}let p=(0,t.randomUUID)();return n.default.prepare("INSERT INTO messages (id, conversation_id, sender_type, sender_id, sender_kind, request_id, content, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)").run(p,i.source_conversation_id,"bot",i.target_agent_id,"bot",l,d.output,u),"edit"===i.tool_profile&&d.externalSessionId&&n.engine.bindSession({agentId:i.target_agent_id,adapter:s.adapter,externalSessionId:d.externalSessionId,conversationId:i.source_conversation_id,requestId:l,sourceAttemptId:s.id,now:u}),n.engine.transitionWorkRequest(l,{from:"running",to:"completed",result:{reply_message_id:p},now:u}),eT.release(e,"completed"),{retryAt:null}}function ej(e){return e?{kind:e.kind,..."run"===e.kind?{state:e.state}:{},..."accepted"===e.kind?{run_id:e.runId}:{},..."rejected"===e.kind?{status:e.status,code:e.code}:{}}:null}async function eB(e){let t=n.engine.getWorkRequest(e.requestId);if(!t||"running"!==t.state)return void eT.release(e,"stale");let i=async(r,a)=>{let i=n.engine.transaction(()=>{eT.assertHeld(e);let n=eT.control.enforceRequest(t.id,eT.now(),{force:!0});return n?(a?.(),{enforced:n}):{value:r()}});return"enforced"in i?(i.enforced.abandoned&&await e$(i.enforced.abandoned),{won:!0}):{won:!1,value:i.value}},s=null;try{let p;if((await i(()=>void 0)).won)return;let f=n.engine.listAttempts(t.id).find(e=>null===e.finished_at);if(!f)return void n.engine.transaction(()=>{eT.assertHeld(e),n.engine.transitionWorkRequest(t.id,{from:"running",to:"failed",reason:"retryable",errorCode:"interrupted",errorMessage:"The request was interrupted before its Attempt was recorded."}),eT.release(e,"interrupted")});s=f.id;let g={};try{g=JSON.parse(f.launch_snapshot)}catch{}let m="string"==typeof g.transport?(0,r.adapterForTransport)(g.transport):null,h=m?.reconciler??null,k=async(e,r,a,o)=>!(await i(()=>{n.engine.appendEvent(t.id,{type:"reconcile_decided",attemptId:f.id,data:{phase:e,...r,external_run_id:o,observation:ej(a)}})})).won,w=f.external_run_id,y=null;if(w){if(h){if(y=await h.inspect(w),p=(0,o.decideWithRunId)(y),!await k("run",p,y,w))return}else if(p={action:"interrupted",reason:"runtime_unobservable"},!await k("run",p,null,w))return}else{let r=eT.launchIntent(f.id);if(p=(0,o.decideWithoutRunId)({reconcilable:!!h,intent:r,currentGrantFingerprint:h?.currentGrantFingerprint()??null}),"repost"===p.action&&h&&r?.body&&r.idempotency_key){if(!await k("launch",p,null,null))return;if(y=await h.repost({idempotencyKey:r.idempotency_key,body:r.body}),p=(0,o.decideRepostResult)(y),"accepted"===y.kind){var d,l,u,c,_;let r=y.runId,a=(d=e,l=t.id,u=f.id,c=r,_=m?.name??null,n.engine.transaction(()=>{let e=n.engine.getAttempt(u);if(!e)return null;if(null===e.finished_at)return eT.assertHeld(d),n.engine.recordAttemptExternalIds(u,{externalRunId:c}),n.engine.appendEvent(l,{type:"runtime_started",attemptId:u,data:{adapter:_,external_run_id:c,recovered:!0}}),null;n.default.prepare("UPDATE work_attempts SET external_run_id = ? WHERE id = ? AND external_run_id IS NULL").run(c,u),n.engine.appendEvent(l,{type:"runtime_started",attemptId:u,data:{adapter:_,external_run_id:c,recovered:!0,after_abandon:!0}});let t="timed_out"===e.outcome?"timed_out":"cancelled"===e.outcome?"cancelled":"retried",r=null;try{let t=JSON.parse(e.launch_snapshot);r="string"==typeof t.transport?t.transport:null}catch{}return{requestId:l,attemptId:u,externalRunId:c,transport:r,reason:t,launched:!0}}));if(a)return void await eF(a,{localSignalled:!1,launched:!0});w=r}}if(!await k("launch",p,y,w))return}let E=!0===g.prepare_finalization;switch(p.action){case"defer":await i(()=>eT.defer(e,p.reason,f.id));return;case"attention":await i(()=>eT.setAttention(e,{attemptId:f.id,reason:p.reason,detail:y?JSON.stringify(ej(y)):null}));return;case"interrupted_attention":{let r=E&&h&&w?await h.evidence(w):null,a=e=>{r&&e&&Z(t,e,{finalization:r})};await i(()=>{a(n.engine.finishAttempt(f.id,{outcome:"interrupted",errorCategory:"interrupted",errorMessage:`Agent Deck run ${w} died.`})),eT.setAttention(e,{attemptId:f.id,reason:p.reason})},()=>a(n.engine.getAttempt(f.id)));return}case"fail":await i(()=>{n.engine.finishAttempt(f.id,{outcome:"failed",errorCategory:p.category,errorMessage:`Agent Deck refused the launch (${p.code}).`}),n.engine.transitionWorkRequest(t.id,{from:"running",to:"failed",reason:"retryable",errorCode:"runtime_failed",errorMessage:"The agent runtime did not start the turn."}),eT.release(e,"failed")});return;case"interrupted":await i(()=>{n.engine.finishAttempt(f.id,{outcome:"interrupted",errorCategory:"interrupted",errorMessage:"The runtime cannot be observed after a restart; the outcome is unknown."}),n.engine.transitionWorkRequest(t.id,{from:"running",to:"failed",reason:"retryable",errorCode:"interrupted",errorMessage:"The agent turn was interrupted by a restart. It was not relaunched."}),eT.release(e,"interrupted")});return}if(!h||!w)return;let v=w,I="string"==typeof g.session_binding_id?g.session_binding_id:null,R=I?n.default.prepare("SELECT external_session_id FROM session_bindings WHERE id = ?").get(I):void 0,q=new AbortController;if((await i(()=>eL.set(t.id,{attemptId:f.id,controller:q}))).won)return;await eU(e,async()=>{let r=await h.follow(v,{resumeSessionId:R?.external_session_id??null,prepareFinalization:E,deadlineAt:"number"==typeof g.deadline_at?g.deadline_at:null,signal:q.signal},t=>eH(e,f.id,t)),i=null,o=n.engine.transaction(()=>{let o=n.engine.getAttempt(f.id);if(o&&null!==o.finished_at)return(0,a.recordLateResult)(n.engine,o,r,eT.now()),{retryAt:null};if(eT.assertHeld(e),"failed"===r.status&&r.failure?.code==="agent_deck_unreachable")throw new eD("unreachable");let s=(i=m?(0,a.abandonedLocally)(f,m,q.signal,r):null)?(0,a.recordAbandonedResult)(n.engine,i,r):(0,a.recordAttemptResult)(n.engine,f.id,r);return ez(e,t,s,r)});i&&await eF(i,{localSignalled:!0,launched:!0}),null!==o.retryAt&&eM(t.id,o.retryAt)},q).finally(()=>{eL.get(t.id)?.attemptId===f.id&&eL.delete(t.id)})}catch(t){eP(e,s,t)}}function eK(){let e=[];for(let t of eT.control.enforceDue())e.push((t.abandoned?e$(t.abandoned):Promise.resolve()).then(()=>eC(t.requestId,!0)).catch(e=>{console.error("Request enforcement follow-up failed:",e)}));for(let t of eT.recoverable()){let n=`reconcile:${t.requestId}`;if(eG.has(n)||eG.has(t.requestId))continue;let r=eT.takeOver(t);if(!r)continue;let a=eB(r).then(()=>eC(t.requestId,!eT.holds(r))).catch(e=>{console.error("Dispatch reconciliation failed unexpectedly:",e)}).finally(()=>{eG.delete(n)});eG.set(n,a),e.push(a)}for(let e of(eO(),n.default.prepare(`
|
|
46
|
+
SELECT id FROM work_requests
|
|
47
|
+
WHERE state = 'queued' AND legacy_agent_request_id IS NULL AND executor = 'dispatcher' AND next_eligible_at IS NOT NULL AND next_eligible_at <= ?
|
|
48
|
+
ORDER BY next_eligible_at ASC, id ASC
|
|
49
|
+
`).all(eT.now()).map(e=>e.id)))eG.has(e)||eJ(e);return Promise.all(e).then(()=>void 0)}let eG=new Map;function eJ(e){let t=eG.get(e);if(t)return t;let n=eN(e).catch(e=>{console.error("Agent dispatch failed unexpectedly:",e)}).finally(()=>{eG.get(e)===n&&eG.delete(e)});return eG.set(e,n),n}let eV=new Set;function eY(e){let t=`finalization:${e}`,r=eG.get(t);if(r)return r;eV.add(e);let a=ei(e).then(e=>{if(e&&"preparing"!==e.state)for(let t of function(e,t=Date.now()){return n.engine.transaction(()=>{let r,a=V(e);if(!a||"preparing"===a.state)return[];let i=n.engine.getWorkRequest(a.decision_request_id);if(!i)return[];let o=eg({key:`continuation:v1:finalization:${a.id}`,coordinatorId:a.coordinator_agent_id,conversationId:a.conversation_id,sourceEventId:a.decision_event_id,parent:i,intent:["committed"===a.state?"[Finalization committed] The reviewed manifest was committed.":`[Finalization ${a.state}] The reviewed manifest was not committed.`,(r=[`Finalization: ${a.id}`,`Implementation: ${a.implementation_request_id}`,`Review: ${a.review_request_id}`,`State: ${a.state}`],"committed"===a.state?r.push(`Commit: ${a.commit_id}`,`Tree: ${a.tree_id}`,`Manifest: ${a.result_manifest_digest}`,`Files: ${a.file_count}`):a.reason_code&&r.push(`Reason: ${a.reason_code}${a.reason?` - ${a.reason}`:""}`),r.join("\n")),ep].join("\n\n"),continues:"finalization",subjects:[a.implementation_request_id,a.review_request_id],now:t});return o&&"queued"===o.state?[o.id]:[]})}(e.id))eJ(t)}).catch(e=>{console.error("Finalization failed unexpectedly:",e instanceof Error?e.message:"unknown error")}).finally(()=>{eG.delete(t)});return eG.set(t,a),a}let eX=["attempt_started","attempt_finished","session_bound","backfilled","runtime_progress","policy_selected","dispatch_claimed","dispatch_released","dispatch_deferred","dispatch_lease_taken_over","launch_intent_recorded","reconcile_decided","reconcile_deferred","attention_set","attempt_abandoned","external_cancel","late_result_recorded"];function eZ(e){return e.legacy_agent_request_id??e.id}function eQ(e,t){eb(e);let r=n.default.prepare("SELECT id FROM work_requests WHERE legacy_agent_request_id = ?").get(t),a=n.engine.getWorkRequest(r?r.id:t);if(!a||!eR(a.source_conversation_id,e))throw new eE("request_not_found","No request with that id is visible to this principal.");return a}let e0={agent:"agent",bot:"direct",group:"group"};e.s(["AgentApiError",0,eE,"MCP_IDEMPOTENCY_PREFIX",0,"mcp:","acceptAgentMessage",0,function(e,t){let n;if(eb(e),!eI(t.agentId))throw new eE("invalid_request","agentId is required.");if(!eI(t.content))throw new eE("invalid_request","content is required.");if(!eI(t.idempotencyKey)||t.idempotencyKey.length>200)throw new eE("invalid_request","An idempotency key (1-200 characters) is required.");if(void 0!==t.conversationId&&null!==t.conversationId&&!eI(t.conversationId))throw new eE("invalid_request","conversationId must be a non-empty string when present.");try{n=(0,d.acceptConversationMessage)({surface:"api",requester:e,idempotencyKey:t.idempotencyKey,conversation:t.conversationId?{id:t.conversationId}:{create:!0},content:t.content,fingerprint:[t.agentId,t.conversationId??null,t.content],route:()=>({deliveries:[{agentId:t.agentId}]}),dispatch:eS})}catch(e){if(e instanceof d.IntakeError)throw new eE(eA[e.code],"intake_failed"===e.code?"The request could not be processed.":e.message);throw e}let r=n.requests[0];return{accepted:{requestId:r?eZ(r):n.requestIds[0],conversationId:n.conversationId,acceptedMessageId:n.acceptedMessageId,state:r?eq(r.state):"accepted",replayed:n.replayed},dispatched:n.dispatched}},"decideWakeGrantCommand",0,function(e,t,n){let r=F({wakeId:e,decision:t,caller:n});if(r.request&&r.runnable&&eJ(r.request.id),r.request&&r.ended)for(let e of ek(r.request.id))eJ(e);return r},"getAgentRequest",0,function(e,t){var r;let a,i,o;return a=(r=eQ(e,t)).result?JSON.parse(r.result):null,i=a?.reply_message_id?n.default.prepare("SELECT id, content FROM messages WHERE id = ?").get(a.reply_message_id):void 0,o="failed"===r.state||"cancelled"===r.state,{requestId:eZ(r),conversationId:r.source_conversation_id,agentId:r.target_agent_id,acceptedMessageId:r.source_event_id,state:eq(r.state),reply:i?{messageId:i.id,content:i.content}:null,failure:o?{code:r.error_code??r.state,message:r.error_message??""}:null,events:n.engine.listEvents(r.id).flatMap(e=>{let t=function(e){if("state_changed"===e.type){let t=e.data?JSON.parse(e.data).to:void 0;return"running"===t?"dispatched":"completed"===t?"completed":"failed"===t||"cancelled"===t?"failed":t??null}return eX.includes(e.type)?null:e.type}(e);return t?[{type:t,at:e.created_at}]:[]}),createdAt:r.created_at,updatedAt:r.updated_at}},"getAuthorizedWorkRequest",0,eQ,"getConversation",0,function(e,t){eb(e);let r=n.default.prepare("SELECT * FROM conversations WHERE id = ?").get(t);if(!r||!eR(r.id,e))throw new eE("conversation_not_found","No conversation with that id is visible to this principal.");let a=n.default.prepare("SELECT participant_kind, participant_id, joined_at FROM conversation_participants WHERE conversation_id = ? ORDER BY joined_at ASC, rowid ASC").all(r.id),i=n.default.prepare("SELECT * FROM messages WHERE conversation_id = ? ORDER BY rowid ASC").all(r.id);return{conversationId:r.id,type:e0[r.type]??"agent",origin:r.origin_kind&&r.origin_id?{kind:r.origin_kind,id:r.origin_id}:null,participants:a.map(e=>({kind:e.participant_kind,id:e.participant_id,joinedAt:e.joined_at})),messages:i.map((e,t)=>{var n,a;let i;return{messageId:e.id,seq:t+1,sender:(n=e,a=r,i=n.sender_kind??("bot"===n.sender_type?"bot":"person"),n.sender_id?{kind:i,id:n.sender_id}:"bot"!==i&&a.origin_kind===i&&a.origin_id?{kind:i,id:a.origin_id}:{kind:i,id:"unknown"}),content:e.content,requestId:e.request_id,createdAt:e.created_at}}),events:n.projector.listConversationEvents(r.id)}},"isPrincipalKind",0,ev,"recoverCoordinatorLoops",0,function(){return Promise.all([eK(),...(function(e=Date.now()){let t=n.default.prepare("SELECT request_id AS id FROM terminal_followups WHERE done_at IS NULL ORDER BY created_at ASC, request_id ASC").all(),r=new Set;for(let n of t)for(let t of ek(n.id,e))r.add(t);for(let e of n.default.prepare(`
|
|
50
|
+
SELECT w.id FROM work_requests w JOIN terminal_followups f ON f.request_id = w.parent_request_id
|
|
51
|
+
WHERE w.state = 'queued' AND (w.wake_event_id IS NOT NULL OR (w.requester_kind = ? AND w.requester_id = ?))
|
|
52
|
+
ORDER BY w.created_at ASC, w.id ASC
|
|
53
|
+
`).all(es.kind,es.id))r.add(e.id);return[...r]})().map(eJ),...eo().map(eY)]).then(()=>void 0)},"retryWakeCommand",0,function(e){let t=M(e);return t.request?.state==="queued"&&eJ(t.request.id),t},"revokeWakeGrantCommand",0,function(e,t){return(0,y.revokeWakeGrant)(e,t)},"samePrincipal",0,function(e,t){return e.kind===t.kind&&e.id===t.id},"startAgentDispatch",0,eJ,"sweepDispatch",0,eK],91084)},27510,9346,57281,54226,53059,e=>{"use strict";var t=e.i(22734),n=e.i(14747),r=e.i(62349),a=e.i(51749),i=e.i(29370),o=e.i(54799),s=e.i(67505);let d="AGENT_DECK_RUN_TOKEN",l=["ended","error","died","canceled"],u=["starting","running","ended","error","died","canceled"];class c extends Error{code;status;deckCode;constructor(e,t,n=null,r=null){super(t.slice(0,300)),this.name="AgentDeckApiError",this.code=e,this.status=n,this.deckCode=r}}let _={agent_deck_token_missing:`Agent Deck API token is not configured on the Botmancers server (set ${d}).`,agent_deck_unauthorized:`Agent Deck rejected the Botmancers run token (check ${d} and that its grant is not revoked or expired).`,agent_deck_forbidden:"Agent Deck refused this run for the Botmancers grant (enable runs and finalization on the grant and allow this deck).",agent_deck_unreachable:"The Agent Deck server is unreachable at the workspace Agent Deck URL (start it or correct the URL).",agent_deck_rejected:"Agent Deck rejected the request.",agent_deck_invalid_response:"Agent Deck returned an unexpected response."};function p(){let e=process.env[d];return"string"==typeof e&&e.trim().length>0?e.trim():null}function f(){let e=p();return e?(0,o.createHash)("sha256").update(`botmancers-grant-v1:${e}`).digest("hex").slice(0,16):null}function g(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:null}function m(e){return"string"==typeof e&&e.length>0?e:null}async function h(e,t,n={}){var r,a,i;let o,d=p();if(!d)throw new c("agent_deck_token_missing",_.agent_deck_token_missing);let l={authorization:`Bearer ${d}`,accept:"application/json"};n.idempotencyKey&&(l["idempotency-key"]=n.idempotencyKey),void 0!==n.body&&(l["content-type"]="application/json");let u=`${(0,s.getAgentDeckServerUrl)()}${t}`;try{o=await (r={method:e,headers:l,...void 0!==n.body?{body:JSON.stringify(n.body)}:{},...n.signal?{signal:n.signal}:{}},fetch(u,r).then(e=>({status:e.status,json:()=>e.json()})))}catch{throw new c("agent_deck_unreachable",_.agent_deck_unreachable)}let f=null;try{f=g(await o.json())}catch{f=null}if(o.status<200||o.status>=300||f?.success!==!0){let e,t;if(o.status>=200&&o.status<300)throw new c("agent_deck_invalid_response",_.agent_deck_invalid_response,o.status);throw a=o.status,i=f,t=(e=m(i?.error_code))&&/^[A-Z][A-Z0-9_]{0,63}$/.test(e)?e:null,401===a?new c("agent_deck_unauthorized",_.agent_deck_unauthorized,a,t):403===a?new c("agent_deck_forbidden",`${_.agent_deck_forbidden}${t?` (${t})`:""}`,a,t):new c("agent_deck_rejected",`Agent Deck rejected the request (${a}${t?` ${t}`:""}).`,a,t)}let k=g(f.data);if(!k)throw new c("agent_deck_invalid_response",_.agent_deck_invalid_response,o.status);return k}function k(e){return new c("agent_deck_invalid_response",`${_.agent_deck_invalid_response} (${e})`)}function w(e){if("string"!=typeof e||!u.includes(e))throw k("run state");return e}let y=/^[0-9a-f]{64}$/,E=/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/,v=/^bl_[0-9a-f]{24}$/;function I(e){var t;let n=g(e);if(!n||Object.keys(n).some(e=>!["path","sha256","mode"].includes(e)))throw k("manifest entry");if(!(!("string"!=typeof(t=n.path)||0===t.length||t.length>1024||t.startsWith("/")||t.includes("\\")||/^[A-Za-z]:/.test(t)||t.includes("\0"))&&t.split("/").every(e=>e.length>0&&"."!==e&&".."!==e&&".git"!==e)))throw k("manifest path");let r=null===n.sha256&&null===n.mode,a="string"==typeof n.sha256&&y.test(n.sha256)&&("100644"===n.mode||"100755"===n.mode);if(!r&&!a)throw k("manifest digest or mode");return{path:n.path,sha256:n.sha256,mode:n.mode}}async function R(e,t){let n=await h("POST","/api/agent-runs",{body:e,idempotencyKey:t}),r=m(n.runId);if(!r)throw k("runId");return{runId:r,state:w(n.state)}}async function q(e){let t=await h("GET",`/api/agent-runs/${encodeURIComponent(e)}`);if(!m(t.runId)||!m(t.deckId)||!m(t.client)||"edit"!==t.tools&&"readonly"!==t.tools)throw k("run status");return{runId:m(t.runId),deckId:m(t.deckId),client:m(t.client),tools:t.tools,state:w(t.state),sessionId:m(t.sessionId),finalization:function(e){if(null==e)return null;let t=g(e);if(!t||"string"!=typeof t.baselineRef||!v.test(t.baselineRef)||"string"!=typeof t.baselineDigest||!y.test(t.baselineDigest)||!["prepared","finalizing","finalized"].includes(String(t.state)))throw k("finalization status");let n="string"==typeof t.commit&&E.test(t.commit)?t.commit:null;return{baselineRef:t.baselineRef,baselineDigest:t.baselineDigest,state:t.state,commit:n}}(t.finalization)}}async function b(e,t){let n=t?`?after=${encodeURIComponent(t)}`:"",r=await h("GET",`/api/agent-runs/${encodeURIComponent(e)}/events${n}`);if(!Array.isArray(r.events))throw k("events");return{runId:m(r.runId)??e,state:w(r.state),events:r.events.filter(e=>!!g(e)&&"string"==typeof e.type),nextCursor:"string"==typeof r.nextCursor?r.nextCursor:t??"0"}}async function A(e){return w((await h("POST",`/api/agent-runs/${encodeURIComponent(e)}/cancel`)).state)}async function S(e){let t=await h("GET",`/api/agent-runs/${encodeURIComponent(e)}/changes`);if("string"!=typeof t.baselineRef||!v.test(t.baselineRef))throw k("baselineRef");if("string"!=typeof t.baselineDigest||!y.test(t.baselineDigest))throw k("baselineDigest");if("string"!=typeof t.baseCommit||!E.test(t.baseCommit))throw k("baseCommit");if("string"!=typeof t.manifestDigest||!y.test(t.manifestDigest))throw k("manifestDigest");if(!Array.isArray(t.files))throw k("files");return{runId:m(t.runId)??e,baselineRef:t.baselineRef,baselineDigest:t.baselineDigest,baseCommit:t.baseCommit,files:t.files.map(I),manifestDigest:t.manifestDigest}}async function x(e,t,n){let r=await h("POST",`/api/agent-runs/${encodeURIComponent(e)}/finalize`,{body:t,idempotencyKey:n});if("finalized"!==r.finalizationState||"string"!=typeof r.commit||!E.test(r.commit)||"string"!=typeof r.tree||!E.test(r.tree)||"string"!=typeof r.manifestDigest||!y.test(r.manifestDigest))throw k("finalize result");return{runId:m(r.runId)??e,finalizationState:"finalized",commit:r.commit,tree:r.tree,..."string"==typeof r.parent&&E.test(r.parent)?{parent:r.parent}:{},manifestDigest:r.manifestDigest,..."number"==typeof r.fileCount?{fileCount:r.fileCount}:{},..."string"==typeof r.reviewId?{reviewId:r.reviewId}:{}}}e.s(["AGENT_DECK_API_MESSAGES",0,_,"AGENT_DECK_TERMINAL_STATES",0,l,"AgentDeckApiError",0,c,"agentDeckGrantFingerprint",0,f,"cancelAgentDeckRun",0,A,"finalizeAgentDeckRun",0,x,"getAgentDeckRun",0,q,"getAgentDeckRunChanges",0,S,"getAgentDeckRunEvents",0,b,"hasAgentDeckRunToken",0,function(){return null!==p()},"startAgentDeckRun",0,R],9346);var T=e.i(39229),D=e.i(46786),N=e.i(11626),C=e.i(35613);class O extends Error{code;constructor(e,t){super(t),this.name="ControlError",this.code=e}}let W=["queued","blocked","running","waiting"];function L(e){try{let t=JSON.parse(e.launch_snapshot);return t&&"object"==typeof t?t:{}}catch{return{}}}function M(e,t,n={}){let r=n.now??Date.now,a=n.cancelGraceMs??3e4,i=e.prepare("SELECT * FROM work_attempts WHERE request_id = ? AND finished_at IS NULL"),s=e.prepare("SELECT COUNT(*) AS n FROM work_attempts WHERE request_id = ?"),d=e.prepare("SELECT owner, token, expires_at FROM dispatch_leases WHERE request_id = ?"),l=e.prepare("SELECT 1 FROM engine_events WHERE attempt_id = ? AND type = 'runtime_started' LIMIT 1");function u(e){let n=t.getWorkRequest(e);if(!n)throw new O("not_found",`No work request ${e}.`);return n}function c(e,t,n,r){if(r&&(!e||!r(e,t,n)))throw new O("forbidden",`Not allowed to ${n} this request.`)}function _(e){return Math.max(e.attempt_count,s.get(e.id).n)}function p(t,n){e.prepare("UPDATE dispatch_attention SET cleared_at = ? WHERE request_id = ? AND cleared_at IS NULL").run(n,t)}function f(n,r,a){let i=d.get(n);i&&(e.prepare("DELETE FROM dispatch_leases WHERE request_id = ?").run(n),t.appendEvent(n,{type:"dispatch_released",data:{owner:i.owner,outcome:r,forced:!0},now:a}))}function g(e,n,r){let a=i.get(e.id);if(!a)return null;let o=L(a).transport;return t.finishAttempt(a.id,{outcome:"timed_out"===n?"timed_out":"cancelled"===n?"cancelled":"interrupted",errorCategory:"abandoned",errorMessage:{cancelled:"The request was cancelled while this Attempt was open; its result is no longer awaited.",timed_out:"The Attempt passed its deadline; its result is no longer awaited.",retried:"An operator retried the request; this Attempt is superseded."}[n],now:r}),t.appendEvent(e.id,{type:"attempt_abandoned",attemptId:a.id,data:{reason:n,attempt_number:a.attempt_number,external_run_id:a.external_run_id,transport:"string"==typeof o?o:null},now:r}),{requestId:e.id,attemptId:a.id,externalRunId:a.external_run_id,transport:"string"==typeof o?o:null,reason:n,launched:!!a.external_run_id||!!a.external_session_id||!!l.get(a.id)}}function m(n,r,a,i){let o=r?`${r.kind}:${r.id}`:null;e.prepare("UPDATE work_requests SET cancel_requested_at = ?, cancel_requested_by = ?, cancel_reason = ?, updated_at = ? WHERE id = ? AND cancel_requested_at IS NULL").run(i,o,a,i,n.id),t.appendEvent(n.id,{type:"cancel_requested",data:{by:o,reason:a,state:n.state},now:i})}function h(e,n,r={}){return t.transitionWorkRequest(e.id,{from:e.state,to:"cancelled",reason:"cancel_requested",errorCode:"cancelled",errorMessage:e.cancel_reason??"The request was cancelled.",data:r,now:n})}function k(e,n,r={}){return t.transitionWorkRequest(e.id,{from:e.state,to:"failed",reason:"timed_out",errorCode:"timed_out",errorMessage:"The request passed its deadline.",data:{...r,deadline_at:e.deadline_at},now:n})}function w(n,r,a){let i=(0,N.storedRetryPolicy)(n.retry_policy),s=(0,N.classifyFailure)(r.category,r.code),d=_(n),l=(0,N.decideRetry)({policy:i,attemptCount:d,disposition:s,deadlineAt:n.deadline_at,now:a}),u=r.attention&&"retry"===l.action?{action:"attention"}:l,c={category:r.category,disposition:s,attempt_count:d,max_attempts:i.max_attempts};switch(u.action){case"retry":{e.prepare("UPDATE work_requests SET next_eligible_at = ? WHERE id = ?").run(u.nextEligibleAt,n.id);let i=t.transitionWorkRequest(n.id,{from:"running",to:"queued",reason:"retry_scheduled",data:{...c,retry:u.retry,delay_ms:u.delayMs,next_eligible_at:u.nextEligibleAt,error_code:r.errorCode},now:a});return{outcome:"retry_scheduled",decision:u,request:i}}case"deadline":return{outcome:"timed_out",decision:u,request:k(n,a,c)};case"attention":{let i=r.attention??`failure:${r.category??"unknown"}`;return e.prepare("INSERT INTO dispatch_attention (id, request_id, attempt_id, reason, detail, created_at) VALUES (?, ?, NULL, ?, ?, ?)").run((0,o.randomUUID)(),n.id,i,r.code,a),t.appendEvent(n.id,{type:"attention_set",data:{reason:i,detail:r.code},now:a}),{outcome:"attention",decision:u,request:t.transitionWorkRequest(n.id,{from:"running",to:"waiting",reason:`manual_attention:${r.attention??r.category??"unknown"}`,data:c,now:a})}}case"exhausted":if(i.max_attempts>1)return{outcome:"retries_exhausted",decision:u,request:t.transitionWorkRequest(n.id,{from:"running",to:"failed",reason:"retries_exhausted",errorCode:r.errorCode,errorMessage:r.errorMessage,data:c,now:a})};case"fail":return{outcome:"failed",decision:u,request:t.transitionWorkRequest(n.id,{from:"running",to:"failed",errorCode:r.errorCode,errorMessage:r.errorMessage,data:"fail"===u.action?c:{},now:a})}}}let y={now:r,cancelGraceMs:a,cancel:(e,n={})=>t.transaction(()=>{let t=u(e);if(c(n.actor,t,"cancel",n.authorize),C.TERMINAL_STATES.includes(t.state))return{outcome:"already_terminal",state:t.state,replayed:!0,abandoned:null};let a=n.now??r();if("running"===t.state)return null!==t.cancel_requested_at?{outcome:"cancel_requested",state:"running",replayed:!0,abandoned:null}:(m(t,n.actor,n.reason??null,a),{outcome:"cancel_requested",state:"running",replayed:!1,abandoned:null});null===t.cancel_requested_at&&m(t,n.actor,n.reason??null,a);let i=u(e),o=g(i,"cancelled",a);return p(e,a),f(e,"cancelled",a),{outcome:"cancelled",state:h(i,a,{from_state:t.state}).state,replayed:!1,abandoned:o}}),retry:(n,a={})=>t.transaction(()=>{let i=u(n);if(c(a.actor,i,"retry",a.authorize),C.TERMINAL_STATES.includes(i.state))return{outcome:"already_terminal",state:i.state,abandoned:null};if("queued"===i.state)return{outcome:"already_queued",state:"queued",abandoned:null};if("waiting"!==i.state||null!==i.cancel_requested_at)return{outcome:"not_retryable",state:i.state,abandoned:null};let o=(0,N.storedRetryPolicy)(i.retry_policy),s=_(i);if(s>=o.max_attempts)return{outcome:"retries_exhausted",state:i.state,abandoned:null};let d=a.now??r();if(null!==i.deadline_at&&d>=i.deadline_at)return{outcome:"not_retryable",state:i.state,abandoned:null};let l=g(i,"retried",d);return p(n,d),e.prepare("UPDATE work_requests SET next_eligible_at = ? WHERE id = ?").run(d,n),{outcome:"retry_scheduled",state:t.transitionWorkRequest(n,{from:"waiting",to:"queued",reason:"retry_scheduled",data:{manual:!0,by:a.actor?`${a.actor.kind}:${a.actor.id}`:null,attempt_count:s,max_attempts:o.max_attempts,retry:s,delay_ms:0,next_eligible_at:d},now:d}).state,abandoned:l}}),timeOut:(e,n)=>t.transaction(()=>{let a=t.getWorkRequest(e),i=n??r();if(!a||!W.includes(a.state)||null===a.deadline_at||i<a.deadline_at)return null;let o=g(a,"timed_out",i);return p(e,i),f(e,"timed_out",i),k(a,i,{from_state:a.state}),{requestId:e,outcome:"timed_out",abandoned:o}}),settleFailure:(e,n,a)=>t.transaction(()=>{let t=u(e);if("running"!==t.state)throw new C.EngineStoreError("stale_state",`Work request ${e} is ${t.state}, not running.`);return w(t,n,a??r())}),enforceRequest:(e,n,o={})=>t.transaction(()=>{let s,l=t.getWorkRequest(e),c=n??r();if(!l||!W.includes(l.state)||null!==l.legacy_agent_request_id)return null;if(null!==l.deadline_at&&c>=l.deadline_at)return y.timeOut(e,c);if("running"!==l.state)return null;if(null!==l.cancel_requested_at){let t=d.get(e);if(!(!0===o.force||!t||t.expires_at<=c)&&c-l.cancel_requested_at<a)return null;let n=g(l,"cancelled",c);return f(e,"cancelled",c),h(l,c,{abandoned:null!==n}),{requestId:e,outcome:"cancelled",abandoned:n}}let _=i.get(e),p=_&&"number"==typeof(s=L(_).deadline_at)?s:null;if(!_||null===p||c<p)return null;let m=g(l,"timed_out",c);f(e,"attempt_timed_out",c);let k=w(u(e),{category:"timed_out",code:null,errorCode:"timed_out",errorMessage:"The Attempt passed its deadline."},c);return{requestId:e,outcome:k.outcome,abandoned:m}}),dueRequests(t){let n=t??r();return e.prepare(`
|
|
54
|
+
SELECT id FROM work_requests
|
|
55
|
+
WHERE state IN ('queued', 'blocked', 'running', 'waiting') AND legacy_agent_request_id IS NULL AND executor = 'dispatcher'
|
|
56
|
+
AND ((deadline_at IS NOT NULL AND deadline_at <= ?) OR state = 'running')
|
|
57
|
+
ORDER BY created_at ASC, id ASC
|
|
58
|
+
`).all(n).map(e=>e.id)},enforceDue(e){let t=e??r(),n=[];for(let e of y.dueRequests(t)){let r=y.enforceRequest(e,t);r&&n.push(r)}return n},attemptDeadlineFor:(e,t)=>(0,N.attemptDeadline)((0,N.storedRetryPolicy)(e.retry_policy),e.deadline_at,t),attemptsUsed:_};return y}e.s(["createRequestControl",0,M],57281);let $="'grant_requested', 'grant_approved', 'grant_denied', 'grant_revoked'",F=Object.freeze({maxGlobal:4,maxPerTarget:1,leaseMs:6e4,heartbeatMs:15e3,deferMs:5e3,cancelGraceMs:3e4}),H={maxGlobal:"BOTMANCERS_DISPATCH_MAX_GLOBAL",maxPerTarget:"BOTMANCERS_DISPATCH_MAX_PER_TARGET",leaseMs:"BOTMANCERS_DISPATCH_LEASE_MS",heartbeatMs:"BOTMANCERS_DISPATCH_HEARTBEAT_MS",deferMs:"BOTMANCERS_DISPATCH_DEFER_MS",cancelGraceMs:"BOTMANCERS_DISPATCH_CANCEL_GRACE_MS"},U=Object.freeze({maxGlobal:F.maxGlobal,maxPerTarget:F.maxPerTarget});class P extends Error{requestId;constructor(e){super(`The dispatch lease for ${e} is no longer held.`),this.name="LeaseLostError",this.requestId=e}}let z=[{status:400,code:/.*/},{status:404,code:/^DECK_NOT_FOUND$/},{status:422,code:/^(WORKSPACE_[A-Z0-9_]+|PROFILE_UNSUPPORTED|RESUME_UNVERIFIED|FINALIZATION_INVALID)$/},{status:409,code:/^INDEX_DIRTY$/},{status:503,code:/^CLIENT_UNAVAILABLE$/}];function j(e){return z.some(t=>t.status===e.status&&t.code.test(e.code??""))}function B(e){switch(e.kind){case"no_grant":case"unauthorized":case"forbidden":return!0;case"rejected":return j(e);default:return!1}}function K(e){let t=e.correlation.attemptId;return t?`botmancers-attempt-${t}`:`botmancers-direct-${(0,o.randomUUID)()}`}function G(e,t){if(e instanceof c)return(0,i.attemptFailure)(e instanceof c?"agent_deck_token_missing"===e.code||"agent_deck_unauthorized"===e.code||"agent_deck_forbidden"===e.code||"agent_deck_unreachable"===e.code?"unavailable":"agent_deck_invalid_response"===e.code?"result_contract":t:t,`[${e.code}${e.deckCode?` ${e.deckCode}`:""}] ${e.message}`,e.code);return(0,i.attemptFailure)(t,e instanceof Error?e.message:String(e))}e.s(["LeaseLostError",0,P,"createDispatcher",0,function(e,t,n={}){let r=n.owner??`${D.default.hostname()}:${process.pid}:${(0,o.randomUUID)().slice(0,8)}`,a={...function(e=process.env){let t={...F};for(let n of Object.keys(H)){let r=e[H[n]];if(void 0===r||!/^\d+$/.test(r.trim()))continue;let a=Number(r.trim());Number.isSafeInteger(a)&&a>0&&(t[n]=a)}return t.maxGlobal=Math.min(t.maxGlobal,U.maxGlobal),t.maxPerTarget=Math.min(t.maxPerTarget,U.maxPerTarget),t}(),...n.config??{}},i=n.now??Date.now,s=M(e,t,{now:i,cancelGraceMs:a.cancelGraceMs}),d=e.prepare("SELECT COUNT(*) AS n FROM dispatch_leases"),l=e.prepare("SELECT COUNT(*) AS n FROM dispatch_leases WHERE target_agent_id = ?"),u=e.prepare("SELECT * FROM dispatch_attention WHERE request_id = ? AND cleared_at IS NULL"),c=e.prepare(`SELECT type, data FROM engine_events WHERE request_id = ? AND type NOT IN (${$}) ORDER BY sequence DESC LIMIT 1`),_=e.prepare(`
|
|
59
|
+
SELECT w.id FROM work_requests w
|
|
60
|
+
WHERE w.state = 'queued' AND w.executor = 'dispatcher'
|
|
61
|
+
AND (SELECT e.type FROM engine_events e WHERE e.request_id = w.id AND e.type NOT IN (${$}) ORDER BY e.sequence DESC LIMIT 1) = 'dispatch_deferred'
|
|
62
|
+
ORDER BY w.created_at ASC, w.id ASC
|
|
63
|
+
`),p=e.prepare("SELECT 1 FROM dispatch_leases WHERE request_id = ? AND token = ?"),f=e.prepare("SELECT decision FROM wake_safety_decisions WHERE request_id = ? ORDER BY sequence DESC LIMIT 1"),g=e.prepare("SELECT status FROM wakes WHERE id = ?"),m=e.prepare(`
|
|
64
|
+
SELECT w.id FROM work_requests w
|
|
65
|
+
WHERE w.state = 'queued' AND w.legacy_agent_request_id IS NULL AND w.executor = 'dispatcher' AND w.id <> ?
|
|
66
|
+
AND (w.created_at < ? OR (w.created_at = ? AND w.rowid < (SELECT rowid FROM work_requests WHERE id = ?)))
|
|
67
|
+
AND (w.next_eligible_at IS NULL OR w.next_eligible_at <= ?)
|
|
68
|
+
AND (w.deadline_at IS NULL OR w.deadline_at > ?)
|
|
69
|
+
AND NOT EXISTS (SELECT 1 FROM dispatch_attention a WHERE a.request_id = w.id AND a.cleared_at IS NULL)
|
|
70
|
+
AND (SELECT d.decision FROM wake_safety_decisions d WHERE d.request_id = w.id ORDER BY d.sequence DESC LIMIT 1) = 'allowed'
|
|
71
|
+
AND (w.wake_event_id IS NULL OR EXISTS (SELECT 1 FROM wakes k WHERE k.id = w.wake_event_id AND k.status = 'accepted'))
|
|
72
|
+
AND (SELECT COUNT(*) FROM dispatch_leases l WHERE l.target_agent_id = w.target_agent_id) < ?
|
|
73
|
+
ORDER BY w.created_at ASC, w.rowid ASC
|
|
74
|
+
LIMIT 1
|
|
75
|
+
`);function h(e,n,r,o){let s=c.get(e.id);return(s?.type==="dispatch_deferred"&&s.data?JSON.parse(s.data).reason:null)!==n&&t.appendEvent(e.id,{type:"dispatch_deferred",data:{reason:n,active_global:r.global,active_target:r.target,max_global:a.maxGlobal,max_per_target:a.maxPerTarget,...o?{waiting_behind:o}:{}},now:i()}),o?{ok:!1,reason:n,blockedBy:o}:{ok:!1,reason:n}}function k(e){if(!p.get(e.requestId,e.token))throw new P(e.requestId)}let w={owner:r,config:a,now:i,control:s,claim:(n,c={})=>t.transaction(()=>{let _=t.getWorkRequest(n);if(!_||"queued"!==_.state||void 0!==c.expectedVersion&&_.version!==c.expectedVersion)return{ok:!1,reason:"not_queued"};let p=i();if(null!==_.deadline_at&&p>=_.deadline_at)return s.timeOut(n,p),{ok:!1,reason:"timed_out"};if(null!==_.next_eligible_at&&p<_.next_eligible_at)return{ok:!1,reason:"not_eligible"};if(u.get(n))return{ok:!1,reason:"attention"};let k=function(e){let t=f.get(e.id);if(t?.decision!=="allowed")return"The request has no allowed safety decision.";if(null!==e.wake_event_id){let t=g.get(e.wake_event_id);if(t?.status!=="accepted")return"The Wake that created this request was not accepted."}return null}(_);if(k)return t.transitionWorkRequest(n,{from:"queued",to:"failed",reason:"not_authorized",expectedVersion:_.version,errorCode:"not_authorized",errorMessage:k,now:p}),{ok:!1,reason:"not_authorized"};let w=(0,N.storedRetryPolicy)(_.retry_policy),y=s.attemptsUsed(_);if(y>=w.max_attempts)return t.transitionWorkRequest(n,{from:"queued",to:"failed",reason:"retries_exhausted",expectedVersion:_.version,errorCode:"retries_exhausted",errorMessage:"No Attempt is left in the retry budget.",data:{attempt_count:y,max_attempts:w.max_attempts},now:p}),{ok:!1,reason:"exhausted"};let E=d.get().n,v=l.get(_.target_agent_id).n;if(E>=a.maxGlobal)return h(_,"global_limit",{global:E,target:v});if(v>=a.maxPerTarget)return h(_,"target_limit",{global:E,target:v});let I=m.get(n,_.created_at,_.created_at,n,p,p,a.maxPerTarget);if(I)return h(_,"older_waiting",{global:E,target:v},I.id);let R={requestId:n,owner:r,token:(0,o.randomUUID)(),expiresAt:p+a.leaseMs};return e.prepare(`
|
|
76
|
+
INSERT INTO dispatch_leases (request_id, target_agent_id, owner, token, acquired_at, heartbeat_at, expires_at)
|
|
77
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
78
|
+
`).run(n,_.target_agent_id,r,R.token,p,p,R.expiresAt),t.appendEvent(n,{type:"dispatch_claimed",data:{owner:r,lease_expires_at:R.expiresAt,active_global:E+1,active_target:v+1,attempt_number:y+1,max_attempts:w.max_attempts},now:p}),e.prepare("UPDATE work_requests SET attempt_count = ?, next_eligible_at = NULL WHERE id = ?").run(y+1,n),{ok:!0,lease:R,request:t.transitionWorkRequest(n,{from:"queued",to:"running",expectedVersion:_.version,data:c.data,now:p})}}),claimNext(t){let n=t??e.prepare(`
|
|
79
|
+
SELECT id FROM work_requests WHERE state = 'queued' AND legacy_agent_request_id IS NULL AND executor = 'dispatcher'
|
|
80
|
+
AND (next_eligible_at IS NULL OR next_eligible_at <= ?)
|
|
81
|
+
ORDER BY created_at ASC, rowid ASC
|
|
82
|
+
`).all(i()).map(e=>e.id),r="not_queued";for(let e of n){let t=w.claim(e);if(t.ok||"global_limit"===t.reason)return t;("target_limit"===t.reason||"older_waiting"===t.reason)&&(r=t.reason)}return{ok:!1,reason:r}},recordLaunchIntent:(n,a,s,d)=>t.transaction(()=>{k(n);let l=i(),u=d?(0,o.createHash)("sha256").update(d.body).digest("hex"):null;return e.prepare(`
|
|
83
|
+
INSERT INTO attempt_launch_intents (attempt_id, request_id, transport, idempotency_key, body, body_hash, grant_fingerprint, owner, created_at)
|
|
84
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
85
|
+
`).run(a,n.requestId,s,d?.idempotencyKey??null,d?.body??null,u,d?.grantFingerprint??null,r,l),t.appendEvent(n.requestId,{type:"launch_intent_recorded",attemptId:a,data:{transport:s,idempotency_key:d?.idempotencyKey??null,body_hash:u,grant_fingerprint:d?.grantFingerprint??null},now:l}),w.launchIntent(a)}),launchIntent:t=>e.prepare("SELECT * FROM attempt_launch_intents WHERE attempt_id = ?").get(t),heartbeat(t){let n=i(),r=n+a.leaseMs,o=1===e.prepare("UPDATE dispatch_leases SET heartbeat_at = ?, expires_at = ? WHERE request_id = ? AND token = ?").run(n,r,t.requestId,t.token).changes;return o&&(t.expiresAt=r),o},holds:e=>!!p.get(e.requestId,e.token),assertHeld(e){k(e)},release(n,a){t.transaction(()=>{k(n),e.prepare("DELETE FROM dispatch_leases WHERE request_id = ? AND token = ?").run(n.requestId,n.token),t.appendEvent(n.requestId,{type:"dispatch_released",data:{owner:r,outcome:a},now:i()})})},defer(n,o,s=null){t.transaction(()=>{k(n);let d=i();n.expiresAt=d+a.deferMs,e.prepare("UPDATE dispatch_leases SET heartbeat_at = ?, expires_at = ? WHERE request_id = ? AND token = ?").run(d,n.expiresAt,n.requestId,n.token),t.appendEvent(n.requestId,{type:"reconcile_deferred",attemptId:s,data:{owner:r,reason:o,retry_at:n.expiresAt},now:d})})},setAttention:(n,a)=>t.transaction(()=>{k(n);let s=i(),d=(0,o.randomUUID)();e.prepare("INSERT INTO dispatch_attention (id, request_id, attempt_id, reason, detail, created_at) VALUES (?, ?, ?, ?, ?, ?)").run(d,n.requestId,a.attemptId,a.reason,a.detail??null,s),t.appendEvent(n.requestId,{type:"attention_set",attemptId:a.attemptId,data:{reason:a.reason,detail:a.detail??null},now:s});let l=t.getWorkRequest(n.requestId);return l?.state==="running"&&t.transitionWorkRequest(n.requestId,{from:"running",to:"waiting",reason:`manual_attention:${a.reason}`,now:s}),e.prepare("DELETE FROM dispatch_leases WHERE request_id = ? AND token = ?").run(n.requestId,n.token),t.appendEvent(n.requestId,{type:"dispatch_released",data:{owner:r,outcome:"attention"},now:s}),u.get(n.requestId)}),attention:e=>u.get(e),recoverable(){let t=i(),n=[];for(let a of e.prepare("SELECT request_id, owner, token, expires_at FROM dispatch_leases ORDER BY acquired_at ASC, request_id ASC").all()){if(a.owner===r&&a.expires_at>t)continue;let e=a.expires_at<=t?"lease_expired":!function(e){let t=/^(.*):(\d+):[^:]+$/.exec(e);if(!t||t[1]!==D.default.hostname())return!1;let n=Number(t[2]);if(n===process.pid)return!1;try{return process.kill(n,0),!1}catch(e){return"ESRCH"===e.code}}(a.owner)?null:"owner_exited";e&&n.push({requestId:a.request_id,reason:e,priorToken:a.token,priorOwner:a.owner})}for(let t of e.prepare(`
|
|
86
|
+
SELECT w.id FROM work_requests w
|
|
87
|
+
WHERE w.state = 'running' AND w.legacy_agent_request_id IS NULL AND w.executor = 'dispatcher'
|
|
88
|
+
AND NOT EXISTS (SELECT 1 FROM dispatch_leases l WHERE l.request_id = w.id)
|
|
89
|
+
AND NOT EXISTS (SELECT 1 FROM dispatch_attention a WHERE a.request_id = w.id AND a.cleared_at IS NULL)
|
|
90
|
+
ORDER BY w.updated_at ASC, w.id ASC
|
|
91
|
+
`).all())n.push({requestId:t.id,reason:"unleased_running",priorToken:null,priorOwner:null});return n},takeOver:n=>t.transaction(()=>{let s=i(),d={requestId:n.requestId,owner:r,token:(0,o.randomUUID)(),expiresAt:s+a.leaseMs};if(n.priorToken){let t="lease_expired"===n.reason?"AND expires_at <= ?":"",a=[r,d.token,s,s,d.expiresAt,n.requestId,n.priorToken];if(t&&a.push(s),1!==e.prepare(`
|
|
92
|
+
UPDATE dispatch_leases SET owner = ?, token = ?, acquired_at = ?, heartbeat_at = ?, expires_at = ?
|
|
93
|
+
WHERE request_id = ? AND token = ? ${t}
|
|
94
|
+
`).run(...a).changes)return null}else{let a=t.getWorkRequest(n.requestId);if(!a||"running"!==a.state||e.prepare("SELECT 1 FROM dispatch_leases WHERE request_id = ?").get(n.requestId)||u.get(n.requestId))return null;e.prepare(`
|
|
95
|
+
INSERT INTO dispatch_leases (request_id, target_agent_id, owner, token, acquired_at, heartbeat_at, expires_at)
|
|
96
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
97
|
+
`).run(n.requestId,a.target_agent_id,r,d.token,s,s,d.expiresAt)}return t.appendEvent(n.requestId,{type:"dispatch_lease_taken_over",data:{owner:r,previous_owner:n.priorOwner,reason:n.reason},now:s}),d}),deferredRequestIds:()=>_.all().map(e=>e.id),leaseOf:t=>e.prepare("SELECT owner, token, expires_at FROM dispatch_leases WHERE request_id = ?").get(t)};return w},"decideRepostResult",0,function(e){switch(e.kind){case"accepted":return{action:"reattach"};case"unreachable":return{action:"defer",reason:"unreachable"};case"unauthorized":case"forbidden":case"no_grant":return{action:"attention",reason:"grant"};case"rejected":if(409===e.status&&"IDEMPOTENCY_CONFLICT"===e.code)return{action:"attention",reason:"idempotency_conflict"};if(j(e))return{action:"fail",category:"launch_failed",code:e.code??String(e.status)};if(null!==e.status&&e.status>=500)return{action:"defer",reason:"server_error"};return{action:"attention",reason:"unrecognized_response"};default:return{action:"attention",reason:"unrecognized_response"}}},"decideWithRunId",0,function(e){switch(e.kind){case"run":if("died"===e.state)return{action:"interrupted_attention",reason:"run_died"};return{action:"reattach"};case"not_found":return{action:"attention",reason:"run_not_found"};case"unauthorized":return{action:"attention",reason:"grant_expired"};case"forbidden":return{action:"attention",reason:"grant_scope"};case"no_grant":return{action:"attention",reason:"grant_unavailable"};case"unreachable":return{action:"defer",reason:"unreachable"};case"rejected":if(null!==e.status&&e.status>=500)return{action:"defer",reason:"server_error"};return{action:"attention",reason:"unrecognized_response"};default:return{action:"attention",reason:"unrecognized_response"}}},"decideWithoutRunId",0,function(e){return e.reconcilable?e.intent?.body&&e.intent.idempotency_key?e.currentGrantFingerprint?e.intent.grant_fingerprint!==e.currentGrantFingerprint?{action:"attention",reason:"grant_mismatch"}:{action:"repost"}:{action:"attention",reason:"grant_unavailable"}:{action:"attention",reason:"launch_intent_missing"}:{action:"interrupted",reason:"runtime_unobservable"}},"dispatchFault",0,function(e,t){},"launchRejectedBeforeWork",0,B],54226);let J=e=>l.includes(e);async function V(e){let t={state:"starting",result:null,resultMismatch:null,sessionId:null},n=null;for(;;){let r=await b(e,n);for(let e of r.events)"sessionId"in e&&"string"==typeof e.sessionId&&e.sessionId&&(t.sessionId=e.sessionId),"result"===e.type&&("string"==typeof e.result&&e.result.length>0?(t.result=e.result,t.resultMismatch=null):(t.result=null,t.resultMismatch=null===e.result?"null":Array.isArray(e.result)?"array":""===e.result?"empty string":typeof e.result));t.state=r.state;let a=r.nextCursor!==(n??"0")&&r.events.length>0;if(n=r.nextCursor,J(r.state)&&!a)return t;a||await new Promise(e=>setTimeout(e,1e3))}}async function Y(e,t){if(!t?.finalization)return{baselineRef:null,baselineDigest:null,candidate:{ok:!1,code:"FINALIZATION_NOT_PREPARED",message:"The run reported no finalization baseline."}};let n={baselineRef:t.finalization.baselineRef,baselineDigest:t.finalization.baselineDigest};try{let r=await S(e);if(r.baselineRef!==t.finalization.baselineRef||r.baselineDigest!==t.finalization.baselineDigest)return{...n,candidate:{ok:!1,code:"BASELINE_MISMATCH",message:"Agent Deck returned candidate evidence for a different baseline."}};return{...n,candidate:{ok:!0,manifest:{baselineRef:r.baselineRef,baselineDigest:r.baselineDigest,baseCommit:r.baseCommit,manifestDigest:r.manifestDigest,files:r.files}}}}catch(r){let e=r instanceof c?r.deckCode??r.code:"agent_deck_invalid_response",t=r instanceof c?r.message:"The candidate manifest could not be read.";return{...n,candidate:{ok:!1,code:e,message:t}}}}function X(e){let t;if("readonly"!==e.toolProfile&&"edit"!==e.toolProfile)return{ok:!1,failure:(0,i.attemptFailure)("unsupported_authority",`Unsupported tool profile: ${JSON.stringify(String(e.toolProfile))}.`)};if(e.prepareFinalization&&"edit"!==e.toolProfile)return{ok:!1,failure:(0,i.attemptFailure)("unsupported_authority","Only an edit Attempt can prepare Git finalization.")};if(!e.deck)return{ok:!1,failure:(0,i.attemptFailure)("unavailable","An Agent Deck run requires a deck.")};if(!e.cwd)return{ok:!1,failure:(0,i.attemptFailure)("unavailable","An Agent Deck run requires a working directory.")};try{t=(0,T.parseDeckRuntime)(e.target.agent)}catch(e){return{ok:!1,failure:(0,i.attemptFailure)("unavailable",e instanceof Error?e.message:String(e))}}let n=e.sessionBinding?.externalSessionId??null;return{ok:!0,body:{deckId:e.deck,client:t,cwd:e.cwd,prompt:(0,T.deckPromptForAttempt)(e.prompt),tools:e.toolProfile,...n?{resumeSessionId:n}:{},...!0===e.prepareFinalization?{prepareFinalization:!0}:{}}}}function Z(e){if(!(e instanceof c))return{kind:"rejected",status:null,code:null};switch(e.code){case"agent_deck_token_missing":return{kind:"no_grant"};case"agent_deck_unauthorized":return{kind:"unauthorized"};case"agent_deck_forbidden":return{kind:"forbidden"};case"agent_deck_unreachable":return{kind:"unreachable"};default:if(404===e.status&&("RUN_NOT_FOUND"===e.deckCode||null===e.deckCode))return{kind:"not_found"};return{kind:"rejected",status:e.status,code:e.deckCode}}}let Q="agent-deck-api";function ee(e){let t=t=>({adapter:Q,externalRunId:null,externalSessionId:null,output:null,artifacts:[],startedAt:e,finishedAt:Date.now(),failure:null,...t});return{result:t,failed:(e,n={})=>t({status:"failed",failure:e,...n})}}async function et(e,t,n,r){let{result:a,failed:o}=ee(r),s=t.resumeSessionId,d=t.prepareFinalization,l=(0,i.interruption)({signal:t.signal??null,deadlineAt:t.deadlineAt}),u={externalRunId:e};try{if(d)try{let t=await q(e);t.finalization&&n?.({type:"progress",adapter:Q,at:Date.now(),detail:{phase:"finalization_prepared",baseline_ref:t.finalization.baselineRef,baseline_digest:t.finalization.baselineDigest}})}catch{}let t=V(e);t.catch(()=>{});let r=await Promise.race([t.then(e=>({observed:e}),e=>({error:e})),l.promise.then(e=>({interrupted:e}))]);if("interrupted"in r){let t="requested";try{await A(e)}catch{t="failed"}return o(r.interrupted,{...u,externalCancel:t})}if("error"in r){let t="requested";try{await A(e)}catch{t="failed"}return o(G(r.error,"runtime_failed"),{...u,externalCancel:t})}let{observed:c}=r,_=null;try{_=await q(e)}catch(e){if(!d)return o(G(e,"runtime_failed"),u)}let p=_?.sessionId??c.sessionId,f=d?await Y(e,_):void 0,g={...u,externalSessionId:p,...f?{finalization:f}:{}};if("canceled"===c.state)return o((0,i.attemptFailure)("cancelled",`Agent Deck run ${e} was canceled.`),g);if("ended"!==c.state)return o((0,i.attemptFailure)("runtime_failed",`Agent Deck run ${e} ended in state ${c.state}.`),g);if(null===c.result)return o((0,i.attemptFailure)("result_contract",`Agent Deck run ${e} result contract mismatch: expected a non-empty string result, got ${c.resultMismatch??"no result event"}.`),g);if(s&&null!==p&&p!==s)return o((0,i.attemptFailure)("session_mismatch",`resume run ${e} forked the session (expected ${s}, got ${p}); failing closed.`),g);let m=f?.candidate?.ok?f.candidate.manifest:null;return a({status:"completed",...g,externalSessionId:p??s,output:c.result,artifacts:m?[{kind:"candidate_manifest",ref:m.manifestDigest}]:[]})}finally{l.dispose()}}let en={currentGrantFingerprint:f,async inspect(e){try{let t=await q(e);return{kind:"run",state:t.state}}catch(e){return Z(e)}},async repost(e){let t;try{t=JSON.parse(e.body)}catch{return{kind:"rejected",status:null,code:"INTENT_UNREADABLE"}}try{let n=await R(t,e.idempotencyKey);return{kind:"accepted",runId:n.runId}}catch(e){return Z(e)}},follow:(e,t,n)=>et(e,t,n,Date.now()),async evidence(e){let t=null;try{t=await q(e)}catch{}return Y(e,t)},async cancel(e){try{return await A(e),"requested"}catch{return"failed"}}};var er=e.i(64974);class ea extends Error{code;constructor(e,t){super(t),this.name="DispatchFailure",this.code=e}}let ei={"hermes-gateway":()=>(function(e={}){let t="hermes-gateway";return{name:t,async run(n,r){let o=Date.now(),s=(e,n=null)=>({status:"failed",adapter:t,externalRunId:null,externalSessionId:n,output:null,artifacts:[],startedAt:o,finishedAt:Date.now(),failure:e});if("readonly"!==n.toolProfile)return s((0,i.attemptFailure)("unsupported_authority",`The Hermes gateway does not support the ${n.toolProfile} tool profile.`));let d=(e.loadConfig??a.loadHermesConfig)();if(!d)return s((0,i.attemptFailure)("unavailable","The Hermes gateway is not configured."));let l=(0,i.preLaunchInterruption)(n);if(l)return s(l);let u=n.sessionBinding?.externalSessionId??(0,a.hermesSessionIdForBot)(n.target.agentId,d),c=new AbortController,_=(0,i.interruption)(n),p=null;_.promise.then(e=>{p=e,c.abort()}),r?.({type:"started",adapter:t,at:Date.now(),externalRunId:null,externalSessionId:u});try{var f;let r=await (0,a.hermesChat)({config:d,profilePath:n.target.hermesProfilePath||a.HERMES_DEFAULT_CHAT_PATH,sessionId:u,messages:(f=n.prompt,"text"===f.kind?[{role:"user",content:f.text}]:[{role:"system",content:f.system},...f.history.map(e=>e.fromAgent?{role:"assistant",content:e.content}:{role:"user",content:`[From ${e.speakerLabel}] ${e.content}`})]),signal:c.signal,...e.fetchImpl?{fetchImpl:e.fetchImpl}:{}});return{status:"completed",adapter:t,externalRunId:null,externalSessionId:u,output:r,artifacts:[],startedAt:o,finishedAt:Date.now(),failure:null}}catch(r){let e=r instanceof a.HermesError?r.code:"unknown";if(p)return s({...p,code:e},u);let t="timeout"===e?"timed_out":"runtime_failed",n=r instanceof a.HermesError&&void 0!==r.status?` ${r.status}`:"";return s((0,i.attemptFailure)(t,`The Hermes gateway did not complete the turn (${e}${n}).`,e),u)}finally{_.dispose()}}}})({fetchImpl:null}),"agent-deck-run":()=>({name:Q,reconciler:en,externalCancel:!0,launchIntent(e){let t=X(e);return t.ok?{idempotencyKey:K(e),body:JSON.stringify(t.body),grantFingerprint:f()}:null},async run(e,t){let n,r=Date.now(),{failed:a}=ee(r),o=X(e);if(!o.ok)return a(o.failure);let s=(0,i.preLaunchInterruption)(e);if(s)return a(s);try{n=(await R(o.body,K(e))).runId}catch(t){let e=B(Z(t));return a(G(t,"launch_failed"),e?{}:{launchUnconfirmed:!0})}return t?.({type:"started",adapter:Q,at:Date.now(),externalRunId:n,externalSessionId:null}),et(n,{resumeSessionId:e.sessionBinding?.externalSessionId??null,prepareFinalization:!0===e.prepareFinalization,deadlineAt:e.deadlineAt??null,signal:e.signal??null},t,r)}})},eo=["agent_deck_token_missing","agent_deck_unauthorized","agent_deck_forbidden","agent_deck_unreachable"];function es(e){return"completed"===e.status?"succeeded":e.failure?.category==="cancelled"?"cancelled":e.failure?.category==="timed_out"?"timed_out":"failed"}function ed(e,t,n){return e.finishAttempt(t,{outcome:es(n),output:n.output,errorCategory:n.failure?.category??null,errorMessage:n.failure?.message??null,artifacts:n.artifacts,...n.externalRunId?{externalRunId:n.externalRunId}:{},...n.externalSessionId?{externalSessionId:n.externalSessionId}:{},now:n.finishedAt})}function el(e,t,n,r=Date.now()){let a=e.getWorkRequest(t.request_id);e.appendEvent(t.request_id,{type:"late_result_recorded",attemptId:t.id,data:{attempt_number:t.attempt_number,attempt_outcome:t.outcome,result_status:n.status,result_outcome:es(n),error_category:n.failure?.category??null,external_run_id:n.externalRunId,output:n.output,request_state:a?.state??null},now:r})}async function eu(e,t,n,r={}){let a,o=!1,s=!1;try{a=await n.run(t.input,n=>{var a,i;if("started"===n.type&&(s=!0),o||(a=t.attempt,i=r.fence,!e.transaction(()=>(!i||!!i())&&("started"===n.type?((n.externalRunId||n.externalSessionId)&&e.recordAttemptExternalIds(a.id,{...n.externalRunId?{externalRunId:n.externalRunId}:{},...n.externalSessionId?{externalSessionId:n.externalSessionId}:{}}),e.appendEvent(a.request_id,{type:"runtime_started",attemptId:a.id,data:{adapter:n.adapter,external_run_id:n.externalRunId},now:n.at})):e.appendEvent(a.request_id,{type:"runtime_progress",attemptId:a.id,data:{adapter:n.adapter,...n.detail},now:n.at}),!0)))){o=!0;return}r.onEvent?.(n)})}catch(r){let e=Date.now();a={status:"failed",adapter:n.name,externalRunId:null,externalSessionId:null,output:null,artifacts:[],startedAt:t.attempt.started_at,finishedAt:e,failure:(0,i.attemptFailure)("runtime_failed",r instanceof Error?r.message:String(r))}}return e.transaction(()=>{let i=e.getAttempt(t.attempt.id);if(i&&null!==i.finished_at)return el(e,i,a),{attempt:i,result:a,projected:void 0,late:!0,abandoned:null};let o=s?ec(t.attempt,n,t.input.signal??null,a):null,d=o?e_(e,o,a):ed(e,t.attempt.id,a),l=r.project?r.project(a,d):void 0;return{attempt:d,result:a,projected:l,late:!1,abandoned:o}})}function ec(e,t,n,r){if("failed"!==r.status)return null;let a=r.failure?.category,i="failed"===r.externalCancel,o={requestId:e.request_id,attemptId:e.id,externalRunId:r.externalRunId,transport:t.name};return"cancelled"!==a&&"timed_out"!==a?i?{...o,reason:"observation_lost",externalCancel:"failed"}:null:("cancelled"!==a||n?.aborted)&&(!t.externalCancel||i)?{...o,reason:a,externalCancel:i?"failed":null}:null}function e_(e,t,n){let r="failed"===t.externalCancel?"The runtime did not accept the cancel request":"The runtime cannot stop the run",a=e.finishAttempt(t.attemptId,{outcome:es(n),errorCategory:"abandoned",errorMessage:`${n.failure?.message??"The attempt was interrupted."} ${r}; it may continue and a later result is not awaited.`.slice(0,500),artifacts:n.artifacts,...n.externalRunId?{externalRunId:n.externalRunId}:{},...n.externalSessionId?{externalSessionId:n.externalSessionId}:{},now:n.finishedAt});return t.externalRunId=a.external_run_id,e.appendEvent(t.requestId,{type:"attempt_abandoned",attemptId:t.attemptId,data:{reason:t.reason,attempt_number:a.attempt_number,external_run_id:a.external_run_id,transport:t.transport,local_only:!0,error_code:n.failure?.code??null,external_cancel:t.externalCancel},now:n.finishedAt}),a}e.s(["DispatchFailure",0,ea,"adapterForTransport",0,function(e){return"hermes-gateway"===e?ei["hermes-gateway"]():"agent-deck-api"===e?ei["agent-deck-run"]():null},"agentForDispatch",0,function(e){return(0,r.resolveAgent)(e).agent},"dispatchFailureFor",0,function(e){var t;let n,r=e.failure?.category??"runtime_failed";if("hermes-gateway"===e.adapter)return"unavailable"===r?new ea("agent_unavailable","The agent runtime is not configured."):new ea("runtime_failed",`The agent runtime did not complete the turn (${e.failure?.code??"unknown"}).`);let a="agent-deck-api"===e.adapter?(t=e,(n=t.failure?.code)&&eo.includes(n)?n:null):null;return a?new ea("agent_unavailable",`${_[a]} [${a}]`):"unavailable"===r?new ea("agent_unavailable","The agent runtime is not available."):"cancelled"===r?new ea("runtime_failed","The agent run was cancelled."):"launch_failed"===r?new ea("runtime_failed","The agent runtime did not start the turn."):new ea("runtime_failed","The agent runtime did not complete the turn.")},"prepareDispatch",0,function(e){var i;let o,d,l=(0,r.resolveAgent)(e.bot);if(!l.launchable||!l.deck_id)throw new ea("agent_unavailable","The agent has no Agent Deck selected.");let u={prompt:{kind:"conversation",system:(d=(i=e.bot).title?`${i.name} (${i.title})`:i.name,`You are ${d}.
|
|
98
|
+
${i.description}`),history:e.history},deck:l.deck_id,toolProfile:e.toolProfile??er.TOOL_PROFILE_FOR_KIND.conversation,sessionBinding:e.sessionBinding??null,correlation:{}};if("hermes-gateway"===(0,r.agentTransport)(l.agent))return{agent:l.agent,adapter:ei["hermes-gateway"](),input:{...u,target:{agentId:e.bot.id,agent:l.agent,hermesProfilePath:(0,a.hermesProfilePathForBot)(e.bot)},cwd:null}};try{o=(0,s.resolveAndEnsureBotWorkdir)(e.bot.id,l.working_directory)}catch{throw new ea("agent_unavailable","The agent working directory is unavailable.")}return{agent:l.agent,adapter:ei["agent-deck-run"](),input:{...u,target:{agentId:e.bot.id,agent:l.agent},cwd:o,...e.prepareFinalization&&"edit"===u.toolProfile&&function(e){let r=n.default.resolve(e);for(;;){if(t.default.existsSync(n.default.join(r,".git")))return!0;let e=n.default.dirname(r);if(e===r)return!1;r=e}}(o)?{prepareFinalization:!0}:{}}}}],27510),e.s(["abandonedLocally",0,ec,"beginAttempt",0,function(e,t,n){let r=n.input.sessionBinding;if(r&&!r.bindingId)throw new C.EngineStoreError("invalid_input","A persisted resume attempt names its Session Binding.");let a=e.createAttempt(t,{kind:r?"resume":"launch",adapter:n.agent,toolProfile:n.input.toolProfile,launchSnapshot:function(e){let{input:t}=e;return{...e.snapshot??{},agent:e.agent,agent_id:t.target.agentId,transport:e.adapter.name,deck:t.deck,cwd:t.cwd,tool_profile:t.toolProfile,hermes_profile_path:t.target.hermesProfilePath??null,prompt_kind:t.prompt.kind,prompt_hash:(0,o.createHash)("sha256").update(JSON.stringify(t.prompt)).digest("hex"),session_binding_id:t.sessionBinding?.bindingId??null,prepare_finalization:!0===t.prepareFinalization,deadline_at:t.deadlineAt??null}}(n),resumedSessionBindingId:r?.bindingId??null,now:n.now});return{attempt:a,input:(0,i.freezeAttemptInput)({...n.input,correlation:{...n.input.correlation,requestId:t,attemptId:a.id}})}},"recordAbandonedResult",0,e_,"recordAttemptResult",0,ed,"recordLateResult",0,el,"runAttempt",0,eu],53059)},76459,142,e=>{"use strict";var t=e.i(54799),n=e.i(62294),r=e.i(35613),a=e.i(64974);let i=Object.freeze({maxWakeDepth:3,rootBudget:12,maxContinuations:24,globalConcurrency:4,perTargetConcurrency:1}),o={maxWakeDepth:"BOTMANCERS_WAKE_MAX_DEPTH",rootBudget:"BOTMANCERS_WAKE_ROOT_BUDGET"},s=Object.freeze({kind:"person",id:"local-owner"});function d(e){return!!e&&e.kind===s.kind&&e.id===s.id}function l(e,t){return t&&["person","bot","service"].includes(t.kind)&&"string"==typeof t.id&&t.id.trim()?"ui"===e?d(t)?"human_owner":"unknown":"api"===e?"api_principal":"unknown":"unknown"}let u={owner_required:403,not_found:404,not_pending:409};class c extends Error{code;constructor(e,t){super(t),this.name="WakeSafetyError",this.code=e}get status(){return u[this.code]}}function _(e){if("human_owner"!==e)throw new c("owner_required","Only the owner can allow, deny, or revoke Wake grants.")}function p(e,t){return n.default.prepare("SELECT * FROM wake_grants WHERE caller_agent_id = ? AND target_agent_id = ? AND authority = 'edit' AND revoked_at IS NULL").get(e,t)}function f(e){return n.default.prepare("SELECT * FROM wake_grants WHERE id = ?").get(e)}e.s(["WAKE_SAFETY_VERSION",0,1,"WakeSafetyError",0,c,"activeEditGrant",0,p,"assertOwner",0,_,"categorizeIntakeCaller",0,l,"ensureEditGrant",0,function(e){let r=p(e.callerAgentId,e.targetAgentId);if(r)return{grant:r,created:!1};let a=(0,t.randomUUID)();return n.default.prepare(`
|
|
99
|
+
INSERT INTO wake_grants (id, caller_agent_id, target_agent_id, authority, granted_by_kind, granted_by_id, source_wake_id, created_at)
|
|
100
|
+
VALUES (?, ?, ?, 'edit', ?, ?, ?, ?)
|
|
101
|
+
`).run(a,e.callerAgentId,e.targetAgentId,e.grantedBy.kind,e.grantedBy.id,e.sourceWakeId,e.now),{grant:f(a),created:!0}},"isOwnerPrincipal",0,d,"needsEditGrant",0,function(e){return"implementation"===e||"revision"===e},"revokeWakeGrant",0,function(e,r,a=Date.now()){return _(r.category),n.default.transaction(()=>{let i=f(e);if(!i)throw new c("not_found",`No Wake grant ${e}.`);if(null!==i.revoked_at)return{grant:i,revoked:!1};n.default.prepare("UPDATE wake_grants SET revoked_at = ?, revoked_by_kind = ?, revoked_by_id = ? WHERE id = ? AND revoked_at IS NULL").run(a,r.principal.kind,r.principal.id,e);let o=i.source_wake_id?n.default.prepare("SELECT work_request_id FROM wakes WHERE id = ?").get(i.source_wake_id):void 0;return o?.work_request_id&&n.default.prepare(`
|
|
102
|
+
INSERT INTO engine_events (id, request_id, sequence, attempt_id, type, data, created_at)
|
|
103
|
+
SELECT ?, ?, COALESCE(MAX(sequence), 0) + 1, NULL, 'grant_revoked', ?, ? FROM engine_events WHERE request_id = ?
|
|
104
|
+
`).run((0,t.randomUUID)(),o.work_request_id,JSON.stringify({grant_id:i.id,wake_id:i.source_wake_id,caller_agent_id:i.caller_agent_id,target_agent_id:i.target_agent_id,decided_by:{kind:r.principal.kind,id:r.principal.id}}),a,o.work_request_id),{grant:f(e),revoked:!0}}).immediate()},"wakeSafetyLimits",0,function(e=process.env){let t=(t,n)=>{let r=e[o[t]]?.trim(),a=r&&/^\d+$/.test(r)?Number(r):NaN;return Number.isSafeInteger(a)&&a>=n&&a<i[t]?a:i[t]},n=t("rootBudget",1);return{...i,maxWakeDepth:t("maxWakeDepth",0),rootBudget:n,maxContinuations:2*n}}],142);let g={invalid_request:400,conversation_not_found:404,conversation_not_writable:409,target_not_found:404,idempotency_conflict:409,unknown_principal:403,intake_failed:500};class m extends Error{code;constructor(e,t){super(t),this.name="IntakeError",this.code=e}get status(){return g[this.code]}}let h={ui:["bot","group"],api:["agent"]};function k(e){return"string"==typeof e&&e.trim().length>0}function w(e,t,r){n.default.prepare("INSERT OR IGNORE INTO conversation_participants (conversation_id, participant_kind, participant_id, joined_at) VALUES (?, ?, ?, ?)").run(e,t.kind,t.id,r)}function y(e,r,a,i,o,s){let d=(0,t.randomUUID)();return n.default.prepare("INSERT INTO messages (id, conversation_id, sender_type, sender_id, sender_kind, content, handoff_targets, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)").run(d,r,"bot"===a.kind?"bot":"user","ui"===e?null:a.id,a.kind,i,o&&o.length>0?JSON.stringify(o):null,s),d}function E(e){return e.map(e=>n.engine.getWorkRequest(e)).filter(e=>!!e)}e.s(["IntakeError",0,m,"acceptConversationMessage",0,function(e){var i,o;let s,d;if(!e.requester||!["person","bot","service"].includes(e.requester.kind)||!k(e.requester.id))throw new m("invalid_request","A requester principal is required.");if("unknown"===l(e.surface,e.requester))throw new m("unknown_principal","The caller is not a recognized principal.");if(!k(e.content))throw new m("invalid_request","content is required.");if(!k(e.idempotencyKey)||e.idempotencyKey.length>200)throw new m("invalid_request","An idempotency key (1-200 characters) is required.");let u=(i=e.surface,o=e.fingerprint,(0,t.createHash)("sha256").update(JSON.stringify([i,o??null])).digest("hex"));try{s=function(e,r){let{surface:i,requester:o}=e;return n.default.transaction(()=>{let s,d=n.default.prepare("SELECT * FROM conversation_intakes WHERE requester_kind = ? AND requester_id = ? AND idempotency_key = ?").get(o.kind,o.id,e.idempotencyKey);if(d){var u;if(d.request_hash!==r)throw new m("idempotency_conflict","The idempotency key was already used with a different payload.");let e=JSON.parse(d.work_request_ids);return{surface:d.surface,conversationId:d.conversation_id,acceptedMessageId:d.source_event_id,requestIds:e,requests:E(e),replayed:!0}}let c=Date.now();if("id"in e.conversation){let t=n.default.prepare("SELECT * FROM conversations WHERE id = ?").get(e.conversation.id);if(!t||(u=t.id,!n.default.prepare("SELECT 1 FROM conversation_participants WHERE conversation_id = ? AND participant_kind = ? AND participant_id = ?").get(u,o.kind,o.id)))throw new m("conversation_not_found","No conversation with that id is visible to this requester.");if(!h[i].includes(t.type))throw new m("conversation_not_writable","api"===i?"UI conversations are written through the UI compatibility routes.":"Agent conversations are written through the agent conversation API.");s=t}else{if("api"!==i)throw new m("invalid_request","Only the agent conversation API opens new conversations.");s={id:(0,t.randomUUID)(),type:"agent",origin_kind:o.kind,origin_id:o.id,created_at:c},n.default.prepare("INSERT INTO conversations (id, type, origin_kind, origin_id, created_at) VALUES (?, ?, ?, ?, ?)").run(s.id,s.type,o.kind,o.id,c),w(s.id,o,c)}let _=e.route(s),p=new Set,f=[];for(let e of _.deliveries){let t=e.conversationId??s.id,r=`${t}:${e.agentId}`;if(!p.has(r)){if(p.add(r),!k(e.agentId)||!n.bots.getById(e.agentId))throw new m("target_not_found","No registered agent has that id.");if("bot"===o.kind&&o.id===e.agentId)throw new m("invalid_request","An agent cannot address itself.");if(t!==s.id&&!n.default.prepare("SELECT 1 FROM conversations WHERE id = ?").get(t))throw new m("target_not_found","The target conversation does not exist.");f.push({agentId:e.agentId,conversationId:t})}}let g=new Map;for(let t of(g.set(s.id,y(i,s.id,o,e.content,_.handoffTargets,c)),f))g.has(t.conversationId)||g.set(t.conversationId,y(i,t.conversationId,o,e.content,_.handoffTargets,c));let v=(0,a.selectExecutionPolicy)({entryPoint:i,executionKind:"conversation"});if(!v.ok)throw new m("invalid_request",v.reason);let I=v.policy,R=l(i,o);if("unknown"===R)throw new m("unknown_principal","The caller is not a recognized principal.");let q={safety_version:1,root_principal:{kind:o.kind,id:o.id},wake_depth:0,grant_rule:"readonly_default",grant_id:null},b=[];for(let t of f){w(t.conversationId,{kind:"bot",id:t.agentId},c);let r=1===f.length?e.idempotencyKey:`${e.idempotencyKey}#${t.conversationId}:${t.agentId}`,{request:a}=n.engine.createOrGetWorkRequest({sourceConversationId:t.conversationId,sourceEventId:g.get(t.conversationId),requester:o,targetAgentId:t.agentId,intent:e.content,executionKind:I.execution_kind,toolProfile:I.tool_profile,idempotencyKey:r,policy:{source:"conversation_intake",surface:i},executionPolicy:I,rootPrincipal:o,wakeDepth:0,safetySnapshot:q,safety:{principalType:R,principal:o,decision:"allowed",grantRule:"readonly_default",snapshot:q,now:c},executor:e.executor,now:c});b.push(a.id)}for(let[e,t]of g){let r=f.flatMap((t,n)=>t.conversationId===e?[b[n]]:[]);1===r.length&&n.default.prepare("UPDATE messages SET request_id = ? WHERE id = ?").run(r[0],t)}return n.default.prepare(`
|
|
105
|
+
INSERT INTO conversation_intakes (
|
|
106
|
+
requester_kind, requester_id, idempotency_key, request_hash, surface,
|
|
107
|
+
conversation_id, source_event_id, work_request_ids, created_at
|
|
108
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
109
|
+
`).run(o.kind,o.id,e.idempotencyKey,r,i,s.id,g.get(s.id),JSON.stringify(b),c),{surface:i,conversationId:s.id,acceptedMessageId:g.get(s.id),requestIds:b,requests:E(b),replayed:!1}}).immediate()}(e,u)}catch(e){if(e instanceof m)throw e;if(e instanceof r.EngineStoreError&&"idempotency_conflict"===e.code)throw new m("idempotency_conflict","The idempotency key was already used with a different payload.");throw console.error("Conversation intake failed:",e),new m("intake_failed","The message could not be accepted.")}let c=e.dispatch;try{d=c(s)}catch(e){d=Promise.reject(e)}let _=Promise.resolve(d).catch(e=>{console.error("Intake dispatch failed:",e)});return{...s,dispatched:_}},"getAcceptedMessage",0,function(e){return n.default.prepare("SELECT * FROM messages WHERE id = ?").get(e)}],76459)}];
|
|
110
|
+
|
|
111
|
+
//# sourceMappingURL=lib_07adeq3._.js.map
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
module.exports=[52694,e=>{"use strict";var t=e.i(22734),n=e.i(62294),r=e.i(57147),i=e.i(43084),o=e.i(25211),a=e.i(3620),s=e.i(85072),d=e.i(1912),l=e.i(10860),u=e.i(38636),c=e.i(51749),f=e.i(77099),p=e.i(2803),m=e.i(51714),g=e.i(15467),_=e.i(88355),h=e.i(64909),v=e.i(39229),y=e.i(91084),b=e.i(64974),k=e.i(62349),E=e.i(67505);let w="[Delegation limit] Depth limit reached (max 3 handoffs). No further handoff.",S="[Delegation limit] Budget limit reached (max 12 delegated turns per user message). No further delegated turn.",A="hermes-gateway",T="agent-deck",R=new Map;function I(e,t){let n=R.get(e);n||(n=new Set,R.set(e,n)),n.add(t)}function $(e,t){let n=R.get(e);n&&(n.delete(t),0===n.size&&R.delete(e))}function C(e,t,n){if(!t||t.stopped)return;let i=t.popCaller(n);i&&r.uiTurns.enqueue(e.conversation_id,i,{reason:"report_back",parentRequestId:e.id})}function D(e,t){r.uiTurns.enqueue(e.conversation_id,t,{reason:"handoff",parentRequestId:e.id,delegated:!0})}function N(e){let t=[...n.messages.getByConversation(e)].reverse().find(e=>"user"===e.sender_type);if(!t)return!1;let r=(0,i.existingChain)(e,t.id);return!!r&&r.stopped}function q(e){let t=[...n.messages.getByConversation(e)].reverse().find(e=>"user"===e.sender_type);if(!t)return!1;let r=(0,i.existingChain)(e,t.id);return!!r&&r.turns>=12}function x(e,t,r){if(!r||!function(e,t){if(!t)return!1;let n=e.findIndex(e=>e.id===t.id);return n>=0&&!e.slice(n+1).some(e=>"bot"===e.sender_type)}(t,r))return!1;let i=n.conversations.getById(e);return i?.type!=="bot"||null===H(r.content)&&null===U(r.content)}let M=new Set,P=new Set;function O(e,t){N(e)||q(e)||r.uiTurns.countPending(e)>0||(r.uiTurns.enqueue(e,t,{reason:"tick"}),K())}function W(e){e.fired||M.has(e.id)||N(e.conversation_id)||q(e.conversation_id)||r.uiTurns.countPending(e.conversation_id)>0||(M.add(e.id),setTimeout(()=>{M.delete(e.id),O(e.conversation_id,e.bot_id)},Math.max(0,e.due_at-Date.now())))}function B(e){P.has(e.id)||N(e.conversation_id)||q(e.conversation_id)||r.uiTurns.countPending(e.conversation_id)>0||(P.add(e.id),setTimeout(()=>{P.delete(e.id),O(e.conversation_id,e.bot_id)},Math.max(0,e.next_due_at-Date.now())))}function F(){for(let e of n.oneShots.unfired())W(e);for(let e of n.routines.all())B(e)}function H(e){let t=e.trim().match(/^reply with the word (\S+?)\.?$/i);return t&&t[1].replace(/^[`"'"]+|[`"'"]+$/g,"")||null}function U(e){let t=e.trim().match(/^set a one-shot(?: in (\d+) seconds?)?\.?$/i);return t?t[1]?1e3*Number(t[1]):6e4:null}let L="1"!==process.env.BOTMANCERS_NO_AUTOPROCESS;function K(){L&&setImmediate(()=>en())}let j=!1,z=new Map;function Y(e,t,n,r=null,i=function(e){return"hermes-gateway"===(0,k.agentTransport)((0,k.resolveAgent)(e).agent)?A:T}(t)){let o=(0,u.buildSnapshotInput)(t,n,r);z.set(e.id,{json:JSON.stringify(o),hash:(0,u.hashSnapshot)(o),transport:i})}function J(e){let t=z.get(e.id);if(z.delete(e.id),t)try{n.launchSnapshots.record(e.id,e.bot_id,t.hash,t.json,t.transport)}catch(e){console.error("Error recording launch snapshot:",e)}}function Q(e){z.delete(e.id)}function V(e,t,r){var i,o;let a;n.messages.create(e.conversation_id,"bot",(i=t.name,a=(o=(0,k.resolveAgent)(t).deck_name)?` (legacy deck "${o}")`:"",`[Deck needs selection] ${i} cannot launch: no Agent Deck is selected${a}. Select a deck before launching.`),t.id),C(e,r,t.id),K()}async function Z(e){let t,i,{item:o,bot:a,conversationMessages:s,latestUser:d,chain:u,openGroupTurn:c,delegated:f}=e;if(Y(o,a,{path:null,present:null,content:null},null,T),c){Q(o),K();return}if(u&&u.turns>=12){n.messages.create(o.conversation_id,"bot",S,a.id),r.uiTurns.cancelPending(o.conversation_id),K();return}let p=(0,k.resolveAgent)(a);if(!p.launchable||!p.deck_id)return void V(o,a,u);try{t=(0,v.parseDeckRuntime)(p.agent)}catch{n.messages.create(o.conversation_id,"bot",`[Deck failed] agent=${p.agent} deck=${p.deck_id} error=Invalid agent-deck run client.`,a.id),C(o,u,a.id),K();return}let m=(f?function(e,t){let n=-1;for(let t=0;t<e.length;t++)"user"===e[t].sender_type&&(n=t);if(n<0)return null;let r=`[Handing off to ${t}]`;for(let t=e.length-1;t>n;t--){let n=e[t];if("bot"===n.sender_type&&n.content.includes(r))return n.content.slice(n.content.indexOf(r)+r.length).trim()||null}return null}(s,a.name):null)??d?.content??null;if(!m||!m.trim()||u?.stopped){Q(o),K();return}let g=(0,E.getAgentDeckServerUrl)();if(!(0,E.isLocalAgentDeckUrl)(g)){n.messages.create(o.conversation_id,"bot",(0,E.remoteLaunchUnsupportedMessage)(g),a.id),C(o,u,a.id),K();return}try{i=(0,E.resolveAndEnsureBotWorkdir)(a.id,p.working_directory)}catch(e){n.messages.create(o.conversation_id,"bot",`[Deck failed] agent=${t} deck=${p.deck_id} error=${String(e instanceof Error?e.message:e).slice(0,300)}`,a.id),C(o,u,a.id),K();return}u?.addTurns(1);let _=(0,l.readSkillState)(a.name),h=n.memories.latestFacts(a.id);Y(o,{...a,agent:t,deck_id:p.deck_id,working_directory:i},_,h,T),("message"===o.kind?await X(o,a,t,p.deck_id):await ee({item:o,bot:a,client:t,deck:p.deck_id,cwd:i,task:m.trim(),chain:u,delegated:f}))&&C(o,u,a.id),K()}function G(e,t,r,i,o){n.messages.create(e.conversation_id,"bot",`[Deck failed] agent=${r} deck=${i} error=${o.slice(0,300)}`,t.id)}async function X(e,t,i,o){let a=e.id;r.uiTurns.handOff(a),await (0,y.startAgentDispatch)(a);let s=n.engine.getWorkRequest(a);return s?.state==="failed"?(G(e,t,i,o,s.error_message??s.error_code??"The agent runtime did not complete the turn."),!0):s?.state==="completed"}async function ee(e){let{item:t,bot:r,client:i,deck:o,cwd:a,task:s,chain:d,delegated:l}=e,u=(0,b.selectExecutionPolicy)(l?{entryPoint:"wake",executionKind:"conversation",wakeSyntax:"legacy"}:{entryPoint:"ui",executionKind:"conversation"});if(!u.ok)return G(t,r,i,o,u.reason),!0;let c=await (0,v.createAgentDeckAttemptAdapter)().run({target:{agentId:r.id,agent:i},prompt:{kind:"text",text:s},cwd:a,deck:o,toolProfile:u.policy.tool_profile,sessionBinding:null,correlation:{conversationId:t.conversation_id}});return!d?.stopped&&("completed"!==c.status||null===c.output?G(t,r,i,o,c.failure?.message??`agent-deck run ${c.externalRunId??"unknown"} failed`):n.messages.create(t.conversation_id,"bot",c.output,r.id),!0)}async function et(){let e=r.uiTurns.next();if(!e)return!1;if(!r.uiTurns.start(e.id))return!0;try{await eo(e),r.uiTurns.finish(e.id,"completed"),J(e)}catch(t){console.error("Error processing UI turn:",t),r.uiTurns.finish(e.id,"failed"),J(e)}return!0}async function en(){if(!j){j=!0;try{for(;await et(););}finally{j=!1}}}async function er(e){let{caller:t,callerTurnId:i,target:o,conversationId:a,taskMessage:s,chain:d,hermesConfig:u}=e,f=r.uiTurns.enqueue(a,o.id,{reason:"gateway_poke",parentRequestId:i,delegated:!0,start:!0});if(!f)return;let p=Date.now();(0,c.appendHermesWaitLog)({event:"wait_start",wait_id:f.id,bot:o.name,bot_id:o.id,conversation_id:a,caller:t.name,started_at:p});let m=`Standing rules, verbatim. They are a hard constraint on this reply. They beat the user's request for detail, length, or thoroughness, and they beat every earlier reply:
|
|
2
|
+
${o.description}
|
|
3
|
+
If those rules limit the reply to one short sentence, the whole reply is that one short sentence and nothing more.`,g=`You are ${o.name}, ${o.title}.
|
|
4
|
+
|
|
5
|
+
You were delegated by @${t.name}. Complete the task in your context and reply with your result in this thread.
|
|
6
|
+
Do not use WAKE on this turn. Do not hand off. Do not call tools. Answer only from the standing rules and the latest handoff message.
|
|
7
|
+
|
|
8
|
+
${m}`,_=`Standing rules for the reply you are about to write, verbatim:
|
|
9
|
+
${o.description}
|
|
10
|
+
The standing rules decide the whole reply. If they require one short sentence, write one short clause and stop. Do not answer with a long sentence, a list, or extra detail.`,h=n.memories.latestFacts(o.id),v=(0,l.readSkillState)(o.name);Y(f,o,v,h,A);let y=[{role:"system",content:g},{role:"user",content:`Peer handoff from @${t.name}:
|
|
11
|
+
${s}`},{role:"system",content:_}];h.length>0&&y.push({role:"system",content:["Remembered facts:",...h.map(e=>"- "+e)].join("\n")}),v.content&&y.push({role:"system",content:v.content});let b=new AbortController;I(a,b);try{let e=await (0,c.hermesChat)({config:u,profilePath:(0,c.hermesProfilePathForBot)(o),sessionId:(0,c.hermesSessionIdForBot)(o.id,u),messages:y,signal:b.signal}),i=Date.now();if(d?.stopped){r.uiTurns.finish(f.id,"completed"),J(f),(0,c.appendHermesWaitLog)({event:"wait_finish",wait_id:f.id,bot:o.name,bot_id:o.id,conversation_id:a,started_at:p,finished_at:i,delivered:!1});return}let{callerMessageId:m}=function(e){let{callerConversationId:t,caller:r,target:i,taskMessage:o,reply:a}=e,s=(0,l.applySkillEndToken)(i.name,a),d=null,u=null,c=`[Handing off to ${i.name}]
|
|
12
|
+
${o}`,f=n.messages.getByConversation(t),p=[...f].reverse().find(e=>"bot"===e.sender_type&&e.sender_id===r.id&&e.content===c),m=p?p.created_at:0,g=n.conversations.getByBotId(i.id);if(g&&g.id!==t){let e=`[From ${r.name}]
|
|
13
|
+
${o}`,t=n.messages.getByConversation(g.id),a=[...t].reverse().find(t=>"bot"===t.sender_type&&t.sender_id===r.id&&t.content===e&&t.created_at>=m);a||(a=n.messages.create(g.id,"bot",e,r.id),t=n.messages.getByConversation(g.id)),t.some(e=>"bot"===e.sender_type&&e.sender_id===i.id&&e.content===s&&e.created_at>=a.created_at)||(u=n.messages.create(g.id,"bot",s,i.id).id)}return f.some(e=>"bot"===e.sender_type&&e.sender_id===i.id&&e.content===s&&e.created_at>=m)||(d=n.messages.create(t,"bot",s,i.id).id),{callerMessageId:d,targetMessageId:u}}({callerConversationId:a,caller:t,target:o,taskMessage:s,reply:e});r.uiTurns.finish(f.id,"completed"),J(f),(0,c.appendHermesWaitLog)({event:"wait_finish",wait_id:f.id,bot:o.name,bot_id:o.id,conversation_id:a,started_at:p,finished_at:i,message_id:m,reply:e})}catch(l){var k;let e,i,s=Date.now();r.uiTurns.finish(f.id,"failed"),J(f),(0,c.appendHermesWaitLog)({event:"wait_failed",wait_id:f.id,bot:o.name,bot_id:o.id,conversation_id:a,started_at:p,finished_at:s,code:l instanceof c.HermesError?l.code:"unknown",error:String(l)}),l instanceof c.HermesError&&"aborted"===l.code||d?.stopped||n.messages.create(a,"bot",(k=o.name,i=(e=l instanceof c.HermesError?l.message:String(l)).length>160?e.slice(0,157)+"...":e,`[Specialist ${k} failed: ${i}]`),t.id)}finally{$(a,b)}}async function ei(e){let{item:t,bot:i,conversation:o,chain:a,responseContent:s,targets:d,hermesConfig:u}=e;if(a?.stopped)return void K();if(a&&a.handoffs>=3){n.messages.create(o.id,"bot",w,i.id),K();return}let c=a?3-a.handoffs:d.length,f=a?12-a.turns:d.length,p=Math.max(0,Math.min(c,f,d.length)),m=d.slice(0,p);if(0===m.length){c<=0||c<=f?n.messages.create(o.id,"bot",w,i.id):(n.messages.create(o.id,"bot",S,i.id),r.uiTurns.cancelPending(o.id)),K();return}let g=s.search(/WAKE\s+[A-Za-z0-9_-]+\s*:/i),_=(g>=0?s.slice(0,g):"").trim();for(let{directive:e,bot:t}of(_&&ea(o.id,n.messages.create(o.id,"bot",(0,l.applySkillEndToken)(i.name,_),i.id)),m)){let r=n.messages.create(o.id,"bot",`[Handing off to ${t.name}]
|
|
14
|
+
${e.message}`,i.id);ea(o.id,r),n.wakeTargets.accept({conversationId:o.id,requestedTarget:e.target,sourceBotId:i.id,sourceMessageId:r.id})}if(a&&(a.addHandoffs(m.length),a.addTurns(m.length)),await Promise.allSettled(m.map(({directive:e,bot:n})=>er({caller:i,callerTurnId:t.id,target:n,conversationId:o.id,taskMessage:e.message,chain:a,hermesConfig:u}))),m.length<d.length)if(c<=f)n.messages.create(o.id,"bot",w,i.id);else{n.messages.create(o.id,"bot",S,i.id),r.uiTurns.cancelPending(o.id),K();return}a&&!a.stopped&&r.uiTurns.enqueue(o.id,i.id,{reason:"report_back",parentRequestId:t.id}),K()}async function eo(e){var u,v,y,b,E,T,R;let N,q,M=n.bots.getById(e.bot_id);if(!M)return void console.error("Bot not found:",e.bot_id);Y(e,M,{path:null,present:null,content:null});let P=n.conversations.getById(e.conversation_id);if(!P)return void console.error("Conversation not found:",e.conversation_id);let O=n.messages.getByConversation(e.conversation_id),F=[...O].reverse().find(e=>"user"===e.sender_type),L=F?(0,i.chainFor)(e.conversation_id,F.id):null;if(L?.stopped)return void K();let j=null;if(F){let t=(0,_.pendingForBot)(e.conversation_id,M.id);if(t){if(F.id===t.task_message_id)return void K();let e=(0,_.resolveQuestion)(t.id,F.id,F.content);if(!e||!e.answer)return void K();j={question:e.question,answer:e.answer,taskContent:e.task_content}}else if((0,_.findAnsweredByAnswer)(e.conversation_id,M.id,F.id))return void K()}let z=el(O,M.name),J=L?.callerFor(M.id)??null,G=J?eg(J):null;if(!j&&!z&&function(e,t,r,i){if(x(e,r,i))return!1;let o=Date.now(),a=n.oneShots.pending(e);if(a&&a.bot_id===t&&a.due_at<=o)return!0;let s=n.routines.forConversation(e);return!!s&&s.bot_id===t&&!!(s.next_due_at<=o)}(e.conversation_id,M.id,O,F??null)){if(L&&L.turns>=12){n.messages.create(e.conversation_id,"bot",S,M.id),r.uiTurns.cancelPending(e.conversation_id),K();return}if(function(e,t,r,i){if(x(e,r,i))return!1;let o=Date.now(),a=n.oneShots.pending(e);if(a&&a.bot_id===t&&a.due_at<=o&&n.oneShots.claim(a.id))return n.messages.create(e,"bot","[one-shot]",t),!0;let s=n.routines.forConversation(e);return!!s&&s.bot_id===t&&s.next_due_at<=o&&n.routines.postIfDue(s.id,o)}(e.conversation_id,M.id,O,F??null)){L?.addTurns(1),K();return}K();return}if(!j&&"chief-of-staff"===M.name.toLowerCase()&&F&&!z&&await (0,g.handleCosBirthRequest)(e.conversation_id,M.id,F,O))return void K();if(!j&&"bot"===P.type&&F){let t=(0,a.parseDraftRequest)(F.content);if(t){let r=O.findIndex(e=>e.id===F.id);r>=0&&O.slice(r+1).some(e=>"bot"===e.sender_type)||n.messages.create(e.conversation_id,"bot",(0,o.serializeDraft)((0,a.createDraft)(t)),M.id),K();return}}if(!j&&"bot"===P.type&&F){let r=(0,s.parseFileWriteRequest)(F.content);if(r){let i;try{i=(0,s.validateArtifact)(r)}catch{K();return}let o=O.findIndex(e=>e.id===F.id),a=o>=0?O.slice(o+1):[];if(a.some(e=>"bot"===e.sender_type&&e.sender_id===M.id&&e.content.startsWith((0,s.artifactCardText)(i.name))))return void K();let d=!1;try{d=t.default.existsSync((0,s.resolveArtifactPath)(i.name))}catch{K();return}if(d){if(!es(e.conversation_id,a,M.id)){let t=ed(e.conversation_id,i.name);try{(0,h.createApprovalRequest)({conversationId:e.conversation_id,botId:M.id,code:t,actionType:"write_file",actionArgs:{name:i.name,content:i.content}})}catch(e){if(e instanceof h.ApprovalActionRefused)return void K();throw e}let r=(0,l.applySkillEndToken)(M.name,(0,h.approvalCardText)(t)),o=n.messages.create(e.conversation_id,"bot",r,M.id);(0,h.setApprovalMessage)(e.conversation_id,t,o.id)}K();return}try{(0,s.writeArtifactFile)(i.name,i.content,{allowOverwrite:!1})}catch{K();return}return n.messages.create(e.conversation_id,"bot",(0,l.applySkillEndToken)(M.name,(0,s.artifactCardText)(i.name)),M.id),void K()}}if(!j&&"bot"===P.type&&F){let t=U(F.content);if(null!==t){let r;u=e.conversation_id,v=M.id,(r=n.oneShots.pending(u))?W(r):W(n.oneShots.create(u,v,Date.now()+t)),K();return}let r=H(F.content);if(r){!function(e,t,r){let i,o=n.routines.forConversation(e);if(o)return B(o);B(n.routines.create(e,t,r,Date.now()+(Number.isFinite(i=Number(process.env.BOTMANCERS_ROUTINE_FIRST_DUE_MS))&&i>=0?i:8e3),864e5))}(e.conversation_id,M.id,r),K();return}}if(!j&&"chief-of-staff"===M.name.toLowerCase()&&F){let t=(0,m.parseCommandAsk)(F.content);if(t){let r=n.messages.create(e.conversation_id,"bot",(0,f.serializeRun)({state:"running",page:(0,m.commandRunPage)(t,null)}),M.id);(0,p.beginCommandRun)(r.id,t),K();return}let r=(0,f.parseFileReadAsk)(F.content);if(r){let t=n.messages.create(e.conversation_id,"bot",(0,f.serializeRun)({state:"running"}),M.id);(0,p.beginFileReadRun)(t.id,r.seconds),K();return}let i=(0,f.parsePublicPageReadAsk)(F.content);if(i){let t=n.messages.create(e.conversation_id,"bot",(0,f.serializeRun)({state:"running"}),M.id);(0,p.beginPublicPageReadRun)(t.id,i.seconds,i.url),K();return}let o=(0,f.parseCodingLimbAsk)(F.content);if(o){let t=n.messages.create(e.conversation_id,"bot",(0,f.serializeRun)({state:"running"}),M.id);(0,p.beginCodingLimbRun)(t.id,o.seconds),K();return}}if(!j&&"bot"===P.type&&F&&(0,h.raiseApprovalFromUserInstruction)({conversationId:e.conversation_id,botId:M.id,botName:M.name,userMessage:F,thread:O}))return void K();if(!j&&F){let t=(0,_.parseAskRequest)(F.content);if(t){if((0,_.listAskedForConversation)(e.conversation_id).some(e=>e.task_message_id===F.id)||(0,_.findByTask)(e.conversation_id,M.id,F.id))return void K();let r=(0,_.createPendingQuestion)({conversationId:e.conversation_id,botId:M.id,question:t,taskMessageId:F.id,taskContent:F.content}),i=n.messages.create(e.conversation_id,"bot",(0,l.applySkillEndToken)(M.name,t),M.id);return(0,_.setQuestionMessage)(r.id,i.id),ea(e.conversation_id,i),void K()}}let X=!1;j||"group"!==P.type||!F||z||eu(F,M)||(X=!O.some(t=>"bot"===t.sender_type&&!!t.sender_id&&t.sender_id!==M.id&&t.created_at>F.created_at&&t.created_at<=e.created_at));let ee=null;if(!j&&F&&F.content.includes("{"))for(let t of n.mcpServers.list()){let r=[];try{let e=JSON.parse(t.args);Array.isArray(e)&&(r=e.map(e=>String(e)))}catch{r=[]}let i=await (0,d.mcpTurn)(t.command,r,F.content);if(i?.invocation){n.messages.create(e.conversation_id,"bot",`[mcp] tools: ${i.tools.join(", ")}`,M.id),n.messages.create(e.conversation_id,"bot",`[tool call] ${i.invocation.name} ${JSON.stringify(i.invocation.args)}`,M.id),n.messages.create(e.conversation_id,"bot",`[tool result] ${i.invocation.text}`,M.id),ee={role:"user",content:`Tool result ${i.invocation.name} ${JSON.stringify(i.invocation.args)} = ${i.invocation.text}`};break}}if(!j&&"group"===P.type&&F&&P.group_id){let t=ef(F.content);if(t){let i=n.groups.getMembers(P.group_id).find(e=>ep(e,t.toName));if(eu(F,M)&&ep(M,t.fromName)){if(L?.stopped||!i||i.id===M.id)return void K();if(L&&L.handoffs>=3){O.some(e=>"bot"===e.sender_type&&e.sender_id===M.id&&e.created_at>F.created_at&&e.content===w)||n.messages.create(e.conversation_id,"bot",w,M.id),K();return}if(L&&L.turns>=12){O.some(e=>"bot"===e.sender_type&&e.sender_id===M.id&&e.created_at>F.created_at&&e.content===S)||n.messages.create(e.conversation_id,"bot",S,M.id),r.uiTurns.cancelPending(e.conversation_id),K();return}if(!O.some(e=>"bot"===e.sender_type&&e.sender_id===M.id&&e.created_at>F.created_at&&e.content.startsWith(`[Handing off to ${i.name}]`))){n.messages.create(e.conversation_id,"bot",`[Handing off to ${i.name}]
|
|
15
|
+
${t.task}`,M.id),D(e,i.id),L?.addHandoffs(1),K();return}if(!el(O,M.name))return void K();{let e=Math.max(0,...O.filter(e=>"bot"===e.sender_type&&e.created_at>F.created_at&&e.content.includes(`[Handing off to ${M.name}]`)).map(e=>e.created_at));if(O.some(t=>"bot"===t.sender_type&&t.sender_id===M.id&&t.created_at>e))return void K()}}else{if(!i||M.id!==i.id||L?.stopped||!O.some(e=>"bot"===e.sender_type&&!!e.sender_id&&e.sender_id!==M.id&&e.created_at>F.created_at&&e.content.startsWith(`[Handing off to ${M.name}]`)))return void K();let o=ec(t.task);if(o&&(!o.named||ep(M,o.named))){if(O.some(e=>"bot"===e.sender_type&&e.sender_id===M.id&&e.created_at>F.created_at&&e.content.trim()===o.word))return void K();if(L&&L.turns>=12){n.messages.create(e.conversation_id,"bot",S,M.id),r.uiTurns.cancelPending(e.conversation_id),K();return}return n.messages.create(e.conversation_id,"bot",o.word,M.id),L?.addTurns(1),void K()}let a=Math.max(0,...O.filter(e=>"bot"===e.sender_type&&e.created_at>F.created_at&&e.content.includes(`[Handing off to ${M.name}]`)).map(e=>e.created_at));if(O.some(e=>"bot"===e.sender_type&&e.sender_id===M.id&&e.created_at>a))return void K()}}}let et=(0,k.resolveAgent)(M);if("agent-deck-run"===(0,k.agentTransport)(et.agent))return void await Z({item:e,bot:M,conversationMessages:O,latestUser:F??null,chain:L,openGroupTurn:X,delegated:z});if(!et.launchable){if(X){Q(e),K();return}V(e,M,L);return}if(X&&F&&P.group_id){let t=ec(F.content);if(t){return(b=M,E=n.groups.getMembers(P.group_id),(T=t).named?ep(b,T.named):!em(b.description)||!E.some(e=>e.id!==b.id&&!em(e.description)))?(n.messages.create(e.conversation_id,"bot",t.word,M.id),void K()):void K()}}let en=(X&&F?[F]:O).flatMap(e=>{let t=function(e,t){if("user"===e.sender_type){let t=function(e){if(!e.handoff_targets)return null;try{let t=JSON.parse(e.handoff_targets);if(!Array.isArray(t))return null;let r=t.map(e=>n.bots.getById(String(e))?.name).filter(e=>!!e);if(0===r.length)return null;return`Peer handoff: ${r.map(e=>"@"+e).join(" ")}`}catch{return null}}(e);if(!t)return{role:"user",content:e.content};let r=n.messages.priorSentenceForHandoff(e);return r?{role:"user",content:`${t}
|
|
16
|
+
${r}
|
|
17
|
+
${e.content}`}:{role:"user",content:`${t}
|
|
18
|
+
${e.content}`}}return"bot"===e.sender_type&&e.sender_id&&e.sender_id!==t?{role:"user",content:`Peer handoff from @${eg(e.sender_id)}:
|
|
19
|
+
${e.content}`}:null}(e,M.id);return t?[t]:[]});0===en.length&&en.push({role:"user",content:"You were just created. Greet in one short sentence and include your name. Do not use WAKE."}),ee&&en.push(ee),j&&en.push({role:"user",content:(0,_.resumePrompt)({question:j.question,answer:j.answer,taskContent:j.taskContent})});let er=G?`You were delegated by @${G}. Complete the task in your context and reply with your result in this thread.
|
|
20
|
+
Your reply will be returned to @${G}, who manages the sequence and reports back.
|
|
21
|
+
Only use WAKE to sub-delegate part of this task to another bot:
|
|
22
|
+
- WAKE <bot_name>: <message>
|
|
23
|
+
Otherwise reply normally with your result; do not WAKE your caller back.`:`You can communicate with other bots by using the WAKE command:
|
|
24
|
+
- To send a message to another bot: WAKE <bot_name>: <message>
|
|
25
|
+
- To send a message to the group: WAKE GROUP: <message>
|
|
26
|
+
|
|
27
|
+
Examples:
|
|
28
|
+
- WAKE Alice: Can you research this topic?
|
|
29
|
+
- WAKE GROUP: I've completed my analysis.
|
|
30
|
+
|
|
31
|
+
Important: Only use WAKE when you need to hand off work to another bot or inform the group. When you hand off, you stay the caller: the delegate's reply will come back to you, and you decide the next step and the final report. For regular responses to the user, just reply normally.`,eo=X?"Do not use WAKE on this turn. Do not hand off. Do not repeat an earlier handoff.":er,e_=X?`Standing description, verbatim. It does not decide this reply. The open-group instruction beats it, including any rule inside it that says to WAKE, hand off, or acknowledge a handoff:
|
|
32
|
+
${M.description}`:`Standing rules, verbatim. They are a hard constraint on this reply. They beat the user's request for detail, length, or thoroughness, and they beat every earlier reply:
|
|
33
|
+
${M.description}
|
|
34
|
+
If those rules limit the reply to one short sentence, the whole reply is that one short sentence and nothing more.`,eh=n.memories.latestFacts(M.id),ev=0===eh.length?"":["Remembered facts:",...eh.map(e=>"- "+e),"These saved facts belong to this bot only. When the user asks about one of them, put that remembered fact in the reply even if the question does not repeat it. If the user is not asking about a remembered fact, do not recite this list. Do not store or invent facts from your own replies, tool lines, or group handoff lines. Standing rules and open-group instructions still apply."].join("\n"),ey=`You are ${M.name}, ${M.title}.
|
|
35
|
+
|
|
36
|
+
${eo}
|
|
37
|
+
|
|
38
|
+
${e_}${ev?`
|
|
39
|
+
|
|
40
|
+
${ev}`:""}`,eb=X?'This plain group turn is decided by the open-group instruction, not by your standing description. Do not use WAKE. Do not repeat an earlier handoff. Do not post "Please review my research". Do not acknowledge a handoff.':`Standing rules for the reply you are about to write, verbatim:
|
|
41
|
+
${M.description}
|
|
42
|
+
The standing rules decide the whole reply. If they require one short sentence, write one short clause and stop. Do not answer with a long sentence, a list, or extra detail.`;if(L&&L.turns>=12){n.messages.create(e.conversation_id,"bot",S,M.id),r.uiTurns.cancelPending(e.conversation_id),K();return}L?.addTurns(1);let ek=[{role:"system",content:ey},...en,{role:"system",content:eb}];ev&&ek.push({role:"system",content:ev});let eE=(0,l.readSkillState)(M.name);Y(e,M,eE,eh,A);let ew=eE.content;if(ew&&ek.push({role:"system",content:ew}),X&&P.group_id&&F){let e=n.groups.getMembers(P.group_id).filter(e=>e.id!==M.id).map(e=>e.title?e.name+" ("+e.title+")":e.name),t=O.some(e=>"bot"===e.sender_type&&!!e.sender_id&&e.sender_id!==M.id&&e.created_at>F.created_at),r=M.title?M.name+" ("+M.title+")":M.name;ek.push({role:"system",content:["Open group turn. Nobody used @. This instruction beats your standing description, the WAKE rules, and every earlier message.\nDecide only from the latest user message:",F.content,'Do not use WAKE. Do not repeat an earlier handoff. Do not post "Please review my research". Do not acknowledge a handoff.',"You are "+r+".",e.length?"Other members: "+e.join(", ")+".":"You are the only member.",t?"A peer may already have posted. Ignore that if it is an earlier handoff. Still decide from the latest user message.":"No peer has replied yet.","If the latest message asks a named role or person to say an exact word, only the member whose name or role fits replies, and the entire reply is that word and nothing else. Everyone else replies exactly PASS.\nIf it asks for an exact word and names nobody: reply exactly PASS when your standing description tells you to WAKE or to hand off research. Otherwise the entire reply is that word and nothing else.\nIf you stay silent, the entire reply is exactly PASS. PASS is discarded and not shown.\nIf you reply, write the reply only. Do not include PASS."].join("\n")})}{let t=(0,c.loadHermesConfig)(),r=t?(0,c.hermesSessionIdForBot)(M.id,t):null;{if(!t){n.messages.create(e.conversation_id,"bot","[Hermes configuration missing: HERMES_API_SERVER_KEY is not set. Set it to enable persistent Hermes turns. No fallback transport attempted.]",M.id),K();return}let i=new AbortController;I(e.conversation_id,i);try{q=await (0,c.hermesChat)({config:t,profilePath:(0,c.hermesProfilePathForBot)(M),sessionId:r,messages:ek.map(e=>({role:e.role,content:e.content})),signal:i.signal})}catch(i){let t,r;i instanceof c.HermesError&&"aborted"===i.code||L?.stopped||n.messages.create(e.conversation_id,"bot",(y=M.name,r=(t=i instanceof c.HermesError?i.message:String(i)).length>200?t.slice(0,197)+"...":t,`[Hermes turn failed for ${y}: ${r}]`),M.id),K();return}finally{$(e.conversation_id,i)}}}if(L?.stopped||X&&(N=q.trim().replace(/^`+|`+$/g,"").trim(),/^pass[.!]?$/i.test(N)||(R=q,/WAKE\s+\w+\s*:/.test(R)||/please review my research/i.test(R)||/\[Handing off to\b/i.test(R))))return void K();!function(e){try{let t=(0,o.parseFileNames)(e);if(0===t.length)return;for(let n of t){let t=function(e,t){let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=e.split("\n"),i=r.findIndex(e=>RegExp(`^\\s*\\[file\\]\\s*${n}\\s*$`,"i").test(e));if(i<0)return null;let o=r.slice(i+1).join("\n").match(/```(?:[a-zA-Z0-9_-]+)?\r?\n([\s\S]*?)```/);return o?o[1].replace(/\r\n/g,"\n"):null}(e,n);if(null!==t)try{(0,s.writeArtifactFile)(n,t,{allowOverwrite:!1})}catch{continue}}}catch(e){console.error("Error materializing file artifact:",e)}}(q);let eS=(0,s.parseTypedResult)(q);if(eS){let r=F?O.findIndex(e=>e.id===F.id):-1,i=r>=0?O.slice(r+1):[];if("draft"===eS.kind){i.some(e=>"bot"===e.sender_type&&e.sender_id===M.id&&(0,o.parseDraft)(e.content))||n.messages.create(e.conversation_id,"bot",(0,o.serializeDraft)((0,a.createDraft)(eS.draft)),M.id),K();return}let d=eS.file;if(i.some(e=>"bot"===e.sender_type&&e.sender_id===M.id&&e.content.startsWith((0,s.artifactCardText)(d.name))))return void K();let u=!1;try{u=t.default.existsSync((0,s.resolveArtifactPath)(d.name))}catch{K();return}if(u){if(!es(e.conversation_id,i,M.id)){let t=ed(e.conversation_id,d.name);try{(0,h.createApprovalRequest)({conversationId:e.conversation_id,botId:M.id,code:t,actionType:"write_file",actionArgs:{name:d.name,content:d.content}})}catch(e){if(e instanceof h.ApprovalActionRefused)return void K();throw e}let r=(0,l.applySkillEndToken)(M.name,(0,h.approvalCardText)(t)),i=n.messages.create(e.conversation_id,"bot",r,M.id);(0,h.setApprovalMessage)(e.conversation_id,t,i.id)}K();return}try{(0,s.writeArtifactFile)(d.name,d.content,{allowOverwrite:!1})}catch{K();return}return n.messages.create(e.conversation_id,"bot",(0,l.applySkillEndToken)(M.name,(0,s.artifactCardText)(d.name)),M.id),void K()}let eA=(0,_.parseAskMarker)(q);if(eA){let t=F?F.id:null,r=(0,_.pendingForBot)(e.conversation_id,M.id);if(r&&t&&r.task_message_id===t)return void K();let i=(0,_.createPendingQuestion)({conversationId:e.conversation_id,botId:M.id,question:eA,taskMessageId:t,taskContent:F?F.content:null}),o=n.messages.create(e.conversation_id,"bot",(0,l.applySkillEndToken)(M.name,eA),M.id);return(0,_.setQuestionMessage)(i.id,o.id),ea(e.conversation_id,o),void K()}let eT=(0,c.loadHermesConfig)();if(eT&&!X){let t=q.split(/(?=WAKE\s+[A-Za-z0-9_-]+\s*:)/gi).map(e=>e.match(/WAKE\s+([A-Za-z0-9_-]+)\s*:\s*([\s\S]*)/i)).filter(e=>!!e).map(e=>({target:e[1],message:(e[2]||"").trim()})).filter(e=>e.message.length>0);if(t.length>0){let r=t.map(e=>{if("GROUP"===e.target.toUpperCase()&&"group"===P.type)return{directive:e,bot:null,group:!0,unknown:!1};let t=n.bots.getByName(e.target);return t?{directive:e,bot:t,group:!1,unknown:!1}:{directive:e,bot:null,group:!1,unknown:!0}}),i=r.filter(e=>!e.group&&!e.unknown&&"hermes-gateway"===(0,k.agentTransport)((0,k.resolveAgent)(e.bot).agent)&&(0,k.resolveAgent)(e.bot).launchable);if(i.length===r.length)return void await ei({item:e,bot:M,conversation:P,chain:L,responseContent:q,targets:i.map(e=>({directive:e.directive,bot:e.bot})),hermesConfig:eT})}}let eR=q.match(/WAKE\s+(\w+):\s*([\s\S]+)/);if(eR){let[,t,r]=eR,i="GROUP"===t.toUpperCase()&&"group"===P.type,o=i?null:n.bots.getByName(t);if(i||o){let a=eR.index??q.indexOf(eR[0]),s=q.slice(0,a).trim();if(s&&ea(e.conversation_id,n.messages.create(e.conversation_id,"bot",(0,l.applySkillEndToken)(M.name,s),M.id)),L?.stopped)return void K();if(L&&L.handoffs>=3){n.messages.create(e.conversation_id,"bot",w,M.id),K();return}if(i){let t=r.replace(/data:image\/[a-zA-Z0-9.+-]+;base64,[A-Za-z0-9+/=\s]+/g,"").trim();if(t){ea(e.conversation_id,n.messages.create(e.conversation_id,"bot",(0,l.applySkillEndToken)(M.name,t),M.id));let r=n.groups.getMembers(P.group_id).find(e=>e.id!==M.id);r&&(D(e,r.id),L&&(L.addHandoffs(1),L.pushFrame({delegateId:r.id,callerId:M.id})))}}else if(o){let i=n.messages.create(e.conversation_id,"bot",`[Handing off to ${o.name}]
|
|
43
|
+
${r.trim()}`,M.id);ea(e.conversation_id,i),n.wakeTargets.accept({conversationId:e.conversation_id,requestedTarget:t,sourceBotId:M.id,sourceMessageId:i.id}),D(e,o.id),L&&(L.addHandoffs(1),L.pushFrame({delegateId:o.id,callerId:M.id}))}}else ea(e.conversation_id,n.messages.create(e.conversation_id,"bot",(0,l.applySkillEndToken)(M.name,q),M.id)),C(e,L,M.id)}else ea(e.conversation_id,n.messages.create(e.conversation_id,"bot",(0,l.applySkillEndToken)(M.name,q),M.id)),C(e,L,M.id);K()}function ea(e,t){try{(0,h.recordModelApproval)(e,t)}catch(e){console.error("Error recording approval:",e)}}function es(e,t,n){return t.some(t=>{if("bot"!==t.sender_type||t.sender_id!==n)return!1;let r=(0,o.parseApprovalCode)(t.content);return!!r&&!!(0,h.getApprovalByCode)(e,r)})}function ed(e,t){for(let n=0;n<8;n++){let n=(0,h.mintApprovalCode)(`write-${t}`);if(!(0,h.getApprovalByCode)(e,n))return n}return(0,h.mintApprovalCode)(`write-${t}-${Date.now().toString(36)}`)}function el(e,t){let n=-1;for(let t=0;t<e.length;t++)"user"===e[t].sender_type&&(n=t);if(n<0)return!1;let r=`[Handing off to ${t}]`;for(let t=n+1;t<e.length;t++){let n=e[t];if("bot"===n.sender_type&&n.content.includes(r))return!0}return!1}function eu(e,t){if(e.handoff_targets)try{let n=JSON.parse(e.handoff_targets);if(Array.isArray(n)&&n.map(e=>String(e)).includes(t.id))return!0}catch{}let n="@"+t.name,r=0;for(;r<e.content.length;){let t=e.content.indexOf(n,r);if(t<0)break;let i=e.content[t+n.length];if(!i||/[\s.,!?:;]/.test(i))return!0;r=t+n.length}return!1}function ec(e){if(ef(e))return null;let t=e.trim().replace(/[.!\s]+$/,"").match(/^(?:(.+?),\s*)?reply with exactly the (?:word|token)\s+(\S+)$/i);if(!t)return null;let n=t[2].replace(/^[`"']+|[`"']+$/g,"");return n?{word:n,named:(t[1]?t[1].trim():null)||null}:null}function ef(e){let t=e.trim().replace(/[.!\s]+$/,"").match(/^@(\S+)\s+(?:hand this to|hand off to|pass this to)\s+(.+?):\s*(.+)$/i);if(!t)return null;let n=t[1].replace(/^[`"'"]+|[`"'"]+$/g,"").trim(),r=t[2].trim().replace(/^[`"'"]+|[`"'"]+$/g,"").trim(),i=t[3].trim();return n&&r&&i?{fromName:n,toName:r,task:i}:null}function ep(e,t){let n=t.trim().toLowerCase().replace(/^the\s+/,"");return!!n&&(e.name.toLowerCase()===n||(e.title||"").trim().toLowerCase()===n)}function em(e){return/WAKE\s+\w+\s*:/.test(e)||/please review my research/i.test(e)}function eg(e){let t=n.bots.getById(e);return t?.name||"Unknown"}L&&(n.bots.touchSeen(),r.uiTurns.recoverInterrupted(),F(),(0,y.recoverCoordinatorLoops)().catch(console.error),setInterval(()=>{n.bots.touchSeen(),F(),en().catch(console.error),(0,y.sweepDispatch)().catch(console.error)},2e3)),e.s(["processUiTurns",0,en,"stopDelegation",0,function(e){let t=[...n.messages.getByConversation(e)].reverse().find(e=>"user"===e.sender_type),o=t?(0,i.chainFor)(e,t.id):null,a=o?.stopped??!1,s=!!o&&(o.turns>0||o.handoffs>0),d=r.uiTurns.cancelPending(e),l=function(e){let t=R.get(e);if(!t||0===t.size)return 0;let n=t.size;for(let e of t)try{e.abort()}catch{}return R.delete(e),n}(e),u=0;try{u=(0,_.clearForConversation)(e)}catch(e){console.error("Error clearing pending questions:",e)}o&&o.stop();let c=d>0||l>0||u>0||s&&!a;return c&&n.messages.create(e,"bot","[Delegation stopped] Delegation stopped. No further handoffs or delegated turns."),c}])},88355,e=>{"use strict";var t=e.i(54799),n=e.i(62294);function r(e){return{id:String(e.id),conversation_id:String(e.conversation_id),bot_id:String(e.bot_id),question:String(e.question),task_message_id:e.task_message_id??null,task_content:e.task_content??null,question_message_id:e.question_message_id??null,answer_message_id:e.answer_message_id??null,answer:e.answer??null,status:e.status,created_at:Number(e.created_at),resolved_at:e.resolved_at??null}}function i(e){let t=n.default.prepare("SELECT * FROM pending_questions WHERE id = ?").get(e);return t?r(t):void 0}function o(e){return n.default.prepare("SELECT * FROM pending_questions WHERE conversation_id = ? AND status = 'asked' ORDER BY created_at ASC, rowid ASC").all(e).map(r)}function a(e){let t=e.trim().replace(/\s+/g," ");return(t=(t=t.replace(/^—\s*/,"").replace(/\s*—\s*$/,"").trim()).replace(/\s*,?\s*(?:then|and)\s+wait(?:\s+for\s+my\s+answer)?\s*[.!]?\s*$/i,"").trim())?t:null}e.s(["clearForConversation",0,function(e){return Number(n.default.prepare("UPDATE pending_questions SET status = 'expired', resolved_at = ? WHERE conversation_id = ? AND status = 'asked'").run(Date.now(),e).changes)},"createPendingQuestion",0,function(e){let r=e.question.trim();if(!r)throw Error("question is required");let o=Date.now();return n.default.transaction(()=>{n.default.prepare("UPDATE pending_questions SET status = 'expired', resolved_at = ? WHERE conversation_id = ? AND bot_id = ? AND status = 'asked'").run(o,e.conversationId,e.botId);let a=(0,t.randomUUID)();return n.default.prepare(`INSERT INTO pending_questions
|
|
44
|
+
(id, conversation_id, bot_id, question, task_message_id, task_content, question_message_id, status, created_at)
|
|
45
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, 'asked', ?)`).run(a,e.conversationId,e.botId,r,e.taskMessageId??null,e.taskContent??null,e.questionMessageId??null,o),i(a)})()},"findAnsweredByAnswer",0,function(e,t,i){let o=n.default.prepare("SELECT * FROM pending_questions WHERE conversation_id = ? AND bot_id = ? AND answer_message_id = ? AND status = 'answered' ORDER BY created_at DESC LIMIT 1").get(e,t,i);return o?r(o):void 0},"findByTask",0,function(e,t,i){let o=n.default.prepare("SELECT * FROM pending_questions WHERE conversation_id = ? AND bot_id = ? AND task_message_id = ? ORDER BY created_at DESC LIMIT 1").get(e,t,i);return o?r(o):void 0},"listAskedForConversation",0,o,"parseAskMarker",0,function(e){if(!e)return null;let t=e.match(/<ask>\s*([\s\S]*?)\s*<\/ask>/i);if(t)return t[1].trim()||null;for(let t of e.split(/\r?\n/)){let e=t.match(/^\s*\[ask\]\s*(.+?)\s*$/i);if(e){let t=e[1].trim();if(t)return t}}return null},"parseAskRequest",0,function(e){let t=(e||"").trim();if(!t||!/\bask\b/i.test(t)||!/\bwait\b/i.test(t))return null;let n=t.match(/ask\b[^:—]*[:—]\s*(.+?)\s*(?:then|and)\s+wait\b/is);if(n){let e=a(n[1]||"");if(e)return e}let r=t.match(/ask\b(.+?)\bthen\s+wait\b/is);if(r){let e=(r[1]||"").trim(),t=a(e=e.replace(/^me\b\s*/i,"").replace(/^(?:this|that|one|a)\b\s*/i,"").replace(/^(?:question|thing)\b\s*/i,"").replace(/^first\b\s*/i,"").replace(/^[:—,\-\s]+/,"").trim());if(t&&t.length>=2)return t}let i=t.match(/first\b\s*[:—]?\s*(.+?)\s*(?:then|and)\s+wait\b/is);if(i){let e=a(i[1]||"");if(e)return e}return null},"pendingForBot",0,function(e,t){let i=n.default.prepare("SELECT * FROM pending_questions WHERE conversation_id = ? AND bot_id = ? AND status = 'asked' ORDER BY created_at DESC LIMIT 1").get(e,t);return i?r(i):void 0},"resolveQuestion",0,function(e,t,r){let o=r.trim();if(!o)return null;let a=Date.now();return 1!==n.default.prepare(`UPDATE pending_questions SET status = 'answered', answer_message_id = ?, answer = ?, resolved_at = ?
|
|
46
|
+
WHERE id = ? AND status = 'asked'`).run(t,o,a,e).changes?null:i(e)??null},"resumeBotIdsForConversation",0,function(e){let t=o(e);return 0===t.length?null:[...new Set(t.map(e=>e.bot_id))]},"resumePrompt",0,function(e){let t=(e.taskContent||"").trim(),n=["[ask-resume] The person answered your parked question. Continue the original task using the answer exactly once.",`Question: ${e.question.trim()}`,`Answer: ${e.answer.trim()}`];return t&&n.push(`Original task: ${t}`),n.push("Reply with the continued task result. Do not ask the question again."),n.join("\n")},"setQuestionMessage",0,function(e,t){n.default.prepare("UPDATE pending_questions SET question_message_id = ? WHERE id = ?").run(t,e)}])},57147,43084,1912,15467,e=>{"use strict";var t=e.i(54799),n=e.i(62294),r=e.i(35613);let i="('ui_message', 'ui_continuation')";function o(e){return{id:e.id,conversation_id:e.source_conversation_id,bot_id:e.target_agent_id,created_at:e.created_at,kind:"ui_continuation"===e.executor?"continuation":"message"}}function a(e){return!!e&&("ui_message"===e.executor||"ui_continuation"===e.executor)}function s(e){try{return e(),!0}catch(e){if(e instanceof r.EngineStoreError&&"stale_state"===e.code)return!1;throw e}}let d={get(e){let t=n.engine.getWorkRequest(e);return a(t)?o(t):void 0},listByConversation:e=>n.default.prepare(`
|
|
47
|
+
SELECT * FROM work_requests WHERE source_conversation_id = ? AND executor IN ${i}
|
|
48
|
+
ORDER BY created_at ASC, rowid ASC
|
|
49
|
+
`).all(e).map(e=>({...o(e),state:e.state})),enqueue(e,i,a={}){if(!n.default.prepare("SELECT 1 FROM bots WHERE id = ?").get(i)||!n.default.prepare("SELECT 1 FROM conversations WHERE id = ?").get(e))return null;let s=a.reason??"turn",d=n.default.prepare("SELECT id FROM messages WHERE conversation_id = ? ORDER BY created_at DESC, rowid DESC LIMIT 1").get(e),l=a.parentRequestId?n.engine.getWorkRequest(a.parentRequestId):void 0,u=(0,r.uiTurnExecutionPolicy)(!0===a.delegated);return n.engine.transaction(()=>{let{request:c}=n.engine.createOrGetWorkRequest({sourceConversationId:e,sourceEventId:d?.id??e,requester:r.UI_TURN_REQUESTER,targetAgentId:i,intent:s,executionKind:u.execution_kind,toolProfile:u.tool_profile,idempotencyKey:`ui-turn:${(0,t.randomUUID)()}`,parentRequestId:l?l.id:null,policy:{source:"ui_turn",reason:s},executionPolicy:u,deadlineAt:null,executor:"ui_continuation"});return a.start&&n.engine.transitionWorkRequest(c.id,{from:"queued",to:"running",reason:s}),o(n.engine.getWorkRequest(c.id))})},next(){let e=n.default.prepare(`
|
|
50
|
+
SELECT * FROM work_requests WHERE state = 'queued' AND executor IN ${i}
|
|
51
|
+
ORDER BY created_at ASC, rowid ASC LIMIT 1
|
|
52
|
+
`).get();return e?o(e):void 0},start(e){let t=n.engine.getWorkRequest(e);return!!a(t)&&"queued"===t.state&&s(()=>{n.engine.transitionWorkRequest(e,{from:"queued",to:"running",expectedVersion:t.version})})},finish(e,t){let r=n.engine.getWorkRequest(e);a(r)&&"running"===r.state&&s(()=>{n.engine.transitionWorkRequest(e,"completed"===t?{from:"running",to:"completed",expectedVersion:r.version}:{from:"running",to:"failed",expectedVersion:r.version,reason:"ui_turn_failed",errorCode:"ui_turn_failed",errorMessage:"The UI turn failed."})})},handOff:e=>n.engine.transaction(()=>{let t=n.engine.getWorkRequest(e);return!!t&&"ui_message"===t.executor&&"running"===t.state&&(n.engine.transitionWorkRequest(e,{from:"running",to:"queued",expectedVersion:t.version,reason:"ui_turn_handoff"}),n.default.prepare("UPDATE work_requests SET executor = 'dispatcher' WHERE id = ?").run(e),!0)}),cancelPending:e=>l(n.default.prepare(`SELECT id FROM work_requests WHERE source_conversation_id = ? AND state = 'queued' AND executor IN ${i}`).all(e).map(e=>e.id)),cancelPendingForBot:e=>l(n.default.prepare(`SELECT id FROM work_requests WHERE target_agent_id = ? AND state = 'queued' AND executor IN ${i}`).all(e).map(e=>e.id)),countPending:e=>(e?n.default.prepare(`SELECT COUNT(*) AS n FROM work_requests WHERE state = 'queued' AND executor IN ${i} AND source_conversation_id = ?`).get(e):n.default.prepare(`SELECT COUNT(*) AS n FROM work_requests WHERE state = 'queued' AND executor IN ${i}`).get()).n,recoverInterrupted(){let e=n.default.prepare(`SELECT id FROM work_requests WHERE state = 'running' AND executor IN ${i} ORDER BY created_at ASC, rowid ASC`).all().map(e=>e.id),t=0;for(let i of e)s(()=>{n.engine.transitionWorkRequest(i,{from:"running",to:"failed",reason:r.UI_TURN_INTERRUPTED,errorCode:r.UI_TURN_INTERRUPTED,errorMessage:r.UI_TURN_INTERRUPTED_MESSAGE})})&&t++;return t}};function l(e){let t=0;for(let r of e)s(()=>{n.engine.transitionWorkRequest(r,{from:"queued",to:"cancelled",reason:"stopped"})})&&t++;return t}function u(e){return{userMessageId:e.user_message_id,handoffs:e.handoffs,turns:e.turns,stopped:1===e.stopped,frames:JSON.parse(e.frames)}}e.s(["uiTurns",0,d],57147);class c{conversationId;userMessageId;constructor(e,t){this.conversationId=e,this.userMessageId=t}row(){return n.default.prepare("SELECT * FROM delegation_chains WHERE conversation_id = ? AND user_message_id = ?").get(this.conversationId,this.userMessageId)}update(e,...t){n.default.prepare(`UPDATE delegation_chains SET ${e}, updated_at = ? WHERE conversation_id = ? AND user_message_id = ?`).run(...t,Date.now(),this.conversationId,this.userMessageId)}get handoffs(){return this.row().handoffs}get turns(){return this.row().turns}get stopped(){return 1===this.row().stopped}get frames(){return u(this.row()).frames}addHandoffs(e){this.update("handoffs = handoffs + ?",e)}addTurns(e){this.update("turns = turns + ?",e)}stop(){this.update("stopped = 1")}pushFrame(e){n.default.transaction(()=>{this.update("frames = ?",JSON.stringify([...this.frames,e]))}).immediate()}callerFor(e){let t=this.frames;for(let n=t.length-1;n>=0;n--)if(t[n].delegateId===e)return t[n].callerId;return null}popCaller(e){return n.default.transaction(()=>{let t=this.frames;for(let n=t.length-1;n>=0;n--)if(t[n].delegateId===e){let e=t[n].callerId;return t.splice(n,1),this.update("frames = ?",JSON.stringify(t)),e}return null}).immediate()}state(){return u(this.row())}}e.s(["chainFor",0,function(e,t){let r=Date.now();return n.default.prepare(`
|
|
53
|
+
INSERT OR IGNORE INTO delegation_chains (conversation_id, user_message_id, created_at, updated_at)
|
|
54
|
+
VALUES (?, ?, ?, ?)
|
|
55
|
+
`).run(e,t,r,r),new c(e,t)},"existingChain",0,function(e,t){return n.default.prepare("SELECT 1 FROM delegation_chains WHERE conversation_id = ? AND user_message_id = ?").get(e,t)?new c(e,t):null}],43084);var f=e.i(33405);async function p(e,t,n){return n.includes("{")?new Promise((r,i)=>{let o=(0,f.spawn)(e,t,{stdio:["pipe","pipe","pipe"]}),a=Buffer.alloc(0),s=1,d=new Map,l=!1,u=e=>{l||(l=!0,clearTimeout(p),o.kill(),i(e))},c=e=>{l||(l=!0,clearTimeout(p),o.kill(),r(e))},p=setTimeout(()=>u(Error("MCP server timed out")),8e3);o.stdin.on("error",()=>void 0),o.on("error",e=>u(e)),o.on("exit",e=>{l||u(Error(`MCP server exited ${e}`))});let m=e=>{let t;o.stdin.write((t=JSON.stringify(e),`Content-Length: ${Buffer.byteLength(t,"utf8")}\r
|
|
56
|
+
\r
|
|
57
|
+
${t}`))},g=(e,t)=>{let n=s++;return new Promise((r,i)=>{d.set(n,e=>{e.error?i(Error(e.error.message||"MCP error")):r(e)}),m({jsonrpc:"2.0",id:n,method:e,params:t})})};o.stdout.on("data",e=>{for(a=Buffer.concat([a,e]);;){let e,t=a.indexOf("\r\n\r\n");if(t<0)break;let n=a.slice(0,t).toString("utf8").match(/Content-Length:\s*(\d+)/i);if(!n)return void u(Error("MCP response missing Content-Length"));let r=Number(n[1]),i=t+4;if(a.length<i+r)break;let o=a.slice(i,i+r).toString("utf8");a=a.slice(i+r);try{e=JSON.parse(o)}catch(e){u(e instanceof Error?e:Error("Bad MCP JSON"));return}if("number"==typeof e.id&&d.has(e.id)){let t=d.get(e.id);d.delete(e.id),t&&t(e)}}}),(async()=>{try{await g("initialize",{protocolVersion:"2024-11-05",capabilities:{},clientInfo:{name:"botmancers",version:"0.1.0"}}),m({jsonrpc:"2.0",method:"notifications/initialized"});let e=(await g("tools/list")).result,t=(e?.tools||[]).map(e=>e.name).filter(Boolean),r=function(e,t){let n,r=e.match(/\{[\s\S]*\}/);if(!r)return null;try{let e=JSON.parse(r[0]);if(!e||"object"!=typeof e||Array.isArray(e))return null;n=e}catch{return null}for(let r of[...t].sort((e,t)=>t.length-e.length)){let t=e.indexOf(r);if(t<0)continue;let i=0===t?"":e[t-1],o=e[t+r.length]||"";if(!(i&&/[A-Za-z0-9_]/.test(i))&&!(o&&/[A-Za-z0-9_]/.test(o)))return{name:r,args:n}}return null}(n,t);if(!r)return void c({tools:t});let i=(await g("tools/call",{name:r.name,arguments:r.args})).result,o=(i?.content||[]).map(e=>e.text||"").join("");if(i?.isError)return void u(Error(o||"MCP tool error"));c({tools:t,invocation:{name:r.name,args:r.args,text:o}})}catch(e){u(e instanceof Error?e:Error("MCP failed"))}})()}):null}e.s(["mcpTurn",0,p],1912);var m=e.i(30098),g=e.i(10860);let _=e.i(49166).IMPORT_SCHEMA_VERSION,h="[A-Za-z0-9_-]+";function v(e){return e.trim().replace(/[.?!;,:'"`]+$/g,"").trim()}function y(e){return e.trim().replace(/\s+/g," ").replace(/[.?!]+$/g,"").trim()}function b(e){return e.trim().replace(/[.?!;,:'"`]+$/g,"").trim()}async function k(e){let t=e.trim();if(!t)return{kind:"none"};let n=function(e){for(let t of[RegExp(`^duplicate\\s+(${h})\\s+as\\s+(${h})\\.?\\s*$`,"i"),RegExp(`\\bmake\\s+(?:me\\s+)?a\\s+copy\\s+of\\s+(?:(?:bot|specialist)\\s+)?(${h})\\s+(?:called|named|as)\\s+(${h})\\b`,"i"),RegExp(`\\b(?:duplicate|copy|clone)\\s+(?:(?:bot|specialist)\\s+)?(${h})\\s+(?:as|to|into)\\s+(?:(?:bot|specialist)\\s+)?(?:called\\s+|named\\s+)?(${h})\\b`,"i")]){let n=e.match(t);if(!n)continue;let r=b(n[1]||""),i=b(n[2]||"");if(r&&i)return{kind:"duplicate",sourceName:r,newName:i}}return{kind:"none"}}(t);if("none"!==n.kind)return n;let r=function(e){let t=e.match(RegExp(`^create a specialist named\\s+(${h})\\.?\\s*the job is:\\s*(.+)$`,"is"));if(t){let e=v(t[1]||""),n=y(t[2]||"");return e&&n?{kind:"create",name:e,job:n}:{kind:"none"}}let n=e.match(RegExp(`\\b(?:create|make|build|spin\\s+up|add)\\s+(?:me\\s+)?(?:a\\s+)?(?:new\\s+)?(?:specialist|bot|assistant|agent)\\s+(?:called\\s+|named\\s+)?(${h})\\s*([\\s\\S]*)$`,"i"));if(!n)return{kind:"none"};let r=v(n[1]||"");if(!r)return{kind:"none"};let i=(n[2]||"").trim();if(!i)return{kind:"none"};let o=y(i=i.replace(/^[.,:;]+\s*/,"").replace(/^(?:that|which|who|to|for|with)\b\s*:?\s*/i,"").replace(/^whose\s+job\s+is\s*:?\s*/i,"").replace(/^the\s+job\s+is\s*:?\s*/i,"").replace(/^is\s*:?\s*/i,"").trim());return o?{kind:"create",name:r,job:o}:{kind:"none"}}(t);return"none"!==r.kind?r:{kind:"none"}}async function E(e){let t=(process.env.CLONE_MARKET_SEARCH_URL||"").trim();if(!t)return null;try{let r=t+(t.includes("?")?"&":"?")+"q="+encodeURIComponent(e),i=await fetch(r,{signal:AbortSignal.timeout(1e4)});if(!i.ok)return null;var n=await i.json();if(!n||"object"!=typeof n)return null;if(n.template&&"object"==typeof n.template)return w(n.template);if(Array.isArray(n.templates)&&n.templates.length>0){let e=n.templates[0];if(e&&"object"==typeof e)return w({template_id:String(e.id??e.template_id??""),template_url:String(e.url??e.template_url??""),source_provider:String(e.provider??e.source_provider??""),title:String(e.title??e.name??""),description:String(e.description??""),avatar:"string"==typeof e.avatar?e.avatar:void 0})}return null}catch{return null}}function w(e){if(!e||"object"!=typeof e)return null;let t=String(e.template_id||"").trim();if(!t)return null;let n=String(e.template_url||"").trim()||(process.env.CLONE_MARKET_URL||"").trim();return n?{template_id:t,template_url:n,source_provider:String(e.source_provider||"").trim()||"clone-market",title:String(e.title||"").trim(),description:String(e.description||"").trim(),avatar:"string"==typeof e.avatar&&e.avatar?e.avatar:void 0}:null}function S(e){return n.bots.getByName(e)}function A(e){try{return e()}catch(e){if(e instanceof m.AgentNameConflictError)return{ok:!1,reason:"collision"};throw e}}function T(e){let n={schema_version:e.schema_version,source_provider:e.source_provider,template_id:e.template_id,template_url:e.template_url,bot:{name:e.bot.name,title:e.bot.title||"",description:e.bot.description||"",avatar:e.bot.avatar||null}};return(0,t.createHash)("sha256").update(JSON.stringify(n)).digest("hex")}function R(e){d.cancelPendingForBot(e);let t=n.conversations.getByBotId(e);t&&d.cancelPending(t.id)}async function I(e,t){let r=e.trim();if(!r)return{ok:!1,reason:"invalid"};if(S(r))return{ok:!1,reason:"collision"};let i=A(()=>n.bots.create({name:r,title:"",description:t,avatar:void 0}));return"ok"in i?i:(R(i.id),{ok:!0,bot:i})}async function $(e,r,i){let o=e.trim();if(!o)return{ok:!1,reason:"invalid"};let a=w(r);if(!a)return{ok:!1,reason:"invalid"};let s=i?.operationId?.trim()||(0,t.randomUUID)(),d={schema_version:_,source_provider:a.source_provider,template_id:a.template_id,template_url:a.template_url,bot:{name:o,title:a.title,description:a.description,avatar:a.avatar}},l=n.bots.getByImportOperationId(s);if(l)return T({schema_version:l.import_schema_version||_,source_provider:l.source_provider||"",template_id:l.template_id||"",template_url:l.template_url||"",bot:{name:l.name,title:l.title,description:l.description,avatar:l.avatar||void 0}})!==T(d)?{ok:!1,reason:"conflict",existingBotId:l.id}:{ok:!0,bot:l,created:!1};if(S(o))return{ok:!1,reason:"collision"};let u=A(()=>n.bots.createFromImport({name:o,title:a.title,description:a.description,avatar:a.avatar},{source_provider:a.source_provider,template_id:a.template_id,template_url:a.template_url,import_schema_version:_,import_operation_id:s,import_timestamp:Date.now()}));return"ok"in u?u:(R(u.id),{ok:!0,bot:u,created:!0})}async function C(e,t){let r=S(e);if(!r)return{ok:!1,reason:"not-found"};let i=t.trim();if(!i)return{ok:!1,reason:"invalid"};if(S(i))return{ok:!1,reason:"collision"};let o=A(()=>n.bots.create({name:i,title:r.title,description:r.description,avatar:void 0}));if("ok"in o)return o;let a=(0,g.localSkillForBot)(r.name);if(a&&(0,g.isSupportedSkillName)(i))try{(0,g.writeSkillForBot)(i,a)}catch{}return R(o.id),{ok:!0,bot:o,source:r}}async function D(e,t,r,i,o){let a,s=await k(r.content);if("none"===s.kind)return!1;if((a=i.findIndex(e=>e.id===r.id))<0?i.some(e=>"bot"===e.sender_type&&e.sender_id===t&&e.created_at>r.created_at):i.slice(a+1).some(e=>"bot"===e.sender_type&&e.sender_id===t))return!0;let d=n.bots.getById(t)?.name??null;if("duplicate"===s.kind){let r=await C(s.sourceName,s.newName);return r.ok||"not-found"!==r.reason?r.ok||"collision"!==r.reason?r.ok?n.messages.create(e,"bot",(0,g.applySkillEndToken)(d,`Duplicated ${r.source.name} as ${r.bot.name}. Title, description and skill copied; only the name changed. Avatar starts blank. Path: duplicate. New bot id: ${r.bot.id}.`),t):n.messages.create(e,"bot",(0,g.applySkillEndToken)(d,`Failed to duplicate ${s.sourceName} as ${s.newName}.`),t):n.messages.create(e,"bot",(0,g.applySkillEndToken)(d,`${(0,m.agentNameConflictMessage)(s.newName)} No bot created.`),t):n.messages.create(e,"bot",(0,g.applySkillEndToken)(d,`I could not find ${s.sourceName} to duplicate. No bot created.`),t),!0}if(S(s.name))return n.messages.create(e,"bot",(0,g.applySkillEndToken)(d,`${(0,m.agentNameConflictMessage)(s.name)} No bot created.`),t),!0;let l=await E(s.job);if(l){let r=await $(s.name,l,o);return r.ok||"collision"!==r.reason?r.ok?n.messages.create(e,"bot",(0,g.applySkillEndToken)(d,`Created ${r.bot.name} from the matching marketplace template (${l.template_id}). Path: template. New bot id: ${r.bot.id}.`),t):n.messages.create(e,"bot",(0,g.applySkillEndToken)(d,`Failed to import ${s.name} from the matching template.`),t):n.messages.create(e,"bot",(0,g.applySkillEndToken)(d,`${(0,m.agentNameConflictMessage)(s.name)} No bot created.`),t),!0}let u=await I(s.name,s.job);return u.ok||"collision"!==u.reason?u.ok?n.messages.create(e,"bot",(0,g.applySkillEndToken)(d,`None of the templates fit. Created ${u.bot.name} with that job as its description. Path: plain. New bot id: ${u.bot.id}.`),t):n.messages.create(e,"bot",(0,g.applySkillEndToken)(d,`Failed to create ${s.name}: invalid name.`),t):n.messages.create(e,"bot",(0,g.applySkillEndToken)(d,`${(0,m.agentNameConflictMessage)(s.name)} No bot created.`),t),!0}e.s(["handleCosBirthRequest",0,D],15467)}];
|
|
58
|
+
|
|
59
|
+
//# sourceMappingURL=lib_0kik6bx._.js.map
|